:root{--ivory:#f4f0e8;--red:#fc3b24;--red2:#aa281d;--dark:#090a0d;--muted:#929296;--line:rgba(242,238,231,.21)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:var(--ivory);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:4px}::selection{background:var(--red);color:#fff}.noise{position:fixed;pointer-events:none;z-index:13;inset:0;opacity:.11;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' seed='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.4' d='M0 0h180v180H0z'/%3E%3C/svg%3E");mix-blend-mode:screen}.loader{position:fixed;inset:0;z-index:100;background:#08090b;display:flex;flex-direction:column;justify-content:center;padding:9vw;transition:opacity .7s ease,visibility .7s}.loader.done{opacity:0;visibility:hidden}.load-a{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(110px,26vw,400px);line-height:.8;letter-spacing:-.065em}.load-a span{color:var(--red);font-size:.48em;vertical-align:top}.load-b{display:flex;justify-content:space-between;margin-top:9vh;letter-spacing:.22em;font:11px monospace}.load-line{height:2px;background:#303033;margin-top:16px}.load-line i{display:block;width:0;height:100%;background:var(--red);transition:width .7s}.topbar{height:78px;position:fixed;inset:0 0 auto;z-index:25;display:flex;align-items:center;gap:24px;padding:0 5%;border-bottom:1px solid rgba(255,255,255,.11);background:linear-gradient(#090a0bc4,#090a0b18);backdrop-filter:blur(7px)}.brand{font:900 27px/1 Impact,'Arial Black',sans-serif;letter-spacing:-.04em;display:flex;gap:2px;align-items:center}.brand span:first-child{color:var(--red);font-size:16px;margin:0 2px}.brand-dot{color:var(--red)}.brand-sub{font:10px/1.5 'Courier New',monospace;letter-spacing:.1em}.brand-sub em{font-style:normal;color:#818185}.topnav{display:flex;align-items:center;gap:36px;margin-left:auto}.topnav a{font-size:11px;font-weight:800;letter-spacing:.13em;transition:color .2s}.topnav a:hover,.topnav sup,.topnav a span{color:var(--red)}.topnav sup{font:9px monospace}.menu-btn{display:none;background:none;border:0;width:44px;height:44px;padding:12px}.menu-btn i{display:block;height:2px;background:white;margin:6px 0}.mobile-nav{position:fixed;inset:76px 0 auto;z-index:24;padding:24px 6% 36px;display:none;flex-direction:column;background:#0e1014;border-bottom:1px solid var(--line)}.mobile-nav.open{display:flex}.mobile-nav a{font:900 24px Impact,sans-serif;padding:13px;border-bottom:1px solid var(--line)}.sideguide{position:fixed;left:2%;top:29%;z-index:15;display:flex;flex-direction:column;align-items:center;gap:12px;mix-blend-mode:screen}.sideguide>span{writing-mode:vertical-rl;transform:rotate(180deg);font:9px monospace;letter-spacing:.23em;color:#929296}.rail{height:128px;width:1px;background:rgba(255,255,255,.32)}.rail i{display:block;width:3px;margin-left:-1px;height:0;background:var(--red);transition:height .25s}.sideguide b{font:9px monospace;color:var(--red);writing-mode:vertical-rl}.corner-tag{position:fixed;left:5%;bottom:27px;z-index:15;display:flex;align-items:center;gap:8px;font:10px monospace;letter-spacing:.09em;color:#aaa}.dot{width:5px;height:5px;background:var(--red);border-radius:50%;box-shadow:0 0 18px var(--red)}.scroll-cue{position:fixed;z-index:14;right:5%;bottom:27px;font:10px monospace;letter-spacing:.15em;display:flex;align-items:center;gap:15px}.scroll-cue i{display:inline-block;width:58px;height:1px;background:#aaa;transform:rotate(-22deg)}.experience{position:relative;height:870vh}.sticky{height:100vh;position:sticky;top:0;overflow:hidden;background:radial-gradient(ellipse at 68% 47%,#1b1719 0%,#111115 37%,#07090b 75%);isolation:isolate}.grid-world{position:absolute;inset:0;opacity:.38;background-image:linear-gradient(to right,transparent calc(100% - 1px),rgba(255,255,255,.047) 100%),linear-gradient(to bottom,transparent calc(100% - 1px),rgba(255,255,255,.04) 100%);background-size:9.5vw 9.5vw;mask-image:linear-gradient(to right,transparent 10%,black 45%,black 100%);transform:perspective(900px) rotateX(19deg) scale(1.3)}.distant-light{position:absolute;width:48vw;height:48vw;top:25%;right:12%;border-radius:50%;background:radial-gradient(circle,#d23b171c 0,transparent 70%);filter:blur(30px);pointer-events:none}#stage{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab;z-index:2}#stage.dragging{cursor:grabbing}.focus-line{position:absolute;z-index:4;inset:0;pointer-events:none}.cross{position:absolute;color:rgba(245,242,236,.42);font:19px monospace}.x1{right:8%;top:20%}.x2{right:8%;bottom:20%}.x3{left:53%;top:20%}.x4{left:53%;bottom:20%}.scene-id{position:absolute;right:5%;top:105px;z-index:6;text-align:right;font:10px/1.9 monospace;color:#a4a4a4;letter-spacing:.12em}.scene-id span{color:var(--red)}.chapter{position:absolute;inset:0;z-index:5;pointer-events:none}.frame{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:100px 7% 110px 11.5%;opacity:0;visibility:hidden;transform:translateY(30px);transition:opacity .34s ease,transform .48s ease,visibility .34s;pointer-events:none}.frame.active{opacity:1;visibility:visible;transform:translateY(0)}.frame.active a,.frame.active button,.frame.active input{pointer-events:auto}.eyebrow{color:var(--red);font:700 clamp(9px,.78vw,13px)/1.3 'Courier New',monospace;letter-spacing:.18em;margin:0 0 22px}.blink{animation:blink 1.5s infinite}@keyframes blink{50%{opacity:.18}}h1,h2,p{margin:0}h1,h2{font-family:Impact,'Arial Black','Helvetica Neue',sans-serif;letter-spacing:-.028em;font-weight:900;text-transform:uppercase}h1{font-size:clamp(54px,8.0vw,153px);line-height:.89;max-width:80vw;text-shadow:0 4px 30px #07080cb0}h2{font-size:clamp(62px,7.5vw,145px);line-height:.92;max-width:65vw;text-shadow:0 4px 30px #07080cba}.frame em{font-style:normal;color:transparent;-webkit-text-stroke:1px rgba(248,244,236,.85);text-stroke:1px rgba(248,244,236,.85)}.redstop{color:var(--red)}.home h1{font-size:clamp(61px,7.9vw,153px)}.home-statement{margin-top:24px;font:12px/1.75 'Courier New',monospace;letter-spacing:.075em;max-width:475px}.home-statement strong{color:var(--red)}.home-statement u{text-decoration:none;border-bottom:1px solid var(--red)}.intro-actions{display:flex;gap:12px;margin-top:25px}.button-solid,.button-outline{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:16px 20px;min-height:52px;font:800 10px monospace;letter-spacing:.07em;white-space:nowrap;border:1px solid var(--red);transition:background .2s,transform .2s}.button-solid{background:var(--red);color:white}.button-solid:hover{background:#ff684f;transform:translateY(-3px)}.button-outline{border-color:#79787e;color:#eae5dc;background:rgba(0,0,0,.3)}.button-outline:hover{border-color:#fff}.ghost-index{position:absolute;right:6%;bottom:104px;color:#999;font:11px monospace;display:flex;gap:12px}.ghost-index b{color:var(--red)}.frame .copy{font:clamp(13px,1.0vw,16px)/1.6 'Courier New',monospace;color:#b9b5b2;max-width:420px;margin-top:23px;text-shadow:0 2px 8px black}.components h2{max-width:700px}.note{font:10px monospace;color:var(--red);margin-top:24px}.right-annotation{position:absolute;right:5%;bottom:118px;font:11px/1.9 monospace;color:#a7a7a7;text-align:right}.right-annotation b{color:var(--red)}.build-meter{width:min(350px,36vw);margin-top:26px}.build-meter>div:first-child{display:flex;justify-content:space-between;font:10px 'Courier New',monospace;letter-spacing:.12em}.build-meter b{color:var(--red)}.build-bar{height:3px;background:#3c383b;margin-top:9px}.build-bar i{display:block;height:100%;background:var(--red);width:0}.build-meter small{display:block;font:9px monospace;color:#777;margin-top:9px;letter-spacing:.08em}.discipline-labels{position:absolute;right:5%;bottom:125px;display:flex;flex-direction:column;gap:8px;text-align:right;font:10px monospace;color:#9da0a1}.discipline-labels span:before{content:'+';color:var(--red);margin-right:10px}.work h2{font-size:clamp(56px,6.8vw,116px)}.work .copy{margin-top:15px;max-width:460px}.project-console{width:min(500px,40vw);margin-top:20px;border-top:1px solid rgba(255,255,255,.45);pointer-events:auto}.project-nav-row{display:flex;justify-content:space-between;padding:11px 0;font:10px monospace;color:var(--red);letter-spacing:.12em}.project-selector{max-height:min(31vh,270px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--red) transparent;overscroll-behavior:contain}.project-choice{display:flex;align-items:center;width:100%;background:rgba(0,0,0,.13);color:#c3bdb5;border:0;border-top:1px solid #484448;padding:8px 3px;text-align:left;font:900 clamp(14px,1.55vw,23px) Impact,sans-serif;letter-spacing:.03em;transition:color .2s,transform .2s,padding-left .2s}.project-choice i{font:10px monospace;color:#858181;font-style:normal;min-width:40px}.project-choice b{font-size:14px;margin-left:auto;color:var(--red);opacity:0}.project-choice:hover,.project-choice.chosen{color:white;padding-left:10px}.project-choice.chosen{background:linear-gradient(90deg,#f63d2229,transparent)}.project-choice.chosen b{opacity:1}.selected-label{position:absolute;right:6%;bottom:115px;text-align:right;font:10px/2 monospace;color:#aaa}.selected-label strong{display:block;color:var(--red);font-size:12px}.inspect h2{font-size:clamp(63px,7.7vw,145px);max-width:640px;overflow-wrap:anywhere}.project-type{margin-top:8px;max-width:500px;color:var(--red);font:12px/1.5 monospace;letter-spacing:.08em}.inspect .copy{max-width:445px}.tech-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:19px;max-width:480px}.tech-tags span{font:10px monospace;border:1px solid #858181;padding:8px 11px}.inspect-open{margin-top:24px}.inspect-aside{position:absolute;right:6%;bottom:135px;text-align:right;font:10px/2 monospace;color:#b6b6b6}.about h2{font-size:clamp(55px,6vw,115px)}.about .copy{max-width:550px}.about-stream{display:grid;gap:20px;margin-top:24px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(780px,72vw)}.about-stream>div{display:flex;flex-direction:column;gap:7px;border-left:1px solid #716c6f;padding-left:14px}.about-stream span{color:var(--red);font:9px monospace;letter-spacing:.11em;margin-bottom:3px}.about-stream strong{font:12px/1.35 Arial,Helvetica,sans-serif}.about-stream small{display:block;color:#9a9695;font:10px/1.4 monospace;margin-top:2px}.subtle-link{margin-top:20px;color:var(--ivory);font:10px monospace;border-bottom:1px solid var(--red);padding-bottom:8px}.contact h2{font-size:clamp(55px,7.1vw,135px)}.contact .copy{max-width:540px}.contact-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:27px;max-width:660px}.contact-links a{display:flex;min-width:135px;justify-content:space-between;border-top:1px solid #a6a1a1;padding-top:10px;font:800 11px monospace}.contact-links a span{color:var(--red)}.contact-links a:hover{color:var(--red)}.contact-footer{position:absolute;left:11.5%;right:5%;bottom:105px;display:flex;justify-content:space-between;color:#878482;font:10px/1.4 monospace}.contact-footer a{color:var(--red)}.stage-controls{position:absolute;right:4.9%;top:57%;z-index:9;display:flex;align-items:center;gap:7px;color:#bdb8b0;font:9px monospace;letter-spacing:.08em}.stage-controls button{border:1px solid #777;background:#09090c7d;color:var(--ivory);width:35px;height:35px}.stage-controls button:hover{border-color:var(--red);color:var(--red)}.stage-controls .reset-control{width:auto;padding:0 9px}.footer-axis{position:absolute;z-index:3;bottom:20px;left:12%;right:29%;display:flex;gap:15px;justify-content:space-between;font:9px monospace;color:#676569;letter-spacing:.09em;pointer-events:none}.spacers{position:absolute;inset:0;display:grid;grid-template-rows:repeat(7,1fr);pointer-events:none}.dossier{position:fixed;inset:0 0 0 auto;width:min(580px,100%);z-index:45;transform:translateX(102%);background:#f0ece3;color:#161616;box-shadow:-25px 0 120px #000d;overflow-y:auto;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.dossier.open{transform:translateX(0)}.dossier-inner{padding:46px clamp(24px,4vw,60px) 65px;min-height:100%}.dossier-close{margin-left:auto;display:block;border:1px solid #444;background:transparent;padding:12px;font:10px monospace}.dossier-head{display:flex;justify-content:space-between;gap:16px;margin-top:65px;font:10px monospace;color:#676363}.dossier-head span:first-child{color:var(--red2)}.dossier h2{color:#131313;font-size:clamp(64px,8vw,110px);letter-spacing:-.035em;margin-top:16px;line-height:.9;text-shadow:none}.dossier-category{color:var(--red2);font:12px monospace;margin:19px 0}.dossier p{font:15px/1.65 Arial,Helvetica,sans-serif;max-width:500px;color:#333}.dossier-rule{height:1px;background:#888;margin:30px 0}.dossier h3{font:900 20px Impact,sans-serif;margin:25px 0 10px}.dossier-tech{display:flex;flex-wrap:wrap;gap:7px}.dossier-tech span{border:1px solid #555;font:10px monospace;padding:7px}.dossier .dossier-foot{font:11px/1.6 monospace;color:#666;margin-top:32px}.dossier-link{display:inline-block;background:var(--red2);color:#fff;padding:15px;margin-top:25px;font:11px monospace}.dossier-nav{display:flex;justify-content:space-between;margin-top:42px;gap:10px}.dossier-nav button{border:0;border-top:2px solid #111;background:transparent;padding:13px 0;font:11px monospace}.dossier-nav button:hover{color:var(--red2)}.no-webgl{position:fixed;z-index:50;right:3%;bottom:70px;width:330px;padding:15px;border:1px solid var(--red);background:#18191b;color:#fff;font:11px/1.6 monospace}
@media (max-width:1100px){.brand-sub em{display:none}.topnav{gap:18px}.frame{padding-left:10%}h1{font-size:8.6vw}.home h1{font-size:8.4vw}.about-stream{width:min(670px,75vw)}.stage-controls{top:auto;bottom:84px}.focus-line{opacity:.5}}
@media (max-width:760px){.topbar{height:65px;padding:0 5%}.brand-sub{font-size:9px}.topnav{display:none}.menu-btn{display:block;margin-left:auto}.mobile-nav{inset:64px 0 auto}.sideguide,.corner-tag,.footer-axis,.stage-controls span,.reset-control,.scene-id{display:none!important}.scene-id{top:80px}.scroll-cue{right:5%;bottom:14px;font-size:9px}.scroll-cue i{width:24px}.sticky{background:radial-gradient(ellipse at 50% 38%,#211b1c,#090b0e 65%)}.grid-world{background-size:20vw 20vw}.frame{padding:83px 6% 95px;justify-content:flex-start}.eyebrow{font-size:9px;margin-bottom:15px;max-width:85vw}.frame h1,.frame h2{font-size:clamp(50px,11.1vw,92px);line-height:.92;max-width:95vw}.frame.home h1{font-size:clamp(49px,11vw,92px)}.home-statement{font-size:10px;margin-top:14px;line-height:1.55}.intro-actions{margin-top:18px;gap:9px}.button-solid,.button-outline{padding:13px 12px;font-size:9px;min-height:44px;gap:10px}.frame .copy{max-width:94vw;font-size:12px;line-height:1.45;margin-top:12px}.components,.assembly,.work,.inspect,.about,.contact{justify-content:flex-start}.note,.right-annotation,.discipline-labels,.selected-label,.inspect-aside,.ghost-index{display:none}.build-meter{width:min(340px,90vw)}.work .copy{max-width:90vw}.work h2{font-size:clamp(49px,10vw,70px)}.project-console{width:min(94vw,500px);margin-top:13px}.project-selector{max-height:19vh}.project-choice{font-size:17px;padding:6px 4px}.project-nav-row{padding:6px 0}.inspect h2{font-size:clamp(53px,11vw,84px)}.project-type{font-size:9px}.tech-tags{margin-top:12px;gap:5px}.tech-tags span{font-size:9px;padding:6px}.inspect-open{margin-top:14px}.about h2{font-size:clamp(44px,9vw,79px)}.about-stream{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px;width:100%}.about-stream>div:last-child{display:none}.about-stream span{font-size:8px}.about-stream strong{font-size:11px}.contact h2{font-size:clamp(45px,10.6vw,75px)}.contact-links{margin-top:15px;gap:10px}.contact-links a{min-width:42%;font-size:10px}.contact-footer{left:6%;right:6%;bottom:70px;font-size:8px;gap:30px}.stage-controls{bottom:32px;right:5%;display:flex}.stage-controls button{width:32px;height:32px}.focus-line .cross{font-size:12px;opacity:.5}.x1,.x3{top:52%}.x2,.x4{bottom:12%}.dossier-inner{padding:28px 23px 50px}.dossier-head{margin-top:45px;font-size:9px}.dossier h2{font-size:66px}.no-webgl{left:5%;bottom:65px;width:90%}}
@media (max-width:430px){.frame .copy{font-size:11px}.frame.home h1{font-size:10.7vw}.about-stream{grid-template-columns:1fr}.about-stream>div:nth-child(2){display:none}.intro-actions{flex-wrap:wrap}.project-selector{max-height:23vh}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Animated CSS 3D sculpture for restricted/unsupported WebGL environments. */
.fallback-machine{position:absolute;z-index:2;display:none;width:min(57vw,780px);aspect-ratio:1;right:4%;top:50%;transform:translateY(-50%) rotateY(var(--orbit,0deg)) rotateZ(var(--tilt,0deg));transform-style:preserve-3d;perspective:900px;filter:drop-shadow(0 25px 60px #000a);pointer-events:none}.fallback-machine.visible{display:block}.fm-backhalo{position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle,#fb452422,transparent 65%);filter:blur(30px)}.fm-ring{position:absolute;left:13%;top:13%;width:74%;height:74%;border-radius:50%;border:17px ridge #7c8388;box-shadow:inset 0 0 1px 3px #232628,inset 0 0 19px 10px #000,0 0 12px #c9b9ac44;transform-style:preserve-3d;transition:transform 1s ease}.fm-r1{transform:rotateY(calc(64deg + var(--scrollturn,0deg))) rotateZ(19deg)}.fm-r2{border-width:9px;border-color:#c4beba;left:21%;top:21%;width:58%;height:58%;transform:rotateX(calc(74deg - var(--scrollturn,0deg))) rotateY(25deg)}.fm-r3{border:6px solid #fb402c;box-shadow:0 0 34px #fb412e7a,inset 0 0 20px #b82012;left:30%;top:30%;height:40%;width:40%;transform:rotateY(calc(40deg + var(--scrollturn,0deg))) rotateZ(55deg)}.fm-spindle{position:absolute;left:49%;top:12%;height:76%;width:5%;background:linear-gradient(90deg,#111,#888,#f6f1e9,#444,#111);transform:rotate(45deg) rotateX(45deg);border-radius:15px;box-shadow:0 0 25px #000}.fm-body{position:absolute;top:43%;left:33%;width:34%;height:14%;border:2px solid #a2a7a8;border-radius:9px;background:repeating-linear-gradient(90deg,#101615 0 5px,#193c2e 5px 9px);box-shadow:0 15px 22px #000,0 0 0 6px #17191a;transform:rotateZ(calc(-12deg + var(--tilt,0deg))) rotateX(26deg);display:flex;align-items:flex-end;justify-content:space-evenly;padding:13px}.fm-led{height:10px;width:10px;background:var(--red);border-radius:50%;box-shadow:0 0 17px 6px #fb402c70}.fm-plate{position:absolute;width:22%;height:9%;background:linear-gradient(135deg,#242b30,#9c9e9c 48%,#151b1e 50%,#101015);border:1px solid #e1e1db55;box-shadow:0 18px 12px #0009;transition:transform .55s ease}.plate-1{left:25%;top:15%;transform:translate(calc(-80px * var(--scatter,1)),calc(-75px * var(--scatter,1))) rotate(-35deg)}.plate-2{right:13%;top:39%;transform:translate(calc(95px * var(--scatter,1)),calc(45px * var(--scatter,1))) rotate(58deg)}.plate-3{left:28%;bottom:15%;transform:translate(calc(-60px * var(--scatter,1)),calc(90px * var(--scatter,1))) rotate(22deg)}.fm-readout{position:absolute;left:18%;bottom:-4%;display:flex;flex-direction:column;gap:8px;font:10px monospace;letter-spacing:.13em;color:#ddd}.fm-readout b{color:var(--red)}.fm-readout small{font-size:9px;color:#999}@media(max-width:760px){.fallback-machine{width:92vw;right:4%;top:67%}.fm-ring{border-width:10px}.fm-r2{border-width:7px}.fm-r3{border-width:4px}.fm-readout{bottom:1%;font-size:8px}.fm-readout small{font-size:7px}}
/* Mobile: don't dissolve two large editorial frames over each other. */
@media(max-width:760px){.frame{transition:none!important}.frame:not(.active){display:none}.project-console{position:relative;z-index:8;background:linear-gradient(90deg,#08090bf2,#08090b9a);padding-right:5px;backdrop-filter:blur(5px)}.project-choice{background:rgba(0,0,0,.4)}.work .copy{background:#0b0c0f88}.about-stream{background:linear-gradient(90deg,#090a0bd9,transparent)}}



/* V6 - TerraVita is rendered in the primary #stage WebGL scene, not an iframe. */
.terra-measured{position:absolute;right:5%;bottom:11%;z-index:7;display:flex;align-items:center;gap:8px;color:#bac3c0;opacity:0;pointer-events:none;transition:opacity .24s;font:10px/1.3 'Courier New',monospace;letter-spacing:.08em}
.terra-measured b{color:#f7f1e9}.terra-measured .measured-dot{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 12px var(--red)}
body.terravita-current .terra-measured{opacity:1}
@media(max-width:760px){.terra-measured{bottom:17%;right:5%;font-size:8px;max-width:90%;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.terra-measured{transition:none!important}}

/* V8 — JellyCast takes the viewer through a longer cinematic journey in the same page. */
.experience.jelly-long{height:1230vh}
body.jelly-current .sticky{background:radial-gradient(ellipse at 72% 40%,#12313a 0%,#0b1b25 39%,#070a10 83%)}
body.jelly-current .distant-light{background:radial-gradient(circle,#00bdc72c,transparent 73%)}
body.jelly-current .grid-world{opacity:.20}
body.jelly-exploring .frame.inspect{display:none!important}
.jelly-experience{position:absolute;inset:0;z-index:7;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .38s,visibility .38s;color:#f4f1e9;font-family:'Courier New',monospace}
body.jelly-exploring .jelly-experience{opacity:1;visibility:visible}
.jelly-kicker{position:absolute;top:17%;left:11.5%;font:800 11px monospace;letter-spacing:.17em;color:#86c9ca}
.jelly-live-dot{display:inline-block;margin-left:9px;width:6px;height:6px;border-radius:50%;background:#fc3b24;box-shadow:0 0 12px #fc3b24}
.jelly-narrative{position:absolute;left:11.5%;top:34%;width:min(34vw,480px);min-width:0}
.jelly-narrative>span{font:700 12px monospace;color:#ff5f4c;letter-spacing:.16em}
.jelly-narrative h2{font-size:clamp(45px,4.8vw,83px);line-height:.95;letter-spacing:-.025em;margin:12px 0 20px;max-width:100%;overflow-wrap:break-word}
.jelly-narrative p{max-width:380px;color:#bfd1d2;font:13px/1.75 monospace}
.jelly-narrative small{display:block;color:#e27968;font:10px/1.5 monospace;margin-top:25px;letter-spacing:.12em}
.jelly-stations{position:absolute;right:5%;top:36%;display:flex;flex-direction:column;width:min(19vw,215px);pointer-events:auto}
.jelly-step{background:rgba(4,19,25,.64);padding:18px 12px 18px 0;border:0;border-bottom:1px solid #53818a66;color:#96bdc3;display:flex;gap:15px;align-items:center;font:800 13px monospace;text-align:left;letter-spacing:.09em;transition:background .25s,color .25s;padding-left:12px;min-height:52px}
.jelly-step span{color:#cd7366;font:10px monospace}.jelly-step b{margin-left:auto;color:#fb6953}
.jelly-step.current,.jelly-step:hover{color:white;background:#e1534033;transform:translateX(-4px)}
.jelly-disclaimer{position:absolute;left:11.5%;bottom:11%;font:9px/1.5 monospace;letter-spacing:.08em;color:#9bbbbc}
@media(max-width:900px){.jelly-narrative{left:8%;top:25%;width:48%}.jelly-kicker{left:8%;top:15%}.jelly-disclaimer{left:8%;bottom:16%}.jelly-stations{right:5%;top:25%;width:26%}.jelly-narrative h2{font-size:clamp(33px,5vw,66px)}}
@media(max-width:760px){.jelly-experience{background:linear-gradient(180deg,#070d15df 0%,#070d15aa 30%,transparent 55%)}.jelly-kicker{top:11.5%;left:6%;font-size:8px;max-width:88%}.jelly-narrative{top:16%;left:6%;width:89%}.jelly-narrative h2{font-size:clamp(32px,8.3vw,55px);max-width:92%}.jelly-narrative p{font-size:10px;max-width:92%;line-height:1.45}.jelly-narrative small{display:none}.jelly-stations{top:auto;bottom:12%;left:6%;right:6%;width:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.jelly-step{font:800 9px monospace;padding:12px 5px;min-height:48px;justify-content:center;gap:5px;text-align:center;border:1px solid #67838a66}.jelly-step span{font-size:8px}.jelly-step b{display:none}.jelly-disclaimer{font-size:8px;bottom:20%;left:6%;max-width:90%}}
@media(prefers-reduced-motion:reduce){.jelly-experience,.jelly-step{transition:none!important}}

/* Fallback is restricted to no-WebGL browsers; WebGL users see the actual model. */
.jelly-fallback{display:none;position:absolute;z-index:2;right:5%;top:13%;width:61%;height:73%;pointer-events:none;perspective:1100px}
body.jelly-current.has-no-webgl .jelly-fallback{display:block}
body.jelly-current.has-no-webgl .fallback-machine{display:none}
.jf-halo{position:absolute;border:1px solid #3179856b;border-radius:50%;top:7%;left:12%;width:73%;aspect-ratio:1;box-shadow:0 0 70px #1144503a;transform:rotate(-16deg)}
.jf-halo-two{width:90%;top:1%;left:3%;border-style:dashed;opacity:.25;transform:rotate(20deg)}
.jf-computer{position:absolute;width:72%;height:78%;left:8%;top:6%;transform-style:preserve-3d;filter:drop-shadow(0 38px 34px #000a);transform:rotateY(-14deg) rotateX(6deg) translate(calc(-115px * var(--jfBroken,0)),calc(-38px * var(--jfBroken,0)));transition:transform .15s linear,opacity .4s}
.jf-laptop-screen{height:72%;background:linear-gradient(135deg,#899d9e,#263238 35%,#819799 95%);border-radius:11px;padding:10px;box-shadow:inset 0 0 0 1px #c6d8d8,inset 0 0 0 3px #13252b;transform:rotateX(-7deg);transform-origin:bottom}
.jf-laptop-glass{position:relative;width:100%;height:100%;background:radial-gradient(circle at 55% 45%,#174650,#081a24 73%);border:5px solid #071319;border-radius:3px;overflow:hidden}
.jf-label{position:absolute;top:5%;left:5%;font:900 clamp(12px,1.5vw,23px) Arial,sans-serif;letter-spacing:.07em}.jf-label span{display:block;font:10px monospace;color:#89c1c1;margin-top:5px}.jf-map{position:absolute;left:25%;top:8%;width:53%;height:94%;opacity:.92}.jf-pin circle:first-child{fill:#ff634f;filter:drop-shadow(0 0 7px #ff4c39)}.jf-pin .jf-pulse{fill:none;stroke:#ff6d5c;stroke-width:2;opacity:.2}.jf-pin.current .jf-pulse{opacity:1;stroke-width:4}.jf-pin.current circle:first-child{fill:#fef8ed}
.jf-latlon{position:absolute;right:2%;top:35%;font:10px/3 monospace;color:#9ed5d8;letter-spacing:.1em}
.jf-status{position:absolute;left:5%;bottom:7%;font:800 11px monospace;letter-spacing:.08em;color:#dfefe9}
.jf-laptop-base{position:relative;height:29%;width:100%;background:linear-gradient(165deg,#a4b5b7,#43535a 35%,#181f27);transform:rotateX(63deg);transform-origin:top;border-radius:0 0 19px 19px;border:2px solid #687e80;box-shadow:0 20px 30px #0008}
.jf-keyboard{position:absolute;left:9%;top:13%;width:82%;height:48%;background:repeating-linear-gradient(0deg,transparent 0 8px,#5d6c6d 8px 10px),repeating-linear-gradient(90deg,#111b20 0 18px,#667378 18px 20px);border-radius:4px;opacity:.87}.jf-touchpad{position:absolute;bottom:6%;left:38%;width:24%;height:27%;border:1px solid #263b46;border-radius:4px}
.jf-phone{position:absolute;top:29%;right:3%;width:20%;height:49%;background:linear-gradient(145deg,#26323c,#0a1219);border:5px solid #7e9a9a;border-radius:24px;box-shadow:0 15px 25px #000b,inset 0 0 0 4px #07131d;transform:rotate(8deg) rotateY(-20deg) translate(calc(90px * var(--jfBroken,0)),calc(70px * var(--jfBroken,0)));transition:transform .15s linear}
.jf-phone-top{margin:8px auto;width:30%;height:5px;border-radius:8px;background:#2a4551}.jf-phone-title{font:900 clamp(8px,1.1vw,16px) Arial,sans-serif;margin:12px 9px 0}.jf-phone-label{font:8px monospace;color:#85c4c8;margin:6px 9px}.jf-phone-map{position:relative;height:69%;overflow:hidden}.jf-phone-map .jf-map{position:absolute;left:7%;top:0;width:86%;height:100%}.jf-phone-status{position:absolute;bottom:10px;left:7%;font:7px monospace;color:#e36c61}
.jf-floating{position:absolute;width:65px;height:95px;opacity:.7;filter:drop-shadow(0 0 14px #65b9dc66);animation:jfFloat 8s ease-in-out infinite}.jf-floating i{display:block;width:60px;height:34px;border-radius:50% 50% 20% 20%;background:linear-gradient(180deg,#bc9ce988,#7bcacc36);border:1px solid #abdfef55}.jf-floating em{display:block;width:50px;height:62px;margin-left:5px;background:repeating-linear-gradient(90deg,transparent 0 8px,#98d9eb99 9px 10px,transparent 11px 16px);clip-path:polygon(0 0,100% 0,90% 100%,10% 100%);filter:blur(1px)}
.jf-fish-1{left:3%;top:25%}.jf-fish-2{right:4%;top:0;transform:scale(.65);animation-delay:-3s}.jf-fish-3{right:10%;bottom:0;transform:scale(.7);animation-delay:-5s}
@keyframes jfFloat{50%{translate:0 -25px}}
body.jelly-exploring.has-no-webgl .jf-computer,body.jelly-exploring.has-no-webgl .jf-phone{opacity:var(--jfDevices,1)}
@media(max-width:760px){.jelly-fallback{top:36%;height:38%;width:99%;right:0}.jf-computer{left:8%;width:76%}.jf-phone{right:4%;top:20%;width:25%;height:62%}.jf-laptop-screen{padding:6px}.jf-laptop-glass{border-width:3px}.jf-label{font-size:11px}.jf-label span{font-size:6px}.jf-latlon{font-size:6px}.jf-status{font-size:7px}.jf-phone-title{font-size:9px}.jf-phone-label{font-size:5px}.jf-floating{transform:scale(.65)}.jf-halo{top:1%}}
@media(prefers-reduced-motion:reduce){.jf-floating{animation:none}}

/* The fallback also travels from the devices into the coast when the graphics API is unavailable. */
.jf-mapworld{position:absolute;z-index:2;inset:-2% 9% 2% 18%;opacity:var(--jfCoast,0);transform:translate(var(--jfX,0px),var(--jfY,0px)) scale(var(--jfZoom,1));transform-origin:55% 55%;transition:opacity .2s linear,transform .28s ease;pointer-events:none}
.jf-world-map{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 16px 23px #0008)}
.jf-map-water{position:absolute;inset:10%;background:radial-gradient(ellipse at 25% 45%,#0d74804b,transparent 60%),repeating-linear-gradient(-17deg,transparent 0 21px,#70bfc01c 22px 23px,transparent 24px 55px);mask-image:radial-gradient(ellipse at center,#000 24%,transparent 80%);animation:waterCurrent 14s linear infinite}
.jf-mapworld-label{position:absolute;right:5%;bottom:5%;font:10px monospace;letter-spacing:.12em;color:#a5d5d6}
body.jelly-exploring.has-no-webgl .jf-computer,body.jelly-exploring.has-no-webgl .jf-phone{opacity:var(--jfDevices,.6)!important}
@keyframes waterCurrent{to{background-position:30px 0,120px 60px}}
@media(max-width:760px){.jf-mapworld{inset:-1% 12% 2% 7%;}.jf-mapworld-label{display:none}}
@media(prefers-reduced-motion:reduce){.jf-map-water{animation:none}}

/* V9: keep geographic layer behind the stage UI, with no model/model collision. */
.jf-mapworld{transition:opacity .12s linear,transform .15s linear}

/* V11 — TerraVita is three chapter-length immersive scroll scenes, using the same WebGL canvas. */
.experience.terra-long{height:1260vh}
.experience.jelly-long{height:1020vh}
body.terravita-current .sticky{background:radial-gradient(ellipse at 73% 44%,#1a4434 0%,#0b241e 37%,#060d0d 82%)}
body.terravita-current .distant-light{background:radial-gradient(circle,#52bc7c2b,transparent 72%)}
body.click-claim-current .sticky, body[data-study-project="click-claim"] .sticky{background:radial-gradient(ellipse at 73% 44%,#123a3a 0%,#092121 38%,#060d0d 82%)}
body.click-claim-current .distant-light, body[data-study-project="click-claim"] .distant-light{background:radial-gradient(circle,#5fe0cf2b,transparent 72%)}
body.analog-fsk-current .sticky, body[data-study-project="analog-fsk"] .sticky{background:radial-gradient(ellipse at 73% 44%,#2b1c3f 0%,#180f24 38%,#09060e 82%)}
body.analog-fsk-current .distant-light, body[data-study-project="analog-fsk"] .distant-light{background:radial-gradient(circle,#c4a0ff2b,transparent 72%)}
body.habitseed-current .sticky, body[data-study-project="habitseed"] .sticky{background:radial-gradient(ellipse at 73% 44%,#233310 0%,#131e08 38%,#070a04 82%)}
body.habitseed-current .distant-light, body[data-study-project="habitseed"] .distant-light{background:radial-gradient(circle,#c9f06a2b,transparent 72%)}
body.prajaa-current .sticky, body[data-study-project="prajaa"] .sticky{background:radial-gradient(ellipse at 73% 44%,#3d2a10 0%,#241808 38%,#0d0904 82%)}
body.prajaa-current .distant-light, body[data-study-project="prajaa"] .distant-light{background:radial-gradient(circle,#ffc45e2b,transparent 72%)}
body.terravita-current .grid-world{opacity:.13;filter:hue-rotate(105deg)}
body.terravita-current .terra-measured{color:#a9dbc0}
body.terravita-current .terra-measured .measured-dot{background:#65dc99;box-shadow:0 0 18px #65dc99}
body.terra-exploring .frame.inspect{display:none!important}
body.terravita-current .inspect-open{display:none!important}
body.terra-exploring .terra-measured{opacity:0}
.terra-experience{--tv:#9bffc2;--tv-muted:#a2c9b8;--tv-border:#5eaa82a8;position:absolute;inset:0;z-index:7;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .34s ease,visibility .34s ease;color:#edfff0}
body.terra-exploring .terra-experience{opacity:1;visibility:visible}
.terra-ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.terra-light-pool{position:absolute;width:44vw;height:54vw;max-height:720px;top:12%;right:0;background:radial-gradient(ellipse,#175c4850 0%,#26784e1b 32%,transparent 67%);filter:blur(22px)}
.terra-orbit{position:absolute;border:1px solid #62ac8750;border-radius:50%;right:3%;top:19%;width:49%;aspect-ratio:1;transform:rotateX(64deg) rotate(30deg);box-shadow:0 0 40px #48c7840b,inset 0 0 15px #48c78410;transition:opacity .6s}
.terra-orbit-b{width:37%;right:9%;top:27%;border-style:dashed;opacity:.5}
.terra-grain{position:absolute;right:6%;top:18%;width:44%;height:68%;background:radial-gradient(circle,#74dba83b 1px,transparent 2px);background-size:38px 38px;mask-image:radial-gradient(ellipse,#0004,transparent 75%);opacity:.3}
.terra-topline,.terra-bottomline{position:absolute;left:11.5%;right:6%;display:flex;justify-content:space-between;align-items:center;gap:12px;font:700 10px/1.4 'Courier New',monospace;letter-spacing:.16em;color:#9acdaf}
.terra-topline{top:15%}.terra-bottomline{bottom:14%}
.terra-topline #terraCount{font-size:12px;color:#eaffed}.terra-illuminated{display:inline-block;width:8px;height:8px;border-radius:50%;background:#62db93;box-shadow:0 0 19px #62db93;vertical-align:middle;margin-right:8px}
.terra-scene{position:absolute;left:11.5%;top:30%;width:min(38vw,500px);opacity:0;visibility:hidden;transform:translateY(15px);transition:opacity .38s ease,transform .5s ease,visibility .38s;pointer-events:none}
.terra-scene.active{opacity:1;visibility:visible;transform:translateY(0)}
.terra-section-label{font:800 10px/1.5 'Courier New',monospace;color:var(--tv);letter-spacing:.15em;margin-bottom:24px}
.terra-scene h2{font:900 clamp(48px,5.3vw,90px)/.88 Arial,Helvetica,sans-serif;letter-spacing:-.055em;margin:0 0 24px;text-transform:uppercase}
.terra-scene h2 em{font-style:normal;color:#72e69d}
.terra-scene>p{font:13px/1.75 'Courier New',monospace;max-width:400px;color:#bfdacc;letter-spacing:.005em;margin-bottom:24px}
.terra-tech-rule{display:flex;gap:20px;flex-wrap:wrap;border-top:1px solid #548869a9;border-bottom:1px solid #548869a9;padding:13px 0;width:max-content;max-width:100%;font:10px 'Courier New',monospace;color:#b3dfc5}
.terra-tech-rule span:first-child{font-weight:800;color:#e9ffed;font-size:13px}
.terra-annotation{font:700 10px 'Courier New',monospace;letter-spacing:.15em;margin-top:34px;color:#91d8ab}
.terra-annotation span{font-size:21px;vertical-align:middle}
.terra-sensor-tabs{display:grid;gap:5px;width:min(420px,100%);pointer-events:auto}
.terra-sensor{display:flex;align-items:center;gap:15px;background:#081d17c9;border:1px solid #45715b99;color:#c7e5d1;padding:11px 13px;text-align:left;font:700 11px 'Courier New',monospace;min-height:43px;cursor:pointer;transition:background .2s,border-color .2s,transform .25s}
.terra-sensor i{font-style:normal;color:#81df9d}.terra-sensor b{margin-left:auto;font-size:17px;color:#75df9b}
.terra-sensor.active,.terra-sensor:hover{background:#1b4e36ee;border-color:#9bf5bd;transform:translateX(4px);color:#fff}
.terra-sensor:focus-visible{outline:2px solid #cdffdf;outline-offset:2px}
.terra-focus-description{margin-top:13px;max-width:390px;padding:12px 0;border-top:1px solid #53866a88}
.terra-focus-description span{font:800 10px monospace;letter-spacing:.1em;color:#a9f2c7}.terra-focus-description p{font:11px/1.65 'Courier New',monospace;color:#b4d0c0;margin:8px 0}
.terra-telemetry{width:min(430px,100%);background:linear-gradient(145deg,#06231fcf,#071310e9);border:1px solid #3b8e68aa;padding:17px 20px 14px;pointer-events:auto;box-shadow:inset 0 0 50px #164e3215}
.terra-telemetry-head,.terra-status{display:flex;justify-content:space-between;gap:10px;font:700 9px/1.5 'Courier New',monospace;letter-spacing:.07em;color:#88c8a5}
.terra-telemetry-head{border-bottom:1px solid #245f457a;padding-bottom:12px}.terra-telemetry-head b{color:#8df7b1;white-space:nowrap}.terra-telemetry-head i{display:inline-block;background:#80f1a5;width:5px;height:5px;border-radius:50%;box-shadow:0 0 9px #80f1a5}
.terra-channel-grid{display:grid;gap:9px;padding-top:12px}
.terra-channel-grid label{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font:800 10px 'Courier New',monospace;letter-spacing:.08em;color:#b3d8c0}
.terra-channel-grid output{color:#d6ffe1;text-align:right}.terra-channel-grid input{grid-column:1/-1;accent-color:#78e6a5;height:15px;width:100%;cursor:pointer}
.terra-sparkline{width:100%;height:68px;margin:10px 0 8px;overflow:visible}.terra-chart-grid{stroke:#43866377;stroke-width:1;fill:none}.terra-chart-path{fill:none;stroke:#9df9bf;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 4px #36b56a88)}
.terra-status{border-top:1px solid #245f457a;padding-top:11px;flex-wrap:wrap}.terra-status strong{font:800 9px monospace;color:#d9ffe7}
.terra-safety{position:absolute;left:11.5%;bottom:8%;max-width:65%;font:9px/1.5 'Courier New',monospace;letter-spacing:.07em;color:#84b49a}
@media(max-width:1050px){.terra-scene{left:8%;width:46%}.terra-topline,.terra-bottomline{left:8%}.terra-safety{left:8%}.terra-scene h2{font-size:clamp(38px,5.5vw,72px)}}
@media(max-width:760px){.terra-experience{background:linear-gradient(180deg,#071f1bee 0%,#061613cc 36%,transparent 76%)}.terra-scene{top:19%;left:6%;width:89%;max-width:430px}.terra-section-label{font-size:8px;margin-bottom:12px}.terra-scene h2{font-size:clamp(35px,9.5vw,58px);margin-bottom:12px;line-height:.9}.terra-scene>p{font-size:10px;line-height:1.5;max-width:94%;margin-bottom:12px}.terra-topline,.terra-bottomline{left:6%;right:6%;font-size:8px}.terra-topline{top:10%}.terra-bottomline{bottom:17%}.terra-bottomline span:last-child{display:none}.terra-safety{left:6%;bottom:10%;max-width:90%;font-size:8px}.terra-sensor-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.terra-sensor{min-height:43px;padding:7px 6px;display:block;font-size:8px;text-align:center}.terra-sensor i{display:block;font-size:8px;margin-bottom:3px}.terra-sensor b{display:none}.terra-focus-description{margin-top:5px;padding-top:5px}.terra-focus-description p{font-size:9px;margin:4px 0}.terra-telemetry{padding:10px 12px}.terra-channel-grid{gap:5px;padding-top:5px}.terra-channel-grid label{font-size:8px}.terra-channel-grid input{height:12px}.terra-sparkline{height:28px;margin:2px 0}.terra-status{font-size:7px}.terra-telemetry-head{font-size:8px;padding-bottom:6px}.terra-orbit{right:-27%;top:44%;width:100%}.terra-orbit-b{right:-11%;top:51%;width:70%}}
@media(max-width:410px){.terra-scene{top:18%}.terra-scene h2{font-size:35px}.terra-one .terra-tech-rule{font-size:8px}.terra-tech-rule span:first-child{font-size:11px}.terra-three .terra-telemetry{max-width:95%}}
@media(prefers-reduced-motion:reduce){.terra-experience,.terra-scene,.terra-orbit,.terra-sensor{transition:none!important}}
/* One spatial map scene, three destinations: location controls now update the SAME view. */
body.jelly-exploring .jelly-stations{pointer-events:auto}
.jelly-stations{top:35%}
body.jelly-exploring .jelly-step.current{border-color:#77c7c8;background:#15465099}
@media(max-width:760px){.jelly-stations{top:auto;bottom:16%;left:6%;right:6%;width:auto;flex-direction:row;gap:5px}.jelly-step{flex:1;min-width:0;padding:7px 3px;gap:4px;font-size:9px;justify-content:center;border:1px solid #4477807a}.jelly-step span{font-size:8px}.jelly-step b{display:none}.jelly-narrative{top:17%}.jelly-disclaimer{bottom:11%}}
/* V11 visual QA: keep interaction panels clear of the lower scene annotations. */
@media(min-width:761px){.terra-two,.terra-three{top:24%}.terra-two .terra-section-label,.terra-three .terra-section-label{margin-bottom:16px}.terra-two h2,.terra-three h2{font-size:clamp(46px,5vw,74px);margin-bottom:16px}.terra-two>p,.terra-three>p{margin-bottom:14px}.terra-bottomline{bottom:13%}.terra-safety{bottom:8%}}
@media(max-width:760px){.terra-two,.terra-three{top:18%}.terra-two h2,.terra-three h2{font-size:clamp(32px,8.7vw,51px)}.terra-two .terra-section-label,.terra-three .terra-section-label{margin-bottom:8px}}

.terra-topline #terraCount{margin-right:14%}
@media(max-width:760px){.terra-topline #terraCount{margin-right:0}}

/* WebGL-unavailable TerraVita fallback: independent of the opening sculpture. */
.terra-fallback{display:none;position:absolute;z-index:2;right:6%;top:20%;width:48%;height:63%;perspective:900px;pointer-events:none}
body.has-no-webgl.terravita-current .fallback-machine{display:none!important}
body.has-no-webgl.terravita-current .terra-fallback{display:block}
.tf-stage{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateX(12deg) rotateY(-16deg)}
.tf-case{position:absolute;width:67%;height:56%;left:19%;top:22%;border:3px solid #b2e7d795;background:linear-gradient(135deg,#4fa9852c,#9be5c828);border-radius:24px;box-shadow:inset 0 0 30px #c7ffe61e,0 24px 65px #010c0b80;transform:skewY(-3deg) rotate(-3deg)}
.tf-inner{position:absolute;inset:15%;border:1px solid #81caa188;background:#0a2d248b;border-radius:4px;transform:translateY(3%)}
.tf-pcb{position:absolute;left:11%;top:20%;width:53%;height:50%;border:1px solid #65d89e77;background:linear-gradient(40deg,#175b41,#12422f);color:#bdf9d3;font:bold 10px monospace;padding:10px}.tf-pcb i{display:inline-block;width:13%;height:22%;margin:12px 3% 0;background:#13221c;border:1px solid #86c89e}
.tf-battery{position:absolute;right:4%;top:12%;width:20%;height:70%;border-radius:13px;background:linear-gradient(90deg,#323b35,#694b8b,#a47cbb);writing-mode:vertical-rl;text-align:center;padding:7px;font:8px monospace;color:white}
.tf-duct{position:absolute;left:7%;top:-13%;width:27%;height:26%;background:#29433bbb;border:1px solid #8ac9a077;color:#c9f6d9;font:8px monospace;text-align:center;padding:8px}.tf-duct i{display:block;border-radius:50%;width:24px;height:24px;margin:3px auto;border:3px solid #a5dcc7}
.tf-lcd{position:absolute;left:36%;top:-5%;background:#061810;color:#9debaf;border:3px solid #233c31;font:9px/1.45 monospace;padding:8px;white-space:nowrap}
.tf-lid{position:absolute;inset:-5%;border:3px solid #c2f7e2a0;border-radius:25px;background:linear-gradient(140deg,#83ffcd1c,#6cdca309);transform:translateY(calc(-2px - var(--lid,0)*85px)) rotateX(calc(var(--lid,0)*28deg));transform-origin:top;transition:transform .4s}
.tf-grille{position:absolute;left:12%;top:19%;width:22%;aspect-ratio:1;border:3px double #b0ead0;border-radius:50%;font-size:42px;display:grid;place-items:center;color:#82d5a6}
.tf-controls{position:absolute;bottom:13%;right:6%;display:flex;gap:6px}.tf-controls b{font:8px monospace;color:#d6ffe6;background:#143b30ad;padding:6px;border:1px solid #93cba6}
.tf-probe{position:absolute;border:2px solid #d2e7db;background:#344c44;box-shadow:0 0 12px #78cf9840}.tf-probe-temp{width:26%;height:7px;left:-7%;top:46%;transform:rotate(-23deg)}.tf-probe-moist{height:12px;width:29%;left:-13%;top:61%;background:#183c2b;transform:rotate(12deg)}
.tf-reference{font:9px monospace;color:#9bd8b1;position:absolute;bottom:0;right:10%}.tf-reference span{display:block;font-size:8px;color:#6d9c84;margin-top:7px}
body.terra-exploring .terra-fallback{--lid:0}body.terra-exploring:has(.terra-two.active) .terra-fallback{--lid:1}body.terra-exploring:has(.terra-three.active) .terra-fallback{--lid:.37}
@media(max-width:760px){.terra-fallback{top:42%;left:7%;right:auto;width:86%;height:43%}.tf-case{height:57%}.tf-reference{bottom:0;right:0}.tf-lcd{font-size:7px;padding:4px}.tf-pcb{font-size:7px;padding:5px}.tf-grille{font-size:23px}.tf-controls b{font-size:5px;padding:3px}.tf-reference{font-size:7px}}


/* V12 — OBSIDIAN: three red cinematic chapters, rendered in the existing 3D scene. */
.experience.obs-long{height:1300vh}
body.obs-current .sticky{background:radial-gradient(ellipse at 73% 44%,#38151a 0%,#1c0d13 38%,#08090e 86%)}
body.obs-current .distant-light{background:radial-gradient(circle,#f8463e29,transparent 72%)}
body.obs-current .grid-world{opacity:.20;filter:hue-rotate(-28deg)}
body.obs-exploring .frame.inspect{display:none!important}
body.obs-current .inspect-open{display:none!important}
.obs-experience{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:0;visibility:hidden;color:#fff5f0;transition:opacity .35s ease,visibility .35s ease}
body.obs-exploring .obs-experience{opacity:1;visibility:visible}
.obs-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.obs-pulse{position:absolute;right:0;top:16%;width:55%;height:74%;background:radial-gradient(ellipse,#d31d2d27,transparent 62%);filter:blur(26px)}
.obs-crosshair{position:absolute;right:5%;top:20%;width:min(49vw,700px);aspect-ratio:1;border:1px solid #d93e363d;border-radius:50%;box-shadow:inset 0 0 25px #fc3b240a}
.obs-crosshair:before,.obs-crosshair:after{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed #f2463030}.obs-crosshair:after{transform:rotate(90deg)}
.obs-scanlines{position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent,transparent 17px,#fd312307 18px);opacity:.3}
.obs-headline,.obs-footer{position:absolute;left:11.5%;right:6%;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#e1a9a2;font:700 10px/1.4 'Courier New',monospace;letter-spacing:.14em}
.obs-headline{top:15%}.obs-footer{bottom:13%}.obs-headline #obsCounter{margin-right:14%;font-size:12px;color:#fff7f2}
.obs-live{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#ff4d3b;box-shadow:0 0 16px #fb4738}
.obs-scene{position:absolute;left:11.5%;top:26%;width:min(39vw,515px);opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .4s ease,visibility .4s ease,transform .52s ease;pointer-events:none}
.obs-scene.active{opacity:1;visibility:visible;transform:translateY(0)}
.obs-overline{font:800 10px/1.4 'Courier New',monospace;letter-spacing:.13em;color:#ff6d5b;margin-bottom:22px}
.obs-scene h2{font:900 clamp(43px,5vw,85px)/.87 Arial,Helvetica,sans-serif;letter-spacing:-.058em;text-transform:uppercase;margin:0 0 21px}
.obs-scene h2 em{font-style:normal;color:#ff5344}
.obs-scene>p{font:12px/1.7 'Courier New',monospace;color:#e0c3bf;max-width:400px;margin:0 0 18px}
.obs-progress-line{max-width:380px;padding:15px 0;border-top:1px solid #7d3732;border-bottom:1px solid #7d3732;margin:20px 0}
.obs-line-label{display:flex;justify-content:space-between;font:700 10px monospace;letter-spacing:.1em;color:#dba7a0;margin-bottom:11px}.obs-line-label b{color:#fff}
.obs-progress-track{height:3px;background:#53302c}.obs-progress-track i{display:block;height:100%;width:0;background:#ff4e42;box-shadow:0 0 12px #ff4939}
.obs-specs{display:flex;flex-wrap:wrap;gap:7px}.obs-specs span{padding:8px 10px;background:#42151a55;border:1px solid #a9453f8a;font:700 9px 'Courier New',monospace;color:#eedbd5;letter-spacing:.07em}
.obs-hint,.obs-maze-instruction{font:700 10px 'Courier New',monospace;letter-spacing:.11em;color:#f78d7c;margin-top:25px}
.obs-maze-modes{display:flex;gap:7px;pointer-events:auto;margin:15px 0 16px}
.obs-mode{min-height:42px;padding:10px 15px;border:1px solid #85443f;color:#ecc7c2;background:#270d12c9;font:800 10px 'Courier New',monospace;letter-spacing:.11em;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.obs-mode.active,.obs-mode:hover{background:#a92a25;border-color:#ff826d;color:#fff}
.obs-mode:focus-visible,.obs-sub:focus-visible{outline:2px solid #ff9d8b;outline-offset:2px}
.obs-maze-stats{max-width:395px;display:grid;grid-template-columns:1fr 1fr 1.2fr;border-top:1px solid #8e44417b;border-bottom:1px solid #8e44417b;padding:14px 0}
.obs-maze-stats div{min-width:0;border-right:1px solid #8e44417b;padding:0 10px}.obs-maze-stats div:first-child{padding-left:0}.obs-maze-stats div:last-child{border:0}
.obs-maze-stats span{display:block;font:8px monospace;letter-spacing:.1em;color:#b48680;margin-bottom:7px}.obs-maze-stats strong{font:800 13px monospace;color:#fff2ed}
.obs-maze-instruction{margin-top:15px;font-size:9px}.obs-maze-instruction span{display:block;font:8px/2 monospace;color:#ac7875;letter-spacing:0}
.obs-subsystems{display:grid;gap:5px;width:min(390px,100%);pointer-events:auto}
.obs-sub{display:flex;align-items:center;gap:14px;min-height:42px;text-align:left;padding:10px 13px;background:#210d11d9;border:1px solid #8f393773;color:#efcec6;font:800 10px monospace;letter-spacing:.09em;cursor:pointer;transition:transform .2s,background .2s,border-color .2s}
.obs-sub span{color:#ff7665}.obs-sub b{margin-left:auto;font-size:17px;color:#ff6d5b}.obs-sub.active,.obs-sub:hover{background:#7d2422dd;border-color:#ff8b74;color:#fff;transform:translateX(4px)}
.obs-subdetail{margin-top:14px;padding:12px 0;border-top:1px solid #93433a84;max-width:390px}.obs-subdetail span{font:800 10px monospace;letter-spacing:.1em;color:#ffae9c}.obs-subdetail p{font:11px/1.65 monospace;color:#c8a5a0;margin:8px 0}
.obs-map-hud{position:absolute;right:7%;top:25%;width:clamp(250px,31vw,410px);padding:14px;background:linear-gradient(155deg,#200d12e6,#06080de6);border:1px solid #913b388a;box-shadow:0 28px 80px #000a,inset 0 0 32px #c2292110;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;pointer-events:none}
body.obs-exploring:has(.obs-maze.active) .obs-map-hud{opacity:1;visibility:visible}
.obs-map-title,.obs-map-key{display:flex;gap:8px;justify-content:space-between;color:#dca39b;font:700 9px monospace;letter-spacing:.06em}
.obs-map-title{padding-bottom:12px;border-bottom:1px solid #8b403e65}.obs-map-title b{color:#ff7663}
.obs-map-hud svg{display:block;width:100%;max-height:34vh;aspect-ratio:1;margin:9px auto;overflow:visible}
.obs-map-key{flex-wrap:wrap;font-size:8px;border-top:1px solid #8b403e65;padding-top:9px}.obs-map-key i{display:inline-block;background:#ff4d42;width:12px;height:3px;vertical-align:middle}
.obs-truth{position:absolute;left:11.5%;bottom:8%;font:9px/1.6 monospace;letter-spacing:.05em;color:#9f7774;max-width:67%}
@media(min-width:761px){.obs-maze{top:24%}.obs-maze h2{font-size:clamp(46px,4.8vw,76px)}.obs-inspect{top:22%}.obs-inspect h2{font-size:clamp(42px,4.5vw,72px)}.obs-map-hud{top:27%}}
@media(max-width:1050px){.obs-scene{left:8%;width:44%}.obs-headline,.obs-footer{left:8%}.obs-truth{left:8%}.obs-map-hud{right:3%;width:38%}}
@media(max-width:760px){.obs-experience{background:linear-gradient(180deg,#210b12f0 0%,#11090edc 42%,transparent 80%)}.obs-headline{left:6%;right:6%;top:10%;font-size:8px}.obs-headline #obsCounter{margin-right:0}.obs-scene{left:6%;top:19%;width:88%;max-width:450px}.obs-scene h2{font-size:clamp(34px,9.4vw,58px);margin-bottom:11px}.obs-scene>p{font-size:10px;line-height:1.5;max-width:95%;margin-bottom:10px}.obs-overline{font-size:8px;margin-bottom:10px}.obs-specs{gap:4px}.obs-specs span{padding:6px;font-size:8px}.obs-progress-line{margin:10px 0;padding:9px 0}.obs-hint{margin-top:12px}.obs-footer{left:6%;right:6%;bottom:15%;font-size:8px}.obs-footer span:last-child{display:none}.obs-truth{left:6%;bottom:9%;max-width:88%;font-size:7px}.obs-crosshair{width:90%;right:4%;top:43%}.obs-pulse{width:100%;top:42%}.obs-maze{top:16%}.obs-maze h2{font-size:clamp(32px,8.3vw,44px);margin-bottom:9px}.obs-maze .obs-overline{margin-bottom:7px}.obs-maze>p{font-size:9px;line-height:1.35;margin-bottom:7px}.obs-maze-modes{margin:8px 0}.obs-mode{min-height:38px;padding:8px 10px;font-size:9px}.obs-maze-stats{padding:7px 0}.obs-maze-stats strong{font-size:11px}.obs-maze-instruction{display:none}.obs-map-hud{right:5%;left:5%;width:auto;top:auto;bottom:17%;padding:10px 13px}.obs-map-hud svg{max-height:27vh;margin:3px auto}.obs-map-title,.obs-map-key{font-size:8px}.obs-inspect{top:16%}.obs-inspect h2{font-size:clamp(33px,8.8vw,48px);margin-bottom:7px}.obs-inspect .obs-overline{margin-bottom:7px}.obs-inspect>p{font-size:9px;line-height:1.4;margin-bottom:8px}.obs-sub{min-height:37px;padding:8px}.obs-subdetail{margin-top:8px;padding:7px 0}.obs-subdetail p{font-size:9px;line-height:1.5;margin-top:5px}.obs-footer{bottom:14%}}
@media(max-width:375px){.obs-maze{top:15%}.obs-maze>p{font-size:8px}.obs-map-hud svg{max-height:23vh}.obs-map-hud{bottom:17%}.obs-inspect h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){.obs-experience,.obs-scene,.obs-map-hud,.obs-mode,.obs-sub{transition:none!important}}

body.obs-current .inspect-open{display:none!important}

/* V12 visual QA / keep the maze visually separate from the mechanical controls. */
body.obs-exploring .stage-controls{opacity:0;pointer-events:none}
@media(min-width:761px){.obs-map-hud{width:clamp(220px,24vw,320px);right:4%;top:auto;bottom:17%}.obs-map-hud svg{max-height:27vh}.obs-map-title{font-size:8px}}
/* No-WebGL fallback: authentic Obsidian geometry preview, not the opening Engineer's Core. */
body.has-no-webgl.obs-current .fallback-machine{display:none!important}
.obs-fallback{display:none;position:absolute;right:2%;top:23%;height:60%;width:54%;background:url('./obsidian_preview.png') center/contain no-repeat;filter:drop-shadow(0 14px 38px #ad1d2244);pointer-events:none;z-index:3}
body.has-no-webgl.obs-current .obs-fallback{display:block}
body.has-no-webgl.obs-exploring:has(.obs-maze.active) .obs-fallback{display:none}
@media(max-width:760px){.obs-fallback{right:0;top:43%;width:100%;height:38%}}

/* KIRA Mk.I / Phase 1 — loading scene only. Approved character meshes and materials in kira-loader.js. */
body.kira-is-loading{overflow:hidden!important}
.kira-loader{position:fixed;inset:0;z-index:1000;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 53% 43%,#1e2a31 0%,#0c151c 48%,#05090d 90%);color:#ecf0ef;opacity:1;transition:opacity .58s ease,visibility .58s ease}
.kira-loader.kira-finished{opacity:0;visibility:hidden;pointer-events:none}
.kira-bay-back{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 52% 54%,rgba(197,74,56,.12),transparent 52%)}
.kira-bay-lines{position:absolute;inset:14% 0 0;opacity:.23;background:linear-gradient(90deg,transparent 49.9%,#c1b4ae15 50%,transparent 50.1%),repeating-linear-gradient(90deg,transparent 0 5.8%,#62717d17 5.9% 6%),linear-gradient(#26323a55,transparent);transform:perspective(850px) rotateX(5deg)}
.kira-bay-halo{position:absolute;width:44vw;height:44vw;min-width:320px;min-height:320px;left:44%;top:17%;border-radius:50%;background:radial-gradient(circle,#b5472420 5%,transparent 65%);filter:blur(20px)}
.kira-render{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:2;touch-action:pan-y;cursor:crosshair;transition:opacity .63s ease}
.kira-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(5,9,13,.74),rgba(5,9,13,.13) 30%,transparent 66%),linear-gradient(0deg,#060b11ce,transparent 28%);}
.kira-loader-mark{position:absolute;z-index:5;top:5%;left:5.5%;right:5.5%;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.kira-loader-mark strong{font:900 31px/1 Impact,'Arial Black',sans-serif;letter-spacing:-.04em}.kira-loader-mark strong span{color:#e95950;font-size:.53em}.kira-loader-mark small{font:700 10px/1.4 'Courier New',monospace;letter-spacing:.24em;color:#9caab5}
.kira-loader-story{position:absolute;z-index:5;left:5.5%;top:29%;max-width:min(34vw,395px);pointer-events:none;transition:opacity .4s,transform .7s}
.kira-kicker{font:700 10px/1.6 'Courier New',monospace;letter-spacing:.20em;color:#ec7d73;display:flex;align-items:center;gap:12px}.kira-kicker i{width:20px;height:2px;background:#e05c50}
.kira-loader-story h1{font:900 clamp(54px,5.6vw,94px)/.9 Impact,'Arial Black',sans-serif;letter-spacing:-.045em;margin:22px 0}.kira-loader-story h1 em{font-style:normal;color:#e25f54}
.kira-loader-story p{color:#a8b8c1;font-size:13px;line-height:1.8;margin:0 0 29px}.kira-geometry-label{font:9px/1.9 'Courier New',monospace;letter-spacing:.06em;color:#6e8491;padding-top:14px;border-top:1px solid #35414b}
.kira-loader-progress{position:absolute;z-index:5;right:5.6%;top:29%;width:min(22vw,250px);display:flex;flex-direction:column;gap:14px;align-items:stretch;background:linear-gradient(150deg,#111b23df,#080f17d1);border:1px solid #43535c85;padding:23px 24px;backdrop-filter:blur(12px);border-radius:5px}
.kira-boot-label{font:700 9px 'Courier New',monospace;letter-spacing:.15em;color:#90a2ae}
.kira-loader-progress strong{font:800 18px Impact,'Arial Black',sans-serif;letter-spacing:.035em;color:#f4eee8}
.kira-boot-detail{font:10px/1.4 'Courier New',monospace;color:#869aa7}
.kira-progress-track{height:3px;background:#37444d;overflow:hidden;position:relative}
.kira-progress-track i{position:absolute;top:0;left:-35%;height:100%;width:28%;background:#df6257;box-shadow:0 0 12px #da3a30;animation:kira-load-indeterminate 1.12s ease-in-out infinite}
.kira-loader.kira-entering .kira-progress-track i{animation:none;left:0;width:100%;background:#a1d1bd}
@keyframes kira-load-indeterminate{from{left:-30%}to{left:110%}}
.kira-loader-bottom{position:absolute;z-index:8;bottom:6%;left:5.5%;right:5.5%;display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid #34414c;padding-top:20px;font:700 10px 'Courier New',monospace;letter-spacing:.12em}
.kira-loader-bottom>span:first-child{color:#e97368}.kira-hint{color:#9aa9b4}
#kiraSkip{border:1px solid #8d6762;color:#f1eeeb;background:#6f292630;font:700 10px 'Courier New',monospace;letter-spacing:.14em;padding:13px 19px;border-radius:3px;cursor:pointer;min-height:42px}
#kiraSkip:hover,#kiraSkip:focus-visible{border-color:#f4afa5;background:#99413b77;outline-offset:4px}
.kira-fallback{position:absolute;z-index:4;top:43%;left:51%;width:250px;text-align:center;transform:translate(-50%,-50%);color:#afbec8;font:12px/1.6 'Courier New',monospace}
.kira-fallback[hidden]{display:none}
.kira-fallback-face{background:#171c22;border:9px solid #b3b5b2;width:125px;height:100px;border-radius:24px;margin:auto auto 12px;display:flex;align-items:center;justify-content:space-around;padding:22px}
.kira-fallback-face i{height:29px;width:13px;border-radius:6px;background:#f8faf4;box-shadow:0 0 20px #ffffff35}
.kira-ready-beam{position:absolute;z-index:4;left:45%;top:30%;width:26%;height:35%;opacity:0;pointer-events:none;background:radial-gradient(ellipse,#d0d8d11a,transparent 70%);transition:opacity .5s}
.kira-loader.kira-entering .kira-ready-beam{opacity:1}
.kira-loader.kira-entering .kira-loader-story,.kira-loader.kira-entering .kira-loader-progress{opacity:0;transform:translateY(-12px)}
.kira-loader.kira-entering .kira-render{opacity:.25;transition:opacity .75s ease .18s}
@media(max-width:1040px){.kira-loader-story{top:24%;max-width:36vw}.kira-loader-story h1{font-size:clamp(49px,5.2vw,78px)}.kira-loader-progress{top:22%;width:230px;right:3%;padding:17px}.kira-shade{background:linear-gradient(90deg,#070b108a,transparent 45%),linear-gradient(0deg,#070b10b8,transparent 26%)}}
@media(max-width:700px){.kira-loader-story{left:6%;right:6%;top:13%;max-width:none}.kira-loader-story h1{font-size:clamp(39px,8.2vw,57px);margin:11px 0;line-height:.89}.kira-loader-story p{font-size:11px;margin-bottom:10px}.kira-geometry-label{display:none}.kira-kicker{font-size:9px}.kira-loader-mark{top:3%;left:6%;right:6%}.kira-loader-mark small{font-size:8px;max-width:140px;text-align:right}.kira-loader-progress{width:calc(100% - 12%);left:6%;right:6%;top:auto;bottom:16%;padding:13px;gap:6px;flex-direction:column;background:#0a131ac7}.kira-loader-progress strong{font-size:15px}.kira-loader-bottom{left:6%;right:6%;bottom:3%;gap:8px;padding-top:12px;flex-wrap:wrap}.kira-hint{display:none}.kira-shade{background:linear-gradient(0deg,#060a10da,transparent 33%),linear-gradient(180deg,#060a10aa,transparent 34%)}.kira-fallback{top:54%}}
@media(max-width:380px){.kira-loader-story h1{font-size:37px}.kira-loader-progress{bottom:20%}.kira-loader-bottom{bottom:4%}}
@media(prefers-reduced-motion:reduce){.kira-loader *, .kira-loader:before,.kira-loader:after{animation:none!important;transition-duration:.1s!important}.kira-progress-track i{left:10%;width:65%}}

/* KIRA V14: stage-directed cinematic intro. Existing portfolio remains untouched. */
.kira-loader {--kira-door-progress:0;--kira-portal-glow:0;}
.kira-loader-story{top:25%;}
.kira-loader-story p{min-height:57px;max-width:300px;transition:opacity .18s}
.kira-loader-progress{top:25%;}
.kira-loader-bottom{display:flex;flex-direction:column;align-items:stretch;gap:16px;bottom:4%;border-top:1px solid #34414c;padding-top:12px;}
.kira-chapters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%;}
.kira-stage-item{display:flex;align-items:center;gap:7px;color:#53636c;min-width:0;font:700 9px/1.5 'Courier New',monospace;letter-spacing:.09em;transition:color .3s}
.kira-stage-item:before{content:'';height:3px;width:100%;background:#2d3940;position:absolute;top:0;left:0;transition:background .3s}
.kira-stage-item{position:relative;padding-top:13px;white-space:nowrap;overflow:hidden}
.kira-stage-item b{font-size:13px;flex:none;color:#60727c}
.kira-stage-item.active{color:#f5d2cb}.kira-stage-item.active b{color:#f47b70}.kira-stage-item.active:before{background:#e35e56;box-shadow:0 0 14px #e35e5650}
.kira-stage-item.passed{color:#b9c5c8}.kira-stage-item.passed:before{background:#71817f}
.kira-bottom-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:42px;}
.kira-bottom-controls>span{color:#e97368}
.kira-loader[data-ready="true"] .kira-progress-track i{animation:none;left:0;width:100%;background:#a1d1bd;transition:width .45s}
.kira-loader[data-stage="1"] .kira-fallback-face i{opacity:0}
.kira-loader[data-stage="2"] .kira-fallback-face i{opacity:1;animation:kira-eye-flicker .5s 1}
.kira-loader[data-stage="3"] .kira-fallback-head{transform:rotate(5deg)}
.kira-loader[data-stage="4"] .kira-fallback-head{transform:rotate(-4deg)}
.kira-loader[data-stage="5"] .kira-fallback-bot{transform:translateY(12px) scale(.90)}
.kira-loader.kira-entering .kira-render{opacity:1;transition:none}
.kira-loader.kira-entering .kira-loader-story,.kira-loader.kira-entering .kira-loader-progress{opacity:1;transform:none}
.kira-loader.kira-entering .kira-loader-story{opacity:calc(1 - var(--kira-door-progress))}
.kira-loader.kira-entering .kira-loader-progress{opacity:calc(1 - var(--kira-door-progress))}
.kira-ready-beam{left:42%;width:35%;top:25%;height:52%;background:radial-gradient(ellipse,#9ffbe646 0%,#9ffbe619 20%,transparent 65%);opacity:calc(var(--kira-portal-glow)*.8)!important;transition:none!important}
.kira-fallback{left:57%;top:50%;width:min(300px,42vw);}
.kira-fallback p{font:11px/1.45 'Courier New',monospace;color:#93a7b2}
.kira-fallback-bot{width:180px;margin:auto auto 16px;transition:transform .6s;filter:drop-shadow(0 12px 20px #0009)}
.kira-fallback-head{width:140px;height:112px;background:#dededa;border-radius:22px;margin:auto;position:relative;border:6px solid #7c8689;transition:transform .7s;transform-origin:50% 110%}
.kira-fallback-face{position:absolute;left:8px;right:8px;top:8px;height:77px;border-radius:13px;background:#121b21;display:flex;align-items:center;justify-content:space-evenly;}
.kira-fallback-face i{width:15px;height:28px;border-radius:9px;background:#f2f7f7;box-shadow:0 0 14px #fff9;transition:opacity .3s}
.kira-fallback-camera{position:absolute;bottom:4px;left:calc(50% - 5px);height:9px;width:10px;border-radius:50%;background:#1d3c44;box-shadow:0 0 0 3px #9ca6a7}
.kira-fallback-neck{height:20px;width:35px;background:#5c6064;margin:auto;border-left:6px solid #c9433c;border-right:6px solid #c9433c}
.kira-fallback-body{height:56px;width:175px;border-radius:12px;background:linear-gradient(145deg,#ced0ca,#747f82);position:relative;display:flex;justify-content:space-between;}
.kira-fallback-track{height:68px;width:29px;background:repeating-linear-gradient(0deg,#1b2227 0 10px,#343b40 10px 13px);border-radius:14px;margin-top:-6px;border:4px solid #171a1c;}
@keyframes kira-eye-flicker{0%,30%,58%{opacity:0}20%,45%,100%{opacity:1}}
@media(max-width:700px){
 .kira-loader-story{top:13%;}
 .kira-loader-story p{min-height:29px;max-width:290px}
 .kira-loader-progress{bottom:21%;top:auto}
 .kira-loader-bottom{bottom:2%;gap:11px}
 .kira-stage-item{font-size:7px;gap:4px;flex-direction:column;align-items:flex-start;white-space:normal;line-height:1.1;min-height:37px;letter-spacing:0}
 .kira-stage-item b{font-size:12px}
 .kira-bottom-controls{min-height:40px}
 .kira-fallback{left:50%;top:52%;width:100%;}
 .kira-fallback-bot{transform:scale(.80);transform-origin:bottom center;margin-bottom:-5px}
 .kira-fallback p{font-size:10px}
}
@media(max-width:390px){.kira-loader-progress{bottom:24%;}.kira-stage-item span{font-size:6px}}
@media(prefers-reduced-motion:reduce){.kira-fallback-bot,.kira-fallback-head{transition:none}.kira-stage-item{transition:none}}

@media(max-width:700px){.kira-fallback{top:48%}.kira-fallback p{margin:14px auto 0;max-width:250px}}

/* Living Workshop V17: preserve approved homepage typography while freeing space for moving machinery. */
body:not(.kira-is-loading) .fallback-machine{display:none!important}
body.kira-is-loading #stage{pointer-events:none}
.frame.home h1{font-size:clamp(39px,4.55vw,69px);max-width:480px;line-height:1.01;letter-spacing:-.069em}
.frame.home .copy{max-width:435px}
.frame.home .hero-kicker{max-width:410px}
.frame.home{padding-left:7.5%}
@media(max-width:760px){.frame.home h1{font-size:clamp(32px,8vw,53px);max-width:95vw}.frame.home{padding-left:6%}.frame.home .copy{max-width:270px}}
@media(min-width:900px){#home .hero-copy{max-width:490px}}

/* Home replacement: assembly-cell-to-project handoff within the same portfolio. */
.workshop-portal-curtain{position:absolute;inset:0;z-index:3;background:radial-gradient(ellipse at 52% 48%,#080e14,#05090b);opacity:var(--workshop-veil,0);pointer-events:none;will-change:opacity}
.living-hall-fallback{display:none;position:absolute;z-index:2;right:0;top:10%;width:84%;height:78%;pointer-events:none;opacity:.78}
.living-hall-fallback svg{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 35px #000c)}
.hall-fallback-label{position:absolute;right:10%;bottom:4%;font:10px/1.6 monospace;letter-spacing:.12em;color:#c8d7d7}
.hall-fallback-label span{color:#7d8f96}
body.has-no-webgl.hall-current .fallback-machine{display:none!important}
body.has-no-webgl.hall-current #livingHallFallback{display:block}
@media(max-width:760px){.living-hall-fallback{width:100%;right:0;top:21%;height:63%;opacity:.53}.hall-fallback-label{font-size:7px;right:5%;bottom:7%}}
@media(prefers-reduced-motion:reduce){.workshop-portal-curtain{will-change:auto}}

/* V18 / One physical world, one WebGL2 canvas, one approved Kira. */
.kira-loader{background:transparent!important;isolation:auto;pointer-events:auto;}
.kira-loader .kira-render,.kira-loader .kira-bay-back,.kira-loader .kira-ready-beam{display:none!important}
.kira-loader:before,.kira-loader:after{display:none!important}
.kira-shade{background:linear-gradient(90deg,#070b10c9 0%,#070b1050 29%,transparent 56%),linear-gradient(0deg,#070b10c7,transparent 27%)!important;}
body.kira-is-loading .topbar,body.kira-is-loading .sideguide,body.kira-is-loading .corner-tag,body.kira-is-loading .scroll-cue,body.kira-is-loading .chapter,body.kira-is-loading .stage-controls,body.kira-is-loading .scene-id,body.kira-is-loading .focus-line,body.kira-is-loading .footer-axis{opacity:0!important;pointer-events:none!important}
body.kira-is-loading .grid-world,body.kira-is-loading .distant-light{opacity:0!important}
body.kira-is-loading .kira-loader .kira-stage-item{transition:background .25s,border-color .25s}
.kira-loader.kira-entering .kira-loader-story{opacity:calc(1 - var(--kira-door-progress))!important}
.kira-loader.kira-entering .kira-loader-progress{opacity:calc(1 - var(--kira-door-progress))!important}
.kira-loader.kira-entering .kira-loader-bottom{opacity:calc(1 - var(--kira-door-progress))}
@media(max-width:700px){.kira-shade{background:linear-gradient(180deg,#070b10aa,transparent 32%),linear-gradient(0deg,#070b10bc,transparent 25%)!important}}
/* V19: keep the mobile status card below Kira's track clearance during the doorway shot. */
@media (max-width:700px) and (min-height:740px){
  .kira-loader-progress{bottom:14%!important;top:auto!important}
}

/* Main Hall: restrained station controls and reversible inspection. */
body.hall-current .stage-controls{display:none!important}
body.hall-inspecting .chapter{opacity:0;pointer-events:none!important}
.hall-focus-tools{position:absolute;z-index:18;right:clamp(18px,3vw,48px);top:100px;display:none;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:570px;color:#bccbd0;font:600 10px/1.4 ui-monospace,monospace;letter-spacing:.05em;pointer-events:auto}
.hall-focus-tools.is-visible{display:flex}
.hall-focus-label{width:100%;text-align:right;color:#c4d0d2;font-size:9px;letter-spacing:.1em}
.hall-focus-label span{color:#849da9}
.hall-station-buttons,.hall-operation-buttons{display:flex;gap:4px}
.hall-focus-tools button,.hall-focus-tools select,.hall-display-modes button{border:1px solid #6277817a;background:#0a151dea;color:#cbd9dc;border-radius:2px;padding:9px 10px;min-height:36px;font:inherit;letter-spacing:.04em;cursor:pointer}
.hall-focus-tools button[aria-pressed="true"],.hall-display-modes button[aria-pressed="true"]{border-color:#db7365;background:#5e302ccc;color:#fff0e7}
.hall-focus-tools button:hover,.hall-display-modes button:hover{border-color:#b5c6ce;background:#25323c}
.hall-focus-tools :focus-visible,.hall-station-info :focus-visible{outline:2px solid #bce0d8;outline-offset:4px}
#hallLive{width:100%;font-size:9px;min-height:14px;text-align:right;color:#acd4c5}
.hall-operation-buttons{margin-left:auto}
.hall-focus-tools select{font-size:9px;max-width:96px;padding:7px}
.hall-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hall-station-info{position:absolute;z-index:17;left:7.5%;top:28%;width:min(300px,26vw);color:#dfebe9;background:linear-gradient(100deg,#081219ed,#081219ba 75%,#08121938);border-left:1px solid #8b665d;padding:20px 22px 20px 19px;pointer-events:auto}
.hall-station-info[hidden],.hall-display-modes[hidden]{display:none}
.hall-station-info>button{border:0;border-bottom:1px solid #8e6e64;background:transparent;color:#d0ddd8;font:10px ui-monospace,monospace;padding:8px 0;margin-bottom:28px;cursor:pointer}
#hallStationKicker{display:block;font:9px/1.4 ui-monospace,monospace;color:#eb8a78;letter-spacing:.08em}
.hall-station-info h2{font-size:clamp(26px,2.6vw,40px);letter-spacing:-.02em;line-height:1.05;margin:13px 0 18px;max-width:100%}
.hall-station-info p{font:12px/1.75 Arial,sans-serif;color:#b3c3c8;margin:0}
.hall-process{border-top:1px solid #546c7366;margin-top:24px;padding-top:17px}
#hallPart{font:9px/1.5 ui-monospace,monospace;color:#7f9fa9;display:block;margin-bottom:8px}
#hallStationStatus{font:11px/1.6 ui-monospace,monospace;display:block;color:#b4dfce;margin-bottom:9px}
#hallProcessDescription{font-size:11px;line-height:1.6}
.hall-process-track{height:2px;background:#3a505a;margin:16px 0}
.hall-process-track i{display:block;height:100%;background:#dc8370;width:0;transition:width .2s linear}
.hall-station-info>small{font:8px/1.5 ui-monospace,monospace;color:#7e98a2}
.hall-display-modes{display:flex;gap:4px;margin-top:18px}
.hall-display-modes button{font:9px ui-monospace,monospace;padding:8px}
.hall-hover-hint{position:fixed;z-index:19;padding:9px 12px;border-left:2px solid #da8d79;background:#0a171eea;color:#d3e2e1;font:9px ui-monospace,monospace;letter-spacing:.08em;pointer-events:none}
#stage.station-hover{cursor:pointer}
body.hall-inspecting #stage{cursor:grab}
body.hall-inspecting #stage.dragging{cursor:grabbing}
@media(max-width:1000px) and (min-width:801px){.hall-focus-tools{top:94px;max-width:455px}.hall-station-info{left:6%;width:255px;padding:15px}.hall-station-info p{font-size:11px}}
@media(max-width:800px){
 .hall-focus-tools{left:12px;right:12px;top:auto;bottom:33px;max-width:none;justify-content:center;gap:5px}
 .hall-focus-label,#hallLive{text-align:center;font-size:8px}
 .hall-operation-buttons{margin-left:0}
 .hall-focus-tools button{font-size:9px;min-height:40px;padding:7px 9px}
 .hall-focus-tools select{min-height:40px}
 .hall-station-info{left:18px;right:18px;top:85px;width:auto;max-height:245px;overflow:auto;padding:13px 16px;background:linear-gradient(100deg,#081219f2,#081219bf)}
 .hall-station-info>button{margin-bottom:12px;min-height:32px;padding:5px 0}
 .hall-station-info h2{font-size:25px;margin:8px 0 10px}
 .hall-station-info p{font-size:11px;line-height:1.55}
 .hall-process{margin-top:12px;padding-top:9px}
 .hall-display-modes{margin-top:10px}
 .hall-hover-hint{display:none}
}
@media(max-height:650px){.hall-station-info{top:90px;max-height:calc(100vh - 205px);overflow:auto}.hall-station-info>button{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.hall-process-track i{transition:none}}
