/* GENERATED by gen-tokens.py from tokens.json (v8-G2b) — 직접 수정 금지 */
/* 팔레트 바탕: lucianlabs tokens.css (MIT, (c) 2026 Seokwoooo) */
:root{
  color-scheme:light;
  --vtk-page:#F4F2EE;
  --vtk-surface:#FFFFFF;
  --vtk-surface2:#F5F3EF;
  --vtk-surface3:#EAE7E1;
  --vtk-ink:#16151B;
  --vtk-ink2:#57535F;
  --vtk-ink3:#8E8A97;
  --vtk-line:rgba(22,21,27,0.12);
  --vtk-line2:rgba(22,21,27,0.17);
  --vtk-accent:#6A57F2;
  --vtk-accent-ink:#FFFFFF;
  --vtk-accent-soft:rgba(106,87,242,0.12);
  --vtk-mint:#119C72;
  --vtk-warn:#D6731E;
  --vtk-danger:#C42F49;
  --vtk-band-bg:#FFFFFF;
  --vtk-btn-shadow:rgba(106,87,242,0.35);
  --vtk-card-shadow:rgba(40,30,80,0.14);
  --vtk-bubble-bg:#FFFFFF;
  --vtk-bubble-ink:#2E2B52;
  --vtk-bubble-border:#6A57F2;
  --vtk-scrim:rgba(22,21,27,0.45);
  --vtk-scene-a:#E3DCFF;
  --vtk-scene-b:#D5E6FF;
  --vtk-scene-c:#D2F3E8;
  --vtk-scene-fail:#FFD9D2;
  --vtk-scene-dots:rgba(106,87,242,0.28);
  --vtk-halo:rgba(255,255,255,0.65);
  --vtk-malli-nori:#1E1B24;
  --vtk-malli-line:#15131A;
  --vtk-malli-rice:#FFFFFF;
  --vtk-malli-rim:#FFFFFF;
  --vtk-malli-grain:#E8D7B0;
  --vtk-malli-egg:#FFD45C;
  --vtk-malli-carrot:#FFA45E;
  --vtk-malli-spinach:#5FD9B0;
  --vtk-malli-ham:#FF8FAE;
  --vtk-malli-cheek:#FFB3C4;
  --vtk-malli-mouth:#E0526B;
  --vtk-malli-tongue:#FFB3C4;
  --vtk-malli-sweat:#CFE3FF;
  --vtk-malli-fline:#2E2B52;
  --vtk-malli-face:#FFF6E6;
  --vtk-malli-pupil:#1B1522;
  --vtk-malli-spark:#FFE08A;
  --vtk-malli-arrow:#6A57F2;
  --vtk-malli-mat:#F2E2C0;
  --vtk-malli-mat2:#D9BF8C;
  --vtk-malli-shadow:#3C288C;
  --vtk-malli-rim-out:2.5px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){color-scheme:dark;
  --vtk-page:#07080D;
  --vtk-surface:#13141C;
  --vtk-surface2:#1A1B25;
  --vtk-surface3:#252632;
  --vtk-ink:#F4F0E8;
  --vtk-ink2:rgba(244,240,232,0.72);
  --vtk-ink3:rgba(244,240,232,0.42);
  --vtk-line:rgba(255,255,255,0.14);
  --vtk-line2:rgba(255,255,255,0.16);
  --vtk-accent:#B7A4FF;
  --vtk-accent-ink:#0B0C12;
  --vtk-accent-soft:rgba(183,164,255,0.15);
  --vtk-mint:#7EE8C0;
  --vtk-warn:#FFB26B;
  --vtk-danger:#FF7D8C;
  --vtk-band-bg:#13141C;
  --vtk-btn-shadow:rgba(0,0,0,0.5);
  --vtk-card-shadow:rgba(0,0,0,0.5);
  --vtk-bubble-bg:#FFFFFF;
  --vtk-bubble-ink:#2E2B52;
  --vtk-bubble-border:#6A57F2;
  --vtk-scrim:rgba(0,0,0,0.6);
  --vtk-scene-a:#2A2552;
  --vtk-scene-b:#1C2E55;
  --vtk-scene-c:#15423A;
  --vtk-scene-fail:#5A2B3A;
  --vtk-scene-dots:rgba(183,164,255,0.3);
  --vtk-halo:rgba(183,164,255,0.28);
  --vtk-malli-nori:#16141C;
  --vtk-malli-line:#F4F0E8;
  --vtk-malli-rice:#F4F0E8;
  --vtk-malli-rim:#F4F0E8;
  --vtk-malli-grain:#E8D7B0;
  --vtk-malli-egg:#FFD45C;
  --vtk-malli-carrot:#FFA45E;
  --vtk-malli-spinach:#5FD9B0;
  --vtk-malli-ham:#FF8FAE;
  --vtk-malli-cheek:#FFB3C4;
  --vtk-malli-mouth:#E0526B;
  --vtk-malli-tongue:#FFB3C4;
  --vtk-malli-sweat:#CFE3FF;
  --vtk-malli-fline:#1C1A3A;
  --vtk-malli-face:#FFF6E6;
  --vtk-malli-pupil:#1B1522;
  --vtk-malli-spark:#A5F2D3;
  --vtk-malli-arrow:#B7A4FF;
  --vtk-malli-mat:#F2E2C0;
  --vtk-malli-mat2:#D9BF8C;
  --vtk-malli-shadow:#000000;
  --vtk-malli-rim-out:1.5px;
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --vtk-page:#07080D;
  --vtk-surface:#13141C;
  --vtk-surface2:#1A1B25;
  --vtk-surface3:#252632;
  --vtk-ink:#F4F0E8;
  --vtk-ink2:rgba(244,240,232,0.72);
  --vtk-ink3:rgba(244,240,232,0.42);
  --vtk-line:rgba(255,255,255,0.14);
  --vtk-line2:rgba(255,255,255,0.16);
  --vtk-accent:#B7A4FF;
  --vtk-accent-ink:#0B0C12;
  --vtk-accent-soft:rgba(183,164,255,0.15);
  --vtk-mint:#7EE8C0;
  --vtk-warn:#FFB26B;
  --vtk-danger:#FF7D8C;
  --vtk-band-bg:#13141C;
  --vtk-btn-shadow:rgba(0,0,0,0.5);
  --vtk-card-shadow:rgba(0,0,0,0.5);
  --vtk-bubble-bg:#FFFFFF;
  --vtk-bubble-ink:#2E2B52;
  --vtk-bubble-border:#6A57F2;
  --vtk-scrim:rgba(0,0,0,0.6);
  --vtk-scene-a:#2A2552;
  --vtk-scene-b:#1C2E55;
  --vtk-scene-c:#15423A;
  --vtk-scene-fail:#5A2B3A;
  --vtk-scene-dots:rgba(183,164,255,0.3);
  --vtk-halo:rgba(183,164,255,0.28);
  --vtk-malli-nori:#16141C;
  --vtk-malli-line:#F4F0E8;
  --vtk-malli-rice:#F4F0E8;
  --vtk-malli-rim:#F4F0E8;
  --vtk-malli-grain:#E8D7B0;
  --vtk-malli-egg:#FFD45C;
  --vtk-malli-carrot:#FFA45E;
  --vtk-malli-spinach:#5FD9B0;
  --vtk-malli-ham:#FF8FAE;
  --vtk-malli-cheek:#FFB3C4;
  --vtk-malli-mouth:#E0526B;
  --vtk-malli-tongue:#FFB3C4;
  --vtk-malli-sweat:#CFE3FF;
  --vtk-malli-fline:#1C1A3A;
  --vtk-malli-face:#FFF6E6;
  --vtk-malli-pupil:#1B1522;
  --vtk-malli-spark:#A5F2D3;
  --vtk-malli-arrow:#B7A4FF;
  --vtk-malli-mat:#F2E2C0;
  --vtk-malli-mat2:#D9BF8C;
  --vtk-malli-shadow:#000000;
  --vtk-malli-rim-out:1.5px;
}
:root{
  --vtk-grad-before:linear-gradient(135deg, var(--vtk-scene-a) 0%, var(--vtk-scene-b) 60%, var(--vtk-scene-c) 100%);
  --vtk-grad-connecting:linear-gradient(135deg, var(--vtk-scene-a) 0%, var(--vtk-scene-b) 60%, var(--vtk-scene-c) 100%);
  --vtk-grad-connected:linear-gradient(135deg, var(--vtk-scene-b) 0%, var(--vtk-scene-c) 100%);
  --vtk-grad-fail:linear-gradient(135deg, var(--vtk-scene-a) 0%, var(--vtk-scene-fail) 120%);
  --vtk-space-xs:4px;
  --vtk-space-sm:8px;
  --vtk-space-md:12px;
  --vtk-space-lg:16px;
  --vtk-space-xl:20px;
  --vtk-space-xxl:24px;
  --vtk-space-xxxl:32px;
  --vtk-radius-chip:12px;
  --vtk-radius-band:12px;
  --vtk-radius-field:16px;
  --vtk-radius-bubble:22px;
  --vtk-radius-bubble-tail:6px;
  --vtk-radius-card:26px;
  --vtk-radius-stage:30px;
  --vtk-radius-pill:27px;
  --vtk-radius-price:24px;
  --vtk-radius-web-hero:44px;
  --vtk-radius-window:12px;
  --vtk-radius-phone:34px;
  --vtk-size-touch-min:40px;
  --vtk-size-cta:54px;
  --vtk-size-field:52px;
  --vtk-size-icon-btn:40px;
  --vtk-size-screen-pad:16px;
  --vtk-size-card-pad:16px;
  --vtk-size-stage-margin:16px;
  --vtk-size-gauge-cell:40px;
  --vtk-size-gauge-gap-x:4px;
  --vtk-size-gauge-gap-y:4px;
  --vtk-size-gauge-cols:5px;
  --vtk-size-mally-hero:200px;
  --vtk-size-mally-home:300px;
  --vtk-size-mally-web:330px;
  --vtk-size-web-max:1080px;
  --vtk-size-window-w:380px;
  --vtk-size-window-h:600px;
  --vtk-font-body:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI",Roboto,"Noto Sans KR",sans-serif;
  --vtk-font-bubble:"Gaegu","Pretendard Variable",sans-serif;
  --vtk-fs-display:40px;
  --vtk-lh-display:46px;
  --vtk-fw-display:800;
  --vtk-ls-display:-0.03em;
  --vtk-fs-title:27px;
  --vtk-lh-title:35px;
  --vtk-fw-title:800;
  --vtk-ls-title:-0.04em;
  --vtk-fs-heading:20px;
  --vtk-lh-heading:28px;
  --vtk-fw-heading:800;
  --vtk-ls-heading:-0.02em;
  --vtk-fs-button:19px;
  --vtk-lh-button:24px;
  --vtk-fw-button:800;
  --vtk-ls-button:-0.01em;
  --vtk-fs-body:16px;
  --vtk-lh-body:24px;
  --vtk-fw-body:500;
  --vtk-ls-body:-0.01em;
  --vtk-fs-body-strong:16px;
  --vtk-lh-body-strong:24px;
  --vtk-fw-body-strong:700;
  --vtk-ls-body-strong:-0.01em;
  --vtk-fs-numeral:26px;
  --vtk-lh-numeral:32px;
  --vtk-fw-numeral:800;
  --vtk-ls-numeral:-0.02em;
  --vtk-fs-unit:20px;
  --vtk-lh-unit:26px;
  --vtk-fw-unit:500;
  --vtk-ls-unit:-0.01em;
  --vtk-fs-caption:14px;
  --vtk-lh-caption:20px;
  --vtk-fw-caption:500;
  --vtk-ls-caption:-0.01em;
  --vtk-fs-legal:14px;
  --vtk-lh-legal:22px;
  --vtk-fw-legal:500;
  --vtk-ls-legal:0em;
  --vtk-fs-bubble:23px;
  --vtk-lh-bubble:28px;
  --vtk-fw-bubble:700;
  --vtk-ls-bubble:-0.05em;
  --vtk-web-fs-h1:60px;
  --vtk-web-lh-h1:66px;
  --vtk-web-fw-h1:800;
  --vtk-web-ls-h1:-0.04em;
  --vtk-web-fs-h2:36px;
  --vtk-web-lh-h2:44px;
  --vtk-web-fw-h2:800;
  --vtk-web-ls-h2:-0.03em;
  --vtk-web-fs-lead:20px;
  --vtk-web-lh-lead:32px;
  --vtk-web-fw-lead:500;
  --vtk-web-ls-lead:-0.01em;
  --vtk-web-fs-price:30px;
  --vtk-web-lh-price:36px;
  --vtk-web-fw-price:800;
  --vtk-web-ls-price:-0.02em;
  --vtk-web-fs-bubble:30px;
  --vtk-web-lh-bubble:34px;
  --vtk-web-fw-bubble:700;
  --vtk-web-ls-bubble:-0.05em;
  --vtk-shadow-card:0px 8px 28px var(--vtk-card-shadow);
  --vtk-shadow-cta:0px 8px 18px var(--vtk-btn-shadow);
  --vtk-dur-press:120ms;
  --vtk-dur-fade:200ms;
  --vtk-dur-state:480ms;
  --vtk-dur-pop:420ms;
  --vtk-dur-toast:240ms;
  --vtk-dur-arrow-spin:1400ms;
  --vtk-dur-sparkle:1800ms;
  --vtk-dur-idle:3200ms;
  --vtk-ease-ease-out:cubic-bezier(0.2,0.8,0.2,1);
  --vtk-ease-spring:cubic-bezier(0.34,1.45,0.64,1);
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
/* VPNtoKorea v8 (G2b) 공통 스타일 — 홈페이지와 백엔드 렌더 페이지(/pay·/verify·/unsubscribe)가 공유.
   빌드: infra/build-web.sh  (src/tokens.css + 이 파일 -> vtk.v8.css). 토큰 값은 handoff/tokens/tokens.json이 단일 원천. */
@font-face{font-family:"VTK Sans";src:url("/fonts/vtk-sans.v8.woff2") format("woff2-variations"),url("/fonts/vtk-sans.v8.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"VTK Hand";src:url("/fonts/vtk-hand.v8.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{
  --vtk-font-body:"VTK Sans",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",Roboto,"Noto Sans KR",sans-serif;
  --vtk-font-bubble:"VTK Hand","VTK Sans",sans-serif;
  --vtk-show-light:block; --vtk-show-dark:none;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--vtk-show-light:none;--vtk-show-dark:block}}
:root[data-theme="dark"]{--vtk-show-light:none;--vtk-show-dark:block}
.only-light{display:var(--vtk-show-light)}.only-dark{display:var(--vtk-show-dark)}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--vtk-font-body);background:var(--vtk-page);color:var(--vtk-ink);font-size:var(--vtk-fs-body);line-height:var(--vtk-lh-body);font-weight:500;letter-spacing:var(--vtk-ls-body);word-break:keep-all;overflow-wrap:break-word}
a{color:inherit}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--vtk-accent);outline-offset:3px;border-radius:6px}
[hidden]{display:none!important}
.wrap{max-width:var(--vtk-size-web-max);margin:0 auto;padding:0 32px}
@media(max-width:719px){.wrap{padding:0 16px}}

