:root{--color-bg:#F7F5F1;--color-surface:#FFFFFF;--color-surface-2:#F1EEE9;--color-ink:#0A0A0A;--color-ink-muted:#54545A;--color-ink-soft:#8A8A92;--color-border:rgba(10,10,10,0.08);--color-border-strong:rgba(10,10,10,0.14);--color-accent:#0A84FF;--color-accent-hover:#0070E0;--color-accent-tint:rgba(10,132,255,0.08);--color-accent-ink:#FFFFFF;--glass-bg:rgba(255,255,255,0.55);--glass-bg-strong:rgba(255,255,255,0.78);--glass-bg-dark:rgba(20,20,24,0.55);--glass-border:rgba(255,255,255,0.65);--glass-border-ink:rgba(10,10,10,0.06);--glass-blur:24px;--glass-saturation:180%;--glass-shadow:0 1px 1px rgba(10,10,10,0.04),0 8px 28px rgba(10,10,10,0.06);--glass-shadow-strong:0 1px 1px rgba(10,10,10,0.05),0 18px 48px rgba(10,10,10,0.10);--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",system-ui,sans-serif;--font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",system-ui,sans-serif;--font-serif:"New York","Georgia",serif;--fs-eyebrow:0.78rem;--fs-body:1.0625rem;--fs-lede:1.25rem;--fs-h2:clamp(2rem,4vw,3.25rem);--fs-h1:clamp(2.6rem,6vw,5rem);--lh-tight:1.04;--lh-snug:1.18;--lh-body:1.55;--space-1:0.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4.5rem;--space-7:7rem;--space-8:10rem;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-xl:32px;--radius-pill:999px;--ease-apple:cubic-bezier(0.16,1,0.3,1);--ease-back:cubic-bezier(0.5,0,0.2,1.4);--dur-fast:180ms;--dur-base:380ms;--dur-slow:720ms;--container-max:1180px;--container-pad:clamp(1rem,4vw,2.5rem)}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,svg,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:0;background:transparent}ul{list-style:none;padding:0;margin:0}::selection{background:var(--color-accent);color:var(--color-accent-ink)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-pad)}.section{padding-block:clamp(2.8rem,6.3vw,5.6rem);position:relative}.section__head{max-width:100%;margin-bottom:var(--space-6)}.section__title{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:-0.02em;font-weight:600;margin:0 0 var(--space-3)}.section__title em{font-family:var(--font-serif);font-style:italic;font-weight:400}.section__lede{color:var(--color-ink-muted);font-size:var(--fs-lede);max-width:60ch;margin:0}.eyebrow{font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:0.14em;font-weight:500;color:var(--color-accent);margin:0 0 var(--space-2)}.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.bg-blobs{position:absolute;inset:-10%;filter:blur(80px) saturate(120%);will-change:transform}.blob{position:absolute;border-radius:50%;opacity:0.55;mix-blend-mode:multiply;animation:drift 38s ease-in-out infinite}.blob--a{width:60vmax;height:60vmax;background:radial-gradient(closest-side,#BFD7FF 0%,transparent 70%);top:-15%;left:-10%;animation-duration:42s}.blob--b{width:55vmax;height:55vmax;background:radial-gradient(closest-side,#FFD9C2 0%,transparent 70%);top:30%;right:-15%;animation-duration:56s;animation-direction:reverse}.blob--c{width:50vmax;height:50vmax;background:radial-gradient(closest-side,#E7DCC8 0%,transparent 70%);bottom:-20%;left:20%;animation-duration:64s}@keyframes drift{0%,100%{transform:translate3d(0,0,0) scale(1)}33%{transform:translate3d(4vw,-3vh,0) scale(1.05)}66%{transform:translate3d(-3vw,4vh,0) scale(0.97)}}.bg-grain{position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:0.05;mix-blend-mode:multiply}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass{background:var(--glass-bg-strong)}}.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.85rem 1.4rem;border-radius:var(--radius-pill);font-weight:500;font-size:0.98rem;letter-spacing:-0.005em;transition:transform var(--dur-fast) var(--ease-apple),background var(--dur-fast) var(--ease-apple),box-shadow var(--dur-fast) var(--ease-apple);white-space:nowrap}.btn--primary{background:var(--color-ink);color:var(--color-bg);box-shadow:0 1px 1px rgba(0,0,0,0.04),0 8px 24px rgba(10,10,10,0.18)}.btn--primary:hover{transform:translateY(-1px);background:var(--color-accent)}.btn--primary:active{transform:translateY(0)}.glass-btn{position:relative;isolation:isolate}.glass-btn::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,0.18),rgba(255,255,255,0));pointer-events:none;z-index:1}.glass-btn>*{position:relative;z-index:2}.btn--ghost{background:transparent;color:var(--color-ink);border:1px solid var(--color-border-strong);padding:0.78rem 1.3rem}.btn--ghost:hover{background:var(--color-surface);border-color:var(--color-ink)}.btn--lg{padding:1.05rem 1.7rem;font-size:1.05rem}.chip{display:inline-flex;align-items:center;padding:0.45rem 0.85rem;border-radius:var(--radius-pill);font-size:0.82rem;font-weight:500;color:var(--color-ink);letter-spacing:-0.005em}.btn_bundle_buchen_cta{margin-top:auto;align-self:flex-start;color:var(--color-accent-ink);background:var(--color-accent)}.btn_bundle_buchen_cta:hover{color:var(--color-accent)}.nav-wrap{position:fixed;top:var(--space-2);left:0;right:0;z-index:40;padding-inline:var(--container-pad)}.nav{max-width:var(--container-max);margin-inline:auto;display:flex;align-items:center;gap:var(--space-3);padding:0.5rem 0.5rem 0.5rem 1rem;border-radius:var(--radius-pill)}.nav__brand{display:flex;align-items:center;gap:0.6rem;font-weight:600}.nav__brand-mark{display:block;width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.nav__brand-mark-footer{display:block;width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0;margin-bottom:1rem}.nav__brand-name{font-size:0.96rem;letter-spacing:-0.01em}.nav__links{display:flex;gap:var(--space-3);margin-left:auto;font-size:0.95rem}.nav__links a{position:relative;padding:0.35rem 0;color:var(--color-ink-muted);transition:color var(--dur-fast) var(--ease-apple)}.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--color-ink);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-apple)}.nav__links a:hover{color:var(--color-ink)}.nav__links a:hover::after{transform:scaleX(1)}.nav__cta{padding:0.6rem 1.05rem;transition:transform var(--dur-base) var(--ease-apple),background var(--dur-base) var(--ease-apple),color var(--dur-base) var(--ease-apple),box-shadow var(--dur-base) var(--ease-apple)}.hero{position:relative;padding-block:clamp(6rem,14vh,11rem) clamp(4rem,10vh,8rem)}.hero__title{font-family:var(--font-display);font-size:clamp(1.55rem,2.8vw,2.2rem);font-weight:600;line-height:var(--lh-snug);letter-spacing:-0.025em;margin:0 0 var(--space-3)}.hero__title em{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-0.01em}.hero__sub{max-width:52ch;font-size:1.125rem;color:var(--color-ink-muted);margin:0 0 var(--space-4)}.hero__cta{display:flex;flex-wrap:wrap;gap:0.75rem;margin-bottom:var(--space-5)}.hero__meta{display:flex;flex-wrap:wrap;gap:0.5rem}.hero__inner{display:flex;align-items:center;gap:clamp(2rem,4vw,3.5rem)}.hero__copy{flex:0 1 720px;min-width:0}.hero__slider-wrap{flex:1 0 auto;margin-right:calc(-1 * var(--container-pad) - 60px);padding-bottom:56px}.hero__slider{position:relative;width:280px;height:280px}.slide{position:absolute;width:300px;height:300px;border-radius:15px;inset:4px;background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:0 4px 8px rgba(0,0,0,0.05),0 20px 60px rgba(0,0,0,0.13);transform-origin:top left;transition:transform 0.75s cubic-bezier(0.4,0,0.2,1),opacity 0.75s cubic-bezier(0.4,0,0.2,1);will-change:transform,opacity}.slide::after{content:'';position:absolute;inset:-5px;border-radius:20px;padding:4px;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.slide[data-pos="0"]{transform:translateX(0px) translateY(0px) scale(1);opacity:1;z-index:10}.slide[data-pos="1"]{transform:translateX(90px) translateY(30px) scale(0.83);opacity:1;z-index:9}.slide[data-pos="2"]{transform:translateX(165px) translateY(53px) scale(0.68);opacity:0.85;z-index:8}.slide[data-pos="3"],.slide[data-pos="4"],.slide[data-pos="5"]{transform:translateX(230px) translateY(70px) scale(0.56);opacity:0;z-index:7}.slide.exiting{transform:translateX(-48px) scale(0.88);opacity:0;z-index:11;transition:transform 0.75s cubic-bezier(0.4,0,0.2,1),opacity 0.5s cubic-bezier(0.4,0,0.2,1)}@media (max-width:980px){.hero__inner{flex-direction:column;align-items:flex-start;gap:2.5rem}.hero__copy{flex:none}.hero__slider-wrap{margin-right:0;padding-bottom:40px}}@media (max-width:560px){.hero__slider-wrap{display:none}}.hero__scroll{position:absolute;left:50%;width:22px;height:36px;border:1px solid var(--color-border-strong);border-radius:999px;transform:translateX(-50%);display:grid;place-items:center}.hero__scroll span{display:block;width:2px;height:6px;background:var(--color-ink-muted);border-radius:1px;animation:scroll-hint 1.6s var(--ease-apple) infinite}@keyframes scroll-hint{0%{transform:translateY(-6px);opacity:0}35%{opacity:1}100%{transform:translateY(8px);opacity:0}}.logos{padding-block:clamp(1.4rem,2.8vw,2.1rem)}.logos__label{font-size:0.85rem;text-transform:uppercase;letter-spacing:0.16em;color:var(--color-ink-soft);text-align:center;margin:0 0 var(--space-3)}.logos__row{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center;align-items:center;opacity:0.6}.logos__item{font-family:var(--font-serif);font-style:italic;font-size:1.4rem;color:var(--color-ink-muted);letter-spacing:-0.01em}.logos__img{height:50px;width:auto;display:block}#about .section__title{font-size:clamp(1.4rem,2.6vw,2.0rem)}.about__grid{display:grid;grid-template-columns:minmax(0,0.72fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center}.about__visual{position:relative;aspect-ratio:4 / 5;border-radius:var(--radius-xl);overflow:hidden}.about__portrait{position:absolute;inset:0;background:linear-gradient(135deg,#ECE6DC 0%,#D7CFBF 100%);display:grid;place-items:center}.about__portrait-placeholder{font-family:var(--font-serif);font-style:italic;color:var(--color-ink-muted);font-size:1.2rem;letter-spacing:0.02em}.about__portrait-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center}.about__copy p{color:var(--color-ink-muted);margin:0 0 var(--space-3);max-width:56ch}.about__points{margin-top:var(--space-4);display:grid;gap:0.6rem}.about__points li{position:relative;padding-left:1.6rem;color:var(--color-ink)}.about__points li::before{content:"";position:absolute;left:0;top:0.55em;width:8px;height:8px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-tint)}.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);align-items:stretch}.tier{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);transition:transform var(--dur-base) var(--ease-apple),box-shadow var(--dur-base) var(--ease-apple),border-color var(--dur-base) var(--ease-apple)}.tier:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(10,10,10,0.07);border-color:var(--color-border-strong)}.tier--featured{background:var(--color-ink);color:#ECECF0;border-color:var(--color-ink)}.tier--featured .tier__name{color:#fff}.tier--featured .tier__price{color:#fff}.tier--featured .tier__desc{color:#fff}.tier--featured .tier__list{color:#B8B8C2}.tier--featured .tier__tag{color:var(--color-accent)}.tier__badge{position:absolute;top:-12px;right:16px;padding:0.3rem 0.7rem;border-radius:var(--radius-pill);font-size:0.78rem;font-weight:500;color:var(--color-accent-ink);background:var(--color-accent)}.tier__tag{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.14em;color:var(--color-ink-soft)}.tier__name{font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-0.015em;margin:0.2rem 0 0.4rem}.tier__price{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:-0.02em;margin:0;display:flex;align-items:baseline;gap:0.25rem}.tier__price span{font-size:1.2rem;opacity:0.7}.tier__price small{font-size:0.95rem;font-weight:400;opacity:0.7;letter-spacing:0}.tier__desc{color:var(--color-ink-muted);margin:0}.tier__list{display:grid;gap:0.5rem}.tier__list2{display:grid;gap:0.5rem}.tier__list li{position:relative;padding-left:1.4rem;color:var(--color-ink-muted);font-size:0.96rem}.tier__list li::before{content:"→";position:absolute;left:0;color:var(--color-accent);font-weight:500}.tier__list2 li{position:relative;padding-left:1.4rem;color:var(--color-accent-ink);font-size:0.96rem}.tier__list2 li::before{content:"→";position:absolute;left:0;color:var(--color-accent);font-weight:500}.tier--featured .tier__list li::before{color:var(--color-accent-ink)}.tier--featured .tier__list2{color:#B8B8C2}.tier__cta{margin-top:auto;align-self:flex-start}.tier__price--talk{font-size:1.3rem;line-height:1.25;letter-spacing:-0.015em;display:flex;flex-direction:column;gap:0}.tier__price--talk small{font-size:0.92rem;font-weight:400;opacity:0.65;letter-spacing:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.gallery-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform var(--dur-base) var(--ease-apple),box-shadow var(--dur-base) var(--ease-apple)}.gallery-card:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(10,10,10,0.10)}.gallery-card__image{aspect-ratio:1 / 1;background:linear-gradient(135deg,#ECE6DC,#D7CFBF)}img.gallery-card__image{width:100%;object-fit:cover;display:block;}.gallery-card[data-tone="warm"] .gallery-card__image{background:linear-gradient(135deg,#F4E2D2,#DBB89B)}.gallery-card[data-tone="cool"] .gallery-card__image{background:linear-gradient(135deg,#DCE7F2,#A8BCD3)}.gallery-card[data-tone="sand"] .gallery-card__image{background:linear-gradient(135deg,#ECE6DA,#C9BCA0)}.gallery-card[data-tone="rose"] .gallery-card__image{background:linear-gradient(135deg,#F2DDD9,#D6A9A0)}.gallery-card[data-tone="fog"] .gallery-card__image{background:linear-gradient(135deg,#E5E5E0,#B5B5AE)}.gallery-card[data-tone="midnight"] .gallery-card__image{background:linear-gradient(135deg,#2E323B,#14161B)}.gallery-card__meta{padding:var(--space-3);display:grid;gap:0.3rem}.gallery-card__cat{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.14em;color:var(--color-ink-soft)}.gallery-card__title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;letter-spacing:-0.012em;margin:0}.gallery-card__note{margin:0;font-size:0.92rem;color:var(--color-ink-muted)}.insights__inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);gap:clamp(2rem,5vw,4rem);align-items:center}.insights__copy p{color:var(--color-ink-muted);max-width:56ch;margin:0 0 var(--space-3)}.insights__cta-wrap{display:flex;align-items:center;gap:0.5rem;margin-top:var(--space-3);flex-wrap:nowrap}.insights__form{display:flex;gap:0.5rem;flex-shrink:0}.insights__alle-btn{flex-shrink:0;padding:0.62rem 1.0rem;font-size:0.88rem;white-space:nowrap}.insights__form input{flex:1;min-width:14.5rem;padding:0.62rem 0.95rem;border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface);font:inherit;color:var(--color-ink);outline:none;transition:box-shadow var(--dur-fast) var(--ease-apple)}.insights__form input:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-tint)}.insights__form .btn{padding:0.62rem 1.0rem;font-size:0.88rem}.insights__copy .insights__feedback{margin-top:8px;margin-left:15px;font-size:0.82rem;font-weight:500}.insights__copy .insights__privacy{margin-top:0.7rem;margin-left:15px;font-size:0.82rem;color:var(--color-ink-soft);text-align:left}.insights__visual{display:grid;place-items:center;padding-left:1.5rem}.insights__mock{width:min(360px,100%);aspect-ratio:3 / 4;border-radius:var(--radius-lg);padding:var(--space-3);display:grid;align-content:end;background:linear-gradient(160deg,rgba(255,255,255,0.6),rgba(255,255,255,0.3));position:relative;overflow:hidden}.insights__mock::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 30% 20%,rgba(10,132,255,0.12),transparent 60%),radial-gradient(80% 80% at 80% 90%,rgba(255,217,194,0.4),transparent 70%)}.insights__mock-cover{position:relative}.insights__mock-tag{display:inline-block;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.14em;color:var(--color-ink-muted);margin-bottom:var(--space-3)}.insights__mock h3{font-family:var(--font-display);font-size:1.6rem;font-weight:600;letter-spacing:-0.015em;line-height:1.1;margin:0 0 var(--space-3)}.insights__mock-byline{font-family:var(--font-serif);font-style:italic;font-size:0.95rem;color:var(--color-ink-muted)}.contact__inner{max-width:760px}.contact__title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.5rem);font-weight:600;line-height:var(--lh-tight);letter-spacing:-0.022em;margin:0 0 var(--space-3)}.contact__sub{color:var(--color-ink-muted);font-size:var(--fs-lede);margin:0 0 var(--space-4)}.contact__cta{display:flex;flex-wrap:wrap;gap:0.75rem;align-items:center}.reveal{opacity:0;transform:translateY(18px);transition:opacity var(--dur-slow) var(--ease-apple) var(--reveal-delay,0ms),transform var(--dur-slow) var(--ease-apple) var(--reveal-delay,0ms);will-change:opacity,transform}.reveal.is-in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.blob{animation:none}.hero__scroll span{animation:none}}.footer{margin-top:var(--space-7);padding-block:var(--space-5);border-top:1px solid var(--color-border)}.footer__inner{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-4);align-items:start}.footer__brand p{color:var(--color-ink-muted);font-size:0.92rem;margin:0.3rem 0 0}.footer__logo{font-weight:600;letter-spacing:-0.01em}.footer__pacific-logo{display:block;height:28px;width:auto;margin-bottom:0.5rem;opacity:0.75}.footer__links{display:flex;flex-direction:column;gap:0.4rem;font-size:0.95rem;color:var(--color-ink-muted)}.footer__links a:hover{color:var(--color-ink)}.footer__legal{display:flex;flex-direction:column;gap:0.4rem;font-size:0.88rem;color:var(--color-ink-soft);text-align:right}.footer__legal a:hover{color:var(--color-ink)}@media (max-width:980px){.nav__links{display:none}.nav__cta{margin-left:auto}.about__grid{grid-template-columns:1fr}.about__visual{max-width:480px}.tiers{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.insights__inner{grid-template-columns:1fr}.insights__visual{padding-left:0}.footer__inner{grid-template-columns:1fr 1fr;grid-template-areas:"brand brand" "links legal"}.footer__brand{grid-area:brand}.footer__links{grid-area:links}.footer__legal{grid-area:legal;text-align:right}}.mobile-only{display:none}.gallery-dots{display:none}@media (max-width:560px){.nav__brand-name{display:block;font-size:0.72rem;letter-spacing:-0.01em}.hero{padding-block-start:clamp(1.25rem,3vh,2rem)}.hero__title{font-size:clamp(1.35rem,6vw,1.65rem);line-height:1.2}.hero__inner{gap:2rem}.hero__cta{margin-bottom:0}.hero__parallax-wrap{margin-bottom:2.5rem}.hero__cta{flex-wrap:nowrap;gap:0.5rem}.hero__cta .btn{padding:0.65rem 0.9rem;font-size:0.85rem;flex:1;justify-content:center}.logos__row{flex-wrap:wrap;gap:var(--space-2);overflow-x:unset;justify-content:center;scrollbar-width:none;padding-bottom:2px}.logos__row::-webkit-scrollbar{display:none}.logos__img{height:27.5px;flex-shrink:0}.mobile-only{display:inline}.gallery-grid{grid-template-columns:unset;display:flex;overflow-x:scroll;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;scroll-padding-inline-start:var(--container-pad);gap:0.75rem;margin-inline:calc(-1 * var(--container-pad));padding-inline:var(--container-pad);padding-bottom:var(--space-2);scrollbar-width:none}.gallery-grid::-webkit-scrollbar{display:none}.gallery-card{flex:0 0 82%;scroll-snap-align:start;touch-action:pan-x}.gallery-dots{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:var(--space-3)}.gallery-dot{width:18px;height:6px;border-radius:999px;background:var(--color-border-strong);border:none;padding:0;cursor:pointer;transform:scaleX(0.333);transform-origin:center;transition:background 0.25s var(--ease-apple),transform 0.3s var(--ease-apple);-webkit-appearance:none;appearance:none;flex-shrink:0}.gallery-dot.is-active{transform:scaleX(1);background:var(--color-ink)}.insights__cta-wrap{flex-direction:column;align-items:stretch}.insights__form{max-width:100%;flex-direction:column}.insights__form input,.insights__form .btn{width:100%}.insights__form .btn,.insights__alle-btn{padding:0.85rem 1.4rem;font-size:0.98rem}.insights__alle-btn{display:none}.insights__visual{padding-left:0}.insights__alle-mobile{display:inline-flex!important;width:auto;white-space:nowrap}.insights__copy .insights__feedback,.insights__copy .insights__privacy{max-width:100%;margin-left:0;text-align:center}#about .section__title{font-size:clamp(1.3rem,5.5vw,1.5rem)}}.page-hero{padding-block:clamp(5rem,12vh,8rem) clamp(2.5rem,5vh,4rem)}.page-hero__back{display:inline-flex;align-items:center;gap:0.45rem;font-size:0.9rem;font-weight:500;color:var(--color-ink-muted);margin-bottom:var(--space-4);transition:color var(--dur-fast) var(--ease-apple),gap var(--dur-fast) var(--ease-apple)}.page-hero__back:hover{color:var(--color-accent);gap:0.65rem}.page-hero__title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,4rem);font-weight:600;line-height:var(--lh-tight);letter-spacing:-0.025em;margin:0 0 var(--space-3)}.page-hero__title em{font-family:var(--font-serif);font-style:italic;font-weight:400}.page-hero__lede{font-size:var(--fs-lede);color:var(--color-ink-muted);max-width:64ch;margin:0;line-height:var(--lh-body)}.page-hero__stats{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.page-hero__stat{display:flex;flex-direction:column;gap:0.3rem}.page-hero__stat-label{font-size:0.74rem;text-transform:uppercase;letter-spacing:0.14em;color:var(--color-ink-soft)}.page-hero__stat-value{font-size:1rem;font-weight:600;color:var(--color-ink);letter-spacing:-0.01em}.project-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.project-gallery__item{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1 / 1}.project-placeholder-note{margin-top:var(--space-3);font-size:0.84rem;color:var(--color-ink-soft);font-style:italic}.prose{max-width:72ch}.prose h2{font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:-0.015em;margin:var(--space-6) 0 var(--space-2);color:var(--color-ink)}.prose h2:first-child{margin-top:0}.prose h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-0.01em;margin:var(--space-4) 0 var(--space-1);color:var(--color-ink)}.prose p{color:var(--color-ink-muted);margin:0 0 var(--space-3);line-height:var(--lh-body)}.prose a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}.prose a:hover{color:var(--color-accent-hover)}.prose ul{list-style:disc;padding-left:1.5rem;color:var(--color-ink-muted);margin:0 0 var(--space-3)}.prose ul li{margin-bottom:0.4rem;line-height:var(--lh-body)}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.blog-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);transition:transform var(--dur-base) var(--ease-apple),box-shadow var(--dur-base) var(--ease-apple),border-color var(--dur-base) var(--ease-apple);overflow:hidden;position:relative}.blog-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(10,10,10,0.07);border-color:var(--color-border-strong)}.blog-card__image-wrap{margin:calc(-1*var(--space-4)) calc(-1*var(--space-4)) 0;aspect-ratio:1/1;overflow:hidden;flex-shrink:0}.blog-card__image{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-apple)}.blog-card:hover .blog-card__image{transform:scale(1.03)}.blog-card__meta{display:flex;align-items:center;gap:var(--space-2)}.blog-card__tag{display:inline-flex;align-items:center;background:var(--color-accent-tint);color:var(--color-accent);padding:0.25rem 0.65rem;border-radius:var(--radius-pill);font-size:0.76rem;font-weight:500;width:fit-content;letter-spacing:0.02em;margin-left:-5px}.blog-card__date{font-size:0.82rem;color:var(--color-ink-soft)}.blog-card__title{font-family:var(--font-display);font-size:1.12rem;font-weight:600;letter-spacing:-0.012em;line-height:1.3;margin:0;color:var(--color-ink)}.blog-card__excerpt{color:var(--color-ink-muted);font-size:0.95rem;line-height:var(--lh-body);margin:0;flex:1}.blog-card__read{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.88rem;font-weight:500;color:var(--color-accent);margin-top:var(--space-1)}a.blog-card__read::after{position:absolute;inset:0;content:'';z-index:1}.blog-featured{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;transition:transform var(--dur-base) var(--ease-apple),box-shadow var(--dur-base) var(--ease-apple),border-color var(--dur-base) var(--ease-apple);text-decoration:none;color:inherit}.blog-featured:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(10,10,10,0.10);border-color:var(--color-border-strong)}.blog-featured__copy{padding:clamp(2rem,3vw,2.5rem);display:flex;flex-direction:column;gap:var(--space-3);justify-content:center}.blog-featured__meta{display:flex;align-items:center;gap:var(--space-2)}.blog-featured__title{font-family:var(--font-display);font-size:clamp(1.2rem,1.8vw,1.55rem);font-weight:600;letter-spacing:-0.02em;line-height:var(--lh-snug);margin:0;color:var(--color-ink)}.blog-featured__title em{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-0.01em}.blog-featured__excerpt{color:var(--color-ink-muted);font-size:var(--fs-body);line-height:var(--lh-body);margin:0}.blog-featured__image-wrap{overflow:hidden;aspect-ratio:5/4}.blog-featured__image{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-apple)}.blog-featured:hover .blog-featured__image{transform:scale(1.03)}.blog-featured__slideshow{position:relative}.blog-featured__slideshow .blog-featured__image{position:absolute;inset:0;opacity:0;transition:opacity 0.7s var(--ease-apple),transform var(--dur-slow) var(--ease-apple)}.blog-featured__slideshow .blog-featured__image.is-active{opacity:1}@media (max-width:980px){.project-gallery{grid-template-columns:repeat(2,1fr)}.blog-grid{grid-template-columns:1fr 1fr}.blog-featured{grid-template-columns:1fr}.blog-featured__image-wrap{order:-1}}@media (max-width:560px){.project-gallery{grid-template-columns:1fr}.blog-grid{grid-template-columns:1fr}.page-hero__stats{gap:var(--space-3)}}

/* ── Article pages ───────────────────────────────────────────────────── */
.reading-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:var(--color-accent);z-index:1000;transition:width 0.1s linear}
.article-wrap{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-pad)}
.article-header{padding-block:clamp(5rem,12vh,8rem) clamp(2rem,4vh,3rem)}
.article-header__back{display:inline-flex;align-items:center;gap:0.45rem;font-size:0.9rem;color:var(--color-ink-muted);margin-bottom:var(--space-4);transition:color var(--dur-fast) var(--ease-apple),gap var(--dur-fast) var(--ease-apple)}
.article-header__back:hover{color:var(--color-accent);gap:0.65rem}
.article-header__meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}
.article-tag{display:inline-flex;align-items:center;background:var(--color-accent-tint);color:var(--color-accent);border-radius:var(--radius-pill);padding:0.28rem 0.75rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em}
.article-header__date{font-size:0.88rem;color:var(--color-ink-soft)}
.article-header__read-time{font-size:0.88rem;color:var(--color-ink-soft)}
.article-header__read-time::before{content:"·";margin-right:var(--space-2)}
.article-title{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3.75rem);font-weight:700;line-height:var(--lh-tight);letter-spacing:-0.03em;margin:0 0 var(--space-3);color:var(--color-ink)}
.article-title em{font-family:var(--font-serif);font-style:italic;font-weight:400}
.article-lede{font-size:1.2rem;color:var(--color-ink-muted);line-height:var(--lh-body);margin:0;border-left:3px solid var(--color-accent);padding-left:var(--space-3)}
.article-body{padding-bottom:var(--space-7)}
.article-body h2{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,1.85rem);font-weight:700;letter-spacing:-0.022em;line-height:var(--lh-snug);color:var(--color-ink)}
.article-body h3{font-size:1.1rem;font-weight:600;letter-spacing:-0.015em;margin:var(--space-4) 0 var(--space-2);color:var(--color-ink)}
.article-body p{font-size:var(--fs-body);line-height:1.75;color:var(--color-ink-muted);margin:0 0 var(--space-3)}
.article-body strong{color:var(--color-ink);font-weight:600}
.article-body a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}
.article-body a:hover{color:var(--color-accent-hover)}
.callout{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0}
.callout--good{border-left-color:#30D158;background:rgba(48,209,88,0.05)}
.callout--bad{border-left-color:#FF453A;background:rgba(255,69,58,0.05)}
.callout__label{font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:0.5rem}
.callout--good .callout__label{color:#25a244}
.callout--bad .callout__label{color:#c93c32}
.callout p{margin:0!important;font-size:0.95rem!important}
.mistake-list{list-style:none;padding:0;margin:var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-3)}
.mistake-list__item{display:grid;grid-template-columns:2.5rem 1fr;gap:var(--space-2);align-items:start}
.mistake-list__number{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-accent-tint);color:var(--color-accent);font-weight:700;font-size:0.9rem;display:grid;place-items:center;flex-shrink:0}
.mistake-list__content h3{font-size:1rem;font-weight:600;margin:0.25rem 0 0.4rem;color:var(--color-ink)}
.mistake-list__content p{font-size:0.93rem!important;margin:0!important}
.faq-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);margin:var(--space-6) 0}
.faq-section__eyebrow{font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:0.14em;font-weight:500;color:var(--color-accent);margin:0 0 var(--space-2)}
.faq-section__title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:700;letter-spacing:-0.025em;margin:0 0 var(--space-4)}
.faq-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}
.faq-item{border-top:1px solid var(--color-border)}
.faq-item:last-child{border-bottom:1px solid var(--color-border)}
.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;background:transparent;border:0;cursor:pointer;text-align:left;font:inherit;color:var(--color-ink);font-weight:600;font-size:1rem;line-height:1.4}
.faq-question__icon{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-accent-tint);color:var(--color-accent);display:grid;place-items:center;flex-shrink:0;transition:transform var(--dur-fast) var(--ease-apple),background var(--dur-fast) var(--ease-apple);font-size:1rem;line-height:1}
.faq-item[open] .faq-question__icon,.faq-question[aria-expanded="true"] .faq-question__icon{transform:rotate(45deg);background:var(--color-accent);color:#fff}
.faq-answer{padding:0 0 var(--space-3);color:var(--color-ink-muted);font-size:0.95rem;line-height:1.7;display:none}
.faq-answer.is-open{display:block}
.article-cta{position:relative;border-radius:var(--radius-xl);margin:var(--space-6) 0;overflow:visible;padding:0}
.article-cta__image-wrap{border-radius:var(--radius-xl);overflow:hidden;line-height:0}
.article-cta__image-wrap img{width:100%;height:auto;display:block;object-fit:cover}
.article-cta .btn--primary{position:absolute;bottom:0;left:50%;transform:translate(-50%,50%);z-index:999;color:#fff;text-decoration:none}
.article-cta .btn--primary:hover{transform:translate(-50%,50%) translateY(-2px);color:#fff}
.article-featured-promo{margin:var(--space-6) 0 var(--space-4)}
.article-featured-promo .eyebrow{margin-bottom:var(--space-3)}
.article-body .blog-featured{color:inherit;text-decoration:none}
.article-body .blog-featured__title{font-size:clamp(1.2rem,1.8vw,1.55rem);font-weight:600;letter-spacing:-0.02em;margin:0}
.article-body .blog-featured__excerpt{line-height:var(--lh-body);margin:0}
/* Article header 2-column grid layout */
.article-header--grid{display:grid;grid-template-columns:3fr 2fr;column-gap:clamp(2rem,4vw,4rem);align-items:center}
.article-header--slideshow{align-items:stretch}
.article-header__content{display:flex;flex-direction:column;justify-content:center}
.article-header__media{border-radius:var(--radius-xl);overflow:hidden;position:relative}
.article-header__image{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.article-header--grid .article-title{font-size:clamp(1.4rem,2.8vw,2.25rem)}
.article-header--slideshow .article-header__media .blog-featured__image-wrap{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.article-header--slideshow .article-header__media .blog-featured__slideshow .blog-featured__image{width:100%;height:100%;object-fit:cover}
@media(max-width:860px){.article-header--grid{grid-template-columns:1fr}.article-header--grid .article-header__media{order:-1}.article-header--slideshow .article-header__media{height:300px}}
@media(max-width:560px){.article-header--slideshow .article-header__media{height:220px}}
.author-section{border-top:1px solid var(--color-border);padding-top:var(--space-5);margin-top:var(--space-6);padding-bottom:var(--space-6)}
.author-section__eyebrow{font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:0.14em;font-weight:500;color:var(--color-ink-soft);margin:0 0 var(--space-3)}
.author-card{display:flex;gap:var(--space-4);align-items:flex-start}
.author-card__avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--color-border)}
.author-card__info{flex:1}
.author-card__name{font-weight:700;font-size:1.05rem;letter-spacing:-0.01em;margin:0 0 0.25rem}
.author-card__role{font-size:0.88rem;color:var(--color-accent);font-weight:500;margin:0 0 var(--space-2)}
.author-card__bio{font-size:0.95rem;color:var(--color-ink-muted);line-height:1.6;margin:0 0 var(--space-2)}
.author-card__links{display:flex;gap:var(--space-2);flex-wrap:wrap}
.author-card__link{font-size:0.85rem;font-weight:500;color:var(--color-accent);text-decoration:none;display:inline-flex;align-items:center;gap:0.3rem;transition:color var(--dur-fast) var(--ease-apple)}
.author-card__link:hover{color:var(--color-accent-hover);text-decoration:underline}
.article-checklist{list-style:none;padding:0;margin:var(--space-3) 0;display:flex;flex-direction:column;gap:0.75rem}
.article-checklist li{display:flex;gap:0.75rem;align-items:flex-start;font-size:var(--fs-body);line-height:1.6;color:var(--color-ink-muted)}
.article-checklist li::before{content:"→";color:var(--color-accent);font-weight:700;flex-shrink:0;margin-top:0.05em}
.article-table-wrap{overflow-x:auto;margin:var(--space-4) 0;border-radius:var(--radius-md);border:1px solid var(--color-border)}
.article-table{width:100%;border-collapse:collapse;font-size:0.93rem;background:var(--color-surface)}
.article-table thead{background:var(--color-surface-2)}
.article-table th{text-align:left;padding:0.75rem 1rem;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.1em;font-weight:600;color:var(--color-ink-soft);white-space:nowrap;border-bottom:1px solid var(--color-border)}
.article-table td{padding:0.8rem 1rem;color:var(--color-ink-muted);border-bottom:1px solid var(--color-border);line-height:1.5}
.article-table tbody tr:last-child td{border-bottom:0}
.article-table tbody tr:hover td{background:var(--color-surface-2)}
@media (max-width:600px){.author-card{flex-direction:column}.faq-section{padding:var(--space-4) var(--space-3)}.article-table th,.article-table td{padding:0.65rem 0.75rem;font-size:0.88rem}}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   AI SHOWCASE — Lovart-style, light theme
   Centered portrait → prompt slides up → results in
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* 400vh outer: 300vh of stickable scroll space */
.ai-showcase {
  position: relative;
  height: 500vh;
  margin-bottom: -5rem;
}

/* Sticky panel — full viewport, flex column, centered content */
.ai-showcase__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: visible;
  padding-top: 80px;
}

/* ── Heading block ──────────────────────────────────── */

.ai-showcase__header {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: clamp(20px, 3vh, 36px) var(--container-pad) 0;
  text-align: center;
}

.ai-showcase__eyebrow {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-accent);
  margin: 0;
}

.ai-showcase__heading {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.5vw, 3rem);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--color-ink);
  margin: 0;
}

