:root { --ink:#171521; --muted:#676373; --purple:#5d43f5; --purple-dark:#4028d7; --lavender:#f1efff; --line:#e5e1ed; --white:#fff; --max:1160px; font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif; color:var(--ink); background:#fdfcff; font-synthesis:none; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { margin:0; line-height:1.65; word-break:keep-all; }
a { color:inherit; }
img { max-width:100%; height:auto; display:block; }
button,input,select { font:inherit; }
.nav { position:sticky; top:0; z-index:20; height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 max(24px,calc((100vw - var(--max))/2)); background:rgba(253,252,255,.94); border-bottom:1px solid rgba(229,225,237,.8); backdrop-filter:blur(12px); }
.brand { display:inline-flex; align-items:center; gap:10px; font-size:19px; font-weight:800; text-decoration:none; }
.brand img { width:34px; }
.nav-cta { padding:10px 16px; border-radius:10px; background:var(--ink); color:white; font-size:14px; font-weight:700; text-decoration:none; }
.section { max-width:var(--max); margin:0 auto; padding:120px 24px; }
.hero { min-height:760px; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:72px; padding-top:72px; }
.eyebrow { margin:0 0 20px; color:var(--purple); font-weight:800; letter-spacing:-.02em; }
.hero h1 { margin:0; font-size:clamp(48px,6vw,82px); line-height:1.15; letter-spacing:-.07em; }
.hero-lead { max-width:640px; margin:28px 0 36px; color:var(--muted); font-size:20px; }
.button { min-height:54px; display:inline-flex; align-items:center; justify-content:center; padding:0 28px; border:0; border-radius:12px; font-weight:800; text-decoration:none; cursor:pointer; }
.button.primary { background:var(--purple); color:#fff; box-shadow:0 12px 28px rgba(93,67,245,.22); }
.button.primary:hover { background:var(--purple-dark); }
.button:disabled { opacity:.45; cursor:not-allowed; }
.selection-note { max-width:540px; margin:18px 0 0; color:#777282; font-size:13px; }
.phone-stage { position:relative; min-height:620px; }
.phone { position:absolute; width:290px; border:8px solid #171521; border-radius:42px; box-shadow:0 30px 70px rgba(34,22,73,.18); background:white; }
.phone-front { top:0; right:40px; transform:rotate(2deg); }
.phone-back { bottom:0; left:8px; transform:rotate(-4deg); }
.trust { padding-top:40px; padding-bottom:90px; border-top:1px solid var(--line); }
.trust-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.trust figure { margin:0; min-height:150px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; }
.trust img.snu-logo { width:310px; }
.program-logos { display:flex; gap:32px; align-items:center; justify-content:center; }
.program-logos img:first-child { width:125px; height:48px; }
.program-logos img:last-child { width:222px; height:38px; }
.trust figcaption { margin-top:24px; font-weight:700; }
.trust-note { margin:34px 0 0; text-align:center; color:#8a8493; font-size:12px; }
.problem-section { background:#fff; max-width:none; }
.problem-section > * { max-width:var(--max); margin-left:auto; margin-right:auto; }
.section-heading { margin-bottom:76px; }
.section-heading.narrow { max-width:720px; }
.section-heading h2,.form-intro h2 { margin:0; font-size:clamp(38px,5vw,62px); line-height:1.25; letter-spacing:-.055em; }
.section-heading > p:last-child,.form-intro > p:last-child { color:var(--muted); font-size:18px; }
.feature-row { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:100px; padding:80px 0; border-top:1px solid var(--line); }
.feature-row.reverse .feature-copy { order:2; }
.feature-row img { width:310px; justify-self:center; border-radius:36px; box-shadow:0 25px 60px rgba(38,27,84,.13); }
.feature-number { color:var(--purple); font-weight:800; }
.feature-copy h3 { margin:16px 0 12px; font-size:34px; letter-spacing:-.04em; }
.feature-copy p { color:var(--muted); font-size:18px; }
.pipeline { max-width:none; padding-left:max(24px,calc((100vw - var(--max))/2)); padding-right:max(24px,calc((100vw - var(--max))/2)); color:white; background:#171521; }
.pipeline .eyebrow { color:#a99bff; }
.pipeline .section-heading p:last-child,.pipeline-note { color:#bbb5c8; }
.pipeline-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:18px; align-items:stretch; margin:70px 0 50px; }
.pipeline-stage { display:flex; flex-direction:column; gap:14px; padding:26px 22px; background:#221f30; border:1px solid #383241; border-radius:20px; }
.stage-tag { align-self:flex-start; padding:5px 12px; border-radius:999px; background:rgba(143,124,255,.16); color:#a99bff; font-size:13px; font-weight:800; }
.pipeline-node { padding:16px 18px; background:#171521; border:1px solid #383241; border-radius:14px; }
.pipeline-node span { display:block; color:#8f7cff; font-size:12px; font-weight:800; }
.pipeline-node strong { display:block; margin-top:4px; font-size:19px; letter-spacing:-.02em; }
.pipeline-node p { margin:6px 0 0; color:#bbb5c8; font-size:14px; line-height:1.5; }
.pipeline-arrow { align-self:center; color:#8f7cff; font-size:30px; font-weight:800; }
.pipeline-note { max-width:780px; }
.perks { padding-top:100px; padding-bottom:100px; }
.perks-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.perk { display:flex; flex-direction:column; gap:10px; padding:30px 26px; background:var(--lavender); border-radius:18px; }
.perk-badge { align-self:flex-start; padding:6px 14px; border-radius:999px; background:var(--purple); color:#fff; font-size:14px; font-weight:800; letter-spacing:-.01em; }
.perk strong { font-size:20px; letter-spacing:-.03em; }
.perk p { margin:0; color:var(--muted); font-size:15px; }
.intro-perks { margin:22px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.intro-perks li { position:relative; padding-left:26px; font-weight:700; font-size:15px; }
.intro-perks li::before { content:""; position:absolute; left:0; top:4px; width:16px; height:16px; border-radius:50%; background:var(--purple); mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M6.5 12.2 2.8 8.5l1.4-1.4 2.3 2.3 5.3-5.3 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat; }
.validation { padding-top:100px; padding-bottom:100px; }
.validation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.validation-grid div { min-height:190px; padding:32px; background:var(--lavender); border-radius:18px; }
.validation-grid strong,.validation-grid span { display:block; }
.validation-grid strong { color:var(--purple); font-size:42px; letter-spacing:-.05em; }
.validation-grid span { margin-top:24px; font-weight:700; }
.footnote { max-width:900px; margin:26px 0 12px; color:#777282; font-size:12px; }
.text-link { font-weight:800; text-underline-offset:5px; }
.daily { padding-bottom:150px; }
.daily-visual { display:grid; grid-template-columns:280px 1fr 280px; align-items:center; gap:55px; padding:70px; background:#efedff; border-radius:28px; text-align:center; }
.daily-visual img { border-radius:34px; box-shadow:0 25px 55px rgba(38,27,84,.14); }
.daily-visual strong { font-size:30px; }
.daily-visual p { color:var(--muted); }
.application { max-width:none; display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; padding-left:max(24px,calc((100vw - var(--max))/2)); padding-right:max(24px,calc((100vw - var(--max))/2)); background:#f3f1ff; }
.form-intro { position:sticky; top:120px; align-self:start; }
form { padding:42px; background:#fff; border:1px solid var(--line); border-radius:24px; box-shadow:0 25px 60px rgba(38,27,84,.08); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px 16px; }
.form-grid.one-col { grid-template-columns:1fr; }
.wizard-progress { height:6px; margin-bottom:10px; border-radius:999px; background:var(--lavender); overflow:hidden; }
.wp-bar { display:block; width:33%; height:100%; border-radius:999px; background:var(--purple); transition:width .3s ease; }
.wizard-step-label { margin:0 0 26px; color:#8a8493; font-size:13px; font-weight:700; }
.wizard-title { margin:0 0 6px; font-size:24px; letter-spacing:-.04em; }
.wizard-sub { margin:0 0 26px; color:var(--muted); font-size:15px; }
.chip-field { margin-bottom:24px; }
.chip-label { display:block; margin-bottom:10px; font-size:14px; font-weight:700; }
.chip-group { display:flex; flex-wrap:wrap; gap:8px; }
.chip { position:relative; }
.chip input { position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.chip span { display:inline-flex; align-items:center; min-height:44px; padding:0 18px; border:1.5px solid #d8d3df; border-radius:12px; background:#fff; font-size:15px; font-weight:700; color:var(--ink); transition:all .15s ease; }
.chip input:checked + span { border-color:var(--purple); background:var(--lavender); color:var(--purple); }
.chip input:focus-visible + span { outline:3px solid rgba(93,67,245,.25); }
.wizard-nav { display:flex; gap:10px; margin-top:8px; }
.wizard-nav .button { flex:1; }
.wizard-nav #wizard-prev { flex:0 0 110px; }
.button.ghost { border:1.5px solid #d8d3df; background:#fff; color:var(--ink); }
.button.ghost:hover { border-color:var(--purple); color:var(--purple); }
form label:not(.choice) { display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:700; }
form label small { color:#8a8493; font-weight:500; }
input,select { width:100%; min-height:50px; padding:0 14px; border:1px solid #d8d3df; border-radius:9px; background:#fff; color:var(--ink); }
input:focus,select:focus { outline:3px solid rgba(93,67,245,.16); border-color:var(--purple); }
fieldset { margin:28px 0 20px; padding:0; border:0; }
legend { margin-bottom:10px; font-size:14px; font-weight:700; }
.choice { display:flex; align-items:flex-start; gap:9px; margin:10px 20px 10px 0; font-size:14px; }
fieldset .choice { display:inline-flex; }
.choice input { flex:0 0 auto; width:18px; min-height:18px; margin-top:3px; accent-color:var(--purple); }
.choice strong { color:var(--purple); font-size:12px; }
.agreements { padding-top:18px; border-top:1px solid var(--line); }
.honeypot { position:absolute; left:-9999px; }
.turnstile-slot { min-height:68px; margin-top:24px; }
.form-error { min-height:24px; color:#b42318; font-size:14px; font-weight:700; }
.submit { width:100%; }
.form-privacy { margin:14px 0 0; color:#8a8493; text-align:center; font-size:12px; }
.dialog { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:24px; background:rgba(23,21,33,.6); }
.dialog[hidden] { display:none; }
.dialog > div { width:min(430px,100%); padding:42px; border-radius:24px; background:white; text-align:center; }
.dialog img { width:70px; margin:0 auto 20px; }
.dialog h2 { margin:0; }
.dialog p { color:var(--muted); }
.dialog .button { width:100%; margin-top:12px; }
footer { max-width:var(--max); margin:0 auto; padding:70px 24px; }
footer nav { display:flex; flex-wrap:wrap; gap:20px; margin:28px 0; font-size:14px; }
footer > p { color:#8a8493; font-size:12px; }
.policy { max-width:780px; margin:0 auto; padding:90px 24px 120px; }
.policy h1 { margin:0 0 20px; font-size:48px; letter-spacing:-.055em; }
.policy h2 { margin-top:48px; font-size:24px; }
.policy p,.policy li { color:#55505f; }
.policy .notice { padding:22px; border-left:4px solid var(--purple); background:var(--lavender); }
.policy table { width:100%; border-collapse:collapse; font-size:14px; }
.policy th,.policy td { padding:13px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.admin-page { min-height:100vh; background:#f6f5fa; }
.admin-shell { max-width:1400px; margin:0 auto; padding:48px 24px; }
.admin-header { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.admin-header h1 { margin:0; }
.admin-controls { display:flex; gap:10px; flex-wrap:wrap; margin:28px 0; }
.admin-controls select { width:auto; min-width:130px; }
.admin-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:28px; }
.admin-stats div { padding:18px; border-radius:12px; background:white; border:1px solid var(--line); }
.admin-stats strong,.admin-stats span { display:block; }
.admin-stats strong { font-size:28px; }
.admin-stats span { color:var(--muted); font-size:12px; }
.table-wrap { overflow:auto; background:white; border:1px solid var(--line); border-radius:14px; }
.admin-table { width:100%; border-collapse:collapse; white-space:nowrap; font-size:13px; }
.admin-table th,.admin-table td { padding:12px; border-bottom:1px solid var(--line); text-align:left; }
.admin-table select { min-height:36px; padding:0 8px; }
.admin-table input { min-height:36px; min-width:180px; }
@media (max-width:900px) {
  .section { padding-top:85px; padding-bottom:85px; }
  .hero { grid-template-columns:1fr; gap:50px; padding-top:70px; }
  .pipeline-flow { grid-template-columns:1fr; }
  .pipeline-arrow { transform:rotate(90deg); justify-self:center; }
  .perks-grid { grid-template-columns:1fr 1fr; }
  .phone-stage { min-height:540px; max-width:560px; width:100%; margin:auto; }
  .trust-grid,.feature-row,.application { grid-template-columns:1fr; }
  .feature-row.reverse .feature-copy { order:0; }
  .daily-visual { grid-template-columns:1fr 1fr; padding:34px; }
  .daily-visual > div { grid-column:1 / -1; grid-row:1; }
  .form-intro { position:static; }
  .admin-stats { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) {
  .nav { height:62px; }
  .nav-cta { font-size:12px; padding:8px 11px; }
  .hero { display:block; }
  .hero-copy { min-height:calc(100svh - 150px); display:flex; flex-direction:column; justify-content:center; }
  .hero h1 { font-size:48px; }
  .hero-lead { font-size:17px; }
  .phone-stage { min-height:450px; margin-top:60px; }
  .phone { width:220px; border-width:6px; border-radius:32px; }
  .phone-front { right:3px; }
  .trust-grid { gap:42px; }
  .program-logos { flex-direction:column; gap:20px; }
  .section-heading h2,.form-intro h2,.policy h1 { font-size:36px; }
  .feature-row { gap:35px; padding:55px 0; }
  .validation-grid { grid-template-columns:1fr; }
  .validation-grid div { min-height:140px; }
  .daily-visual { grid-template-columns:1fr; }
  .daily-visual > div { grid-column:auto; grid-row:auto; }
  form { padding:24px 18px; }
  .form-grid { grid-template-columns:1fr; }
  .perks-grid { grid-template-columns:1fr; }
  .chip span { min-height:42px; padding:0 14px; font-size:14px; }
  .admin-stats { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
