:root{--paper:#f6f0e3;--paper-2:#efe5cf;--ink:#243c32;--ink-soft:#4b5d52;--table:#1f3b32;--accent:#2f6b4f;--accent-ink:#fff;--gold:#cfb46e;--amber:#f2b441;--danger:#8f2d1c;--line:#cdbf9d;--valid:#2f6b4f;--radius:14px;--tap:44px;--shadow:0 6px 22px #0a191247;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--table);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}h1,h2,h3{font-family:var(--serif);margin:0 0 .5rem;line-height:1.15}h2{font-size:1.3rem}h3{margin-top:.9rem;font-size:1.02rem}p{line-height:1.45}.muted{color:var(--ink-soft);font-weight:400}.small{font-size:.85rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}button,input,select{font:inherit;color:inherit}button{min-height:var(--tap);min-width:var(--tap);border:1.5px solid var(--ink);background:var(--paper);cursor:pointer;touch-action:manipulation;border-radius:999px;padding:.55rem 1rem}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.ghost{background:0 0}button.small{min-height:36px;padding:.3rem .8rem;font-size:.9rem}button.big{padding:.9rem 1.4rem;font-size:1.05rem}button.link{color:var(--paper);background:0 0;border:none;padding:.4rem;text-decoration:underline}.icon-btn{width:var(--tap);background:0 0;border-color:#0000;border-radius:50%;padding:0;font-size:1.3rem}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}input,select{min-height:var(--tap);border:1.5px solid var(--line);background:#fffdf7;border-radius:10px;width:100%;padding:.5rem .75rem}label{display:block}.error{color:var(--danger);font-weight:600}.banner{border:1.5px solid var(--danger);cursor:pointer;background:#fbe9e4;border-radius:10px;margin:0;padding:.6rem 1rem}.banner.final{color:#5a4300;cursor:default;background:#fff4d4;border-color:#b08a1e}.sheet{background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.welcome,.home,.screen{background-position:50%;background-size:cover;background-attachment:fixed;min-height:100dvh}.welcome{place-items:center;padding:16px;display:grid}.welcome-sheet{text-align:center;gap:.8rem;width:min(420px,100%);display:grid}.brand{letter-spacing:.02em;color:var(--ink);margin:0;font-size:2.6rem}.home .brand{color:var(--paper);text-shadow:0 2px 10px #0006;font-size:2rem}.tagline{color:var(--ink-soft);margin:0}.home{padding:16px 16px 40px}.home-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.who{color:var(--paper);align-items:center;gap:6px;display:flex}.inline-form{gap:6px;display:flex}.home-grid{gap:14px;max-width:980px;margin:0 auto;display:grid}@media (width>=760px){.home-grid{grid-template-columns:1fr 1fr}}.segmented{border:none;flex-wrap:wrap;gap:8px;margin:.6rem 0;padding:0;display:flex}.segmented legend{margin-bottom:6px;padding:0;font-weight:600}.segmented label{min-height:var(--tap);border:1.5px solid var(--line);cursor:pointer;border-radius:10px;flex:1;justify-content:center;align-items:center;padding:0 .6rem;display:flex}.segmented label.on{border-color:var(--accent);background:#e2eee4;font-weight:600}.segmented input{opacity:0;pointer-events:none;position:absolute}.segmented label:focus-within{outline:3px solid var(--amber)}.check{min-height:var(--tap);align-items:center;gap:10px;margin-bottom:.6rem;display:flex}.check input{width:22px;height:22px;min-height:0}.join-form{gap:8px;display:flex}.join-form input{text-transform:uppercase;letter-spacing:.25em;text-align:center;font-weight:700}.match-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.match-list a{min-height:var(--tap);border:1.5px solid var(--line);color:inherit;border-radius:10px;grid-template-columns:auto 1fr;gap:2px 10px;padding:.6rem .8rem;text-decoration:none;display:grid}.match-list .code{letter-spacing:.1em;grid-row:span 2;align-self:center;font-weight:700}.match-list .status{color:var(--ink-soft);font-size:.85rem}.records{border-collapse:collapse;width:100%}.records th,.records td{text-align:left;border-bottom:1px solid var(--line);padding:.35rem}.topbar{z-index:20;padding:calc(env(safe-area-inset-top) + 4px) 10px 4px 4px;color:var(--paper);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1f3b32f0;align-items:center;gap:6px;display:flex;position:sticky;top:0}.topbar .muted{color:#c9d3c8}.topbar-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.95rem;overflow:hidden}.topbar .back{color:var(--paper);font-size:1.8rem}.conn{white-space:nowrap;font-size:.78rem}.conn.off{color:#ffd38a}.center-page{min-height:100dvh;color:var(--paper);place-items:center;padding:16px;display:grid}.lobby,.result{gap:14px;max-width:760px;margin:0 auto;padding:16px;display:grid}.code-big{font-family:var(--serif);letter-spacing:.2em;margin:.4rem 0 .8rem;font-size:2.4rem;font-weight:700}.invite{text-align:center}.seats{gap:6px;margin:0 0 .8rem;padding:0;list-style:none;display:grid}.seats li{border:1.5px solid var(--line);border-radius:10px;align-items:center;gap:8px;min-height:52px;padding:.4rem .6rem;display:flex}.seats li.me{border-color:var(--accent)}.seat-n{background:var(--table);width:28px;height:28px;color:var(--paper);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.seat-name{flex:1;min-width:0}.seat-name small{color:var(--ink-soft)}.ready{white-space:nowrap;font-size:.85rem}.ready.yes{color:var(--valid);font-weight:600}.field select{margin-top:6px}.lobby-actions{gap:10px;display:grid}.lobby-actions .ghost{color:var(--paper);border-color:var(--paper)}.game{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.banners{gap:6px;padding:8px 10px 0;display:grid}.table-layout{grid-template-columns:minmax(0,1fr);gap:10px;max-width:1280px;margin:0 auto;padding:8px 8px 0;display:grid}.board-area,.panel,.tray{min-width:0}@media (width>=900px){.table-layout{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:start;padding:12px}.panel{max-height:calc(100dvh - 160px);position:sticky;top:64px;overflow:auto}}.board-area{border-radius:var(--radius);box-shadow:var(--shadow);background:#f6f0e3f0;padding:8px}.player-tabs{scrollbar-width:none;gap:6px;padding-bottom:6px;display:flex;overflow-x:auto}.ptab{white-space:nowrap;border-color:var(--line);background:#fffaf0;align-items:center;gap:6px;padding:.35rem .8rem;display:flex}.ptab.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.ptab.active{box-shadow:0 0 0 3px var(--amber)}.ptab-score{font-variant-numeric:tabular-nums;font-weight:700}.dot{border:1.5px solid;border-radius:50%;width:9px;height:9px}.dot.on{background:#4caf6e;border-color:#4caf6e}.board-wrap{position:relative}.board{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;max-height:min(70dvh,720px);margin:0 auto;display:block}.board-caption{text-align:center;color:var(--ink-soft);font-size:.85rem}.hex{fill:#faf5e5;fill-opacity:.55;stroke:#a89971;stroke-width:2.5px}.hit{fill:#0000}.cell-interactive{cursor:pointer;outline:none}.cell-interactive:focus-visible .hit{stroke:var(--amber);stroke-width:9px}.cell-interactive:hover .hit{fill:#ffffff2e}.cell-pattern .hit{fill:#f2b44152;stroke:#b07a12;stroke-width:5px;stroke-dasharray:14 8}.cell-new .hit{stroke:#3e8995;stroke-width:5px}.ring{fill:none;stroke-width:8px}.ring-valid{stroke:var(--valid);stroke-dasharray:18 10}.ring-target circle{fill:#f2b44159;stroke:#8a5a00;stroke-width:8px}.ring-target path{fill:none;stroke:#5a3a00;stroke-width:10px;stroke-linecap:round;stroke-linejoin:round}.ring-blocked circle{fill:none;stroke:var(--danger);stroke-width:6px;stroke-dasharray:12 8}.ring-blocked path{stroke:var(--danger);stroke-width:6px}.height-badge circle{fill:var(--ink);stroke:var(--paper);stroke-width:3px}.height-badge text{fill:var(--paper);font:700 24px var(--sans);text-anchor:middle}.marker image{filter:drop-shadow(0 3px 3px #00000073)}@media (prefers-reduced-motion:no-preference){.token-new{animation:.28s ease-out drop}@keyframes drop{0%{opacity:0;transform:translateY(-26px)}}}.tray{grid-template-columns:minmax(0,1fr);gap:6px;padding:6px 4px 2px;display:grid}.prompt{text-align:center;margin:0;font-weight:600}.pending{justify-content:center;gap:10px;display:flex}.token-btn{border-color:var(--line);background:#fffaf0;border-radius:14px;justify-items:center;gap:2px;min-width:72px;padding:4px 8px;display:grid}.token-btn img{width:48px;height:48px}.token-btn span{font-size:.8rem}.token-btn.on{border:3px solid var(--ink);background:#fff;transform:translateY(-2px)}.tray-groups .groups{scroll-snap-type:x mandatory;gap:8px;padding:10px 2px 4px;display:flex;overflow-x:auto}.tray-groups .group{scroll-snap-align:start;flex:none;min-width:148px}@media (width>=900px){.tray-groups .groups{flex-wrap:wrap;justify-content:center}}.score-preview{text-align:center;margin:0;font-size:.92rem}.panel{border-radius:var(--radius);box-shadow:var(--shadow);background:#f6f0e3f5;padding:8px 10px 12px}.tabs{border-bottom:1.5px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:8px;display:flex;overflow-x:auto}.tabs button{white-space:nowrap;color:var(--ink-soft);background:0 0;border:none;border-radius:10px 10px 0 0;padding:.4rem .8rem;font-weight:600}.tabs button.on{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}.groups{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.group{border-color:var(--line);background:#fffaf0;border-radius:14px;justify-content:center;align-items:center;gap:2px;min-height:64px;padding:6px;display:flex;position:relative}.group img{width:44px;height:44px}.group:not(:disabled):hover{border-color:var(--ink)}.group:disabled{opacity:1;cursor:default}.group.chosen{border:3px solid var(--accent);background:#e2eee4}.group.chosen img{opacity:.45}.chip{background:var(--accent);color:#fff;border-radius:999px;padding:1px 8px;font-size:.72rem;position:absolute;top:-9px;right:8px}.card-row{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;display:grid}.card-row.big{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card{border:1.5px solid var(--line);background:var(--paper-2);text-align:left;border-radius:12px;flex-direction:column;width:100%;min-height:0;padding:0;display:flex;position:relative;overflow:hidden}.card-guardian{border-color:var(--gold);background:#f5ecd0}.card-selected{box-shadow:0 0 0 3px var(--amber)}.card-art{aspect-ratio:2/1.25;background:#c9bd9c;position:relative;overflow:hidden}.card-compact .card-art{aspect-ratio:2/1.1}.card-art img{object-fit:cover;object-position:50% 35%;width:100%;height:100%;display:block}.card-noart{background:repeating-linear-gradient(45deg,#d8cba6,#d8cba6 8px,#cfc19a 8px 16px);width:100%;height:100%}.card-badge{background:var(--ink);color:var(--paper);border-radius:999px;padding:1px 8px;font-size:.72rem;position:absolute;top:6px;left:6px}.card-body{gap:4px;padding:6px 8px 8px;display:grid}.card-name{font-family:var(--serif);font-size:.95rem;font-weight:700;line-height:1.1}.card-pattern{background:#243c32e6;border-radius:8px;justify-content:center;padding:4px;display:flex}.pattern{width:100%;height:auto}.pattern-height{fill:#fff;font:700 11px var(--sans);text-anchor:middle;paint-order:stroke;stroke:#0000008c;stroke-width:2.5px}.progress{flex-wrap:wrap;gap:3px;margin:0;padding:0;list-style:none;display:flex}.progress li{border:1.5px solid var(--ink);background:#fffaf0;border-radius:50%;place-items:center;min-width:24px;height:24px;font-size:.78rem;font-weight:700;display:grid}.progress li.done{background:var(--amber);border-color:#8a5a00}.guardian-reward{gap:4px;font-size:.82rem;display:grid}.guardian-reward p{margin:0}.sun-chip{background:var(--gold);border-radius:999px;justify-self:start;padding:0 8px;font-size:.8rem;font-weight:700}.remaining{color:var(--ink-soft);font-size:.8rem}.card-empty{min-height:140px;color:var(--ink-soft);background:0 0;border-style:dashed;place-items:center;display:grid}.card-back{aspect-ratio:2/3}.card-back img{object-fit:cover;width:100%;height:100%}.others h3{margin-top:1rem}.guardian-option{gap:8px;display:grid}.score-wrap{overflow-x:auto}.score-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.score-table th,.score-table td{border-bottom:1px solid var(--line);text-align:right;padding:.4rem .45rem}.score-table th[scope=row]{text-align:left;font-weight:500}.score-table .total td,.score-table .total th{border-top:2px solid var(--ink);font-weight:800}.preview-col{background:#fff4d4;font-style:italic}.actionbar{z-index:30;padding:10px 10px calc(10px + env(safe-area-inset-bottom));background:#f6f0e3f7;grid-template-columns:auto auto 1fr;gap:8px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0003}.actionbar button{padding-inline:.8rem}@media (width<=380px){.actionbar{gap:5px}.actionbar button{padding-inline:.55rem;font-size:.9rem}}.toast{left:0;right:0;bottom:calc(84px + env(safe-area-inset-bottom));z-index:40;width:min(92vw,520px);box-shadow:var(--shadow);background:var(--ink);color:var(--paper);cursor:pointer;border-radius:12px;margin-inline:auto;padding:.7rem 1rem;font-weight:600;position:fixed}.toast.error{color:var(--danger);border:2px solid var(--danger);background:#fbe9e4}.toast.error:before{content:"⚠ "}.modal{border-radius:var(--radius);background:var(--paper);width:min(560px,100vw - 16px);max-height:calc(100dvh - 24px);color:var(--ink);box-shadow:var(--shadow);border:none;padding:0}.modal-wide{width:min(760px,100vw - 16px)}.modal::backdrop{background:#0a161099}.modal-inner{padding:12px 16px 16px}.modal-head{background:var(--paper);justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.modal-head h2{margin:0}.card-modal{gap:12px;display:grid}@media (width>=520px){.card-modal{grid-template-columns:220px 1fr}}.modal-actions{gap:8px;margin-top:12px;display:grid}.choices,.review{gap:6px;padding:0;list-style:none;display:grid}.choices button{text-align:left;border-radius:10px;width:100%}.review li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:.3rem 0;display:flex}.rules-help li{margin-bottom:.3rem;line-height:1.4}.result-head{text-align:center}.standings{text-align:left;gap:6px;padding:0;list-style:none;display:grid}.standings li{border:1.5px solid var(--line);border-radius:10px;grid-template-columns:40px 1fr auto;gap:8px;padding:.5rem .7rem;display:grid}.standings li.winner{border-color:var(--gold);background:#fbf2d6;font-weight:700}.result-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.result-grid{gap:10px;display:grid}@media (width>=700px){.result-grid{grid-template-columns:1.3fr 1fr}}.items{align-content:start;gap:4px;margin:0;padding:0;list-style:none;display:grid}.items button{border-color:var(--line);border-radius:10px;justify-content:space-between;width:100%;min-height:40px;display:flex}.items button.on{background:#fff4d4;border-color:#b07a12}.items button:disabled{opacity:1;cursor:default}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
