:root{
  --forest-950:#0b1f17;--forest-900:#0f291f;--forest-800:#143529;
  --accent:#00d1a0;--accent-ink:#007a5f;--mint:#78e6b9;
  --ink:#0b0f14;--ink-2:#374246;--ink-3:#5c6a6c;
  --on-dark:#eef4f1;--on-dark-2:#b2c4be;--on-dark-3:#8ca0a0;
  --paper:#f5f7f6;--line:#dce4e0;--mist:#eaf0ed;
  --radius:16px;--wrap:1160px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:var(--ink);background:#fff;line-height:1.6;word-break:keep-all;overflow-wrap:break-word}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
@media(min-width:768px){.wrap{padding:0 32px}}
.eyebrow{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink-3)}
.eyebrow i{width:8px;height:8px;background:var(--accent-ink);display:block}
.dark .eyebrow{color:var(--on-dark-3)}.dark .eyebrow i{background:var(--accent)}

/* header */
header.top{position:absolute;inset:0 0 auto 0;z-index:5}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--on-dark);font-weight:700;font-size:17px;letter-spacing:-.01em}
.brand img{width:32px;height:32px;border-radius:8px}
.top nav a{color:var(--on-dark-2);text-decoration:none;font-size:15px;padding:10px 6px;margin-left:10px}
.top nav a:hover{color:#fff}
@media(max-width:560px){.top nav .hide-sm{display:none}}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--forest-950);color:var(--on-dark);padding:112px 0 72px}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 80% 25%,rgba(0,209,160,.18),transparent 60%),radial-gradient(40% 50% at 10% 90%,rgba(0,209,160,.08),transparent 70%);pointer-events:none}
.hero .grid{position:relative;display:grid;gap:48px;align-items:center}
@media(min-width:960px){.hero{padding:136px 0 96px}.hero .grid{grid-template-columns:1.05fr .95fr}}
.app-id{display:flex;align-items:center;gap:14px}
.app-id img{width:64px;height:64px;border-radius:15px;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.app-id b{display:block;font-size:18px}
.app-id span{font-size:14px;color:var(--on-dark-3)}
h1{margin:28px 0 0;font-size:clamp(34px,5.2vw,60px);line-height:1.18;letter-spacing:-.035em;font-weight:800}
h1 em{font-style:normal;color:var(--accent)}
.lead{margin:20px 0 0;font-size:clamp(17px,1.5vw,20px);color:var(--on-dark-2);max-width:560px}
.cta{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:0 24px;border-radius:999px;font-weight:700;font-size:17px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease}
.btn:active{transform:scale(.98)}
.btn svg{width:22px;height:22px;flex:none}
.btn-primary{background:var(--accent);color:var(--forest-950)}
.btn-primary:hover{background:#2be0b4}
.btn-primary small{font-weight:600;opacity:.75;font-size:14px}
.btn-ghost{border-color:rgba(255,255,255,.22);color:var(--on-dark-2);background:transparent;cursor:default}
.btn-ghost small{font-size:13px;font-weight:600;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--on-dark-3)}
.meta{margin-top:18px;font-size:14px;color:var(--on-dark-3);display:flex;flex-wrap:wrap;gap:6px 14px}
.meta span{white-space:nowrap}
.ios-note{display:none;margin-top:16px;font-size:15px;color:var(--mint)}
.is-ios .ios-note{display:block}

.hero-visual{position:relative;display:flex;justify-content:center;gap:18px;min-height:420px}
.phone{width:min(46%,250px);border-radius:28px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);background:#0f291f;aspect-ratio:9/16}
.phone img{width:100%;height:100%;object-fit:cover}
.phone.second{transform:translateY(48px)}
.qr-card{position:absolute;right:-6px;bottom:-24px;background:#fff;color:var(--ink);border-radius:14px;padding:14px;display:none;align-items:center;gap:14px;box-shadow:0 18px 40px -12px rgba(0,0,0,.5)}
.qr-card img{width:96px;height:96px}
.qr-card p{margin:0;font-size:14px;line-height:1.45;color:var(--ink-2);max-width:120px}
.qr-card b{display:block;color:var(--ink);font-size:15px}
@media(min-width:960px){.qr-card{display:flex}}

/* sections */
section.block{padding:88px 0}
@media(min-width:960px){section.block{padding:112px 0}}
h2{margin:16px 0 0;font-size:clamp(28px,3.4vw,42px);line-height:1.22;letter-spacing:-.025em;font-weight:800}
.sub{margin:14px 0 0;font-size:clamp(16px,1.3vw,19px);color:var(--ink-2);max-width:640px}

/* features */
.features{display:grid;gap:16px;margin-top:44px}
@media(min-width:640px){.features{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.features{grid-template-columns:repeat(3,1fr)}}
.feat{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:#fff}
.feat .k{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--accent-ink)}
.feat h3{margin:8px 0 0;font-size:20px;letter-spacing:-.015em}
.feat ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px;color:var(--ink-2);font-size:16px}
.feat li{display:flex;gap:10px}
.feat li:before{content:"";flex:none;width:10px;height:2px;background:var(--ink);margin-top:12px}

/* screens */
.screens-sec{background:var(--paper)}
.rail{margin-top:40px;display:grid;grid-auto-flow:column;grid-auto-columns:min(64%,260px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:20px;padding:4px 20px 24px;margin-left:-20px;margin-right:-20px;scrollbar-width:thin}
@media(min-width:768px){.rail{margin-left:-32px;margin-right:-32px;padding-left:32px;padding-right:32px;scroll-padding-inline:32px}}
@media(min-width:1200px){.rail{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);overflow:visible;margin:40px 0 0;padding:0}}
.rail figure{margin:0;scroll-snap-align:start}
.rail img{border-radius:18px;box-shadow:0 10px 30px -14px rgba(11,31,23,.35);aspect-ratio:9/16;width:100%;height:auto;background:var(--forest-900)}
.rail figcaption{margin-top:10px;font-size:15px;font-weight:600;color:var(--ink-2)}
.note{margin-top:14px;font-size:13px;color:var(--ink-3)}

/* install */
.install{display:grid;gap:40px;margin-top:44px}
@media(min-width:960px){.install{grid-template-columns:1.1fr .9fr;gap:56px}}
.steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:22px 0;border-bottom:1px solid var(--line)}
.steps .n{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--accent-ink);padding-top:3px}
.steps b{font-size:18px}
.steps p{margin:4px 0 0;color:var(--ink-2);font-size:16px}
.side{align-self:start;border-radius:var(--radius);background:var(--forest-950);color:var(--on-dark);padding:28px}
.side h3{margin:0;font-size:19px}
.side dl{margin:18px 0 0;display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:15px}
.side dt{color:var(--on-dark-3)}
.side dd{margin:0;color:var(--on-dark)}
.side code{font-family:ui-monospace,"JetBrains Mono",Menlo,monospace;font-size:13px;word-break:break-all;color:var(--on-dark-2)}
.side .btn{margin-top:24px;width:100%;justify-content:center}

