/* Fiddleday site styles: hub, about, privacy, how-to-play, 404.
   Tokens are copied from the games (Pondlight's) so every page shares one visual language. The games keep their CSS inline. */
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --bg:#0F1115; --text:#F2EFE8; --muted:#9A9AA2; --card:#181B22; --line:rgba(255,255,255,.09);
  --accent:#5EC8FF; --acc-t:#5EC8FF; --on-accent:#08202E; --shadow:0 10px 30px rgba(0,0,0,.45); --radius:14px;
  --pink:#FF7A8A; --pink-t:#FF7A8A; --on-pink:#2A0A10; --warn:#FF8A5C; --scrim:rgba(5,8,14,.62); color-scheme:dark;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){ --bg:#F6F4EF; --text:#16181D; --muted:#5C5E66; --card:#ECE8DE; --line:rgba(0,0,0,.12); --acc-t:#0A6EA3; --pink-t:#C23A50; --shadow:0 10px 26px rgba(40,50,60,.18); --warn:#C2410C; color-scheme:light; }
}
:root[data-theme="light"]{ --bg:#F6F4EF; --text:#16181D; --muted:#5C5E66; --card:#ECE8DE; --line:rgba(0,0,0,.12); --acc-t:#0A6EA3; --pink-t:#C23A50; --shadow:0 10px 26px rgba(40,50,60,.18); --warn:#C2410C; color-scheme:light; }
:root[data-theme="dark"]{ color-scheme:dark; }
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{min-height:100vh;min-height:100dvh;font-size:16px;line-height:1.5}
.app{max-width:540px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom))}
a{color:var(--acc-t)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
button,.btn{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-height:44px;min-width:44px;padding:0 18px;font-weight:600;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .15s cubic-bezier(.3,1.5,.5,1),background .2s,opacity .2s;touch-action:manipulation}
button:active,.btn:active{transform:scale(.95)}
.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}

/* wordmark + header */
.brand{display:flex;align-items:center;gap:12px;margin:6px 0 2px;text-decoration:none;color:var(--text)}
.brand svg{flex:none;width:44px;height:44px;border-radius:12px}
.brand b{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.pitch{margin:2px 0 0;font-size:17px;color:var(--muted)}
.today{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:14px 0 4px;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.today b{color:var(--text);font-weight:700}
.chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:14px;color:var(--muted);font-weight:500;white-space:nowrap}
.chip b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}
.flame{display:inline-block;width:16px;height:16px;vertical-align:-3px;margin-right:4px}

