  :root{
    --teal:#0EA5A0; --teal-d:#0D7A76; --teal-dd:#0A4F4C; --teal-l:#2DD4CF; --mint:#E6F6F4;
    --cream:#FBF8F1; --paper:#FFFFFF; --ink:#111827; --ink2:#374151; --ink3:#6B7280; --line:#E7E5DF;
    --r-xl:32px; --r-lg:24px; --r-md:16px; --pill:999px;
    --wrap:1120px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;word-break:keep-all;line-height:1.5}
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}
  .wrap{width:min(var(--wrap),calc(100% - 48px));margin:0 auto}
  section{position:relative}

  /* ---------- Nav (pill style) ---------- */
  .nav{position:fixed;top:16px;left:0;right:0;z-index:50;pointer-events:none}
  .nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .pill{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 18px;border-radius:var(--pill);background:rgba(255,255,255,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(17,24,39,.08);font-weight:600;font-size:15px;transition:background .3s}
  .brand img{width:26px;height:26px;border-radius:7px}
  .menu{gap:4px;padding:0 6px}
  .menu a{padding:8px 14px;border-radius:var(--pill);color:var(--ink2);font-weight:500}
  .menu a:hover{background:rgba(17,24,39,.06);color:var(--ink)}
  .cta-pill{background:var(--ink);color:#fff;border-color:var(--ink)}
  .cta-pill:hover{background:var(--teal-d);border-color:var(--teal-d)}
  .nav.on-dark .pill:not(.cta-pill){background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);color:#fff}
  .nav.on-dark .menu a{color:rgba(255,255,255,.85)}
  .nav.on-dark .menu a:hover{background:rgba(255,255,255,.12);color:#fff}
  .nav.on-dark .cta-pill{background:#fff;color:var(--ink);border-color:#fff}

  /* ---------- Buttons ---------- */
  .btn{display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 24px;border-radius:var(--pill);font-weight:600;font-size:16px;transition:transform .2s,background .2s}
  .btn:hover{transform:translateY(-1px)}
  .btn-white{background:#fff;color:var(--ink)}
  .btn-ghost{border:1px solid rgba(255,255,255,.4);color:#fff}
  .btn-ghost:hover{background:rgba(255,255,255,.1)}
  .btn-ink{background:var(--ink);color:#fff}
  .btn-line{border:1px solid var(--line);background:#fff;color:var(--ink)}

  /* ---------- Hero ---------- */
  .hero{padding:12px}
  .hero-panel{position:relative;overflow:hidden;border-radius:var(--r-xl);min-height:min(860px,100vh);padding:150px 0 0;color:#fff;
    background:radial-gradient(90% 70% at 78% 30%,rgba(45,212,207,.45) 0%,rgba(45,212,207,0) 60%),
               radial-gradient(70% 60% at 10% 100%,rgba(14,165,160,.55) 0%,rgba(14,165,160,0) 70%),
               linear-gradient(160deg,#0B5E5A 0%,#0A4F4C 55%,#083B39 100%)}
  .waves{position:absolute;left:0;right:0;bottom:0;width:100%;height:46%;opacity:.5;pointer-events:none}
  .hero-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
  .chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--pill);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);font-size:14px;font-weight:500}
  .dot{width:8px;height:8px;border-radius:50%;background:var(--teal-l);box-shadow:0 0 0 4px rgba(45,212,207,.25);animation:pulse 2s infinite}
  @keyframes pulse{50%{box-shadow:0 0 0 8px rgba(45,212,207,0)}}
  .hero h1{margin-top:28px;font-size:clamp(44px,6.4vw,84px);line-height:1.08;letter-spacing:-.035em;font-weight:700}
  .hero h1 .mute{color:rgba(255,255,255,.5)}
  .hero-desc{margin-top:28px;max-width:470px;font-size:19px;line-height:1.65;color:rgba(255,255,255,.72)}
  .hero-desc b{color:#fff;font-weight:600}
  .hero-btns{margin-top:32px;display:flex;flex-wrap:wrap;gap:10px}
  .hero-phones{position:relative;height:620px}
  .hero-phones .phone{position:absolute}
  .hero-phones .p1{width:280px;left:4%;top:40px;transform:rotate(-6deg)}
  .hero-phones .p2{width:280px;right:2%;top:0;transform:rotate(5deg)}

  /* ---------- Phone mockup ---------- */
  .phone{border-radius:44px;padding:10px;background:#0c0f14;box-shadow:0 40px 80px -24px rgba(0,0,0,.45),0 10px 24px rgba(0,0,0,.18);position:relative}
  .phone::before{content:"";position:absolute;top:18px;left:50%;transform:translateX(-50%);width:30%;height:22px;background:#000;border-radius:20px;z-index:2}
  .phone img{border-radius:35px;width:100%;aspect-ratio:1170/2532;object-fit:cover;background:#EDF4F3}

  /* ---------- Section heads ---------- */
  .sec{padding:140px 0}
  .eyebrow{font-size:14px;font-weight:600;color:var(--teal-d);letter-spacing:.02em}
  .h2{font-size:clamp(34px,4.4vw,56px);line-height:1.15;letter-spacing:-.03em;font-weight:700}
  .lead{margin-top:20px;max-width:560px;font-size:19px;line-height:1.65;color:var(--ink3)}

  /* ---------- Tag strip ---------- */
  .strip{padding:72px 0 0;text-align:center}
  .strip p{font-size:clamp(22px,2.6vw,32px);font-weight:700;letter-spacing:-.02em}
  .strip p span{color:var(--ink3);font-weight:500}
  .tags{margin-top:28px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
  .tag{height:44px;padding:0 20px;display:inline-flex;align-items:center;border-radius:var(--pill);background:#fff;border:1px solid var(--line);font-size:16px;font-weight:500;color:var(--ink2)}
  .tag i{font-style:normal;color:var(--teal);margin-right:4px}

  /* ---------- Statement ---------- */
  .statement{padding:150px 0 40px}
  .statement .big{font-size:clamp(30px,4vw,52px);line-height:1.35;letter-spacing:-.03em;font-weight:700;max-width:960px}
  .statement .big .mute{color:#B7B3A8}
  .pain{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .pain div{padding:28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
  .pain b{display:block;font-size:20px;letter-spacing:-.01em;margin-bottom:10px}
  .pain p{color:var(--ink3);font-size:16px;line-height:1.65}

  /* ---------- How it works ---------- */
  .steps{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .step{border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}
  .step-top{padding:28px 28px 26px;border-bottom:1px solid var(--line)}
  .num{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:14px;color:var(--ink3);margin-bottom:22px}
  .step h3{font-size:26px;letter-spacing:-.02em}
  .step p{margin-top:8px;color:var(--ink3);font-size:16px}
  .step-shot{height:330px;overflow:hidden;display:flex;justify-content:center;padding-top:28px;background:linear-gradient(180deg,#fff, var(--mint))}
  .step-shot .phone{width:230px;height:max-content;border-radius:38px;padding:8px}
  .step-shot .phone img{border-radius:31px}
  .and{margin-top:36px;text-align:center;color:var(--ink3);font-size:16px}
  .and span{display:inline-block;margin:4px 3px;padding:6px 14px;border-radius:var(--pill);background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:500}

  /* ---------- Features (tabs + phone) ---------- */
  .feat-panel{border-radius:var(--r-xl);background:#F1EEE6;padding:96px 0}
  .feat-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
  .feat-tabs{margin-top:40px;display:flex;flex-wrap:wrap;gap:8px}
  .feat-tabs button{height:48px;padding:0 20px;border-radius:var(--pill);border:1px solid #DCD8CE;background:#fff;font:inherit;font-size:16px;font-weight:500;color:var(--ink2);cursor:pointer;transition:all .2s}
  .feat-tabs button:hover{border-color:var(--ink3)}
  .feat-tabs button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
  .feat-tabs button.soon{border-style:dashed;color:var(--ink3)}
  .feat-body{margin-top:80px;min-height:150px}
  .feat-body h3{font-size:26px;letter-spacing:-.02em}
  .feat-body p{margin-top:14px;font-size:18px;line-height:1.7;color:var(--ink3);max-width:520px}
  .feat-phone{justify-self:center;width:300px}
  .feat-phone img{transition:opacity .25s}

  /* ---------- Stats (dark glass) ---------- */
  .stats{padding:12px}
  .stats-panel{border-radius:var(--r-xl);overflow:hidden;position:relative;color:#fff;padding:110px 0 90px;
    background:radial-gradient(60% 80% at 85% 20%,rgba(45,212,207,.35),transparent 60%),linear-gradient(170deg,#0D2F2D,#0A1F1E)}
  .stats-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
  .stats h2{font-size:clamp(34px,4vw,52px);line-height:1.18;letter-spacing:-.03em}
  .stats .lead{color:rgba(255,255,255,.6)}
  .glass{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .glass div{padding:28px;border-radius:var(--r-lg);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px)}
  .glass strong{display:block;font-size:clamp(40px,4.6vw,60px);letter-spacing:-.03em;line-height:1.05;font-weight:700}
  .glass strong small{font-size:.5em;font-weight:600;margin-left:2px}
  .glass span{display:block;margin-top:14px;font-size:16px;font-weight:600}
  .glass em{display:block;font-style:normal;font-size:14px;color:rgba(255,255,255,.55);margin-top:2px}
  .src{margin-top:48px;font-size:12.5px;color:rgba(255,255,255,.4);line-height:1.7}

  /* ---------- Compare ---------- */
  .cmp{margin-top:56px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);overflow:hidden}
  .cmp table{width:100%;border-collapse:collapse;font-size:16px}
  .cmp th,.cmp td{padding:20px 24px;text-align:center;border-bottom:1px solid var(--line)}
  .cmp tr:last-child td{border-bottom:0}
  .cmp th{font-weight:600;color:var(--ink3);font-size:15px}
  .cmp th:first-child,.cmp td:first-child{text-align:left;color:var(--ink);font-weight:500}
  .cmp .us{background:var(--mint);color:var(--teal-dd);font-weight:700}
  .cmp td.us{color:var(--teal-d)}
  .y{font-weight:700;color:var(--teal-d)} .n{color:#C9C5BA} .h{color:var(--ink3);font-size:14px}

  /* ---------- Scenes (cards) ---------- */
  .scenes-head{display:flex;justify-content:space-between;align-items:end;gap:24px}
  .arrows{display:flex;gap:10px}
  .arrows button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:20px;color:var(--ink)}
  .arrows button:hover{border-color:var(--ink3)}
  .scenes{margin-top:56px;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(24px,calc(50vw - 560px)) 8px;scroll-padding-left:max(24px,calc(50vw - 560px));scrollbar-width:none}
  .scenes::-webkit-scrollbar{display:none}
  .scene{flex:0 0 360px;scroll-snap-align:start}
  .scene-card{height:340px;border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
  .scene-card .when{align-self:flex-start;height:36px;padding:0 14px;border-radius:var(--pill);display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.7);font-weight:600;font-size:15px}
  .scene-card .when i{font-style:normal;font-weight:500;color:var(--ink3);font-size:13px}
  .bubble{background:#fff;border-radius:20px 20px 20px 6px;padding:18px 20px;font-size:16.5px;line-height:1.6;box-shadow:0 10px 30px -12px rgba(0,0,0,.15)}
  .bubble .mic{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink3);margin-bottom:8px}
  .bubble .mic::before{content:"";width:8px;height:8px;border-radius:50%;background:#EF4444}
  .out{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}
  .out span{font-size:13px;padding:4px 10px;border-radius:var(--pill);background:rgba(255,255,255,.75);color:var(--teal-dd);font-weight:600}
  .scene p.cap{margin-top:16px;color:var(--ink3);font-size:16px;line-height:1.6;padding:0 4px}
  .c1{background:#DCEFEC}.c2{background:#EDE6D6}.c3{background:#E3E4EF}.c4{background:#F2E1D8}.c5{background:#DDE9DA}

  /* ---------- Principles ---------- */
  .prin{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .prin > div{padding:32px 28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
  .prin .ico{width:44px;height:44px;border-radius:12px;background:var(--mint);display:grid;place-items:center;margin-bottom:22px}
  .prin .ico svg{width:22px;height:22px;stroke:var(--teal-d);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .prin b{display:block;font-size:20px;letter-spacing:-.01em;margin-bottom:10px}
  .prin p{color:var(--ink3);font-size:16px;line-height:1.65}

  /* ---------- Story ---------- */
  .story{padding:40px 0 140px}
  .story-card{border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);padding:72px;display:grid;grid-template-columns:.8fr 1.2fr;gap:56px}
  .story-card blockquote{font-size:clamp(20px,2vw,24px);line-height:1.75;letter-spacing:-.01em;color:var(--ink2)}
  .story-card blockquote b{color:var(--ink)}
  .story-card .who{margin-top:28px;font-size:15px;color:var(--ink3)}

  /* ---------- FAQ ---------- */
  .faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px}
  details{border-bottom:1px solid var(--line);padding:24px 0}
  details:first-child{border-top:1px solid var(--line)}
  summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;font-size:19px;font-weight:600;letter-spacing:-.01em}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+";font-weight:400;font-size:24px;line-height:1;color:var(--ink3);transition:transform .2s}
  details[open] summary::after{transform:rotate(45deg)}
  details p{margin-top:14px;color:var(--ink3);font-size:17px;line-height:1.7;max-width:620px}

  /* ---------- Final CTA ---------- */
  .final{padding:12px}
  .final-panel{border-radius:var(--r-xl);overflow:hidden;position:relative;color:#fff;text-align:center;padding:150px 24px 160px;
    background:radial-gradient(80% 70% at 50% 0%,rgba(45,212,207,.5),transparent 60%),linear-gradient(180deg,#0B5E5A,#083B39)}
  .final h2{font-size:clamp(38px,5.4vw,72px);line-height:1.12;letter-spacing:-.035em}
  .final h2 .mute{color:rgba(255,255,255,.5)}
  .final p{margin:22px auto 0;max-width:520px;font-size:19px;color:rgba(255,255,255,.7);line-height:1.65}
  .final .hero-btns{justify-content:center}

  /* ---------- Footer ---------- */
  footer{padding:80px 0 48px}
  .foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px}
  .foot .b{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px}
  .foot .b img{width:34px;height:34px;border-radius:9px}
  .foot .tl{margin-top:14px;color:var(--ink3);font-size:15px;max-width:280px}
  .foot h4{font-size:14px;color:var(--ink3);font-weight:500;margin-bottom:14px}
  .foot ul{list-style:none;display:grid;gap:10px;font-size:15px}
  .foot ul a:hover{color:var(--teal-d)}
  .copy{margin-top:64px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--ink3);font-size:13.5px}

  /* ---------- Reveal ---------- */
  .rv{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
  .rv.in{opacity:1;transform:none}

  /* ---------- Responsive ---------- */
  @media (max-width:960px){
    .menu{display:none}
    .hero-panel{padding-top:120px}
    .hero-grid,.feat-grid,.stats-grid,.faq-grid,.story-card{grid-template-columns:1fr}
    .hero-phones{height:460px}
    .hero-phones .p1,.hero-phones .p2{width:210px}
    .hero-phones .p1{left:6%} .hero-phones .p2{right:6%}
    .pain,.steps,.prin{grid-template-columns:1fr}
    .feat-body{margin-top:40px}
    .story-card{padding:40px 28px}
    .foot{grid-template-columns:1fr 1fr}
    .sec{padding:100px 0}
    .feat-phone{width:240px}
    .step-shot .phone{width:200px}
  }
  @media (max-width:560px){
    .cmp th,.cmp td{padding:14px 10px;font-size:14px}
    .glass{grid-template-columns:1fr}
    .scene{flex-basis:300px}
    .copy{flex-direction:column;gap:8px}
  }
  @media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.dot{animation:none}}

  /* ---------- Plans (바다 무료 / 항해사 유료) ---------- */
  .plans{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .plan{border-radius:var(--r-xl);padding:40px;display:flex;flex-direction:column;border:1px solid var(--line);background:#fff}
  .plan.dark{background:linear-gradient(170deg,#0D2F2D,#0A1F1E);color:#fff;border-color:transparent}
  .plan .pn{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .plan .pn b{font-size:24px;letter-spacing:-.02em}
  .badge{height:30px;padding:0 12px;border-radius:var(--pill);display:inline-flex;align-items:center;font-size:13px;font-weight:600;background:var(--mint);color:var(--teal-dd)}
  .plan.dark .badge{background:rgba(255,255,255,.12);color:#fff}
  .plan .price{margin-top:28px;font-size:clamp(40px,4.4vw,56px);font-weight:700;letter-spacing:-.03em;line-height:1}
  .plan .price small{font-size:18px;font-weight:500;color:var(--ink3);margin-left:6px;letter-spacing:0}
  .plan.dark .price{font-size:clamp(26px,2.6vw,32px);line-height:1.3}
  .plan .desc{margin-top:12px;color:var(--ink3);font-size:16px;line-height:1.6}
  .plan.dark .desc{color:rgba(255,255,255,.6)}
  .plan ul{list-style:none;margin:28px 0 32px;display:grid;gap:14px;font-size:16px}
  .plan li{display:flex;gap:12px;align-items:flex-start;line-height:1.5}
  .plan li::before{content:"";flex:0 0 20px;height:20px;margin-top:1px;border-radius:50%;background:var(--mint) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M6 10.5l2.5 2.5L14 7.5' stroke='%230D7A76' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/20px no-repeat}
  .plan.dark li::before{background-color:rgba(45,212,207,.18);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M6 10.5l2.5 2.5L14 7.5' stroke='%232DD4CF' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>")}
  .plan li span{color:var(--ink3);font-size:14px;display:block}
  .plan.dark li span{color:rgba(255,255,255,.5)}
  .plan .foot-note{margin-top:auto;font-size:14px;color:var(--ink3)}
  .plan.dark .foot-note{color:rgba(255,255,255,.5)}
  .plan .btn{align-self:flex-start;margin-top:auto}
  .plans-note{margin-top:20px;text-align:center;font-size:14px;color:var(--ink3)}

  /* ---------- Join page ---------- */
  .join-panel{padding:140px 0 72px;min-height:auto}
  .join-grid{display:grid;grid-template-columns:1fr 520px;gap:56px;align-items:start}
  .facts{margin-top:40px;display:grid;gap:10px;max-width:470px}
  .facts div{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:16px 20px;border-radius:var(--r-md);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:16px;line-height:1.5}
  .facts dt{color:rgba(255,255,255,.55)}
  .facts dd{color:#fff;font-weight:500}
  .form-card{background:#fff;color:var(--ink);border-radius:var(--r-lg);padding:36px;box-shadow:0 40px 80px -30px rgba(0,0,0,.45)}
  .form-card h2{font-size:24px;letter-spacing:-.02em}
  .form-card .sub{margin-top:6px;font-size:15px;color:var(--ink3)}
  .fld{margin-top:22px}
  .fld > label,.fld > .lb{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:var(--ink2)}
  .fld .req{color:var(--teal)}
  .fld .opt{color:var(--ink3);font-weight:400}
  .inp{width:100%;height:52px;padding:0 16px;border-radius:14px;border:1px solid #DDDAD2;background:#FCFBF8;font:inherit;font-size:16px;color:var(--ink);transition:border-color .2s,box-shadow .2s}
  textarea.inp{height:96px;padding:14px 16px;resize:vertical;line-height:1.5}
  select.inp{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%236B7280' stroke-width='1.6' fill='none'/></svg>");background-repeat:no-repeat;background-position:right 16px center}
  .inp:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 4px rgba(14,165,160,.15);background:#fff}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .opts{display:flex;flex-wrap:wrap;gap:8px}
  .opts label{position:relative;cursor:pointer}
  .opts input{position:absolute;opacity:0;pointer-events:none}
  .opts span{display:inline-flex;align-items:center;height:44px;padding:0 16px;border-radius:var(--pill);border:1px solid #DDDAD2;background:#FCFBF8;font-size:15px;font-weight:500;color:var(--ink2);transition:all .15s}
  .opts input:checked + span{background:var(--ink);border-color:var(--ink);color:#fff}
  .opts input:focus-visible + span{box-shadow:0 0 0 4px rgba(14,165,160,.25)}
  .join-panel h1{font-size:clamp(40px,4.8vw,66px)}
  .fld > label.check{display:flex;font-size:15px;font-weight:400;margin-bottom:0}
  .check{display:flex;gap:12px;align-items:flex-start;margin-top:18px;font-size:15px;line-height:1.5;color:var(--ink2);cursor:pointer}
  .check input{flex:0 0 20px;width:20px;height:20px;margin-top:1px;accent-color:var(--teal)}
  .terms{margin:8px 0 0 32px;font-size:13px;color:var(--ink3)}
  .terms summary{font-size:13px;font-weight:500;color:var(--ink3);text-decoration:underline;display:inline}
  .terms summary::after{content:none}
  .terms[open]{padding:0}
  .terms div{margin-top:8px;padding:14px 16px;border-radius:12px;background:#F6F4EE;line-height:1.7}
  details.terms{border:0;padding:0}
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
  .submit{width:100%;justify-content:center;margin-top:28px;height:56px;font-size:17px;border:0;cursor:pointer;font-family:inherit}
  .submit[disabled]{opacity:.6;cursor:wait}
  .err{margin-top:14px;font-size:14px;color:#DC2626;min-height:20px}
  .fld.bad .inp,.fld.bad .opts span{border-color:#F3A6A6}
  .done{text-align:center;padding:24px 4px 8px}
  .done .ok{width:64px;height:64px;border-radius:50%;background:var(--mint);display:grid;place-items:center;margin:0 auto 22px}
  .done .ok svg{width:30px;height:30px;stroke:var(--teal-d);stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .done h2{font-size:26px}
  .done p{margin-top:12px;color:var(--ink3);font-size:16px;line-height:1.7}
  .done .no{margin-top:22px;display:inline-flex;gap:8px;align-items:center;height:40px;padding:0 16px;border-radius:var(--pill);background:#F6F4EE;font-size:14px;color:var(--ink2)}
  .done .no b{color:var(--ink);letter-spacing:.02em}
  .steps-plain{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .steps-plain > div{padding:32px 28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
  .steps-plain h3{font-size:22px;letter-spacing:-.02em}
  .steps-plain p{margin-top:8px;color:var(--ink3);font-size:16px;line-height:1.65}

  @media (max-width:960px){
    .plans,.join-grid,.steps-plain{grid-template-columns:1fr}
    .plan{padding:32px 26px}
    .join-panel{padding-top:110px}
    .form-card{padding:28px 22px}
  }
  @media (max-width:420px){ .row2{grid-template-columns:1fr} }

  .navi-tags{margin:28px 0 32px;display:flex;flex-wrap:wrap;gap:8px}
  .navi-tags span{height:36px;padding:0 14px;border-radius:var(--pill);display:inline-flex;align-items:center;font-size:14px;font-weight:500;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.85)}

  /* ---------- 항해사 explainer ---------- */
  .navi-sec{margin-top:16px;border-radius:var(--r-xl);padding:48px;background:linear-gradient(170deg,#0D2F2D,#0A1F1E);color:#fff}
  .navi-head{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:end}
  .navi-head .badge{background:rgba(255,255,255,.12);color:#fff}
  .navi-head h3{margin-top:14px;font-size:clamp(26px,2.8vw,36px);letter-spacing:-.025em;line-height:1.25}
  .navi-head p{color:rgba(255,255,255,.62);font-size:17px;line-height:1.7}
  .navi-grid{margin-top:40px;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
  .navi-grid div{padding:26px 22px;border-radius:var(--r-lg);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
  .navi-grid .n{font-size:13px;font-weight:600;color:var(--teal-l);letter-spacing:.04em}
  .navi-grid b{display:block;margin-top:14px;font-size:18px;letter-spacing:-.01em}
  .navi-grid p{margin-top:10px;font-size:15px;line-height:1.65;color:rgba(255,255,255,.62)}
  .navi-rule{margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:14.5px;color:rgba(255,255,255,.55)}
  @media (max-width:960px){ .navi-head,.navi-grid{grid-template-columns:1fr} .navi-sec{padding:32px 22px} }
  @media (min-width:961px) and (max-width:1100px){ .navi-grid{grid-template-columns:1fr 1fr} }

  /* ---------- Language toggle ---------- */
  .nav-r{display:flex;align-items:center;gap:8px}
  .lang-toggle{cursor:pointer;font-family:inherit;color:var(--ink);min-width:72px;justify-content:center}
  .lang-toggle:hover{background:#fff}
  .nav.on-dark .lang-toggle:hover{background:rgba(255,255,255,.24)}
  html[lang="en"] body{word-break:normal}
  html[lang="en"] .hero h1{font-size:clamp(40px,5.4vw,72px)}
