:root{
  --ink:oklch(0.245 0.035 165);
  --sand:oklch(0.965 0.018 84);
  --ivory:oklch(0.985 0.012 84);
  --coral:oklch(0.61 0.135 30);
  --spruce:oklch(0.37 0.07 165);
  --mint:oklch(0.83 0.09 170);
  --kakao:#FEE500;
  --kakao-ink:#191919;
  --naver:#03C75A;
  --facebook:#1877F2;
  --google:#ffffff;
  
  /* 프리미엄 패스포트 테마 색상 (Navy & Gold) */
  --navy: #151b29;
  --navy-light: #1f2739;
  --gold: #D4AF37;
  --gold-light: #F3E5AB;

  --sans:"Pretendard Variable",Pretendard,"Noto Sans KR",system-ui,sans-serif;
  --display:"Pretendard Variable",Pretendard,"Noto Sans KR",system-ui,sans-serif;
  --mono:"IBM Plex Mono",monospace;
  --ease:cubic-bezier(.23,1,.32,1);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--ivory);color:var(--ink);-webkit-font-smoothing:antialiased;min-width:320px;word-break:keep-all; display:flex; flex-direction:column; min-height:100vh;}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none; cursor:pointer;}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}

html[lang="ko"] .en { display: none !important; }
html[lang="en"] .ko { display: none !important; }

.container{width:100%;max-width:1280px;margin-inline:auto;padding-inline:1.25rem}
@media(min-width:1024px){.container{padding-inline:2rem}}

.kicker{font-family:var(--mono);font-size:.625rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--coral)}
.kicker.mint{color:var(--mint)}
.d{font-family:var(--display)}
.mono{font-family:var(--mono)}

.w-full-mob { width: 100%; }
@media(min-width:640px){.w-full-mob { width: auto; }}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:.85rem 1.6rem;font-size:.9rem;font-weight:700;transition:all .18s var(--ease);white-space:nowrap}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--spruce)}
.btn-out{border:1px solid color-mix(in oklch,var(--ink),transparent 80%);background:rgba(255,255,255,.35)}
.btn-mint{background:var(--mint);color:var(--ink)}

