:root{
  --ss-navy:#002d55;
  --ss-blue:#1b4e75;
  --ss-blue-mid:#416f91;
  --ss-blue-light:#88a8bf;
  --ss-gold:#e3a724;
  --ss-gold-light:#f8ea86;
  --ss-paper:#efe3c5;
  --ss-paper-light:#fff8e8;
  --ss-ink:#332514;
  --ss-green:#315342;
  --ss-shadow:0 18px 45px rgba(20,12,5,.34);
}

/* The old category tabs were replaced by the elemental navigation. Keep them
   out of layout so their paper caps cannot leak above the viewport. */
.spirit-archive-page .toptabs{display:none!important}

/* Shared room identity for the pages that live outside the archive book. */
.ss-room-brand{
  position:fixed;
  z-index:1200;
  top:max(12px,env(safe-area-inset-top));
  left:max(14px,env(safe-area-inset-left));
  width:230px;
  height:62px;
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  pointer-events:auto;
  filter:drop-shadow(0 6px 8px rgba(12,7,2,.34));
}
.ss-room-brand__seal{width:50px;height:50px;flex:0 0 50px;object-fit:contain}
.ss-room-brand__wordmark{width:164px;height:57px;object-fit:contain;object-position:left center}
.ss-room-brand:focus-visible{outline:3px solid var(--ss-gold-light);outline-offset:5px;border-radius:10px}
.ss-room-chip{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border:1px solid rgba(227,167,36,.62);
  border-radius:999px;
  background:linear-gradient(180deg,var(--ss-blue),var(--ss-navy));
  color:#fff3c7;
  font:800 10px/1 Arial,sans-serif;
  letter-spacing:.09em;
  text-transform:uppercase;
}

