/* 무대(다크) 화면 — 홈 · 스토리 · 인트로. 포스터 팔레트 */
:root{
  --ink:#031410; --ink2:#072B26; --deep:#01694F; --em:#018E6C; --em2:#13B28A; --mint:#7CB4A1; --haze:#CFE5DC; --paper:#E8EDEA;
  --serif:"STIX Two Text","Pretendard Variable",Pretendard,"Apple SD Gothic Neo",sans-serif;
}
body.stage{background:var(--ink);color:var(--paper);overflow-x:clip}
html:has(body.stage){background:var(--ink)}
body.stage .stagewrap{overflow-x:clip}
body.stage .app{background:transparent;max-width:none}
body.stage .cta .in{background:none;max-width:560px}
body.stage .btn{background:var(--paper);color:#062A21;font-weight:800;letter-spacing:-.3px;border:0;box-shadow:0 10px 30px -12px rgba(0,0,0,.55)}
body.stage .btn:active{transform:scale(.99)}
body.stage .btn.sec{background:rgba(232,237,234,.08);color:var(--paper);box-shadow:none;border:1px solid rgba(232,237,234,.14)}
body.stage .toast{background:var(--paper);color:var(--ink)}
.ic{display:inline-block;vertical-align:middle;flex:none}

/* 배경: 포스터의 가로 모션 블러 띠 + 그레인 */
.streaks{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(120% 70% at 50% 40%,#04231c 0%,var(--ink) 70%)}
.streaks i{position:absolute;left:-30%;width:160%;border-radius:50%;filter:blur(38px);opacity:.85;will-change:transform;animation:drift var(--d,18s) ease-in-out infinite alternate}
.streaks i:nth-child(1){top:4%;height:16%;background:linear-gradient(90deg,transparent,#0e9f7a 30%,#7cb4a1 55%,#0e9f7a 75%,transparent);--d:16s;opacity:.55}
.streaks i:nth-child(2){top:22%;height:7%;background:linear-gradient(90deg,transparent,#01694f 20%,#018e6c 60%,transparent);--d:22s;animation-delay:-6s}
.streaks i:nth-child(3){top:41%;height:11%;background:linear-gradient(90deg,transparent 5%,#018e6c 35%,#13b28a 50%,#018e6c 65%,transparent 95%);--d:19s;animation-delay:-3s;opacity:.7}
.streaks i:nth-child(4){top:58%;height:5%;background:linear-gradient(90deg,transparent,#01694f 40%,transparent);--d:25s;animation-delay:-12s}
.streaks i:nth-child(5){top:70%;height:18%;background:linear-gradient(90deg,transparent,#018e6c 25%,#0aa27e 50%,#018e6c 80%,transparent);--d:20s;animation-delay:-9s;opacity:.8}
.streaks i:nth-child(6){top:90%;height:14%;background:linear-gradient(90deg,transparent,#7cb4a1 40%,transparent);--d:27s;opacity:.35}
@keyframes drift{0%{transform:translate3d(-6%,0,0) scaleY(1)}50%{transform:translate3d(4%,-6px,0) scaleY(1.25)}100%{transform:translate3d(9%,4px,0) scaleY(.9)}}
.grain{position:fixed;inset:-50%;z-index:1;pointer-events:none;opacity:.22;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.9'/></svg>");
  animation:grain .9s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(0,0)}}

/* 상단바 (무대) */
.stagebar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:8px;height:58px;padding:calc(env(safe-area-inset-top,0px)) 14px 0;color:var(--paper);transition:background .35s,backdrop-filter .35s}
.stagebar.solid{background:rgba(3,20,16,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.stagebar button,.stagebar a{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-decoration:none;display:grid;place-items:center;border-radius:12px}
.stagebar .ib{width:40px;height:40px}
.stagebar .brand{flex:1;font-weight:800;letter-spacing:-.4px;font-size:15px;opacity:.95}
.stagebar .pill{padding:0 14px;height:34px;border-radius:999px;font-size:13px;font-weight:700;background:rgba(232,237,234,.1);border:1px solid rgba(232,237,234,.18)}
.progress{position:fixed;top:0;left:0;height:2px;background:var(--em2);z-index:21;width:0;box-shadow:0 0 12px var(--em2)}

.stagewrap{position:relative;z-index:2}
.sec-pad{padding:0 22px;max-width:560px;margin:0 auto}

/* 히어로 */
.hero2{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:90px 40px;position:relative;overflow:hidden}
.hero2 .eyeb{font-weight:800;font-size:15px;line-height:1.35;letter-spacing:-.3px}
.hero2 .eyeb small{display:block;font-weight:500;font-size:12px;color:var(--mint);margin-top:6px;letter-spacing:0}
.titlewrap{position:relative;margin:7vh -6px 0;aspect-ratio:2000/497;will-change:transform}
.titlewrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.titlewrap .t-ghost{position:absolute;inset:0;display:block;background:var(--em2);opacity:.45;
  -webkit-mask:url(/assets/listen-white.webp) center/contain no-repeat;mask:url(/assets/listen-white.webp) center/contain no-repeat}
.titlewrap.in .t-main{animation:titleIn 1.6s cubic-bezier(.2,.7,.1,1) both}
.titlewrap.in .t-ghost{animation:ghostIn 2.2s cubic-bezier(.2,.7,.1,1) both}
@keyframes titleIn{0%{opacity:0;filter:blur(18px);transform:scaleX(1.25)}60%{opacity:1}100%{opacity:1;filter:none;transform:none}}
@keyframes ghostIn{0%{opacity:0;transform:translateX(-12%)}100%{opacity:.45;transform:none}}
.tagline{margin-top:4vh;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.tagline .en{font-size:clamp(26px,8vw,40px);line-height:1.02;font-weight:800;letter-spacing:-1px;color:#04382d;-webkit-text-stroke:0}
.tagline .en em,.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}
.tagline .en{color:var(--em2);mix-blend-mode:screen}
.tagline .ko{font-size:clamp(46px,15vw,76px);font-weight:900;letter-spacing:-3px;line-height:.9;color:#0b5e4a;text-shadow:0 0 40px rgba(19,178,138,.35)}
.reveal-up{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.7,.1,1),transform .9s cubic-bezier(.2,.7,.1,1)}
.reveal-up.on{opacity:1;transform:none}
.hero2 .meta2{margin-top:5vh;display:flex;gap:18px;align-items:flex-end;justify-content:space-between}
.hero2 .date{display:flex;align-items:flex-start;flex-wrap:wrap;column-gap:14px;font-weight:800;letter-spacing:-1.2px;line-height:1}
.hero2 .date .yr{width:100%;font-size:15px;letter-spacing:-.2px;color:var(--mint);font-weight:700;margin-bottom:8px}
.hero2 .date .dd{display:flex;flex-direction:column;font-size:clamp(34px,11vw,52px)}
.hero2 .date .dd em{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:0;color:var(--mint);font-weight:500;margin-top:6px}
.hero2 .date .dash{width:22px;height:2px;background:var(--paper);opacity:.6;margin-top:calc(clamp(34px,11vw,52px) / 2)}
.hero2 .place{font-size:13px;color:var(--haze);text-align:right;line-height:1.5}
.scrollhint{position:absolute;bottom:92px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;letter-spacing:-.2px;color:var(--mint);opacity:.8}
.scrollhint i{width:1px;height:34px;background:linear-gradient(var(--mint),transparent);animation:hint 1.8s ease-in-out infinite}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* 스크롤 타이핑(글자 단위 노출) */
.scrub{font-size:clamp(24px,7.2vw,36px);font-weight:800;line-height:1.38;letter-spacing:-.8px;word-break:keep-all}
.scrub span{opacity:.13;transition:opacity .25s,color .25s}
.scrub span.on{opacity:1}
.scrub .hl.on{color:var(--em2)}
.type-caret::after{content:"";display:inline-block;width:2px;height:1em;background:var(--em2);margin-left:3px;vertical-align:-.12em;animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.block{padding-block:16vh}
.kicker{font-family:var(--serif);font-style:italic;font-weight:500;font-size:20px;letter-spacing:-.3px;color:var(--mint);margin-bottom:14px}
.verse-ref{margin-top:22px;color:var(--mint);font-size:14px}
.verse-en{margin-top:28px;font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.35;color:var(--haze)}

/* 카드 · 그리드 (무대) */
.glass{background:linear-gradient(180deg,rgba(232,237,234,.07),rgba(232,237,234,.03));border:1px solid rgba(232,237,234,.12);border-radius:22px;padding:20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.lineup{display:grid;gap:12px}
.lineup .role{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--mint)}
.lineup .who{font-weight:800;font-size:19px;letter-spacing:-.4px;margin-top:2px}
.lineup .who small{font-weight:500;font-size:12px;color:var(--mint);margin-left:6px}
.qgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.qcell{position:relative;border:1px solid rgba(232,237,234,.12);background:rgba(232,237,234,.04);border-radius:18px;padding:16px 10px 13px;color:var(--paper);font:inherit;font-size:13px;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:9px;cursor:pointer;text-decoration:none;transition:transform .2s,background .2s,border-color .2s}
.qcell:active{transform:scale(.96)}
.qcell:hover{background:rgba(1,142,108,.14);border-color:rgba(19,178,138,.5)}
.qcell .icw{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:rgba(19,178,138,.12);color:var(--em2)}
.qcell.soon{opacity:.55}
.qcell.soon .icw{background:rgba(232,237,234,.06);color:var(--mint)}
.soonb{position:absolute;top:8px;right:8px;font-size:9px;font-weight:800;letter-spacing:.3px;padding:2px 6px;border-radius:999px;background:rgba(124,180,161,.18);color:var(--mint)}
.h2s{font-size:22px;font-weight:800;letter-spacing:-.6px;margin:0 0 14px}
.sgap{height:12vh}
.status-wrap .card{background:var(--paper);color:#191F28}
.phasebar{display:grid;gap:8px}
.phase{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;border:1px solid rgba(232,237,234,.1)}
.phase.now{background:rgba(1,142,108,.18);border-color:rgba(19,178,138,.55)}
.phase .pn{font-weight:800}.phase .pd{font-size:12px;color:var(--mint)}.phase .pp{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}
.phase .nowb{font-size:10px;font-weight:800;background:var(--em);color:#fff;padding:2px 7px;border-radius:999px;margin-left:6px}
.bigcd{font-variant-numeric:tabular-nums;font-weight:900;font-size:clamp(34px,11vw,52px);letter-spacing:-1.5px;line-height:1}
.bigcd small{font-size:13px;font-weight:600;color:var(--mint);letter-spacing:0;margin-left:6px}
.faq2 details{border-bottom:1px solid rgba(232,237,234,.1)}
.faq2 summary{list-style:none;cursor:pointer;font-weight:700;padding:16px 0;display:flex;justify-content:space-between;gap:12px}
.faq2 summary::-webkit-details-marker{display:none}
.faq2 summary .ic{transition:transform .25s;color:var(--mint)}
.faq2 details[open] summary .ic{transform:rotate(45deg)}
.faq2 details div{padding:0 0 16px;color:var(--haze);font-size:14px;line-height:1.65}
.foot2{color:var(--mint);font-size:12px;line-height:1.8;padding-block:40px 140px;opacity:.85}
.foot2 a{color:inherit}
.banner2{display:flex;align-items:center;gap:10px;background:rgba(1,142,108,.18);border:1px solid rgba(19,178,138,.4);color:var(--paper);border-radius:14px;padding:12px 14px;font-size:14px;font-weight:700;text-decoration:none;margin-top:12px}
.storylink{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--paper)}
.storylink .arr{margin-left:auto;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--em);color:#fff;transition:transform .3s}
.storylink:hover .arr{transform:translateX(4px)}

/* 스토리(어바웃) */
.chap{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:14vh}
.chap .num{font-family:var(--serif);font-style:italic;font-size:72px;line-height:1;color:var(--em2);opacity:.9}
.chap .ttl{font-size:clamp(30px,9vw,44px);font-weight:900;letter-spacing:-1.4px;margin:6px 0 28px;line-height:1.15}
.chap p.scrub{font-size:clamp(19px,5.4vw,24px);font-weight:600;line-height:1.75;letter-spacing:-.3px}
.noise-words{position:relative;height:42vh;margin:6vh -22px 0;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent)}
.noise-words span{position:absolute;white-space:nowrap;font-weight:800;color:rgba(232,237,234,.16);font-size:var(--s,22px);animation:float var(--t,14s) linear infinite;left:100%}
@keyframes float{to{transform:translateX(calc(-100vw - 120%))}}
.verse-big{font-size:clamp(24px,7vw,34px);font-weight:800;line-height:1.5;letter-spacing:-.6px}
.verse-big .hl{color:var(--em2)}
.hanja{font-family:"Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;font-weight:800;font-size:clamp(96px,32vw,160px);line-height:1;color:transparent;-webkit-text-stroke:1px var(--mint);letter-spacing:4px;transition:color 1.8s ease .35s,-webkit-text-stroke-color 1.8s ease .35s,text-shadow 1.8s ease .35s}
.hanja.on{color:var(--em2);-webkit-text-stroke-color:transparent;text-shadow:0 0 50px rgba(19,178,138,.4)}
.lean{display:inline-block;transition:transform 1.2s cubic-bezier(.2,.7,.1,1)}
.lean.on{transform:rotate(-8deg) translateX(-4px)}
.finale{min-height:120svh;display:flex;flex-direction:column;justify-content:center;align-items:stretch;text-align:center;padding-block:10vh 30vh}
.finale .titlewrap{margin:0 -6px}
.sheep{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:6vh 0}
.sheep i{width:10px;height:10px;border-radius:50%;background:var(--mint);opacity:.25;transition:all 1.6s cubic-bezier(.2,.7,.1,1) .3s}
.sheep.on i{opacity:1;background:var(--em2);box-shadow:0 0 12px var(--em2)}
.skip{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:14px;z-index:25;border:1px solid rgba(232,237,234,.22);background:rgba(3,20,16,.55);backdrop-filter:blur(10px);color:var(--paper);font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;cursor:pointer;display:flex;align-items:center;gap:6px}
.dots{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:8px}
.dots i{width:6px;height:6px;border-radius:50%;background:rgba(232,237,234,.25);transition:all .3s}
.dots i.on{background:var(--em2);height:18px;border-radius:3px}

/* 공개 예정 */
.soonpage{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding-inline:28px}
.soonpage .icw{width:84px;height:84px;border-radius:28px;display:grid;place-items:center;background:rgba(19,178,138,.12);color:var(--em2);margin-bottom:22px;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 14px rgba(19,178,138,0)}0%,100%{box-shadow:0 0 0 0 rgba(19,178,138,.35)}}

@media (prefers-reduced-motion:reduce){.streaks i,.grain,.scrollhint i,.soonpage .icw{animation:none}.reveal-up{opacity:1;transform:none}.scrub span{opacity:1}}
@media (min-width:720px){.qgrid{grid-template-columns:repeat(4,1fr)}.sec-pad{max-width:720px}.hero2{padding-top:110px}}
.sec-pad{box-sizing:border-box;width:100%}
.sheep i{transform:translate(var(--x),var(--y))}
.sheep.on i{transform:translate(0,0)}
.sheep i:nth-child(3n){transition-delay:.5s}.sheep i:nth-child(4n){transition-delay:.7s}.sheep i:nth-child(5n){transition-delay:.9s}
body.stage .drawer{background:#06201a;color:var(--paper)}
body.stage .drawer .who{border-color:rgba(232,237,234,.1)}
body.stage .drawer a,body.stage .drawer button.m{color:var(--paper)}
body.stage .drawer a.lock{color:var(--mint)}
body.stage .drawer .sec{color:var(--mint)}
.drawer a .ic,.drawer button.m .ic{color:var(--key);opacity:.9}
body.stage .drawer a .ic{color:var(--em2)}
.drawer a.lock .ic{opacity:.55}

/* ---- 2차 피드백 ---- */
.hero2.short{min-height:84svh}
.hero2 .scrollhint{display:none}
.stagebar{justify-content:space-between}
.stagebar .gnb-logo{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 29px);transform:translate(-50%,-50%) translateY(6px);height:20px;opacity:0;transition:opacity .4s,transform .4s;pointer-events:none}
.stagebar .gnb-logo img{height:20px;width:auto;display:block}
.stagebar.show-logo .gnb-logo{opacity:1;transform:translate(-50%,-50%);pointer-events:auto}
.stagebar .gnb-ic{width:40px;height:40px;border-radius:50%;border:1px solid rgba(232,237,234,.2)}
.stagebar .gnb-txt{font-size:14px;font-weight:700;padding:0 6px;height:40px;opacity:.95}
.stagebar .hb{color:var(--paper)}
.qsec{padding-top:6px}
.pcard{display:flex;align-items:center;gap:16px;padding:22px 20px;border-radius:24px;text-decoration:none;color:var(--paper);background:linear-gradient(135deg,#018E6C,#01694F 60%,#043a2e);box-shadow:0 20px 50px -20px rgba(1,142,108,.8);position:relative;overflow:hidden}
.pcard::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-100%);animation:sheen 3.6s ease-in-out infinite}
@keyframes sheen{60%,100%{transform:translateX(100%)}}
.pcard .pk{font-size:13px;letter-spacing:-.2px;font-weight:700;opacity:.85}
.pcard .pt{font-size:26px;font-weight:800;letter-spacing:-.6px;margin-top:2px}
.pcard .ps{font-size:13px;opacity:.85;margin-top:4px}
.pcard .parr{margin-left:auto;width:48px;height:48px;border-radius:50%;background:var(--paper);color:#062A21;display:grid;place-items:center;flex:none}
.plink{display:flex;align-items:center;justify-content:center;gap:4px;margin:12px 0 0;color:var(--mint);font-size:13px;text-decoration:none}
.qhead{margin-top:28px}
.qgrid{grid-template-columns:repeat(4,1fr);gap:8px}
.qcell{padding:14px 4px 12px;font-size:12px;gap:8px;border-radius:16px}
.qcell .icw{width:42px;height:42px;border-radius:14px}
.qcell .qt{white-space:nowrap}
.qcell.locked{opacity:.5}
.qcell.locked .icw{background:rgba(232,237,234,.06);color:var(--mint)}
.qlock{position:absolute;top:8px;right:8px;color:var(--mint);display:grid}
.sblock{padding-block:16vh}
.rowlink{display:flex;align-items:center;gap:12px;margin-top:34px;padding:16px 14px 16px 18px;border:1px solid rgba(232,237,234,.18);border-radius:18px;background:rgba(232,237,234,.06);color:var(--paper);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background .2s,border-color .2s,transform .15s}
.rowlink .rl-k{font-family:var(--serif);font-style:italic;color:var(--mint);font-size:16px}
.rowlink .rl-t{font-weight:700;font-size:15px;min-width:0}
/* 버튼으로 읽히도록 화살표를 채운 원 안에 둔다 */
.rowlink .rl-a{margin-left:auto;flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--em2);color:#04241C;transition:transform .3s}
.rowlink:hover{background:rgba(232,237,234,.1);border-color:rgba(124,180,161,.45)}
.rowlink:hover .rl-a{transform:translateX(3px)}
.rowlink:active{transform:scale(.98);background:rgba(232,237,234,.12)}
.rowlink:focus-visible{outline:2px solid var(--em2);outline-offset:3px}
.lineup .lu{text-decoration:none;color:inherit;display:block;padding:16px 18px}
.cd-l{color:var(--mint);font-size:14px}
.lu-h{font-size:clamp(30px,9vw,44px);font-weight:800;letter-spacing:-1px;margin:0 0 6vh}
.lu-group{margin-bottom:6vh}
.lu-g{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--mint);margin-bottom:12px}
.lu-card{margin-bottom:10px}
.lu-top{display:flex;align-items:center;gap:14px}
.lu-ph{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;border:1px solid rgba(232,237,234,.18)}
.lu-ph.mono{display:grid;place-items:center;background:rgba(19,178,138,.14);color:var(--em2);font-weight:800;font-size:24px}
.lu-n{font-weight:800;font-size:19px;letter-spacing:-.4px}
.lu-o{font-size:13px;color:var(--mint);margin-top:2px}
.lu-tr{font-size:12px;color:var(--haze);margin-top:6px;display:flex;align-items:center;gap:5px}
.lu-b{margin:14px 0 0;color:var(--haze);font-size:14px;line-height:1.75}
.fin-en{font-weight:800;font-size:clamp(34px,10vw,54px);line-height:1.05;letter-spacing:-1.4px;color:var(--paper);margin:6vh 0 0}
.fin-en em{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--em2);letter-spacing:0}
.fin-meta{color:var(--mint);font-size:14px;margin-top:18px}
.sheep{display:grid;grid-template-columns:repeat(12,10px);gap:12px;justify-content:start;margin:6vh 0 0}
.chap .ttl{letter-spacing:-1.2px}
.hero2 .meta2{flex-direction:column;align-items:flex-start;gap:16px}
.hero2 .meta2 .place{text-align:left}
.hero2 .date{flex-wrap:nowrap;align-items:flex-start}
.hero2 .date .yr{position:absolute;margin-top:-26px}
.hero2 .meta2 .date{position:relative;margin-top:26px}

/* ---- 3차: 라인 키커 제거 · 버튼 · 라인업 ---- */
.status-wrap .card .btn{background:var(--key);color:#fff;box-shadow:none;border:0}
.status-wrap .card .btn.sec{background:#F2F4F6;color:#191F28}
.lu-strip{display:flex;gap:10px;overflow-x:auto;margin:0 -22px;padding:4px 22px 6px;scrollbar-width:none}
.lu-strip::-webkit-scrollbar{display:none}
.lu-chip{flex:none;width:120px;text-decoration:none;color:var(--paper)}
.lu-chip img{width:120px;height:150px;object-fit:cover;border-radius:16px;display:block;filter:saturate(.9)}
.lu-chip b{display:block;font-size:14px;margin-top:8px;letter-spacing:-.3px}
.lu-chip small{display:block;font-family:var(--serif);font-style:italic;color:var(--mint);font-size:13px}
.lu-feat{margin-bottom:9vh}
.lu-hero{position:relative;border-radius:24px;overflow:hidden;background:rgba(232,237,234,.05)}
.lu-hero img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.lu-hero.wide img{aspect-ratio:16/11}
.lu-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(3,20,16,.92))}
.lu-cap{position:absolute;left:20px;right:20px;bottom:18px;z-index:1}
.lu-role{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--mint)}
.lu-name{font-size:clamp(30px,9vw,42px);font-weight:800;letter-spacing:-1.2px;line-height:1.1}
.lu-org{font-size:14px;color:var(--haze);margin-top:4px}
.lu-sub{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px;margin-top:10px}
.lu-lines{list-style:none;margin:18px 0 0;padding:0}
.lu-lines li{padding:9px 0;border-bottom:1px solid rgba(232,237,234,.09);font-size:15px;letter-spacing:-.3px;color:var(--paper)}
.lu-lines li:last-child{border-bottom:0}
.lu-books{margin-top:12px;font-size:14px;color:var(--haze);line-height:1.7}
.lu-books span{display:block;font-family:var(--serif);font-style:italic;color:var(--mint);font-size:15px}
.lu-vids{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.lu-vid{position:relative;border:0;padding:0;background:#000;border-radius:14px;overflow:hidden;cursor:pointer;aspect-ratio:16/9;color:#fff;font:inherit;text-align:left}
.lu-vid img{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;transition:opacity .25s,transform .4s}
.lu-vid:hover img{opacity:1;transform:scale(1.04)}
.lu-vid .pl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:rgba(232,237,234,.92);color:#062A21;display:grid;place-items:center;padding-left:2px}
.lu-vid .vt{position:absolute;left:8px;right:8px;bottom:6px;font-size:11px;font-weight:700;letter-spacing:-.2px;text-shadow:0 1px 6px rgba(0,0,0,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lu-vid.playing{cursor:default}
.lu-vid iframe{width:100%;height:100%;border:0;display:block}
.lu-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--paper);font-weight:700;font-size:14px;text-decoration:none;padding:10px 16px;border-radius:999px;background:rgba(232,237,234,.08);border:1px solid rgba(232,237,234,.16)}
.lu-group{margin-top:2vh}
.lu-grid{display:grid;gap:12px}
.lu-card{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:start;padding:16px;border-radius:20px;background:rgba(232,237,234,.04);border:1px solid rgba(232,237,234,.1)}
.lu-card .lu-ph{width:96px;height:120px;border-radius:14px;object-fit:cover}
.lu-card .lu-ph.mono{display:grid;place-items:center;background:rgba(19,178,138,.14);color:var(--em2);font-weight:800;font-size:28px}
.lu-card .lu-n{font-size:19px}
.lu-card .lu-lines{margin-top:8px}
.lu-card .lu-lines li{font-size:13px;padding:5px 0;color:var(--haze)}
.lu-card .lu-books{font-size:12.5px}
@media (min-width:720px){.lu-grid{grid-template-columns:1fr 1fr}.lu-feat{display:block}}

/* ---- 전체 화면 메뉴 (모든 화면 공통, 다크) ---- */
.drawer{inset:0!important;width:100%!important;max-width:none!important;transform:none!important;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s!important;background:radial-gradient(120% 60% at 50% 0%,#063a2e,var(--ink) 70%)!important;color:var(--paper)!important;padding:calc(14px + env(safe-area-inset-top,0px)) 0 calc(28px + env(safe-area-inset-bottom,0px))!important;z-index:60!important;overflow-y:auto}
.drawer.on{opacity:1;visibility:visible}
body.drawer-open .dim{display:none}
.m-close{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:14px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(232,237,234,.18);background:rgba(232,237,234,.06);color:var(--paper);display:grid;place-items:center;cursor:pointer;z-index:2}
.m-wrap{max-width:560px;margin:0 auto;padding:0 22px}
.m-wrap>*{opacity:0;transform:translateY(14px);transition:opacity .5s,transform .5s cubic-bezier(.2,.7,.1,1)}
.drawer.on .m-wrap>*{opacity:1;transform:none}
.drawer.on .m-wrap>*:nth-child(2){transition-delay:.05s}.drawer.on .m-wrap>*:nth-child(3){transition-delay:.1s}.drawer.on .m-wrap>*:nth-child(4){transition-delay:.15s}.drawer.on .m-wrap>*:nth-child(5){transition-delay:.2s}
.drawer .m-top{padding:6px 0 22px}
.drawer .m-logo{height:24px;width:auto;display:block}
.drawer .m-who{margin-top:14px;font-size:24px;font-weight:800;letter-spacing:-.8px}
.drawer .m-primary{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-radius:20px;background:linear-gradient(135deg,#13B28A,#018E6C 55%,#01694F);color:#fff;font-weight:800;font-size:18px;letter-spacing:-.4px;text-decoration:none}
.drawer .m-sub{display:block;text-align:center;color:var(--mint);font-size:13px;text-decoration:none;margin:10px 0 0}
.drawer .m-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0 6px}
.drawer .m-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 4px 12px;border-radius:16px;background:rgba(232,237,234,.05);border:1px solid rgba(232,237,234,.1);color:var(--paper);text-decoration:none;font-size:12px;font-weight:700;white-space:nowrap}
.drawer .m-cell .icw{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:rgba(19,178,138,.14);color:var(--em2)}
.drawer .drawer .m-cell.lock{opacity:.5}.drawer .m-cell.lock .icw{background:rgba(232,237,234,.06);color:var(--mint)}
.drawer .m-list{margin-top:18px;border-top:1px solid rgba(232,237,234,.1)}
.drawer .m-row{display:flex;align-items:center;gap:14px;width:100%;padding:15px 2px;border:0;border-bottom:1px solid rgba(232,237,234,.08);background:none;color:var(--paper);font:inherit;font-size:16px;font-weight:600;letter-spacing:-.3px;text-decoration:none;cursor:pointer;text-align:left}
.drawer .m-row .ic:first-child{color:var(--em2)}
.drawer .m-row span{flex:1}
.drawer .m-row .ic:last-child{color:var(--mint);opacity:.7}
.drawer .m-foot{margin-top:24px;font-size:12px;color:var(--mint)}

/* ---- 하단 탭바 (로그인 시) ---- */
#tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line)}
body.stage #tabbar{background:rgba(3,20,16,.72);border-top-color:rgba(232,237,234,.1)}
#tabbar .tb{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0 4px;border:0;background:none;color:var(--mute);font:inherit;font-size:11px;font-weight:700;text-decoration:none;cursor:pointer;letter-spacing:-.2px}
body.stage #tabbar .tb{color:rgba(232,237,234,.6)}
#tabbar .tb.on{color:var(--key)}
body.stage #tabbar .tb.on{color:var(--em2)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #tabbar{background:rgba(11,23,20,.9)}}
body.has-tab .cta{bottom:calc(62px + env(safe-area-inset-bottom,0px))}
body.has-tab .cta .in{padding-bottom:10px}
body.has-tab .foot2{padding-bottom:180px}
body.has-tab .body{padding-bottom:170px}

/* ---- 플로팅 신청 버튼 (pill) ---- */
.cta .fab{pointer-events:auto;align-self:center;display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 22px 0 26px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:linear-gradient(135deg,rgba(19,178,138,.95),rgba(1,105,79,.95));color:#fff;font:inherit;font-size:16px;font-weight:800;letter-spacing:-.3px;cursor:pointer;box-shadow:0 12px 34px -10px rgba(1,142,108,.75),inset 0 1px 0 rgba(255,255,255,.25);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .35s cubic-bezier(.2,.7,.1,1),opacity .35s}
.cta .fab .ic{transition:transform .3s}
.cta .fab:hover .ic{transform:translateX(3px)}
.cta .fab:active{transform:scale(.97)}
.cta.fab-hide .fab{opacity:0;transform:translateY(20px);pointer-events:none}
body.stage .cta .in{align-items:center}
.lu-card.nophoto{grid-template-columns:1fr}

/* 포스터 날짜 타이포 */
.pdate{font-weight:800;letter-spacing:-.06em;line-height:.92;font-size:clamp(46px,15vw,76px);color:var(--paper);font-variant-numeric:lining-nums}
.pdate .pd2{display:flex;align-items:center;white-space:nowrap}
.pdate .pd2 span{position:relative;display:inline-flex;align-items:flex-start}
.pdate sup{font-size:.3em;font-weight:800;letter-spacing:0;line-height:1;margin:.12em 0 0 .06em;vertical-align:baseline}
.pdate .pd2 i{display:block;width:.9em;height:.085em;background:currentColor;margin:0 .14em 0 .1em;flex:none}
.hero2 .meta2{gap:18px}

.lu-chip.wide{width:250px}
.lu-chip.wide img{width:250px}
.lu-logo{display:grid;place-items:center;width:120px;height:150px;border-radius:16px;background:linear-gradient(160deg,rgba(19,178,138,.22),rgba(1,105,79,.12));border:1px solid rgba(232,237,234,.14)}
.lu-logo img{width:72%!important;height:auto!important;border-radius:0!important;opacity:.85}
.lu-card .lu-logo{width:96px;height:120px;border-radius:14px}
.lu-card .lu-ph{object-position:center}

/* 한글은 언제나 프리텐다드 정체: 세리프 글꼴(STIX)은 영문에만, 한글에 가짜 기울임 금지 */
body{font-synthesis:weight}
/* 메뉴: 옛 드로어(flex column) 안에서 줄어들지 않게 가로 꽉 */
.drawer .m-wrap{width:100%;max-width:640px;align-self:stretch;box-sizing:border-box}
@media (max-width:640px){.drawer .m-wrap{max-width:none;padding:0 18px}.drawer .m-grid{gap:7px}}

/* 무대 버튼: 알약형으로 통일, 보조 동작은 텍스트 링크 */
.pill,body.stage .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:auto;height:52px;padding:0 24px 0 28px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:linear-gradient(135deg,#13B28A,#018E6C 60%,#01694F);color:#fff;font:inherit;font-size:16px;font-weight:800;letter-spacing:-.3px;cursor:pointer;text-decoration:none;box-shadow:0 12px 34px -10px rgba(1,142,108,.7),inset 0 1px 0 rgba(255,255,255,.22)}
.pill .ic{transition:transform .3s}.pill:hover .ic{transform:translateX(3px)}
.pill:active,body.stage .btn:active{transform:scale(.97)}
body.stage .btn.sec,.tlink{background:none;border:0;box-shadow:none;height:auto;padding:10px 6px;color:var(--mint);font:inherit;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px;pointer-events:auto}
.fin-cta{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:5vh}
.cta .tlink{align-self:center}

/* 라인업 탭 · 섹션 · 2단 강사 카드 */
.lu-tabs{position:sticky;top:calc(58px + env(safe-area-inset-top,0px));z-index:15;display:flex;gap:6px;margin:0 -22px 4vh;padding:10px 22px;background:linear-gradient(180deg,rgba(3,20,16,.92),rgba(3,20,16,.78));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.lu-tabs button{flex:1;height:40px;border-radius:999px;border:1px solid rgba(232,237,234,.16);background:none;color:var(--mint);font:inherit;font-size:14px;font-weight:700;letter-spacing:-.3px;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.lu-tabs button.on{background:var(--paper);color:#062A21;border-color:var(--paper)}
.lu-sec{padding-top:2vh;margin-bottom:8vh;scroll-margin-top:120px}
.lu-sh{font-size:24px;font-weight:800;letter-spacing:-.8px;margin:0 0 16px}
.lu-tgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lu-tcard{min-width:0}
.lu-tcard>img,.lu-tcard>.lu-logo{width:100%;aspect-ratio:4/5;height:auto;object-fit:cover;border-radius:16px;display:block}
.lu-tcard .lu-n{font-size:16px;margin-top:10px}
.lu-tcard .lu-o{font-size:12px;line-height:1.45}
.lu-tcard .lu-lines{margin-top:8px}
.lu-tcard .lu-lines li{font-size:12px;padding:5px 0;color:var(--haze);line-height:1.4}
.lu-tcard .lu-books{font-size:11.5px;margin-top:6px}
.lu-tcard .lu-books span{font-size:13px}
@media (min-width:720px){.lu-tgrid{grid-template-columns:repeat(4,1fr)}}

/* 피처 캡션 줄간격 · 나비워십 로고(흰색, 마스크) */
.lu-cap .lu-name{margin:6px 0 10px;line-height:1.15}
.lu-cap .lu-org{margin-top:0}
.lu-brand{display:block;width:min(62%,260px);aspect-ratio:15066/1648;background:#fff;-webkit-mask:var(--logo) left center/contain no-repeat;mask:var(--logo) left center/contain no-repeat}
.pdate .pd2{margin-top:.12em}

/* ---- 4차: 무대 화면은 OS 테마와 상관없이 다크 토큰 ---- */
body.stage{--bg:#08201B;--fg:#E8EDEA;--fg2:#B7C4BE;--mute:#8FA59C;--line:rgba(232,237,234,.12);--soft:rgba(232,237,234,.07);--soft2:rgba(232,237,234,.04);--key:#13B28A;--keybg:rgba(19,178,138,.16);--ok:#4CC27A;--okbg:rgba(76,194,122,.14);--warn:#E8A33D;--warnbg:rgba(232,163,61,.16);--bad:#FF6B6B;--badbg:rgba(255,107,107,.14);color-scheme:dark}
.status-wrap .card{background:rgba(7,43,38,.62);color:var(--paper);border:1px solid rgba(232,237,234,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 50px -24px rgba(0,0,0,.6)}
.status-wrap .copy{background:rgba(3,20,16,.55);border-color:rgba(232,237,234,.1)}
.status-wrap .copy b{color:var(--paper)}
.status-wrap .copy button{background:rgba(232,237,234,.1);color:var(--paper)}
.status-wrap .card .btn{background:var(--em);color:#fff}
.status-wrap .card .btn.sec{background:rgba(232,237,234,.08);color:var(--paper);border:1px solid rgba(232,237,234,.14)}
/* 탭바와 떠 있는 버튼 사이 여백 */
body.has-tab .cta{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
body.stage .status-wrap .card .btn{flex:1;min-width:0;width:auto;height:48px;padding:0 14px;border-radius:999px;font-size:15px;justify-content:center}
body.stage .status-wrap .card .btn.sec{background:rgba(232,237,234,.08);border:1px solid rgba(232,237,234,.16);color:var(--paper);box-shadow:none}
body.stage .status-wrap .card .btn:disabled{opacity:.55}
.drawer .m-ev{margin-top:12px;font-size:15px;font-weight:700;letter-spacing:-.3px;color:var(--mint)}
/* 라인업 고정 탭: 검은 띠 없이 떠 있는 글래스 칩 */
.lu-tabs{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:10px 22px}
.lu-tabs button{background:rgba(7,43,38,.6);border-color:rgba(124,180,161,.22);color:var(--haze);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 8px 24px -14px rgba(0,0,0,.7)}
.lu-tabs button.on{background:linear-gradient(135deg,#13B28A,#018E6C 60%,#01694F);border-color:rgba(255,255,255,.28);color:#fff;box-shadow:0 10px 26px -12px rgba(1,142,108,.8),inset 0 1px 0 rgba(255,255,255,.22)}
/* 타이틀 기울기: 3D 회전 + 깊이별 이동 + 빛 반사 */
.titlewrap .t-tilt{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.titlewrap .t-sheen{position:absolute;inset:0;pointer-events:none;mix-blend-mode:normal;opacity:.75;
  background:radial-gradient(38% 120% at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.95),rgba(207,229,220,.35) 40%,transparent 70%);
  -webkit-mask:url(/assets/listen-white.webp) center/contain no-repeat;mask:url(/assets/listen-white.webp) center/contain no-repeat}
.titlewrap.in .t-sheen{animation:ghostIn 2.2s cubic-bezier(.2,.7,.1,1) both}
.streaks{will-change:translate}
@media (prefers-reduced-motion:reduce){.titlewrap .t-sheen{display:none}}
.lu-note{margin:6vh 0 0;padding-top:18px;border-top:1px solid rgba(232,237,234,.1);font-size:13px;color:var(--mint);letter-spacing:-.2px}
/* ---- 메뉴 간소화: 그룹 목록 ---- */
.drawer .m-top{display:block;text-decoration:none;color:inherit}
.drawer .m-group{margin-top:26px}
.drawer .m-gt{font-size:12px;font-weight:700;color:var(--mint);letter-spacing:.2px;margin:0 2px 4px}
.drawer .m-item{display:flex;align-items:center;gap:10px;padding:15px 2px;border-bottom:1px solid rgba(232,237,234,.08);color:var(--paper);text-decoration:none;font-size:18px;font-weight:700;letter-spacing:-.5px}
.drawer .m-item span{flex:1}
.drawer .m-item em{font-style:normal;font-size:11px;font-weight:800;color:#fff;background:var(--em);padding:3px 8px;border-radius:999px}
.drawer .m-item .ic{color:var(--mint);opacity:.6}
.drawer .m-item.on{color:var(--em2)}
.drawer .m-soon{display:flex;align-items:center;gap:8px;margin-top:18px;padding:12px 14px;border-radius:14px;background:rgba(232,237,234,.05);color:var(--mint);font-size:13px}
.drawer .m-foot{margin-top:28px;font-size:12px;color:var(--mint);line-height:1.7}
.drawer .m-links{display:flex;gap:16px;margin-top:6px}
.drawer .m-links a,.drawer .m-links button{border:0;background:none;padding:0;font:inherit;color:rgba(232,237,234,.7);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
/* ---- 신청 유도 섹션 ---- */
.joinx{position:relative;padding:30px 22px 26px;border-radius:28px;overflow:hidden;background:radial-gradient(120% 90% at 100% 0%,rgba(19,178,138,.38),transparent 60%),linear-gradient(160deg,#0a3a2f,#062019 70%);border:1px solid rgba(124,180,161,.25);box-shadow:0 30px 70px -30px rgba(1,142,108,.7)}
.joinx::before{content:"";position:absolute;right:-30%;top:-40%;width:90%;height:120%;background:radial-gradient(closest-side,rgba(124,180,161,.25),transparent);filter:blur(30px);pointer-events:none}
.joinx>*{position:relative}
.jx-h{font-size:clamp(30px,8.6vw,44px);font-weight:900;letter-spacing:-1.4px;line-height:1.15;margin:8px 0 18px}
.jx-s{color:var(--mint);margin:-6px 0 18px}
.jx-price{display:flex;align-items:baseline;gap:10px;margin-bottom:18px}
.jx-price .jx-ph{font-size:12px;font-weight:800;color:#fff;background:var(--em);padding:3px 9px;border-radius:999px}
.jx-price b{font-size:28px;font-weight:900;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.jx-price small{color:var(--mint);font-size:13px}
.jx-cta{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:22px}
.joinx .pill{margin-top:4px}
/* ---- FAQ 카테고리 ---- */
.faq-cats{display:flex;gap:6px;overflow-x:auto;margin:0 -22px 18px;padding:4px 22px 8px;scrollbar-width:none;position:sticky;top:calc(58px + env(safe-area-inset-top,0px));z-index:15}
.faq-cats::-webkit-scrollbar{display:none}
.faq-cats button{flex:none;height:38px;padding:0 15px;border-radius:999px;border:1px solid rgba(124,180,161,.22);background:rgba(7,43,38,.6);color:var(--haze);font:inherit;font-size:14px;font-weight:700;letter-spacing:-.3px;cursor:pointer;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.faq-cats button.on{background:linear-gradient(135deg,#13B28A,#018E6C 60%,#01694F);border-color:rgba(255,255,255,.28);color:#fff}
.lu-strip{scroll-snap-type:x proximity}
.lu-chip{scroll-snap-align:start}
/* 바로가기 아이콘: 보일 때 선이 그려짐 */
.reveal-up .icw .ic *{stroke-dasharray:1;stroke-dashoffset:1}
.reveal-up.on .icw .ic *{animation:draw 1s cubic-bezier(.6,0,.3,1) .25s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.reveal-up .icw .ic *{stroke-dasharray:none;animation:none}}
.drawer .m-q{margin-top:6px;font-size:15px;font-weight:300;color:rgba(232,237,234,.62);letter-spacing:-.3px}
/* 메뉴 상단: 로고 없이 이름을 닫기 버튼 높이로 */

.drawer .m-who{margin-top:0}
.drawer .m-ev{margin-top:0;font-size:22px;font-weight:800;letter-spacing:-.7px;color:var(--paper)}
/* 라인업 카드: 컨베이어벨트처럼 계속 흐름 (손대면 멈춤) */
.lu-strip[data-roll]{overflow:hidden;scroll-snap-type:none;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.lu-strip[data-roll]{touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.lu-strip[data-roll]:active{cursor:grabbing}
.lu-strip[data-roll] img{-webkit-user-drag:none;pointer-events:none}
.lu-track{display:flex;gap:10px;width:max-content;will-change:transform}
@keyframes belt{to{transform:translateX(calc(-50% - 5px))}}
@media (prefers-reduced-motion:reduce){.lu-strip[data-roll]{overflow-x:auto}}
/* 메뉴 상단: 로고는 닫기 버튼 줄, 이름은 그 아래 */
.drawer .m-top{margin-top:8px;padding:0 60px 20px 0}
.drawer .m-logo{height:22px}
.drawer .m-who,.drawer .m-ev{margin-top:26px}
/* 신청한 사람: 홈 맨 위 상태 */
.topstat{padding-top:calc(76px + env(safe-area-inset-top,0px));position:relative;z-index:2}
.topstat .h2s{margin-bottom:12px}
.topstat + .hero2{min-height:72svh;padding-top:40px}
/* 고정 버튼 ↔ 탭바: 틈 없이 */
body.has-tab .cta{bottom:var(--tabh,64px)}
body.has-tab .cta .in{padding-bottom:12px}
body.stage.has-tab .cta{bottom:calc(var(--tabh,64px) + 18px)}
.pdate-img{display:block;width:min(78vw,420px);height:auto}
/* 메뉴 버튼은 오른쪽: 열면 그 자리의 두 줄이 X로 바뀐다 (별도 닫기 버튼은 메뉴 버튼이 없는 화면에서만) */
/* 메뉴가 열리면 오른쪽 위 같은 자리에 닫기(X)가 보이고, 뒤에 깔린 메뉴 버튼은 숨긴다 */
body.drawer-open .stagebar .hb,body.drawer-open .top .hb{opacity:0;pointer-events:none}
.stagebar .hb{margin-right:-6px}
.stagebar .gnb-ic,.stagebar .gnb-txt{margin-left:-2px}
.topstat .ts-hi{font-size:15px;font-weight:600;color:var(--mint);margin-bottom:2px}
.topstat .joinx{margin-top:4px}
.topstat + .qsec{padding-top:26px}
/* 등록 완료 카드: 신청번호·소속·객실·조 + 입장 QR 자리 */
.paidcard .pc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.paidcard .pc-grid div{padding:12px 14px;border-radius:14px;background:rgba(3,20,16,.45);border:1px solid rgba(232,237,234,.08);min-width:0}
.paidcard .pc-grid span{display:block;font-size:12px;color:var(--mint);margin-bottom:2px}
.paidcard .pc-grid b{display:block;font-size:17px;font-weight:800;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paidcard .pc-grid em{font-style:normal;font-size:14px;font-weight:600;color:rgba(232,237,234,.45)}
.qr-wait{display:flex;align-items:center;gap:14px;padding:14px;margin-bottom:12px;border-radius:16px;border:1.5px dashed rgba(124,180,161,.35)}
.qr-wait b{display:block;font-size:15px}.qr-wait small{font-size:13px;color:var(--mint)}
.qr-beat{width:64px;height:64px;flex:none;border-radius:16px;display:grid;place-items:center;color:var(--em2);background:rgba(19,178,138,.12);animation:qrbeat 1.6s ease-in-out infinite}
@keyframes qrbeat{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(19,178,138,.35)}14%{transform:scale(1.08)}28%{transform:scale(1)}42%{transform:scale(1.05);box-shadow:0 0 0 10px rgba(19,178,138,0)}70%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.qr-beat{animation:none}}
button.qr-wait{width:100%;font:inherit;color:inherit;text-align:left;background:none;cursor:pointer}
/* GNB: 왼쪽 로고 · 오른쪽 메뉴 (로고는 히어로를 지나면 나타남, 히어로 없는 화면은 처음부터) */
.stagebar .gnb-logo{position:static;transform:translateY(6px);height:auto}
.stagebar .gnb-logo img{height:24px}
.stagebar.show-logo .gnb-logo{transform:none}
.stagebar{justify-content:space-between;padding-left:22px}
.stagebar .hb{margin-left:auto}
/* 메뉴가 열리면 두 줄 메뉴 버튼이 그 자리에서 X로 바뀐다 (원형 닫기 버튼은 메뉴 버튼이 없는 화면에서만) */
body.drawer-open .stagebar .hb,body.drawer-open .top .hb{opacity:1;pointer-events:auto}
body.drawer-open .stagebar,body.drawer-open .top{z-index:70!important}
body:has(.stagebar .hb) .drawer .m-close,body:has(.top .hb) .drawer .m-close{display:none}
body.drawer-open .stagebar .hb{color:var(--paper)}
/* 메뉴 목록: 구분선은 끝까지 직선 */
.drawer .m-item{border-radius:0!important}
.m-close{border:0!important;background:none!important}
/* 등록 완료 카드: 참석 유형 키컬러 */
.paidcard{position:relative;overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 22%,rgba(7,43,38,.7)),rgba(7,43,38,.62) 55%)!important;border-color:color-mix(in srgb,var(--tc) 45%,transparent)!important}
.paidcard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--tc)}
.tpill{display:inline-flex;align-items:center;margin-left:auto;padding:3px 10px;border-radius:999px;border:1.5px solid var(--tc,#13B28A);color:var(--paper);font-size:12px;font-weight:700;white-space:nowrap}
.paidcard .row .tpill{margin-left:auto}
.qr-row{display:flex;align-items:center;gap:12px;width:100%;padding:14px 14px 14px 16px;margin-bottom:10px;border:1px solid rgba(232,237,234,.1);border-radius:16px;background:rgba(3,20,16,.45);color:inherit;font:inherit;text-align:left;cursor:pointer}
.qr-row div{flex:1;min-width:0}.qr-row b{display:block;font-size:15px}.qr-row small{font-size:13px;color:var(--mint)}
.qr-ic{width:48px;height:48px;flex:none;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--tc) 22%,transparent);color:var(--tc)}
.pc-more{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:50px;border-radius:14px;border:1px solid rgba(232,237,234,.14);background:rgba(232,237,234,.06);color:var(--paper);font:inherit;font-size:15px;font-weight:700;cursor:pointer}
/* QR 상세: 어두운 무대 · LISTEN · 캡처 방지(움직이는 테두리·스캔선·실시간 시계) */
.qrpage{padding-top:calc(78px + env(safe-area-inset-top,0px));padding-bottom:40px;display:flex;flex-direction:column;align-items:center}
.qp-card{position:relative;width:100%;max-width:360px;padding:26px 22px 22px;border-radius:28px;text-align:center;overflow:hidden;background:linear-gradient(170deg,rgba(7,43,38,.92),rgba(3,20,16,.96));isolation:isolate}
.qp-card::before{content:"";position:absolute;inset:-60%;z-index:-2;background:conic-gradient(from 0deg,transparent 0 40%,var(--tc) 50%,#7CB4A1 55%,transparent 65% 100%);animation:qpspin 4s linear infinite}
.qp-card::after{content:"";position:absolute;inset:2px;z-index:-1;border-radius:26px;background:linear-gradient(170deg,#072B26,#031410)}
@keyframes qpspin{to{transform:rotate(360deg)}}
.qp-sweep{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(124,180,161,.12) 50%,transparent 65%);background-size:260% 100%;animation:qpsweep 3.2s ease-in-out infinite}
@keyframes qpsweep{0%{background-position:120% 0}100%{background-position:-120% 0}}
.qp-logo{position:relative;height:26px;margin:0 auto 6px;display:block}
.qp-sub{position:relative;font-size:13px;font-weight:700;color:var(--mint);margin-bottom:18px}
.qp-qr{position:relative;width:228px;height:228px;margin:0 auto;padding:12px;border-radius:18px;background:#fff;overflow:hidden}
.qp-qr .qr-box{width:100%;height:100%;padding:0;margin:0;border-radius:0}
.qp-scan{position:absolute;left:0;right:0;height:3px;top:0;background:linear-gradient(90deg,transparent,var(--tc),transparent);box-shadow:0 0 12px var(--tc);animation:qpscan 2.4s ease-in-out infinite;opacity:.85}
@keyframes qpscan{0%,100%{top:6%}50%{top:92%}}
.qp-live{position:relative;display:inline-flex;align-items:center;gap:6px;margin:16px 0 4px;padding:4px 12px;border-radius:999px;background:rgba(232,237,234,.08);font-variant-numeric:tabular-nums}
.qp-live .dot{width:8px;height:8px;border-radius:50%;background:#4CC27A;animation:qpdot 1s ease-in-out infinite}
@keyframes qpdot{50%{opacity:.25}}
.qp-name{position:relative;font-size:24px;font-weight:800;letter-spacing:-.6px;margin-top:6px}
.qp-meta{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px;font-size:13px;color:var(--haze)}
.qp-meta .tpill{margin:0}
.qp-meta span:not(.tpill){padding:3px 10px;border-radius:999px;background:rgba(232,237,234,.08)}
.qp-no{position:relative;margin-top:12px;font-size:12px;color:var(--mint)}
.qp-note{margin:18px 0 0;text-align:center;font-size:13px;line-height:1.6;color:var(--mint)}
@media (prefers-reduced-motion:reduce){.qp-card::before,.qp-sweep,.qp-scan{animation-duration:12s}}
/* GNB 높이 여유 (로고 위아래 여백) */
.stagebar{height:68px}
.lu-tabs,.faq-cats{top:calc(68px + env(safe-area-inset-top,0px))}
.topstat{padding-top:calc(108px + env(safe-area-inset-top,0px))}
.qrpage{padding-top:calc(88px + env(safe-area-inset-top,0px))}
/* 메뉴를 열어도 로고가 제자리에: 상단 바의 로고를 그대로 두고 메뉴 안 로고는 자리만 차지 */
body.drawer-open .stagebar>.gnb-logo{opacity:1!important;pointer-events:none}
body:has(.stagebar) .drawer .m-logo{visibility:hidden}
body:has(.stagebar) .drawer .m-top{margin-top:0;padding-top:calc(68px - 14px - 22px)}
/* QR: 상자 안에 정확히 맞춤 */
.qp-qr{box-sizing:border-box}
.qp-qr .qr-box{position:relative;width:100%;height:100%;overflow:hidden}
.qp-qr .qr-box img,.qp-qr .qr-box canvas{position:absolute;inset:0;width:100%!important;height:100%!important;image-rendering:pixelated}
.qrpage{padding-bottom:calc(var(--tabh,64px) + 30px)}
.drawer .m-logout{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:52px;margin-top:22px;border-radius:14px;border:1px solid rgba(255,107,107,.35);background:rgba(255,107,107,.08);color:#FF8A8A;font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.qp-sub{font-size:15px;margin-bottom:16px}

/* 공지 띠와 참가 신청 카드 사이 간격 */
.banner2+.reveal-up .pcard,.banner2+.reveal-up{margin-top:14px}
/* 차수별 함께하기 색: 얼리버드=에메랄드(기본) · 정규=블루 · 라스트콜=오렌지 */
.pcard.ph1{background:linear-gradient(135deg,#2F6FE4,#1E4FB0 60%,#0f2a63);box-shadow:0 20px 50px -20px rgba(47,111,228,.8)}
.pcard.ph2{background:linear-gradient(135deg,#F0820F,#C9530A 60%,#6b2a05);box-shadow:0 20px 50px -20px rgba(240,130,15,.8)}
.pcard.ph1 .parr{color:#0f2a63}.pcard.ph2 .parr{color:#6b2a05}
.cta .fab.ph1{background:linear-gradient(135deg,rgba(64,128,240,.95),rgba(30,79,176,.95));box-shadow:0 12px 34px -10px rgba(47,111,228,.75),inset 0 1px 0 rgba(255,255,255,.25)}
.cta .fab.ph2{background:linear-gradient(135deg,rgba(245,150,40,.95),rgba(201,83,10,.95));box-shadow:0 12px 34px -10px rgba(240,130,15,.75),inset 0 1px 0 rgba(255,255,255,.25)}
/* 플래그 공지 2개 이상: 흐르는 띠 */
.bflow{overflow:hidden}.bflow>svg{flex:none}
.bf-win{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.bf-track{display:flex;width:max-content;animation:bflow linear infinite}
.bf-track a{color:inherit;text-decoration:none;white-space:nowrap;padding-right:40px;position:relative}
.bf-track a:after{content:'';position:absolute;right:18px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:var(--em2,#13B28A)}
.bflow:hover .bf-track,.bflow:active .bf-track{animation-play-state:paused}
@keyframes bflow{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.bf-track{animation:none}}
/* 하단 문의·SNS 링크 */
.f-sns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.f-sns a,.f-sns .off{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:999px;border:1px solid rgba(232,237,234,.2);background:rgba(232,237,234,.06);color:var(--paper);font-size:13px;font-weight:700;text-decoration:none}
.f-sns .off{opacity:.45}
/* + 버튼 → SNS 펼침 */
#snsfab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(var(--tabh,0px) + 16px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
#snsfab[hidden]{display:none}
.sf-btn{pointer-events:auto;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(7,43,38,.82);color:var(--paper);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px -10px rgba(0,0,0,.6);transition:transform .35s cubic-bezier(.2,.8,.2,1),background .2s}
#snsfab.open .sf-btn{transform:rotate(45deg);background:var(--em)}
.sf-list{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.sf-item{pointer-events:none;display:flex;align-items:center;gap:10px;text-decoration:none;opacity:0;transform:translateY(16px) scale(.8);transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1);transition-delay:calc((2 - var(--i)) * 40ms)}
#snsfab.open .sf-item{pointer-events:auto;opacity:1;transform:none;transition-delay:calc((2 - var(--i)) * 55ms)}
.sf-l{font-size:13px;font-weight:700;color:var(--paper);background:rgba(3,20,16,.85);padding:7px 12px;border-radius:10px;white-space:nowrap}
.sf-ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:#062A21;box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
.sf-item:nth-child(1) .sf-ic{background:#FEE500;color:#191600}
.sf-item:nth-child(2) .sf-ic{background:radial-gradient(circle at 30% 107%,#FDF497 0%,#FDF497 5%,#FD5949 45%,#D6249F 60%,#285AEB 90%);color:#fff}
.sf-item.off .sf-ic{opacity:.5}.sf-item.off .sf-l{opacity:.7}
@media (prefers-reduced-motion:reduce){.sf-item,.sf-btn{transition:none}}
/* 메뉴(서랍·관리자 메뉴·전체 화면 레이어)가 열려 있으면 + SNS 버튼은 숨긴다 */
#snsfab{transition:opacity .2s,transform .2s}
body.drawer-open #snsfab,body.admm-open #snsfab,body.trl-on #snsfab{opacity:0;transform:scale(.8);pointer-events:none}
body.drawer-open #snsfab *,body.admm-open #snsfab *,body.trl-on #snsfab *{pointer-events:none!important}
/* 메뉴 하단 문의 버튼 */
.drawer .m-contact{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.drawer .m-contact a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:14px;border:1px solid rgba(232,237,234,.14);background:rgba(232,237,234,.05);color:var(--paper);font-size:14px;font-weight:700;text-decoration:none;line-height:1.3}
.drawer .m-contact a svg{flex:none}
.drawer .m-contact .mc-k svg{color:#FEE500}.drawer .m-contact .mc-t svg{color:var(--em2)}
.drawer .m-contact small{font-size:12px;font-weight:500;color:var(--mint);margin-left:6px}
/* 홈 푸터 (시안 A) */
.foot3{text-align:center;padding:56px max(22px,env(safe-area-inset-right,0px)) 150px max(22px,env(safe-area-inset-left,0px));background:radial-gradient(120% 60% at 50% 0%,rgba(10,46,37,.9),transparent 70%)}
body.has-tab .foot3{padding-bottom:190px}
.f3-logo{width:56px;height:80px;margin:0 auto 18px;color:var(--mint);opacity:.55}
.f3-logo svg{display:block;width:100%;height:100%}
.f3-orgs{display:grid;gap:14px}
.f3-k{font-size:12px;font-weight:700;color:var(--mint);letter-spacing:.04em}
.f3-v{font-size:15px;font-weight:700;color:var(--paper);margin-top:2px;line-height:1.45}
.f3-btns{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:26px}
.f3-btn{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px;border-radius:14px;border:1px solid rgba(232,237,234,.16);background:rgba(232,237,234,.05);color:var(--paper);font-size:14px;font-weight:700;text-decoration:none}
.f3-btn .k{display:grid;color:#FEE500}.f3-btn .t{display:grid;color:var(--em2)}
.f3-btn small{font-size:12px;font-weight:500;color:var(--mint)}
.f3-sns{display:flex;justify-content:center;gap:10px;margin-top:18px}
.f3-sns a,.f3-sns .off{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(232,237,234,.16);color:var(--paper)}
.f3-sns .off{opacity:.35}
.f3-links{margin-top:20px;font-size:13px}.f3-links a{color:rgba(232,237,234,.65);text-underline-offset:3px}
.f3-copy{margin-top:8px;font-size:12px;color:rgba(232,237,234,.4)}

/* 처리할 일 배지: bad=기한 지남·보류·발송 실패, warn=판단 필요, key=일상 처리 */
.nbs{display:inline-flex;align-items:center;align-self:center}.nbs:empty{display:none}
.tabs button{display:inline-flex;align-items:center}.rl-t,.m-item>span{display:inline-flex;align-items:center}
.nbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:999px;font-style:normal;font-size:11px;font-weight:800;line-height:1;color:#fff;background:var(--key,#018E6C);font-variant-numeric:tabular-nums}
.nbd.warn{background:#F0820F}.nbd.bad{background:#E5484D}
.adm-grid button{position:relative}.adm-grid button .nbs{position:absolute;top:6px;right:6px}.adm-grid button .nbd{margin:0}
/* 홈 얼리버드 강조 블록 */
.ebx{position:relative;padding:28px 22px 24px;border-radius:28px;overflow:hidden;background:radial-gradient(110% 80% at 100% 0%,rgba(19,178,138,.45),transparent 62%),linear-gradient(165deg,#0b3d31,#052018 72%);border:1px solid rgba(124,180,161,.3);box-shadow:0 30px 70px -30px rgba(1,142,108,.6)}
.ebx::before{content:"";position:absolute;right:-25%;top:-35%;width:85%;height:110%;background:radial-gradient(closest-side,rgba(124,180,161,.28),transparent);filter:blur(30px);pointer-events:none}
.ebx>*{position:relative}
.eb-k{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.02em;color:#fff;background:rgba(1,142,108,.55);border:1px solid rgba(124,180,161,.45);padding:6px 12px;border-radius:999px}
.eb-dot{width:7px;height:7px;border-radius:50%;background:#7CF0C8;box-shadow:0 0 0 0 rgba(124,240,200,.7);animation:ebpulse 1.6s infinite}
@keyframes ebpulse{70%{box-shadow:0 0 0 8px rgba(124,240,200,0)}100%{box-shadow:0 0 0 0 rgba(124,240,200,0)}}
.eb-h{font-size:clamp(28px,8.2vw,42px);font-weight:900;letter-spacing:-1.3px;line-height:1.18;margin:16px 0 18px}
.eb-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:22px}
.eb-price b{font-size:clamp(34px,10vw,46px);font-weight:900;letter-spacing:-1.5px;font-variant-numeric:tabular-nums;line-height:1}
.eb-price s{color:var(--mint);font-size:16px;font-weight:600;opacity:.8}
.eb-save{font-size:12.5px;font-weight:800;color:#052018;background:#7CF0C8;padding:4px 10px;border-radius:999px}
.ebx .bigcd{margin-top:6px}
.eb-ladder{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:22px}
.eb-step{display:flex;flex-direction:column;gap:3px;padding:12px 10px;border-radius:14px;border:1px solid rgba(232,237,234,.12);background:rgba(232,237,234,.03)}
.eb-step.now{background:rgba(1,142,108,.28);border-color:rgba(124,240,200,.6)}
.eb-step.past{opacity:.4}.eb-step.past b{text-decoration:line-through}
.eb-sn{font-size:11.5px;font-weight:700;color:var(--mint)}.eb-step.now .eb-sn{color:#7CF0C8}
.eb-step b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.eb-sd{font-size:10.5px;color:rgba(232,237,234,.5)}
.eb-note{font-size:12.5px;color:var(--mint);margin-top:4px}
/* 홈에서 눌러 들어온 라인업 인물 잠깐 강조 */
.lu-flash{animation:luflash 2.2s ease}
@keyframes luflash{0%,35%{box-shadow:0 0 0 2px rgba(124,240,200,.9),0 0 40px -6px rgba(19,178,138,.8)}100%{box-shadow:0 0 0 0 rgba(124,240,200,0)}}
/* 푸터 경계: 위쪽을 투명에서 서서히 짙어지게 해 선이 생기지 않게 */
.foot3{position:relative;isolation:isolate;background:none}
.foot3::before{content:"";position:absolute;inset:-120px 0 0;z-index:-1;pointer-events:none;background:radial-gradient(130% 70% at 50% 40%,rgba(10,46,37,.85),transparent 72%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 180px);mask-image:linear-gradient(to bottom,transparent,#000 180px)}
/* FAQ 답변 속 링크 */
.faq-link{color:#7CF0C8;font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
/* 상단 상태 띠 (GNB 위 얇은 한 줄) */
:root{--annh:0px}
body.has-ann{--annh:calc(32px + env(safe-area-inset-top,0px))}
.ann{position:fixed;top:0;left:0;right:0;z-index:21;height:var(--annh);padding:env(safe-area-inset-top,0px) 14px 0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;line-height:1;color:var(--paper);text-decoration:none;background:linear-gradient(90deg,#062a21,#0b3b2f 50%,#062a21);border-bottom:1px solid rgba(124,180,161,.18);white-space:nowrap;overflow:hidden}
.ann b{font-weight:800;letter-spacing:-.2px}
.ann-sub{color:rgba(232,237,234,.7);font-weight:500}
.ann-cd{font-variant-numeric:tabular-nums;font-weight:800;color:#7CF0C8;letter-spacing:.3px}
.ann .ic{opacity:.6;flex:none;margin-left:-2px}
.ann-dot{width:6px;height:6px;border-radius:50%;flex:none;background:#7CF0C8;box-shadow:0 0 0 0 rgba(124,240,200,.7);animation:ebpulse 1.6s infinite}
.ann.soon .ann-dot{background:#9FB8AF;animation:none}
.ann.hot{background:linear-gradient(90deg,#3a1d06,#5a2c08 50%,#3a1d06);border-bottom-color:rgba(255,170,90,.25)}
.ann.hot .ann-dot{background:#FFB15C;box-shadow:0 0 0 0 rgba(255,177,92,.7)}
.ann.hot .ann-cd{color:#FFC98A}
.ann.end{background:#0a1a16}.ann.end .ann-dot{background:#6f7f7a;animation:none}
.ann.live{background:linear-gradient(90deg,#01694F,#018E6C 50%,#01694F)}.ann.live .ann-dot{background:#fff}
body.has-ann .stagebar{top:var(--annh)}
body.has-ann .progress{top:var(--annh)}
.eb-price{margin-bottom:6px}
.eb-line{margin:0 0 22px;font-size:14px;font-weight:600;color:#7CF0C8}
.eb-note{line-height:1.55}
/* 메뉴: 잠긴 항목 */
.m-item.locked{opacity:.42}
.drawer .m-item.locked .m-lock{flex:none;margin-left:auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(232,237,234,.1)}
.m-item.locked:hover{opacity:.6}
/* 무대 헤더: 메뉴 배지 테두리·종 색 */
.stagebar .hb .nbd{box-shadow:0 0 0 2px #031410}
.stagebar .gnb-bell{color:var(--paper)}
body.drawer-open .stagebar .gnb-bell{display:grid}
body.drawer-open .stagebar .gnb-bell+.hb,body.drawer-open .top .gnb-bell+.hb{margin-left:0}
/* 신청 블록 간결판 */
.ebx .eb-h{font-size:clamp(26px,7.6vw,36px);margin:14px 0 14px}
.ebx .eb-price b{font-size:clamp(32px,9.5vw,42px)}
.ebx .eb-line{margin:0 0 20px}
.eb-cd{display:flex;align-items:baseline;gap:10px;margin-bottom:22px}
.eb-cd .cd-l{font-size:13px}
.ebx .eb-cd .bigcd{margin:0;font-size:clamp(28px,8.5vw,40px)}
/* 메뉴를 열어도 상단 상태 띠는 그대로 */
body.has-ann.drawer-open .ann{z-index:80}
body.has-ann .drawer .m-wrap{margin-top:var(--annh)}
body.drawer-open .gnb-bell{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
/* 홈 신청 블록 = 초대장(티켓). 위: 문구 / 절취선 / 아래: 카운트다운·참가비(작게)·버튼 */
.ivt{--ivt-bg:#0c3a2f;--ivt-bg2:#072a22;--cut:#031410;position:relative;border-radius:26px;color:var(--paper);filter:drop-shadow(0 26px 50px rgba(0,0,0,.45))}
.ivt-top{position:relative;padding:22px 22px 24px;border-radius:26px 26px 0 0;background:radial-gradient(120% 100% at 100% 0%,rgba(124,240,200,.18),transparent 55%),linear-gradient(170deg,#11503f,var(--ivt-bg) 70%);overflow:hidden}
.ivt-top::after{content:"";position:absolute;right:-40px;bottom:-60px;width:220px;height:220px;background:url(/assets/presbytery.svg) center/contain no-repeat;opacity:.05;filter:invert(1);pointer-events:none}
.ivt-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:26px}
.ivt-brand{font-size:11px;font-weight:800;letter-spacing:.18em;color:rgba(232,237,234,.55)}
.ivt-tag{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#CFF5E6;padding:5px 11px;border-radius:999px;background:rgba(124,240,200,.1);border:1px solid rgba(124,240,200,.28)}
.ivt-tag i{width:6px;height:6px;border-radius:50%;background:#7CF0C8;animation:ebpulse 1.6s infinite}
.ivt-h{font-size:clamp(28px,8vw,38px);font-weight:900;letter-spacing:-1.2px;line-height:1.2;margin:0 0 12px}
.ivt-sub{margin:0;font-size:14.5px;line-height:1.6;color:rgba(232,237,234,.72)}
.ivt-en{margin-top:22px;font-family:'Instrument Serif',serif;font-size:17px;color:rgba(124,180,161,.75);letter-spacing:.2px}
.ivt-en em{font-style:italic;color:#7CB4A1}
/* 절취선: 양 끝 반원 홈 + 점선 */
.ivt-cut{position:relative;height:22px;background:linear-gradient(var(--ivt-bg),var(--ivt-bg2));-webkit-mask:radial-gradient(circle 11px at 0 50%,transparent 10.5px,#000 11px) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,transparent 10.5px,#000 11px) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 50%,transparent 10.5px,#000 11px) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 50%,transparent 10.5px,#000 11px) right/51% 100% no-repeat}
.ivt-cut::before{content:"";position:absolute;left:20px;right:20px;top:50%;border-top:1.5px dashed rgba(232,237,234,.22)}
.ivt-bot{padding:16px 22px 22px;border-radius:0 0 26px 26px;background:var(--ivt-bg2)}
.ivt-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}
.ivt-k{display:block;font-size:11.5px;font-weight:600;color:rgba(232,237,234,.5);margin-bottom:5px}
.ivt-cd{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800;letter-spacing:-.5px;line-height:1}
.ivt-cd small{font-size:12px;font-weight:600;color:#7CB4A1;margin-left:6px;letter-spacing:.3px}
.ivt-fee{text-align:right}
.ivt-fee b{font-size:14px;font-weight:700;color:rgba(232,237,234,.85);font-variant-numeric:tabular-nums}
.ivt-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:52px;border-radius:16px;background:linear-gradient(135deg,#13B28A,#018E6C);color:#fff;font-size:16px;font-weight:800;text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.ivt-btn:active{transform:scale(.98)}
.ivt-btn.ghost{background:rgba(232,237,234,.08);box-shadow:none}
.stagebar .gnb-bell,.top .gnb-bell{display:none}
body.drawer-open .stagebar .gnb-bell,body.drawer-open .top .gnb-bell{display:grid}
.ivt-top::after{opacity:.035;width:180px;height:180px;right:-30px;bottom:-50px}
/* 상태 카드 = 티켓 (.ivt.tkt) — 신청 블록과 같은 모양 */
.tkt .ivt-tag.warn{color:#FFE2B8;background:rgba(240,130,15,.12);border-color:rgba(240,130,15,.4)}
.tkt .ivt-tag.warn i{background:#F5A54A}
.tkt .ivt-tag.ok{color:#CFF5E6}
.tkt .ivt-tag.ok i{animation:none}
.tkt .ivt-top{border-top:3px solid var(--tc,transparent)}
.tkt .ivt-h{font-size:clamp(26px,7.4vw,34px)}
.tkt-kv{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.tkt-kv b{display:block;font-size:17px;font-weight:800;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tkt-kv em{font-style:normal;font-size:15px;font-weight:600;color:rgba(232,237,234,.45)}
.ivt-bot .tkt-kv{margin:4px 0 18px}
.tkt .ivt-top .note{margin:14px 0 0}
button.ivt-btn{width:100%;border:0;font-family:inherit;cursor:pointer}
button.ivt-btn:disabled{opacity:.55}
.ivt-bot .ivt-btn + .ivt-btn{margin-top:10px}
.ivt-btn.ghost{color:var(--paper)}
.tkt-row{display:flex;gap:8px;margin-top:12px}
.tkt-row .ivt-btn{flex:1;min-width:0;margin:0!important}
.tkt .ivt-bot .copy{background:rgba(3,20,16,.55);border-color:rgba(232,237,234,.1)}
.tkt .ivt-bot .copy b{color:var(--paper)}
.tkt .ivt-bot .copy button{background:rgba(232,237,234,.1);color:var(--paper)}
/* 무대 화면 첫 콘텐츠: 로고 아래 30px (상단 상태 띠가 있으면 그만큼 더 내림) */
body{--topv:env(safe-area-inset-top,0px)}
body.has-ann{--topv:var(--annh)}
.topstat,.qrpage,.stagetop{padding-top:calc(76px + var(--topv))!important}
