:root{--night: #0c0f1e;--night-2: #10142a;--plate: #161b34;--plate-2: #1b2140;--bone: #ece5d3;--bone-dim: #97a0c0;--brass: #c69a5a;--brass-dim: rgba(198, 154, 90, .24);--sun: #f4b740;--sun-hi: #ffd985;--sun-glow: rgba(244, 183, 64, .5);--moon: #9fb6ea;--moon-hi: #d6e2ff;--moon-glow: rgba(159, 182, 234, .5);--win: #ffd36b;--danger: #e8846b;--font-display: "Cinzel", "Zen Kaku Gothic New", serif;--font-body: "Zen Kaku Gothic New", "Segoe UI", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", monospace;--turn-glow: rgba(255, 255, 255, .04);--edge: 10px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--bone);background:var(--night);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;word-break:auto-phrase;line-break:strict}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(120% 80% at 50% -10%,var(--turn-glow),transparent 60%),radial-gradient(90% 60% at 15% 0%,rgba(159,182,234,.06),transparent 55%),radial-gradient(90% 60% at 85% 8%,rgba(244,183,64,.05),transparent 55%),linear-gradient(180deg,var(--night-2),var(--night) 60%);transition:background .8s ease}.app.turn-sun{--turn-glow: rgba(244, 183, 64, .11)}.app.turn-moon{--turn-glow: rgba(159, 182, 234, .1)}.app{position:relative;max-width:620px;margin:0 auto;padding:max(12px,env(safe-area-inset-top)) 16px calc(22px + env(safe-area-inset-bottom))}.eyebrow{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}.brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin:2px 0}.brand-compact{flex-direction:row;gap:9px;margin:0 0 8px}.brand-compact .eclipse-glyph{width:26px;height:26px;filter:drop-shadow(0 0 8px var(--sun-glow))}.brand-compact .wordmark{font-size:1.35rem;letter-spacing:.16em;padding-left:.16em}.eclipse-glyph{width:clamp(34px,10vw,44px);height:clamp(34px,10vw,44px);color:var(--sun);filter:drop-shadow(0 0 14px var(--sun-glow))}.eclipse-glyph .corona{opacity:.7;stroke-width:1.4}.eclipse-glyph .disc{fill:var(--night);stroke:var(--sun);stroke-width:2.4}.eclipse-glyph .diamond{fill:var(--sun-hi)}.wordmark{font-family:var(--font-display);font-weight:600;font-size:clamp(1.8rem,8vw,2.4rem);letter-spacing:.2em;line-height:1;margin:0;padding-left:.2em;background:linear-gradient(100deg,var(--sun-hi),var(--bone) 45%,var(--moon-hi));-webkit-background-clip:text;background-clip:text;color:transparent}.subtitle{text-align:center;color:var(--bone-dim);margin:8px auto 12px;font-size:.8rem;letter-spacing:.04em;max-width:30rem}.brand-rule{display:block;width:64px;height:1px;margin:8px auto;background:linear-gradient(90deg,transparent,var(--brass),transparent)}.panel{background:linear-gradient(180deg,#ffffff08,#0000000f),var(--plate);border:1px solid var(--brass-dim);border-radius:var(--edge);padding:14px;box-shadow:inset 0 1px #ffffff0d,0 18px 40px #00000059}.stack{display:flex;flex-direction:column;gap:11px}label{display:flex;align-items:center;gap:6px;min-height:22px;font-size:.78rem;color:var(--bone-dim);letter-spacing:.04em;margin-bottom:5px}input[type=text]{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--brass-dim);background:#00000047;color:var(--bone);font:inherit;font-size:1rem}input[type=text]:focus-visible{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px #c69a5a2e}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.field{min-width:0}.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg>button{width:100%}.seg>button.side-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px}.seg-glyph{width:18px;height:18px;flex:none}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}button{font:inherit;font-weight:500;cursor:pointer;min-height:46px;padding:11px 18px;border-radius:8px;border:1px solid var(--brass-dim);background:#ffffff08;color:var(--bone);letter-spacing:.03em;transition:transform .06s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}button:hover:not(:disabled){border-color:var(--brass);background:#c69a5a1a}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:none;box-shadow:0 0 0 3px #c69a5a47}button:disabled{opacity:.38;cursor:not-allowed}button.primary{border-color:transparent;color:#22160a;font-weight:700;background:linear-gradient(180deg,var(--sun-hi),var(--sun) 60%,#d9932c);box-shadow:0 8px 22px #f4b74047,inset 0 1px #fff6}button.primary:hover:not(:disabled){background:linear-gradient(180deg,#ffe6a6,var(--sun-hi) 60%,#e3a038)}button.toggle.active{border-color:var(--brass);background:#c69a5a29;color:var(--bone)}button.chip{min-height:40px;padding:8px 14px;border-radius:999px;font-size:.9rem}.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:0;margin-bottom:18px;border:1px solid var(--brass-dim);border-radius:var(--edge);background:var(--plate);overflow:hidden;box-shadow:0 18px 40px #00000052}.pcard{padding:12px 9px 11px;position:relative;min-width:0;transition:background .4s ease}.pcard.moon{text-align:right}.pcard.active.sun{background:linear-gradient(180deg,rgba(244,183,64,.16),transparent 70%)}.pcard.active.moon{background:linear-gradient(180deg,rgba(159,182,234,.16),transparent 70%)}.pcard.active:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.pcard.active.sun:before{background:linear-gradient(90deg,var(--sun),transparent)}.pcard.active.moon:before{background:linear-gradient(90deg,transparent,var(--moon))}.pname{display:flex;align-items:center;gap:5px;min-width:0;font-weight:700;font-size:.86rem;letter-spacing:0}.pname>span:not(.tag){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pside{flex:none}.pperson{color:var(--bone-dim);font-weight:500}.declare-head .who-person{color:var(--bone-dim);font-weight:500;font-size:.92rem}.pcard.moon .pname{flex-direction:row-reverse}.pglyph{width:16px;height:16px;flex:none}.prole{margin-top:3px;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}.pstats{margin-top:9px;font-size:.74rem;color:var(--bone-dim);display:flex;align-items:center;gap:6px}.pcard.moon .pstats{justify-content:flex-end}.dots{letter-spacing:2px;color:var(--brass)}.planet-line{font-size:.74rem}.center-status{display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid var(--brass-dim);border-right:1px solid var(--brass-dim);background:#0000002e;min-width:58px;padding:8px}.center-status .sets{font-family:var(--font-display);font-weight:700;font-size:1.55rem;letter-spacing:.06em;color:var(--bone);display:flex;align-items:baseline;gap:8px}.center-status .sets .dash{color:var(--brass);font-size:1rem}.center-status .setno{margin-top:4px;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);text-align:center}.tag{display:inline-block;padding:2px 7px;border-radius:999px;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;border:1px solid var(--brass-dim);color:var(--bone-dim)}.tag.ai{color:#8fe6c2;border-color:#8fe6c266}.board-wrap{display:flex;justify-content:center;margin:6px 0 18px}.board{position:relative;width:min(90vw,460px)}.grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:12px;border-radius:14px;border:1px solid var(--brass-dim);background:radial-gradient(120% 120% at 50% 0%,rgba(255,255,255,.03),transparent 60%),var(--plate-2);box-shadow:inset 0 2px 14px #00000080,0 20px 44px #0006}.cross-x{position:absolute;top:12px;right:12px;bottom:12px;left:12px;width:calc(100% - 24px);height:calc(100% - 24px);z-index:0;pointer-events:none;overflow:visible}.cross-x line{stroke:var(--brass);stroke-width:1.6;opacity:.55;stroke-linecap:round;filter:drop-shadow(0 0 5px rgba(198,154,90,.45))}.cell{position:relative;z-index:1;aspect-ratio:1 / 1;border-radius:9px;border:1px solid rgba(255,255,255,.05);background:#00000038;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;box-shadow:inset 0 1px #ffffff0a,inset 0 -8px 18px #00000059;transition:transform .08s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.cell.cross{background:radial-gradient(80% 80% at 50% 50%,#c69a5a1f,#00000038 70%);border-color:#c69a5a29}.cell.clickable{cursor:pointer;border-color:#c69a5a80}@media(hover:hover)and (pointer:fine){.cell.clickable:hover{transform:translateY(-2px);border-color:var(--brass);box-shadow:inset 0 1px #ffffff0d,0 10px 22px #c69a5a40}}.cell.selected{border-color:var(--win);box-shadow:0 0 0 2px var(--win),inset 0 0 18px #ffd36b40}.cell.win{border-color:var(--win);animation:winpulse 1.1s ease-in-out infinite alternate}@keyframes winpulse{0%{box-shadow:0 0 0 2px var(--win),0 0 10px #ffd36b66}to{box-shadow:0 0 0 2px var(--win),0 0 26px #ffd36bd9}}.coordtag{position:absolute;left:6px;top:4px;font-family:var(--font-mono);font-size:.52rem;letter-spacing:.06em;color:var(--bone-dim);opacity:.45}.mark{width:62%;height:62%;animation:markin .24s cubic-bezier(.2,.9,.3,1.3)}.mark--sun{color:var(--sun);filter:drop-shadow(0 0 8px var(--sun-glow))}.mark--moon{color:var(--moon-hi);filter:drop-shadow(0 0 8px var(--moon-glow))}.mark.shielded{opacity:.95}.pglyph--sun{color:var(--sun)}.pglyph--moon{color:var(--moon-hi)}@keyframes markin{0%{transform:scale(.4) rotate(-12deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.cellshield{position:absolute;right:5px;bottom:3px;width:13px;height:13px;color:var(--moon-hi);opacity:.9}.controls{margin-top:6px}.controls .hint{color:var(--bone-dim);font-size:.9rem;line-height:1.5;min-height:2.7em;margin-bottom:12px;letter-spacing:.02em}.actionbar{display:flex;gap:10px;flex-wrap:wrap}.actionbar button{flex:1 1 auto}.ability-notes{margin-top:10px;display:grid;grid-template-columns:max-content max-content 1fr;align-items:baseline;column-gap:8px;row-gap:7px;font-size:.76rem;line-height:1.5}.an{display:contents}.an-key{font-weight:700;color:var(--brass);letter-spacing:.02em;white-space:nowrap}.an-key.sun{color:var(--sun)}.an-key.moon{color:var(--moon-hi)}.an-who{justify-self:start;font-size:.62rem;font-weight:700;padding:1px 6px;border-radius:999px;border:1px solid var(--brass-dim);color:var(--bone-dim);white-space:nowrap}.an-who.mine{color:var(--brass);border-color:var(--brass)}.an-txt{color:var(--bone-dim)}.an-used{margin-left:6px;font-size:.64rem;padding:0 5px;border-radius:999px;border:1px solid var(--brass-dim);color:var(--bone-dim);white-space:nowrap}.planet-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:4px}.planet-card{text-align:left;padding:13px 14px;border-radius:9px;display:flex;align-items:baseline;gap:10px;min-height:0}.planet-card .pt{font-weight:700;font-size:.98rem;white-space:nowrap}.planet-card .pd{color:var(--bone-dim);font-size:.78rem;letter-spacing:.01em}.planet-card.selected{border-color:var(--brass);background:#c69a5a29}.declare{border-top:3px solid transparent}.declare.sun{border-top-color:var(--sun)}.declare.moon{border-top-color:var(--moon)}.declare-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--brass-dim)}.declare-head .who{display:flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:700}.declare-head .who .pglyph{width:22px;height:22px}.declare.sun .declare-head .who b{color:var(--sun)}.declare.moon .declare-head .who b{color:var(--moon-hi)}.declare-head .prole{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}.declare-head .step{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;color:var(--bone-dim);white-space:nowrap}.confirm-planet{text-align:center;padding:14px 0 6px}.confirm-planet .eyebrow{margin-bottom:12px}.cp-name{font-weight:700;font-size:1.4rem;margin-bottom:6px}.cp-desc{color:var(--bone-dim);font-size:.9rem;line-height:1.6}.banner{text-align:center;padding:22px 18px;border-radius:var(--edge);margin-bottom:14px;border:1px solid var(--brass);background:radial-gradient(120% 120% at 50% 0%,rgba(255,211,107,.12),transparent 65%),var(--plate)}.banner h2{margin:0 0 6px;font-size:1.35rem;font-weight:700;letter-spacing:.02em}.banner .god{font-family:var(--font-display);font-weight:700;font-size:clamp(2.4rem,14vw,3.6rem);letter-spacing:.1em;margin:6px 0 2px;color:var(--win);text-shadow:0 0 30px rgba(255,211,107,.6);animation:godrise .7s cubic-bezier(.2,.8,.2,1)}.banner .godname{color:var(--bone);font-family:var(--font-body);font-size:.95rem;letter-spacing:.04em}@keyframes godrise{0%{transform:translateY(10px) scale(.94);opacity:0;filter:blur(3px)}to{transform:none;opacity:1;filter:none}}.cointoss{display:flex;flex-direction:column;align-items:center;gap:12px;margin:2px 0 0}.coin-btn{perspective:800px;background:none;border:none;padding:0;min-height:0;border-radius:50%;cursor:pointer;transition:transform .14s ease}.coin-btn:hover:not(:disabled){background:none;transform:translateY(-3px)}.coin-btn:active:not(:disabled){transform:translateY(0)}.coin-btn:focus-visible{outline:none;box-shadow:0 0 0 4px #c69a5a4d}.coin-btn:disabled{cursor:default;opacity:1}.coin-caption{text-align:center;font-size:.9rem;color:var(--bone-dim);line-height:1.5;min-height:2.8em}.coin-caption b{font-size:1rem}.coin-caption .retoss{display:block;margin-top:2px;font-size:.72rem;opacity:.7}.coin{position:relative;width:88px;height:88px;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.2,.85,.2,1);will-change:transform}.coin-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:2px solid;box-shadow:inset 0 2px 8px #ffffff59,inset 0 -6px 14px #00000047,0 12px 26px #00000073}.coin-num{font-family:var(--font-display);font-weight:700;font-size:2.1rem;line-height:1}.coin-glyph{width:34px;height:34px;color:inherit!important;filter:none!important}.coin-face .coin-label{max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;font-weight:700;letter-spacing:.02em;opacity:.85}.coin-a{background:radial-gradient(circle at 50% 34%,#ffe9b0,#f4b740 58%,#cf8b26);border-color:#ffe1a0;color:#4a3208}.coin-b{transform:rotateY(180deg);background:radial-gradient(circle at 50% 34%,#e6edff,#9fb6ea 58%,#5f6f9e);border-color:#d6e2ff;color:#131c35}.coin-result{text-align:center;font-size:1.02rem;margin-top:8px;line-height:1.4}.log{margin-top:20px;max-height:168px;overflow-y:auto;font-family:var(--font-mono);font-size:.72rem;line-height:1.5;color:var(--bone-dim);background:#0000004d;border-radius:var(--edge);padding:12px 15px;border:1px solid var(--brass-dim)}.log .logline{padding:2px 0}.log .logline:first-child{color:var(--bone)}.footer-actions{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}.small{font-size:.78rem;color:var(--bone-dim);line-height:1.5}.rules-link{text-align:center;margin:-4px 0 12px}.linkbtn{background:none;border:none;min-height:auto;padding:6px 8px;color:var(--brass);font-size:.85rem;letter-spacing:.04em}.linkbtn:hover:not(:disabled){background:none;border:none;color:var(--sun-hi)}.confirm .eyebrow{margin-bottom:2px}.confirm-list{margin:0}.confirm-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--brass-dim)}.confirm-list dt{margin:0;color:var(--bone-dim);font-size:.82rem;letter-spacing:.02em}.confirm-list dd{margin:0;font-weight:600;display:flex;align-items:center;gap:8px}.rules{display:flex;flex-direction:column;gap:14px}.rules p{margin:0;line-height:1.75;font-size:.9rem}.rules b{color:var(--bone)}.c-sun{color:var(--sun)!important}.c-moon{color:var(--moon-hi)!important}.board-art{margin:0;font-family:var(--font-mono);font-size:.72rem;line-height:1.5;color:var(--bone-dim);background:#00000047;border:1px solid var(--brass-dim);border-radius:8px;padding:10px 12px;overflow-x:auto;white-space:pre}.rlist{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:9px}.rlist li{line-height:1.65;font-size:.9rem}.planet-list{margin:0;padding:0;list-style:none}.planet-list li{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--brass-dim)}.planet-list li:last-child{border-bottom:none}.pl-name{font-weight:700}.pl-desc{color:var(--bone-dim);font-size:.84rem;line-height:1.55}.guide-lead{margin:0 0 2px;line-height:1.8;font-size:.95rem;color:var(--bone)}.guide .board-art{font-size:.74rem}.panel.accent{border-color:var(--brass);background:radial-gradient(120% 120% at 50% 0%,rgba(198,154,90,.13),transparent 62%),var(--plate)}.strat-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px}.strat-list li{line-height:1.65;font-size:.9rem}.strat-list .tip{padding-left:12px;border-left:2px solid var(--brass-dim)}.rlist li.do,.rlist li.dont,.strat-list li.do,.strat-list li.dont{position:relative;list-style:none;padding-left:1.7em}.do:before,.dont:before{position:absolute;left:0;top:0;font-weight:700}.do:before{content:"◎";color:var(--sun)}.dont:before{content:"×";color:var(--danger)}.rlist.numbered{counter-reset:strat;padding-left:0;list-style:none}.rlist.numbered li{counter-increment:strat;position:relative;padding-left:1.9em}.rlist.numbered li:before{content:counter(strat);position:absolute;left:0;top:0;font-family:var(--font-mono);font-weight:700;color:var(--brass)}.strat-planets .pl-name{color:var(--bone)}.link-sep{color:var(--brass-dim);margin:0 4px}.app.game{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:calc(10px + env(safe-area-inset-bottom));padding-left:max(7px,env(safe-area-inset-left));padding-right:max(7px,env(safe-area-inset-right))}.app.game .scoreboard{margin-bottom:8px}.app.game .pcard{padding:8px 10px 9px}.app.game .pname{font-size:.9rem}.app.game .prole{margin-top:1px;font-size:.56rem}.app.game .pstats{margin-top:5px;font-size:.72rem}.app.game .center-status .sets{font-size:1.35rem}.app.game .board-wrap{margin:0 0 8px}.app.game .board{width:min(96vw,520px,calc(100svh - 340px))}.app.game .grid{gap:8px;padding:11px}.app.game .cross-x{top:11px;right:11px;bottom:11px;left:11px;width:calc(100% - 22px);height:calc(100% - 22px)}.app.game .cell .coordtag{font-size:.5rem}.app.game .panel.controls{padding:11px 14px}.app.game .controls .hint{min-height:2.2em;margin-bottom:9px;font-size:.85rem}.app.game .footer-actions{margin-top:8px}.app.game .footer-actions button{min-height:42px;padding:8px 16px;font-size:.9rem}@media(min-width:560px){.planet-grid{grid-template-columns:1fr 1fr}}@media(min-width:900px){.app.setup{max-width:980px;display:grid;grid-template-columns:1fr 430px;align-items:center;gap:56px;min-height:100dvh;padding-top:0;padding-bottom:0}.setup-hero{align-self:center}.setup-hero .brand{align-items:flex-start;gap:10px;margin:0}.setup-hero .eclipse-glyph{width:58px;height:58px}.setup-hero .wordmark{font-size:3.1rem;padding-left:0}.setup-hero .brand-rule{margin:18px 0}.setup-hero .subtitle{text-align:left;margin:0;font-size:.95rem;max-width:22rem}.setup-hero .rules-link{text-align:left;margin:18px 0 0}.setup-hero .linkbtn{padding-left:0}.setup-panel{padding:22px}.app.game{max-width:1080px;padding-left:24px;padding-right:24px}.app.game .scoreboard{margin-bottom:20px}.game-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px}.game-aside{display:flex;flex-direction:column;gap:16px}.app.game .board{width:min(100%,calc(100svh - 170px),600px)}.app.game .board-wrap{margin:0}.app.game .panel.controls{margin-top:0;padding:16px 18px}.app.game .controls .hint{min-height:3em;font-size:.92rem}.app.game .actionbar{flex-direction:column;align-items:stretch}.app.game .actionbar button{width:100%;flex:none}.app.game .footer-actions{margin-top:4px;justify-content:flex-start}.app.game .footer-actions button{flex:1}.app.game.phase-declare .game-body{display:block;max-width:640px;margin:0 auto}.app.game.phase-declare .footer-actions{margin-top:16px;justify-content:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
