:root{--bg:#faf7f4;--card:#fff;--ink:#1f1a17;--sub:#8c8079;--line:#ece4dd;--acc:#9c6b5e;--gold:#c9a27a;--serif:'Cormorant',Georgia,serif;--kserif:'Noto Serif KR','Cormorant',serif}
*{box-sizing:border-box;font-family:'Pretendard',-apple-system,'Apple SD Gothic Neo',sans-serif}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);letter-spacing:-.015em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
/* 상단 */
.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:18px;padding:14px max(16px,4vw);color:#fff;transition:.25s}
.nav.solid{background:#faf7f4ee;color:var(--ink);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:20px;letter-spacing:-.04em}.logo img{width:28px;height:28px;border-radius:8px}
.nav nav{display:flex;gap:18px;margin-left:auto;font-size:14px;opacity:.85}
.navcta{border:1px solid currentColor;border-radius:99px;padding:8px 14px;font-size:13px;font-weight:600}
@media (max-width:640px){.nav nav{display:none}.navcta{margin-left:auto}}
/* 히어로 */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero picture,.hero picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero picture img{animation:zoom 18s ease-out both}
@keyframes zoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.veil{position:absolute;inset:0;background:linear-gradient(180deg,#0000 30%,#140e0bcc 78%,#140e0bf2),linear-gradient(90deg,#140e0b99,#0000 60%)}
.hero-in{position:relative;padding:0 max(18px,6vw) max(70px,9vh);max-width:780px;animation:up 1s .2s both}
@keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.eyebrow{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.4vw,24px);color:var(--gold);letter-spacing:.02em}
h1{font-size:clamp(40px,8.4vw,86px);line-height:1.08;margin:10px 0 18px;font-weight:700;letter-spacing:-.05em}
h1 em{font-style:normal;font-family:var(--serif);font-weight:500;color:#f3dcc8;letter-spacing:-.01em}
.lead{font-size:clamp(15px,1.8vw,19px);line-height:1.65;opacity:.88;margin:0 0 26px;font-weight:400}
.ctas{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:0 24px;border-radius:99px;font-size:16px;font-weight:700;border:0;cursor:pointer;transition:transform .15s}
.btn:active{transform:scale(.97)}
.btn svg{width:20px;height:20px;fill:currentColor}
.kakao{background:#fee500;color:#191600}
.line{border:1px solid #fff9;color:#fff;background:#ffffff14;backdrop-filter:blur(6px)}
.line.dark{border-color:var(--ink);color:var(--ink);background:transparent}
.wide{width:100%}
.trust{display:flex;gap:14px;margin-top:20px;font-size:13px;opacity:.75}.trust span::before{content:'✓ ';color:var(--gold)}
.scroll{position:absolute;right:max(18px,4vw);bottom:28px;font-size:11px;letter-spacing:.3em;writing-mode:vertical-rl;opacity:.6}
/* 흐르는 띠 */
.marquee{background:var(--ink);color:#f3e7dc;overflow:hidden;padding:16px 0}
.marquee div{display:flex;gap:42px;width:max-content;animation:mq 34s linear infinite;font-family:var(--serif);font-size:22px;font-style:italic}
.marquee span::after{content:'✦';margin-left:42px;color:var(--gold);font-style:normal;font-size:14px}
@keyframes mq{to{transform:translateX(-50%)}}
/* 섹션 */
.sec{max-width:1120px;margin:0 auto;padding:clamp(70px,10vw,120px) max(16px,4vw) 0}
.sec-head{margin-bottom:28px}
.sec-head small{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--acc)}
h2{font-size:clamp(30px,5vw,52px);margin:6px 0 0;letter-spacing:-.045em;line-height:1.15;font-weight:700}
/* 전·후 */
.demo-wrap{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:start}
.ba{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:3/4;background:#ddd;touch-action:none;cursor:ew-resize;box-shadow:0 30px 60px #1f1a1726;user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 8px #0005}
.ba-line span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:var(--ink);font-size:11px;padding:8px 10px;border-radius:99px;white-space:nowrap}
.tag{position:absolute;top:14px;font-style:normal;font-size:11px;letter-spacing:.15em;background:#1f1a17b0;color:#fff;border-radius:99px;padding:5px 11px}
.tag.l{left:14px}.tag.r{right:14px}
.faces{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.faces button{border:2px solid transparent;border-radius:16px;overflow:hidden;padding:0;cursor:pointer;aspect-ratio:3/4;background:#ddd}
.faces button.on{border-color:var(--ink)}
.faces img{width:100%;height:100%;object-fit:cover}
.spec{margin:18px 0 8px;display:grid;grid-template-columns:auto 1fr;gap:10px 16px;font-size:15px}
.spec dt{color:var(--sub)}.spec dd{margin:0;font-weight:600;display:flex;align-items:center;gap:8px}
.spec i{width:16px;height:16px;border-radius:50%;display:inline-block}
.note{color:var(--sub);font-size:12px}
/* 직접 눌러보기 */
.try-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.try-img{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:3/4;background:#eee}
.try-img img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}
.pc{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px 16px;margin-bottom:14px}
.pc small{font-size:12px;color:var(--sub);display:block}.pc b{font-size:22px}
.pcbar{display:flex;height:24px;border-radius:8px;overflow:hidden;margin-top:10px;font-size:11px}
.pcbar span{display:flex;align-items:center;justify-content:center;color:#fff}
.ps-sp{background:#e8b49a}.ps-su{background:#c3a9c4}.ps-au{background:#a87a55}.ps-wi{background:#4b4560}
.grp{margin-bottom:14px}.grp small{display:block;font-size:12px;color:var(--sub);margin-bottom:7px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:9px 14px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.chips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.chips i{width:12px;height:12px;border-radius:50%;display:inline-block}
.facts{display:flex;flex-wrap:wrap;gap:6px}.facts span{background:#f1ebe5;border-radius:10px;padding:7px 11px;font-size:14px}
/* 기능 */
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.feat-grid article{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;transition:transform .2s,box-shadow .2s}
.feat-grid article:hover{transform:translateY(-3px);box-shadow:0 14px 30px #1f1a1712}
.feat-grid i{font-style:normal;font-size:20px;color:var(--acc)}
.feat-grid b{display:block;font-size:17px;margin:10px 0 6px}
.feat-grid p{margin:0;font-size:14px;color:var(--sub);line-height:1.5}
.feat-grid .hl{background:var(--ink);color:#fff;border-color:var(--ink)}.feat-grid .hl p{color:#d8ccc3}.feat-grid .hl i{color:var(--gold)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.split figure{margin:0;position:relative;border-radius:22px;overflow:hidden;aspect-ratio:16/10}
.split img{width:100%;height:100%;object-fit:cover}
.split figcaption{position:absolute;left:16px;bottom:14px;color:#fff;font-size:14px;font-weight:600;text-shadow:0 1px 6px #0007}
/* 사용법 */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;counter-reset:s}
.steps li{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--serif);font-style:italic;font-size:30px;color:var(--gold)}
.steps b{display:block;font-size:18px;margin:4px 0 6px}.steps p{margin:0;color:var(--sub);font-size:14px;line-height:1.55}
.guide-link{display:inline-block;margin-top:16px;font-weight:600;border-bottom:1px solid}
/* 시작 */
.plan{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(120deg,#1f1a17,#4a342b);color:#fff;border-radius:28px;padding:28px}
.plan b{font-size:24px}.plan p{margin:6px 0 0;opacity:.8}
.plan.sub{background:var(--card);color:var(--ink);border:1px solid var(--line);margin-top:12px;padding:22px 28px}.plan.sub b{font-size:18px}
/* FAQ */
.faq details{border-bottom:1px solid var(--line);padding:18px 4px}
.faq summary{cursor:pointer;font-size:17px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:'+';font-size:22px;color:var(--acc);transition:.2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{color:var(--sub);line-height:1.7;margin:12px 0 0}
/* 로그인 */
.start{padding-bottom:20px}
.login{max-width:480px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:28px;padding:26px;box-shadow:0 20px 50px #1f1a1710}
.login>b{display:block;font-size:20px;margin-bottom:14px}
.or{text-align:center;color:var(--sub);font-size:12px;margin:16px 0 10px;display:flex;align-items:center;gap:10px}.or::before,.or::after{content:'';flex:1;height:1px;background:var(--line)}
form{display:flex;gap:8px}
input{flex:1;min-width:0;font-size:17px;border:1.5px solid var(--line);border-radius:14px;padding:13px;background:#fff;text-transform:uppercase;letter-spacing:1px;color:var(--ink)}
input:focus{outline:none;border-color:var(--ink)}
form button{border:0;background:var(--ink);color:#fff;font-size:16px;font-weight:700;border-radius:14px;padding:0 20px;cursor:pointer}
.login small{display:block;margin-top:10px;color:var(--acc);font-size:13px;min-height:1em}
.foot{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--sub);padding:60px 16px 34px}
/* 등장 효과 */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s,transform .8s}.rv.in{opacity:1;transform:none}
@media (max-width:820px){
  .demo-wrap,.try-grid{grid-template-columns:1fr}
  .feat-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .plan{flex-direction:column;align-items:flex-start}
  .plan .btn{width:100%}
}
@media (max-width:420px){.steps{grid-template-columns:1fr}.split{grid-template-columns:1fr}.ctas .btn{width:100%}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 고급 명조 제목 */
h1,h2,.plan b,.login>b,.logo,.steps b,.feat-grid b,.faq summary,.pc b{font-family:var(--kserif);letter-spacing:-.03em}
h1{font-weight:600;letter-spacing:-.045em}h2{font-weight:600}
.logo{font-weight:700;font-size:21px}
.faq summary{font-weight:600}
h1 em{font-family:var(--kserif);font-weight:500;white-space:nowrap;color:#f3dcc8}
.hero-in{max-width:900px}
.why{background:var(--ink);color:#fff}
.why-in{max-width:1120px;margin:0 auto;padding:46px max(16px,4vw);display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid #ffffff14}
.why b{font-family:var(--kserif);font-size:clamp(22px,3vw,30px);font-weight:600;color:#f3dcc8}
.why p{margin:8px 0 0;color:#d8ccc3;font-size:15px}
@media (max-width:640px){.why-in{grid-template-columns:1fr;gap:16px}}

.corp{background:#1f1a17;color:#bfb3aa;margin-top:60px;font-size:12px;line-height:1.75}
.corp-in{max-width:1120px;margin:0 auto;padding:30px max(16px,4vw) calc(30px + env(safe-area-inset-bottom))}
.corp b{color:#fff;font-size:15px}.corp p{margin:8px 0 12px}.corp nav{display:flex;gap:14px;flex-wrap:wrap}.corp a{color:#e8dcd2;text-decoration:none}

.oneline{display:inline-block;background:#ffffff1f;border:1px solid #ffffff40;backdrop-filter:blur(6px);border-radius:99px;padding:8px 14px;font-size:clamp(13px,1.6vw,15px);margin-bottom:14px}
.oneline b{color:#f3dcc8}
.why-head{max-width:1120px;margin:0 auto;padding:40px max(16px,4vw) 0;font-family:var(--kserif);font-size:clamp(24px,3.6vw,36px);color:#fff;font-weight:600}
.why-in{grid-template-columns:repeat(5,1fr)!important;padding-top:22px!important}
.why i{font-style:normal;font-family:var(--serif);font-size:20px;color:var(--gold);display:block;margin-bottom:6px}
@media (max-width:980px){.why-in{grid-template-columns:repeat(2,1fr)!important}}
@media (max-width:560px){.why-in{grid-template-columns:1fr!important}}

.ttabs{display:flex;background:#f1ebe5;border-radius:12px;padding:4px;gap:4px;margin-bottom:12px}.ttabs button{flex:1;border:0;background:transparent;border-radius:9px;padding:9px 0;font-size:15px;font-weight:700;color:#8c8079;cursor:pointer}.ttabs button.on{background:#fff;color:#1f1a17;box-shadow:0 1px 3px #0001}
.try-img{touch-action:manipulation;user-select:none;-webkit-user-select:none;cursor:pointer}.try-img .hold{background:#ffffffd9;color:#1f1a17;letter-spacing:0}.try-img.holding .tag.l{background:#9c6b5e}
.chips button small{color:#9c6b5e;font-size:11px}.chips button.on small{color:#f3dcc8}
@media (max-width:820px){.try-grid{gap:14px}.try-img{aspect-ratio:4/5}.chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips button{flex:0 0 auto}}

.kakao-mini{display:inline-flex;align-items:center;gap:6px;background:#fee500;color:#191600!important;border-color:#fee500!important}
.kakao-mini svg{width:16px;height:16px;fill:currentColor}
/* 모바일: 가로 넘침 막기 */
html,body{overflow-x:clip;max-width:100%}
.marquee{contain:paint;max-width:100vw}
@media (max-width:640px){
  .nav{padding:10px 14px;gap:10px}.logo{font-size:19px}.navcta{padding:7px 11px;font-size:12px}
  .hero-in{padding:0 18px 64px}.lead{font-size:15px}.lead br{display:none}
  .oneline{font-size:12.5px;padding:7px 12px;line-height:1.45}
  .ctas .btn{width:100%;min-height:52px}
  .trust{flex-wrap:wrap;gap:8px 12px}
  .sec{padding:64px 16px 0}.sec-head{margin-bottom:18px}h2{font-size:28px}
  .ba{border-radius:20px;aspect-ratio:4/5}.faces{gap:6px}.spec{font-size:14px}
  .feat-grid{gap:8px}.feat-grid article{padding:14px;border-radius:16px}.feat-grid b{font-size:15px}.feat-grid p{font-size:13px}
  .split figure{aspect-ratio:16/11}
  .steps li{padding:16px}.plan{padding:20px;border-radius:22px}.plan b{font-size:20px}
  .faq summary{font-size:15.5px}.login{padding:20px;border-radius:22px}
  .why-head{padding:34px 16px 0}.why-in{padding:18px 16px 34px!important;gap:14px!important}
  .scroll{display:none}
}

.vwrap{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:34px;align-items:center}
.phone{border:10px solid #1f1a17;border-radius:42px;overflow:hidden;box-shadow:0 30px 70px #1f1a1740;background:#000;aspect-ratio:390/844}
.phone video{display:block;width:100%;height:100%;object-fit:cover}
.vsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:v}
.vsteps li{counter-increment:v;display:flex;gap:14px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:12px}
.vsteps li::before{content:counter(v,decimal-leading-zero);font-family:var(--serif);font-style:italic;font-size:24px;color:var(--gold);min-width:34px}
.vsteps b{font-family:var(--kserif);font-size:20px;display:block}.vsteps span{color:var(--sub);font-size:14px}
@media (max-width:760px){.vwrap{grid-template-columns:1fr;gap:20px}.phone{max-width:300px;margin:0 auto}}

.shot-row{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:thin}
.shot-row figure{flex:0 0 min(78vw,620px);margin:0;scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 30px #1f1a1712}
.shot-row img{display:block;width:100%;aspect-ratio:1180/820;object-fit:cover}
.shot-row figcaption{padding:12px 16px;font-size:14px;color:var(--sub)}.shot-row figcaption b{display:block;font-family:var(--kserif);font-size:18px;color:var(--ink);margin-bottom:2px}
