.loading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 58%,#14273a 0,#050b13 70%);transition:opacity 1s ease,visibility 1s;pointer-events:none}.loading.is-complete{opacity:0;visibility:hidden}.loading.is-error{pointer-events:auto}.loader-emblem{font-family:Georgia,serif;font-size:34px;color:#afc6d7;font-weight:400;margin-bottom:28px}.loading p{font-family:Georgia,serif;font-size:23px;letter-spacing:.1px;color:#d0dce4;margin:0 0 16px}.loading>span:not(.loader-emblem){font-size:9px;letter-spacing:1.2px;color:#859cad}.loading-track{width:120px;height:1px;background:#8eacc32b;margin:24px 0 12px;overflow:hidden}#loading-bar{width:0;height:100%;background:#aac9de;transition:width .4s}.retry-button{margin-top:25px;border:1px solid #7895aa66;padding:12px 25px;background:transparent;border-radius:30px;font-size:11px}.retry-button:hover{background:#bed5e811}dialog{background:linear-gradient(135deg,#132231,#09131e);color:#bdcbd5;border:1px solid #c1d9e330;border-radius:3px;padding:49px 43px 34px;width:min(450px,calc(100% - 40px));max-height:calc(100svh - 40px);box-shadow:0 35px 120px #0009}dialog::backdrop{background:#02080cbf;backdrop-filter:blur(10px)}.close-button{position:absolute;top:10px;right:12px;width:44px;height:44px;border:0;background:none;font-size:26px;font-weight:300;color:#a8bdcd}dialog h2{font-family:Georgia,serif;font-weight:400;font-size:31px;letter-spacing:-.8px;color:#e0e9ee;margin:18px 0}.dialog-intro{font-family:Georgia,serif;font-size:18px;line-height:1.6;color:#9eb6c7;margin:0 0 25px}dialog dl{margin:0 0 26px;font-size:10px;line-height:1.5}dialog dl>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #b6cfdf18;padding:12px 0}dialog dt{color:#7893a6}dialog dd{margin:0;text-align:right}.model-note,.keyboard-note{font-size:10px;line-height:1.8;color:#8fa5b6}.keyboard-note{font-size:9px;color:#7692a7;margin-top:22px}.no-script{position:absolute;inset:0;z-index:10;display:grid;place-items:center;padding:30px;background:#08121d;text-align:center}:root{font-family:Arial,Helvetica,sans-serif;color:#e4ebef;background:var(--night, #07101f);font-synthesis:none;font-weight:400;color-scheme:dark;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:1px solid #d4e9f7;outline-offset:6px}button[hidden],[hidden]{display:none!important}#experience{position:relative;isolation:isolate;width:100%;height:100%;height:100svh;overflow:hidden;background:var(--night, #07101f)}.ambient{position:absolute;inset:0;background:var(--night, #07101f)}#stage{position:absolute;inset:0;z-index:1}#stage canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}#stage canvas:active{cursor:grabbing}.vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(2,7,12,.3),transparent 18%,transparent 75%,rgba(2,7,12,.58)),radial-gradient(ellipse at center,transparent 40%,rgba(2,7,12,.35) 100%)}.masthead,.identity,.detail-caption,.experience-footer{z-index:3;position:absolute;transition:opacity 1.4s ease,transform 1.4s ease}body:not(.is-ready) .identity,body:not(.is-ready) .detail-caption,body:not(.is-ready) .experience-footer{opacity:0;transform:translateY(12px);pointer-events:none}.masthead{top:max(35px,env(safe-area-inset-top));left:4.2%;right:4.2%;display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;gap:16px;text-decoration:none;color:#e2e8eb}.wordmark svg{width:25px;height:25px;fill:currentColor;opacity:.88}.wordmark span{font-size:13px;letter-spacing:3.4px;font-weight:500}.identity{left:8%;top:37%;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:4.2px;font-weight:400;margin:0;color:#a3b1bc}.identity h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(54px,5.5vw,83px);font-weight:400;line-height:1.12;letter-spacing:-3px;margin:13px 0 24px}.hairline{width:30px;height:1px;background:#a3bbc45c;margin-bottom:23px}.poem{font-size:10px;line-height:1.7;letter-spacing:.6px;color:#94a7b6;margin:0}.detail-caption{right:6%;top:51%;text-align:right;pointer-events:none;text-shadow:0 2px 15px #020711}.detail-number{font-size:8px;letter-spacing:3px;color:#728c9e}.detail-caption p{font-family:Georgia,serif;font-weight:400;font-size:19px;letter-spacing:.15px;margin:17px 0 10px;color:#ced9df}.detail-caption>span:last-child{font-size:9px;letter-spacing:.65px;color:#97adbd}.experience-footer{left:4.2%;right:4.2%;bottom:max(28px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:20px}.about-button{justify-self:start;display:flex;align-items:center;gap:10px;border:0;padding:14px 0;background:none;font-size:9px;letter-spacing:.7px;color:#98acb9}.about-button:hover{color:#eef7fc}.info-icon{display:grid;place-items:center;border:1px solid #7190a655;border-radius:50%;height:19px;width:19px;font-family:Georgia,serif;font-size:12px}.signature{justify-self:end;padding-bottom:17px;font-size:8px;letter-spacing:1.8px;color:#89a0b0}.signature span{margin-left:15px;color:#bed0dc}.navigation{text-align:center}.view-controls{display:flex;align-items:center;border:1px solid #acc5d326;border-radius:40px;padding:5px;background:#0b182482;box-shadow:0 10px 35px #02060b44;overflow:hidden}.view-controls button{position:relative;background:transparent;border:0;border-radius:30px;padding:14px 20px;min-height:44px;font-size:10px;letter-spacing:.4px;color:#8fa6b6;transition:background .35s,color .35s}.view-controls button:hover{color:#eff7fa}.view-controls button[aria-pressed=true]:not(.motion-button){color:#e7f1f8;background:#a2c4dc15}.control-divider{width:1px;height:16px;background:#a6bfcd26;margin:0 7px}.view-controls .motion-button{padding:12px;display:grid;place-items:center;min-width:44px}.motion-button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.2;fill:none}.motion-button[aria-pressed=true] .play-icon,.motion-button[aria-pressed=false] .pause-icon{display:none}.gesture-hint{display:flex;align-items:center;justify-content:center;gap:8px;font-size:8px;letter-spacing:.6px;color:#879dab;margin:14px 0 0}.drag-icon{font-size:15px;font-weight:400;line-height:12px;color:#7895aa}.touch-hint{display:none}@media(pointer:coarse){.desktop-hint{display:none}.touch-hint{display:inline}}@media(min-width:1600px){.identity{left:12%}.detail-caption{right:10%}}@media(max-width:1000px){.identity{left:5%}.detail-caption{right:4%}.identity h1{font-size:57px}.detail-caption p{font-size:17px}.signature{display:none}.experience-footer{grid-template-columns:1fr auto 1fr}.about-button>span:last-child{display:none}}@media(max-width:700px){.masthead{top:max(25px,env(safe-area-inset-top));left:24px;right:24px}.wordmark{gap:11px}.wordmark svg{width:22px;height:22px}.wordmark span{font-size:11px;letter-spacing:2.4px}.identity{top:108px;left:27px}.eyebrow{font-size:8px;letter-spacing:3px}.identity h1{font-size:44px;letter-spacing:-1.8px;margin:8px 0 0}.hairline,.poem{display:none}.detail-caption{top:auto;bottom:122px;right:27px}.detail-number{font-size:7px;letter-spacing:2px}.detail-caption p{font-size:15px;margin:10px 0 6px}.detail-caption>span:last-child{font-size:8px}.experience-footer{left:18px;right:18px;bottom:max(25px,env(safe-area-inset-bottom));display:flex;justify-content:center;gap:0}.about-button{position:fixed;left:24px;bottom:145px;min-width:44px;min-height:44px}.view-controls button{padding:12px 16px;font-size:9px;min-height:44px}.view-controls .motion-button{padding:10px}.control-divider{margin:0 4px}.gesture-hint{font-size:7px;letter-spacing:.25px;margin-top:13px}}@media(max-width:360px){.view-controls button{padding:12px}.identity{top:94px}}@media(max-height:550px)and (min-width:701px){.masthead{top:20px}.identity{top:30%}.identity h1{font-size:46px}.poem,.hairline{display:none}.experience-footer{bottom:15px}.gesture-hint{display:none}.detail-caption{top:44%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