/* 내비 */
.nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0}
.brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:17px;font-weight:800;letter-spacing:-.02em}
.brand img{width:26px;height:29px}
.brand span{font-weight:500}
.nav-links{display:flex;align-items:center;gap:18px;font-size:var(--vtk-fs-caption);color:var(--vtk-ink2)}
.nav-links a{text-decoration:none;padding:10px 0}
.nav-links a:hover{color:var(--vtk-ink)}
.theme-btn{font:inherit;font-size:var(--vtk-fs-caption);color:var(--vtk-ink2);background:var(--vtk-surface);border:1px solid var(--vtk-line2);border-radius:999px;min-height:36px;padding:0 12px;cursor:pointer}
@media(max-width:719px){.nav-links a.hide-sm{display:none}}

/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:var(--vtk-fs-button);line-height:var(--vtk-lh-button);font-weight:800;letter-spacing:var(--vtk-ls-button);color:var(--vtk-accent-ink);background:var(--vtk-accent);border:0;border-radius:var(--vtk-radius-pill);min-height:var(--vtk-size-cta);padding:0 28px;text-decoration:none;cursor:pointer;box-shadow:var(--vtk-shadow-cta);transition:transform var(--vtk-dur-press) var(--vtk-ease-ease-out)}
.btn:active{transform:scale(.97)}
.btn:disabled{opacity:.55;cursor:default}
.btn.block{display:flex;width:100%;margin-top:20px}
.btn.ghost{color:var(--vtk-ink);background:var(--vtk-surface);box-shadow:none;border:1px solid var(--vtk-line2)}
.chip{display:inline-block;font-size:12.5px;line-height:18px;font-weight:800;padding:2px 10px;border-radius:999px;background:var(--vtk-accent-soft);color:var(--vtk-ink)}

