/* Pinned viewport stages give the brand and process a whole browser screen. */
main>section{min-height:100dvh}
#about.manifesto,#approach.approach{display:block;position:relative;height:250svh;min-height:250svh;padding:0;overflow:visible}
.scene-viewport{position:sticky;top:0;width:100%;height:100dvh;min-height:100dvh;overflow:hidden;isolation:isolate;padding:95px var(--gutter) 75px;display:flex;flex-direction:column;justify-content:center}
.belief-viewport{background:#1a1e26;color:var(--paper)}
.belief-viewport>.section-top,.process-viewport>.section-top{position:absolute;left:var(--gutter);right:var(--gutter);top:35px;margin:0;padding-top:20px;border-top:1px solid #464951}
.process-viewport>.section-top{border-color:var(--line)}
.belief-viewport .manifesto-main{padding:0 0 0 19%;display:block}
.belief-viewport .scroll-words{font-size:clamp(40px,5.4vw,86px);line-height:1.35;position:relative;z-index:2}
.belief-viewport .asterisk{position:absolute;top:31%;left:var(--gutter);display:grid;place-items:center;width:110px;height:110px;font-size:110px;line-height:1;margin:0;will-change:transform;transform-origin:center;color:#8ca7ff}
.belief-viewport .manifesto-bottom{margin:55px 0 30px 19%;position:relative;z-index:2}
.belief-viewport .manifesto-thread{width:100%;left:0;bottom:0;height:clamp(130px,22vh,230px);overflow:hidden;pointer-events:none}
.belief-viewport .manifesto-thread path{stroke:#7188e1;stroke-width:1.5;stroke-dasharray:none;stroke-dashoffset:0;fill:none;will-change:transform}
.belief-viewport .manifesto-thread .thread-secondary{stroke:#4d639c;stroke-width:1}
.belief-viewport .manifesto-thread .thread-stream{stroke:#a2b9ff;stroke-width:2;stroke-dasharray:3 24;stroke-linecap:round}
.thread-particle{fill:#b4c8ff;filter:drop-shadow(0 0 5px #8ba8ff)}
.process-viewport{background:var(--paper)}
.process-viewport .section-heading{margin:20px 0 50px}
.process-viewport .section-heading h2{font-size:clamp(38px,4.3vw,66px)}
.process-status{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1px;margin:10px 0 50px;color:#717881;font-variant-numeric:tabular-nums}
.process-status-left{display:flex;gap:25px;align-items:center}.process-status-left b{color:var(--blue);font-weight:600}
.process-line{position:relative;border:0;padding-top:38px;gap:30px;min-height:200px}
.process-rail{position:absolute;left:0;right:0;top:0;height:2px;background:#d5d9e2;pointer-events:none}
.process-rail-fill{position:absolute;inset:0;background:var(--blue);transform-origin:left;transform:scaleX(0)}
.process-cursor{position:absolute;left:0;top:-5px;width:12px;height:12px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 7px #2455f514;will-change:transform}
.process-line article{will-change:transform,opacity;transform-origin:left center}
.process-line article:before{top:-43px;height:10px;width:10px;border:2px solid var(--paper);box-shadow:0 0 0 1px #b9c2d3;z-index:1}
.process-line article.is-active:before,.process-line article.is-complete:before{background:var(--blue);box-shadow:0 0 0 2px #2455f528;transform:scale(1.15)}
.process-line h3{font-size:clamp(28px,3vw,44px);font-weight:500;margin:22px 0 18px;transition:color 200ms ease}
.process-line article.is-active h3{color:var(--blue)}
.process-line p{font-size:14px}
.process-viewport .tech-strip{margin-top:40px;position:relative;z-index:2}
.process-viewport .scene-decoration{bottom:65px;right:4%;font-size:clamp(100px,19vw,280px);color:#2455f507}
.contact-copy{position:relative;isolation:isolate}
.contact-grid>.form-wrap{position:relative;z-index:3}
/* Keep the whole connecting ribbon in frame on narrow screens. */
@media(min-width:768px) and (max-width:1100px){.ribbon-stage{left:auto;right:0;top:36%;width:64%;height:58%}}
@media(max-width:767px){#top.hero{min-height:calc(100dvh - 76px)}.ribbon-stage{left:0;right:0;top:36%;width:100%;height:45%}.ribbon-label.label-people{left:10%;top:28%}.ribbon-label.label-tech{right:9%;bottom:18%}.ribbon-caption{left:0;right:0;bottom:3%;text-align:center}.hero-footer{bottom:22px}}
@media(max-width:370px){#top.hero{min-height:max(650px,calc(100dvh - 76px))}.ribbon-stage{top:37%;height:43%;width:100%;left:0;right:0}}
.contact-copy h2,.contact-copy>p,.contact-copy>.domain-link{position:relative;z-index:2}
.domain-link{font-size:26px;letter-spacing:-.6px;border-bottom:1px solid #93adff;display:inline-flex;align-items:center;gap:40px;padding:12px 0}
.domain-link>span{font-size:31px;display:inline-block}
.contact-orbit{position:absolute;left:-30%;top:32%;width:145%;height:70%;min-height:300px;z-index:0;opacity:.75;pointer-events:none;overflow:visible}
.contact-orbit path{fill:none;stroke:#b3c7ff;stroke-width:1;opacity:.45}
.contact-orbit .contact-orbit-dash{stroke-dasharray:5 18;stroke-width:1.5;opacity:.6}
.contact-orbit circle{fill:#dbe5ff;filter:drop-shadow(0 0 6px #dbe5ff)}
.contact-copy .contact-loop{margin-top:75px;width:100px;height:100px;font-size:62px;border-color:#92adff66;background:#2455f5;position:relative;z-index:1}
.contact-watermark{position:absolute;bottom:0;left:-3px;right:0;max-width:100%;overflow:hidden;font-size:clamp(60px,8vw,130px);line-height:.9;font-weight:700;letter-spacing:-.08em;color:#ffffff09;pointer-events:none;white-space:nowrap}
.contact-copy h2>span{display:inline-block;transform-origin:center;will-change:transform}
/* Clip the outside shape; only the inner document receives a scrollbar. */
#privacy-dialog{padding:0;border-radius:22px;overflow:hidden;max-height:85dvh;width:min(580px,calc(100% - 32px));box-shadow:0 25px 100px #10152230}
#privacy-dialog[open]{display:flex;flex-direction:column}
#privacy-dialog .dialog-heading{padding:24px 25px 19px;margin:0;flex-shrink:0;border-bottom:1px solid var(--line);background:var(--paper);z-index:1}
#privacy-dialog .dialog-heading h2{font-size:20px}
#privacy-dialog .dialog-heading button{border-radius:50%;width:36px;height:36px;font-size:28px;padding:0;flex-shrink:0}
.dialog-body{padding:23px 25px 26px;min-height:0;max-height:calc(85dvh - 100px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b4bac6 transparent;outline-offset:-5px;flex:1}
.dialog-body::-webkit-scrollbar{width:6px}.dialog-body::-webkit-scrollbar-thumb{background:#b4bac6;border-radius:8px}.dialog-body::-webkit-scrollbar-track{background:transparent}
.dialog-body>p:first-child{font-size:14px;line-height:1.8;color:#5c6268}
@media(max-width:1100px){.belief-viewport .asterisk{font-size:85px;width:85px;height:85px}.process-line h3{font-size:30px}.process-viewport .section-heading h2{font-size:42px}.process-line p{font-size:12px}.process-viewport .section-heading{margin-bottom:35px}}
@media(max-width:767px){#about.manifesto,#approach.approach{height:240svh;min-height:240svh}.scene-viewport{padding:90px var(--gutter) 75px;height:100dvh;min-height:100dvh}.belief-viewport>.section-top,.process-viewport>.section-top{top:25px;padding-top:14px}.belief-viewport .manifesto-main{padding:45px 0 0}.belief-viewport .asterisk{top:14%;left:var(--gutter);font-size:58px;width:58px;height:58px}.belief-viewport .scroll-words{font-size:clamp(29px,7.1vw,48px)}.belief-viewport .manifesto-bottom{margin:35px 0 45px;display:block}.belief-viewport .manifesto-bottom p:first-child{font-size:20px;margin-bottom:22px}.belief-viewport .manifesto-bottom p:last-child{font-size:12px}.belief-viewport .manifesto-thread{height:130px;bottom:-5px}.process-viewport{justify-content:center}.process-viewport .section-heading{margin:12px 0 24px}.process-viewport .section-heading h2{font-size:34px}.process-viewport .section-heading>p{font-size:12px;margin-top:15px}.process-status{margin:0 0 28px;font-size:8px;letter-spacing:.6px}.process-status-left{gap:14px}.process-line{display:flex;flex-direction:column;gap:18px;padding:0 0 0 34px;min-height:0}.process-line article{display:grid;grid-template-columns:112px 1fr;grid-template-rows:auto auto;column-gap:8px;min-height:58px;padding:0!important;border:0!important}.process-line article>span{grid-column:1;grid-row:1;font-size:8px;letter-spacing:.4px}.process-line h3{grid-column:1;grid-row:2;font-size:25px;margin:5px 0 0;line-height:1.2}.process-line p{grid-column:2;grid-row:1 / span 2;font-size:11px;align-self:center;line-height:1.8}.process-rail{left:7px;top:5px;bottom:5px;right:auto;width:2px;height:auto}.process-rail-fill{transform-origin:top;transform:scaleY(0)}.process-cursor{left:-5px;top:0}.process-line article:before,.process-line article:nth-child(n+3):before{left:-31px;top:22px;width:10px;height:10px}.process-viewport .tech-strip{margin-top:30px;padding-top:17px}.process-viewport .tech-strip>span{font-size:8px}.process-viewport .tech-strip p{font-size:10px;line-height:1.8;margin-top:8px}.process-viewport .scene-decoration{font-size:95px;bottom:70px}.contact-orbit{top:5%;left:7%;width:115%;height:110%;min-height:250px;opacity:.55}.domain-link{font-size:24px;gap:40px}.contact-copy .contact-loop{display:block;position:absolute;right:0;bottom:5px;width:55px;height:55px;font-size:36px;line-height:1.5;margin:0}.contact-watermark{bottom:-15px;font-size:65px}.contact-copy h2{position:relative}.contact .form-wrap{position:relative;z-index:3}#privacy-dialog{border-radius:20px}#privacy-dialog .dialog-heading{padding:19px 18px 15px;gap:6px}#privacy-dialog .dialog-heading h2{font-size:17px}.dialog-body{padding:18px 20px 23px;max-height:calc(85dvh - 85px)}}
@media(max-height:720px){.scene-viewport{padding-top:80px;padding-bottom:45px}.belief-viewport .asterisk{top:16%;font-size:60px;width:60px;height:60px}.belief-viewport .manifesto-main{padding-top:15px}.belief-viewport .scroll-words{font-size:clamp(30px,4.7vw,60px)}.belief-viewport .manifesto-bottom{margin-top:28px;margin-bottom:25px}.belief-viewport .manifesto-bottom p:first-child{font-size:18px;margin-bottom:12px}.belief-viewport .manifesto-bottom p:last-child{font-size:11px}.process-viewport .section-heading{margin:5px 0 20px}.process-viewport .section-heading h2{font-size:32px}.process-viewport .section-heading>p{font-size:11px;margin-top:10px}.process-status{margin-bottom:25px}.process-line{gap:12px}.process-line h3{font-size:23px}.process-line p{font-size:11px}.process-viewport .tech-strip{margin-top:20px;padding-top:12px}}
@media(prefers-reduced-motion:reduce){#about.manifesto,#approach.approach{height:auto;min-height:100dvh}.scene-viewport{position:relative;height:auto;min-height:100dvh;overflow:visible}.belief-viewport .asterisk,.manifesto-thread path,.contact-orbit path,.contact-orbit circle,.process-line article,.process-cursor,.domain-link>span{transform:none!important}.process-line article{opacity:1!important}.process-rail-fill{transform:scaleX(1)!important}.contact-orbit circle{display:none}.process-cursor{display:none}.contact-copy h2>span{transform:none!important}}
@media(max-width:767px) and (prefers-reduced-motion:reduce){.process-rail-fill{transform:scaleY(1)!important}}