header.site{position:sticky;top:38px;z-index:50;border-bottom:1px solid rgba(0,0,0,0.05);background:#1a1a2e;box-shadow:0 2px 10px rgba(0,0,0,0.02);}
.shipping-destination-bar{position:sticky;top:0;z-index:52;background:#f5e06b;color:#191919;border-bottom:1px solid rgba(0,0,0,.12)}
.shipping-destination-inner{display:flex;align-items:center;justify-content:center;gap:.65rem 1rem;min-height:38px;padding-block:.45rem;font-size:.75rem;line-height:1.35;text-align:center}
.shipping-destination-label{border-radius:999px;background:#191919;padding:.25rem .5rem;color:#fee500;font-family:var(--mono);font-size:.55rem;font-weight:900;letter-spacing:.1em}
.shipping-destination-inner strong{font-weight:900}
@media(max-width:760px){header.site{top:86px}.shipping-destination-inner{align-items:flex-start;flex-direction:column;gap:.25rem;min-height:86px;padding-block:.65rem;text-align:left}.shipping-destination-label{margin-bottom:.1rem}}
.nav{display:flex;flex-wrap:wrap;padding-block:1rem;gap:1rem;align-items:center;justify-content:space-between;}
@media(min-width:1100px){.nav{flex-wrap:nowrap; height:6rem; padding-block:0;}}

.brand { display:flex; align-items:center; gap:clamp(0.4rem, 1.5vw, 0.8rem); cursor:pointer; flex-shrink:1; min-width:0; }
.brand .logo-icon { height: clamp(2.5rem, 6vw, 4.5rem); width: auto; max-width: 100%; object-fit: contain; } 
.brand .logo-text-img { display: none; }

.nav-menu{display:flex;gap:clamp(0.8rem, 1.5vw, 1.5rem);align-items:center;margin-left:auto;}
.nav-menu a{font-size:0.9rem;font-weight:700;color:#9eb4d8;text-decoration:none;white-space:nowrap;transition:color 0.2s;}
.nav-menu a:hover{color:#fff;}
.nav-menu > a.active{color:#fff;border-bottom:2px solid var(--coral);padding-bottom:4px;}

@media(max-width:1100px){ 
  .nav { flex-direction:column; align-items:center; height:auto; padding-block:1.25rem; gap:1.2rem; }
  .brand { justify-content: center; width:100%; }
  .brand .logo-icon { height: 3.5rem; }
  .nav-menu { width:100%; overflow-x:auto; padding-bottom:0.5rem; justify-content:center; margin-left:0; flex-wrap: nowrap; }
  .nav-menu::-webkit-scrollbar { display:none; }
}

@media(max-width:640px){
  .nav { align-items:flex-start; padding-inline:0.5rem; }
  .brand { justify-content: flex-start; }
  .brand .logo-icon { height: 2.5rem; }
  .nav-menu { justify-content:flex-start; gap:1rem; padding-left:0.5rem; }
}

main { flex: 1; }
.page-section { display: none; }

.spectral-grid{position:absolute;inset:0;opacity:.45;background-image:linear-gradient(to right,color-mix(in oklch,var(--ink),transparent 94%) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in oklch,var(--ink),transparent 94%) 1px,transparent 1px),radial-gradient(circle at 78% 18%,color-mix(in oklch,var(--mint),transparent 78%),transparent 42%),radial-gradient(circle at 12% 82%,color-mix(in oklch,var(--coral),transparent 86%),transparent 46%);background-size:68px 68px,68px 68px,100% 100%,100% 100%;-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 35%,transparent 100%);mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 35%,transparent 100%);}

.vh-100 { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; justify-content:center; padding-block:4rem; }
.hero-split { display:flex; flex-direction:column; gap:3rem; width:100%; }
@media(min-width:1024px) { .vh-100 { min-height:85vh; padding-block:6rem; } .hero-split { display:grid; grid-template-columns:1.05fr .95fr; gap:4rem; align-items:center; } }
.hero{position:relative;overflow:hidden;border-bottom:1px solid color-mix(in oklch,var(--ink),transparent 90%); background:var(--ivory);}
h1.hero-t { margin-top: 1rem; font-family: var(--sans); font-size: clamp(2.4rem, 6vw, 4.2rem); font-weight: 800; line-height: 1.25; letter-spacing: -0.02em; word-break: keep-all; }
h1.hero-t .highlight { color: var(--coral); font-weight: 900; }
.it { font-style: normal; font-weight: 800; } 
.badge{display:inline-flex;align-items:center;gap:.5rem;border:1px solid color-mix(in oklch,var(--ink),transparent 90%);background:rgba(255,255,255,.6);border-radius:999px;padding:.5rem 1rem;font-size:.75rem;font-weight:700;color:var(--spruce);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.lede{margin-top:1.5rem;max-width:36rem;font-size:1.05rem;line-height:1.75;color:color-mix(in oklch,var(--ink),transparent 38%); font-weight:500;}
.cta{margin-top:2rem;display:flex;flex-direction:column;gap:.75rem}
@media(min-width:640px){.cta{flex-direction:row}}

.slab-wrap{position:relative;margin-inline:auto;width:100%;max-width:340px;padding-block:1.5rem}
@media(min-width:1024px){.slab-wrap{max-width:620px;padding-block:0}}
.hero-card-showcase{position:relative;display:flex;align-items:center;justify-content:center;width:100%;padding:3.25rem 0 1rem}
.hero-showcase-card{position:relative;width:47%;max-width:280px;margin:0;overflow:hidden;border-radius:1.25rem;border:6px solid rgba(255,255,255,.92);background:var(--ink);box-shadow:0 30px 65px rgba(16,32,28,.24);transition:transform .3s var(--ease),z-index .3s var(--ease)}
.hero-showcase-card img{display:block;width:100%;height:auto}
.hero-showcase-card-prizm{z-index:2;transform:rotate(-4deg) translateX(5%)}
.hero-showcase-card-pika{z-index:1;transform:rotate(4deg) translateX(-5%)}
.hero-showcase-card:hover{z-index:4;transform:rotate(0) translateY(-8px) scale(1.02)}
@media(max-width:639px){.hero-card-showcase{padding-top:3.75rem}.hero-showcase-card{width:48%;border-width:4px;border-radius:1rem}}
.slab{position:relative;margin-inline:auto;width:85%;aspect-ratio:.72;transform:rotate(3deg);overflow:hidden;border-radius:1.75rem;border:10px solid #fff;background:var(--ink);padding:.4rem;box-shadow:0 35px 80px rgba(16, 32, 28, 0.22);transition:transform .3s var(--ease)}
@media(min-width:1024px){.slab{width:72%;border-width:10px;border-radius:2rem}}
.slab:hover{transform:rotate(0) scale(1.02)}

.split{display:grid;gap:2rem}
@media(min-width:1024px){.split{grid-template-columns:.8fr 1.2fr;gap:2.5rem}}
h2.big{margin-top:1rem;font-family:var(--display);font-size:2.2rem;font-weight:800;line-height:1.2; word-break:keep-all;}
@media(min-width:768px){h2.big{font-size:3.2rem;line-height:1.1}}
.sec-white{background:#fff; padding-block:4rem;}
.sec-ink{background:var(--ink);color:#fff; padding-block:4rem;}

.grade-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:640px){.grade-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1280px){.grade-grid{grid-template-columns:repeat(3,1fr)}}
.gcard{position:relative;overflow:hidden;border-radius:1.35rem;border:1px solid color-mix(in oklch,var(--ink),transparent 90%);background:#fff;padding:1.35rem;box-shadow:0 12px 30px rgba(16,32,28,.04);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.gcard .bar{position:absolute;inset-inline:0;top:0;height:6px}
.gcard:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(16,32,28,.1)}
.grade-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem}
.grade-card-head h2{margin-top:.5rem;font-size:1.15rem;font-weight:800;letter-spacing:-.02em}
.grade-eyebrow{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:2px;color:color-mix(in oklch,var(--ink),transparent 62%)}
.grade-code{margin-top:.2rem;font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.1em}
.badge-n{display:grid;flex:0 0 58px;width:58px;height:58px;place-items:center;border-radius:18px;font-family:var(--display);font-size:1.65rem;font-weight:900}
.grade-summary{min-height:4.1rem;margin-top:1.5rem;color:#303633;font-size:.9rem;font-weight:650;line-height:1.55}
.grade-check{margin-top:1.25rem;border-top:1px solid #ecefeb;padding-top:1.15rem}
.grade-check p{font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.16em;color:color-mix(in oklch,var(--ink),transparent 62%)}
.grade-check span{display:block;margin-top:.5rem;color:#59605d;font-size:.8rem;line-height:1.6}
.anatomy-grid { display:grid; grid-template-columns:1fr; gap:1rem; margin-bottom:3rem; }
@media(min-width:640px){ .anatomy-grid { grid-template-columns:1fr 1fr; } }
.anatomy-box { background:var(--ink); color:#fff; border-radius:1rem; padding:1.5rem; border:1px solid rgba(255,255,255,0.1); display:flex; gap:1rem; align-items:center; }
.anatomy-box .icon { font-size:2rem; background:rgba(255,255,255,0.1); width:60px; height:60px; display:flex; align-items:center; justify-content:center; border-radius:50%; flex:none; }

.dark-page{background:var(--ink);color:#fff;min-height:60vh;padding-bottom:4rem}
@media(min-width:1024px){.dark-page{padding-bottom:6rem}}
.searchbar{margin:2.5rem auto 0;display:flex;max-width:640px;gap:.5rem;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);border-radius:999px;padding:.5rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.searchbar input{flex:1;height:3rem;border:0;background:transparent;color:#fff;font-family:var(--mono);padding-inline:1rem;font-size:.9rem;width:50%}

.submit-card { background:#fff; border:1px solid var(--sand); padding:clamp(1.25rem, 5vw, 2.5rem); border-radius:1.5rem; box-shadow:0 10px 30px rgba(0,0,0,0.02); margin-bottom:2.5rem; }
.submit-price-guide{margin:0 0 2.5rem;padding:clamp(1.25rem,4vw,2rem);border:1px solid #dce1ea;border-radius:1.5rem;background:linear-gradient(145deg,#f8f9fc 0%,#fff 65%);box-shadow:0 14px 38px rgba(16,32,28,.06)}
.submit-price-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.35rem}
.submit-price-heading p{color:#7257f5;font-family:var(--mono);font-size:.68rem;font-weight:800;letter-spacing:.16em}
.submit-price-heading h2{margin-top:.25rem;color:var(--ink);font-size:clamp(1.35rem,3vw,1.85rem);font-weight:900;letter-spacing:-.035em}
.submit-price-heading>span{color:var(--dim);font-size:.75rem;font-weight:700}
.submit-price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.submit-price-card{position:relative;display:flex;min-height:190px;flex-direction:column;align-items:flex-start;border:1px solid #dfe3ec;border-radius:1rem;background:#fff;padding:1.15rem;text-align:left;cursor:pointer;transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}
.submit-price-card:hover,.submit-price-card:focus-visible{transform:translateY(-3px);border-color:#8d75f5;box-shadow:0 12px 28px rgba(63,43,150,.12);outline:0}
.submit-price-card.active{border:2px solid #7257f5;background:linear-gradient(160deg,#f4f1ff,#fff 70%);box-shadow:0 10px 28px rgba(83,57,188,.13)}
.submit-price-card.featured{background:linear-gradient(160deg,#15142a,#25234a);color:#fff}
.submit-price-card.featured.active{border-color:var(--mint)}
.submit-price-badge{position:absolute;right:.75rem;top:.75rem;border-radius:999px;background:var(--mint);padding:.25rem .45rem;color:var(--ink);font-size:.56rem;font-weight:900;letter-spacing:.08em}
.submit-price-name{color:#7257f5;font-size:.78rem;font-weight:900}
.submit-price-card.featured .submit-price-name{color:var(--mint)}
.submit-price-card strong{margin-top:.65rem;color:var(--ink);font-family:var(--display);font-size:1.5rem;font-weight:900}
.submit-price-card.featured strong{color:#fff}
.submit-price-days{margin-top:.4rem;color:var(--spruce);font-size:.76rem;font-weight:800}
.submit-price-card.featured .submit-price-days{color:#d8d5ff}
.submit-price-card small{margin-top:auto;padding-top:1rem;color:var(--dim);font-size:.68rem;line-height:1.45}
.submit-price-card.featured small{color:#aaa8c8}
.submit-price-extras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:1rem}
.submit-price-extras span{border-radius:.65rem;background:var(--sand);padding:.7rem .6rem;color:var(--spruce);font-size:.7rem;line-height:1.4;text-align:center}
.submit-price-extras b{display:block;color:var(--ink);font-size:.7rem}
.submit-price-notice{margin-top:.9rem;color:var(--dim);font-size:.7rem;line-height:1.55}
@media(max-width:820px){.submit-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.submit-price-extras{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.submit-price-heading{align-items:flex-start;flex-direction:column}.submit-price-grid{grid-template-columns:1fr}.submit-price-card{min-height:145px}.submit-price-extras{grid-template-columns:1fr 1fr}}

.home-pricing{position:relative;overflow:hidden;border-top:1px solid #e4e7e5;background:linear-gradient(145deg,#f7f5ff 0%,#fff 48%,#eefaf5 100%);padding-block:clamp(4.5rem,8vw,7rem)}
.home-pricing::before{position:absolute;right:-8rem;top:-9rem;width:26rem;height:26rem;border-radius:50%;background:radial-gradient(circle,rgba(114,87,245,.12),transparent 68%);content:"";pointer-events:none}
.home-pricing-heading{position:relative;display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:3rem;margin-bottom:2.4rem}
.home-pricing-heading h2{margin-top:.8rem;font-size:clamp(2rem,4.5vw,3.5rem);font-weight:900;line-height:1.15;letter-spacing:-.045em}
.home-pricing-intro{justify-self:end;max-width:31rem;color:#65706b;font-size:.9rem;line-height:1.75}
.home-pricing-link{display:inline-flex;margin-top:1.1rem;border-bottom:1px solid var(--ink);padding-bottom:.25rem;color:var(--ink);font-weight:850}
.home-price-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}
.home-price-card{position:relative;display:flex;min-height:270px;flex-direction:column;align-items:flex-start;overflow:hidden;border:1px solid #dfe4e1;border-radius:1.35rem;background:rgba(255,255,255,.88);padding:1.4rem;text-align:left;box-shadow:0 12px 35px rgba(16,32,28,.05);transition:transform .22s var(--ease),border-color .22s var(--ease),box-shadow .22s var(--ease)}
.home-price-card:hover,.home-price-card:focus-visible{transform:translateY(-6px);border-color:#765ff0;box-shadow:0 22px 44px rgba(51,36,125,.14);outline:0}
.home-price-card.active{border:2px solid #7257f5}
.home-price-featured{border-color:#29274d;background:linear-gradient(155deg,#18172f,#2a2851);color:#fff}
.home-price-featured:hover,.home-price-featured:focus-visible{border-color:var(--mint)}
.home-price-index{font-family:var(--mono);font-size:.68rem;font-weight:800;letter-spacing:.15em;color:#9a9f9d}
.home-price-name{margin-top:2.1rem;color:#644de0;font-size:.9rem;font-weight:900}
.home-price-featured .home-price-name{color:var(--mint)}
.home-price-card>strong{margin-top:.55rem;font-family:var(--display);font-size:clamp(1.75rem,3vw,2.25rem);font-weight:900;letter-spacing:-.035em}
.home-price-days{margin-top:.45rem;color:var(--spruce);font-size:.75rem;font-weight:850}
.home-price-featured .home-price-days{color:#d8d5ff}
.home-price-card small{margin-top:auto;padding-top:1.25rem;color:#777f7b;font-size:.72rem;line-height:1.45}
.home-price-featured small{color:#b6b4d0}
.home-price-ribbon{position:absolute;right:-2.1rem;top:1.35rem;transform:rotate(42deg);background:var(--mint);padding:.3rem 2.5rem;color:var(--ink);font-family:var(--mono);font-size:.52rem;font-weight:900;letter-spacing:.08em}
.home-price-extras{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.home-price-extras>div{display:grid;gap:.25rem;border:1px solid #e2e6e3;border-radius:1rem;background:rgba(255,255,255,.72);padding:1rem}
.home-price-extras span{color:#836df0;font-family:var(--mono);font-size:.56rem;font-weight:900;letter-spacing:.1em}
.home-price-extras b{font-size:.78rem}
.home-price-extras strong{color:var(--spruce);font-size:.82rem}
.home-price-note{position:relative;margin-top:1.1rem;color:#717a76;font-size:.7rem;line-height:1.65}
@media(max-width:900px){.home-pricing-heading{grid-template-columns:1fr;gap:1.25rem}.home-pricing-intro{justify-self:start}.home-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-price-extras{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.home-price-grid{grid-template-columns:1fr}.home-price-card{min-height:220px}.home-price-extras{grid-template-columns:1fr 1fr}.home-pricing-heading h2 br{display:none}}
.form-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; width:100%;}
@media(min-width:640px) { .form-grid.half { grid-template-columns:1fr 1fr; } }
.auth-input { width:100%; height:3.2rem; border-radius:0.5rem; border:1px solid #ccc; padding-inline:1rem; font-family:var(--sans); font-size:0.95rem; margin-top:0.5rem; color:var(--ink); background:#fff; outline:none; transition: border-color 0.2s; box-sizing:border-box;}
.auth-input:focus { border-color:var(--coral); }
.auth-label { display:block; font-size:0.85rem; font-weight:700; color:var(--spruce); text-align:left; }
.flex-input-group { display:flex; gap:0.5rem; margin-top:0.5rem; width:100%; align-items:stretch;}
.flex-input-group > input { flex:1; min-width:0; margin-top:0 !important; }
.flex-input-group > button { flex-shrink:0; white-space:nowrap; padding-inline:1rem; }

.gender-group { display:flex; border:1px solid #ccc; border-radius:0.5rem; overflow:hidden; margin-top:0.5rem; }
.gender-group label { flex:1; text-align:center; border-right:1px solid #ccc; cursor:pointer; }
.gender-group label:last-child { border-right:none; }
.gender-group input[type="radio"] { display:none; }
.gender-group span { display:block; padding-block:0.9rem; font-size:0.9rem; font-weight:600; color:var(--dim); background:#f9f9f9; transition:all 0.2s;}
.gender-group input[type="radio"]:checked + span { background:var(--mint); color:var(--ink); font-weight:800; }

.social-login-group { display: flex; justify-content: center; gap: 1.25rem; margin-bottom: 2rem; margin-top: 1rem; }
.kakao-login-button{display:inline-flex;border-radius:6px;overflow:hidden;box-shadow:0 5px 18px rgba(0,0,0,.12);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.kakao-login-button:hover,.kakao-login-button:focus-visible{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.17)}
.kakao-login-button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.kakao-login-button img{display:block;width:183px;height:45px;object-fit:contain}
.circle-btn { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #fff; border: none; box-shadow: 0 4px 15px rgba(0,0,0,0.08); transition: transform 0.2s; }
.circle-btn:hover { transform: translateY(-3px); }
.circle-btn svg { width: 26px; height: 26px; display:block; }
.bg-facebook { background: var(--facebook); }
.bg-naver { background: var(--naver); }
.bg-kakao { background: var(--kakao); color: #191919; }
.bg-google { background: var(--google); border: 1px solid #eee; }

.doc-page { padding-block: 4rem 6rem; background: var(--ivory); }
.doc-container { max-width: 800px; margin: 0 auto; background: #fff; padding: clamp(2rem, 5vw, 3rem); border-radius: 1.5rem; box-shadow: 0 15px 40px rgba(0,0,0,0.03); border: 1px solid rgba(0,0,0,0.05); }
.doc-header { margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 2px solid var(--ink); }
.doc-title { font-size: 2rem; font-weight: 800; font-family: var(--sans); }
.doc-content { font-size: 0.95rem; line-height: 1.8; color: var(--spruce); }
.doc-highlight { background: color-mix(in oklch, var(--coral), transparent 92%); padding: 1rem; border-left: 3px solid var(--coral); border-radius: 0.5rem; margin-block: 1.5rem; font-weight: 600; color: var(--ink); }

.site-footer { background: #1a1a2e; color: #fff; padding-block: 2rem; font-family: var(--sans); margin-top:auto; }
.footer-bottom { display: flex; flex-direction: column; gap: 1rem; text-align:center; }
.footer-links { display: flex; gap: 1.5rem; flex-wrap: wrap; justify-content:center; font-size: 0.85rem; }
.footer-links a { color: rgba(255,255,255,0.6); text-decoration: none; cursor:pointer; transition:color 0.2s;}
.footer-links a:hover { color: #fff; }
.company-info p { font-size: 0.8rem; color: rgba(255,255,255,0.4); line-height: 1.6; margin: 0;}
.copyright { font-size: 0.9rem; font-weight: 700; font-family: var(--mono); color: rgba(255,255,255,0.3);}

.radio-custom:checked + .custom-box { border-color: var(--mint) !important; background-color: color-mix(in oklch, var(--mint), transparent 92%) !important; }
.checkbox-custom:checked + .custom-box { border-color: var(--mint) !important; background-color: color-mix(in oklch, var(--mint), transparent 92%) !important; }
.label-option-image{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;border:1px solid #d8dde3;border-radius:.5rem;background:#fff}
.nicepay-test-mode-notice{margin-top:.4rem;color:#fee500;font-size:.72rem;font-weight:700;line-height:1.4}

/* 카카오톡 고객센터 플로팅 버튼 */
.kakao-support-button{position:fixed;right:max(1.25rem,env(safe-area-inset-right));bottom:max(1.25rem,env(safe-area-inset-bottom));z-index:9000;width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fee500;color:#191919;text-decoration:none;box-shadow:0 14px 35px rgba(0,0,0,.24);transition:transform .2s var(--ease),box-shadow .2s var(--ease);isolation:isolate}
.kakao-support-button:hover,.kakao-support-button:focus-visible{transform:translateY(-4px) scale(1.04);box-shadow:0 18px 42px rgba(0,0,0,.3)}
.kakao-support-button:focus-visible{outline:3px solid #191919;outline-offset:3px}
.kakao-support-image{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.kakao-support-tooltip{position:absolute;right:calc(100% + .75rem);top:50%;transform:translateY(-50%) translateX(.25rem);width:max-content;padding:.6rem .8rem;border-radius:.6rem;background:#191919;color:#fff;font-size:.78rem;font-weight:700;line-height:1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s}
.kakao-support-button:hover .kakao-support-tooltip,.kakao-support-button:focus-visible .kakao-support-tooltip{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}
@media(max-width:639px){.kakao-support-button{width:58px;height:58px;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom))}.kakao-support-tooltip{display:none}}

.member-profile-field{background:#f5f5f2!important;color:var(--ink);cursor:not-allowed}
.member-profile-notice{margin-top:.6rem;color:var(--dim);font-size:.78rem;line-height:1.5}
.member-profile-card{margin-bottom:2rem;padding:2rem;border:1px solid color-mix(in oklch,var(--ink),transparent 88%);border-radius:1.5rem;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.03)}
.member-profile-card h2{font-size:1.2rem;font-weight:800;color:var(--ink)}
.member-profile-card > div > p{margin-top:.4rem;color:var(--dim);font-size:.85rem;line-height:1.6}
.member-profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem}
.member-profile-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}
.member-profile-actions .btn{padding:.8rem 1.4rem}
@media(max-width:639px){.member-profile-form{grid-template-columns:1fr}.member-profile-form>*{grid-column:1!important}.member-profile-actions{width:100%;flex-direction:column}.member-profile-actions .btn{width:100%}}

/* 프린트 전용 */
@page { size: A4 portrait; margin: 10mm; }
@media print {
  body > header, body > footer, .fixbar { display: none !important; }
  .page-section { display: none !important; }
  html, body { width: 210mm !important; min-height: 297mm !important; background: #fff !important; margin: 0 !important; padding: 0 !important; }
  #page-admin { display: block !important; padding:0 !important; margin:0 !important; }
  #page-admin .container { max-width: 100% !important; padding: 0 !important; }
  .no-print, .admin-stats-panel, .admin-summary-row, .queue-tabs, header.no-print { display: none !important; }
  body.print-invoice #print-invoice-section { display: block !important; }
  body.print-invoice #print-grading-section, body.print-invoice #print-label-section, body.print-invoice #admin-queue-section, body.print-invoice #admin-passport-preview-section { display: none !important; }
  body.print-grading #print-grading-section { display: block !important; width:190mm!important; height:277mm!important; overflow:hidden!important; break-after:avoid-page; page-break-after:avoid; }
  body.print-grading #print-invoice-section, body.print-grading #print-label-section, body.print-grading #admin-queue-section, body.print-grading #admin-passport-preview-section { display: none !important; }
  body.print-passport #admin-passport-preview-section { display: block !important; width:125mm!important; height:88mm!important; margin:0 !important; border:none !important; padding:0 !important;}
  body.print-passport #admin-passport-preview-section h3, body.print-passport #admin-passport-preview-section p.no-print { display: none !important; }
  body.print-passport #print-invoice-section, body.print-passport #print-grading-section, body.print-passport #print-label-section, body.print-passport #admin-queue-section { display: none !important; }
  body.print-passport { width:125mm!important; min-height:88mm!important; background:#fff!important; }
  html:has(body.print-passport) { width:125mm!important; min-height:88mm!important; }
  body.print-passport .admin-passport-preview { display:none!important; }
  body.print-passport .passport-print-card { display:grid!important; }
  .premium-ticket { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  body.print-label #print-label-section { display: flex !important; }
  body.print-label #print-invoice-section, body.print-label #print-grading-section, body.print-label #admin-queue-section, body.print-label #admin-passport-preview-section { display: none !important; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}
.grading-print-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;margin-top:12mm;padding:5mm;border:1px solid #000;font-size:11pt;line-height:1.45}
.grading-print-meta p{margin:0}
.grading-print-table{width:100%;margin-top:7mm;border-collapse:collapse;font-size:10.5pt}
.grading-print-table th,.grading-print-table td{height:11mm;padding:2mm 3mm;border:1px solid #000;text-align:left}
.grading-print-table th:first-child,.grading-print-table td:first-child{width:13mm;text-align:center}
.grading-print-table th:last-child,.grading-print-table td:last-child{width:55mm}
.grading-print-note{margin-top:7mm;font-size:11pt}
.grading-print-note>div{height:28mm;margin-top:2mm;border:1px solid #000}
.grading-print-sign{display:flex;justify-content:space-between;margin-top:8mm;font-size:11pt;font-weight:700}

.admin-stats-panel { background: #fff; border-radius: 1.5rem; padding: clamp(1.25rem, 5vw, 2rem); box-shadow: 0 10px 30px rgba(0,0,0,0.02); margin-top: 2rem; border: 1px solid rgba(0,0,0,0.05); }
.stats-table { width: 100%; border-collapse: collapse; margin-top: 1rem; text-align: center; font-size: 0.95rem; }
.stats-table th { background: var(--sand); padding: 1rem; font-weight: 800; color: var(--spruce); border-bottom: 2px solid var(--ink); white-space:nowrap;}
.stats-table td { padding: 1rem; border-bottom: 1px solid #eee; color: var(--ink); font-weight: 600; white-space:nowrap;}
.stats-table td.total { color: var(--coral); font-weight: 800; font-size: 1.1rem; }
.admin-storage-note { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .8rem; margin-top:1rem; padding:.9rem 1rem; border-radius:.8rem; background:var(--sand); color:var(--ink); font-size:.85rem; }
.admin-storage-note span { padding:.25rem .55rem; border-radius:.4rem; background:#fff; font-family:var(--mono); font-weight:700; }
.admin-storage-note small { flex-basis:100%; color:var(--dim); }
.admin-customer-editor{grid-column:1/-1;margin-bottom:.25rem;padding:1rem;border:1px solid #dce1ea;border-radius:.8rem;background:#fff}
.admin-customer-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.admin-customer-editor-heading>div{display:flex;flex-direction:column;gap:.2rem}
.admin-customer-editor-heading b{color:var(--ink);font-size:1rem}
.admin-customer-editor-heading span{color:var(--dim);font-size:.72rem}
.admin-customer-editor-heading .btn{padding:.55rem .85rem;font-size:.75rem}
.admin-customer-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.admin-customer-editor-grid label{display:flex;flex-direction:column;gap:.25rem;color:var(--spruce);font-size:.75rem}
.admin-customer-editor-grid .wide{grid-column:span 2}
.admin-profile-sync{display:flex;align-items:center;gap:.5rem;margin-top:.85rem;color:var(--spruce);font-size:.75rem;font-weight:700;cursor:pointer}
.admin-profile-sync input{width:1rem;height:1rem;accent-color:#7257f5}
@media(max-width:700px){.admin-customer-editor-heading{align-items:flex-start;flex-direction:column}.admin-customer-editor-grid{grid-template-columns:1fr}.admin-customer-editor-grid .wide{grid-column:1}}
.vexcare-admin-modal{max-width:1180px!important;width:calc(100% - 2rem)!important}
.vexcare-admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.vexcare-admin-heading h2{color:var(--ink);font-size:1.6rem;font-weight:900}
.vexcare-admin-heading p:not(.faq-eyebrow){margin-top:.35rem;color:var(--dim);font-size:.82rem}
.vexcare-admin-heading .btn{flex:none;padding:.75rem 1rem}
.vexcare-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}
.vexcare-admin-summary span{display:flex;align-items:center;justify-content:space-between;border-radius:.75rem;background:var(--sand);padding:.8rem 1rem;color:var(--spruce);font-size:.76rem;font-weight:700}
.vexcare-admin-summary b{color:#5b46d8;font-family:var(--mono);font-size:1.1rem}
.vexcare-admin-table-wrap{overflow:auto;border:1px solid #dce1ea;border-radius:.8rem}
.vexcare-admin-table{width:100%;min-width:850px;border-collapse:collapse;font-size:.78rem}
.vexcare-admin-table th{background:var(--ink);padding:.8rem;color:#fff;text-align:left;white-space:nowrap}
.vexcare-admin-table td{padding:.85rem;border-bottom:1px solid #e5e8ef;color:var(--spruce);vertical-align:middle}
.vexcare-admin-table tr:last-child td{border-bottom:0}
.vexcare-admin-table strong{display:block;color:var(--ink);font-size:.82rem}
.vexcare-admin-table small{display:block;margin-top:.2rem;color:var(--dim);line-height:1.4}
.vexcare-use-check{display:flex;align-items:center;gap:.45rem;font-weight:800;cursor:pointer}
.vexcare-use-check input{width:1.1rem;height:1.1rem;accent-color:#5b46d8}
.vexcare-status{display:inline-block;margin-top:.3rem;border-radius:999px;background:#e7f6ee;padding:.2rem .45rem;color:#25855a;font-size:.65rem;font-weight:800}
.vexcare-status.expired{background:#feeceb;color:#bd3d35}
@media(max-width:700px){.vexcare-admin-heading{flex-direction:column}.vexcare-admin-summary{grid-template-columns:1fr 1fr}}

.admin-summary-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 2rem; }
@media(min-width: 1024px) { .admin-summary-row { grid-template-columns: repeat(6, 1fr); } }
.admin-summary-card { background: #fff; border-radius: 1rem; padding: 1.5rem; display: flex; align-items: center; justify-content: space-between; border: 1px solid #eee; border-left: 5px solid var(--spruce); box-shadow:0 5px 15px rgba(0,0,0,0.02); cursor:pointer; transition:transform 0.2s;}
.admin-summary-card:hover { transform: translateY(-3px); }
.admin-summary-card.active { border-left-color: var(--mint); background: color-mix(in oklch, var(--mint), transparent 95%); }
.admin-summary-card.coral { border-left-color: var(--coral); }
.admin-summary-num { font-family: var(--display); font-size: 2.2rem; font-weight: 800; color: var(--ink); line-height: 1; margin-bottom:0;}
.admin-summary-label { font-size: 0.85rem; font-weight: 700; color: var(--dim); margin-top: 0.5rem; margin-bottom:0;}

.queue-tabs { display:flex; gap:0.5rem; margin-top:2rem; margin-bottom:1rem; overflow-x:auto; padding-bottom:0.5rem; }
.queue-tab { padding: 0.6rem 1.2rem; border-radius: 999px; background: #fff; border: 1px solid #ddd; font-size: 0.85rem; font-weight: 700; color: var(--dim); cursor: pointer; white-space: nowrap; transition: all 0.2s; }
.queue-tab.active { background: var(--ink); color: #fff; border-color: var(--ink); }

/* 가오픈 수요 이벤트 */
.home-event-section{background:linear-gradient(135deg,#14132c,#282556);padding-block:4.5rem;color:#fff}
.home-event-layout{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:3rem}
.home-event-badge{display:inline-flex;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:.45rem .8rem;color:var(--mint);font-family:var(--mono);font-size:.62rem;font-weight:900;letter-spacing:.14em}
.home-event-layout h2{margin-top:1rem;font-size:clamp(2rem,4vw,3.5rem);font-weight:900;line-height:1.15;letter-spacing:-.04em}
.home-event-layout>div>p{max-width:40rem;margin-top:1rem;color:rgba(255,255,255,.7);line-height:1.7}
.home-event-period{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem;font-size:.8rem}
.home-event-period strong{color:var(--mint)}
.home-event-progress{height:8px;margin-top:.7rem;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.12)}
.home-event-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--mint),#8c75ff);transition:width .3s}
.home-event-form{display:grid;gap:.75rem;border:1px solid rgba(255,255,255,.15);border-radius:1.25rem;background:rgba(255,255,255,.08);padding:1.5rem;backdrop-filter:blur(12px)}
.home-event-form h3{font-size:1.2rem;font-weight:900}.home-event-form>p{color:rgba(255,255,255,.6);font-size:.74rem}
.home-event-form label{display:grid;gap:.25rem;color:rgba(255,255,255,.8);font-size:.72rem;font-weight:700}
.home-event-form .auth-input{margin:0;background:#fff;color:var(--ink)}
.home-event-form .event-consent{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:.45rem;line-height:1.5}
@media(max-width:800px){.home-event-layout{grid-template-columns:1fr}.home-event-period{align-items:flex-start;flex-direction:column}}

/* 패스포트 발급 안내 */
.passport-issue-guide{margin-bottom:3rem;border:1px solid #dedbd5;border-radius:1.5rem;background:#fff;padding:clamp(1.3rem,4vw,2.5rem);box-shadow:0 16px 40px rgba(16,32,28,.06)}
.passport-issue-heading{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end}
.passport-issue-heading span,.passport-label-card>div>span{color:#7257f5;font-family:var(--mono);font-size:.6rem;font-weight:900;letter-spacing:.14em}
.passport-issue-heading h2{margin-top:.65rem;font-size:clamp(1.7rem,3.5vw,2.7rem);font-weight:900;line-height:1.18;letter-spacing:-.04em}
.passport-issue-heading>p{color:var(--dim);font-size:.85rem;line-height:1.75}
.passport-label-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
.passport-label-card{display:grid;gap:1rem;overflow:hidden;border-radius:1.15rem;padding:1.25rem}
.passport-label-card h3{margin-top:.35rem;font-size:1.25rem;font-weight:900}.passport-label-card p{margin-top:.45rem;font-size:.76rem;line-height:1.55}.passport-label-card img{width:100%;border-radius:.7rem;object-fit:cover}
.passport-label-black{background:#11121a;color:#fff}.passport-label-black p{color:#b8bac5}.passport-label-white{border:1px solid #e1e3e6;background:#f7f8fa;color:var(--ink)}.passport-label-white p{color:var(--dim)}
.passport-issue-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-top:1rem;list-style:none}
.passport-issue-steps li{display:grid;gap:.25rem;border-radius:.85rem;background:var(--sand);padding:1rem}.passport-issue-steps b{color:#7257f5;font-family:var(--mono);font-size:.7rem}.passport-issue-steps span{font-weight:900}.passport-issue-steps small{color:var(--dim);font-size:.68rem;line-height:1.45}
@media(max-width:760px){.passport-issue-heading,.passport-label-grid{grid-template-columns:1fr}.passport-issue-steps{grid-template-columns:1fr 1fr}}

/* 관리자 디지털 패스포트와 설정 */
.admin-passport-preview{max-width:980px;margin-inline:auto!important}
@media(min-width:1024px){.admin-passport-preview{grid-template-columns:190px 1.35fr 1fr!important;gap:1.5rem!important}.admin-passport-preview .pt-img-wrap{min-height:260px;max-height:300px}.admin-passport-preview .pt-value.large{font-size:1.55rem}}
.operations-settings-modal{width:min(940px,calc(100% - 2rem))!important;max-width:940px!important}
.operations-settings-modal>h2{margin-bottom:1.25rem;color:var(--ink);font-size:1.55rem;font-weight:900}
.operations-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}
.operations-settings-grid section{display:grid;gap:.65rem;border:1px solid #e1e4e8;border-radius:1rem;background:#fafbfc;padding:1.1rem}
.operations-settings-grid h3{margin-bottom:.25rem;font-size:1rem;font-weight:900}.operations-settings-grid label{display:grid;gap:.25rem;color:var(--spruce);font-size:.72rem;font-weight:750}
.operations-settings-grid .auth-input{margin:0;background:#fff}.operations-settings-grid textarea{resize:vertical}
.operations-settings-grid .ops-switch{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:.5rem;border-radius:.6rem;background:#f5e06b;padding:.7rem;color:#191919}
.ops-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.ops-event-demand{border-radius:.7rem;background:var(--ink);padding:.8rem;color:#fff;font-size:.78rem}.ops-event-demand strong{float:right;color:var(--mint)}
@media(max-width:720px){.operations-settings-grid{grid-template-columns:1fr}.ops-date-grid{grid-template-columns:1fr}}

/* ID-3 여권 규격(125 × 88 mm) 패스포트 출력 */
@page vex-passport{size:125mm 88mm;margin:0}
.passport-print-card{display:none}
.passport-print-card{position:relative;grid-template-columns:35mm 1fr 21mm;grid-template-rows:13mm 1fr 20mm;width:125mm;height:88mm;overflow:hidden;page:vex-passport;background:linear-gradient(135deg,#111725,#222d43);color:#fff;padding:6mm;border:1.2mm solid #d4af37;font-family:var(--sans)}
.passport-print-brand{grid-column:1/4;display:flex;align-items:center;justify-content:space-between;border-bottom:.3mm solid rgba(212,175,55,.55);font-size:7mm;font-weight:900;letter-spacing:-.04em}.passport-print-brand span{color:#d4af37;font-family:var(--mono);font-size:2.5mm;letter-spacing:.16em}
.passport-print-image{grid-row:2/4;width:30mm;height:45mm;align-self:center;border:.5mm solid #d4af37;border-radius:2mm;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}
.passport-print-info{align-self:center;padding:3mm 3mm 0}.passport-print-label{margin:0 0 1mm;color:#d4af37;font-family:var(--mono);font-size:1.8mm;font-weight:800;letter-spacing:.12em}.passport-print-info h2{max-width:52mm;margin:0 0 2mm;font-size:5mm;line-height:1.1}.passport-print-info>p:not(.passport-print-label){margin:0 0 3mm;color:#cfd4df;font-size:2.2mm}.passport-print-info>strong{font-family:var(--mono);font-size:2.5mm}
.passport-print-grade{grid-column:3;grid-row:2;align-self:center;text-align:center}.passport-print-grade span{display:block;color:#d4af37;font-size:2mm;font-weight:800}.passport-print-grade strong{display:block;font-size:13mm;line-height:1}.passport-print-grade small{font-size:2mm;font-weight:800}.passport-print-qr{grid-column:3;grid-row:3;display:grid;place-items:center;align-self:end}.passport-print-qr img{width:14mm;height:14mm;background:#fff}.passport-print-qr span{font-size:1.5mm;font-weight:800}

.my-submission-card{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:1.2rem;margin-bottom:.8rem;border:1px solid #e3e6e5;border-radius:1rem;background:#fafbfa;padding:1rem}
.my-submission-card>img{width:80px;height:108px;border-radius:.55rem;object-fit:cover;box-shadow:0 5px 15px rgba(0,0,0,.12)}
.my-submission-card>div:nth-child(2)>strong{display:inline-block;margin-left:.4rem;color:#4a90e2;font-size:.75rem}
.my-submission-card h3{margin-top:.6rem;color:var(--ink);font-size:1.1rem;font-weight:900}.my-submission-card p{margin-top:.25rem;color:var(--dim);font-size:.72rem}.my-submission-card .my-tracking{color:#5b46d8;font-weight:850}
.my-submission-status{display:inline-block;border-radius:999px;background:var(--spruce);padding:.25rem .5rem;color:#fff;font-size:.65rem;font-weight:850}.my-submission-status.status-pre-stock{background:var(--coral)}.my-submission-status.status-reviewing{background:var(--mint);color:var(--ink)}.my-submission-status.status-completed{background:var(--ink)}.my-submission-status.status-shipped{background:#5b46d8}
.my-submission-actions{display:flex;flex-direction:column;gap:.5rem}.my-submission-actions .btn{padding:.55rem .8rem;font-size:.7rem}.mypage-empty{padding:1rem;color:var(--dim);font-size:.85rem}
@media(max-width:700px){.my-submission-card{grid-template-columns:65px 1fr}.my-submission-card>img{width:65px;height:90px}.my-submission-actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}}

.score-grid { display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin-top: 1rem; }
@media(min-width:640px){ .score-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; } }
.score-item { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #eee; padding-bottom: 0.5rem; font-size: 0.9rem; font-weight: 600; color: var(--spruce); }
.score-input { width: 70px; height: 2.2rem; border: 1px solid #ccc; border-radius: 0.25rem; text-align: center; font-weight: bold; font-family: var(--mono); background:#fff; transition:border-color 0.2s;}
.score-input:focus { border-color: var(--coral); outline:none; }
.admin-edit-input { width: 100%; padding: 0.4rem; border: 1px solid #ccc; border-radius: 0.25rem; font-family: var(--sans); font-size: 0.85rem; background: #fff; transition: border-color 0.2s; color:var(--ink); font-weight:bold;}
.admin-edit-input:focus { border-color: var(--coral); outline: none; }

.pp-layout { display: grid; grid-template-columns: 1fr; gap: 1rem; max-width: 1100px; margin-inline: auto; margin-bottom: 2rem; }
@media(min-width: 768px) { .pp-layout { grid-template-columns: 1fr 1.3fr; gap: 1.5rem; } }
.pp-box-left { background: #dcd8d3; border-radius: 1.5rem; padding: 3rem 2rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
.pp-box-right { background: #16241e; border-radius: 1.5rem; padding: clamp(1.5rem, 4vw, 3rem); color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,0.1); display: flex; flex-direction: column; justify-content: center; }
.pp-card-v2 { position: relative; width: 100%; max-width: 320px; aspect-ratio: 0.72; border-radius: 1rem; border: 6px solid #fff; box-shadow: 0 15px 40px rgba(0,0,0,0.4); overflow: hidden; background: #111; }

.premium-ticket { background: linear-gradient(135deg, var(--navy), var(--navy-light)); border: 2px solid var(--gold); border-radius: 1rem; padding: clamp(1.5rem, 5vw, 2.5rem); color: #fff; display: grid; gap: 2rem; box-shadow: 0 30px 60px rgba(0,0,0,0.5); position: relative; overflow: hidden; margin-bottom: 4rem;}
@media(min-width:1024px) { .premium-ticket { grid-template-columns: 300px 1.5fr 1fr; gap: 3rem; } }
.premium-ticket::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(212,175,55,0.05) 0%, transparent 60%); pointer-events: none; }
.pt-img-wrap { border: 2px solid var(--gold); border-radius: 1rem; padding: 0.2rem; background: rgba(0,0,0,0.5); height: 100%; min-height: 380px; box-shadow: 0 10px 30px rgba(0,0,0,0.8); overflow: hidden; }
.pt-main-info { display: flex; flex-direction: column; justify-content: center; z-index: 10; padding-block: 1rem; position:relative;}
.pt-label { font-size: 0.75rem; font-weight: 700; color: var(--gold); letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 0.25rem; }
.pt-value { font-size: 1.1rem; font-weight: 600; color: #fff; margin-bottom: 1.5rem; border-bottom: 1px solid rgba(212,175,55,0.3); padding-bottom: 0.5rem; }
.pt-value.large { font-size: 2.2rem; font-weight: 800; font-family: var(--display); color: #fff; line-height: 1.2; border:none; margin-bottom:0.5rem; padding-bottom:0;}
.pt-score-panel { background: rgba(255,255,255,0.03); border: 1px solid rgba(212,175,55,0.3); border-radius: 1rem; padding: 1.5rem; display: flex; flex-direction: column; z-index: 10; position:relative;}
.pt-grade-header { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 1px solid var(--gold); padding-bottom: 1rem; margin-bottom: 1.5rem; }
.pt-grade-num { font-size: 4rem; font-weight: 800; font-family: var(--display); color: var(--gold); line-height: 0.8; margin-bottom:0;}
.pt-score-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8rem; font-size: 0.85rem; }
.pt-score-val { font-family: var(--mono); font-weight: bold; color: var(--gold-light); }

.qr-box { position:absolute; bottom:0; right:0; width:65px; height:65px; border-radius:0.5rem; border:2px solid var(--gold); padding:2px; background:#fff; cursor:pointer;}
.qr-box img { width:100%; height:100%; border-radius:0.25rem; }
.cert-banner { background: linear-gradient(90deg, var(--gold-light), var(--gold)); padding: 1rem; border-radius: 0.75rem; text-align: center; margin-bottom: 2rem; border: 2px solid #fff; box-shadow: 0 10px 20px rgba(0,0,0,0.2);}
.cert-banner h3 { color: var(--navy); font-size: 1.5rem; font-weight: 800; margin:0; display:flex; justify-content:center; align-items:center; gap:0.5rem; font-family:var(--display);}

.tooltip { position: relative; display: inline-block; cursor: pointer; color: var(--coral); margin-left: 5px; font-weight: bold; background: #ffe6e6; border-radius: 50%; width: 20px; height: 20px; text-align: center; line-height: 20px; font-size: 12px; }
.tooltip .tooltiptext { visibility: hidden; width: 220px; background-color: var(--ink); color: #fff; text-align: left; border-radius: 8px; padding: 10px; position: absolute; z-index: 1; bottom: 125%; left: 50%; margin-left: -110px; opacity: 0; transition: opacity 0.3s; font-size: 12px; font-weight: normal; line-height: 1.5; box-shadow: 0 5px 15px rgba(0,0,0,0.2);}
.tooltip .tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: var(--ink) transparent transparent transparent; }
.tooltip:hover .tooltiptext { visibility: visible; opacity: 1; }

.pop-report-table { width: 100%; border-collapse: collapse; margin-top: 1.5rem; color: #fff; font-size: 0.85rem; text-align: center; }
.pop-report-table th { background: rgba(255,255,255,0.1); padding: 0.75rem; font-weight: 700; color: var(--gold-light); border-bottom: 2px solid var(--gold); }
.pop-report-table td { padding: 0.75rem; border-bottom: 1px solid rgba(255,255,255,0.05); }
.pop-report-table tr.highlight { background: rgba(212,175,55,0.15); font-weight: 800; color: var(--gold); }

.top-notice-bar { background: var(--spruce); color: #fff; text-align: center; padding: 8px; font-size: 0.85rem; font-weight: 600; cursor: pointer; display: none; }
.top-notice-bar a { color: var(--mint); text-decoration: underline; margin-left: 10px;}

.modal-overlay { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6); backdrop-filter: blur(4px); }
.modal-content { background-color: #fefefe; margin: 5% auto; padding: 2rem; border-radius: 1rem; width: 90%; max-width: 600px; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25); position: relative; max-height:85vh; overflow-y:auto;}
.close-modal { color: #aaa; float: right; font-size: 28px; font-weight: bold; cursor: pointer; margin-top:-10px; margin-right:-10px;}
.close-modal:hover, .close-modal:focus { color: black; text-decoration: none; cursor: pointer; }

.pagination { display: flex; justify-content: center; gap: 0.5rem; margin-top: 2rem; }
.page-btn { padding: 0.5rem 0.8rem; border: 1px solid #ddd; background: #fff; border-radius: 0.25rem; cursor: pointer; font-size: 0.85rem; font-weight: bold; color: var(--dim); }
.page-btn.active { background: var(--ink); color: #fff; border-color: var(--ink); }

#page-faq { min-height:75vh; background:#f6f7fb; }
.faq-container { max-width: 1040px; padding-top: clamp(3rem, 8vw, 6rem); padding-bottom: clamp(5rem, 10vw, 8rem); }
.faq-hero { position:relative; padding:0 0 2.25rem; border-bottom:1px solid #d9dde8; }
.faq-eyebrow { margin-bottom:.75rem; color:#7257f5; font-family:var(--mono); font-size:.75rem; font-weight:800; letter-spacing:.18em; }
.faq-hero h1 { color:var(--ink); font-size:clamp(2.15rem, 5vw, 3.6rem); font-weight:900; letter-spacing:-.045em; line-height:1.05; }
.faq-hero > p:not(.faq-eyebrow) { max-width:680px; margin-top:1rem; color:var(--dim); font-size:1rem; line-height:1.75; }
.faq-expand-button { position:absolute; right:0; bottom:2.25rem; border:1px solid #d7dbea; border-radius:999px; background:#fff; padding:.65rem 1rem; color:var(--ink); font-size:.78rem; font-weight:800; cursor:pointer; }
.faq-expand-button:hover { border-color:#7257f5; color:#6245ec; }
.faq-list { border-bottom:1px solid #d9dde8; }
.faq-empty { padding:3rem 1rem; color:var(--dim); text-align:center; }
.faq-item { border-bottom:1px solid #d9dde8; }
.faq-item:last-child { border-bottom:0; }
.faq-q { display:flex; width:100%; align-items:center; justify-content:space-between; gap:2rem; border:0; background:transparent; padding:1.8rem 0 1.65rem; color:#4b37d1; text-align:left; font:inherit; font-size:clamp(1rem, 2vw, 1.12rem); font-weight:850; line-height:1.5; cursor:pointer; }
.faq-q:hover { color:#7b42ed; }
.faq-chevron { position:relative; width:1rem; height:1rem; flex:0 0 1rem; transform:rotate(45deg); border-right:2px solid #aab1c5; border-bottom:2px solid #aab1c5; transition:transform .2s ease, border-color .2s ease; }
.faq-item.open .faq-chevron { transform:rotate(225deg); border-color:#7257f5; }
.faq-a { display:grid; grid-template-rows:0fr; color:#535b6f; font-size:1rem; line-height:1.8; transition:grid-template-rows .24s ease; }
.faq-a-inner { min-height:0; overflow:hidden; white-space:pre-line; }
.faq-item.open .faq-a { grid-template-rows:1fr; }
.faq-item.open .faq-a-inner { padding:0 3rem 1.8rem 0; }
@media (max-width:700px) {
  .faq-hero { padding-bottom:5rem; }
  .faq-expand-button { right:auto; left:0; bottom:1.5rem; }
  .faq-q { gap:1rem; padding-block:1.35rem; }
  .faq-item.open .faq-a-inner { padding-right:0; padding-bottom:1.4rem; }
}
@media (prefers-reduced-motion:reduce) {
  .faq-a, .faq-chevron { transition:none; }
}

.signup-card { max-width:600px; margin: 0 auto; background: #fff; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 1.5rem; box-shadow: 0 15px 40px rgba(0,0,0,0.03); border: 1px solid rgba(0,0,0,0.05); }
.terms-box { border:1px solid #ddd; border-radius:0.5rem; padding:1rem; margin-top:0.5rem; background:#f9f9f9; font-size:0.8rem; color:var(--spruce); max-height:100px; overflow-y:auto; line-height:1.6; }
.chk-label { display:flex; align-items:center; gap:0.5rem; font-size:0.9rem; font-weight:600; color:var(--ink); cursor:pointer; margin-top:0.5rem;}
.chk-label input { width:16px; height:16px; accent-color:var(--coral); }
.login-links { display:flex; justify-content:center; gap:1.5rem; margin-top:1.5rem; font-size:0.85rem; color:var(--dim); font-weight:600;}
.login-links a:hover { color:var(--coral); text-decoration:underline; }

#admin-list-table th { padding:1rem; background:var(--sand); color:var(--spruce); border-bottom:2px solid var(--ink); font-weight:800; text-align:center; }
#admin-list-table td { padding:1rem; border-bottom:1px solid #eee; vertical-align:middle; text-align:center; }

.vex-privacy {
    --vex-text: #242424;
    --vex-muted: #666;
    --vex-line: #e5e5e5;
    --vex-soft: #f7f7f7;
    --vex-point: #111;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: 56px 24px 100px;
    color: var(--vex-text);
    font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo",
      "Malgun Gothic", sans-serif;
    font-size: 15px;
    line-height: 1.8;
    word-break: keep-all;
    overflow-wrap: break-word;
    box-sizing: border-box;
  }

  .vex-privacy *,
  .vex-privacy *::before,
  .vex-privacy *::after {
    box-sizing: border-box;
  }

  .vex-privacy__header {
    padding-bottom: 30px;
    border-bottom: 2px solid var(--vex-point);
  }

  .vex-privacy h1 {
    margin: 0 0 10px;
    color: var(--vex-point);
    font-size: 34px;
    line-height: 1.3;
    letter-spacing: -0.04em;
  }

  .vex-privacy__date {
    margin: 0;
    color: var(--vex-muted);
    font-size: 14px;
  }

  .vex-privacy__intro {
    margin: 28px 0 0;
  }

  .vex-privacy__toc {
    margin: 36px 0 48px;
    padding: 24px 28px;
    border: 1px solid var(--vex-line);
    background: var(--vex-soft);
  }

  .vex-privacy__toc-title {
    display: block;
    margin-bottom: 12px;
    color: var(--vex-point);
    font-size: 16px;
  }

  .vex-privacy__toc ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px 28px;
    margin: 0;
    padding-left: 20px;
  }

  .vex-privacy__toc a {
    color: inherit;
    text-decoration: none;
  }

  .vex-privacy__toc a:hover {
    text-decoration: underline;
  }

  .vex-privacy section {
    margin-top: 58px;
    scroll-margin-top: 24px;
  }

  .vex-privacy h2 {
    margin: 0 0 22px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--vex-line);
    color: var(--vex-point);
    font-size: 23px;
    line-height: 1.45;
    letter-spacing: -0.03em;
  }

  .vex-privacy h3 {
    margin: 28px 0 10px;
    color: var(--vex-point);
    font-size: 17px;
    line-height: 1.5;
  }

  .vex-privacy p {
    margin: 10px 0;
  }

  .vex-privacy ul,
  .vex-privacy ol {
    margin: 10px 0;
    padding-left: 23px;
  }

  .vex-privacy li + li {
    margin-top: 4px;
  }

  .vex-privacy__table-wrap {
    width: 100%;
    margin: 16px 0;
    overflow-x: auto;
    border-top: 1px solid var(--vex-point);
    -webkit-overflow-scrolling: touch;
  }

  .vex-privacy table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    table-layout: fixed;
  }

  .vex-privacy th,
  .vex-privacy td {
    padding: 13px 15px;
    border-right: 1px solid var(--vex-line);
    border-bottom: 1px solid var(--vex-line);
    text-align: left;
    vertical-align: top;
  }

  .vex-privacy th:last-child,
  .vex-privacy td:last-child {
    border-right: 0;
  }

  .vex-privacy th {
    background: var(--vex-soft);
    color: var(--vex-point);
    font-weight: 600;
  }

  .vex-privacy__notice {
    margin: 18px 0;
    padding: 17px 20px;
    border-left: 3px solid var(--vex-point);
    background: var(--vex-soft);
  }

  .vex-privacy__placeholder {
    color: #b42318;
    font-weight: 700;
  }

  .vex-privacy__contact {
    margin-top: 14px;
    padding: 22px 24px;
    border: 1px solid var(--vex-line);
    background: var(--vex-soft);
  }

  .vex-privacy__contact p {
    margin: 4px 0;
  }

  .vex-privacy a {
    color: inherit;
    text-underline-offset: 3px;
  }

  .vex-privacy__history {
    margin-top: 64px;
    padding-top: 22px;
    border-top: 1px solid var(--vex-line);
    color: var(--vex-muted);
    font-size: 14px;
  }

  @media (max-width: 767px) {
    .vex-privacy {
      padding: 36px 18px 72px;
      font-size: 14px;
      line-height: 1.75;
      word-break: normal;
    }

    .vex-privacy h1 {
      font-size: 27px;
    }

    .vex-privacy h2 {
      font-size: 20px;
    }

    .vex-privacy__toc {
      padding: 20px;
    }

    .vex-privacy__toc ol {
      display: block;
    }

    .vex-privacy__toc li + li {
      margin-top: 5px;
    }

    .vex-privacy section {
      margin-top: 46px;
    }
  }

.vex-terms {
    --vex-text: #242424;
    --vex-muted: #666;
    --vex-line: #e5e5e5;
    --vex-soft: #f7f7f7;
    --vex-point: #111;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: 56px 24px 100px;
    color: var(--vex-text);
    font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo",
      "Malgun Gothic", sans-serif;
    font-size: 15px;
    line-height: 1.8;
    word-break: keep-all;
    overflow-wrap: break-word;
    box-sizing: border-box;
  }

  .vex-terms *,
  .vex-terms *::before,
  .vex-terms *::after {
    box-sizing: border-box;
  }

  .vex-terms__header {
    padding-bottom: 30px;
    border-bottom: 2px solid var(--vex-point);
  }

  .vex-terms h1 {
    margin: 0 0 10px;
    color: var(--vex-point);
    font-size: 34px;
    line-height: 1.3;
    letter-spacing: -0.04em;
  }

  .vex-terms__date {
    margin: 0;
    color: var(--vex-muted);
    font-size: 14px;
  }

  .vex-terms__intro {
    margin: 28px 0 0;
  }

  .vex-terms__toc {
    margin: 36px 0 48px;
    padding: 24px 28px;
    border: 1px solid var(--vex-line);
    background: var(--vex-soft);
  }

  .vex-terms__toc-title {
    display: block;
    margin-bottom: 12px;
    color: var(--vex-point);
    font-size: 16px;
  }

  .vex-terms__toc ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px 30px;
    margin: 0;
    padding-left: 22px;
  }

  .vex-terms__toc a {
    color: inherit;
    text-decoration: none;
  }

  .vex-terms__toc a:hover {
    text-decoration: underline;
  }

  .vex-terms section {
    margin-top: 56px;
    scroll-margin-top: 24px;
  }

  .vex-terms h2 {
    margin: 0 0 21px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--vex-line);
    color: var(--vex-point);
    font-size: 22px;
    line-height: 1.45;
    letter-spacing: -0.03em;
  }

  .vex-terms h3 {
    margin: 27px 0 10px;
    color: var(--vex-point);
    font-size: 17px;
    line-height: 1.5;
  }

  .vex-terms p {
    margin: 10px 0;
  }

  .vex-terms ol,
  .vex-terms ul {
    margin: 10px 0;
    padding-left: 23px;
  }

  .vex-terms li + li {
    margin-top: 7px;
  }

  .vex-terms__notice {
    margin: 18px 0;
    padding: 17px 20px;
    border-left: 3px solid var(--vex-point);
    background: var(--vex-soft);
  }

  .vex-terms__placeholder {
    color: #b42318;
    font-weight: 700;
  }

  .vex-terms__table-wrap {
    width: 100%;
    margin: 16px 0;
    overflow-x: auto;
    border-top: 1px solid var(--vex-point);
    -webkit-overflow-scrolling: touch;
  }

  .vex-terms table {
    width: 100%;
    min-width: 660px;
    border-collapse: collapse;
    table-layout: fixed;
  }

  .vex-terms th,
  .vex-terms td {
    padding: 13px 15px;
    border-right: 1px solid var(--vex-line);
    border-bottom: 1px solid var(--vex-line);
    text-align: left;
    vertical-align: top;
  }

  .vex-terms th:last-child,
  .vex-terms td:last-child {
    border-right: 0;
  }

  .vex-terms th {
    background: var(--vex-soft);
    color: var(--vex-point);
    font-weight: 600;
  }

  .vex-terms__contact {
    margin-top: 14px;
    padding: 22px 24px;
    border: 1px solid var(--vex-line);
    background: var(--vex-soft);
  }

  .vex-terms__contact p {
    margin: 4px 0;
  }

  .vex-terms__history {
    margin-top: 64px;
    padding-top: 22px;
    border-top: 1px solid var(--vex-line);
    color: var(--vex-muted);
    font-size: 14px;
  }

  @media (max-width: 767px) {
    .vex-terms {
      padding: 36px 18px 72px;
      font-size: 14px;
      line-height: 1.75;
      word-break: normal;
    }

    .vex-terms h1 {
      font-size: 27px;
    }

    .vex-terms h2 {
      font-size: 20px;
    }

    .vex-terms__toc {
      padding: 20px;
    }

    .vex-terms__toc ol {
      display: block;
    }

    .vex-terms__toc li + li {
      margin-top: 5px;
    }

    .vex-terms section {
      margin-top: 45px;
    }
  }

#page-terms,
  #page-privacy {
    padding-block: 3rem 5rem;
  }

  #page-terms > .container,
  #page-privacy > .container {
    max-width: 1100px;
  }

  #page-terms .vex-terms,
  #page-privacy .vex-privacy {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 1.5rem;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.03);
  }

  @media (max-width: 767px) {
    #page-terms,
    #page-privacy {
      padding-block: 1.5rem 3rem;
    }
  }
