@font-face{font-family:Bricolage;src:url('assets/Bricolage-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:Space;src:url('assets/Space-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Space;src:url('assets/Space-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Space;src:url('assets/Space-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
html{scroll-behavior:smooth;scroll-padding-top:110px}
:root{--paper:#f7f2e8;--ink:#292127;--orange:#ff693b;--lilac:#c9b8ff;--line:rgba(41,33,39,.15);--muted:#756c70;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Space,Arial,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible,main:focus-visible{outline:2px solid var(--ink);outline-offset:6px}button:disabled{cursor:default}::selection{background:var(--lilac)}.site-shell{width:min(1600px,100%);padding:0 4.3%;margin:0 auto;min-height:100svh;display:flex;flex-direction:column}.header{height:99px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:3;gap:20px}.brand{margin-left:-7px;display:flex;align-items:center}.brand img{display:block;width:180px;height:auto}.nav{display:flex;gap:33px;height:100%;align-items:center}.nav a{font-size:13px;color:var(--muted);position:relative;padding:14px 0;transition:color .2s}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.nav a[aria-current=page]:after{content:'';position:absolute;bottom:2px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--orange)}.header-cta{background:transparent;border:1px solid var(--ink);padding:13px 21px;border-radius:30px;display:flex;gap:26px;font-size:13px;align-items:center;transition:background .25s,color .25s}.header-cta:hover{background:var(--ink);color:var(--paper)}.header-cta span{font-size:19px;line-height:1}.skip-link{position:fixed;top:-80px;left:20px;padding:16px;background:var(--ink);color:var(--paper);z-index:30}.skip-link:focus{top:16px}main{flex:1;display:flex;flex-direction:column;outline:none}.hero{display:grid;grid-template-columns:1.06fr 1fr;min-height:470px;flex:1;position:relative;gap:10px;align-items:center}.hero-copy{padding:40px 0 32px;position:relative;z-index:1}.eyebrow{font-size:12px;text-transform:uppercase;font-weight:500;letter-spacing:1.5px;display:flex;gap:9px;align-items:center;margin:0 0 29px}.signal-dot{display:inline-block;background:var(--orange);width:7px;height:7px;border-radius:50%;flex-shrink:0}h1{font-family:Bricolage,Arial,sans-serif;font-size:clamp(48px,5.15vw,72px);line-height:1.035;letter-spacing:-3.7px;font-weight:800;margin:0 0 25px;max-width:680px}.orange{color:var(--orange)}.hero-description{font-size:16px;line-height:1.6;margin:0 0 27px;color:#62595e;max-width:450px;min-height:52px}.hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.button{border-radius:7px;min-height:48px;padding:15px 21px;font-size:12px;display:inline-flex;align-items:center;justify-content:space-between;gap:23px;font-weight:500;transition:transform .25s var(--ease),background .25s}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#43383f;transform:translateY(-2px)}.button span{font-size:18px;line-height:1}.text-button{font-size:12px;background:transparent;padding:12px 0;display:flex;gap:11px;align-items:center}.text-button span{transition:transform .25s}.text-button:hover span{transform:translateX(5px)}.hero-footnote{font-size:12px;color:var(--muted);margin-top:41px;display:flex;gap:10px;align-items:center}.tiny-cross{font-size:19px;color:var(--ink)}.visual{position:relative;height:100%;min-height:455px;align-self:stretch;touch-action:pan-y}.canvas-wrap{position:absolute;inset:0 -20px 0 -35px;cursor:grab;touch-action:pan-y}.canvas-wrap:active{cursor:grabbing}.canvas-wrap canvas{display:block;width:100%;height:100%;position:relative;z-index:1}.logo-fallback{width:70%;position:absolute;left:15%;top:9%;height:78%;object-fit:contain;animation:fallback-float 7s ease-in-out infinite;filter:drop-shadow(18px 26px 8px #29212725)}.webgl-ready .logo-fallback{display:none}.visual-top,.visual-bottom{position:absolute;left:10%;right:2%;display:flex;justify-content:space-between;align-items:center;gap:15px;z-index:2;pointer-events:none;color:var(--muted);font-size:12px}.visual-top{top:39px}.visual-index{font-size:12px;letter-spacing:1px}.visual-bottom{bottom:34px}.drag-label{display:flex;align-items:center;gap:7px}.motion-toggle{pointer-events:auto;display:flex;align-items:center;gap:9px;background:transparent;color:var(--muted);font-size:12px;padding:8px 0 8px 10px}.pause-icon{font-size:14px;color:var(--ink)}.explore{padding-bottom:25px}.section-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:12px;letter-spacing:.15px}.section-hint{color:var(--muted);display:flex;gap:20px}.section-hint span{color:var(--ink);font-size:17px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;perspective:1000px}.service-card{text-align:left;border-radius:11px;min-height:166px;position:relative;overflow:hidden;padding:23px 24px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;transition:transform .55s var(--ease),box-shadow .55s;transform-style:preserve-3d}.service-card:hover{transform:translateY(-6px) rotateX(2deg);box-shadow:0 14px 25px #29212715}.service-card:active{transform:translateY(-2px)}.card-paper{background:#eae5dc}.card-lilac{background:var(--lilac)}.card-orange{background:var(--orange)}.card-ink{background:var(--ink);color:var(--paper)}.card-meta{font-size:12px;letter-spacing:.8px;text-transform:uppercase;position:relative;z-index:1;display:flex;align-items:center;gap:11px}.card-meta span:first-child{opacity:.6}.card-title{font-family:Bricolage,sans-serif;font-size:27px;font-weight:800;letter-spacing:-.85px;line-height:1.05;max-width:195px;position:relative;z-index:1}.card-arrow{position:absolute;right:17px;top:18px;width:27px;height:27px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:16px;opacity:.7;z-index:1}.card-art{position:absolute;right:-17px;bottom:-33px;width:55%;height:170px;transition:transform .8s var(--ease);z-index:0;pointer-events:none}.service-card:hover .card-art{transform:translate(-5px,-6px) rotate(-5deg)}.card-art svg{width:100%;height:100%;overflow:visible}.footer{min-height:64px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);gap:20px}.footer-divider{padding:0 10px;opacity:.5}.scene-controls{display:flex;align-items:center;gap:10px;font-size:12px}.scene-controls>span:first-child{color:var(--ink);font-weight:500}.count-divider{margin-right:12px;color:#9b9295}.scene-controls button{border:1px solid var(--line);background:transparent;border-radius:50%;width:29px;height:29px;font-size:15px;transition:background .2s}.scene-controls button:hover{background:var(--ink);color:var(--paper)}.concept-label{display:flex;align-items:center;gap:7px}.concept-label span{width:5px;height:5px;border-radius:50%;background:var(--muted)}.copy-enter{animation:copy-enter .65s var(--ease) both}.cards-enter .service-card{animation:card-enter .65s var(--ease) both}.cards-enter .service-card:nth-child(2){animation-delay:.07s}.cards-enter .service-card:nth-child(3){animation-delay:.14s}
dialog{border:0;color:var(--ink);padding:0;background:var(--paper);max-height:90svh;box-shadow:0 30px 100px #0003}dialog::backdrop{background:#29212780;backdrop-filter:blur(9px)}dialog[open]{animation:dialog-enter .4s var(--ease)}.dialog-close{position:absolute;top:17px;right:18px;border-radius:50%;width:35px;height:35px;font-size:25px;background:#f7f2e8dd;color:var(--ink);display:grid;place-items:center;z-index:3;line-height:1}.detail-dialog{width:min(880px,92vw);border-radius:19px;grid-template-columns:1fr 1fr}.detail-dialog[open]{display:grid}.detail-visual{min-height:440px;display:grid;place-items:center;position:relative;overflow:hidden}.detail-visual>svg{width:110%;height:360px;animation:detail-float 7s ease-in-out infinite}.detail-visual .concept-stamp{position:absolute;bottom:25px;left:28px;font-size:12px;letter-spacing:1px;text-transform:uppercase}.detail-copy{padding:60px 35px 40px}.detail-copy .eyebrow{margin-bottom:18px;font-size:12px}.detail-copy h2,.brief-intro h2{font-family:Bricolage,sans-serif;font-weight:800;font-size:43px;letter-spacing:-1.8px;line-height:1.03;margin:0 0 24px}.detail-copy>p:not(.eyebrow){font-size:14px;line-height:1.7;color:#62595e}.detail-copy ul{list-style:none;padding:0;margin:25px 0}.detail-copy li{font-size:12px;border-bottom:1px solid var(--line);padding:11px 0}.detail-copy li:before{content:'+';margin-right:12px;color:var(--orange)}.detail-copy .button{margin-top:10px}.brief-dialog{border-radius:19px;width:min(610px,94vw);padding:37px 42px}.brief-intro .eyebrow{font-size:12px;margin-bottom:18px}.brief-intro h2{font-size:47px;margin-bottom:13px}.brief-intro>p:last-child{color:var(--muted);font-size:13px;margin-bottom:26px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:flex;flex-direction:column;gap:8px;font-size:12px;margin-bottom:16px}label>span{color:var(--muted);display:contents}input,select,textarea{min-width:0;width:100%;border:1px solid #d8d0cb;border-radius:6px;padding:11px 12px;background:#ffffff60;color:var(--ink);font-size:12px;outline-offset:3px;outline-color:var(--ink)}textarea{resize:vertical;min-height:77px}input:focus,textarea:focus,select:focus{border-color:var(--ink)}.form-note{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 16px}.submit-button{width:100%}.form-status{font-size:12px;line-height:1.5;margin:10px 0 0}.form-status:empty{display:none}
@keyframes copy-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes card-enter{from{opacity:0;transform:translateY(18px) rotateX(-5deg)}to{opacity:1;transform:none}}@keyframes dialog-enter{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}@keyframes fallback-float{50%{transform:perspective(800px) rotateY(-17deg) rotateZ(-5deg) translateY(-10px)}}@keyframes detail-float{50%{transform:translateY(-9px) rotate(-2deg)}}
@media(min-width:1500px){.hero{min-height:520px}.hero-copy{padding-top:60px;padding-bottom:50px}.service-card{min-height:180px}.card-art{height:190px}}
@media(min-height:950px) and (min-width:900px){.hero{max-height:690px}.explore{padding-bottom:40px}.service-card{min-height:190px}.hero-copy{padding-top:55px;padding-bottom:55px}h1{font-size:72px}.visual-top{top:60px}.visual-bottom{bottom:60px}}
@media(max-width:1100px){.site-shell{padding:0 4%}.header{height:85px}.nav{gap:23px}.brand img{width:160px}.hero{min-height:460px}h1{font-size:61px;letter-spacing:-3px}.hero-actions{gap:12px}.hero-description{font-size:16px}.button{font-size:12px;padding:14px 16px;gap:18px}.text-button{font-size:12px}.hero-footnote{margin-top:30px}.visual-top{left:7%;font-size:12px;top:30px}.visual-bottom{left:7%;bottom:27px}.service-card{padding:20px;min-height:155px}.card-title{font-size:24px;max-width:160px}.card-art{width:56%;right:-22px}.card-meta{font-size:12px;gap:7px}.footer{font-size:12px}.footer-divider{padding:0 5px}}
@media(max-width:760px){.site-shell{padding:0 6%}.header{height:77px;gap:10px;flex-wrap:wrap}.brand{margin-left:-6px}.brand img{width:146px}.header-cta{padding:10px 15px;font-size:12px;gap:22px}.nav{position:absolute;top:77px;left:0;right:0;height:52px;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line)}.nav a{font-size:12px;padding:12px 0}.nav a[aria-current=page]:after{bottom:3px}.hero{margin-top:52px;grid-template-columns:1fr;gap:0;min-height:0}.hero-copy{padding:35px 0 0}.eyebrow{font-size:12px;margin-bottom:22px}h1{font-size:clamp(42px,10.8vw,70px);letter-spacing:-2.3px;margin-bottom:20px}.hero-description{font-size:16px;line-height:1.6;margin-bottom:20px;min-height:42px}.hero-actions{gap:20px}.button{min-height:44px;font-size:12px;padding:13px 16px}.text-button{font-size:12px}.hero-footnote{display:none}.visual{height:290px;min-height:290px;margin:0 -3%}.canvas-wrap{inset:-12px -3% -5px}.visual-top{top:19px;left:auto;right:0}.visual-top>span:first-child{display:none}.visual-bottom{bottom:7px;left:0;right:0;font-size:12px}.motion-toggle{font-size:12px}.explore{padding-top:18px;padding-bottom:25px}.section-label{font-size:12px;margin-bottom:12px}.section-hint{font-size:12px;gap:8px}.card-grid{gap:9px}.service-card{min-height:148px;padding:16px 12px;border-radius:9px}.card-meta{font-size:12px;letter-spacing:.3px;gap:4px}.card-meta span:first-child{display:none}.card-title{font-size:19px;letter-spacing:-.6px;max-width:120px;margin-bottom:0}.card-arrow{width:21px;height:21px;right:10px;top:42px;font-size:13px}.card-art{width:100%;right:-25px;bottom:0;height:120px;opacity:.28}.footer{flex-wrap:wrap;min-height:77px;gap:10px;padding:15px 0;justify-content:space-between}.company{max-width:65%;line-height:1.6;font-size:12px}.footer-divider{display:none}.company .footer-divider:after{content:' '}.company{display:flex;flex-direction:column}.concept-label{display:none}.scene-controls{gap:8px}.scene-controls button{width:28px;height:28px}.detail-dialog[open]{grid-template-columns:1fr}.detail-visual{min-height:220px;height:220px}.detail-visual>svg{height:220px;width:80%}.detail-visual .concept-stamp{bottom:14px;left:20px;font-size:12px}.detail-copy{padding:25px}.detail-copy h2{font-size:36px;margin-bottom:15px}.detail-copy .eyebrow{margin-bottom:14px}.detail-copy ul{margin:16px 0}.brief-dialog{padding:32px 24px}.brief-intro h2{font-size:42px}.form-row{gap:12px}.form-note{font-size:12px}}
@media(max-width:380px){.hero-actions{gap:8px}.text-button{font-size:12px}.button{font-size:12px;gap:13px}.card-title{font-size:17px}.section-hint{display:none}.form-row{grid-template-columns:1fr;gap:0}.visual{height:260px;min-height:260px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.service-card:hover{transform:none}.service-card:hover .card-art{transform:none}}
body.motion-paused .logo-fallback,body.motion-paused .detail-visual>svg{animation-play-state:paused}
@media(max-height:850px) and (min-width:761px){.header{height:80px}.hero{min-height:370px}.hero-copy{padding-top:24px;padding-bottom:24px}.eyebrow{margin-bottom:21px}h1{font-size:clamp(48px,4.8vw,68px);margin-bottom:19px}.hero-description{margin-bottom:22px;font-size:16px;min-height:45px}.hero-footnote{display:none}.visual{min-height:370px}.visual-top{top:25px}.visual-bottom{bottom:20px}.service-card{min-height:140px}.card-art{height:150px;bottom:-40px}.card-title{font-size:25px}.explore{padding-bottom:21px}.footer{min-height:57px}}

/* Continuous document scrolling; animation stays on the cards and objects. */
.header{position:sticky;top:0;background:rgba(247,242,232,.94);backdrop-filter:blur(16px);z-index:10}
.page-section{display:flex;flex-direction:column;min-height:calc(100svh - 99px);padding:18px 0 38px;scroll-margin-top:0}
.page-section+.page-section{border-top:1px solid var(--line);padding-top:30px}
.page-section .hero{flex:1;max-height:none}
.scene-title{font-family:Bricolage,Arial,sans-serif;font-size:clamp(48px,5.15vw,72px);line-height:1.035;letter-spacing:-3.7px;font-weight:800;margin:0 0 25px;max-width:680px}
.scroll-cue{display:flex;justify-content:center;align-items:center;gap:13px;font-size:12px;color:var(--muted);padding:12px 0 0;align-self:center}
.scroll-cue span{font-size:20px;transition:transform .25s}.scroll-cue:hover span{transform:translateY(4px)}
.illustration-fallback{position:absolute;inset:8% 9% 9%;display:grid;place-items:center}.illustration-fallback svg{width:100%;height:100%}
.model-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.has-poster .model-fallback,.webgl-ready .model-fallback,.webgl-ready .model-poster{display:none}
.canvas-wrap:not(.webgl-ready){cursor:default}
.cards-enter .service-card{animation-fill-mode:backwards}
@media(max-width:1100px){.scene-title{font-size:61px;letter-spacing:-3px}html{scroll-padding-top:100px}.page-section{min-height:calc(100svh - 85px)}}
@media(max-height:850px) and (min-width:761px){.scene-title{font-size:clamp(48px,4.8vw,68px);margin-bottom:19px}.page-section{min-height:calc(100svh - 80px);padding-top:10px;padding-bottom:28px}.page-section+.page-section{padding-top:25px}html{scroll-padding-top:90px}}
@media(max-width:760px){
 html{scroll-padding-top:145px}
 .header{height:129px;align-items:flex-start;padding-top:18px}
 .nav{top:77px;background:var(--paper)}
 .page-section{min-height:0;padding-top:0;padding-bottom:32px}
 .page-section+.page-section{padding-top:12px}
 .page-section .hero{margin-top:0}
 .page-section .hero-copy{padding-top:32px}
 .scene-title{font-size:clamp(42px,10.8vw,70px);letter-spacing:-2.3px;margin-bottom:20px}
 .page-section .visual{margin-top:8px}
 .section-label{gap:15px;align-items:flex-start}
 .section-hint{display:none}
 .scroll-cue{padding-top:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.project-art{display:block;width:100%;height:100%;object-fit:contain}
.detail-visual>.project-art{height:390px;width:95%;animation:detail-float 7s ease-in-out infinite}
.illustration-fallback>.project-art{height:100%;width:100%}
body.motion-paused .detail-visual>.project-art{animation-play-state:paused}
@media(max-width:760px){.detail-visual>.project-art{height:210px}}

/* Scroll-driven chapters: the stage holds while its contents animate. */
html{scroll-padding-top:calc(var(--header-height,99px) + 12px)}
.reading-progress{position:fixed;left:0;top:0;width:100%;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;z-index:50;pointer-events:none}
.story-frame{position:relative;display:flex;flex-direction:column;isolation:isolate}
.story-frame:before{content:'';position:absolute;z-index:-1;inset:10% -2% 15% 38%;border-radius:50%;background:radial-gradient(ellipse,#c9b8ff80,transparent 68%);opacity:var(--wash-opacity,0);pointer-events:none}
[data-section=production] .story-frame:before{background:radial-gradient(ellipse,#ff693b55,transparent 68%)}
.hero-copy{transform:translate3d(0,var(--copy-y,0px),0);opacity:var(--copy-opacity,1);will-change:transform}
.title-line{display:block;overflow:hidden;padding-bottom:.07em;margin-bottom:-.07em}
.title-line>span{display:block;transform:translate3d(0,calc(var(--line-shift,0px) * (1 + var(--line,0) * .3)),0);will-change:transform}
.visual{transform:translate3d(0,var(--visual-y,0px),0);will-change:transform}
.scroll-card{min-width:0;transform:translate3d(0,var(--card-y,0px),0) rotate(var(--card-turn,0deg));opacity:var(--card-opacity,1);will-change:transform}
.scroll-card>.service-card{width:100%;height:100%}
.object-scroll-track{height:2px;width:52px;background:var(--line);position:relative;flex-shrink:0;overflow:hidden}
.object-scroll-track:after{content:'';position:absolute;inset:0;background:var(--orange);transform:scaleX(var(--chapter-progress,0));transform-origin:left}
.model-fallback,.model-poster{transform:perspective(900px) rotateY(var(--fallback-turn,0deg)) scale(var(--fallback-scale,1));transform-origin:50% 50%}
@media(min-width:761px) and (min-height:650px) and (prefers-reduced-motion:no-preference){
 .page-section,.page-section+.page-section{height:165svh;min-height:0;padding:0;border:0;position:relative}
 .story-frame{position:sticky;top:var(--header-height,99px);height:calc(100svh - var(--header-height,99px));padding:12px 0 22px;overflow:visible}
 .page-section+.page-section .story-frame{border-top:1px solid var(--line)}
 .story-frame .hero{min-height:0;flex:1;align-items:center}
 .story-frame .visual{min-height:0;height:100%}
 .story-frame .hero-copy{padding-top:22px;padding-bottom:22px}
 .story-frame .explore{padding-bottom:8px}
 .story-frame .scroll-cue{padding-top:0;margin-top:4px;font-size:12px}
 .story-frame .hero-footnote{margin-top:24px}
}
@media(max-width:760px),(max-height:649px){
 .page-section{height:auto}
 .story-frame{height:auto;position:relative}
 .object-scroll-track{width:36px}
 .story-frame:before{inset:20% -2% 25% 0}
}
body.motion-paused .hero-copy,body.motion-paused .visual,body.motion-paused .title-line>span,body.motion-paused .scroll-card,body.motion-paused .model-fallback,body.motion-paused .model-poster{transform:none!important;opacity:1!important}
@media(prefers-reduced-motion:reduce){
 .hero-copy,.visual,.title-line>span,.scroll-card,.model-fallback,.model-poster{transform:none!important;opacity:1!important;will-change:auto}
 .story-frame:before{display:none}
}
.model-fallback{animation:none}
