/* Crystal Hunter: game layer + Teacher Reed slots + print rules. Self-contained. */
.mono{font-family:var(--mono)}

/* HUD in the header */
.hud{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#fff;background:var(--navy-2);border:2px solid #0d1f35;border-radius:10px;padding:3px 10px;font-family:var(--mono);font-size:.78rem;font-weight:700;white-space:nowrap}
.hud-bar{display:inline-block;width:54px;height:8px;background:#0d1f35;border-radius:3px;overflow:hidden;border:1px solid #5a7aa0}
.hud-bar i,.hud-big i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3df0ff,#62ff9a);transition:width .5s steps(10)}
.hud-lv b{color:#ffd23f}
.hud-snd{min-width:0;padding:5px 9px}
.hud-snd::before{content:"\266A  "}
.hud-big{height:14px;background:#0d1f35;border:2px solid #0d1f35;border-radius:5px;overflow:hidden;margin:6px 0 16px}
@media (max-width:620px){.hud-bar{width:30px}.hud-xp{display:none}}

/* quest board */
.game-sec{background:linear-gradient(180deg,#14284a,#1b3a63);color:#e7f1fb}
.game-sec h2,.game-sec h3{color:#fff}
.game-sec .eyebrow{color:#3df0ff;font-family:var(--mono)}
.game-sec .lead{color:#c9dcf0}
.game-sec .small{color:#b6c9de}
.game-sec a{color:#9fe8ff}
.quests{list-style:none;padding:0;margin:0 0 .6em;display:grid;gap:8px}
.quests li{display:flex;align-items:center;gap:12px;background:#0d1f35;border:2px solid #36588a;border-radius:10px;padding:10px 14px}
.quests li.done{border-color:#62ff9a;background:#0f2f2a}
.q-box{flex:none;width:24px;height:24px;border:3px solid #9fe8ff;border-radius:4px;display:grid;place-items:center;color:#62ff9a;font-weight:900}
.quests li.done .q-box{border-color:#62ff9a;background:#0b1a12}
.q-txt{flex:1}
.q-n{font-family:var(--mono);font-size:.85rem;color:#ffd23f;white-space:nowrap}
.q-foot{font-size:.92rem;color:#b6c9de;margin:.4em 0 1.2em}
.achs{list-style:none;margin:0 0 1em;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}
.ach{background:#0d1f35;border:2px solid #36588a;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;filter:grayscale(1);opacity:.62}
.ach.got{filter:none;opacity:1;border-color:#ffd23f;box-shadow:0 0 0 2px #0d1f35,0 0 14px rgba(255,210,63,.25)}
.ach-ic{font-size:1.5rem;line-height:1.2}
.ach b{color:#fff;font-size:.95rem}
.ach small{color:#b6c9de;font-size:.78rem;line-height:1.3}
.game-opts{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:1em 0 .6em}
.game-sec .toggle{background:#0d1f35;color:#fff;border-color:#9fe8ff}
.game-sec .toggle[aria-pressed="true"]{background:#9fe8ff;color:#0d1f35}
#level-banner{background:#fff8ee;border-left:5px solid var(--accent);padding:10px 14px;border-radius:0 12px 12px 0;margin-top:14px;color:var(--ink)}

/* treasure map */
.tmap-wrap{overflow-x:auto;border-radius:14px;-webkit-overflow-scrolling:touch}
.tmap{display:block;min-width:620px;width:100%;height:auto}
.tmap a{cursor:pointer}
.tmap a:focus-visible circle,.tmap a:focus-visible rect{stroke:#e98b3a;stroke-width:5}
.tm-pulse{animation:tmp 1.4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes tmp{50%{transform:scale(1.18);opacity:.4}}

/* boss battle */
.boss-card{margin:16px 0;padding:16px;border-radius:14px;background:linear-gradient(180deg,#14284a,#1b3a63);color:#e7f1fb;border:3px solid #0d1f35;box-shadow:0 6px 0 #0d1f35}
.boss-card h4{color:#fff;margin:0 0 .2em}
.boss-card .zh{font-size:.8em;color:#9fe8ff;font-family:var(--sans)}
.boss-card .small{color:#b6c9de;margin:0}
.boss-top{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.bsprite{flex:none;width:84px;height:84px}
.bsprite.hit{animation:bhit .4s steps(4)}
@keyframes bhit{25%{transform:translateX(-6px) rotate(-4deg);filter:brightness(2)}75%{transform:translateX(6px) rotate(4deg)}}
.boss-eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#ffd23f}
.boss-card .check{color:#e7f1fb}
.boss-card .btn-primary{background:#9fe8ff;color:#0d1f35}
.boss-hud{display:flex;gap:14px;align-items:center;margin:10px 0 6px}
.hearts{display:flex;gap:4px;font-size:1.4rem;color:#ff5a7a}
.heart.lost{color:#7a8aa0}
.bhp{flex:1;height:16px;background:#0d1f35;border:2px solid #5a7aa0;border-radius:4px;overflow:hidden}
.bhp i{display:block;height:100%;width:100%;background:repeating-linear-gradient(90deg,#ff5a7a 0 8px,#c72f50 8px 10px);transition:width .3s steps(5)}
.btime{height:8px;background:#0d1f35;border-radius:4px;overflow:hidden;margin:4px 0 10px}
.btime i{display:block;height:100%;width:100%;background:#62ff9a}
.btime.low i{background:#ff5a7a}
.bqn{font-family:var(--mono);font-size:.8rem;color:#9fe8ff}
.boss-card .q{background:#0d1f35;border-radius:10px;padding:10px 14px;margin:6px 0 10px}
.boss-card .q p{margin:0 0 .3em}
.boss-card .tgt{font-size:1.1rem;color:#fff}
.boss-card .opts{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.boss-card .opt{background:#fff;color:var(--ink)}
.boss-card .fb.big{font-size:1.1rem;font-weight:700}
.boss-card .revealed{color:var(--ink)}
.boss-card .tv{background:#0d1f35;border-color:#36588a;color:#e7f1fb}

/* toasts + confetti */
.toasts{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(92vw,420px)}
.toast{background:#0d1f35;color:#fff;border:2px solid #9fe8ff;border-radius:10px;padding:8px 14px;font-size:.92rem;box-shadow:0 6px 0 rgba(0,0,0,.25);display:flex;flex-direction:column;animation:tin .25s steps(5);width:100%}
.toast b{font-family:var(--mono);color:#ffd23f}
.toast.gold{border-color:#ffd23f}
.toast.out{opacity:0;transition:opacity .4s}
@keyframes tin{from{transform:translateY(16px);opacity:0}}
.confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:95}

/* check-in */
.send-box{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--tint);border-radius:14px;padding:14px;margin:0 0 14px}
.send-qr{width:140px;height:140px;border-radius:10px;background:#fff;padding:6px}

/* Teacher Reed slots */
.tv{margin:14px 0;padding:14px 16px;border-radius:14px;background:#fffaf0;border:2px solid var(--accent);border-left-width:8px}
.tv-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.tv-badge{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;background:var(--navy-2);color:#ffd23f;border-radius:6px;padding:2px 8px}
.tv-title{color:var(--navy);font-family:var(--serif)}
.tv-media video{width:100%;max-height:420px;border-radius:10px;background:#0d1f35;display:block}
.tv-audio{width:100%;margin:4px 0}
.tv-text{margin:.3em 0 .6em;font-size:1rem}
.tv-note{margin:0 0 .5em;font-size:.85rem;color:var(--muted)}
.tv-note:empty{display:none}
.tv-read summary{cursor:pointer;font-weight:700;color:var(--navy);margin:6px 0}
.tv-actions{display:flex;gap:8px;flex-wrap:wrap}
.tv-btn{border:2px solid var(--navy);background:var(--navy);color:#fff;font:inherit;font-weight:700;font-size:.88rem;padding:5px 14px;border-radius:999px;cursor:pointer}
.tv-btn.ghost{background:transparent;color:var(--navy)}
.tv-btn.on{background:var(--accent-2);border-color:var(--accent-2);color:var(--navy-2)}
.tv-btn:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}

@media (prefers-reduced-motion:reduce){.tm-pulse,.bsprite.hit,.toast{animation:none}.hud-bar i,.hud-big i,.bhp i{transition:none}}

/* print: a section (set, spot, skill ...) prints clean and large, good for tired eyes */
.print-head{display:none}
@media print{
  .bar,.tools,.qbox,.boss-card,.ex-card,footer,.toasts,.confetti,.tv-actions,.tv-media,.spk,.toggle,.btn,.skip,#quests,.send-box button,.mapwrap,.chips{display:none!important}
  .pr-hide{display:none!important}
  body{background:#fff!important;color:#000!important;font-size:14pt;line-height:1.55}
  body.printing .tv{border:1px solid #999;border-left:6px solid #999;background:#fff;break-inside:avoid}
  body.printing .tv-badge{background:#fff;color:#000;border:1px solid #000}
  body.printing .print-head{display:block;font-family:var(--sans);font-size:10pt;border-bottom:2px solid #000;margin-bottom:10pt;padding-bottom:4pt}
  body.printing .tv-read>summary{display:none}
  body.printing .tv-read{display:block}
  body.printing .tv-read>.tv-text{display:block}
  body.printing details>summary{font-weight:700}
  body.printing .set-body,body.printing .wrap{max-width:none;padding:0}
  body.printing *{box-shadow:none!important;text-shadow:none!important}
  body.printing .section{padding:0!important;background:#fff!important}
  body.printing a{color:#000;text-decoration:none}
  body.printing h2,body.printing h3,body.printing h4{break-after:avoid;color:#000}
  body.printing .wcard,body.printing .spot,body.printing .skill,body.printing .card{break-inside:avoid}
}

/* slot colours must stay readable inside dark sections */
.tv{color:var(--ink)}
.tv-note{color:var(--muted)}
.boss-card .tv{color:#e7f1fb}
.boss-card .tv-title,.boss-card .tv-read summary{color:#fff}
.boss-card .tv-note{color:#9db4cf}
.boss-card .tv-btn{background:#9fe8ff;border-color:#9fe8ff;color:#0d1f35}
.boss-card .tv-btn.ghost{background:transparent;color:#9fe8ff}
@media print{body.printing .tv-note{display:none}}
.hud-snd,.hud{white-space:nowrap}
