:root{--bg:#07131f;--panel:#0c1d2b;--panel-2:#102639;--line:#1d3a4d;--text:#eef5f4;--muted:#89a2aa;--teal:#4ce0c0;--gold:#f0bd6a;--danger:#ff8080}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 70% 10%,#15384b 0,transparent 34%),var(--bg);color:var(--text);font-family:'DM Sans',sans-serif}body:before{content:'';position:fixed;inset:0;opacity:.08;pointer-events:none;background-image:linear-gradient(115deg,transparent 0 48%,#fff 49% 50%,transparent 51%);background-size:32px 32px}.app-shell{width:min(100% - 32px,700px);margin:auto;position:relative;z-index:1}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between}.brand{border:0;background:none;color:var(--text);display:flex;align-items:center;gap:11px;padding:0;cursor:pointer;text-align:left}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--teal);color:#05232a;font:700 22px 'Space Grotesk'}.brand b{display:block;font:700 17px 'Space Grotesk';letter-spacing:.2px}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:2.2px;margin-top:2px}.icon-button,.modal-close{border:1px solid var(--line);background:#0d2232;color:var(--muted);border-radius:12px;width:40px;height:40px;font-size:18px;cursor:pointer}.screen{display:none;min-height:calc(100vh - 92px);padding:46px 0 70px}.screen.active{display:block}.hero-copy{padding-top:9vh}.eyebrow{color:var(--teal);font-size:11px;font-weight:700;letter-spacing:2.7px;margin:0 0 16px}.hero-copy h1,.section-heading h2,.game-header h2,.modal h2,.winner-content h2{font:700 clamp(39px,8vw,68px)/1.02 'Space Grotesk';letter-spacing:-2.7px;margin:0}.hero-copy h1 em{font-style:normal;color:var(--gold)}.hero-subtitle,.section-heading>p:not(.eyebrow),.modal-note{color:var(--muted);font-size:15px;line-height:1.6;max-width:440px;margin:24px 0 0}.home-actions{display:flex;align-items:center;gap:18px;margin-top:44px;flex-wrap:wrap}.primary-button{background:var(--teal);color:#06212a;border:0;border-radius:12px;padding:16px 20px;font:700 15px 'DM Sans';cursor:pointer;box-shadow:0 10px 30px #4ce0c01f;transition:transform .2s,filter .2s}.primary-button:hover{transform:translateY(-2px);filter:brightness(1.08)}.primary-button span{font-size:20px;margin-left:24px}.text-button,.back-link{background:none;color:var(--muted);border:0;padding:8px 0;cursor:pointer;font:600 14px 'DM Sans'}.text-button span{color:var(--teal);margin-left:8px}.ghost-button{background:transparent;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:14px 18px;font:600 14px 'DM Sans';cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:6px;transition:border-color .2s,color .2s,background .2s}.ghost-button:hover{border-color:var(--teal);color:var(--teal);background:#0c2228aa}.ghost-button span{font-size:18px;margin-left:14px}.ghost-button[data-meta]::after{content:attr(data-meta);position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%) translateY(2px);background:var(--panel-2);color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:11px;letter-spacing:.3px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}.ghost-button[data-meta]:hover::after{opacity:1;transform:translateX(-50%) translateY(0)}.rules-card{display:flex;gap:16px;align-items:center;margin-top:100px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#0c1c2a99}.rule-icon{color:var(--gold);font:700 28px 'Space Grotesk'}.rules-card strong{font-size:14px}.rules-card p{color:var(--muted);font-size:12px;margin:5px 0 0}.back-link{margin-bottom:52px}.section-heading{margin-bottom:36px}.section-heading h2,.game-header h2,.modal h2{font-size:40px;letter-spacing:-1.8px}.player-inputs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:26px}.player-field{position:relative}.player-field label{display:block;color:var(--muted);font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}.player-field input,.mode-add input{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:11px;padding:15px 14px;font:500 15px 'DM Sans';outline:none}.player-field input:focus,.mode-add input:focus{border-color:var(--teal)}.full-width{width:100%;margin-top:8px}.error-message{color:var(--danger);font-size:13px;min-height:20px}.game-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.outline-button{background:transparent;color:var(--teal);border:1px solid #286b6c;border-radius:10px;padding:10px 14px;font-weight:600;cursor:pointer}.scoreboard-matrix{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;display:block;overflow-x:auto}table.scoreboard-matrix{table-layout:fixed}.scoreboard-matrix th,.scoreboard-matrix td{padding:14px 12px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:14px;color:var(--text);position:relative}.scoreboard-matrix tbody tr td:last-child,.scoreboard-matrix tbody tr th:last-child,.scoreboard-matrix thead tr th:last-child{border-right:0}.scoreboard-matrix tbody tr:last-child th,.scoreboard-matrix tbody tr:last-child td{border-bottom:0}.scoreboard-matrix thead th{background:var(--panel-2);color:var(--muted);font-size:10px;letter-spacing:1.2px;text-transform:uppercase;font-weight:600;padding-bottom:8px}.scoreboard-matrix thead th.player-col{color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:14px;text-transform:none;letter-spacing:0}.scoreboard-matrix th.row-label{text-align:left;color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:500;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;background:rgba(255,255,255,.02);width:110px;min-width:110px}.scoreboard-matrix th.mod-label{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:14px 14px}.scoreboard-matrix .mode-name-cell{font-family:'Space Grotesk',sans-serif;font-size:15px;letter-spacing:-.3px;color:var(--text)}.scoreboard-matrix .mode-tags{display:flex;gap:6px;flex-wrap:wrap}.scoreboard-matrix .mode-state{font-size:9px;letter-spacing:1.4px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-weight:600}.scoreboard-matrix .mode-state.active-state{color:#06212a;background:var(--gold);border-color:var(--gold)}.scoreboard-matrix .cell{font:600 16px 'Space Grotesk';color:var(--text)}.scoreboard-matrix .empty{color:#3b5564;font-weight:400;font-size:18px}.scoreboard-matrix .total-col,.scoreboard-matrix .total-cell{background:#0a1a26;color:var(--gold);font-size:13px;font-weight:700;letter-spacing:1px;width:90px;min-width:80px}.scoreboard-matrix thead .total-col{background:var(--panel-2);color:var(--muted);font-size:10px}.scoreboard-matrix .footer-row th,.scoreboard-matrix .footer-row td{background:#0c1e2c;border-top:1px solid var(--line);font-family:'Space Grotesk',sans-serif}.scoreboard-matrix .footer-label{color:var(--muted);font-size:11px}.scoreboard-matrix .footer-total{color:var(--gold);font-size:18px}.scoreboard-matrix .player-name{font-family:'Space Grotesk',sans-serif;font-size:14px}.scoreboard-matrix .leader-tag{display:block;margin-top:4px;color:var(--gold);font-size:9px;font-family:'DM Sans',sans-serif;letter-spacing:1.2px;font-weight:700}.scoreboard-matrix .active-row{background:linear-gradient(90deg,#0d2a36,#0c2030);box-shadow:inset 0 0 0 2px var(--gold),inset 0 0 28px #4ce0c022}.scoreboard-matrix .active-row .mod-label .mode-name-cell{color:var(--gold)}.scoreboard-matrix .active-row td:first-of-type{box-shadow:inset 2px 0 0 var(--gold)}.scoreboard-matrix .active-row td:nth-last-of-type(2){box-shadow:inset -2px 0 0 var(--gold)}.end-game-button{display:block;margin:18px auto}.modal-backdrop,.winner-overlay{position:fixed;inset:0;z-index:10;background:#04101adf;display:grid;place-items:center;padding:20px}.hidden{display:none}.modal{width:min(100%,480px);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;position:relative;box-shadow:0 20px 80px #0008}.modal-close{position:absolute;right:18px;top:18px;font-size:25px;line-height:1}.modal h2{font-size:34px}.modal-note{font-size:13px;margin-top:10px}.round-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.round-row label{font-weight:600;font-size:14px}.round-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.round-row input{width:108px;background:#07131f;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:11px;text-align:right;font-size:16px;outline:none}.round-row input:focus{border-color:var(--teal)}.winner-overlay{background:#06111deF}.winner-content{text-align:center;position:relative;z-index:2;animation:pop .55s ease-out}.winner-content h2{font-size:48px;color:var(--gold);margin-bottom:8px}.winner-content p:not(.eyebrow){color:var(--muted);margin:0}.winner-score{color:var(--teal);font:700 22px 'Space Grotesk';margin-top:22px}.trophy{color:var(--gold);font-size:62px;margin-bottom:16px;animation:spin 1.5s ease-in-out infinite alternate}.mode-list{display:grid;gap:10px;margin-bottom:18px}.mode-row{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);padding:10px 12px;border-radius:11px}.mode-row input{flex:1;background:none;border:0;color:var(--text);font-size:14px;outline:0}.mode-row button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:18px;padding:5px}.mode-row button:hover{color:var(--danger)}.mode-add{display:flex;gap:10px;margin-bottom:28px}.mode-add input{flex:1}.mode-add .outline-button{white-space:nowrap}@keyframes pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{from{transform:rotate(-8deg) scale(1)}to{transform:rotate(8deg) scale(1.08)}}@media(max-width:500px){.screen{padding-top:30px}.hero-copy{padding-top:5vh}.hero-copy h1{font-size:45px}.player-inputs{grid-template-columns:1fr}.rules-card{margin-top:70px}.game-header{align-items:start;gap:12px}.game-header h2{font-size:32px}.outline-button{font-size:12px;padding:9px}.scoreboard-matrix th,.scoreboard-matrix td{padding:12px 10px;font-size:13px}.scoreboard-matrix th.row-label,.scoreboard-matrix .mod-label{width:90px;min-width:90px}.scoreboard-matrix .total-col,.scoreboard-matrix .total-cell{width:60px;min-width:60px;font-size:11px;letter-spacing:.5px}}
/* append-only: cell button affordance + inline edit */
.scoreboard-matrix .cell-button{all:unset;display:block;width:100%;text-align:center;cursor:text;border-radius:6px;padding:4px 2px;transition:background .15s,box-shadow .15s}.scoreboard-matrix .cell-button:hover:not(.cell-empty){background:#152c3a;box-shadow:inset 0 0 0 1px var(--teal);color:var(--teal)}.scoreboard-matrix .cell-button:focus-visible{box-shadow:inset 0 0 0 2px var(--gold);outline:0}.scoreboard-matrix .cell-empty{cursor:default}.scoreboard-matrix .cell-empty:hover{background:transparent}.scoreboard-matrix .cell-cell-edit{display:flex;align-items:center;justify-content:center;padding:4px;background:#0d2232;border-radius:8px;box-shadow:inset 0 0 0 2px var(--gold)}.scoreboard-matrix .cell-input{all:unset;display:block;width:100%;text-align:center;color:var(--gold);font:600 16px 'Space Grotesk';padding:0;background:transparent;caret-color:var(--teal)}.scoreboard-matrix .cell-input::-webkit-inner-spin-button,.scoreboard-matrix .cell-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.scoreboard-matrix .cell-input{appearance:textfield;-moz-appearance:textfield}
.lang-toggle{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:12px;background:#0d2232;padding:2px}.lang-btn{all:unset;padding:8px 12px;font:600 12px 'DM Sans';color:var(--muted);border-radius:10px;cursor:pointer;letter-spacing:1px}.lang-btn.active{background:var(--teal);color:#05232a;cursor:default}.lang-btn:not(.active):hover{color:var(--text)}body{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