.ai-showcase__subline {
  font-size: clamp(0.88rem, 1.2vw, 1.05rem);
  color: var(--color-ink-muted);
  max-width: 52ch;
  line-height: 1.5;
  margin: 0;
}

/* ── Stage ──────────────────────────────────────────── */

/* Fills remaining viewport height; composition lives inside */
.ai-showcase__stage {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: clamp(14px, 2vh, 30px);
  overflow: visible;
}

/* Relative context for absolute prompt + results children */
.ai-showcase__composition {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: visible;
}

/* ── Portrait frame ─────────────────────────────────── */

.ai-showcase__portrait-outer {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  position: relative;
  z-index: 3;
}

/* Shared label bar (used above portrait and above each result card) */
.ai-showcase__img-meta,
.ai-result__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 15px;
  user-select: none;
}

.ai-img-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1;
  color: var(--color-ink-muted);
}

.ai-img-dims {
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1;
  color: var(--color-ink-soft);
  opacity: 0.5;
}

/* The bordered frame — light theme version of Lovart's dark frame */
.ai-showcase__portrait-frame {
  position: relative;
  width: clamp(210px, 30vh, 330px);
  aspect-ratio: 3 / 4;
  border: 1px solid #147eff;
  background: var(--color-surface);
  overflow: visible; /* corners stick out */
}

