:root{--paper:#f4f0e7;--card:#fffdf8;--ink:#263229;--muted:#6c746d;--green:#315e48;--green-dark:#234735;--sage:#dce4d7;--line:#d9d7cd;--rust:#a55336;--serif:"DM Serif Display",Georgia,serif;--sans:"DM Sans",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);min-height:100vh}button,input{font:inherit}button{color:inherit}.site-header{height:76px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(49,94,72,.16);background:rgba(244,240,231,.9);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);font-weight:700;font-size:18px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--green);color:white;border-radius:50%;font-family:var(--serif);font-size:21px}.site-header nav{display:flex;gap:30px;align-items:center}.nav-link,.text-button,.back-button,.more-button{border:0;background:none;cursor:pointer}.nav-link{padding:26px 0 24px;color:var(--muted);border-bottom:2px solid transparent}.nav-link.active{color:var(--ink);border-color:var(--green)}.nav-count{background:var(--sage);border-radius:20px;padding:2px 7px;margin-left:4px;font-size:11px}.view{display:none}.view.active{display:block}.hero{max-width:820px;margin:0 auto;text-align:center;padding:104px 24px 98px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:var(--rust);margin:0 0 14px}.hero h1,.page-title h1,.setup-heading h1,.score-heading h1{font-family:var(--serif);font-weight:400;letter-spacing:-.025em}.hero h1{font-size:clamp(52px,7vw,82px);line-height:.97;margin:0}.hero h1 em{font-weight:400;color:var(--green)}.hero-copy{font-size:17px;line-height:1.7;color:var(--muted);max-width:570px;margin:30px auto}.primary{border:0;border-radius:3px;background:var(--green);color:#fff;padding:12px 20px;font-weight:600;cursor:pointer;box-shadow:0 3px 0 var(--green-dark)}.primary:hover{background:var(--green-dark)}.primary span{margin-left:22px}.primary.large{padding:16px 22px}.primary.full{width:100%}.recent-section,.promise-strip,.page-view{max-width:1180px;margin:auto}.recent-section{padding:0 24px 90px}.section-heading,.round-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}.section-heading h2,.round-heading h2{font-family:var(--serif);font-weight:400;font-size:34px;margin:0}.text-button{color:var(--green);font-weight:700;border-bottom:1px solid}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.game-card{background:var(--card);border:1px solid var(--line);padding:22px;min-height:200px;display:flex;flex-direction:column;cursor:pointer;transition:.2s;position:relative}.game-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(38,50,41,.08);border-color:#b9c5b6}.game-card .game-state{display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#7a9b76;margin-right:7px}.status-dot.finished:before{background:#a6a6a0}.game-card h3{font-family:var(--serif);font-size:28px;font-weight:400;margin:25px 0 8px}.game-card p{color:var(--muted);margin:0;font-size:13px}.mini-scores{margin-top:auto;display:flex;gap:6px;align-items:end;height:40px}.mini-scores i{display:block;flex:1;background:var(--sage);min-height:6px}.card-arrow{position:absolute;right:20px;bottom:20px;color:var(--green)}.empty-card{grid-column:1/-1;border:1px dashed #b8bcb4;text-align:center;padding:48px;color:var(--muted)}.promise-strip{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:45px 24px 60px;gap:50px}.promise-strip div{display:grid;grid-template-columns:38px 1fr}.promise-strip span{grid-row:1/3;color:var(--rust);font-family:var(--serif)}.promise-strip p{margin:5px 0;color:var(--muted);font-size:13px}.page-view{padding:70px 24px}.page-title h1,.setup-heading h1{font-size:56px;margin:0}.filter-row{display:flex;gap:6px;margin-bottom:24px}.filter{border:1px solid var(--line);background:transparent;padding:8px 14px;border-radius:20px;cursor:pointer}.filter.active{background:var(--ink);color:white;border-color:var(--ink)}.narrow{max-width:720px}.back-button{color:var(--muted);padding:0;margin-bottom:44px}.setup-heading{margin-bottom:38px}.setup-heading>p:last-child{color:var(--muted)}.form-card{background:var(--card);border:1px solid var(--line);padding:28px;margin-bottom:18px}.step-label{display:flex;gap:14px;align-items:center;margin-bottom:24px}.step-label>span{border:1px solid var(--green);color:var(--green);width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-family:var(--serif)}.step-label strong,.step-label small{display:block}.step-label small{color:var(--muted);margin-top:3px}.search-field{display:flex;border:1px solid var(--line);background:white;align-items:center;padding:0 14px}.search-field input,.add-player input{border:0;outline:0;background:transparent;width:100%;padding:15px}.search-icon{font-size:24px;color:var(--muted)}.catalog-results{border:1px solid var(--line);border-top:0;max-height:230px;overflow:auto}.catalog-option{width:100%;display:flex;justify-content:space-between;text-align:left;border:0;border-bottom:1px solid #eeeae1;background:white;padding:13px 15px;cursor:pointer}.catalog-option:hover{background:#f0f3ed}.catalog-option small{color:var(--muted)}.selected-game{padding:15px;background:var(--sage);margin-top:12px;display:flex;justify-content:space-between}.selected-game button{border:0;background:none;cursor:pointer}.rules-preview{margin-top:12px;padding:16px;border-left:3px solid var(--rust);background:#faf4ec;font-size:13px;line-height:1.6}.rules-preview strong{display:block;color:var(--rust);margin-bottom:4px}.switch-row{margin-top:18px;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.switch-row strong,.switch-row small{display:block}.switch-row small{color:var(--muted);margin-top:3px}.switch-row input{display:none}.switch-row i{width:46px;height:26px;border-radius:20px;background:#b8bbb6;position:relative}.switch-row i:after{content:"";position:absolute;width:20px;height:20px;background:white;top:3px;left:3px;border-radius:50%;transition:.2s}.switch-row input:checked+i{background:var(--green)}.switch-row input:checked+i:after{left:23px}.add-player{display:flex;border-bottom:1px solid var(--line)}.add-player button{border:0;background:none;color:var(--green);font-weight:700;cursor:pointer}.player-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.player-chip{background:var(--sage);padding:8px 10px 8px 13px;border-radius:2px}.player-chip button{border:0;background:none;cursor:pointer;color:var(--muted);margin-left:8px}.hidden{display:none!important}.score-page{max-width:900px}.score-top{display:flex;justify-content:space-between}.more-button{color:#95604e}.score-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:30px}.score-heading h1{font-size:55px;margin:0}.score-heading p:last-child{color:var(--muted);margin-bottom:0}.outline-button{border:1px solid #aab2a9;background:transparent;padding:10px 15px;cursor:pointer}.leader-callout{padding:18px 22px;background:var(--sage);margin:24px 0;display:flex;justify-content:space-between}.round-heading{margin:35px 0 15px}.scoreboard{border-top:1px solid var(--line)}.score-row{display:grid;grid-template-columns:55px 1fr auto;align-items:center;padding:18px 8px;border-bottom:1px solid var(--line);cursor:pointer}.score-row:hover{background:rgba(255,255,255,.45)}.rank{color:var(--muted);font-family:var(--serif);font-size:18px}.player-main strong{font-size:17px}.player-main small{display:block;color:var(--muted);margin-top:4px}.total{font-family:var(--serif);font-size:38px;min-width:80px;text-align:right}.score-actions{text-align:center;padding:30px}.score-actions p{font-size:11px;color:var(--muted)}.round-history{border-top:1px solid var(--line)}.history-toggle{width:100%;border:0;background:none;display:flex;justify-content:space-between;padding:18px 0;font-weight:700;cursor:pointer}.history-item{display:grid;grid-template-columns:1fr repeat(var(--players),minmax(40px,auto));gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:13px}.modal{position:fixed;inset:0;background:rgba(27,34,29,.65);display:grid;place-items:center;padding:20px;z-index:50}.modal-sheet{background:var(--card);width:min(440px,100%);padding:28px;position:relative;box-shadow:0 20px 80px rgba(0,0,0,.25);max-height:90vh;overflow:auto}.modal-close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:28px;cursor:pointer;color:var(--muted)}.modal h2{font-family:var(--serif);font-size:34px;font-weight:400;margin:0 0 4px}.modal-subtitle{color:var(--muted);margin:0 0 20px}.calc-display{background:var(--ink);color:white;text-align:right;padding:16px;font-family:var(--serif);font-size:40px;margin:20px 0 12px}.quick-row,.keypad{display:grid;gap:7px}.quick-row{grid-template-columns:repeat(4,1fr);margin-bottom:7px}.keypad{grid-template-columns:repeat(3,1fr)}.quick-row button,.keypad button{border:1px solid var(--line);background:#f5f3ed;padding:12px;cursor:pointer}.keypad button{font-size:18px}.calc-actions{display:flex;gap:8px;margin-top:12px}.calc-actions button{flex:1}.rules-modal p{line-height:1.7;color:var(--muted)}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:11px 17px;opacity:0;pointer-events:none;transition:.25s;z-index:70}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:700px){.site-header{height:64px}.site-header nav{gap:16px}.nav-link{padding:20px 0 18px}.hero{padding:70px 20px}.hero h1{font-size:51px}.game-grid{grid-template-columns:1fr}.promise-strip{grid-template-columns:1fr;padding:35px 24px;gap:28px}.page-view{padding:42px 18px}.page-title h1,.setup-heading h1,.score-heading h1{font-size:43px}.form-card{padding:20px}.score-heading{align-items:center}.score-row{grid-template-columns:38px 1fr auto}.total{font-size:32px}.recent-section{padding-bottom:60px}.section-heading{align-items:center}.game-card{min-height:175px}}
