@font-face{font-family:'Space Mono';src:url('assets/SpaceMono-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'Space Mono';src:url('assets/SpaceMono-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--mono:'Space Mono',Consolas,monospace}body,h1,h2,h3,h4,button,.brand-mark,.serif,.project-card h3,.project-card:last-child:nth-child(odd) h3{font-family:var(--mono)}h1,h2,h3,h4,.serif{font-weight:700;letter-spacing:-.06em}.hero-copy h1{font-size:clamp(48px,5.6vw,86px);letter-spacing:-.075em}.hero-copy p{font-size:15px}.section-heading h2{font-size:clamp(40px,5.4vw,72px)}.project-card .project-heading h3,.project-card:last-child:nth-child(odd) h3{font-family:var(--mono);font-size:clamp(28px,3.3vw,46px);max-width:1000px;font-weight:700;letter-spacing:-.065em}.brand-mark{font-size:32px;letter-spacing:-5px}.small-plus{font-size:18px;letter-spacing:-1px}.brand-name{font-size:8px}.hero .eyebrow,.project-kicker{letter-spacing:.04em}header nav{gap:24px;font-size:11px}#theme-toggle{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:30px;padding:9px 13px;font-size:13px}#theme-toggle span{font-size:10px}.project-heading{top:4%;pointer-events:none}.project-heading .project-stage{font-size:10px;margin-top:11px}.project-visual{inset:19% 3% 13%;perspective:1400px}.visual-object{filter:none!important;transform:translateY(var(--scene-y)) scale(calc(.96 + (var(--scene-progress) * .04))) rotateX(calc(var(--scene-progress) * -2deg));opacity:var(--scene-fade);will-change:transform,opacity}.visual-object:has(.webgl-host){transform:none!important}.scene-aura{display:none}.scene-caption{font-size:clamp(34px,4.7vw,66px);font-family:var(--mono)}.project-footer{bottom:65px}.visual-caption{font-size:8px;max-width:350px;letter-spacing:.04em}.project-card,.project-card:nth-child(n){--scene-bg:#11141a;--scene-ink:#f0f2f8;--scene-sub:#94a1b5;background:var(--scene-bg)}.project-card:nth-child(even){--scene-bg:#0d1016}.project-card:nth-child(4){--scene-bg:#111820}.project-open{background:#282e3acc;color:#f5f7fc;border:1px solid #ffffff15;box-shadow:0 6px 30px #0004}.project-open span{background:#87b4ff;color:#102442}.scene-progress:after{background:#8db7ff}.webgl-host{position:relative;width:100%;height:100%;min-height:280px}.scene-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y;outline-offset:-4px!important}.scene-canvas.dragging{cursor:grabbing}.scene-instructions{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:.1em;color:#8b99ad;pointer-events:none;white-space:nowrap}.scene-instructions span{padding:0 12px;color:#b9c9e1}.reset-scene{position:absolute;right:2%;bottom:0;font-size:9px;color:#adbad0;border:1px solid #ffffff19;padding:8px 12px;border-radius:20px;background:#101621a0}.scene-loading,.scene-unavailable{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:20px;font-size:11px;color:#b2c1d9;text-align:center}.scene-loading[hidden],.scene-unavailable[hidden]{display:none}.loading-orbit{height:50px;width:50px;border-radius:50%;border:1px solid #7391bd;border-top:2px solid #d2e0f7;animation:loading 2s linear infinite}@keyframes loading{to{transform:rotate(360deg)}}
/* Actual application captures, presented in a dimensional display enclosure. */
.studio-showcase{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.screen-device{width:min(960px,88%);transform:rotateY(-7deg) rotateX(3deg);transform-style:preserve-3d;filter:drop-shadow(0 25px 25px #0007)}.screen-bezel{position:relative;padding:15px 9px 10px;background:linear-gradient(145deg,#626772,#15191f 15%,#252b34 75%,#6c7580);border:1px solid #727b8c;border-radius:15px;box-shadow:inset 0 0 0 3px #080b10,6px 4px 0 #12151b,7px 5px 0 #6b737e}.screen-bezel img{display:block;width:100%;height:auto;border-radius:4px}.camera-dot{position:absolute;top:5px;left:50%;height:4px;width:4px;border-radius:50%;background:#14293e;box-shadow:0 0 0 1px #000}.device-base{width:104%;height:12px;margin-left:-2%;background:linear-gradient(#c4cbd4,#646f7e 35%,#181e27);border-radius:0 0 50% 50%;transform:translateY(-2px)}.preview-controls{display:flex;align-items:center;gap:5px;border-radius:30px;background:#202733;border:1px solid #ffffff12;padding:4px}.preview-controls button{border-radius:22px;font-size:10px;color:#a5b4ca;padding:8px 16px}.preview-controls button.selected{background:#b5cfff;color:#0b1931}.preview-controls .expand-preview{border-left:1px solid #ffffff15;border-radius:0;margin-left:5px;padding-left:15px}.preview-controls button:hover{color:#fff}.preview-controls button.selected:hover{color:#0b1931}
/* Concept UI: every example is explicitly labelled and uses local scripted state. */
.ui-window{border-radius:13px;border:1px solid #526077;background:#131a25;box-shadow:0 30px 65px #0007,4px 3px 0 #070a10,5px 4px 0 #344154;overflow:hidden;color:#d6e0ef;font-family:var(--mono)}.window-chrome{height:39px;border-bottom:1px solid #ffffff10;background:linear-gradient(#2a3342,#202936);display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:15px;color:#9aabc3;font-size:9px}.window-lights{display:flex;gap:6px}.window-lights i{width:7px;height:7px;border-radius:50%;background:#5c6a7f}.window-lights i:first-child{background:#b88f8e}.window-lights i:nth-child(2){background:#bcad82}.window-lights i:nth-child(3){background:#83a797}.window-state{font-size:7px;letter-spacing:.1em}.ui-overline{font-size:8px;letter-spacing:.12em;color:#7d95b5}.ui-window h4{font-size:27px;font-weight:400;line-height:1.25;letter-spacing:-.06em;margin:11px 0 20px}.cabin-preview{height:100%;display:flex;align-items:center;justify-content:center;gap:45px;perspective:1200px}.phone-device{width:220px;height:425px;flex-shrink:0;border-radius:34px;padding:7px;background:linear-gradient(140deg,#a1a7b3,#1c232d 15%,#080b10 80%,#727d8b);border:1px solid #99a5b8;box-shadow:5px 3px 0 #05080d,6px 4px 0 #606b7a,0 25px 40px #0008;transform:rotateY(12deg) rotateZ(-3deg);position:relative}.phone-camera{position:absolute;top:14px;width:63px;height:16px;border-radius:14px;background:#070a0f;left:50%;transform:translateX(-50%);z-index:2}.phone-content{height:100%;padding:13px 16px;background:linear-gradient(150deg,#142b3d,#0b1424 65%);border-radius:27px;overflow:hidden}.phone-status{font-size:7px;display:flex;justify-content:space-between;color:#c2d3e9}.cabin-brand{font-size:15px;color:#e5f2ff;margin-top:28px;margin-bottom:8px;letter-spacing:-1px}.cabin-brand span{font-size:7px;color:#8fd6c7;padding-left:4px}.phone-content .ui-overline{font-size:6px}.phone-content h4{font-size:20px;line-height:1.2;letter-spacing:-1.2px;color:#f3f7fd;margin:11px 0}.seat-chip{padding:7px 9px;background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;font-size:8px;display:flex;justify-content:space-between;color:#d0e4ff}.seat-chip span{font-size:6px;color:#7c94b4}.request-illustration{position:relative;height:66px;display:grid;place-items:center;font-size:31px;color:#98d8dc}.request-ring{position:absolute;inset:9px 60px;border:1px solid #98d8dc30;border-radius:50%}.phone-content p{font-size:8px;line-height:1.5;min-height:27px;color:#aebed2;margin:0}.phone-actions{display:flex;gap:5px;margin-top:8px}.phone-actions button{font-size:7px;background:#ffffff09;border:1px solid #ffffff15;padding:10px 9px;border-radius:7px;color:#bbcce3;flex:1;display:flex;justify-content:space-between}.phone-actions button.selected{background:#9bcfc9;color:#0d292b}.phone-content small{font-size:5px;color:#718ba9;display:block;margin-top:13px}.crew-device{width:475px;transform:rotateY(-8deg) rotateX(2deg)}.crew-body{padding:24px}.crew-summary{display:flex;gap:36px;margin:0 0 21px}.crew-summary>div{display:flex;flex-direction:column;gap:5px}.crew-summary strong{font-size:24px;color:#d3e6ff;font-weight:400}.crew-summary span{font-size:7px;color:#7890ae}.seat-map{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;max-width:220px;margin:0 auto 20px}.seat-map i{height:13px;background:#3d4b602e;border:1px solid #8097b033;border-radius:3px}.seat-map i:nth-child(6n+3){margin-right:8px}.seat-map .seat-selected{background:#a7dcd0;border-color:#d1fff0;box-shadow:0 0 13px #97efcf22}.crew-request{display:flex;align-items:center;gap:13px;padding:12px;border:1px solid #89b2ac44;background:#638d9020;border-radius:7px}.request-icon{color:#9acbc2;font-size:24px}.crew-request b{font-size:10px;font-weight:400;display:block}.crew-request small{display:block;font-size:7px;color:#86a49f;margin-top:6px}.crew-request>span:last-child{margin-left:auto}#ack-request{display:block;margin:13px 0 0 auto;color:#a9d5d4;font-size:8px}
.assistant-preview{height:100%;display:flex;align-items:center;justify-content:center;perspective:1400px}.assistant-preview>.ui-window{width:min(900px,94%);transform:rotateY(-5deg) rotateX(2deg)}.assistant-layout{display:grid;grid-template-columns:195px 1fr}.assistant-layout aside{border-right:1px solid #ffffff0b;padding:23px 20px;background:#0e1520}.assistant-layout aside b{font-size:10px;display:block;margin:15px 0 30px;line-height:1.6}.assistant-layout aside>span,.assistant-layout aside>em{display:block;font-size:8px;font-style:normal;color:#899bb5;margin-top:14px}.assistant-layout aside>em{font-size:7px;color:#90bfac;margin-top:7px}.assistant-layout aside>.pending{color:#c2ac7d}.context-file{font-size:8px;line-height:1.7;color:#a6bddb;margin-top:35px}.context-file small{font-size:6px;color:#627e9e}.assistant-chat{padding:23px 26px}.assistant-chat h4{font-size:24px;margin-bottom:20px}.user-bubble{padding:12px 15px;background:#263246;border-radius:10px 10px 2px 10px;font-size:9px;margin:0 0 20px auto;max-width:260px}.guide-response{display:flex;gap:12px}.guide-avatar{height:28px;width:28px;background:#263c58;color:#a9cfff;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px}.guide-avatar span{font-size:9px}.guide-response b{font-size:10px;font-weight:400}.guide-response p{font-size:8px;line-height:1.7;color:#8d9eb8;margin:8px 0 12px;max-width:440px}.evidence-card{padding:10px 12px;border:1px solid #6b8db733;border-radius:6px;background:#182738}.evidence-card span{font-size:6px;color:#7392bb;display:block;margin-bottom:6px}.evidence-card b{font-size:7px;color:#b0c3df}.guide-actions{display:flex;gap:8px;margin:16px 0 9px 40px}.guide-actions button,.corpus-tabs button{font-size:8px;padding:7px 10px;border:1px solid #ffffff15;border-radius:5px;color:#95a9c3}.guide-actions button.selected,.corpus-tabs button.selected{background:#294262;border-color:#5277a8;color:#c8e0ff}#guide-output{font-size:7px;line-height:1.6;color:#8a9fbf;margin-left:40px;max-width:440px;min-height:24px}.fake-input{border:1px solid #ffffff15;border-radius:9px;padding:12px 15px;color:#637896;font-size:8px;margin-top:15px;display:flex;justify-content:space-between}.fake-input span{color:#abc6e9}.concept-note{font-size:7px!important;color:#7187a5!important;line-height:1.5!important;margin-top:12px!important;display:block}.corpus-preview{display:flex;justify-content:center;align-items:center;height:100%;perspective:1200px}.corpus-preview>.ui-window{width:min(870px,94%);transform:rotateY(-6deg) rotateX(3deg)}.corpus-body{padding:27px 35px}.corpus-head{display:flex;align-items:center;justify-content:space-between}.corpus-head h4{font-size:29px}.schema-badge{font-size:7px;padding:7px 10px;border:1px solid #567294;border-radius:20px;color:#93b7e1}.corpus-tabs{display:flex;gap:8px;margin-bottom:18px}.corpus-table-row{display:grid;grid-template-columns:1fr 1.4fr 1.4fr;gap:15px;padding:14px 10px;border-bottom:1px solid #ffffff0b;font-size:9px;color:#a4b6cf}.corpus-table-row b,.corpus-table-row em{font-weight:400;font-style:normal}.corpus-table-row em{color:#7797bf;font-size:8px}.corpus-table-row.table-head{font-size:7px;color:#6785a8;background:#0d1622;padding-top:10px;padding-bottom:10px}.corpus-evidence{padding:17px 15px;margin-top:20px;border:1px solid #ffffff0b;border-radius:8px;background:linear-gradient(130deg,#1d2c42,#152033)}.corpus-evidence>span{font-size:7px;color:#7a9bbf}.corpus-evidence>div{font-size:9px;color:#aac3e3;margin-top:14px;display:flex;gap:12px;align-items:center}.corpus-evidence b{font-weight:400;color:#5c7a9c}.corpus-evidence i{width:5px;height:5px;border-radius:50%;background:#b8d6ff;box-shadow:0 0 8px #6aaaff}
#visual-dialog{width:min(1400px,96vw);padding:36px 20px 20px;max-height:96svh;background:#111720;color:#e7effb;border:1px solid #526078}#visual-dialog h2{font-size:15px;letter-spacing:-.03em}#visual-dialog p{font-size:9px;margin:9px 0 15px;color:#94a9c5}#visual-dialog img{width:100%;height:auto;display:block;border-radius:6px}.visual-close{position:absolute;right:15px;top:12px;color:#c3cde0;font-size:18px}.approach h2,.lab h2{font-size:clamp(35px,4vw,58px)}.contact h2{font-size:clamp(34px,4.7vw,67px)}.contact-bottom,.lab-copy p,.approach p{font-size:13px}.process-orbit text{font-family:var(--mono)}
@media(max-width:900px){.phone-device{transform:scale(.85) rotateY(8deg);margin-right:-25px}.cabin-preview{gap:15px}.crew-device{width:400px}.assistant-layout{grid-template-columns:150px 1fr}.assistant-layout aside{padding:20px 12px}.assistant-chat{padding:20px}.assistant-chat h4{font-size:21px}.project-visual{inset:20% 0 14%}.screen-device{width:95%}.project-card .project-heading h3,.project-card:last-child:nth-child(odd) h3{font-size:35px}.hero-copy h1{font-size:clamp(42px,6vw,70px)}}
@media(max-width:600px){header nav{gap:15px}#theme-toggle{padding:7px 9px;border:0}#theme-toggle span{display:none}.brand-mark{font-size:28px}.hero-copy h1{font-size:clamp(27px,7.7vw,43px);line-height:1.14}.hero-copy p{font-size:11px;padding:0 12px}.hero-copy{top:16%}.hero-art{top:39%}.section-heading h2{font-size:41px}.section-heading p{font-size:11px}.filters button{font-size:8px;padding:10px 8px}.project-heading{top:5%;left:7%;right:7%}.project-card .project-heading h3,.project-card:last-child:nth-child(odd) h3{font-size:27px;line-height:1.16}.project-kicker{font-size:7px}.project-heading .project-stage{font-size:8px}.project-visual{inset:20% -2% 17%}.visual-object{transform:translateY(0) scale(1)!important}.scene-caption{font-size:30px;top:40%}.visual-caption{max-width:150px;font-size:6px}.project-open,.project-card:last-child:nth-child(odd) .project-open{font-size:9px}.scene-instructions{font-size:5px;bottom:20px}.reset-scene{right:5%;bottom:-12px;font-size:7px;padding:6px 9px}.webgl-host{min-height:200px}.studio-showcase{gap:20px}.screen-device{width:96%;transform:none}.screen-bezel{padding:10px 5px 6px;border-radius:9px}.device-base{height:8px}.preview-controls{gap:0}.preview-controls button{font-size:7px;padding:7px 9px}.preview-controls .expand-preview{margin:0;padding-left:9px}.cabin-preview{transform:scale(.82);transform-origin:50% 50%;width:122%;margin-left:-11%;gap:8px}.phone-device{width:195px;height:410px;transform:rotateY(8deg);margin-right:0}.phone-content{padding:13px 12px}.crew-device{width:230px;transform:rotateY(-6deg);flex-shrink:0}.window-chrome{font-size:6px;padding:0 9px;height:28px;gap:6px}.window-state{display:none}.window-lights{gap:4px}.window-lights i{width:5px;height:5px}.crew-body{padding:16px 12px}.crew-body h4{font-size:21px}.crew-summary{gap:25px}.seat-map{gap:5px}.crew-request{padding:9px 7px;gap:7px}.crew-request b{font-size:8px}.crew-request small{font-size:6px;line-height:1.5}#ack-request{font-size:7px;text-align:left;line-height:1.7}.request-icon{font-size:18px}.assistant-preview>.ui-window{width:94%;transform:none}.assistant-layout{grid-template-columns:1fr}.assistant-layout aside{display:none}.assistant-chat{padding:17px}.assistant-chat h4{font-size:20px;margin-bottom:15px}.assistant-chat .user-bubble{font-size:8px;margin-bottom:15px}.guide-response p{font-size:7px}.guide-response b{font-size:8px}.guide-actions{margin-left:0}.guide-actions button{font-size:7px}#guide-output{margin-left:0}.corpus-preview>.ui-window{width:94%;transform:none}.corpus-body{padding:18px 15px}.corpus-head h4{font-size:24px}.schema-badge{font-size:5px;padding:5px}.corpus-table-row{font-size:7px;gap:8px;padding:12px 5px}.corpus-table-row em{font-size:6px}.corpus-table-row.table-head{font-size:6px}.corpus-evidence{padding:12px 9px}.corpus-evidence>span{font-size:6px}.corpus-evidence>div{font-size:6px;gap:6px}.concept-note{font-size:6px!important}.approach h2,.lab h2{font-size:36px}.contact h2{font-size:29px}.contact-bottom{font-size:10px}.chapter-nav{font-size:8px}.project-footer{bottom:64px}.register-note{font-size:8px;padding:25px}.scene-instructions span{padding:0 6px}.ui-overline{font-size:6px}#visual-dialog h2{font-size:11px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){.screen-device,.phone-device,.crew-device,.assistant-preview>.ui-window,.corpus-preview>.ui-window{transform:none}.visual-object{transform:none!important}}
/* Keep previews and their controls inside the stage on shorter laptop screens. */
@media(min-width:601px){.screen-device{width:min(960px,88%,calc((100svh - 340px)*1.77778))}.studio-showcase{gap:12px}.studio-showcase .preview-controls{flex-shrink:0}}
.reset-scene{top:8px;bottom:auto;right:3%}
@media(max-width:600px){.reset-scene{top:auto;bottom:0;right:5%}}
.visual-object:not(:has(.webgl-host)){transform:scale(calc(.96 + (var(--scene-progress) * .04))) rotateX(calc(var(--scene-progress) * -2deg))}
.project-footer{pointer-events:none}.project-footer button{pointer-events:auto}
.scene-canvas{mask-image:radial-gradient(ellipse 76% 95% at 50% 40%,#000 42%,#000a 64%,transparent 90%)}
@media(min-width:601px) and (max-height:800px){.assistant-preview>.ui-window,.corpus-preview>.ui-window{transform:scale(.78) rotateY(-5deg) rotateX(2deg);flex-shrink:0}.cabin-preview{transform:scale(.92)}}
.project-card:last-child:nth-child(odd) .project-open{background:#282e3acc;color:#f5f7fc;border:1px solid #ffffff15}
