/* SK-1 — The Sick Kitten master game shell */
.sk-master{max-width:1120px;margin:0 auto;padding:0 1rem 5rem;position:relative;z-index:2}
.sk-master-hero{padding:4rem 0 2rem;text-align:center}
.sk-master-hero .eyebrow{justify-content:center}
.sk-master-hero h1{font-family:var(--sk-font-display);font-size:clamp(2.8rem,8vw,5.8rem);line-height:.92;margin:0;color:var(--sk-stock)}
.sk-master-hero h1 em{color:var(--sk-sepia);font-weight:500}
.sk-master-hero p{max-width:58ch;margin:1.2rem auto 0;color:#d8cfba;line-height:1.75;font-size:1.05rem}
.sk-master-actions{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap;margin-top:1.6rem}
.sk-master-nav{position:sticky;top:var(--sk-nav-h,42px);z-index:90;border-top:1px solid var(--sk-soot);border-bottom:1px solid var(--sk-soot);background:rgba(20,17,15,.96);backdrop-filter:blur(8px)}
.sk-master-nav__inner{max-width:1120px;margin:auto;display:flex;gap:.35rem;overflow:auto;padding:.45rem .7rem;scrollbar-width:none}
.sk-master-nav__inner::-webkit-scrollbar{display:none}
.sk-master-nav a,.sk-master-nav button{white-space:nowrap;font:10px var(--sk-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sk-soot-2);border:1px solid transparent;background:none;padding:.5rem .65rem;text-decoration:none;cursor:pointer}
.sk-master-nav a:hover,.sk-master-nav a[aria-current=page],.sk-master-nav button:hover{color:var(--sk-stock);border-color:var(--sk-soot)}
.sk-master-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;margin-top:1rem}
.sk-master-card{border:var(--sk-border);background:linear-gradient(180deg,var(--sk-ink-2),#120e0a);padding:1.2rem;border-radius:2px}
.sk-master-card h2,.sk-master-card h3{font-family:var(--sk-font-display);margin:0 0 .55rem;color:var(--sk-stock)}
.sk-master-card h2{font-size:1.75rem}.sk-master-card h3{font-size:1.2rem}
.sk-kicker{font:10px var(--sk-font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--sk-sepia);margin-bottom:.6rem}
.sk-muted{color:var(--sk-soot-2);line-height:1.7}
.sk-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:1rem}
.sk-stat{border:1px solid var(--sk-soot);padding:.75rem;background:#15110e}
.sk-stat strong{display:block;font:700 1.15rem var(--sk-font-mono);color:var(--sk-stock)}
.sk-stat span{display:block;margin-top:.25rem;font:9px var(--sk-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sk-soot-2)}
.sk-meter{height:6px;background:#0d0b09;border:1px solid var(--sk-soot);margin-top:.8rem;overflow:hidden}
.sk-meter i{display:block;height:100%;width:0;background:var(--sk-fisik);transition:width .35s ease}
.sk-game-stage{margin-top:1rem;border:1px solid var(--sk-soot);background:#0b0907;min-height:420px;position:relative;overflow:hidden}
.sk-stage-top{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.7rem .8rem;border-bottom:1px solid var(--sk-soot);font:10px var(--sk-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sk-soot-2)}
.sk-stage-top strong{color:var(--sk-stock)}
.sk-world{position:relative;min-height:360px;background:radial-gradient(circle at 50% 45%,#33281d 0,#17120e 48%,#090806 100%);padding:1.4rem}
.sk-room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;max-width:760px;margin:1rem auto}
.sk-room{min-height:120px;border:1px solid #594b3a;background:linear-gradient(145deg,#2b2118,#15100d);color:var(--sk-stock);padding:1rem;text-align:left;cursor:pointer;position:relative;transition:transform .15s,border-color .15s}
.sk-room:hover,.sk-room:focus-visible{transform:translateY(-2px);border-color:var(--sk-sepia);outline:none}
.sk-room.is-current{border-color:var(--sk-fisik);box-shadow:inset 0 0 0 1px var(--sk-fisik)}
.sk-room__number{font:9px var(--sk-font-mono);color:var(--sk-soot-2);letter-spacing:.14em}.sk-room strong{display:block;font:500 1.35rem var(--sk-font-display);margin:.35rem 0}.sk-room small{color:var(--sk-soot-2);line-height:1.4}
.sk-kitten{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:2.7rem;filter:grayscale(1) sepia(.45);transition:left .3s ease,bottom .3s ease}
.sk-scene-note{max-width:620px;margin:1rem auto 0;text-align:center;color:#d8cfba;font:italic 1rem var(--sk-font-body);line-height:1.6}
.sk-hud-actions{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.sk-section{margin-top:3.5rem;scroll-margin-top:110px}.sk-section>header{display:flex;justify-content:space-between;gap:1rem;align-items:end;border-bottom:1px solid var(--sk-soot);padding-bottom:.7rem;margin-bottom:1rem}.sk-section h2{font:600 clamp(1.7rem,4vw,2.4rem) var(--sk-font-display);margin:0}.sk-section header p{margin:0;color:var(--sk-soot-2);font:10px var(--sk-font-mono);letter-spacing:.1em;text-transform:uppercase;text-align:right}
.sk-passport{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.sk-passport-card{min-height:180px}
.sk-badge-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.sk-badge{border:1px solid var(--sk-soot);padding:.55rem .65rem;font:10px var(--sk-font-mono);letter-spacing:.08em;color:var(--sk-soot-2);text-transform:uppercase}.sk-badge.is-earned{border-color:var(--sk-fisik);color:var(--sk-fisik);background:rgba(122,139,84,.08)}
.sk-inventory{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.sk-item{border:1px solid var(--sk-soot);background:#15110e;padding:.85rem;min-height:145px;display:flex;flex-direction:column}.sk-item__art{height:64px;display:grid;place-items:center;font-size:2.3rem;filter:grayscale(1) sepia(.4)}.sk-item strong{font:500 1.05rem var(--sk-font-display);color:var(--sk-stock)}.sk-item small{margin-top:.25rem;color:var(--sk-soot-2);line-height:1.4}.sk-item button{margin-top:auto}
.sk-mercantile{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.sk-shop-item{border:1px solid var(--sk-soot);background:linear-gradient(180deg,#19130f,#0f0c09);padding:1rem}.sk-shop-item .price{font:700 11px var(--sk-font-mono);color:var(--sk-sepia);letter-spacing:.08em}.sk-shop-item .preview{font-size:2.4rem;margin:.7rem 0}.sk-shop-item p{font-size:.92rem;color:#c9c0ad;line-height:1.5}.sk-shop-item .sk-btn{width:100%;margin-top:.5rem}.sk-shop-note{grid-column:1/-1;border-left:2px solid var(--sk-fisik);padding:.7rem 1rem;background:rgba(122,139,84,.05);color:#c9c0ad;line-height:1.6}
.sk-activity{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.sk-log{list-style:none;margin:0;padding:0}.sk-log li{border-bottom:1px solid var(--sk-soot);padding:.65rem 0;display:flex;justify-content:space-between;gap:1rem;font:10px var(--sk-font-mono);letter-spacing:.05em}.sk-log time{color:var(--sk-soot-2)}
.sk-toast{position:fixed;right:1rem;bottom:1rem;z-index:9999;max-width:340px;border:1px solid var(--sk-sepia);background:#17120e;color:var(--sk-stock);padding:.8rem 1rem;font:11px var(--sk-font-mono);line-height:1.5;box-shadow:0 8px 30px #0008}
.sk-zero-token{border-color:var(--sk-fisik)!important;color:var(--sk-fisik)!important}
@media (max-width:800px){.sk-master-grid,.sk-passport,.sk-activity{grid-template-columns:1fr}.sk-stat-grid{grid-template-columns:repeat(2,1fr)}.sk-inventory{grid-template-columns:repeat(2,1fr)}.sk-mercantile{grid-template-columns:1fr 1fr}.sk-room-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.sk-master{padding:0 .75rem 3rem}.sk-master-hero{padding:3rem 0 1.5rem}.sk-stat-grid{gap:.35rem}.sk-stat{padding:.6rem}.sk-stat strong{font-size:1rem}.sk-inventory,.sk-mercantile{grid-template-columns:1fr}.sk-room-grid{grid-template-columns:1fr}.sk-game-stage{min-height:500px}.sk-world{min-height:440px}.sk-kitten{bottom:18px}.sk-section>header{display:block}.sk-section header p{text-align:left;margin-top:.4rem}}
@media (prefers-reduced-motion:reduce){.sk-room,.sk-kitten,.sk-meter i{transition:none!important}}

.sk-merch-bridge{display:flex;justify-content:space-between;gap:1.5rem;align-items:center}.sk-merch-bridge h3{margin-bottom:.4rem}.sk-merch-bridge .sk-hud-actions{margin-top:0}@media(max-width:700px){.sk-merch-bridge{display:block}.sk-merch-bridge .sk-hud-actions{margin-top:1rem;justify-content:flex-start}}

/* ---------------------------------------------------------- film chrome
 * The marquee, the vignette and the bulbs are spelled inline on index.html
 * and nowhere else: house-shell carries .grain but not these, and the only
 * other copies are the reduced-motion overrides in sk-phase2. The master game
 * and the Mercantile are the two pages that load this sheet and both open with
 * the same marquee, so the rules live here rather than in a shared sheet no
 * other page would want. Colours read through the sk tokens with the house
 * literals as fallbacks, the same way house-ia does it.
 */
.vignette{pointer-events:none;position:fixed;inset:0;z-index:49;
  background:radial-gradient(ellipse at center,transparent 52%,rgba(0,0,0,.55) 100%);}
.marquee-bar{position:sticky;top:0;z-index:100;overflow:hidden;white-space:nowrap;
  max-width:100%;padding:8px 0;background:var(--sk-ink-2,#1b1712);
  border-bottom:1px solid var(--sk-soot,#4A4136);}
.marquee-track{display:inline-flex;animation:sk-marquee 26s linear infinite;}
.marquee-track span{display:inline-flex;align-items:center;gap:.6rem;padding:0 2.2rem;
  font:12px var(--sk-font-mono,"Space Mono",monospace);letter-spacing:.12em;
  color:var(--sk-sepia,#C9A876);}
.bulb{width:6px;height:6px;border-radius:50%;display:inline-block;
  background:var(--sk-fisik,#7A8B54);box-shadow:0 0 6px 1px rgba(122,139,84,.9);
  animation:sk-bulb 1.6s ease-in-out infinite;}
@keyframes sk-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes sk-bulb{0%,100%{opacity:1}50%{opacity:.45}}

/* The marquee is decoration and the bulbs flicker; both stand down rather than
 * animate for anyone who has asked the OS for less motion. */
@media (prefers-reduced-motion:reduce){
  .marquee-track,.bulb{animation:none!important;}
}

