@import url('https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500;600&family=Hanken+Grotesk:wght@300;400;500&family=DM+Mono:wght@400;500&display=swap');
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.css');

:root{
  --paper:#FBF8F1; --paper-2:#F2EDE2; --paper-3:#E8E1D2;
  --ink:#17140F; --ink-2:#635B4F; --ink-3:#9C9182;
  --line:#E3DBCA;
  --display:'Jost','Pretendard',sans-serif;
  --body:'Hanken Grotesk','Pretendard',sans-serif;
  --mono:'DM Mono',ui-monospace,monospace;
  --edge:clamp(20px,5vw,72px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--paper)}
body{background:var(--paper);color:var(--ink);font-family:var(--body);
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
::selection{background:var(--ink);color:var(--paper)}
img{display:block;max-width:100%;height:auto}

/* ── 상단 ─────────────────────────────────────────── */
.bar{display:flex;align-items:center;gap:22px;padding:20px var(--edge);
  position:sticky;top:0;z-index:40;background:rgba(251,248,241,.88);backdrop-filter:blur(12px)}
/* 브랜드 락업 — AuraX 가 브랜드, Music Playlist 는 그 아래 제품명 */
.logo{display:inline-flex;flex-direction:column;gap:1px;line-height:1}
.logo b{font-family:var(--display);font-weight:600;font-size:20px;letter-spacing:-.01em}
.logo span{font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink-3)}
.logo:hover b{opacity:.7}
.bar nav{margin-left:auto;display:flex;gap:20px;font-family:var(--display);
  font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.bar nav a:hover{color:var(--ink)}

/* ── 히어로 ───────────────────────────────────────── */
.hero{padding:0 var(--edge)}
.shot{position:relative;overflow:hidden;background:var(--paper-3)}
.shot img{width:100%;height:clamp(320px,62vh,620px);object-fit:cover}
.tagline{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:12px 2px 0;font-family:var(--mono);font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-3)}

.lead{padding:clamp(38px,7vh,76px) var(--edge) clamp(30px,6vh,64px);
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(22px,4vw,64px);align-items:end}
@media (max-width:840px){.lead{grid-template-columns:1fr}}
h1{font-family:var(--display);font-weight:400;
  font-size:clamp(30px,4.6vw,54px);line-height:1.14;letter-spacing:-.022em;text-wrap:balance}
h1 b{font-weight:600}
.lead p{color:var(--ink-2);font-size:16.5px;max-width:44ch}
.lead .cta{display:inline-block;margin-top:20px;background:var(--ink);color:var(--paper);
  font-family:var(--display);font-size:15px;letter-spacing:.02em;padding:13px 30px;border-radius:2px;
  transition:opacity .15s}
.lead .cta:hover{opacity:.85}

/* ── 수치 ─────────────────────────────────────────── */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));
  border-top:1px solid var(--line);margin:0 var(--edge)}
.facts div{padding:18px 18px 22px 0}
.facts dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.facts dd{font-family:var(--display);font-size:clamp(24px,2.6vw,34px);font-weight:400;
  letter-spacing:-.02em;margin-top:2px}

/* ── 공정 ─────────────────────────────────────────── */
section{padding:clamp(48px,8vh,96px) var(--edge)}
.shead{display:flex;align-items:baseline;gap:14px;margin-bottom:clamp(24px,4vh,44px)}
.shead span{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}
.shead h2{font-family:var(--display);font-weight:400;font-size:clamp(22px,2.7vw,32px);letter-spacing:-.02em}

.steps{display:flex;flex-direction:column;gap:clamp(28px,5vh,64px)}
.step{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:center}
.step:nth-child(even) .txt{order:-1}
@media (max-width:840px){.step{grid-template-columns:1fr}.step:nth-child(even) .txt{order:0}}
.step img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--paper-3)}
.step .n{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--ink-3)}
.step h3{font-family:var(--display);font-weight:500;font-size:clamp(19px,2vw,25px);
  letter-spacing:-.015em;margin:8px 0 8px}
