@font-face{font-family:Alegreya;src:url('/fonts/alegreya-700-latin.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:'Alegreya Sans';src:url('/fonts/alegreya-sans-400-latin.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:'Alegreya Sans';src:url('/fonts/alegreya-sans-700-latin.woff2') format('woff2');font-weight:700;font-display:swap}
:root{color-scheme:dark;--ink:#080b12;--surface:#111624;--raised:#171d2c;--line:#30384b;--text:#f6f0e4;--muted:#aeb7c9;--gold:#e2b64d;--gold-soft:#f2d689;--live:#54d895;--red:#ef6b73;--blue:#8cb7ec}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--text);font:18px/1.5 'Alegreya Sans',sans-serif;font-variant-numeric:lining-nums tabular-nums}::selection{background:var(--gold);color:var(--ink)}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:var(--gold-soft);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}input,select,textarea{color:var(--text);background:var(--raised);border:1px solid var(--line);border-radius:3px;padding:11px 13px;max-width:100%;caret-color:var(--gold)}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{resize:vertical;min-height:110px;width:100%}input[type=number]{width:100%}label{display:grid;gap:6px;font-weight:700;font-size:16px}.button,button{padding:10px 17px;border:1px solid var(--line);border-radius:3px;background:var(--raised);color:var(--text);text-decoration:none;font-weight:700}.button:hover,button:hover{background:#242c3f}.primary{background:var(--gold);border-color:var(--gold);color:var(--ink)}.primary:hover{background:var(--gold-soft)}.danger{color:var(--red)}.quiet{background:transparent}.site-header{display:flex;align-items:center;gap:40px;max-width:1400px;margin:auto;padding:27px 48px;border-bottom:1px solid var(--line)}.wordmark{display:grid;line-height:1.1;text-decoration:none;color:var(--text)}.wordmark strong{font-family:Alegreya,serif;font-size:26px}.wordmark span{font-size:12px;letter-spacing:.08em;color:var(--gold);margin-top:8px}.site-header nav{display:flex;gap:27px;align-items:center;margin-left:auto}.site-header nav a,.staff-link{font-size:16px;color:var(--muted);text-decoration:none}.site-header nav a[aria-current=page]{color:var(--text);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:10px}.staff-link{border-left:1px solid var(--line);padding-left:25px}.skip{position:absolute;left:16px;top:-70px;padding:12px;background:var(--surface);z-index:10}.skip:focus{top:5px}main{max-width:1400px;margin:0 auto;padding:48px;min-height:68vh}h1,h2,h3{font-family:Alegreya,serif;font-weight:700;line-height:1.1;text-wrap:balance}h1{font-size:48px;margin:0 0 18px}h2{font-size:34px;margin:40px 0 16px}h3{font-size:26px;margin:24px 0 12px}p{max-width:74ch}.muted,.small{color:var(--muted)}.small{font-size:14px}.intro{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;padding-bottom:35px}.intro h1{font-size:48px}.intro p{margin:0;color:var(--muted);font-size:20px}.principle{border-top:1px solid var(--gold);padding-top:17px;align-self:end}.principle strong{display:block;color:var(--gold-soft);font-size:20px}.principle p{font-size:16px;margin-top:8px}.notice{border:1px solid var(--line);padding:13px 18px;background:var(--surface);margin-bottom:24px}.controls{display:grid;grid-template-columns:1.2fr 1.2fr .8fr;gap:18px;padding:25px 0;border-top:1px solid var(--line)}.board-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:12px 0 18px}.board-heading h2{margin:0;font-size:34px}.board-heading p{margin:6px 0 0;font-size:16px;color:var(--muted)}.sync{text-align:right;font-size:14px;color:var(--muted);max-width:300px}.table-wrap{overflow-x:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse;text-align:left}thead{color:var(--muted);font-size:12px;letter-spacing:.04em;text-transform:uppercase}th{padding:14px 16px;font-weight:700}td{padding:18px 16px;border-top:1px solid var(--line);vertical-align:middle}tbody tr:hover{background:var(--surface)}.rank{width:70px;font-size:20px;color:var(--gold-soft)}.player{font-weight:700;font-size:20px;color:var(--text);text-decoration:none;overflow-wrap:anywhere}.player:hover{color:var(--gold-soft)}.score{font-size:26px;font-weight:700;white-space:nowrap}.proof{color:var(--live);font-size:14px;display:block}.imported{font-size:14px;color:var(--muted)}.boons{display:flex;gap:4px;flex-wrap:wrap;max-width:250px}.boons img{width:32px;height:32px;object-fit:contain;background:var(--raised);border:1px solid var(--line)}.pagination{display:flex;justify-content:space-between;align-items:center;margin:22px 0;gap:14px}.pagination>div{display:flex;gap:10px}.empty,.loading{padding:50px 24px;background:var(--surface);text-align:center;color:var(--muted)}.error{color:var(--red)}.section-lead{max-width:74ch;font-size:20px;color:var(--muted)}.rule-layout{display:grid;grid-template-columns:1.5fr .8fr;gap:60px}.rule-text{white-space:pre-line}.aside{padding:24px;background:var(--surface);align-self:start;border-top:1px solid var(--gold)}.aside h2,.aside h3{margin-top:0}.flow{margin:30px 0;padding-left:23px}.flow li{margin:15px 0;padding-left:5px}.tabs{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.tabs button[aria-selected=true]{color:var(--ink);background:var(--gold)}.library-filter{display:flex;gap:20px;align-items:end;margin-bottom:25px}.library-filter label{flex:1}.library-filter p{margin:0 0 12px}.catalogue{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.catalogue article{border-top:1px solid var(--line);padding:24px 0;min-width:0}.catalogue h2{font-size:26px;margin:0}.catalogue-head{display:flex;align-items:center;gap:17px}.catalogue-head img{width:64px;height:64px;object-fit:contain}.catalogue article p{font-size:16px;white-space:pre-line}.catalogue details{font-size:16px;margin-top:12px}.catalogue summary{cursor:pointer;color:var(--gold-soft)}.catalogue ul{padding-left:22px}.catalogue li{margin:12px 0}.form-layout{max-width:850px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.full{grid-column:1/-1}form>label{margin:18px 0}.form-grid>label{margin:0}form .primary{margin-top:22px}.form-note{color:var(--muted);font-size:16px}.honeypot{display:none}.record-list{display:grid;gap:26px;margin-top:32px}.record{border-top:1px solid var(--line);padding-top:20px}.record h2{margin:0 0 12px}.record-stats{display:flex;gap:35px;flex-wrap:wrap;margin-bottom:18px}.record-stats strong{display:block;font-size:26px}.record-stats span{font-size:14px;color:var(--muted)}.boon-list{display:flex;flex-wrap:wrap;gap:12px}.boon-list span{display:flex;align-items:center;gap:8px;background:var(--surface);padding:7px 10px;font-size:16px}.boon-list img{width:34px;height:34px}.admin-header{display:flex;justify-content:space-between;gap:30px}.admin-settings{display:grid;grid-template-columns:250px 1fr;gap:28px;padding:26px;background:var(--surface);margin:28px 0}.admin-settings h2{margin:0 0 15px;font-size:26px}.admin-settings label{margin-top:12px}.admin-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:20px 0}.admin-tools label{flex:1}.admin-table td{font-size:16px;padding:14px}.admin-table .player{font-size:18px}.review-editor{border:1px solid var(--line);padding:25px;margin:25px 0;background:var(--surface)}.review-editor h2{margin-top:0;font-size:26px}.review-editor .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.review-editor .actions .primary{margin:0}.status-hold{color:var(--gold-soft)}.status-hidden{color:var(--red)}.audit{max-height:350px;overflow:auto;font-size:14px}.audit p{padding:12px 0;border-bottom:1px solid var(--line);margin:0}.submission{padding:20px 0;border-top:1px solid var(--line)}.submission p{margin:7px 0;overflow-wrap:anywhere}.submission button{margin-top:10px}.login{max-width:460px;margin:40px auto}.login input{width:100%}footer{max-width:1304px;padding:25px 0 35px;border-top:1px solid var(--line);margin:0 auto;color:var(--muted);font-size:16px}footer p{margin:6px 0}footer p:first-child{font-family:Alegreya,serif;color:var(--text);font-size:20px}#toast{position:fixed;bottom:24px;right:24px;background:var(--gold-soft);color:var(--ink);padding:14px 24px;max-width:min(440px,90vw);box-shadow:0 8px 30px #0006;display:none;z-index:20}#toast.visible{display:block}details>summary{cursor:pointer}details[open]>summary{margin-bottom:15px}a,button,input,select,textarea{scroll-margin-top:25px}*{scrollbar-width:thin;scrollbar-color:var(--line) var(--ink)}
@media(max-width:950px){.site-header{padding:22px 26px;gap:22px;flex-wrap:wrap}.site-header nav{order:3;width:100%;margin:0;justify-content:space-between;gap:15px}.staff-link{margin-left:auto}main{padding:32px 26px}.intro{gap:30px}.controls{grid-template-columns:1fr 1fr}.controls label:last-child{grid-column:1/-1}.rule-layout{gap:30px}.admin-settings{grid-template-columns:1fr}footer{margin:0 26px}.boon-column{display:none}}
@media(max-width:600px){body{font-size:18px}.site-header{padding:20px}.site-header nav{gap:10px;flex-wrap:wrap}.site-header nav a{font-size:14px}.wordmark strong{font-size:24px}.staff-link{font-size:14px;padding-left:15px}main{padding:30px 20px}.intro{grid-template-columns:1fr;gap:24px;padding-bottom:24px}h1,.intro h1{font-size:34px}.intro p{font-size:18px}.controls{grid-template-columns:1fr;gap:14px}.controls label:last-child{grid-column:auto}.board-heading{display:block}.board-heading h2{font-size:26px}.sync{text-align:left;margin-top:12px}.table-wrap table{min-width:330px}th{padding:10px 7px;font-size:12px}td{padding:15px 7px}.rank{width:36px;font-size:16px}.player{font-size:18px}.score{font-size:20px}.difficulty-column{display:none}.rule-layout,.form-grid,.catalogue{grid-template-columns:1fr}.full{grid-column:auto}.aside{margin-top:12px}.catalogue-head img{width:50px;height:50px}.library-filter{display:block}.library-filter p{margin-top:10px}.admin-header{display:block}.admin-settings{padding:18px}.review-editor{padding:18px}.record-stats{gap:20px}.admin-table{min-width:600px!important}footer{margin:0 20px;font-size:14px}.pagination{font-size:14px}.pagination button{padding:9px 12px}.tabs{gap:8px}.tabs button{padding:8px 12px}.intro .principle p{font-size:16px}}
