@font-face{font-family:'Instrument Sans';src:url('fonts/instrument-sans.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'DM Mono';src:url('fonts/dm-mono.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--p-bg:#08080b;--p-surface:#111115;--p-ink:#efedf2;--p-muted:#a29eac;--p-accent:#cab9ef;--p-accent-ink:#111115;--p-action:#e8e4ed;--p-action-ink:#16131b;--font-display:'Instrument Sans',sans-serif;--font-text:'Instrument Sans',sans-serif;--font-mono:'DM Mono',monospace;--display-weight:400;--display-tracking:-.04em;--nav:96px;--gut:56px;--r-btn:5px;--portal-x:50vw;--portal-y:40svh;--portal-size:760px;--t-h2:28px}
html{background:var(--p-bg);color-scheme:dark}
body{background:var(--p-bg);color:var(--p-ink);overflow-x:clip;-webkit-font-smoothing:antialiased}
::selection{background:#c7b6e6;color:#121016}
.wrap{width:calc(100% - 2 * var(--gut));max-width:1600px;margin-inline:auto}
.nav{height:var(--nav);background:transparent;border:none;position:absolute;z-index:5}
.nav__bar{display:flex;align-items:center;justify-content:space-between;height:100%;gap:24px}
.back-link{height:44px;display:flex;gap:14px;padding:0;font-size:18px;font-weight:400;letter-spacing:-.7px;min-width:0}
.back-link svg{width:17px;height:17px;stroke:#9b94a7;stroke-width:1.2;fill:none}
.back-link::before{left:31px;right:0}
.brand-dot{color:#c2a4e9}
.private-label{font:400 12px/1.5 var(--font-mono);color:#a39ba9;display:flex;align-items:center;gap:12px;letter-spacing:.015em}
.label-line{width:22px;height:1px;background:#7d6d91}
.skip-link{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.skip-link:focus{width:auto;height:auto;clip-path:none;left:20px;top:20px;padding:12px 20px;background:#eee;color:#111;z-index:99}
main>.threshold{height:100svh;min-height:720px;padding:0;position:relative;overflow:hidden;isolation:isolate}
.threshold>.entry-layout{height:100%;position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:80px 0 76px;gap:16px}
.scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:#08080b}
#portal{display:block;width:100%;height:100%;opacity:0;transition:opacity 800ms ease}
html[data-portal=ready] #portal{opacity:1}
.portal-fallback{position:absolute;left:var(--portal-x);top:var(--portal-y);width:var(--portal-size);max-width:none;height:auto;transform:translate(-50%,-50%);opacity:1;transition:opacity 800ms ease}
html[data-portal=ready] .portal-fallback{opacity:0}
.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,#08080b 0%,#08080be6 8%,transparent 36%,transparent 76%,#08080b80 100%)}
.wordmark-area{position:relative;width:100%;height:clamp(300px,48svh,500px);flex:none;display:grid;place-items:center}
.void-wordmark{font:400 clamp(88px,8vw,116px)/1 var(--font-display);letter-spacing:-.065em;color:#e7e3ed;margin:0;padding:0 0 .06em;text-align:center;position:relative;z-index:1;font-feature-settings:'ss01' on;user-select:none}
.wordmark-period{color:#bda6d8;font-size:.85em;margin-left:.015em}
.orbit-label{position:absolute;top:50%;display:flex;align-items:center;gap:16px;font:400 11px/1.5 var(--font-mono);letter-spacing:.02em;color:#8c8397;transform:translateY(-50%)}
.orbit-label--left{left:0}.orbit-label--right{right:0}
.orbit-tick{width:32px;height:1px;background:#74638266}
.access-panel{width:min(100%,320px);text-align:center;position:relative;z-index:3}
.access-panel h2{font:400 24px/1.2 var(--font-display);letter-spacing:-.035em;color:#d8d3df;margin:0 0 24px}
#access-form{margin:0}
.key-field{height:56px;display:flex;align-items:center;gap:8px;background:transparent;border:0;border-bottom:1px solid #ffffff30;border-radius:0;padding:0 0 7px;position:relative;transition:border-color 180ms ease}
.key-field:focus-within{border-bottom-color:#c2a4e9a3}
.key-field::after{content:'';position:absolute;height:1px;left:0;right:0;bottom:-1px;background:linear-gradient(90deg,transparent,#dfc9f0,transparent);transform:scaleX(0);opacity:0;transition:transform 350ms ease,opacity 250ms ease;pointer-events:none}
.key-field:focus-within::after{transform:scaleX(1);opacity:.75}
#access-key{flex:1;min-width:0;width:100%;height:46px;padding:0;border:0;border-radius:0;background:transparent;color:#f1eaf9;outline:none;box-shadow:none;font:400 16px/1.2 var(--font-text);letter-spacing:.01em}
#access-key::placeholder{color:#8f8699;opacity:1;font-size:15px;letter-spacing:0}
#access-key[type=password]:not(:placeholder-shown){letter-spacing:.2em}
#access-key:-webkit-autofill{-webkit-text-fill-color:#eee;box-shadow:0 0 0 60px #08080b inset;caret-color:#eee}
.reveal-key{width:36px;height:44px;display:grid;place-items:center;background:transparent;border:0;padding:0;color:#8e849a;cursor:pointer;flex:none;border-radius:4px;transition:color 140ms ease,background-color 140ms ease}
.reveal-key:hover{color:#e4d5f5}
.reveal-key svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2;grid-area:1/1}
.eye-closed{display:none}.reveal-key[aria-pressed=true] .eye-open{display:none}.reveal-key[aria-pressed=true] .eye-closed{display:block}
.enter-button.btn{flex:none;display:grid;place-items:center;width:40px;min-width:40px;height:44px;padding:0;border:0;border-radius:0;background:transparent;color:#ddd5e7}
.enter-button.btn:hover{color:#fff}
.enter-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;grid-area:1/1}
.enter-button .submit-spinner,.enter-button .submit-check{display:none}
.status-row{min-height:42px;padding-top:14px;position:relative}
.form-status{font:400 12px/1.6 var(--font-text);color:#9b90a6;margin:0;overflow-wrap:break-word}
.caps-warning{font:400 11px/1.6 var(--font-mono);color:#e2b78e;display:block;margin-top:4px}
.access-panel[data-state=submitting] .enter-arrow{display:none}
.access-panel[data-state=submitting] .submit-spinner{display:block;stroke-dasharray:30 14;animation:wait-spin 1.1s linear infinite}
.access-panel[data-state=submitting] .key-field{border-color:#bda3dc66}
.access-panel[data-state=submitting] .form-status{color:#c7b9d7}
.access-panel[data-state=granted] .enter-arrow{display:none}
.access-panel[data-state=granted] .submit-check{display:block}
.access-panel[data-state=granted] .key-field{border-color:#c6b8df}
.access-panel[data-state=granted] .form-status{color:#d5c4e8}
.access-panel:is([data-state=invalid],[data-state=expired],[data-state=limited],[data-state=error]) .key-field{border-color:#bd8e7470}
.access-panel:is([data-state=invalid],[data-state=expired],[data-state=limited],[data-state=error]) .form-status{color:#e2bba5}
.key-field :disabled{cursor:wait}
@keyframes wait-spin{to{transform:rotate(360deg)}}
.no-script{font-size:14px;color:#dcc4b1;margin-top:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.void-footer{position:absolute;bottom:0;left:0;right:0;height:80px;z-index:4;pointer-events:none}
.footer-row{height:100%;display:flex;justify-content:flex-end;align-items:center;gap:24px}
.footer-credit{font:400 12px/1.6 var(--font-text);color:#8d8497;pointer-events:auto}
.footer-credit a{color:#b9accc;display:inline-block}
.footer-center{display:flex;align-items:center;gap:12px;font:400 10px/1.5 var(--font-mono);letter-spacing:.02em;color:#796f86}
.footer-center span{height:1px;width:24px;background:#84729340}
.motion-control{display:flex;align-items:center;gap:10px;background:transparent;border:0;border-radius:4px;color:#a497b3;font:400 12px/1.5 var(--font-text);cursor:pointer;height:44px;padding:0;pointer-events:auto;transition:color 140ms ease}
.motion-control:hover{color:#e1d0f0}
.motion-mark{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.2}
.motion-control[aria-pressed=true] .motion-mark{opacity:.45}
a:focus-visible,button:focus-visible{outline:2px solid #cbb0e8;outline-offset:5px}
#access-key:focus-visible{outline:none}
@media(min-width:1800px){.wordmark-area{height:clamp(400px,50svh,600px)}.void-wordmark{font-size:132px}}
@media(max-width:1100px){:root{--gut:40px}.orbit-label{font-size:10px;gap:12px}.orbit-tick{width:20px}.orbit-label--left{top:16%}.orbit-label--right{top:84%}.footer-center{display:none}.void-wordmark{font-size:104px}}
@media(max-width:639px){
 :root{--gut:24px;--nav:80px}
 .back-link{font-size:17px;gap:10px}.back-link svg{width:15px;height:15px}.private-label{font-size:11px;gap:8px}.label-line{width:16px}
 main>.threshold{min-height:720px}
 .threshold>.entry-layout{padding-top:72px;padding-bottom:100px;gap:0}
 .wordmark-area{height:clamp(280px,46svh,420px)}
 .void-wordmark{font-size:88px}
 .orbit-label{display:none}
 .access-panel{width:min(100%,300px)}.access-panel h2{font-size:23px;margin-bottom:22px}
 .key-field{height:54px;padding:0 0 6px;gap:6px}.enter-button.btn{width:36px;height:44px;min-width:36px}.reveal-key{width:32px}
 .form-status{font-size:12px}.status-row{padding-top:14px;min-height:46px}
 .void-footer{height:76px}.footer-credit{font-size:11px}.motion-control{font-size:11px;gap:8px}
}
@media(max-height:740px) and (min-width:640px){main>.threshold{min-height:640px}.wordmark-area{height:300px}.threshold>.entry-layout{padding-top:80px;padding-bottom:70px;gap:0}.void-wordmark{font-size:96px}.void-footer{height:64px}}
@media(max-height:719px){.void-footer{position:relative;margin-top:-76px}.threshold>.entry-layout{padding-bottom:100px}.wordmark-area{height:280px}}
@media(prefers-reduced-motion:reduce){#portal,.portal-fallback,.key-field,.key-field::after{transition:none}.submit-spinner{animation:none!important}.motion-control{display:none!important}}

/* The avatar content stays vector-sharp while the particle field moves around it. */
.avatar-content{display:grid;place-items:center;transform-origin:center;will-change:transform;pointer-events:none;max-width:100%}
.avatar-message{width:220px;max-width:100%;font:400 22px/1.35 var(--font-text);letter-spacing:-.025em;color:var(--p-ink);text-align:center;margin:0;overflow-wrap:anywhere}
.avatar-content[data-message]:not([data-compact]) .void-wordmark{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0}
@media(max-width:639px){.avatar-message{width:150px;font-size:17px;line-height:1.3}}

.avatar-message{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.avatar-content[data-compact] .avatar-message{display:none}
