:root{--paper: #efe4c9;--paper-deep: #e6d8b6;--paper-edge: #d8c79f;--ink: #2a1f14;--ink-soft: #6b5640;--ink-faint: #9b886b;--line: #c4ad81;--line-soft: #d6c399;--gold: #b07a1e;--gold-bright: #d99b2b;--crimson: #8a2f24;--pos: #3f6b3a;--neg: #9a3324;--c-yellow: #c9962a;--c-blue: #2e567f;--c-white: #6c6256;--c-green: #3c6b4f;--c-red: #9a3a2c;--c-purple: #6a4173;--shadow: 0 18px 40px -22px rgba(40, 28, 14, .55);--radius: 4px}*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}body{font-family:EB Garamond,Georgia,serif;color:var(--ink);background-color:#e8dcc0;background-image:radial-gradient(120% 90% at 50% -10%,#f4ecd6,#e7dabd 55%,#ddcca7),repeating-linear-gradient(90deg,rgba(120,96,58,.025) 0px,rgba(120,96,58,.025) 1px,transparent 1px,transparent 26px);min-height:100dvh;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}.grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:99;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.42'/%3E%3C/svg%3E")}.ledger{position:relative;z-index:1;max-width:880px;margin:0 auto;padding:clamp(1.4rem,4vw,3rem) clamp(1rem,4vw,2.6rem) 3rem}.masthead{text-align:center;animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.overline{font-family:Cinzel,serif;letter-spacing:.42em;text-transform:uppercase;font-size:.62rem;color:var(--gold);margin:.9rem 0 .5rem;padding-left:.42em}.masthead h1{font-family:Cinzel,serif;font-weight:700;font-size:clamp(2.6rem,9vw,4.6rem);letter-spacing:.04em;line-height:.95;color:var(--ink);text-shadow:0 1px 0 rgba(255,248,230,.6)}.subtitle{font-style:italic;font-size:clamp(.95rem,2.6vw,1.15rem);color:var(--ink-soft);margin-top:.4rem}.rule{display:flex;align-items:center;justify-content:center;gap:.8rem;color:var(--line);margin:.4rem 0}.rule:before,.rule:after{content:"";height:1px;flex:0 1 110px;background:linear-gradient(90deg,transparent,var(--line),transparent)}.rule .diamond{font-size:.55rem;color:var(--gold)}.round-status{display:inline-flex;align-items:center;gap:.7rem;margin-top:.9rem;padding:.4rem 1rem;border:1px solid var(--line);border-radius:999px;background:var(--paper-deep)}.round-dots{display:inline-flex;gap:.35rem}.round-dot{width:8px;height:8px;border-radius:50%;background:transparent;border:1px solid var(--ink-faint);transition:all .3s}.round-dot.done{background:var(--ink-soft);border-color:var(--ink-soft)}.round-dot.current{background:var(--gold-bright);border-color:var(--gold);box-shadow:0 0 8px var(--gold-bright)}.round-label{font-family:Cinzel,serif;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.round-delta{font-family:DM Mono,monospace;color:var(--ink-soft)}.scoreboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(.7rem,2.5vw,1.3rem);margin:clamp(1.4rem,4vw,2.2rem) 0 1.4rem;animation:rise .7s .06s cubic-bezier(.2,.7,.2,1) both}.total-card{position:relative;min-width:0;background:linear-gradient(170deg,var(--paper) 0%,var(--paper-deep) 100%);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem 1.1rem;box-shadow:var(--shadow);text-align:center;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}.total-card:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid var(--line-soft);border-radius:2px;pointer-events:none}.total-card.is-leader{border-color:var(--gold);box-shadow:var(--shadow),0 0 0 1px var(--gold-bright) inset,0 0 30px -10px #d99b2b99;transform:translateY(-3px)}.total-card.is-leader:before{border-color:#d99b2b8c}.total-card-head{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:1.7rem}.name-input{font-family:Cinzel,serif;font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:var(--ink);background:transparent;border:none;border-bottom:1px dashed transparent;width:auto;max-width:9.5em;padding:.1rem .2rem;transition:border-color .2s}.name-input:hover{border-bottom-color:var(--line)}.name-input:focus{outline:none;border-bottom-color:var(--gold)}.badge{font-family:DM Mono,monospace;font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--gold);padding:.2rem .45rem;border-radius:2px;white-space:nowrap}.badge.tie{background:var(--ink-faint)}.total-value{font-family:DM Mono,monospace;font-size:clamp(2.6rem,11vw,3.8rem);font-weight:500;line-height:1;margin-top:.5rem;color:var(--ink);font-variant-numeric:tabular-nums;transition:color .3s}.total-value.is-neg{color:var(--neg)}.total-sub{font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-faint);margin-top:.3rem}.controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;padding:.5rem 0 1.1rem;border-bottom:1px solid var(--line);margin-bottom:1.4rem;animation:rise .7s .12s cubic-bezier(.2,.7,.2,1) both}.tabs{display:flex;gap:.4rem;background:var(--paper-deep);border:1px solid var(--line);border-radius:999px;padding:.25rem}.tab{display:flex;align-items:center;gap:.45rem;font-family:Cinzel,serif;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);background:transparent;border:none;border-radius:999px;padding:.5rem .95rem;cursor:pointer;transition:all .25s ease;touch-action:manipulation}.tab-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-faint);transition:background .25s,box-shadow .25s}.tab.is-active{background:var(--ink);color:var(--paper);box-shadow:0 6px 16px -8px #2a1f14cc}.tab.is-active .tab-dot{background:var(--gold-bright);box-shadow:0 0 8px var(--gold-bright)}.control-buttons{display:flex;align-items:center;gap:1rem}.switch{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:34px;height:18px;border-radius:999px;background:var(--paper-edge);border:1px solid var(--line);position:relative;transition:background .25s}.switch-thumb{position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:var(--ink-soft);transition:transform .25s ease,background .25s}.switch input:checked+.switch-track{background:var(--c-purple)}.switch input:checked+.switch-track .switch-thumb{transform:translate(16px);background:#f0e6d2}.switch input:focus-visible+.switch-track{outline:2px solid var(--gold);outline-offset:2px}.switch-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.ghost-btn{font-family:Cinzel,serif;font-size:.64rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--crimson);background:transparent;border:1px solid var(--line);border-radius:2px;padding:.5rem .85rem;cursor:pointer;transition:all .2s}.ghost-btn:hover{background:var(--crimson);color:var(--paper);border-color:var(--crimson)}.minor-btn{font-family:Cinzel,serif;font-size:.64rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);background:transparent;border:1px solid var(--line);border-radius:2px;padding:.5rem .85rem;cursor:pointer;transition:all .2s;touch-action:manipulation;white-space:nowrap}.minor-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.minor-btn:active{transform:scale(.97)}.primary-btn{font-family:Cinzel,serif;font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:linear-gradient(180deg,#34271a 0%,var(--ink) 100%);border:1px solid var(--ink);border-radius:2px;padding:.6rem 1.1rem;cursor:pointer;box-shadow:0 8px 18px -10px #2a1f14e6,inset 0 1px #fff6e01f;transition:all .2s;touch-action:manipulation}.primary-btn:active{transform:scale(.97)}.primary-btn:hover{background:linear-gradient(180deg,var(--gold-bright) 0%,var(--gold) 100%);border-color:var(--gold);color:#2a1d0c;transform:translateY(-1px)}.round-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.9rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.round-actions .primary-btn{font-size:.78rem;padding:.9rem 2.2rem}.round-actions .minor-btn{padding:.78rem 1.3rem}.board{display:flex;flex-direction:column;gap:.7rem}.exp{--c: var(--ink);display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:clamp(.5rem,2vw,1rem);background:linear-gradient(180deg,var(--paper) 0%,var(--paper-deep) 100%);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:var(--radius);padding:.7rem .9rem;box-shadow:0 6px 18px -14px #281c0e80;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.exp[data-color=yellow]{--c: var(--c-yellow)}.exp[data-color=blue]{--c: var(--c-blue)}.exp[data-color=white]{--c: var(--c-white)}.exp[data-color=green]{--c: var(--c-green)}.exp[data-color=red]{--c: var(--c-red)}.exp[data-color=purple]{--c: var(--c-purple)}.exp-spine{display:flex;flex-direction:column;gap:.05rem;line-height:1}.exp-glyph{font-family:Cinzel,serif;font-size:1.15rem;color:var(--c);font-weight:700}.exp-name{font-family:Cinzel,serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.exp-cards{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.hs-group,.num-group{display:flex;flex-wrap:wrap;gap:.3rem}.hs-group{padding-right:.6rem;margin-right:.1rem;border-right:1px dashed var(--line)}.card{font-family:DM Mono,monospace;font-size:.92rem;font-weight:500;width:32px;height:40px;display:grid;place-items:center;color:var(--ink-faint);background:linear-gradient(180deg,#f6efda,#ece0c2);border:1px solid var(--line);border-radius:3px;cursor:pointer;position:relative;transition:transform .14s ease,box-shadow .18s ease,color .18s,background .18s,border-color .18s;font-variant-numeric:tabular-nums;touch-action:manipulation;-webkit-user-select:none;user-select:none}.card:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border:1px solid transparent;border-radius:2px;pointer-events:none}.card:hover{transform:translateY(-2px);color:var(--ink);box-shadow:0 6px 12px -7px #281c0e99}.card:active{transform:scale(.9);transition-duration:.05s}.card.is-played:active{transform:scale(.9)}.card-hs{width:30px}.card-mark{font-size:.9rem;line-height:1}.card.is-played{color:#fff;background:linear-gradient(180deg,var(--c) 0%,color-mix(in srgb,var(--c) 78%,#000) 100%);border-color:color-mix(in srgb,var(--c) 70%,#000);box-shadow:0 7px 14px -7px color-mix(in srgb,var(--c) 60%,transparent),inset 0 1px #ffffff40;transform:translateY(-1px)}.card.is-played:after{border-color:#ffffff52}.card.is-played:hover{transform:translateY(-3px)}.exp-score{text-align:right;min-width:64px;display:flex;flex-direction:column;gap:.1rem}.exp-score-value{font-family:DM Mono,monospace;font-size:1.35rem;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;transition:color .2s}.exp-score.idle .exp-score-value{color:var(--ink-faint)}.exp-score.pos .exp-score-value{color:var(--pos)}.exp-score.neg .exp-score-value{color:var(--neg)}.exp-score-detail{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.colophon{text-align:center;margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--line);font-style:italic;font-size:.82rem;color:var(--ink-faint)}.colophon .credit{display:block;margin-top:.7rem;font-style:normal;font-family:Cinzel,serif;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.colophon .credit a{color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}.colophon .credit a:hover{color:var(--gold-bright);border-bottom-color:var(--gold-bright)}.summary .masthead{margin-bottom:.5rem}.winner-banner{display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center;margin:1.6rem auto 2rem;padding:1.4rem 1.6rem;max-width:460px;background:linear-gradient(170deg,var(--paper) 0%,var(--paper-deep) 100%);border:1px solid var(--gold);border-radius:var(--radius);box-shadow:var(--shadow),0 0 40px -16px #d99b2b99;position:relative;animation:rise .7s .05s cubic-bezier(.2,.7,.2,1) both}.winner-banner:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid rgba(217,155,43,.5);border-radius:2px;pointer-events:none}.winner-banner.is-tie{border-color:var(--line);box-shadow:var(--shadow)}.winner-label{font-family:Cinzel,serif;font-size:.62rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}.winner-name{font-family:Cinzel,serif;font-size:clamp(1.6rem,6vw,2.4rem);font-weight:700;letter-spacing:.03em;color:var(--ink)}.winner-score{font-family:DM Mono,monospace;font-size:.92rem;letter-spacing:.1em;color:var(--ink-soft)}.podium{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.7rem,2.5vw,1.3rem);margin-bottom:1.8rem}.podium-card{position:relative;text-align:center;padding:1.1rem 1rem;background:linear-gradient(170deg,var(--paper) 0%,var(--paper-deep) 100%);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);animation:rise .6s .12s cubic-bezier(.2,.7,.2,1) both}.podium-card.is-winner{border-color:var(--gold);box-shadow:var(--shadow),0 0 0 1px var(--gold-bright) inset}.laurel{position:absolute;top:-.7rem;left:50%;transform:translate(-50%);font-size:1.4rem;color:var(--gold);text-shadow:0 1px 0 var(--paper)}.podium-name{font-family:Cinzel,serif;font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.podium-total{font-family:DM Mono,monospace;font-size:clamp(2.4rem,10vw,3.4rem);font-weight:500;line-height:1;margin-top:.4rem;color:var(--ink);font-variant-numeric:tabular-nums}.podium-total.is-neg{color:var(--neg)}.podium-sub{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);margin-top:.25rem}.scorecard-table{background:linear-gradient(170deg,var(--paper) 0%,var(--paper-deep) 100%);border:1px solid var(--line);border-radius:var(--radius);padding:.4rem 1.1rem .6rem;box-shadow:0 6px 18px -14px #281c0e80;animation:rise .6s .18s cubic-bezier(.2,.7,.2,1) both}.scorecard-table table{width:100%;border-collapse:collapse}.scorecard-table th{font-family:Cinzel,serif;font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding:.7rem .5rem;text-align:right;border-bottom:1px solid var(--line)}.scorecard-table th:first-child{text-align:left}.scorecard-table td{font-family:DM Mono,monospace;font-size:.98rem;padding:.55rem .5rem;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;border-bottom:1px dashed var(--line-soft)}.scorecard-table tbody tr:last-child td{border-bottom:1px solid var(--line)}.scorecard-table .round-cell{font-family:EB Garamond,serif;font-style:italic;font-size:.95rem;text-align:left;color:var(--ink-soft)}.scorecard-table td.pos{color:var(--pos)}.scorecard-table td.neg{color:var(--neg)}.scorecard-table tfoot td{font-size:1.2rem;font-weight:500;padding-top:.7rem;border-bottom:none}.scorecard-table tfoot .round-cell{font-family:Cinzel,serif;font-style:normal;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.scorecard-table td.win{color:var(--gold);font-weight:500}.summary-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.8rem;margin-top:1.8rem;animation:rise .6s .24s cubic-bezier(.2,.7,.2,1) both}.summary-actions .primary-btn{font-size:.74rem;padding:.8rem 1.6rem}.summary-actions .minor-btn{padding:.75rem 1.2rem}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media (max-width: 600px){.ledger{padding-bottom:2rem}.scoreboard{gap:.6rem}.total-card{padding:.9rem .6rem 1rem}.total-card-head{flex-wrap:wrap}.controls{flex-direction:column;align-items:stretch;gap:.8rem}.tabs{width:100%}.tab{flex:1;min-width:0;justify-content:center;padding:.65rem .4rem;font-size:.62rem;letter-spacing:.06em;overflow:hidden;white-space:nowrap}.control-buttons{width:100%;flex-wrap:wrap;gap:.7rem}.switch{margin-right:auto}.ghost-btn{padding:.6rem .95rem;flex:1}.round-actions{flex-direction:column-reverse;align-items:stretch;gap:.7rem}.round-actions .primary-btn,.round-actions .minor-btn{width:100%;text-align:center}.round-actions .primary-btn{padding:1rem;font-size:.74rem}.name-input{font-size:16px;width:100%;max-width:100%;min-width:0}.exp{grid-template-columns:1fr auto;grid-template-areas:"spine score" "cards cards";row-gap:.7rem;padding:.8rem .85rem}.exp-spine{grid-area:spine;flex-direction:row;align-items:baseline;gap:.5rem}.exp-name{font-size:.7rem}.exp-score{grid-area:score}.exp-cards{grid-area:cards;flex-direction:column;align-items:stretch;gap:.5rem;min-width:0}.hs-group,.num-group{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:48px;align-content:start;gap:.4rem;width:100%}.hs-group{border-right:none;padding-right:0;margin-right:0}.card{height:48px;font-size:1.1rem}.card-hs,.card-num{width:auto}.scorecard-table{padding:.3rem .8rem .5rem}.scorecard-table th,.scorecard-table td{padding:.55rem .35rem}}@media (max-width: 380px){.hs-group,.num-group{grid-auto-rows:44px;gap:.35rem}.card{height:44px;font-size:1rem}}