/* 장면(stage): 파스텔 그라데이션은 여기와 사용량 알 묶음에만 */
.stage{position:relative;overflow:hidden;background:var(--vtk-grad-connected);border-radius:var(--vtk-radius-web-hero);height:360px;display:flex;align-items:flex-end;justify-content:center}
.stage::before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--vtk-scene-dots) 1.7px,transparent 1.9px);background-size:9px 9px;-webkit-mask-image:radial-gradient(circle at 100% 0,#000,transparent 70%);mask-image:radial-gradient(circle at 100% 0,#000,transparent 70%)}
.stage .halo{position:absolute;left:50%;bottom:-110px;width:440px;height:440px;margin-left:-220px;border-radius:50%;background:radial-gradient(circle,var(--vtk-halo),transparent 68%)}
.stage .malli{position:relative;width:min(330px,80%);margin-bottom:8px}
.stage.small{height:200px;border-radius:var(--vtk-radius-stage)}
.stage.small .halo{width:280px;height:280px;margin-left:-140px;bottom:-60px}
.stage.small .malli{width:min(170px,60%)}
.stage.fail{background:var(--vtk-grad-fail)}
.bubble{position:absolute;top:16px;right:16px;z-index:1;font-family:var(--vtk-font-bubble);font-weight:700;font-size:var(--vtk-web-fs-bubble);line-height:var(--vtk-web-lh-bubble);letter-spacing:var(--vtk-web-ls-bubble);white-space:nowrap;color:var(--vtk-bubble-ink);background:var(--vtk-bubble-bg);border:2.5px solid var(--vtk-bubble-border);border-radius:22px 22px 6px 22px;padding:4px 18px 6px}
.stage.small .bubble{font-size:var(--vtk-fs-bubble);line-height:var(--vtk-lh-bubble);top:12px;right:12px}

/* 홈 히어로 */
.hero{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;padding:24px 0 48px}
.hero h1{font-size:var(--vtk-web-fs-h1);line-height:var(--vtk-web-lh-h1);font-weight:var(--vtk-web-fw-h1);letter-spacing:var(--vtk-web-ls-h1)}
.hero .lead{margin-top:20px;font-size:var(--vtk-web-fs-lead);line-height:var(--vtk-web-lh-lead);color:var(--vtk-ink2);letter-spacing:var(--vtk-web-ls-lead)}
.hero .btn{margin-top:28px}
.caption{font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);color:var(--vtk-ink2)}
.hero .caption{margin-top:14px}
@media(max-width:719px){.hero{grid-template-columns:1fr;gap:24px}.hero h1{font-size:40px;line-height:46px}.hero .lead{font-size:18px;line-height:28px}.stage{height:300px;border-radius:32px}.hero .btn{width:100%}}

