/* 하니피알 디자인 시스템 — 흰 바탕 + 포인트 1색. 폰트 1종, 극단적인 글자 크기 대비, 박스 없는 레이아웃, 한 화면 한 메시지. */
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto}
html,body{overflow-x:clip}
.lenis.lenis-stopped{overflow:hidden}

body{--en:var(--ko);--mono:var(--ko);--sec:clamp(120px,15vw,240px)}
body .label{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}
body .btn,body .contact,body .float-btn{border-radius:0}
body .header{background:#fff;border-bottom:0}
body .header.scrolled{border-bottom:1px solid var(--line)}
body .btn{padding:19px 30px;font-size:16px;font-weight:700}

.h-big{margin:0;font-size:clamp(40px,7.2vw,124px);font-weight:800;line-height:1.14;letter-spacing:-.045em}
.h-mid{margin:0;font-size:clamp(32px,4.8vw,76px);font-weight:800;line-height:1.2;letter-spacing:-.04em}
.h-lead{margin:0;font-size:clamp(17px,1.6vw,23px);font-weight:500;line-height:1.75;letter-spacing:-.02em;color:var(--ink-2)}
.h-lead b{color:var(--ink);font-weight:700}
.h-note{margin:14px 0 0;font-size:13px;color:var(--muted)}

/* line-by-line mask reveal */
.m{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.m>span{display:block}
.js .h-mask.reveal{opacity:1;transform:none;transition:none}
.js .h-mask .m>span{transform:translateY(106%);transition:transform 1.2s var(--ease)}
.js .h-mask .m:nth-child(2)>span{transition-delay:.12s}
.js .h-mask .m:nth-child(3)>span{transition-delay:.24s}
.js .h-mask.in .m>span{transform:none}

/* hero */
.h-hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:96px var(--pad) 40px}
.h-title{margin:0;font-weight:800;line-height:1}
.h-row{display:block;overflow:hidden;padding:.08em .05em .1em}
.h-row:first-child{font-size:min(12.6vw,23vh,214px)}
.h-row .split{letter-spacing:-.05em;line-height:1}
.h-row .split::after{display:none}
.h-row-ko{margin-top:clamp(0px,.6vw,10px)}
.h-row-ko .slide{font-size:min(5.9vw,11vh,100px);font-weight:800;letter-spacing:-.05em}
.ch.ring{position:relative;color:transparent}
.ring-o{position:absolute;left:50%;top:50%;width:.77em;height:.77em;transform:translate(-50%,-50%);border:.125em solid var(--ink);border-radius:50%;overflow:hidden;box-sizing:border-box}
.ring-o::before{content:'';position:absolute;inset:-10%;background:conic-gradient(from 0deg,#00a68c00 0 240deg,#00a68c 360deg);animation:spin 3.2s linear infinite}
.ring-o::after{content:'';position:absolute;left:50%;top:50%;width:.1em;height:.1em;margin:-.05em 0 0 -.05em;border-radius:50%;background:var(--ink)}
.h-claim{margin:clamp(22px,3vh,38px) 0 0;font-size:clamp(16px,1.5vw,22px);line-height:1.65;letter-spacing:-.02em;color:var(--ink-2)}
.h-claim b{display:block;margin-bottom:6px;font-size:clamp(21px,2.3vw,34px);font-weight:800;letter-spacing:-.035em;color:var(--ink)}
.h-cta{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:clamp(24px,3.6vh,42px)}

/* statement split by a growing vertical line */
.h-state{position:relative;display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:clamp(60px,10vw,160px);min-height:100svh;padding:var(--sec) var(--pad)}
.h-vline{position:absolute;left:58%;top:12%;bottom:12%;width:1px;background:var(--ink);transform:scaleY(0);transform-origin:top}

/* pinned scroll text fill */
.h-fill{height:280vh}
.h-fill-in{position:sticky;top:0;height:100svh;display:flex;align-items:center;padding:0 var(--pad)}
.h-fill-text{margin:0;font-size:clamp(38px,7.6vw,132px);font-weight:800;line-height:1.2;letter-spacing:-.045em}
.h-fill-text .w{transition:opacity .25s linear}

/* three ways */
.h-how{padding:var(--sec) var(--pad) 0}
.h-idx{margin:clamp(50px,7vw,100px) 0 0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.h-idx a{display:flex;align-items:baseline;gap:clamp(20px,4vw,70px);padding:clamp(20px,2.6vw,38px) 0;border-bottom:1px solid var(--line);font-size:clamp(24px,3.6vw,58px);font-weight:800;letter-spacing:-.04em;transition:color .3s,padding .5s var(--ease)}
.h-idx a:hover{color:var(--point);padding-left:clamp(10px,1.6vw,26px)}
.h-idx span{font-size:clamp(14px,1.2vw,18px);font-weight:600;letter-spacing:0;color:var(--muted)}
.h-idx small{margin-left:auto;font-size:clamp(13px,1.2vw,18px);font-weight:500;letter-spacing:-.01em;color:var(--muted)}

/* products */
.h-prod{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(40px,7vw,120px);min-height:100svh;padding:var(--sec) var(--pad) 0}
.h-prod.flip .h-prod-text{order:2}
.h-no{margin:0 0 clamp(18px,2vw,30px);display:flex;align-items:baseline;gap:14px;font-size:clamp(17px,1.5vw,22px);font-weight:800;letter-spacing:-.02em}
.h-no small{font-size:.8em;font-weight:500;color:var(--muted)}
.h-prod h3{margin:0;font-size:clamp(36px,5.2vw,86px);font-weight:800;line-height:1.16;letter-spacing:-.045em}
.h-prod .h-lead{margin-top:clamp(20px,2.4vw,34px);max-width:560px}
.h-prod .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(26px,3vw,44px)}

.h-ai-q{margin:0;padding-bottom:clamp(20px,2.4vw,34px);border-bottom:1px solid var(--ink);font-size:clamp(23px,2.9vw,46px);font-weight:700;line-height:1.3;letter-spacing:-.035em;color:var(--muted)}
.h-ai-a{margin:clamp(20px,2.4vw,34px) 0 0;font-size:clamp(23px,2.9vw,46px);font-weight:800;line-height:1.4;letter-spacing:-.04em}
.h-ai-a mark{background:none;color:var(--point)}
.h-phones{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.2vw,18px)}
.h-phones .phone{border-radius:0}
.h-phones .phone:nth-child(2){transform:translateY(-8%)}
.h-phones .phone:nth-child(3){transform:translateY(8%)}
.h-steps{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.h-steps li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:clamp(13px,1.4vw,21px) 0;border-bottom:1px solid var(--line);font-size:clamp(22px,2.6vw,42px);font-weight:800;letter-spacing:-.04em}
.h-steps span{font-size:clamp(13px,1.1vw,16px);font-weight:600;letter-spacing:-.01em;color:var(--muted)}
.h-steps .human,.h-steps .human span{color:var(--point)}

/* agent Q */
.h-aq{padding:var(--sec) var(--pad) 0}
.h-aq-top{display:grid;grid-template-columns:1.2fr 1fr;align-items:end;gap:clamp(40px,6vw,100px);margin-bottom:clamp(50px,7vw,100px)}
.h-aq-top .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
body .dash{border:0;border-top:1px solid var(--ink)}
body .dash-top{padding:16px 0;border-bottom:1px solid var(--line)}
body .dash-ex{border:0;padding:0;color:var(--point);font-weight:700}
body .dash-grid{gap:clamp(24px,3vw,48px);padding-top:clamp(26px,3vw,44px)}
body .w{padding:0;border:0!important}
body .w h3{font-size:clamp(17px,1.5vw,21px);font-weight:800;letter-spacing:-.03em}

/* trust */
.h-trust{padding:var(--sec) 0 0}
.h-trust>.h-wrap{padding:0 var(--pad)}
body .big-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,60px);margin:clamp(50px,7vw,100px) 0 0;padding:0;border:0;list-style:none}
body .big-stats li{display:block;padding:clamp(18px,2vw,28px) 0 0;border:0;border-top:1px solid var(--ink)}
body .big-stats b{font-family:var(--ko);font-size:clamp(68px,11vw,190px);font-weight:800;line-height:1;letter-spacing:-.05em}
body .big-stats span{font-size:clamp(20px,2.4vw,38px);font-weight:800;letter-spacing:-.03em}
body .big-stats p{margin:12px 0 0;font-size:clamp(14px,1.2vw,18px);color:var(--ink-2)}
.h-cap{margin:clamp(80px,10vw,150px) 0 26px;padding:0 var(--pad);font-size:clamp(20px,2vw,30px);font-weight:800;letter-spacing:-.03em}
.h-cap small{margin-left:8px;font-size:14px;font-weight:500;letter-spacing:0;color:var(--muted)}
.h-marquee{overflow:hidden}
.h-track{display:flex;width:max-content;animation:h-mq 70s linear infinite}
.h-marquee:hover .h-track{animation-play-state:paused}
@keyframes h-mq{to{transform:translateX(-50%)}}
.h-rv{margin:0 clamp(8px,.8vw,12px);width:clamp(200px,20vw,300px);flex:none}
.h-rv img{display:block;width:100%;height:auto}
.h-net .h-track{align-items:center;animation-duration:45s}
.h-net a{display:flex;align-items:center;margin:0 clamp(28px,4vw,64px);height:64px;opacity:.75;transition:opacity .3s}
.h-net a:hover{opacity:1}
.h-net img{display:block;height:40px;width:auto}