.ai-showcase__portrait-frame img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
}

/* 4 corner markers — 7×7 white squares that sit on the border */
.ai-corner {
  position: absolute;
  width: 7px;
  height: 7px;
  background: #fff;
  border: 1px solid #147eff;
  z-index: 2;
  pointer-events: none;
}
.ai-corner--tl { top: -3.5px;    left: -3.5px; }
.ai-corner--tr { top: -3.5px;    right: -3.5px; }
.ai-corner--bl { bottom: -3.5px; left: -3.5px; }
.ai-corner--br { bottom: -3.5px; right: -3.5px; }

/* ── Prompt box ─────────────────────────────────────── */

/* Absolute, centred horizontally below portrait.
   JS drives opacity + translateY directly (no CSS transition). */
.ai-showcase__prompt {
  position: absolute;
  top: calc(100% - 75px);
  left: 50%;
  transform: translateX(-50%) translateY(110px);
  opacity: 0;
  width: clamp(280px, 34vw, 476px);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  z-index: 10;
}

.ai-showcase__prompt-content {
  font-family: var(--font-sans);
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1.45;
  color: var(--color-ink);
  margin-bottom: 16px;
  min-height: 32px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
}

/* Product chip: thumbnail + name */
.ai-showcase__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--color-surface-2);
  border-radius: 12px;
  padding: 4px 9px 4px 4px;
  margin-right: 10px;
  flex-shrink: 0;
  line-height: 1;
}