/* 섹션 */
.sec{padding:40px 0}
.sec h2{font-size:var(--vtk-web-fs-h2);line-height:var(--vtk-web-lh-h2);font-weight:800;letter-spacing:var(--vtk-web-ls-h2)}
.sec .sub{margin-top:8px;color:var(--vtk-ink2)}
@media(max-width:719px){.sec h2{font-size:28px;line-height:36px}}

/* 다운로드 */
.os-grid{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.os{background:var(--vtk-surface);border-radius:var(--vtk-radius-price);box-shadow:var(--vtk-shadow-card);padding:20px}
.os b{display:block;font-size:var(--vtk-fs-heading);line-height:var(--vtk-lh-heading);font-weight:800;letter-spacing:var(--vtk-ls-heading)}
.os p{margin-top:4px;color:var(--vtk-ink2);font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption)}
.os .btn{margin-top:16px;width:100%;padding:0 16px}
.os .soon{margin-top:16px;display:flex;align-items:center;justify-content:center;min-height:var(--vtk-size-touch-min);border-radius:999px;background:var(--vtk-surface2);color:var(--vtk-ink2);font-weight:700;font-size:var(--vtk-fs-caption)}
@media(max-width:719px){.os-grid{grid-template-columns:1fr}}

/* 요금 */
.price-grid{margin-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:12px}
.price{position:relative;display:block;text-decoration:none;background:var(--vtk-surface);border-radius:var(--vtk-radius-price);box-shadow:var(--vtk-shadow-card);padding:20px 22px 22px;transition:transform var(--vtk-dur-fade) var(--vtk-ease-ease-out)}
.price:hover{transform:translateY(-3px)}
.price .lab{font-size:var(--vtk-fs-caption);font-weight:700;color:var(--vtk-ink2)}
.price .num{margin-top:6px;font-size:var(--vtk-web-fs-price);line-height:var(--vtk-web-lh-price);font-weight:800;letter-spacing:var(--vtk-web-ls-price);font-variant-numeric:tabular-nums}
.price .per{margin-top:2px;font-size:var(--vtk-fs-caption);color:var(--vtk-ink2)}
.price.best{background:var(--vtk-accent);color:var(--vtk-accent-ink)}
.price.best .lab,.price.best .per{color:inherit;opacity:.9}
.price .flag{position:absolute;top:-12px;right:16px;font-size:12.5px;line-height:18px;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--vtk-ink);color:var(--vtk-page)}
.notes{margin-top:20px;display:grid;gap:6px;list-style:none;color:var(--vtk-ink2);font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption)}
.notes li::before{content:"· "}
@media(max-width:719px){.price-grid{grid-template-columns:1fr}.price.best{order:-1}}