/* faq, gallery, final */
body .faq-wrap{padding-top:var(--sec)}
body .gallery-sec{padding-top:var(--sec)}
body .gallery-sec .wrap{padding:0 var(--pad);margin-bottom:clamp(40px,5vw,70px)}
body .gallery .vcard{border-radius:0}
body .final{margin-top:var(--sec);min-height:100svh;align-items:center;text-align:center;border-top:0}
body .final .grid-bg,body .final .kick{display:none}
body .final .mega{font-size:clamp(44px,8vw,136px);font-weight:800;line-height:1.14;letter-spacing:-.045em}
body .final .cta-row{justify-content:center}

@media(max-width:860px){
  .h-row:first-child{font-size:12.4vw}
  .h-row-ko .slide{font-size:7vw}
  .h-state,.h-prod,.h-aq-top{grid-template-columns:1fr}
  .h-state{min-height:auto;gap:36px}
  .h-vline{display:none}
  .h-prod{min-height:auto}
  .h-prod.flip .h-prod-text{order:0}
  .h-idx small{display:none}
  body .big-stats{grid-template-columns:1fr}
  .h-phones .phone:nth-child(n){transform:none}
}

/* ---------------- 하위 페이지: 같은 규칙으로 정리 (박스·장식 제거, 큰 글자, 넓은 여백) ---------------- */
.grid-bg,.cross,.pin-tag,.d-sec>.kick,.p-hero .kick,.final>.kick,.say>.kick{display:none!important}
.kick::before{display:none}
.tiny{font-size:12px}
.mega{font-weight:800;line-height:1.14;letter-spacing:-.045em}
.lede{font-weight:500;letter-spacing:-.02em;line-height:1.75}
.reveal.mega{transition-duration:1.2s}

