
:root{color-scheme:dark;--bg:#090e19;--paper:#e9e6df;--muted:#a6abba;--gold:#dfc48a;--line:#ffffff20}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--bg);color:var(--paper);font:16px/1.7 'Manrope',system-ui,sans-serif}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:fixed;left:42px;right:38px;top:30px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.wordmark{pointer-events:none}.wordmark h1{font:400 30px/1.5 'Noto Serif SC',serif;letter-spacing:9px;margin:0}.wordmark p{font-size:11px;letter-spacing:4px;color:var(--muted);margin:4px 0}header button{pointer-events:auto;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 0;font-size:13px;color:var(--muted)}header button:hover{color:var(--paper)}.corner{position:fixed;left:43px;bottom:34px;display:flex;flex-direction:column;font-size:10px;letter-spacing:2px;color:#a8adb7;pointer-events:none}.corner span+span{font-size:9px;color:#697486;margin-top:5px;letter-spacing:1px}.invitation{position:fixed;left:50%;top:46%;transform:translate(-50%,-50%);text-align:center;padding:35px 50px;width:max-content;max-width:94vw;transition:opacity .6s,filter .6s;background:radial-gradient(ellipse,#090e19ea 10%,#090e1970 50%,transparent 72%)}.invitation.gone{opacity:0;filter:blur(8px);pointer-events:none}.eyebrow{font-size:11px;letter-spacing:4px;color:var(--gold)}.invitation h2{font:400 clamp(36px,5vw,64px)/1.5 'Noto Serif SC',serif;letter-spacing:9px;margin:18px 0 30px;text-shadow:0 0 50px #090e19}.invitation button{background:#dfc48a;border:1px solid #f5e0b7;color:#20232b;border-radius:2px;font-size:15px;padding:13px 26px;letter-spacing:3px;box-shadow:0 0 45px #dfc48a15}.invitation button:hover{background:#f3dbab}.invitation button span{display:block;font-size:10px;letter-spacing:2px;margin-top:2px;opacity:.65}.quietnote{color:#9198a6;font-size:10px;margin:16px 0 0;letter-spacing:1px}.dock{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:4px;padding:7px 10px;border:1px solid #8fa3b730;background:#0d1523dc;backdrop-filter:blur(18px);border-radius:9px;white-space:nowrap;box-shadow:0 10px 50px #0005}.dock button{border:0;background:none;color:#bbc3cc;font-size:13px;padding:8px 12px;min-height:39px;border-radius:4px;transition:color .2s,background .2s}.dock button:hover{background:#ffffff0b;color:#fff}.dock .selected{background:#dfc48a16;color:var(--gold)}.tools{display:flex;gap:2px}.symbol{font-size:20px;line-height:0;vertical-align:-1px;margin-right:4px}.divider{height:22px;margin:9px 7px;background:var(--line);width:1px}.caption{position:fixed;left:50%;bottom:102px;transform:translateX(-50%);font-size:12px;color:#aab3c1;letter-spacing:2px;text-align:center;pointer-events:none;max-width:90vw;width:max-content;opacity:0;transition:opacity .8s}.caption.on{opacity:1}#smallprint{position:fixed;right:38px;bottom:35px;font-size:10px;letter-spacing:2px;color:#647084;pointer-events:none}dialog{border:1px solid #63718755;color:var(--paper);background:#101927;width:580px;max-width:92vw;max-height:84vh;padding:32px;border-radius:8px;box-shadow:0 20px 100px #0007}dialog::backdrop{background:#02070ed9;backdrop-filter:blur(8px)}dialog h2{font:400 28px/1.6 'Noto Serif SC',serif;margin:16px 0 23px}#close{position:absolute;right:16px;top:11px;background:none;border:0;color:var(--muted);font-size:28px}.tabs{display:flex;gap:15px;border-bottom:1px solid var(--line);margin-bottom:19px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:7px 0;font-size:14px;color:var(--muted)}.tabs button[aria-selected=true]{color:var(--gold);border-color:var(--gold)}.pane p{font-size:14px;color:#bbc3cf;margin:12px 0;line-height:1.9}.pane a{font-size:13px;color:var(--gold)}.facts{display:flex;flex-wrap:wrap;gap:20px;font-size:11px;border-top:1px solid var(--line);padding-top:18px;margin-top:25px;color:#8f9bad}.example{background:#dfc48a18;border:1px solid #dfc48a50;border-radius:4px;color:var(--gold);font-size:13px;padding:9px 16px;margin-top:10px}[hidden]{display:none!important}@media(max-width:1100px){.corner{bottom:100px;left:24px}#smallprint{display:none}header{left:25px;right:25px;top:24px}}@media(max-width:600px){header{left:23px;right:23px;top:max(21px,env(safe-area-inset-top))}.wordmark h1{font-size:23px;letter-spacing:6px}.wordmark p{font-size:9px;letter-spacing:2px}header button{font-size:11px;padding:7px 0}.dock{width:calc(100% - 26px);max-width:420px;justify-content:center;gap:0;flex-wrap:wrap;bottom:max(17px,env(safe-area-inset-bottom));padding:5px 7px}.dock button{font-size:12px;padding:6px 9px}.divider{margin:8px 3px}.symbol{font-size:17px}.dock #undo{display:none}.corner{bottom:110px;font-size:9px;left:22px}.corner span+span{display:none}.caption{bottom:147px;font-size:11px;letter-spacing:1px}.invitation{top:43%;padding:25px 20px}.invitation h2{font-size:39px;letter-spacing:6px}.invitation .eyebrow{font-size:10px;letter-spacing:2px}.quietnote{font-size:9px}.invitation button{font-size:14px;padding:12px 22px}dialog{padding:25px}dialog h2{font-size:24px}.tabs{gap:16px}.tabs button{font-size:13px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Touch-first correction: retain undo and give every mobile tool a 44px target. */
@media(max-width:600px){
 .dock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:7px;width:calc(100% - 26px)}
 .dock .tools{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:3px}
 .dock .divider{display:none}
 .dock button{font-size:14px;min-height:44px;padding:7px 4px}
 .dock #undo{display:block}
 .dock #newScene{grid-column:span 2}
 header button{font-size:14px;min-height:44px}
 .corner{top:102px;bottom:auto;font-size:10px}
 .caption{bottom:137px}
}
/* Leave room for Sites owner controls without hiding the instrument's own tools. */

