:root{--font-display:"Bangers", Impact, "Arial Narrow Bold", sans-serif;--font-body:system-ui, "Segoe UI", Roboto, sans-serif;--text-sm:.875rem;--text-base:1rem;--text-md:1.25rem;--text-lg:1.5rem;--text-xl:2.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #14121a1f;--shadow-md:0 2px 4px #14121a1a, 0 6px 16px #14121a1f;--text:#1f1d24;--muted:#5d5866;--bg:#fff;--surface:#f5f4f7;--border:#d9d7de;--accent:#b3121f;--accent-text:#fff;--link:#b3121f;--focus:#1459b8;--scheme:#6d3bb5;--mastermind:#b0182a;--villain:#b1400d;--henchman:#7a5c00;--hero:#1459b8;--bystander:#2d7a3e;--wound:#a3276b;--shield:#3b5a74;--difficulty:var(--mastermind);--complexity:var(--scheme);--term-team:var(--hero);--term-class:var(--shield);--term-keyword:var(--scheme);font:var(--text-base) / 1.5 var(--font-body);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--shadow-sm:0 1px 2px #0006;--shadow-md:0 2px 4px #0000004d, 0 6px 16px #0006;--text:#f1f0f4;--muted:#aaa6b3;--bg:#16151a;--surface:#222128;--border:#3a3842;--accent:#d42431;--link:#ff7a85;--focus:#78adff;--scheme:#b99af0;--mastermind:#ff7a85;--villain:#ff9a5c;--henchman:#e3c25a;--hero:#78adff;--bystander:#7fd48f;--wound:#f28bc0;--shield:#9ab8d3}}body{margin:0}.app{box-sizing:border-box;max-width:32rem;padding:var(--space-4) var(--space-4) var(--space-6);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.content,.rail{gap:var(--space-5);flex-direction:column;display:flex}@media (width>=37.5rem){.app{max-width:44rem;padding-inline:var(--space-6)}}@media (width>=56.25rem){.app{max-width:76rem}.content{gap:var(--space-7);grid-template-columns:minmax(20rem,26rem) minmax(0,1fr);align-items:start;display:grid}.rail{top:var(--space-4);max-height:calc(100dvh - var(--space-6));box-sizing:border-box;margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-2));padding:var(--space-1) var(--space-2);position:sticky;overflow-y:auto}}h1,h2{font-family:var(--font-display);letter-spacing:.03em;font-weight:400;line-height:1.1}h1{font-size:var(--text-xl);margin:0}h2{font-size:var(--text-lg);margin:0 0 var(--space-3)}p{margin:0}a{color:var(--link)}:focus-visible{outline:3px solid var(--focus);outline-offset:1px}[tabindex="-1"]:focus-visible{outline:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:2px solid var(--border);display:flex}.site-header .mark{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:none}.wordmark span{color:var(--link)}.tagline{color:var(--muted);font-size:var(--text-sm)}.site-footer{gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--muted);flex-direction:column;display:flex}.footer-link{align-items:center;min-height:44px;display:inline-flex}button{font:inherit;border-radius:var(--radius-md);cursor:pointer;min-height:44px}button:disabled{cursor:not-allowed;opacity:.5}.player-counts{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(5,1fr);display:grid}.player-count{min-height:56px;font-size:var(--text-md);color:var(--text);background:var(--surface);border:2px solid var(--border);font-weight:600}.player-count[aria-pressed=true]{color:var(--accent-text);background:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-sm)}.box-options{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.box-option{align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-3);background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;display:flex}div.box-option{cursor:default}.box-option>label{align-self:stretch;align-items:center;gap:var(--space-3);cursor:pointer;flex:1;min-width:0;display:flex}.box-option:has(input:disabled)>label{cursor:default}.box-option:has(input:checked){border-color:var(--accent)}.box-option:has(input:disabled){cursor:default}.box-option input{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none;margin:0}.box-option .box-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.box-option .detail{font-size:var(--text-sm);color:var(--muted);flex:none}.box-group-label{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-3);margin:0 0 var(--space-2);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);flex-wrap:wrap;display:flex}.box-group-note{text-transform:none;letter-spacing:0;font-weight:400}.base-games{margin-bottom:var(--space-4);padding:var(--space-3);background:var(--surface);border:2px solid var(--accent);border-radius:var(--radius-md)}.base-games .box-group-label{color:var(--accent)}.base-games .box-options{margin-bottom:0}.base-games.needs-choice{border-style:dashed}.base-games.needs-choice .box-group-note,.base-games.needs-choice .box-hint{color:var(--text);font-weight:600}.info-button{min-width:44px;min-height:44px;margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-3)) calc(-1 * var(--space-2)) 0;color:var(--accent);background:0 0;border:none;flex:none;padding:0}.info-mark{width:1.5rem;height:1.5rem;font-family:serif;font-size:var(--text-sm);border:2px solid;border-radius:50%;justify-content:center;align-items:center;font-style:italic;font-weight:700;display:inline-flex}.info-button[aria-expanded=true] .info-mark{color:var(--bg);background:var(--accent);border-color:var(--accent)}.box-info{--kind:var(--accent)}.box-info-ruleset{font-size:var(--text-sm);color:var(--muted)}.row .info-button{margin:calc(-1 * var(--space-2)) 0}.special-box{margin:0 0 var(--space-1);font-size:var(--text-sm);color:var(--muted);font-weight:600}.special-cards{padding-left:var(--space-4);list-style:outside}.box-hint{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--muted)}.primary{width:100%;color:var(--accent-text);background:var(--accent);box-shadow:var(--shadow-sm);border:none;font-weight:600}.boxes-heading{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.boxes-heading h2{margin:0}.link-button{font:inherit;font-size:var(--text-sm);color:var(--link);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.generate-top{margin-bottom:var(--space-4)}@media (width>=56.25rem){.generate-top{top:calc(-1 * var(--space-1));z-index:2;position:sticky}}.status{gap:var(--space-3);flex-direction:column;display:flex}.intro{margin-top:var(--space-3);font-size:var(--text-sm);text-align:center;color:var(--muted)}.loading-line{font-weight:600}.notice{padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--hero);border-radius:var(--radius-md)}.skeleton{gap:var(--space-4);flex-direction:column;display:flex}.bone{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--border) 40%, var(--surface) 50%, var(--border) 60%) 0 0 / 300% 100%;height:1rem;animation:1.6s linear infinite shimmer;display:block}.bone-heading{width:60%;height:var(--text-lg)}.bone-label{width:30%;height:var(--text-sm)}.bone-title{width:70%;height:var(--text-xl)}.bone-line{width:75%}.bone-count{flex:none;width:1.5rem}.skeleton-row{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0 var(--space-3) var(--space-6);border-bottom:1px solid var(--border);display:flex}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.bone{animation:none}}.state-card{--type:var(--link);gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--type);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.state-prompt{font-weight:600}.action-bar{z-index:5;align-items:center;gap:var(--space-4);margin:calc(var(--space-3) - var(--space-5)) calc(-1 * var(--space-4)) 0;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border);display:flex;position:sticky;bottom:0}.action-players{color:var(--muted);flex:none;font-weight:600}@media (width>=37.5rem){.action-bar{display:none}}.summary{gap:var(--space-4);flex-direction:column;display:flex}.headline-cards{gap:var(--space-3);flex-direction:column;display:flex}.headline-card{--type:var(--text);gap:var(--space-1);padding:var(--space-3) var(--space-4) var(--space-4);background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--type);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.scheme{--type:var(--scheme)}.mastermind{--type:var(--mastermind)}.hero{--type:var(--hero)}.villain{--type:var(--villain)}.henchman{--type:var(--henchman)}.wound{--type:var(--wound)}.shield{--type:var(--shield)}.card-type{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--type);font-weight:600}.summary .headline-card h3{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:.03em;text-transform:none;color:var(--text);overflow-wrap:anywhere;margin:0;font-weight:400;line-height:1.05}.summary .tags{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.tag{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);border:1px solid var(--type);border-radius:999px}.summary .tile-heading{margin-bottom:var(--space-2)}.summary .tiles,.skeleton .tiles{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));display:grid}.tile{gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--type);border-radius:var(--radius-md);flex-direction:column;display:flex}.tile-name{overflow-wrap:anywhere;font-weight:600}.destination{margin-top:var(--space-1);font-size:var(--text-sm);font-weight:600}.setup{gap:var(--space-5);flex-direction:column;display:flex}.result-heading{scroll-margin-top:var(--space-4);margin:0}.rules-reason{font-size:var(--text-sm);color:var(--muted);margin:0}.rules-reason cite{white-space:nowrap;font-style:normal}.progress{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--border);border-radius:999px;align-self:flex-start;font-weight:600}.ratings{gap:var(--space-3);flex-wrap:wrap;align-items:flex-start;display:flex}.rating-pickers{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.rating-picker{gap:var(--space-1);flex-direction:column;flex:10rem;display:flex}.rating-picker label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.rating-picker select{min-height:2.75rem;padding:var(--space-1) var(--space-2);font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.rating-picker select:disabled{opacity:.6}.difficulty-request{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--muted)}.difficulty.complexity{--difficulty:var(--complexity)}.difficulty{padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--difficulty);border-radius:var(--radius-md);align-self:flex-start}.difficulty-head{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.difficulty-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.difficulty-band{font-family:var(--font-display);font-size:var(--text-md);letter-spacing:.02em;color:var(--difficulty)}.difficulty-pips{gap:var(--space-1);display:inline-flex}.difficulty-pip{border:2px solid var(--difficulty);border-radius:50%;width:.75rem;height:.75rem}.difficulty-pip.on{background:var(--difficulty)}.difficulty details{margin-top:var(--space-1);font-size:var(--text-sm)}.difficulty summary{cursor:pointer;color:var(--link)}.difficulty ul{margin:var(--space-1) 0 0;color:var(--muted)}.setup h3,.summary h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 var(--space-1);font-weight:600}.setup ul,.summary ul{margin:0;padding:0;list-style:none}.setup .checklist-section h3{padding-bottom:var(--space-1);color:var(--type);border-bottom:3px solid var(--type)}.row,.row label{align-items:flex-start;gap:var(--space-3);display:flex}.row{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.row label{cursor:pointer;flex:1}.row input{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none;margin:.15rem 0 0}.row .label{overflow-wrap:anywhere;flex:1;min-width:0}.row .detail{font-size:var(--text-sm);color:var(--muted);display:block}.row .count{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;flex:none;font-weight:600}:is(.row label:has(input:checked) .label,.row label:has(input:checked) .count){color:var(--muted);text-decoration:line-through}.row.total{border-bottom:none;font-weight:700}.row>.label:first-child{padding-left:var(--space-6)}.reveal-row{align-items:center}.reveal-button{padding:0 var(--space-4);color:var(--accent-text);background:var(--accent);border:1px solid var(--accent);flex:none;font-weight:600}.reveal-heading{padding-top:var(--space-2);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.reveal-note{padding:var(--space-2) 0;font-size:var(--text-sm);border-bottom:1px solid var(--border)}.reveal-note cite{white-space:nowrap;font-style:normal}.hidden-mastermind{font-size:var(--text-sm);color:var(--muted);margin:0}.setup .notes{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.notes li{gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--link);border-radius:var(--radius-md);flex-direction:column;display:flex}.source-box{font-size:var(--text-sm);color:var(--muted);margin:0;font-weight:400;display:block}.card-name{display:block}.card-name+.card-name{margin-top:var(--space-1)}.notes cite{font-style:normal;font-size:var(--text-sm);white-space:nowrap}.team{--kind:var(--term-team)}.class{--kind:var(--term-class)}.keyword{--kind:var(--term-keyword)}.summary .term-chips{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.term-chip{min-height:2rem;padding:0 var(--space-2);font-size:var(--text-sm);color:var(--kind);background:var(--bg);border:1px solid var(--kind);border-radius:999px;font-weight:600}.term-chip[aria-expanded=true]{color:var(--bg);background:var(--kind)}.term-popover{top:var(--popover-top);left:clamp(var(--space-4), var(--popover-left), calc(100vw - 20rem - var(--space-4)));z-index:10;box-sizing:border-box;gap:var(--space-2);width:20rem;padding:var(--space-3) var(--space-4) var(--space-4);font-size:var(--text-base);color:var(--text);background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--kind);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;font-weight:400;display:flex;position:fixed}@media (width<37.5rem){.term-popover{width:auto;padding-bottom:var(--space-6);border-radius:var(--radius-lg) var(--radius-lg) 0 0;inset:auto 0 0}}.term-popover-header{justify-content:space-between;align-items:center;display:flex}.term-kind{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--kind);font-weight:600}.term-close{min-width:44px;margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-3)) calc(-1 * var(--space-2)) 0;font-size:var(--text-lg);color:var(--muted);background:0 0;border:none;line-height:1}.term-popover h4{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:.03em;margin:0;font-weight:400;line-height:1.1}.term-popover cite,.glossary cite{font-style:normal;font-size:var(--text-sm);white-space:nowrap}.glossary li{border-bottom:1px solid var(--border);padding:.375rem 0}.glossary .term-name{color:var(--kind);font-weight:600}.glossary .detail{font-size:var(--text-sm);color:var(--muted)}
