:root{--paper: #e9eef0;--paper-2: #dde5e9;--ink: #14304a;--ink-soft: #4a6276;--rule: #b9c7cf;--accent: #b3263e;--dice-background: #fbf8f1;--dice-foreground: #14304a;--dice-outline: #14304a;--dice-pip: #14304a;--dice-shadow: rgba(20, 48, 74, .25);--dice-selected: var(--accent);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--paper: #0f2233;--paper-2: #16304a;--ink: #dce6ea;--ink-soft: #94aab8;--rule: #2b465d;--accent: #f0798d;--dice-background: #e4eaed;--dice-outline: #0f2233;--dice-shadow: rgba(0, 0, 0, .45)}}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font-family:system-ui,sans-serif;display:grid;place-items:start center}.game{width:min(100%,34rem);padding:1.25rem 1rem 2rem;position:relative}header{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.25rem 1rem;margin-bottom:.75rem}.back{grid-column:1 / -1;justify-self:start;color:var(--ink-soft);font-size:.875rem;text-decoration-color:var(--accent);text-underline-offset:.18em}h1{margin:0;font-size:2.25rem;font-weight:800;letter-spacing:-.04em;line-height:1}.stats{display:flex;gap:1.25rem;margin:0}.stats div{text-align:right}.stats dt{font-size:.75rem;color:var(--ink-soft)}.stats dd{margin:0;font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.progress{height:6px;border-radius:3px;background:var(--paper-2);overflow:hidden;margin-bottom:1.25rem}.progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .4s ease-out}.turn-points{margin:0 0 .75rem;color:var(--ink-soft)}.turn-points strong{color:var(--ink);font-size:1.5rem;font-variant-numeric:tabular-nums;margin-left:.25rem}.pick{font-weight:600;color:var(--accent)}.aside-row{display:flex;align-items:center;gap:.75rem;min-height:44px;margin-bottom:.5rem}.aside-label{font-size:.8rem;color:var(--ink-soft);flex:none}.aside{--dice-size: 34px;--dice-gap: 6px}.table{--dice-size: min(64px, calc((100vw - 2rem - 50px) / 6));--dice-gap: 10px;justify-content:center;min-height:120px;padding:1.25rem 0;border-block:1px solid var(--rule)}.table.idle .dice-box__die{opacity:.3}.table .dice-box__die[aria-disabled=true]{opacity:.4}.table.watching .dice-box__die[aria-disabled=true]{opacity:1}.message{min-height:1.5em;margin:.75rem 0;text-align:center;font-weight:600}.message.farkle{color:var(--accent);font-size:1.25rem}.actions{display:flex;gap:.75rem}.actions button{flex:1;font-size:1.05rem;padding:.8rem 1rem}button,select{font:inherit;color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:8px;padding:.5rem 1rem;cursor:pointer}button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h2{font-size:1rem;margin:2rem 0 .5rem}.log{margin:0;padding:0;list-style:none;font-size:.9rem;font-variant-numeric:tabular-nums}.log li{display:flex;justify-content:space-between;padding:.3rem 0;border-bottom:1px solid var(--rule)}.log .farkle{color:var(--accent)}.log:empty:before{content:"No turns yet.";color:var(--ink-soft)}.rules{margin-top:2rem;line-height:1.55}.rules summary{font-weight:700;cursor:pointer;padding:.4rem 0}.rules ol{padding-left:1.25rem}.rules li{margin:.35rem 0}.scoring{width:100%;border-collapse:collapse;font-size:.9rem}.scoring caption{text-align:left;font-weight:700;padding:.5rem 0}.scoring th{text-align:left;font-size:.8rem;color:var(--ink-soft);font-weight:600;padding:.3rem .5rem .3rem 0}.scoring td{padding:.35rem .5rem .35rem 0;border-top:1px solid var(--rule);vertical-align:middle}.scoring .example{--dice-size: 18px;--dice-gap: 3px;--dice-shadow: transparent;flex-wrap:nowrap}.settings{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;color:var(--ink-soft)}.settings label{display:flex;align-items:center;gap:.4rem}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--paper) 72%,transparent);z-index:10}.overlay[hidden]{display:none}.won-box{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:1.25rem 1.5rem;text-align:center;width:min(20rem,90%)}.won-box .title{font-size:2rem;font-weight:800;letter-spacing:-.03em;margin:0}.won-box p{color:var(--ink-soft)}.won-box .quiet{display:block;margin:.5rem auto 0}.modes{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--rule)}.modes a{padding:.5rem .9rem;color:var(--ink-soft);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.modes a[aria-current=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.panel .lead{line-height:1.5;margin:0 0 1rem}.field{display:grid;gap:.35rem;font-size:.875rem;color:var(--ink-soft);margin-bottom:1rem}input{font:inherit;color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:8px;padding:.6rem .8rem}.wide{width:100%;padding:.8rem 1rem;font-size:1.05rem}button.quiet{background:none;border:0;color:var(--ink-soft);text-decoration:underline;text-underline-offset:.2em;margin-top:.75rem;padding:.25rem}.join{margin-top:1.5rem}.join label{display:block;color:var(--ink-soft);font-size:.875rem;margin-bottom:.4rem}.join-row{display:flex;gap:.5rem}.join-row input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.2em;font-family:ui-monospace,monospace}.error{color:var(--accent);min-height:1.5em}.code{font-family:ui-monospace,monospace;font-size:2.25rem;font-weight:700;letter-spacing:.25em;text-align:center;margin:0 0 1rem}.link{color:var(--ink-soft);font-size:.8rem;word-break:break-all;text-align:center}.lobby-players{padding:0;list-style:none;margin:0 0 1rem}.lobby-players li{padding:.4rem 0;border-bottom:1px solid var(--rule)}.status{color:var(--ink-soft)}.players{list-style:none;padding:0;margin:0 0 1rem}.players li{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:baseline;padding:.45rem .6rem;border-radius:6px}.players li.current{background:var(--paper-2);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.players li.away{color:var(--ink-soft)}.players .note{font-size:.8rem;color:var(--ink-soft);font-weight:400}.players .score{font-variant-numeric:tabular-nums;font-weight:700}.final{background:var(--paper-2);border-left:3px solid var(--accent);padding:.6rem .8rem;margin:0 0 1rem;font-weight:600}#skip{margin-top:.75rem}.net-status{text-align:center;color:var(--ink-soft)}.standings{text-align:left;padding-left:1.5rem;margin:0 0 1rem}.standings li{padding:.15rem 0}