/* FAQ */
.faq{margin-top:20px;max-width:760px}
.faq details{background:var(--vtk-surface);border-radius:var(--vtk-radius-field);margin-bottom:10px;box-shadow:0 1px 0 var(--vtk-line)}
.faq summary{cursor:pointer;list-style:none;padding:16px 18px;min-height:52px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;line-height:1;color:var(--vtk-accent);flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq .a{padding:0 18px 16px;color:var(--vtk-ink2)}
.faq .a b{color:var(--vtk-ink)}

/* 푸터 */
.foot{margin-top:40px;padding:28px 0 48px;border-top:1px solid var(--vtk-line);font-size:var(--vtk-fs-legal);line-height:var(--vtk-lh-legal);color:var(--vtk-ink2)}
.foot b{color:var(--vtk-ink)}
.foot p+p{margin-top:2px}
.foot .links{margin-top:10px;display:flex;flex-wrap:wrap;gap:4px 14px}
.foot .links a{color:var(--vtk-ink);padding:6px 0}
.foot .links a.on{font-weight:800}
.foot .licenses{margin-top:8px}

/* 문서(약관·방침) */
.doc{max-width:760px;padding-bottom:24px}
.doc h1{margin-top:20px;font-size:var(--vtk-fs-title);line-height:var(--vtk-lh-title);font-weight:800;letter-spacing:var(--vtk-ls-title)}
.doc .updated{margin-top:8px;font-size:var(--vtk-fs-caption);color:var(--vtk-ink2)}
.doc h2{margin:36px 0 8px;font-size:var(--vtk-fs-heading);line-height:var(--vtk-lh-heading);font-weight:800;letter-spacing:var(--vtk-ls-heading);padding-top:18px;border-top:1px solid var(--vtk-line)}
.doc p,.doc li{color:var(--vtk-ink2)}
.doc p b,.doc li b{color:var(--vtk-ink)}
.doc ul,.doc ol{padding-left:20px;margin-top:8px}
.doc li{margin-top:4px}
.doc a{color:var(--vtk-accent);font-weight:700}
.doc .placeholder{color:var(--vtk-ink);background:var(--vtk-accent-soft);border-radius:4px;padding:0 4px;font-weight:700}
.doc .back{display:inline-block;margin-top:40px;text-decoration:none}
.doc table{width:100%;border-collapse:collapse;margin-top:10px;font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption)}
.doc th,.doc td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--vtk-line);color:var(--vtk-ink2)}
.doc th{color:var(--vtk-ink);background:var(--vtk-surface2)}
@media(max-width:719px){.doc table,.doc thead,.doc tbody,.doc tr,.doc th,.doc td{display:block}.doc thead{display:none}.doc tr{padding:8px 0;border-bottom:1px solid var(--vtk-line)}.doc td{border:0;padding:2px 12px}}

