:root{--dusk: #1b1a2e;--dusk-deep: #131226;--plum: #2a2444;--plum-deep: #221d38;--timber: #6b4a35;--timber-dark: #46311f;--parchment: #e9d8ac;--mist: #a49fc6;--lantern: #ffb545;--lantern-glow: #ffd98a;--fern: #7bc47f;--ember: #e5674f;--font-display: "Press Start 2P", monospace;--font-body: "VT323", "Courier New", monospace;--frame-notch: polygon( 0 8px, 4px 8px, 4px 4px, 8px 4px, 8px 0, calc(100% - 8px) 0, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 8px, 100% 8px, 100% calc(100% - 8px) , calc(100% - 4px) calc(100% - 8px) , calc(100% - 4px) calc(100% - 4px) , calc(100% - 8px) calc(100% - 4px) , calc(100% - 8px) 100%, 8px 100%, 8px calc(100% - 4px) , 4px calc(100% - 4px) , 4px calc(100% - 8px) , 0 calc(100% - 8px) )}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(ellipse 120% 60% at 50% -10%,#2c2450 0%,transparent 60%),var(--dusk);color:var(--parchment);font-family:var(--font-body);font-size:20px;line-height:1.35;min-height:100vh}.world{max-width:1080px;margin:0 auto;padding:0 16px 48px}.pixel-frame{background:var(--plum);border:4px solid var(--timber);box-shadow:inset 0 0 0 3px var(--plum-deep);clip-path:var(--frame-notch);padding:16px}.panel-title{font-family:var(--font-display);font-size:11px;letter-spacing:1px;color:var(--lantern);text-transform:uppercase;margin:0 0 14px}.panel-foot{color:var(--mist);font-size:16px;margin:12px 0 0}.sky{position:relative;overflow:hidden;margin:16px 0 12px;border:4px solid var(--timber);clip-path:var(--frame-notch);background:linear-gradient(#151338,#251d4a 55%,#3a2a55);min-height:148px}.sky-stars{position:absolute;top:0;right:0;bottom:0;left:0;width:3px;height:3px;background:transparent;box-shadow:40px 22px #fff8e0,120px 48px #cfc6ff,210px 16px #fff8e0,300px 40px #9f93e6,390px 24px #fff8e0,470px 52px #cfc6ff,560px 14px #fff8e0,650px 44px #9f93e6,740px 20px #fff8e0,830px 50px #cfc6ff,920px 30px #fff8e0,1000px 18px #9f93e6,80px 70px #9f93e6,260px 66px #fff8e0,520px 74px #cfc6ff,700px 68px #fff8e0,880px 76px #9f93e6;animation:twinkle 4s steps(2) infinite}@keyframes twinkle{50%{opacity:.55}}.sky-moon{position:absolute;top:18px;right:72px;width:26px;height:26px;background:#f4ecd0;box-shadow:-7px 0 #251d4a inset,0 0 18px 4px #f4ecd040}.sky-hills{position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(var(--dusk-deep),var(--dusk-deep)) 0 100% / 100% 12px no-repeat,repeating-linear-gradient(90deg,#1e1a38 0,#1e1a38 60px,#191634 60px,#191634 140px,#221d40 140px,#221d40 220px);clip-path:polygon(0 60%,10% 40%,22% 62%,34% 30%,48% 58%,60% 36%,72% 60%,84% 42%,100% 58%,100% 100%,0 100%)}.sky-lantern{position:absolute;bottom:8px;left:34px;width:10px;height:14px;background:var(--lantern);border:3px solid var(--timber-dark);box-shadow:0 -8px 0 -1px var(--timber-dark),0 0 22px 6px #ffb54559;animation:flicker 2.6s steps(3) infinite}@keyframes flicker{0%,to{box-shadow:0 -8px 0 -1px var(--timber-dark),0 0 22px 6px #ffb54559}45%{box-shadow:0 -8px 0 -1px var(--timber-dark),0 0 16px 4px #ffb54540}70%{box-shadow:0 -8px 0 -1px var(--timber-dark),0 0 26px 8px #ffb54566}}.sky-inner{position:relative;display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 20px 40px}.logo{font-family:var(--font-display);font-size:22px;margin:0;color:var(--parchment);text-shadow:3px 3px 0 var(--dusk-deep)}.sky-date{margin:4px 0 0;color:var(--mist);font-size:17px}.xp-block{display:flex;align-items:center;gap:10px;flex:1;min-width:220px}.xp-level{font-family:var(--font-display);font-size:11px;color:var(--lantern)}.xp-nums{color:var(--mist);font-size:16px;white-space:nowrap}.sky-actions{display:flex;gap:8px;margin-left:auto}.meter{height:14px;flex:1;background:var(--dusk-deep);border:2px solid var(--timber-dark);overflow:hidden}.meter-fill{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--lantern) 0 6px,var(--lantern-glow) 6px 8px);transition:width .5s steps(8)}.fill-focus{background:repeating-linear-gradient(90deg,#7ea8f4 0,#7ea8f4 6px,#a9c6ff 6px,#a9c6ff 8px)}.fill-body{background:repeating-linear-gradient(90deg,var(--ember) 0 6px,#ff9377 6px 8px)}.fill-stillness{background:repeating-linear-gradient(90deg,#b48ce8 0,#b48ce8 6px,#d3b3ff 6px,#d3b3ff 8px)}.fill-creation{background:repeating-linear-gradient(90deg,var(--fern) 0 6px,#a4e0a6 6px 8px)}.grid{display:grid;gap:14px;grid-template-columns:repeat(12,1fr)}.signal{grid-column:1 / -1}.quest-board{grid-column:span 7}.stats,.field-notes{grid-column:span 5}.machines{grid-column:span 7}.machine-room{grid-column:1 / -1}@media (max-width: 820px){body{font-size:19px}.grid>*{grid-column:1 / -1}.sky-inner{padding:16px 14px 40px}.logo{font-size:18px}}.signal{display:flex;align-items:center;gap:12px;background:var(--plum-deep);border:3px solid var(--timber-dark);clip-path:var(--frame-notch);padding:10px 14px}.signal-dot{width:10px;height:10px;flex:none}.signal-quiet .signal-dot{background:var(--mist)}.signal-warm .signal-dot{background:var(--lantern);box-shadow:0 0 10px 2px #ffb54566}.signal-bright .signal-dot{background:var(--fern);box-shadow:0 0 10px 2px #7bc47f73}.signal-text{margin:0;flex:1}.signal-count{color:var(--mist);font-size:16px}.quest-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.quest{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;font-family:var(--font-body);font-size:19px;color:var(--parchment);background:var(--plum-deep);border:3px solid var(--timber-dark);padding:10px 12px;transition:transform .08s steps(2),background .15s}.quest:hover:not(:disabled){background:#2e2750}.quest:active:not(:disabled){transform:translateY(2px)}.quest:disabled{opacity:.7;cursor:wait}.quest-check{width:24px;height:24px;flex:none;display:grid;place-items:center;background:var(--dusk-deep);border:3px solid var(--timber);color:var(--fern);font-size:18px}.quest-done{border-color:#3c5a3f;background:#22302a}.quest-done .quest-check{border-color:var(--fern);animation:pop .25s steps(3)}.quest-done .quest-name{color:var(--fern)}.quest-done .quest-desc{text-decoration:line-through}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}to{transform:scale(1)}}.quest-icon{font-size:22px;flex:none}.quest-body{flex:1;display:grid}.quest-name{font-size:20px}.quest-desc{color:var(--mist);font-size:16px}.quest-xp{color:var(--lantern);font-size:16px;white-space:nowrap}.stat-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.stat-row{display:flex;align-items:center;gap:10px}.stat-icon{flex:none}.stat-name{width:88px;flex:none}.stat-pct{color:var(--mist);font-size:16px;width:44px;text-align:right}.note-capture{display:grid;gap:8px}.note-capture textarea{font-family:var(--font-body);font-size:19px;color:var(--parchment);background:var(--dusk-deep);border:3px solid var(--timber-dark);padding:10px;resize:vertical;min-height:56px}.note-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.note-item{background:var(--plum-deep);border-left:4px solid var(--lantern);padding:8px 10px;display:grid;gap:2px}.note-body{white-space:pre-wrap;overflow-wrap:anywhere}.note-time{color:var(--mist);font-size:15px}.note-empty{color:var(--mist)}.machine-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.machine{display:flex;align-items:center;gap:12px;background:var(--plum-deep);border:3px solid var(--timber-dark);padding:10px 12px}.machine-icon{font-size:22px;flex:none}.machine-body{flex:1;display:grid;gap:2px}.machine-name{font-size:20px}.machine-desc{color:var(--mist);font-size:16px}.machine-status{font-size:15px;color:var(--mist)}.status-accepted,.status-succeeded{color:var(--fern)}.status-failed{color:var(--ember)}.status-requested,.status-running{color:var(--lantern)}.status-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.status-item{display:flex;align-items:center;gap:8px;background:var(--plum-deep);padding:8px 10px;border:3px solid var(--timber-dark)}.status-lamp{width:10px;height:10px;flex:none}.lamp-ok{background:var(--fern);box-shadow:0 0 8px 1px #7bc47f80}.lamp-warn{background:var(--lantern);box-shadow:0 0 8px 1px #ffb54580}.status-label{color:var(--mist);font-size:16px}.status-value{margin-left:auto;font-size:17px;overflow-wrap:anywhere}.btn{font-family:var(--font-body);font-size:19px;cursor:pointer;color:var(--parchment);background:var(--timber);border:3px solid var(--timber-dark);box-shadow:0 3px 0 var(--timber-dark);padding:8px 14px;transition:transform .08s steps(2),box-shadow .08s steps(2)}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 0 var(--timber-dark)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--lantern);color:var(--dusk-deep);border-color:#a9752c;box-shadow:0 3px #a9752c}.btn-ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--mist)}.btn-ghost:hover:not(:disabled){color:var(--parchment)}.btn-icon{padding:6px 10px;font-size:18px;line-height:1}.btn-machine{flex:none}:focus-visible{outline:3px solid var(--lantern);outline-offset:2px}.gate{min-height:100vh;display:grid;place-items:center;padding:16px}.gate-card{width:min(420px,100%);display:grid;gap:12px;padding:28px 24px;position:relative}.gate-lantern{width:12px;height:16px;margin:0 auto;background:var(--lantern);border:3px solid var(--timber-dark);box-shadow:0 0 24px 8px #ffb5454d;animation:flicker 2.6s steps(3) infinite}.gate-title{font-family:var(--font-display);font-size:24px;text-align:center;margin:6px 0 0}.gate-sub{text-align:center;color:var(--mist);margin:0 0 8px}.field{display:grid;gap:4px}.field span{color:var(--mist);font-size:16px}.field input{font-family:var(--font-body);font-size:20px;color:var(--parchment);background:var(--dusk-deep);border:3px solid var(--timber-dark);padding:8px 10px}.demo-banner{background:#33290f;border:3px solid #7a5c1e;color:var(--lantern);padding:8px 12px;font-size:17px;margin:0 0 12px}.error-strip{background:#3a1f1a;border:3px solid var(--ember);color:#ffb3a3;padding:8px 12px;font-size:17px;margin:8px 0}.notice-strip{background:#1f3322;border:3px solid var(--fern);color:#c9ecc9;padding:8px 12px;font-size:17px;margin:8px 0}.boot{min-height:60vh;display:grid;place-items:center;color:var(--mist);font-size:22px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