.ai-showcase__chip-img-wrap {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--color-surface-2);
  flex-shrink: 0;
}

.ai-showcase__chip-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ai-showcase__chip-name {
  font-family: var(--font-sans);
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1;
  color: var(--color-ink);
  white-space: nowrap;
}

/* Typed text — individual .char spans animated by JS */
.ai-showcase__typed {
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1.45;
  color: var(--color-ink);
  margin-top: 8px;
}

.ai-showcase__typed .char {
  display: inline;
}

/* Toolbar row */
.ai-showcase__prompt-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ai-showcase__toolbar-btn,
.ai-showcase__submit-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: default;
}

.ai-showcase__toolbar-btn {
  background: transparent;
  color: var(--color-ink-muted);
}

.ai-showcase__toolbar-right {
  display: flex;
  align-items: center;
  gap: 4px;
}

.ai-showcase__submit-btn {
  background: var(--color-ink);
  color: #fff;
}

/* ── Results grid ──────────────────────────────────── */

/* Absolute row below the composition's natural height (= portrait height).
   Left-centred with translateX(-50%); JS animates each card in. */
.ai-showcase__results {
  position: absolute;
  /* portrait is ~20vh tall (3:4 ratio), plus 8px gap, plus ~110px for prompt clearance */
  top: calc(100% + clamp(148px, 19vh, 190px));
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: clamp(12px, 1.5vw, 20px);
  width: clamp(320px, 76vw, 1100px);
}