/* faq */
.faq{margin-top:36px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font-size:clamp(17px,1.4vw,20px);font-weight:700;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:26px;font-weight:400;color:var(--ink-3)}
.faq details[open] summary:after{content:"–"}
.faq p{margin:0;padding:0 40px 24px 0;color:var(--ink-2);font-size:16px;max-width:820px}

/* footer */
footer{background:#0b0f14;color:var(--on-dark-3);font-size:14px;padding:52px 0 40px;line-height:1.7}
footer .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px}
footer a{color:var(--on-dark-2);text-decoration:underline;text-underline-offset:4px}
footer nav{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:12px}
footer nav a{text-decoration:none;padding:6px 0}
footer nav a:hover{color:#fff}
footer .fine{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:13px}

/* sticky mobile cta */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(11,31,23,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:none;transform:translateY(110%);transition:transform .25s ease}
.sticky .btn{width:100%;justify-content:center;min-height:52px}
.sticky.show{transform:none}
@media(max-width:959px){.sticky{display:block}body{padding-bottom:0}}
.is-ios .sticky{display:none}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* article pages */
.page-hero{background:var(--forest-950);color:var(--on-dark);padding:120px 0 64px;position:relative;overflow:hidden}
.page-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 85% 20%,rgba(0,209,160,.16),transparent 60%);pointer-events:none}
.page-hero .wrap{position:relative}
.crumb{font-size:14px;color:var(--on-dark-3);display:flex;gap:8px;flex-wrap:wrap}
.crumb a{color:var(--on-dark-2);text-decoration:none}
.page-hero h1{font-size:clamp(30px,4.4vw,52px)}
.prose{max-width:780px}
.prose h2{font-size:clamp(24px,2.6vw,32px);margin:56px 0 0}
.prose h3{font-size:20px;margin:28px 0 0}
.prose p{font-size:17px;color:var(--ink-2);margin:14px 0 0}
.prose ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px;font-size:17px;color:var(--ink-2)}
.prose li{display:flex;gap:10px}
.prose li:before{content:"";flex:none;width:10px;height:2px;background:var(--ink);margin-top:13px}
.prose b{color:var(--ink)}
.table{width:100%;border-collapse:collapse;margin-top:18px;font-size:16px}
.table th,.table td{border-bottom:1px solid var(--line);padding:14px 10px;text-align:left;vertical-align:top}
.table th{font-size:14px;color:var(--ink-3);font-weight:700;letter-spacing:.02em}
.table td:first-child{font-weight:700;color:var(--ink);white-space:nowrap}
.cta-box{margin-top:56px;border-radius:var(--radius);background:var(--forest-950);color:var(--on-dark);padding:32px;display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.cta-box p{margin:0;color:var(--on-dark-2);font-size:16px;max-width:460px}
.cta-box b{display:block;color:#fff;font-size:20px;margin-bottom:6px}
.cta-box .btns{display:flex;flex-wrap:wrap;gap:10px}
.btn-line{border-color:rgba(255,255,255,.3);color:#fff;background:transparent}
.btn-line:hover{background:rgba(255,255,255,.08)}
.related{margin-top:56px;display:grid;gap:12px}
@media(min-width:720px){.related{grid-template-columns:repeat(3,1fr)}}
.related a{display:block;border:1px solid var(--line);border-radius:12px;padding:18px;text-decoration:none;background:#fff}
.related a b{display:block;font-size:17px}
.related a span{font-size:14px;color:var(--ink-3)}
.related a:hover{border-color:var(--accent-ink)}
.shot-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.shot-row img{border-radius:14px;aspect-ratio:9/16;width:100%;height:auto;box-shadow:0 10px 24px -14px rgba(11,31,23,.4)}
.small-note{font-size:13px;color:var(--ink-3);margin-top:10px}
