@font-face{font-family:"Fraunces";font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/Fraunces-display.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/DMSans-400.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/DMSans-500.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/DMSans-600.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/DMSans-700.woff2) format("woff2")}

:root{
  color-scheme:light;
  --bg:#fcf5e4; --panel:#fff9ea; --panel2:#f6ead0; --ink:#2b1c0a; --ink2:#5b4020; --line:#e1cfa6; --line-soft:#ead9b3;
  --accent:#7d3d00; --accent-ink:#ffffff; --btn:#ffb53a; --btn-ink:#2a1500; --accent-soft:#ffe3a6; --good:#26580f; --warn:#873000;
  --hive:#130b04; --hive-ink:#fff3d6; --hive-ink2:#f1d9a4; --glow:#ffb53a;
  --serif:"Fraunces",Georgia,serif; --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --top:3.25rem; --wrap:68rem; --read:40rem;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#150d06; --panel:#1f140a; --panel2:#2a1b0d; --ink:#f8ecd0; --ink2:#dcc79c; --line:#4a3519; --line-soft:#38270f;
  --accent:#ffb53a; --accent-ink:#2a1500; --btn:#ffb53a; --btn-ink:#2a1500; --accent-soft:#4a3210; --good:#9fdc7a; --warn:#ffa56b;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#150d06; --panel:#1f140a; --panel2:#2a1b0d; --ink:#f8ecd0; --ink2:#dcc79c; --line:#4a3519; --line-soft:#38270f;
  --accent:#ffb53a; --accent-ink:#2a1500; --btn:#ffb53a; --btn-ink:#2a1500; --accent-soft:#4a3210; --good:#9fdc7a; --warn:#ffa56b;
}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--top) + .75rem);-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);overflow-wrap:break-word}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.12;margin:0;font-variation-settings:"SOFT" 100}
a{color:inherit}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:.5rem;top:-4rem;background:var(--btn);color:var(--btn-ink);padding:.6rem 1rem;border-radius:.5rem;z-index:99;font-weight:700}
.skip:focus{top:.5rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:.35rem}
.hero :focus-visible,.hive-panel :focus-visible{outline-color:#ffd77a}

/* topbar */
.topbar{position:sticky;top:0;z-index:50;height:var(--top);display:flex;align-items:center;gap:.9rem;padding:0 max(1rem,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);font-size:.9rem;font-weight:600}
.topbar .home{display:flex;align-items:center;gap:.45rem;text-decoration:none;white-space:nowrap}
.topbar .home svg{color:var(--accent)}
.topnav{display:flex;gap:1rem;overflow:hidden}
.topnav a{text-decoration:none;color:var(--ink2);white-space:nowrap;padding:.4rem 0}
.topnav a:hover{color:var(--ink)}
.spacer{flex:1}
.lang{display:flex;gap:.25rem}
.lang a,.lang span{padding:.25rem .5rem;border-radius:.4rem;text-decoration:none;font-size:.82rem;font-weight:700}
.lang [aria-current]{background:var(--btn);color:var(--btn-ink)}
.lang a{border:1px solid var(--line)}
.icon-btn{width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.icon-btn:hover{border-color:var(--accent);color:var(--accent)}
@media (max-width:760px){.topnav{display:none}.topbar .home span{display:none}}
.progress{position:absolute;left:0;bottom:-1px;height:3px;width:100%;pointer-events:none}
.progress span{display:block;height:100%;width:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
.progress .bee{position:absolute;top:-15px;left:0;width:18px;height:14px;will-change:transform}

/* hero */
.hero{position:relative;min-height:calc(100svh - var(--top));min-height:calc(100dvh - var(--top));display:grid;background:var(--hive);color:var(--hive-ink);isolation:isolate;overflow:hidden}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(14,7,2,.9) 0%,rgba(14,7,2,.72) 36%,rgba(14,7,2,.08) 70%),linear-gradient(0deg,rgba(14,7,2,.78),rgba(14,7,2,0) 40%)}
.hero-in{align-self:end;padding:clamp(1.5rem,4vw,3.5rem) max(1.1rem,env(safe-area-inset-left)) clamp(1.75rem,5vw,3.5rem);max-width:var(--wrap);margin:0 auto;width:100%}
.kicker{margin:0 0 .9rem;font:700 .82rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#ffc65c}
.hero h1{font-size:clamp(2.1rem,6.4vw,4.6rem);max-width:15ch;text-shadow:0 2px 24px rgba(0,0,0,.6);letter-spacing:-.01em}
.hero .deck{max-width:34rem;font-size:clamp(1.05rem,2.6vw,1.3rem);color:var(--hive-ink);margin:1.1rem 0 1.5rem;text-shadow:0 1px 12px rgba(0,0,0,.7)}
.hero .deck b{color:#ffd77a;font-weight:700}
.btn{font:700 1rem/1 var(--sans);display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.4rem;min-height:3rem;border-radius:999px;border:2px solid var(--btn);background:var(--btn);color:var(--btn-ink);cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(255,181,58,.35)}
.btn.ghost:hover{box-shadow:none;border-color:var(--accent);color:var(--accent)}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.btn.ghost{background:transparent;color:inherit;border-color:currentColor}
.hero .btn{background:#ffb53a;border-color:#ffb53a;color:#2a1500}
.hero .btn.ghost{background:transparent;color:#fff3d6;border-color:rgba(255,243,214,.7)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem}
.hero-note{margin-top:1.1rem;font-size:.9rem;color:var(--hive-ink2);max-width:34rem}
@media (max-width:760px){.hero::after{background:linear-gradient(0deg,rgba(14,7,2,.95) 0%,rgba(14,7,2,.78) 46%,rgba(14,7,2,.15) 80%)}.hero h1{max-width:12ch}}

/* sections */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 max(1.1rem,env(safe-area-inset-left))}
section.s{padding:clamp(2.5rem,7vw,5rem) 0}
.s h2{font-size:clamp(1.7rem,4.2vw,2.7rem);margin-bottom:1rem;max-width:22ch}
.s h2 .anchor{text-decoration:none}
.s h2 .anchor:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.lede{font-size:1.2rem;max-width:var(--read);color:var(--ink2)}
.prose{max-width:var(--read)}
.prose p{margin:0 0 1.1rem}
.muted{color:var(--ink2)}

/* game */
.game{padding-top:clamp(2rem,5vw,3.5rem)}
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1.2rem 0 1.4rem;padding:0;list-style:none;counter-reset:st}
.how li{counter-increment:st;background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:.9rem 1rem .9rem 3.1rem;position:relative;font-size:1rem;line-height:1.45}
.how li::before{content:counter(st);position:absolute;left:.8rem;top:.8rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--btn);color:var(--btn-ink);display:grid;place-items:center;font:700 .95rem var(--sans)}
.how b{font-weight:700}
@media (max-width:820px){.how{grid-template-columns:1fr}}
.rounds{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;align-items:center}
.rounds .rlabel{font-weight:700;margin-right:.35rem}
.chip{font:700 .95rem var(--sans);min-height:2.75rem;min-width:2.75rem;padding:.4rem 1rem;border-radius:999px;border:2px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{border-color:var(--btn);background:var(--btn);color:var(--btn-ink)}
.chip .tick{margin-left:.35rem}
.stage{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:900px){.stage{grid-template-columns:1fr}}
.pane{position:relative;border-radius:1.25rem;overflow:hidden;border:1px solid var(--line);background:var(--panel)}
.pane h3{position:absolute;z-index:2;left:.85rem;top:.7rem;font:700 .78rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:.45rem .7rem;border-radius:999px}
.hive-panel{background:var(--hive);border-color:#4a2c0c}
.hive-panel h3{background:rgba(20,10,3,.78);color:#ffd77a}
.map-panel h3{background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.pane canvas{display:block;width:100%;aspect-ratio:1/1;touch-action:pan-y}
.map-panel canvas{cursor:crosshair}
.hive-panel .tools,.map-panel .tools{position:absolute;right:.7rem;top:.6rem;display:flex;gap:.4rem;z-index:2}
.tbtn{font:700 .85rem var(--sans);min-height:2.75rem;padding:.3rem .85rem;border-radius:999px;border:1.5px solid rgba(255,243,214,.55);background:rgba(20,10,3,.7);color:#fff3d6;cursor:pointer}
.tbtn[data-on="true"]{background:#ffb53a;color:#2a1500;border-color:#ffb53a}
.map-panel .tbtn{background:var(--panel);color:var(--ink);border-color:var(--line)}
.map-panel .tbtn[data-on="true"]{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}
.readout{position:absolute;left:.85rem;bottom:.8rem;right:.85rem;display:flex;gap:.6rem;flex-wrap:wrap;pointer-events:none}
.pill{font:700 .95rem var(--sans);padding:.45rem .8rem;border-radius:999px;background:rgba(20,10,3,.78);color:#fff3d6;border:1px solid rgba(255,215,122,.5)}
.pill b{color:#ffd77a}
.map-panel .pill{background:var(--panel);color:var(--ink);border-color:var(--line)}
.map-panel .pill b{color:var(--accent)}
.dock{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin:1rem 0}
.dock .hint{flex:1 1 16rem;margin:0;color:var(--ink2);font-size:1rem}
.result{margin-top:1rem;padding:1.25rem 1.35rem;border-radius:1.25rem;border:2px solid var(--accent);background:var(--panel)}
.result[hidden]{display:none}
.result .big{font:600 clamp(1.5rem,4vw,2.2rem)/1.15 var(--serif);margin:0 0 .5rem}
.result p{margin:.35rem 0;max-width:46rem}
.result .acts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.9rem}
.final{margin-top:1rem;padding:1.4rem;border-radius:1.25rem;background:linear-gradient(135deg,#2a1608,#4a2a0a);color:#fff3d6;border:1px solid #6a4010}
.final[hidden]{display:none}
.final h3{font-size:1.7rem;margin-bottom:.4rem;color:#ffd77a}
.final .btn{background:#ffb53a;border-color:#ffb53a;color:#2a1500}
.final .btn.ghost{background:transparent;color:#fff3d6;border-color:rgba(255,243,214,.7)}

/* facts */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem;margin-top:1.5rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:1.2rem;padding:1.25rem 1.3rem}
.card .num{font:600 2.4rem/1 var(--serif);color:var(--accent);margin:0 0 .5rem}
.card h3{font-size:1.28rem;margin-bottom:.5rem}
.card p{margin:.4rem 0;font-size:1rem}
.card .src{font-size:.88rem;color:var(--ink2)}
.card .src a{text-underline-offset:.15em}
.listen{margin-top:.9rem}
.truth{margin-top:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1rem}
.truth .box{border-radius:1.2rem;padding:1.2rem 1.3rem;border:1px solid var(--line);background:var(--panel)}
.truth .box.m{border-color:var(--good)}
.truth .box.i{border-color:var(--warn)}
.truth h3{font-size:1.2rem;margin-bottom:.6rem}
.truth ul{margin:0;padding-left:1.15rem}
.truth li{margin:.3rem 0}
.src-list{padding-left:1.2rem;font-size:.95rem}
.src-list li{margin:.4rem 0}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{border-bottom:1px solid var(--line);padding:.5rem .6rem;text-align:left;vertical-align:top}
.tscroll{overflow-x:auto}

/* share + footer */
.share-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:1.2rem 0 2rem}
.share-label{font-weight:700;color:var(--ink2);margin-right:.25rem}
.sh{width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;text-decoration:none}
.sh:hover{border-color:var(--accent);color:var(--accent)}
.copied{margin:0 0 0 .5rem;font-size:.9rem;color:var(--ink2)}
.foot{border-top:1px solid var(--line);padding:1.5rem max(1.1rem,env(safe-area-inset-left)) 2.5rem;color:var(--ink2);font-size:.92rem;text-align:center}
.credit{font-size:.82rem;color:var(--ink2);margin:.5rem 0 0}
figure{margin:1.5rem 0}
figure img{display:block;max-width:100%;height:auto;border-radius:1rem}
figcaption{font-size:.88rem;color:var(--ink2);margin-top:.5rem}
.nf{display:grid;place-items:center;min-height:100vh;text-align:center}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* sections with a picture beside the text */
.how-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.how-grid .diagram{position:sticky;top:calc(var(--top) + 1rem);margin:0;max-width:21rem;justify-self:center}
.how-grid .diagram img{border:1px solid var(--line);background:#fff}
@media (max-width:820px){.how-grid{grid-template-columns:1fr}.how-grid .diagram{position:static;max-width:18rem}}
.carp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:start}
.carp .pics{display:grid;gap:1rem}
.carp figure{margin:0}
@media (max-width:820px){.carp{grid-template-columns:1fr}}
.truth-top{display:grid;grid-template-columns:minmax(0,1fr) 11rem;gap:2rem;align-items:center}
.truth-top figure{margin:0}
.truth-top img{border:1px solid var(--line)}
@media (max-width:640px){.truth-top{grid-template-columns:1fr}.truth-top figure{max-width:9rem}}
.src{font-size:.88rem;color:var(--ink2)}
.src a{text-underline-offset:.15em}
.card .num{min-height:2.4rem}
/* phones: the comb stays in view while the map is used */
@media (max-width:900px){
  .hive-panel{position:sticky;top:var(--top);z-index:5}
  .hive-panel canvas{aspect-ratio:16/10}
  .stage{gap:.6rem}
}
@media (max-width:900px) and (max-height:620px){.hive-panel{position:relative;top:auto}}
.hero .btn.ghost:hover,.final .btn.ghost:hover{color:#ffd77a;border-color:#ffd77a}

.hero-pause{position:absolute;right:max(1rem,env(safe-area-inset-right));bottom:1rem;z-index:2}
@media (max-width:760px){.hero-pause{top:1rem;bottom:auto}}
html:not(.js) .game .stage,html:not(.js) .game .dock,html:not(.js) .game .rounds,html:not(.js) .game #where,html:not(.js) .game .credit,html:not(.js) .hero-pause{display:none}
