:root{
  color-scheme:light only;
  --c-red:#a51f2d;
  --c-red-deep:#7c1220;
  --c-red-dark:#42080f;
  --c-gold:#c9a05a;
  --c-gold-bright:#e8c988;
  --c-gold-deep:#a87f3f;
  --c-ink:#2b1a17;
  --c-ink-soft:#7c5f56;
  --c-navy:#0d2036;
  --c-navy-2:#17375f;
  --c-teal:#3fa89f;
  --c-paper:#f5eedd;
  --c-paper-2:#eaddc2;
  --c-line:rgba(168,127,63,.35);
  --f-title:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --f-kai:"Kaiti SC","STKaiti","KaiTi",serif;
  --f-body:"PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;
  --vh:1vh;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
html{color-scheme:light only;}
body{
  font-family:var(--f-body);
  background:#2a080c;
  color:var(--c-ink);
  overflow:hidden;
  user-select:none;
  -webkit-user-select:none;
  overscroll-behavior:none;
  touch-action:manipulation;
}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit;}
a{text-decoration:none;color:inherit;-webkit-touch-callout:none;}
input{font-family:inherit;}
img{display:block;}

#veil{
  position:fixed;inset:0;z-index:55;pointer-events:none;
  opacity:0;background:transparent;
}
.page-ghost{
  position:absolute;right:12px;bottom:2px;z-index:1;pointer-events:none;
  font-family:var(--f-title);font-size:clamp(72px,20vw,104px);line-height:1;
  letter-spacing:-3px;opacity:.055;color:currentColor;
  -webkit-user-select:none;user-select:none;
}
.glow{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:min(70vw,300px);height:min(70vw,300px);
  background:radial-gradient(circle,rgba(232,201,136,.16),transparent 68%);
  animation:glowDrift 22s ease-in-out infinite alternate;
}
.glow.g2{width:min(56vw,240px);height:min(56vw,240px);background:radial-gradient(circle,rgba(63,168,159,.14),transparent 68%);animation-duration:27s;animation-delay:-9s;}
.glow.g1{top:-90px;left:-70px;}
.glow.g2{bottom:-80px;right:-60px;}
.s-menu .glow,.s-match .glow,.s-gd .glow,.s-poster .glow,.s-refs .glow{background:radial-gradient(circle,rgba(165,31,45,.10),transparent 68%);}
.s-menu .glow.g2,.s-match .glow.g2,.s-gd .glow.g2,.s-poster .glow.g2,.s-refs .glow.g2{background:radial-gradient(circle,rgba(201,160,90,.13),transparent 68%);}
@keyframes glowDrift{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(26px,18px,0) scale(1.12)}
  100%{transform:translate3d(-14px,34px,0) scale(.96)}
}

#loading{
  position:fixed;inset:0;z-index:999;
  background:radial-gradient(circle at 50% 32%,#6e1020 0%,#38050b 72%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
  transition:opacity .7s ease,visibility .7s;
  color:var(--c-gold-bright);
}
#loading.hide{opacity:0;visibility:hidden;pointer-events:none;}
.load-seal{
  width:64px;height:64px;border:1.5px solid var(--c-gold);border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-title);font-size:30px;color:var(--c-gold-bright);
  background:rgba(255,255,255,.03);
  animation:sealBreathe 2.4s ease-in-out infinite;
}
#loading p{font-size:12px;letter-spacing:6px;opacity:.85;}
@keyframes sealBreathe{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(201,160,90,0)}50%{transform:scale(1.05);box-shadow:0 0 30px 2px rgba(201,160,90,.28)}}

.topbar{position:fixed;top:0;left:0;right:0;z-index:60;padding-top:calc(var(--safe-top) + 6px);pointer-events:none;}
.topbar .progress{height:2px;background:rgba(255,255,255,.14);}
.topbar .progress i{
  display:block;height:100%;width:9%;
  background:linear-gradient(90deg,var(--c-gold-deep),var(--c-gold-bright));
  border-radius:0 2px 2px 0;transition:width .5s cubic-bezier(.22,.61,.36,1);
}
.topbar-row{display:flex;align-items:center;justify-content:space-between;padding:8px 15px 0;}
.brand{font-family:var(--f-title);font-weight:700;font-size:13px;letter-spacing:4px;color:rgba(255,250,240,.95);text-shadow:0 1px 5px rgba(0,0,0,.45);}
.screen-count{font-size:10px;color:rgba(255,250,240,.8);letter-spacing:1px;}
.screen-count b{color:var(--c-gold-bright);font-weight:700;}
.sound-btn{
  pointer-events:auto;width:32px;height:32px;border-radius:50%;
  background:rgba(0,0,0,.3);color:rgba(255,250,240,.95);
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(4px);transition:transform .2s;
}
.sound-btn:active{transform:scale(.9);}
.sound-btn .s-off{display:none;}
.sound-btn.muted .s-on{display:none;}
.sound-btn.muted .s-off{display:block;}

.dots{position:fixed;right:9px;top:50%;transform:translateY(-50%);z-index:60;display:flex;flex-direction:column;gap:6px;}
.dots button{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.32);transition:all .35s;padding:0;}
.dots button.on{background:var(--c-gold-bright);height:16px;border-radius:4px;box-shadow:0 0 8px rgba(232,201,136,.6);}

