:root{--felt:#174532;--felt-dark:#103326;--paper:#faf7ef;--page:#f0ece2;--card:#fffdf7;--ink:#282620;--muted:#6b675f;--line:#c9c1b0;--frame:#31291e;--red:#8f3028;--focus:#a4652d;font-family:Aptos,"Helvetica Neue","Noto Sans",sans-serif;color:var(--ink);background:var(--page)}
*{box-sizing:border-box}body{min-width:320px;margin:0;background:var(--page)}
.top{min-height:56px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:8px max(24px,calc((100vw - 1320px)/2));background:var(--paper);border-bottom:1px solid var(--line)}
.identity,nav,.score,.piles,.turn-tools,footer{display:flex;align-items:center}.identity{gap:12px}.brand{color:var(--ink);font-size:1.25rem;font-weight:650;text-decoration:none}.site-link{color:var(--muted);font-size:.875rem;text-decoration:none}.site-link::before{content:"/ ";color:var(--line)}
.score{justify-self:center;border-left:1px solid var(--line)}.score span{min-width:78px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:0 12px;border-right:1px solid var(--line);font-size:.82rem;color:var(--muted)}.score b{font-size:1.05rem;color:var(--ink);font-weight:650}
nav{justify-self:end;justify-content:flex-end;gap:4px;flex-wrap:wrap}button,nav a{min-height:34px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink);padding:6px 9px;font:inherit;font-size:.9rem;line-height:1.1;cursor:pointer;text-decoration:none}button:not(.card):hover,nav a:hover{background:#e9e3d7;border-color:var(--line)}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.primary{background:var(--felt)!important;border-color:var(--felt)!important;color:var(--paper)!important;font-weight:650}.primary:hover{background:var(--felt-dark)!important;border-color:var(--felt-dark)!important}
.wrap{max-width:1320px;margin:0 auto;padding:24px}.table{min-height:650px;display:grid;grid-template-rows:1fr auto 1fr;gap:18px;padding:24px;border:5px solid var(--frame);background:var(--felt);color:var(--paper)}.opponent,.player{display:grid;justify-items:center;align-content:center;gap:8px}.seat{font-size:.9rem;font-weight:650}.stock-count{font-size:.8rem;color:#d6ddd3}.center{display:grid;justify-items:center;gap:16px}.piles{justify-content:center;gap:24px}.piles>div{display:grid;justify-items:center;gap:6px}.pile-label{font-size:.8rem;color:#d6ddd3}.turn-status{margin:0;text-align:center;max-width:540px;color:#f1eadc;font-size:.95rem;line-height:1.4}.turn-tools{justify-content:center;gap:6px;flex-wrap:wrap}.turn-tools button:not(.primary){border-color:#b7c4b7;background:#f2eee4;color:var(--ink)}
.cards{min-height:132px;display:flex;align-items:end;justify-content:center;padding:4px;max-width:100%;overflow-x:auto}.cards .card{margin-left:-25px}.cards .card:first-child{margin-left:0}.card{width:82px;height:118px;border:1px solid #bbb19c;border-radius:6px;background:var(--card);box-shadow:0 2px 5px #071e154d;color:#24241f;font-size:1.55rem;font-weight:650;display:grid;place-items:start;padding:8px;position:relative}.card.red{color:var(--red)}.card:focus-visible{z-index:2}.card.selected{z-index:1;outline:3px solid var(--focus);outline-offset:-3px}.card.back{background:#254334;border-color:#d9d1bd;color:var(--paper);place-items:center}.card.back span{font-size:.78rem;font-weight:600}.concealed .card{width:52px;height:82px}.hand-head{width:min(100%,820px);display:flex;justify-content:space-between;gap:16px;font-size:.9rem}.game-meta{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.875rem}.game-meta p{margin:0;line-height:1.45}footer{justify-content:space-between;gap:18px;padding:18px max(24px,calc((100vw - 1320px)/2));color:var(--muted);font-size:.8rem}footer a{color:inherit}dialog{max-width:min(600px,calc(100vw - 32px));border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:24px;box-shadow:0 2px 8px #26231b33}dialog::backdrop{background:#1d211da6}.close{float:right;padding:0 4px;border:0;font-size:1.4rem}.modal-actions{display:flex;gap:8px;flex-wrap:wrap}.modal-actions button{border-color:var(--line);background:var(--paper)}.error{min-height:60vh}
.modal-actions button[aria-pressed="true"]{background:var(--felt);border-color:var(--felt);color:var(--paper)}
@media(max-width:860px){.top{grid-template-columns:1fr auto;padding:10px 16px}.score{order:3;grid-column:1/-1;justify-self:stretch;justify-content:center;border-top:1px solid var(--line);padding-top:8px}.wrap{padding:16px}.table{min-height:590px;padding:16px}.game-meta{display:grid;gap:8px}}
@media(max-width:560px){.top{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.identity{min-height:34px}.score{width:100%;order:2;justify-content:stretch}.score span{flex:1;min-width:0;padding:0 7px;font-size:.75rem}.score b{font-size:.95rem}nav{width:100%;order:3;justify-content:flex-start}.table{min-height:540px;padding:12px;border-width:4px;gap:12px}.piles{gap:12px}.card{width:64px;height:94px;font-size:1.25rem}.concealed .card{width:42px;height:68px}.cards .card{margin-left:-31px}.cards .card:first-child{margin-left:0}.game-meta,footer{display:grid;gap:8px;padding:14px 16px}.turn-status{font-size:.86rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.selector .selector-main{width:min(1120px,calc(100% - 48px));padding:clamp(32px,7vw,76px) 0 52px}@media(max-width:640px){.selector .selector-main{width:100%;padding:36px 16px}}
.selector .game-choice{grid-template-rows:auto minmax(0,1fr)}
.selector-top{background:var(--paper);border-bottom:1px solid var(--line)}.selector-bar,.selector-footer-bar{width:min(1120px,calc(100% - 48px));min-height:70px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.selector-brand{display:flex;align-items:baseline;gap:11px;color:var(--ink);text-decoration:none}.selector-brand span{color:var(--felt);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.selector-brand b{font:600 1.35rem Georgia,serif}.palette-toggle{display:inline-flex;align-items:center;gap:7px;min-height:36px;border:1px solid var(--line);border-radius:999px;color:var(--ink);padding:6px 12px;font-size:.84rem;text-decoration:none}.palette-toggle:hover{background:#e9e3d7}.palette-toggle span{color:var(--felt);font-size:1rem}.selector .selector-footer{display:block;margin-top:auto;padding:0;background:var(--felt-dark);color:var(--paper);border:0}.selector-footer-bar{min-height:66px;font-size:.82rem}.selector-footer-bar>span:last-child{display:flex;gap:14px}.selector-footer-bar a{color:var(--paper);text-underline-offset:3px}.choice-actions{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;margin-top:auto;padding-top:16px}.play-button,.d2-button{min-height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--felt);border-radius:5px;font-size:.85rem;font-weight:700;text-decoration:none}.play-button{gap:8px;background:var(--felt);color:var(--paper)}.play-button:hover{background:var(--felt-dark);border-color:var(--felt-dark)}.d2-button{background:transparent;color:var(--felt)}.d2-button:hover{background:#e9e3d7}@media(max-width:640px){.selector-bar,.selector-footer-bar{width:calc(100% - 32px);min-height:62px}.selector-brand b{font-size:1.15rem}.palette-toggle{padding:6px 10px}.selector-footer-bar{flex-wrap:wrap;padding:13px 0;gap:8px}.choice-actions{grid-template-columns:minmax(0,1fr) 48px}}
.selector .top,.selector footer{padding-inline:max(24px,calc((100vw - 1120px)/2))}.game-choice>div{display:flex;flex:1;min-height:100%;flex-direction:column}.game-choice .choice-links{margin-top:auto;padding-top:12px}@media(max-width:640px){.selector footer{padding-inline:16px}}
.selector{min-height:100vh;display:flex;flex-direction:column}.selector-main{width:min(1120px,100%);margin:0 auto;padding:clamp(32px,7vw,76px) 24px 52px;flex:1}.selector-hero{max-width:680px;margin-bottom:38px}.eyebrow{margin:0 0 10px;color:var(--felt);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.selector h1{margin:0;font:600 clamp(2.25rem,6vw,4.5rem)/.98 Georgia,serif;letter-spacing:-.045em}.selector-intro{max-width:540px;margin:18px 0 0;color:var(--muted);font-size:1.05rem;line-height:1.55}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.game-choice{display:grid;grid-template-columns:1fr;gap:10px;align-content:start;min-height:225px;padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 0 #fff}.game-choice:focus-within,.game-choice:hover{border-color:var(--felt);box-shadow:0 6px 20px #342d2220}.game-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--felt);color:var(--paper);font:600 1.35rem Georgia,serif}.game-choice:nth-child(4) .game-mark{color:#ffd8d2;background:var(--red)}.game-kind{margin:1px 0 5px;color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.game-choice h2{margin:0;font:600 1.35rem Georgia,serif}.game-choice h2 a{color:var(--ink);text-decoration:none}.game-choice h2 a:hover{text-decoration:underline}.game-choice p{margin:8px 0 15px;color:var(--muted);font-size:.9rem;line-height:1.45}.choice-links{display:flex;gap:13px;align-items:center}.choice-links a{color:var(--felt-dark);font-size:.88rem;font-weight:700}.choice-links a:last-child{color:var(--muted);font-weight:500}@media(min-width:1100px){.game-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.game-choice{min-height:250px}}@media(max-width:640px){.selector-main{padding:36px 16px}.game-grid{grid-template-columns:1fr}.game-choice{grid-template-columns:auto 1fr;min-height:0}.selector .top{padding-inline:16px}}
