:root{--bg: #050505;--fg: #fff;--accent: #ef160f;--accent-dim: rgba(239, 22, 15, .34);--font-display: "Noto Sans JP", "Yu Gothic", sans-serif;--font-num: "Anton", "Noto Sans JP", "Yu Gothic", sans-serif;--font-body: "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;--skew: -10deg}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:#000;color:var(--fg);font-family:var(--font-body);font-weight:600;-webkit-user-select:none;user-select:none}button,input,select{font:inherit;color:inherit}.stage{position:absolute;top:0;left:0;width:1920px;height:1080px;overflow:hidden;transform-origin:top left;background:var(--bg)}.bg,.bg>div{position:absolute;inset:0;pointer-events:none}.bg{overflow:hidden}.bg-stripes{inset:-240px!important;background:repeating-linear-gradient(-21deg,transparent 0 52px,rgba(255,255,255,.025) 53px 58px,transparent 59px 112px),repeating-linear-gradient(-32deg,#020202 0 78px,#100000 79px 156px);animation:stripes-move 6s linear infinite}@keyframes stripes-move{to{background-position:260px 0,180px 0}}.bg-band{inset:-280px auto -280px -160px!important;width:520px;transform:skew(-12deg);background:linear-gradient(90deg,#130000,#4a0000 58%,#120000);border-right:22px solid rgba(239,22,15,.75);box-shadow:40px 0 100px #ef160f38}.bg-spot{inset:auto auto -230px -140px!important;width:1350px;height:1250px;background:radial-gradient(ellipse,rgba(255,35,20,.28) 0%,rgba(100,0,0,.16) 36%,transparent 68%)}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 160px #000000e6}.tag{display:inline-block;padding:6px 22px 4px;font:italic 30px/1 var(--font-num);letter-spacing:.05em;color:#050505;background:#fff;transform:skew(var(--skew));border:4px solid #050505;box-shadow:6px 6px #050505;white-space:nowrap}.tag-red{color:#fff;background:var(--accent)}.tag-small{font-size:22px;padding:4px 14px 3px;border-width:3px;box-shadow:4px 4px #050505}.btn{padding:8px 26px 6px;font:italic 30px/1 var(--font-num);letter-spacing:.05em;color:#050505;background:#fff;border:4px solid #050505;box-shadow:6px 6px #050505;transform:skew(var(--skew));cursor:pointer;transition:transform 80ms}.btn:hover{transform:skew(var(--skew)) translate(-2px,-2px);box-shadow:8px 8px #050505}.btn:active{transform:skew(var(--skew)) translate(3px,3px);box-shadow:2px 2px #050505}.btn-red{color:#fff;background:var(--accent)}.btn-ghost{color:#fff;background:#222;border-color:#666}.btn-big{font-size:54px;padding:14px 60px 10px}.btn-small{font-size:22px;padding:4px 16px 3px}.top{position:absolute;top:28px;left:48px;right:48px;height:120px;display:flex;justify-content:space-between;align-items:center;z-index:5}.top-left,.top-right{display:flex;align-items:center;gap:36px}.title-tag{font-family:var(--font-display);font-weight:800;font-style:normal;font-size:40px;padding:10px 30px 8px}.turn-block,.tick-block{display:flex;align-items:baseline;gap:18px}.turn{font:110px/1 var(--font-num);letter-spacing:.02em;-webkit-text-stroke:4px #000;paint-order:stroke fill;text-shadow:6px 6px 0 var(--accent);min-width:250px}.tick{font:64px/1 var(--font-num);text-shadow:4px 4px 0 var(--accent)}.tick .unit{font-size:28px;margin-left:4px}.tick-measured{font-size:22px;color:#bbb}.status-tag{min-width:150px;text-align:center}.status-tag.running{background:var(--accent);color:#fff;animation:status-pulse .9s ease-in-out infinite alternate}@keyframes status-pulse{0%{box-shadow:6px 6px #050505}to{box-shadow:6px 6px #050505,0 0 30px var(--accent)}}.islands{position:absolute;inset:160px 48px 120px;display:grid;gap:22px;z-index:3}.cols-1{grid-template-columns:repeat(1,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.islands.rows-3 .island .map{--map: 250px}.islands.rows-3 .island .stat-value{font-size:40px}.islands.rows-3 .island .name{font-size:30px}.islands.cols-4 .island .stats{grid-template-columns:1fr 1fr}.island{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:18px;padding:16px 20px;background:#080808db;border:4px solid #2a2a2a;box-shadow:8px 8px #000;overflow:hidden;min-height:0}.island.leader{border-color:#fff}.island.dead{opacity:.45;filter:grayscale(.8)}.island:before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:var(--accent)}.island .head{grid-column:1 / -1;display:flex;align-items:center;gap:16px;min-height:48px}.island .name{font:800 36px/1 var(--font-display);-webkit-text-stroke:4px #000;paint-order:stroke fill;text-shadow:4px 4px 0 var(--accent);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.island .rank{font:italic 32px/1 var(--font-num);color:var(--accent)}.island .thinking{width:18px;height:18px;border-radius:50%;background:#333;border:3px solid #555}.island .thinking.on{background:var(--accent);border-color:#fff;box-shadow:0 0 14px var(--accent);animation:think .5s ease-in-out infinite alternate}@keyframes think{0%{transform:scale(.8)}to{transform:scale(1.25)}}.island .map{--map: 336px;width:var(--map);height:var(--map);image-rendering:pixelated;background:#000;border:3px solid #000;box-shadow:4px 4px #000}.island .side{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden}.island .side>*{flex-shrink:0}.probabilities{padding:10px;background:#151515;border:1px solid #444}.probabilities[hidden]{display:none}.probability-heading{font-size:18px;font-weight:700;margin-bottom:8px}.probability-turn{display:block;font-size:14px;font-weight:400;color:#aaa}.probability-list{max-height:180px;overflow-y:auto;font-size:16px;color:#bbb;scrollbar-width:thin}.probability-list:focus-visible{outline:2px solid #fff;outline-offset:2px}.probability-option{padding:4px 0 7px}.probability-label{display:flex;align-items:baseline;gap:8px}.probability-label span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.probability-label b{flex:none;font-variant-numeric:tabular-nums}.probability-track{height:6px;margin-top:4px;background:#333}.probability-fill{height:100%;background:#888}.probability-option.selected{color:#fff}.probability-option.selected .probability-fill{background:var(--accent)}.islands:not(.rows-1) .jev .side{gap:6px}.islands:not(.rows-1) .jev .stat-value{font-size:40px}.islands:not(.rows-1) .jev .stat-label{font-size:16px}.islands:not(.rows-1) .jev .latency{font-size:26px}.islands:not(.rows-1) .jev .cmd{font-size:20px}.islands:not(.rows-1) .probabilities{padding:6px}.islands:not(.rows-1) .probability-heading{font-size:15px;margin-bottom:4px}.islands:not(.rows-1) .probability-turn{font-size:12px}.islands:not(.rows-1) .probability-list{max-height:96px;font-size:14px}.islands:not(.rows-1) .probability-option{padding:2px 0 4px}.island .stats{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px 14px}.stat-label{font:italic 20px/1 var(--font-num);color:#bbb;letter-spacing:.05em}.stat-value{font:52px/1 var(--font-num);letter-spacing:.01em;-webkit-text-stroke:2px #000;paint-order:stroke fill;white-space:nowrap}.stat-value.warn{color:#fc3}.stat-value.danger{color:var(--accent)}.stat-unit{font-size:22px;color:#bbb;margin-left:2px}.island .meta{font-size:20px;color:#ccc;line-height:1.35}.island .meta .k{color:#888;font:italic 18px/1 var(--font-num);margin-right:6px}.island .cmd{font-size:24px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.island .err{font-size:18px;color:#ff8a80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.island .latency{font:34px/1 var(--font-num)}.island .latency .u{font-size:18px;color:#bbb}.island.hit{animation:hit .26s ease-out}@keyframes hit{0%{box-shadow:8px 8px #000,0 0 0 6px var(--accent),0 0 60px var(--accent)}to{box-shadow:8px 8px #000}}.ticker{position:absolute;left:48px;right:48px;bottom:28px;height:78px;display:flex;align-items:center;gap:22px;z-index:4}.events{list-style:none;display:flex;gap:34px;overflow:hidden;white-space:nowrap;font-size:24px;flex:1;min-width:0}.promo{display:flex;align-items:center;gap:14px;flex:none;padding:8px 18px 8px 10px;background:#fff;color:#050505;border:4px solid #050505;box-shadow:6px 6px #050505;transform:skew(var(--skew));text-decoration:none;white-space:nowrap;transition:transform 80ms}.promo[hidden]{display:none}.promo:hover{transform:skew(var(--skew)) translate(-2px,-2px);box-shadow:8px 8px #050505,0 0 24px var(--accent)}.promo>*{transform:skew(calc(var(--skew) * -1))}.promo-badge{padding:4px 12px 3px;font:italic 22px/1 var(--font-num);letter-spacing:.05em;color:#fff;background:var(--accent);animation:promo-blink 1.4s ease-in-out infinite alternate}@keyframes promo-blink{0%{opacity:1}to{opacity:.55}}.promo-text{display:flex;flex-direction:column;line-height:1.1}.promo-text b{font:800 22px/1.1 var(--font-display)}.promo-text span{font-size:17px;color:#444}.promo-cta{font:italic 22px/1 var(--font-num);color:var(--accent);letter-spacing:.04em}.events li{opacity:.55}.events li:last-child{opacity:1;color:#fff}.events li.missile,.events li.disaster,.events li.monster,.events li.death{color:#ff6a60}.events li.end{color:#ffd54a}.overlay{position:absolute;inset:0;z-index:20;display:none;align-items:center;justify-content:center;background:#000000c7}.overlay.show{display:flex}.panel{width:1400px;max-height:960px;overflow:auto;padding:40px 50px;background:#0a0a0a;border:5px solid #fff;box-shadow:14px 14px 0 var(--accent);display:flex;flex-direction:column;gap:26px}.panel-head{display:flex;align-items:center;gap:30px}.api-note{font-size:22px;color:#bbb}.api-note.bad{color:#ff8a80}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 40px;font:italic 26px/1 var(--font-num);letter-spacing:.04em}.form-grid label{display:flex;align-items:center;gap:14px}.form-grid input[type=text],.form-grid input[type=number]{width:220px;padding:8px 12px;background:#111;border:3px solid #555;color:#fff;font:600 24px var(--font-body)}.form-grid input[type=checkbox]{width:28px;height:28px;accent-color:var(--accent)}.players-head{display:flex;align-items:center;gap:24px}.player-rows{display:flex;flex-direction:column;gap:10px}.player-row{display:grid;grid-template-columns:50px 200px 190px 1fr 90px;gap:12px;align-items:center}.player-row input.instructions:disabled{opacity:.3}.player-row .idx{font:italic 30px/1 var(--font-num);color:var(--accent)}.player-row input,.player-row select{padding:8px 12px;background:#111;border:3px solid #555;color:#fff;font:600 22px var(--font-body)}.setup-error{min-height:30px;font-size:22px;color:#ff8a80}.human-setup-note{font-size:18px;color:#bbb;line-height:1.8}.human-setup-note .btn{margin-left:12px;font-size:18px}.human-controls{position:absolute;left:48px;right:48px;bottom:118px;height:130px;padding:12px 20px;z-index:4;background:#101b1b;border:2px solid #5fffe0}.human-controls[hidden]{display:none}.human-status{display:flex;gap:28px;align-items:center;font-size:20px}.human-status b{color:#5fffe0}#human-action{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.human-keys{display:flex;gap:20px;margin:9px 0;font-size:20px}.human-keys span{display:flex;gap:8px;align-items:center}.human-keys kbd{padding:2px 8px;background:#263737;border:1px solid #829a9a;font:700 20px monospace}.human-keys .active{color:#5fffe0}.human-keys .active kbd{background:#5fffe0;color:#000}.human-help{font-size:16px;color:#becdcd}.human-mode .islands{bottom:264px}.human-mode .islands.rows-1 .island .map{--map: 420px}.human-mode .islands.rows-1 .island .stat-value{font-size:52px}.human-mode .islands:not(.rows-1) .map{--map: 200px}.human-mode .islands.rows-3 .map{--map: 112px}.human-mode .islands:not(.rows-1) .stat-value{font-size:34px}.human-mode .islands:not(.rows-1) .name{font-size:28px}.island.human-island{border-color:#5fffe0}.island.human-target{border-color:#ffca65}.panel-actions{display:flex;justify-content:flex-end;gap:30px;align-items:center}.result{flex-direction:column;gap:40px}.result-band{width:2400px;padding:14px 0;background:var(--accent);transform:rotate(-4deg);text-align:center;box-shadow:0 0 60px #ef160f99}.result-title{font:160px/1 var(--font-num);font-style:italic;letter-spacing:.06em;-webkit-text-stroke:6px #000;paint-order:stroke fill}.result-body{display:flex;flex-direction:column;align-items:center;gap:18px}.result-winner{font:800 110px/1.1 var(--font-display);-webkit-text-stroke:8px #000;paint-order:stroke fill;text-shadow:10px 10px 0 var(--accent)}.result-reason{font-size:30px;color:#ddd}.result-ranking{display:flex;gap:40px;font:italic 30px/1 var(--font-num);list-style:none;color:#ccc}.result-ranking li b{color:#fff;margin-right:8px}.result-actions{display:flex;align-items:center;gap:36px}.btn-x{color:#fff;background:#000;border-color:#fff;box-shadow:6px 6px 0 var(--accent)}.result.has-promo{gap:26px}.result.has-promo .result-title{font-size:110px}.result.has-promo .result-winner{font-size:72px}.result.has-promo .result-body{gap:12px}.expo-card{--expo-ink: #0a0c0b;--expo-paper: #e8edea;--expo-green: #00e05a;--expo-magenta: #f5259b;--expo-muted: #8a968e;width:1320px;display:grid;grid-template-columns:1fr 360px;gap:40px;padding:26px 34px;color:var(--expo-paper);background:var(--expo-ink);border:4px solid var(--expo-green);box-shadow:10px 10px 0 var(--expo-magenta)}.expo-card[hidden]{display:none}.expo-copy{min-width:0}.expo-eyebrow{display:flex;align-items:center;gap:22px;font:600 20px/1.4 "M PLUS 1 Code",var(--font-body);color:var(--expo-green)}.expo-eyebrow span{color:var(--expo-muted);font:600 18px/1.4 var(--font-body)}.expo-card h2{margin-top:5px;font:700 52px/1.35 "M PLUS 1 Code",var(--font-body);white-space:nowrap;letter-spacing:.015em}.expo-lead{margin-top:8px;font-size:28px;font-weight:600}.expo-description{margin-top:4px;font-size:22px;line-height:1.6}.expo-detail{margin-top:10px;font-size:24px;color:var(--expo-green)}.expo-actions{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:16px}.expo-cta{padding:16px 20px;background:var(--expo-green);color:var(--expo-ink);box-shadow:6px 6px 0 var(--expo-magenta);font:700 30px/1.5 "M PLUS 1 Code",var(--font-body);text-decoration:none}.expo-cta:hover{transform:translate(2px,2px);box-shadow:4px 4px 0 var(--expo-magenta)}.expo-cta:active{transform:translate(6px,6px);box-shadow:none}.expo-about{display:flex;align-items:center;flex-wrap:wrap;min-height:44px;font-size:22px;color:var(--expo-paper);text-underline-offset:5px}.expo-new-tab{font-size:16px;color:var(--expo-muted)}.expo-note{color:var(--expo-muted);font-size:18px}.expo-card a:focus-visible{outline:4px solid var(--expo-paper);outline-offset:5px}.flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:30}.flash.on{animation:flash .16s ease-out}@keyframes flash{0%{opacity:.7}to{opacity:0}}.islands.rows-1 .island .map{--map: 560px}.islands.rows-1 .island .stat-value{font-size:64px}.islands.rows-1 .island .name{font-size:44px}.islands.rows-1 .island .cmd{font-size:30px;white-space:normal}.islands.rows-1 .island .latency{font-size:48px}.islands.rows-1 .island .meta{font-size:24px}.islands.rows-1 .island .stats{grid-template-columns:1fr 1fr}.replay-only{display:none!important}body.replay-mode .replay-only{display:flex!important}body.replay-mode .live-only{display:none!important}.replay-bar{display:flex;align-items:center;gap:18px}.rp-field{display:flex;align-items:center;gap:8px;font:italic 26px/1 var(--font-num)}.rp-field input{width:110px;padding:6px 10px;background:#111;border:3px solid #555;color:#fff;font:600 24px var(--font-body)}.rp-field span{font-size:20px;color:#bbb}#rp-seek{width:300px;accent-color:var(--accent)}.rp-pos{font:italic 26px/1 var(--font-num);min-width:150px;text-align:right}.replay-list{list-style:none;display:flex;flex-direction:column;gap:10px;max-height:620px;overflow:auto}.replay-list li{padding:14px 18px;background:#111;border:3px solid #333;cursor:pointer}.replay-list li:hover{border-color:var(--accent);background:#1a0000}.replay-list li.muted{cursor:default;color:#888}.rp-main{font-size:24px}.rp-main b{color:#fff;margin-right:12px}.rp-sub{font-size:20px;color:#aaa;margin-top:4px}.export{position:absolute;left:50%;top:150px;transform:translate(-50%);width:900px;padding:18px 26px;background:#0a0a0a;border:4px solid #fff;box-shadow:10px 10px 0 var(--accent);display:none;align-items:center;gap:22px;z-index:40}.export.show{display:flex}.export-label{font-size:24px;white-space:nowrap}.export-bar{flex:1;height:22px;background:#222;border:3px solid #555}.export-fill{height:100%;width:0;background:var(--accent);transition:width .12s linear}body.replay-mode .tick-block{display:none}body.replay-mode .top-right{gap:20px}#rp-seek{width:260px}