/* ------------------------------ Game ------------------------------ */
body.spirit-game-page{
  color:#f8efd7;
  background:
    radial-gradient(ellipse at 50% 35%,rgba(65,111,145,.34),transparent 50%),
    linear-gradient(145deg,#001d37,#002d55 48%,#001a30);
  font-family:Arial,sans-serif;
}
.spirit-game-page .ss-room-brand{left:74px;width:210px;height:58px}
.spirit-game-page .ss-room-brand__seal{width:44px;height:44px;flex-basis:44px}
.spirit-game-page .ss-room-brand__wordmark{width:150px;height:52px}
.spirit-game-page .game-book-exit{
  border-color:rgba(227,167,36,.74);
  background:linear-gradient(180deg,rgba(27,78,117,.96),rgba(0,45,85,.98));
  color:var(--ss-gold-light);
  box-shadow:0 5px 18px rgba(0,0,0,.38),inset 0 0 0 1px rgba(248,234,134,.14);
}
.spirit-game-page .phone-game-disabled{display:none!important}
.spirit-game-page #title-screen{
  background:
    linear-gradient(rgba(0,29,55,.90),rgba(0,29,55,.94)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 34px),
    linear-gradient(145deg,#1b4e75,#001a30);
  gap:34px;
}
.spirit-game-page #title-screen::before{
  width:min(860px,84vw);
  height:min(560px,68vh);
  border-radius:28px;
  border:1px solid rgba(227,167,36,.28);
  background:
    radial-gradient(circle at 50% 22%,rgba(248,234,134,.16),transparent 48%),
    linear-gradient(145deg,rgba(27,78,117,.42),rgba(0,29,55,.18));
  box-shadow:inset 0 0 0 9px rgba(0,17,32,.23),0 26px 80px rgba(0,0,0,.3);
  animation:titlePulse 7s ease-in-out infinite;
}
.spirit-game-page .game-title-wordmark{
  width:min(500px,70vw);
  max-height:190px;
  display:block;
  margin:0 auto -8px;
  object-fit:contain;
  filter:drop-shadow(0 10px 12px rgba(0,0,0,.44));
}
.spirit-game-page .game-title{
  margin-top:-4px;
  color:var(--ss-gold-light);
  background:none;
  -webkit-text-fill-color:currentColor;
  font-size:18px;
  letter-spacing:.28em;
  text-shadow:0 2px 5px rgba(0,0,0,.4);
  filter:none;
  animation:none;
}
.spirit-game-page .game-subtitle{color:#dce9f1;font-size:13px;letter-spacing:.18em}
.spirit-game-page .mode-selector{gap:13px;max-width:820px;padding:0 16px}
.spirit-game-page .mode-button{
  min-width:160px;
  min-height:108px;
  padding:18px 24px;
  border:1px solid rgba(227,167,36,.62);
  border-radius:12px;
  background:
    linear-gradient(rgba(255,248,232,.93),rgba(230,214,175,.95)),
    url("images/paper.png");
  color:var(--ss-navy);
  box-shadow:0 10px 25px rgba(0,0,0,.27),inset 0 1px 0 rgba(255,255,255,.75);
}
.spirit-game-page .mode-button:hover,.spirit-game-page .mode-button:focus-visible{
  border-color:var(--ss-gold-light);
  background:#fff7dd;
  color:#001f3b;
  box-shadow:0 13px 30px rgba(0,0,0,.32),0 0 0 3px rgba(227,167,36,.2);
}
.spirit-game-page .game-container{
  background:
    radial-gradient(ellipse at 50% 42%,rgba(65,111,145,.24),transparent 50%),
    linear-gradient(180deg,#001d36,#002d55 46%,#001a30);
}
.spirit-game-page .top-bar,
.spirit-game-page .bottom-bar{
  border-color:rgba(227,167,36,.34);
  background:linear-gradient(180deg,rgba(1,36,67,.98),rgba(0,24,46,.98));
  box-shadow:0 4px 18px rgba(0,0,0,.32),inset 0 1px rgba(248,234,134,.10);
}
.spirit-game-page .top-bar{padding-left:300px}
.spirit-game-page .stat-label{color:rgba(233,241,246,.62)}
.spirit-game-page .stat-value.target{color:#f4c95d}
.spirit-game-page .stat-value.chips{color:#8bc5a6}
.spirit-game-page .stat-value.round{color:var(--ss-blue-light)}
.spirit-game-page .stat-value.gold{color:var(--ss-gold-light)}
.spirit-game-page .progress-wrap{background:rgba(255,255,255,.12);border:1px solid rgba(227,167,36,.18)}
.spirit-game-page .progress-bar{background:linear-gradient(90deg,var(--ss-blue-light),var(--ss-gold));box-shadow:0 0 9px rgba(227,167,36,.35)}
.spirit-game-page .joker-row{
  border-color:rgba(227,167,36,.18);
  background:linear-gradient(180deg,rgba(9,48,79,.84),rgba(0,31,59,.7));
}
.spirit-game-page .joker-card{border-color:rgba(227,167,36,.42);background:linear-gradient(145deg,rgba(248,234,134,.12),rgba(27,78,117,.28))}
.spirit-game-page .joker-name{color:var(--ss-gold-light)}
.spirit-game-page .play-area{
  margin:10px 18px 0;
  border:1px solid rgba(227,167,36,.22);
  border-radius:22px 22px 8px 8px;
  background:
    radial-gradient(ellipse at center,rgba(96,143,174,.20),transparent 60%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 32px),
    rgba(0,22,43,.52);
  box-shadow:inset 0 0 40px rgba(0,0,0,.28);
}
.spirit-game-page .hand-container{border-color:rgba(227,167,36,.22);background:linear-gradient(180deg,rgba(12,52,83,.3),rgba(0,25,48,.93))}
.spirit-game-page .bottom-stats{color:rgba(236,241,244,.74)}
.spirit-game-page .btn-play,.spirit-game-page .btn-primary{
  color:#fff6d3;
  background:linear-gradient(180deg,var(--ss-blue-mid),var(--ss-navy));
  border:1px solid rgba(227,167,36,.62);
  box-shadow:0 5px 15px rgba(0,0,0,.28),inset 0 1px rgba(248,234,134,.18);
}
.spirit-game-page .btn-discard{background:linear-gradient(180deg,#80533f,#563124);border:1px solid rgba(244,201,93,.34)}
.spirit-game-page .overlay-screen{background:rgba(0,20,38,.88)}
.spirit-game-page .modal{
  border-color:rgba(227,167,36,.52);
  background:
    linear-gradient(rgba(239,227,197,.96),rgba(215,197,154,.97)),
    url("images/paper.png");
  color:var(--ss-ink);
  box-shadow:var(--ss-shadow),inset 0 0 0 5px rgba(255,249,226,.34);
}
.spirit-game-page .shop-title,.spirit-game-page h2{color:var(--ss-navy)}

/* Phone gameplay is now enabled. The layout keeps the hand and both actions in view. */
html[data-tier="phone"] .spirit-game-page #title-screen.screen.active,
html[data-tier="phone"] .spirit-game-page .screen.active{display:flex!important}
html[data-tier="phone"] .spirit-game-page #game-container.active{display:flex!important}
@media(max-width:700px){
  .spirit-game-page .ss-room-brand{left:62px;top:8px;width:150px;height:44px;gap:5px}
  .spirit-game-page .ss-room-brand__seal{width:34px;height:34px;flex-basis:34px}
  .spirit-game-page .ss-room-brand__wordmark{width:112px;height:39px}
  .spirit-game-page .game-book-exit{top:8px;left:8px;width:40px;height:40px}
  .spirit-game-page #title-screen{justify-content:flex-start;gap:18px;padding:98px 12px 24px;overflow-y:auto}
  .spirit-game-page #title-screen::before{width:calc(100vw - 22px);height:calc(100dvh - 86px);top:calc(50% + 30px);border-radius:18px}
  .spirit-game-page .game-title-wordmark{width:min(330px,83vw);max-height:118px}
  .spirit-game-page .game-title{font-size:13px}
  .spirit-game-page .game-subtitle{font-size:10px;line-height:1.5;letter-spacing:.12em;padding:0 18px}
  .spirit-game-page .mode-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,350px);gap:9px;padding:0}
  .spirit-game-page .mode-button{min-width:0;min-height:82px;padding:11px 8px;font-size:11px}
  .spirit-game-page .game-container{min-height:100dvh;height:100dvh}
  .spirit-game-page .top-bar{height:94px;padding:54px 8px 8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
  .spirit-game-page .top-bar-left,.spirit-game-page .top-bar-right{display:contents}
  .spirit-game-page .stat-item{gap:0}
  .spirit-game-page .stat-label{font-size:7px;letter-spacing:.08em}
  .spirit-game-page .stat-value{font-size:14px}
  .spirit-game-page .progress-wrap{width:105px;height:5px;margin-top:2px}
  .spirit-game-page .joker-row{height:64px;justify-content:flex-start;padding:5px 8px;gap:7px}
  .spirit-game-page .joker-card{width:46px;height:52px;padding:3px}
  .spirit-game-page .joker-emoji{font-size:18px}.spirit-game-page .joker-name{font-size:6px}
  .spirit-game-page .play-area{min-height:72px;margin:6px 7px 0;border-radius:13px 13px 5px 5px}
  .spirit-game-page .hand-container{height:156px;padding:7px 4px 18px;overflow:hidden}
  .spirit-game-page .hand{height:136px}
  .spirit-game-page .card{width:64px;height:87px;margin:0 -9px;padding:0;border-radius:6px}
  .spirit-game-page .card-emoji{font-size:21px}.spirit-game-page .card-name{font-size:6px}.spirit-game-page .card-number-top{font-size:10px}
  .spirit-game-page .bottom-bar{height:58px;padding:5px 7px;gap:6px}
  .spirit-game-page .bottom-bar button{padding:9px 10px;font-size:9px;letter-spacing:.05em}
  .spirit-game-page .bottom-stats{gap:7px;font-size:8px}.spirit-game-page .stat-count{font-size:12px}
  .spirit-game-page .modal{max-width:calc(100vw - 18px);max-height:calc(100dvh - 24px);padding:20px 14px}
}

/* ---------------------------- Bio-Lab ----------------------------- */
body.spirit-biolab-page{
  min-height:100%;
  height:auto;
  overflow:auto;
  background:
    linear-gradient(rgba(20,12,5,.24),rgba(20,12,5,.38)),
    url("images/desk-wood.jpg") center/cover fixed,
    #3b2412;
}
.spirit-biolab-page .bar{
  min-height:74px;
  padding:9px 18px 9px 262px;
  border-bottom:1px solid rgba(227,167,36,.54);
  background:linear-gradient(180deg,rgba(0,45,85,.98),rgba(0,29,55,.98));
  box-shadow:0 8px 24px rgba(0,0,0,.34),inset 0 1px rgba(248,234,134,.12);
}
.spirit-biolab-page .bar h1{color:#fff3c7;font-size:15px;letter-spacing:.08em;text-transform:uppercase}
.spirit-biolab-page .bar h1 small{display:none}
.spirit-biolab-page .toggles,.spirit-biolab-page .notes{display:none!important}
.spirit-biolab-page .wrap{display:block;min-height:calc(100dvh - 74px)}
.spirit-biolab-page .stagewrap{padding:32px 24px 46px;overflow:visible}
.spirit-biolab-page .labdesk{width:min(1040px,calc(100vw - 48px))}
.spirit-biolab-page .spread{
  width:min(1040px,calc(100vw - 48px));
  border:1px solid rgba(104,76,31,.46);
  border-radius:10px;
  background-color:var(--ss-paper);
  box-shadow:0 28px 64px rgba(15,8,2,.48),inset 0 0 0 1px rgba(255,252,231,.64),inset 0 0 64px rgba(96,68,27,.12);
}
.spirit-biolab-page .vtab{
  border-color:rgba(227,167,36,.42);
  background:rgba(27,78,117,.54);
  color:#e4edf3;
}
.spirit-biolab-page .vtab small{color:#a9c0d1}
.spirit-biolab-page .vtab:hover{background:rgba(65,111,145,.78)}
.spirit-biolab-page .vtab.on{border-color:var(--ss-gold-light);background:linear-gradient(180deg,var(--ss-gold-light),var(--ss-gold));color:var(--ss-navy)}
.spirit-biolab-page .vtab.on small{color:#4d3a12}
.spirit-biolab-page .titleblock h3,.spirit-biolab-page .r-head h4{color:var(--ss-navy)}
.spirit-biolab-page .r-head .el{background:var(--ss-navy)!important;color:#fff3c7}
.spirit-biolab-page .r-sign{border-color:var(--ss-gold)!important}
.spirit-biolab-page .gene{border-left-color:var(--ss-blue)!important}
.spirit-biolab-page .mutsym.on{background:var(--ss-blue)!important;color:#fff3c7}
.spirit-biolab-page .hint{color:#d4c29b;text-shadow:0 1px 2px #000}
@media(max-width:880px){
  .spirit-biolab-page .ss-room-brand{position:absolute;top:6px;left:8px;width:160px;height:44px;gap:5px}
  .spirit-biolab-page .ss-room-brand__seal{width:35px;height:35px;flex-basis:35px}.spirit-biolab-page .ss-room-brand__wordmark{width:120px;height:40px}
  .spirit-biolab-page .bar{position:relative;padding:54px 8px 8px;display:block}
  .spirit-biolab-page .bar h1{position:absolute;top:14px;right:10px;max-width:42%;font-size:10px;text-align:right}
  .spirit-biolab-page .vtabs{width:100%;padding:2px 0;overflow-x:auto}
  .spirit-biolab-page .vtab{min-height:44px;flex:0 0 auto}
  .spirit-biolab-page .wrap{display:block;min-height:0}
  .spirit-biolab-page .stagewrap{display:block;padding:10px 7px 24px;overflow:visible}
  .spirit-biolab-page .labdesk{width:100%}
  .spirit-biolab-page .spread{width:100%;display:block!important;aspect-ratio:auto;overflow:hidden}
  .spirit-biolab-page .spread .gutter{display:none}
  .spirit-biolab-page .page{width:100%;padding:18px 14px}
  .spirit-biolab-page .page.left{min-height:520px}
  .spirit-biolab-page .page.right{padding:20px 16px 26px;border-top:1px solid rgba(120,90,50,.3)}
  .spirit-biolab-page .device{width:min(280px,88vw)}
  .spirit-biolab-page .r-species{align-items:flex-start;gap:10px}
  .spirit-biolab-page .r-head{min-width:0;flex:1 1 auto}
  .spirit-biolab-page .r-head h4{font-size:18px;overflow-wrap:anywhere}
  .spirit-biolab-page .mutrow{display:grid;grid-template-columns:repeat(4,42px);gap:9px;max-width:100%}
}

/* ------------------------------ Map ------------------------------- */
body.spirit-map-page{background:#00182d;font-family:Georgia,"Times New Roman",serif}
.spirit-map-page::after{content:"";position:fixed;z-index:3;inset:8px;pointer-events:none;border:1px solid rgba(227,167,36,.46);border-radius:14px;box-shadow:inset 0 0 0 4px rgba(0,29,55,.28),inset 0 0 44px rgba(0,0,0,.45)}
.spirit-map-page #map{filter:saturate(.84) contrast(1.04) brightness(.9)}
.spirit-map-page #brand{
  top:18px;left:268px;min-height:40px;display:flex;align-items:center;padding:0 14px;
  border:1px solid rgba(227,167,36,.46);border-radius:999px;background:rgba(0,45,85,.91);
  color:#b8cad7;font:700 10px/1.2 Arial,sans-serif;letter-spacing:.13em;box-shadow:0 7px 18px rgba(0,0,0,.28)
}
.spirit-map-page #brand b{color:var(--ss-gold-light)}
.spirit-map-page #zoomHud{bottom:22px;right:22px;gap:7px}
.spirit-map-page #zoomHud button{width:44px;height:44px;border-color:rgba(227,167,36,.54);border-radius:50%;background:linear-gradient(180deg,rgba(27,78,117,.96),rgba(0,45,85,.98));color:#fff1bd;box-shadow:0 5px 13px rgba(0,0,0,.3)}
.spirit-map-page #zoomHud button:hover,.spirit-map-page #zoomHud button:focus-visible{background:var(--ss-blue-mid);outline:3px solid rgba(248,234,134,.28)}
.spirit-map-page #hint{bottom:20px;padding:9px 14px;border:1px solid rgba(227,167,36,.36);border-radius:999px;background:rgba(0,29,55,.82);color:#d4e0e8;font:700 9px/1 Arial,sans-serif;letter-spacing:.14em;white-space:nowrap}
@media(max-width:700px){
  .spirit-map-page .ss-room-brand{width:178px;height:46px;top:8px;left:8px;gap:5px}.spirit-map-page .ss-room-brand__seal{width:36px;height:36px;flex-basis:36px}.spirit-map-page .ss-room-brand__wordmark{width:134px;height:42px}
  .spirit-map-page #brand{top:58px;left:12px;right:12px;min-height:32px;justify-content:center;font-size:8px;text-align:center}
  .spirit-map-page #zoomHud{right:14px;bottom:70px}.spirit-map-page #zoomHud button{width:42px;height:42px}
  .spirit-map-page #hint{left:12px;right:12px;bottom:13px;transform:none;text-align:center;font-size:8px;overflow:hidden;text-overflow:ellipsis}
}

/* ------------------------- Store presentation --------------------- */
body.spirit-store-page{background:var(--ss-paper);color:var(--ss-ink)}
.spirit-store-page .app{background:linear-gradient(rgba(239,227,197,.84),rgba(223,206,166,.88)),url("images/paper.png")}
.spirit-store-page .topbar{border-bottom-color:rgba(227,167,36,.52);background:linear-gradient(180deg,rgba(0,45,85,.98),rgba(0,29,55,.98));color:#fff2bf;box-shadow:0 8px 22px rgba(0,0,0,.24)}
.spirit-store-page .brand{color:#fff2bf}.spirit-store-page .brand span span{color:#a9c0d1}
.spirit-store-page .brand img{background:transparent}
.spirit-store-page .site-status{border-color:rgba(227,167,36,.56);background:rgba(0,25,47,.64)}
.spirit-store-page .nav a{border-color:rgba(227,167,36,.38);background:rgba(27,78,117,.74);color:#fff4c9}
.spirit-store-page .nav a:hover,.spirit-store-page .nav a:focus-visible{background:var(--ss-blue-mid);outline:2px solid var(--ss-gold-light)}
.spirit-store-page .thumb.active{border-color:var(--ss-navy);box-shadow:0 0 0 3px rgba(27,78,117,.16)}
.spirit-store-page .slide{border-color:rgba(0,45,85,.32);box-shadow:0 22px 55px rgba(20,12,5,.28),inset 0 0 0 1px rgba(255,255,255,.48)}
.spirit-store-page .controls{border-radius:10px;padding:6px;background:rgba(255,248,232,.56)}
.spirit-store-page .arrow{border-color:rgba(0,45,85,.35);background:linear-gradient(180deg,var(--ss-blue),var(--ss-navy));color:#fff2bf}

/* Main book Store: a functional stamp collection instead of the old tab deck. */
.stamp-store-view{
  position:absolute;inset:0;overflow:auto;padding:24px 28px 30px;
  background:
    linear-gradient(90deg,transparent 49.4%,rgba(58,40,18,.17) 50%,transparent 50.6%),
    radial-gradient(ellipse at 50% 10%,rgba(255,251,232,.8),transparent 62%),
    linear-gradient(145deg,#f4ead1,#dfcfaa);
  color:var(--ss-ink);font-family:Georgia,"Times New Roman",serif
}
.stamp-store-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;padding-bottom:13px;border-bottom:1px solid rgba(88,61,25,.25)}
.stamp-store-kicker{display:block;margin-bottom:4px;color:var(--ss-blue);font:900 9px/1 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.stamp-store-head h1{margin:0;color:var(--ss-green);font-size:clamp(26px,3vw,42px);line-height:.98}
.stamp-store-head p{max-width:480px;margin:6px 0 0;color:#705837;font-size:12px;line-height:1.35}
.stamp-store-count{flex:0 0 auto;padding:8px 12px;border:1px solid rgba(227,167,36,.55);border-radius:999px;background:linear-gradient(180deg,var(--ss-blue),var(--ss-navy));color:#fff3c7;font:800 10px/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.stamp-store-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);gap:22px}
.stamp-store-gallery{min-width:0}
.stamp-store-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.stamp-store-toolbar h2,.stamp-loadout h2{margin:0;color:var(--ss-navy);font-size:16px}
.stamp-rarity{display:flex;gap:7px;flex-wrap:wrap;color:#725a36;font:700 8px/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.07em}
.stamp-rarity i{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:3px;vertical-align:-1px}
.stamp-store-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.stamp-shop-card{appearance:none;min-width:0;padding:0;border:0;background:none;color:#493419;text-align:left;cursor:pointer;font-family:inherit}
.stamp-shop-art{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;padding:5px;border:3px solid var(--stamp-rarity,#d2ad46);border-radius:8px;background:#f5ead0;box-shadow:0 4px 9px rgba(30,18,8,.22),inset 0 0 0 1px rgba(255,255,255,.7);transform:rotate(var(--stamp-turn,-1deg));transition:.14s ease}
.stamp-shop-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px}
.stamp-shop-card:hover .stamp-shop-art,.stamp-shop-card:focus-visible .stamp-shop-art{transform:translateY(-4px) rotate(0);box-shadow:0 8px 15px rgba(30,18,8,.28),0 0 0 2px rgba(27,78,117,.18)}
.stamp-shop-card b{display:block;margin:6px 2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.stamp-shop-card small{display:block;margin:2px;color:#725a36;font:700 7px/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.stamp-shop-card.is-locked{cursor:default}.stamp-shop-card.is-locked .stamp-shop-art{display:grid;place-items:center;border-color:rgba(65,111,145,.25);background:linear-gradient(145deg,rgba(65,111,145,.09),rgba(255,249,225,.38));filter:saturate(.2)}.stamp-shop-card.is-locked .stamp-shop-art::after{content:"?";color:rgba(0,45,85,.2);font:bold italic 26px Georgia,serif}
.stamp-loadout{position:sticky;top:0;align-self:start;padding:16px;border:1px solid rgba(88,61,25,.25);border-radius:14px;background:rgba(255,249,229,.52);box-shadow:0 8px 22px rgba(44,28,9,.12)}
.stamp-loadout>p{margin:6px 0 13px;color:#725a36;font-size:11px;line-height:1.4}
.stamp-card-back{position:relative;aspect-ratio:3/4;margin:0 auto 14px;max-width:240px;overflow:hidden;border:2px solid var(--ss-navy);border-radius:13px;background:radial-gradient(circle at 50% 38%,#315f7e,#002d55 70%);box-shadow:0 12px 24px rgba(0,29,55,.28),inset 0 0 0 5px rgba(227,167,36,.36),inset 0 0 0 7px rgba(0,21,40,.48)}
.stamp-card-back::before{content:"SPIRIT STRIKERS";position:absolute;left:0;right:0;top:16px;color:#fff0b6;text-align:center;font:800 10px/1 Georgia,serif;letter-spacing:.1em}
.stamp-slots{position:absolute;left:13%;right:13%;top:25%;bottom:12%;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-content:center}.stamp-slot{aspect-ratio:1;border:1px dashed rgba(248,234,134,.64);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.06);overflow:hidden;color:#f8ea86;font:700 11px/1 Arial,sans-serif}.stamp-slot:first-child{grid-column:1/-1;width:46%;justify-self:center}.stamp-slot img{width:100%;height:100%;object-fit:cover}
.stamp-store-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stamp-store-actions button{min-height:36px;padding:7px 9px;border:1px solid rgba(0,45,85,.4);border-radius:8px;background:linear-gradient(180deg,var(--ss-blue),var(--ss-navy));color:#fff4ca;font:800 9px/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.stamp-store-actions button.alt{background:#fff6dc;color:var(--ss-navy)}
.stamp-store-note{margin-top:12px;padding-top:10px;border-top:1px solid rgba(88,61,25,.18);color:#80673f;font-size:9px;line-height:1.4}
@media(max-width:900px){.stamp-store-view{padding:18px 16px 28px}.stamp-store-layout{grid-template-columns:1fr}.stamp-loadout{position:relative}.stamp-store-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stamp-card-back{max-width:210px}}
@media(max-width:560px){.stamp-store-head{align-items:flex-start;flex-direction:column}.stamp-store-count{align-self:flex-start}.stamp-store-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.stamp-store-view{padding:14px 11px 26px}.stamp-store-head h1{font-size:27px}.stamp-store-toolbar{align-items:flex-start;flex-direction:column}.stamp-loadout{padding:13px}}

/* Main-book Store: radio-earned marbles, a score-only Frog Barrel, and stamp packs. */
.frog-store-view{
  position:absolute;inset:0;overflow:hidden;padding:15px 18px 18px;
  background:
    linear-gradient(90deg,transparent 49.45%,rgba(55,35,13,.15) 50%,transparent 50.55%),
    radial-gradient(ellipse at 50% -10%,rgba(255,252,230,.92),transparent 66%),
    linear-gradient(145deg,#f4ead0,#ddcca6);
  color:#422f18;font-family:Georgia,"Times New Roman",serif
}
.frog-store-view::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:url("images/paper.png");mix-blend-mode:multiply}
.frog-store-view>*{position:relative;z-index:1}
.frog-store-head{height:78px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:2px 4px 11px;border-bottom:1px solid rgba(89,61,26,.25)}
.frog-store-kicker,.pack-counter-title>span,.ledger-title>span,.booth-sign>span,.pack-opening-kicker{display:block;margin-bottom:3px;color:var(--ss-blue);font:900 8px/1 Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase}
.frog-store-head h1{margin:0;color:var(--ss-green);font-size:clamp(25px,3.15vw,40px);line-height:.96}.frog-store-head p{max-width:650px;margin:5px 0 0;color:#705735;font-size:11px;line-height:1.32}
.marble-wallet{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:104px;padding:7px 11px 7px 8px;border:1px solid #b78927;border-radius:999px;background:linear-gradient(160deg,#0f4e72,#002d55);box-shadow:0 4px 10px rgba(0,35,65,.25),inset 0 0 0 2px rgba(245,211,89,.13);color:#fff0ad;transition:.18s}
.marble-wallet.is-short{animation:wallet-shake .36s linear 1;background:#6d2d28}.wallet-marble,.mini-marble{display:inline-block;border-radius:50%;background:radial-gradient(circle at 34% 27%,#fff7b7 0 7%,#e8b82c 9% 28%,#2f79a6 31% 56%,#00375f 58% 100%);box-shadow:inset -3px -4px 5px rgba(0,0,0,.28),0 1px 3px rgba(0,0,0,.3)}.wallet-marble{width:29px;height:29px;border:1px solid #f0c94f}.marble-wallet b{display:block;font:900 18px/1 Arial,sans-serif}.marble-wallet small{display:block;margin-top:2px;font:800 7px/1 Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
@keyframes wallet-shake{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.frog-store-main{height:calc(100% - 78px);display:grid;grid-template-columns:minmax(180px,.78fr) minmax(310px,1.34fr) minmax(180px,.72fr);gap:13px;padding-top:13px}
.frog-barrel-booth,.pack-counter,.store-ledger{min-width:0;overflow:hidden;border:1px solid rgba(91,63,27,.28);border-radius:12px;background:rgba(255,250,231,.56);box-shadow:0 7px 18px rgba(44,27,7,.11),inset 0 0 0 1px rgba(255,255,255,.42)}
.frog-barrel-booth{display:flex;flex-direction:column;align-items:center;padding:12px 12px 10px;text-align:center;background:linear-gradient(180deg,rgba(254,246,211,.82),rgba(208,229,217,.54))}.booth-sign h2,.pack-counter-title h2,.ledger-title h2{margin:0;color:var(--ss-navy);font-size:17px;line-height:1}.booth-sign>span{color:#8b5f1b}
.radio-marble-path{position:relative;width:100%;box-sizing:border-box;margin:9px 0 3px;padding:8px 9px 9px;border:1px solid rgba(19,72,106,.34);border-radius:9px;background:linear-gradient(155deg,rgba(15,78,114,.12),rgba(255,245,193,.55));text-align:left}.radio-path-copy{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.radio-path-copy span{color:var(--ss-blue);font:900 7px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}.radio-path-copy b{color:var(--ss-navy);font:800 8px/1 Arial,sans-serif}.radio-path-line{height:7px;margin:7px 0 5px;overflow:hidden;border-radius:999px;background:rgba(0,45,85,.14);box-shadow:inset 0 1px 2px rgba(0,25,45,.18)}.radio-path-line i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ss-blue-mid),#f0c747);transition:width .3s linear}.radio-marble-path>small{display:block;color:#715735;font:700 7px/1 Arial,sans-serif}.radio-path-open{position:absolute;right:7px;bottom:5px;padding:2px 5px;border:0;border-bottom:1px solid rgba(0,45,85,.42);background:transparent;color:var(--ss-navy);font:900 7px/1 Arial,sans-serif;cursor:pointer}
.frog-toss-scene{position:relative;width:min(100%,230px);height:120px;margin:0 auto 2px;overflow:hidden}.frog-toss-scene::before{content:"";position:absolute;left:8%;right:8%;bottom:9px;height:14px;border-radius:50%;background:rgba(61,44,22,.18);filter:blur(4px)}
.barrel{position:absolute;left:50%;bottom:14px;width:96px;height:78px;transform:translateX(-50%);overflow:hidden;border:3px solid #6d411d;border-radius:12px 12px 26px 26px;background:repeating-linear-gradient(90deg,#9c612b 0 17px,#c9883f 18px 31px);box-shadow:inset 0 -12px 14px rgba(70,34,10,.22),0 5px 8px rgba(40,24,8,.22)}.barrel::before,.barrel::after{content:"";position:absolute;left:-4px;right:-4px;height:8px;border:2px solid #543218;border-radius:50%;background:#805127}.barrel::before{top:9px}.barrel::after{bottom:10px}.barrel>span{position:absolute;left:7px;right:7px;top:-3px;height:18px;border:3px solid #5c371b;border-radius:50%;background:radial-gradient(ellipse,#2e1b0c 0 55%,#a86c31 59% 100%)}
.barrel-rings{position:absolute;left:50%;bottom:92px;width:112px;height:46px;transform:translateX(-50%)}.barrel-rings i{position:absolute;border:2px solid rgba(184,129,35,.72);border-radius:50%;transform:rotateX(64deg)}.barrel-rings i:nth-child(1){inset:23px 39px 4px}.barrel-rings i:nth-child(2){inset:13px 27px 2px}.barrel-rings i:nth-child(3){inset:1px 13px 0}
.frog-token{position:absolute;left:8%;top:17px;z-index:5;display:grid;place-items:center;width:46px;height:35px;border:2px solid #315733;border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 35% 31%,#edf6ca 0 7%,#83ae55 9% 50%,#4e7c3e 52%);box-shadow:0 4px 7px rgba(30,45,18,.24);color:#244624;font:900 7px/1 Arial,sans-serif;letter-spacing:.07em;transform:rotate(-8deg)}.frog-token::before,.frog-token::after{content:"";position:absolute;top:-7px;width:13px;height:13px;border:2px solid #315733;border-radius:50%;background:#96bd64}.frog-token::before{left:5px}.frog-token::after{right:5px}
.frog-toss-scene.is-tossing .frog-token{animation:frog-flight .82s cubic-bezier(.22,.62,.48,1) forwards}@keyframes frog-flight{0%{left:8%;top:17px;transform:rotate(-8deg) scale(1)}52%{left:calc(var(--frog-landing) - 23px);top:2px;transform:rotate(190deg) scale(1.05)}100%{left:calc(var(--frog-landing) - 23px);top:67px;transform:rotate(355deg) scale(.64)}}
.frog-aim{position:relative;width:min(92%,210px);height:16px;margin:0 auto 8px;border:1px solid #8d6e38;border-radius:999px;background:linear-gradient(90deg,#a84c3e 0 18%,#d6a139 18% 36%,#59a56c 36% 64%,#d6a139 64% 82%,#a84c3e 82%);box-shadow:inset 0 2px 3px rgba(46,29,8,.2)}.frog-aim i{position:absolute;top:-5px;left:3%;width:9px;height:24px;border-radius:5px;background:var(--ss-navy);box-shadow:0 1px 3px rgba(0,0,0,.4);animation:aim-sweep 1.8s linear infinite alternate}@keyframes aim-sweep{to{left:calc(97% - 9px)}}
.store-primary,.store-secondary{appearance:none;min-height:34px;padding:8px 13px;border:1px solid rgba(0,45,85,.52);border-radius:8px;background:linear-gradient(180deg,var(--ss-blue-mid),var(--ss-navy));box-shadow:0 3px 7px rgba(0,30,56,.22);color:#fff2bc;font:900 9px/1 Arial,sans-serif;letter-spacing:.065em;text-transform:uppercase;cursor:pointer}.store-primary:hover,.store-primary:focus-visible,.store-secondary:hover,.store-secondary:focus-visible{filter:brightness(1.13);transform:translateY(-1px)}.frog-toss{width:min(100%,190px)}.frog-result{min-height:26px;margin:7px 2px 0;color:#6f5632;font-size:9px;line-height:1.32}
.pack-counter{padding:13px 14px;background:rgba(255,248,224,.64)}.pack-counter-title{display:flex;align-items:flex-end;justify-content:space-between;gap:9px;padding:0 2px 10px;border-bottom:1px solid rgba(88,61,25,.16)}.pack-counter-title>span{margin:0;color:#8c5e18}.pack-counter-title h2{text-align:right}
.pack-offers{display:grid;gap:9px;margin-top:11px}.pack-offer{appearance:none;position:relative;display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:10px;min-height:80px;padding:8px 11px 8px 8px;overflow:hidden;border:1px solid rgba(79,55,25,.34);border-radius:10px;background:linear-gradient(105deg,#f1dda2,#f8edd0 51%,#c9a95f);box-shadow:0 5px 11px rgba(50,31,9,.13),inset 0 0 0 2px rgba(255,255,255,.42);color:#49341b;text-align:left;cursor:pointer;transition:.16s}.pack-offer::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 31%,rgba(255,255,255,.56) 42%,transparent 53%);transform:translateX(-120%);transition:.38s}.pack-offer:hover,.pack-offer:focus-visible{transform:translateY(-2px) rotate(-.25deg);box-shadow:0 8px 15px rgba(50,31,9,.2)}.pack-offer:hover::after,.pack-offer:focus-visible::after{transform:translateX(120%)}.pack-offer.relic{background:linear-gradient(105deg,#b9cfda,#f5e9c5 52%,#7995aa)}.pack-offer.seven{background:linear-gradient(105deg,#d2c2de,#f8e7b0 49%,#3f789e)}.pack-seal{display:grid;place-items:center;width:48px;height:60px;border:2px solid #e7b12f;border-radius:6px 6px 10px 10px;background:radial-gradient(circle at 50% 39%,#265d7e,#002d55 69%);box-shadow:inset 0 0 0 3px rgba(247,220,102,.16),0 3px 6px rgba(0,0,0,.2);color:#f5c541;font:bold italic 28px Georgia,serif}.pack-copy b{display:block;color:var(--ss-navy);font-size:14px}.pack-copy small{display:block;margin-top:5px;color:#715737;font:700 9px/1.25 Arial,sans-serif}.pack-offer strong{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:999px;background:rgba(0,45,85,.9);color:#fff0ab;font:900 12px/1 Arial,sans-serif}.mini-marble{width:14px;height:14px}.pack-counter-help{margin:8px 3px 0;color:#665131;font-size:9px;line-height:1.35}
.store-ledger{display:flex;flex-direction:column;padding:13px 12px;background:linear-gradient(180deg,rgba(218,230,221,.6),rgba(255,248,225,.64))}.ledger-title{padding-bottom:9px;border-bottom:1px solid rgba(88,61,25,.16)}.ledger-title h2{font-size:18px}.ledger-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}.ledger-totals>span{padding:7px 2px;border-radius:7px;background:rgba(0,45,85,.08);text-align:center}.ledger-totals b{display:block;color:var(--ss-navy);font:bold 16px/1 Arial,sans-serif}.ledger-totals small{display:block;margin-top:3px;color:#765e3b;font:800 6px/1 Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase}.recent-cards{min-height:116px;padding:8px 0}.recent-label{display:block;margin-bottom:7px;color:#765a30;font:900 7px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}.recent-card-row{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.recent-card{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;border:2px solid #897052;border-radius:5px;background:#f4ead5;box-shadow:0 3px 6px rgba(36,23,9,.18)}.recent-card.rare{border-color:#477fa1}.recent-card.gold{border-color:#d2a31e;box-shadow:0 0 0 2px rgba(219,170,37,.14)}.recent-card img{width:100%;height:100%;object-fit:cover}.recent-card i{position:absolute;left:1px;right:1px;bottom:1px;padding:2px;background:rgba(0,30,54,.84);color:#fff3bd;font:700 5px/1 Arial,sans-serif;text-align:center;text-transform:uppercase}.recent-empty{padding:15px 7px;border:1px dashed rgba(77,57,30,.26);border-radius:8px;color:#806942;font-size:9px;line-height:1.35;text-align:center}.store-secondary{width:100%;margin-top:auto;background:#fff4d5;color:var(--ss-navy)}.store-status{min-height:27px;margin:8px 1px 0;color:#527052;font-size:8px;line-height:1.3}.store-status.is-error{color:#9b3c30}
.pack-opening{position:absolute!important;inset:0!important;z-index:30!important;display:grid;place-items:center;padding:18px;background:rgba(14,25,31,.72);backdrop-filter:blur(3px)}.pack-opening[hidden]{display:none!important}.pack-opening-panel{position:relative;width:min(92%,480px);min-height:490px;padding:18px 24px 20px;border:2px solid #d8aa35;border-radius:18px;background:radial-gradient(circle at 50% 24%,#fff9df,#ddcca5 75%);box-shadow:0 22px 60px rgba(0,0,0,.45),inset 0 0 0 5px rgba(0,45,85,.09);text-align:center}.pack-opening-close{position:absolute;right:11px;top:9px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(0,45,85,.1);color:var(--ss-navy);font:25px/1 Arial,sans-serif;cursor:pointer}.pack-opening-panel h2{margin:2px 0 5px;color:var(--ss-green);font-size:25px}.pack-opening-stage{height:333px;display:grid;place-items:center}.sealed-pack{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:190px;height:285px;overflow:hidden;border:2px solid #d4a92e;border-radius:10px;background:linear-gradient(125deg,#b6943e,#fff0a3 18%,#0f4e72 38%,#002d55 72%,#ddb442);box-shadow:0 18px 30px rgba(32,22,8,.3),inset 0 0 0 5px rgba(255,255,255,.18);color:#fff0b2;transform:rotate(-2deg)}.sealed-pack.relic{background:linear-gradient(125deg,#6d8798,#e8f1f3 20%,#5b3e79 49%,#153d59 74%,#d7c78f)}.sealed-pack.seven{background:conic-gradient(from 32deg,#e5b52a,#2d719e,#52805a,#b54b35,#735a9b,#8d7654,#0f4e72,#e5b52a)}.sealed-pack::before,.sealed-pack::after{content:"";position:absolute;left:0;right:0;height:17px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 7px,rgba(0,0,0,.12) 8px 11px)}.sealed-pack::before{top:0}.sealed-pack::after{bottom:0}.sealed-pack .pack-mark{display:grid;place-items:center;width:82px;height:82px;border:2px solid #efc648;border-radius:50%;background:#003b66;box-shadow:inset 0 0 0 5px rgba(244,205,74,.14);font:bold italic 50px Georgia,serif}.sealed-pack b{margin-top:16px;font-size:20px}.sealed-pack small{margin-top:5px;font:800 8px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}.pack-opening-stage.is-tearing .sealed-pack{animation:tear-pack .36s ease forwards}@keyframes tear-pack{45%{transform:rotate(3deg) scale(1.04)}100%{transform:translateY(20px) scale(.86);opacity:0;clip-path:polygon(0 18%,100% 9%,100% 100%,0 100%)}}
.opened-card{position:relative;width:220px;height:300px;padding:9px 9px 12px;border:7px dotted #f8f1dc;border-radius:3px;outline:3px solid #91704c;outline-offset:-5px;background:#f8f1dc;box-shadow:0 18px 30px rgba(40,26,8,.3),inset 0 0 0 2px rgba(255,255,255,.7);animation:card-reveal .34s cubic-bezier(.2,.75,.3,1) both}.opened-card.rare{outline-color:#477fa1}.opened-card.gold{outline-color:#d5a71e;box-shadow:0 18px 30px rgba(40,26,8,.3),0 0 24px rgba(224,175,38,.44)}@keyframes card-reveal{from{opacity:0;transform:rotateY(82deg) scale(.8)}to{opacity:1;transform:rotateY(0) scale(1)}}.opened-card-art{height:214px;overflow:hidden;border:1px solid rgba(72,51,25,.25);border-radius:2px;background:#eee5cf}.opened-card-art img{width:100%;height:100%;object-fit:cover}.opened-card-num{position:absolute;right:16px;top:17px;padding:4px;border-radius:2px;background:rgba(255,249,227,.9);color:#543d21;font:800 7px/1 Arial,sans-serif}.opened-card h3{margin:8px 0 4px;color:var(--ss-navy);font-size:15px;line-height:1}.opened-card p{margin:0;color:#715634;font:800 8px/1 Arial,sans-serif;text-transform:uppercase}.opened-card p i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;vertical-align:-1px}.pack-opening-panel>p{min-height:16px;margin:0 0 8px;color:#725838;font-size:9px}
@media(max-height:700px) and (min-width:701px){.frog-store-head{height:66px}.frog-store-main{height:calc(100% - 66px);padding-top:9px}.frog-store-head p{display:none}.frog-toss-scene{height:125px}.pack-offer{min-height:66px}.pack-counter-help{display:none}.recent-cards{min-height:88px}.pack-opening-panel{min-height:430px}.pack-opening-stage{height:278px}.opened-card{width:190px;height:270px}.opened-card-art{height:190px}.sealed-pack{width:165px;height:245px}}
@media(max-width:900px){.frog-store-view{overflow:auto;padding:13px 14px 22px}.frog-store-head{height:auto}.frog-store-main{height:auto;grid-template-columns:minmax(190px,.82fr) minmax(310px,1.18fr)}.store-ledger{grid-column:1/-1;display:grid;grid-template-columns:150px 1fr 180px;align-items:center;gap:12px}.ledger-title{border:0}.ledger-totals{margin:0}.recent-cards{min-height:0;padding:0}.store-secondary{margin:0}.store-status{grid-column:1/-1;margin:0}.pack-offer{min-height:72px}}
@media(max-width:610px){.frog-store-view{padding:12px 10px 72px}.frog-store-head{display:grid;grid-template-columns:1fr auto;gap:9px;padding:0 2px 10px}.frog-store-head p{grid-column:1/-1;font-size:9px}.frog-store-head h1{font-size:25px}.marble-wallet{min-width:88px;padding:6px 8px}.wallet-marble{width:24px;height:24px}.marble-wallet b{font-size:15px}.frog-store-main{display:grid;grid-template-columns:1fr;gap:10px;padding-top:10px}.frog-barrel-booth,.pack-counter,.store-ledger{overflow:visible}.frog-toss-scene{height:132px}.pack-counter-title{align-items:flex-start;flex-direction:column}.pack-counter-title h2{text-align:left}.pack-offer{grid-template-columns:50px 1fr auto;min-height:67px}.pack-seal{width:42px;height:51px;font-size:23px}.pack-copy b{font-size:12px}.pack-offer strong{padding:5px 6px}.store-ledger{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;gap:9px}.ledger-title,.store-status{grid-column:1/-1}.ledger-totals{grid-column:1/-1}.recent-cards{grid-column:1/-1}.store-secondary{grid-column:1/-1}.pack-opening{position:fixed!important;padding:8px}.pack-opening-panel{width:min(96%,390px);min-height:520px;padding:16px}.pack-opening-stage{height:355px}.opened-card{width:225px;height:322px}.opened-card-art{height:233px}}

.stamp-market-photo{position:relative;height:calc(100% - 330px);min-height:90px;margin:8px 0 0;overflow:hidden;border:1px solid rgba(76,54,27,.22);border-radius:9px;background:linear-gradient(145deg,#efe3c4,#d9c496);box-shadow:inset 0 0 0 2px rgba(255,255,255,.62)}
.stamp-market-strip{position:absolute;inset:9px 9px 27px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:5px;padding:6px 8px;border-radius:7px;background:linear-gradient(180deg,rgba(0,45,85,.12),rgba(255,248,218,.5))}
.stamp-market-strip span{display:block;min-width:0;aspect-ratio:4/5;overflow:hidden;padding:2px;border:2px dotted #d3ad42;border-radius:3px;background:#fff9e8;box-shadow:0 3px 7px rgba(47,29,8,.2);transform:rotate(var(--preview-turn,0deg))}.stamp-market-strip img{display:block;width:100%;height:100%;object-fit:cover;border-radius:1px}
.stamp-market-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 7px;background:linear-gradient(transparent,rgba(0,37,67,.9));color:#fff2bd;text-shadow:0 1px 2px #001d33}
.stamp-market-photo figcaption b{display:block;font-size:11px}.stamp-market-photo figcaption span{display:block;margin-top:2px;font-size:8px;line-height:1.25}
@media(max-height:700px) and (min-width:701px){.stamp-market-photo{height:calc(100% - 256px);min-height:72px}.stamp-market-strip{inset:6px 7px 22px;padding:3px 5px}}
@media(max-width:610px){body.spirit-archive-page:has(.frog-store-view) #book{height:calc(100dvh - 148px)!important;max-height:none!important;aspect-ratio:auto!important}.stamp-market-photo{height:190px}.stamp-market-strip{inset:12px 10px 35px;gap:7px}}

/* Duolingo-inspired restraint: one measurable radio action, one line, one reward. */
body.radioview .wrf-listen-reward{position:absolute;right:9px;top:8px;z-index:9;display:grid;grid-template-columns:24px minmax(78px,1fr) auto;grid-template-rows:auto 5px;align-items:center;gap:3px 7px;width:190px;min-height:38px;box-sizing:border-box;padding:5px 8px;border:1px solid rgba(214,169,57,.72);border-radius:12px 4px 12px 12px;background:linear-gradient(155deg,rgba(0,45,85,.95),rgba(25,86,124,.92));box-shadow:0 4px 9px rgba(34,20,5,.28),inset 0 0 0 1px rgba(255,240,170,.1);color:#fff1b3;pointer-events:none;transition:filter .18s,transform .18s}.wrf-listen-marble{grid-row:1/3;width:22px;height:22px;border:1px solid #f1c449;border-radius:50%;background:radial-gradient(circle at 34% 27%,#fff7b7 0 7%,#e8b82c 9% 28%,#2f79a6 31% 56%,#00375f 58% 100%);box-shadow:inset -3px -4px 5px rgba(0,0,0,.28)}.wrf-listen-copy b,.wrf-listen-total b{display:block;font:900 8px/1 Arial,sans-serif}.wrf-listen-copy small,.wrf-listen-total small{display:block;margin-top:2px;font:700 6px/1 Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase;opacity:.78}.wrf-listen-total{text-align:right}.wrf-listen-reward>i{grid-column:2/4;display:block;height:5px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.15)}.wrf-listen-reward>i em{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#55a4d1,#f2ca45);transition:width .3s linear}.wrf-listen-reward.is-playing{filter:brightness(1.07)}.wrf-listen-reward.just-earned{transform:scale(1.04);filter:brightness(1.3)}
@media(max-width:1000px){body.radioview .wrf-listen-reward{width:154px;grid-template-columns:20px 1fr auto;padding-left:6px}.wrf-listen-marble{width:18px;height:18px}.wrf-listen-copy b{font-size:7px}}
@media(max-width:610px){body.radioview .wrf-listen-reward{right:7px;top:3px;width:142px;height:32px;min-height:32px;padding:3px 6px}.wrf-listen-total small{display:none}}

/* Stamp-pack theatre v2.2: the stamp is the event, with restrained brand light
   and paper confetti instead of the old tiny card in an empty panel. */
.pack-opening{overflow:hidden;background:radial-gradient(circle at 50% 38%,rgba(35,112,157,.32),rgba(5,18,29,.82) 66%)!important}
.pack-opening-panel{width:min(94%,560px);min-height:570px;padding:20px 28px 23px;overflow:visible;background:radial-gradient(circle at 50% 31%,#fffdf0 0,#f2e3b9 42%,#d4bb80 100%);box-shadow:0 25px 72px rgba(0,0,0,.56),0 0 0 7px rgba(15,78,114,.24),inset 0 0 0 3px rgba(255,252,225,.65)}
.pack-opening-panel::before{content:"";position:absolute;left:12%;right:12%;top:72px;height:330px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,242,154,.75),rgba(94,164,207,.2) 45%,transparent 72%);filter:blur(4px);pointer-events:none}
.pack-opening-panel h2{position:relative;font-size:29px}.pack-opening-stage{position:relative;height:400px;perspective:900px}.pack-opening-stage::after{content:"";position:absolute;left:19%;right:19%;bottom:19px;height:20px;border-radius:50%;background:rgba(29,19,8,.25);filter:blur(9px);transform:scaleX(.8);pointer-events:none}
.opened-card{z-index:2;width:min(275px,54vw);height:370px;padding:11px 11px 14px;border-width:9px;box-shadow:0 24px 42px rgba(32,21,8,.39),inset 0 0 0 2px rgba(255,255,255,.78)}
.opened-card-art{height:272px}.opened-card h3{margin-top:10px;font-size:18px}.opened-card p{font-size:9px}.opened-card-num{right:19px;top:20px;font-size:8px}
.pack-opening-stage.is-first-reveal .opened-card{animation:card-reveal .5s cubic-bezier(.16,.86,.3,1) both,pack-card-glow .9s ease both}
@keyframes pack-card-glow{0%,100%{filter:brightness(1)}40%{filter:brightness(1.18) saturate(1.08)}}
.pack-opening.is-celebrating .pack-opening-panel{animation:pack-panel-light .9s ease both}
@keyframes pack-panel-light{0%,100%{filter:brightness(1)}34%{filter:brightness(1.12)}}
.pack-celebration{position:absolute;inset:0;z-index:31;pointer-events:none;overflow:hidden}.pack-celebration i{position:absolute;left:50%;top:52%;width:9px;height:15px;border-radius:2px;opacity:0;box-shadow:0 1px 1px rgba(0,0,0,.16)}
.pack-opening.is-celebrating .pack-celebration i{animation:stamp-confetti 1.45s cubic-bezier(.12,.68,.25,1) var(--burst-delay) both}
@keyframes stamp-confetti{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}12%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--burst-x)),calc(-50% + var(--burst-y))) rotate(var(--burst-r)) scale(.9)}}
@media(max-height:720px) and (min-width:611px){.pack-opening-panel{min-height:450px}.pack-opening-stage{height:310px}.opened-card{width:215px;height:285px}.opened-card-art{height:199px}}
@media(max-width:610px){.pack-opening-panel{min-height:min(575px,calc(100dvh - 18px));padding:17px 16px}.pack-opening-stage{height:min(390px,58dvh)}.opened-card{width:min(245px,67vw);height:min(338px,52dvh)}.opened-card-art{height:calc(min(338px,52dvh) - 94px)}}
@media(prefers-reduced-motion:reduce){.pack-opening.is-celebrating .pack-celebration i{display:none}.pack-opening-stage.is-first-reveal .opened-card,.pack-opening.is-celebrating .pack-opening-panel{animation:none}}

body.spirit-archive-page :focus-visible{outline:3px solid rgba(248,234,134,.82);outline-offset:3px}

@media(prefers-reduced-motion:reduce){
  .spirit-game-page #title-screen::before,.spirit-game-page .game-title,.stamp-shop-art{animation:none!important;transition:none!important}
}