.p-hero{min-height:64svh;justify-content:center;padding:130px var(--pad) 40px;border-bottom:0}
.p-title{margin:0;font-size:clamp(46px,8vw,136px);line-height:1.1;letter-spacing:-.05em}
.p-lead{margin:clamp(22px,2.6vw,36px) 0 0;font-weight:500;letter-spacing:-.02em}
.crumbs{margin-bottom:clamp(18px,2vw,30px)}
.d-sec{padding:var(--sec) var(--pad) 0}
.d-sec:last-of-type{padding-bottom:0}
.d-sec>.mega{margin-bottom:clamp(36px,5vw,70px)}

.say{min-height:auto;padding:var(--sec) var(--pad) 0;max-width:none}
.prod{border-top:0;padding:var(--sec) var(--pad) 0;min-height:auto;max-width:none}

/* cards and lists without boxes */
.three{gap:clamp(24px,4vw,60px);margin-top:clamp(36px,5vw,70px);border:0}
.three>div{padding:clamp(16px,2vw,26px) 0 0;border:0;border-top:1px solid var(--ink)}
.three>div:hover{background:none}
.three .no{font-size:15px;font-weight:700}
.three h3{margin:clamp(20px,3vw,44px) 0 6px;font-size:clamp(44px,5.4vw,88px)}
.incl{margin-top:clamp(30px,4vw,56px)}
.incl li{font-size:clamp(16px,1.3vw,19px);font-weight:700;letter-spacing:-.02em}
.roles{gap:clamp(10px,1.6vw,22px) clamp(26px,3.4vw,54px)}
.roles li{padding:0;border:0;border-radius:0;font-size:clamp(22px,2.8vw,44px);font-weight:800;letter-spacing:-.04em}
.roles li:hover{color:var(--point)}
.roles.engines li{font-size:clamp(22px,2.8vw,44px)}
.stepper .no,.t-when{font-size:13px;font-weight:700;color:var(--point)}
.stepper h3,.timeline h3{font-size:clamp(21px,1.9vw,28px);font-weight:800;letter-spacing:-.035em}
.numlist li::before{font-size:14px;font-weight:700}
.pipe{gap:0;border-top:1px solid var(--ink)}
.pipe li,.pipe li.human{border:0;border-bottom:1px solid var(--line);background:none;padding-left:0}
.pipe.wide{gap:clamp(16px,2vw,28px);border-top:0}
.pipe.wide li{border-top:1px solid var(--ink);border-bottom:0}
.pipe .who,.pipe li.human .who{padding:0;border:0;background:none;color:var(--muted)}
.pipe li.human .who{color:var(--point)}
.pipe li{padding-right:60px}

