/* AURA — 꿈의 라운지 (AURA-0818-2100-01)
   biz.aura.taxi 본편 전용. 본 서비스 화면은 이 파일을 읽지 않는다.
   팔레트는 디자인 정본을 따른다 — 잉크빛 흑자색 바탕 / 황동 금색 강조 하나. */

:root{
  --ink:#07070c;          /* 잉크빛 어둠 */
  --ink-2:#0d0c15;
  --brass:#c5a260;        /* 유일한 포인트색 */
  --veil:rgba(238,236,246,.82);
  --veil-dim:rgba(238,236,246,.46);
  --serif:'Nanum Myeongjo','Noto Serif KR',ui-serif,Georgia,serif;
  --sans:'Pretendard',system-ui,-apple-system,'Noto Sans KR',sans-serif;
}

*{box-sizing:border-box}
/* 섹션 스냅 = 꿈속 진입 시퀀스. 한 장면씩 걸리며 내려간다. */
html{background:var(--ink);scroll-behavior:smooth;scroll-snap-type:y mandatory}
body{
  margin:0;background:var(--ink);color:var(--veil);
  font-family:var(--sans);
  /* 한글 음절 중간 줄바꿈 차단 (AURA-0818-1040-01 교정 계승) */
  word-break:keep-all;overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}
img,video{display:block;max-width:100%}
a{color:inherit}

/* ── 진입 오버레이 ─────────────────────────────────────────── */
.gate{
  position:fixed;inset:0;z-index:90;display:grid;place-content:center;justify-items:center;
  gap:clamp(28px,5vh,54px);padding:24px;text-align:center;
  background:radial-gradient(120% 90% at 50% 45%,#12101c 0%,var(--ink) 62%);
  transition:opacity .9s ease,visibility .9s;
}
.gate[hidden]{display:grid}                 /* hidden 속성 대신 .is-out 로만 닫는다 */
.gate.is-out{opacity:0;visibility:hidden;pointer-events:none}
.gate-brand{
  margin:0;font-family:var(--serif);font-size:clamp(38px,7vw,74px);
  letter-spacing:.42em;text-indent:.42em;color:var(--brass);
}
.gate-line{margin:0;max-width:26ch;font-size:clamp(14px,1.6vw,17px);line-height:2;color:var(--veil-dim)}
.gate-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.gate-actions button{
  min-height:52px;padding:0 30px;border:1px solid rgba(197,162,96,.5);border-radius:2px;
  background:transparent;color:var(--veil);font:inherit;font-size:15px;letter-spacing:.06em;
  cursor:pointer;transition:background .35s,border-color .35s,color .35s;
}
.gate-actions button:hover,.gate-actions button:focus-visible{background:rgba(197,162,96,.14);border-color:var(--brass);color:#fff}
.gate-actions button[data-sound="off"]{border-color:rgba(238,236,246,.22);color:var(--veil-dim)}

/* ── 3D 카드 레이어 (영상에 굽지 않는다 — 코드로 난다) ───────── */
.cardlayer{
  position:fixed;inset:0;z-index:40;pointer-events:none;
  perspective:1400px;perspective-origin:50% 45%;
  transition:opacity .8s ease;
}
.cardlayer.is-hushed{opacity:0}
.card{
  position:absolute;top:50%;left:50%;width:clamp(72px,7.2vw,116px);aspect-ratio:5/8;
  margin:0;transform-style:preserve-3d;will-change:transform;
  /* AURA-0818-2230-01 — isolate each face on its own composited plane. */
  contain:layout paint style;
}
.card i{
  position:absolute;inset:0;border-radius:4px;backface-visibility:hidden;
  -webkit-backface-visibility:hidden;background-repeat:no-repeat;background-position:center;background-size:100% 100%;
  outline:1px solid transparent;transform:translateZ(.35px);
  box-shadow:0 18px 46px rgba(0,0,0,.6);
}
.card .face{
  background-image:url('/img/biz/dream/card-face.svg');
  border:1px solid rgba(255,246,222,.82);
}
.card .back{                                  /* 측면 회전으로 언뜻 보이는 뒷면 */
  transform:rotateY(180deg) translateZ(.35px);
  border:1px solid rgba(197,162,96,.62);
}
/* SVG is resolution-independent, so the ornament stays sharp at DPR 1–3 and
   through perspective transforms without a bitmap upscale or moire grid. */
.card .back,.finale-card .back{
  background-image:url('/img/biz/dream/card-back.svg');
}

/* ── 장면 ─────────────────────────────────────────────────── */
.scroller{margin:0}
.scene{
  position:relative;min-height:100svh;display:grid;align-content:end;
  scroll-snap-align:start;scroll-snap-stop:always;
  padding:0 clamp(20px,6vw,96px) clamp(72px,16vh,150px);
  overflow:hidden;isolation:isolate;
}
.scene-media,.scene-poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
}
.scene-media{opacity:0;transition:opacity 1.1s ease}
.scene-media.is-lit{opacity:1}
.scene::after{                                 /* 카피 가독 셰이드 */
  content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(7,7,12,.62) 0%,rgba(7,7,12,.14) 34%,rgba(7,7,12,.86) 100%);
}

