:root{--bg: #0e1116;--panel: #171c24;--panel2: #1f2631;--line: #2f3a49;--text: #e8edf4;--muted: #a9b4c3;--accent: #ffd166;--focus: #ffd166;--blue: #4ea1ff;--blue-bg: #0f2c4d;--red: #ff6b6b;--red-bg: #4a1518;--obj: #e05656;--sec: #e7a23b;--adv: #4fb36a;--ok: #6fd08c;--err: #ff8a8a;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);line-height:1.5}.btn.new-game{margin-top:1.25rem}.check:has(.check-extra){flex-wrap:wrap}.check:has(.check-extra) label{flex:1 1 0;min-width:0}.check-extra{flex:1 1 100%;margin-left:2.15rem;min-width:0}.check-extra ul{margin:.2rem 0 .4rem;padding-left:1.2rem}.check-extra li{margin:.3rem 0;overflow-wrap:anywhere}.check-extra .reminder-who{margin:.5rem 0 0;font-weight:600}.check-extra .fine{margin:.3rem 0 0}.reminder{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1rem 0}.reminder h2{margin:0 0 .4rem;font-size:1.1rem}.reminder h3{margin:.8rem 0 .3rem;font-size:1rem}.reminder ul{margin:0;padding-left:1.2rem}.reminder li{margin:.3rem 0;overflow-wrap:anywhere}@media(prefers-color-scheme:light){:root{--bg: #f4f6f9;--panel: #ffffff;--panel2: #eef1f5;--line: #cfd6df;--text: #10151c;--muted: #4b5563;--accent: #8a5a00;--focus: #0b5fff;--blue: #0b5fd6;--blue-bg: #dbeaff;--red: #b42318;--red-bg: #fde3e1;--ok: #137333;--err: #b42318}}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column}a{color:var(--blue)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#000;padding:.5rem 1rem;z-index:10}.skip:focus{left:.5rem}.site-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.brand{display:flex;gap:.75rem;align-items:center}.logo{font-size:1.8rem;color:var(--accent)}.name{margin:0;font-weight:700;font-size:1.15rem;letter-spacing:.02em}.tag{margin:0;color:var(--muted);font-size:.85rem}.header-actions{display:flex;gap:.5rem}.stepper{overflow-x:auto;border-bottom:1px solid var(--line);background:var(--panel)}.stepper ol{list-style:none;display:flex;margin:0;padding:.5rem;gap:.25rem;min-width:max-content}.stepper button{display:flex;align-items:center;gap:.4rem;background:none;border:1px solid transparent;color:var(--muted);padding:.4rem .6rem;border-radius:999px;cursor:pointer;font:inherit;font-size:.9rem;min-height:44px}.stepper button:disabled{opacity:.45;cursor:not-allowed}.stepper .num{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;border:1px solid var(--line);font-size:.8rem}.stepper li.done .num{background:var(--ok);color:#000;border-color:var(--ok)}.stepper li.current button{color:var(--text);border-color:var(--accent)}.stepper li.current .num{background:var(--accent);color:#000;border-color:var(--accent)}@media(max-width:700px){.stepper li:not(.current) .lbl{display:none}}#notice{margin:.75rem auto 0;max-width:1100px;width:calc(100% - 2rem);padding:.6rem .9rem;border-radius:var(--radius);background:var(--panel2);border:1px solid var(--accent)}main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1rem}main:focus{outline:none}h1{margin:.2rem 0 .8rem;font-size:1.6rem}h1:focus{outline:none}h3{margin:0 0 .5rem}.eyebrow{margin:0;color:var(--accent);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.ref,.fine{color:var(--muted);font-size:.85rem}.block{display:block}.btn{font:inherit;border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:.55rem 1rem;border-radius:10px;cursor:pointer;min-height:44px}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:#111;border-color:var(--accent);font-weight:600}@media(prefers-color-scheme:light){.btn.primary{color:#fff}}.btn.ghost{background:transparent}.btn.danger{color:var(--err)}.btn.primary.danger{background:var(--err);color:#111}.btn.small{padding:.3rem .7rem;font-size:.85rem;min-height:36px}.row{display:flex;gap:.5rem;align-items:center}.row.wrap{flex-wrap:wrap;align-items:flex-end}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1rem 0}.panel.house{border-style:dashed}.panel summary,details summary{cursor:pointer;font-weight:600;min-height:32px}.field{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted)}.field input,.field select,.custom input{font:inherit;padding:.5rem;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--text);min-height:44px}.field.small input{width:5.5rem}.file-label{display:block;font-weight:600;margin-top:.5rem}.file{margin:.4rem 0;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:.1rem;font-size:.75rem;font-weight:700;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--line);background:var(--panel2);color:var(--muted)}.badge.blue{background:var(--blue-bg);color:var(--blue);border-color:var(--blue)}.badge.red{background:var(--red-bg);color:var(--red);border-color:var(--red)}.badge.faction{color:var(--accent);border-color:var(--accent)}.ptag{display:inline-flex;gap:.3rem;align-items:center;flex-wrap:wrap}.tabs{display:flex;gap:.5rem;margin-top:1rem}.tab{flex:1;display:flex;justify-content:space-between;align-items:center;gap:.5rem;font:inherit;background:var(--panel);color:var(--text);border:1px solid var(--line);border-bottom:3px solid transparent;padding:.7rem 1rem;border-radius:var(--radius) var(--radius) 0 0;cursor:pointer;min-height:48px}.tab[aria-selected=true]{border-bottom-color:var(--accent);background:var(--panel2);font-weight:700}.count{font-size:.8rem;color:var(--muted)}.count.ok{color:var(--ok);font-weight:700}.tabpanel{background:var(--panel2);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);padding:1rem}.issues{list-style:none;padding:0;margin:.75rem 0}.issues .error{color:var(--err)}.issues .warning{color:var(--accent)}fieldset.cards{border:1px solid var(--line);border-left:6px solid var(--line);border-radius:var(--radius);margin:1rem 0;padding:.75rem;background:var(--panel)}fieldset.cat-objective{border-left-color:var(--obj)}fieldset.cat-secondary{border-left-color:var(--sec)}fieldset.cat-advantage{border-left-color:var(--adv)}legend{font-weight:700;padding:0 .4rem}.card-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}@media(max-width:480px){.card-grid{grid-template-columns:repeat(2,1fr)}}.tile{position:relative;border:2px solid var(--line);border-radius:var(--radius);padding:.5rem;background:var(--panel2);display:flex;flex-direction:column;gap:.3rem}.tile.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.tile.blocked{opacity:.6}.tile input[type=checkbox]{position:absolute;top:.6rem;left:.6rem;width:1.4rem;height:1.4rem;z-index:1;accent-color:var(--accent)}.tile label{display:flex;flex-direction:column;gap:.35rem;cursor:pointer}.tile-title{font-weight:600;font-size:.92rem;padding-left:.1rem}.tile.selected .tile-title:after{content:" ✓";color:var(--accent)}.tile-actions{display:flex;gap:.3rem;flex-wrap:wrap}.tile-actions .btn{flex:1 1 auto;min-width:0;padding-left:.4rem;padding-right:.4rem}.why{color:var(--muted)}.thumb{display:block;width:100%;height:auto;aspect-ratio:726 / 1039;object-fit:cover;border-radius:8px;background:#000}.thumb.md{width:96px;flex:none}.thumb.map{aspect-ratio:1039 / 726}.stack{display:flex;flex-direction:column;gap:.3rem}.with-card .stack.mini{width:64px;flex:none}.with-card .stack.mini .thumb{width:100%}.thumb.text{display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem;padding:.6rem .5rem .5rem 2.2rem;background:var(--panel);border:1px dashed var(--line);border-top:6px solid var(--line)}.thumb.text.md{padding-left:.5rem}.thumb.text.cat-objective{border-top-color:var(--obj)}.thumb.text.cat-secondary{border-top-color:var(--sec)}.thumb.text.cat-advantage{border-top-color:var(--adv)}.thumb.text .cat{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.thumb.text .t{font-weight:700;font-size:.85rem}.card-large{display:block;width:100%;height:auto;max-width:520px;max-height:75vh;object-fit:contain;margin:0 auto;border-radius:12px}.card-large.map{max-width:760px}.checklist{padding-left:0;list-style:none;display:grid;gap:.6rem}ol.checklist{counter-reset:c}.check{display:flex;gap:.75rem;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem}.check input{width:1.4rem;height:1.4rem;margin-top:.15rem;flex:none;accent-color:var(--accent)}.check input:disabled+label{opacity:.55}.check label{cursor:pointer}.with-card{display:flex;gap:.75rem;align-items:flex-start}.with-card .thumb{width:64px;flex:none}.with-card .thumb.text{display:none}.with-card .thumb.map{width:104px}.dice{border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:.5rem;flex-wrap:wrap}.result{background:var(--panel);border:1px solid var(--ok);border-radius:var(--radius);padding:.8rem 1rem;margin:1rem 0}.dashboard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.token{margin-top:0}.slots{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem}@media(min-width:700px){.slots{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.slots>.slot:not(.with-map) .figure{width:min(100%,280px);margin:0 auto}.adv-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem}.slot.owner-blue{border:3px solid var(--blue);background:color-mix(in srgb,var(--blue-bg) 55%,var(--panel2))}.slot.owner-red{border:3px solid var(--red);background:color-mix(in srgb,var(--red-bg) 55%,var(--panel2))}.owner-label{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.25rem;text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--text)}@media(max-width:520px){.slots{gap:.5rem}.slot{padding:.45rem}}.figures{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}.slot.with-map .figure:not(.map){width:min(100%,280px);margin:0 auto}.figure{margin:0;min-width:0}.figure figcaption{text-align:center;margin-top:.2rem}.figure-btn{display:block;width:100%;padding:0;border:0;background:none;border-radius:10px;cursor:zoom-in}.figure-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.card-img{display:block;width:100%;height:auto;aspect-ratio:726 / 1039;border-radius:10px;background:#000}.card-img.map{aspect-ratio:1039 / 726}.slot .figure .thumb.text{display:flex}.slot{background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem}.slot-label{margin:0 0 .4rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.slot-card{display:flex;gap:.6rem;align-items:flex-start}.slot-title{margin:0 0 .4rem;font-weight:700}.empty{color:var(--muted);font-style:italic;margin:0}.prompt{margin:1rem 0;padding:1rem;border-radius:var(--radius);border:2px solid var(--accent);background:var(--panel)}.prompt.done{border-color:var(--ok)}.now{font-size:1.1rem;font-weight:700;margin-top:0}.actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:.5rem}.actions .btn{text-align:left}.log ol{color:var(--muted);font-size:.9rem}.summary{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);overflow-wrap:anywhere;gap:.4rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.summary dt{color:var(--muted)}.summary dd{margin:0;font-weight:600}.step-nav{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line);flex-wrap:wrap}.hint{width:100%;text-align:right;margin:0}.site-footer{border-top:1px solid var(--line);padding:1rem;color:var(--muted);font-size:.8rem;background:var(--panel)}.site-footer p{max-width:1100px;margin:.5rem auto 0}.save-toggle{display:flex;gap:.5rem;align-items:center;max-width:1100px;margin:0 auto;font-size:.9rem;color:var(--text)}.save-toggle input{width:1.2rem;height:1.2rem}dialog{width:min(800px,96vw);background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);max-width:min(800px,96vw);max-height:96vh;padding:1rem 1.25rem}dialog::backdrop{background:#000000b3}dialog h2{margin:0;font-size:1.2rem}@media(max-width:520px){.site-header{padding:.5rem .75rem;gap:.5rem}.logo{font-size:1.4rem}.tag{font-size:.75rem}.header-actions .btn{padding:.45rem .7rem}.stepper ol{padding:.35rem .5rem}.stepper button{padding:.3rem .45rem}main{padding:.75rem}h1{font-size:1.35rem}.tabpanel{padding:.6rem}.tab{padding:.6rem .7rem}fieldset.cards{padding:.5rem;margin:.75rem 0}.card-grid{gap:.5rem}.tile{padding:.4rem}.btn.small{min-height:40px}.step-nav .btn{flex:1 1 auto}.prompt,.dashboard{padding:.7rem}dialog{padding:.6rem .7rem}.card-large{max-height:80vh}}.blue-tokens{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem;margin-bottom:.6rem}.blue-token{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:72px;padding:.5rem;border:3px solid var(--line);border-radius:var(--radius);background:var(--panel2);text-align:center;overflow-wrap:anywhere}.token-name{font-weight:700}.token-side{font-size:.85rem;font-weight:700;color:var(--muted)}.revealed .blue-token,.result:not(.spinning) .blue-token{border-color:var(--red);background:color-mix(in srgb,var(--red-bg) 55%,var(--panel2))}.result:not(.spinning) .blue-token .token-side{color:var(--red)}.result:not(.spinning) .blue-token.winner{border-color:var(--blue);background:color-mix(in srgb,var(--blue-bg) 70%,var(--panel2))}.result:not(.spinning) .blue-token.winner .token-side{color:var(--blue)}.result.spinning{border-color:var(--accent)}.pending{margin:0 0 .5rem;font-weight:600}.spin-progress{height:6px;border-radius:3px;background:var(--panel2);overflow:hidden}.spin-progress span{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;transform:scaleX(0);animation:spin-fill 2s linear forwards}@keyframes spin-fill{to{transform:scaleX(1)}}@keyframes shuffle{0%,45%{border-color:var(--blue);background:color-mix(in srgb,var(--blue-bg) 70%,var(--panel2))}55%,to{border-color:var(--red);background:color-mix(in srgb,var(--red-bg) 55%,var(--panel2))}}@keyframes pop{0%{transform:scale(.94)}60%{transform:scale(1.04)}to{transform:scale(1)}}.spinning .blue-token{animation:shuffle .5s ease-in-out infinite alternate}.spinning .blue-token+.blue-token{animation-direction:alternate-reverse}.revealed .blue-token.winner{animation:pop .45s ease-out}@media(prefers-reduced-motion:reduce){.spinning .blue-token,.revealed .blue-token.winner{animation:none}.spin-progress span{animation:none;transform:scaleX(.5)}}@media(prefers-reduced-motion:no-preference){.tile,.btn{transition:border-color .15s,box-shadow .15s}}.custom .row input{flex:1 1 auto;min-width:0}details.import{margin:.75rem 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:.5rem .8rem}details.import>summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}details.import label{display:block;font-weight:600;margin:.4rem 0 .25rem}details.import textarea{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;font:inherit;font-size:16px;font-family:ui-monospace,monospace;padding:.5rem;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--text);resize:vertical;overflow-wrap:anywhere}details.import .row{margin-top:.5rem}.import-result{margin-top:.75rem;padding:.6rem .8rem;border-radius:8px;border:2px solid var(--line);background:var(--panel2);overflow-wrap:anywhere}.import-result.ok{border-color:var(--ok)}.import-result.partial{border-color:var(--accent)}.import-result.error{border-color:var(--err)}.import-result p{margin:.3rem 0}.import-head{font-weight:700}.import-cards{margin:.4rem 0;padding-left:1.1rem}.import-cards li{margin:.15rem 0}.import-status{margin:.6rem 0 .2rem;color:var(--ok);font-weight:600;overflow-wrap:anywhere}.setup-body{display:block;min-width:0;overflow-wrap:anywhere}.setup-head{display:block;font-weight:700}.setup-src{display:block;margin-top:.25rem}.setup-text{display:block;border-left:3px solid var(--line);padding-left:.6rem;margin:.2rem 0 .3rem}.setup-p{display:block;margin:.25rem 0}.setup-who{display:block}.setup-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}.icon-tok{display:inline-block;padding:0 .35em;border-radius:999px;border:1px solid var(--line);background:var(--panel2);font-size:.85em;font-weight:700;white-space:nowrap}.kw{font-weight:700;font-variant:small-caps}