/* game cards */
.cards{display:grid;gap:12px;margin:14px 0}
.gcard{--ga:var(--accent);--gt:var(--acc-t);display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;min-height:96px;transition:transform .15s cubic-bezier(.3,1.5,.5,1),border-color .2s;box-shadow:var(--shadow)}
.gcard.pink{--ga:var(--pink);--gt:var(--pink-t)}
.gcard:hover{border-color:var(--ga)}
.gcard:active{transform:scale(.985)}
.gcard:focus-visible{outline:2px solid var(--ga);outline-offset:2px}
.gi{flex:none;width:52px;height:52px;border-radius:14px;background:var(--ga);display:grid;place-items:center;font-size:26px;line-height:1}
.gb{min-width:0;flex:1}
.gn{font-size:19px;font-weight:700;line-height:1.2}
.gd{margin:2px 0 0;font-size:14px;color:var(--muted);line-height:1.35}
.gs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:10px}
.pill{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:700;border:1px solid var(--line);color:var(--text);font-variant-numeric:tabular-nums}
.pill.play{background:var(--ga);color:#10131a;border-color:transparent}
.pill.prog{border-color:var(--ga);color:var(--gt)}
.pill.done{color:var(--gt);border-color:var(--ga)}
.gstreak{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.gstreak b{color:var(--text)}

/* day panel */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;text-align:center;margin:0 0 14px}
.panel[hidden]{display:none}
.panel p{margin:0 0 12px;font-weight:600}
.nextp{text-align:center;font-size:15px;color:var(--muted);margin:18px 0 0}
.nextp b{color:var(--text);font-size:22px;font-variant-numeric:tabular-nums;display:block;margin-top:2px;letter-spacing:.02em}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);max-width:calc(100vw - 32px);text-align:center;background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:.3s cubic-bezier(.3,1.4,.5,1);z-index:60}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* footer + prose pages */
.foot{margin-top:30px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:4px 18px;font-size:14px}
.foot a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none}
.foot a:hover{color:var(--text);text-decoration:underline}
.copy{font-size:14px;color:var(--muted);margin:0}
.prose h1{font-size:28px;line-height:1.2;margin:16px 0 8px;letter-spacing:-.01em}
.prose h2{font-size:19px;margin:26px 0 6px}
.prose p,.prose li{color:var(--muted);font-size:16px}
.prose p{margin:0 0 12px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 12px}
.prose strong,.prose b{color:var(--text)}
.prose .lead{font-size:18px;color:var(--text)}
.prose .back{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-weight:600}
.prose .playrow{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.prose code{font-size:14px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1px 6px;word-break:break-word}
@media (prefers-reduced-motion: reduce){ *{animation:none!important;transition:none!important} }
:root[data-reduced="1"] *{animation:none!important;transition:none!important}

/* ---- tablet + desktop (phones keep everything above exactly as it was) ---- */
.dk-only{display:none}
.gprev{display:none}
.foot a.cur{color:var(--text)}
.hub-blurb{display:none}

/* how-to-play: worked examples */
.prose .ex{display:grid;gap:18px 14px;margin:14px 0 6px;padding:0;list-style:none}
.prose .ex figure{margin:0;text-align:center}
.prose .ex .fd-bsvg{max-width:260px;margin:0 auto;border-radius:12px}
.prose .ex figcaption{margin-top:8px;font-size:14px;line-height:1.45;color:var(--muted);text-align:left}
.prose .ex figcaption b{color:var(--text);display:block;font-size:15px}
.prose .mistakes{margin:6px 0 14px}
.prose .mistakes li{margin:0 0 6px}
.prose h2 .gem{margin-right:6px}

/* archive */
.archive-days{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.archive-days li{display:grid;grid-template-columns:1fr;gap:6px 10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px}
.archive-days .ad{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);font-size:15px}
.archive-days .ad small{display:block;font-weight:500;font-size:13px;color:var(--muted)}
.archive-days a.pl{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;text-decoration:none;color:var(--text);font-size:15px;border-radius:10px}
.archive-days a.pl:hover{background:var(--line)}
.archive-days a.pl small{color:var(--muted);font-size:13px}
.archive-days a.pl .st{color:var(--acc-t);letter-spacing:1px;margin-left:auto;font-size:14px}
.archive-days a.pl.pink .st{color:var(--pink-t)}
.archive-days .fresh{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-left:6px}

@media (min-width:600px){
  .app{max-width:680px}
  .dk-only{display:inline-flex}
  .chip.dk-only{display:inline-block}
  .hband{display:flex;justify-content:space-between;align-items:flex-end;gap:10px 24px;flex-wrap:wrap}
  .hr{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 14px}
  .hr .today{margin:0 0 6px}
  .hr button.primary{min-height:40px;padding:0 16px;margin-bottom:6px}
  .hr button.primary:disabled{opacity:.45;cursor:default}
  #allDone,.nextp{display:none}
  .cards{grid-template-columns:1fr 1fr;gap:18px;margin:22px 0 10px}
  .gcard{display:grid;grid-template-columns:52px 1fr;grid-template-areas:"prev prev" "icon body";gap:14px;align-items:start;padding:16px;min-height:0}
  .gprev{display:block;grid-area:prev;width:min(100%,260px);justify-self:center}
  .gprev .fd-bsvg{border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.25)}
  .gi{grid-area:icon}
  .gb{grid-area:body}
  .prose .ex{grid-template-columns:repeat(3,1fr)}
  .archive-days li{grid-template-columns:150px minmax(0,1fr) minmax(0,1.5fr)}
}
@media (min-width:960px){
  .app.hub{max-width:1040px;padding-top:max(26px,env(safe-area-inset-top))}
  .app.prose{max-width:860px}
  .app.hub .brand b{font-size:38px}
  .app.hub .brand svg{width:52px;height:52px;border-radius:14px}
  .app.hub .pitch{font-size:20px;margin-top:4px}
  .hband{margin-bottom:4px}
  .cards{gap:24px;margin:26px 0 14px}
  .gcard{grid-template-columns:minmax(0,230px) 1fr;grid-template-rows:auto 1fr;grid-template-areas:"prev icon" "prev body";gap:10px 22px;padding:20px}
  .gprev{width:100%;align-self:center}
  .gi{width:56px;height:56px;font-size:28px}
  .gn{font-size:24px}
  .gd{font-size:15px;margin-top:6px}
  .gs{margin-top:14px}
  .app.hub .foot{margin-top:40px}
}
.prose h3{font-size:16px;margin:18px 0 6px;color:var(--text)}
.archive-days a.pl .nm{white-space:nowrap;font-weight:600}
