/* ============================================================
   暗号神社 — CRYPTO TEMPLE
   Палитра: ночь (kon), киноварь (shu), золото (kin), васи (washi)
   ============================================================ */

:root{
  --night:      #080a11;
  --night-2:    #0e1220;
  --night-3:    #151b2e;
  --sumi:       #1b1b22;

  --shu:        #d8402a;   /* киноварь тории */
  --shu-deep:   #9e2a1c;
  --shu-glow:   #ff6a3d;

  --gold:       #e3c274;
  --gold-deep:  #a9822c;
  --gold-soft:  #f5e3b0;

  --washi:      #f2e7cf;
  --washi-dim:  #cfc0a2;

  --jade:       #6fbf9b;
  --murasaki:   #8a68c4;
  --ai:         #3a6ea8;

  --line:       rgba(227,194,116,.20);
  --line-soft:  rgba(227,194,116,.10);

  --font-jp: "Shippori Mincho", "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --font-ui: "Zen Kaku Gothic New", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;

  --r-lg: 18px;
  --r-md: 12px;
  --shadow-deep: 0 24px 60px -20px rgba(0,0,0,.9);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:
    radial-gradient(1200px 700px at 50% -10%, #1d2540 0%, transparent 60%),
    radial-gradient(900px 500px at 10% 110%, #22162a 0%, transparent 60%),
    linear-gradient(180deg, var(--night) 0%, var(--night-2) 45%, #0a0c14 100%);
  background-attachment: fixed;
  color: var(--washi);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* ---- звёздная пыль + зерно васи ---- */
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.28), transparent),
    radial-gradient(1px 1px at 70% 15%, rgba(255,255,255,.20), transparent),
    radial-gradient(1px 1px at 40% 70%, rgba(255,255,255,.14), transparent),
    radial-gradient(1.5px 1.5px at 85% 55%, rgba(255,214,150,.22), transparent),
    radial-gradient(1px 1px at 12% 85%, rgba(255,255,255,.18), transparent);
  opacity:.8;
}
body::after{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>");
}

.wrap{ position:relative; z-index:2; max-width:1180px; margin:0 auto; padding-inline:20px; }

/* ============ ТИПОГРАФИКА ============ */
h1,h2,h3{ font-family:var(--font-jp); font-weight:600; letter-spacing:.02em; margin:0; }
.kanji{ font-family:var(--font-jp); }

.sec-head{ text-align:center; margin: 0 0 34px; }
.sec-head .jp{
  display:block; font-family:var(--font-jp); font-size:clamp(28px,5vw,44px);
  color:var(--gold-soft); letter-spacing:.14em;
  text-shadow:0 0 28px rgba(227,194,116,.28);
}
.sec-head .romaji{
  display:block; font-size:11px; letter-spacing:.42em; text-transform:uppercase;
  color:var(--shu-glow); margin-top:8px; opacity:.85;
}
.sec-head .sub{ display:block; color:var(--washi-dim); font-size:14px; margin-top:12px; max-width:660px; margin-inline:auto; }
.sec-head .rule{
  width:120px; height:1px; margin:18px auto 0;
  background:linear-gradient(90deg,transparent,var(--gold),transparent); opacity:.6;
}

section{ padding: 84px 0; position:relative; }
section + section{ border-top:1px solid var(--line-soft); }

/* ============ ШАПКА ============ */
header.bar{
  position:sticky; top:0; z-index:60;
  backdrop-filter: blur(14px) saturate(1.2);
  background: linear-gradient(180deg, rgba(8,10,17,.94), rgba(8,10,17,.66));
  border-bottom:1px solid var(--line-soft);
}
.bar-in{ max-width:1180px; margin:0 auto; padding:10px 20px; display:flex; align-items:center; gap:16px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; }
.brand .mark{ width:34px; height:34px; filter:drop-shadow(0 0 10px rgba(216,64,42,.55)); }
.brand b{ font-family:var(--font-jp); font-size:19px; color:var(--gold-soft); letter-spacing:.08em; display:block; line-height:1.15; }
.brand small{ font-size:9.5px; letter-spacing:.34em; color:var(--shu-glow); text-transform:uppercase; }

nav.links{ display:flex; gap:20px; margin-left:auto; }
nav.links a{
  color:var(--washi-dim); text-decoration:none; font-size:12.5px; letter-spacing:.08em;
  padding:6px 2px; border-bottom:1px solid transparent; transition:.2s; white-space:nowrap;
}
nav.links a:hover{ color:var(--gold-soft); border-bottom-color:var(--shu); }

.chip{
  display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:999px;
  border:1px solid var(--line); background:rgba(255,255,255,.03);
  font-size:12.5px; color:var(--washi); white-space:nowrap;
}
.chip .dot{ width:6px; height:6px; border-radius:50%; background:var(--jade); box-shadow:0 0 8px var(--jade); }
.chip.merit{ color:var(--gold-soft); border-color:rgba(227,194,116,.35); }
.chip.merit b{ font-family:var(--font-jp); font-size:14px; }
.chip button{ all:unset; cursor:pointer; }

/* ============ КНОПКИ ============ */
.btn{
  --bg1:var(--shu); --bg2:var(--shu-deep);
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:11px 22px; border-radius:999px; border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,var(--bg1),var(--bg2));
  color:#fff7ec; font-family:var(--font-ui); font-size:13.5px; font-weight:600; letter-spacing:.05em;
  cursor:pointer; text-decoration:none; overflow:hidden;
  box-shadow:0 8px 24px -10px rgba(216,64,42,.8), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .16s cubic-bezier(.3,1.4,.5,1), box-shadow .2s, filter .2s;
}
.btn:hover{ transform:translateY(-2px); filter:brightness(1.08); box-shadow:0 14px 30px -10px rgba(216,64,42,.95); }
.btn:active{ transform:translateY(0) scale(.98); }
.btn[disabled]{ opacity:.4; cursor:not-allowed; filter:grayscale(.5); transform:none; box-shadow:none; }
.btn.gold{ --bg1:#d8b45e; --bg2:#9a7426; color:#2a1d06; box-shadow:0 8px 24px -10px rgba(227,194,116,.8), inset 0 1px 0 rgba(255,255,255,.4); }
.btn.ghost{ background:rgba(255,255,255,.04); border-color:var(--line); color:var(--washi); box-shadow:none; }
.btn.ghost:hover{ background:rgba(227,194,116,.1); border-color:rgba(227,194,116,.4); }
.btn.sm{ padding:8px 15px; font-size:12px; }
.btn .price{
  font-size:11px; opacity:.9; padding:2px 7px; border-radius:99px;
  background:rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.14);
  font-variant-numeric:tabular-nums;
}
.btn.free .price{ background:rgba(111,191,155,.22); border-color:rgba(111,191,155,.45); }