/* 선언 — 뷰포트당 전경 요소는 이 한 줄뿐이다 */
.decl{
  margin:0;max-width:19ch;font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,5.4vw,74px);line-height:1.38;letter-spacing:-.01em;
  color:#fff;text-shadow:0 2px 40px rgba(0,0,0,.72);
  opacity:0;transform:translateY(34px);
  transition:opacity 1.2s ease .18s,transform 1.2s cubic-bezier(.16,1,.3,1) .18s;
}
.scene.is-in .decl{opacity:1;transform:none}
.decl em{display:block;font-style:normal;color:var(--brass)}

/* ── 종장 ─────────────────────────────────────────────────── */
.finale{align-content:center;justify-items:center;text-align:center;padding-bottom:clamp(72px,14vh,140px)}
.finale-stage{perspective:1200px;display:grid;place-items:center;margin:0 0 clamp(30px,6vh,58px)}
.finale-card{
  width:clamp(128px,15vw,208px);aspect-ratio:5/8;position:relative;transform-style:preserve-3d;
  transform:rotateY(0deg);transition:transform 1.5s cubic-bezier(.7,0,.2,1);
}
.finale.is-turned .finale-card{transform:rotateY(180deg)}
.finale-card i{
  position:absolute;inset:0;border-radius:6px;backface-visibility:hidden;
  -webkit-backface-visibility:hidden;background-repeat:no-repeat;background-position:center;background-size:100% 100%;
  outline:1px solid transparent;transform:translateZ(.35px);
  box-shadow:0 26px 70px rgba(0,0,0,.72);
}
.finale-card .back{
  border:1px solid rgba(197,162,96,.62);
}
.finale-card .face{
  transform:rotateY(180deg) translateZ(.35px);display:grid;place-items:center;
  background-image:url('/img/biz/dream/card-face.svg');background-size:100% 100%;
  border:1px solid rgba(255,246,222,.8);
  font-family:var(--serif);font-size:clamp(15px,1.7vw,22px);letter-spacing:.3em;
  text-indent:.3em;color:#231a08;
}
.finale .decl{max-width:24ch;text-align:center;justify-self:center}

/* ── 정보 화면 (환원 · 다운로드) ─────────────────────────────── */
.info,.outro{
  align-content:center;justify-items:center;text-align:center;
  background:radial-gradient(120% 88% at 50% 42%,var(--ink-2) 0%,var(--ink) 66%);
  padding-block:clamp(72px,14vh,140px);
}
.info::after,.outro::after{display:none}
.chapter-title{
  margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(24px,3.6vw,46px);
  line-height:1.5;color:#fff;max-width:22ch;
}
.pair{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,268px),1fr));
  gap:clamp(16px,2.4vw,30px);width:min(920px,100%);margin:clamp(30px,6vh,54px) 0 0;
  text-align:left;
}
.pair article{
  padding:clamp(22px,3vw,32px);border:1px solid rgba(197,162,96,.26);border-radius:3px;
  background:rgba(255,255,255,.022);
}
.pair b{display:block;font-family:var(--serif);font-size:26px;letter-spacing:.2em;color:var(--brass)}
.pair p{margin:14px 0 0;font-size:15px;line-height:2;color:var(--veil-dim)}

.outro-cta{
  display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:0 34px;
  margin:clamp(28px,5vh,46px) 0 0;border:1px solid var(--brass);border-radius:2px;
  color:var(--brass);text-decoration:none;font-size:15px;letter-spacing:.08em;
  transition:background .35s,color .35s;
}
.outro-cta:hover,.outro-cta:focus-visible{background:var(--brass);color:#1a1305}
.outro-foot{
  margin:clamp(26px,5vh,44px) 0 0;font-size:12.5px;line-height:2.1;color:rgba(238,236,246,.34);
}
.outro-foot a{color:rgba(238,236,246,.52)}
.outro-foot span{white-space:nowrap}

/* ── 언어 전환 (화면 구석 chrome — 선언 요소 수에 넣지 않는다) ── */
.langs{
  position:fixed;top:18px;right:clamp(16px,4vw,34px);z-index:60;display:flex;gap:2px;
  font-size:11.5px;letter-spacing:.12em;mix-blend-mode:difference;
}
.langs a{padding:7px 9px;color:rgba(255,255,255,.5);text-decoration:none}
.langs a.active{color:#fff}
.sound-toggle{
  position:fixed;top:18px;left:clamp(16px,4vw,34px);z-index:60;
  width:38px;height:38px;border:1px solid rgba(255,255,255,.18);border-radius:50%;
  background:rgba(7,7,12,.42);color:rgba(255,255,255,.62);font-size:14px;line-height:1;
  cursor:pointer;display:grid;place-items:center;
}
.sound-toggle[aria-pressed="true"]{border-color:var(--brass);color:var(--brass)}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media (max-width:720px){
  .scene{padding-bottom:clamp(84px,18vh,140px)}
  .card{width:clamp(56px,15vw,84px)}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;scroll-snap-type:none}
  .cardlayer{display:none}
  .decl{opacity:1;transform:none;transition:none}
  .scene-media{display:none}
  .finale-card{transition:none;transform:rotateY(180deg)}
}
