@font-face{font-family:Newsreader;font-weight:400;src:url(fonts/newsreader-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Newsreader;font-weight:400;font-style:italic;src:url(fonts/newsreader-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:Newsreader;font-weight:600;src:url(fonts/newsreader-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Outfit;font-weight:400;src:url(fonts/outfit-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Outfit;font-weight:600;src:url(fonts/outfit-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Plex Mono";font-weight:400;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Plex Mono";font-weight:500;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IM Fell";font-weight:400;src:url(fonts/im-fell-english-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IM Fell";font-weight:400;font-style:italic;src:url(fonts/im-fell-english-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:Bricolage;font-weight:700;src:url(fonts/bricolage-grotesque-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:Bricolage;font-weight:400;src:url(fonts/bricolage-grotesque-latin-400-normal.woff2) format("woff2")}

/* ---------- themes ----------
   Colours and type come from the theme; so does each theme's shape language:
   --card-bd (card border), --r-card / --r-btn / --r-ib / --r-sheet (radii), --shadow (floating cards), --press (the edge under a primary button). */
:root{--bone:#f1ece0;--paper:#e6dfcd;--ink:#1f1b17;--mute:#6b6258;--hair:#cfc4ae;--bad:#a8452d;--hover:#3a332b;
  --serif:Newsreader,Georgia,serif;--sans:Outfit,Helvetica,Arial,sans-serif;color-scheme:light;
  --me:#274c77;--track:#e6dfcd;--raised:#fffdf8;--glass:rgba(241,236,224,.95);
  --shadow:0 8px 26px rgba(31,27,23,.18);--shadow-sm:0 4px 14px rgba(31,27,23,.16);--card-bd:0 solid transparent;
  --r-card:20px;--r-btn:14px;--r-ib:22px;--r-sheet:28px;--press:#000;
  --st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px);--sl:env(safe-area-inset-left,0px);--sr:env(safe-area-inset-right,0px)}
:root[data-theme=paper-dark]{--bone:#161513;--paper:#201e1a;--ink:#ece6d8;--mute:#a39a8b;--hair:#3d3830;--bad:#e08a70;--hover:#cfc8b8;color-scheme:dark;
  --track:#26231e;--raised:#36322b;--glass:rgba(22,21,19,.94);--shadow:0 10px 30px rgba(0,0,0,.55);--shadow-sm:0 4px 14px rgba(0,0,0,.45);--press:#8a8273}
:root[data-theme=atlas]{--bone:#efe3c4;--paper:#e6d7ae;--ink:#3b2a17;--mute:#6f5a3b;--hair:#cdb98a;--bad:#9a3b2a;--hover:#5a4025;--serif:"IM Fell",Georgia,serif;--sans:"IM Fell",Georgia,serif;color-scheme:light;
  --track:#e4d4a9;--raised:#f8efd8;--glass:rgba(239,227,196,.96);--card-bd:3px double var(--ink);--r-card:4px;--r-btn:4px;--r-ib:4px;--r-sheet:6px;
  --shadow:0 6px 20px rgba(59,42,23,.2);--shadow-sm:0 3px 10px rgba(59,42,23,.18);--press:#1d140a}
:root[data-theme=blueprint]{--bone:#0b2340;--paper:#0e2b4d;--ink:#d9ebff;--mute:#9dbde0;--hair:#2a5282;--bad:#ff8a7a;--hover:#ffffff;--serif:"Plex Mono",ui-monospace,monospace;--sans:"Plex Mono",ui-monospace,monospace;color-scheme:dark;
  --track:#0e2b4d;--raised:#163b66;--glass:rgba(11,35,64,.95);--card-bd:1px solid var(--ink);--r-card:0px;--r-btn:0px;--r-ib:0px;--r-sheet:0px;--shadow:none;--shadow-sm:none;--press:transparent}
:root[data-theme=riso]{--bone:#f2ead8;--paper:#ebe1c9;--ink:#1c1a2e;--mute:#565370;--hair:#cfc4a8;--bad:#d01f55;--hover:#2f6bff;--serif:Bricolage,Outfit,sans-serif;--sans:Bricolage,Outfit,sans-serif;color-scheme:light;
  --track:#e6dbc0;--raised:#fffaf0;--glass:rgba(242,234,216,.97);--card-bd:3px solid var(--ink);--r-card:12px;--r-btn:8px;--r-ib:22px;--r-sheet:16px;
  --shadow:5px 5px 0 var(--ink);--shadow-sm:3px 3px 0 var(--ink);--press:var(--ink)}
:root[data-theme=garden]{--bone:#0f140f;--paper:#141b15;--ink:#e4e2cf;--mute:#9aa791;--hair:#2f3c30;--bad:#e8875f;--hover:#c8903f;color-scheme:dark;
  --track:#1a231b;--raised:#253226;--glass:rgba(15,20,15,.94);--shadow:0 10px 30px rgba(0,0,0,.6);--shadow-sm:0 4px 14px rgba(0,0,0,.5);--press:#7a5520}

/* ---------- base: a game screen, not a page ---------- */
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bone);color:var(--ink);font:16px/1.4 var(--sans);-webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none;touch-action:manipulation}
*:not(input):not(textarea){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
*{-webkit-tap-highlight-color:transparent}
img,svg,a{-webkit-user-drag:none}
button{font:inherit;color:inherit}
input{font-size:16px}
button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
[hidden]{display:none!important}

.app{position:fixed;inset:0}
.board{position:absolute;inset:0;background:var(--paper);overflow:hidden}
canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}
.tip{position:absolute;pointer-events:none;z-index:4;font:600 14px/1.2 var(--sans);background:var(--bone);color:var(--ink);border:1.5px solid var(--ink);border-radius:10px;padding:6px 10px;white-space:nowrap;box-shadow:var(--shadow-sm)}
.tip.bad{color:var(--bad);border-color:var(--bad)}

/* floating pieces */
.card{background:var(--glass);border:var(--card-bd);border-radius:var(--r-card);box-shadow:var(--shadow)}
.ib{width:44px;height:44px;flex:none;border-radius:var(--r-ib);border:var(--card-bd);background:var(--glass);box-shadow:var(--shadow-sm);display:grid;place-items:center;cursor:pointer;padding:0;color:var(--ink);transition:transform .08s}
.ib svg{width:22px;height:22px}
.ib:active{transform:scale(.93)}
@media(hover:hover){.ib:hover{background:var(--raised)}}
:root[data-theme=atlas] .ib,:root[data-theme=riso] .ib{border-width:2px;border-style:solid}

/* top right: always there (title and game) */
.corner{position:fixed;top:calc(12px + var(--st));right:calc(12px + var(--sr));display:flex;gap:8px;z-index:9}
.tm{position:relative}
.thememenu{position:absolute;top:52px;right:0;margin:0;padding:6px;list-style:none;min-width:200px}
.thememenu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:400 15px var(--sans);color:var(--ink);background:none;border:0;border-radius:max(0px,calc(var(--r-btn) - 4px));padding:10px 12px;cursor:pointer}
@media(hover:hover){.thememenu button:hover{background:var(--track)}}
.thememenu button[aria-checked=true]{background:var(--raised);font-weight:600}
.chip{display:inline-flex;border:1px solid var(--hair);flex:none;border-radius:3px;overflow:hidden}
.chip i{width:10px;height:18px;display:block}
#sound[aria-pressed=false] .on-i,#sound[aria-pressed=true] .off-i{display:none}

/* which screen is up */
[data-screen=title] .hud,[data-screen=title] .hud-only{display:none!important}

/* ---------- the HUD (phone first) ---------- */
.hud-top{position:absolute;top:calc(12px + var(--st));left:calc(12px + var(--sl));right:calc(12px + var(--sr));display:flex;justify-content:center;pointer-events:none;z-index:3}
.hud-top>*{pointer-events:auto}
.clockcard{display:flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:var(--r-ib);background:var(--ink);color:var(--bone);box-shadow:var(--shadow-sm)}
.clockcard .cc-row,.clockcard .tbar,.clock .left{display:none}
.clock{margin:0;font:600 21px/1 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.corner .lefty{position:fixed;left:calc(12px + var(--sl));top:calc(12px + var(--st))}
.corner .lefty2{position:fixed;left:calc(64px + var(--sl));top:calc(12px + var(--st))}

.right{position:absolute;left:calc(12px + var(--sl));right:calc(12px + var(--sr));top:calc(66px + var(--st));display:flex;flex-direction:column;gap:10px;z-index:3;pointer-events:none}
.right>*{pointer-events:auto}
.rankcard{background:none;border:0;box-shadow:none;padding:0}
.rh,.unmet{display:none}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:flex;align-items:center;gap:10px;height:38px;padding:0 10px;border-radius:max(0px,calc(var(--r-btn) - 4px));font-size:15px}
.rows .sw{display:inline-flex;flex:none;color:var(--k)}
.rows .sw svg{display:block}
.rows .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rows .bar{width:56px;height:6px;border-radius:3px;background:var(--track);overflow:hidden;flex:none}
.rows .bar i{display:block;height:100%;background:var(--k)}
.rows .n{width:34px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;flex:none}
.rows .pc{width:38px;text-align:right;font-size:13px;color:var(--mute);font-variant-numeric:tabular-nums;flex:none}
.rows.long .pc{width:40px;font-size:15px;font-weight:600;color:var(--ink)}
.rows li.me{background:var(--raised);font-weight:600}
.rows li.out{color:var(--mute)}.rows li.out .nm{text-decoration:line-through}
/* phone: the ranking is a strip of chips */
.right .rank{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 8px}
.right .rank::-webkit-scrollbar{display:none}
.right .rank li{flex:none;height:32px;padding:0 8px;gap:4px;margin:0;border-radius:16px;background:var(--glass);border:var(--card-bd);box-shadow:var(--shadow-sm);font-size:13px}
:root[data-theme=atlas] .right .rank li,:root[data-theme=riso] .right .rank li{border-width:2px;border-style:solid}
.right .rank:not(.long){flex-wrap:wrap;justify-content:center;overflow:visible}
.right .rank.long li:first-child{margin-left:auto}.right .rank.long li:last-child{margin-right:auto}
.right .rank .nm,.right .rank .bar,.right .rank .n{display:none}
.right .rank .pc{width:auto;font-size:12.5px;font-weight:600;color:var(--ink)}
.right .rank .sw svg{width:14px;height:14px}
.right .rank li.me{background:var(--k);color:var(--bone)}
.right .rank li.me .sw,.right .rank li.me .pc{color:var(--bone)}
.right .rank li.out{opacity:.55}
.newscard{display:none;padding:12px 16px}
.right.newsopen .newscard{display:block}

.toast{position:absolute;left:50%;transform:translateX(-50%);top:calc(116px + var(--st));width:max-content;max-width:calc(100% - 24px);margin:0;padding:8px 14px;border-radius:20px;background:var(--bone);border:1.5px solid var(--bad);color:var(--bad);font:600 14px/1.3 var(--sans);text-align:center;box-shadow:var(--shadow-sm);z-index:3;pointer-events:none}
.toast.info{border-color:var(--hair);color:var(--ink)}
.toast:empty{display:none}
:root[data-theme=atlas] .toast,:root[data-theme=blueprint] .toast{border-radius:var(--r-btn)}

.people{position:absolute;left:calc(12px + var(--sl));right:calc(12px + var(--sr));bottom:calc(12px + var(--sb));padding:14px 18px 16px;display:flex;flex-direction:column;gap:10px;z-index:3}
.prow{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.label{margin:0;font:400 13px var(--sans);color:var(--mute)}
.big{margin:0;font:600 44px/1 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.big .of{font:400 18px var(--sans);color:var(--mute)}
.hint{margin:0;font:600 16px/1.25 var(--sans);text-align:right;max-width:60%;min-height:1.25em}
.meter{height:12px;border-radius:6px;background:var(--track);overflow:hidden}
.meter i{display:block;height:100%;width:0;border-radius:6px;background:var(--me)}
:root[data-theme=blueprint] .meter,:root[data-theme=blueprint] .meter i{border-radius:0}
.pfoot{margin:0;display:flex;justify-content:space-between;gap:12px;font:400 13px var(--sans);color:var(--mute)}
.pfoot b{color:var(--ink);font-weight:600}
.keys{display:none}
@media(hover:hover) and (pointer:fine){.keys{display:inline}.modeline{display:none}}

.zoom{position:absolute;right:0;bottom:calc(100% + 12px);display:flex;flex-direction:column;width:48px;overflow:hidden;border-radius:var(--r-ib)}
.zoom button{height:48px;border:0;background:transparent;font:600 22px/1 var(--sans);display:grid;place-items:center;cursor:pointer;color:var(--ink);padding:0}
.zoom button svg{width:20px;height:20px}
.zoom button+button{border-top:1px solid var(--hair)}
@media(hover:hover){.zoom button:hover{background:var(--raised)}}
@media(pointer:coarse){.zoom .zfine{display:none}.zoom button+button{border-top:0}}
@media(pointer:fine){.zoom .zcoarse{display:none}}

/* ---------- desktop and tablets: cards in the corners ---------- */
@media(min-width:900px) and (min-height:560px){
  .hud-top{left:calc(24px + var(--sl));right:auto;top:calc(24px + var(--st));justify-content:flex-start}
  .clockcard{height:auto;width:270px;flex-direction:column;align-items:stretch;gap:6px;padding:14px 20px 16px;border-radius:var(--r-card);background:var(--glass);color:var(--ink);border:var(--card-bd);box-shadow:var(--shadow)}
  .clockcard .cc-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .clockcard .tbar{display:block}
  .clock .left{display:inline;font:400 16px var(--sans);color:var(--mute)}
  .clock{font-size:46px}
  .wordmark{font:600 24px/1 var(--serif);letter-spacing:-.01em}
  .modechip{font:600 12px var(--sans);padding:4px 9px;border-radius:10px;background:var(--track);color:var(--mute);white-space:nowrap}
  .tbar{height:6px;border-radius:3px;background:var(--track);overflow:hidden}.tbar i{display:block;height:100%;background:var(--ink)}
  .corner{top:calc(24px + var(--st));right:calc(24px + var(--sr))}
  .corner .lefty,.corner .lefty2{position:static}
  .right{left:auto;right:calc(24px + var(--sr));top:calc(84px + var(--st));width:300px;max-height:calc(100% - 120px)}
  .rankcard{background:var(--glass);border:var(--card-bd);border-radius:var(--r-card);box-shadow:var(--shadow);padding:14px 18px 10px;overflow:auto;min-height:0}
  .rh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:15px}.rh span{font-size:13px;color:var(--mute)}
  .unmet{display:block;margin:6px 0 4px;font-size:13px;color:var(--mute)}
  .right .rank{display:block;overflow:visible;padding:0}
  .right .rank li{height:38px;padding:0 8px;margin:0 -8px;border-radius:max(0px,calc(var(--r-btn) - 4px));background:none;border:0;box-shadow:none;font-size:15px}
  .right .rank .nm,.right .rank .bar,.right .rank .n{display:revert}
  .right .rank .nm{display:block}.right .rank .bar{display:block}
  .right .rank .pc{font-weight:400;color:var(--mute);width:38px}
  .right .rank.long .pc{font-weight:600;color:var(--ink);font-size:15px}
  .right .rank li.me{background:var(--raised);color:var(--ink)}
  .right .rank li.me .sw{color:var(--k)}.right .rank li.me .pc{color:var(--mute)}
  .right .rank.long li.me .pc{color:var(--ink)}
  .right .rank li.out{opacity:1}
  .newscard{display:block;padding:14px 18px}
  #newsbtn{display:none}
  .toast{top:calc(28px + var(--st));font-size:15px;padding:10px 16px;max-width:520px}
  .people{left:calc(24px + var(--sl));right:auto;bottom:calc(24px + var(--sb));width:360px}
  .big{font-size:52px}
  .zoom{position:fixed;right:calc(24px + var(--sr));bottom:calc(24px + var(--sb))}
}
/* phone on its side: the panel goes to the bottom left, compact */
@media(max-height:559px) and (orientation:landscape){
  .people{right:auto;width:300px;padding:10px 14px 12px;gap:6px}
  .big{font-size:32px}.hint{font-size:14px}.pfoot{display:none}
  .zoom{position:fixed;right:calc(12px + var(--sr));bottom:calc(12px + var(--sb))}
  .right{left:auto;width:auto;max-width:calc(50% - 40px);top:calc(12px + var(--st));right:calc(112px + var(--sr))}
  .toast{top:auto;bottom:calc(12px + var(--sb));left:auto;right:calc(76px + var(--sr));transform:none;max-width:calc(100% - 420px)}
  .hud-top{justify-content:flex-start;left:calc(116px + var(--sl))}
  .stack .rl{display:none}
}

/* ---------- sheets: title, your kingdom, results, pause ---------- */
.sheet{position:fixed;inset:0;z-index:6;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.sheet.dim{z-index:10;background:rgba(0,0,0,.34);pointer-events:auto;align-items:center;padding:16px calc(16px + var(--sr)) calc(16px + var(--sb)) calc(16px + var(--sl))}
.sheet.top{z-index:11}
.sheet-in{pointer-events:auto;width:100%;max-width:560px;max-height:calc(100% - 110px - var(--st));overflow:auto;overscroll-behavior:contain;
  background:var(--bone);border:var(--card-bd);border-bottom:0;border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.16);
  padding:24px calc(20px + var(--sr)) calc(24px + var(--sb)) calc(20px + var(--sl));display:flex;flex-direction:column;gap:16px}
:root[data-theme=riso] .sheet-in{box-shadow:none}
.sheet-in>*{flex-shrink:0}
.sheet.dim .sheet-in{max-width:440px;max-height:100%;border-radius:var(--r-sheet);border-bottom:var(--card-bd);padding:24px 20px;box-shadow:var(--shadow)}
.sheet.center{align-items:center;padding:16px}
.sheet.center .sheet-in{border-radius:var(--r-sheet);border-bottom:var(--card-bd);max-height:100%;box-shadow:var(--shadow)}
@media(min-width:900px) and (min-height:560px),(max-height:559px) and (orientation:landscape){
  .sheet:not(.dim):not(.center){align-items:center;justify-content:flex-start;padding:16px 0 16px calc(32px + var(--sl))}
  .sheet:not(.dim):not(.center) .sheet-in{max-width:460px;max-height:100%;border-radius:var(--r-sheet);border-bottom:var(--card-bd);box-shadow:var(--shadow);padding:24px}
}
.sheet h1,.sheet h2{margin:0;font:600 44px/1 var(--serif);letter-spacing:-.015em}
.sheet h2{font-size:34px}
:root[data-theme=atlas] .sheet h1,:root[data-theme=atlas] .sheet h2,:root[data-theme=atlas] .wordmark{font-weight:400;font-style:italic;letter-spacing:0}
:root[data-theme=blueprint] .sheet h1,:root[data-theme=blueprint] .sheet h2,:root[data-theme=blueprint] .wordmark{font-weight:500;letter-spacing:-.03em}
:root[data-theme=riso] .sheet h1,:root[data-theme=riso] .sheet h2,:root[data-theme=riso] .wordmark{font-weight:700;letter-spacing:-.035em}
.lede{margin:6px 0 0;font:400 15px/1.4 var(--sans);color:var(--mute)}

.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.modes button{min-height:108px;padding:12px;border-radius:calc(var(--r-btn) + 2px);text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer;background:var(--track);border:2px solid transparent;color:var(--ink);transition:transform .08s}
.modes button svg{width:24px;height:24px;margin-bottom:2px}
.modes b{font:600 16px var(--sans)}
.modes small{font:400 12px/1.25 var(--sans);color:var(--mute)}
.modes button.on{background:var(--raised);border-color:var(--ink);box-shadow:0 4px 0 var(--ink)}
:root[data-theme=blueprint] .modes button.on{box-shadow:none}
.modes button:active{transform:translateY(2px)}
.modenote{margin:-6px 0 0;font:400 13px/1.4 var(--sans);color:var(--mute);min-height:2.8em}

.row{display:flex;align-items:center;gap:12px}
.rl{width:84px;flex:none;font:400 14px var(--sans);color:var(--mute)}
.seg{flex:1;min-width:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:4px;background:var(--track);border-radius:max(0px,calc(var(--r-btn) - 2px))}
.seg button{min-height:40px;border:0;border-radius:max(0px,calc(var(--r-btn) - 6px));background:transparent;font:400 15px var(--sans);color:var(--ink);cursor:pointer;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seg button.on{background:var(--raised);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.2)}
:root[data-theme=blueprint] .seg button.on{box-shadow:inset 0 0 0 1px var(--ink)}
:root[data-theme=riso] .seg button.on{box-shadow:inset 0 0 0 2px var(--ink)}
.custom input{width:90px;height:44px;padding:0 10px;border:1px solid var(--hair);border-radius:var(--r-btn);background:var(--raised);color:var(--ink)}

.krow{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px 10px 10px;border:1.5px solid var(--hair);border-radius:calc(var(--r-btn) + 2px);background:none;text-align:left;cursor:pointer;color:var(--ink)}
.kbadge{width:44px;height:44px;flex:none;border-radius:max(0px,calc(var(--r-btn) - 2px));background:var(--me);display:grid;place-items:center}
.kbadge span{width:30px;height:30px;border-radius:50%;background:var(--bone);display:grid;place-items:center}
.kt{flex:1;min-width:0;display:flex;flex-direction:column}
.kt b{font:600 16px var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kt small{font:400 13px var(--sans);color:var(--mute)}
.kedit{display:flex;align-items:center;gap:2px;font:600 14px var(--sans)}
.kedit svg{width:18px;height:18px}

.gs summary,.howto summary{display:flex;align-items:center;gap:8px;min-height:44px;font:600 14px var(--sans);color:var(--ink);cursor:pointer;list-style:none}
.gs summary::-webkit-details-marker,.howto summary::-webkit-details-marker{display:none}
.gs summary::after,.howto summary::after{content:"+";margin-left:auto;font-size:20px;line-height:1;color:var(--mute)}
.gs[open] summary::after,.howto[open] summary::after{content:"\2212"}
.gs,.howto{border-top:1px solid var(--hair)}
.gs[open]>div{display:flex;flex-direction:column;gap:12px;padding:4px 0 12px}
.gsnote{font:400 13px var(--sans);color:var(--mute)}.gsnote:not(:empty)::before{content:"\00b7";margin-right:8px}
.rules{margin:0 0 8px;padding-left:1.2em;font:400 14px/1.45 var(--sans);color:var(--ink)}
.rules li{margin-bottom:6px}

.go{width:100%;flex:none;min-height:58px;border:0;border-radius:calc(var(--r-btn) + 2px);background:var(--ink);color:var(--bone);font:600 18px var(--sans);box-shadow:0 4px 0 var(--press);
  display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;text-decoration:none;transition:transform .08s,box-shadow .08s}
.go svg{width:18px;height:18px}
.go:active{transform:translateY(3px);box-shadow:0 1px 0 var(--press)}
@media(hover:hover){.go:hover{background:var(--hover)}}
:root[data-theme=atlas] .go{font-size:20px;font-weight:400}
:root[data-theme=blueprint] .go{background:transparent;color:var(--ink);border:1px solid var(--ink)}
@media(hover:hover){:root[data-theme=blueprint] .go:hover{background:var(--ink);color:var(--bone)}}
:root[data-theme=riso] .go{background:#ff4f8b;color:#1c1a2e;font-weight:700;border:3px solid #1c1a2e;box-shadow:4px 4px 0 #1c1a2e}
:root[data-theme=riso] .go:active{transform:translate(3px,3px);box-shadow:1px 1px 0 #1c1a2e}
@media(hover:hover){:root[data-theme=riso] .go:hover{background:#ff6b9e}}
:root[data-theme=garden] .go{background:#c8903f;color:#0f140f}
@media(hover:hover){:root[data-theme=garden] .go:hover{background:#d9a24f}}
.go.small{min-height:44px;width:auto;padding:0 18px;font-size:15px}
.btn2{min-height:50px;flex:none;border:1.5px solid var(--hair);border-radius:calc(var(--r-btn) + 2px);background:none;color:var(--ink);font:600 16px var(--sans);cursor:pointer;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.btn2.small{min-height:44px;font-size:15px}
@media(hover:hover){.btn2:hover{border-color:var(--ink)}}
.btn2:active{transform:scale(.97)}

/* your kingdom */
.kprev{align-self:center;width:88px;height:88px;border-radius:50%;background:var(--me);display:grid;place-items:center;box-shadow:0 6px 0 var(--press)}
.kprev span{width:66px;height:66px;border-radius:50%;background:var(--bone);display:grid;place-items:center}
.field{display:flex;flex-direction:column;gap:8px}
.namerow{display:flex;gap:8px}
#pname{flex:1;min-width:0;height:50px;padding:0 14px;font:600 17px var(--sans);border:1.5px solid var(--hair);border-radius:var(--r-btn);background:var(--raised);color:var(--ink)}
.dice{width:50px;height:50px;flex:none;border-radius:var(--r-btn);border:0;background:var(--ink);color:var(--bone);box-shadow:0 3px 0 var(--press);display:grid;place-items:center;cursor:pointer;padding:0}
.dice svg{width:24px;height:24px}
.dice:active{transform:translateY(2px) rotate(-12deg);box-shadow:0 1px 0 var(--press)}
.sws,.embs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.sw-b{height:44px;border-radius:max(0px,calc(var(--r-btn) - 2px));border:0;cursor:pointer;padding:0}
.sw-b.on{box-shadow:0 0 0 3px var(--bone),0 0 0 5px var(--ink)}
.emb-b{height:44px;border-radius:max(0px,calc(var(--r-btn) - 2px));background:var(--track);border:2px solid transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}
.emb-b.on{background:var(--raised);border-color:var(--ink)}

/* round over */
.res{align-items:center;text-align:center}
.reskind{margin:0;font:600 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.medal{width:104px;height:104px;flex:none;border-radius:50%;background:var(--me);display:grid;place-items:center;box-shadow:0 6px 0 var(--press)}
.medal>span{width:80px;height:80px;border-radius:50%;background:var(--bone);display:flex;flex-direction:column;align-items:center;justify-content:center}
.medal b{font:600 32px/1 var(--serif)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}
.tile{padding:12px;border-radius:var(--r-btn);background:var(--track);text-align:left}
.tile b{display:block;font:600 26px/1.1 var(--sans);font-variant-numeric:tabular-nums}
.tile span{font:400 12px var(--sans);color:var(--mute)}
.final{width:100%;text-align:left}
.final li{height:32px}
.res{gap:12px}
.final .pc{display:none}
.res .go,.res .btn2{width:100%}

/* Long: worlds, news, stack */
.stack{display:flex;align-items:center;gap:10px}
.stack .rl{width:auto;font-size:13px}
.stack .seg button{min-height:36px}
#news{list-style:none;margin:0;padding:0;font:400 14px/1.35 var(--sans)}
#news li{padding:6px 0;border-bottom:1px solid var(--hair)}#news li:last-child{border-bottom:0}
#news li small{color:var(--mute);font-size:12px;margin-left:6px}
#news li.bad{color:var(--bad)}
.newscard .label{margin-bottom:4px;font-weight:600;color:var(--ink);font-size:15px}
.slotlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.slotlist li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 16px;border-radius:calc(var(--r-btn) + 2px);background:var(--track)}
.slotlist .t{font:600 17px var(--sans);min-width:0}.slotlist .t small{display:block;color:var(--mute);font:400 13px var(--sans)}
.slotlist .acts{display:flex;gap:6px;flex:none}
.catchbar{height:10px;border-radius:5px;background:var(--track);overflow:hidden}.catchbar i{display:block;height:100%;width:0;background:var(--ink)}
.wordmark em,.sheet h1 em{font-style:italic;font-weight:400;color:var(--mute)}
.clock.lc{font-size:20px}
@media(min-width:900px) and (min-height:560px){.clock.lc{font-size:30px}}
/* the main button stays in reach while the options scroll behind it (short phones, Safari's bars) */
.go.stick{position:sticky;bottom:6px;z-index:1;box-shadow:0 4px 0 var(--press),0 0 0 6px var(--bone)}
.go.stick:active{box-shadow:0 1px 0 var(--press),0 0 0 6px var(--bone)}
:root[data-theme=riso] .go.stick{box-shadow:4px 4px 0 #1c1a2e,0 0 0 6px var(--bone)}
:root[data-theme=blueprint] .go.stick:not(:hover){background:var(--bone)}
@media(max-height:700px) and (orientation:portrait){
  .sheet h1{font-size:36px}.sheet h2{font-size:30px}
  .sheet-in{gap:12px;padding-top:20px}
  .modes button{min-height:76px;padding:10px}.modes small{display:none}
  .modenote{min-height:0}
  .kprev{width:72px;height:72px}.kprev span{width:54px;height:54px}
}
