@font-face{font-family:Wordmark;src:url('assets/wordmark.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Mono;src:url('assets/mono.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:dark;--background:#050505;--ink:#e8e6e1;--subtle:#94938f;--ember:#ce734d}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
body{background:var(--background);color:var(--ink);font-family:Wordmark,Arial,sans-serif;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:1px solid var(--ink);outline-offset:6px}
.experience{height:100svh;height:100dvh;width:100%;position:relative;isolation:isolate;overflow:hidden;touch-action:pinch-zoom}
.artwork{position:absolute;inset:0;z-index:-1;overflow:hidden;user-select:none;-webkit-user-select:none}
#scene{display:block;width:100%;height:100%;opacity:0}
.gpu-ready #scene{opacity:1}
.fallback-portrait{position:absolute;left:50%;top:5.5%;width:min(91vh,72vw);transform:translateX(-50%);filter:saturate(.49);mask-image:linear-gradient(black 63%,transparent 96%);pointer-events:none}
.gpu-ready .fallback-portrait{opacity:0}
.identity{position:absolute;top:max(35px,5.3dvh);left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:18px;font-family:Mono,monospace;font-size:12px;letter-spacing:.16em;color:#aaa9a4;white-space:nowrap;animation:arrive 1.5s ease backwards}
.pair-divider{font-family:Arial,sans-serif;color:#655b52;font-size:14px}
.signature{position:absolute;top:62%;left:0;width:100%;text-align:center;z-index:2}
h1{font-weight:500;font-size:clamp(72px,min(12.1vw,16.5vh),210px);line-height:1.06;letter-spacing:-.045em;margin:0;padding-right:.045em;color:var(--ink);text-shadow:0 3px 35px #05050560;animation:signature-arrive 1.7s cubic-bezier(.2,.8,.2,1) backwards;transition:color 1.2s ease}
.ticker{margin:14px 0 0;font-family:Mono,monospace;font-size:12px;line-height:16px;letter-spacing:.15em;color:#a6a29c;animation:arrive 1.5s .2s ease backwards}
.controls{display:flex;align-items:center;justify-content:center;gap:17px;margin-top:12px;animation:arrive 1.5s .3s ease backwards}
.stealth-switch{border:0;background:none;display:flex;align-items:center;justify-content:center;gap:11px;padding:10px 0;font-size:13px;letter-spacing:.025em;color:var(--subtle);min-height:44px;transition:color .25s}
.stealth-switch:hover{color:var(--ink)}
.switch-track{display:block;width:27px;height:15px;border:1px solid #777570;border-radius:20px;padding:3px;transition:border-color .5s}
.switch-track span{display:block;width:7px;height:7px;background:#a6a39d;border-radius:50%;transition:transform .45s cubic-bezier(.2,.8,.2,1),background .45s}
.address-wrap{position:absolute;bottom:max(42px,4.8dvh);left:50%;transform:translateX(-50%);width:min(90%,620px);display:flex;justify-content:center;animation:arrive 1.5s .4s ease backwards}
.dev-note{position:absolute;top:100%;left:0;width:100%;margin:5px 0 0;font-family:Wordmark,'Malgun Gothic',sans-serif;font-size:12px;line-height:1.7;font-weight:400;text-align:center;color:#939089;word-break:keep-all}
.dev-note span{white-space:nowrap}
.address{border:0;background:none;padding:12px 16px;min-height:44px;display:flex;justify-content:center;align-items:center;gap:20px;font-family:Mono,monospace;font-size:12px;letter-spacing:.015em;max-width:100%}
.address:disabled{cursor:default}
.address-label{color:#706c66;font-size:11px;letter-spacing:.14em}
.address-value{color:#b7b3ac;overflow-wrap:anywhere;text-align:center}
.copy-icon{width:16px;height:16px;stroke:currentColor;stroke-width:1;fill:none;flex-shrink:0}
.address:disabled .copy-icon{display:none}
.address:not(:disabled):hover .address-value{color:var(--ink)}
.announcement{position:absolute;top:max(72px,10dvh);left:50%;transform:translateX(-50%);font-family:Mono,monospace;font-size:12px;opacity:0;transition:opacity .2s;pointer-events:none;color:#b5b0a7;text-align:center;width:90%}
.announcement.visible{opacity:1}
.stealth-on .switch-track{border-color:var(--ember)}
.stealth-on .switch-track span{transform:translateX(12px);background:var(--ember)}
.stealth-on h1{color:#b0aca5}
.stealth-on:not(.gpu-ready):not(.entering-stealth) .fallback-portrait{opacity:.04}
@keyframes arrive{from{opacity:0}to{opacity:1}}
@keyframes signature-arrive{from{opacity:0;transform:translateY(15px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(max-width:650px){.identity{top:max(30px,5.5dvh);font-size:11px;gap:15px}.signature{top:65%}h1{font-size:18.2vw;letter-spacing:-.045em}.controls{margin-top:12px}.address-wrap{bottom:max(60px,7dvh)}.fallback-portrait{width:min(138vw,83vh);top:15.5%}}
@media(max-height:620px) and (min-width:651px){.identity{top:21px}.signature{top:43%}h1{font-size:18vh}.ticker{margin-top:8px}.controls{margin-top:5px}.address-wrap{bottom:38px}.address,.stealth-switch{min-height:36px;height:36px}}
@media(max-height:620px) and (max-width:650px){.identity{top:25px}.signature{top:54%}.controls{margin-top:12px}.address-wrap{bottom:50px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){.stealth-on .fallback-portrait{opacity:.04}}
