@font-face{font-family:DejaVu Sans Mono;src:url(../fonts/dejavu-sans-mono-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:DejaVu Sans Mono;src:url(../fonts/dejavu-sans-mono-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:block}:root{--bg: #0a0d0a;--panel: #0f140e;--amber: #caa34e;--amber-hot: #ffb43a;--orange: #ff9a1f;--edge: #2a3322;--mono: "DejaVu Sans Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--amber);font-family:var(--mono);overflow:hidden;-webkit-font-smoothing:none}body{display:flex;flex-direction:column}#toolbar{display:flex;align-items:center;gap:14px;padding:8px 12px;background:linear-gradient(#0f140e,#0a0d0a);border-bottom:1px solid var(--edge);-webkit-user-select:none;user-select:none}#toolbar>button{line-height:14px}@media(max-width:919px){#toolbar{flex-wrap:wrap}}button.counter{font-weight:700;letter-spacing:1px;color:var(--amber-hot);background:transparent;border-color:var(--edge);text-shadow:0 0 8px rgba(255,154,31,.35);min-width:64px}@media(hover:hover){button.counter:hover{color:#0a0d0a;background:var(--amber-hot);border-color:var(--amber-hot);text-shadow:none}}.palette{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,min-content);gap:4px 6px;align-self:center}.palette button{white-space:nowrap;padding:3px 9px;line-height:1.2}.spacer{flex:1}.objective{font-weight:700;letter-spacing:1px;color:var(--amber-hot);text-shadow:0 0 8px rgba(255,154,31,.35);min-width:168px}button.run{color:#0a0d0a;background:var(--orange);border-color:var(--orange)}@media(hover:hover){button.run:hover{box-shadow:0 0 12px #ff9a1f99}}button:disabled{opacity:.4;cursor:default;pointer-events:none}button{font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:.5px;color:var(--amber);background:#141a12;border:1px solid #55492a;border-radius:4px;padding:6px 11px;cursor:pointer;transition:all 90ms ease}@media(hover:hover){button:hover{color:#0a0d0a;background:var(--orange);border-color:var(--orange);box-shadow:0 0 10px #ff9a1f80}}button:active{transform:translateY(1px)}button.ghost{color:var(--amber)}@media(hover:hover){button.ghost:hover{color:#0a0d0a;background:#6f5e32;border-color:#6f5e32;box-shadow:none}}.node-name{position:fixed;transform:translate(-50%,-50%);z-index:20;width:84px;text-align:center;font-family:var(--mono);font-weight:700;font-size:12px;color:var(--amber-hot);background:#141a12;border:1px solid var(--orange);border-radius:4px;padding:3px 4px;outline:none;box-shadow:0 0 10px #ff9a1f80}.par-chip{align-self:center;white-space:nowrap;font-size:12px;font-weight:700;color:var(--amber);padding:0 6px}.state-count{align-self:center;white-space:nowrap;font-size:12px;font-weight:700;color:var(--amber-hot);padding:0 4px}button.ghost.on{color:#0a0d0a;background:var(--amber);border-color:var(--amber)}#levels-open,#view-toggle,#minimize,#run,#speed,#step,#impossible,#next,#reset,#mute,#help-open,#feedback-open,#update-nudge{min-height:42px}#update-nudge{color:var(--amber-hot);border-color:var(--orange);animation:next-pulse 1.4s ease-in-out infinite}#update-nudge[hidden]{display:none}@keyframes next-pulse{0%,to{box-shadow:0 0 4px #ff9a1f59}50%{box-shadow:0 0 16px #ff9a1fd9}}#next.pulse{color:var(--amber-hot);border-color:var(--orange);animation:next-pulse 1.4s ease-in-out infinite}button.declare{color:var(--amber)}@media(hover:hover){button.declare:hover{color:#0a0d0a;background:var(--amber);border-color:var(--amber);box-shadow:0 0 10px #caa34e80}}.hint-banner{--cy-pink: #f04fd0;position:fixed;z-index:5;max-width:360px;padding:10px 16px 20px;font-size:12px;line-height:1.4;color:#eadfe8;background:var(--cy-pink);clip-path:polygon(0 12px,6px 12px,6px 6px,12px 6px,12px 0,calc(100% - 12px) 0,calc(100% - 12px) 6px,calc(100% - 6px) 6px,calc(100% - 6px) 12px,100% 12px,100% calc(100% - 24px),calc(100% - 6px) calc(100% - 24px),calc(100% - 6px) calc(100% - 18px),calc(100% - 12px) calc(100% - 18px),calc(100% - 12px) calc(100% - 12px),calc(100% - 26px) calc(100% - 12px),calc(100% - 30px) 100%,calc(100% - 44px) calc(100% - 12px),12px calc(100% - 12px),12px calc(100% - 18px),6px calc(100% - 18px),6px calc(100% - 24px),0 calc(100% - 24px));cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:10px}.hint-banner:before{content:"";position:absolute;top:4px;right:4px;bottom:16px;left:4px;z-index:-1;background:#11160f;clip-path:polygon(0 10px,5px 10px,5px 5px,10px 5px,10px 0,calc(100% - 10px) 0,calc(100% - 10px) 5px,calc(100% - 5px) 5px,calc(100% - 5px) 10px,100% 10px,100% calc(100% - 10px),calc(100% - 5px) calc(100% - 10px),calc(100% - 5px) calc(100% - 5px),calc(100% - 10px) calc(100% - 5px),calc(100% - 10px) 100%,10px 100%,10px calc(100% - 5px),5px calc(100% - 5px),5px calc(100% - 10px),0 calc(100% - 10px))}.hint-banner[hidden]{display:none}.hint-banner b{color:#56dcd6}.hint-banner .dismiss{position:absolute;top:7px;right:9px;padding:2px 5px;color:#ffc7ea;font-weight:700;font-size:14px;line-height:1}.hint-banner{padding-right:30px}#stage{flex:1;min-height:0;display:block;width:100%;cursor:default;touch-action:none;-webkit-tap-highlight-color:transparent}#task-plate{padding:9px 14px 7px;background:#0c0f0b;border-bottom:1px solid var(--edge);-webkit-user-select:none;user-select:none}#task-plate .objective{font-size:16px;letter-spacing:1.5px;min-width:0}#task-plate.fresh .objective{animation:task-fresh .9s ease-out 2}@keyframes task-fresh{0%,to{color:var(--amber-hot)}40%{color:#fff3d6}}#reveal{background:#05070561;-webkit-backdrop-filter:none;backdrop-filter:none}.reveal-panel{display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 28px 16px;background:linear-gradient(#0f140e,#0a0d0a);border:1px solid var(--orange);border-radius:6px;box-shadow:0 0 40px #ff9a1f40,0 0 40px #0009;cursor:pointer;-webkit-user-select:none;user-select:none;animation:reveal-in .26s cubic-bezier(.2,1.4,.4,1)}@keyframes reveal-in{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.reveal-title{font-weight:700;font-size:16px;letter-spacing:3px;color:var(--amber-hot);text-shadow:0 0 10px rgba(255,154,31,.5)}#reveal-canvas{border:1px solid var(--edge);border-radius:4px}.reveal-buttons{display:flex;align-items:center;gap:8px}.reveal-buttons button{pointer-events:none}.reveal-buttons .tie{font-size:11px;color:#6f5e32}.reveal-blurb{font-size:14px;letter-spacing:.5px;color:#e6c47c;max-width:430px;text-align:center;line-height:1.45;white-space:pre-line}.reveal-lead{font-size:15px;font-weight:700;letter-spacing:1.5px;color:var(--amber-hot);text-shadow:0 0 10px rgba(255,154,31,.4)}.reveal-lead[hidden]{display:none}.reveal-dismiss{font-size:11px;color:#6f5e32;margin-top:2px}.reveal-panel{position:relative}.cy-presenter{--cy-size: 300px;position:absolute;width:var(--cy-size);height:var(--cy-size);right:calc(var(--cy-size) * -.42);bottom:calc(var(--cy-size) * -.14);pointer-events:none;z-index:5}.cy-presenter[hidden]{display:none}#title-cy{--cy-size: 360px}.reveal-panel.earned-panel{border:3px double var(--orange);box-shadow:0 0 55px #ff9a1f66,0 0 40px #0009;width:min(560px,88vw)}.earned-panel .reveal-blurb{max-width:360px}.earned-panel .cy-presenter{--cy-size: 240px}.reveal-panel.room-panel{width:min(600px,90vw);padding:34px 40px 26px;gap:16px;border:3px double var(--orange);box-shadow:0 0 60px #ff9a1f59,0 0 40px #0009}.room-panel .reveal-title{font-size:20px;letter-spacing:5px}.room-panel .reveal-blurb{max-width:460px;font-size:13px}#title{z-index:40}.title-panel{width:min(520px,88vw);padding:40px 44px 32px;gap:18px;cursor:default}.title-wordmark{font-weight:700;font-size:34px;letter-spacing:10px;color:var(--amber-hot);text-shadow:0 0 18px rgba(255,154,31,.7),0 0 46px rgba(255,154,31,.35)}.title-blurb{font-size:13px;max-width:360px}#title-start{font-size:14px;padding:8px 26px;letter-spacing:3px}#par{background:#0507054d;-webkit-backdrop-filter:none;backdrop-filter:none}.par-panel{cursor:default}.par-panel{width:min(560px,88vw)}.par-panel .reveal-blurb{max-width:360px}#par-cy{--cy-size: 240px}.par-actions{display:flex;gap:10px;margin-top:4px}#mute.muted{opacity:.45;text-decoration:line-through}#reveal{z-index:30}.help-panel{width:min(660px,92vw)}.help-section{margin:14px 0 6px;font-weight:700;font-size:11px;letter-spacing:2px;color:#6f5e32}.help-row{display:flex;align-items:center;gap:12px;padding:5px 8px;border-radius:4px;font-size:12px;line-height:1.35;color:var(--amber)}.help-row b{color:var(--amber-hot)}.feedback-notice{color:var(--amber);opacity:.75;font-size:12px;margin-top:8px}#too-small{z-index:60}#too-small{background:var(--bg)}.small-screen-panel{max-width:30rem;text-align:center;padding:1.75rem 1.5rem}.small-screen-note{color:var(--amber);opacity:.7;font-size:12px;margin-top:.75rem}.help-row a,.feedback-context a{color:var(--orange);text-underline-offset:3px}.help-row a:hover,.feedback-context a:hover{color:var(--amber-hot)}.help-row .verb{flex:0 0 118px;font-weight:700;color:var(--amber-hot)}.help-row canvas{flex:0 0 auto;border:1px solid var(--edge);border-radius:3px}.help-row.replay{cursor:pointer}@media(hover:hover){.help-row.replay:hover{background:#141a12;box-shadow:0 0 8px #ff9a1f40}}.help-row.replay:after{content:"▸ show me";margin-left:auto;font-size:11px;color:#6f5e32}@media(hover:hover){.help-row.replay:hover:after{color:var(--amber-hot)}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#050705d1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.overlay[hidden]{display:none}.overlay-panel{width:min(880px,92vw);max-height:86vh;overflow-y:auto;background:linear-gradient(#0f140e,#0a0d0a);border:1px solid var(--edge);border-radius:6px;box-shadow:0 0 40px #0009;padding:16px 18px 20px}.overlay-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.overlay-title{font-weight:700;letter-spacing:2px;color:var(--amber-hot);text-shadow:0 0 8px rgba(255,154,31,.35)}.levels-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.room-divider{grid-column:1 / -1;display:flex;align-items:center;gap:10px;margin-top:8px;-webkit-user-select:none;user-select:none}.room-divider:first-child{margin-top:0}.room-divider:before,.room-divider:after{content:"";height:1px;background:var(--edge)}.room-divider:before{width:18px}.room-divider:after{flex:1}.room-title{font-weight:700;font-size:12px;letter-spacing:2px;color:var(--amber-hot);text-shadow:0 0 8px rgba(255,154,31,.35)}.room-count{font-weight:700;font-size:11px;letter-spacing:1px;color:#6f5e32}.levels-total{font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:1px;color:#6f5e32}.room-count .room-star{color:var(--orange);text-shadow:0 0 8px rgba(255,154,31,.5);font-size:13px}.room-divider.locked .room-title{color:#6f5e32;text-shadow:none}.level-cell.just-unlocked{border-color:var(--orange);animation:cell-unlock-pulse 1.6s ease-in-out infinite}@keyframes cell-unlock-pulse{0%,to{background:#241a08;box-shadow:0 0 20px #ff9a1fbf,inset 0 0 12px #ff9a1f40}50%{background:#181a10;box-shadow:0 0 6px #ff9a1f40}}.level-cell{position:relative;text-align:left;display:flex;flex-direction:column;gap:6px;min-height:78px;padding:9px 10px;font-family:var(--mono);color:var(--amber);background:#141a12;border:1px solid #55492a;border-radius:4px;cursor:pointer;transition:all 90ms ease}@media(hover:hover){.level-cell:hover{color:var(--amber);background:#141a12;border-color:var(--orange);box-shadow:0 0 10px #ff9a1f66}}.level-cell .num{font-weight:700;font-size:11px;color:#6f5e32;letter-spacing:1px}.level-cell .obj{font-size:11px;line-height:1.3;letter-spacing:.3px}.level-cell .tick{position:absolute;top:8px;right:9px;color:var(--orange);font-weight:700}.level-cell.solved{background:#16200f}.level-cell.locked{border-color:#3a3320;background:#10130f}.level-cell.locked .num{color:#4a3f24}.level-cell.locked .obj{color:#4a3f24;letter-spacing:2px}@media(hover:hover){.level-cell.locked:hover{background:#10130f;border-color:#55492a;box-shadow:none}}.level-cell.current{border-color:var(--amber-hot);background:#201a0c}.level-cell.current .num{color:var(--amber-hot)}.level-cell.current .num:before{content:"▸ "}.feedback-panel{width:min(560px,92vw)}.feedback-context{font-size:11px;line-height:1.4;color:#6f5e32;margin-bottom:10px}#feedback-text{width:100%;background:var(--bg);border:1px solid var(--edge);border-radius:4px;padding:8px 10px;font:inherit;font-size:12px;line-height:1.45;outline:none}#feedback-text{color:var(--amber-hot);resize:vertical}#feedback-text:focus{border-color:var(--orange);box-shadow:0 0 8px #ff9a1f40}.feedback-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.feedback-status{font-size:12px;color:var(--amber)}#tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}#tour[hidden]{display:none}#tour.pass{pointer-events:none}#tour-hole{position:absolute;border:2px solid var(--orange);border-radius:8px;box-shadow:0 0 0 9999px #000000b8,0 0 18px #ff9a1f73;transition:top .22s ease,left .22s ease,width .22s ease,height .22s ease;pointer-events:none}#tour.pass #tour-hole{box-shadow:0 0 0 9999px #00000073,0 0 18px #ff9a1f73}.tour-card{position:absolute;max-width:380px;background:#f0d491;border:2px solid #7c5f24;border-radius:6px;padding:14px 44px 14px 16px;color:#1a1206;font-size:14px;line-height:1.5;box-shadow:0 6px 40px #000c;pointer-events:auto}.tour-card:before{content:"";position:absolute;width:14px;height:14px;background:#f0d491;display:none;left:var(--arrow-x, 24px)}.tour-card.point-up:before{display:block;top:-9px;border-left:2px solid #7c5f24;border-top:2px solid #7c5f24;transform:rotate(45deg)}.tour-card.point-down:before{display:block;bottom:-9px;border-right:2px solid #7c5f24;border-bottom:2px solid #7c5f24;transform:rotate(45deg)}.tour-card button.ghost{color:#5c4715;border-color:#7c5f24;background:#0000000d}.tour-card .tour-actions{display:flex;align-items:center;gap:10px;margin-top:10px}.tour-card button.run{font-size:12px;padding:4px 10px}.tour-card button.ghost{font-size:11px}.tour-cy{--cy-size: 200px;top:auto;bottom:-20px}.tour-lit{color:var(--amber-hot)!important;border-color:var(--orange)!important;text-shadow:0 0 8px rgba(255,154,31,.45)}.knock-cy{--cy-size: 130px;position:fixed;top:48px;right:auto;z-index:40;animation:knock-bounce .85s ease-in-out 2}@keyframes knock-bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-16px)}55%{transform:translateY(0)}72%{transform:translateY(-7px)}}#impossible.knock-pulse{color:var(--amber-hot);border-color:var(--orange);animation:next-pulse 1.4s ease-in-out 7}.knock-line{top:62px;z-index:40;max-width:320px;padding:10px 30px 10px 26px;clip-path:polygon(12px 12px,18px 12px,18px 6px,24px 6px,24px 0,calc(100% - 12px) 0,calc(100% - 12px) 6px,calc(100% - 6px) 6px,calc(100% - 6px) 12px,100% 12px,100% calc(100% - 12px),calc(100% - 6px) calc(100% - 12px),calc(100% - 6px) calc(100% - 6px),calc(100% - 12px) calc(100% - 6px),calc(100% - 12px) 100%,24px 100%,24px calc(100% - 6px),18px calc(100% - 6px),18px calc(100% - 12px),12px calc(100% - 12px),12px calc(50% + 8px),0 50%,12px calc(50% - 8px))}.knock-line:before{top:4px;right:4px;bottom:4px;left:16px}.knock-line b{color:var(--amber-hot);white-space:nowrap}body.phone #toolbar,body.phone #task-plate{display:none}body.phone #stage{height:100dvh}body.phone.palette-open #toolbar{display:flex;flex-wrap:wrap;position:fixed;left:0;right:150px;top:0;z-index:30;border-bottom:1px solid var(--edge)}body.phone.palette-open #toolbar>*:not(#palette){display:none}body.phone .reveal-panel{gap:8px;padding:12px 20px 10px}body.phone #reveal-canvas{max-height:104px;width:auto}body.phone .overlay-panel{max-height:calc(100dvh - 12px)}body.phone #par,body.phone #reveal{right:150px}body.phone .par-panel,body.phone .reveal-panel.room-panel{width:min(560px,calc(100vw - 280px))}
