
:root{--bg:#000;--ink:#f5f5f5;--soft:#a0a0a0;--accent:#fff;--line:#292929}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #fff;outline-offset:5px}::selection{background:#fff;color:#000}.skip{position:fixed;top:-80px;left:20px;padding:15px;background:white;color:black;z-index:99}.skip:focus{top:12px}.navigation{height:80px;position:absolute;top:15px;left:4%;right:4%;z-index:10;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #222;padding:0 0 10px}.wordmark img{display:block;width:100px;height:auto}.navigation nav{display:flex;gap:32px;font-size:14px}.navigation a:hover{color:#bfbfbf}.designer{font-size:13px;color:#aaa}.kicker{font-size:11px;letter-spacing:.1em;color:#aaa}h2{font-size:clamp(36px,4.8vw,68px);font-weight:500;line-height:1.06;letter-spacing:-.045em;margin:0}h2 em{font-style:normal;color:#fff}.opening-anchor{position:absolute;top:0;left:0}.assembly-scroll{height:330svh;position:relative;background:#000}.assembly-sticky{position:sticky;top:0;min-height:650px;height:100svh;padding:125px 6% 24px;display:flex;flex-direction:column}.assembly-heading{display:flex;justify-content:space-between;align-items:end;gap:50px}.title-intro{flex:1}.assembly-heading h1{margin:22px 0 17px;line-height:1}.assembly-heading h1 img{display:block;width:min(57vw,780px);height:auto;max-width:100%}.assembly-heading .project-subtitle{font-size:21px;letter-spacing:-.02em;margin:0;color:#ddd}.project-brief{max-width:250px;padding-bottom:4px}.project-brief p{font-size:25px;line-height:1.25;letter-spacing:-.03em;margin:0 0 22px}.project-brief span{font-size:10px;line-height:1.7;color:#929292;letter-spacing:.08em}.assembly-stage{position:relative;flex:1;min-height:300px;margin-top:16px;background:transparent;border:0;border-radius:0;overflow:visible}#model-canvas{position:absolute;inset:0}#model-canvas canvas{display:block;width:100%;height:100%;touch-action:pan-y!important}.opening-poster{position:absolute;inset:10%;width:80%;height:80%;object-fit:contain;pointer-events:none}.assembly-stage[data-ready=true]>.opening-poster,.assembly-stage[data-failed]>.opening-poster{display:none}.assembly-state{position:absolute;bottom:20px;left:0;font-size:11px;color:#8d8d8d;pointer-events:none}.orbit-tools{position:absolute;right:0;bottom:10px;display:flex;gap:10px}.orbit-tools button{border:0;background:none;color:#aaa;padding:10px 6px;font-size:12px}.orbit-tools button:hover{color:#fff}.orbit-tools button:disabled{opacity:.4}.drag-hint{position:absolute;top:20px;right:0;font-size:9px;letter-spacing:.08em;color:#626262;pointer-events:none}.assembly-footer{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:8px}.assembly-footer button{border:0;background:none;color:#aaa;font-size:12px;padding:8px 10px}.assembly-track{width:170px;height:2px;background:#2a2a2a;overflow:hidden}.assembly-track i{display:block;width:0;height:100%;background:#fff}.assembly-note{text-align:center;font-size:10px;color:#929292;margin:7px 0 0}#model-status{position:absolute;inset:0;display:grid;place-items:center;color:#aaa;font-size:14px;padding:30px}#model-status[hidden]{display:none}.opening{padding:120px 9%;display:flex;gap:80px;align-items:center;justify-content:space-between;border-top:1px solid #181818}.opening-line{font-size:clamp(27px,3.4vw,46px);font-weight:500;letter-spacing:-.04em;line-height:1.2;max-width:650px;margin:0}.opening-line span{color:#7c7c7c}.opening-aside{flex-shrink:0}.measure{font-size:64px;letter-spacing:-.06em;color:#fff;font-weight:500}.measure small{font-size:23px}.opening-aside p{font-size:14px;line-height:1.7;color:#999;margin:10px 0 0}.gesture-scroll{height:340svh;background:#000}.gesture-sticky{position:sticky;top:0;height:100svh;min-height:650px;padding:60px 6% 35px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.chapter-heading{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.1em;color:#929292}.gesture-layout{display:grid;grid-template-columns:.85fr 1.25fr;gap:6%;align-items:center;flex:1;min-height:0}.gesture-copy{height:360px;position:relative}.gesture-text{position:absolute;inset:0;will-change:transform,opacity}.gesture-text h2{font-size:clamp(36px,4.2vw,62px)}.gesture-text p{font-size:17px;line-height:1.65;color:#a5a5a5;max-width:365px;margin:25px 0 0}.mini-number{display:block;color:#777;font-size:12px;margin-bottom:25px}.gesture-visual{position:relative;width:100%;aspect-ratio:1.75}.gesture-frame{position:absolute;inset:0;margin:0;overflow:visible;border:0;border-radius:0;background:transparent;will-change:transform,opacity}.gesture-frame img{display:block;width:100%;height:100%;object-fit:contain;padding:0;transform:none;border-radius:0}.gesture-frame:not(:first-child),.gesture-text:not(:first-child){opacity:0}.gesture-frame:not(:first-child){pointer-events:none}.gesture-footer{display:flex;gap:40px;align-items:center;justify-content:space-between;color:#777;font-size:10px;letter-spacing:.1em}.story-track{height:2px;background:#222;width:180px;overflow:hidden}.story-track i{display:block;height:100%;width:0;background:#eee}.sketch-section{padding:140px 9%;display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.sketch-image{overflow:visible;background:none;border:0;transform:none;border-radius:0}.sketch-image img{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;border-radius:0}.sketch-copy h2{font-size:clamp(33px,4.1vw,57px);margin:25px 0}.sketch-copy p{font-size:17px;line-height:1.7;color:#aaa;max-width:420px}.contexts-scroll{height:290svh;background:#000}.contexts-sticky{position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden;padding:50px 0 30px;display:flex;flex-direction:column;justify-content:center}.contexts-heading{padding:0 7%;display:flex;align-items:end;justify-content:space-between;gap:25px}.contexts-heading h2{font-size:clamp(32px,4vw,58px);margin-top:20px}.contexts-heading p{font-size:12px;color:#999;margin:0}.contexts-window{width:100%;margin-top:35px;overflow:hidden}.contexts-strip{display:flex;gap:35px;padding:0 7%;width:max-content;will-change:transform}.context-card{width:min(66vw,960px);margin:0;flex-shrink:0}.context-card img{display:block;width:100%;height:auto;object-fit:contain;border-radius:24px;background:none}.context-card figcaption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 6px 0}.context-card figcaption>span{font-size:25px;letter-spacing:-.025em;color:#ddd}.context-card small{font-size:10px;letter-spacing:.1em;color:#888}.contexts-progress{width:180px;height:2px;background:#222;margin:30px auto 0;overflow:hidden}.contexts-progress i{display:block;height:100%;width:0;background:#eee}footer{padding:100px 7% 45px;background:#000;color:#fff;border-top:1px solid #222}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:50px}.footer-logo img{width:270px;max-width:100%;height:auto;display:block}.footer-main>p{font-size:28px;line-height:1.2;letter-spacing:-.04em}.top-link{border:1px solid #555;border-radius:30px;padding:15px 22px;font-size:13px}.credits{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:40px;margin-top:75px;padding-top:30px;border-top:1px solid #222}.credits span{font-size:9px;letter-spacing:.12em;color:#777}.credits p{font-size:13px;line-height:1.7;color:#bbb;margin:12px 0 0}.reveal{opacity:0;transform:translateY(35px);transition:opacity 1s,transform 1s}.reveal.visible{opacity:1;transform:none}.zoom-image{display:block;padding:0;border:0;background:none;width:100%;height:100%;border-radius:0;color:inherit;cursor:zoom-in}.context-card .zoom-image{height:auto}.zoom-image:focus-visible{outline-offset:0}dialog{border:0;padding:0;background:none;color:#ddd;width:fit-content;max-width:94vw;max-height:96svh;overflow:visible;text-align:center}dialog::backdrop{background:#000b;backdrop-filter:blur(16px)}#dialog-image{display:block;width:auto;max-width:92vw;max-height:80svh;object-fit:contain;border-radius:0}#dialog-caption{font-size:13px;line-height:1.5;max-width:80vw;margin:18px auto 0;color:#aaa}.close-dialog{position:absolute;z-index:2;top:16px;right:16px;background:#191919df;border:1px solid #555;color:#fff;border-radius:30px;padding:11px 19px;font-size:12px}
@media(max-width:1000px){.assembly-heading{gap:25px}.project-brief{max-width:200px}.project-brief p{font-size:21px}.opening{gap:35px;padding:90px 7%}.opening-aside p{font-size:12px}.gesture-layout{gap:4%;grid-template-columns:1fr 1.1fr}.gesture-copy{height:400px}.gesture-text p{font-size:16px}.context-card{width:74vw}.footer-main{gap:30px}.footer-logo img{width:220px}.footer-main>p{font-size:23px}}
@media(max-width:700px){.navigation{top:12px;left:5%;right:5%;height:65px;padding:0 0 10px}.wordmark img{width:72px}.navigation nav{gap:17px;font-size:12px}.designer{display:none}.assembly-sticky{padding:98px 5% 22px;min-height:0}.assembly-heading{display:block}.assembly-heading h1{margin:19px 0 15px}.assembly-heading h1 img{width:100%;max-width:370px}.assembly-heading .kicker{font-size:9px}.assembly-heading .project-subtitle{font-size:18px}.project-brief{max-width:none;margin-top:15px}.project-brief p{font-size:15px;line-height:1.5;margin:0 0 8px}.project-brief p br{display:none}.project-brief span{font-size:8px}.assembly-stage{min-height:230px;margin-top:6px}.assembly-state{left:0;bottom:52px;font-size:10px}.orbit-tools{right:0;bottom:7px;gap:8px}.orbit-tools button{font-size:10px;padding:10px 6px}.drag-hint{top:14px;right:0;font-size:7px}.assembly-footer{gap:15px;margin-top:8px}.assembly-track{width:130px}.assembly-footer button{font-size:11px}.assembly-note{font-size:9px;margin-top:3px}.opening{display:block;padding:65px 7% 80px}.opening-line{font-size:31px}.opening-aside{display:flex;align-items:center;gap:25px;margin-top:35px}.measure{font-size:52px;white-space:nowrap}.measure small{font-size:19px}.opening-aside p{margin:0;font-size:12px}.gesture-sticky{padding:28px 6% 25px;min-height:0}.chapter-heading{font-size:9px}.gesture-layout{display:flex;flex-direction:column;align-items:stretch;gap:20px;justify-content:center}.gesture-copy{height:300px;flex-shrink:0}.mini-number{font-size:10px;margin-bottom:15px}.gesture-text h2{font-size:38px}.gesture-text p{font-size:15px;line-height:1.6;max-width:330px;margin-top:19px}.gesture-visual{aspect-ratio:1.75;flex-shrink:0}.gesture-footer{font-size:8px;gap:20px}.story-track{width:90px}.sketch-section{display:flex;flex-direction:column;padding:90px 8%;gap:45px}.sketch-image{width:100%}.sketch-copy .kicker{font-size:9px}.sketch-copy h2{font-size:39px}.sketch-copy p{font-size:16px}.contexts-scroll{height:260svh}.contexts-sticky{min-height:0;justify-content:center;padding:35px 0}.contexts-heading{display:block}.contexts-heading h2{font-size:35px;margin-top:18px}.contexts-heading p{font-size:11px;margin-top:20px}.contexts-heading .kicker{font-size:9px}.contexts-strip{gap:20px;padding:0 7vw}.context-card{width:86vw}.context-card img{border-radius:18px}.context-card figcaption{padding-top:18px;align-items:start}.context-card figcaption>span{font-size:21px}.context-card small{font-size:8px;line-height:1.6;max-width:85px;text-align:right}.contexts-progress{margin-top:35px;width:130px}footer{padding:65px 7% 35px}.footer-main{flex-wrap:wrap;gap:25px}.footer-logo img{width:220px}.footer-main>p{font-size:22px;margin:0}.top-link{font-size:12px;padding:13px 20px;margin-top:10px}.credits{grid-template-columns:1fr;gap:23px;margin-top:45px;padding-top:25px}.credits p{margin-top:8px;font-size:12px}.close-dialog{top:10px;right:10px;padding:9px 13px;font-size:11px}#dialog-caption{font-size:12px;max-width:90vw}}
@media(max-height:710px) and (max-width:700px){.assembly-sticky{padding-top:86px}.assembly-heading h1{margin:12px 0 10px}.assembly-heading h1 img{max-width:280px}.project-brief{margin-top:8px}.project-brief p{font-size:13px}.assembly-stage{min-height:180px}.gesture-copy{height:270px}.gesture-text h2{font-size:32px}.gesture-text p{font-size:14px}.gesture-layout{gap:5px}.gesture-visual{max-height:195px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}.reveal{opacity:1;transform:none}.gesture-scroll,.contexts-scroll{height:auto}.gesture-sticky,.contexts-sticky{position:static;height:auto;min-height:0}.gesture-layout{display:block;padding:40px 0}.gesture-copy{height:auto}.gesture-text{position:static!important;opacity:1!important;transform:none!important;margin-bottom:35px}.gesture-visual{display:grid;gap:20px;aspect-ratio:auto}.gesture-frame{position:static!important;opacity:1!important;transform:none!important;aspect-ratio:1.75;pointer-events:auto!important}.contexts-window{overflow:visible}.contexts-strip{width:auto;display:grid;transform:none!important;gap:35px}.context-card{width:100%}.contexts-progress,.gesture-footer{display:none}.assembly-scroll{height:auto}.assembly-sticky{height:100svh;min-height:760px;position:static}.contexts-sticky{padding-top:65px;padding-bottom:65px}}
/* Keep the horizontal photo sequence on a shared visual baseline, without cropping. */
.context-card{width:auto}.context-card .zoom-image{width:auto;height:auto}.context-card img{width:auto;height:clamp(240px,43svh,520px);max-width:none;object-fit:contain}.context-card figcaption{min-height:55px}.context-card figcaption>span{white-space:nowrap}
@media(max-width:700px){.context-card img{height:calc(86vw / 1.78)}.context-card figcaption{gap:12px;min-height:52px}.context-card figcaption>span{font-size:18px}}
@media(prefers-reduced-motion:reduce){.context-card{width:100%}.context-card .zoom-image{width:100%;display:flex;justify-content:flex-start}.context-card img{max-width:100%;height:auto;width:auto;max-height:520px}.context-card figcaption>span{white-space:normal}}
.gesture-sticky{padding-top:108px}.contexts-sticky{padding-top:105px}.sketch-image img{max-height:650px;object-fit:contain;width:100%;height:auto}
@media(max-width:700px){.assembly-sticky{padding-top:125px}.gesture-sticky{padding-top:127px}.contexts-sticky{padding-top:125px}.gesture-copy{height:265px}.gesture-layout{gap:18px}}
@media(max-height:710px) and (max-width:700px){.assembly-sticky{padding-top:118px}.gesture-sticky{padding-top:119px}.gesture-copy{height:230px}.gesture-text h2{font-size:29px}.gesture-text p{font-size:13px;line-height:1.45}.gesture-layout{gap:8px}.gesture-visual{max-height:155px}}
