@font-face{font-family:Geologica;src:url('./Geologica-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:dark;--ink:#eff3ee;--muted:#b1bbc2;--accent:#a7d8c7;--ground:#05080f}
*{box-sizing:border-box}html{min-height:100%;background:var(--ground)}body{margin:0;min-height:100svh;color:var(--ink);font:400 16px/1.65 Geologica,Arial,sans-serif;position:relative;isolation:isolate}body[data-scene=coast]{--ground:#080b12}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{cursor:wait;opacity:.7}a{color:inherit;text-decoration:none}
.landscape{position:fixed;inset:0;overflow:hidden;z-index:-3;background:var(--ground);pointer-events:none}.landscape canvas{position:absolute;width:max(100vw,200svh)!important;height:auto;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%)}.veil{position:fixed;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,rgba(5,8,15,.85),rgba(5,8,15,.5) 36%,transparent 73%),linear-gradient(0deg,rgba(5,8,15,.72),transparent 20%,transparent 82%,rgba(5,8,15,.3))}
header{padding:34px 5vw}.wordmark{display:inline-block;font-size:27px;line-height:1;letter-spacing:-1.7px}.wordmark span{color:var(--muted);font-size:15px;letter-spacing:-.5px;margin-left:2px}
main{margin-left:10vw;max-width:560px;padding-bottom:150px}.home-content{padding-top:clamp(70px,12svh,160px)}h1{font-weight:400;letter-spacing:-.045em;line-height:1.13;font-size:clamp(38px,4.5vw,68px);margin:0 0 30px}.intro{font-size:17px;color:var(--muted);line-height:1.8;margin:0 0 40px}.invitation{display:inline-flex;gap:30px;align-items:center;padding:10px 0;background:none;color:var(--ink);border:0;border-bottom:1px solid #b1bbc24d;font-size:15px}.invitation span{color:var(--accent);font-size:20px}.invitation:hover{border-color:var(--accent)}.invitation-help{color:var(--muted);font-size:14px;margin:20px 0 0;max-width:320px}.invitation-help[hidden]{display:none}
.login-content{padding-top:clamp(10px,5svh,65px);max-width:420px}.login-content h1{font-size:clamp(34px,3.5vw,50px);margin-bottom:20px}.login-content .intro{font-size:15px;margin-bottom:28px}form{max-width:340px}label{display:block;font-size:13px;margin:18px 0 8px;color:var(--muted)}input:not([type=hidden]){color:var(--ink);width:100%;min-height:48px;background:#080b128c;border:1px solid #b1bbc24d;border-radius:5px;padding:10px 14px;outline-offset:3px}input:hover{border-color:#b1bbc285}input:focus{border-color:var(--accent)}.password-field{position:relative}.password-field input{padding-right:50px}.password-field button{position:absolute;right:3px;top:3px;bottom:3px;width:43px;border:0;background:none;color:var(--muted);display:grid;place-items:center}.form-error{font-size:13px;color:#f0baae;min-height:22px;margin:14px 0 10px;line-height:1.5}.submit{background:var(--ink);color:#10181b;border:0;border-radius:5px;width:100%;min-height:48px;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;font-size:15px}.submit:hover{background:#d5e5dc}.submit span{font-size:21px}.quiet{font-size:12px;color:var(--muted);margin:24px 0 0;line-height:1.75}
footer{position:absolute;bottom:0;width:100%;padding:25px 5vw;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:11px}.credit{opacity:.6;border:0;background:none;color:inherit;font-size:11px;padding:10px 0}.credit:hover{opacity:1}.scene-controls{display:flex;align-items:center;gap:8px}.scene-controls button{min-height:42px;min-width:42px;border:1px solid #b1bbc233;color:var(--ink);background:#080b1270;border-radius:50%;display:grid;place-items:center;font-size:19px}.scene-controls button:hover{border-color:var(--accent)}.hint{font-size:12px;margin-right:15px;white-space:nowrap;min-width:210px;text-align:right}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.missing-content{padding-top:20px}.missing-content h1{font-size:clamp(34px,3.5vw,50px)}#ghost{font:12px/1.1 ui-monospace,Consolas,monospace;color:var(--muted);margin:0 0 25px;width:max-content}
@media(max-width:650px){header{padding:27px 7vw}.wordmark{font-size:25px}main{margin:0 8vw;max-width:none}.home-content{padding-top:14svh}.intro{font-size:15px}.veil{background:linear-gradient(90deg,#05080fbf,#05080f50),linear-gradient(0deg,#05080fcc,transparent 25%,transparent 75%,#05080f44)}footer{padding:20px 7vw;align-items:flex-end}.credit{max-width:130px;font-size:9px}.scene-controls{position:relative}.hint{position:absolute;right:0;bottom:52px;min-width:250px;margin:0;font-size:11px}.login-content{padding-top:5svh}form{max-width:100%}.login-content h1{font-size:40px}.missing-content{padding-top:2svh}body[data-scene=fjord] .landscape canvas{left:58%;transform:translate(-75%,-50%)}body[data-scene=coast] .landscape canvas{left:50%;transform:translate(-16%,-50%)}#ghost{font-size:10px}.quiet{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

dialog{color:var(--ink);background:#101820;border:1px solid #b1bbc240;border-radius:10px;padding:28px;max-width:min(420px,86vw);font-size:14px}dialog::backdrop{background:#05080fbf;backdrop-filter:blur(5px)}dialog h2{font-weight:400;font-size:22px;margin:0 0 20px}dialog p{color:var(--muted)}dialog a{border-bottom:1px solid #b1bbc260}dialog a:hover{color:var(--ink)}dialog button{color:var(--ink);background:none;border:1px solid #b1bbc240;border-radius:5px;padding:8px 16px}.license-links{font-size:12px}
.home-content{max-width:680px}.home-content h1{font-size:clamp(30px,3.5vw,60px)}.home-content h1 span{white-space:nowrap}@media(max-width:650px){.home-content h1{font-size:clamp(24px,7.8vw,46px)}}