/* ============ ГЕРОЙ ============ */
.hero{ position:relative; min-height:min(76vh,700px); display:flex; align-items:center; justify-content:center; overflow:hidden; padding:0; }
.hero .moon{
  position:absolute; top:10%; left:50%; transform:translateX(-50%);
  width:190px; height:190px; border-radius:50%;
  background:radial-gradient(circle at 38% 36%, #fff8e8, #f0dcae 55%, #d8bd85 78%, #b89a63);
  box-shadow:0 0 90px 30px rgba(245,226,176,.16), 0 0 220px 80px rgba(216,64,42,.09);
  animation:moonRise 1.4s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes moonRise{ from{ transform:translateX(-50%) translateY(60px); opacity:0 } to{ transform:translateX(-50%) translateY(0); opacity:1 } }
.hero .mtn{ position:absolute; bottom:0; left:0; width:100%; }
.hero-content{ position:relative; z-index:5; text-align:center; padding:0 20px; }
.hero .torii-main{ width:min(440px,78vw); filter:drop-shadow(0 0 36px rgba(216,64,42,.5)); animation:fadeUp .8s .08s both; }
.hero h1{
  font-size:clamp(34px,7.5vw,72px); color:var(--washi);
  letter-spacing:.2em; margin-top:-24px;
  text-shadow:0 0 40px rgba(227,194,116,.35), 0 4px 30px rgba(0,0,0,.8);
  animation:fadeUp .8s .2s both;
}
.hero .tagline{ font-size:11.5px; letter-spacing:.5em; text-transform:uppercase; color:var(--shu-glow); margin-top:14px; animation:fadeUp .8s .3s both; }
.hero .lead{ max-width:580px; margin:22px auto 0; color:var(--washi-dim); font-size:15px; animation:fadeUp .8s .4s both; }
.hero .cta{ margin-top:32px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; animation:fadeUp .8s .5s both; }
@keyframes fadeUp{ from{opacity:0; transform:translateY(26px)} to{opacity:1; transform:none} }

.scroll-cue{ position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:5; color:var(--washi-dim); font-size:10px; letter-spacing:.3em; opacity:.7; animation:bob 2.4s ease-in-out infinite; }
@keyframes bob{ 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

.petal{ position:fixed; top:-40px; z-index:3; pointer-events:none; }

/* ============ ПАНЕЛИ ============ */
.panel{
  background:linear-gradient(160deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
  border:1px solid var(--line); border-radius:var(--r-lg);
  padding:24px; position:relative; overflow:hidden;
  box-shadow:var(--shadow-deep);
}
.grid{ display:grid; gap:20px; }
.grid.g3{ grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.grid.g2{ grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }
.panel h3{ font-size:19px; color:var(--gold-soft); margin-bottom:6px; }

/* ============ САНДО: путь обряда ============ */
.sando{ display:grid; gap:16px; }
.station{
  display:grid; grid-template-columns:82px 1fr auto; gap:20px; align-items:center;
  padding:20px 22px; border-radius:var(--r-lg);
  border:1px solid var(--line-soft);
  background:linear-gradient(100deg, rgba(255,255,255,.04), rgba(255,255,255,.008));
  transition:.3s; position:relative; overflow:hidden;
}
.station::after{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,var(--shu),transparent); opacity:.5;
}
.station:hover{ border-color:rgba(227,194,116,.3); transform:translateX(4px); background:linear-gradient(100deg, rgba(227,194,116,.07), rgba(255,255,255,.01)); }
.station.done{ border-color:rgba(111,191,155,.36); }
.station.done::after{ background:linear-gradient(180deg,var(--jade),transparent); opacity:.9; }
.station.locked{ opacity:.45; }
.station .icon{ width:76px; height:76px; }
.station h3{ font-size:20px; color:var(--gold-soft); display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.station h3 em{ font-style:normal; font-size:10.5px; letter-spacing:.26em; color:var(--shu-glow); text-transform:uppercase; }
.station p{ margin:7px 0 0; color:var(--washi-dim); font-size:13.5px; }
.station p.lore{ color:rgba(242,231,207,.5); font-size:12.5px; font-style:italic; margin-top:6px; }
.station .act{ display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
.stamp-done{
  font-family:var(--font-jp); color:var(--shu); border:2px solid var(--shu);
  border-radius:8px; padding:5px 9px; font-size:15px; transform:rotate(-8deg);
  text-shadow:0 0 10px rgba(216,64,42,.6); box-shadow:0 0 14px rgba(216,64,42,.25) inset;
}

.sanpai-bar{ display:flex; align-items:center; gap:9px; justify-content:center; margin-bottom:30px; flex-wrap:wrap; }
.sanpai-bar .node{ width:12px; height:12px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.05); transition:.3s; }
.sanpai-bar .node.on{ background:var(--shu); border-color:var(--shu-glow); box-shadow:0 0 14px var(--shu-glow); }
.sanpai-bar .seg{ width:30px; height:1px; background:var(--line); }

/* ============ АМУЛЕТЫ ============ */
.filters{ display:flex; gap:9px; justify-content:center; flex-wrap:wrap; margin-bottom:30px; }
.filters button{
  padding:7px 16px; border-radius:999px; font-size:12px; cursor:pointer;
  background:rgba(255,255,255,.03); border:1px solid var(--line-soft); color:var(--washi-dim);
  font-family:var(--font-ui); transition:.2s; letter-spacing:.04em;
}
.filters button:hover{ color:var(--gold-soft); border-color:var(--line); }
.filters button.on{ background:linear-gradient(180deg,var(--shu),var(--shu-deep)); color:#fff; border-color:transparent; box-shadow:0 6px 18px -8px var(--shu); }

.amulets{ display:grid; grid-template-columns:repeat(auto-fill,minmax(228px,1fr)); gap:24px; }
.amulet-card{
  position:relative; border-radius:var(--r-lg); padding:22px 16px 18px; cursor:pointer;
  border:1px solid var(--line-soft); text-align:center;
  background:linear-gradient(170deg, rgba(255,255,255,.05), rgba(255,255,255,.01));
  transition:transform .35s cubic-bezier(.2,.9,.3,1.2), border-color .3s, box-shadow .35s;
}
.amulet-card:hover{ transform:translateY(-10px); border-color:rgba(227,194,116,.36); box-shadow:0 30px 50px -24px rgba(0,0,0,.9); }
.amulet-card .halo{
  position:absolute; inset:-1px; border-radius:var(--r-lg); pointer-events:none; opacity:0; transition:.4s;
  background:radial-gradient(70% 55% at 50% 32%, var(--aura), transparent 70%);
}
.amulet-card:hover .halo{ opacity:.6; }
.amulet-card .omamori{ width:116px; height:auto; display:block; margin:0 auto; position:relative; transition:transform .45s cubic-bezier(.2,.9,.3,1.3); }
.amulet-card:hover .omamori{ transform:translateY(-6px) rotate(-2.5deg) scale(1.06); }
.amulet-card h4{ margin:16px 0 2px; font-family:var(--font-jp); font-size:17px; color:var(--gold-soft); letter-spacing:.06em; position:relative; }
.amulet-card .rom{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--shu-glow); opacity:.85; }
.amulet-card .eff{ margin-top:9px; font-size:12.5px; color:var(--washi-dim); min-height:34px; }
.amulet-card .foot{ margin-top:13px; display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid var(--line-soft); padding-top:11px; }
.amulet-card .cost{ font-size:12px; color:var(--gold); font-variant-numeric:tabular-nums; }
.rarity{ font-family:var(--font-jp); font-size:11px; padding:2px 8px; border-radius:6px; border:1px solid; letter-spacing:.1em; }
.rarity.common{ color:#9fb0c8; border-color:rgba(159,176,200,.4); }
.rarity.rare{ color:var(--murasaki); border-color:rgba(138,104,196,.5); background:rgba(138,104,196,.1); }
.rarity.secret{ color:var(--gold); border-color:rgba(227,194,116,.55); background:rgba(227,194,116,.1); }
.owned-tag{
  position:absolute; top:12px; right:12px; font-family:var(--font-jp); font-size:11px; z-index:3;
  color:var(--jade); border:1px solid rgba(111,191,155,.5); border-radius:6px; padding:2px 7px;
  background:rgba(111,191,155,.14);
}

/* ============ МОДАЛКА ============ */
.overlay{
  position:fixed; inset:0; z-index:100; display:none; place-items:center; padding:20px;
  background:rgba(4,5,9,.84); backdrop-filter:blur(10px);
}
.overlay.on{ display:grid; animation:fade .25s both; }
@keyframes fade{ from{opacity:0} to{opacity:1} }
.modal{
  width:min(780px,100%); max-height:88vh; overflow:auto;
  background:linear-gradient(165deg,#161b2c,#0c0f19);
  border:1px solid var(--line); border-radius:22px; padding:30px;
  box-shadow:0 40px 90px -30px #000;
  animation:pop .35s cubic-bezier(.2,1.2,.4,1) both; position:relative;
}
@keyframes pop{ from{opacity:0; transform:translateY(24px) scale(.96)} to{opacity:1; transform:none} }
.modal .x{
  position:absolute; top:14px; right:16px; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--line); background:rgba(255,255,255,.04); color:var(--washi-dim);
  cursor:pointer; font-size:17px; line-height:1; transition:.25s;
}
.modal .x:hover{ color:var(--shu-glow); border-color:var(--shu); transform:rotate(90deg); }
.modal-grid{ display:grid; grid-template-columns:200px 1fr; gap:28px; align-items:start; }
.modal-grid .omamori{ width:100%; filter:drop-shadow(0 20px 34px rgba(0,0,0,.8)); animation:sway 5s ease-in-out infinite; }
@keyframes sway{ 0%,100%{ transform:rotate(-2deg) } 50%{ transform:rotate(2deg) } }
.modal h3{ font-size:27px; color:var(--gold-soft); padding-right:40px; }
.modal .rom{ font-size:10.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--shu-glow); margin-top:5px; }
.lore-box{
  margin-top:16px; padding:14px 16px; border-radius:var(--r-md);
  border-left:3px solid var(--shu); background:rgba(216,64,42,.07);
  font-size:13px; color:var(--washi-dim);
}
.lore-box + .lore-box{ border-left-color:var(--gold); background:rgba(227,194,116,.06); }
.lore-box b{ color:var(--washi); font-weight:600; }
.stat-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.stat{ flex:1 1 120px; padding:11px 13px; border-radius:var(--r-md); border:1px solid var(--line-soft); background:rgba(255,255,255,.03); }
.stat span{ display:block; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--washi-dim); opacity:.7; }
.stat b{ display:block; font-size:15px; color:var(--gold-soft); margin-top:3px; font-family:var(--font-jp); }
.modal-actions{ margin-top:22px; display:flex; gap:12px; flex-wrap:wrap; align-items:center; }

/* ============ ОМИКУДЗИ ============ */
.omikuji-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center; }
.kuji-box{ width:190px; margin:0 auto; cursor:pointer; transition:transform .2s; display:block; }
.kuji-box:hover{ transform:translateY(-4px); }
.kuji-box.shaking{ animation:shake .4s cubic-bezier(.36,.07,.19,.97) 3; }
@keyframes shake{
  10%,90%{transform:translateX(-2px) rotate(-3deg)} 20%,80%{transform:translateX(4px) rotate(4deg)}
  30%,50%,70%{transform:translateX(-7px) rotate(-6deg)} 40%,60%{transform:translateX(7px) rotate(6deg)}
}
.slip{
  background:linear-gradient(175deg,#f7efdd,#e6d8b8); color:#20242e; border-radius:6px;
  padding:22px 24px; box-shadow:0 20px 44px -18px #000; min-height:250px;
  border:1px solid #cdbc95; position:relative; font-family:var(--font-jp);
}
.slip::before{ content:""; position:absolute; inset:7px; border:1px solid rgba(158,42,28,.28); border-radius:3px; pointer-events:none; }
.slip .fortune{ font-size:44px; color:var(--shu-deep); text-align:center; letter-spacing:.1em; margin:4px 0 2px; }
.slip .fortune.bad{ color:#2b2b33; }
.slip .ftxt{ text-align:center; font-size:11px; letter-spacing:.28em; color:#6a6252; text-transform:uppercase; }
.slip hr{ border:0; border-top:1px solid rgba(32,36,46,.18); margin:14px 0; }
.slip .lines{ font-size:13.5px; line-height:1.85; font-family:var(--font-ui); }
.slip .lines b{ color:var(--shu-deep); }
.slip .empty{ text-align:center; color:#8c8574; padding-top:70px; font-family:var(--font-ui); font-size:13px; }
.musubi-rack{ display:flex; gap:6px; flex-wrap:wrap; margin-top:16px; min-height:26px; align-items:flex-start; }
.musubi-rack i{
  display:inline-block; width:9px; height:26px; background:linear-gradient(180deg,#f4ecd8,#cbbd9c);
  border-radius:2px; transform-origin:top center; animation:swayLeaf 3s ease-in-out infinite;
  box-shadow:0 3px 8px rgba(0,0,0,.5);
}
@keyframes swayLeaf{ 0%,100%{transform:rotate(-7deg)} 50%{transform:rotate(7deg)} }

/* ============ ЭМА ============ */
.ema-rack{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(186px,1fr)); gap:18px; margin-top:26px;
  padding-top:26px; border-top:2px solid rgba(227,194,116,.18);
}
.ema{
  position:relative; padding:16px 14px 20px; color:#2a2016; font-size:12.5px;
  background:linear-gradient(170deg,#c99a63,#a97742);
  clip-path:polygon(50% 0%, 100% 17%, 100% 100%, 0% 100%, 0% 17%);
  box-shadow:0 14px 26px -12px rgba(0,0,0,.85);
  transform-origin:top center; animation:swayEma 4.5s ease-in-out infinite; min-height:136px;
}
@keyframes swayEma{ 0%,100%{transform:rotate(-1.6deg)} 50%{transform:rotate(1.6deg)} }
.ema .txt{ margin-top:24px; font-family:var(--font-jp); word-break:break-word; line-height:1.5; }
.ema .who{ position:absolute; bottom:7px; right:12px; font-size:9.5px; opacity:.65; font-family:ui-monospace,monospace; }

textarea, input[type=text], input[type=number]{
  width:100%; background:rgba(0,0,0,.28); border:1px solid var(--line-soft); border-radius:var(--r-md);
  color:var(--washi); padding:13px 15px; font-family:var(--font-ui); font-size:14px; resize:vertical;
}
textarea:focus, input:focus{ outline:none; border-color:var(--shu); box-shadow:0 0 0 3px rgba(216,64,42,.16); }
label.fl{ display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--washi-dim); margin:14px 0 6px; opacity:.8; }

/* ============ ГОСЮИН ============ */
.goshuin-book{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(124px,1fr)); gap:14px;
  background:linear-gradient(170deg,#efe4c8,#ddcfae); padding:20px; border-radius:8px;
  box-shadow:0 26px 50px -24px #000, inset 0 0 40px rgba(140,110,70,.2);
}
.gs{
  aspect-ratio:1; display:grid; place-items:center; border-radius:5px; position:relative;
  background:rgba(255,255,255,.34); border:1px dashed rgba(90,74,50,.32);
}
.gs .seal{
  font-family:var(--font-jp); font-size:26px; color:var(--shu); border:3px solid var(--shu);
  border-radius:6px; padding:6px 8px; transform:rotate(-7deg); line-height:1.1; text-align:center;
  text-shadow:0 0 8px rgba(216,64,42,.3);
}
.gs.locked{ opacity:.4; }
.gs.locked .seal{ color:#7a6a4e; border-color:rgba(122,106,78,.6); border-style:dashed; text-shadow:none; }
.gs small{ position:absolute; bottom:5px; font-size:8.5px; letter-spacing:.14em; color:#6d5f44; text-transform:uppercase; }

/* ============ ХРАНИЛИЩЕ / ОТАКИАГЭ ============ */
.inv{ display:grid; grid-template-columns:repeat(auto-fill,minmax(146px,1fr)); gap:16px; }
.inv-item{ text-align:center; padding:14px 10px; border-radius:var(--r-md); border:1px solid var(--line-soft); background:rgba(255,255,255,.03); }
.inv-item .omamori{ width:72px; }
.inv-item h5{ margin:9px 0 3px; font-family:var(--font-jp); font-size:13.5px; color:var(--gold-soft); }
.inv-item .exp{ font-size:10.5px; color:var(--washi-dim); }
.inv-item .exp.soon{ color:var(--shu-glow); }
.inv-item.burning{ animation:burnAway .9s ease-in forwards; }
@keyframes burnAway{ to{ opacity:0; transform:translateY(-40px) scale(.7); filter:blur(6px) brightness(2.2) sepia(1) } }
.empty-note{ text-align:center; color:var(--washi-dim); opacity:.6; padding:30px; font-size:13.5px; }

/* ============ ТОСТЫ ============ */
.toasts{ position:fixed; right:18px; bottom:18px; z-index:200; display:flex; flex-direction:column; gap:10px; max-width:min(340px,86vw); }
.toast{
  padding:13px 17px; border-radius:var(--r-md); font-size:13px;
  background:linear-gradient(150deg,#1a2035,#11151f); border:1px solid var(--line);
  border-left:3px solid var(--shu); box-shadow:0 18px 34px -16px #000;
  animation:slideIn .35s cubic-bezier(.2,1.2,.4,1) both;
}
.toast.good{ border-left-color:var(--jade); }
.toast.gold{ border-left-color:var(--gold); }
.toast b{ display:block; font-family:var(--font-jp); color:var(--gold-soft); font-size:14px; margin-bottom:2px; }
.toast.out{ animation:slideOut .3s both; }
@keyframes slideOut{ to{opacity:0; transform:translateX(40px)} }

/* ============ ФУТЕР ============ */
footer{ padding:50px 0 34px; border-top:1px solid var(--line-soft); text-align:center; color:var(--washi-dim); font-size:12.5px; }
footer .sim{
  display:inline-block; margin-bottom:14px; padding:7px 15px; border-radius:999px; font-size:11.5px;
  border:1px solid rgba(227,194,116,.35); background:rgba(227,194,116,.08); color:var(--gold-soft);
}
.guji-key{ background:none; border:0; color:var(--washi-dim); opacity:.45; cursor:pointer; font-size:12px; margin-top:14px; font-family:var(--font-ui); }
.guji-key:hover{ opacity:1; color:var(--gold); }

.kv{ display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line-soft); font-size:13px; }
.kv:last-child{ border-bottom:0; }
.kv span{ color:var(--washi-dim); }
.kv b{ color:var(--gold-soft); font-variant-numeric:tabular-nums; }

.note{ font-size:12px; color:var(--washi-dim); opacity:.75; margin-top:10px; }
.tag-stage2{
  display:inline-block; font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--murasaki); border:1px solid rgba(138,104,196,.45); background:rgba(138,104,196,.12);
  padding:3px 9px; border-radius:99px; margin-left:8px; vertical-align:middle;
}
.offer-tiers{ display:flex; gap:10px; flex-wrap:wrap; }

/* ============ АДАПТИВ ============ */
@media (max-width:860px){
  nav.links{ display:none; }
  .omikuji-wrap{ grid-template-columns:1fr; }
  .modal-grid{ grid-template-columns:1fr; }
  .modal-grid .omamori{ width:160px; margin:0 auto; }
  .station{ grid-template-columns:56px 1fr; }
  .station .icon{ width:52px; height:52px; }
  .station .act{ grid-column:1/-1; flex-direction:row; justify-content:flex-start; align-items:center; }
}
@media (max-width:480px){
  section{ padding:58px 0; }
  .amulets{ grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); gap:14px; }
  .amulet-card{ padding:16px 10px 14px; }
  .amulet-card .omamori{ width:88px; }
  .bar-in{ gap:9px; padding:9px 14px; }
  .chip{ padding:6px 10px; font-size:11.5px; }
  .modal{ padding:22px 18px; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.05ms !important; }
}
