:root{color:#f4ead7;background:#090c16;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}.shell{background:radial-gradient(circle at 50% 25%,#27314f 0,#0000 42%),linear-gradient(155deg,#090c16,#111827);place-items:center;min-height:100vh;padding:24px;display:grid}.stage{aspect-ratio:5/3;border:1px solid #7f704f;border-radius:18px;width:min(100%,1280px);position:relative;overflow:hidden;box-shadow:0 30px 90px #000a}#town-canvas,#ui-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}#town-canvas{visibility:hidden;background:#071126}.stage[data-scene=town] #town-canvas{visibility:visible}#ui-canvas{z-index:1;background:0 0}#ui-canvas[data-town-spine=running]{touch-action:none}.login-card{z-index:4;color:#3b2619;background:linear-gradient(#fff9e8ee,#ead8b8f2),#f5e7ca;border:2px solid #d2b16d;border-radius:18px;gap:10px;width:min(88%,430px);padding:30px 34px 26px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #000c,inset 0 0 0 4px #6c432a55}.login-card[hidden]{display:none}.login-card__eyebrow{color:#9c251e;letter-spacing:.12em;text-align:center;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:800}.login-card h1{color:#4b2819;text-align:center;margin:0 0 8px;font-size:clamp(1.55rem,4vw,2rem)}.login-card label{font-size:.88rem;font-weight:750}.login-card input{color:#27180f;width:100%;height:48px;font:inherit;background:#fffdf5;border:2px solid #8b6649;border-radius:9px;outline:none;padding:0 14px;box-shadow:inset 0 2px 5px #55301e22}.login-card input:focus{border-color:#5b922b;box-shadow:0 0 0 3px #8ecf493d}.login-card button{color:#20330d;height:50px;font:inherit;cursor:pointer;background:linear-gradient(#9bea22,#65b500);border:2px solid #4d711f;border-radius:10px;margin-top:8px;font-size:1rem;font-weight:850;box-shadow:inset 0 2px #d7ff73,0 3px #31570f}.login-card button:disabled{opacity:.58;cursor:wait;filter:grayscale(.4)}.login-card__status{color:#654531;text-align:center;min-height:1.25em;margin:4px 0 0;font-size:.82rem}.login-card__status[data-state=error]{color:#a11919;font-weight:750}.status-panel{z-index:3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080b14dd;border:1px solid #ae996b88;border-radius:14px;width:min(90%,620px);padding:30px;transition:all .25s;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.stage[data-ready=true] .status-panel{display:none}.stage[data-running=true] .status-panel{opacity:.72;width:min(74%,440px);padding:12px 16px;inset:auto auto 14px 14px;transform:none}.stage[data-running=true] .status-panel:hover{opacity:.96}.stage[data-running=true] .eyebrow,.stage[data-running=true] h1,.stage[data-running=true] #runtime-log{display:none}.stage[data-running=true] #runtime-status{margin:0;font-size:.9rem}.eyebrow{color:#d9bd7b;letter-spacing:.14em;text-transform:uppercase}h1{margin:.25rem 0 1rem}#runtime-status[data-state=ok]{color:#7ee2a8}#runtime-status[data-state=error]{color:#ff8d8d}#runtime-log{overflow-wrap:anywhere;color:#b7c1d8;white-space:pre-wrap;min-height:3.5rem;margin:1rem 0 0}@media (width<=640px){.shell{padding:0}.stage{border:0;border-radius:0;width:100vw}.login-card{padding:20px 22px 18px}.login-card input,.login-card button{height:44px}}
