:root{--bg: #262421;--surface: #302e2b;--surface-sunk: #272522;--line: #3d3a36;--line-strong: #4a4642;--ink: #f1f1f0;--ink-soft: #b8b5b0;--ink-faint: #8b8781;--green: #81b64c;--green-deep: #6b9a3c;--green-shadow: #4a7132;--green-wash: rgba(129, 182, 76, .14);--danger: #e0796f;--sq-light: #eeeed2;--sq-dark: #769656;--sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius: 4px}*{box-sizing:border-box;margin:0}body{min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}button{font-family:inherit}.page{max-width:62rem;margin:0 auto;padding:1rem clamp(1rem,4vw,2rem) 3rem}.account{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:.5rem 0;font-size:.95rem;color:var(--ink-soft)}.account .rating{font-family:var(--mono);font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.account .prov{font-style:normal;font-size:.7em;vertical-align:super;color:var(--ink-faint);margin-left:1px}.account .whoami{color:var(--ink-faint)}.link{background:none;border:none;padding:0;font:inherit;color:var(--green);font-weight:500;cursor:pointer}.link:hover{text-decoration:underline}.link.quiet{color:var(--ink-faint);font-weight:400}.link.quiet:hover{color:var(--ink)}.masthead{display:flex;align-items:center;gap:.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.crest{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius);background:var(--green);color:#14200a}.crest .knight{font-size:1.35rem;line-height:1}.titles{flex:1;min-width:0}.titles h1{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.rule{font-size:.94rem;color:var(--ink-faint)}.rule i,.rule span:first-child{display:none}.ledger{display:flex;gap:1.5rem;text-align:right}.ledger dt{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.ledger dd{margin:0;font-family:var(--mono);font-size:1rem;font-variant-numeric:tabular-nums}.lobby{padding:3rem 0 2rem;text-align:center}.lobby h2{font-size:clamp(1.9rem,5vw,2.9rem);font-weight:600;letter-spacing:-.02em;line-height:1.1}.lobby p{max-width:34rem;margin:1rem auto 2.25rem;font-size:1.08rem;line-height:1.65;color:var(--ink-soft)}.choices{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.choice{min-width:12rem;padding:.9rem 1.6rem;border:none;border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:1.05rem;cursor:pointer;text-align:center;box-shadow:0 4px 0 var(--line-strong);transition:transform .06s ease,box-shadow .06s ease,background .15s ease}.choice:hover{background:#3a3733}.choice:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line-strong)}.choice.light{background:var(--green);color:#14200a;font-weight:600;box-shadow:0 4px 0 var(--green-shadow)}.choice.light:hover{background:#8cc253}.choice.light:active{box-shadow:0 1px 0 var(--green-shadow)}.choice .seal{display:block;font-size:1.6rem;line-height:1;margin-bottom:.2rem}.choice .label{display:block;font-weight:600}.choice .sub{display:block;margin-top:.15rem;font-size:.95rem;color:var(--ink-faint)}.choice.light .sub{color:#14200aa6}.game{display:grid;grid-template-columns:minmax(0,1fr) 17rem;gap:1.5rem;align-items:start;padding-top:1.5rem}.board-wrap{position:relative}.frame{position:relative;max-width:34rem;margin:0 auto}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#2624218c;border-radius:var(--radius)}.verdict{width:min(18rem,80%);padding:1.5rem;border-radius:var(--radius);background:var(--surface);text-align:center;animation:land .22s cubic-bezier(.2,.9,.3,1)}@keyframes land{0%{opacity:0;transform:scale(.94)}}.verdict.win h2{color:var(--green)}.verdict .wax{display:none}.verdict h2{font-size:1.2rem;font-weight:600}.verdict .flavour{margin-top:.25rem;font-size:.97rem;color:var(--ink-soft)}.verdict .cause{margin-top:.1rem;font-size:.94rem;color:var(--ink-faint)}.verdict .again{margin-top:1.1rem}.panel{padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.state{padding:.6rem 1rem;border-radius:var(--radius);background:var(--surface-sunk);font-size:.97rem}.state .head{font-weight:600}.state.yours{background:var(--green-wash);color:var(--green)}.state .hint{display:block;font-size:.97rem;color:var(--ink-faint)}.state.yours .hint{color:var(--green);opacity:.7}.record{margin-top:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.record .label{padding:.5rem .75rem;border-bottom:1px solid var(--line);font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.record ol{margin:0;padding:.25rem 0;list-style:none;max-height:20rem;overflow-y:auto}.record li{display:grid;grid-template-columns:2.2rem 1fr 1fr;gap:.5rem;padding:.15rem .75rem;font-family:var(--mono);font-size:.94rem;font-variant-numeric:tabular-nums}.record .num{color:var(--ink-faint)}.record .empty{padding:.75rem;font-family:var(--sans);font-size:.94rem;color:var(--ink-faint)}.ghost,.again button{padding:.55rem 1.1rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:.97rem;cursor:pointer}.ghost:hover,.again button:hover{border-color:var(--ink-faint)}.ghost.wide{width:100%;margin-top:1rem}.again button{background:var(--green);border-color:var(--green);color:#14200a;font-weight:600}.again button:hover{background:var(--green-deep)}.tree{margin-top:1rem;font-family:var(--mono);font-size:.86rem;color:var(--ink-faint)}.tree-node{color:var(--ink-soft)}.tree-edge{color:var(--line-strong)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#26242173}.modal{width:min(22rem,100%);display:flex;flex-direction:column;gap:.85rem;padding:1.5rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-strong)}.modal h2{font-size:1.1rem;font-weight:600}.modal .note{font-size:.94rem;color:var(--green);background:var(--green-wash);padding:.5rem .65rem;border-radius:var(--radius)}.modal label{display:flex;flex-direction:column;gap:.3rem;font-size:.95rem;color:var(--ink-soft)}.modal input{font-family:var(--sans);font-size:.95rem;padding:.5rem .6rem;color:var(--ink);background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--radius)}.modal input:focus{outline:2px solid var(--green);outline-offset:-1px;border-color:var(--green)}.form-error{font-size:.94rem;color:var(--danger)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:.9rem;margin-top:.2rem}.modal-actions button[type=submit]{font-size:.97rem;font-weight:600;padding:.5rem 1.1rem;color:#14200a;background:var(--green);border:1px solid var(--green);border-radius:var(--radius);cursor:pointer}.modal-actions button[type=submit]:hover{background:var(--green-deep)}.modal-actions button[type=submit]:disabled{opacity:.55;cursor:default}.modal .swap{font-size:.97rem;color:var(--ink-faint)}.fineprint{margin-top:1.5rem;font-family:var(--mono);font-size:.84rem;color:var(--ink-faint);text-align:center}.foot{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.94rem;color:var(--ink-faint);text-align:center}.foot a{color:var(--ink-soft)}.error{margin-top:1rem;padding:.6rem .85rem;border-radius:var(--radius);background:#e0796f1f;color:var(--danger);font-size:.97rem}@media(max-width:820px){.game{grid-template-columns:minmax(0,1fr)}.masthead{flex-wrap:wrap}.ledger{width:100%;justify-content:flex-start;text-align:left}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.skeleton{display:inline-block;height:.9rem;border-radius:3px;background:var(--line);animation:pulse 1.2s ease-in-out infinite}.skel-rating{width:2.6rem}.skel-name{width:7rem}@keyframes pulse{50%{opacity:.45}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.legal{max-width:40rem;margin:0 auto;padding:2rem 0}.legal h1{font-size:1.5rem;margin-bottom:.5rem}.legal h2{font-size:1.05rem;margin:1.75rem 0 .4rem}.legal p,.legal li{color:var(--ink-soft);margin-bottom:.6rem}.legal ul{padding-left:1.2rem}.legal .updated{font-size:.94rem;color:var(--ink-faint)}
