:root{color-scheme:light;--bg: #f3f7fc;--panel: #ffffff;--panel-2: #eef3fa;--line: #d5deeb;--text: #1d2a44;--muted: #6a7891;--accent: #fb8500;--accent-2: #ff9f1c;--good: #2a9d5c}html,body{background:radial-gradient(900px 400px at 50% -160px,#d9ecff 0%,transparent 70%),var(--bg)}.blocks-mode header h1{background:linear-gradient(90deg,#1d2a44,#fb8500);-webkit-background-clip:text;background-clip:text}.blocks-mode .stage-wrap{aspect-ratio:360 / 480;background:#dceefe;box-shadow:0 0 0 1px var(--line),0 14px 30px #1e3c6e26}.blocks-mode .ranking li.me{background:#e7f6ec}.blocks-mode .result-card{background:#fff;box-shadow:0 0 0 1px var(--line),0 10px 24px #1e3c6e14}.overlay.light{background:linear-gradient(180deg,#ffffff8c,#f3f7fcf0 60%);color:var(--text)}.overlay.light b{color:var(--accent)}.hud{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.hud-est{display:flex;flex-direction:column;padding:6px 10px;border-radius:12px;background:#ffffffd9;box-shadow:0 2px 8px #1e3c6e1f;font-variant-numeric:tabular-nums}.hud-est .label{color:var(--muted);font-size:.62rem;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hud-est b{font-size:1.4rem;line-height:1.1}.hud-est small{color:var(--muted);font-size:.68rem}.hud-time{padding:6px 10px;border-radius:12px;background:#ffffffd9;box-shadow:0 2px 8px #1e3c6e1f;font-size:1.3rem;font-weight:800;font-variant-numeric:tabular-nums}.hud-time small{margin-left:2px;color:var(--muted);font-size:.7rem}.hud-time.urgent{background:#e63946;color:#fff}.hud-time.urgent small{color:#ffe1e4}.countdown{position:absolute;top:30%;left:0;right:0;text-align:center;font-size:5rem;font-weight:900;color:#e63946bf;pointer-events:none;animation:tick 1s ease-out}.banner{position:absolute;top:36%;left:0;right:0;display:flex;flex-direction:column;align-items:center;padding:12px 0;background:#ffffffe6;color:#1d2a44;font-size:1.8rem;font-weight:900;letter-spacing:.1em;pointer-events:none;animation:card-in .3s ease-out}.banner small{color:var(--muted);font-size:.78rem;letter-spacing:.02em}.reel{position:absolute;inset:10px 10px auto;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px;border-radius:16px;background:#ffffffb3;box-shadow:0 6px 18px #1e3c6e1f;pointer-events:none;animation:card-in .25s ease-out}.reel p{margin:0}.reel-region{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:700}.reel-formula{font-size:1rem;font-weight:700}.reel-formula small{margin-left:4px;color:var(--muted)}.reel-app{color:#00a693;font-weight:800}.reel-tower{color:var(--accent);font-size:1.2rem;font-weight:900}.reel-total{font-size:2.4rem;font-weight:900;font-variant-numeric:tabular-nums}.reel-total small{margin-left:4px;color:var(--muted);font-size:1rem}.reel-skip{color:var(--muted);font-size:.7rem}.controls{display:grid;grid-template-columns:1fr auto 1.2fr;gap:6px;margin-top:10px}.controls button{padding:10px 12px}.controls .deploy{font-size:1.05rem}.next-box{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:6px;min-width:0;padding:4px 8px;border-radius:12px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}.next-box .label{grid-column:1 / 3;color:var(--muted);font-size:.6rem;font-weight:800;letter-spacing:.12em}.mini-block{width:30px;height:22px;object-fit:contain}.next-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem;font-weight:700}.apps{margin-top:12px;padding:10px 12px;border-radius:14px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}.apps h3{margin:0 0 6px;font-size:.8rem;color:var(--text)}.apps h3 .sub{color:var(--muted);font-weight:500;font-size:.7rem}.apps ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.apps li{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;padding:4px 6px;border-radius:8px}.apps li.done{background:#e3f7f3;box-shadow:inset 0 0 0 1px #00a693}.app-name{font-size:.75rem;font-weight:800;white-space:nowrap}.app-name b{margin-left:4px;color:var(--accent);font-weight:800}.app-blocks{display:flex;flex-wrap:wrap;gap:3px}.app-blocks span{padding:1px 5px;border-radius:5px;background:var(--panel-2);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6rem;font-weight:700}.app-blocks span.have{background:#2b3a55;color:#fff}@keyframes tick{0%{transform:scale(1.6);opacity:0}30%{opacity:1}to{transform:scale(1);opacity:.25}}.reel-list{list-style:none;margin:4px 0;padding:0;width:100%;max-width:240px}.reel-list li{display:flex;justify-content:space-between;font-size:.8rem;font-variant-numeric:tabular-nums}.reel-list span{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.blocks-mode input{background:var(--panel);color:var(--text);border-color:var(--line)}.control-hint{margin:6px 0 0;color:var(--muted);font-size:.72rem;text-align:center}.app-blocks span.now{background:#fff3e0;color:#fb8500;box-shadow:inset 0 0 0 1px #fb8500}.mini-block{width:34px;height:26px}.blocks-mode #stage{-webkit-touch-callout:none}.start-count{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:7rem;font-weight:900;color:#2b3a55;text-shadow:0 6px 24px rgba(255,255,255,.9);pointer-events:none;animation:count-pop 1s ease-out}.start-count.go{color:#fb8500;font-size:5rem;animation:count-pop .7s ease-out}.announce{position:absolute;top:22%;left:50%;transform:translate(-50%);padding:8px 18px;border-radius:999px;background:#2b3a55e0;color:#fff;font-size:1.3rem;font-weight:900;white-space:nowrap;pointer-events:none;animation:announce-in 1.3s ease-out forwards}@keyframes count-pop{0%{transform:scale(1.8);opacity:0}25%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:.15}}@keyframes announce-in{0%{opacity:0;transform:translate(-50%,-10px)}15%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0}}.course-label{margin-top:4px;color:var(--muted);font-size:.8rem;font-weight:700}.courses{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%;max-width:320px}.courses button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px}.courses b{font-size:1.15rem}.courses small{font-size:.7rem;font-weight:600;opacity:.8}.other-course{margin-top:12px;padding:12px;border-radius:14px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}.other-course h3,.gallery h3{margin:0 0 8px;font-size:.8rem;color:var(--text)}.other-course .courses{max-width:none}.gallery{margin-top:12px;padding:12px;border-radius:14px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}.gallery .sub{color:var(--muted);font-weight:500;font-size:.7rem}.gallery ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.thumb{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%;min-height:0;padding:6px;border-radius:12px;background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--line);font-weight:600;text-align:left}.thumb.selected{box-shadow:inset 0 0 0 2px var(--accent)}.thumb img{width:100%;aspect-ratio:2 / 3;object-fit:cover;object-position:bottom;border-radius:8px;background:#dceefe}.thumb-region{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6rem}.thumb-score{font-size:.85rem;font-weight:800}.thumb-apps{color:#00a693;font-size:.6rem;font-weight:800}.overlay .courses button{min-width:0;margin-top:0;animation:none}.overlay.light .courses b{color:inherit}.near-apps{display:grid;gap:4px;margin-top:8px}.near{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;padding:5px 8px;border-radius:10px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}.near.done{background:#e3f7f3;box-shadow:inset 0 0 0 1.5px #00a693}.near-name{font-size:.72rem;font-weight:800;white-space:nowrap}.near-name b{margin-left:4px;color:var(--accent)}.near-blocks{display:flex;flex-wrap:wrap;gap:3px}.near-blocks span{padding:1px 5px;border-radius:5px;background:var(--panel-2);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6rem;font-weight:700}.near-blocks span.have{background:#2b3a55;color:#fff}.near-blocks span.now{background:#fff3e0;color:#fb8500;box-shadow:inset 0 0 0 1px #fb8500}.near-blocks span.next{box-shadow:inset 0 0 0 1px #9aa3bd}
