@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Fraunces:wght@500;600;700&display=swap');
:root{color-scheme:light;--bg:#f3f0e8;--panel:#fffdf7;--ink:#172735;--muted:#62727b;--teal:#338d88;--coral:#e8836b;--line:#d7ded7;--lime:#286f6c}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top right,#e4ede6,transparent 55%),var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}main{max-width:1440px;margin:auto;padding:32px 32px 24px}header{position:relative;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:2.2px;color:var(--teal);font-weight:700}h1{font:600 clamp(42px,5vw,64px)/1.1 'Fraunces',Georgia,serif;letter-spacing:-2.5px;margin:16px 0 8px}h1 span{color:var(--teal)}h1 i{font-style:normal;color:var(--coral);font-size:.7em;margin-left:8px}header>p{font-size:13px;color:var(--muted);margin:8px 0 0}h2,h3{letter-spacing:-.5px}h2{font-family:'Fraunces',Georgia,serif;font-size:30px;font-weight:500}h3{font-size:16px}p{line-height:1.7}.intro{max-width:680px;color:var(--muted);font-size:14px}button{font:600 13px 'DM Sans',sans-serif;cursor:pointer;border:0;background:var(--teal);color:white;border-radius:10px;padding:12px 18px;transition:background .15s,transform .15s}button:hover{background:#277772}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible{outline:3px solid #e8836b;outline-offset:3px}.secondary{background:#e8eeea;color:var(--ink);border:1px solid #d6e0da}.secondary:hover{background:#dce7df}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.toolbar h2{margin:4px 0 8px}.pill{display:inline-block;border:1px solid #d0ddd5;border-radius:30px;padding:7px 11px;font-size:11px;color:#47635c;background:#f7faf4}.subtle{font-size:11px;color:var(--muted);font-weight:400;letter-spacing:0}.hero{max-width:750px;padding:28px 0 34px}.hero h2{font-size:clamp(34px,4vw,56px);line-height:1.1;letter-spacing:-1.5px;margin:20px 0}.hero .pill{margin-left:12px}.demo-strip,.market{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.demo-strip{max-width:750px}.hand-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:16px 0 20px}.card{border-radius:13px;background:var(--panel);border:1px solid #d1d9d0;box-shadow:0 3px 0 #d7dfd340,0 7px 15px #24362508;position:relative;padding:16px;color:var(--ink);text-align:left;overflow:hidden}.poker-card{min-height:240px;padding:14px 12px 42px}.position{font-size:9px;letter-spacing:1px;color:#687971;text-transform:uppercase;padding-right:30px}.poker-corner{position:absolute;right:12px;top:10px;display:flex;flex-direction:column;align-items:center;color:var(--suit)}.poker-corner b{font:700 25px 'Fraunces',serif;line-height:1.1}.poker-corner span{font-size:16px;margin-top:3px}.card-art{margin-top:18px;border-radius:9px;background:var(--tint);color:#536d6b;padding:4px}.specimen-art{display:block;width:100%;height:auto;max-height:125px}.card h3{font:500 17px/1.25 'Fraunces',Georgia,serif;margin:12px 0 8px;min-height:42px}.trait{display:inline-block;color:var(--tag);font-size:10px;font-weight:700;background:color-mix(in srgb,var(--tag) 8%,white);border-radius:20px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--tag) 18%,white)}.hand-grid .poker-card{min-height:220px;padding:12px 9px 46px}.hand-grid .position{font-size:8px;letter-spacing:.5px}.hand-grid .card h3{font-size:14px}.hand-grid .trait{font-size:9px;padding:4px 6px}.hand-grid .poker-corner{right:8px}.card-select{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;border-radius:12px;z-index:2}.card-select:hover{background:#338d8807}.card-select:disabled{opacity:1;background:transparent}.discard-label{position:absolute;bottom:13px;left:9px;z-index:1;font-size:9px;color:#678078;font-weight:700}.discard-selected{border:2px solid var(--coral);box-shadow:0 0 0 2px #e8836b1a;transform:translateY(-4px)}.discard-selected .card-art{opacity:.5}.discard-selected .discard-label{color:#ac4836}.card-details{position:absolute;right:7px;bottom:8px;z-index:3;border:0;background:#edf1eb;color:#4b665e;font-size:9px;padding:6px 7px;border-radius:7px}.card-details:hover{background:#dfe9df}.empty-slot{border:1px dashed #bccdc1;border-radius:12px;min-height:200px;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);text-align:center}.empty-slot span{font-size:30px}.empty-slot b{font-size:11px}.empty-slot small{font-size:10px}.banner{background:#e7efe7;border:1px solid #c7d9c7;border-radius:11px;padding:14px 16px;font-size:12px;line-height:1.7;color:#36594c}.match-progress{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.game-workspace{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:30px;align-items:start}.play-area{min-width:0}.score-area{min-width:0;position:sticky;top:16px;background:#fffdf7;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 12px 32px #28403608}.scorecard-section{margin:0}.scorecard-section h3{margin-top:0}.score-table-wrap{overflow:auto}.score-table{width:100%;border-collapse:collapse;font-size:12px}.score-table th{text-align:left;color:var(--muted);font-size:10px;padding:11px 6px;border-bottom:1px solid var(--line)}.score-table td{padding:12px 6px;border-bottom:1px solid #e7ebe3;vertical-align:middle}.score-table td:first-child{width:47%}.score-table small{display:block;font-size:9px;line-height:1.5;color:var(--muted);font-weight:400;margin-top:4px}.score-table button{font-size:10px;white-space:nowrap;padding:8px 10px}.score-table .pill{font-size:9px;padding:5px 7px;white-space:nowrap}.score-table tr.locked{opacity:.64;background:#f3f5ef}.score-table tr.only-positive{background:#dfefe3}.score-table .total-row{font-weight:700;color:#286f6c;background:#e9f1e7}.rules{border-top:1px solid var(--line);margin-top:25px;padding-top:18px;font-size:12px;line-height:1.8;color:var(--muted)}summary{cursor:pointer;font-weight:700;color:var(--ink);font-size:12px}.rules details{padding:10px 0}.library{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.team{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.result-head{padding:10px 0 20px}.result-head h2{font-size:34px;margin:12px 0}.result-head p{color:var(--muted);font-size:13px}.result-head .banner{margin:14px 0}.discoveries{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.discovery{background:#fffdf7;border:1px solid var(--line);border-radius:13px;padding:20px}.discovery.unlocked{background:#f0f4e7;border-color:#acbea2}.discovery .symbol{display:block;font-size:27px;margin-bottom:14px}.discovery h3{font-family:'Fraunces',serif;font-size:20px;margin:12px 0}.discovery p{font-size:12px;color:var(--muted)}.recipe{font-size:11px;line-height:1.6;border-top:1px solid var(--line);padding-top:10px;color:#526a5a}.discovery-compact{background:#f5f8ee;border:1px solid #c5d5b8;border-radius:10px;padding:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px}.discovery-compact small{color:var(--muted)}.pattern-list{background:#fffdf7;border:1px solid var(--line);border-radius:12px;overflow:hidden;max-width:850px}.pattern-list>div{display:grid;grid-template-columns:150px 1fr 25px;gap:12px;padding:13px 16px;border-bottom:1px solid #e7ebe3;align-items:center}.pattern-list b{font-size:12px}.pattern-list span{font-size:11px;color:var(--muted)}.pattern-list strong{color:var(--teal);font-size:12px;text-align:right}.blind-table{display:flex;gap:25px;align-items:center;margin:25px 0}.card-back{min-width:150px;width:150px;height:205px;border:2px solid #c7dbca;border-radius:14px;background:repeating-linear-gradient(45deg,#214b49,#214b49 8px,#285653 8px,#285653 16px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;box-shadow:4px 4px 0 #8bb7a4,8px 8px 0 #c5d9c8}.card-back span{font-size:45px;color:#e8dbb0}.card-back b{font-size:10px;letter-spacing:1.5px}.card-back small{font-size:11px}.card-back:hover{background:#285653}footer{margin-top:28px;font-size:10px;letter-spacing:1px;color:var(--muted);line-height:2.2}dialog{border:1px solid var(--line);border-radius:20px;max-width:360px;width:calc(100% - 36px);padding:24px;background:var(--panel);color:var(--ink);box-shadow:0 25px 80px #17273540}dialog::backdrop{background:#17273588;backdrop-filter:blur(3px)}dialog .poker-card{margin-top:16px;padding-bottom:18px;min-height:280px}dialog .card-art{margin-top:30px}dialog .specimen-art{max-height:180px}dialog p{font-size:13px}.close-dialog{display:block;margin-left:auto}body:has(.match-progress) header h1{font-size:40px;margin:10px 0 4px}body:has(.match-progress) header>p{font-size:12px}
@media(min-width:1000px){header #status{position:absolute;right:0;bottom:6px}header{padding-right:430px}.score-area .rules{margin-top:16px}}
@media(max-width:1120px){.game-workspace{grid-template-columns:minmax(0,1fr) 390px;gap:20px}.hand-grid{gap:6px}.hand-grid .position{font-size:7px}.hand-grid .poker-card{padding:11px 6px 44px}.hand-grid .trait{padding:4px;font-size:8px}.card-details{font-size:8px;padding:6px 4px}}
@media(max-width:950px){main{padding:24px 20px}.game-workspace{grid-template-columns:1fr}.score-area{position:static;order:2}.library{grid-template-columns:repeat(3,1fr)}.hand-grid .poker-card{min-height:225px}.hand-grid .card h3{font-size:15px}.hand-grid .position{font-size:9px}.hand-grid .trait{font-size:10px}.card-details{font-size:10px;padding:6px}.score-table td:first-child{width:45%}}
@media(max-width:600px){main{padding:20px 12px}.eyebrow{font-size:9px;letter-spacing:1.6px}header{padding-bottom:8px}h1{font-size:43px}.toolbar{gap:7px}#status button{font-size:11px;padding:9px 10px}.hand-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.hand-grid .poker-card{min-height:157px;padding:7px 4px 30px;border-radius:9px}.hand-grid .position{display:none}.hand-grid .poker-corner{right:5px;top:6px}.hand-grid .poker-corner b{font-size:20px}.hand-grid .poker-corner span{font-size:12px;margin-top:1px}.hand-grid .card-art{margin-top:33px;border-radius:5px;padding:0}.hand-grid .card h3{font-family:'DM Sans',sans-serif;font-size:8px;line-height:1.3;min-height:21px;margin:6px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hand-grid .trait{font-size:6px;padding:3px 2px;border:0;max-width:100%}.hand-grid .card-details{right:3px;bottom:4px;font-size:7px;padding:5px 3px}.hand-grid .discard-label{font-size:6px;bottom:11px;left:3px}.hand-grid .empty-slot{min-height:157px;padding:5px}.hand-grid .empty-slot b{font-size:8px}.hand-grid .empty-slot small{font-size:7px}.play-area>h3 .subtle{display:block;margin-top:6px}.demo-strip{gap:8px}.demo-strip .poker-card{padding:10px 7px 36px;min-height:205px}.demo-strip .card h3{font-size:13px}.demo-strip .position{font-size:7px}.demo-strip .trait{font-size:8px}.discoveries{grid-template-columns:1fr}.library{grid-template-columns:repeat(2,1fr)}.score-area{padding:13px 10px}.score-table{font-size:10px}.score-table th{font-size:9px}.score-table td{padding:11px 4px}.score-table small{font-size:8px}.score-table button{font-size:9px;padding:8px}.score-table td:first-child{width:40%}.score-table .pill{font-size:8px;padding:5px}.hero h2{font-size:38px}.hero .pill{margin:14px 0 0}.pattern-list>div{grid-template-columns:100px 1fr 20px;padding:12px 10px;gap:8px}.pattern-list b{font-size:10px}.pattern-list span{font-size:10px}.blind-table{gap:18px}.blind-table .card-back{width:115px;min-width:115px;height:175px}.blind-table h3{font-size:14px}.blind-table .intro{font-size:12px}.result-head h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Larger player hand: two centered cards above three, with a 2–2–1 mobile layout. */
/* Player hand: three above, two centered below at every width. */
.hand-grid.player-hand{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:12px 0}
.player-hand> :nth-child(1){grid-column:1/span 2;grid-row:1}
.player-hand> :nth-child(2){grid-column:3/span 2;grid-row:1}
.player-hand> :nth-child(3){grid-column:5/span 2;grid-row:1}
.player-hand> :nth-child(4){grid-column:2/span 2;grid-row:2}
.player-hand> :nth-child(5){grid-column:4/span 2;grid-row:2}
.hand-grid.player-hand .poker-card{min-height:230px;padding:12px 10px 46px;border-radius:14px}
.hand-grid.player-hand .position{display:block;font-size:9px;letter-spacing:.4px;padding-right:30px}
.hand-grid.player-hand .poker-corner{right:10px;top:10px}
.hand-grid.player-hand .poker-corner b{font-size:27px}
.hand-grid.player-hand .poker-corner span{font-size:18px}
.hand-grid.player-hand .card-art{margin-top:20px;padding:4px;border-radius:9px}
.hand-grid.player-hand .specimen-art{height:78px;max-height:78px}
.hand-grid.player-hand .card h3{font:500 17px/1.25 'Fraunces',Georgia,serif;display:block;overflow:visible;min-height:42px;margin:8px 0 6px}
.hand-grid.player-hand .trait{font-size:10px;padding:4px 6px;border:1px solid color-mix(in srgb,var(--tag) 18%,white)}
.hand-grid.player-hand .card-details{right:7px;bottom:7px;font-size:10px;padding:8px}
.hand-grid.player-hand .discard-label{left:10px;bottom:16px;font-size:10px}
.hand-grid.player-hand .empty-slot{min-height:230px;padding:10px}
.hand-grid.player-hand .empty-slot b{font-size:11px}
.hand-grid.player-hand .empty-slot small{font-size:10px}
.hand-actions{position:sticky;bottom:0;z-index:5;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px;margin:10px 0;box-shadow:0 -4px 16px #0002;gap:8px}
@media(max-width:720px){
.hand-grid.player-hand{gap:8px}
.hand-grid.player-hand .poker-card{min-height:188px;padding:9px 6px 54px}
.hand-grid.player-hand .position{font-size:8px;letter-spacing:0;padding-right:24px;min-height:30px}
.hand-grid.player-hand .poker-corner{right:6px;top:7px}
.hand-grid.player-hand .poker-corner b{font-size:23px}
.hand-grid.player-hand .poker-corner span{font-size:15px}
.hand-grid.player-hand .card-art{margin-top:7px;padding:2px}
.hand-grid.player-hand .specimen-art{height:50px;max-height:50px}
.hand-grid.player-hand .card h3{font-size:13px;min-height:33px;margin:7px 0 5px;overflow-wrap:anywhere}
.hand-grid.player-hand .trait{font-size:8px;padding:3px;max-width:100%}
.hand-grid.player-hand .card-flavor,.hand-grid.player-hand .first-seen{display:none}
.hand-grid.player-hand .discard-label{left:6px;bottom:37px;font-size:8px}
.hand-grid.player-hand .card-details{right:6px;left:6px;bottom:5px;font-size:9px;padding:6px;min-height:28px}
.hand-grid.player-hand .empty-slot{min-height:188px;padding:6px}
.hand-actions button{font-size:11px;padding:11px 12px}
.hand-actions .pill{font-size:10px;padding:5px 8px}
}

/* Shared custom category symbols: scroll and crossed utensils. */
.category-outline-icon{display:inline-block;width:42px;height:30px;vertical-align:middle;color:currentColor}.discovery-compact .category-outline-icon{width:32px;height:24px}
/* Personality, collection and optional feedback. */
.card-flavor{font:400 11px/1.45 'DM Sans',system-ui,sans-serif;color:#566079;margin:0 0 12px;min-height:32px;letter-spacing:0}.hand-grid.player-hand .card-flavor{font-size:11px;min-height:36px}.first-seen{display:block;font-size:8px;font-weight:700;color:#37654d;letter-spacing:.3px;margin-top:8px}.preferences{margin:0 0 22px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:11px}.preferences summary{font-size:11px}.preferences-controls,.collection-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding-top:12px}.preferences-controls small{font-size:10px}.preferences-controls label,.collection-controls label{display:flex;gap:8px;align-items:center;font-size:12px}select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px;max-width:100%}.preferences button{font-size:11px;padding:8px 12px}.collection-controls{margin:18px 0 24px;align-items:flex-start}.collection-controls label{flex-direction:column;align-items:flex-start}progress{width:min(100%,540px);height:14px;accent-color:var(--teal);border:0;border-radius:9px;overflow:hidden}.unseen-card{border:1px dashed var(--line);border-radius:13px;min-height:275px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:16px;color:var(--muted);background:var(--panel)}.unseen-card .position{padding:0}.unknown-symbol{font-size:44px}.unseen-card b{font-size:13px}.unseen-card small{font-size:11px}.availability-note{font-size:10px!important;color:var(--muted)}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.mode-options p{font-size:11px;line-height:1.5;color:var(--muted);margin-top:12px}.mode-options button{width:100%}.quick-rule{font-size:10px;line-height:1.5;color:var(--muted)}.active-worlds{margin-bottom:18px;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.active-worlds summary{font-size:11px}.active-worlds .team{margin:10px 0 0}
@keyframes card-arrive{from{opacity:.65;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes score-glow{0%{box-shadow:inset 0 0 0 1px #ffc96b;background-color:#ffc96b38}100%{box-shadow:inset 0 0 0 1px transparent}}
@keyframes discovery-reveal{0%{opacity:.65;transform:translateY(5px)}100%{opacity:1;transform:translateY(0)}}
.deal-enter>article,.replacement-enter>.replacement-card{animation:card-arrive .24s ease-out both}.score-enter{animation:score-glow .45s ease-out}.discovery-enter{animation:discovery-reveal .32s ease-out}
body[data-motion=reduced] *,body[data-motion=reduced] *::before,body[data-motion=reduced] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body[data-motion=reduced] .discard-selected{transform:none}body[data-motion=reduced] button:hover{transform:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.discard-selected{transform:none}button:hover{transform:none!important}}
@media(max-width:600px){.mode-options{grid-template-columns:1fr}.preferences-controls{align-items:flex-start}.preferences-controls label{flex-direction:column;align-items:flex-start}.collection-controls{gap:10px}.collection-controls label{max-width:100%}.library .card-flavor{font-size:10px}.hand-grid:not(.player-hand) .first-seen{display:none}.demo-strip .card-flavor{font-size:9px;min-height:40px}.mode-options p{margin-bottom:0}}
