.pulsefield-page{overflow-x:hidden}
.pulsefield-main{max-width:1500px}
.pulsefield-panel{overflow:hidden}
.match-board{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(320px,1.4fr);gap:2px;margin:14px 0;padding:2px;border:1px solid #315263;border-radius:12px;overflow:hidden;background:#315263}.match-board>div{min-height:82px;padding:13px 17px;background:linear-gradient(145deg,#0d1b24,#071017)}.match-board small{display:block;margin-bottom:7px;color:#91aab5;font:800 9px ui-sans-serif,system-ui,sans-serif;letter-spacing:.16em}.player-identity{display:grid!important;grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr;align-items:center;gap:0 10px;box-shadow:inset 3px 0 var(--player,#315263)}.player-identity small{grid-column:1/-1;color:#fff}.player-identity i{width:20px;height:20px;border:2px solid #fff;border-radius:50%;background:var(--player,#315263);box-shadow:0 0 17px var(--player,#315263)}.player-identity strong{color:var(--player,#dffaff);font:800 13px ui-sans-serif,system-ui,sans-serif;letter-spacing:.1em}.player-identity b{color:#fff;font:900 29px system-ui}.match-goal{display:grid;place-content:center;min-width:170px;text-align:center}.match-goal small{margin-bottom:3px;color:#ffd400}.match-goal b{font:900 16px ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em}.match-goal span{margin-top:4px;color:#91aab5;font-size:9px}.computer-identity small{color:#ff8a65}.computer-identity>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.computer-identity>div>span{color:#91aab5;font-size:10px}.computer-chip{display:grid;grid-template-columns:auto 1fr;gap:1px 6px;align-items:center;padding:5px 8px;border:1px solid color-mix(in srgb,var(--computer) 52%,#315263);border-radius:7px;background:color-mix(in srgb,var(--computer) 10%,#071017);box-shadow:inset 2px 0 var(--computer)}.computer-chip i{grid-row:1/3;width:9px;height:9px;border-radius:50%;background:var(--computer);box-shadow:0 0 8px var(--computer)}.computer-chip b{color:#e9f8fc;font:800 8px ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em}.computer-chip em{color:var(--computer);font:800 9px ui-sans-serif,system-ui,sans-serif;font-style:normal}
.pulsefield-stage{position:relative;height:min(74vh,800px);min-height:540px;overflow:hidden;cursor:crosshair;isolation:isolate;background-color:#050b12;transition:background .45s ease}
.pulsefield-stage[data-map="galaxy"]{background-color:#02050a;background-image:linear-gradient(#02050a52,#02050a52),radial-gradient(circle at 50% 50%,transparent 20%,#01040a80 78%,#010308d9),url("maps/spiral-galaxy.webp");background-position:center;background-repeat:no-repeat;background-size:cover,cover,cover}
.pulsefield-stage[data-map="manhattan"]{background-color:#03101a;background-image:linear-gradient(#02081170,#02081170),radial-gradient(circle at 50% 50%,transparent 28%,#01050bc9 100%),url("maps/manhattan-subway.webp");background-position:center;background-repeat:no-repeat;background-size:cover,cover,cover}
.pulsefield-stage[data-map="earth"]{background-color:#010308;background-image:linear-gradient(#01050b4d,#01050b4d),url("maps/earth-line-art.webp");background-position:center;background-repeat:no-repeat;background-size:cover,cover}
.pulsefield-stage:before{content:"";position:absolute;z-index:0;inset:7%;border:1px solid #42d9ff22;border-radius:48% 52% 46% 54%;box-shadow:inset 0 0 90px #42d9ff0a,0 0 80px #42d9ff0a}
.pulsefield-stage canvas{position:absolute;z-index:2;inset:0;width:100%;height:100%;padding:0;background:transparent;touch-action:none}
.field-reticle{position:absolute;z-index:1;left:50%;top:50%;width:min(70vw,690px);aspect-ratio:1;translate:-50% -50%;border:1px solid #42d9ff1c;border-radius:50%;pointer-events:none}
.field-reticle:before,.field-reticle:after{content:"";position:absolute;background:#42d9ff15}
.field-reticle:before{left:50%;top:0;width:1px;height:100%}
.field-reticle:after{left:0;top:50%;width:100%;height:1px}
.move-status{position:absolute;z-index:5;top:16px;left:50%;translate:-50% 0;max-width:calc(100% - 32px);padding:10px 16px;border:1px solid #42d9ff50;border-radius:22px;background:#040a10df;color:#d5f9ff;font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;text-align:center;pointer-events:none}
.region-callout{position:absolute;z-index:7;inset:44% auto auto 50%;translate:-50% -50%;color:#fff;font:900 clamp(25px,5vw,58px) system-ui;text-shadow:0 0 12px #fff,0 0 38px var(--region,#42d9ff);letter-spacing:.1em;opacity:0;pointer-events:none}
.region-callout.show{animation:region-pop 1.5s ease-out}
.field-intro{position:absolute;z-index:12;inset:0;display:grid;place-items:safe center;padding:20px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:radial-gradient(circle,#071923e8,#02060af2);backdrop-filter:blur(7px);transition:opacity .45s ease,visibility .45s}
.field-intro.dismissed{opacity:0;visibility:hidden;pointer-events:none}
.intro-card{width:min(560px,94%);padding:34px 28px;border:1px solid #42d9ff45;border-radius:18px;background:linear-gradient(145deg,#0a1823f2,#050b12fa);box-shadow:0 0 90px #42d9ff1c;text-align:center}
.intro-card h2{margin:8px 0 10px;font-size:clamp(32px,6vw,60px);letter-spacing:.06em}
.intro-card p{margin:0 0 18px;color:#d4e9f1;font-size:18px}
.color-picker{display:grid;grid-template-columns:repeat(3,minmax(112px,1fr));gap:10px;margin:0 auto 24px;max-width:470px}
.color-choice{position:relative;isolation:isolate;min-height:54px;padding:0 12px;overflow:hidden;border:1px solid color-mix(in srgb,var(--choice) 76%,white 24%);border-radius:11px;background:linear-gradient(135deg,color-mix(in srgb,var(--choice) 92%,white 8%) 0%,var(--choice) 38%,color-mix(in srgb,var(--choice) 62%,#071017 38%) 72%,color-mix(in srgb,var(--choice) 30%,#071017 70%) 100%);box-shadow:inset 0 1px #ffffff5c,inset 0 -16px 30px color-mix(in srgb,var(--choice) 25%,#02060a 75%),0 0 18px color-mix(in srgb,var(--choice) 42%,transparent);color:#fff;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}
.color-choice:before{content:"";position:absolute;z-index:-1;inset:-45% 30% -45% -15%;rotate:18deg;background:linear-gradient(90deg,#ffffff52,color-mix(in srgb,var(--choice) 55%,transparent),transparent);filter:blur(8px)}
.color-choice span{position:relative;text-transform:uppercase;text-shadow:0 1px 2px #02060a,0 0 12px color-mix(in srgb,var(--choice) 70%,#000);font:700 11px/1.1 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.16em}
.color-choice:hover,.color-choice:focus-visible,.color-choice.selected{transform:translateY(-2px) scale(1.035);border-color:#fff;box-shadow:inset 0 1px #ffffff70,0 0 7px #fff,0 0 30px var(--choice);outline:none}
.color-choice.selected:after{content:"✓";position:absolute;right:7px;top:5px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#ffffffdc;color:#071017;font:900 12px system-ui;box-shadow:0 0 10px #fff}
.map-picker{display:grid;grid-template-columns:auto minmax(160px,230px);align-items:center;justify-content:center;gap:12px;margin:0 auto 21px;color:#8fa9b5;font:800 10px ui-sans-serif,system-ui,sans-serif;letter-spacing:.16em}.map-picker select{height:42px;padding:0 34px 0 13px;border:1px solid #42d9ff55;border-radius:9px;background:linear-gradient(135deg,#0b202b,#071017);color:#dffaff;font:800 11px ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em;cursor:pointer}.map-picker select:focus-visible{border-color:#fff;box-shadow:0 0 20px #42d9ff38;outline:none}
.guide-nav{padding:6px 12px;border:1px solid #00e5ff55;border-radius:6px;background:#00e5ff12;color:#c9f9ff;font:800 10px ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.guide-nav:hover,.guide-nav:focus-visible{border-color:#fff;box-shadow:0 0 15px #00e5ff38;outline:none}.game-guide{width:min(780px,calc(100% - 28px));max-height:calc(100vh - 28px);padding:clamp(24px,4vw,42px);border:1px solid #00e5ff66;border-radius:18px;background:radial-gradient(circle at 50% 0,#103341,#071017 55%,#03080c);box-shadow:0 0 90px #00e5ff30;color:#eafaff;overflow:auto}.game-guide::backdrop{background:#010508d9;backdrop-filter:blur(6px)}.guide-head{display:flex;align-items:center;justify-content:space-between}.guide-head .eyebrow{font-size:11px}.guide-head button{width:44px;height:44px;border:1px solid #ffffff42;border-radius:50%;background:#ffffff0d;color:#fff;font:300 29px system-ui;cursor:pointer}.game-guide h2{margin:10px 0 25px;font-size:clamp(36px,6vw,58px);letter-spacing:.06em}.game-guide ol{display:grid;gap:13px;margin:0;padding:0;counter-reset:guide;list-style:none}.game-guide li{display:grid;grid-template-columns:42px 1fr;gap:4px 14px;padding:14px 16px;border-left:3px solid #00e5ff70;background:#ffffff09;counter-increment:guide}.game-guide li:before{content:counter(guide);grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#00e5ff1f;color:#8ff4ff;font:900 14px system-ui}.game-guide li b{font:800 15px/1.35 ui-sans-serif,system-ui,sans-serif}.game-guide li span{color:#bed0d7;font:500 14px/1.6 ui-sans-serif,system-ui,sans-serif}.guide-goal{display:grid;gap:7px;margin-top:22px;padding:19px;border:1px solid #ffd40055;border-radius:12px;background:#ffd4000b;text-align:center}.guide-goal small{color:#ffd400;font:900 11px ui-sans-serif,system-ui,sans-serif;letter-spacing:.16em}.guide-goal strong{font:900 21px ui-sans-serif,system-ui,sans-serif}.guide-goal span{color:#c6d5da;font-size:14px;line-height:1.5}.guide-short{margin:21px 0 0;color:#9beeff;font:800 13px/1.75 ui-sans-serif,system-ui,sans-serif;letter-spacing:.06em;text-align:center}
.music-control{display:flex;align-items:center;gap:7px;color:#789aa7;font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em}.music-control select{max-width:150px;height:29px;padding:0 8px;border:1px solid #42d9ff38;border-radius:6px;background:#07131b;color:#c9f9ff;font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace}.radar-speed-control{display:flex;align-items:center;gap:7px;margin-left:auto;color:#789aa7;font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em}.radar-speed-control input{width:clamp(90px,11vw,160px);margin:0;accent-color:#42d9ff;cursor:pointer}.radar-speed-indicator{padding:6px 10px;border:1px solid #42d9ff38;border-radius:99px;background:#42d9ff0c;color:#9beeff;font:800 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;white-space:nowrap}.display-mode-exit{position:fixed;z-index:1001;top:18px;right:18px;padding:8px 11px;border:1px solid #ffffff55;border-radius:6px;background:#02070c99;color:#fff;font:800 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;opacity:0;pointer-events:none;transition:opacity .28s}.pulsefield-page.display-mode .display-mode-exit.display-visible{opacity:.72;pointer-events:auto}.pulsefield-page.display-mode>header,.pulsefield-page.display-mode>.atmosphere,.pulsefield-page.display-mode>.scanline,.pulsefield-page.display-mode>.site-footer,.pulsefield-page.display-mode>.game-guide,.pulsefield-page.display-mode .pulsefield-main>:not(.pulsefield-panel),.pulsefield-page.display-mode .pulsefield-panel>:not(.pulsefield-stage),.pulsefield-page.display-mode .move-status,.pulsefield-page.display-mode .region-callout,.pulsefield-page.display-mode .field-intro,.pulsefield-page.display-mode .victory-screen,.pulsefield-page.display-mode .performance-monitor{opacity:0!important;visibility:hidden!important;pointer-events:none!important}.pulsefield-page.display-mode .pulsefield-main,.pulsefield-page.display-mode .pulsefield-panel{position:fixed;z-index:999;inset:0;width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:#02080d}.pulsefield-page.display-mode .pulsefield-stage{position:absolute;inset:0;width:100vw;height:100vh;min-height:0;animation:display-field-in .3s ease both}.pulsefield-page.display-mode.cursor-hidden,.pulsefield-page.display-mode.cursor-hidden *{cursor:none!important}@keyframes display-field-in{from{opacity:.82}to{opacity:1}}
.tiny-rules{display:grid;gap:8px;margin:20px auto 0;color:#bdd5df;font:800 12px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.07em}
.intro-card button,.victory-screen button{min-width:150px;padding:14px 28px;border:1px solid #42d9ff80;border-radius:8px;background:#42d9ff18;color:#e5fbff;font:900 13px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;cursor:pointer}
.intro-card button:disabled{opacity:.35;cursor:not-allowed}
.victory-screen{position:absolute;z-index:14;inset:0;place-items:center;align-content:center;gap:10px;background:#02060ae2;backdrop-filter:blur(6px);color:#fff;letter-spacing:.12em}
.victory-screen:not([hidden]){display:grid}
.victory-screen span{font:900 clamp(34px,7vw,82px) system-ui;text-shadow:0 0 42px var(--winner,#42d9ff)}
.victory-screen b{font:800 31px system-ui;color:var(--winner,#42d9ff)}
.restart-countdown{position:absolute;z-index:15;inset:0;display:grid;place-content:center;justify-items:center;gap:7px;background:#02060ab8;backdrop-filter:blur(3px);color:#fff;text-align:center;letter-spacing:.15em;pointer-events:none;animation:restart-in .22s ease-out}
.restart-countdown[hidden]{display:none}
.restart-countdown span{font:900 clamp(25px,4vw,48px) system-ui;text-shadow:0 0 30px #ff304f}
.restart-countdown small{color:#b8d4de;font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace}
.restart-countdown b{min-width:1.2em;color:#fff;font:900 clamp(76px,15vw,160px)/.9 system-ui;text-shadow:0 0 18px #fff,0 0 55px #42d9ff}
@keyframes restart-in{from{opacity:0;scale:.97}to{opacity:1;scale:1}}
.performance-monitor{position:absolute;z-index:9;right:12px;bottom:12px;display:grid;grid-template-columns:auto auto;gap:3px 12px;padding:9px 11px;border:1px solid #42d9ff38;border-radius:6px;background:#02070cdb;color:#8fa9b5;font:700 8px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;pointer-events:none}
.performance-monitor[hidden]{display:none}
.performance-monitor b{grid-column:1/-1;color:#42d9ff}
.performance-monitor output{color:#d6f8ff}
.faction-score{display:flex;gap:1px;min-height:5px;background:#07131b}
.faction-score i{height:5px;flex:var(--share);min-width:2px;background:var(--faction);box-shadow:0 0 12px var(--faction)}
@keyframes region-pop{0%{opacity:0;scale:.5}
20%{opacity:1;scale:1.05}
60%{opacity:1;scale:1}
100%{opacity:0;scale:1.25}
}
@media(max-width:700px){.pulsefield-stage{height:70vh;min-height:460px}
.radar-speed-control{width:100%;margin-left:0}.radar-speed-control input{flex:1}.radar-speed-indicator{order:3}
.music-control{width:100%}.music-control select{flex:1;max-width:none}
.match-board{grid-template-columns:1fr 1fr}.computer-identity{grid-column:1/-1}.match-goal{min-width:0}.player-identity b{font-size:25px}
.move-status{top:10px;font-size:9px}
.intro-card{padding:25px 16px}
.color-picker{grid-template-columns:repeat(2,minmax(118px,1fr))}
.color-choice{min-height:50px}
.color-choice span{font-size:10px}
.tiny-rules{font-size:10px}
}
@media(max-height:720px){.field-intro{place-items:start center;padding:12px}.intro-card{padding-top:20px;padding-bottom:20px}.intro-card h2{font-size:32px}.color-picker{margin-bottom:15px}.map-picker{margin-bottom:14px}}