/* Each result card: meta bar + square image frame */
.ai-result {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: 0;
  transform: translateY(-20px) scale(1.15);
  /* JS drives opacity + transform directly */
}

/* 1:1 image frame for 960×960 results */
.ai-result__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 15px;
  background: var(--color-surface-2);
}

/* Loading skeleton */
.ai-result__skeleton {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, var(--color-surface-2) 0%, var(--color-surface) 100%);
  transition: opacity 500ms var(--ease-apple);
}

.ai-result.is-visible .ai-result__skeleton { opacity: 0; }

.ai-result__pulse {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.04);
  animation: ai-pulse 1.6s ease-in-out infinite;
}

@keyframes ai-pulse {
  0%, 100% { opacity: 0; }
  50%       { opacity: 1; }
}

/* Image starts blurred/scaled, animates to sharp when card becomes visible */
.ai-result__frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
  z-index: 1;
  transform: scale(1.1);
  filter: blur(16px);
  opacity: 0;
  transition:
    transform 800ms var(--ease-apple),
    filter    800ms var(--ease-apple),
    opacity   600ms var(--ease-apple);
}

.ai-result.is-visible .ai-result__frame img {
  transform: scale(1);
  filter: blur(0);
  opacity: 1;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .ai-result__frame img { transition: none; }
  .ai-result__pulse { animation: none; }
}

/* ── Mobile (≤ 768px) ─────────────────────────────── */

@media (max-width: 768px) {
  .ai-showcase { height: 480vh; }

  .ai-showcase__sticky { overflow: visible; }

  .ai-showcase__subline { display: none; }

  .ai-showcase__heading { font-size: clamp(1.4rem, 6vw, 2rem); }

  .ai-showcase__portrait-frame {
    width: clamp(165px, 25vh, 270px);
  }

  .ai-showcase__prompt {
    /* Shift 10rem lower than the desktop overlap position */
    top: calc(100% - 75px + 10rem);
    width: calc(100vw - 2 * var(--container-pad));
    min-width: 0;
    border-radius: 18px;
    padding: 12px;
  }

  .ai-showcase__chip-name,
  .ai-showcase__typed,
  .ai-showcase__prompt-content { font-size: 14px; }

  .ai-showcase__results {
    /* Clear prompt (10rem shift) + prompt height (~90px) + 24px gap */
    top: calc(100% + 10rem + 120px);
    width: calc(100vw - 2 * var(--container-pad));
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
}
