body.atmosphere-home *{box-sizing:border-box}body.atmosphere-home a{color:inherit;text-decoration:none}body.atmosphere-home button{font:inherit}body.atmosphere-home a,body.atmosphere-home button,body.atmosphere-home summary{-webkit-tap-highlight-color:transparent}body.atmosphere-home a:focus-visible,body.atmosphere-home button:focus-visible,body.atmosphere-home summary:focus-visible{outline:2px solid var(--accent);outline-offset:7px}body.atmosphere-home ::selection{background:var(--accent);color:var(--bg)}body.atmosphere-home .skip{position:fixed;left:20px;top:-80px;z-index:10;background:var(--ink);color:var(--bg);padding:15px}body.atmosphere-home .skip:focus{top:20px}body.atmosphere-home .atmosphere{position:fixed;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(120deg,#141225,#0b1720 55%,#121218)}body.atmosphere-home .glow{position:absolute;width:90vw;height:95vh;border-radius:50%;filter:blur(100px);opacity:.22;animation:drift 24s ease-in-out infinite alternate}body.atmosphere-home .glow-one{background:#166258;left:-35%;top:30%}body.atmosphere-home .glow-two{background:#584179;left:10%;top:-50%;animation-delay:-8s}body.atmosphere-home .glow-three{background:#686032;right:-50%;top:-30%;animation-delay:-16s}body.atmosphere-home canvas{width:100%;height:100%;position:absolute;inset:0}body.atmosphere-home .grain{position:absolute;inset:0;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}body.atmosphere-home .wordmark{display:flex;align-items:center;gap:10px;font-family:Manrope,sans-serif;font-size:28px;font-weight:800;letter-spacing:-1.5px}body.atmosphere-home .wordmark svg{width:27px;height:27px;stroke:var(--ink);stroke-width:2}body.atmosphere-home .wordmark>span{font:12px 'DM Sans',sans-serif;align-self:flex-start;margin-top:6px;letter-spacing:0}body.atmosphere-home .contact-link{font-size:14px;border-bottom:1px solid #ffffff60;padding:9px 0;min-width:90px;display:flex;justify-content:space-between}body.atmosphere-home .hero{min-height:calc(100svh - 106px);padding:35px 5% 45px;display:flex;flex-direction:column;justify-content:space-between;position:relative}body.atmosphere-home .hero-top{display:flex;justify-content:space-between;color:#b9bbb9;font-size:14px;line-height:1.6}body.atmosphere-home .hero-top p{margin:0}body.atmosphere-home .hero h1{font-family:Manrope,sans-serif;font-size:clamp(80px,10.9vw,190px);font-weight:400;letter-spacing:-.075em;line-height:1.03;margin:65px 0 60px;position:relative}body.atmosphere-home em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.06em}body.atmosphere-home h1 em{font-size:1.13em}body.atmosphere-home .heading-star{display:inline-block;font-size:.62em;vertical-align:15%;margin-left:22%;color:#d6e4c8;font-family:serif;animation:turn 70s linear infinite}body.atmosphere-home .hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:25px}body.atmosphere-home .hero-bottom p{font-size:17px;line-height:1.6;margin:0}body.atmosphere-home .explore{display:flex;align-items:center;gap:28px;font-size:14px}body.atmosphere-home .circle{height:48px;width:48px;border:1px solid #ffffff50;border-radius:50%;display:grid;place-items:center;font-size:21px;transition:background .3s}body.atmosphere-home .explore:hover .circle{background:#ffffff20}body.atmosphere-home .issue{font-size:10px;letter-spacing:.12em;color:var(--muted);writing-mode:vertical-rl;position:absolute;right:20px;top:44%}body.atmosphere-home .section{padding:130px 5%;border-top:1px solid var(--line)}body.atmosphere-home .section-label{display:flex;gap:10px;align-items:center;font-size:11px;letter-spacing:.12em;color:#bfc3be;line-height:1.5}body.atmosphere-home .section-label>span:last-child:not(.dot){margin-left:auto}body.atmosphere-home .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #d5ef9c88}body.atmosphere-home .intro,body.atmosphere-home .capabilities{display:grid;grid-template-columns:1fr 2.2fr;gap:6%}body.atmosphere-home .intro>.section-label,body.atmosphere-home .capabilities>.section-label{align-self:start;padding-top:15px}body.atmosphere-home .section h2{font-family:Manrope,sans-serif;font-size:clamp(45px,5.5vw,88px);font-weight:400;letter-spacing:-.055em;line-height:1.12;margin:0}body.atmosphere-home .intro-bottom{display:flex;justify-content:space-between;gap:60px;margin-top:70px}body.atmosphere-home .intro-bottom p{max-width:410px;font-size:18px;line-height:1.8;color:#bfc5c7;margin:0}body.atmosphere-home .asterisk{font-size:76px;color:var(--accent);line-height:1}body.atmosphere-home .capabilities{background:#09111c66}body.atmosphere-home .services{margin-top:65px}body.atmosphere-home details{border-top:1px solid var(--line)}body.atmosphere-home details:last-child{border-bottom:1px solid var(--line)}body.atmosphere-home summary{display:flex;align-items:center;gap:28px;cursor:pointer;list-style:none;padding:29px 0}body.atmosphere-home summary::-webkit-details-marker{display:none}body.atmosphere-home .num{font-size:12px;color:var(--muted)}body.atmosphere-home summary h3{font-size:clamp(24px,2.7vw,39px);font-weight:400;letter-spacing:-.04em;margin:0}body.atmosphere-home .plus{margin-left:auto;font-size:28px;font-weight:400;transition:transform .3s}body.atmosphere-home details[open] .plus{transform:rotate(45deg)}body.atmosphere-home .service-body{padding:0 40px 30px 43px;max-width:580px;color:#bfc5c7}body.atmosphere-home .service-body p{font-size:17px;line-height:1.75;margin:0 0 25px}body.atmosphere-home .service-body>span{font-size:12px;color:#d4dfa9}body.atmosphere-home .work-head{display:flex;justify-content:space-between;align-items:end}body.atmosphere-home .work-head .section-label{margin-bottom:38px}body.atmosphere-home .work-head p{font-size:16px;line-height:1.7;color:var(--muted)}body.atmosphere-home .projects{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:65px 0 45px}body.atmosphere-home .project:nth-child(2){margin-top:100px}body.atmosphere-home .project-art{height:390px;position:relative;padding:25px;overflow:hidden;transition:filter .5s}body.atmosphere-home .release{background:radial-gradient(ellipse at 60% 80%,#4a615e,#172827 70%)}body.atmosphere-home .commerce{background:radial-gradient(ellipse at 50% 60%,#544b78,#262337 70%)}body.atmosphere-home .art-top,body.atmosphere-home .art-bottom{font-size:10px;letter-spacing:.12em;color:#c7d0c9;position:relative;z-index:1}body.atmosphere-home .art-top{display:flex;justify-content:space-between}body.atmosphere-home .art-bottom{position:absolute;bottom:25px}body.atmosphere-home .release-visual{height:270px;display:flex;align-items:center;justify-content:space-around;position:relative}body.atmosphere-home .release-node{width:26%;height:95px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;background:#243c39;border:1px solid #91b2a366;box-shadow:0 18px 35px #050a0a55;z-index:1;transform:translateY(8px);transition:transform .6s}body.atmosphere-home .release-node span{font-size:10px;color:#9baea4}body.atmosphere-home .release-node:nth-of-type(3){transform:translateY(-10px)}body.atmosphere-home .release-node.live{background:#cce7a9;color:#203524;transform:translateY(-29px)}body.atmosphere-home .release-node.live span{color:#425739}body.atmosphere-home .release-line{position:absolute;left:8%;right:8%;height:1px;background:#cce7a9;transform:rotate(-12deg)}body.atmosphere-home .project:hover .release-node{transform:translateY(-15px)}body.atmosphere-home .project:hover .project-art{filter:brightness(1.1)}body.atmosphere-home .commerce-visual{position:absolute;inset:45px 20px}body.atmosphere-home .ring{position:absolute;left:50%;top:50%;border:1px solid #b8adce55;border-radius:50%;transform:translate(-50%,-50%) rotate(-25deg);width:75%;height:70%}body.atmosphere-home .r2{width:53%;height:100%;transform:translate(-50%,-50%) rotate(45deg)}body.atmosphere-home .r3{width:100%;height:45%;transform:translate(-50%,-50%) rotate(25deg)}body.atmosphere-home .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:80px;width:80px;display:grid;place-items:center;border-radius:50%;background:#d4cbe8;color:#393143;font-size:46px;font-family:Georgia,serif;box-shadow:0 0 65px #cab0ff55}body.atmosphere-home .orbit-label{position:absolute;font-size:9px;letter-spacing:.1em;background:#332e47;padding:10px;border:1px solid #b8adce55}body.atmosphere-home .o1{left:7%;top:25%}body.atmosphere-home .o2{right:1%;top:47%}body.atmosphere-home .o3{left:27%;bottom:3%}body.atmosphere-home .project-caption{display:flex;align-items:center;justify-content:space-between;margin-top:23px}body.atmosphere-home .project-caption h3{font-size:24px;font-weight:400;letter-spacing:-.03em;margin:0}body.atmosphere-home .project-caption>span{font-size:25px}body.atmosphere-home .project>p{font-size:13px;color:var(--muted);margin:10px 0}body.atmosphere-home .text-link{display:flex;width:220px;justify-content:space-between;border-bottom:1px solid #ffffff60;padding-bottom:14px;font-size:14px}body.atmosphere-home .contact{padding-top:100px;padding-bottom:110px;position:relative}body.atmosphere-home .contact .section-label{margin-bottom:90px}body.atmosphere-home .contact-pre{font-size:15px;color:var(--muted)}body.atmosphere-home .contact h2{font-size:clamp(55px,8.5vw,135px)}body.atmosphere-home .contact-cta{display:flex;justify-content:space-between;align-items:center;max-width:380px;border-bottom:1px solid #e8ead7;padding:25px 0 17px;margin-top:35px;font-size:17px}body.atmosphere-home .contact-cta span{font-size:28px}body.atmosphere-home .contact-note{position:absolute;right:5%;bottom:115px;font-size:14px;line-height:1.7;color:var(--muted)}body.atmosphere-home .motion{position:fixed;bottom:20px;right:22px;background:#171d23d9;backdrop-filter:blur(15px);border:1px solid #ffffff30;color:var(--ink);padding:10px 14px;border-radius:30px;display:flex;gap:10px;align-items:center;cursor:pointer;font-size:12px;z-index:5}body.atmosphere-home .motion-icon{width:12px}body.atmosphere-home .reveal{opacity:1;transform:none}body.atmosphere-home.js-motion .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}body.atmosphere-home.js-motion .reveal.visible{opacity:1;transform:none}body.atmosphere-home.paused *{animation-play-state:paused!important}@keyframes drift{to{transform:translate(15%,15%) scale(1.2)}}@keyframes turn{to{transform:rotate(360deg)}}@media(min-width:1600px){body.atmosphere-home main{max-width:1800px;margin-left:auto;margin-right:auto}}@media(max-width:900px){body.atmosphere-home .hero h1{font-size:12vw}body.atmosphere-home .heading-star{margin-left:15%}body.atmosphere-home .intro,body.atmosphere-home .capabilities{grid-template-columns:1fr;gap:45px}body.atmosphere-home .section{padding:90px 6%}body.atmosphere-home .section-label{max-width:350px}body.atmosphere-home .hero{padding:30px 6% 40px}body.atmosphere-home .intro-bottom{margin-top:45px}body.atmosphere-home .projects{gap:22px}body.atmosphere-home .project-art{height:300px;padding:18px}body.atmosphere-home .release-visual{height:210px}body.atmosphere-home .contact-note{position:static;margin-top:40px}}@media(max-width:620px){body.atmosphere-home .wordmark{font-size:25px}body.atmosphere-home .contact-link{font-size:13px;min-width:75px}body.atmosphere-home .hero{min-height:calc(100svh - 125px);padding-top:25px}body.atmosphere-home .hero-top{font-size:12px;gap:20px}body.atmosphere-home .hero-top p:last-child{max-width:115px;text-align:right}body.atmosphere-home .hero h1{font-size:15.5vw;margin:65px 0;line-height:1.06;letter-spacing:-.08em}body.atmosphere-home .heading-star{margin-left:13%;font-size:.7em}body.atmosphere-home .hero-bottom{align-items:start;flex-direction:column;gap:25px}body.atmosphere-home .hero-bottom p{font-size:15px}body.atmosphere-home .explore{font-size:12px;gap:20px}body.atmosphere-home .circle{height:38px;width:38px}body.atmosphere-home .issue{display:none}body.atmosphere-home .section h2{font-size:43px}body.atmosphere-home .section{padding:75px 6%}body.atmosphere-home .intro-bottom{gap:25px}body.atmosphere-home .intro-bottom p{font-size:16px}body.atmosphere-home .asterisk{font-size:48px}body.atmosphere-home summary{gap:18px;padding:25px 0}body.atmosphere-home summary h3{font-size:25px}body.atmosphere-home .service-body{padding-left:32px;padding-right:0}body.atmosphere-home .services{margin-top:40px}body.atmosphere-home .work-head{align-items:start;flex-direction:column;gap:15px}body.atmosphere-home .projects{grid-template-columns:1fr;margin-top:35px;gap:40px}body.atmosphere-home .project:nth-child(2){margin-top:0}body.atmosphere-home .project-art{height:330px}body.atmosphere-home .release-visual{height:235px}body.atmosphere-home .contact .section-label{margin-bottom:55px}body.atmosphere-home .contact h2{font-size:13vw}body.atmosphere-home .contact-cta{font-size:15px}body.atmosphere-home .motion{bottom:14px;right:14px}}@media(prefers-reduced-motion:reduce){body.atmosphere-home *,body.atmosphere-home *::before,body.atmosphere-home *::after{animation:none!important;transition:none!important}body.atmosphere-home.js-motion .reveal{opacity:1;transform:none}}

/* Chapter-to-chapter depth: full panels pin, recede, and are covered by
   the next panel. Negative sticky tops let tall chapters finish reading. */
body.atmosphere-home main{position:relative;isolation:isolate;padding-bottom:0}
body.atmosphere-home .chapter-anchor{height:0;position:relative;pointer-events:none}
/* Sized by JS; gives the sticky closing chapter its travel. Never seen. */
body.atmosphere-home .chapter-tail{pointer-events:none}
body.atmosphere-home.depth-enabled main>section{position:sticky;top:var(--pin-top,0px);transform-origin:50% 0;will-change:transform;backface-visibility:hidden}
/* The panel surface lives on ::before so a chapter can fade or feather its
   own background without taking its content with it. */
body.atmosphere-home main>section{background:none;box-shadow:0 -30px 90px #04091440}
body.atmosphere-home main>section::before{content:'';position:absolute;inset:-12% 0;z-index:0;pointer-events:none;opacity:var(--panel-opacity,1);transform:translate3d(0,var(--panel-parallax,0px),0);will-change:transform;-webkit-mask-image:var(--panel-mask,none);mask-image:var(--panel-mask,none);background:radial-gradient(ellipse at 5% 90%,#142e30 0,transparent 62%),linear-gradient(120deg,#171a2b,#101320 70%,#201f24)}
body.atmosphere-home main>section:nth-of-type(2)::before{background:radial-gradient(ellipse at 10% 80%,#193430,transparent 65%),linear-gradient(120deg,#1b2030,#151125)}
body.atmosphere-home main>section:nth-of-type(3)::before{background:radial-gradient(ellipse at 85% 30%,#273932,transparent 65%),linear-gradient(120deg,#111e26,#141522)}
body.atmosphere-home main>section:nth-of-type(4)::before{background:radial-gradient(ellipse at 70% 50%,#2b2440,transparent 70%),#101923}
body.atmosphere-home main>section>*{position:relative;z-index:1}
body.atmosphere-home main>section::after{content:'';position:absolute;inset:0;background:#020710;opacity:var(--chapter-shade,0);pointer-events:none;z-index:5}
body.atmosphere-home canvas.particle-overlay{position:fixed;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}body.atmosphere-home .motion{z-index:10}
@media(prefers-reduced-motion:reduce){body.atmosphere-home.depth-enabled main>section{position:relative;top:auto;transform:none!important}body.atmosphere-home main>section::after{display:none}}

/* Full-bleed chapter surfaces; depth belongs to their content only. */
body.atmosphere-home main{max-width:none!important;width:100%;margin-inline:0!important}
body.atmosphere-home main>section{width:100%}
body.atmosphere-home main>section>div,body.atmosphere-home main>section>h1,body.atmosphere-home main>section>h2,body.atmosphere-home main>section>p,body.atmosphere-home main>section>a{scale:var(--content-scale,1);transform-origin:50% 0;position:relative;top:var(--content-retreat,0px)}
@media(prefers-reduced-motion:reduce){body.atmosphere-home main>section>*{scale:1!important;top:auto!important}}
/* That retreat offset sets `top` on every direct child, which silently pinned
   the absolutely-positioned closing note to the top of its chapter instead of
   the bottom edge it asks for. */
body.atmosphere-home main>section>.contact-note{top:auto}

/* Every chapter fills the viewport; longer content remains fully accessible. */
body.atmosphere-home main > section{min-height:100vh;min-height:100svh}
body.atmosphere-home main > .intro,body.atmosphere-home main > .capabilities{align-content:center}

/* Snap to stable flow anchors, never the transformed sticky panels. */
body.atmosphere-home .chapter-anchor{scroll-snap-align:start;scroll-snap-stop:normal}
@media(prefers-reduced-motion:reduce){}

/* Navigation stays outside the chapter scroll/snap movement. */
body.atmosphere-home main>.hero{padding-top:145px}
body.atmosphere-home main>.section{padding-top:max(130px,14svh)}
@media(max-width:620px){body.atmosphere-home main>.hero{padding-top:165px}body.atmosphere-home main>.section{padding-top:165px}}

/* Lighter navigation glass lets the atmosphere remain visible. */

/* Reveal-threshold snapping is controlled by JS, never nearest-anchor snapping. */
body.atmosphere-home .chapter-anchor{scroll-snap-align:none}

/* Fit the first screen including its fixed-header clearance. */
body.atmosphere-home main>.hero{height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;gap:clamp(12px,2vh,24px);padding-bottom:clamp(24px,5vh,45px)}
body.atmosphere-home main>.hero h1{font-size:clamp(48px,min(10.9vw,17dvh),190px);margin:0;flex-shrink:0}
body.atmosphere-home main>.hero .hero-top,body.atmosphere-home main>.hero .hero-bottom{flex-shrink:0}
@media(max-width:620px){body.atmosphere-home main>.hero h1{font-size:min(15.5vw,15dvh);margin:0}}
/* Short/zoomed viewports must remain readable rather than clipping content. */
@media(max-height:540px){body.atmosphere-home main>.hero{height:auto;min-height:100dvh}body.atmosphere-home main>.hero h1{font-size:clamp(40px,8vw,80px);margin:20px 0}}

/* Four different boundary mechanics, so no two chapters change the same way.
   The axis that varies is which layer moves, and in which direction.

   1 cover    hero -> intro          the incoming panel slides up over a pinned,
                                     receding, darkening hero.
   2 dissolve intro -> capabilities  nothing slides. The intro pins, blurs and
                                     fades out on the spot while the next panel
                                     fades up out of the atmosphere.
   3 flow     capabilities -> work   no panel edge exists: both surfaces feather
                                     away, and the chapters simply drift past one
                                     another at different speeds.
   4 reveal   work -> contact        the inverse of the cover. The portfolio is
                                     the layer that moves, lifting upward with its
                                     cards parting, to uncover a chapter that was
                                     already waiting underneath. */

/* 1 — cover keeps the default pinned surface. */

/* 2 — dissolve. */
body.atmosphere-home.depth-enabled main>section[data-transition="dissolve"]{position:sticky;top:var(--pin-top,0px);box-shadow:none}
body.atmosphere-home main>section[data-transition="dissolve"]>*{opacity:var(--exit-opacity,1);filter:blur(var(--exit-blur,0px))}

/* 3 — cascade. The panel keeps its feathered edges so nothing covers anything;
   the boundary is carried by the four steps leaving one after another. */
body.atmosphere-home.depth-enabled main>section[data-transition="cascade"]{position:relative;top:auto;will-change:auto;box-shadow:none;--panel-mask:linear-gradient(to bottom,transparent 0,#000 16%,#000 60%,transparent 100%)}
body.atmosphere-home main>section[data-transition="cascade"]>*{opacity:var(--enter-opacity,1);top:var(--content-retreat,0px)}
body.atmosphere-home main>section[data-transition="cascade"]::before{opacity:0}
body.atmosphere-home main>.process-chapter>.process-stage{background:none;box-shadow:none;clip-path:none;overflow:visible;isolation:isolate;will-change:transform}
body.atmosphere-home main>.process-chapter>.process-stage::before{content:'';position:absolute;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);z-index:0;background:radial-gradient(ellipse at var(--process-glow-x,25%) 55%,#a8cda008,transparent 65%),radial-gradient(ellipse at 85% 30%,#273932,transparent 65%),linear-gradient(120deg,#111e26,#141522)}
/* Evolve stays opaque until its content exits, then releases Possibility. */
body.atmosphere-home main>.process-chapter>.process-stage::before{opacity:1}
body.atmosphere-home main>.process-chapter>.process-stage>.process-body{position:relative;z-index:1}
body.atmosphere-home main>.process-chapter>.process-stage>.process-heading,body.atmosphere-home main>.process-chapter>.process-stage>.process-body,body.atmosphere-home main>.process-chapter>.process-stage>.process-nav{transform:translate3d(0,var(--process-content-exit-y,0px),0);will-change:transform}

/* 4 — uncover, held by the compositor rather than by script. The closing
   chapter is sticky-pinned and the portfolio simply scrolls off it in normal
   flow, so both layers are driven by the browser itself. Holding the chapter
   still with a per-frame transform cannot work: scrolling runs on the
   compositor thread and a main-thread transform always trails it by a frame,
   which is visible as shake on an element that is supposed to be motionless.
   The sheet's hard bottom edge is the wipe line; only its top is feathered,
   for the cascade boundary above. A raised z-index puts it over what it
   uncovers, and JS sizes the pin to exactly one viewport in measure(). */
body.atmosphere-home.depth-enabled main>section[data-transition="curtain"]{position:relative;top:auto;box-shadow:none;--panel-mask:linear-gradient(to bottom,transparent 0,#000 13%,#000 100%)}
body.atmosphere-home main>section[data-transition="curtain"]{margin-top:-100svh;transform:translate3d(0,var(--possibility-enter-y,0px),0);will-change:transform}
/* Keep the underlay transform on the browser's scroll clock, rather than
   chasing compositor scrolling one requestAnimationFrame behind. */
body.atmosphere-home.native-reveal main>section[data-transition="curtain"]{animation:possibility-underlay linear both;animation-timeline:scroll(root block);animation-range:var(--reveal-start) var(--reveal-end)}
@keyframes possibility-underlay{from{transform:translate3d(0,var(--reveal-offset),0)}to{transform:translate3d(0,0,0)}}
body.atmosphere-home main>section[data-transition="curtain"]{overflow:clip}
body.atmosphere-home main>section[data-transition="curtain"]>*{opacity:var(--exit-opacity,1);top:var(--content-retreat,0px)}
body.atmosphere-home main>section[data-transition="curtain"] .project{position:relative}
body.atmosphere-home main>section[data-transition="curtain"] .project:first-child{left:calc(-1 * var(--curtain-shift,0%));opacity:var(--curtain-opacity,1)}
body.atmosphere-home main>section[data-transition="curtain"] .project:last-child{left:var(--curtain-shift,0%);opacity:var(--curtain-opacity,1)}

/* Only the cover boundary is meant to show a seam; the rule that draws one
   across the top of every chapter would give the other three away. */
body.atmosphere-home main>section[data-transition="dissolve"],body.atmosphere-home main>section[data-transition="cascade"],body.atmosphere-home main>section[data-transition="curtain"],body.atmosphere-home main>section[data-transition="arrival"]{border-top:0}

/* 5 — arrival: the closing chapter settles in, and is never covered. */
/* 5 — arrival: sticky, so it is held perfectly still while it is uncovered. */
body.atmosphere-home.depth-enabled main>section[data-transition="arrival"]{position:sticky;top:0;box-shadow:none}

@media(prefers-reduced-motion:reduce){body.atmosphere-home main>section[data-transition]>*{opacity:1!important;filter:none!important}body.atmosphere-home main>section[data-transition="curtain"] .project{left:0;opacity:1}body.atmosphere-home main>section[data-transition]{--panel-mask:none}body.atmosphere-home main>section::before{opacity:1!important}}

/* Portfolio: close-up concept interfaces, with restrained product detail. */
body.atmosphere-home .work> .work-head,body.atmosphere-home .work> .projects,body.atmosphere-home .work> .text-link{max-width:1280px;margin-left:auto;margin-right:auto}
body.atmosphere-home .projects{gap:28px;align-items:start}body.atmosphere-home .project:nth-child(2){margin-top:0}
body.atmosphere-home .project-art{height:440px;padding:30px 24px 0;border:1px solid #ffffff12;border-radius:3px;overflow:hidden}
body.atmosphere-home .project-art.release{background:radial-gradient(ellipse at 30% 100%,#233b36,#111d21 80%)}
body.atmosphere-home .project-art.commerce{background:radial-gradient(ellipse at 70% 100%,#323045,#171b27 80%)}
body.atmosphere-home .product-shot{background:#11181e;border:1px solid #ffffff24;border-radius:9px 9px 0 0;padding:0 24px 24px;min-height:440px;box-shadow:0 16px 50px #0007;transform:translateY(12px);transition:transform .5s,border-color .5s;font-family:'DM Sans',sans-serif}
body.atmosphere-home .project:hover .project-art{filter:none}body.atmosphere-home .project:hover .product-shot{transform:translateY(6px) scale(1.012);border-color:#ffffff40}
body.atmosphere-home .product-bar{display:flex;align-items:center;justify-content:space-between;margin:0 -24px;padding:16px 20px;border-bottom:1px solid #ffffff12;background:#ffffff02}
body.atmosphere-home .product-name{font-size:14px;font-weight:600;letter-spacing:-.4px}body.atmosphere-home .product-name b{font-weight:400;color:#89979f}body.atmosphere-home .mock-label{font-size:9px;letter-spacing:.12em;color:#83919b}
body.atmosphere-home .product-breadcrumb{font-size:11px;color:#8c9aa3;margin:21px 0}body.atmosphere-home .product-breadcrumb span{color:#4e5b65;margin:0 8px}
body.atmosphere-home .release-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}body.atmosphere-home .ui-eyebrow{font-size:9px;letter-spacing:.11em;color:#8b9da7}body.atmosphere-home .release-heading h4{font-size:27px;line-height:1.2;font-weight:500;letter-spacing:-.8px;margin:7px 0}body.atmosphere-home .release-heading p{font-size:12px;color:#8999a3;margin:0}body.atmosphere-home .status-pill{font-size:10px;color:#9bd6b2;background:#77d89b0c;border:1px solid #77d89b25;border-radius:20px;padding:6px 9px;white-space:nowrap}
body.atmosphere-home .deployment-summary{display:flex;align-items:center;gap:12px;padding:16px 0;margin-top:15px;border-bottom:1px solid #ffffff12}body.atmosphere-home .commit-icon{font-size:18px;color:#aabbbf;background:#ffffff06;border:1px solid #ffffff15;border-radius:5px;padding:6px 10px}body.atmosphere-home .deployment-summary strong{font-size:12px;font-weight:500}body.atmosphere-home .deployment-summary small{display:block;font-size:10px;color:#8e9ca5;margin-top:5px}body.atmosphere-home .deployment-summary small span{margin:0 5px}body.atmosphere-home .summary-check{margin-left:auto;color:#9bd6b2;font-size:14px}
body.atmosphere-home .deployment-stages{display:flex;align-items:center;gap:12px;padding:23px 0}body.atmosphere-home .deployment-stages>div{display:grid;grid-template-columns:19px auto;gap:3px 6px;align-items:center}body.atmosphere-home .deployment-stages>div>span{font-size:10px;color:#9bd6b2;border:1px solid #77d89b40;border-radius:50%;height:18px;width:18px;display:grid;place-items:center}body.atmosphere-home .deployment-stages strong{font-size:11px;font-weight:500}body.atmosphere-home .deployment-stages small{grid-column:2;font-size:10px;color:#82939d}body.atmosphere-home .deployment-stages>i{flex:1;height:1px;background:#83c7a140}
body.atmosphere-home .environment-row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#ffffff03;border:1px solid #ffffff12;border-radius:5px;padding:12px;font-size:10px;color:#8fa0aa}body.atmosphere-home .environment-row>span:first-child{color:#dce2e2}body.atmosphere-home .environment-row b{font-weight:400;color:#9bd6b2}body.atmosphere-home .environment-row i,body.atmosphere-home .channel-footer i{display:inline-block;width:4px;height:4px;background:#8dcca5;border-radius:50%;margin-right:5px}body.atmosphere-home .release-metrics,body.atmosphere-home .commerce-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 0}body.atmosphere-home .release-metrics small,body.atmosphere-home .commerce-stats small{font-size:10px;color:#8b9ba5;display:block}body.atmosphere-home .release-metrics strong{font-size:17px;font-weight:400;display:block;margin-top:6px}body.atmosphere-home .commerce-stats{padding-bottom:18px;border-bottom:1px solid #ffffff12}body.atmosphere-home .commerce-stats strong{font-size:25px;font-weight:400;display:block;letter-spacing:-.8px;margin-top:6px}body.atmosphere-home .commerce-stats strong span{font-size:16px;color:#8b9ba5}
body.atmosphere-home .inventory-table{margin-top:16px}body.atmosphere-home .inventory-head,body.atmosphere-home .inventory-row{display:grid;grid-template-columns:1fr 45px 66px;gap:12px;align-items:center}body.atmosphere-home .inventory-head{font-size:8px;letter-spacing:.08em;color:#7f909b;padding-bottom:8px}body.atmosphere-home .inventory-row{border-top:1px solid #ffffff0c;padding:10px 0;font-size:11px}body.atmosphere-home .inventory-row>div{display:flex;align-items:center;gap:9px}body.atmosphere-home .inventory-row strong{font-size:11px;font-weight:400;font-variant-numeric:tabular-nums}body.atmosphere-home .inventory-row small{display:block;font-size:9px;color:#82939e;margin-top:3px}body.atmosphere-home .sku-icon{display:grid;place-items:center;border:1px solid #ffffff16;background:#ffffff04;border-radius:4px;width:28px;height:30px;font-size:10px;color:#93a3ad}body.atmosphere-home .synced{font-size:9px;color:#97c9aa}body.atmosphere-home .channel-footer{display:flex;gap:12px;border-top:1px solid #ffffff12;padding-top:13px;font-size:9px;color:#9cabb3}body.atmosphere-home .channel-footer small{font-size:8px;color:#738792;margin-left:auto}body.atmosphere-home .project-caption h3{font-size:23px}body.atmosphere-home .project>p{font-size:13px}
@media(max-width:1000px) and (min-width:621px){body.atmosphere-home .project-art{padding:20px 12px 0;height:415px}body.atmosphere-home .product-shot{padding:0 14px 20px}body.atmosphere-home .product-bar{margin:0 -14px;padding:14px}body.atmosphere-home .release-heading h4{font-size:22px}body.atmosphere-home .mock-label{font-size:8px}body.atmosphere-home .status-pill{font-size:9px;padding:5px}body.atmosphere-home .deployment-summary strong{font-size:10px}body.atmosphere-home .channel-footer{gap:6px}body.atmosphere-home .channel-footer small{display:none}body.atmosphere-home .environment-row>span:nth-child(2){display:none}}
@media(max-width:620px){body.atmosphere-home .projects{gap:34px}body.atmosphere-home .project-art{height:425px;padding:20px 12px 0}body.atmosphere-home .product-shot{padding:0 16px 20px}body.atmosphere-home .product-bar{margin:0 -16px;padding:14px 16px}body.atmosphere-home .release-heading h4{font-size:24px}body.atmosphere-home .channel-footer{gap:9px}body.atmosphere-home .channel-footer small{display:none}body.atmosphere-home .project-caption h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){body.atmosphere-home .project:hover .product-shot{transform:translateY(12px)}}

/* Each service point travels horizontally in alternating directions. */
body.atmosphere-home .services details{translate:var(--point-x,0px) var(--point-y,0px);will-change:translate,opacity}
@media(min-width:621px){body.atmosphere-home .services{margin-right:64px}}
@media(prefers-reduced-motion:reduce){body.atmosphere-home .services details{translate:0 0;opacity:1;will-change:auto}}

/* One pinned stage: scroll advances four layered scenes. */
body.atmosphere-home main>.section.process-chapter{display:block;height:500svh;padding:0;overflow:visible}
body.atmosphere-home main>.process-chapter>.process-stage{position:sticky;top:0;height:100svh;padding:125px max(6%,calc((100% - 1320px)/2)) 35px;display:flex;flex-direction:column;scale:1;translate:none;transform:translate3d(0,var(--process-exit-y,0px),0);max-width:none;margin:0;overflow:clip}
body.atmosphere-home .process-heading h2{font-size:clamp(24px,2.8vw,42px);margin-top:15px}body.atmosphere-home .process-heading .section-label{font-size:10px}
body.atmosphere-home .process-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}
body.atmosphere-home .process-copies{position:relative;min-height:310px}body.atmosphere-home .process-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;will-change:transform,opacity}
body.atmosphere-home .process-copy h3{font-family:Manrope,sans-serif;font-size:clamp(32px,4vw,64px);font-weight:400;line-height:1.08;letter-spacing:-.05em;margin:15px 0 25px;max-width:540px}
body.atmosphere-home .process-copy>p:not(.ui-eyebrow){font-size:17px;line-height:1.7;color:#b6c3c9;max-width:440px;margin:0 0 25px}body.atmosphere-home .process-tags{font-size:12px;color:#bfcfa0;line-height:1.6}
body.atmosphere-home .process-deck{position:relative;height:min(48svh,420px);isolation:isolate;perspective:1150px;perspective-origin:50% 34%;transform-style:preserve-3d}
/* Four different objects share the table, not four copies of one card: a
   paper brief, an app window, a terminal, and a floating log. The wrapper
   carries no surface of its own; each step styles its artifact itself. */
body.atmosphere-home .process-card{position:absolute;left:8%;top:0;width:65%;height:100%;padding:0;display:flex;flex-direction:column;gap:15px;backface-visibility:hidden;will-change:transform,opacity;transform-origin:50% 50%;overflow:visible}
body.atmosphere-home .process-card>span{font-size:9px;letter-spacing:.12em;color:#c4d3d0}body.atmosphere-home .process-number{font-family:Georgia,serif;font-size:clamp(85px,10vw,165px);font-weight:400;letter-spacing:-.09em;color:#e5e9dc;line-height:1}body.atmosphere-home .process-card small{font-size:8px;letter-spacing:.1em;color:#acbdb9}body.atmosphere-home .process-card h4{font-weight:400;font-size:clamp(22px,2.3vw,35px);letter-spacing:-.04em;margin:12px 0 0}
body.atmosphere-home .process-nav{display:flex;gap:25px;flex-wrap:wrap;position:relative;z-index:3}body.atmosphere-home .process-nav button{padding:14px 0;background:none;color:#84969d;border:0;border-bottom:1px solid #ffffff20;cursor:pointer;font-size:11px;min-width:85px;text-align:left}body.atmosphere-home .process-nav button span{margin-left:8px}body.atmosphere-home .process-nav button[aria-current="step"]{color:var(--ink);border-bottom-color:var(--accent)}
@media(max-width:620px){body.atmosphere-home main>.process-chapter>.process-stage{padding:150px 6% 20px}body.atmosphere-home .process-heading h2{font-size:23px}body.atmosphere-home .process-body{grid-template-columns:1fr;gap:12px;grid-template-rows:1fr 1fr}body.atmosphere-home .process-copies{min-height:190px}body.atmosphere-home .process-copy h3{font-size:31px;margin:10px 0 12px}body.atmosphere-home .process-copy>p:not(.ui-eyebrow){font-size:14px;line-height:1.5;margin-bottom:10px}body.atmosphere-home .process-tags{font-size:10px}body.atmosphere-home .process-deck{height:21svh}body.atmosphere-home .process-card{left:23%;width:47%}body.atmosphere-home .process-number{font-size:45px}body.atmosphere-home .process-card h4{font-size:17px}body.atmosphere-home .process-card small{display:none}body.atmosphere-home .process-card>span{font-size:7px}body.atmosphere-home .process-nav{gap:12px;justify-content:space-between}body.atmosphere-home .process-nav button{min-width:0;font-size:10px;padding:10px 0}body.atmosphere-home .process-nav button span{margin-left:3px}}
@media(prefers-reduced-motion:reduce),(max-height:559px){body.atmosphere-home main>.section.process-chapter{height:auto}body.atmosphere-home main>.process-chapter>.process-stage{position:relative;height:auto;overflow:visible}body.atmosphere-home .process-body{display:block}body.atmosphere-home .process-copy{position:relative;opacity:1!important;transform:none!important;margin:40px 0}body.atmosphere-home .process-deck,body.atmosphere-home .process-nav{display:none}body.atmosphere-home .process-copies{min-height:0}}

body.atmosphere-home.paused main>.section.process-chapter{height:auto}
body.atmosphere-home.paused main>.process-chapter>.process-stage{position:relative;height:auto}
body.atmosphere-home.paused .process-copy{position:relative;opacity:1!important;transform:none!important;margin:40px 0}
body.atmosphere-home.paused .process-deck,body.atmosphere-home.paused .process-nav{display:none}

/* The tall scroll track must start its sticky child at the top, not center it. */
body.atmosphere-home main>.section.process-chapter{align-content:normal;align-items:start;justify-content:start}

/* Each process card contains a concrete example of the work produced. */
body.atmosphere-home .step-artifact{flex:1;display:flex;flex-direction:column;padding-top:22px;min-height:0;position:relative}
body.atmosphere-home .process-card .step-artifact>small{display:block;font-size:9px;letter-spacing:.1em;color:#a9bfbb}
body.atmosphere-home .process-card .step-artifact h4{font-size:clamp(20px,2vw,29px);line-height:1.15;margin:10px 0 18px;letter-spacing:-.035em}
body.atmosphere-home .step-artifact dl{margin:0}body.atmosphere-home .step-artifact dt{font-size:8px;letter-spacing:.1em;color:#92aaa5;margin:0 0 6px}body.atmosphere-home .step-artifact dd{font-size:12px;line-height:1.5;margin:0 0 16px;color:#e0e8e3}
body.atmosphere-home .artifact-note{border:1px solid #ffffff20;padding:12px 9px;font-size:10px;border-radius:5px;background:#ffffff04}body.atmosphere-home .artifact-note>span{color:#9fb6a3;margin-right:7px}
body.atmosphere-home .artifact-footer{display:flex;justify-content:space-between;border-top:1px solid #ffffff1c;padding-top:12px;margin-top:auto;font-size:9px;color:#a3bcb5}body.atmosphere-home .artifact-footer b{color:#cee6ad;font-weight:400}
body.atmosphere-home .wire-window{border:1px solid #ffffff25;border-radius:6px;background:#10172166;overflow:hidden;font-size:10px}body.atmosphere-home .wire-toolbar{padding:10px;border-bottom:1px solid #ffffff16;display:flex;justify-content:space-between}body.atmosphere-home .wire-tabs{display:flex;gap:14px;padding:10px;color:#8597a4}body.atmosphere-home .wire-tabs b{color:#e0e5e6;font-weight:400}body.atmosphere-home .wire-metrics{display:flex;gap:8px;padding:0 10px 10px}body.atmosphere-home .wire-metrics>span{flex:1;background:#ffffff05;border:1px solid #ffffff12;padding:8px;font-size:8px;color:#9eacba}body.atmosphere-home .wire-metrics strong{display:block;font-size:21px;font-weight:400;color:#e4e8e9;margin-top:3px}body.atmosphere-home .wire-item{display:flex;gap:6px;align-items:center;padding:9px;border-top:1px solid #ffffff10;font-size:9px}body.atmosphere-home .wire-item b{margin-left:auto;font-weight:400}body.atmosphere-home .wire-item i{width:5px;height:5px;background:#b7c9dc;border-radius:50%}
body.atmosphere-home .build-flow{margin:2px 0 16px}body.atmosphere-home .build-flow>div{display:flex;gap:10px;align-items:center;padding:11px 9px;border:1px solid #ffffff20;background:#ffffff04;border-radius:5px}body.atmosphere-home .build-flow span{font-size:9px;color:#9eb0bb}body.atmosphere-home .build-flow strong{font-size:11px;font-weight:400}body.atmosphere-home .build-flow b{margin-left:auto;color:#b7d8bc;font-size:10px}body.atmosphere-home .build-flow>i{display:block;height:12px;width:1px;background:#ffffff30;margin-left:18px}
body.atmosphere-home .improve-row{border-top:1px solid #ffffff18;padding:10px 0}body.atmosphere-home .improve-row>span{font-size:8px;letter-spacing:.1em;color:#b8c8a5}body.atmosphere-home .improve-row p{font-size:11px;line-height:1.5;margin:5px 0 0;color:#e0e5dc}

/* Step surfaces: each artifact is its own object. */
body.atmosphere-home .process-card[data-step="0"] .step-artifact{background:linear-gradient(160deg,#3a4a42,#141f1c 72%);border:1px solid #ffffff2c;border-radius:6px;padding:24px 26px 20px;box-shadow:0 24px 50px #0007;transform:rotateZ(-1.2deg)}
body.atmosphere-home .process-card[data-step="0"] .step-artifact:before{content:'';position:absolute;top:16px;bottom:16px;left:13px;width:1px;background:#ffffff12}
body.atmosphere-home .process-card[data-step="1"] .step-artifact{background:linear-gradient(150deg,#3d3f55,#181c2a 78%);border:1px solid #ffffff2e;border-radius:11px;padding:18px 22px;box-shadow:0 26px 55px #0008}
body.atmosphere-home .process-card[data-step="1"] .step-artifact>small:before{content:'●●●';letter-spacing:4px;font-size:5px;color:#ffffff45;margin-right:11px;vertical-align:2px}
body.atmosphere-home .process-card[data-step="2"] .step-artifact{background:linear-gradient(165deg,#101c16,#090f0c 82%);border:1px solid #9bd6b229;border-radius:8px;padding:20px 24px;box-shadow:0 24px 52px #000a}
body.atmosphere-home .process-card[data-step="2"] .build-flow>div:before{content:'>';color:#7fd6a4;font-family:ui-monospace,Menlo,monospace}
body.atmosphere-home .process-card[data-step="2"][data-active="true"] .build-flow>div:last-of-type:after{content:'▍';color:#7fd6a4;margin-left:8px;animation:caret-blink 1.1s steps(1) infinite}
body.atmosphere-home .process-card[data-step="3"] .step-artifact{background:none;border:0;box-shadow:none;padding:4px 0 0 26px}
body.atmosphere-home .process-card[data-step="3"] .step-artifact:before{content:'';position:absolute;left:7px;top:110px;bottom:38px;width:1px;background:linear-gradient(#d4eaa4cc,#d4eaa41a)}
body.atmosphere-home .process-card[data-step="3"] .improve-row{position:relative;border:1px solid #ffffff16;border-radius:7px;background:#ffffff07;padding:9px 14px;margin-bottom:10px}
body.atmosphere-home .process-card[data-step="3"] .improve-row:before{content:'';position:absolute;left:-23px;top:15px;width:7px;height:7px;border-radius:50%;background:#d4eaa4;box-shadow:0 0 7px #d4eaa488}
@keyframes caret-blink{0%,54%{opacity:1}55%,100%{opacity:0}}
@media(max-width:620px){body.atmosphere-home .process-deck{height:27svh;min-height:175px}body.atmosphere-home .process-card{width:59%;left:15%}body.atmosphere-home .process-card .step-artifact>small{font-size:7px}body.atmosphere-home .process-card .step-artifact h4{font-size:16px;margin:5px 0 8px}body.atmosphere-home .process-card[data-step="0"] .step-artifact{padding:10px 14px}body.atmosphere-home .process-card[data-step="1"] .step-artifact{padding:8px 12px}body.atmosphere-home .process-card[data-step="2"] .step-artifact{padding:8px 12px}body.atmosphere-home .process-card[data-step="3"] .step-artifact{padding-left:16px}body.atmosphere-home .process-card[data-step="3"] .step-artifact:before{left:3px;top:64px;bottom:30px}body.atmosphere-home .process-card[data-step="3"] .improve-row{padding:6px 10px;margin-bottom:6px}body.atmosphere-home .process-card[data-step="3"] .improve-row:before{left:-16px;top:11px;width:5px;height:5px}body.atmosphere-home .step-artifact dl,body.atmosphere-home .artifact-note,body.atmosphere-home .wire-tabs,body.atmosphere-home .wire-item,body.atmosphere-home .improve-row:last-of-type,body.atmosphere-home .process-card[data-step="3"] .artifact-footer{display:none}body.atmosphere-home .artifact-footer{font-size:7px;padding-top:6px}body.atmosphere-home .build-flow{margin:0 0 6px}body.atmosphere-home .build-flow>div{padding:5px}body.atmosphere-home .build-flow>i{height:5px}body.atmosphere-home .build-flow strong{font-size:8px}body.atmosphere-home .wire-toolbar{padding:5px}body.atmosphere-home .wire-metrics{padding:5px}body.atmosphere-home .wire-metrics strong{font-size:15px}body.atmosphere-home .improve-row p{font-size:9px}}

body.atmosphere-home .wordmark .brand-symbol{display:block;width:32px;height:32px;flex:none;object-fit:contain}

body.atmosphere-home{display:block;--muted:var(--ink-dim);--line:var(--hair);--accent:var(--cyan-lt)}
body.atmosphere-home>main{z-index:2;isolation:isolate}body.atmosphere-home .atmosphere{z-index:-1}
body.atmosphere-home .reveal{opacity:1;transform:none}body.atmosphere-home.js-motion .reveal.visible{opacity:1}
body.atmosphere-home .process-nav{display:flex!important}
body.atmosphere-home .process-heading h2{font-size:clamp(24px,2.8vw,42px)}
html:not(.dark) body.atmosphere-home main>section::before{background:radial-gradient(ellipse at 15% 70%,#dce8dd,transparent 70%),linear-gradient(120deg,#f5f5ee,#e9efed)}
html:not(.dark) body.atmosphere-home .atmosphere{background:#eff3ed}
html:not(.dark) body.atmosphere-home .process-card[data-step="0"] .step-artifact{background:linear-gradient(160deg,#f2f0e2,#e3e9db);border-color:#526b5d38;box-shadow:0 20px 45px #213a2420}
html:not(.dark) body.atmosphere-home .process-card[data-step="1"] .step-artifact{background:linear-gradient(150deg,#efedf6,#e0dfec);border-color:#4b4a6630;box-shadow:0 20px 45px #2a24401c}
html:not(.dark) body.atmosphere-home .process-card[data-step="3"] .improve-row{background:#ffffff75;border-color:#526b5d26}
html:not(.dark) body.atmosphere-home .process-card[data-step="3"] .step-artifact:before{background:linear-gradient(#7a9a4ecc,#7a9a4e1a)}
html:not(.dark) body.atmosphere-home .process-card[data-step="3"] .improve-row:before{background:#7a9a4e;box-shadow:0 0 6px #7a9a4e66}
/* The terminal stays dark in the light theme: an accent, not an oversight.
   Its own text is pinned light; only the floating label follows the theme. */
body.atmosphere-home .process-card[data-step="2"] .step-artifact>small{color:#8fb3a1}
body.atmosphere-home .process-card[data-step="2"] .step-artifact h4{color:#e2ece5}
body.atmosphere-home .process-card[data-step="2"] .build-flow strong{color:#d5e2d8}
html:not(.dark) body.atmosphere-home .process-card[data-step="2"]>span{color:var(--ink)}
html:not(.dark) body.atmosphere-home .process-card:not([data-step="2"]) *,html:not(.dark) body.atmosphere-home .process-copy p,html:not(.dark) body.atmosphere-home .process-tags,html:not(.dark) body.atmosphere-home .section-label,html:not(.dark) body.atmosphere-home .hero-top,html:not(.dark) body.atmosphere-home .intro-bottom p{color:var(--ink)}
html:not(.dark) body.atmosphere-home .wire-window{background:#ffffff80}
html:not(.dark) body.atmosphere-home .motion{background:#f7f9f1dd;color:var(--ink);border-color:var(--hair)}
html:not(.dark) body.atmosphere-home .product-shot{background:#f5f7f2;color:var(--ink)}
html:not(.dark) body.atmosphere-home .product-shot *{color:var(--ink-dim)}
html:not(.dark) body.atmosphere-home .product-shot h4,html:not(.dark) body.atmosphere-home .product-shot strong{color:var(--ink)}
html:not(.dark) body.atmosphere-home .project-art{background:linear-gradient(130deg,#dce6db,#e7ede7)}
html:not(.dark) body.atmosphere-home .status-pill,html:not(.dark) body.atmosphere-home .synced{color:#276342;background:#3f8b5110}
body.atmosphere-home main>.hero{padding-top:120px}
body.atmosphere-home .process-heading,body.atmosphere-home .process-nav{z-index:4}
@media(max-width:620px){body.atmosphere-home main>.hero{padding-top:110px}body.atmosphere-home main>.process-chapter>.process-stage{padding-top:105px}}

/* The closing copy moves as one composition, with space reserved for each line. */
body.atmosphere-home main>.contact{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding-block:110px 90px}
body.atmosphere-home main>.contact .section-label{margin:0 0 20px;width:100%}
body.atmosphere-home main>.contact .contact-pre{margin:0}
body.atmosphere-home main>.contact h2{font-size:clamp(48px,min(8.5vw,13svh),135px);line-height:1.12;margin:0}
body.atmosphere-home main>.contact .contact-cta{margin:8px 0 0;width:min(380px,100%)}
body.atmosphere-home main>.contact .contact-note{position:relative;right:auto;bottom:auto;top:auto;margin:8px 0 0;max-width:440px}
@media(max-width:620px){body.atmosphere-home main>.contact{gap:18px;padding-block:110px 80px}body.atmosphere-home main>.contact h2{font-size:12vw}}

/* Product exhibits: dimensional windows and restrained live details. */
body.atmosphere-home .project-art{perspective:1200px;padding-top:38px;border-radius:12px;isolation:isolate}
body.atmosphere-home .project-art:before{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(#cce7b52b .7px,transparent .7px);background-size:19px 19px;mask-image:linear-gradient(#000,transparent 80%)}
body.atmosphere-home .release .product-shot{transform:translateY(8px) rotateY(5deg) rotateZ(-1.5deg);transform-origin:50% 90%}
body.atmosphere-home .commerce .product-shot{transform:translateY(8px) rotateY(-5deg) rotateZ(1.5deg);transform-origin:50% 90%}
body.atmosphere-home .project:hover .product-shot,body.atmosphere-home .project:focus-visible .product-shot{transform:translateY(0) rotateY(0) rotateZ(0)}
body.atmosphere-home .release-signal{display:block;width:100%;height:28px;margin:17px 0 -7px;overflow:visible}
body.atmosphere-home .release-signal path{fill:none;stroke:#b9db99;stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:500;animation:signal-trace 6s ease-in-out infinite}
body.atmosphere-home .deployment-stages>i{position:relative;overflow:visible}
body.atmosphere-home .deployment-stages>i:after{content:'';position:absolute;top:-2px;left:0;width:5px;height:5px;border-radius:50%;background:#d5ef9c;box-shadow:0 0 8px #d5ef9c88;animation:release-travel 3.8s ease-in-out infinite}
body.atmosphere-home .deployment-stages>i:last-of-type:after{animation-delay:1.9s}
body.atmosphere-home .sku-icon{width:31px;height:35px;background:#d9cdb524;color:#d9cdb5;flex-shrink:0}
body.atmosphere-home .sku-icon svg{width:23px;height:28px}
body.atmosphere-home .inventory-row:nth-child(3) .sku-icon{background:#bdb5dc24;color:#bdb5dc}
body.atmosphere-home .inventory-row:nth-child(4) .sku-icon{background:#adcbbd24;color:#adcbbd}
body.atmosphere-home .synced{animation:sync-light 5s ease-in-out infinite}
body.atmosphere-home .inventory-row:nth-child(3) .synced{animation-delay:1s}
body.atmosphere-home .inventory-row:nth-child(4) .synced{animation-delay:2s}
@keyframes signal-trace{0%,15%{stroke-dashoffset:500;opacity:.35}65%,100%{stroke-dashoffset:0;opacity:.85}}
@keyframes release-travel{0%{left:0;opacity:0}20%{opacity:1}80%{opacity:1}100%{left:100%;opacity:0}}
@keyframes sync-light{0%,70%,100%{opacity:.65}80%{opacity:1}}
body.atmosphere-home.paused .release-signal path,body.atmosphere-home.paused .deployment-stages>i:after,body.atmosphere-home.paused .synced{animation-play-state:paused}
html:not(.dark) body.atmosphere-home .release-signal path{stroke:#50753d}
@media(prefers-reduced-motion:reduce){body.atmosphere-home .release-signal path,body.atmosphere-home .deployment-stages>i:after,body.atmosphere-home .synced{animation:none}body.atmosphere-home .project .product-shot{transform:none}}
@media(max-width:620px){body.atmosphere-home .project-art{padding-top:25px}body.atmosphere-home .project .product-shot{transform:none}}

/* Each object hand-off moves at its own pace; content has its own entrance. */
body.atmosphere-home .process-card{transition:transform .62s cubic-bezier(.16,1,.3,1),opacity .36s ease-out;transform-style:preserve-3d}
body.atmosphere-home .process-card[data-step="0"],body.atmosphere-home .process-card[data-step="1"],body.atmosphere-home .process-card[data-step="2"],body.atmosphere-home .process-card[data-step="3"]{transition-duration:.62s,.36s}
body.atmosphere-home .process-copy{transition:opacity .32s ease-out,transform .52s cubic-bezier(.16,1,.3,1)}
body.atmosphere-home .process-card .step-artifact{transition:translate .55s,opacity .55s;translate:0 12px;opacity:.35}
body.atmosphere-home .process-card[data-active="true"] .step-artifact{translate:0 0;opacity:1}
body.atmosphere-home .process-card[data-active="true"] .wire-window{box-shadow:0 12px 28px #0002}
@media(prefers-reduced-motion:reduce){body.atmosphere-home .process-card .step-artifact{transition:none;translate:none;opacity:1}}

/* Each artifact tells its short story its own way; leaving the step cancels it. */

/* 0 — the brief is drawn line by line, like a plotter, then settles onto the table. */
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .step-artifact{animation:brief-settle .8s cubic-bezier(.22,.85,.24,1) both}
/* 1 — the prototype unfolds like a window being opened; its pieces then pop in. */
body.atmosphere-home .process-card[data-step="1"][data-active="true"] .step-artifact{animation:exhibit-unfold .95s cubic-bezier(.22,.85,.24,1) both}
body.atmosphere-home .process-card[data-step="1"][data-active="true"] .wire-metrics>span{animation:exhibit-pop .45s .5s both}
body.atmosphere-home .process-card[data-step="1"][data-active="true"] .wire-metrics>span+span{animation-delay:.62s}
body.atmosphere-home .process-card[data-step="1"][data-active="true"] .wire-item{animation:exhibit-resolve .5s .72s both}
body.atmosphere-home .process-card[data-step="1"][data-active="true"] .wire-item:last-child{animation-delay:.86s}
body.atmosphere-home .process-card[data-step="1"][data-active="true"] .artifact-footer{animation:exhibit-rise .5s 1s both}
/* 2 — the workflow wires itself up, line by line, connectors growing between. */
body.atmosphere-home .process-card[data-step="2"][data-active="true"] .build-flow>div{animation:exhibit-resolve .45s .25s both}
body.atmosphere-home .process-card[data-step="2"][data-active="true"] .build-flow>div:nth-of-type(2){animation-delay:.55s}
body.atmosphere-home .process-card[data-step="2"][data-active="true"] .build-flow>div:nth-of-type(3){animation-delay:.85s}
body.atmosphere-home .process-card[data-step="2"][data-active="true"] .build-flow>i{transform-origin:top;animation:exhibit-connect .45s .48s both;background:#7fd6a4}
body.atmosphere-home .process-card[data-step="2"][data-active="true"] .build-flow>i:nth-of-type(2){animation-delay:.78s}
body.atmosphere-home .process-card[data-step="2"][data-active="true"] .artifact-footer{animation:exhibit-rise .5s 1.05s both}
/* 3 — the log cascades in along a rail that draws itself. */
body.atmosphere-home .process-card[data-step="3"][data-active="true"] .step-artifact:before{transform-origin:top;animation:rail-draw .7s .1s both}
body.atmosphere-home .process-card[data-step="3"][data-active="true"] .improve-row{animation:exhibit-rise .55s .25s both}
body.atmosphere-home .process-card[data-step="3"][data-active="true"] .improve-row:nth-of-type(2){animation-delay:.45s}
body.atmosphere-home .process-card[data-step="3"][data-active="true"] .improve-row:nth-of-type(3){animation-delay:.65s}
body.atmosphere-home .process-card[data-step="3"][data-active="true"] .improve-row:after{content:'';position:absolute;bottom:0;left:14px;right:14px;height:1px;background:linear-gradient(90deg,#d4eaa4,transparent);transform-origin:left;animation:exhibit-connect 1.1s .6s both}
body.atmosphere-home .process-card[data-step="3"][data-active="true"] .artifact-footer{animation:exhibit-rise .5s .9s both}
/* Shared header fade for steps without their own header treatment. */
body.atmosphere-home .process-card[data-active="true"]>span,body.atmosphere-home .process-card[data-active="true"] .step-artifact>small{animation:exhibit-rise .5s .05s both}
body.atmosphere-home .process-card[data-step="1"][data-active="true"] .step-artifact h4,body.atmosphere-home .process-card[data-step="2"][data-active="true"] .step-artifact h4,body.atmosphere-home .process-card[data-step="3"][data-active="true"] .step-artifact h4{animation:exhibit-rise .55s .12s both}
@keyframes brief-settle{from{opacity:0;transform:rotateZ(-5.5deg) translateY(30px)}to{opacity:1;transform:rotateZ(-1.2deg) translateY(0)}}
@keyframes exhibit-pop{from{opacity:0;scale:.72}to{opacity:1;scale:1}}
@keyframes rail-draw{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes exhibit-rise{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@keyframes exhibit-resolve{from{opacity:0;transform:translateX(18px) scale(.96)}to{opacity:1;transform:none}}
@keyframes exhibit-unfold{from{opacity:0;transform:perspective(700px) rotateX(-22deg) translateY(20px)}to{opacity:1;transform:none}}
@keyframes exhibit-connect{from{scale:0 .1;opacity:0}to{scale:1 1;opacity:1}}
@media(prefers-reduced-motion:reduce){body.atmosphere-home .process-card *,body.atmosphere-home .process-card:after,body.atmosphere-home .process-card .step-artifact:before{animation:none!important}}
body.atmosphere-home.paused .process-card *,body.atmosphere-home.paused .process-card:after,body.atmosphere-home.paused .process-card .step-artifact:before{animation:none!important}

@property --plot{syntax:'<percentage>';inherits:false;initial-value:0%}
/* The plot-draw sweep belongs to the brief alone. --plot rests at 118%, so an
   element whose animation is disabled (reduced motion, paused) stays visible. */
body.atmosphere-home .process-card[data-step="0"][data-active="true"]>span,
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .step-artifact>small,
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .step-artifact h4,
body.atmosphere-home .process-card[data-step="0"][data-active="true"] dt,
body.atmosphere-home .process-card[data-step="0"][data-active="true"] dd,
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .artifact-note,
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .artifact-footer{--plot:118%;-webkit-mask-image:linear-gradient(90deg,#000 calc(var(--plot) - 17%),#000000a8 calc(var(--plot) - 5%),transparent var(--plot));mask-image:linear-gradient(90deg,#000 calc(var(--plot) - 17%),#000000a8 calc(var(--plot) - 5%),transparent var(--plot))}
@keyframes plot-draw{from{--plot:0%}to{--plot:118%}}
body.atmosphere-home .process-card[data-step="0"][data-active="true"]>span{animation:plot-draw .5s both}
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .step-artifact>small{animation:plot-draw .45s .06s both}
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .step-artifact h4{animation:plot-draw .62s .12s both}
body.atmosphere-home .process-card[data-step="0"][data-active="true"] dt{animation:plot-draw .4s .2s both}
body.atmosphere-home .process-card[data-step="0"][data-active="true"] dd{animation:plot-draw .6s .3s both}
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .artifact-note{animation:plot-draw .7s .5s both}
body.atmosphere-home .process-card[data-step="0"][data-active="true"] .artifact-footer{animation:plot-draw .55s .92s both}

body.atmosphere-home .process-deck:after{content:'';position:absolute;left:-6%;right:-6%;bottom:-4%;height:52%;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% 96%,#d9ecb924,#8fb08a0f 42%,transparent 72%)}
/* One product, four scenes: opaque, front-facing and readable. */
body.atmosphere-home .product-journey{perspective:none;isolation:isolate;height:min(570px,65vh);min-height:390px}
body.atmosphere-home .product-journey .journey-scene{left:0;top:0;width:100%;height:100%;padding:26px;box-sizing:border-box;border:1px solid #ffffff20;border-radius:18px;background:#15212b;box-shadow:0 30px 90px #0003;overflow:hidden;transition:opacity .45s ease,transform .85s cubic-bezier(.22,1,.36,1);transform-style:flat;gap:16px;color:#edf0e8}
body.atmosphere-home .journey-scene>span{font-size:9px;letter-spacing:.16em;color:#9aaeb3}
body.atmosphere-home .journey-heading small{color:#cce69e;font-size:9px;letter-spacing:.12em}
body.atmosphere-home .journey-heading h4{font-size:clamp(22px,2.4vw,34px);line-height:1.15;margin:10px 0 0;max-width:390px}
.journey-canvas{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:12px}
.journey-caption{display:flex;align-items:center;gap:15px;border-top:1px solid #ffffff16;padding-top:15px;font-size:10px;color:#9aadb0}.journey-caption b{margin-left:auto;color:#cce69e;font-weight:400}.journey-caption>span{font-size:9px;opacity:.6}
.journey-sources{display:flex;gap:8px}.journey-sources>div{flex:1;background:#ffffff06;border:1px solid #ffffff18;border-radius:8px;padding:14px 9px;font-size:11px}.journey-sources i{display:block;font-size:22px;font-style:normal;color:#cce69e;margin-bottom:14px}.journey-thread{height:25px;align-self:center;width:1px;background:#cce69e88}.journey-priorities{display:grid;gap:9px}.journey-priorities>div,.journey-pipeline>div{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid #ffffff20;background:#1d3037;border-radius:8px;font-size:12px}.journey-priorities small{color:#cce69e}.journey-priorities span{margin-left:auto;color:#cce69e}.journey-priorities strong{font-weight:400}
.journey-app{border:1px solid #ffffff25;border-radius:10px;background:#111b24;overflow:hidden}.journey-toolbar{display:flex;gap:20px;padding:13px 16px;border-bottom:1px solid #ffffff18;font-size:11px}.journey-toolbar span{color:#8fa5ad}.journey-toolbar i{margin-left:auto;font-style:normal}.journey-form{padding:18px}.journey-form small{font-size:9px;color:#bdd799}.journey-form h5{font-size:19px;margin:6px 0 14px;font-weight:400}.journey-form label{font-size:9px;color:#90a5ae}.journey-field{border:1px solid #ffffff22;border-radius:5px;padding:10px;margin-top:7px;font-size:11px}.journey-textarea{height:35px;color:#9fb2b8}.journey-submit{display:flex;justify-content:space-between;background:#cee5a6;color:#172722;border-radius:5px;padding:10px 12px;margin-top:12px;font-size:11px}.journey-caret{display:inline-block;width:1px;height:12px;background:#cee5a6;margin-left:3px}
.journey-event{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid #ffffff20;font-size:12px}.journey-event>span{font-size:28px;color:#cce69e}.journey-event small{margin-left:auto;color:#8fa5ad}.journey-pipeline{display:grid;gap:22px;margin:10px 15px}.journey-pipeline>div{position:relative}.journey-pipeline>div+div:before{content:'';position:absolute;left:25px;top:-23px;height:22px;width:1px;background:#cce69e66}.journey-pipeline i{font-style:normal;border:1px solid #cce69e55;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;color:#cce69e}.journey-pipeline small{margin-left:auto;color:#8fa5ad}
.journey-toast{position:absolute;right:10px;top:22px;background:#cee5a6;color:#172722;padding:12px 17px;border-radius:30px;font-size:11px;box-shadow:0 10px 30px #0004}.journey-toast i{margin-right:8px}.journey-resume{position:absolute;inset:25% 5%;background:#243843;border:1px solid #cee5a644;border-radius:12px;display:grid;place-content:center;text-align:center;padding:20px}.journey-resume>span{font-size:40px;color:#cee5a6}.journey-resume p{font-size:14px}.journey-success{position:absolute;inset:0;background:#15212b;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.journey-success i{display:grid;place-items:center;width:65px;height:65px;border-radius:50%;background:#cee5a619;border:1px solid #cee5a666;color:#cee5a6;font-size:28px;font-style:normal}.journey-success h5{font-size:25px;font-weight:400;margin:20px 0 10px}.journey-success p{font-size:12px;color:#9fb2b8}
.journey-scene:not([data-active=true]) *{animation:none!important}.journey-scene[data-active=true] .journey-priorities>div,.journey-scene[data-active=true] .journey-pipeline>div{animation:journey-arrive .7s both;animation-delay:calc(.3s + var(--item)*.35s)}.journey-scene[data-step="1"][data-active=true] .journey-app{animation:journey-arrive 1s both}.journey-scene[data-step="3"][data-active=true] .journey-toast{animation:journey-saved 9s both}.journey-scene[data-step="3"][data-active=true] .journey-resume{animation:journey-return 9s both}.journey-scene[data-step="3"][data-active=true] .journey-success{animation:journey-done 9s both}
@keyframes journey-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes journey-saved{0%,10%{opacity:0;transform:translateY(8px)}20%,40%{opacity:1;transform:translateY(0)}50%,100%{opacity:0}}@keyframes journey-return{0%,35%{opacity:0;transform:translateY(15px)}45%,65%{opacity:1;transform:translateY(0)}75%,100%{opacity:0}}@keyframes journey-done{0%,82%{opacity:0;transform:translateY(12px)}95%,100%{opacity:1;transform:translateY(0)}}
html:not(.dark) body.atmosphere-home .journey-scene,html:not(.dark) .journey-success{background:#f1f4ee;color:#243b39}html:not(.dark) .journey-app{background:#fff;color:#243b39}html:not(.dark) .journey-field,html:not(.dark) .journey-toolbar{border-color:#243b3925}html:not(.dark) .journey-priorities>div,html:not(.dark) .journey-pipeline>div,html:not(.dark) .journey-resume{background:#e0e9e3;color:#243b39}html:not(.dark) .journey-heading small,html:not(.dark) .journey-priorities small{color:#536c36}
@media(max-width:620px){body.atmosphere-home .product-journey{height:330px;min-height:330px}body.atmosphere-home .product-journey .journey-scene{padding:15px;gap:10px}body.atmosphere-home .journey-heading h4{font-size:21px}.journey-caption{font-size:8px;padding-top:8px}.journey-caption>span{display:none}.journey-form{padding:10px}.journey-form h5{font-size:15px;margin-bottom:7px}.journey-field{padding:6px}.journey-textarea{height:18px}.journey-toolbar{padding:8px 10px}.journey-sources>div{padding:8px;font-size:9px}.journey-sources i{margin-bottom:5px}.journey-priorities>div,.journey-pipeline>div{padding:9px}.journey-thread{height:10px}.journey-pipeline{gap:14px;margin:0}.journey-pipeline>div+div:before{height:14px;top:-15px}}
@media(prefers-reduced-motion:reduce){.journey-scene *{animation:none!important}.journey-toast,.journey-resume{display:none}.journey-scene{transition:none!important}}

/* The process-stage surface is defined with the reveal layer above. */

/* A normal-flow closing chapter has no sticky release at the footer. */
html:has(body.atmosphere-home){overscroll-behavior-y:none;background:#101923}
html:not(.dark):has(body.atmosphere-home){background:#f1f4ed}
body.atmosphere-home{overscroll-behavior-y:none;min-height:100%;background-color:transparent}
body.atmosphere-home canvas.particle-overlay{contain:strict;transform:translateZ(0);backface-visibility:hidden}
body.atmosphere-home.depth-enabled main>section[data-transition="arrival"]{position:relative;top:auto;will-change:auto;backface-visibility:visible}
body.atmosphere-home main>section[data-transition="arrival"]::before{background:transparent}
body.atmosphere-home>header{z-index:100!important}
body.atmosphere-home>footer{position:relative;z-index:3;background:#0d1720!important;backdrop-filter:none}
html:not(.dark) body.atmosphere-home>footer{background:#f1f5ed!important}

/* Let the infinity field remain visible around the product windows. */
body.atmosphere-home .project-art,
body.atmosphere-home .project-art.release,
body.atmosphere-home .project-art.commerce,
html:not(.dark) body.atmosphere-home .project-art{
  background:transparent;
  border-color:transparent;
}
body.atmosphere-home .product-shot{
  background:rgb(8 18 25 / 32%);
  border-color:rgb(225 238 232 / 22%);
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
  box-shadow:0 18px 55px rgb(0 0 0 / 18%);
}
html:not(.dark) body.atmosphere-home .product-shot{
  background:rgb(245 248 242 / 38%);
  border-color:rgb(35 61 53 / 18%);
  box-shadow:0 18px 55px rgb(35 61 53 / 10%);
}

body.atmosphere-home main>section[data-transition="curtain"]::before{inset:0;--panel-mask:none}

/* Blend the arriving intro into the hero instead of exposing a flat panel edge. */
body.atmosphere-home main>.intro{box-shadow:none;--panel-mask:linear-gradient(to bottom,transparent 0,#000 18%,#000 100%)}

/* ===========================================================================
   Liquid glass — all four journey scenes
   ---------------------------------------------------------------------------
   The outer cards, Design app/fields and Build pipeline use translucent
   surfaces with backdrop blur and a masked Fresnel rim. The smooth stage
   backdrop makes outer-card blur subtle; refraction is capability-gated.
   =========================================================================== */

body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) {
  --lg-card: rgba(17, 27, 37, 0.55);
  --lg-inner: rgba(255, 255, 255, 0.055);
}
html:not(.dark) body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) {
  --lg-card: rgba(255, 255, 255, 0.6);
  --lg-inner: rgba(255, 255, 255, 0.5);
}

body.atmosphere-home .product-journey .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']),
html:not(.dark) body.atmosphere-home .product-journey .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) {
  border: 0;
  border-radius: 22px;
  background: var(--lg-card);
  -webkit-backdrop-filter: blur(16px) saturate(1.35);
  backdrop-filter: blur(16px) saturate(1.35);
}

body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) .journey-sources > div,
body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) .journey-priorities > div,
html:not(.dark) body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) .journey-sources > div,
html:not(.dark) body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) .journey-priorities > div,
body.atmosphere-home .journey-scene:is([data-step='1'], [data-step='3']) :is(.journey-app, .journey-field),
body.atmosphere-home .journey-scene[data-step='2'] .journey-pipeline > div,
html:not(.dark) body.atmosphere-home .journey-scene:is([data-step='1'], [data-step='3']) :is(.journey-app, .journey-field),
html:not(.dark) body.atmosphere-home .journey-scene[data-step='2'] .journey-pipeline > div {
  position: relative;
  border: 0;
  border-radius: 12px;
  background: var(--lg-inner);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  backdrop-filter: blur(14px) saturate(1.3);
}

/* Fresnel rim: a 1px masked ::after, never a border-box gradient —
   background-clip fills the whole box, so a translucent body would let the
   gradient through as a diagonal wash. Each selector carries its own ::after. */
body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3'])::after,
body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) .journey-sources > div::after,
body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) .journey-priorities > div::after,
body.atmosphere-home .journey-scene:is([data-step='1'], [data-step='3']) :is(.journey-app, .journey-field, .journey-submit)::after,
body.atmosphere-home .journey-scene[data-step='3'] :is(.journey-resume, .journey-toast)::after,
body.atmosphere-home .journey-scene[data-step='2'] .journey-pipeline > div::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    var(--lg-rim-key) 0%,
    var(--lg-rim-mid) 38%,
    var(--lg-rim-mid) 62%,
    var(--lg-rim-fill) 100%
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  pointer-events: none;
}

/* Tier 2 refraction. The runtime sets --lg-lens and the attribute only where
   feImage-in-backdrop-filter actually renders (see LiquidGlass.astro). */
body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3'])[data-lg-lens],
body.atmosphere-home .journey-scene:is([data-step='0'], [data-step='1'], [data-step='2'], [data-step='3']) [data-lg-lens] {
  -webkit-backdrop-filter: var(--lg-lens);
  backdrop-filter: var(--lg-lens);
}

/* Accent glass for the Design Continue control. */
body.atmosphere-home .journey-scene:is([data-step='1'], [data-step='3']) .journey-submit {
  position: relative;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, rgb(206 229 166 / 28%), rgb(206 229 166 / 10%));
  color: #e6f3cc;
  --lg-blur: 10;
  --lg-sat: 1.4;
  --lg-refraction: 16;
  -webkit-backdrop-filter: blur(10px) saturate(1.4);
  backdrop-filter: blur(10px) saturate(1.4);
  box-shadow: inset 0 1px 5px rgb(238 255 208 / 12%), 0 5px 16px rgb(0 0 0 / 12%);
}
html:not(.dark) body.atmosphere-home .journey-scene:is([data-step='1'], [data-step='3']) .journey-submit {
  background: linear-gradient(135deg, rgb(143 177 82 / 28%), rgb(143 177 82 / 12%));
  color: #203524;
}
body.atmosphere-home .journey-scene:is([data-step='1'], [data-step='3']) .journey-submit[data-lg-lens] {
  -webkit-backdrop-filter: var(--lg-lens);
  backdrop-filter: var(--lg-lens);
}

/* Preserve the positioned draft overlay while making its backdrop visible. */
body.atmosphere-home .journey-scene[data-step='3'] .journey-resume {
  border: 0;
  background: linear-gradient(135deg, rgb(137 180 174 / 18%), rgb(36 56 67 / 22%));
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  backdrop-filter: blur(14px) saturate(1.3);
  box-shadow: inset 0 1px 8px rgb(255 255 255 / 8%), 0 15px 40px rgb(0 0 0 / 18%);
}
html:not(.dark) body.atmosphere-home .journey-scene[data-step='3'] .journey-resume {
  background: linear-gradient(135deg, rgb(255 255 255 / 50%), rgb(188 212 198 / 25%));
}
body.atmosphere-home .journey-scene[data-step='3'] .journey-resume[data-lg-lens] {
  -webkit-backdrop-filter: var(--lg-lens);
  backdrop-filter: var(--lg-lens);
}

body.atmosphere-home .journey-scene[data-step='3'] .journey-toast {
  border: 0;
  background: linear-gradient(135deg, rgb(206 229 166 / 28%), rgb(206 229 166 / 10%));
  color: #e6f3cc;
  -webkit-backdrop-filter: blur(10px) saturate(1.4);
  backdrop-filter: blur(10px) saturate(1.4);
}
html:not(.dark) body.atmosphere-home .journey-scene[data-step='3'] .journey-toast {
  background: linear-gradient(135deg, rgb(143 177 82 / 28%), rgb(143 177 82 / 12%));
  color: #203524;
}
body.atmosphere-home .journey-scene[data-step='3'] .journey-toast[data-lg-lens] {
  -webkit-backdrop-filter: var(--lg-lens);
  backdrop-filter: var(--lg-lens);
}

/* Release inactive glass layers after their fade instead of retaining four
   overlapping backdrop surfaces throughout the pinned story. */
body.atmosphere-home .product-journey .journey-scene {
  visibility: hidden;
  transition: none;
}
body.atmosphere-home .product-journey .journey-scene[data-active="true"] {
  visibility: visible;
  transition-delay: 0s;
}

/* Soft atmosphere without viewport-sized animated blur intermediates. */
body.atmosphere-home .glow{filter:none;animation:none;border-radius:0}
body.atmosphere-home .glow-one{background:radial-gradient(ellipse,#166258,transparent 70%)}
body.atmosphere-home .glow-two{background:radial-gradient(ellipse,#584179,transparent 70%)}
body.atmosphere-home .glow-three{background:radial-gradient(ellipse,#686032,transparent 70%)}
