:root {
  --ink: #2a1c12;
  --muted: #6d5c4d;
  --paper: #f6efe2;
  --cream: #fbf6ec;
  --green: #2f5d3a;
  --green-mid: #3f6d48;
  --green-dark: #1e3d27;
  --gold: #c4a15a;
  --wood: #8a5a32;
  --wood-dark: #4a2814;
  --line: #e4d6bf;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}
* { box-sizing: border-box; }
html, body {
  margin: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
body {
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.6 "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  padding-bottom: calc(64px + var(--safe-bottom));
}
img, svg, video, canvas { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, .mail-chip, .tabbar a {
  font: inherit;
  color: inherit;
}
.skip {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.skip:focus {
  clip: auto;
  width: auto; height: auto;
  inset: 8px auto auto 8px;
  z-index: 40;
  background: #fff;
  padding: 8px 12px;
}
.mast {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  min-height: 44px;
  min-width: 0;
}
.brand {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.pill {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  color: var(--green-dark);
  background: #efe3c4;
  border: 1px solid #e0cf9a;
  border-radius: 999px;
  padding: 6px 10px;
  overflow-wrap: anywhere;
}
.mail-chip, .mast button {
  flex: 0 0 auto;
  min-height: 44px;
  min-width: 44px;
  padding: 0 12px;
  border: 1px solid #d5c7ae;
  border-radius: 999px;
  background: #fffaf1;
  cursor: pointer;
  font-size: 13px;
}
.test-roles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 12px 8px;
}
.test-roles button { min-height: 44px; }
#status:not(:empty) {
  margin: 0 12px 8px;
  padding: 8px 12px;
  background: #fff4d8;
  border: 1px solid #c09b55;
  border-radius: 10px;
  overflow-wrap: anywhere;
}
main {
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: 0 12px 24px;
  min-width: 0;
}

/* 奶油绿弧边遮棚 + 双层木货架 + 立体盲盒 */
.scene {
  height: 400px;
  max-width: 100%;
  min-width: 0;
  border-radius: 18px 18px 12px 12px;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(42, 28, 18, .18);
}
.awning { position: relative; z-index: 2; }
.awning-stripes {
  height: 52px;
  background: repeating-linear-gradient(90deg, var(--green-dark) 0 26px, #efe6cf 26px 40px);
  border-radius: 18px 18px 0 0;
  box-shadow: inset 0 -8px 0 rgba(0,0,0,.12);
}
.awning-scallops {
  height: 16px;
  margin-top: -8px;
  background:
    radial-gradient(circle at 20px 0, var(--green-dark) 12px, transparent 13px) 0 0 / 40px 16px repeat-x;
}
.vine {
  position: absolute;
  left: 10px; top: 6px;
  width: 42px; height: 70px;
  background:
    radial-gradient(circle at 12px 18px, #3f7a46 0 8px, transparent 9px),
    radial-gradient(circle at 28px 34px, #2f5d3a 0 9px, transparent 10px),
    radial-gradient(circle at 8px 50px, #4e8a52 0 7px, transparent 8px);
  pointer-events: none;
}
.shop-interior {
  height: calc(100% - 60px);
  padding: 6px 10px 12px;
  background:
    linear-gradient(180deg, #5a3822 0 18%, #3a2214 18% 100%);
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.wood-sign {
  margin: 2px auto 0;
  max-width: 92%;
  padding: 8px 16px;
  text-align: center;
  font: 700 20px/1.2 "Songti SC", "Noto Serif SC", "STSong", serif;
  letter-spacing: .12em;
  color: #f7ead0;
  background:
    repeating-linear-gradient(90deg, transparent 0 11px, rgba(255,255,255,.05) 11px 12px),
    linear-gradient(#c9a06a, #7a4a24);
  border: 2px solid #3d2412;
  box-shadow: 0 10px 18px rgba(0,0,0,.4), inset 0 1px 0 #ecd2a8;
  transform: rotate(-1.2deg);
  overflow-wrap: anywhere;
}
.shelf-board {
  position: relative;
  border-radius: 3px 3px 6px 6px;
  background:
    linear-gradient(#8b5a34, #5c3418 55%, #3d220f);
  box-shadow: 0 8px 0 #241208, inset 0 2px 0 #c08a52;
  min-width: 0;
}
.shelf-back {
  height: 64px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 14px;
  padding: 8px 16px 10px;
}
.shelf-front {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  padding: 8px 8px 12px;
  min-height: 0;
}
.bay { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.bay-sign {
  margin: 0;
  align-self: center;
  padding: 4px 8px;
  min-height: 28px;
  font-size: 12px;
  font-weight: 700;
  color: #f8eedc;
  background: #2a1810cc;
  border: 1px solid #d7b07a;
  border-radius: 4px;
}
.bay-cn .bay-sign { border-color: #9cba9a; }
.bay-hk .bay-sign { border-color: var(--gold); }
.bay-row {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  min-height: 92px;
}

.pack {
  width: 58px;
  height: 64px;
  position: relative;
  flex: 0 0 auto;
  filter: drop-shadow(2px 4px 2px rgba(0,0,0,.35));
}
.pack-top, .pack-side, .pack-front { position: absolute; display: block; }
.pack-top {
  left: 8px; top: 0;
  width: 46px; height: 14px;
  transform: skewX(-32deg);
  border: 1px solid rgba(0,0,0,.2);
}
.pack-side {
  right: 0; top: 10px;
  width: 12px; height: 52px;
  transform: skewY(-28deg);
  border: 1px solid rgba(0,0,0,.25);
}
.pack-front {
  left: 0; top: 12px;
  width: 48px; height: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  border: 1px solid rgba(0,0,0,.28);
  color: #f6f1e4;
  font-weight: 800;
}
.pack-front b { font-size: 18px; line-height: 1; }
.pack-front i { font-style: normal; font-size: 14px; opacity: .9; }
.pack-cn .pack-front {
  background:
    repeating-linear-gradient(-18deg, transparent 0 6px, rgba(255,255,255,.06) 6px 7px),
    linear-gradient(#4a7a52, #2c5534);
}
.pack-cn .pack-top { background: linear-gradient(#dfe8c8, #8aa56a); }
.pack-cn .pack-side { background: linear-gradient(#2a4a30, #1c3322); }
.pack-hk .pack-front {
  background:
    repeating-linear-gradient(-18deg, transparent 0 6px, rgba(255,255,255,.07) 6px 7px),
    linear-gradient(#e0c27a, #b8893a);
  color: #3a2710;
}
.pack-hk .pack-top { background: linear-gradient(#f3e6c0, #d7b56a); }
.pack-hk .pack-side { background: linear-gradient(#8a5a22, #5c3a12); }

.jar {
  width: 18px; height: 28px;
  border-radius: 6px 6px 4px 4px;
  background: linear-gradient(90deg, #c9b48a, #8d7349);
  box-shadow: inset 2px 0 0 rgba(255,255,255,.25);
}
.j2 { height: 34px; background: linear-gradient(90deg, #d7c4a0, #9a7a4a); }
.j3 { width: 14px; height: 22px; }
.pot {
  width: 22px; height: 18px;
  background: #7a4a2c;
  border-radius: 2px 2px 6px 6px;
  position: relative;
}
.pot i {
  position: absolute;
  width: 12px; height: 16px;
  border-radius: 10px 2px;
  background: #3f7a46;
  bottom: 14px;
}
.pot i:nth-child(2) { left: 8px; transform: scaleX(-1); background: #2f5d3a; }
.pot i:nth-child(3) { left: 5px; width: 10px; height: 12px; background: #5a9a5e; }
.slate {
  width: 36px; height: 42px;
  background: #243028;
  color: #d7e0c8;
  font-size: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid #6d7a68;
  transform: rotate(-4deg);
}
.lamp {
  position: absolute;
  right: 18px; top: -18px;
  width: 16px; height: 28px;
  background: radial-gradient(circle at 50% 70%, #f3e0a8 0 8px, #6a4a22 9px 16px, transparent 17px);
}

.browse {
  margin-top: 18px;
  padding: 18px 14px 12px;
  background:
    repeating-linear-gradient(0deg, transparent 0 7px, rgba(90,60,20,.03) 7px 8px),
    var(--cream);
  border-radius: 18px;
  box-shadow: 0 1px 0 #fff inset, 0 10px 24px rgba(42,28,18,.06);
  min-width: 0;
}
.browse h2 {
  margin: 0;
  text-align: center;
  font: 700 22px/1.3 "Songti SC", "Noto Serif SC", serif;
}
.lead {
  margin: 8px 0 14px;
  text-align: center;
  color: var(--muted);
  font-size: 15px;
}
.browse-tabs, .market-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}
.market-switch { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.browse-tabs button, .market-switch button {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}
.browse-tabs button[aria-selected="true"], .market-switch .is-on {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}
.goods-list { display: grid; gap: 12px; min-width: 0; }
.goods {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  min-width: 0;
}
.goods .pack { width: 64px; height: 70px; }
.goods .pack-front { width: 52px; height: 54px; }
.goods-market {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--green);
}
.goods h3 { margin: 0 0 4px; font-size: 18px; overflow-wrap: anywhere; }
.goods small, .muted { color: var(--muted); display: block; overflow-wrap: anywhere; }
.goods-price { margin: 6px 0; font-size: 15px; }
.goods-price b { font-size: 20px; }
.goods-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.soon-card {
  padding: 16px;
  border-radius: 16px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.soon-blue { background: #eef3f7; }
.soon-gold { background: #f7f0de; }
.soon-card h3 { margin: 0 0 8px; }
.disclose {
  margin-top: 14px;
  font-size: 13px;
  color: var(--muted);
}
.disclose summary {
  cursor: pointer;
  min-height: 44px;
  display: flex;
  align-items: center;
}
.disclose p { margin: 0 0 8px; color: var(--ink); }

.section-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 8px 0 12px;
}
.section-title span { font-size: 13px; color: var(--muted); }
h2 { font-size: 22px; margin: 0; overflow-wrap: anywhere; }
.orders { display: grid; gap: 12px; }
.order, .empty {
  padding: 16px;
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow-wrap: anywhere;
}
.order h3 { margin: 0 0 8px; }
.order small { display: block; color: var(--muted); }
.actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
button.primary, .primary {
  background: var(--green);
  color: #fff;
  border: 1px solid var(--green);
  border-radius: 10px;
  min-height: 44px;
  padding: 0 16px;
  cursor: pointer;
}
button:disabled { opacity: .45; cursor: not-allowed; }
button:not(.primary):not(.mail-chip) {
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 10px;
  min-height: 44px;
  padding: 0 14px;
  cursor: pointer;
}
.browse-tabs button[aria-selected="true"],
.market-switch .is-on,
.tabbar a.is-on {
  background: var(--green-dark);
  color: #f7f1e3;
  border-color: var(--green-dark);
  font-weight: 700;
}
.fields { display: grid; gap: 12px; }
label { display: block; margin: 12px 0; font-size: 14px; }
input, select, textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 11px;
  border: 1px solid #cbb898;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  margin-top: 6px;
  min-width: 0;
}
.inline { display: flex; align-items: flex-start; gap: 10px; }
.inline input { width: auto; margin-top: 7px; flex: 0 0 auto; }
dialog {
  border: 0;
  border-radius: 16px;
  padding: 20px;
  max-width: min(640px, calc(100% - 24px));
  width: calc(100% - 24px);
  max-height: 85vh;
  overflow: auto;
  color: var(--ink);
  background: var(--cream);
}
dialog::backdrop { background: #2a1c12aa; }
#auth label { display: grid; gap: 6px; margin: 10px 0; font-size: 14px; }
#auth input[type="email"], #auth input[type="text"], #auth #authCode {
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  font: inherit;
  width: 100%;
}
.auth-code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}
.auth-code-row button { min-height: 44px; }
#meAccount { display: grid; gap: 12px; margin-top: 12px; }
.close { float: right; min-width: 44px; min-height: 44px; font-size: 24px; }
.checkout-facts, .intro-facts { padding-left: 18px; overflow-wrap: anywhere; }
.holding-list { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 10px; }
.holding {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 12px;
  background: #fff9ef;
  border-radius: 10px;
  overflow-wrap: anywhere;
}
.holding b { display: block; font-size: 12px; color: var(--muted); font-weight: 600; }
.report { white-space: pre-wrap; line-height: 1.9; overflow-wrap: anywhere; }
#admin { margin-top: 20px; }
#adminProducts, #adminHoldings, #claims { display: grid; gap: 8px; margin-top: 12px; }
body [hidden] { display: none !important; }

.tabbar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding: 6px 8px calc(6px + var(--safe-bottom));
  background: #fffaf1;
  border-top: 1px solid var(--line);
}
.tabbar a {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 600;
  border-radius: 10px;
}
.tabbar a.is-on { color: var(--green); background: #eef5ea; }

.entry:focus-visible, button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--green);
  outline-offset: 2px;
}

@media (min-width: 768px) {
  .brand {
    position: static;
    clip: auto;
    width: auto; height: auto;
    overflow: visible;
    font-weight: 800;
    letter-spacing: .04em;
  }
  .scene { height: 420px; }
  .wood-sign { font-size: 26px; padding: 10px 28px; }
  .pack { width: 70px; height: 76px; }
  .goods-list { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1100px) {
  body { padding-bottom: 24px; }
  .mast { padding: 12px 0; }
  main { padding: 0 20px 40px; }
  .scene { height: 430px; }
  .shelf-front { gap: 28px; padding: 10px 28px 16px; }
  .browse { padding: 22px 22px 16px; }
  .goods-list { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tabbar { display: none; }
  body { padding-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; }
  .wood-sign { transform: none; }
}


/* V5: real-time miniature shop; all three archive boxes are independent meshes. */
body{background:#eae6d8;color:#29382f;background-image:radial-gradient(ellipse at 50% 15%,#fffdf2,transparent 65%)}
.mast{max-width:1200px;margin:auto;padding:16px 24px;gap:18px}.mast .brand{position:static;width:auto;height:auto;clip:auto;overflow:visible;font-size:15px;white-space:nowrap;color:#294735}.mast .pill{flex:0 1 auto;margin-left:auto;background:transparent;border:0;color:#66745e;font-size:11px;padding:0}.mast .mail-chip{background:#f7f5e9;border-color:#b3b49b;color:#314d3c}
main{width:min(1200px,100%);padding:0 24px 90px}.game-scene{height:650px;position:relative;border:0;border-radius:28px;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#e4edda,#c5d6bd 75%);box-shadow:inset 0 0 90px #a2b59644;margin:0;isolation:isolate}.game-scene canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}.game-scene canvas:active{cursor:grabbing}.scene-caption{position:absolute;z-index:1;top:24px;left:0;right:0;text-align:center;pointer-events:none;color:#35513e}.scene-caption span{font-size:10px;letter-spacing:.28em}.game-scene .wood-sign{position:static;transform:none;border:0;background:none;box-shadow:none;margin:8px 0 4px;padding:0;font-size:30px;color:#284530;letter-spacing:.06em}.scene-caption p{font-size:12px;margin:0;color:#698067;letter-spacing:.18em}.scene-hint{position:absolute;bottom:68px;left:0;right:0;text-align:center;font-size:11px;color:#516b4e;pointer-events:none}.scene-access{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:12px;white-space:nowrap}.game-scene .scene-access button{min-height:36px;padding:6px 14px;border-radius:20px;border:1px solid #7c92704d;background:#f7f8e3b0;color:#36563d;font-size:12px;box-shadow:none}.game-scene .scene-access button:hover{background:#fffce5;border-color:#617d52}.game-scene .bay-sign{display:inline;padding:0;background:none;border:0;color:inherit;font-size:inherit;box-shadow:none}.browse{margin:24px auto 0;padding:28px;background:#fbf8ee;color:#29372b;border:1px solid #bda57844;border-radius:20px;box-shadow:0 12px 40px #5c55300a}.browse h2{font-size:26px;margin:0}.lead{color:#69725e;font-size:14px}.goods-list{gap:16px}.tabbar{background:#faf9edee;border-color:#bbc6ad;backdrop-filter:blur(16px)}.view:not(#shop){padding:30px}.scene-failed canvas{visibility:hidden}
@media(max-width:600px){.mast{padding:12px 14px;gap:8px;flex-wrap:wrap}.mast .brand{font-size:12px}.mast .pill{order:3;flex-basis:100%;text-align:center;margin:0;font-size:10px}.mast .mail-chip{margin-left:auto;font-size:11px;min-height:36px;padding:0 10px}main{padding:0 10px 80px}.game-scene{height:440px;border-radius:18px}.scene-caption{top:18px}.game-scene .wood-sign{font-size:23px}.scene-caption span{font-size:8px}.scene-caption p{font-size:10px}.scene-access{gap:5px;bottom:16px}.game-scene .scene-access button{padding:6px 9px;font-size:10px}.scene-hint{bottom:57px;font-size:10px}.browse{margin-top:14px;padding:18px 12px;border-radius:17px}.browse h2{font-size:22px}.browse .lead{font-size:12px}}

/* VK MART — BOXGLOW: a warm, real-time miniature boutique. */
body{--ink:#294437;--muted:#7e806e;--paper:#f8f4e9;--green:#365b47;--line:#e7dcc6;background:radial-gradient(ellipse at 80% 0%,#ffeec688,transparent 40%),#f8f4e9;color:var(--ink)}
.mast{max-width:1320px;padding:22px 28px}.mast .brand{font-size:21px;letter-spacing:.06em;font-weight:850;display:flex;align-items:center;gap:10px}.brand-star{color:#b78d39;font-size:28px}.brand small{font-size:9px;letter-spacing:.2em;border-left:1px solid #d2c5a7;padding-left:12px;font-weight:500}.mast .mail-chip{background:#fffcf3;border:1px solid #dacfba;border-radius:30px}.mast .pill{color:#81765f}
main{width:min(1320px,100%)}.game-scene{height:680px;border:1px solid #e7ddc4;border-radius:32px;background:radial-gradient(ellipse at 50% 58%,#fff5cc 0%,#ececd7 40%,#dfe8d7 100%);box-shadow:inset 0 0 100px #fff8df99,0 20px 60px #5e56240a}
.scene-caption{top:33px}.scene-caption>span{font-size:10px;color:#8b7952;letter-spacing:.26em}.game-scene .wood-sign{font-size:43px;letter-spacing:.17em;font-weight:600;color:#2d4b3c;margin-top:10px}.game-scene .wood-sign .caption-star{display:inline;font-size:23px;letter-spacing:0;color:#b59443;vertical-align:top;margin-left:8px}.scene-caption p{color:#788069;letter-spacing:.1em}.scene-hint{color:#7c795f}.game-scene .scene-access button{background:#fffcf0e8;border-color:#d9ceb1;padding:9px 20px;box-shadow:0 4px 14px #96825612}
.browse{background:#fffdf6;border:1px solid #e8dfcc;padding:34px;margin-top:28px;border-radius:28px;box-shadow:0 14px 45px #6e572409}.browse h2{font-size:27px;font-weight:650;letter-spacing:.04em}.lead{color:#888674;margin-top:10px}.market-switch button{border-radius:22px;border-color:#e4decd;background:#f8f6ed}.market-switch button.is-on{background:#365b47;color:#fffbe9;border-color:#365b47}.goods-list article{background:#fffef8;border-color:#e7dfcb;box-shadow:0 8px 26px #645d2608;border-radius:22px}.goods-list article:hover{border-color:#b9bd98}.pack{filter:drop-shadow(0 10px 10px #bca95c33)}.disclose{color:#85816d;font-size:12px}.tabbar{background:#fffdf3ee;border-color:#e0d5bd}.tabbar a.is-on{background:#e9eddd}.section-title h2,#me h2{color:#365b47}#testWalletEntry{padding:18px;background:#edf0df;border:1px solid #d7dfc4;border-radius:15px}.actions a.primary{background:#365b47;color:#fff;padding:10px 15px;border-radius:12px}
@media(max-width:600px){.mast{padding:13px 17px}.mast .brand{font-size:17px;gap:7px}.brand small{font-size:7px;padding-left:7px}.brand-star{font-size:20px}.game-scene{height:450px;border-radius:23px}.scene-caption{top:25px}.game-scene .wood-sign{font-size:31px}.scene-caption>span{font-size:8px}.game-scene .wood-sign .caption-star{font-size:17px}.game-scene .scene-access button{padding:8px 10px;font-size:10px}.browse{padding:23px 14px;border-radius:22px}.browse h2{font-size:22px}.goods-list article{border-radius:16px}.scene-caption p{font-size:10px}.scene-hint{bottom:67px}}

/* BOXGLOW / Dusk forest. Scene and navigation share one continuous space. */
body{background:#142623;color:#e9e4d0}.mast{max-width:none;background:#142623;padding:18px 4%;border-bottom:1px solid #b9c2a51c}.mast .brand{color:#efe9d3}.mast .pill{color:#b9bea6}.mast .mail-chip{background:#253d34;color:#eee5cb;border-color:#7d8b6d}main{width:100%;padding:0 0 80px}.game-scene{height:min(800px,calc(100svh - 80px));min-height:610px;border:0;border-radius:0;background:#192f2c;box-shadow:none}.game-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101f22f5 0%,#142724df 22%,#172c2650 49%,transparent 70%),linear-gradient(0deg,#142623 0%,transparent 20%);pointer-events:none;z-index:1}.scene-caption{top:20%;left:5%;right:auto;width:35%;text-align:left;z-index:2}.scene-caption>span{color:#abbda0;letter-spacing:.24em}.game-scene .wood-sign{color:#f6efda;font-size:clamp(46px,5vw,78px);letter-spacing:.1em;margin:26px 0}.scene-caption p{color:#c0c9b3;line-height:2;font-size:14px;max-width:270px}.scene-menu{margin-top:35px;display:grid;gap:12px;max-width:290px;pointer-events:auto}.scene-menu a{display:flex;justify-content:space-between;align-items:center;min-height:49px;padding:0 20px;color:#eae9d0;background:linear-gradient(90deg,#51725fbd,#47695824);border:1px solid #9aad7938;font-size:14px;letter-spacing:.15em;transition:background .2s,transform .2s}.scene-menu a:hover{background:#4f705ce0;transform:translateX(4px)}.scene-menu a span{font-size:20px;letter-spacing:0}.scene-chapter{display:block;color:#95a58c;font-size:10px;letter-spacing:.22em;margin-top:32px}.scene-access{z-index:3;left:66%;bottom:36px}.game-scene .scene-access button{background:#1c342ee8;color:#ede8cd;border-color:#9ba77770;border-radius:4px;box-shadow:0 6px 24px #0003}.game-scene .scene-access button:hover{background:#46604a;color:#fff7d5}.scene-hint{z-index:2;left:35%;bottom:88px;color:#c1c9ac}.browse{max-width:1150px;margin:32px auto;background:#f5f1e5}.view:not(#shop){max-width:1150px;margin:auto;min-height:60vh}.section-title h2,#me h2{color:#e5e6cd}.tabbar{background:#182f29ee}.tabbar a{color:#c9cfb8}.tabbar a.is-on{background:#3a5545;color:#fff1cc}dialog{color:#29382f}.scene-failed:after{opacity:.5}
@media(max-width:700px){.mast{padding:12px 16px}.game-scene{height:450px;min-height:0;border-radius:0}.game-scene:after{background:linear-gradient(180deg,#142623b0,transparent 45%,#142623)}.scene-caption{top:18px;left:20px;width:calc(100% - 40px)}.scene-caption>span{font-size:7px}.game-scene .wood-sign{font-size:33px;margin:9px 0}.scene-caption p{font-size:10px;max-width:none}.scene-menu,.scene-chapter{display:none}.scene-access{left:50%;bottom:15px;gap:6px}.game-scene .scene-access button{font-size:10px;padding:8px 10px}.scene-hint{left:0;bottom:61px;font-size:10px}.browse{margin:15px 10px;padding:24px 14px}.mast .pill{font-size:10px}}
@media(prefers-reduced-motion:reduce){.scene-menu a{transition:none}}
/* Keep system messages readable against the dusk page. */
#status{color:#4b4933}.empty{color:#425044}#meAccount{color:#e9e4d0}

/* BOXGLOW — honey afternoon, cream light and warm timber. */
body{--green:#877044;--ink:#58452f;background:#f6ecd9;color:#58452f}.mast{background:#fbf3e3;border-color:#d8c6a84d}.mast .brand{color:#655033}.mast .pill{color:#827459}.mast .mail-chip{background:#fff9ed;color:#685233;border-color:#d8bd91}.brand-star{color:#c69645}.game-scene{background:#ead5b2}.game-scene:after{background:linear-gradient(90deg,#f8eddaf7 0%,#f2e4cce3 22%,#efdaba50 49%,transparent 70%),linear-gradient(0deg,#f6ecd9 0%,transparent 20%)}.scene-caption>span{color:#8f7952}.game-scene .wood-sign{color:#684c2b}.scene-caption p{color:#856c48}.scene-menu a{color:#71512e;background:linear-gradient(90deg,#dec08dc9,#f5e4be45);border-color:#b18d514d}.scene-menu a:hover{background:#e4c793}.scene-chapter{color:#927950}.scene-hint{color:#726143}.game-scene .scene-access button{background:#fff3dbed;color:#715b35;border-color:#c7a97199}.game-scene .scene-access button:hover{background:#efd49f;color:#654c25}.browse{background:#fffbf2;border-color:#e4d4b9}.browse h2{color:#655033}.lead{color:#8b7b61}.market-switch button.is-on{background:#a18450;border-color:#a18450}.primary,.actions a.primary{background:#967549}.tabbar{background:#fbf1ddf5;border-color:#d8c19b}.tabbar a{color:#8a704c}.tabbar a.is-on{background:#ead7b2;color:#654c2d}.section-title h2,#me h2,#meAccount{color:#685233}#status{color:#705733}.empty{color:#77634a}
@media(max-width:700px){.game-scene:after{background:linear-gradient(180deg,#f5e6cac9,transparent 45%,#f6ecd9)}}

#intro{max-width:560px;border:1px solid #e2cba4;border-radius:26px;background:#fff9ed;padding:28px;color:#6b5235}#intro .eyebrow{color:#a08352;letter-spacing:.1em}#intro h2{font-size:29px;margin:24px 0 14px;color:#76562f}#introProduct{font-size:17px;line-height:1.95;margin-bottom:26px}.intro-notes{font-size:12px;color:#8b795d;border-top:1px solid #ebdfc9;padding-top:14px}.intro-notes summary{cursor:pointer}.intro-availability{font-size:12px;color:#947b56;margin-top:18px}#intro .close{border-radius:50%;color:#826641}

#miniBinding{max-width:620px;padding:20px;background:#fff8e9;border:1px solid #ddcba9;border-radius:18px;margin:20px 0;color:#685233}#miniBinding small{display:block;margin-top:12px}#miniBindCode{width:100%;font:13px monospace;padding:12px;box-sizing:border-box;margin:12px 0}
