:root{
  --bg-0:#0a0a0a; --bg-1:#101010; --surface:#16161a; --surface-2:#1d1d22;
  --line:#2a2a30; --line-2:#36363c;
  --vi-1:#ffe082; --vi-2:#f5c518; --vi-3:#d8a800; --vi-soft:#f5c518;
  --txt:#ffffff; --txt-mut:#b8bdc8; --txt-dim:#6e6e7e;
  --grad:linear-gradient(95deg,#f5c518 0%,#f5c518 100%);
  --sans:"Pretendard Variable",Pretendard,-apple-system,system-ui,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;background:#000;}
body{font-family:var(--sans);color:var(--txt);min-height:100vh;min-height:100dvh;
  display:flex;align-items:center;justify-content:center;background:#000;}

.app{position:relative;width:100%;max-width:430px;height:100dvh;max-height:900px;margin:0 auto;
  overflow:hidden;
  background:
    radial-gradient(90% 40% at 78% 6%, rgba(245,197,24,.12) 0%, rgba(245,197,24,0) 55%),
    radial-gradient(120% 60% at 50% 0%, #15141a 0%, #0c0c10 46%, var(--bg-0) 100%);}

.bgphoto{position:absolute;inset:0;z-index:0;background:center/cover no-repeat;opacity:0;}
.bgphoto.on{opacity:.42;}
.bgveil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,8,12,.55) 0%,rgba(8,8,12,.15) 30%,rgba(8,8,12,.55) 72%,rgba(8,8,12,.92) 100%);}
.grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* 워터마크 로고 — 본문 뒤, 시트 앞 사이의 배경 장식 */
.bg-watermark{position:absolute;bottom:18%;right:-8%;width:70vw;max-width:500px;opacity:.08;pointer-events:none;z-index:2;}

/* 페이지 본문 — .app 안에서 세로 스크롤 */
.page-wrap{position:absolute;inset:0;z-index:3;overflow-y:auto;padding:0 24px 36px;
  -webkit-overflow-scrolling:touch;}

/* ===== HEADER ===== */
.brand-header{display:flex;align-items:center;justify-content:space-between;padding:20px 0 4px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand img{width:32px;height:32px;border-radius:50%;display:block;object-fit:cover;}
.brand .name{color:#fff;font-weight:700;letter-spacing:.04em;font-size:16px;}
.menu-btn{color:#fff;opacity:.7;cursor:pointer;background:none;border:0;display:flex;align-items:center;padding:4px;}
.menu-btn:hover{opacity:1;}

/* ===== HERO ===== */
.hero-wrap{margin-top:44px;}
.accent-line{width:40px;height:3px;background:#f5c518;margin-bottom:28px;border-radius:2px;}
h1.big-hero{font-size:clamp(48px,12vw,96px);font-weight:900;line-height:1.05;letter-spacing:-0.03em;color:#fff;margin:0;}
h1.big-hero .line{display:block;}
h1.big-hero .dot{color:#f5c518;}
.sub-copy{margin:32px 0 0;color:#b8bdc8;font-size:16px;line-height:1.8;word-break:keep-all;}
.sub-copy .accent{color:#f5c518;font-weight:600;}

/* ===== FOCUS AREA ===== */
.focus-section{margin-top:56px;}
.focus-label{color:#b8bdc8;font-size:12px;letter-spacing:.2em;font-weight:700;margin-bottom:24px;}
.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.focus-grid > .col{padding:0 12px;border-left:1px solid rgba(255,255,255,.08);}
.focus-grid > .col:first-child{border-left:0;padding-left:0;}
.focus-grid > .col:last-child{padding-right:0;}
.focus-grid .icon{color:#f5c518;margin-bottom:16px;display:block;}
.focus-grid .col-title{color:#fff;font-weight:700;font-size:15px;margin-bottom:8px;line-height:1.3;word-break:keep-all;}
.focus-grid .col-desc{color:#b8bdc8;font-size:12.5px;line-height:1.55;word-break:keep-all;}
@media (max-width:420px){
  .focus-grid{grid-template-columns:1fr;gap:0;}
  .focus-grid > .col{padding:20px 0 0 0;margin-top:20px;border-left:0;border-top:1px solid rgba(255,255,255,.08);}
  .focus-grid > .col:first-child{padding-top:0;margin-top:0;border-top:0;}
}

/* ===== CTA (외곽선) ===== */
.ctawrap{margin-top:56px;}
.cta-outline{display:flex;align-items:center;gap:12px;width:100%;padding:22px 24px;
  border:1.5px solid #f5c518;border-radius:14px;background:transparent;color:#fff;
  font-family:var(--sans);font-weight:700;font-size:16px;cursor:pointer;
  transition:background .15s,transform .08s;}
.cta-outline:hover{background:rgba(245,197,24,.08);}
.cta-outline:active{transform:scale(.99);}
.cta-outline .arrow{color:#f5c518;font-size:20px;flex-shrink:0;width:22px;text-align:center;line-height:1;}
.cta-outline .label{flex:1;text-align:center;letter-spacing:-.01em;}
.cta-outline .arrow-spacer{width:22px;flex-shrink:0;}

/* ============================================================ */
/* ===== HERO (메인 페이지: 풀스크린 배경 + 하단 카피 + CTA) ====== */
/* docs/index.html 에서만 사용. docs/m/ 는 위쪽의 .page-wrap 사용. */
/* ============================================================ */
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;display:block;}
.hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg, rgba(10,10,10,0) 0%, rgba(10,10,10,.85) 60%, #0a0a0a 100%);}
.hero-bottom{position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:0 30px calc(88px + env(safe-area-inset-bottom));text-align:center;}
.hero-brand{display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;}
.hero-brand-logo{width:30px;height:30px;border-radius:50%;display:block;object-fit:cover;}
.hero-brand-name{color:#f5c518;font-weight:600;letter-spacing:.1em;font-size:13.5px;}
.hero-title{font-size:clamp(32px,9vw,40px);font-weight:800;letter-spacing:-0.025em;line-height:1.25;color:#fff;margin:0;word-break:keep-all;}
.hero-title .hero-dot{color:#f5c518;}
.hero-sub{margin:22px 0 0;color:#a8a8a8;font-size:15px;line-height:1.7;word-break:keep-all;}
.hero-cta{margin-top:40px;width:100%;background:#f5c518;color:#0a0a0a;border:0;border-radius:14px;
  padding:20px;font-family:var(--sans);font-weight:800;font-size:16px;cursor:pointer;
  transition:filter .15s,transform .08s;}
.hero-cta:hover{filter:brightness(1.05);}
.hero-cta:active{transform:scale(.99);}

/* ============================================================ */
/* ===== SHEET (다크 + 노랑 포인트) — 기존 동작 그대로 보존 ===== */
/* ============================================================ */
.scrim{position:absolute;inset:0;z-index:20;background:rgba(4,4,8,.62);opacity:0;visibility:hidden;transition:opacity .28s;}
.scrim.on{opacity:1;visibility:visible;}
.sheet{position:absolute;left:0;right:0;bottom:0;z-index:21;background:var(--surface);color:var(--txt);
  border-radius:26px 26px 0 0;border-top:1px solid var(--line-2);max-height:92%;display:flex;flex-direction:column;
  transform:translateY(100%);transition:transform .34s cubic-bezier(.22,1,.36,1);}
.sheet.on{transform:translateY(0);}
.grab{width:42px;height:5px;border-radius:99px;background:#3a3a4a;margin:11px auto 4px;flex-shrink:0;}
.sheet .close{position:absolute;top:14px;right:16px;width:30px;height:30px;border:0;border-radius:50%;
  background:#262631;color:#c9c9d6;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.sheet .scroll{overflow-y:auto;padding:8px 22px 22px;}

.matrow{display:flex;gap:14px;align-items:center;padding:8px 0 18px;border-bottom:1px solid var(--line);margin-bottom:20px;}
.matrow .thumb{width:56px;height:56px;border-radius:14px;flex-shrink:0;background:var(--grad);color:#0a0a0a;
  display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;letter-spacing:.02em;}
.matrow h2{margin:0 0 3px;font-size:18px;font-weight:800;letter-spacing:-0.01em;color:#fff;}
.matrow p{margin:0;font-size:13px;color:var(--txt-mut);line-height:1.55;white-space:pre-line;}

.howhead{font-size:13px;font-weight:700;color:var(--txt-mut);margin:4px 0 14px;}
.step{display:grid;grid-template-columns:26px 1fr;gap:12px;margin-bottom:18px;}
.step .n{width:24px;height:24px;border-radius:50%;background:#f5c518;color:#0a0a0a;font-weight:900;font-size:13px;
  display:flex;align-items:center;justify-content:center;margin-top:2px;}
.step .t{font-size:14.5px;font-weight:700;margin-bottom:2px;line-height:1.4;color:#ffffff;}
.step .d{font-size:12.5px;color:var(--txt-mut);line-height:1.5;}
.step .d b{color:#ffffff;}
.step .d a{color:var(--vi-soft);font-weight:600;text-decoration:underline;text-underline-offset:2px;}

.drop{margin-top:11px;border:1.5px dashed #3a3a4a;border-radius:14px;background:var(--surface-2);min-height:96px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative;transition:border-color .15s,background .15s;}
.drop:hover{border-color:#54546c;background:#22222e;}
.drop.filled{border-style:solid;border-color:var(--vi-2);padding:0;}
.drop .hint{display:flex;flex-direction:column;align-items:center;gap:6px;color:#777788;font-size:12.5px;}
.drop .hint i{font-style:normal;font-size:22px;}
.drop img{width:100%;max-height:220px;object-fit:cover;display:none;}
.drop.filled img{display:block;}
.drop.filled .hint{display:none;}
.drop input{display:none;}
.drop .badge{position:absolute;top:8px;right:8px;background:rgba(245,197,24,.95);color:#0a0a0a;font-size:11px;font-weight:700;
  padding:4px 9px;border-radius:99px;display:none;}
.drop.filled .badge{display:block;}

.emailwrap{margin:22px 0 6px;}
.emailwrap label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;color:#ffffff;}
.emailwrap input{width:100%;border:1.5px solid var(--line-2);border-radius:13px;background:#12121a;padding:15px 16px;
  font-size:15px;font-family:var(--sans);color:var(--txt);outline:none;transition:border-color .15s;}
.emailwrap input::placeholder{color:#5c5c6c;}
.emailwrap input:focus{border-color:var(--vi-2);}
.errmsg{font-size:12.5px;color:#ff7a8a;min-height:16px;margin-top:8px;}
.done{width:100%;background:#f5c518;color:#0a0a0a;border:0;cursor:pointer;font-family:var(--sans);
  font-weight:800;font-size:16.5px;padding:17px;border-radius:15px;margin-top:6px;transition:transform .08s,filter .15s;}
.done:hover{filter:brightness(1.05);}
.done:active{transform:scale(.985);}
.done:disabled{cursor:not-allowed;opacity:.4;filter:grayscale(.3);}
.done:disabled:hover{filter:grayscale(.3);}

/* ===== SUCCESS ===== */
.success{position:absolute;inset:0;z-index:40;
  background:radial-gradient(90% 55% at 50% 6%, #1b1810 0%, #100f0b 55%, var(--bg-0) 100%);
  color:var(--txt);display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 30px;overflow:hidden;}
.success.on{display:flex;}
.toast{position:absolute;top:calc(22px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);
  background:var(--surface);border:1px solid var(--line-2);border-radius:99px;padding:13px 24px;font-size:15px;font-weight:700;white-space:nowrap;z-index:3;}
.success .core{position:relative;z-index:2;}
.success .seal{width:64px;height:64px;border-radius:50%;margin:0 auto 20px;background:#f5c518;color:#0a0a0a;
  display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:900;box-shadow:0 12px 40px rgba(245,197,24,.45);}
.success h1{font-size:30px;font-weight:900;letter-spacing:-0.02em;margin:0 0 12px;line-height:1.25;color:#fff;}
.success p{font-size:15px;color:var(--txt-mut);line-height:1.65;margin:0 0 28px;}
.success .ok{background:#fff;color:#0a0a0a;border:0;border-radius:14px;padding:14px 32px;font-family:var(--sans);font-weight:700;font-size:15px;cursor:pointer;}
.confetti{position:absolute;inset:0;z-index:1;pointer-events:none;}
.dot{position:absolute;border-radius:50%;will-change:transform;}
@keyframes fall{0%{transform:translateY(-60px) rotate(0)}100%{transform:translateY(680px) rotate(160deg)}}
@media(prefers-reduced-motion:reduce){.dot{animation:none!important;}}

/* invalid material 안내 (m/?slug 없거나 비활성) */
.invalid-notice{margin:30px 0 18px;font-size:14px;color:var(--txt-mut);line-height:1.6;text-align:center;}