.step p{color:var(--ink-2);font-size:15.5px;max-width:40ch}

/* ── 이용권 안내 ──────────────────────────────────────── */
.pass{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}
.pass h3{font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:-.01em;margin-bottom:12px}
.pass ol{list-style:none;counter-reset:p;display:flex;flex-direction:column;gap:9px}
.pass li{counter-increment:p;display:flex;gap:10px;font-size:14px;color:var(--ink-2);line-height:1.55}
.pass li::before{content:counter(p);flex:0 0 16px;font-family:var(--mono);font-size:10.5px;
  color:var(--ink-3);padding-top:3px}
.pass li b{color:var(--ink);font-weight:600}
.pass .kakao{display:inline-block;margin-top:16px;background:#FEE500;color:#191600;
  font-family:var(--display);font-size:14px;font-weight:500;padding:11px 22px;border-radius:2px}
.pass .kakao:hover{filter:brightness(.96)}
.pass .noline{margin-top:14px;font-size:13px;color:var(--ink-3);line-height:1.6}

/* ── 입장 ─────────────────────────────────────────── */
.gate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:clamp(460px,72vh,660px)}
@media (max-width:900px){.gate{grid-template-columns:1fr}}
/* 그리드 높이가 콘텐츠로 정해지므로 height:100% 가 안 먹는다. 절대 배치로 채운다 */
.gate .pic{position:relative;overflow:hidden;background:var(--paper-3);min-height:280px}
.gate .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gate .box{padding:clamp(30px,5vw,64px);display:flex;flex-direction:column;justify-content:center;
  background:var(--paper-2)}
.gate .box > *{max-width:420px}
.gate h2{font-family:var(--display);font-weight:400;font-size:clamp(23px,2.7vw,33px);
  letter-spacing:-.02em;margin-bottom:10px}
.gate .note{color:var(--ink-2);font-size:15px;max-width:38ch;margin-bottom:26px}
.gate .note b{color:var(--ink);font-weight:600}

.tabs{display:flex;gap:22px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.tabs button{padding:0 0 10px;font-family:var(--display);font-size:14px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid transparent;margin-bottom:-1px}
.tabs button:hover{color:var(--ink)}
.tabs button.on{color:var(--ink);border-bottom-color:var(--ink)}
.f{display:flex;flex-direction:column;gap:14px;max-width:380px}
.f label{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.f input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--ink-3);
  padding:8px 0;font-size:16px;font-family:var(--body);border-radius:0}
.f input:focus{outline:none;border-bottom-color:var(--ink)}
.f .go{margin-top:8px;background:var(--ink);color:var(--paper);font-family:var(--display);
  font-size:15px;padding:14px;border-radius:2px;transition:opacity .15s}
.f .go:hover{opacity:.85}
.f .go:disabled{opacity:.45;cursor:default}
.hint{font-size:13px;color:var(--ink-3);line-height:1.6}
.msg{font-size:13.5px;line-height:1.6;padding:9px 0 0;color:var(--ink-2)}
.msg.err{color:#8C3A22}
.msg[hidden]{display:none}

.state{display:flex;flex-direction:column;gap:16px;max-width:380px}
.state .who{font-size:15px;color:var(--ink-2)}
.state .who b{color:var(--ink);font-weight:600;display:block;font-size:16px}
.state .enter{background:var(--ink);color:var(--paper);text-align:center;
  font-family:var(--display);font-size:16px;padding:15px;border-radius:2px}
.state .enter:hover{opacity:.85}
.state .wait{border:1px solid var(--line);padding:15px;text-align:center;color:var(--ink-2);font-size:14.5px}
.state .out{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);text-align:center}
.state .out:hover{color:var(--ink)}

footer{padding:26px var(--edge) 44px;border-top:1px solid var(--line);display:flex;gap:16px;
  flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3)}
footer .sp{margin-left:auto}
footer a:hover{color:var(--ink)}