#stage{height:100%;transition:transform .5s cubic-bezier(.22,.75,.25,1);will-change:transform;}
#stage.dragging{transition:none !important;}
.scrollable{overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.scrollable::-webkit-scrollbar{display:none;}

.screen{
  position:relative;height:calc(var(--vh) * 100);overflow:hidden;
  display:flex;flex-direction:column;
  contain:layout paint;
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
  transform:translateZ(0);
}
.screen:not(.active){pointer-events:none;}
.screen-inner{
  flex:1;min-height:0;width:100%;max-width:520px;margin:0 auto;
  padding:calc(var(--safe-top) + 54px) 18px calc(var(--safe-bottom) + 16px);
  display:flex;flex-direction:column;align-items:center;
  position:relative;z-index:2;
}
.screen.active .screen-inner{animation:screenIn .42s cubic-bezier(.22,.8,.25,1) both;}
@keyframes screenIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.s-cover{
  background:
    radial-gradient(120% 85% at 50% 6%,#8f1626 0%,#5e0a16 48%,#33040a 100%);
  color:#fdf6e8;
}
.s-menu{background:linear-gradient(180deg,var(--c-paper),#f0e5cd 62%,#e9d9ba);}
.s-menu::after{content:"";position:absolute;inset:0;background-image:var(--grain);pointer-events:none;}
.s-spirit{
  background:
    radial-gradient(90% 55% at 86% -4%,rgba(63,168,159,.12),transparent 60%),
    radial-gradient(120% 90% at 12% 100%,rgba(165,31,45,.25),transparent 55%),
    linear-gradient(165deg,#12294a 0%,#0d2036 58%,#24070d 100%);
  color:#fdf6e8;
}
.s-match{background:linear-gradient(180deg,var(--c-paper),#efe2c6);}
.s-match::after{content:"";position:absolute;inset:0;background-image:var(--grain);pointer-events:none;}
.s-sz{
  background:
    radial-gradient(80% 50% at 18% 100%,rgba(63,168,159,.1),transparent 60%),
    linear-gradient(168deg,#10294c 0%,#0d2036 62%,#1d0a10 100%);
  color:#fdf6e8;
}
.s-gd{background:linear-gradient(180deg,var(--c-paper),#eedfc0);}
.s-gd::after{content:"";position:absolute;inset:0;background-image:var(--grain);pointer-events:none;}
.s-chip{
  background:
    radial-gradient(70% 42% at 82% -2%,rgba(63,168,159,.13),transparent 55%),
    linear-gradient(162deg,#102a4e 0%,#0a1a2e 62%,#1c0810 100%);
  color:#fdf6e8;
}
.s-quiz{
  background:radial-gradient(115% 80% at 50% 8%,#8f1626 0%,#63101d 55%,#35050c 100%);
  color:#fdf6e8;
}
.s-poster{background:linear-gradient(180deg,var(--c-paper),#f0e2c3);}
.s-poster::after{content:"";position:absolute;inset:0;background-image:var(--grain);pointer-events:none;}
.s-share{
  background:radial-gradient(100% 68% at 50% -2%,#7e1220 0%,#4e0810 62%,#2e050a 100%);
  color:#fdf6e8;
}
.s-refs{background:linear-gradient(180deg,var(--c-paper),#f0e2c4);}
.s-refs::after{content:"";position:absolute;inset:0;background-image:var(--grain);pointer-events:none;}

.s-spirit::before,.s-chip::before,.s-sz::before,.s-share::before,.s-cover::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='rgba(201,160,90,0.11)' stroke-width='1'%3E%3Cpath d='M0 34h34v-16h26'/%3E%3Ccircle cx='60' cy='18' r='3'/%3E%3Cpath d='M0 104h52v16h20'/%3E%3Ccircle cx='72' cy='120' r='3'/%3E%3Cpath d='M140 50h-34v22h-24'/%3E%3Ccircle cx='82' cy='72' r='3'/%3E%3Cpath d='M140 116h-46v-14h-22'/%3E%3Cpath d='M34 140v-34h22v-26'/%3E%3Cpath d='M104 0v26h-20v22'/%3E%3C/g%3E%3C/svg%3E");
}

.sec-head{text-align:center;margin-bottom:15px;flex-shrink:0;width:100%;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:10px;letter-spacing:4px;color:var(--c-gold-deep);
  margin-bottom:8px;
}
.eyebrow::before,.eyebrow::after{content:"";width:26px;height:1px;background:var(--c-gold-deep);opacity:.6;}
.s-menu .eyebrow,.s-match .eyebrow,.s-gd .eyebrow,.s-poster .eyebrow,.s-refs .eyebrow{color:#9a722e;}
.s-menu .eyebrow::before,.s-menu .eyebrow::after,.s-match .eyebrow::before,.s-match .eyebrow::after,.s-gd .eyebrow::before,.s-gd .eyebrow::after,.s-poster .eyebrow::before,.s-poster .eyebrow::after,.s-refs .eyebrow::before,.s-refs .eyebrow::after{background:#9a722e;}
.sec-head h2{
  font-family:var(--f-title);font-weight:700;font-size:clamp(24px,7vw,30px);
  letter-spacing:6px;line-height:1.25;
}
.sec-head .rule{
  display:flex;align-items:center;justify-content:center;gap:8px;margin:9px auto 0;
  color:var(--c-gold-deep);
}
.sec-head .rule::before,.sec-head .rule::after{content:"";height:1px;width:44px;background:linear-gradient(90deg,transparent,var(--c-gold-deep));}
.sec-head .rule::after{background:linear-gradient(90deg,var(--c-gold-deep),transparent);}
.sec-head .rule i{font-style:normal;font-size:7px;}
.sec-head p{margin-top:8px;font-size:12.5px;color:var(--c-ink-soft);letter-spacing:1.5px;line-height:1.8;}
.s-spirit .sec-head p,.s-sz .sec-head p,.s-chip .sec-head p,.s-quiz .sec-head p,.s-share .sec-head p{color:rgba(253,246,232,.7);}
.s-quiz .sec-head h2,.s-spirit .sec-head h2,.s-sz .sec-head h2,.s-chip .sec-head h2,.s-share .sec-head h2{color:#fdf6e8;text-shadow:0 2px 12px rgba(0,0,0,.4);}
.s-quiz .eyebrow,.s-spirit .eyebrow,.s-sz .eyebrow,.s-chip .eyebrow,.s-share .eyebrow{color:var(--c-gold-bright);}
.s-quiz .eyebrow::before,.s-quiz .eyebrow::after,.s-spirit .eyebrow::before,.s-spirit .eyebrow::after,.s-sz .eyebrow::before,.s-sz .eyebrow::after,.s-chip .eyebrow::before,.s-chip .eyebrow::after,.s-share .eyebrow::before,.s-share .eyebrow::after{background:var(--c-gold-bright);}
.s-quiz .sec-head .rule,.s-spirit .sec-head .rule,.s-sz .sec-head .rule,.s-chip .sec-head .rule,.s-share .sec-head .rule{color:var(--c-gold-bright);}
.s-quiz .sec-head .rule::before,.s-quiz .sec-head .rule::after,.s-spirit .sec-head .rule::before,.s-spirit .sec-head .rule::after,.s-sz .sec-head .rule::before,.s-sz .sec-head .rule::after,.s-chip .sec-head .rule::before,.s-chip .sec-head .rule::after,.s-share .sec-head .rule::before,.s-share .sec-head .rule::after{background:linear-gradient(90deg,transparent,rgba(232,201,136,.8));}
.s-quiz .sec-head .rule::after,.s-spirit .sec-head .rule::after,.s-sz .sec-head .rule::after,.s-chip .sec-head .rule::after,.s-share .sec-head .rule::after{background:linear-gradient(90deg,rgba(232,201,136,.8),transparent);}

.hint{margin-top:12px;text-align:center;font-size:11.5px;line-height:1.9;color:var(--c-ink-soft);letter-spacing:1.5px;flex-shrink:0;}
.s-spirit .hint,.s-sz .hint,.s-chip .hint{color:rgba(253,246,232,.55);}

.reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease;}
.screen.active .reveal{opacity:1;transform:none;}
.screen.active .reveal.d1{transition-delay:.08s;}
.screen.active .reveal.d2{transition-delay:.16s;}
.screen.active .reveal.d3{transition-delay:.24s;}

.seal{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--f-title);font-weight:700;
  color:#fdf3e4;background:linear-gradient(160deg,#b12634,#8e1320);
  border:2px solid rgba(253,243,228,.85);
  border-radius:10px;box-shadow:0 3px 10px rgba(0,0,0,.3),inset 0 0 0 1.5px #8e1320;
  line-height:1;
}

.s-cover{justify-content:center;}
#fx-canvas{position:absolute;inset:0;z-index:1;}
.cover-inner{
  position:relative;z-index:2;text-align:center;
  padding:calc(var(--safe-top) + 42px) 26px calc(var(--safe-bottom) + 30px);
  display:flex;flex-direction:column;align-items:center;
}
.cover-badge{
  font-size:11.5px;letter-spacing:5px;color:var(--c-gold-bright);
  display:flex;align-items:center;gap:12px;margin-bottom:6.4vh;
  animation:fadeDown .8s ease both;
}
.cover-badge::before,.cover-badge::after{content:"";height:1px;width:34px;background:linear-gradient(90deg,transparent,rgba(232,201,136,.75));}
.cover-badge::after{background:linear-gradient(90deg,rgba(232,201,136,.75),transparent);}
.cover-title{position:relative;display:flex;flex-direction:column;gap:12px;animation:fadeDown .8s .1s ease both;}
.cover-title .seal{
  position:absolute;right:-13px;top:-9px;width:44px;height:44px;font-size:15px;
  letter-spacing:1px;transform:rotate(9deg);flex-direction:column;line-height:1.25;
  animation:sealPop .7s .85s cubic-bezier(.2,1.6,.4,1) both;
}
@keyframes sealPop{from{opacity:0;transform:rotate(9deg) scale(.4)}to{opacity:1;transform:rotate(9deg) scale(1)}}
.ct-main{
  font-family:var(--f-title);font-weight:700;
  font-size:clamp(54px,15vw,84px);letter-spacing:12px;text-indent:12px;
  background:linear-gradient(180deg,#f3dfae 0%,#d9b268 46%,#b3873e 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 5px 16px rgba(0,0,0,.5));
}
.ct-sub{
  font-family:var(--f-kai);font-size:clamp(18px,5.2vw,25px);letter-spacing:8px;color:#f0d9a4;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
.cover-rule{
  display:flex;align-items:center;gap:9px;margin-top:3.6vh;color:var(--c-gold-bright);opacity:.9;
  animation:fadeDown .8s .22s ease both;
}
.cover-rule::before,.cover-rule::after{content:"";height:1px;width:56px;background:linear-gradient(90deg,transparent,rgba(232,201,136,.8));}
.cover-rule::after{background:linear-gradient(90deg,rgba(232,201,136,.8),transparent);}
.cover-rule i{font-style:normal;font-size:8px;}
.cover-slogan{
  margin-top:3.4vh;font-family:var(--f-kai);font-size:15.5px;line-height:2.15;color:rgba(253,246,232,.94);
  letter-spacing:3px;animation:fadeDown .8s .3s ease both;
}
.cover-desc{
  margin-top:2.2vh;font-size:11.5px;line-height:1.9;color:rgba(253,246,232,.6);
  letter-spacing:2.5px;animation:fadeDown .8s .38s ease both;
}
.btn-main{
  position:relative;overflow:hidden;
  margin-top:4vh;display:inline-flex;align-items:center;gap:10px;
  padding:14px 36px;border-radius:999px;
  color:#4e0a12;font-size:16px;font-weight:700;letter-spacing:4px;text-indent:4px;
  background:linear-gradient(135deg,#f2dcae,#d9b268 55%,#c69a4c);
  border:1px solid rgba(255,244,214,.7);
  box-shadow:0 7px 24px rgba(201,160,90,.4),inset 0 1px 0 rgba(255,255,255,.55);
  animation:fadeDown .8s .46s ease both;
  transition:transform .15s ease;
}
.btn-main:active{transform:scale(.965);}
.btn-main::after{
  content:"";position:absolute;top:0;left:-80%;width:45%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);
  animation:btnSheen 2.8s 1.4s ease both;
}
@keyframes btnSheen{0%{left:-80%}60%{left:130%}100%{left:130%}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.scroll-hint{
  margin-top:5vh;display:flex;flex-direction:column;align-items:center;gap:8px;
  color:rgba(253,246,232,.55);animation:fadeDown .8s .54s ease both;
}
.scroll-hint p{font-size:10px;letter-spacing:5px;}
.scroll-line{width:1px;height:30px;background:rgba(232,201,136,.5);position:relative;overflow:hidden;}
.scroll-line i{position:absolute;top:-8px;left:0;width:3px;height:8px;border-radius:2px;background:var(--c-gold-bright);animation:lineDrop 1.8s ease-in-out infinite;}
@keyframes lineDrop{0%{top:-8px;opacity:0}25%{opacity:1}85%{top:30px;opacity:0}100%{top:30px;opacity:0}}
.cover-foot{
  position:absolute;bottom:calc(var(--safe-bottom) + 12px);left:0;right:0;z-index:2;
  text-align:center;font-size:10px;letter-spacing:3px;color:rgba(253,246,232,.4);line-height:2;
}

.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;}
.menu-card{
  position:relative;border-radius:14px;padding:14px 13px 12px;
  background:rgba(255,253,247,.9);border:1px solid rgba(168,127,63,.24);
  box-shadow:0 4px 14px rgba(120,60,20,.07);
  display:flex;flex-direction:column;gap:4px;overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.menu-card:active{transform:scale(.965);box-shadow:0 6px 18px rgba(120,60,20,.14);}
.menu-card.wide{grid-column:1 / -1;flex-direction:row;align-items:center;gap:12px;padding:13px 15px;}
.menu-card.wide .mc-mid{flex:1;}
.menu-card::before{
  content:"";position:absolute;left:0;top:0;width:34px;height:2px;background:var(--c-gold-deep);opacity:.7;
}
.mc-top{display:flex;align-items:center;gap:8px;}
.mc-icon{color:var(--c-red);flex:none;}
.mc-icon svg{display:block;}
.mc-num{
  font-family:var(--f-title);font-size:11px;color:var(--c-gold-deep);
  border:1px solid rgba(168,127,63,.5);border-radius:6px;padding:1px 5px;letter-spacing:1px;
}
.menu-card b{font-family:var(--f-title);font-size:16px;letter-spacing:3px;color:var(--c-red-deep);}
.menu-card p{font-size:11px;color:var(--c-ink-soft);line-height:1.55;margin-top:2px;}
.menu-card i{font-size:10px;color:#a8845a;font-style:normal;letter-spacing:1.5px;margin-top:auto;padding-top:5px;}
.menu-card.wide i{flex:none;}
.mc-arrow{color:var(--c-gold-deep);flex:none;font-size:13px;transition:transform .2s;}
.menu-card:active .mc-arrow{transform:translateX(3px);}
.menu-tip{margin-top:13px;font-size:10.5px;color:var(--c-ink-soft);letter-spacing:2px;flex-shrink:0;}
.screen.active .menu-card:nth-child(odd){transition-delay:.04s;}
.screen.active .menu-card:nth-child(even){transition-delay:.11s;}

.torch-row{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin:2px 0 10px;flex-shrink:0;}
.torch-row .t{
  width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  transition:all .4s;
}
.torch-row .t svg{width:15px;height:15px;display:block;}
.torch-row .t svg .f{fill:rgba(255,255,255,.25);transition:fill .4s;}
.torch-row .t.on{background:rgba(201,160,90,.16);border-color:rgba(232,201,136,.75);box-shadow:0 0 10px rgba(232,201,136,.45);}
.torch-row .t.on svg .f{fill:var(--c-gold-bright);animation:flameFlicker 1.6s ease-in-out infinite;}
.torch-row .t.on{animation:torchPop .45s ease;}
@keyframes flameFlicker{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes torchPop{0%{transform:scale(.4)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.torch-count{margin-left:5px;font-size:11px;color:rgba(253,246,232,.72);letter-spacing:1px;align-self:center;}
.torch-count b{color:var(--c-gold-bright);font-size:14px;}

.card-track{width:100%;flex:1;min-height:0;display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;padding:6px 6px 16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.card-track::-webkit-scrollbar{display:none;}
.spirit-card{flex:0 0 62vw;max-width:250px;height:min(38vh,300px);min-height:220px;scroll-snap-align:center;perspective:1000px;}
.sc-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.35,.08,.2,1);}
.spirit-card.flipped .sc-inner{transform:rotateY(180deg);}
.sc-face{
  position:absolute;inset:0;border-radius:16px;padding:16px;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  display:flex;flex-direction:column;
}
.sc-front{
  background:
    radial-gradient(circle at 50% 16%,rgba(165,31,45,.07),transparent 48%),
    linear-gradient(165deg,#fffdf6,#f6ecd6);
  border:1px solid rgba(168,127,63,.5);
  box-shadow:0 10px 26px rgba(0,0,0,.38);
  align-items:center;text-align:center;justify-content:center;
}
.sc-front::before,.sc-front::after{
  content:"";position:absolute;width:14px;height:14px;border:1.5px solid rgba(168,127,63,.55);
}
.sc-front::before{left:9px;top:9px;border-right:none;border-bottom:none;border-top-left-radius:6px;}
.sc-front::after{right:9px;bottom:9px;border-left:none;border-top:none;border-bottom-right-radius:6px;}
.sc-front .sc-era{font-size:10px;letter-spacing:2px;color:#9a722e;border:1px solid rgba(154,114,46,.5);border-radius:999px;padding:3px 10px;margin-bottom:11px;}
.sc-front .sc-num{position:absolute;top:11px;left:15px;font-family:var(--f-title);font-size:12px;color:rgba(154,114,46,.6);letter-spacing:1px;}
.sc-front h3{font-family:var(--f-title);font-size:clamp(21px,6.4vw,26px);letter-spacing:4px;color:var(--c-red-deep);line-height:1.4;}
.sc-front .sc-year{font-size:11.5px;color:var(--c-ink-soft);letter-spacing:1.5px;margin-top:9px;}
.sc-front .sc-keys{margin-top:13px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;}
.sc-front .sc-keys span{font-size:10.5px;color:#7c5220;background:rgba(201,160,90,.22);border-radius:999px;padding:4px 10px;letter-spacing:1px;}
.sc-flip-tip{position:absolute;bottom:11px;left:0;right:0;text-align:center;font-size:10px;color:#a8845a;letter-spacing:3px;}
.sc-back{
  background:linear-gradient(168deg,#7c1220,#42080f);
  border:1px solid rgba(232,201,136,.55);
  box-shadow:0 10px 26px rgba(0,0,0,.42);
  transform:rotateY(180deg);
  color:#fdf6e8;overflow-y:auto;scrollbar-width:none;
}
.sc-back::-webkit-scrollbar{display:none;}
.sc-back h3{font-family:var(--f-title);font-size:18px;letter-spacing:4px;color:var(--c-gold-bright);padding-bottom:9px;border-bottom:1px dashed rgba(232,201,136,.4);margin-bottom:10px;}
.sc-back p{font-size:11.8px;line-height:1.9;letter-spacing:.5px;color:rgba(253,246,232,.93);}
.sc-back .sc-lit{color:var(--c-gold-bright);}

.match-progress{font-size:12px;letter-spacing:2px;color:var(--c-ink-soft);margin-bottom:10px;flex-shrink:0;}
.match-progress b{color:var(--c-red);font-size:16px;}
.match-wrap{width:100%;flex:1;min-height:0;display:flex;gap:10px;padding-bottom:6px;}
.match-col{flex:1;display:flex;flex-direction:column;gap:9px;min-width:0;}
.match-col h4{text-align:center;font-size:11px;letter-spacing:3px;color:#9a722e;margin-bottom:2px;flex-shrink:0;font-weight:600;}
.match-item{
  flex:1;min-height:58px;border-radius:12px;padding:9px 10px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:12.5px;line-height:1.5;letter-spacing:.5px;
  background:rgba(255,253,247,.92);border:1.5px solid rgba(168,127,63,.25);
  box-shadow:0 3px 10px rgba(120,60,20,.06);
  transition:all .22s ease;position:relative;cursor:pointer;
}
.match-item.l{font-family:var(--f-title);font-weight:700;font-size:14px;letter-spacing:2px;color:var(--c-red-deep);}
.match-item.r{color:var(--c-ink-soft);}
.match-item.sel{border-color:var(--c-red);box-shadow:0 0 0 3px rgba(165,31,45,.14);transform:translateY(-2px);}
.match-item.r.sel{border-color:var(--c-red);}
.match-item.ok{border-color:#3d8a5b;background:#eef5ec;color:#2f6b45;pointer-events:none;box-shadow:0 0 0 3px rgba(61,138,91,.13);}
.match-item.ok::after{content:"✓";position:absolute;top:-8px;right:-6px;width:20px;height:20px;border-radius:50%;background:#3d8a5b;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;}
.match-item.l.ok{background:#eef5ec;color:#2f6b45;}
.match-item.shake{animation:shake .45s;}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.btn-line{
  margin-top:12px;padding:10px 28px;border-radius:999px;
  border:1.5px solid rgba(154,114,46,.55);color:#7c5220;
  font-size:12.5px;letter-spacing:4px;text-indent:4px;background:rgba(255,253,247,.55);
  flex-shrink:0;transition:transform .15s ease;
}
.btn-line:active{transform:scale(.95);}
.s-share .btn-line,.s-quiz .btn-line{border-color:rgba(232,201,136,.65);color:var(--c-gold-bright);background:rgba(0,0,0,.22);}

.sz-map{
  position:relative;width:100%;height:clamp(230px,42vh,290px);flex-shrink:0;
  border-radius:16px;overflow:hidden;
  background:radial-gradient(75% 65% at 50% 40%,#122c52 0%,#0a1d36 78%);
  border:1px solid rgba(63,168,159,.3);
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
#sz-svg{position:absolute;inset:0;width:100%;height:100%;display:block;}
.map-pin{cursor:pointer;}
.sz-map{cursor:default;}
.map-label{position:absolute;font-size:9.5px;letter-spacing:3px;color:rgba(63,168,159,.75);pointer-events:none;transform:translate(-50%,-50%);}
.map-label.lbl-land{color:rgba(232,201,136,.8);}
.sz-sites{
  width:100%;margin-top:12px;display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0;
}
.sz-sites::-webkit-scrollbar{display:none;}
.site-chip{
  flex:none;display:flex;align-items:center;gap:7px;scroll-snap-align:start;
  border-radius:999px;padding:7px 12px 7px 8px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  transition:all .22s;
}
.site-chip .no{
  width:19px;height:19px;border-radius:50%;flex:none;
  background:rgba(255,255,255,.1);color:rgba(253,246,232,.8);
  font-size:10px;font-family:var(--f-title);display:flex;align-items:center;justify-content:center;
}
.site-chip b{font-size:12px;letter-spacing:1px;color:rgba(253,246,232,.9);font-weight:600;}
.site-chip small{font-size:9.5px;color:rgba(253,246,232,.5);letter-spacing:1px;}
.site-chip.on{background:rgba(201,160,90,.18);border-color:rgba(232,201,136,.75);box-shadow:0 0 12px rgba(232,201,136,.25);}
.site-chip.on .no{background:var(--c-gold-bright);color:#4e0a12;}

.gd-timeline{width:100%;flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;padding:4px 2px 10px;}
.gd-timeline::-webkit-scrollbar{display:none;}
.gd-item{position:relative;padding:0 0 8px 34px;cursor:pointer;}
.gd-item::before{content:"";position:absolute;left:11px;top:20px;bottom:-2px;width:1.5px;background:linear-gradient(180deg,rgba(165,31,45,.45),rgba(168,127,63,.25));}
.gd-item:last-child::before{display:none;}
.gd-dot{position:absolute;left:4px;top:10px;width:16px;height:16px;border-radius:50%;background:rgba(255,253,247,.9);border:2.5px solid var(--c-red);box-shadow:0 2px 8px rgba(165,31,45,.3);z-index:1;transition:all .3s;}
.gd-item.open .gd-dot{background:var(--c-red);box-shadow:0 0 0 5px rgba(165,31,45,.15);}
.gd-head{display:flex;align-items:baseline;gap:10px;background:rgba(255,253,247,.92);border:1px solid rgba(168,127,63,.2);border-radius:12px;padding:9px 13px;box-shadow:0 3px 10px rgba(120,60,20,.06);transition:all .25s;}
.gd-item.open .gd-head{border-color:var(--c-red);box-shadow:0 5px 16px rgba(165,31,45,.16);}
.gd-year{font-family:var(--f-title);font-weight:700;font-size:15.5px;color:var(--c-red);letter-spacing:1px;flex:none;}
.gd-name{font-size:13.5px;font-weight:700;letter-spacing:1.5px;color:var(--c-ink);flex:1;}
.gd-arrow{font-size:14px;color:#a8845a;transition:transform .3s,color .3s;flex:none;line-height:1;}
.gd-item:active .gd-arrow{color:var(--c-red);transform:translateX(2px);}
.gd-item.open .gd-arrow{transform:rotate(180deg);color:var(--c-red);}
.gd-body{max-height:0;overflow:hidden;transition:max-height .45s ease;background:rgba(255,253,247,.94);border-radius:0 0 12px 12px;margin-left:6px;}
.gd-body-inner{padding:10px 13px 12px;}
.gd-body p{font-size:12px;line-height:1.85;color:var(--c-ink-soft);letter-spacing:.5px;}
.gd-body .gd-tag{display:inline-block;margin-bottom:6px;font-size:10px;letter-spacing:2.5px;color:#7c5220;background:rgba(201,160,90,.24);border-radius:999px;padding:2px 10px;}

.chip-track{width:100%;display:flex;gap:10px;overflow-x:auto;padding:4px 4px 10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0;}
.chip-track::-webkit-scrollbar{display:none;}
.chip-milestone{
  flex:0 0 68vw;max-width:280px;scroll-snap-align:center;
  background:linear-gradient(165deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  border:1px solid rgba(63,168,159,.32);border-radius:14px;padding:12px 14px;
  backdrop-filter:blur(2px);position:relative;
  text-align:left;font-family:inherit;color:inherit;cursor:pointer;
  transition:transform .15s ease,border-color .2s ease;
}
.chip-milestone:active{transform:scale(.98);border-color:rgba(232,201,136,.6);}
.cm-more{display:block;margin-top:7px;font-size:10px;letter-spacing:2px;color:rgba(232,201,136,.68);}
.chip-milestone::before{content:"";position:absolute;left:0;top:0;width:30px;height:2px;background:var(--c-teal);opacity:.8;}
.chip-milestone .cm-year{font-family:var(--f-title);font-size:20px;font-weight:700;color:var(--c-teal);letter-spacing:1px;}
.chip-milestone h4{font-size:13.5px;letter-spacing:2px;color:var(--c-gold-bright);margin:4px 0 5px;}
.chip-milestone p{font-size:11.5px;line-height:1.75;color:rgba(253,246,232,.78);}

.fab-cinema{
  width:100%;margin-top:10px;flex-shrink:0;position:relative;
  border-radius:16px;padding:12px 13px 13px;
  background:
    radial-gradient(120% 80% at 50% -10%,rgba(63,168,159,.10),transparent 55%),
    rgba(6,14,26,.62);
  border:1px solid rgba(63,168,159,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  overflow:hidden;
}
.fab-cinema::before{content:"";position:absolute;left:0;top:0;width:34px;height:2px;background:var(--c-gold);opacity:.85;}
.cinema-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;position:relative;z-index:1;}
.cinema-phases{display:flex;align-items:center;gap:4px;}
.cp{
  font-size:10px;letter-spacing:2px;padding:3px 8px;border-radius:999px;
  color:rgba(253,246,232,.42);border:1px solid rgba(255,255,255,.12);
  transition:all .35s ease;white-space:nowrap;
}
.cp.done{color:rgba(127,219,200,.85);border-color:rgba(63,168,159,.45);}
.cp.on{color:#4e0a12;background:linear-gradient(135deg,#f2dcae,#d9b268);border-color:var(--c-gold-bright);font-weight:700;box-shadow:0 0 12px rgba(232,201,136,.35);}
.cinema-tag{font-size:8.5px;letter-spacing:2px;color:rgba(232,201,136,.55);border:1px solid rgba(232,201,136,.3);border-radius:4px;padding:2px 5px;}
.cinema-stage{position:relative;width:100%;height:clamp(132px,23vh,168px);border-radius:10px;overflow:hidden;background:radial-gradient(90% 90% at 50% 40%,#0c1d31,#071321);}
#fab-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}
.cinema-caption{display:flex;align-items:center;gap:8px;margin-top:9px;min-height:18px;}
.cc-no{font-family:var(--f-title);font-size:11px;color:var(--c-gold-bright);border:1px solid rgba(232,201,136,.45);border-radius:4px;padding:1px 5px;letter-spacing:1px;}
.cc-text{font-size:11.5px;letter-spacing:1px;color:rgba(253,246,232,.82);transition:opacity .3s;}
.cinema-bar{height:2px;background:rgba(255,255,255,.1);border-radius:2px;margin-top:9px;overflow:hidden;}
.cinema-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c-gold-deep),var(--c-gold-bright));border-radius:2px;}
.cinema-replay{
  display:block;width:100%;margin-top:9px;padding:8px;border-radius:999px;
  border:1px solid rgba(232,201,136,.5);color:var(--c-gold-bright);
  font-size:11px;letter-spacing:3px;background:rgba(232,201,136,.08);
  transition:transform .15s ease;
}
.cinema-replay[hidden]{display:none;}
.cinema-replay:active{transform:scale(.97);}

.quiz-box{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;}
.quiz-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-shrink:0;}
.quiz-no{font-size:11.5px;letter-spacing:2px;color:rgba(253,246,232,.75);}
.quiz-no b{color:var(--c-gold-bright);font-size:15px;}
.quiz-score{font-size:11.5px;letter-spacing:1px;color:rgba(253,246,232,.75);}
.quiz-score b{color:var(--c-gold-bright);font-size:15px;}
.quiz-dots{display:flex;gap:4px;}
.quiz-dots i{width:13px;height:4px;border-radius:2px;background:rgba(255,255,255,.22);transition:all .3s;}
.quiz-dots i.cur{background:var(--c-gold-bright);}
.quiz-dots i.right{background:#5fbf85;}
.quiz-dots i.wrong{background:#e87c70;}
.quiz-card{
  flex:1;min-height:0;border-radius:16px;padding:16px;
  background:rgba(255,251,240,.97);color:var(--c-ink);
  display:flex;flex-direction:column;
  box-shadow:0 12px 32px rgba(0,0,0,.3);
  overflow-y:auto;scrollbar-width:none;
}
.quiz-card::-webkit-scrollbar{display:none;}
.qc-tag{align-self:flex-start;font-size:10px;letter-spacing:2.5px;color:#7c5220;background:rgba(201,160,90,.26);border-radius:999px;padding:3px 11px;margin-bottom:10px;}
.qc-q{font-family:var(--f-title);font-size:clamp(15.5px,4.6vw,18px);font-weight:700;line-height:1.65;letter-spacing:1px;margin-bottom:14px;}
.qc-opts{display:flex;flex-direction:column;gap:9px;}
.qc-opt{
  display:flex;align-items:center;gap:10px;text-align:left;
  border:1.5px solid rgba(168,127,63,.25);border-radius:11px;padding:11px 13px;
  font-size:13.5px;line-height:1.5;letter-spacing:.5px;color:var(--c-ink);
  background:#fff;transition:all .18s;
}
.qc-opt .ol{flex:none;width:23px;height:23px;border-radius:50%;border:1.5px solid rgba(168,127,63,.5);display:flex;align-items:center;justify-content:center;font-size:11.5px;color:#9a722e;font-weight:700;font-family:var(--f-title);}
.qc-opt:active{transform:scale(.985);}
.qc-opt.right{background:#eef5ec;border-color:#3d8a5b;color:#2f6b45;}
.qc-opt.right .ol{background:#3d8a5b;border-color:#3d8a5b;color:#fff;}
.qc-opt.wrong{background:#fdefec;border-color:#d05448;color:#9c2418;animation:shake .4s;}
.qc-opt.wrong .ol{background:#d05448;border-color:#d05448;color:#fff;}
.qc-opt.dim{opacity:.5;}
.qc-opt:disabled{pointer-events:none;}
.qc-next{
  margin-top:12px;padding:12px;border-radius:999px;font-size:14.5px;font-weight:700;letter-spacing:4px;text-indent:4px;
  background:linear-gradient(135deg,#f2dcae,#d9b268);color:#4e0a12;flex-shrink:0;
  border:1px solid rgba(255,244,214,.6);box-shadow:0 5px 16px rgba(201,160,90,.4);
}
.qc-next:active{transform:scale(.97);}
.qc-next[hidden]{display:none;}
.quiz-result{text-align:center;}
.medal{
  width:78px;height:78px;margin:4px auto 0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;position:relative;
  animation:torchPop .6s ease;
}
.medal i{
  width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-title);font-style:normal;font-size:22px;font-weight:700;
  border:1px dashed rgba(255,255,255,.55);
}
.medal.m-gold{background:radial-gradient(circle at 34% 30%,#f2dcae,#c9a05a 62%,#a87f3f);}
.medal.m-gold i{background:radial-gradient(circle at 34% 30%,#e0b97c,#a87f3f);color:#fff8e6;text-shadow:0 1px 3px rgba(0,0,0,.3);}
.medal.m-silver{background:radial-gradient(circle at 34% 30%,#e8e6e0,#b9b6ae 62%,#8f8c84);}
.medal.m-silver i{background:radial-gradient(circle at 34% 30%,#c9c6bd,#96938a);color:#fff;}
.medal.m-bronze{background:radial-gradient(circle at 34% 30%,#e8c9a8,#c08a5c 62%,#96623a);}
.medal.m-bronze i{background:radial-gradient(circle at 34% 30%,#c89c72,#96623a);color:#fff6ea;}
.medal.m-seed{background:radial-gradient(circle at 34% 30%,#e3dccb,#b9ae93 62%,#8d8266);}
.medal.m-seed i{background:radial-gradient(circle at 34% 30%,#c4b998,#8d8266);color:#fff8ea;}
.quiz-result h3{font-family:var(--f-title);font-size:23px;letter-spacing:5px;color:var(--c-red-deep);margin:10px 0 6px;}
.quiz-result .qr-score{font-size:13px;color:var(--c-ink-soft);letter-spacing:1.5px;line-height:2;}
.quiz-result .qr-score b{color:var(--c-red);font-size:20px;}
.quiz-result .qr-slogan{margin:12px 0;padding:10px;border-radius:11px;font-size:12.5px;line-height:1.9;background:rgba(201,160,90,.22);color:#6d4a15;letter-spacing:.5px;}
.quiz-result .btn-line{margin-top:4px;}

.poster-form{width:100%;display:flex;flex-direction:column;gap:14px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field>span{font-size:12px;letter-spacing:3px;color:#9a722e;font-weight:700;}
.field input{border:1.5px solid rgba(168,127,63,.35);border-radius:11px;background:rgba(255,253,247,.95);padding:12px 14px;font-size:14.5px;letter-spacing:1px;color:var(--c-ink);outline:none;transition:border .2s;}
.field input:focus{border-color:var(--c-red);}
.slogan-list{display:flex;flex-direction:column;gap:8px;}
.slogan{
  text-align:left;border:1.5px solid rgba(168,127,63,.25);border-radius:11px;
  background:rgba(255,253,247,.95);padding:10px 13px;font-size:12.5px;line-height:1.65;color:var(--c-ink-soft);
  letter-spacing:.5px;transition:all .2s;
}
.slogan.sel{border-color:var(--c-red);color:var(--c-red-deep);background:#fdf1ec;box-shadow:0 0 0 3px rgba(165,31,45,.1);}
.poster-form .btn-main{width:100%;justify-content:center;margin-top:2px;}
.poster-form .hint{color:var(--c-ink-soft);margin-top:0;}

.share-card{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0;background:rgba(255,251,240,.97);border-radius:16px;padding:14px 22px 12px;box-shadow:0 10px 28px rgba(0,0,0,.35);}
#qr-canvas{border-radius:8px;width:min(196px,50vw);height:auto;}
.qr-tip{font-size:11.5px;color:var(--c-ink-soft);letter-spacing:1.5px;}
.qr-url{font-size:9.5px;color:#a8845a;letter-spacing:.5px;max-width:210px;word-break:break-all;text-align:center;}
.guide-box{width:100%;margin-top:12px;flex-shrink:0;background:rgba(255,255,255,.07);border:1px solid rgba(232,201,136,.3);border-radius:13px;padding:12px 15px;}
.guide-box h3{font-size:13px;letter-spacing:3px;color:var(--c-gold-bright);margin-bottom:8px;font-weight:700;}
.guide-box ul{list-style:none;display:flex;flex-direction:column;gap:6px;}
.guide-box li{font-size:11.5px;line-height:1.7;color:rgba(253,246,232,.85);letter-spacing:.5px;}
.guide-box li b{color:#f2dcae;}
.page-foot{margin-top:auto;padding-top:12px;text-align:center;flex-shrink:0;}
.page-foot p{font-size:11px;letter-spacing:2px;color:rgba(253,246,232,.68);line-height:2;}
.page-foot .foot-note{font-size:9px;color:rgba(253,246,232,.4);letter-spacing:.5px;}
.page-foot .icp a{color:rgba(232,201,136,.85);}
.page-foot .icp a:active{opacity:.7;}

.refs-body{width:100%;flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;padding-bottom:6px;}
.refs-body::-webkit-scrollbar{display:none;}
.refs-group{margin-bottom:12px;}
.refs-group h3{
  display:flex;align-items:center;gap:8px;
  font-size:13px;letter-spacing:3px;color:var(--c-red-deep);font-weight:700;margin-bottom:8px;
}
.refs-group h3::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(168,127,63,.5),transparent);}
.ref-item{
  display:block;background:rgba(255,253,247,.94);border:1px solid rgba(168,127,63,.22);
  border-radius:11px;padding:10px 13px;margin-bottom:8px;
  box-shadow:0 3px 10px rgba(120,60,20,.05);
  transition:transform .15s ease,border-color .15s ease;
}
.ref-item:active{transform:scale(.985);border-color:var(--c-red);}
.ref-item .ri-top{display:flex;align-items:center;gap:8px;}
.ref-item b{font-size:12.5px;letter-spacing:1px;color:var(--c-ink);flex:1;line-height:1.5;font-weight:700;}
.ref-item .ri-go{color:var(--c-red);flex:none;font-size:13px;transition:transform .2s;}
.ref-item:active .ri-go{transform:translate(2px,-2px);}
.ref-item small{display:block;margin-top:4px;font-size:10.5px;color:var(--c-ink-soft);letter-spacing:1px;line-height:1.6;}
.ref-item small em{font-style:normal;color:#9a722e;}
.refs-note{
  font-size:10.5px;line-height:1.9;color:var(--c-ink-soft);letter-spacing:1px;
  background:rgba(201,160,90,.14);border-left:2px solid var(--c-gold-deep);
  border-radius:0 10px 10px 0;padding:9px 12px;
}
.s-refs .page-foot{
  border-top:1px solid rgba(168,127,63,.3);
  margin-top:10px;padding-top:10px;
}
.s-refs .page-foot p{color:#5d443d;letter-spacing:2px;}
.s-refs .page-foot .foot-note{color:#8a6b45;font-size:9.5px;}
.s-refs .page-foot .icp a{color:var(--c-red-deep);font-weight:700;letter-spacing:1.5px;}

.sheet-mask{position:fixed;inset:0;z-index:80;background:rgba(10,3,6,.62);opacity:0;visibility:hidden;transition:all .3s;backdrop-filter:blur(2px);}
.sheet-mask.show{opacity:1;visibility:visible;}
.sheet{
  position:fixed;left:50%;transform:translate(-50%,105%);bottom:0;z-index:81;
  width:min(520px,100%);max-height:76vh;
  background:linear-gradient(180deg,#fffdf6,#f5ecd8);
  border-radius:20px 20px 0 0;display:flex;flex-direction:column;
  transition:transform .42s cubic-bezier(.3,.8,.3,1);
  padding:16px 18px calc(var(--safe-bottom) + 16px);
  box-shadow:0 -10px 40px rgba(0,0,0,.35);
}
.sheet.show{transform:translate(-50%,0);}
.sheet::before{content:"";position:absolute;left:50%;top:8px;transform:translateX(-50%);width:38px;height:3px;border-radius:2px;background:rgba(168,127,63,.35);}
.sheet-close{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:50%;background:rgba(168,127,63,.12);color:#8a5a20;font-size:13px;z-index:2;}
.sheet-body{overflow-y:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.sheet-body::-webkit-scrollbar{display:none;}
.sheet-body h3{font-family:var(--f-title);font-size:19px;letter-spacing:2px;color:var(--c-red-deep);padding-right:34px;margin-bottom:4px;}
.sheet-body .sb-sub{font-size:11px;color:#9a722e;letter-spacing:2px;margin-bottom:10px;}
.sheet-body p{font-size:13px;line-height:1.95;color:#4a2a24;letter-spacing:.5px;margin-bottom:8px;}
.sheet-body .sb-fact{background:rgba(201,160,90,.2);border-left:3px solid var(--c-gold-deep);border-radius:0 10px 10px 0;padding:8px 12px;font-size:12px;line-height:1.8;color:#6d4a15;}

.poster-overlay{position:fixed;inset:0;z-index:90;background:rgba(8,2,4,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;opacity:0;visibility:hidden;transition:all .35s;padding:20px;}
.poster-overlay.show{opacity:1;visibility:visible;}
.poster-stage{display:flex;flex-direction:column;align-items:center;gap:12px;}
#poster-img{max-width:min(78vw,340px);max-height:62vh;border-radius:12px;box-shadow:0 16px 50px rgba(0,0,0,.6);}
.poster-stage p{color:rgba(253,246,232,.85);font-size:12.5px;letter-spacing:3px;}

.desk-hint{
  position:fixed;right:20px;bottom:20px;z-index:75;
  display:flex;align-items:center;gap:13px;
  background:rgba(255,251,240,.97);border:1px solid rgba(168,127,63,.35);
  border-radius:14px;padding:12px 14px;max-width:330px;
  box-shadow:0 14px 40px rgba(0,0,0,.35);
  animation:hintIn .5s cubic-bezier(.2,1.2,.4,1) both;
}
@keyframes hintIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.desk-hint[hidden]{display:none;}
.desk-hint canvas{border-radius:7px;flex:none;}
.desk-hint .dh-text{display:flex;flex-direction:column;gap:5px;}
.desk-hint b{font-family:var(--f-title);font-size:14px;letter-spacing:2px;color:var(--c-red-deep);}
.desk-hint p{font-size:11.5px;color:var(--c-ink-soft);line-height:1.7;letter-spacing:.5px;}
.desk-hint .dh-close{position:absolute;top:5px;right:7px;font-size:13px;color:#a8845a;padding:4px;}

#toast{
  position:fixed;left:50%;bottom:16vh;transform:translate(-50%,20px);z-index:95;
  background:rgba(24,10,12,.94);color:#f2dcae;border:1px solid rgba(232,201,136,.5);
  border-radius:999px;padding:10px 24px;font-size:13px;letter-spacing:2px;
  opacity:0;visibility:hidden;transition:all .35s;max-width:86vw;text-align:center;
  pointer-events:none;
}
#toast.show{opacity:1;visibility:visible;transform:translate(-50%,0);}

@media (max-height:700px){
  .sec-head{margin-bottom:10px;}
  .sec-head h2{font-size:22px;letter-spacing:4px;}
  .sec-head .rule{margin-top:6px;}
  .sec-head p{margin-top:5px;font-size:11px;}
  .menu-grid{gap:8px;}
  .menu-card{padding:11px 11px 9px;}
  .menu-card b{font-size:15px;letter-spacing:2px;}
  .menu-card p{font-size:10.5px;line-height:1.45;}
  .menu-card i{font-size:9.5px;padding-top:3px;}
  .mc-icon svg{width:18px;height:18px;}
  .menu-card.wide{padding:10px 13px;}
  .menu-tip{margin-top:8px;font-size:10px;}
}
@media (max-height:640px){
  .sec-head{margin-bottom:9px;}
  .sec-head h2{font-size:21px;}
  .sec-head p{margin-top:5px;font-size:11px;}
  .cover-slogan{margin-top:2.6vh;}
  .cover-desc{margin-top:1.6vh;}
  .btn-main{margin-top:3vh;padding:12px 30px;font-size:15px;}
  .scroll-hint{margin-top:3.2vh;}
  .spirit-card{height:min(34vh,260px);min-height:190px;}
  .share-card{padding:10px 16px 8px;}
  #qr-canvas{width:min(146px,38vw);}
  .guide-box{padding:9px 12px;margin-top:8px;}
  .guide-box li{font-size:10.5px;line-height:1.6;}
  .sz-map{height:clamp(200px,36vh,240px);}
  .cinema-stage{height:clamp(116px,20vh,142px);}
  .cinema-caption{margin-top:7px;}
}
@media (max-height:600px){
  .cover-badge{font-size:10.5px;letter-spacing:4px;margin-bottom:2.4vh;}
  .ct-main{font-size:clamp(40px,12.5vw,54px);letter-spacing:8px;}
  .ct-sub{font-size:clamp(14px,4.4vw,18px);letter-spacing:5px;}
  .cover-slogan{margin-top:1.8vh;font-size:13px;line-height:1.9;}
  .cover-desc{margin-top:1.1vh;font-size:10px;line-height:1.7;}
  .btn-main{margin-top:1.8vh;padding:10px 26px;font-size:14px;}
  .scroll-hint{margin-top:1.6vh;}
  .cover-inner{padding-top:calc(var(--safe-top) + 26px);padding-bottom:calc(var(--safe-bottom) + 12px);}
  .sz-map{height:clamp(180px,33vh,215px);}
  .menu-card i{display:none;}
  .menu-card{padding:10px 10px 8px;}
  .menu-tip{display:none;}
  .cinema-stage{height:108px;}
  .cinema-replay{padding:6px;}
}
@media (min-width:640px){
  .screen-inner{max-width:560px;}
  .spirit-card{max-width:270px;height:min(36vh,320px);}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}
body.static *{animation:none !important;transition:none !important;}
