:root{--scene-scroll-height:2331.00svh}
.works{background:#f5f6f8;padding-block:96px;color:var(--ink);box-shadow:none}.works h2{font-size:clamp(32px,3.4vw,52px)}.section-head{margin-bottom:32px}.gallery-track{padding:12px var(--page-gutter) 28px;gap:20px}.gallery-group{gap:20px}.work-card{width:440px;box-shadow:none;border:1px solid rgba(17,23,35,.12);border-radius:18px}.work-image{height:260px}.work-caption{gap:12px}.work-caption strong{font-size:17px}.work-caption>span{font-size:12px}.icon-button{min-width:44px;min-height:44px}.works-note{margin-top:24px}
.kub-case{border-radius:0;margin-top:0;padding-top:112px;background:linear-gradient(#0b0e16,#121824);color:#f5f7fc}.case-intro h2{font-size:clamp(40px,5.5vw,80px)}.case-scroll{min-height:0;margin-top:56px}.case-sticky{position:relative;top:0;padding-bottom:80px;gap:48px}.case-screen>img{aspect-ratio:4/3;object-fit:contain}.case-media::before{display:none}.case-screen{box-shadow:0 24px 70px #03060b88;border:1px solid #2a3548}.scene-tab{font-size:20px}.case-media-footer{flex-wrap:wrap}.case-media-footer .button{font-size:13px}.case-progress{display:none}.unicrop-case{padding-block:120px}.unicrop-preview{margin:0;box-shadow:0 20px 60px -24px rgba(17,23,35,.24)}.unicrop-preview::before,.stroy-preview::before{display:none}.unicrop-preview>img,.stroy-preview>img{aspect-ratio:auto;object-fit:contain}.stroy-case{margin:0;border-radius:0;background:#ebeef3}.stroy-preview{margin:0}.services{padding-block:120px}.solution-panel{background:white;box-shadow:none;border:1px solid rgba(17,23,35,.12)}.solution-tabs button{font-size:24px}.solution-panel h3{font-size:32px}
.engineering{background:#0b0e16;color:#f5f7fc}.engineering-intro>p,.layer-detail>p,.engineering-note{color:#b7c0d1}.system-node{background:#1b2433;color:#b7c0d1;box-shadow:none;border:1px solid #2a3548;transform:none}.system-node[aria-selected=true]{background:#b4a0ff;color:#111723;box-shadow:none;transform:none}.system-node:hover:not([aria-selected=true]){color:#f5f7fc;border-color:#b4a0ff}.layer-detail{border-color:#2a3548}.layer-detail .layer-example{color:#c5b5ff}.diagram-connector{color:#b7c0d1}.contact{background:#07090e}.contact .text-link{color:#c5b5ff}.contact .button{color:#111723}.skip-link{z-index:120}.image-dialog{z-index:100}.image-dialog::backdrop{background:rgba(3,6,11,.84)}
.solution-outcomes{margin:24px 0 28px;display:grid;gap:20px}.solution-outcomes dt{font-size:13px;line-height:1.5;font-weight:600;color:#6545c0;margin-bottom:6px}.solution-outcomes dd{margin:0;color:#334155;font-size:16px;line-height:1.65;max-width:56ch}.services>.eyebrow{margin-bottom:20px}.services>.section-lead{max-width:62ch}

/* Shared reader environment; the existing WebGL canvas moves into this host. */
.reader-atmosphere{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:#070c11}
.reader-atmosphere canvas{display:block;width:100%;height:100%}
.reader-atmosphere::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#060d13cc 0%,#060d1378 48%,#060d1314 100%)}
:root{--paper:#f5f6f8;--ink:#111723;--muted:#475569;--soft:#ebeef3;--blue:#6545c0;--blue-hover:#5235a6;--black:#080d10;--accent:#b4a0ff;--accent-hover:#c5b5ff;--page-gutter:clamp(20px,4vw,72px);color-scheme:light}html{scroll-padding-top:30px}.wrap{width:min(1440px,calc(100% - var(--page-gutter)*2))}.button{background:var(--accent);color:#111723;min-height:48px}.button:hover{background:var(--accent-hover)}:focus-visible{outline:2px solid #c5b5ff;outline-offset:4px}
.site-header{position:fixed;top:38px;right:40px;left:auto;width:auto;height:48px;background:transparent;border:0;z-index:50}
.exact-nav{
 display:flex;
 align-items:center;
 gap:clamp(2px,.45vw,8px);
 font:580 clamp(12px,1.02vw,14px)/1 var(--sans);
}
.exact-nav::before{
 content:"";position:absolute;inset:3px -3px;z-index:-1;pointer-events:none;
 border:1px solid #a7d8e022;border-radius:999px;
 background:linear-gradient(180deg,#172c378c,#081419d6);
}
.exact-nav a{
 position:relative;
 display:flex;
 align-items:center;
 justify-content:center;
 min-height:44px;
 padding-inline:clamp(10px,1.05vw,16px);
 border-radius:999px;
 color:#bccdd4;
 white-space:nowrap;
 transition:color .16s ease,background-color .18s ease;
}
.exact-nav a::after{
 content:"";
 position:absolute;
 bottom:6px;
 left:50%;
 width:4px;
 height:4px;
 border-radius:50%;
 background:#b6fff5;
 box-shadow:0 0 7px #8ce7ee;
 opacity:0;
 translate:-50% 0;
 transition:opacity .16s ease;
}
.exact-nav a:is(:hover,:focus-visible){background:#b0d8e111;color:#eff7f9}
.exact-nav a[aria-current="page"]{background:#30575f;color:#f2fffe}
.exact-nav a[aria-current="page"]::after{opacity:1}
.exact-nav a:focus-visible{outline:2px solid #d3e8ff;outline-offset:-3px}
.site-header.is-scrolled{border:0}
.spatial-gallery{--focus:0;--handoff:0;--intro:0;--about:0;--home:1;position:relative;isolation:isolate;min-height:100svh;background:#080d10;color:#e8edef}.spatial-gallery.scene-ready{height:var(--scene-scroll-height,2331svh)}.gallery-sticky{position:sticky;top:0;width:100%;height:100svh;min-height:0;overflow:clip;background:radial-gradient(ellipse at 5% 100%,#312348,transparent 60%),radial-gradient(ellipse at 100% 0,#144047,transparent 55%),#080d10}.gallery-layout.wrap{position:relative;width:100%;max-width:none;height:100%;margin:0}.scene-viewport{position:absolute;inset:0;width:100%;height:100%;isolation:isolate}.scene-viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0}.scene-ready .scene-viewport canvas{opacity:1}
.gallery-copy{position:absolute;left:11%;top:28%;z-index:3;width:77%;pointer-events:none}.gallery-copy h2{font:400 clamp(38px,6vw,100px)/1.05 var(--sans);letter-spacing:-.06em;text-transform:uppercase;max-width:16ch}.gallery-copy h2 span{color:inherit}.scene-ready .gallery-copy h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.gallery-copy .eyebrow,.gallery-copy .hero-lead{position:absolute;left:65%;top:165px;width:32%;max-width:380px;margin:0;font:400 14px/1.7 var(--sans);text-transform:uppercase;color:#d2dbde;opacity:var(--about)}.gallery-copy .hero-lead{top:220px}
#handoff-image{position:absolute;z-index:5;padding:0;border:0;background:transparent;overflow:hidden;border-radius:8px;opacity:var(--handoff);visibility:hidden;cursor:zoom-in}.scene-ready #handoff-image{visibility:visible;pointer-events:none}.scene-ready[data-scene-focus="1.000"] #handoff-image{pointer-events:auto}#handoff-image img{width:100%;height:100%;object-fit:contain}.static-gallery{position:absolute;top:18%;bottom:20%;left:45%;right:5%;display:grid;grid-template-columns:1fr 1fr;gap:16px}.static-gallery>a{display:flex;flex-direction:column;overflow:hidden;border:1px solid #536477;border-radius:12px;background:#121824;min-height:0}.static-gallery>a:first-child{grid-column:auto}.static-gallery img{width:100%;min-height:0;height:0;flex:1;object-fit:cover;object-position:top}.static-gallery span{padding:10px 14px;font-size:12px}.static-gallery small{display:block;color:#aebad0;margin-top:5px}.scene-ready .static-gallery{visibility:hidden;pointer-events:none}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) :is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .gallery-copy{left:5%;top:14%;width:36%}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .gallery-copy h2{font:600 clamp(28px,3vw,50px)/1.06 var(--sans);letter-spacing:-.04em;text-transform:none}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .gallery-copy .eyebrow{position:static;opacity:1;width:auto;margin-bottom:20px;font-size:10px}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .hero-lead{position:static!important;opacity:1!important;width:auto!important;font:16px/1.6 var(--sans)!important;text-transform:none!important;margin-top:20px!important}
.skip-link{z-index:120}.image-dialog{z-index:100}.image-dialog::backdrop{background:#03060bd6}
@media(max-width:767px){.site-header{top:40px;right:40px}.gallery-copy{left:8%;top:27%;width:84%}.gallery-copy .eyebrow{left:0;top:220px;width:85%;font-size:11px}.gallery-copy .hero-lead{left:0;top:265px;width:85%;font-size:11px}.spatial-gallery.scene-ready{height:var(--scene-scroll-height,2331svh)}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .gallery-sticky{height:880px;min-height:100svh}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .gallery-copy{top:120px;left:20px;width:calc(100% - 40px)}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .gallery-copy h2{font-size:32px}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .static-gallery{left:20px;right:20px;top:430px;bottom:90px}.works{padding-block:72px}.work-card{width:min(82vw,340px)}.work-image{height:210px}.section-head{gap:24px}.works h2{font-size:36px}.section-lead{font-size:15px}.kub-case{padding-top:72px}.case-intro h2{font-size:42px}.case-intro>p{font-size:18px}.case-sticky{display:block;padding-bottom:56px}.case-scroll{margin-top:32px}.case-tabs{margin-top:32px}.scene-tab{font-size:18px}.unicrop-case,.services{padding-block:72px}.solution-tabs button{font-size:21px}.solution-panel h3{font-size:29px}.system-node[aria-selected=true]{transform:none}.engineering-note{width:calc(100% - 40px)}}
@media(max-width:359px){.site-header{right:20px;top:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.gallery-sticky{position:relative}}
@media(scripting:none){#brief-form,.gallery-project-copy,.rail-controls,.zoom-button{display:none}.gallery-copy .hero-lead,.gallery-copy .eyebrow{opacity:1;position:static;width:auto;font-size:12px}.gallery-copy h2{font-size:32px}.gallery-copy{left:5%;width:35%;top:18%}.solution-panel[hidden],.layer-detail[hidden],.scene-caption[hidden]{display:block!important}[role=tablist]{display:none}}
@media(scripting:none) and (max-width:767px){.gallery-sticky{height:940px}.gallery-copy{left:20px;right:20px;top:130px;width:auto}.gallery-copy h2{max-width:15ch}.static-gallery{left:20px;right:20px;top:480px;bottom:80px}}
/* Continuous exhibition on the main route; readable project chapters on demand. */
body{background:#080d12;color:#e4eaf0;--paper:#080d12;--ink:#e4eaf0;--muted:#a9b7c4;--soft:#111b25;--line:#293844;scrollbar-color:#75838d #080d12}
html{scrollbar-color:#75838d #080d12}
.reader-back{display:none;position:fixed;z-index:55;top:40px;left:4%;min-height:44px;align-items:center;color:#b3c8d9;font:12px var(--sans);text-transform:uppercase}
body[data-page-view]:not([data-page-view="gallery"]) .reader-back{display:flex}
body[data-page-view]:not([data-page-view="gallery"]){background:radial-gradient(ellipse at 0 0,#17243266,transparent 65%),#080d12}
body[data-page-view] #main>section:not(#top){padding-block:clamp(140px,14vw,200px) 80px;min-height:100svh;color:#e4eaf0}
body[data-page-view] #main>section:not(#top) h2{
 font:680 clamp(30px,4.5vw,64px)/1.11 var(--display);
 letter-spacing:-.03em;
 overflow-wrap:break-word;
}
body[data-page-view] :is(.works,.kub-case,.stroy-case,.services,.engineering,.approach,.insights,.faq,.contact){background:transparent;box-shadow:none}
body[data-page-view] :is(.section-lead,.case-intro>p,.unicrop-copy>p,.stroy-copy>p,.project-brief dd,.approach-step>p,.insight-body p,.faq-list details>p,.contact-lead){color:#b8c5d1}
body[data-page-view] :is(.project-brief dt,.project-availability,.project-status,.case-facts,.work-caption>span,.works-note p){color:#91a5b6}
body[data-page-view] :is(.work-card,.solution-panel,.approach-step,.system-node){background:#111b25;border-color:#2a3947;color:#d7e1e9}
body[data-page-view] :is(.case-details,.insight,.faq-list details,.project-brief,.work-caption,.solution-tabs button){border-color:#283744}
body[data-page-view] .solution-tabs button{color:#a6b8c8}body[data-page-view] .solution-tabs button[aria-selected=true]{color:#d8e5ee}
body[data-page-view] .solution-panel h3{color:#dfe7ed}body[data-page-view] .solution-panel p,body[data-page-view] .solution-panel li{color:#b8c5d1}
body[data-page-view] .image-dialog{background:#101923;color:#e4eaf0;border-color:#344553}body[data-page-view] .icon-button{background:#15212d;color:#cfdee8;border-color:#344553}
@media(max-width:767px){.reader-back{top:106px;left:20px;font-size:11px}body[data-page-view] #main>section:not(#top){padding-top:180px}body[data-page-view] #main>section:not(#top) h2{font-size:clamp(28px,7.5vw,44px)}}

body{color-scheme:dark}body :is(button,a,input,textarea,select,[tabindex]):focus-visible{outline:2px solid #c5b5ff;outline-offset:4px}


.project-intro{max-width:920px}.project-intro h2{margin-bottom:24px}.project-film{margin:48px 0 40px}.project-film video{display:block;width:100%;height:auto;aspect-ratio:var(--video-aspect,1.8);max-height:min(78svh,calc(100svh - 260px));object-fit:contain;background:#031320;border:1px solid #334755;border-radius:14px}.project-film figcaption{font-size:12px;color:#9ab0bf;margin-top:14px}.project-details{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-bottom:32px}.project-details h3{font-size:24px;font-weight:500;margin-bottom:16px}.project-details p{max-width:52ch;color:#b8c5d1;line-height:1.7}.project-action{margin-top:40px}
@media(max-width:767px){.project-film{margin-top:32px}.project-details{grid-template-columns:1fr;gap:28px}.project-details h3{font-size:22px}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .static-gallery{bottom:130px}}

.project-action .button{max-width:100%;white-space:normal;text-align:center}
.work-image video{display:block;width:100%;height:100%;object-fit:contain;background:#0b1019;pointer-events:none}
.case-video-wrap{grid-column:1/-1}.case-video-wrap .project-film{margin-block:40px 64px}

:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .static-gallery{overflow-y:auto;align-content:start;grid-auto-rows:220px;scrollbar-width:thin}
@media(max-width:767px){.static-gallery>a{min-height:150px}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .static-gallery{grid-auto-rows:180px}.project-film video{max-height:65svh}}


.static-gallery>a:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:767px){:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .gallery-sticky{height:1020px}:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .static-gallery{bottom:180px}}

@media(min-width:1024px){:is(.store-case,.business-case){display:grid;grid-template-columns:.75fr 1.3fr;column-gap:clamp(32px,4vw,64px);align-items:start}.project-intro{grid-column:1;grid-row:1}.project-intro h2{font-size:clamp(30px,3vw,44px)!important}.project-intro .section-lead{font-size:18px;line-height:1.65}.project-film{grid-column:2;grid-row:1;margin:0}.project-details{grid-column:1/-1;margin-top:64px}.project-details~a,.project-action{grid-column:1/-1}}


/* Chapter copy travels with the spatial passage, rather than hovering over the next scene. */
.scene-ready .gallery-copy{transform:translateY(calc(var(--entry-scroll,0) * -90svh))}



/* DOM copy shares the view's camera travel and incoming/outgoing viewport cut. */
.chapter-copy-mask{display:contents}
.scene-ready .chapter-copy-mask{display:block;position:absolute;inset:0;z-index:3;pointer-events:none}
.scene-ready .gallery-copy{transform:translateY(calc(var(--about-shift,0) * 100svh))}

.chapter-layer{display:contents}
.scene-ready .chapter-layer{display:block;position:absolute;inset:0;z-index:8;pointer-events:none}
@media(max-width:767px){}


/* The lab caption sits on the same horizontal axis as the small shared mark. */

.gallery-copy .hero-lead{text-transform:none;font:16px/1.6 var(--sans)}
:is(.scene-fallback,[data-scene-status="loading"],[data-scene-status="idle"]) .scene-offer{display:none}
body[data-page-view] .solution-outcomes dt{color:#c5b5ff}body[data-page-view] .solution-outcomes dd{color:#c6d2dd}
body[data-page-view] .solution-links .text-link{color:#c5b5ff}
@media(max-width:767px){.gallery-copy .hero-lead{font-size:15px}}
@media(max-width:639px){}
@media(prefers-reduced-motion:reduce){}


@media(min-width:768px){.gallery-copy .eyebrow{top:210px}.gallery-copy .hero-lead{top:265px}}

@media(max-width:767px){.scene-ready .gallery-copy{top:56%}.scene-ready .gallery-copy .eyebrow{position:static;width:auto}.scene-ready .gallery-copy .hero-lead{position:static;width:auto;margin:12px 0 0}}


/* Opened work: a quiet reading column beside the frame, or below it on narrow screens. */
.gallery-project-copy{
 position:absolute;z-index:6;visibility:hidden;opacity:var(--focus);
 inset:var(--detail-copy-start) auto max(16px,env(safe-area-inset-bottom)) var(--page-gutter);
 width:min(320px,calc(var(--detail-frame-left) - var(--page-gutter) - clamp(14px,1.5vw,28px)));
 display:flex;flex-direction:column;justify-content:safe center;
 overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#648b94 transparent;
}
.is-focused .gallery-project-copy{visibility:visible}
.gallery-project-summary h2{
 margin:0;color:#f2f8fa;
 font:730 clamp(23px,2.1vw,34px)/1.08 var(--sans);letter-spacing:-.035em;
 text-wrap:balance;
}
.gallery-project-summary p{margin:0;color:#cbdce4;font:500 clamp(13px,1.02vw,15px)/1.48 var(--sans)}
#gallery-project-category{margin-top:5px;color:#a3c0cc;font-size:12px}
#gallery-project-description{margin-top:10px;max-width:38ch}
.gallery-project-actions,.gallery-project-tools{display:flex;align-items:center;flex-wrap:wrap;gap:0 14px}
.gallery-project-actions{margin-top:12px}
#gallery-case-link{
 padding-inline:13px;border-radius:10px;text-decoration:none;text-align:center;
}
.gallery-project-tools button{
 min-height:44px;padding:0;border:0;border-radius:4px;
 background:none;color:#b4cdd7;font:650 12px/1.3 var(--sans);
}
.gallery-project-tools button:not(:disabled):is(:hover,:focus-visible){color:#f2f8fa}
.gallery-project-tools button:disabled{opacity:.68;cursor:default}
:is(.gallery-project-tools button,#handoff-image):focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}

.scene-ready #handoff-image img{opacity:0}
#handoff-image span{
 position:absolute;right:8px;bottom:8px;padding:5px 8px;
 border-radius:6px;background:#0b151ee8;color:#eff7fa;
 font:650 11px/1.25 var(--sans);opacity:0;
}
.scene-detail-active #handoff-image span{opacity:1}

.scene-ready:is([data-detail-layout="stacked"],[data-detail-layout="panel"]) .gallery-project-copy{
 inset-inline:var(--page-gutter);top:var(--detail-copy-top);
 width:min(calc(100% - 2 * var(--page-gutter)),max(340px,var(--detail-frame-width)));
 margin-inline:auto;justify-content:flex-start;
}
@media(max-height:600px){
 .gallery-project-summary h2{font-size:clamp(20px,2.1vw,26px)}
 #gallery-project-category{margin-top:4px}
 #gallery-project-description{margin-top:6px}
 .gallery-project-actions{margin-top:8px}
}

/* The wave and its central counter share the same centered frame at every size. */
.arrival-loader{
 --arrival-stage:min(100vw,148svh,1440px);
 display:none;position:fixed;inset:0;z-index:85;background:#02050a;
 place-items:center;pointer-events:none;overflow:hidden;
}
.scene-boot .arrival-loader{display:grid}
.arrival-field,.arrival-flat::before{
 position:absolute;inset:0;margin:auto;transform-origin:center;
}
.arrival-field{
 width:var(--arrival-stage);height:calc(var(--arrival-stage) * .625);
}
.arrival-flat .arrival-field{visibility:hidden}
.arrival-flat::before{
 content:"";width:calc(var(--arrival-stage) * .21);height:calc(var(--arrival-stage) * .21);
 border:1px solid #79caff;border-radius:50%;box-shadow:0 0 28px #287cd066;
}
.arrival-loader.is-flying .arrival-field,.arrival-flat.is-flying::before{
 animation:arrival-flight .54s cubic-bezier(.64,.03,.78,.38) both;
}
.arrival-loader.is-flying .arrival-count{animation:arrival-count-away .19s ease-out both}
@keyframes arrival-flight{from{transform:scale(1)}to{transform:scale(var(--arrival-flight-end,12))}}
@keyframes arrival-count-away{to{opacity:0}}
.arrival-count{
 position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
 color:#d7f3ff;font:600 clamp(11px,calc(var(--arrival-stage) * .019),24px)/1 var(--sans);
 font-variant-numeric:tabular-nums;letter-spacing:.045em;
 text-shadow:0 0 .65em #3f9df28c;
}
.scene-boot .scene-offer{visibility:hidden}
@media(prefers-reduced-motion:reduce){.arrival-loader{display:none!important}}

.scene-boot .site-header{visibility:hidden}
body:has(.opening-cover[data-opening-video="playing"]) .site-header.portfolio-header{
 backdrop-filter:none;
}

.scene-ready .scene-offer{opacity:var(--offer-opacity,var(--home))}

/* V32: the scene keeps a quiet reading layer above the moving facets. */

/* About chapter: readable HTML in front, the moving mark in the right-hand depth. */
.scene-ready .chapter-copy-mask:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,14,.72),rgba(7,9,14,.24) 55%,transparent 82%);opacity:var(--about);pointer-events:none}
.scene-ready .gallery-copy{left:8%;top:50%;width:49%;max-width:680px;display:flex;flex-direction:column;align-items:flex-start;gap:0;opacity:var(--about);transform:translateY(calc(-50% + var(--about-shift,0) * 30svh))}
.scene-ready .gallery-copy h2{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;font:400 clamp(36px,4.5vw,72px)/1.12 var(--sans);letter-spacing:-.035em;max-width:16ch;color:#f5f7fc}
.scene-ready .gallery-copy .hero-lead{position:static;left:auto;top:auto;width:100%;max-width:40ch;margin:28px 0 0;font:400 clamp(16px,1.45vw,20px)/1.6 var(--sans);color:#d2dbde;opacity:1;text-transform:none}
.scene-ready .gallery-copy .eyebrow{position:static;left:auto;top:auto;width:auto;max-width:42ch;margin:24px 0 0;font:400 11px/1.7 var(--sans);letter-spacing:0;color:#9aabb7;opacity:1;text-transform:uppercase;white-space:nowrap}
@media(max-width:767px){
 .scene-ready .chapter-copy-mask:before{background:linear-gradient(90deg,rgba(7,9,14,.88),rgba(7,9,14,.35))}
 .scene-ready .gallery-copy{left:8%;top:51%;width:84%;max-width:480px;transform:translateY(calc(-50% + var(--about-shift,0) * 16svh))}
 .scene-ready .gallery-copy h2{font-size:clamp(28px,7.6vw,48px);line-height:1.15}
 .scene-ready .gallery-copy .hero-lead{margin-top:24px;font-size:16px;max-width:33ch}
 .scene-ready .gallery-copy .eyebrow{margin-top:20px;font-size:10px;max-width:34ch}
}
@media(min-width:768px) and (max-height:650px){.scene-ready .gallery-copy h2{font-size:clamp(32px,4vw,52px)}.scene-ready .gallery-copy .hero-lead{margin-top:20px;font-size:16px}.scene-ready .gallery-copy .eyebrow{margin-top:16px}}


/* Keep stable semantic link targets; the canvas bends the painted glyph outlines. */
/* Reader surfaces continue the exhibition's material and typography. */
body[data-page-view]:not([data-page-view="gallery"]) #main{position:relative;z-index:1}
body[data-page-view]:not([data-page-view="gallery"]){--line:#9fc6ca33;--blue:#b5dedc;--blue-hover:#e1efed;--muted:#b8cbd2;background:#080d12}
body[data-page-view]:not([data-page-view="gallery"]) #main>section{background:transparent}
body[data-page-view]:not([data-page-view="gallery"]) #main>section:not(#top){padding-block:clamp(150px,12vw,180px) 100px}
body[data-page-view]:not([data-page-view="gallery"]) #main h2{font-size:clamp(32px,4vw,58px);line-height:1.16;letter-spacing:-.035em;text-transform:none;max-width:25ch}
body[data-page-view]:not([data-page-view="gallery"]) #main h3{font-weight:500;letter-spacing:-.025em;line-height:1.25;color:#e1e9e9}
body[data-page-view]:not([data-page-view="gallery"]) .section-lead{max-width:62ch;font-size:17px;line-height:1.75;color:#bdcdd4}
body[data-page-view]:not([data-page-view="gallery"]) .button{border:1px solid #a2c3c66e;border-radius:28px;background:#08111699;color:#dae8e9;font:12px/1.4 var(--sans);text-transform:uppercase;padding:15px 22px;box-shadow:none;transition:background .25s,border-color .25s,color .25s}
body[data-page-view]:not([data-page-view="gallery"]) .button:hover{background:#183037bd;border-color:#c2dfddbb;color:white}
body[data-page-view]:not([data-page-view="gallery"]) .text-link{color:#bad4d8;font-size:14px;font-weight:400}
body[data-page-view]:not([data-page-view="gallery"]) :is(.solution-panel,.system-node,.brief-fields,.work-card){position:relative;isolation:isolate;background:#08121891;border:1px solid #a0c3cb33;box-shadow:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px}
body[data-page-view]:not([data-page-view="gallery"]) :is(.solution-panel,.system-node,.insight,.project-details,.project-brief,.brief-fields)::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(350px circle at var(--light-x,70%) var(--light-y,0%),#b2e5e514,transparent 75%);opacity:var(--surface-light,0);transition:opacity .4s}
body[data-page-view]:not([data-page-view="gallery"]) :is(.process-list li,.insight,.faq-list details,.project-details,.project-brief){position:relative;isolation:isolate}
body[data-page-view]:not([data-page-view="gallery"]) :is(.engineering-intro>p,.layer-detail>p,.engineering-note,.insights-lead,.process-list p,.process-output,.faq-list p){color:#b5c8d0}
body[data-page-view]:not([data-page-view="gallery"]) :is(.layer-detail,.process-output,.faq-list details,.case-details,.project-brief){border-color:#a6c5ca33}
body[data-page-view]:not([data-page-view="gallery"]) .layer-detail .layer-example{color:#a4cfce}
body[data-page-view]:not([data-page-view="gallery"]) .diagram-connector{color:#a3c9ca}
body[data-page-view]:not([data-page-view="gallery"]) .process-list{gap:32px;margin-top:54px}
body[data-page-view]:not([data-page-view="gallery"]) .process-list li{padding:24px 4px 10px;border-top:1px solid #a6c5ca4d}
body[data-page-view]:not([data-page-view="gallery"]) .process-index{font:14px var(--sans);color:#a3c6c9}
body[data-page-view]:not([data-page-view="gallery"]) .process-list h3{font-size:24px;margin-top:20px}
body[data-page-view]:not([data-page-view="gallery"]) .process-output strong{font:11px var(--sans);text-transform:uppercase;color:#b7d0d3}
body[data-page-view]:not([data-page-view="gallery"]) :is(.insight summary strong,.faq-list summary){font-weight:400;color:#d9e5e8}
body[data-page-view]:not([data-page-view="gallery"]) details[open]{background:#08151b66}
body[data-page-view]:not([data-page-view="gallery"]) :is(.insight summary:hover,.faq-list summary:hover){color:#bce3e0}
body[data-page-view]:not([data-page-view="gallery"]) .brief-fields{padding:30px 34px}
body[data-page-view]:not([data-page-view="gallery"]) :is(.brief-fields select,.brief-fields textarea,#brief-output){border-color:#a6c5ca66;background:#050d1277;color:#dfe9eb;caret-color:#bde7e3}
body[data-page-view]:not([data-page-view="gallery"]) :is(.brief-fields textarea,#brief-output)::placeholder{color:#9fb7c1}
body[data-page-view]:not([data-page-view="gallery"]) .brief-fields label{font-size:15px;font-weight:400;color:#b5d2d7}
body[data-page-view]:not([data-page-view="gallery"]) :is(.project-film video,.case-screen,.unicrop-preview,.stroy-preview){background:#06101699;border-color:#9db9c14d;box-shadow:none}
body[data-page-view]:not([data-page-view="gallery"]) .work-card:hover{transform:none;border-color:#bad9d9a6}
body[data-page-view]:not([data-page-view="gallery"]) .reader-back{color:#b6d0d4}
::selection{background:#668a9977;color:#f2f8f7}
@media(max-width:767px){
 .reader-atmosphere::after{background:linear-gradient(90deg,#060d13c9,#060d1399 65%,#060d1355)}
 body[data-page-view]:not([data-page-view="gallery"]) #main>section:not(#top){padding-block:178px 64px}
 body[data-page-view]:not([data-page-view="gallery"]) #main h2{font-size:clamp(29px,7.2vw,44px);max-width:100%;letter-spacing:-.035em}
 body[data-page-view]:not([data-page-view="gallery"]) .process-list{grid-template-columns:1fr;gap:22px}
 body[data-page-view]:not([data-page-view="gallery"]) .process-list li{padding-top:20px}
 body[data-page-view]:not([data-page-view="gallery"]) .brief-fields{padding:24px 20px}
 body[data-page-view]:not([data-page-view="gallery"]) .brief-actions .button{max-width:100%;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.reader-atmosphere{display:none}}
/* Controls keep steady labels; surrounding surfaces provide restrained feedback. */
body[data-page-view]:not([data-page-view="gallery"]) :is(button,a,summary,.layer-detail,.brief-result,.brief-form,.insight-body,p)[data-reader-pulse]{position:relative;isolation:isolate}
body[data-page-view]:not([data-page-view="gallery"]) .reader-back[data-reader-pulse]{position:fixed}
body[data-page-view]:not([data-page-view="gallery"]) [data-reader-pulse]::before{content:"";position:absolute;inset:-2px;z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(circle var(--press-radius,1px) at var(--press-x,50%) var(--press-y,50%),transparent 43%,#c5e9ed 61%,#c5b5e2 64%,transparent 72%);opacity:var(--press-opacity,0)}
body[data-page-view]:not([data-page-view="gallery"]) .brief-fields{transition:border-color .25s,background .25s}
body[data-page-view]:not([data-page-view="gallery"]) .brief-fields:focus-within{border-color:#b8dfdc88;background:#0a1d258c}
body[data-page-view]:not([data-page-view="gallery"]) :is(select,textarea):focus-visible{outline-color:#b9e3de}
body[data-page-view]:not([data-page-view="gallery"]) textarea[aria-invalid="true"]{border-color:#e2acb5;outline-color:#e2acb5}
body[data-page-view]:not([data-page-view="gallery"]) .brief-result{padding:30px 34px;background:#08121891;border:1px solid #a0c3cb55;border-radius:14px;backdrop-filter:blur(12px)}
body[data-page-view]:not([data-page-view="gallery"]) :is(.solution-tabs button,.system-node,.scene-tab)[aria-selected="true"]{text-shadow:0 1px 18px #9fe0e32e}
body[data-page-view]:not([data-page-view="gallery"]) summary:focus-visible{outline-color:#b9e3de}
@media(max-width:767px){body[data-page-view]:not([data-page-view="gallery"]) .brief-result{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){body[data-page-view]:not([data-page-view="gallery"]) [data-reader-pulse]::before{display:none}}
/* Contact is a choice of channel plus a short, ready-to-copy task template. */
body[data-page-view] #brief .contact-lead{font-size:18px;line-height:1.7;max-width:55ch;margin-top:26px;color:#bdcdd4}
.contact-workspace{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:28px;margin-top:40px}
.contact-form{min-width:0}
body[data-page-view] #brief .contact-fields{display:flex;flex-direction:column;gap:18px;padding:30px;margin:0}
body[data-page-view] #brief .contact-fields>label{font:12px var(--sans);text-transform:uppercase;color:#b5d2d7}
body[data-page-view] #brief .contact-fields>select{margin-top:-6px}
body[data-page-view] #brief :is(input,select){display:block;width:100%;min-height:48px;padding:12px 14px;margin-top:9px;border:1px solid #a6c5ca55;border-radius:10px;background:#050d1277;color:#dfe9eb;font:15px/1.5 var(--sans);caret-color:#bde7e3}
body[data-page-view] #brief select{padding-right:40px}
body[data-page-view] #brief input::placeholder{color:#9fb4bf;opacity:1}
.brief-task-fields{display:grid;gap:18px}
.brief-identity{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;padding:22px 0 0;margin:4px 0 0;border:0;border-top:1px solid #a6c5ca33;min-width:0}
.brief-identity legend{padding:0 14px 0 0;font:12px/1.5 var(--sans);text-transform:uppercase;color:#b5d2d7}
body[data-page-view] #brief .contact-fields label{font-size:14px;line-height:1.5;color:#c7d8de}
body[data-page-view] #brief .contact-preview{position:sticky;top:122px;margin:0;max-width:none;padding:30px;min-width:0}
body[data-page-view] #brief .contact-preview h3{font-size:25px}
body[data-page-view] #brief .contact-preview>p{font-size:14px;line-height:1.65;color:#b8cdd4;margin-top:12px}
body[data-page-view] #brief #brief-output{margin-top:22px;width:100%;min-height:390px;max-height:560px;padding:18px;font:13px/1.75 var(--sans);border-radius:10px;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere}
body[data-page-view] #brief .contact-copy-row{margin-top:22px;display:block}
body[data-page-view] #brief .contact-copy-row .button{width:100%;justify-content:center;gap:18px}
body[data-page-view] #brief .copy-status{min-height:24px;color:#b9dfd8;font-size:13px;margin-top:14px}
.contact-noscript{margin-top:30px;color:#bfced4}
@media(max-width:767px){
 body[data-page-view] #brief .contact-lead{font-size:16px}
 .contact-workspace{grid-template-columns:1fr;gap:22px;margin-top:28px}
 body[data-page-view] #brief :is(.contact-fields,.contact-preview){padding:24px 20px}
 body[data-page-view] #brief .contact-preview{position:relative;top:auto}
 .brief-identity{gap:16px 12px}
 body[data-page-view] #brief input{font-size:16px;padding:12px;min-width:0}
 body[data-page-view] #brief #brief-output{font-size:12px;min-height:410px}
}
@media(max-width:359px){.brief-identity{grid-template-columns:1fr}}
.contact-alternate{
 display:flex;align-items:center;flex-wrap:wrap;gap:0 9px;margin-top:16px;font-size:13px;color:#abc1cb;
}
.contact-alternate a{color:#c7dfdf;display:inline-flex;align-items:center;min-height:44px}
.contact-alternate a:is(:hover,:focus-visible){color:#effffc}
.contact-alternate .email-copy{width:44px;height:44px;display:grid;place-items:center}
.email-copy svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
body[data-page-view] #brief .email-copy:is(:hover,:focus-visible,[data-copied]){
 background:#24464d;color:#c3f8eb;border-color:#7bb5b6;
}
.email-copy-status{flex-basis:100%;color:#c2e5dc}
.email-copy-status:empty{display:none}
.contact-template-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:-5px}
body[data-page-view] #brief .contact-template-actions .text-link{font-size:13px;min-height:44px;gap:12px}
body[data-page-view] #brief .contact-template-actions .copy-status{font-size:12px;line-height:1.5;min-height:0;margin:0}
body[data-page-view] #brief #brief-output{font-size:14px}
@media(max-width:767px){body[data-page-view] #brief #brief-output{font-size:13px}}
.scene-gallery-title{display:none}
.scene-gallery-heading{display:none}
.scene-ready .scene-gallery-heading{
 --gallery-arrow-size:34px;
 position:absolute;display:grid;gap:clamp(18px,2.5svh,24px);
 inset:auto auto max(clamp(12px,3svh,32px),env(safe-area-inset-bottom),var(--cookie-clearance,0px)) var(--page-gutter);
 inline-size:max-content;max-inline-size:calc(100% - var(--page-gutter) - 12px);
 translate:0 calc(var(--gallery-title-shift,0) * 8svh);
 opacity:0;pointer-events:none;
}
.scene-ready .scene-gallery-title{
 display:block;
 margin:0;color:#edf7fa;font:650 clamp(37px,10.5vw,52px)/1.08 var(--sans);letter-spacing:-.04em;
 text-shadow:0 2px 18px #050913,0 2px 7px #050913;
}
/* Size the block from the title, then distribute the four controls across it. */
.scene-gallery-controls{
 contain:inline-size;display:grid;align-items:center;gap:clamp(6px,.9vw,9px);
 grid-template-columns:repeat(2,var(--gallery-arrow-size)) minmax(0,1.12fr) minmax(0,1fr);
}
.scene-gallery-heading:not([inert]) .scene-gallery-controls > *{pointer-events:auto}
.scene-gallery-controls .icon-button{
 box-sizing:border-box;inline-size:var(--gallery-arrow-size);block-size:var(--gallery-arrow-size);
 min-inline-size:0;min-block-size:0;padding:0;border-radius:50%;
}
.scene-gallery-controls .icon-button svg{width:16px;height:16px}
.scene-gallery-controls .action-cta{padding-inline:6px;gap:5px;white-space:nowrap}
.scene-gallery-controls button[aria-disabled="true"]{opacity:.45;cursor:default}
.pending-gallery-link{margin-block-end:12px}
.scene-ready .pending-gallery-link{display:none}
@media(max-width:480px){
 .scene-ready .scene-gallery-heading{inline-size:calc(100% - var(--page-gutter) - 12px);max-inline-size:340px}
 .scene-gallery-controls .action-cta{font-size:12px}
}
@media(max-width:340px){
 .scene-ready .scene-gallery-heading{--gallery-arrow-size:32px}
 .scene-gallery-controls .action-cta{padding-inline:4px}
}
@media(max-width:310px){
 .scene-gallery-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
 .scene-gallery-controls .icon-button:first-child{justify-self:end}
}

/* Responsive reading space: keep the scene, reserve room for its controls. */
body[data-page-view] #main :is(.solution-panel,.contact-fields,.project-details>div,.stroy-copy,.unicrop-copy,.case-tabs,.layer-detail>*){min-width:0}
body[data-page-view] #main :is(.button,.text-link){max-width:100%;white-space:normal;overflow-wrap:break-word}
body[data-page-view] #brief :is(input,select){min-width:0}
@media(max-width:1023px){
 .contact-workspace{grid-template-columns:1fr}
 body[data-page-view] #brief .contact-preview{position:relative;top:auto}
 body[data-page-view] :is(.case-sticky,.unicrop-case,.stroy-inner){display:flex;flex-direction:column;align-items:stretch;gap:32px}
 body[data-page-view] .stroy-inner{flex-direction:column-reverse}
 body[data-page-view] .case-media-footer{flex-direction:row;align-items:center;flex-wrap:wrap}
 body[data-page-view] .case-tabs{margin-top:0}
 body[data-page-view] .process-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:768px) and (max-width:1023px) and (orientation:portrait){
 .scene-ready .gallery-copy{left:8%;top:52%;width:84%;max-width:580px;transform:translateY(calc(-50% + var(--about-shift,0) * 16svh))}
 .scene-ready .gallery-copy h2{font-size:clamp(38px,5.8vw,52px)}
 .scene-ready .gallery-copy .hero-lead{max-width:38ch;font-size:18px}
 .scene-ready .chapter-copy-mask:before{background:linear-gradient(90deg,#07090ee0,#07090e55)}
 .reader-atmosphere::after{background:linear-gradient(90deg,#060d13eb,#060d13a6)}
}
@media(max-width:767px) and (max-height:650px){
 .site-header{top:20px;right:20px}
 .scene-ready .gallery-copy{top:calc(50% + 26px)}
 .scene-ready .gallery-copy h2{font-size:clamp(28px,6.2vw,36px)}
 .scene-ready .gallery-copy .hero-lead{font-size:15px;line-height:1.5;margin-top:16px}
 .scene-ready .gallery-copy .eyebrow{margin-top:16px;white-space:normal}
}
@media(max-height:450px){
 .site-header{top:18px;right:24px}
 .scene-ready .gallery-copy{left:4%;top:80px;width:50%;max-height:calc(100svh - 115px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;transform:translateY(calc(var(--about-shift,0) * 16svh))}
 .scene-ready .gallery-copy h2{font-size:clamp(24px,3.5vw,34px);line-height:1.1}
 .scene-ready .gallery-copy .hero-lead{font-size:15px;line-height:1.5;margin-top:12px}
 .scene-ready .gallery-copy .eyebrow{margin-top:12px;font-size:10px;white-space:normal}
 body[data-page-view] .project-film video{max-height:none}
 body[data-page-view]:not([data-page-view="gallery"]) #main>section:not(#top){padding-top:120px}
 body[data-page-view]:not([data-page-view="gallery"]) .reader-back{top:22px;left:24px}
}
@media(max-width:599px) and (max-height:450px){
 .scene-ready .gallery-copy{width:84%}
 body[data-page-view]:not([data-page-view="gallery"]) .reader-back{top:74px;left:20px}
}
@media(max-width:767px){body[data-page-view] #brief select{font-size:16px}}
@media(max-width:479px){body[data-page-view] .process-list{grid-template-columns:1fr}}


/* Preserve the desktop hierarchy without a fixed desktop-sized navigation. */
.site-header{height:44px;top:clamp(18px,3.5svh,38px);right:clamp(16px,3.5vw,40px)}
body[data-page-view="gallery"]{
 --opening-nav-bottom:max(clamp(18px,3.5svh,38px),calc(env(safe-area-inset-bottom) + 12px));
}
body[data-page-view="gallery"]:has(.spatial-gallery.scene-ready[data-chapter="welcome"]) .site-header{
 top:auto;
 bottom:var(--opening-nav-bottom);
}

@media(max-width:1023px), (max-height:650px){
 .scene-ready[data-offer-layout="split"] .gallery-copy{left:8%;top:50%;width:43%;max-width:680px;max-height:calc(100svh - 112px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;transform:translateY(calc(-50% + var(--about-shift,0) * 30svh))}
 .scene-ready[data-offer-layout="split"] .gallery-copy h2{font-size:clamp(23px,min(4.5vw,6svh),52px);line-height:1.12}
 .scene-ready[data-offer-layout="split"] .gallery-copy .hero-lead{font-size:clamp(13px,min(1.45vw,3.6svh),18px);line-height:1.55;margin-top:clamp(12px,1.8svh,20px);max-width:40ch}
 .scene-ready[data-offer-layout="split"] .gallery-copy .eyebrow{font-size:9px;margin-top:14px;white-space:normal}
}
.scene-ready[data-offer-layout="stacked"] .gallery-copy{left:8%;top:var(--offer-top);width:84%;max-width:580px;max-height:calc(100svh - var(--offer-top) - 64px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;transform:translateY(calc(var(--about-shift,0) * 16svh))}
.scene-ready[data-offer-layout="stacked"] .chapter-copy-mask::before{
 background:linear-gradient(180deg,transparent 14%,rgb(7 8 9 / .18) calc(var(--offer-top) - 28px),rgb(7 8 9 / .72) calc(var(--offer-top) + 32px));
}
.scene-ready[data-offer-layout="stacked"] .gallery-copy h2{font-size:clamp(24px,6.5vw,34px);line-height:1.12}
.scene-ready[data-offer-layout="stacked"] .gallery-copy .hero-lead{font-size:14px;line-height:1.5;max-width:40ch;margin-top:12px}
.scene-ready[data-offer-layout="stacked"] .gallery-copy .eyebrow{font-size:9px;margin-top:14px;white-space:normal}

body[data-page-view]:not([data-page-view="gallery"]) :is(.faq-list summary,.insight summary,.case-details summary){padding-right:8px}

.scene-ready .gallery-copy{pointer-events:auto}

/* Native scrolling, cropped source viewports and one continuous featured card. */
#project-index{--rail-gap:28px;padding-top:clamp(116px,12svh,152px)}
body[data-page-view="project-index"] #project-index h2{font-size:clamp(28px,min(3.5vw,6svh),56px)}
#project-index .section-head{margin-bottom:24px}
#project-index .section-lead{font-size:16px;line-height:1.6;margin-top:18px}
#project-index .gallery-row{scroll-snap-type:x mandatory;scroll-padding-inline:var(--rail-edge,20px);touch-action:pan-x pan-y;cursor:grab}
#project-index .gallery-track{padding:26px var(--rail-edge,20px) 40px;gap:var(--rail-gap)}
#project-index .gallery-group{align-items:center;gap:var(--rail-gap)}
#project-index .work-card{width:var(--rail-card-width);flex:none;transform-origin:center;transform:translateY(var(--rail-lift,0px)) scale(var(--rail-scale,1));scroll-snap-align:center;scroll-snap-stop:normal;transition:transform .12s linear,border-color .35s,box-shadow .35s;box-shadow:0 14px 38px #0004,0 0 30px rgb(159 224 227 / calc(var(--rail-focus,0) * .13));border-color:rgb(167 210 216 / calc(.2 + var(--rail-focus,0) * .38));will-change:transform;-webkit-user-drag:none}
#project-index .work-image{position:relative;height:auto;aspect-ratio:var(--preview-aspect);overflow:hidden;background:#081218}
#project-index .work-image video{position:absolute;display:block;max-width:none;width:var(--preview-width);height:var(--preview-height);left:var(--preview-left);top:var(--preview-top);object-fit:fill;pointer-events:none}
#project-index .work-caption{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;padding:18px;gap:7px;min-height:128px;overflow-wrap:anywhere}
#project-index .work-caption strong{font:700 clamp(16px,1.35vw,20px)/1.3 var(--sans);color:#eaf3f5}
#project-index .work-summary{margin:0;color:#bfcfd8;font:13px/1.5 var(--sans)}
#project-index .work-card-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;font:12px/1.5 var(--sans);color:#adc1ca}
#project-index .work-case-action{font-weight:700;white-space:nowrap;color:#c9edee}
#project-index .work-card:is(:hover,:focus-visible) .work-case-action{color:#c3fff1}
#project-index .gallery-row.is-dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing}
#project-index .gallery-row.is-dragging *{cursor:grabbing}
#project-index .icon-button:disabled{opacity:.3;cursor:default;transform:none}
@media(max-width:767px){#project-index{--rail-gap:22px}#project-index .work-caption{padding:16px}}
@media(max-width:360px){#project-index .work-caption{padding-inline:8px}#project-index .work-caption strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){#project-index .work-card{transition:none;transform:scale(var(--rail-scale,1))}}

/* Equal media height preserves full source proportions without empty bars. */
#project-index{--rail-media-height:min(280px,30svh,calc((100vw - 64px) / 2.3357664234))}
#project-index .gallery-row{scroll-padding-inline:0}
#project-index .gallery-track{padding-inline:var(--rail-leading,20px) var(--rail-trailing,20px)}
#project-index .work-card{width:calc(var(--preview-aspect) * var(--rail-media-height));backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(145deg,#10232ae8,#081218eb)}
#project-index .work-image{height:var(--rail-media-height)}

/* Keep the first heading below the mobile header veil. */
@media(max-width:767px) and (min-height:451px){body[data-page-view="project-index"] #main #project-index{padding-top:184px}}


/* One compact form and one matching preview, with no hidden steps. */
body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief{padding-top:104px}
body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief h2{font-size:clamp(30px,3.2vw,42px)}
body[data-page-view] #brief .contact-lead{margin-top:8px;font-size:14px;line-height:1.5}
#brief .contact-workspace{margin-top:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:24px}
#brief .contact-form{position:static;min-width:0;display:flex}
body[data-page-view] #brief :is(.contact-fields,.contact-preview){padding:18px;margin:0;min-width:0;min-height:0}
body[data-page-view] #brief .contact-fields{display:flex;flex-direction:column;gap:12px;width:100%}
.brief-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:8px 12px;flex:1;min-height:0;padding:2px 4px 4px 2px}
#brief-task-fields{display:contents}
.brief-field{position:relative;min-width:0;max-width:100%}
.brief-new-row{grid-column:1}
body[data-page-view] #brief .contact-fields label{display:block;margin:0;font-size:12px;line-height:1.35;color:#c7d8de}
body[data-page-view] #brief :is(input,select,.brief-picker){display:block;width:100%;min-width:0;max-width:100%;min-height:38px;height:38px;margin-top:5px;padding:8px 10px;font:14px/1.4 var(--sans);border:1px solid #a6c5ca55;border-radius:8px;background:#050d1277;color:#dfe9eb}
body[data-page-view] #brief select{padding-right:28px}
.brief-picker{text-align:left;position:relative;padding-right:28px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brief-picker::after{
 content:"";position:absolute;top:50%;right:13px;width:7px;height:7px;
 border:solid #a8d9db;border-width:0 1.5px 1.5px 0;
 translate:0 -70%;rotate:45deg;pointer-events:none;
}
.brief-picker[aria-expanded="true"]::after{translate:0 -30%;rotate:225deg}
.brief-error{grid-column:1/-1;font-size:12px;line-height:1.4;color:#ffc2b7;margin:0}
.brief-error:empty{display:none}
#brief input[aria-invalid="true"]{border-color:#f4a897}

/* The buyer can read the whole sequence without opening a tab. */
.solution-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin-top:23px}
.solution-actions .text-link{min-height:44px}
.solution-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}
.solution-results .solution-panel{display:flex;flex-direction:column;min-height:0;padding:clamp(18px,2.2vw,30px)}
.solution-results .solution-panel h3{font-size:clamp(21px,2vw,29px)}
.solution-results .solution-panel p{max-width:58ch;font-size:15px;line-height:1.55;margin-block:12px 0}
.solution-results .format-scope{padding-top:12px;border-top:1px solid #a0c3cb33}
.format-scope strong{color:#e6f1f4}
.format-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:auto;padding-top:16px}
.format-actions .text-link,.format-actions .button{min-height:44px}
body[data-page-view="approach"] #main>section:not(#top):is(#solutions,#process,#insights,#faq){min-height:0;padding-block:clamp(30px,5vw,62px)}
body[data-page-view="approach"] #main>section#solutions:not(#top){padding-block:clamp(108px,15vh,142px) 18px}
body[data-page-view="approach"] #main>section#process:not(#top){padding-top:30px}
body[data-page-view="approach"] #main :is(#approach,#process,#insights,#faq){scroll-margin-top:72px}
body[data-page-view="approach"] #main>section#solutions h2{max-width:18ch;margin-block:10px 0;font-size:clamp(34px,4.2vw,60px);text-wrap:balance}
body[data-page-view="approach"] #solutions .section-lead{max-width:59ch;margin-top:14px}
body[data-page-view="approach"] :is(#solutions,#faq) .button{background:#142831;border-color:#a2c3c699}
body[data-page-view="approach"] :is(#solutions,#faq) .button:hover{background:#1b383f;border-color:#c2dfddbb}
body[data-page-view="approach"] #main>section:not(#solutions) h2{font-size:clamp(27px,3vw,44px);letter-spacing:-.035em}
body[data-page-view="approach"] #process .process-list{gap:24px;margin-top:25px}
body[data-page-view="approach"] #process .process-list li{padding:12px 2px 6px;border:0}
body[data-page-view="approach"] #process .process-list h3{font-size:21px;margin:0}
body[data-page-view="approach"] #process .process-list p{max-width:36ch;margin-top:8px;font-size:15px}
body[data-page-view="approach"] .solution-results .solution-panel p{color:#bdcdd4}
body[data-page-view="approach"] #faq .section-lead{margin-top:12px}
body[data-page-view="approach"] #faq .button{margin-top:18px}
@media(max-width:767px){
 body[data-page-view="approach"] #main>section#solutions:not(#top){padding-top:132px}
 body[data-page-view="approach"] #solutions .section-lead{font-size:15px;line-height:1.6}
}
@media(max-width:620px){.solution-results{grid-template-columns:1fr;gap:12px}}
body[data-page-view] #brief .brief-primary,.brief-choice-dialog .brief-primary{border-color:#c1e6df99;background:#b0d9d31a;color:#eefbf8}
body[data-page-view] #brief .contact-preview{position:relative;top:0;display:flex;flex-direction:column;overflow:hidden}
body[data-page-view] #brief .contact-preview h3{font-size:20px;line-height:1.25}
body[data-page-view] #brief .contact-preview>p{font-size:12px;line-height:1.4;margin-top:6px;flex-shrink:0}
body[data-page-view] #brief #brief-output{flex:1;width:100%;height:auto;min-height:148px;max-height:none;margin-top:12px;padding:12px;font:13px/1.6 var(--sans);resize:none}
body[data-page-view] #brief .contact-copy-row{margin-top:12px;flex-shrink:0}
body[data-page-view] #brief .contact-copy-row .button{min-height:40px;padding:9px 12px;font-size:11px}
body[data-page-view] #brief .copy-status{margin-top:6px;min-height:0;font-size:11px}
#brief .contact-intro{
 display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
 grid-template-areas:"intro intro" "channels template";
 gap:20px clamp(16px,2vw,28px);align-items:stretch;
}
#brief .contact-intro>div:first-child{grid-area:intro}
#brief .contact-intro h3{margin:0;color:#ecf4f6;font:750 17px/1.35 var(--sans)}
#brief .contact-direct>h3{margin-bottom:12px}
#brief .contact-direct .contact-channel-note{margin-top:7px}
#brief :is(.contact-direct,.contact-template){
 min-width:0;padding:16px 18px;
 border:1px solid #a4d5d44f;border-radius:14px;background:#101c25e0;
}
#brief .contact-template{grid-area:template;display:flex;flex-direction:column;align-items:flex-start}
#brief .contact-template>p{margin-top:8px;color:#c1d2da;font:14px/1.5 var(--sans)}
#brief .contact-template #contact-template-text{margin-bottom:12px}
body[data-page-view] #brief .contact-template #copy-brief{
 min-height:44px;max-width:100%;margin-top:auto;padding:6px 14px;gap:6px;
 border-radius:999px;text-transform:none;font-size:13px;white-space:normal;
}
body[data-page-view] #brief :is(#brief-start,#brief-choose-channel){
 min-height:44px;margin-top:10px;padding:9px 15px;gap:10px;font-size:13px;border-radius:999px;
}
#brief #brief-choose-channel{align-self:center}
#brief .contact-direct{grid-area:channels;min-width:0;container:contact-direct / inline-size}
#brief .contact-channels{
 display:grid;grid-template-columns:repeat(var(--contact-columns,3),minmax(0,1fr));gap:8px;
}
@container contact-direct (width < 25.75rem){#brief .contact-channels{--contact-columns:2}}
@container contact-direct (width < 16.5rem){#brief .contact-channels{--contact-columns:1}}
body[data-page-view] #brief .contact-direct .contact-channel{
 display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;
 min-width:0;min-height:44px;padding:9px 8px;font-size:12px;white-space:nowrap;
}
#brief .contact-alternate{margin-top:4px;font-size:12px;overflow-wrap:anywhere}
.brief-form-heading h3,.contact-next h3{margin:0;color:#ecf4f6;font:700 18px/1.25 var(--sans)}
.brief-form-heading p,.contact-next p{margin:5px 0 0;color:#c1d2da;font:14px/1.5 var(--sans)}
.contact-next{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;
 margin-top:24px;padding-top:20px;border-top:1px solid #a6c5ca40;
}
.contact-next>div:last-child{container:contact-examples / inline-size}
.contact-proof{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.contact-next-link{
 display:flex;align-items:center;justify-content:space-between;gap:10px;
 padding:8px 10px 8px 14px;min-height:58px;border:1px solid #a4d5d44f;border-radius:12px;
 background:#101c25e0;color:#eef7fa;font:700 14px/1.3 var(--sans);text-decoration:none;
}
.contact-process-link{
 display:inline-flex;max-width:100%;min-height:46px;margin-top:12px;padding-inline:14px;border-radius:999px;
 background:#172b34;border-color:#a4d5d47a;
}
.contact-next-copy{display:grid;gap:3px;min-width:0}
.contact-next-copy>span{color:#c0d4de;font-size:12px;font-weight:500;overflow-wrap:anywhere}
.contact-next-link:is(:focus-visible,:active){background:#1c353e;border-color:#b3dfdf}
.contact-next-link:focus-visible{outline:2px solid #b8f0eb;outline-offset:3px}
@media(hover:hover){.contact-next-link:hover{background:#1c353e;border-color:#b3dfdf}}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .contact-next-link{transition:background-color .24s var(--control-ease),border-color .24s var(--control-ease)}
}
@container contact-examples (width >= 35rem){.contact-proof{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:900px){
 #brief .contact-next{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:clamp(16px,2vw,28px)}
 @container contact-examples (width >= 30rem){#brief .contact-proof{grid-template-columns:repeat(3,minmax(0,1fr))}}
}
@media(max-width:899px){
 #brief .contact-intro{grid-template-columns:1fr;grid-template-areas:"intro" "channels" "template"}
}
@media(max-width:530px){
 #brief .contact-channels{--contact-columns:2}
 #brief .contact-intro{gap:14px}
 #brief :is(.contact-direct,.contact-template){padding:12px}
}
@media(max-width:639px){
 .contact-next{grid-template-columns:1fr;gap:22px;padding-top:16px}
 .contact-process-link{
  min-height:44px;margin-top:3px;padding-inline:0 4px;border:0;background:none;color:#c9f6f2;
 }
 .contact-proof{gap:0;margin-top:8px;border:1px solid #a4d5d44f;border-radius:12px;background:#101c25e0}
 .contact-proof li+li{border-top:1px solid #a4d5d426}
 .contact-proof .contact-next-link{min-height:54px;border:0;border-radius:0;background:none}
 .contact-proof .contact-next-link:is(:active,:focus-visible){background:#1c353e}
}
.brief-choice-dialog{margin:auto;padding:24px;width:min(500px,calc(100vw - 32px));max-height:calc(100svh - 40px);border:1px solid #a7d7d280;border-radius:16px;background:#0a171eed;color:#e5eeee;box-shadow:0 20px 80px #0009;backdrop-filter:blur(20px)}
.brief-choice-dialog[open]{display:flex;flex-direction:column;gap:14px;overflow:hidden}
.brief-choice-dialog::backdrop{background:#02080bc7;backdrop-filter:blur(6px)}
.brief-choice-dialog h3{font:400 22px/1.3 var(--sans);margin:0}
.brief-choice-dialog>p{font:13px/1.5 var(--sans);color:#abc2c9;margin:0}
.brief-choice-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.brief-choice-filter label{flex:1 1 170px}
#brief-choice-count{font:650 12px/1.4 var(--sans);color:#b9e7df}
.brief-choice-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:auto;min-height:0;min-width:0;flex:1;overscroll-behavior:contain;scrollbar-width:thin;padding:2px}
.brief-check{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 10px;border:1px solid #a4c8c433;border-radius:8px;font:14px/1.4 var(--sans);cursor:pointer}
.brief-check:has(input:checked){background:#add9d316;border-color:#baded78a}
.brief-check:focus-within{outline:1px solid #a2e6df;outline-offset:-1px}
.brief-check input{accent-color:#afdcd2;flex-shrink:0;width:17px;height:17px}
.brief-choice-other{grid-column:1/-1;width:100%;min-height:44px;background:#041015;color:#e5eeee;border:1px solid #a4c8c455;border-radius:8px;padding:10px;font:16px var(--sans)}
.brief-choice-actions{display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;padding-top:8px}
#brief-choice-dialog .brief-choice-actions .button{min-height:44px;padding:10px 15px;border-radius:10px;color:#d7e7e5;border:1px solid #a0c6c366;background:transparent;font:680 13px var(--sans);text-transform:none}
#brief-choice-dialog .brief-choice-actions .brief-primary{background:#203c45;border-color:#89b6bd;color:#effcfa}
@media(max-width:899px){#brief .contact-workspace{grid-template-columns:1fr;gap:16px}}
@media(max-width:767px){body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief{padding-top:150px}body[data-page-view] #brief :is(input,select,.brief-picker){font-size:16px;height:42px;min-height:42px}body[data-page-view] #brief :is(.contact-fields,.contact-preview){padding:14px}.brief-form-grid{gap:10px}.brief-choice-list{grid-template-columns:1fr}}
@media(max-height:650px) and (min-width:900px){body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief{padding-top:112px}body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief h2{font-size:28px}#brief .contact-workspace{margin-top:14px}body[data-page-view] #brief :is(.contact-fields,.contact-preview){padding:12px}.brief-form-grid{gap:7px 10px}body[data-page-view] #brief .contact-fields label{font-size:11px}body[data-page-view] #brief :is(input,select,.brief-picker){height:34px;min-height:34px;margin-top:4px;padding-block:6px;font-size:13px}}
@media(max-height:450px){body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief{padding-top:120px}}
@media(max-width:359px){.brief-choice-dialog{padding:18px}}

#brief .brief-return{position:absolute;right:1px;bottom:1px;width:30px;height:36px;border:0;border-radius:0 8px 8px 0;background:#08151b;color:#bbd9d6;font-size:18px;cursor:pointer}
#brief .brief-field:has(.brief-return:not([hidden])) input{padding-right:34px}
@media(max-width:767px){#brief .brief-return{height:40px}}
@media(max-height:650px) and (min-width:900px){#brief .brief-return{height:32px}}


.scene-offer{
 position:absolute;
 z-index:8;
 inset:calc(var(--portfolio-header-height) + clamp(24px,9svh,100px)) clamp(20px,4.6vw,88px) auto auto;
 max-width:28vw;
 margin:0;
 opacity:var(--home);
 color:#eaf4f8;
 font:480 clamp(1.0625rem,2vw,2.125rem)/1.22 var(--chapter-type);
 letter-spacing:-.027em;
 text-shadow:0 2px 12px #02080e,0 1px 3px #02080e;
 pointer-events:none;
}
.scene-offer > span{display:block}
.scene-offer-context{display:block;color:#b8d4df;font-weight:390}
@media(max-aspect-ratio:6/5){
 :is(.scene-ready,.scene-preview) .scene-offer{
  inset:calc(48.5svh + 28.125vw + clamp(12px,2svh,24px)) clamp(16px,4vw,40px) auto;
  max-width:none;
  font-size:clamp(.875rem,3.85vw,1.25rem);
  text-align:center;
  text-wrap:balance;
 }
 :is(.scene-ready,.scene-preview) .scene-offer-context{display:inline}
}
@media(max-width:559px) and (max-aspect-ratio:6/5){
 :is(.scene-ready,.scene-preview) .scene-offer{
  top:calc(40svh + 32.625vw + clamp(12px,2svh,24px));
 }
}
@media(min-width:560px) and (max-height:450px){
 :is(.scene-ready,.scene-preview) .scene-offer{
  inset:50svh auto auto clamp(20px,4vw,48px);
  max-width:30vw;
  font-size:clamp(1rem,2.15vw,1.375rem);
 }
}
#project-index .section-head{align-items:end;margin-bottom:20px}
#project-index .section-lead{margin-top:10px}
#project-index .catalog-gallery-link{min-height:44px;white-space:nowrap}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px}
.work-goals:not([hidden]){display:flex;flex-wrap:wrap;gap:8px}
.work-goals .button:is(:hover,:active){transform:none}
body[data-page-view] #project-index .work-goals .button{
 min-height:40px;
 padding:8px 13px;
 font:12px/1.3 var(--sans);
 text-transform:none;
}
#project-index .work-goals .button[aria-pressed="true"]{
 background:#1d343ce8;
 border-color:#a9d3d4a0;
 color:#eff9f9;
}
#project-index .rail-controls{display:flex;align-items:center;gap:9px}
@media(scripting:none){#project-index .rail-controls{display:none}}
.catalog-search,.brief-choice-filter label{
 display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:0 10px;
 border:1px solid #93b8c460;border-radius:10px;background:#101d27;color:#aacbd5;
}
.catalog-search{width:clamp(130px,16vw,220px);flex:0 1 auto}
:is(.catalog-search,.brief-choice-filter label):focus-within{
 border-color:#a8e9e1;box-shadow:0 0 0 2px #7fd8d639;
}
:is(.catalog-search,.brief-choice-filter) input{
 flex:1;min-width:0;width:100%;min-height:42px;padding:0;border:0;
 background:transparent;color:#ecf6fa;outline:none;font:650 16px/1.3 var(--sans);color-scheme:dark;
}
:is(.catalog-search,.brief-choice-filter) input::placeholder{color:#a9c0ca}
:is(.catalog-search,.brief-choice-filter) input:focus-visible{outline:none}
:is(.catalog-search,.brief-choice-filter) svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
.catalog-empty{display:grid;justify-items:start;gap:14px;padding-block:32px 44px}
.catalog-empty p{margin:0;color:#d0e2e8}
@media(max-width:560px){
 #project-index .rail-controls{width:100%;min-width:0}
 .catalog-search{flex:1 1 0}
}
.work-position{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#project-index .work-card[hidden]{display:none!important}
.case-story .eyebrow{margin:0 0 8px;color:#b5cad3}
.case-next{
 display:flex;
 align-items:center;
 flex-wrap:wrap;
 gap:10px 22px;
 margin-top:28px;
}
body[data-page-view] .case-next .button{max-width:100%;white-space:normal;text-align:left;line-height:1.45}
.case-next .text-link{min-height:44px}
:is(.store-case,.business-case)>.case-next{grid-column:1/-1}

body[data-page-view] #brief .brief-picker{
 height:auto;
 white-space:normal;
 overflow-wrap:anywhere;
 text-overflow:clip;
}
@media(max-width:899px){
 body[data-page-view] #brief .contact-fields{height:auto;overflow:visible}
 body[data-page-view] #brief .contact-preview{height:auto;min-height:320px}
 #brief .brief-form-grid{flex:none;overflow:visible;padding:0}
 body[data-page-view] #brief #brief-output{flex:none;min-height:190px}
}
@media(max-width:767px){
 body[data-page-view]:not([data-page-view="gallery"]) .reader-back{top:76px;left:20px}
 body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief,
 body[data-page-view="project-index"]:not([data-page-view="gallery"]) #main>section#project-index{padding-top:132px}
 #project-index .section-head{gap:5px;margin-bottom:12px}
 #project-index .section-lead{font-size:14px}
 #project-index .gallery-track{padding-block:20px 26px}
}
@media(max-width:639px){
 .brief-form-grid :is(.brief-service-field,.brief-task-field,.brief-deadline-field,.brief-field:has(#brief-phone)){grid-column:1/-1}
}
@media(max-width:359px){
 .brief-form-grid>.brief-field{grid-column:1/-1}
}
@media(min-width:480px) and (max-width:767px) and (max-height:650px){
 body[data-page-view="project-index"] #main #project-index h2{font-size:clamp(26px,5vw,32px)}
 #project-index .section-head{display:flex;flex-direction:row;gap:12px}
 #project-index .catalog-gallery-link{font-size:12px}
 #project-index .gallery-track{padding-top:12px}
}
@media(max-height:650px) and (min-width:768px){
 body[data-page-view="project-index"]:not([data-page-view="gallery"]) #main>section#project-index{padding-top:94px}
 #project-index .section-head{margin-bottom:12px}
 #project-index .gallery-track{padding-block:16px 24px}
}
@media(max-height:650px) and (min-width:768px) and (max-width:899px){
 body[data-page-view="brief"]:not([data-page-view="gallery"]) #main>section#brief{padding-top:96px}
 #brief .contact-workspace{margin-top:12px}
 body[data-page-view] #brief .contact-fields{padding:14px}
 .brief-form-grid{gap:8px 12px}
 body[data-page-view] #brief :is(input,select,.brief-picker){min-height:36px}
}

/* Preserve contrast as the room moves behind reading content. */
body[data-page-view]:not([data-page-view="gallery"]){
 background:radial-gradient(ellipse at 84% 10%,#142932 0,transparent 46%),#080d12;
}
body[data-page-view]:not([data-page-view="project-index"],[data-page-view="brief"]) .reader-atmosphere::after{
 background:linear-gradient(90deg,#060d13e8 0%,#060d13ce 48%,#060d139c 100%);
}
body[data-page-view="brief"] .reader-atmosphere::after{
 background:linear-gradient(102deg,#080d12ad 0%,#080d124d 42%,#080d121a 80%);
}
body[data-page-view="brief"] #brief :is(.contact-fields,.contact-preview){
 background:linear-gradient(150deg,#0c171fea,#091219e0);
 border-color:#a0c3cb55;
 box-shadow:inset 0 1px #b5f0e416,0 18px 48px #0206094d;
}
body[data-page-view="brief"] #brief :is(.contact-fields,.contact-preview):focus-within{
 border-color:#a0d6d38c;
}
.case-credit{
 margin:0 0 12px;
 color:#b3d0d2;
 font:12px/1.5 var(--sans);
 overflow-wrap:anywhere;
}
.case-story{
 padding:clamp(16px,3vw,28px);
 gap:16px 36px;
 background:#0c1921e0;
 border:1px solid #a6c5ca33;
 border-radius:14px;
}
.case-story h3{margin:0}
.case-story p{color:#d0dde3}

body[data-page-view] #main>section.featured-case:not(#top){
 padding-top:clamp(118px,17svh,164px);
}
.case-opening{
 display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
 align-items:center;gap:clamp(26px,5vw,74px);
}
body[data-page-view] #main .case-opening-copy h2{
 font-size:clamp(39px,5.6vw,78px);line-height:1.08;overflow-wrap:normal;
}
.case-opening-copy .case-credit{margin:0 0 12px;font:12px/1.5 var(--sans)}
.case-opening-copy .case-deck{
 max-width:44ch;margin:16px 0 0;color:#d7e3e9;font:clamp(16px,1.6vw,20px)/1.55 var(--sans);
}
.case-outline{display:grid;gap:10px;margin:20px 0 0;max-width:63ch}
.case-outline>div{
 display:grid;grid-template-columns:minmax(65px,.25fr) minmax(0,1fr);
 gap:6px 12px;padding-top:10px;border-top:1px solid #a0c3cb33;
}
.case-outline dt{font-weight:750;color:#eaf3f5}
.case-outline dd{margin:0;color:#c1d0d8}
.case-outline,.case-opening-frame figcaption,.case-scenario p,.case-outcome p{font:clamp(14px,1.25vw,16px)/1.55 var(--sans)}
.case-opening-frame{margin:0;min-width:0}
.case-opening-frame .unicrop-preview{display:block;margin:0;overflow:hidden;border:1px solid #a0c3cb44}
.case-opening-frame .unicrop-preview::before{display:none}
.case-opening-frame .unicrop-preview img{aspect-ratio:auto;object-fit:contain}
.case-opening-frame figcaption{margin-top:12px;color:#c1d0d8}
.case-opening-frame h3,.case-scenario h3,.case-outcome h3{margin:0;color:#eaf3f5;font:750 clamp(18px,2vw,24px)/1.3 var(--sans)}
.case-opening-frame figcaption p,.case-scenario p,.case-outcome p{margin:5px 0 0;max-width:62ch;color:#c1d0d8}
.case-scenario{margin-top:clamp(28px,6svh,58px)}
.featured-case .case-scroll{margin-top:20px}
.case-outcome{padding-top:20px;border-top:1px solid #a0c3cb44}
@media(max-width:767px){
 body[data-page-view] #main>section.featured-case:not(#top){padding-top:154px}
 .case-opening{grid-template-columns:1fr}
}

/* The player follows the source ratio and the original still remains available. */
body[data-page-view] .project-film video{
 --film-height:clamp(220px,58svh,540px);
 width:min(100%,calc(var(--film-height) * var(--film-ratio,1.8)));
 height:auto;
 max-height:none;
 margin-inline:auto;
}
.project-film figcaption{
 display:flex;
 flex-wrap:wrap;
 justify-content:space-between;
 align-items:center;
 gap:4px 18px;
}
.project-film figcaption .text-link{min-height:44px}
body[data-page-view]:not([data-page-view="gallery"]) #main>section.video-case:not(#top){
 padding-top:clamp(115px,14svh,170px);
}
.video-case .project-film{margin-block:26px 26px}
.video-case .project-intro h2{margin-bottom:12px}
.video-case .project-intro .section-lead{margin-top:12px}

html[data-motion="off"] .scene-viewport>canvas{display:none!important}
/* A lost or unavailable 3D context uses the document's normal scroll. */
.spatial-gallery:not(.scene-ready) .gallery-sticky{
 position:relative;height:auto;min-height:100svh;overflow:visible;
 background:radial-gradient(ellipse at top right,#15242a 0,transparent 60%),#090d13;
}
.spatial-gallery:not(.scene-ready) .gallery-layout.wrap{
 display:grid;grid-template-columns:minmax(0,1fr);align-items:start;
 width:min(1440px,100%);height:auto;margin-inline:auto;
 gap:clamp(24px,4vw,58px);padding:clamp(98px,12vh,136px) var(--page-gutter) 56px;
}
@media(min-width:1000px){
 .spatial-gallery:not(.scene-ready) .gallery-layout.wrap{
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);
 }
}
.spatial-gallery:not(.scene-ready) :is(.gallery-copy,.scene-viewport,.static-gallery){
 position:static;inset:auto;width:auto;height:auto;min-width:0;visibility:visible;
}
.spatial-gallery:not(.scene-ready) .gallery-copy{pointer-events:auto}
.spatial-gallery:not(.scene-ready) .gallery-copy h2{
 max-width:24ch;margin:0;color:#e8edef;font:400 clamp(26px,3.6vw,46px)/1.1 var(--sans);
 letter-spacing:-.045em;text-transform:uppercase;
}
.spatial-gallery:not(.scene-ready) .gallery-copy .text-link{
 color:#c2d4dc;min-height:44px;font-size:13px;
}
.spatial-gallery:not(.scene-ready) .static-gallery{
 overflow:visible;grid-auto-rows:auto;
 grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr));
 gap:clamp(12px,1.8vw,24px);
}
.spatial-gallery:not(.scene-ready) .static-gallery>a{
 min-height:0;border-color:#42565f;background:#101820;
}
.spatial-gallery:not(.scene-ready) .static-gallery>a:hover{border-color:#8cb1bd}
.spatial-gallery:not(.scene-ready) .static-gallery img{
 width:100%;height:auto;aspect-ratio:16/9;flex:none;
 object-fit:contain;background:#0a1016;
}
.spatial-gallery:not(.scene-ready) .static-gallery span{
 color:#ebf1f4;font-size:14px;line-height:1.4;
}
.spatial-gallery:not(.scene-ready) :is(
 .gallery-project-copy,#handoff-image
){display:none}
.scene-ready.scene-recovering .scene-viewport canvas{opacity:0}
body[data-page-view] #brief .contact-fields .brief-contact-choice{
 display:flex;align-items:center;gap:10px;min-height:44px;
 color:#e0eaed;line-height:1.4;cursor:pointer;
}
body[data-page-view] #brief .brief-contact-choice input[type="checkbox"]{
 width:17px;height:17px;min-height:0;flex:none;margin:0;padding:0;
 appearance:auto;accent-color:#a6d6d9;
}
.brief-contact-permission{
 grid-column:1/-1;padding:3px 12px 9px;border:1px solid #a6c5ca40;
 border-radius:10px;background:#15232d80;
}
#brief .brief-contact-choice-help,#brief .contact-channel-note{
 margin:0;color:#b0c3cd;font-size:12px;line-height:1.5;
}
#brief :is(.brief-contact-choice-help,.contact-channel-note) a{
 color:#cfedf0;text-decoration:underline;text-underline-offset:3px;
}
#brief .brief-contact-choice-help a{white-space:nowrap}
#brief .brief-delivery{margin-top:14px}
#brief .brief-delivery .button{min-height:44px;max-width:100%;white-space:normal}
#brief .brief-delivery .copy-status:empty{display:none}
@media(max-width:639px){#brief .brief-delivery .button{width:100%}}
body[data-page-view] #brief .brief-field :is(input,select):disabled{opacity:.68;cursor:not-allowed}
@media(max-width:767px){
 body[data-page-view]:not([data-page-view="gallery"]) #main>section.video-case:not(#top){padding-top:132px}
}
@media(max-height:650px) and (min-width:768px){
 body[data-page-view]:not([data-page-view="gallery"]) #main>section.video-case:not(#top){padding-top:112px}
}
@media(max-width:639px){
 .brief-form-grid :is(.brief-channel-field,.brief-reply-field){grid-column:1/-1}
}
@media(scripting:none){#brief .brief-contact-permission input{display:none}}
#brief input[aria-invalid="true"]{border-color:#f4a897}


.kub-opening{
 display:grid;grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);
 grid-template-areas:"intro media" "tabs media" "caption media";
 grid-template-rows:1fr auto 1fr;gap:clamp(13px,1.7vw,24px) clamp(28px,4.2vw,70px);
}
.kub-intro{grid-area:intro;align-self:end}
.kub-opening .case-media{grid-area:media;align-self:center;margin:0}
.kub-opening .case-media figcaption{
 margin-top:10px;color:#adbfca;font:500 12px/1.5 var(--sans);
}
#kub .case-tabs{
 grid-area:tabs;justify-self:start;display:grid;grid-template-columns:repeat(3,auto);gap:5px;
}
@media(scripting:none){#kub .case-tabs{display:none}}
#kub .case-tabs::before{content:none}
#kub .scene-tab{
 justify-content:center;min-height:44px;margin:0;padding:8px clamp(8px,1.25vw,16px);
 border:1px solid #9aabb74d;border-radius:999px;background:transparent;color:#d6e1e7;
 font:650 clamp(12px,1.05vw,14px)/1.25 var(--sans);letter-spacing:0;
}
#kub .scene-tab:hover{border-color:#93bfbd80}
#kub .scene-tab[aria-selected="true"]{background:#1f3a43d9;border-color:#9cc2c198;color:#fff}
#kub .scene-caption{
 grid-area:caption;align-self:start;max-width:45ch;margin:0;color:#c4d5dc;
 font:500 clamp(14px,1.16vw,16px)/1.55 var(--sans);letter-spacing:0;
}
.kub-explanation{
 display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;
 gap:clamp(20px,5vw,80px);margin-block-start:clamp(42px,6vw,96px);
 padding-block:clamp(24px,4vw,56px);border-top:1px solid #82b0be50;
}
.kub-analysis-copy h3{
 max-width:18ch;margin:0;color:#eef8fa;font:650 clamp(24px,3vw,42px)/1.16 var(--sans);letter-spacing:-.03em;
}
.kub-analysis-copy p{max-width:43ch;margin:12px 0 20px;color:#c4d5dc;font:500 clamp(15px,1.25vw,17px)/1.55 var(--sans)}
.kub-analysis-copy p strong{color:#eef8fa;white-space:nowrap}
.kub-ledger{margin:0;padding:0 clamp(12px,2.2vw,30px);border:1px solid #6f9aa763;border-radius:14px;background:#101e28f2}
.kub-ledger>div{
 display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:10px;
 padding-block:clamp(12px,1.45vw,20px);border-bottom:1px solid #86adb744;
}
.kub-ledger dt{color:#d2e0e7;font:580 clamp(13px,1.12vw,16px)/1.4 var(--sans)}
.kub-ledger dd{
 margin:0;color:#eef8fa;font:720 clamp(15px,1.7vw,24px)/1.15 var(--sans);
 font-variant-numeric:tabular-nums;white-space:nowrap;text-align:end;
}
.kub-ledger>.kub-ledger-total{border-bottom:0}
.kub-ledger-total :is(dt,dd){color:#a9ede5;font-weight:750}
@media(max-width:820px){
 .kub-opening{
  grid-template-columns:minmax(0,1fr);grid-template-rows:auto;
  grid-template-areas:"intro" "tabs" "media" "caption";
 }
 .kub-opening .case-media figcaption{margin-top:8px}
 .kub-explanation{grid-template-columns:minmax(0,1fr)}
}


body[data-page-view="brief"] #brief .contact-copy-row .brief-primary{border-color:#a6d7d2a6;background:#1a3b43;color:#f0fbfa}
body[data-page-view="brief"] #brief .contact-copy-row .brief-primary:hover{background:#24515a}
body[data-page-view="brief"] #brief .brief-copy-help{margin-top:10px;text-align:center;color:#c7d8de}
#brief .brief-privacy-actions{
 flex-flow:row wrap;align-items:center;justify-content:center;gap:2px 16px;margin-top:6px;
}
#brief .brief-privacy-actions :is(a,button){
 display:inline-flex;align-items:center;min-height:36px;padding:0;border:0;background:none;
 color:#bfd5da;font:12px/1.4 var(--sans);text-decoration:underline;text-underline-offset:3px;
}
#brief .brief-privacy-actions :is(a,button):hover{color:#fff}
@media(scripting:none){#brief .brief-privacy-actions button{display:none}}
#brief .copy-status:empty{display:none}

/* Typography and controls share one vocabulary across the exhibition and readers. */
.opening-cover{
 position:relative;
 grid-column:1/-1;
 overflow:hidden;
 background:radial-gradient(ellipse at 50% 41%,#07222d,transparent 66%),#030910;
}
.opening-cover-frame{
 position:relative;
 width:100%;
 container-type:inline-size;
}
.opening-cover-frame img{width:100%;height:auto}
.opening-cover-first-frame{
 position:absolute;
 inset:0;
 width:100%;
 opacity:0;
 pointer-events:none;
}
.opening-cover[data-opening-video="loading"] .opening-cover-first-frame{opacity:1}
.opening-cover[data-opening-video="loading"] .scene-name{visibility:hidden}
.opening-name-layer{
 position:absolute;
 z-index:1;
 inset:0;
}
.opening-name-accessible{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.opening-name-letters{display:block;aspect-ratio:942/140}
.opening-name-letters::before{
 content:"";
 display:block;
 width:100%;
 height:100%;
 background:#d3e4eb;
 mask:url("assets/savely-wordmark.svg") center/contain no-repeat;
}
.opening-cover-glass,.opening-cover-video{display:none}
.scene-name{
 position:absolute;
 margin:0;
 left:50.5%;
 top:70.5%;
 width:72%;
 transform:translate(-50%,-50%);
 font-size:13cqw;
 filter:drop-shadow(0 3px 16px #020c17bd);
}
:is(.scene-ready,.scene-preview) .opening-cover{
 position:absolute;
 inset:0;
 z-index:6;
 container-type:size;
 opacity:var(--offer-opacity,1);
 pointer-events:none;
}
.scene-boot .opening-cover,.scene-ready[data-chapter]:not([data-chapter="welcome"]) .opening-cover{visibility:hidden}
:is(.scene-ready,.scene-preview) .opening-cover-frame{
 position:absolute;
 left:50%;
 top:50%;
 width:clamp(100%,177.68cqh,128%);
 transform:translate(-50%,-50%);
}
:is(.scene-ready,.scene-preview) .opening-cover-frame :is(img,.opening-name-layer,.opening-cover-video){
 transform:scale(1.06);
}
:is(.scene-ready,.scene-preview) :is(.opening-cover-glass,.opening-cover-video){
 position:absolute;
 inset:0;
 display:block;
 width:100%;
 height:100%;
}
:is(.scene-ready,.scene-preview) .opening-cover-video{opacity:0}
:is(.scene-ready,.scene-preview) .opening-cover:is([data-opening-video="playing"],[data-opening-video="finished"]) .opening-cover-video{opacity:1}
:is(.scene-ready,.scene-preview) .opening-name-letters::before{
 --shine:var(--cover-light,50%);
 --opening-silver:linear-gradient(170deg,#e4f2f8 10%,#bdd4df 52%,#a3becd 89%);
 background:
  linear-gradient(108deg,transparent calc(var(--shine) - 19%),#6bd2e6bc calc(var(--shine) - 7%),#f4fcff var(--shine),#f1c9b88a calc(var(--shine) + 7%),transparent calc(var(--shine) + 19%)),
  var(--opening-silver);
}
:is(.scene-ready,.scene-preview) .opening-cover[data-opening-video="playing"] .opening-name-letters{
 mask-image:linear-gradient(var(--opening-reveal-angle,101deg),#000 calc(var(--opening-name-reveal,-13%) - 12%),transparent var(--opening-name-reveal,-13%));
 transform:translateY(var(--opening-name-rise,.12em));
}
:is(.scene-ready,.scene-preview) .opening-cover-frame::after{
 content:"";
 position:absolute;
 inset:0;
 background:radial-gradient(ellipse at right top,#030910a8,transparent 48%),radial-gradient(ellipse at left bottom,#030910e8,transparent 56%),linear-gradient(to top,#030910a6,transparent 35%);
}
@media(max-aspect-ratio:6/5){
 :is(.scene-ready,.scene-preview) .opening-cover-frame{
  top:39%;
  mask-image:linear-gradient(180deg,transparent,#000 11% 87%,transparent);
 }
}
@media(max-width:559px){
 :is(.scene-ready,.scene-preview) .opening-cover-frame{width:116%;top:40%}
}
@media(min-width:560px) and (max-width:1150px), (min-width:560px) and (max-aspect-ratio:3/2){
 :is(.scene-ready,.scene-preview) .opening-cover-frame{
  top:48.5%;
  width:100%;
  mask-image:linear-gradient(180deg,#000 86%,transparent);
 }
}
@media(min-width:560px) and (max-height:450px){
 :is(.scene-ready,.scene-preview) .opening-cover-frame{
  left:66%;
  top:42%;
  width:min(79%,190cqh);
  mask-image:linear-gradient(90deg,transparent,#000 14%),linear-gradient(180deg,#000 86%,transparent);
  mask-composite:intersect;
 }
}
@media(max-aspect-ratio:2/3){
 .opening-cover{--opening-reveal-angle:118deg}
 .opening-cover-frame{aspect-ratio:720/1278}
 .opening-cover-frame img{display:block}
 :is(.scene-ready,.scene-preview) .opening-cover-frame{
  top:calc(50% + var(--portfolio-header-height) * .35);
  width:min(100%,64cqh);
  mask-image:linear-gradient(180deg,transparent,#000 9% 83%,transparent);
 }
 :is(.scene-ready,.scene-preview) .opening-cover-frame :is(img,.opening-name-layer,.opening-cover-video){transform:none}
 :is(.scene-ready,.scene-preview) .opening-cover-frame::after{
  background:linear-gradient(to top,#030910d9,transparent 32%),linear-gradient(90deg,#03091069,transparent 8% 92%,#03091069);
 }
 .scene-name{top:60%;left:49%;width:79%}
 :is(.scene-ready,.scene-preview) .scene-offer{
  --portrait-gap:calc(50svh - min(88.75vw,56.8svh) - var(--portfolio-header-height) * .35 - 16px);
  --portrait-offer-bottom:max(22px,var(--portrait-gap),calc(env(safe-area-inset-bottom) + 12px),var(--cookie-clearance,0px));
  inset:auto clamp(14px,4vw,36px) var(--portrait-offer-bottom);
  font-size:clamp(.875rem,3.45vw,1.45rem);
 }
}
@media(min-aspect-ratio:16/27) and (max-aspect-ratio:2/3){
 :is(.scene-ready,.scene-preview) .opening-cover-frame{
  mask-image:linear-gradient(180deg,transparent,#000 9% 83%,transparent),linear-gradient(90deg,transparent,#000 4% 96%,transparent);
  mask-composite:intersect;
 }
}
.spatial-gallery:not(.scene-ready) .gallery-copy h2{
 font-family:var(--display);font-weight:680;line-height:1.13;letter-spacing:-.03em;text-transform:none;
}
body[data-page-view]:not([data-page-view="gallery"]) #main .button{
 font-family:var(--sans);font-weight:700;text-transform:none;
 background:linear-gradient(165deg,var(--control-top),var(--control-bottom));
 color:var(--control-text);border:1px solid var(--control-border);
 box-shadow:inset 0 1px 0 #e1f2f417;
}
body[data-page-view]:not([data-page-view="gallery"]) #main .button:hover{
 background:var(--control-hover);border-color:var(--control-focus);
}
body[data-page-view] #main .button[aria-pressed="true"]{
 background:#29464e;border-color:#aad3d4;color:#eef9f8;
}
body[data-page-view] #main :is(.button:focus-visible,.icon-button:focus-visible){
 outline:2px solid var(--control-focus);outline-offset:3px;
}
body[data-page-view] #main #brief .contact-copy-row .brief-primary{
 background:var(--action-fill);
 color:var(--action-ink);border:1px solid var(--action-border);
 font:750 13px/1.35 var(--sans);
 box-shadow:inset 0 1px 0 #dbf3fa1b;
}
body[data-page-view] #main #brief .contact-copy-row .brief-primary:hover{
 background:var(--action-hover);color:var(--action-ink);border-color:var(--action-border);
}
@media(prefers-reduced-motion:no-preference){
 :is(.scene-ready,.scene-preview) .opening-cover[data-opening-arrival]:not([data-opening-video]) .opening-cover-frame{
  animation:opening-frame-in .88s cubic-bezier(.24,.64,.28,1) both;
 }
 :is(.scene-ready,.scene-preview) .opening-cover[data-opening-arrival] + .scene-offer > span{
  animation:opening-copy-in .66s cubic-bezier(.18,.7,.26,1) .2s both;
 }
}
@keyframes opening-frame-in{from{opacity:.58;scale:1.12}to{opacity:1;scale:1}}
@keyframes opening-copy-in{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
.opening-play{
 position:absolute;z-index:7;left:50%;top:50%;translate:-50% -50%;pointer-events:auto;white-space:nowrap;
}
.opening-play[hidden]{display:none}
@media(prefers-reduced-motion:reduce){
 :is(.scene-ready,.scene-preview) .opening-cover-video{display:none}
}
.scene-ready:is([data-offer-layout="split"],[data-offer-layout="stacked"]) .gallery-copy{
 max-height:none;overflow:visible;overscroll-behavior:auto;
}
/* Persistent navigation and copy inside the existing chapters. */
:root{--portfolio-header-height:62px}
html:has(.portfolio-header){scroll-padding-top:calc(var(--portfolio-header-height) + 12px)}
body .site-header.portfolio-header,
body[data-page-view="gallery"]:has(.spatial-gallery.scene-ready[data-chapter="welcome"]) .site-header.portfolio-header{
 inset:0 0 auto;width:auto;height:var(--portfolio-header-height);box-sizing:border-box;
 display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;gap:12px;
 padding-inline:clamp(16px,3.3vw,52px) clamp(14px,2.5vw,40px);background:#091217eb;
 backdrop-filter:blur(14px);
}
.portfolio-brand{
 justify-self:start;color:#eff7f8;font:520 clamp(.75rem,1.25vw,.9375rem)/1.2 var(--chapter-type);
 letter-spacing:-.025em;white-space:nowrap;
}
.brand-wipe-link{--brand-reveal:0}
.brand-wipe-link:is(:focus-visible,:active){--brand-reveal:1}
@media(hover:hover){.brand-wipe-link:hover{--brand-reveal:1}}
.brand-wipe{position:relative}
.brand-wipe-ink{display:none}
@supports (background-clip:text){
 .portfolio-footer .brand-wipe{
  background-color:#9db8c3;
  background-image:linear-gradient(#a6e6e8,#a6e6e8);
  background-repeat:no-repeat;
  background-size:calc(var(--brand-reveal) * 100%) 100%;
  background-clip:text;
  color:transparent;
  -webkit-text-stroke:.45px #c1d9df99;
 }
 .brand-wipe-ink{
  display:block;position:absolute;inset:0;pointer-events:none;
  color:#a6e6e8;
  clip-path:inset(-2px calc((1 - var(--brand-reveal)) * 100% - 1px) -2px -1px);
 }
 .portfolio-footer .brand-wipe::after{
  content:"";position:absolute;inset-block:-1px;
  inset-inline-end:calc((1 - var(--brand-reveal)) * (100% + 4px) - 2px);
  inline-size:var(--brand-bar-size,2px);border-radius:2px;background:#a6e6e8;
  box-shadow:0 0 6px #70e0ea70;pointer-events:none;
 }
 @media(prefers-reduced-motion:no-preference){
  html:not([data-motion="off"]) .brand-wipe-ink{transition:clip-path .68s var(--control-ease)}
  html:not([data-motion="off"]) .portfolio-footer .brand-wipe{transition:background-size .68s var(--control-ease)}
  html:not([data-motion="off"]) .portfolio-footer .brand-wipe::after{transition:inset-inline-end .68s var(--control-ease)}
 }
}
@media(forced-colors:active){
 .brand-wipe,.portfolio-footer .brand-wipe{color:LinkText;background:none;-webkit-text-stroke:0}
 .brand-wipe-ink,.brand-wipe::after{display:none}
}
.portfolio-header-actions{justify-self:end;display:flex;align-items:center;gap:clamp(12px,1.6vw,24px)}
.portfolio-inquiry{
 --inquiry-fill:0;
 display:inline-flex;border-radius:999px;
}
.inquiry-face{
 --inquiry-orb:28px;
 --inquiry-travel:7px;
 position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:9px;
 min-height:44px;padding:0 6px 0 13px;border-radius:inherit;color:#effcfc;
 background:linear-gradient(120deg,#172837,#153740);border:1px solid #73adb3;
 font:700 12px/1 var(--sans);white-space:nowrap;overflow:hidden;pointer-events:none;
}
.inquiry-short{display:none}
.inquiry-face::before{
 content:"";position:absolute;inset:0;z-index:-1;
 background:linear-gradient(0deg,#28616d,#304966);
 clip-path:inset(calc((1 - var(--inquiry-fill)) * 100%) 0 0);
}
.inquiry-arrow{
 display:grid;place-items:center;flex:none;inline-size:var(--inquiry-orb);aspect-ratio:1;
 border-radius:50%;background:#9cdbdf;color:#112a34;
 box-shadow:inset 0 1px #e4ffffb0;
}
.inquiry-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.portfolio-inquiry:is(:focus-visible,:active){--inquiry-fill:1}
.portfolio-inquiry:is(:focus-visible,:active,[aria-current="page"]) .inquiry-face{border-color:#b4f1ec}
@media(hover:hover){
 .portfolio-inquiry:hover{--inquiry-fill:1}
 .portfolio-inquiry:hover .inquiry-face{border-color:#b4f1ec}
}
.portfolio-messengers{display:flex;gap:4px}
.portfolio-messenger{
 position:relative;isolation:isolate;
 display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
}
.portfolio-messenger::before,.portfolio-messenger::after{
 content:"";position:absolute;inset:4px;border-radius:50%;pointer-events:none;
}
.portfolio-messenger::before{
 background:#142630;border:1px solid #a4cad155;
}
.portfolio-messenger::after{
 background-image:linear-gradient(115deg,transparent 37%,#ffffff68 50%,transparent 63%),var(--messenger-color);
 background-size:240% 100%,cover;background-position:110% 0,center;
 opacity:0;transform:scale(.74);
}
.messenger-telegram{--messenger-color:linear-gradient(#2aabee,#229ed9)}
.messenger-max{--messenger-color:linear-gradient(155deg,#6e1aff 2%,#471aff 48%,#00bfff 115%)}
.portfolio-messenger img{
 position:relative;z-index:1;width:22px;height:22px;
 opacity:.88;transform:scale(.86);
}
.portfolio-messenger:is(:hover,:focus-visible,:active)::after{
 opacity:1;transform:scale(1);background-position:-10% 0,center;
}
.portfolio-messenger:is(:hover,:focus-visible) img{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .inquiry-face{transition:translate .22s var(--control-ease),border-color .22s ease}
 html:not([data-motion="off"]) .inquiry-face::before{transition:clip-path .38s var(--control-ease)}
 html:not([data-motion="off"]) .portfolio-messenger::after{
  transition:opacity .22s ease,transform .34s var(--control-ease),background-position .52s var(--control-ease);
 }
 html:not([data-motion="off"]) .portfolio-messenger img{transition:opacity .22s ease,transform .34s var(--control-ease)}
 html:not([data-motion="off"]) .messenger-telegram:is(:hover,:focus-visible) img{transform:translate(1px,-1px) rotate(-9deg) scale(1.08)}
 html:not([data-motion="off"]) .portfolio-messenger:active img{transform:scale(.9)}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .portfolio-inquiry:hover .inquiry-face{
  translate:clamp(calc(-1 * var(--inquiry-travel)),var(--inquiry-x,0px),var(--inquiry-travel)) var(--inquiry-y,0px);
 }
}
@media(prefers-reduced-motion:reduce){
 .exact-nav a,.exact-nav a::after{transition:none}
}
html[data-motion="off"] :is(.exact-nav a,.exact-nav a::after){transition:none}
body[data-page-view]:not([data-page-view="gallery"]) .portfolio-header + .reader-back{
 top:var(--portfolio-header-height);padding-inline:8px;
}
.portfolio-header.is-scrolled + .reader-back::after{
 content:"";position:absolute;inset:7px 0;z-index:-1;border-radius:6px;background:#091217;pointer-events:none;
}
body[data-page-view]:not([data-page-view="gallery"]) .portfolio-header ~ #main>section:not(#top):is(.works,.featured-case,.video-case,.contact){padding-top:max(118px,calc(var(--portfolio-header-height) + 56px))}
body[data-page-view] #main>section.editorial-section:not(#top){
 padding-block:clamp(48px,7vw,112px);border-top:1px solid #a7ccd126;
}
body[data-page-view="approach"] #main .editorial-section h2{scroll-margin-top:44px}
body[data-page-view="approach"] #main .editorial-section #insights{scroll-margin-top:44px}
body[data-page-view="brief"] .portfolio-header ~ #main>section#brief{
 min-height:0;padding-top:calc(var(--portfolio-header-height) + 50px);
 padding-bottom:clamp(24px,4vw,48px);
}
.editorial-heading{max-width:780px;margin-bottom:clamp(24px,4vw,50px)}
.editorial-section h2{color:#eff6f8;font:650 clamp(28px,4.2vw,61px)/1.08 var(--display);letter-spacing:-.035em;text-wrap:balance}
.editorial-section .section-lead{color:#c4d6df;line-height:1.6;max-width:62ch}
.editorial-section .section-lead{margin-top:12px;font-size:clamp(15px,1.6vw,19px)}
#process .process-list{gap:clamp(16px,3vw,40px);margin-top:clamp(28px,4vw,60px)}
#process .process-list li{padding:15px 0;border-top:1px solid #a3c4d037}
#process .process-list h3{margin:0;color:#eff6f8;font:700 18px/1.2 var(--sans)}
#process .process-list p{margin-top:8px;color:#c4d6df;font-size:14px;line-height:1.55}
.service-packages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.service-package{
 display:grid;grid-template-rows:auto auto auto 1fr auto auto;gap:12px;min-width:0;
 padding:clamp(17px,2.7vw,38px);border:1px solid #a6c9d34d;border-radius:16px;background:#0c1a23ec;color:#c4d6df;
}
.service-package h3{color:#f2f9fa;font:730 clamp(19px,2.2vw,28px)/1.15 var(--sans)}
.service-package p,.service-package ul{margin:0;font-size:15px;line-height:1.55}
.service-package .package-price{color:#bceae8;font:740 clamp(17px,2vw,23px)/1.25 var(--sans)}
.package-price small{display:inline-block;margin-top:4px;font-size:13px;color:#b5d5d8}
.service-package ul{display:grid;align-content:start;gap:3px;padding-inline-start:18px}
.service-package li::marker{color:#a9d8d7}
.service-package .package-term{padding-top:12px;border-top:1px solid #a6c9d335}
.service-package .format-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:4px}
.format-actions .text-link,.additional-list .text-link{min-height:44px;display:inline-flex;align-items:center}
.additional-list{border-top:1px solid #a6c9d33c}
.additional-list article{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr) auto;gap:12px 26px;align-items:center;padding:17px 0;border-bottom:1px solid #a6c9d33c}
.additional-list p{margin:0}
.portfolio-footer .site-footer-inner{grid-template-columns:minmax(140px,1.2fr) repeat(4,minmax(0,1fr));gap:26px}
.portfolio-footer .wordmark{
 --brand-bar-size:3px;
 display:inline-block;font-size:clamp(21px,2vw,29px);letter-spacing:-.02em;white-space:nowrap;
}
.portfolio-footer .wordmark .brand-wipe{display:block}
.portfolio-footer .site-footer-group .footer-contact-link{
 --footer-link-active:0;
 max-inline-size:100%;gap:8px;color:#dbe7eb;text-decoration:none;
}
.footer-link-icon{
 display:grid;place-items:center;flex:none;inline-size:24px;aspect-ratio:1;border-radius:6px;
 background:color-mix(in srgb,#203842,#a8e1df calc(var(--footer-link-active) * 100%));
 color:color-mix(in srgb,#d8f5f4,#102931 calc(var(--footer-link-active) * 100%));
}
.footer-link-icon svg{
 inline-size:13px;block-size:13px;fill:none;stroke:currentColor;stroke-width:1.8;
 stroke-linecap:round;stroke-linejoin:round;
}
.footer-link-label{position:relative;min-inline-size:0;overflow-wrap:anywhere;hyphens:auto}
.footer-link-label::after{
 content:"";position:absolute;inset:auto 0 -3px;height:1px;
 background:#a8e1df;scale:var(--footer-link-active) 1;transform-origin:left;
}
.portfolio-footer .footer-contact-link:is(:focus-visible,:active){--footer-link-active:1}
.footer-email{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px}
.footer-email-copy{
 min-block-size:44px;max-inline-size:100%;padding:5px 8px;border:1px solid #8eb5bc4f;
 border-radius:7px;background:#13232c;color:#d8ecee;font:650 11px/1.25 var(--sans);
 text-align:left;cursor:pointer;
}
.footer-email-copy[hidden]{display:none}
.footer-email-copy:is(:hover,:focus-visible){border-color:#a8e1df;color:#f4ffff}
.footer-email-status{display:block;color:#bde8e4;font-size:12px;overflow-wrap:anywhere}
.footer-email-status:empty{display:none}
@media(max-width:560px){.footer-email{column-gap:4px}}
@media(hover:hover){
 .portfolio-footer .footer-contact-link:hover{--footer-link-active:1}
}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .footer-link-icon{transition:background-color .32s ease,color .32s ease}
 html:not([data-motion="off"]) .footer-link-icon svg{
  scale:calc(1 + .22 * var(--footer-link-active));transition:scale .38s var(--control-ease);
 }
 html:not([data-motion="off"]) .footer-link-label::after{transition:scale .38s var(--control-ease)}
}
@media(max-width:420px){
 .portfolio-footer .site-footer-group .footer-contact-link{gap:6px;font-size:12px}
 .footer-link-icon{inline-size:20px}
}
.portfolio-footer-legal{grid-column:1/-1;display:flex;justify-content:space-between;gap:18px 26px;flex-wrap:wrap;border-top:1px solid #a6c9d335;padding-top:16px;color:#bbced7;font:500 12px/1.55 var(--sans)}
.portfolio-footer-legal nav{display:flex;flex-wrap:wrap;gap:0 16px}
.portfolio-footer-legal :is(a,button){display:inline-flex;align-items:center;min-height:36px;color:#d8edf2;text-decoration:underline;text-underline-offset:4px}
.portfolio-footer-legal button{border:0;background:none;padding:0;cursor:pointer;font:inherit}
.portfolio-footer-legal button[hidden]{display:none}
@media(max-width:920px){
 .portfolio-header .exact-nav a{padding-inline:8px;font-size:12px}
 .portfolio-header-actions{gap:8px}
 .inquiry-face{--inquiry-orb:23px;--inquiry-travel:3px;gap:6px;padding-inline-start:10px}
 .portfolio-footer .site-footer-inner{grid-template-columns:repeat(4,minmax(0,1fr))}
 .portfolio-footer .site-footer-brand{grid-column:1/-1}
}
@media(max-width:820px){
 :root{--portfolio-header-height:96px}
 body .site-header.portfolio-header,
 body[data-page-view="gallery"]:has(.spatial-gallery.scene-ready[data-chapter="welcome"]) .site-header.portfolio-header{
  grid-template-columns:1fr auto;grid-template-rows:46px 44px;gap:0 6px;padding-inline:10px;
 }
 .portfolio-header-actions{grid-column:2;grid-row:1;gap:clamp(6px,2vw,12px)}
 .portfolio-messengers{gap:2px}
 .portfolio-messenger::before,.portfolio-messenger::after{inset:6px}
 .portfolio-messenger::after{opacity:0;transform:scale(.86)}
 .portfolio-messenger img{width:18px;height:18px;opacity:.95;transform:none}
 .portfolio-messenger:is(:active,:focus-visible)::after{opacity:1;transform:scale(1)}
 body[data-page-view]:not([data-page-view="gallery"]) .portfolio-header + .reader-back{
  position:absolute;left:var(--page-gutter);
 }
 .portfolio-header.is-scrolled + .reader-back::after{content:none}
 .portfolio-header .exact-nav{grid-column:1/-1;grid-row:2;justify-self:center}
 .portfolio-header .exact-nav a{padding-inline:clamp(6px,2.1vw,13px)}
 .inquiry-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
 .inquiry-short{display:inline}
 .additional-list article{grid-template-columns:1fr}
 .additional-list article .text-link{justify-self:start}
 .portfolio-footer .site-footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 15px}
}
@media(max-width:360px){
 body .site-header.portfolio-header,
 body[data-page-view="gallery"]:has(.spatial-gallery.scene-ready[data-chapter="welcome"]) .site-header.portfolio-header{
  padding-inline:8px;column-gap:4px;
 }
 .portfolio-header-actions{gap:4px}
 .inquiry-face{--inquiry-orb:19px;gap:4px;padding-inline-start:8px}
 .portfolio-messenger{width:38px;height:38px}
 .portfolio-messenger::before,.portfolio-messenger::after{inset:4px}
 .portfolio-header .exact-nav{gap:1px}
}
@media(max-width:380px){
 .portfolio-header .exact-nav a{padding-inline:4px;font-size:11px}
 .portfolio-header .exact-nav::before{inset-inline:0}
}
@media(max-width:590px){
 .service-packages{grid-template-columns:1fr}
 .editorial-section .process-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.scene-bio{
 display:grid;grid-template-columns:minmax(0,min(39%,470px)) minmax(0,min(43%,700px));justify-content:space-between;align-items:center;
 grid-template-areas:"copy portrait";
 color:#eff8fb;text-shadow:0 2px 14px #03080c,0 1px 5px #03080c;
}
.scene-bio-copy{
 grid-area:copy;padding:clamp(18px,2.2vw,32px);
 border:1px solid #a5d7e32e;border-radius:22px;
 background:linear-gradient(145deg,#12252ef2,#080f19f2);
 box-shadow:inset 0 1px 0 #e1faff0d,0 16px 42px #02070c4d;
 text-shadow:none;
}
.scene-bio-ring{display:none;background:url(assets/savely-favicon.svg) center / auto 78% no-repeat}
.scene-ready .scene-bio-ring{background:none}
.scene-bio h2{margin:0;font:680 clamp(24px,3.1vw,48px)/1.12 var(--display);letter-spacing:-.04em}
.scene-bio p{margin:clamp(8px,1vw,14px) 0 0;max-width:42ch;font:550 clamp(14px,1.2vw,17px)/1.52 var(--sans);color:#d2e3ea}
.scene-bio .action-cta{margin-top:clamp(6px,1.2svh,12px);justify-self:start}
.scene-bio-portrait{
 grid-area:portrait;margin:0;justify-self:end;width:min(100%,66svh);aspect-ratio:5/6;overflow:hidden;
 border:1px solid #c7d9e04a;border-radius:clamp(12px,1.25vw,20px);
 background:#101214;box-shadow:0 16px 42px #03070c5c;
}
.scene-bio-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 43%}
.scene-boot .scene-bio{visibility:hidden}
.scene-ready .scene-bio{
 position:absolute;z-index:7;inset:50% var(--page-gutter) auto;
 transform:translateY(-50%);opacity:var(--bio-opacity,0);pointer-events:none;
}
.scene-ready .scene-bio-portrait{
 max-width:calc((50svh - var(--portfolio-header-height) - 12px) * 1.6667);
}
.scene-ready .scene-bio[inert] .action-cta{pointer-events:none}
.spatial-gallery:not(.scene-ready) .scene-bio{grid-column:1/-1;position:relative;padding:18px 0}
html:not(.scene-boot) .spatial-gallery.scene-fallback .scene-offer{display:block;position:static;grid-area:1/1/2/-1;max-width:none;opacity:1}
.service-additional{margin-top:clamp(24px,3.5vw,50px);border-block:1px solid #a6c9d341;scroll-margin-top:44px}
.service-additional summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:12px 0;cursor:pointer;color:#e7f5f8;list-style:none;font:720 18px/1.25 var(--sans)}
.service-additional summary::-webkit-details-marker{display:none}
.service-additional summary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}
.service-additional[open] summary svg{transform:rotate(45deg)}
.service-additional .additional-list{margin-bottom:12px}
@media(max-width:700px){
 .scene-bio{grid-template-columns:minmax(0,46%) minmax(0,44%)}
 .scene-bio h2{font-size:clamp(21px,3.8vw,28px)}
}
@media(max-height:480px) and (orientation:landscape),
      (max-width:820px) and (max-height:580px) and (orientation:landscape),
      (min-width:521px) and (max-width:1100px) and (orientation:portrait){
 .scene-ready .scene-bio{inset-block-start:calc((100svh + var(--portfolio-header-height)) / 2)}
 .scene-bio{
  --bio-ring-size:clamp(40px,11vw,90px);
  grid-template-columns:minmax(0,1fr) var(--bio-ring-size) minmax(0,40%);
  grid-template-areas:"copy ring portrait";column-gap:6px;
 }
 .scene-bio-ring{display:block;width:var(--bio-ring-size);aspect-ratio:1;align-self:center}
 .scene-bio-portrait{width:min(100%,calc((100svh - var(--portfolio-header-height) - 24px) * .8333))}
 .scene-ready .scene-bio-portrait{max-width:none}
}
@media(min-width:521px) and (max-width:1100px) and (orientation:portrait){
 .scene-bio{--bio-ring-size:clamp(72px,15vw,160px);column-gap:clamp(8px,2vw,20px)}
 .scene-bio-portrait{width:min(100%,54svh)}
}
@media(max-height:480px) and (orientation:landscape){
 .scene-bio p{font-size:13px;line-height:1.42}
}
@media(max-width:520px) and (orientation:portrait){
 .scene-bio{
  grid-template-columns:minmax(0,1fr);grid-template-areas:"portrait" "copy";row-gap:18px;
 }
 .scene-bio-portrait{
  justify-self:center;width:min(100%,70vw,320px);height:clamp(260px,40svh,400px);aspect-ratio:auto;
 }
 .scene-bio-portrait img{object-position:center 43%}
 .scene-bio-ring{
  /* Keep the existing animated mark's anchor behind the opaque portrait. */
  display:block;position:absolute;top:48px;left:calc(50% - 40px);
  width:80px;height:80px;visibility:hidden;pointer-events:none;
 }
 .scene-ready .scene-bio{
  inset:calc(var(--portfolio-header-height) + 20px) var(--page-gutter) 16px;
  transform:none;align-content:safe center;align-items:start;overflow-y:auto;scrollbar-width:thin;
 }
 .scene-ready .scene-bio:not([inert]){pointer-events:auto}
 .scene-ready .scene-bio-portrait{max-width:none}
 @media(prefers-reduced-motion:no-preference){
  .scene-ready .scene-bio-portrait{translate:0 calc((1 - var(--bio-photo-in,1)) * 8px)}
  .scene-ready .scene-bio-copy{
   opacity:var(--bio-copy-in,1);translate:0 calc((1 - var(--bio-copy-in,1)) * 10px);
  }
 }
}
@media(max-width:520px) and (max-height:719px) and (orientation:portrait){
 .scene-bio p{font-size:13px;line-height:1.48}
}
.work-intro{
 --map-width:clamp(780px,calc(160svh - 110px),1120px);
 --map-gap:clamp(24px,2.7vw,38px);
 color:#eff7fb;
}
.scene-ready:is([data-offer-layout="split"],[data-offer-layout="stacked"]) .gallery-copy.work-intro{
 inset:calc(var(--portfolio-header-height) + 10px) max(var(--page-gutter),calc((100% - var(--map-width))/2)) clamp(24px,4.7svh,42px);
 width:auto;max-width:none;display:grid;align-content:safe center;gap:clamp(9px,1.65svh,15px);
 transform:translateY(calc(var(--about-shift,0) * 8svh));pointer-events:none;
}
.spatial-gallery:not(.scene-ready) .work-intro{
 grid-column:1/-1;display:grid;gap:16px;
}
.work-intro-heading{display:flex;align-items:center;justify-content:space-between;gap:8px 18px}
.scene-ready:is([data-offer-layout="split"],[data-offer-layout="stacked"]) .work-intro h2,
.spatial-gallery:not(.scene-ready) .work-intro h2{
 max-width:26ch;margin:0;color:#f1f7fa;font:600 clamp(26px,3.25vw,46px)/1.12 var(--chapter-type);
 letter-spacing:-.04em;text-transform:none;text-wrap:balance;text-shadow:0 2px 16px #05090f;
}
.work-intro-heading>.work-intro-all{
 flex:none;align-self:center;padding-inline:14px;white-space:nowrap;
}
.scene-ready .work-intro[inert] a{pointer-events:none}
@media(any-hover:hover){
 .work-intro:not([inert]) .work-intro-figure{pointer-events:auto}
}

.work-intro-body{
 display:grid;grid-template-columns:minmax(0,1.52fr) minmax(0,1fr);
 column-gap:var(--map-gap);
}
.work-intro-figure{
 container-type:inline-size;align-self:start;min-width:0;margin:0;overflow:hidden;
 border:1px solid #638894;border-radius:14px;background:#101e27;color:#eef8fa;
 box-shadow:0 20px 38px #02080d65;
}
.blueprint-chrome{
 display:flex;align-items:center;gap:clamp(13px,3cqw,24px);min-height:clamp(22px,5cqw,34px);
 padding:4px clamp(9px,3cqw,22px);background:#0b161f;color:#bed3dd;
 border-bottom:1px solid #7db0bf39;font:620 clamp(9px,1.72cqw,12px)/1.2 var(--sans);
}
.blueprint-dots{
 display:block;width:4px;height:4px;margin-right:6px;flex:none;border-radius:50%;
 background:#98e3d9;box-shadow:6px 0 #648590,12px 0 #415d69;
}
.blueprint-document{
 --bp-border:#82b2bf3b;--bp-accent:#a1e4d9;--bp-paper:#14252f;
 display:grid;gap:clamp(7px,2.25cqw,17px);padding:clamp(9px,3cqw,23px);
 color:#cbdde4;font:540 clamp(8px,1.54cqw,12px)/1.32 var(--sans);
 background:radial-gradient(ellipse at 62% 17%,#172e3b,#101c25 66%);
}
.blueprint-document strong{color:#eff9fa;font-weight:740}
.blueprint-document svg{
 display:block;width:1.2em;height:1.2em;flex:none;
 fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.blueprint-nav{
 display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(5px,1.4cqw,12px);
}
.blueprint-nav>strong,.blueprint-nav>div,.blueprint-preview-nav,.blueprint-hero-actions>span{
 display:flex;align-items:center;gap:clamp(3px,1cqw,8px);
}
.blueprint-nav>div{justify-content:center;flex-wrap:wrap}
.blueprint-brand-mark{
 width:1.35em;aspect-ratio:1;flex:none;border-radius:3px;
 background:linear-gradient(140deg,#8cdbd5,#38536d);box-shadow:inset 0 0 0 1px #d0f4eb51;
}
.blueprint-action{
 display:inline-flex;align-items:center;justify-content:center;gap:.45em;padding:.48em .7em;
 border-radius:4px;color:#0e2a2d;background:var(--bp-accent);font-weight:760;white-space:nowrap;
}
.blueprint-hero{
 display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.12fr);
 align-items:center;gap:clamp(7px,2cqw,16px);
}
.blueprint-offer>strong{
 display:block;font:750 clamp(15px,4.25cqw,31px)/1.05 var(--sans);letter-spacing:-.035em;
}
.blueprint-offer p,.blueprint-preview-story p{margin:.45em 0 .65em}
.blueprint-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px clamp(5px,1.3cqw,10px)}
.blueprint-preview-window{
 overflow:hidden;border:1px solid var(--bp-border);border-radius:7px;background:#101c26;
}
.blueprint-preview-chrome{
 display:flex;align-items:center;height:clamp(10px,2.4cqw,18px);
 padding-inline:clamp(5px,1.1cqw,9px);background:#0b151e;border-bottom:1px solid var(--bp-border);
}
.blueprint-preview-chrome .blueprint-dots{scale:.66;transform-origin:left}
.blueprint-preview-nav,.blueprint-preview-story,.blueprint-proof{
 padding:clamp(4px,1.2cqw,9px);
}
.blueprint-preview-nav{font-size:.88em}
.blueprint-preview-nav>span:last-child{margin-inline-start:auto;color:#b8cfd9}
.blueprint-preview-story{
 display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.9fr);
 align-items:center;gap:clamp(4px,1cqw,8px);padding-block-start:0;
}
.blueprint-preview-story>div{font-size:.9em;min-width:0}
.blueprint-document .blueprint-plan{display:block;width:100%;height:auto;stroke:none}
.blueprint-proof{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;
 border-top:1px solid var(--bp-border);text-align:center;font-size:.8em;
}
.blueprint-proof span{display:grid;gap:1px;align-content:start}
.blueprint-proof span+span{border-inline-start:1px solid var(--bp-border)}
.blueprint-proof strong{color:var(--bp-accent)}
.blueprint-preview-position{display:flex;justify-content:center;gap:3px;margin-top:5px}
.blueprint-preview-position i{width:clamp(7px,1.7cqw,12px);height:2px;border-radius:2px;background:#547383}
.blueprint-preview-position i:nth-child(2){background:var(--bp-accent)}

.blueprint-features,.blueprint-outcome{
 display:grid;align-items:stretch;gap:1px;border:1px solid var(--bp-border);border-radius:7px;
 background:var(--bp-paper);
}
.blueprint-features{grid-template-columns:repeat(4,minmax(0,1fr))}
.blueprint-features span{
 display:flex;align-items:center;gap:clamp(4px,1.2cqw,9px);
 padding:clamp(4px,1.25cqw,10px);
}
.blueprint-features span+span{border-inline-start:1px solid var(--bp-border)}
.blueprint-features svg{width:1.45em;height:1.45em;color:var(--bp-accent)}
.blueprint-process>strong{display:block;margin-bottom:clamp(3px,.75cqw,7px);font-size:1.17em}
.blueprint-steps{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,2cqw,15px);
 text-align:center;
}
.blueprint-steps>div{
 position:relative;display:grid;justify-items:center;align-content:start;gap:2px;padding-inline:4px;
}
.blueprint-steps>div>span{max-width:21ch}
.blueprint-steps>div:not(:last-child)::before{
 content:"";position:absolute;top:clamp(9px,2.25cqw,17px);left:75%;width:50%;
 border-top:1px dashed #86c9c5a6;pointer-events:none;
}
.blueprint-steps svg{
 width:clamp(20px,4.5cqw,33px);height:clamp(20px,4.5cqw,33px);padding:clamp(3px,.85cqw,7px);
 border:1px solid #7cc6c766;border-radius:50%;color:var(--bp-accent);background:#172c36;
}
.blueprint-outcome{grid-template-columns:minmax(0,2.1fr) repeat(3,minmax(0,.75fr))}
.blueprint-outcome>div{display:grid;gap:2px;padding:clamp(4px,1.1cqw,9px)}
.blueprint-outcome>span{
 display:grid;align-content:center;text-align:center;padding:3px 2px;
 color:var(--bp-accent);border-inline-start:1px solid var(--bp-border);font-weight:740;
}
.blueprint-document .card-glide::after{border-radius:6px}
@media(hover:hover){
 .blueprint-action:hover{background:#d3fff5;color:#143033;box-shadow:0 2px 10px #94f4e85c}
 .blueprint-preview-window:hover{border-color:#97e0df}
 .blueprint-preview-window:hover .blueprint-plan g:first-of-type{stroke:#c6fff0;filter:drop-shadow(0 0 2px #55dbd9)}
 .blueprint-steps>div:hover svg{color:#e5fff7;background:#2c5b66;border-color:#9ce3dd}
}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .blueprint-action,
 html:not([data-motion="off"]) .blueprint-preview-window,
 html:not([data-motion="off"]) .blueprint-preview-window .blueprint-plan g:first-of-type,
 html:not([data-motion="off"]) .blueprint-steps svg{
  transition:background-color .22s var(--control-ease),border-color .22s var(--control-ease),
   box-shadow .22s var(--control-ease),stroke .25s var(--control-ease),filter .25s var(--control-ease);
 }
}

.work-intro-notes{
 --note-pad:clamp(3px,.7svh,7px);
 display:flex;flex-direction:column;justify-content:space-around;gap:clamp(8px,1.8svh,16px);
 min-width:0;margin:0;padding:clamp(4px,1svh,9px) 0;color:#f0f9fb;
 background:radial-gradient(ellipse 76% 70% at 42% 48%,#080f17eb 12%,#080f17c4 52%,transparent 83%);
}
.work-intro-notes>div{
 position:relative;padding:var(--note-pad) 0;
 text-shadow:0 2px 8px #02080d,0 2px 16px #02080d;
}
.work-intro-notes>div::before{
 content:"";position:absolute;top:calc(var(--note-pad) + .68em);left:calc(-1 * var(--map-gap) + 3px);
 width:calc(var(--map-gap) - 10px);border-top:1px dashed #92d6d3;
}
.work-intro-notes>div::after{
 content:"";position:absolute;top:calc(var(--note-pad) + .68em);left:-7px;width:6px;height:6px;
 border-radius:50%;background:#ace9e0;translate:-50% -50%;
}
.work-intro-notes dt{font:720 clamp(17px,min(2vw,3.55svh),28px)/1.12 var(--sans);letter-spacing:-.025em}
.work-intro-notes dd{
 max-width:42ch;margin:clamp(4px,.76svh,7px) 0 0;color:#c9dce5;
 font:540 clamp(12px,min(1.15vw,1.98svh),16px)/1.39 var(--sans);
}
@container (max-width:390px){
 .blueprint-nav{grid-template-columns:minmax(0,1fr) auto}
 .blueprint-nav>div{grid-column:1/-1;grid-row:2;justify-content:flex-start}
 .blueprint-preview-story{grid-template-columns:1fr}
 .blueprint-preview-story>div p{margin:.2em 0 .4em}
 .blueprint-proof{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:3px}
 .blueprint-proof span:nth-child(3){border-inline-start:0}
 .blueprint-features{grid-template-columns:repeat(2,minmax(0,1fr))}
 .blueprint-features span:nth-child(3){border-inline-start:0}
 .blueprint-features span:nth-child(n+3){border-top:1px solid var(--bp-border)}
}
@media(max-width:680px){
 .work-intro-body{grid-template-columns:minmax(0,1fr);gap:12px}
 .work-intro-notes{gap:7px;padding:0;background:none}
 .work-intro-notes>div{padding:4px 0}
 .work-intro-notes>div::before,.work-intro-notes>div::after{content:none}
 .work-intro-notes dt{font-size:17px}
 .work-intro-notes dt br{display:none}
 .work-intro-heading{align-items:center;gap:10px}
 .work-intro-heading>.work-intro-all{font-size:12px}
 .work-intro-figure{border-radius:10px}
}
@media(min-width:681px) and (max-height:560px) and (orientation:landscape){
 .blueprint-document{gap:clamp(7px,1.55cqw,12px)}
 .work-intro-notes{gap:7px;padding:0}
 .work-intro-notes>div{padding:3px 0}
 .work-intro-notes>div::before,.work-intro-notes>div::after{top:calc(3px + .62em)}
 .work-intro-notes dt{font-size:clamp(16px,2.05vw,22px)}
 .work-intro-notes dd{margin-top:4px;line-height:1.29}
}
@media(max-width:680px){
 .blueprint-document{gap:10px;font-size:11px}
 .work-intro-notes dd{font-size:14px;line-height:1.45}
 .blueprint-proof,.blueprint-preview-story>div{font-size:1em}
 .blueprint-preview-nav{font-size:10px}
 .blueprint-preview-story{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .blueprint-preview-story .blueprint-action{white-space:normal;text-align:center}
 .blueprint-steps>div{padding-inline:1px}
 .blueprint-outcome{grid-template-columns:repeat(3,minmax(0,1fr))}
 .blueprint-outcome>div{grid-column:1/-1}
 .blueprint-outcome>span{border-top:1px solid var(--bp-border)}
 .blueprint-outcome>span:nth-child(2){border-inline-start:0}
 .work-intro-notes dd{max-width:none}
}
@media(max-width:680px) and (max-height:760px) and (orientation:portrait){
 .work-intro-notes{grid-row:1}
}
@media(min-width:681px) and (max-height:560px) and (orientation:landscape){
 .work-intro{--map-gap:20px}
 .work-intro-body{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start}
 .work-intro-notes{justify-content:start}
 .work-intro-notes dt br{display:none}
 .work-intro-notes dd{max-width:none}
}
@media (max-height:620px), (max-width:680px){
 .scene-ready:is([data-offer-layout="split"],[data-offer-layout="stacked"]) .gallery-copy.work-intro{
  bottom:8px;overflow-y:auto;scrollbar-width:thin;
 }
 .scene-ready:is([data-offer-layout="split"],[data-offer-layout="stacked"]) .work-intro:not([inert]){
  pointer-events:auto;
 }
}

.core-formats{
 grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(10px,2svh,20px);color:#edf7f9;
}
.scene-ready .core-formats{
 position:absolute;z-index:8;inset:calc(var(--portfolio-header-height) + 10px) max(var(--page-gutter),calc((100% - 1320px)/2)) clamp(14px,3svh,30px);
 align-content:safe center;opacity:var(--core-copy,0);pointer-events:none;
}
.core-formats h2{
 margin:0;color:#f2f9fa;font:620 clamp(23px,3.1vw,44px)/1.14 var(--display);letter-spacing:-.04em;
 align-self:center;text-shadow:0 2px 12px #040a0e,0 2px 24px #040a0e;
}
.core-formats-link{grid-column:2;grid-row:1;justify-self:end;align-self:center}
.core-formats a.text-link{
 display:inline-flex;align-items:center;gap:6px;min-height:44px;color:#d4f2f2;
 font:750 clamp(12px,1.18vw,15px)/1.2 var(--sans);pointer-events:auto;text-decoration:none;
}
.core-formats a.text-link:is(:hover,:focus-visible){color:#f2ffff}
.scene-ready .core-formats[inert] a{pointer-events:none}
.core-format-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.7svh,18px)}
.scene-ready .core-format-grid{grid-template-columns:minmax(0,1fr) min(32vw,440px) minmax(0,1fr)}
.scene-ready .core-format:nth-child(even){grid-column:3}
.core-format{
 display:grid;grid-template-rows:auto auto 1fr auto;align-content:start;justify-items:start;gap:clamp(5px,1svh,10px);min-width:0;
 padding:clamp(11px,1.5vw,22px) clamp(12px,1.6vw,24px) clamp(3px,.8svh,9px);
 border:1px solid #94d2d550;border-radius:clamp(12px,1.4vw,20px);box-shadow:0 12px 34px #02070aa6;
 background:linear-gradient(135deg,#142931f5,#0b141dee);
}
.core-format h3{margin:0;color:#f5fafb;font:790 clamp(16px,1.65vw,24px)/1.16 var(--sans)}
.core-format-price{display:grid;gap:2px;margin:0;color:#c5efed;font:750 clamp(13px,1.3vw,18px)/1.24 var(--sans)}
.core-format-price small{color:#c3d5dc;font:600 clamp(11px,1vw,13px)/1.3 var(--sans)}
.core-format ul{
 display:grid;align-content:start;gap:2px;margin:0;padding-inline-start:15px;color:#d8e7eb;
 font:560 clamp(12px,1.05vw,15px)/1.4 var(--sans);
}
.core-format li::marker{color:#86d2ce}
.core-format-actions{display:flex;flex-wrap:wrap;gap:0 15px}
.core-format .action-cta{justify-self:start}
.core-formats-term{
 grid-column:1/-1;justify-self:start;margin:0;padding:4px 0;color:#d4e4ea;
 font:650 clamp(12px,1.05vw,14px)/1.4 var(--sans);text-shadow:0 1px 7px #03080b,0 2px 14px #03080b;
}
@media(max-height:620px) and (orientation:landscape){
 .core-formats{gap:7px}
 .scene-ready .core-format-grid{grid-template-columns:minmax(0,1fr) min(26vw,400px) minmax(0,1fr);gap:8px}
 .core-format{gap:4px;padding:8px 10px 1px}
 .core-format ul{line-height:1.25}
 .core-format .text-link{min-height:38px}
}
@media(max-height:500px) and (orientation:landscape){
 .scene-ready .core-formats{bottom:8px;overflow-y:auto;scrollbar-width:thin;pointer-events:auto}
 .scene-ready .core-formats[inert]{pointer-events:none}
}
@media(max-width:650px) and (orientation:portrait),
      (max-width:820px) and (max-height:580px) and (orientation:landscape),
      (max-height:500px) and (orientation:landscape){
 .core-formats{grid-template-columns:minmax(0,1fr);gap:6px}
 .scene-ready .core-formats{grid-template-rows:auto 1fr auto auto auto auto;align-content:stretch}
 .core-format-grid,.scene-ready .core-format-grid{
  grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:100%;gap:12px;overflow-x:auto;
  scroll-snap-type:x mandatory;pointer-events:auto;
 }
 .core-format-grid:has(+ .core-format-controls:not([hidden])){scrollbar-width:none}
 .scene-ready .core-format-grid{grid-row:3}
 .core-format{padding:10px 12px 6px;gap:5px;scroll-snap-align:start;scroll-snap-stop:always}
 .scene-ready .core-format:nth-child(even){grid-column:auto}
 .core-format-controls{grid-column:1/-1}
 .scene-ready .core-format-controls{grid-row:4}
 .core-formats-link{grid-column:1/-1;grid-row:auto;justify-self:center}
 .scene-ready .core-formats-link{grid-row:5}
 .scene-ready .core-formats-term{grid-row:6}
 .scene-ready .core-formats[inert] :is(.core-format-grid,.core-format-controls){pointer-events:none}
 .core-formats h2{font-size:21px}
}
@media(max-width:820px) and (max-height:580px) and (orientation:landscape),
      (max-height:500px) and (orientation:landscape){
 .core-formats,.scene-ready .core-formats{
  grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-content:safe center;
 }
 .core-formats h2{font-size:clamp(17px,3vw,21px)}
 .core-format-grid,.scene-ready .core-format-grid{grid-row:2}
 .core-format{padding:7px 10px 4px;gap:4px}
 .core-format-controls,.scene-ready .core-format-controls{grid-area:1/2;justify-self:end}
 .core-formats-link,.scene-ready .core-formats-link{grid-area:3/2;justify-self:end}
 .core-formats-term,.scene-ready .core-formats-term{grid-area:3/1;align-self:center}
}

.lab-approach{
 grid-column:1/-1;display:grid;gap:clamp(10px,1.7svh,17px);
 justify-self:center;width:min(100%,1260px);color:#f0f8fa;
}
.scene-ready .lab-approach{
 position:absolute;z-index:8;
 inset:calc(var(--portfolio-header-height) + 12px) 0 clamp(14px,3svh,28px);
 margin-inline:auto;width:min(86vw,140svh,1260px);align-content:safe center;
 opacity:var(--lab,0);pointer-events:none;
 transform:translateY(calc(var(--lab-shift,0) * 100svh));
}
.lab-approach-head{
 display:flex;align-items:center;justify-content:space-between;gap:6px 14px;
 text-shadow:0 1px 6px #040b0e,0 2px 20px #040b0e;
}
.lab-approach-head h2{
 margin:0;font:570 clamp(24px,3.45vw,48px)/1.13 var(--chapter-type);letter-spacing:-.04em;text-wrap:balance;
}
.lab-approach-head .action-cta{flex:none}
.lab-approach-list{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(9px,1.2vw,18px);
 list-style:none;margin:0;padding:0;
}
.lab-approach-card{
 display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;align-items:stretch;
 box-sizing:border-box;height:100%;min-height:clamp(176px,35svh,350px);padding:clamp(9px,1.1vw,17px);
 border:1px solid #9acecd68;border-radius:clamp(10px,1vw,15px);
 background:linear-gradient(140deg,#162e34df,#0a141be8);box-shadow:inset 0 1px #ddfff11f;
 color:#f0f7f9;text-decoration:none;pointer-events:auto;
 transition:border-color .2s ease,background .2s ease;
}
.lab-approach-card:is(:hover,:focus-visible){
 background:linear-gradient(140deg,#213e43ef,#11232bee);border-color:#a4e7e4;
}
.lab-approach-copy{padding:2px 3px}
.lab-approach-copy h3{
 margin:0;font:770 clamp(16px,1.85vw,27px)/1.16 var(--sans);text-wrap:balance;
}
.lab-approach-copy p{
 margin:5px 0 0;color:#cfdee5;font:540 clamp(12px,1.2vw,17px)/1.34 var(--sans);
}
.lab-approach-preview{
 position:relative;min-width:0;min-height:62px;overflow:hidden;isolation:isolate;border-radius:7px;
 background:#101920;
}
.lab-approach-preview img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;transition:scale .25s var(--control-ease)}
.lab-approach-card:is(:hover,:focus-visible) .lab-approach-preview img{scale:1.045}
.lab-approach-card[href="#mobile-app"] img{object-fit:contain;background:#232323}
.lab-approach-card[href="#kub"] img{object-position:center 27%}
.lab-approach-preview>span{
 position:absolute;inset:auto 0 0;display:block;padding:7px 8px;color:#f1fafb;
 background:
  linear-gradient(90deg,transparent,#8bd7d890,transparent) center top / 0% 1px no-repeat,
  linear-gradient(0deg,#060e14,#060e14d6);
 font:690 clamp(11px,1vw,14px)/1.15 var(--sans);
}
.lab-approach-card:is(:hover,:focus-visible) .lab-approach-preview>span{
 background-size:100% 1px,100% 100%;color:#d5fbf7;
}
.scene-ready .lab-approach[inert] a{pointer-events:none}
@media(max-width:680px){
 .scene-ready .lab-approach{
  width:calc(100% - 2 * var(--page-gutter));gap:10px;
 }
 .lab-approach-list{grid-template-columns:1fr;gap:8px}
 .lab-approach-card{
  grid-template-columns:minmax(0,1.27fr) minmax(0,1fr);grid-template-rows:auto;
  min-height:clamp(104px,15svh,140px);align-items:stretch;gap:7px;
 }
 .lab-approach-copy{align-self:center}
 .lab-approach-copy h3{text-wrap:wrap}
 .lab-approach-preview{display:grid;grid-template-rows:minmax(0,1fr) auto;block-size:clamp(82px,13svh,120px)}
 .lab-approach-preview img{position:static;min-height:0}
 .lab-approach-card[href="#dental"] img{object-fit:contain}
 .lab-approach-preview>span{position:static}
}
@media(max-width:360px) and (orientation:portrait){
 .lab-approach-head h2{font-size:22px}
 .lab-approach-copy p{line-height:1.3}
}
@media(max-height:500px) and (orientation:landscape){
 .scene-ready .lab-approach{inset-block-end:8px;gap:8px;width:min(86vw,143svh)}
 .lab-approach-head h2{font-size:23px}
 .lab-approach-card{min-height:132px;gap:6px}
 .lab-approach-preview{min-height:54px}
}
@media(max-height:365px) and (orientation:landscape){
 .scene-ready .lab-approach{overflow-y:auto;scrollbar-width:thin;pointer-events:auto}
 .scene-ready .lab-approach[inert]{pointer-events:none}
}

.closing-reviews{
 --review-gap:clamp(9px,1.35vw,18px);
 grid-column:1/-1;display:grid;gap:clamp(9px,1.7svh,17px);min-width:0;color:#eaf5f8;
}
.scene-ready .closing-reviews{
 position:absolute;inset:auto max(var(--page-gutter),calc((100% - 1160px)/2)) clamp(12px,3svh,28px);
 opacity:var(--ending,0);pointer-events:none;
}
.closing-reviews-head{
 display:flex;justify-content:space-between;align-items:center;gap:6px 18px;
 text-shadow:0 1px 9px #04090f,0 2px 18px #04090f;
}
.closing-reviews-head h2{
 margin:0;font:620 clamp(23px,3vw,44px)/1.15 var(--display);letter-spacing:-.04em;text-wrap:balance;
}
.closing-reviews-head p{margin:5px 0 0;color:#c8dce3;font:620 clamp(12px,1.2vw,15px)/1.35 var(--sans)}
.closing-reviews .closing-reviews-brief{
 flex:none;font:750 clamp(12px,1.15vw,14px)/1.25 var(--sans);
}
.closing-review-rail{
 --card-width:calc((100% - 2 * var(--review-gap)) / 3);
 display:grid;grid-auto-flow:column;grid-auto-columns:var(--card-width);gap:var(--review-gap);
 overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;pointer-events:auto;
}
.closing-review-rail::-webkit-scrollbar{display:none}
.closing-review-rail:focus-visible{outline-offset:-2px}
.closing-review-card{
 display:grid;grid-template-rows:auto 1fr auto;gap:clamp(6px,1.15svh,12px);min-width:0;
 padding:clamp(10px,1.45vw,20px);border:1px solid #9dcecf56;border-radius:clamp(12px,1.3vw,18px);
 background:linear-gradient(135deg,#172c35f7,#0b141df5);scroll-snap-align:start;
}
.closing-review-author{display:flex;align-items:center;gap:10px;min-width:0}
.closing-review-avatar{
 display:grid;place-items:center;flex:none;width:clamp(32px,3.2vw,45px);aspect-ratio:1;border-radius:50%;
 border:1px solid #b2e4e963;background:#2c535c;color:#f3ffff;font:790 15px/1 var(--sans);
}
.closing-review-card:nth-child(2) .closing-review-avatar{background:#51436a}
.closing-review-card:nth-child(3) .closing-review-avatar{background:#554b47}
.closing-review-card:nth-child(4) .closing-review-avatar{background:#375b53}
.closing-review-author h3{margin:0;color:#f0fbfc;font:800 clamp(15px,1.42vw,20px)/1.17 var(--sans)}
.closing-review-author p{margin:3px 0 0;color:#b5cdd6;font:630 clamp(10px,1vw,13px)/1.2 var(--sans)}
.closing-review-body :is(blockquote,.closing-review-summary){
 margin:0;color:#d5e4e9;font:550 clamp(12px,1.1vw,15px)/1.4 var(--sans);
}
[data-reviews-ready] .closing-review-body :is(blockquote,.closing-review-summary){
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
}
.closing-review-read{
 min-height:32px;margin:0;padding:0;border:0;background:none;color:#a9e8e4;
 font:780 clamp(12px,1.05vw,14px)/1.2 var(--sans);cursor:pointer;text-align:left;
}
.closing-review-read:hover{color:#e5fffb}
.closing-review-case{
 display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;
 min-height:48px;padding-top:8px;border-top:1px solid #a0c4cc40;color:#e7f6f8;text-decoration:none;
}
.closing-review-case img{
 width:clamp(46px,5.3vw,76px);height:auto;aspect-ratio:1.75;object-fit:cover;border-radius:5px;background:#0a131a;
}
.closing-review-case strong{font:790 clamp(12px,1.06vw,14px)/1.18 var(--sans)}
.closing-review-case:hover strong{color:#c3fff1}
.closing-review-controls{display:flex;justify-content:center;align-items:center;gap:4px;pointer-events:auto;justify-self:center}
.closing-review-controls[hidden],.closing-review-read[hidden]{display:none}
.closing-review-controls .icon-button{
 width:40px;height:40px;min-height:40px;border:1px solid #b0ced064;border-radius:50%;background:#13262edb;color:#e4f7f8;
}
.closing-review-controls .icon-button:not(:disabled):hover{background:#284853}
.closing-review-controls .icon-button:disabled{opacity:.42}
.closing-review-dots{display:flex}
.closing-review-dots button{
 display:grid;place-items:center;width:24px;min-height:40px;padding:0;border:0;background:none;color:#bad4db6e;cursor:pointer;
}
.closing-review-dots button::before{content:"";width:8px;height:2px;border-radius:2px;background:currentColor}
.closing-review-dots button[aria-current="true"]{color:#a6f2ec}
.closing-review-dots button[aria-current="true"]::before{width:17px;border-radius:999px}
.scene-ready .closing-reviews[inert] :is(.closing-review-rail,.closing-reviews-brief,.closing-review-controls){pointer-events:none}
.catalog-review-link{margin-block:clamp(18px,3vw,40px)}
.catalog-review-link a{display:inline-flex;align-items:center;min-height:44px;color:#d6f2f3}
.review-dialog[open]{overflow:auto}
.review-dialog .dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.review-dialog h2{margin:0;font:740 24px/1.2 var(--sans);color:#eef8fa}
.review-dialog>p{margin:0;color:#c6d9df}
.review-dialog blockquote{margin:0;color:#edf5f7;font:550 16px/1.62 var(--sans)}
.review-dialog blockquote p,.review-dialog-note p{margin:0}
.review-dialog blockquote p+p,.review-dialog-note p+p{margin-top:.8em}
.review-dialog-note{margin-top:18px;padding-top:14px;border-top:1px solid #a6c9d335;color:#c6d9df;font:500 15px/1.55 var(--sans)}
.review-dialog-note h3{margin:0 0 7px;color:#eef8fa;font:740 15px/1.35 var(--sans)}
@media(max-width:759px){
 .closing-review-rail{--card-width:calc((100% - var(--review-gap)) / 2)}
}
@media(max-width:599px) and (orientation:portrait){
 .closing-review-rail{--card-width:87%}
 .closing-reviews-head{gap:8px}
 .closing-reviews-head p{display:none}
 .closing-reviews .closing-reviews-brief{width:106px;text-align:center}
 .closing-reviews-brief .cta-swap-label{white-space:normal}
 .closing-review-read{min-height:40px}
}
@media(max-height:480px) and (orientation:landscape){
 .scene-ready .closing-reviews{
  inset-inline-end:auto;width:min(70vw,620px);inset-block-end:8px;gap:6px;
  max-height:calc(100svh - var(--portfolio-header-height) - 16px);overflow-y:auto;pointer-events:auto;
 }
 .scene-ready .closing-reviews[inert]{pointer-events:none}
 .closing-reviews-head h2{font-size:20px}
 .closing-reviews-head p{display:none}
 .closing-review-card{padding:9px;gap:5px}
 [data-reviews-ready] .closing-review-body :is(blockquote,.closing-review-summary){-webkit-line-clamp:2}
 .closing-review-case{min-height:40px;padding-top:5px}
 .closing-review-controls .icon-button,.closing-review-dots button{height:36px;min-height:36px}
}

/* The exhibition owns the movement; reader views leave room for the work. */
.opening-page-title{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body[data-page-view="project-index"] .reader-atmosphere::after,
body[data-page-view="brief"] .reader-atmosphere::after{
 background:linear-gradient(180deg,#070d13ed 0%,#070d13b8 44%,#070d136b 100%),
  linear-gradient(90deg,#070d136b,transparent 80%);
}
body[data-page-view]:not([data-page-view="gallery"]) .reader-atmosphere canvas{opacity:.78}
body[data-page-view] #main>section:not(#top) :is(#works-title,#services-title,#contact-title,#faq-title),
:is(.scene-bio,.core-formats,.closing-reviews-head,.scene-lab-copy) h2{
 font-family:var(--chapter-type);font-weight:550;letter-spacing:-.045em;text-transform:none;
}
body[data-page-view] #main>section:not(#top) :is(#works-title,#services-title,#contact-title){
 font-size:clamp(26px,3.35vw,50px);line-height:1.12;max-width:none;text-wrap:balance;
}
:is(.scene-bio,.core-formats) h2{font-size:clamp(21px,3.1vw,43px);line-height:1.17}
.closing-reviews-head h2{font-size:clamp(20px,2.65vw,36px)}
body[data-page-view]:not([data-page-view="gallery"]) #main>section:not(#top) :is(.project-intro,.case-intro,.case-opening-copy,.feature-copy) h2{
 font-weight:720;letter-spacing:-.048em;text-wrap:balance;
}
body[data-page-view]:not([data-page-view="gallery"]) #main :is(.service-package,.additional-list,.project-details,.project-brief,.contact-preview) h3{
 font-weight:690;letter-spacing:-.025em;
}
body[data-page-view]:not([data-page-view="gallery"]) #main :is(.section-lead,.contact-lead){line-height:1.6}

/* Light the material around the active control. */
.service-package,.additional-list article,.brief-result{position:relative;isolation:isolate}
body[data-page-view]:not([data-page-view="gallery"]) .brief-result::after{
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
 background:radial-gradient(220px circle at var(--light-x,50%) var(--light-y,0%),#a1e7e424,transparent 82%);
 opacity:var(--surface-light,0);transition:opacity .24s var(--control-ease);
}
body[data-page-view] #main :is(.button,.text-link,.icon-button,summary) :is(svg,span[aria-hidden="true"]){
 transition:translate .2s var(--control-ease),opacity .2s var(--control-ease),transform .22s var(--control-ease);
}
body[data-page-view]:not([data-page-view="gallery"]) #main :is(.format-actions,.faq-layout,.project-brief,.project-intro,.case-opening-copy,.case-footer-actions) .button{
 min-height:44px;text-transform:none;font-size:13px;font-weight:660;letter-spacing:0;
}
#project-index .work-goals [aria-pressed="true"]{box-shadow:inset 0 -2px #b7efeb; border-color:#a7d2d7}
#project-index .work-card:focus-visible{outline-offset:-3px}
body[data-page-view]:not([data-page-view="gallery"]) #main .faq-list summary{
 min-height:48px;font-weight:600;gap:14px;
}
body[data-page-view] #main :is(.faq-list,.service-additional) summary svg{flex:none}
body[data-page-view] #main details[open] summary[aria-expanded="false"] svg{transform:none}
body[data-page-view] #main .contact-channel img{
 width:22px;height:22px;border-radius:50%;padding:3.5px;background:var(--channel-icon-fill);
}
body[data-page-view] #main :is(.contact-channel,.text-link,.button):focus-visible{outline-offset:4px}
.portfolio-brand{display:inline-flex;align-items:center;min-height:44px}
body[data-page-view] #main .brief-privacy-actions :is(a,button){display:inline-flex;align-items:center;min-height:32px}
@media(max-width:560px){
 :is(.scene-bio,.core-formats,.closing-reviews-head,.scene-lab-copy) h2{letter-spacing:-.04em}
 body[data-page-view] #main>section:not(#top) :is(#works-title,#services-title,#contact-title){font-size:clamp(24px,6vw,32px)}
}
@media(prefers-reduced-motion:reduce){
 body[data-page-view] #main :is(.button,.text-link,.icon-button,summary) :is(svg,span[aria-hidden="true"]){transition:none;translate:none}
}

:root{
 --action-fill:linear-gradient(158deg,#21353e,#0d1b25);
 --action-hover:linear-gradient(158deg,#2a4350,#14242e);
 --action-ink:#edf9fb;
 --action-border:#66828e;
}
.action-cta{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;
 min-height:44px;padding:8px 14px;border:1px solid var(--action-border);border-radius:999px;
 background:var(--action-fill);color:var(--action-ink);text-decoration:none;text-shadow:none;
 font:720 13px/1.2 var(--sans);text-transform:none;pointer-events:auto;
 transition:background-color .16s var(--control-ease),scale .17s var(--control-ease);
}
.action-cta svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7}
.action-cta:is(:hover,:focus-visible){background:var(--action-hover);color:var(--action-ink)}
.action-cta:focus-visible,.portfolio-inquiry:focus-visible,.portfolio-brand:focus-visible{
 outline:2px solid var(--control-focus);outline-offset:3px;
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
 .action-cta>svg{transition:translate .19s var(--control-ease)}
 .action-cta:is(:hover,:focus-visible)>svg{translate:0 3px}
}
/* The fill and its contrasting label share one moving edge. */
.action-cta.cta-fill{
 --fill-progress:0;
 position:relative;overflow:hidden;white-space:nowrap;
 background:var(--action-fill);
 border-color:color-mix(in srgb,var(--action-border),#a8e1df calc(var(--fill-progress) * 100%));
 transition:none;
}
.cta-fill:is(:focus-visible,:active){--fill-progress:1}
@media(hover:hover){.cta-fill:hover{--fill-progress:1}}
.cta-fill-ink{
 position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
 background:#a8e1df;color:#102931;
}
.core-formats-link .cta-fill-ink{clip-path:inset(0 calc((1 - var(--fill-progress)) * 100%) 0 0)}
.lab-steps-link .cta-fill-ink{clip-path:circle(calc(var(--fill-progress) * 80%))}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .action-cta.cta-fill{transition:border-color .24s ease}
 html:not([data-motion="off"]) .cta-fill-ink{transition:clip-path .5s var(--control-ease)}
 html:not([data-motion="off"]) .action-cta.lab-steps-link{
  scale:calc(1 + .04 * var(--fill-progress));
  transition:border-color .24s ease,scale .5s var(--control-ease);
 }
}
@media(forced-colors:active){.cta-fill-ink{display:none}}
/* Staggered Letter Glow for the format links. */
.action-cta.format-letter-glow{
 --format-glow:0;
 border-color:color-mix(in srgb,var(--action-border),#82d5d2 calc(var(--format-glow) * 100%));
 background:var(--action-fill);
 box-shadow:inset 14px 0 21px -14px rgb(93 220 212 / calc(.72 * var(--format-glow))),
             inset -14px 0 21px -14px rgb(93 220 212 / calc(.72 * var(--format-glow)));
}
.format-letter-glow:is(:focus-visible,:active){--format-glow:1}
@media(hover:hover){.format-letter-glow:hover{--format-glow:1}}
.format-glow-letters{display:inline-flex;pointer-events:none}
.format-glow-letters>span{
 display:inline-grid;block-size:1.4em;line-height:1.4;overflow:hidden;
}
.format-glow-letters>span>span{grid-area:1/1}
.format-glow-letters>span>span:last-child{translate:0 115%;color:#e2fffc}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .action-cta.format-letter-glow{
  transition:border-color .24s ease,box-shadow .34s var(--control-ease);
 }
 html:not([data-motion="off"]) .format-glow-letters>span>span{
  translate:0 calc(-115% * var(--format-glow));
  transition:translate .34s var(--control-ease);
  transition-delay:calc(var(--letter-delay) * var(--format-glow));
 }
 html:not([data-motion="off"]) .format-glow-letters>span>span:last-child{
  translate:0 calc(115% * (1 - var(--format-glow)));
 }
}
/* Next Dot Fill: the leading dot fills the pill and reveals a trailing arrow. */
.action-cta.gallery-dot-action{
 --dot-open:0;
 --dot-fill:#3b7079;
 overflow:hidden;
 background:var(--action-fill);
 border-color:color-mix(in srgb,var(--action-border),#92c8cc calc(var(--dot-open) * 100%));
}
.gallery-dot-action:is(:focus-visible,:active){--dot-open:1}
@media(hover:hover){.gallery-dot-action:hover{--dot-open:1}}
.gallery-dot-label{
 position:relative;z-index:0;translate:5px 0;
}
.gallery-dot-label::before{
 content:"";position:absolute;z-index:-1;inset-inline-end:calc(100% + 4px);inset-block-start:50%;
 inline-size:6px;block-size:6px;border-radius:50%;background:var(--dot-fill);
 translate:0 -50%;scale:calc(1 + 63 * var(--dot-open));pointer-events:none;
}
.gallery-dot-label svg{
 position:absolute;inset-inline-start:calc(100% + 3px);inset-block-start:50%;
 inline-size:12px;block-size:12px;translate:4px -50%;opacity:0;
}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .gallery-dot-label{
  translate:calc(5px - 12px * var(--dot-open)) 0;
  transition:translate .34s var(--control-ease);
 }
 html:not([data-motion="off"]) .gallery-dot-label::before{transition:scale .45s var(--control-ease)}
 html:not([data-motion="off"]) .gallery-dot-label svg{
  translate:calc(4px * (1 - var(--dot-open))) -50%;opacity:var(--dot-open);
  transition:translate .34s var(--control-ease),opacity .25s ease;
 }
}
/* Talk Arrow Reveal: the label exits right as the arrow enters from the left. */
.action-cta.work-intro-all{
 --reveal:0;
 position:relative;overflow:hidden;
 background:color-mix(in srgb,#172832,#315761 calc(var(--reveal) * 100%));
 border-color:color-mix(in srgb,var(--action-border),#8fc8cd calc(var(--reveal) * 100%));
 transition:none;
}
.work-intro-all:is(:focus-visible,:active){--reveal:1}
@media(hover:hover){.work-intro-all:hover{--reveal:1}}
.work-intro-all-arrow{
 position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;
}
.work-intro-all-arrow svg{width:36px;height:16px}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .action-cta.work-intro-all{
  transition:background-color .29s ease,border-color .29s ease;
 }
 html:not([data-motion="off"]) .work-intro-all-label{
  opacity:calc(1 - var(--reveal));translate:calc(145% * var(--reveal)) 0;
  transition:translate .46s var(--control-ease),opacity .22s ease;
 }
 html:not([data-motion="off"]) .work-intro-all-arrow{
  opacity:var(--reveal);translate:calc(-100% * (1 - var(--reveal))) 0;
  transition:translate .46s var(--control-ease),opacity .22s ease;
 }
}
/* See More Swap: the arrow and label trade sides within a fixed hit area. */
.action-cta.cta-swap{
 --disc-size:32px;
 --disc-inset:5px;
 --disc-gap:10px;
 --label-rest:calc(var(--disc-inset) + var(--disc-size) + var(--disc-gap));
 --label-end:14px;
 --swap-state:0;
 position:relative;overflow:hidden;
 padding:5px var(--label-end) 5px var(--label-rest);
 background:color-mix(in srgb,#142731,#264552 calc(var(--swap-state) * 100%));
 border-color:color-mix(in srgb,var(--action-border),#9cced2 calc(var(--swap-state) * 100%));
 transition:none;
}
.cta-swap:is(:focus-visible,:active){--swap-state:1}
@media(hover:hover){.cta-swap:hover{--swap-state:1}}
.cta-swap-track{
 position:absolute;inset:var(--disc-inset);z-index:1;
 display:flex;align-items:center;pointer-events:none;
}
.cta-swap-disc{
 display:grid;place-items:center;flex:none;
 inline-size:var(--disc-size);aspect-ratio:1;border-radius:50%;
 background:color-mix(in srgb,#25414e,#b4e9e6 calc(var(--swap-state) * 100%));
 color:color-mix(in srgb,#e8fbfa,#112831 calc(var(--swap-state) * 100%));
}
.cta-swap-label{white-space:nowrap}
@media(max-width:599px) and (orientation:portrait){
 .action-cta.closing-reviews-brief{
  --disc-size:22px;--disc-inset:4px;--disc-gap:4px;--label-end:8px;
 }
 .closing-reviews-brief .cta-swap-disc svg{width:13px;height:13px}
}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .action-cta.cta-swap{
  transition:background-color .3s var(--control-ease),border-color .3s var(--control-ease);
 }
 html:not([data-motion="off"]) .cta-swap-track{
  translate:calc((100% - var(--disc-size)) * var(--swap-state)) 0;
  transition:translate .36s var(--control-ease);
 }
 html:not([data-motion="off"]) .cta-swap-label{
  translate:calc((var(--label-end) - var(--label-rest)) * var(--swap-state)) 0;
  transition:translate .36s var(--control-ease);
 }
 html:not([data-motion="off"]) .cta-swap-disc{
  transition:background-color .3s var(--control-ease),color .3s var(--control-ease);
 }
}
@media(prefers-reduced-motion:no-preference){
 #main :is([data-edge-glow],.icon-button):not(:disabled):active{scale:.975}
}
@media(prefers-reduced-motion:reduce){.lab-approach-card:is(:hover,:focus-visible) .lab-approach-preview img{scale:1}}

@property --edge-light-x{
 syntax:"<percentage>";
 inherits:false;
 initial-value:50%;
}
@property --edge-light-y{
 syntax:"<percentage>";
 inherits:false;
 initial-value:0%;
}
@supports (mask-composite:exclude){
 :where([data-edge-glow]){position:relative}
 [data-edge-glow]::after{
  content:"";
  position:absolute;
  inset:-2px;
  padding:2px;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(
   ellipse var(--edge-glow-size,68px 54px) at var(--edge-light-x) var(--edge-light-y),
   #effffe 0%,#9af0e8 26%,#9cb7ffb3 57%,#b5a0ff4d 79%,transparent 100%
  );
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  transition:opacity .17s var(--control-ease);
 }
 [data-edge-glow]:not(:disabled,[aria-disabled="true"]):is(:focus-visible,:active)::after{opacity:.82}
 @media (any-hover:hover){
  [data-edge-glow]:not(:disabled,[aria-disabled="true"]):hover::after{opacity:1}
 }
 @media (any-hover:hover) and (prefers-reduced-motion:no-preference){
  html:not([data-motion="off"]) [data-edge-glow]:hover:not(:focus-visible)::after{
   --edge-light-x:var(--edge-target-x,50%);
   --edge-light-y:var(--edge-target-y,0%);
   transition:opacity .17s var(--control-ease),
    --edge-light-x .14s var(--control-ease),--edge-light-y .14s var(--control-ease);
  }
 }
}

/* MicroKit-inspired effects, scoped to the controls that use them. */
body[data-page-view] #brief .contact-direct .contact-channel{
 position:relative;isolation:isolate;border-radius:11px;overflow:hidden;
}
#brief .contact-channel{--channel-accent:#a2dcd6}
#brief .contact-direct .contact-channel[data-contact-channel="telegram"]{--channel-accent:#6ccfff;--channel-icon-fill:#167fae}
#brief .contact-direct .contact-channel[data-contact-channel="vk"]{--channel-accent:#7db3ff;--channel-icon-fill:#0077ff}
#brief .contact-direct .contact-channel[data-contact-channel="max"]{--channel-accent:#b79aff;--channel-icon-fill:linear-gradient(150deg,#6626dc,#236fdd)}
#brief .contact-direct .contact-channel[data-contact-channel="whatsapp"]{--channel-accent:#74dea3;--channel-icon-fill:#147d51}
#brief .contact-direct .contact-channel[data-contact-channel="email"]{--channel-accent:#ffaea3;--channel-icon-fill:#f3f6f8}
#brief .contact-direct .contact-channel[data-contact-channel="email-alt"]{--channel-accent:#83baff}
body[data-page-view] #main #brief .contact-channel[data-contact-channel="email-alt"] img{padding:0}
#brief .contact-channel::after{
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;
 background:
  linear-gradient(90deg,transparent,var(--channel-accent),color-mix(in srgb,var(--channel-accent) 62%,white),var(--channel-accent),transparent) center top / 90% 2px no-repeat,
  radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--channel-accent) 40%,transparent),transparent 82%);
}
body[data-page-view] #brief .contact-direct .contact-channel:is(:hover,:focus-visible){border-color:var(--channel-accent)}
#brief .contact-channel:is(:hover,:focus-visible)::after{opacity:1}
#brief .contact-channel:is(:hover,:focus-visible)>img{box-shadow:0 0 10px color-mix(in srgb,var(--channel-accent) 45%,transparent)}

/* Inset Circle. Light opens inside the control from the center. */
#main :is([data-gallery-step],[data-rail-prev],[data-rail-next],#works-prev){
 position:relative;isolation:isolate;overflow:hidden;
}
#main :is([data-gallery-step],[data-rail-prev],[data-rail-next],#works-prev)::after{
 content:"";position:absolute;inset:2px;z-index:-1;pointer-events:none;border-radius:50%;
 background:radial-gradient(ellipse at 45% 10%,#4a7987,#274653 74%);
 opacity:0;scale:.65;
}
#main :is([data-gallery-step],[data-rail-prev],[data-rail-next],#works-prev):not(:disabled,[aria-disabled="true"]):is(:hover,:focus-visible,:active){
 color:#efffff;border-color:#91c7cb;transform:none;
}
#main :is([data-gallery-step],[data-rail-prev],[data-rail-next],#works-prev):not(:disabled,[aria-disabled="true"]):is(:hover,:focus-visible,:active)::after{
 opacity:1;scale:1;
}

/* Next Reveal. The visible pill grows within a stationary control. */
#project-index .catalog-next{
 position:relative;isolation:isolate;justify-content:center;gap:6px;
 width:auto;min-width:102px;padding-inline:12px 7px;border-radius:999px;
 font:720 13px/1 var(--sans);transform:none;
}
.catalog-next::after{
 content:"";position:absolute;inset:3px;z-index:-1;border-radius:inherit;pointer-events:none;
 background:linear-gradient(100deg,#294950,#2a5261);
 clip-path:inset(0 0 0 calc(100% - 31px) round 999px);
}
#project-index .catalog-next:not(:disabled):is(:hover,:focus-visible,:active){
 background:#172a33;color:#f1fffd;border-color:#8fc9cb;
}
.catalog-next:not(:disabled):is(:hover,:focus-visible,:active)::after{clip-path:inset(0 round 999px)}
.catalog-next>svg{width:18px;height:18px;flex:none}
@media(max-width:480px){
 #project-index .catalog-next{width:44px;min-width:44px;padding:0}
 .catalog-next::after{clip-path:inset(0 round 50%)}
 .catalog-next-label{display:none}
}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .catalog-next::after{transition:clip-path .3s var(--control-ease)}
 html:not([data-motion="off"]) .catalog-next:not(:disabled):is(:hover,:focus-visible,:active)>svg{translate:2px 0}
}


/* MicroKit motion studies: a sliding selection, card highlights and readable feedback. */
:is(.exact-nav,.work-goals,.case-tabs){position:relative;isolation:isolate}
.selection-glide{
 position:absolute;inset:0 auto auto 0;z-index:-1;pointer-events:none;
 border-radius:10px;visibility:hidden;box-sizing:border-box;
}
[data-glide-ready]>.selection-glide{visibility:visible}
.exact-nav .selection-glide{border-radius:999px}
.exact-nav .selection-glide::before{
 content:"";position:absolute;inset:3px 1px;border-radius:inherit;
 border:1px solid #b4eff2a3;
 background:radial-gradient(ellipse at 23% 0,#67d5d975,transparent 66%),linear-gradient(115deg,#24535d,#273756 75%,#463756);
 box-shadow:inset 0 1px #d0ffff62,0 4px 13px #02090e88;
}
.exact-nav[data-glide-ready] a:is(:hover,:focus-visible,[aria-current="page"]){background:transparent}
#project-index .work-goals .selection-glide{
 border:1px solid #a6dce1a6;border-radius:999px;
 background:linear-gradient(145deg,#294a54,#16303d);
}
body[data-page-view] #project-index .work-goals[data-glide-ready] .button[aria-pressed="true"]{
 background:transparent;border-color:transparent;box-shadow:none;
}
#kub .case-tabs .selection-glide{
 border:1px solid #a1d3d596;border-radius:999px;background:linear-gradient(105deg,#244955,#16303b);
}
#kub .case-tabs[data-glide-ready] .scene-tab[aria-selected="true"]{
 background:transparent;border-color:transparent;
}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) [data-glide-ready]>.selection-glide{
  transition:translate .33s var(--control-ease),width .33s var(--control-ease),height .33s var(--control-ease);
 }
 html:not([data-motion="off"]) .exact-nav[data-glide-ready]>.selection-glide{
  transition-duration:.42s;transition-timing-function:cubic-bezier(.2,.82,.25,1.06);
 }
}

/* One travelling reflection per group. Each tile paints only its own window. */
@property --glide-x{syntax:"<length>";inherits:true;initial-value:0px}
@property --glide-y{syntax:"<length>";inherits:true;initial-value:0px}
@property --glide-radius-x{syntax:"<length>";inherits:true;initial-value:100px}
@property --glide-radius-y{syntax:"<length>";inherits:true;initial-value:100px}
.card-glide-group{position:relative}
.card-glide{position:relative;isolation:isolate}
.card-glide::after{
 --glide-local-x:calc(var(--glide-x) - var(--glide-left,0px));
 --glide-local-y:calc(var(--glide-y) - var(--glide-top,0px));
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;opacity:0;
 background:
  radial-gradient(ellipse var(--glide-radius-x) 160px at var(--glide-local-x) var(--glide-local-y),#c2fff0,#81d0edb0 40%,transparent 98%) top / 100% 1px no-repeat,
  radial-gradient(ellipse var(--glide-radius-x) var(--glide-radius-y) at var(--glide-local-x) var(--glide-local-y),#4b97aa73,#335b824f 42%,transparent 100%);
}
[data-glide-lit] .card-glide::after{opacity:1}
:is(.core-format,.service-package,.closing-review-card):focus-within{border-color:#97d9d8aa}
@media(hover:hover){
 :is(.core-format,.service-package,.closing-review-card):hover{border-color:#97d9d8aa}
}
@media(hover:none){
 .card-glide:is(:active,:has(:active)){border-color:#97d9d8aa}
}
@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) .card-glide-group[data-glide-lit]{
  transition:--glide-x .46s var(--control-ease),--glide-y .46s var(--control-ease),
   --glide-radius-x .46s var(--control-ease),--glide-radius-y .46s var(--control-ease);
 }
 html:not([data-motion="off"]) .card-glide::after{transition:opacity .22s var(--control-ease)}
 html:not([data-motion="off"]) :is(.core-format,.service-package,.closing-review-card){transition:border-color .23s var(--control-ease)}
}

.messenger-telegram{--messenger-halo:#48baf99e}
.messenger-max{--messenger-halo:#8e6cffaa}
.portfolio-messenger::after{box-shadow:0 4px 14px -3px var(--messenger-halo)}
@media(hover:none){.portfolio-messenger::after{box-shadow:none}}
.closing-review-read:is(:hover,:focus-visible){color:#e5fffb}
/* Preview Hover Toolbar. A label opens towards the image from its fixed corner. */
:is(.zoom-button,.unicrop-preview .preview-action){box-shadow:inset 0 1px #d4f5f026}
.preview-tool:is(.zoom-button,.preview-action){
 display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:7px;
 justify-content:end;align-items:center;padding:0 10px 0 12px;
 box-sizing:border-box;width:126px;min-height:44px;
 clip-path:inset(0 0 0 calc(100% - 44px) round 12px);
}
.preview-tool>svg{width:20px;height:20px;justify-self:center}
.preview-tool-label{font:720 12px/1 var(--sans);opacity:0;white-space:nowrap}
:is(.case-screen:hover,.case-screen:focus-within)>.preview-tool,
.unicrop-preview:is(:hover,:focus-visible)>.preview-tool{
 clip-path:inset(0 round 12px);
}
:is(.case-screen:hover,.case-screen:focus-within,.unicrop-preview:hover,.unicrop-preview:focus-visible) .preview-tool-label{opacity:1}
.preview-tool:focus-visible{outline:2px solid #e1f7f3;outline-offset:-4px}
@media(hover:none){
 .preview-tool:is(.zoom-button,.preview-action){clip-path:inset(0 round 12px)}
 .preview-tool-label{opacity:1}
}
.zoom-button:is(:hover,:focus-visible),.unicrop-preview:is(:hover,:focus-visible) .preview-action{
 color:#142831;background:#bcece6;border-color:#d1f1ee;
}
body[data-page-view] #main :is(.faq-list,.service-additional) summary svg{
 box-sizing:border-box;padding:4px;border:1px solid transparent;border-radius:50%;
}
body[data-page-view] #main :is(.faq-list,.service-additional) :is(details[open]>summary,summary:hover,summary:focus-visible) svg{
 background:#193840;border-color:#6b9eaa;color:#caf4ef;
}

body[data-page-view] #brief .brief-field :is(input,select,.brief-picker):not(:disabled,[aria-invalid="true"]):focus,
body[data-page-view] #brief #brief-output:focus,
#brief-choice-dialog .brief-choice-other:focus{
 border-color:#a2e6e1;box-shadow:0 0 0 2px #7fd8d639;
}
#brief-choice-dialog .brief-choice-other:focus-visible{outline:none}
#brief .brief-field:focus-within>label{color:#e4fbfa}
/* The same dark surface is used for single choice and the multi-choice trigger. */
body[data-page-view] #brief .brief-field :is(select,.brief-picker){
 color-scheme:dark;
 background:
  linear-gradient(90deg,transparent,#83dbdc 38%,#b6b7ff 62%,transparent) 50% 0 / 0% 1px no-repeat,
  radial-gradient(ellipse at 48% 0,#3e778858,transparent 78%) 50% 0 / 0% 100% no-repeat,
  linear-gradient(120deg,#0e1e28,#0b161e) 0 0 / 100% 100%;
}
body[data-page-view] #brief .brief-field :is(select,.brief-picker):not(:disabled):is(:hover,:focus-visible,[aria-expanded="true"]){
 border-color:#83bfc5;background-size:100% 1px,100% 100%,100% 100%;
}
#brief .brief-field :is(select,.brief-picker):not(:disabled){cursor:pointer}
#brief-choice-dialog{
 border-color:#719da9;background:linear-gradient(155deg,#182d38,#0c1721 70%);
}
#brief-choice-dialog .brief-check:is(:hover,:focus-within){
 border-color:#9ad3d5;background-color:#203d49;
}
#brief-choice-dialog .brief-check:has(input:checked){border-color:#99d7cd;background-color:#21443f}
#brief-choice-dialog .brief-choice-actions .button{border-radius:999px}

@supports (appearance:base-select) and selector(::picker(select)){
 #brief .brief-field select,#brief .brief-field select::picker(select){appearance:base-select}
 body[data-page-view] #brief .brief-field select{display:flex;align-items:center;gap:6px;padding-inline:10px}
 #brief .brief-field select::picker-icon{
  content:"";box-sizing:border-box;flex:none;width:7px;height:7px;margin-inline:auto 3px;
  border:solid #a8d9db;border-width:0 1.5px 1.5px 0;translate:0 -2px;rotate:45deg;
 }
 #brief .brief-field select:open::picker-icon{translate:0 2px;rotate:225deg}
 body[data-page-view] #brief .brief-field select:open{border-color:#83bfc5;background-size:100% 1px,100% 100%,100% 100%}
 #brief .brief-field select::picker(select){
  box-sizing:border-box;inline-size:anchor-size(width);min-inline-size:0;max-inline-size:calc(100vw - 24px);
  max-block-size:min(320px,48svh);margin-block:4px;padding:5px;overflow:auto;overscroll-behavior:contain;
  border:1px solid #7098a6;border-radius:12px;background:linear-gradient(150deg,#172c38,#0b1620 76%);
  color:#e9f6fa;font:600 14px/1.35 var(--sans);box-shadow:0 12px 32px #01080dc4;
 }
 #brief .brief-field select option{
  min-block-size:38px;padding:8px 9px;border-radius:7px;background:transparent;color:inherit;
  white-space:normal;overflow-wrap:anywhere;
 }
 #brief .brief-field select option:is(:hover,:focus-visible){background:#254755}
 #brief .brief-field select option:checked{background:#22483f;color:#edfffb;font-weight:750}
 #brief .brief-field select option::checkmark{order:1;margin-inline-start:auto;color:#a9eee0}
 @media(hover:none){#brief .brief-field select option{min-block-size:44px}}
 @media(prefers-reduced-motion:no-preference){
  html:not([data-motion="off"]) #brief .brief-field select:open::picker(select){animation:brief-options-enter .24s var(--control-ease) both}
  html:not([data-motion="off"]) #brief .brief-field select::picker-icon{transition:rotate .24s var(--control-ease),translate .24s var(--control-ease)}
 }
}
#brief .brief-contact-permission:has(input:checked){border-color:#83c4c3a6;background:#17313a}
/* Progress Ring Check reports the clipboard promise's real state. */
.copy-mark{position:relative;display:grid;place-items:center;width:29px;height:29px;flex:none}
#copy-brief .copy-mark .copy-ring{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;opacity:0}
#copy-brief .copy-glyph{width:18px;height:18px}
#copy-brief[aria-busy="true"] .copy-ring{opacity:.85;stroke-dasharray:.3 1}
#copy-brief[aria-busy="true"] .copy-glyph{opacity:.5}
#copy-brief[data-copied] .copy-ring{opacity:.8;stroke-dasharray:1;stroke-dashoffset:0;color:#9fe6cf}
#copy-brief[data-copied] .copy-glyph{color:#bfffe1}
body[data-page-view] #main #brief #copy-brief[data-copied]{background:#173c39;border-color:#9ee0c8;color:#effff7}

/* Magnetic Fill. The fill rises inside a stationary, labelled button. */
body[data-page-view] #main :is(.core-format .action-cta,.format-actions .button,.case-next .button,.faq-layout .button,.closing-reviews-brief){
 background:linear-gradient(0deg,#214e51,#294957) center bottom / 100% 0% no-repeat,var(--action-fill);
 border-color:#7798a1;color:#edf9fb;
}
body[data-page-view] #main :is(.core-format .action-cta,.format-actions .button,.case-next .button,.faq-layout .button,.closing-reviews-brief):is(:hover,:focus-visible,:active){
 background-size:100% 100%,100% 100%;border-color:#9cd4d2;transform:none;
}

/* A single travelling reflection for secondary destinations. */
body[data-page-view] #main :is(.catalog-gallery-link,#brief-choose-channel){
 background:
  linear-gradient(110deg,transparent 20%,#9fe8e92d 50%,transparent 78%) 220% 0 / 54% 100% no-repeat,
  var(--action-fill);
}
body[data-page-view] #main :is(.catalog-gallery-link,#brief-choose-channel):is(:hover,:focus-visible,:active){
 background-position:8% 0,0 0;border-color:#a1cccf;
}

body[data-page-view] :is(.format-actions .text-link,.core-format-actions .text-link,.additional-list .text-link,.quiet-link){
 text-decoration:none;
}
body[data-page-view] :is(.format-actions .text-link,.core-format-actions .text-link,.additional-list .text-link,.quiet-link):is(:hover,:focus-visible){
 color:#e4fffa;text-shadow:0 0 10px #89d4d970;text-decoration:none;
}
.closing-review-case:is(:hover,:focus-visible) img{filter:brightness(1.18)}

/* View More Text Swap. Both labels share one footprint. */
.closing-review-read{display:inline-grid;align-items:center;justify-items:start;overflow:clip}
.closing-review-read>span{grid-area:1/1}
.closing-review-read>span+span{opacity:0;translate:0 100%}
.closing-review-read:is(:hover,:focus-visible)>span:first-child{opacity:0;translate:0 -100%}
.closing-review-read:is(:hover,:focus-visible)>span+span{opacity:1;translate:none;color:#d8faf5}
.closing-review-read:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}

@media(prefers-reduced-motion:no-preference){
 html:not([data-motion="off"]) :is(.brief-choice-dialog,.image-dialog)[open]{
  animation:dialog-arrive .24s var(--control-ease) both;
 }
 html:not([data-motion="off"]) #brief-choice-dialog[open]{animation-name:brief-options-enter}
 html:not([data-motion="off"]) #brief .brief-picker::after{transition:rotate .24s var(--control-ease),translate .24s var(--control-ease)}
 html:not([data-motion="off"]) .brief-check{transition:background-color .18s ease,border-color .18s ease}
 html:not([data-motion="off"]) :is(.brief-contact-choice,.brief-check) input:checked:focus{
  animation:control-confirm .3s var(--control-ease);
 }
 html:not([data-motion="off"]) #copy-brief[aria-busy="true"] .copy-ring{animation:copy-wait .75s linear 4}
 html:not([data-motion="off"]) #copy-brief[data-copied] .copy-ring{animation:copy-ring-close .34s var(--control-ease) both}
 html:not([data-motion="off"]) #brief :is(.brief-field input,.brief-field select,.brief-picker,#brief-output){
  transition:border-color .18s var(--control-ease),box-shadow .18s var(--control-ease),background-size .32s var(--control-ease);
 }
 html:not([data-motion="off"]) #main :is(.zoom-button,.preview-action){
  transition:background-color .22s var(--control-ease),color .22s var(--control-ease),border-color .22s var(--control-ease);
 }
 html:not([data-motion="off"]) #main .preview-tool{transition:clip-path .33s var(--control-ease),background-color .22s var(--control-ease)}
 html:not([data-motion="off"]) .preview-tool-label{transition:opacity .24s .05s var(--control-ease)}
 html:not([data-motion="off"]) #main :is(.core-format .action-cta,.format-actions .button,.case-next .button,.faq-layout .button,.closing-reviews-brief){
  transition:background-size .38s var(--control-ease),border-color .24s var(--control-ease);
 }
 html:not([data-motion="off"]) #main :is(.catalog-gallery-link,#brief-choose-channel){
  transition:background-position .44s var(--control-ease),border-color .24s var(--control-ease);
 }
 html:not([data-motion="off"]) #main :is([data-gallery-step],[data-rail-prev],[data-rail-next],#works-prev)::after{
  transition:opacity .22s var(--control-ease),scale .35s var(--control-ease);
 }
 html:not([data-motion="off"]) .closing-review-read>span{transition:opacity .18s ease,translate .26s var(--control-ease)}
 html:not([data-motion="off"]) .lab-approach-preview>span{transition:background-size .34s var(--control-ease),color .2s ease}
 html:not([data-motion="off"]) .closing-review-case img{transition:filter .24s var(--control-ease)}
 html:not([data-motion="off"]) .closing-review-dots button::before{transition:width .25s var(--control-ease),background-color .25s ease}
 html:not([data-motion="off"]) #brief .contact-channel::after{transition:opacity .22s var(--control-ease)}
 html:not([data-motion="off"]) #faq summary[aria-expanded="true"]+p{animation:answer-glide .31s var(--control-ease) both}
}
@keyframes copy-wait{to{rotate:1turn}}
@keyframes dialog-arrive{from{opacity:.45;translate:0 7px}to{opacity:1;translate:none}}
@keyframes brief-options-enter{from{opacity:.45;translate:0 -5px;filter:blur(3px)}to{opacity:1;translate:none;filter:none}}
@keyframes copy-ring-close{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes answer-glide{
 from{opacity:.15;translate:0 -7px;filter:blur(2px)}
 to{opacity:1;translate:none;filter:none}
}

@media(forced-colors:active){
 .selection-glide{outline:1px solid Highlight;outline-offset:-1px}
 .exact-nav[data-glide-ready] a[aria-current="page"]{text-decoration:underline}
 #project-index .work-goals .button[aria-pressed="true"],#kub .scene-tab[aria-selected="true"]{
  outline:2px solid Highlight;outline-offset:-2px;
 }
}

/* The preview and the ready scene use the same scroll geometry. No static
   photograph or stacked fallback chapters can leak through during preparation. */
.spatial-gallery.scene-preview:not(.scene-ready){height:var(--scene-scroll-height);overflow:visible}
.spatial-gallery.scene-preview:not(.scene-ready) .gallery-sticky{position:sticky;top:0;height:100svh;overflow:clip}
.spatial-gallery.scene-preview:not(.scene-ready) .gallery-layout.wrap{display:block;width:100%;height:100%;padding:0;margin:0}
.spatial-gallery.scene-preview:not(.scene-ready) .gallery-layout.wrap > :not(.opening-cover):not(.scene-offer){visibility:hidden;pointer-events:none}
.spatial-gallery.scene-preview:not(.scene-ready) .opening-cover{position:absolute;inset:0;width:100%;height:100%;margin:0}
html .spatial-gallery.scene-preview:not(.scene-ready) .scene-offer{display:block;position:absolute;opacity:1}
@media(min-aspect-ratio:12/5) and (min-height:451px){
 :is(.scene-ready,.scene-preview) .scene-name{top:min(70.5%,calc(50% + 43cqh - 5.7cqw))}
}
@media(max-width:305px){
 .portfolio-header .portfolio-brand{font-size:.625rem}
 .portfolio-header .exact-nav a{padding-inline:2px}
 .inquiry-face{padding-inline:8px}
 .inquiry-arrow{display:none}
}
@media(max-width:700px) and (max-height:360px) and (orientation:landscape){
 .scene-ready .scene-bio{
  inset:calc(var(--portfolio-header-height) + 8px) var(--page-gutter) 8px;
  transform:none;grid-template-columns:minmax(0,1fr) 36px minmax(0,27%);
  --bio-ring-size:36px;
  align-items:safe center;overflow-y:auto;scrollbar-width:thin;
 }
 .scene-ready .scene-bio:not([inert]){pointer-events:auto}
 .scene-bio h2{font-size:19px}
 .scene-bio p{max-width:none;font-size:12px;line-height:1.36;margin-top:6px}
 .scene-bio .action-cta{margin-top:4px}
}
@media(max-width:680px) and (max-height:530px) and (orientation:portrait){
 .scene-ready .lab-approach{gap:7px;overflow-y:auto;scrollbar-width:thin}
 .scene-ready .lab-approach:not([inert]){pointer-events:auto}
 .lab-approach-list{gap:6px}
 .lab-approach-card{min-height:0;padding:6px}
 .lab-approach-preview{block-size:64px}
 .lab-approach-copy p{margin-top:3px}
}
