:root{
  --brand:#6B3DF2; --brand-2:#8E6BFF; --brand-deep:#4B22D6;
  --mint:#4FD8C6; --yellow:#FFC828;
  --ink:#101223; --ink-2:#4A5268; --muted:#8F98AF; --line:#E6E7EC;
  --navy:#0E0B24; --dark:#0B0C12; --bg:#ffffff;
  --radius:20px; --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Pretendard Variable',Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden;word-break:keep-all;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;border:0;background:none;cursor:pointer;color:inherit}
.inner{width:min(1280px,100% - 80px);margin:0 auto}

/* ---------- header ---------- */
.hd{position:fixed;inset:0 0 auto;z-index:50;height:76px;display:flex;align-items:center;transition:background .35s,box-shadow .35s,transform .4s var(--ease)}
.hd .inner{display:flex;align-items:center;justify-content:space-between}
.hd .logo img{height:26px;width:auto;filter:brightness(0) invert(1);transition:filter .35s}
.hd.is-solid{background:rgba(255,255,255,.92);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
.hd.is-solid .logo img{filter:none}
.hd.is-dark{background:transparent;box-shadow:none}
.hd.is-dark .logo img{filter:brightness(0) invert(1)}
.hd-right{display:flex;align-items:center;gap:14px}
.hd-dl{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:999px;background:var(--brand);color:#fff;font-weight:700;font-size:14px;transition:background .2s,transform .2s}
.hd-dl:hover{background:var(--brand-deep);transform:translateY(-1px)}
.hd-dl{width:132px;justify-content:center;padding:0}
.hd-right{gap:10px}
.hd-agent{background:#fff;color:var(--brand);box-shadow:inset 0 0 0 1.5px var(--brand)}
.hd-agent:hover{background:#F2EEFF}
.burger{width:40px;height:40px;display:grid;place-items:center;color:#fff;transition:color .35s}
.hd.is-solid .burger{color:var(--ink)}
.hd.is-dark .burger{color:#fff}
.burger span{display:block;width:22px;height:2px;background:currentColor;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:2px;background:currentColor}
.burger span::before{top:-7px}.burger span::after{top:7px}

/* full menu */
.menu{position:fixed;inset:0;z-index:60;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:0 8vw;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.menu.is-open{opacity:1;visibility:visible}
.menu a{font-size:clamp(32px,5vw,64px);font-weight:800;letter-spacing:-.02em;line-height:1.35;opacity:.45;transition:opacity .2s,transform .3s var(--ease);display:inline-block}
.menu a:hover{opacity:1;transform:translateX(8px)}
.menu-close{position:absolute;top:18px;right:40px;width:40px;height:40px;font-size:30px;color:#fff}

/* side dots */
.dots{position:fixed;right:28px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:12px}
.dots button{width:8px;height:8px;border-radius:50%;background:rgba(140,140,150,.45);transition:transform .3s,background .3s}
.dots button.on{background:var(--brand);transform:scale(1.35)}
.dots.light button{background:rgba(255,255,255,.4)}
.dots.light button.on{background:#fff}

/* ---------- 1. hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:#000;color:#fff}
.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.35) 40%,rgba(0,0,0,.6) 100%),rgba(10,8,30,.25)}
.hero-copy{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:26px;padding:0 20px}
.hero-sub{font-size:clamp(18px,2.2vw,28px);font-weight:700;letter-spacing:-.01em}
.hero-logo{width:clamp(220px,30vw,420px);filter:brightness(0) invert(1)}
.hero-copy > *{opacity:0;transform:translateY(24px);animation:up 1.1s var(--ease) forwards}
.hero-copy > *:nth-child(2){animation-delay:.25s}
.hero-copy > *:nth-child(3){animation-delay:.5s}
.hero-copy > *:nth-child(4){animation-delay:.75s}
.hero-stores{margin-top:14px;justify-content:center}
.hero-stores .store.dark{background:rgba(16,18,35,.55);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(8px)}
@keyframes up{to{opacity:1;transform:none}}
.hero-tag{font-size:15px;opacity:.75;font-weight:500}
.scroll-cue{position:absolute;z-index:2;left:50%;bottom:34px;transform:translateX(-50%);width:44px;height:44px;color:#fff;animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,10px)}}

/* ---------- 2. story (pinned circle) ---------- */
.story{position:relative;height:340vh;background:#fff}
.story .stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center}
.story-head{position:absolute;top:16vh;left:0;right:0;text-align:center;font-size:clamp(26px,3.6vw,48px);font-weight:800;line-height:1.35;letter-spacing:-.025em;padding:0 20px}
.story-head em{font-style:normal;color:var(--brand)}
.app{position:absolute;width:184px;height:184px;border-radius:44px;background:#fff;
  box-shadow:0 30px 60px -20px rgba(40,20,120,.28),0 6px 18px rgba(0,0,0,.06),0 0 0 1px rgba(16,18,35,.04)}
.app-fill{position:absolute;inset:0;z-index:1;opacity:0;--ang:200deg;
  background:linear-gradient(var(--ang),var(--mint) -10%,var(--brand-2) 22%,var(--brand) 52%,var(--brand-deep) 100%)}
.app-logo{position:absolute;z-index:1;width:125px;height:auto;max-width:none}
.orb-text{z-index:2}
.orb-text{position:absolute;left:0;right:0;padding:0 16px;text-align:center;white-space:nowrap;color:#fff;font-size:clamp(11px,min(3.3vw,4vh),36px);font-weight:700;line-height:1.42;letter-spacing:-.025em}
.orb-text span{display:block;margin:.7em 0;opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.orb-text.show span{opacity:1;transform:none}
.orb-text.show span:nth-child(2){transition-delay:.12s}
.orb-text.show span:nth-child(3){transition-delay:.24s}
.orb-text.show span:nth-child(4){transition-delay:.36s}

/* ---------- shared section bits ---------- */
.sec{position:relative;overflow:hidden}
.badge{display:inline-block;padding:6px 12px;border-radius:6px;font-size:14px;font-weight:700;letter-spacing:.01em;background:#fff;color:var(--ink)}
.badge.dark{background:var(--ink);color:#fff}
.badge.glass{background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(6px)}
.h2{margin-top:18px;font-size:clamp(28px,3.4vw,46px);font-weight:800;line-height:1.3;letter-spacing:-.03em}
.desc{margin-top:18px;font-size:clamp(15px,1.2vw,18px);line-height:1.65;opacity:.75}
.note{margin-top:8px;font-size:clamp(10px,.75vw,11px);line-height:1.5;opacity:.5}
.more{margin-top:34px;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border:1px solid currentColor;border-radius:999px;font-size:14px;font-weight:600;transition:background .25s,color .25s}
.more:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.on-dark .more:hover{background:#fff;color:var(--ink);border-color:#fff}
.more svg{width:14px;height:14px}

/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}.rv.d3{transition-delay:.36s}

/* phone mockup — screens intentionally empty (slot for demo video/image) */
.phone{position:relative;width:320px;aspect-ratio:9/19.3;border-radius:52px;padding:11px;background:linear-gradient(145deg,#2a2a33,#0c0c10);box-shadow:0 0 0 2px #3a3a44 inset,0 50px 90px -30px rgba(0,0,0,.55)}
.phone::before{content:"";position:absolute;right:-3px;top:24%;width:3px;height:70px;border-radius:2px;background:#2a2a33}
.phone .screen{position:relative;width:100%;height:100%;border-radius:42px;overflow:hidden;background:#15161f}
.phone .island{position:absolute;z-index:3;top:12px;left:50%;transform:translateX(-50%);width:96px;height:28px;border-radius:20px;background:#000}
.screen-slot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- 3. video tour (channel style) ---------- */
.tour{color:#fff;background:linear-gradient(115deg,var(--brand-deep) 0%,var(--brand) 38%,#7f62ff 62%,var(--mint) 120%);padding:140px 0 0}
.tour .inner{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:40px;min-height:760px}
.tour .txt{align-self:start;padding-top:20px}
.tour .badge{color:var(--brand)}
.tour .stagewrap{position:relative;height:100%;display:flex;justify-content:center;align-items:flex-end}
.tour .phone{width:340px;margin-bottom:-120px}
.tour::before{content:"";position:absolute;width:900px;height:900px;border-radius:50%;right:-180px;top:120px;background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,0) 65%)}
.float{position:absolute;width:86px;height:86px;border-radius:24px;display:grid;place-items:center;box-shadow:0 20px 40px -12px rgba(0,0,0,.35);animation:floaty 5s ease-in-out infinite}
.float svg{width:44px;height:44px}
.float.f1{left:-6%;bottom:260px;background:#fff;color:var(--brand)}
.float.f2{left:12%;bottom:150px;background:var(--ink);color:#fff;animation-delay:-1.4s;width:74px;height:74px}
.float.f3{right:-2%;bottom:330px;background:var(--yellow);color:var(--ink);animation-delay:-2.6s}
.float.f4{right:8%;bottom:140px;background:#fff;color:var(--brand);animation-delay:-3.3s;width:70px;height:70px}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-16px) rotate(2deg)}}

/* ---------- 4. agents (IP style carousel) ---------- */
.agents{background:var(--dark);color:#fff;padding:240px 0 140px}
.agents .txt{width:min(560px,100%);margin-left:auto;margin-right:12%}
.reel{margin-top:80px;perspective:1600px}
.reel-track{display:flex;gap:22px;width:max-content;animation:marquee 46s linear infinite}
.reel:hover .reel-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.card-v{position:relative;width:260px;aspect-ratio:3/4.1;border-radius:18px;overflow:hidden;flex:none;background:linear-gradient(160deg,#2b2450,#141327);border:1px solid rgba(255,255,255,.06);transition:transform .5s var(--ease)}
.card-v:hover{transform:translateY(-10px)}
.card-v::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.7))}
.card-v .lbl{position:absolute;z-index:2;left:20px;right:20px;bottom:20px}
.card-v .lbl b{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em}
.card-v .lbl small{display:block;margin-top:6px;font-size:13px;opacity:.65}
.card-v .ph{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.12)}
.card-v .ph svg{width:56px;height:56px}
/* 사진 하단 20%가 보라색 띠 → 이름이 그 위에 오도록 아래 기준 정렬, 어두운 그라데이션 제거 */
.card-v .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom}
.card-v:has(.photo)::after{top:auto;height:36%;z-index:1;
  background:linear-gradient(115deg,var(--brand-deep) 0%,var(--brand) 45%,var(--brand-2) 82%,var(--mint) 135%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 44%);mask-image:linear-gradient(180deg,transparent 0%,#000 44%)}
.card-v:has(.photo) .lbl{bottom:16px}
.card-v:nth-child(4n+2){background:linear-gradient(160deg,#3b2a8a,#16132e)}
.card-v:nth-child(4n+3){background:linear-gradient(160deg,#1d3d4a,#121826)}
.card-v:nth-child(4n){background:linear-gradient(160deg,#4a2d5e,#151226)}

/* ---------- 5. AI (phone + soft bubbles) ---------- */
.ai{background:#fff;padding:160px 0 140px}
.ai .inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px}
.aiwrap{position:relative;display:flex;justify-content:center;align-items:center;min-height:760px}
.blob{position:absolute;border-radius:50%;animation:drift 9s ease-in-out infinite}
.blob.k1{width:340px;height:380px;left:2%;top:8%;background:linear-gradient(150deg,#ece8ff,#d8cffc)}
.blob.k2{width:220px;height:220px;right:4%;top:2%;background:var(--brand);animation-delay:-3s}
.blob.k3{width:180px;height:200px;right:0;bottom:6%;background:var(--mint);animation-delay:-5s}
.blob.k4{width:120px;height:120px;left:10%;bottom:4%;background:linear-gradient(150deg,#e6e9ff,#cfd6ff);animation-delay:-2s}
.aiwrap .phone{z-index:2}
.ai-chip{position:absolute;z-index:3;left:4%;top:58%;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;background:#fff;color:var(--ink);font-weight:700;font-size:15px;box-shadow:0 18px 40px -14px rgba(40,20,120,.35);animation:floaty 5s ease-in-out infinite}
.ai-chip i{width:10px;height:10px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(107,61,242,.2)}
@keyframes drift{0%,100%{transform:translate(0,0)}33%{transform:translate(10px,-14px)}66%{transform:translate(-8px,10px)}}

/* ---------- 6. map (global style) ---------- */
.mapsec{background:var(--navy);color:#fff;padding:140px 0}
.mapsec .inner{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;min-height:720px}
.mapsec .dotsmap{position:absolute;inset:-60px -10% -60px -10%;pointer-events:none;opacity:.55;
  background-image:radial-gradient(rgba(255,255,255,.55) 1.3px,transparent 1.6px);background-size:14px 14px;
  -webkit-mask:radial-gradient(ellipse 34% 30% at 30% 40%,#000 60%,transparent 62%),radial-gradient(ellipse 22% 34% at 62% 52%,#000 60%,transparent 62%),radial-gradient(ellipse 16% 18% at 84% 30%,#000 60%,transparent 62%),radial-gradient(ellipse 12% 14% at 76% 78%,#000 60%,transparent 62%);
  mask:radial-gradient(ellipse 34% 30% at 30% 40%,#000 60%,transparent 62%),radial-gradient(ellipse 22% 34% at 62% 52%,#000 60%,transparent 62%),radial-gradient(ellipse 16% 18% at 84% 30%,#000 60%,transparent 62%),radial-gradient(ellipse 12% 14% at 76% 78%,#000 60%,transparent 62%)}
.pin{position:absolute;width:26px;height:26px;color:#fff;z-index:1}
.pin::after{content:"";position:absolute;left:50%;bottom:-4px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--brand-2);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(142,107,255,.7)}100%{box-shadow:0 0 0 22px rgba(142,107,255,0)}}
.pin.p1{left:6%;top:30%}.pin.p2{left:40%;top:70%;}.pin.p3{left:58%;top:22%}.pin.p4{left:84%;top:58%}.pin.p5{left:28%;top:12%}
.pin.p2::after{animation-delay:.6s}.pin.p3::after{animation-delay:1.2s}.pin.p4::after{animation-delay:1.8s}
.mapsec .phonewrap{position:relative;z-index:2;display:flex;justify-content:center}
.mapsec .txt{position:relative;z-index:2}

/* ---------- 7. why (value cards) ---------- */
.why{padding:140px 0 100px;background:#fff}
.sec-title{display:inline-flex;align-items:center;gap:10px;font-size:clamp(34px,3.6vw,52px);font-weight:800;letter-spacing:-.03em}
.sec-title svg{width:30px;height:30px}
.sec-lead{margin-top:16px;font-size:17px;line-height:1.6;color:var(--ink-2)}
.why-grid{margin-top:50px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.vcard{position:relative;aspect-ratio:1/1.12;border-radius:18px;overflow:hidden;background:linear-gradient(160deg,#f1eeff,#e3dcff);display:flex;flex-direction:column;justify-content:flex-end;padding:24px;transition:transform .4s var(--ease),box-shadow .4s}
.vcard:hover{transform:translateY(-8px);box-shadow:0 30px 50px -28px rgba(60,30,160,.45)}
.vcard .ic{position:absolute;top:24px;left:24px;width:52px;height:52px;border-radius:14px;background:#fff;display:grid;place-items:center;color:var(--brand)}
.vcard .ic svg{width:28px;height:28px}
.vcard b{font-size:22px;font-weight:800;letter-spacing:-.02em}
.vcard p{margin-top:8px;font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.vcard:nth-child(2){background:linear-gradient(160deg,#e7fbf8,#cff3ee)}
.vcard:nth-child(3){background:linear-gradient(160deg,#fff6dc,#ffeab0)}
.vcard:nth-child(4){background:linear-gradient(160deg,#eef0f6,#dfe3ee)}

/* ---------- 8. stats (count up / down) ---------- */
.stats{padding:140px 0 140px;background:#fff}
.stat-grid{margin-top:50px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.stat{border-radius:20px;background:#f4f2fb;padding:40px 32px;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.stat .num{font-size:clamp(64px,6.4vw,96px);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--brand);font-variant-numeric:tabular-nums}
.stat p{font-size:18px;line-height:1.55;font-weight:600;color:var(--ink-2)}
.stat.up{background:var(--brand)}
.stat.up .num,.stat.up p{color:#fff}

/* ---------- 9. download (careers style) ---------- */
.download{padding:0 0 140px;background:#fff}
.dl-banner{position:relative;border-radius:24px;overflow:hidden;min-height:440px;display:flex;align-items:center;padding:60px clamp(28px,6vw,80px);color:#fff;
  background:radial-gradient(circle at 85% 20%,rgba(79,216,198,.45),transparent 40%),linear-gradient(120deg,#1a1238 0%,var(--brand-deep) 55%,var(--brand) 100%)}
.dl-banner .ring{position:absolute;right:-80px;bottom:-140px;width:520px;height:520px;border-radius:50%;border:90px solid rgba(255,255,255,.08);animation:spin 30s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.dl-banner h2{font-size:clamp(28px,3.2vw,44px);font-weight:800;line-height:1.35;letter-spacing:-.03em;position:relative}
.dl-banner p{margin-top:16px;font-size:17px;opacity:.8;position:relative}
.stores{margin-top:36px;display:flex;gap:12px;flex-wrap:wrap;position:relative}
.store{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:220px;height:60px;padding:0 24px;border-radius:14px;background:#fff;color:var(--ink);transition:transform .25s,box-shadow .25s}
.store:hover{transform:translateY(-3px);box-shadow:0 16px 30px -12px rgba(0,0,0,.4)}
.store svg{width:26px;height:26px}
.store small{display:block;font-size:11px;opacity:.6;line-height:1.1}
.store b{display:block;font-size:17px;line-height:1.2}
.store.dark{background:var(--ink);color:#fff}

/* ---------- footer ---------- */
.ft{background:#f6f6f9;padding:50px 0 60px;font-size:13.5px;color:var(--muted);line-height:1.8}
.ft .inner{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.ft .logo img{height:22px;margin-bottom:14px}
.ft nav{display:flex;gap:22px;color:var(--ink-2);font-weight:600;flex-wrap:wrap;align-items:flex-start}
.ft nav a{white-space:nowrap}
/*
  사업자정보 — 2026-11-10.
  한 항목이 '이름 + 값' 으로 붙어 다녀야 읽히므로 span 단위로 줄바꿈시킨다.
  넓은 화면에서는 가운뎃점으로 이어지고, 좁은 화면에서는 항목째로 접힌다.
*/
.ft .ft-biz{display:flex;flex-wrap:wrap;gap:2px 14px;max-width:760px;margin-bottom:10px}
.ft .ft-biz span{display:inline-flex;gap:5px;white-space:nowrap}
.ft .ft-biz span+span::before{content:'·';margin-right:9px;color:var(--ink-2);opacity:.45}
.ft .ft-biz b{font-weight:700;color:var(--ink-2)}
.ft .ft-biz a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.ft .ft-note{max-width:760px;margin-bottom:10px;word-break:keep-all}
@media (max-width:640px){
  /* 주소처럼 긴 값은 좁은 화면에서 줄바꿈을 허용한다 */
  .ft .ft-biz{gap:4px 12px}
  .ft .ft-biz span{white-space:normal}
  .ft .ft-biz span+span::before{display:none}
  .ft nav{gap:12px 18px}
}

/* mobile sticky CTA */
.m-cta{display:none}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .tour .inner,.mapsec .inner,.ai .inner{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:1fr}
  .stat{min-height:0}
  .tour .inner{min-height:0}
  .tour .stagewrap{height:640px;margin-top:20px}
  .mapsec .phonewrap{order:2}
  /* 한 줄 배치(태블릿·모바일)에서 제목·설명과 겹치는 지도 핀 숨김 */
  .mapsec .pin.p1,.mapsec .pin.p3,.mapsec .pin.p5{display:none}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .agents .txt{margin:0}
}
@media (max-width:720px){
  .inner{width:calc(100% - 40px)}
  .hd{height:62px}
  .hd .logo img{height:21px}
  .hd-dl{display:none}
  .hd-dl.hd-agent{display:inline-flex;width:112px;height:34px;font-size:13px}
  .dots{display:none}
  .tour{padding-top:100px}
  .tour .stagewrap{height:560px}
  .tour .phone{width:260px;margin-bottom:-90px}
  .float{width:62px;height:62px;border-radius:18px}
  .float svg{width:32px;height:32px}
  .float.f1{left:0}.float.f3{right:0}
  .agents{padding:150px 0 100px}
  .card-v{width:200px}
  .ai{padding:110px 0 80px}
  .aiwrap{min-height:600px}
  .ai .phone{width:260px}
  .blob.k1{width:200px;height:230px}
  .blob.k2{width:130px;height:130px}
  .blob.k3{width:110px;height:120px}
  .ai-chip{left:0;font-size:13px;padding:10px 14px}
  .mapsec{padding:100px 0}
  .mapsec .phone{width:260px}
  /* 오른쪽 핀을 폰(260px) 바깥 오른쪽으로 빼서 가려지지 않게 */
  .mapsec .pin.p4{left:calc(50% + 138px)}
  .why{padding:100px 0 60px}
  .why-grid{gap:12px}
  .vcard{padding:18px}
  .vcard .ic{top:18px;left:18px;width:44px;height:44px}
  /* 모바일: 아이콘을 흐름 안에 두어 두 줄 제목과 겹치지 않게, 카드 높이는 내용에 맞춤 */
  .vcard{aspect-ratio:auto;min-height:220px}
  .vcard .ic{position:static;margin-bottom:auto;flex:none}
  .vcard b{margin-top:18px}
  .vcard b{font-size:18px}
  .vcard p{font-size:13px}
  .stats{padding:40px 0 100px}
  .stat{padding:30px 24px}
  .dl-banner{min-height:0;padding:50px 24px}
  .store{width:200px;height:54px;padding:0 18px}
  .m-cta{display:flex;position:fixed;z-index:45;left:16px;right:16px;bottom:16px;height:54px;border-radius:999px;background:var(--brand);color:#fff;font-weight:700;align-items:center;justify-content:center;gap:8px;box-shadow:0 14px 30px -10px rgba(75,34,214,.7);transform:translateY(120%);transition:transform .4s var(--ease)}
  .m-cta.show{transform:none}
  .ft{padding-bottom:calc(110px + env(safe-area-inset-bottom, 0px))}
  .menu-close{right:16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}