/* scroll stories */
.askbox{border:0;border-bottom:2px solid var(--ink);border-radius:0;box-shadow:none;padding-left:0;padding-right:0;background:none}
.askbox .ai{border-radius:0}
.send{border-radius:0}
.answer{border:0;padding-left:0;padding-right:0}
.picks{gap:clamp(14px,2vw,28px)}
.picks li{padding:14px 0 0;border:0;border-top:1px solid var(--ink)}
.picks li.us{border:0;border-top:2px solid var(--point);background:none}
.cites em,.cites i{border-radius:0}
.toggle,.toggle button{border-radius:0}
.ghost{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.exit-zero{border:0;padding:0}
.mini{border:0}
.mini::before{display:none}
.mini .askbox{border-bottom:1px solid var(--ink);padding:0 0 16px}
.mini .answer{padding:16px 0 0}
.mini figcaption{padding:12px 0 0;border-top:0}
.phone,.vcard{border-radius:0}
.phone{border:0}
.feed li span:last-child{font-size:14px}
.pin-prog{bottom:18px}
.idx a{border-radius:0}

/* report, cases, magazine */
.rp{width:100%;border:0;border-top:1px solid var(--ink)}
.rp-top{padding:16px 0;border-bottom:1px solid var(--line)}
.rp-who{padding:20px 0;font-size:17px}
.rp-sum{gap:clamp(24px,4vw,60px)}
.rp-sum li{padding:clamp(20px,2.4vw,32px) 0;border:0}
.rp-two{gap:clamp(30px,5vw,80px)}
.rp-two .rp-block:first-child{border-right:0}
.rp-block{padding:28px 0 34px}
.rp-block h2{font-size:clamp(21px,1.9vw,28px);font-weight:800;letter-spacing:-.035em}
.rp-foot{width:100%}
.case-name{padding:22px 0 0;border-bottom:0;font-size:clamp(28px,3.2vw,50px);letter-spacing:-.04em}
.case-list .case+.case,.case-panel .case+.case{margin-top:clamp(60px,8vw,110px)}
.case-panel,.case-tabs{width:100%}
.case-tabs{margin-bottom:clamp(50px,6vw,90px);border:0;border-bottom:1px solid var(--ink);background:none}
.case-tabs button{padding:0 0 18px;border:0;background:none;color:var(--muted);text-align:left;font-size:clamp(20px,2.8vw,44px);font-weight:800;letter-spacing:-.04em;box-shadow:none;transition:color .3s}
.case-tabs button:hover:not([aria-selected=true]){background:none;color:var(--ink)}
.case-tabs button[aria-selected=true]{background:none;color:var(--point);box-shadow:inset 0 -3px 0 var(--point)}
.mag-list{gap:clamp(30px,4vw,60px)}
.mag-list a{padding:clamp(16px,2vw,26px) 0 0;border:0;border-top:1px solid var(--ink)}
.mag-list a:hover{border-color:var(--point)}
.mag-list h2,.mag-list h4{font-size:clamp(25px,2.8vw,44px);font-weight:800;line-height:1.28;letter-spacing:-.04em}

/* contact */
.contact-sec{padding:clamp(40px,5vw,70px) var(--pad) 0;max-width:none}
.main-form{border:0;padding:0}
.fld input,.fld textarea{padding:13px 0;border:0;border-bottom:1px solid var(--ink)}
.fld input:focus,.fld textarea:focus{border-color:var(--point);box-shadow:inset 0 -1px 0 var(--point)}
.chip span{border-radius:0}
.drawer,.exit-pop{box-shadow:none}

/* section dividers removed in favour of space */
.gallery-sec,.faq-wrap{border-top:0}
.faq-wrap{max-width:none;padding-bottom:0}
.footer{margin-top:var(--sec);border-top:1px solid var(--line)}
body.has-final .footer{margin-top:0}

@media(max-width:860px){
  .three,.rp-sum,.rp-two{grid-template-columns:1fr}
  .rp-two{gap:0}
  .rp-sum{gap:0}
  .rp-sum li{border-bottom:1px solid var(--line)}
  .rp-sum li:last-child{border-bottom:0}
  .contact-sec{gap:60px}
  .pipe.wide{border-top:1px solid var(--ink);gap:0}
  .pipe.wide li{border-top:0;border-bottom:1px solid var(--line)}
}
@media(max-width:560px){
  .case-tabs button{font-size:18px;padding-bottom:14px;letter-spacing:-.03em}
  .p-title{font-size:13vw}
}

/* ---------------- 2차: 궤도, 3D 기울임, 청록 전환, 인터랙션 ---------------- */
.h-hero{position:relative;isolation:isolate;overflow:hidden}

/* perspective flatten on scroll */
[data-tilt]{will-change:transform;transform-origin:50% 60%}
.h-prod{perspective:1400px}

/* pick a question */
.h-ask{padding:var(--sec) var(--pad) 0}
.h-chips{display:flex;flex-wrap:wrap;gap:clamp(14px,2.4vw,40px);margin-top:clamp(30px,4vw,60px)}
.h-chips button{padding:0 0 8px;border:0;border-bottom:3px solid transparent;background:none;color:#a9b0ae;font:inherit;font-size:clamp(20px,2.6vw,42px);font-weight:800;letter-spacing:-.04em;cursor:pointer;transition:color .3s,border-color .3s}
.h-chips button:hover{color:var(--ink)}
.h-chips button.on{color:var(--point);border-color:var(--point)}
.h-typed{margin:clamp(40px,6vw,90px) 0 0;min-height:2.5em;font-size:clamp(32px,6vw,104px);font-weight:800;line-height:1.2;letter-spacing:-.05em}
.h-caret{display:inline-block;width:.07em;height:.9em;margin-left:.06em;vertical-align:-.08em;background:var(--point);animation:blink 1s steps(1) infinite}
.h-q{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(18px,3vw,50px);margin-top:clamp(30px,4vw,60px);padding-top:clamp(20px,2.4vw,34px);border-top:1px solid var(--ink)}
.h-q>b{font-size:clamp(80px,12vw,200px);font-weight:800;line-height:1;letter-spacing:-.06em;color:var(--point)}
.h-q>b small{font-size:.28em;letter-spacing:-.03em;color:var(--ink)}
.h-q p{margin:0;font-size:clamp(19px,2vw,30px);font-weight:700;line-height:1.4;letter-spacing:-.035em}
.h-q .btn{margin-left:auto}

/* teal wipe */
.h-wipe{height:220vh;margin-top:var(--sec)}
.h-wipe-pin{position:sticky;top:0;height:100svh;overflow:hidden}
.h-wipe-in{position:absolute;inset:0;display:flex;align-items:center;padding:0 var(--pad);background:var(--point);color:#fff}
.h-wipe-in .h-big{font-size:clamp(44px,9vw,160px)}
.h-fill{margin-top:0}

/* agent Q board */
.q-board{padding:var(--sec) var(--pad) 0}
.q-stage{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,100px);align-items:center}
.q-side .h-lead{margin-top:clamp(16px,1.8vw,26px)}
.q-side .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(20px,2.4vw,32px)}
.q-steps{list-style:none;margin:clamp(20px,2.6vw,36px) 0 0;padding:0;display:none}
.q-panel{margin-bottom:60px}
.q-panel h3{margin:0 0 clamp(14px,1.8vw,26px);font-size:clamp(20px,1.9vw,28px);font-weight:800;letter-spacing:-.035em}
.q-panel h3 small{margin-left:8px;font-size:13px;font-weight:600;letter-spacing:0;color:var(--point)}
.q-rank{--r:clamp(58px,8.4vh,86px);list-style:none;margin:0;padding:0;position:relative}
.q-rank li{display:flex;align-items:center;gap:clamp(16px,2vw,32px);height:var(--r);border-top:1px solid var(--line);font-size:clamp(22px,2.6vw,42px);font-weight:800;letter-spacing:-.04em;background:#fff}
.q-pos{width:1.2em;color:var(--muted)}
.q-d{margin-left:auto;font-size:.6em;color:var(--muted)}
.q-rank .me,.q-rank .me .q-pos,.q-rank .me .q-d{color:var(--point)}
.q-share{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(20px,3vw,50px)}
.q-share svg{display:block;width:100%;height:auto;transform:rotate(-90deg)}
.q-arc{fill:none;stroke:var(--ink);stroke-width:13;stroke-linecap:butt}
.q-arc.me{stroke:var(--point)}
.q-share ul{list-style:none;margin:0;padding:0}
.q-share li{display:flex;align-items:baseline;gap:4px;padding:clamp(5px,.7vw,10px) 0;border-top:1px solid var(--line);font-size:clamp(15px,1.3vw,19px);font-weight:600}
.q-share li span{margin-right:auto}
.q-share li b{font-size:clamp(24px,2.6vw,40px);font-weight:800;letter-spacing:-.04em}
.q-share li.me,.q-share li.me b{color:var(--point)}
.q-freq{list-style:none;margin:0;padding:0}
.q-freq li{display:grid;grid-template-columns:1fr auto;gap:8px 20px;align-items:center;padding:clamp(11px,1.5vh,18px) 0;border-top:1px solid var(--line)}
.q-freq p{grid-column:1/-1;margin:0;font-size:clamp(18px,1.9vw,29px);font-weight:800;letter-spacing:-.035em}
.q-cells{display:grid;grid-template-columns:repeat(10,1fr);gap:clamp(3px,.5vw,7px)}
.q-cells i{aspect-ratio:2.2/1;background:#eef1f0;transition:background .25s}
.q-cells i.on{background:var(--point)}
.q-freq b{font-size:clamp(24px,2.6vw,40px);font-weight:800;letter-spacing:-.04em}
.q-freq b small{font-size:.5em;color:var(--muted)}

/* enhanced with JS: pinned three-act board */
.q-ready.q-board{height:380vh;padding:0;margin-top:var(--sec)}
.q-ready .q-stage{position:sticky;top:0;height:100svh;padding:64px var(--pad) 20px}
.q-ready .q-steps{display:block}
.q-ready .q-steps li{padding:clamp(5px,.8vh,10px) 0;font-size:clamp(16px,1.5vw,22px);font-weight:800;letter-spacing:-.03em;color:#b6bdbb;transition:color .35s}
.q-ready .q-steps li.on{color:var(--point)}
.q-ready .q-panels{position:relative;height:min(68vh,600px);perspective:1400px}
.q-ready .q-panel{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transform:rotateY(-16deg) translateX(9%) scale(.92);transform-origin:50% 50%;transition:opacity .55s,transform .85s var(--ease),visibility .55s}
.q-ready .q-panel.past{transform:rotateY(16deg) translateX(-9%) scale(.92)}
.q-ready .q-panel.on{opacity:1;visibility:visible;transform:none}
.q-ready .q-rank{height:calc(var(--r) * 5)}
.q-ready .q-rank li{position:absolute;left:0;right:0;top:0;will-change:transform}

@media(max-width:860px){
  .q-stage{grid-template-columns:1fr}
  .q-ready .q-stage{align-content:center;gap:18px;padding:72px var(--pad) 86px}
  .q-ready .q-side .h-lead,.q-ready .q-side .cta-row,.q-ready .q-side .h-no{display:none}
  .q-ready .q-side .h-mid{font-size:clamp(25px,7.2vw,38px)}
  .q-ready .q-steps{display:flex;gap:14px;margin-top:10px}
  .q-ready .q-steps li{font-size:13px;padding:0}
  .q-ready .q-panels{height:min(54vh,430px)}
  .q-rank{--r:clamp(48px,7vh,62px)}
  .q-share{grid-template-columns:.8fr 1fr;gap:14px}
  .h-q .btn{margin-left:0}
  .h-wipe-in .h-big{font-size:12.4vw}
}

/* ---------------- 메인 오프닝 ---------------- */
.intro .h-title{visibility:hidden}
.intro .netbg,.intro .h-hero .fade{opacity:0!important;animation:none!important}
.intro .h-title .split .ch,.intro .h-title .slide,.intro-done .h-title .split .ch,.intro-done .h-title .slide{animation:none!important;transform:none!important}
.intro-done .h-claim{--d:.02s!important}
.intro-done .h-cta{--d:.14s!important}
.intro-stage{position:fixed;inset:0;z-index:70;background:#fff;overflow:hidden;pointer-events:none;transition:opacity .28s linear}
.intro-w{position:absolute;white-space:nowrap;font-weight:800;line-height:1;color:var(--ink);will-change:transform,opacity,filter}
.intro-bar{position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1px;background:var(--point);transform:scaleX(0)}
.intro-ko{position:absolute;overflow:hidden;white-space:nowrap;color:var(--ink)}
.intro-ko span{display:inline-block;transform:translateY(112%)}
.intro-stage canvas{position:absolute;inset:0;width:100%;height:100%}

/* ---------------- 3차: 둥실 글자, 통신망, 입체 버튼 ---------------- */
.netbg{position:absolute;inset:0;z-index:-1;width:100%;height:100%;transition:opacity 1s;pointer-events:none}
.h-claim{text-shadow:0 0 10px #fff,0 0 10px #fff,0 0 4px #fff}

@media(prefers-reduced-motion:no-preference){
  .h-title .split .ch:nth-child(-n+4){--fd:0s}
  .h-title .split .ch:nth-child(n+5):nth-child(-n+8){--fd:-1.5s}
  .h-title .split .ch:nth-child(n+9){--fd:-3s}
  @keyframes h-float{0%,100%{translate:0 .036em;rotate:-.7deg}50%{translate:0 -.036em;rotate:.7deg}}
  .js.loaded .h-title .split .ch{animation:line-up 1s calc(var(--d,0s) + var(--i,0) * 35ms) var(--ease) forwards,h-float 4.6s calc(var(--fd,0s) - var(--i,0) * .07s) ease-in-out infinite}
  .intro-done .h-title .split .ch{animation:h-float 4.6s calc(var(--fd,0s) - var(--i,0) * .07s) ease-in-out infinite!important;transform:none!important}
}

/* buttons: plain shape, light circling the border */
@property --ba{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes ba-spin{to{--ba:360deg}}
body .btn{position:relative;padding:18px 30px;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;overflow:visible;box-shadow:none;transition:transform .3s var(--ease),background .3s}
body .btn:has(>span){padding:18px 30px}
body .btn-lg,body .btn-lg:has(>span){padding:22px 38px;font-size:17px}
body .btn>span,body .btn-lg>span,body .btn-line>span{display:inline-block;flex:none;width:auto;height:auto;padding:0;border-radius:0;background:none;box-shadow:none;color:inherit;font-size:1em;transition:transform .35s var(--ease)}
body .btn:hover>span,body .btn-line:hover>span{transform:translateX(4px);box-shadow:none}
body .btn:hover{transform:translateY(-1px);box-shadow:none}
body .btn:active{transform:scale(.985)}
body .btn-block,body .btn-block:has(>span){justify-content:center}
body .btn-line{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(11,13,12,.18)}
body .btn-line:hover{color:var(--ink);box-shadow:inset 0 0 0 1px rgba(11,13,12,.18)}
body .btn::before,body .contact::before{content:'';display:block;position:absolute;inset:-2px;z-index:1;border-radius:inherit;padding:2px;pointer-events:none;background:conic-gradient(from var(--ba),transparent 0 66%,#00a68c 82%,#d8fff6 93%,#00a68c 97%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;transform:none;transition:none;animation:ba-spin 2.8s linear infinite}
body .btn:hover::before,body .contact:hover::before{animation-duration:1.3s}
body .contact{position:relative;padding:10px 20px!important;display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:var(--ink);box-shadow:none}
body .contact:hover{background:var(--ink)}
body .contact span{display:inline-block;width:auto;height:auto;margin:0;border-radius:0;background:none;box-shadow:none;font-size:1em}
@media(prefers-reduced-motion:reduce){body .btn::before,body .contact::before{animation:none}}

/* hero background drafts */
.aura{position:absolute;inset:0;z-index:-2;overflow:hidden;display:none;pointer-events:none}
body[data-bg=a] .aura-a,body[data-bg=b] .aura-b,body[data-bg=c] .aura-c{display:block}
body[data-bg=a] .netbg,body[data-bg=b] .netbg{display:none}

.aura-a{background:#fff}
.aura-horizon{position:absolute;left:50%;top:15vh;width:170vw;height:170vw;margin-left:-85vw;border-radius:50%;background:linear-gradient(180deg,#a8ecdc 0,#dcf7f0 7%,#fff 24%);box-shadow:0 -14px 90px 18px rgba(0,166,140,.3),0 -2px 14px 2px rgba(0,166,140,.7);animation:aura-breathe 7s ease-in-out infinite}
.aura-horizon::after{content:'';position:absolute;inset:-3px;border-radius:50%;padding:3px;background:conic-gradient(from var(--ba),transparent 0 88%,#00a68c 95%,#fff 98%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;animation:ba-spin 9s linear infinite}
@keyframes aura-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6vh)}}
.aura-star{position:absolute;left:50%;top:calc(15vh - 56px);width:30px;height:30px;margin-left:-15px;color:var(--point);animation:aura-star 4.5s ease-in-out infinite}
.aura-star svg{display:block;width:100%;height:100%;fill:currentColor}
@keyframes aura-star{0%,100%{transform:scale(.8) rotate(0);opacity:.7}50%{transform:scale(1.15) rotate(45deg);opacity:1}}

.aura-b{background:#fff}
.aura-b i{position:absolute;display:block;border-radius:50%;filter:blur(70px);will-change:transform}
.aura-b i:nth-child(1){left:-8%;top:-14%;width:52vw;height:52vw;background:#9eebd9;opacity:.75;animation:aura-d1 14s ease-in-out infinite alternate}
.aura-b i:nth-child(2){right:-12%;top:8%;width:46vw;height:46vw;background:#00a68c;opacity:.34;animation:aura-d2 17s ease-in-out infinite alternate}
.aura-b i:nth-child(3){left:24%;bottom:-30%;width:58vw;height:40vw;background:#c7f4e9;opacity:.9;animation:aura-d3 12s ease-in-out infinite alternate}
.aura-b i:nth-child(4){left:40%;top:18%;width:22vw;height:22vw;background:#fff;opacity:.9;animation:aura-d2 10s ease-in-out infinite alternate-reverse}
@keyframes aura-d1{to{transform:translate(16vw,10vh) scale(1.15)}}
@keyframes aura-d2{to{transform:translate(-14vw,14vh) scale(.9)}}
@keyframes aura-d3{to{transform:translate(-12vw,-12vh) scale(1.1)}}

.aura-c{background:radial-gradient(60% 55% at 22% 16%,#c8f4e9 0,rgba(200,244,233,0) 70%),radial-gradient(55% 60% at 84% 82%,#b4eedf 0,rgba(180,238,223,0) 70%),#fff}

@media(prefers-reduced-motion:reduce){.aura *,.aura-c{animation:none!important}}

.bg-switch{position:fixed;left:50%;bottom:22px;z-index:65;display:flex;gap:4px;padding:5px;transform:translateX(-50%);border-radius:999px;background:var(--ink);box-shadow:0 12px 26px rgba(11,13,12,.35);font-size:14px;font-weight:700}
.bg-switch button{padding:9px 16px;border:0;border-radius:999px;background:none;color:#fff;font:inherit;white-space:nowrap;cursor:pointer}
.bg-switch button.on{background:var(--point)}
@media(max-width:860px){.bg-switch{bottom:96px;font-size:12px}.bg-switch button{padding:8px 10px}}

/* 시안 D: 빛기둥 + 물결 점 바닥 / 시안 E: 느리게 도는 유리 링 */
body[data-bg] .netbg{display:none}
body[data-bg=d] .aura-d,body[data-bg=e] .aura-e{display:block}

.aura-d{background:#fff}
.aura-beam{position:absolute;left:50%;top:-4%;width:min(58vw,820px);height:82%;margin-left:calc(min(58vw,820px) / -2);background:linear-gradient(90deg,rgba(0,166,140,0) 0,rgba(0,166,140,.1) 26%,rgba(0,166,140,.34) 46%,rgba(120,232,208,.42) 50%,rgba(0,166,140,.34) 54%,rgba(0,166,140,.1) 74%,rgba(0,166,140,0) 100%);-webkit-mask:linear-gradient(180deg,#000 0,#000 74%,transparent 100%);mask:linear-gradient(180deg,#000 0,#000 74%,transparent 100%);transform-origin:50% 100%;animation:aura-beam 6s ease-in-out infinite}
@keyframes aura-beam{0%,100%{opacity:.78;transform:scaleX(.92)}50%{opacity:1;transform:scaleX(1.06)}}
.aura-glow{position:absolute;left:50%;top:70%;width:min(70vw,980px);height:150px;margin:-75px 0 0 calc(min(70vw,980px) / -2);border-radius:50%;background:radial-gradient(closest-side,rgba(0,166,140,.42),rgba(0,166,140,0));animation:aura-beam 6s ease-in-out infinite}
.aura-floor{position:absolute;inset:0;width:100%;height:100%}

.aura-e{background:#fff;perspective:1500px}
.torus{--R:min(47vw,640px);--w:min(15vw,210px);position:absolute;left:66%;top:44%;width:0;height:0;transform-style:preserve-3d;transform:rotateX(66deg) rotateY(-20deg)}
.torus-spin{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;animation:torus-spin 110s linear infinite}
@keyframes torus-spin{to{transform:rotateZ(360deg)}}
.torus i{position:absolute;left:0;top:0;display:block;width:var(--w);height:var(--w);margin:calc(var(--w) / -2);border-radius:30%;background:linear-gradient(135deg,rgba(0,166,140,.2) 0,rgba(214,250,241,.24) 48%,rgba(0,166,140,.1) 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),inset 0 0 0 2px rgba(0,166,140,.13);backface-visibility:visible;transform:rotateZ(var(--a)) translateX(var(--R)) rotateY(90deg)}
@media(max-width:860px){.torus{left:50%;top:44%;--R:50vw;--w:38vw}}

/* 시안 C: 60번 진단을 뜻하는 유리판, 글자 뒤 흰 번짐, H1의 O에서 태어나는 링 */
.torus i{transition:background .5s,box-shadow .5s}
.torus i.on{background:linear-gradient(135deg,rgba(0,166,140,.78) 0,rgba(90,224,196,.62) 55%,rgba(0,166,140,.6) 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.85),0 0 22px rgba(0,166,140,.55)}
.h-ring-note{display:none;margin:clamp(16px,2.2vh,26px) auto 0;max-width:640px;font-size:clamp(13px,1vw,15px);line-height:1.6;letter-spacing:-.01em;color:var(--ink-2);text-shadow:0 0 8px #fff,0 0 8px #fff}
.h-ring-note b{color:var(--ink);font-weight:700}
.h-ring-note span{color:var(--muted)}
body[data-bg=e] .h-ring-note{display:block}
.intro-done .h-ring-note{--d:.3s!important}
.intro .torus{scale:0}
@keyframes torus-in{from{scale:.06;translate:5vw -20vh}to{scale:1;translate:0 0}}
.intro-done .torus{animation:torus-in 1.6s var(--ease) both}
@media(prefers-reduced-motion:reduce){.intro-done .torus{animation:none}}

/* 유리판: 투명한 면, 밝은 모서리, 판을 따라 지나가는 반짝임 */
.torus i{overflow:hidden;background:linear-gradient(125deg,rgba(255,255,255,.62) 0,rgba(255,255,255,.1) 30%,rgba(0,166,140,.09) 58%,rgba(255,255,255,.34) 82%,rgba(0,166,140,.15) 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.95),inset 1.5px 1.5px 1px rgba(255,255,255,.9),inset -1px -1px 2px rgba(0,110,92,.3),inset 0 0 22px rgba(0,166,140,.12)}
.torus i::after{content:'';position:absolute;top:-20%;bottom:-20%;left:0;width:46%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.95) 50%,rgba(255,255,255,0));transform:translateX(-160%) skewX(-18deg);animation:plate-shine 6s linear infinite;animation-delay:calc(var(--i,0) * -.1s)}
@keyframes plate-shine{0%,62%{transform:translateX(-160%) skewX(-18deg)}100%{transform:translateX(360%) skewX(-18deg)}}
.torus i.on{background:linear-gradient(125deg,rgba(255,255,255,.7) 0,rgba(0,166,140,.42) 34%,rgba(60,214,184,.5) 62%,rgba(255,255,255,.4) 86%,rgba(0,166,140,.5) 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.95),inset 1.5px 1.5px 1px rgba(255,255,255,.9),inset -1px -1px 2px rgba(0,110,92,.35),0 0 20px rgba(0,166,140,.5)}
@media(prefers-reduced-motion:reduce){.torus i::after{animation:none}}

/* 시안 D: WebGL 유리 리본 */
body[data-bg=f] .aura-f{display:block}
.aura-f{background:#fff;transition:opacity 1s}
.aura-f.no-webgl{background:linear-gradient(160deg,#fff 30%,#dcf7f0 55%,#fff 75%)}
.aura-f .ribbon{display:block;width:100%;height:100%;opacity:0;transition:opacity 1.2s}
.aura-f .ribbon.on{opacity:1}
.intro .aura-f{opacity:0}

/* 시안 E: 크롬 3D 오브제와 어두운 장면 */
.o3d-canvas{position:absolute;z-index:2;pointer-events:none}
body.o3d-on .ch.o3d{color:transparent}
body.o3d-on[data-bg=g] .ch.o3d .ring-o{display:none}
body:not([data-bg=g]) .o3d-canvas{display:none}
body:not([data-bg=g]) .ch.o3d{color:inherit}
body:not([data-bg=g]) .ch.ring.o3d{color:transparent}
.h-core{display:none;height:280vh;margin-top:var(--sec);background:#0b0d0c;color:#fff}
body[data-bg=g] .h-core{display:block}
.h-core-pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}
.h-core-gl{position:absolute;inset:0;width:100%;height:100%}
.h-core-t{position:relative;z-index:2;display:flex;justify-content:space-between;width:100%;margin:0;padding:0 var(--pad);font-size:clamp(34px,6.2vw,112px);font-weight:800;letter-spacing:-.045em;line-height:1.1}
.h-core-t span{transition:none}
.h-core-t span:first-child{transform:translateX(calc(var(--p,0) * -4vw))}
.h-core-t span:last-child{transform:translateX(calc(var(--p,0) * 4vw))}
.h-core-s{position:absolute;left:0;right:0;bottom:9vh;z-index:2;margin:0;text-align:center;font-size:clamp(16px,1.5vw,22px);font-weight:600;letter-spacing:-.02em;color:#c9cfcd}
@media(max-width:860px){.h-core-t{flex-direction:column;align-items:center;gap:min(98vw,58svh);text-align:center}.h-core-t span:first-child,.h-core-t span:last-child{transform:none}}

/* 어두운 장면: 짧은 스크롤, 글이 주인공 */
.h-core{height:175vh}
.h-core-pin{align-items:stretch;justify-content:center}
.h-core-t{display:block;width:auto;max-width:72%;font-size:clamp(46px,7.8vw,136px);line-height:1.14}
.h-core-t span:nth-child(n){display:block;opacity:var(--v,1);transform:translateY(calc((1 - var(--v,1)) * 46px))}
.h-core-t span:nth-child(1){--v:clamp(0,calc((var(--p,1) - .02) * 5),1)}
.h-core-t span:nth-child(2){--v:clamp(0,calc((var(--p,1) - .16) * 5),1)}
.h-core-t span:nth-child(3){--v:clamp(0,calc((var(--p,1) - .3) * 5),1)}
.h-core-s{position:relative;left:auto;right:auto;bottom:auto;padding:0 var(--pad);margin-top:clamp(20px,2.4vw,36px);text-align:left;font-size:clamp(18px,1.9vw,29px);color:#fff;opacity:clamp(0,calc((var(--p,1) - .44) * 5),1)}
@media(max-width:860px){
  .h-core-pin{justify-content:flex-start;padding-top:92px}
  .h-core-t{display:block;max-width:none;font-size:13.4vw;text-align:left}
  .h-core-s{font-size:17px}
}