/* 서버 렌더 페이지(/pay·/verify·/unsubscribe) */
.page{max-width:480px;margin:0 auto;padding:0 16px 24px}
.page .nav{padding:14px 0}
.card{background:var(--vtk-surface);border-radius:var(--vtk-radius-card);box-shadow:var(--vtk-shadow-card);padding:20px var(--vtk-size-card-pad) 22px}
.state h1{font-size:var(--vtk-fs-title);line-height:var(--vtk-lh-title);font-weight:800;letter-spacing:var(--vtk-ls-title)}
.state .lead{margin-top:10px;color:var(--vtk-ink2)}
.state .lead b{color:var(--vtk-ink)}
.state .stage{margin-bottom:20px}
.code-box{margin-top:18px;border-radius:var(--vtk-radius-field);background:var(--vtk-surface2);padding:18px 12px;text-align:center}
.code-label{font-size:var(--vtk-fs-caption);font-weight:700;color:var(--vtk-ink2)}
.code-num{margin-top:4px;font-size:var(--vtk-fs-display);line-height:var(--vtk-lh-display);font-weight:800;letter-spacing:.2em;text-indent:.2em;font-variant-numeric:tabular-nums}
.code-hint{margin-top:10px;font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);color:var(--vtk-ink2)}
.install{margin-top:14px;font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);color:var(--vtk-ink2);text-align:center}
.install a{color:var(--vtk-accent);font-weight:700}
.notice{margin-top:16px;padding:12px 14px;border-radius:var(--vtk-radius-band);background:var(--vtk-surface);border:1.5px solid var(--vtk-danger);color:var(--vtk-danger);font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);font-weight:700}
.field{margin-top:16px}
.field label{display:block;font-size:var(--vtk-fs-caption);font-weight:700;color:var(--vtk-ink2);margin-bottom:6px}
.field input{width:100%;font-family:inherit;font-size:var(--vtk-fs-body);font-weight:500;color:var(--vtk-ink);background:var(--vtk-surface2);border:1.5px solid var(--vtk-line2);border-radius:var(--vtk-radius-field);min-height:var(--vtk-size-field);padding:0 16px}
.field input:focus{outline:none;border-color:var(--vtk-accent);box-shadow:0 0 0 3px var(--vtk-accent-soft)}
.field input.code{letter-spacing:.3em;font-variant-numeric:tabular-nums;font-size:22px}
.msg{margin-top:10px;font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);color:var(--vtk-ink2);min-height:1.4em}
.msg.err{color:var(--vtk-danger);font-weight:700}
.or{margin-top:20px;text-align:center;font-size:var(--vtk-fs-caption);color:var(--vtk-ink2)}
.gbtn{margin-top:18px;display:flex;justify-content:center;min-height:44px}
.acct{margin-top:16px;padding:12px 14px;border-radius:var(--vtk-radius-field);background:var(--vtk-surface2)}
.acct .who{font-weight:800;word-break:break-all}
.acct .sub{font-size:var(--vtk-fs-caption);color:var(--vtk-ink2);margin-top:2px}
.linkbtn{background:none;border:0;padding:8px 0;font:inherit;font-size:var(--vtk-fs-caption);color:var(--vtk-accent);font-weight:700;cursor:pointer;margin-top:6px}
.plans{margin-top:16px;display:grid;gap:10px}
.plan{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--vtk-radius-field);border:1.5px solid var(--vtk-line2);cursor:pointer;background:var(--vtk-surface)}
.plan input{width:22px;height:22px;accent-color:var(--vtk-accent);flex:none}
.plan:has(input:checked){border-color:var(--vtk-accent);box-shadow:0 0 0 3px var(--vtk-accent-soft)}
.plan .name{font-weight:800}
.plan .price-sub{font-size:var(--vtk-fs-caption);color:var(--vtk-ink2)}
.plan .badge{margin-left:auto;font-size:12.5px;font-weight:800;background:var(--vtk-accent-soft);border-radius:999px;padding:3px 10px;white-space:nowrap}
.page .notes{margin-top:16px}
.sandbox{margin-top:14px;font-size:var(--vtk-fs-caption);font-weight:800;color:var(--vtk-danger)}
.steps{margin-top:14px;display:grid;gap:8px;list-style:none;counter-reset:s}
.steps li{counter-increment:s;display:flex;gap:10px;color:var(--vtk-ink2)}
.steps li::before{content:counter(s);flex:none;width:24px;height:24px;border-radius:50%;background:var(--vtk-accent-soft);color:var(--vtk-ink);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.page .foot{margin-top:28px;padding-top:20px}

/* 영문판(html lang=en): 한글용 keep-all 해제, 제목 자간은 라틴에 맞춰 느슨하게(layout-risks.md·fonts-latin-check.md), 말풍선 자간 0 */
html[lang="en"]{--vtk-ls-title:-0.02em;--vtk-web-ls-h1:-0.02em;--vtk-web-ls-h2:-0.02em;--vtk-ls-bubble:0em;--vtk-web-ls-bubble:0em}
html[lang="en"] body{word-break:normal;overflow-wrap:break-word}
html[lang="en"] .acct .who,html[lang="en"] .state .lead b{overflow-wrap:anywhere}
.lang-switch{text-decoration:none;white-space:nowrap}
.nav-links a.lang-switch{color:var(--vtk-ink2);font-weight:700}
.foot .links a.lang-switch{font-weight:800}

/* 첫 방문 언어 제안 띠 (자동 이동 없음) */
.langbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 14px;padding:10px 16px;background:var(--vtk-accent-soft);color:var(--vtk-ink);font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);font-weight:700}
.langbar-go{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;background:var(--vtk-accent);color:var(--vtk-accent-ink);text-decoration:none;font-weight:800}
.langbar-x{font:inherit;font-weight:700;min-height:36px;padding:0 10px;color:var(--vtk-ink2);background:none;border:0;cursor:pointer;text-decoration:underline}

/* 사용 후기 (G2b 토큰만 사용) */
.rv-summary{margin-top:14px;display:flex;align-items:center;gap:14px}
.rv-avg{font-size:var(--vtk-web-fs-price);line-height:var(--vtk-web-lh-price);font-weight:800;letter-spacing:var(--vtk-web-ls-price);font-variant-numeric:tabular-nums}
.rv-meta{display:grid;gap:2px}
.rv-count{font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);color:var(--vtk-ink2)}
.rv-stars{display:inline-flex;gap:2px;font-size:18px;line-height:1}
.rv-stars .on{color:var(--vtk-accent)}.rv-stars .off{color:var(--vtk-line2)}
.rv-grid{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rv-card{background:var(--vtk-surface);border-radius:var(--vtk-radius-price);box-shadow:var(--vtk-shadow-card);padding:18px 20px 16px;display:flex;flex-direction:column;gap:10px}
.rv-body{color:var(--vtk-ink);flex:1}
.rv-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:var(--vtk-fs-caption);line-height:var(--vtk-lh-caption);color:var(--vtk-ink2)}
.rv-who{font-weight:800;color:var(--vtk-ink)}
.rv-incentive{margin-left:auto}
@media(max-width:719px){.rv-grid{grid-template-columns:1fr}}
