@font-face{font-family:Pretendard;src:url('assets/PretendardSubset.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:PretendardFull;src:url('assets/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:HanbangLogo;src:url('assets/BlackHanSans-Logo-v13.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--blue:#087BEE;--hover:#0068D3;--dark:#064B9C;--soft:#EAF4FF;--blue-border:#BBDDFD;--ink:#151D2A;--text:#344255;--muted:#647286;--line:#E2E8F0;--alt:#F5F7FA;--header:96px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-family:Pretendard,PretendardFull,'Apple SD Gothic Neo',sans-serif;font-size:16px;line-height:1.7;letter-spacing:-.01em;color:var(--text);background:#fff}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}svg{display:block;width:24px;height:24px;flex-shrink:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{color:var(--ink);letter-spacing:-.035em;word-break:keep-all;overflow-wrap:anywhere}h1{font-size:64px;line-height:1.2;font-weight:750}h2{font-size:42px;line-height:1.3;font-weight:700}h3{font-size:22px;line-height:1.4;font-weight:700}p{word-break:keep-all;overflow-wrap:anywhere}small{font-size:13px;line-height:1.55}button:focus-visible,a:focus-visible,video:focus-visible{outline:3px solid var(--blue);outline-offset:5px}::selection{background:var(--blue-border);color:var(--dark)}[hidden]{display:none!important}.container{width:calc(100% - 80px);max-width:1200px;margin:0 auto}.section{padding:112px 0}.lead{font-size:20px;line-height:1.6}.skip-link{position:fixed;top:-100px;left:20px;z-index:200;background:#fff;padding:12px 20px}.skip-link:focus{top:8px}
/* Navigation and text-only wordmark */
.site-header{height:var(--header);position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:32px}.wordmark{display:inline-flex;flex-direction:column;align-items:center;gap:3px;line-height:1;white-space:nowrap;padding-top:4px}.wordmark-sub{font-size:10px;font-weight:800;letter-spacing:.34em;margin-right:-.34em;color:var(--dark)}.wordmark strong{font-family:HanbangLogo,Pretendard,sans-serif;font-weight:400;font-size:40px;letter-spacing:-.06em;color:var(--blue);transform:skew(-5deg)}.desktop-nav{display:flex;gap:28px;align-items:center;margin-left:auto}.desktop-nav a{font-size:18px;font-weight:600;padding:24px 0;transition:color .15s}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--blue)}.header-actions{display:flex;align-items:center;gap:8px}.button{min-height:56px;padding:16px 24px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;border:1px solid transparent;font-size:16px;font-weight:700;line-height:1.25;transition:background .18s,color .18s,transform .15s,box-shadow .18s;text-align:center;white-space:nowrap}.button svg{width:20px;height:20px}.button:active,.icon-button:active{transform:scale(.97)}.primary{background:var(--dark);color:#fff}.primary:hover{background:var(--hover);box-shadow:0 5px 16px #064b9c20}.secondary{background:#fff;border-color:var(--blue-border);color:var(--dark)}.secondary:hover{background:var(--soft);border-color:var(--blue)}.kakao{background:#FEE500;color:#292600}.kakao:hover{background:#f3d800}.header-call{min-height:44px;padding:12px 20px;font-size:14px;background:var(--dark);color:#fff}.header-call:hover{background:var(--hover)}.icon-button{border:0;background:transparent;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .15s,transform .12s}.icon-button:hover{background:var(--soft)}.menu-toggle{display:none}.mobile-nav{position:absolute;top:calc(var(--header) - 1px);background:#fff;left:0;width:100%;padding:16px 20px 24px;border-bottom:1px solid var(--line);max-height:calc(100svh - 160px);overflow:auto}.mobile-nav a{display:flex;align-items:center;justify-content:space-between;padding:12px 4px;border-bottom:1px solid var(--line);font-weight:600}.mobile-nav svg{width:18px;height:18px}
/* Larger brand lockup and pill-shaped contact controls. */
.header-inner{max-width:1360px;gap:28px}
.site-header .wordmark strong{font-size:52px}.site-header .wordmark-sub{font-size:12px}
.header-call{min-height:50px;padding:14px 22px;font-size:16px;border-radius:999px}
.header-kakao{width:50px;min-height:50px;padding:0;border-radius:50%;flex-shrink:0}
.header-kakao>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.header-actions{gap:10px}.mobile-nav a{font-size:18px}
/* The fist and two oversized badges form one graphic composition. */
.hero{position:relative;isolation:isolate;overflow:hidden;background:#061C36;color:#fff}
.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 44%;opacity:.3}
.hero-shade{position:absolute;inset:0;background:#061C36;opacity:.62}
.hero-blue-plane{position:absolute;inset:0;background:#087BEE;clip-path:polygon(67% 0,100% 0,100% 100%,51% 100%);opacity:.9}
.hero-grid{position:relative;max-width:1360px;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);align-items:center;gap:12px;min-height:740px;padding-top:70px;padding-bottom:70px}
.hero-copy{position:relative;z-index:3;min-width:0}
.hero h1{color:#fff;font-family:HanbangLogo,Pretendard,sans-serif;font-size:120px;line-height:1.02;font-weight:400;letter-spacing:-.04em;transform:skew(-9deg);transform-origin:left bottom;margin-left:8px}
.hero-title-line{display:block;white-space:nowrap}
.hero-punch-word{color:#69BFFF;margin-right:3px}
.hero-lead{margin-top:30px;font-size:19px;line-height:1.75;color:#DDEAFF;letter-spacing:-.02em}
.cta-row{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap}
.hero .cta-row{margin-top:38px}
.hero .button{border-radius:999px;min-height:76px;padding:18px 26px;font-size:18px;font-weight:750;border:1px solid transparent;position:relative;transition:transform .18s,box-shadow .18s,background .18s}
.hero .primary{color:#064B9C;background:#fff;gap:14px;box-shadow:0 6px 0 #96B3D4,0 13px 28px #00000026}
.hero .primary>svg:first-child{width:26px;height:26px;animation:call-nudge 3.8s 1.3s 2}
.hero .primary>svg:last-child{width:20px;height:20px;margin-left:4px}
.call-copy{display:flex;text-align:left}.call-copy strong{font-size:24px;line-height:1;letter-spacing:-.025em}
.hero .kakao{box-shadow:0 6px 0 #C5AC00,0 13px 28px #00000026;gap:10px}
.hero .kakao>svg{width:24px;height:24px}
.hero .button:hover{transform:translateY(-3px)}.hero .primary:hover{background:#F2F8FF;box-shadow:0 9px 0 #96B3D4,0 17px 30px #00000030}.hero .kakao:hover{background:#FFE928;box-shadow:0 9px 0 #C5AC00,0 17px 30px #00000030}
.hero .button:active{transform:translateY(4px);box-shadow:0 2px 0 #567698}.hero .kakao:active{box-shadow:0 2px 0 #BCA300}
.hero-art{position:relative;width:100%;aspect-ratio:1;margin-left:0;z-index:2;isolation:isolate}
.impact-stage{position:absolute;inset:4% -1% -4%;transform:rotate(-9deg)}
.impact-burst{position:absolute;inset:0;width:100%;height:100%;color:#91D4FF;opacity:.28;transform:scale(1.1);animation:burst-in .9s .2s both}

.fist-image{position:relative;width:100%;height:100%;object-fit:contain;z-index:2;filter:drop-shadow(12px 20px 0 #034EAA80);animation:hero-punch .85s .15s cubic-bezier(.15,.8,.2,1) both}







@keyframes promise-in{from{opacity:0;translate:0 12px;scale:.8}to{opacity:1;translate:0 0;scale:1}}
@keyframes hero-punch{0%{opacity:0;transform:translate(65px,25px) scale(.64)}65%{opacity:1;transform:translate(-10px,-4px) scale(1.07)}100%{opacity:1;transform:translate(0) scale(1)}}
@keyframes burst-in{0%,25%{opacity:0}65%{opacity:.4}100%{opacity:.28}}
@keyframes call-nudge{0%,8%,16%,24%,100%{transform:rotate(0)}4%,20%{transform:rotate(-14deg)}12%{transform:rotate(14deg)}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* Six services, each illustrated with a supplied field photograph */
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:48px}.section-intro{font-size:16px;line-height:1.7;color:var(--muted);max-width:380px;padding-bottom:4px}.services{background:var(--alt)}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-card{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;min-width:0}.service-photo{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dee5eb}.service-photo img{height:100%;width:100%;object-fit:cover;transition:transform .4s}.service-card:hover .service-photo img{transform:scale(1.035)}.service-tag{position:absolute;left:16px;top:16px;padding:4px 10px;border-radius:6px;background:#fff;color:var(--dark);font-size:11px;font-weight:700}.service-body{padding:28px}.service-card h3{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.service-card h3 svg{width:22px;height:22px;color:var(--blue);stroke-width:1.7}.service-description{font-size:15px;line-height:1.65;min-height:50px;color:var(--muted)}.price-row{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.price-row span{font-size:12px;color:var(--muted)}.price-row strong{font-size:16px;color:var(--ink);font-weight:600}.price-note{display:flex;gap:12px;margin-top:24px;color:var(--muted);font-size:14px}.price-note svg{width:18px;height:18px;margin-top:3px}.price-note small{display:block;font-size:12px;margin-top:4px}
/* Benefits use typography rather than another photo-card grid */
.strength-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--soft);border:1px solid var(--blue-border);border-radius:24px;overflow:hidden}.strength{padding:32px;position:relative;min-width:0}.strength+.strength{border-left:1px solid var(--blue-border)}.strength-top{display:flex;align-items:center;gap:12px;color:var(--dark);font-size:13px;font-weight:600}.strength-top svg{width:22px;height:22px}.big-stat{font-size:96px;line-height:1.1;letter-spacing:-.055em;font-weight:750;color:var(--blue);margin:8px 0 24px}.big-stat span{font-size:24px;margin-left:8px;letter-spacing:-.03em;font-weight:500}.strength h3{margin-bottom:12px}.strength>p:not(.big-stat){font-size:15px;line-height:1.65}.verification{display:block;font-size:12px;color:var(--muted);margin-top:16px;word-break:keep-all}.text-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:600;color:var(--dark);padding:8px 0;border:0;background:transparent}.text-button svg{width:16px;height:16px}.text-button:hover{color:var(--hover)}.strength-all{background:var(--dark);color:#fff}.strength-all .strength-top,.strength-all .big-stat,.strength-all h3,.strength-all .text-button{color:#fff}.strength-all .big-stat{font-family:HanbangLogo,Pretendard,sans-serif;font-weight:400}.strength-all .big-stat span{font-family:Pretendard,sans-serif;font-size:20px;color:#D8EAFF}.strength-all .text-button{margin-top:12px}.strength-all h3{font-size:24px}
/* Field records: photos have no enlargement interaction */
.works{padding-top:0}.filter-bar{display:flex;gap:8px;align-items:center;margin-bottom:32px;flex-wrap:wrap}.filter{border:1px solid var(--line);border-radius:999px;padding:10px 20px;background:#fff;min-height:44px;font-size:14px;line-height:1.5;transition:background .15s,color .15s}.filter:hover{background:var(--soft)}.filter.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}.gallery-count{margin-left:auto;font-size:13px;color:var(--muted)}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.work-card{min-width:0}.work-card.featured{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column}.work-media{width:100%;position:relative;border-radius:16px;overflow:hidden;background:var(--alt);aspect-ratio:4/3;display:block}.work-media img,.work-media video{width:100%;height:100%;object-fit:cover;display:block}.work-media video{object-fit:contain;background:#14202d}.work-card.featured .work-media{flex:1;min-height:400px;aspect-ratio:auto}.work-card.featured .work-media img{position:absolute;inset:0;object-position:50% 52%}.media-tag{position:absolute;left:16px;top:16px;font-size:12px;background:#fff;color:var(--ink);padding:4px 8px;border-radius:8px;pointer-events:none}.work-card h3{margin-top:16px;font-size:19px}.work-card>p{font-size:14px;color:var(--muted);margin-top:4px}.gallery-note{font-size:13px;color:var(--muted);margin-top:24px}.work-grid.filtered .featured{grid-column:auto;grid-row:auto;display:block}.work-grid.filtered .featured .work-media{aspect-ratio:4/3;min-height:0}
/* Selectable process; one guided pass when it enters the viewport */
.process{background:var(--alt)}.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:0;margin:56px 0 32px;list-style:none}.timeline li{position:relative;min-width:0}.timeline li:not(:last-child):after{content:'→';font-size:24px;line-height:1;position:absolute;top:27px;right:-9px;color:#94AEC8}.process-step{width:100%;text-align:left;background:transparent;border:0;padding:0 8px 16px 0;border-radius:12px;display:flex;flex-direction:column;align-items:flex-start;transition:transform .2s}.step-icon{display:grid;place-items:center;width:80px;height:80px;border-radius:24px;background:#fff;border:1px solid var(--blue-border);color:var(--dark);margin-bottom:24px;transition:background .3s,color .3s,transform .3s}.step-icon svg{width:32px;height:32px;stroke-width:1.6}.step-index{font-size:11px;color:var(--dark);letter-spacing:.1em;font-weight:700;margin-bottom:8px}.process-step strong{font-size:19px;color:var(--ink);line-height:1.4;margin-bottom:12px;letter-spacing:-.03em;word-break:keep-all}.step-copy{font-size:15px;color:var(--muted);line-height:1.7;word-break:keep-all}.process-step.is-active .step-icon{background:var(--dark);color:#fff;transform:translateY(-5px)}.process-step:hover .step-icon{transform:translateY(-5px)}.process-step.is-active strong{color:var(--dark)}.step-detail{display:flex;align-items:center;gap:20px;padding:22px 24px;background:var(--soft);border-radius:12px;border:1px solid var(--blue-border);min-height:80px;color:var(--dark)}.step-detail-number{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.step-detail p{font-size:15px;flex:1}.step-detail>svg{width:20px;height:20px}.process-bottom{margin-top:32px;padding-top:32px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:24px}.process-bottom p{font-size:13px;color:var(--muted);max-width:650px}
/* Contact and persistent conversion controls */
.site-footer{padding:48px 0 120px}.footer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.back-top{display:inline-flex;gap:12px;align-items:center;font-size:13px;min-height:44px}.back-top svg{width:16px;height:16px}.business-info{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px;line-height:1.6;color:var(--muted);max-width:1000px}.footer-bottom{border-top:1px solid var(--line);margin-top:32px;padding-top:24px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px}.contact-dock{position:fixed;right:24px;bottom:24px;z-index:35;display:flex;gap:8px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 6px 28px #102b4b18}.contact-dock .button{min-height:48px;font-size:14px;padding:12px 18px;border-radius:11px}.floating-top{position:fixed;bottom:110px;right:28px;z-index:34;width:48px;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink);box-shadow:0 3px 14px #102b4b10;font-size:10px;font-weight:700}.floating-top svg{width:17px;height:17px;transform:rotate(180deg)}.floating-top:hover{background:var(--soft)}
.info-dialog{width:calc(100% - 40px);max-width:460px;padding:32px;border:0;border-radius:24px;color:var(--text);max-height:calc(100svh - 48px)}dialog::backdrop{background:rgba(10,20,35,.55)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-icon{color:var(--dark);background:var(--soft);display:grid;place-items:center;width:44px;height:44px;border-radius:12px}.info-dialog h2{font-size:26px;margin-bottom:16px}.info-dialog p{font-size:15px;line-height:1.7;margin-bottom:12px}.info-dialog .pending{padding:16px;background:var(--alt);border-radius:12px;font-size:13px;margin:20px 0;color:var(--muted)}.dialog-confirm{width:100%;margin-top:16px}.kakao-id-box{padding:18px 20px;background:var(--alt);border-radius:12px;margin:20px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.kakao-id-box strong{font-size:24px;color:var(--ink);letter-spacing:0}.kakao-id-box button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600;min-height:44px}.info-dialog .copy-status{font-size:13px;color:var(--dark);min-height:22px;margin:0}.reveal{transition:opacity .4s,transform .4s}.reveal.is-pending{opacity:0;transform:translateY(18px)}
@media(max-width:1100px){.desktop-nav{gap:20px}.desktop-nav a{font-size:18px}.header-inner{gap:20px}.strength{padding:28px}.strength-top{font-size:12px;gap:8px}.strength-all h3{font-size:22px}.service-body{padding:24px}.timeline{gap:16px}.process-step strong{font-size:18px}}
@media(min-width:768px) and (max-width:1023px){.container{width:calc(100% - 64px)}.section{padding:80px 0}.desktop-nav{display:none}.menu-toggle{display:flex}.section-heading{gap:32px}.section-heading h2{font-size:36px}.section-intro{font-size:15px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strength{padding:24px}.strength-top{align-items:flex-start}.strength h3,.strength-all h3{font-size:19px}.strength>p:not(.big-stat){font-size:14px}.strength br{display:none}.big-stat{font-size:72px}.big-stat span,.strength-all .big-stat span{font-size:18px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card.featured{grid-column:auto;grid-row:auto;display:block}.work-card.featured .work-media{aspect-ratio:4/3;min-height:0}.works{padding-top:0}.process-step strong{font-size:17px}.step-copy{font-size:14px}.step-copy br{display:none}}
@media(max-width:767px){:root{--header:64px}html{scroll-padding-top:88px}body{font-size:15px;padding-bottom:90px}.container{width:calc(100% - 40px)}.section{padding:72px 0}h2,.section-heading h2{font-size:28px;line-height:1.32}h3{font-size:19px}.lead{font-size:16px}.header-inner{gap:12px}.wordmark strong{font-size:34px}.desktop-nav{display:none}.header-call{padding:10px 12px;min-height:40px;font-size:12px;gap:6px}.header-call svg{width:16px;height:16px}.menu-toggle{display:flex}.header-actions{gap:0}.cta-row{flex-direction:column;gap:10px}.button{min-height:54px;font-size:16px;padding:16px 20px}.line-two{width:12px}.section-heading{display:block;margin-bottom:32px}.section-intro{font-size:15px;margin-top:16px;padding:0;max-width:100%}.section-intro br{display:none}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-body{padding:20px}.service-card h3{font-size:20px}.service-tag{left:12px;top:12px;font-size:10px;padding:4px 7px}.service-description{min-height:0;font-size:14px}.service-description br{display:none}.price-row{margin-top:18px;padding-top:14px;gap:6px}.price-row strong{font-size:14px}.price-note{font-size:13px;gap:8px}.price-note small{font-size:12px}.strength-grid{grid-template-columns:1fr;border-radius:16px}.strength{padding:28px}.strength+.strength{border-left:0;border-top:1px solid var(--blue-border)}.big-stat{font-size:80px;margin:24px 0 16px}.big-stat span{font-size:22px}.strength h3,.strength-all h3{font-size:23px}.strength>p:not(.big-stat){font-size:15px}.strength-top{font-size:13px}.verification{margin-top:12px}.strength-all h3 br{display:none}.works{padding-top:0}.filter-bar{gap:6px;margin-bottom:24px}.filter{font-size:12px;padding:10px 13px}.gallery-count{width:100%;margin:6px 0 0;font-size:12px}.work-grid{grid-template-columns:1fr;gap:28px}.work-card.featured{grid-column:auto;grid-row:auto;display:block}.work-card.featured .work-media{aspect-ratio:4/3;min-height:0}.work-card h3{font-size:18px;margin-top:12px}.work-card>p{font-size:13px}.gallery-note{font-size:12px}.timeline{grid-template-columns:1fr 1fr;gap:28px 20px;margin:40px 0 24px}.timeline li:after{display:none}.step-icon{width:64px;height:64px;border-radius:20px;margin-bottom:16px}.step-icon svg{width:28px;height:28px}.process-step{padding:0}.process-step strong{font-size:17px;margin-bottom:8px}.step-copy{font-size:14px}.step-copy br{display:none}.step-detail{padding:18px;gap:12px;align-items:flex-start;min-height:112px}.step-detail-number{font-size:22px}.step-detail p{font-size:14px}.step-detail>svg{display:none}.process-bottom{flex-direction:column;align-items:stretch;margin-top:24px;padding-top:24px;gap:20px}.process-bottom p{font-size:12px}.site-footer{padding:40px 0 32px}.footer-top{margin-bottom:24px}.business-info{display:flex;flex-direction:column;gap:8px;font-size:12px}.footer-bottom{display:block;margin-top:24px;padding-top:20px;font-size:10px}.footer-bottom>span{display:block;margin-bottom:8px}.contact-dock{right:0;left:0;bottom:0;border-radius:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);gap:8px;display:grid;grid-template-columns:1.2fr 1fr;box-shadow:0 -4px 20px #102b4b0c}.contact-dock .button{font-size:14px;min-height:52px;padding:12px 10px;gap:6px}.contact-dock .button svg{width:18px;height:18px}.floating-top{right:16px;bottom:calc(90px + env(safe-area-inset-bottom));width:44px;height:50px}.info-dialog{padding:24px;border-radius:20px}.info-dialog h2{font-size:24px}}
@media(max-width:479px){.service-grid{grid-template-columns:1fr;gap:20px}.service-photo{aspect-ratio:16/9}.service-body{padding:24px}.service-description br{display:initial}.service-card h3{font-size:22px}.price-row strong{font-size:16px}}
@media(max-width:359px){.container{width:calc(100% - 32px)}.header-inner{gap:8px}.wordmark strong{font-size:30px}.header-call{font-size:11px;padding:10px 8px}.header-call svg{display:none}.contact-dock{gap:6px;padding-left:8px;padding-right:8px;grid-template-columns:1.15fr 1fr}.contact-dock .button{font-size:12px;padding:12px 6px;gap:5px}.contact-dock .button svg{width:16px;height:16px}.filter{padding:10px 11px;font-size:11px}.process-step strong{font-size:15px}.step-copy{font-size:13px}.strength{padding:24px}.info-dialog{padding:20px}.kakao-id-box{padding:14px}.kakao-id-box strong{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.is-pending{opacity:1;transform:none}}

/* Stronger contact actions, including the persistent dock. */


.contact-dock{padding:8px 8px 11px;box-shadow:0 8px 30px #102b4b26}
.contact-dock .primary{box-shadow:0 3px 0 #02356F}.contact-dock .kakao{box-shadow:0 3px 0 #C5AC00}
.contact-dock .button:hover{transform:translateY(-2px)}.contact-dock .button:active{transform:translateY(2px);box-shadow:none}
/* Hero and header scale down without shrinking navigation text. */
@media(max-width:1199px){.desktop-nav{display:none}.menu-toggle{display:flex}}
@media(min-width:1024px) and (max-width:1279px){.hero h1{font-size:88px}.hero-grid{min-height:650px;padding:70px 0}.hero .button{padding:16px 20px;min-height:68px;font-size:16px}.call-copy strong{font-size:21px}.hero .primary{gap:10px}.hero .primary>svg:last-child{display:none}.hero-lead{font-size:16px}}
@media(min-width:768px) and (max-width:1023px){.hero-grid{min-height:610px;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);padding:60px 0;gap:0}.hero h1{font-size:64px}.hero-lead{font-size:15px;max-width:350px;margin-top:24px}.hero-lead-break{display:none}.hero .cta-row{flex-direction:column;max-width:280px;gap:14px;margin-top:28px}.hero .button{min-height:60px;padding:14px 20px;font-size:16px}.call-copy strong{font-size:22px}.hero .primary{justify-content:space-between}.hero-art{width:115%;margin-left:-12%;height:400px;aspect-ratio:auto}.impact-stage{inset:12% -4% 0}.hero-blue-plane{clip-path:polygon(77% 0,100% 0,100% 100%,55% 100%)}}
@media(max-width:767px){:root{--header:80px}.site-header .wordmark{padding-top:2px;gap:2px}.site-header .wordmark strong{font-size:42px}.site-header .wordmark-sub{font-size:10px}.header-inner{gap:12px}.header-actions{gap:6px}.header-call{font-size:12px;padding:12px;min-height:42px;border-radius:999px;gap:6px}.header-kakao{width:42px;min-height:42px;padding:0}.header-kakao svg{width:21px;height:21px}.menu-toggle{width:36px}.hero-grid{display:grid;grid-template-columns:1fr;min-height:0;padding:44px 0 40px;gap:0}.hero-copy{display:contents}.hero h1{grid-row:1;font-size:clamp(48px,15.2vw,74px);line-height:1.02;max-width:none;justify-self:start;margin-left:7px;position:relative;z-index:3}.hero-lead{grid-row:2;margin-top:22px;font-size:15px;max-width:100%;position:relative;z-index:3;line-height:1.65}.hero-lead-break{display:none}.hero-art{grid-row:3;width:100%;max-width:380px;height:320px;aspect-ratio:auto;margin:20px auto 24px;justify-self:center}.impact-stage{inset:0 6% -1%;transform:rotate(-10deg)}.hero .cta-row{grid-row:4;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;margin-top:0;z-index:3}.hero .button{min-width:0;min-height:64px;padding:15px 12px;font-size:14px;gap:8px}.hero .primary{gap:8px;justify-content:center}.hero .primary>svg:first-child{width:20px;height:20px}.hero .primary>svg:last-child{display:none}.call-copy strong{font-size:18px}.hero .kakao>svg{width:20px;height:20px}.hero-blue-plane{clip-path:polygon(100% 18%,100% 76%,0 91%,0 76%);opacity:.9}.hero-background{object-position:46% 50%;opacity:.28}.hero-shade{opacity:.62}.fist-image{filter:drop-shadow(8px 12px 0 #034EAA70)}.contact-dock{padding:10px 12px calc(13px + env(safe-area-inset-bottom))}.big-stat{margin-top:0}}
@media(min-width:480px) and (max-width:767px){.hero-grid{max-width:600px;padding-top:48px}.hero h1{font-size:76px}.hero-art{height:340px;max-width:400px}.hero .button{font-size:16px}.call-copy strong{font-size:22px}}
@media(max-width:479px){.hero .primary>svg:first-child{display:none}.header-call svg{display:none}.header-call{font-size:11px;padding:12px 10px}.header-inner{gap:6px}.header-actions{gap:5px}}
@media(max-width:374px){.site-header .wordmark strong{font-size:38px}.site-header .wordmark-sub{font-size:9px}.header-kakao{width:36px;min-height:36px}.header-call{font-size:10px;padding:10px 8px;min-height:38px}.header-actions{gap:4px}.menu-toggle{width:30px}.hero-grid{padding-top:38px}.hero h1{font-size:48px}.hero-lead{font-size:14px}.hero-art{height:280px;margin-top:18px}.hero .cta-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px}.hero .button{font-size:12px;padding:14px 10px;min-height:60px}.call-copy strong{font-size:17px}.hero .kakao>svg{width:17px;height:17px}}
@media(prefers-reduced-motion:reduce){.fist-image{opacity:1;transform:none}.impact-burst,.hero-promise{animation:none}.hero .button,.contact-dock .button{transition:none}}

/* Consultation with an integrated region selector. */
.contact{background:#fff;padding:0}







.contact-banner{position:relative;isolation:isolate;overflow:hidden;background:#061C36;color:#fff;padding:76px 0;scroll-margin-top:0}
.contact-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 48%;opacity:.6;z-index:-4}
.contact-photo-shade{position:absolute;inset:0;background:#031A31;opacity:.74;z-index:-3}
.contact-sweep{position:absolute;inset:0;background:#087BEE;clip-path:polygon(100% 57%,100% 100%,0 100%,0 94%);z-index:-2}
.contact-content{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:80px;align-items:center;max-width:1200px}
.contact-copy{min-width:0}
.contact-banner h2{font-family:HanbangLogo,Pretendard,sans-serif;font-weight:400;font-size:77px;line-height:1.08;letter-spacing:-.045em;color:#fff;transform:skew(-8deg);transform-origin:left bottom;margin-left:8px}
.contact-banner h2>span{display:block;white-space:nowrap}.contact-banner h2 em{font-style:normal;color:#76C8FF;position:relative;display:inline-block;isolation:isolate}
.contact-banner h2 em:after{content:'';position:absolute;left:1%;right:1%;bottom:0;height:4px;background:#76C8FF;transform:scaleX(1);transform-origin:left center}
.contact-description{font-size:18px;line-height:1.75;letter-spacing:-.02em;color:#E0EEFF;margin-top:28px}
.contact-art{position:relative;min-width:0;width:420px;max-width:100%;height:250px;isolation:isolate;margin-top:24px}
.contact-fist{position:absolute;width:300px;height:300px;object-fit:contain;left:0;bottom:-31px;transform:rotate(-6deg);filter:drop-shadow(7px 11px 0 #03172C65);z-index:2}
.contact-impact{position:absolute;left:16%;bottom:-4px;width:260px;height:260px;color:#71C3FF;opacity:.23;transform:rotate(16deg)}
.contact-seal{position:absolute;right:0;top:54px;width:132px;height:132px;background:#fff;color:var(--dark);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;transform:rotate(9deg);z-index:3;box-shadow:0 6px 0 #03172C80;line-height:1;letter-spacing:-.04em;font-weight:800}
.contact-seal:before{content:'';position:absolute;inset:7px;border:1px dashed #9CC1E8;border-radius:50%}
.contact-seal strong{font-size:49px;line-height:.95;letter-spacing:-.06em}.contact-seal strong span{font-size:15px;margin-left:2px}.contact-seal>span{font-size:19px}
.contact-panel{position:relative;z-index:4;background:#fff;border-radius:28px;padding:40px 34px 44px;color:var(--ink);box-shadow:0 10px 0 #031C3845}
.contact-panel h3{font-size:30px;line-height:1.25;margin-bottom:28px;letter-spacing:-.04em}
.contact-actions{display:flex;flex-direction:column;gap:18px}
.contact-actions .button{width:100%;min-width:0;min-height:82px;border-radius:999px;padding:18px 22px;gap:12px;transition:transform .2s,box-shadow .2s,background .2s}
.contact-call{background:var(--dark);color:#fff;justify-content:center;box-shadow:0 5px 0 #03336B}
.contact-call strong{font-size:28px;line-height:1.1;letter-spacing:-.04em;font-weight:800;white-space:nowrap}
.contact-call-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#ffffff24;color:#fff;flex-shrink:0}
.contact-call-icon svg{width:22px;height:22px}.contact-call>svg{width:21px;height:21px;margin-left:auto}
.contact-actions .contact-chat{font-size:20px;box-shadow:0 5px 0 #C5AC00}.contact-chat svg{width:26px;height:26px}
.contact-call:hover{background:var(--hover);color:#fff;transform:translateY(-3px);box-shadow:0 8px 0 #03336B}
.contact-chat:hover{transform:translateY(-3px);box-shadow:0 8px 0 #C5AC00}
.contact-actions .button:active{transform:translateY(3px);box-shadow:0 2px 0 #03336B}.contact-actions .contact-chat:active{box-shadow:0 2px 0 #C5AC00}
.contact-banner.is-in-view .contact-fist{animation:contact-uppercut .7s .1s both cubic-bezier(.16,1,.3,1)}
.contact-banner.is-in-view .contact-impact{animation:contact-impact .6s .25s both}
.contact-banner.is-in-view h2 em:after{animation:contact-underline .55s .2s both cubic-bezier(.16,1,.3,1)}
@keyframes contact-uppercut{from{opacity:0;transform:translate(-22px,28px) rotate(-15deg) scale(.86)}to{opacity:1;transform:translate(0,0) rotate(-6deg) scale(1)}}
@keyframes contact-impact{from{opacity:0;scale:.85}to{opacity:.23;scale:1}}
@keyframes contact-underline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(min-width:1024px) and (max-width:1279px){.contact-content{gap:48px;grid-template-columns:minmax(0,1.18fr) minmax(0,1fr)}.contact-banner h2{font-size:65px}.contact-panel{padding:32px 26px 36px}.contact-panel h3{font-size:27px}.contact-actions .button{padding:17px;gap:9px;min-height:76px}.contact-call strong{font-size:25px}.contact-call-icon{width:33px;height:33px}.contact-call>svg{display:none}.contact-actions .contact-chat{font-size:19px}.contact-art{width:390px}}
@media(min-width:768px) and (max-width:1023px){.contact-banner{padding:64px 0}.contact-content{gap:28px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.contact-banner h2{font-size:49px}.contact-description{font-size:16px;margin-top:24px}.contact-panel{padding:28px 20px 32px;border-radius:24px}.contact-panel h3{font-size:24px;margin-bottom:24px}.contact-actions .button{padding:16px 12px;min-height:68px;gap:8px}.contact-call strong{font-size:22px}.contact-call-icon{width:28px;height:28px}.contact-call-icon svg{width:18px;height:18px}.contact-call>svg{display:none}.contact-actions .contact-chat{font-size:17px}.contact-chat svg{width:22px;height:22px}.contact-art{height:210px;width:320px}.contact-fist{width:250px;height:250px;left:-7%}.contact-impact{width:215px;height:215px;left:12%}.contact-seal{width:112px;height:112px;right:-2%;top:44px}.contact-seal strong{font-size:41px}.contact-seal strong span{font-size:13px}.contact-seal>span{font-size:16px}}
@media(max-width:767px){.contact-banner{padding:56px 0 64px;scroll-margin-top:0}.contact-content{grid-template-columns:1fr;gap:34px;max-width:560px}.contact-banner h2{font-size:clamp(43px,10.8vw,66px);line-height:1.1;margin-left:5px}.contact-description{font-size:15px;line-height:1.7;margin-top:24px}.contact-photo{object-position:53% 45%;opacity:.55}.contact-photo-shade{opacity:.72}.contact-art{height:210px;width:320px;max-width:100%;margin:24px auto 0}.contact-fist{width:260px;height:260px;left:-5%;bottom:-32px}.contact-impact{width:235px;height:235px;left:9%;bottom:-8px}.contact-seal{width:114px;height:114px;right:0;top:44px;gap:7px}.contact-seal strong{font-size:42px}.contact-seal strong span{font-size:13px}.contact-seal>span{font-size:17px}.contact-panel{padding:28px 24px 32px;border-radius:24px}.contact-panel h3{font-size:25px;margin-bottom:24px}.contact-actions{gap:16px}.contact-actions .button{min-height:72px;padding:16px 18px;gap:10px}.contact-call strong{font-size:26px}.contact-call-icon{width:34px;height:34px}.contact-call-icon svg{width:20px;height:20px}.contact-call>svg{width:20px;height:20px}.contact-actions .contact-chat{font-size:18px}.contact-chat svg{width:23px;height:23px}.contact-sweep{clip-path:polygon(100% 46%,100% 100%,0 100%,0 78%)}}
@media(max-width:479px){.contact-call>svg{display:none}.contact-call strong{font-size:24px}.contact-call-icon{width:30px;height:30px}.contact-actions .button{padding:16px 12px}}
@media(max-width:374px){.contact-banner{padding-top:48px}.contact-banner h2{font-size:37px}.contact-description{font-size:14px}.contact-art{height:190px;width:260px}.contact-fist{width:235px;height:235px;left:-8%}.contact-impact{width:205px;height:205px;left:8%}.contact-seal{width:100px;height:100px;right:-1%;top:40px}.contact-seal strong{font-size:36px}.contact-seal>span{font-size:15px}.contact-panel{padding:25px 18px 30px}.contact-panel h3{font-size:23px}.contact-actions .button{padding:14px 10px;min-height:64px;gap:8px}.contact-call strong{font-size:21px}.contact-call-icon{width:28px;height:28px}.contact-call-icon svg{width:18px;height:18px}.contact-actions .contact-chat{font-size:17px}}
@media(prefers-reduced-motion:reduce){.contact-banner.is-in-view .contact-fist,.contact-banner.is-in-view .contact-impact,.contact-banner.is-in-view h2 em:after{animation:none}}

/* Two distinct comic speech bursts. Copy stays live HTML above scalable vector shapes. */
.hero-promise{position:absolute;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate;line-height:1;white-space:nowrap;font-weight:850;letter-spacing:-.05em;filter:drop-shadow(3px 5px 0 #02396B);animation:promise-in .55s .65s both}
.promise-balloon{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible}
.promise-balloon path{fill:var(--bubble-fill);stroke:#07366B;stroke-width:3.6;stroke-linejoin:round}
.promise-emergency{--bubble-fill:#fff;top:-2%;right:4%;width:246px;height:226px;padding:44px 36px 48px;color:#064B9C;transform:rotate(6deg);gap:7px}
.promise-emergency strong{font-size:63px;line-height:.95;letter-spacing:-.065em}.promise-emergency strong span{font-size:28px;margin-left:3px}.promise-emergency .promise-label{font-size:25px;letter-spacing:-.04em}
.promise-zero{--bubble-fill:#FEE500;right:0;bottom:-1%;width:220px;height:211px;padding:44px 35px 38px;color:#102E52;transform:rotate(-8deg);gap:5px}
.promise-zero>span{font-size:22px}.promise-zero strong{font-size:76px;line-height:.9;letter-spacing:-.065em}.promise-zero strong span{font-size:32px;margin-left:5px}
@media(min-width:1024px) and (max-width:1279px){.promise-emergency{width:205px;height:188px;padding:37px 30px 40px;right:2%;top:-4%;gap:6px}.promise-emergency strong{font-size:53px}.promise-emergency strong span{font-size:24px}.promise-emergency .promise-label{font-size:21px}.promise-zero{width:180px;height:173px;padding:36px 27px 32px;bottom:-3%;right:0}.promise-zero>span{font-size:18px}.promise-zero strong{font-size:62px}.promise-zero strong span{font-size:27px}}
@media(min-width:768px) and (max-width:1023px){.promise-emergency{width:170px;height:156px;padding:30px 25px 33px;top:-2%;right:0;gap:5px}.promise-emergency strong{font-size:43px}.promise-emergency strong span{font-size:20px}.promise-emergency .promise-label{font-size:17px}.promise-zero{width:154px;height:148px;padding:30px 24px 26px;right:-1%;bottom:-12px;gap:4px}.promise-zero>span{font-size:16px}.promise-zero strong{font-size:54px}.promise-zero strong span{font-size:23px}}
@media(max-width:767px){.hero-promise{filter:drop-shadow(2px 3px 0 #02396B)}.promise-emergency{width:156px;height:143px;padding:28px 23px 30px;top:0;right:0;gap:4px}.promise-emergency strong{font-size:39px}.promise-emergency strong span{font-size:19px;margin-left:2px}.promise-emergency .promise-label{font-size:16px}.promise-zero{width:142px;height:136px;padding:28px 20px 24px;right:0;bottom:-2px;gap:4px}.promise-zero>span{font-size:15px}.promise-zero strong{font-size:48px}.promise-zero strong span{font-size:21px;margin-left:3px}}
@media(min-width:480px) and (max-width:767px){.promise-emergency{width:178px;height:163px;padding:32px 26px 34px;right:0}.promise-emergency strong{font-size:45px}.promise-emergency strong span{font-size:21px}.promise-emergency .promise-label{font-size:18px}.promise-zero{width:160px;height:153px;padding:32px 23px 27px}.promise-zero>span{font-size:17px}.promise-zero strong{font-size:54px}.promise-zero strong span{font-size:24px}}
@media(max-width:374px){.promise-emergency{width:137px;height:126px;padding:24px 20px 27px;right:0;top:-1%;gap:4px}.promise-emergency strong{font-size:34px}.promise-emergency strong span{font-size:16px}.promise-emergency .promise-label{font-size:14px}.promise-zero{width:126px;height:121px;padding:25px 18px 21px;right:0;bottom:-1px;gap:3px}.promise-zero>span{font-size:13px}.promise-zero strong{font-size:43px}.promise-zero strong span{font-size:19px}}
@media(prefers-reduced-motion:reduce){.hero-promise{animation:none}}

/* Region tabs sit inside the consultation panel, below the two main actions. */
.contact-areas{margin-top:30px;padding-top:26px;border-top:1px solid #E1EAF4}
.contact-areas h4{display:flex;align-items:center;gap:7px;color:#263D55;font-size:16px;font-weight:750;line-height:1.4;letter-spacing:-.025em;margin:0 0 16px}
.contact-areas h4 svg{width:19px;height:19px;stroke:#087BEE;stroke-width:2}
.area-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#EFF5FC;border-radius:12px;margin-bottom:20px}
.area-tabs[hidden]{display:none}
.area-tabs button{appearance:none;border:0;border-radius:9px;background:transparent;color:#536B84;padding:11px 10px;min-height:43px;font:inherit;font-size:15px;font-weight:750;line-height:1.3;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}
.area-tabs button:hover{color:#064B9C;background:#DFECFA}
.area-tabs button[aria-selected="true"]{color:#064B9C;background:#fff;box-shadow:0 2px 7px #153B6C12}
.area-tabs button:active{background:#DAEBFE}
.area-panels{display:grid}
.area-panel{grid-column:1;grid-row:1;min-width:0}
.area-panel[hidden]{display:block!important;visibility:hidden;pointer-events:none}
.area-panel h5{font-size:15px;margin:12px 0}
.contact-areas.is-enhanced .area-panel h5{display:none}
.contact-areas:not(.is-enhanced) .area-panels{display:block}
.area-panel ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;padding:0;margin:0;list-style:none;align-content:start}
.area-panel li{font-size:14px;line-height:1.5;color:#53657A;white-space:nowrap;letter-spacing:-.02em}
.area-panel li small{font-size:10px;color:#2365A6;line-height:1;letter-spacing:-.03em;padding:3px 4px;margin-left:3px;border-radius:4px;background:#EDF5FF;vertical-align:1px}
@media(min-width:768px) and (max-width:1023px){.contact-areas{margin-top:27px;padding-top:23px}.contact-areas h4{font-size:15px;margin-bottom:13px}.area-tabs{margin-bottom:17px}.area-tabs button{font-size:14px}.area-panel ul{gap:10px 6px}.area-panel li{font-size:13px}.area-panel li small{display:table;margin:3px 0 0}}
@media(max-width:479px){.contact-areas{margin-top:28px;padding-top:24px}.area-panel li{font-size:14px}.area-panel li small{display:table;margin:3px 0 0}}
@media(max-width:374px){.contact-areas h4{font-size:15px}.area-tabs button{font-size:14px;padding:10px 8px}.area-panel li{font-size:13px}.area-panel ul{gap:9px 6px}}
@media(prefers-reduced-motion:reduce){.area-tabs button{transition:none}}

/* One shared content rail, including header, hero, every section and footer. */
:root{--inner:1360px;--gutter:40px}
.container,.header-inner,.hero-grid,.contact-content{width:calc(100% - var(--gutter)*2);max-width:var(--inner)}
/* The partner line fills the Korean wordmark width, rather than floating beneath it. */
.wordmark{--logo-size:40px;width:calc(var(--logo-size)*1.64);gap:5px;flex-shrink:0}
.wordmark strong{font-size:var(--logo-size);line-height:1;letter-spacing:-.06em}
.wordmark .wordmark-sub{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:calc(var(--logo-size)*.33);line-height:1;font-weight:850;letter-spacing:0;margin-right:0;color:var(--blue)}
.site-header .wordmark{--logo-size:52px}
.site-header .wordmark strong{font-size:var(--logo-size)}
.site-header .wordmark .wordmark-sub{font-size:calc(var(--logo-size)*.33)}
@media(min-width:1200px){.header-inner{gap:64px}}
.header-call,.contact-dock .primary{background:var(--blue);gap:6px}
.header-call:hover,.contact-dock .primary:hover{background:var(--dark)}
.header-kakao,.contact-dock .kakao{background:var(--blue);color:#fff}
.header-kakao:hover,.contact-dock .kakao:hover{background:#FEE500;color:#292600}
.contact-dock .kakao{box-shadow:0 3px 0 #033C7C}
.contact-dock .kakao:hover{box-shadow:0 3px 0 #C5AC00}
.kakao-icon{width:30px;height:30px;object-fit:contain;flex-shrink:0}
.header-kakao .kakao-icon{width:36px;height:36px}
.contact-dock .kakao-icon{width:28px;height:28px}
.contact-actions .kakao-icon{width:34px;height:34px}
/* Align each italic headline line optically with the supporting paragraph. */
.hero h1{transform:none;margin-left:0}
.hero-title-line{transform:skew(-9deg) translateX(-.035em);transform-origin:left center}
.hero-lead{font-size:20px;line-height:1.65;max-width:620px}
.hero-background{object-position:50% 50%;opacity:.7}
.hero-shade{opacity:.45}
.hero .primary{gap:7px}
.hero .primary>svg:last-child{width:30px;height:30px;margin-left:12px}
.hero .kakao{font-size:20px;gap:8px}
.hero .kakao .kakao-icon{width:32px;height:32px}
.impact-clip{position:absolute;inset:0;pointer-events:none;clip-path:polygon(35% 0,100% 0,100% 100%,0 100%)}
.fist-stage{z-index:2}
@media(min-width:768px) and (max-width:1023px){:root{--gutter:32px}.hero-lead{font-size:20px}.hero .primary{gap:7px;justify-content:center}.hero .primary>svg:last-child{display:block;width:26px;height:26px;margin-left:3px}.hero .kakao{font-size:20px}}
@media(max-width:767px){:root{--gutter:20px}.site-header .wordmark{--logo-size:42px;gap:4px}.hero-lead{font-size:18px;line-height:1.6;margin-top:22px}.hero .cta-row{grid-template-columns:1fr;gap:16px}.hero .button{min-height:66px;padding:16px 22px}.hero .primary{gap:7px}.hero .primary>svg:first-child{display:block;width:23px;height:23px}.hero .primary>svg:last-child{display:block;width:28px;height:28px;margin-left:7px}.call-copy strong{font-size:24px}.hero .kakao{font-size:20px}.hero .kakao .kakao-icon{width:30px;height:30px}.hero-background{object-position:12% 50%;opacity:.65}.hero-shade{opacity:.48}.header-kakao .kakao-icon{width:30px;height:30px}.contact-dock .primary{gap:5px}.contact-dock .kakao-icon{width:26px;height:26px}}
@media(max-width:374px){:root{--gutter:16px}.site-header .wordmark{--logo-size:38px}.hero-lead{font-size:17px}.hero .primary>svg:first-child{width:20px;height:20px}.call-copy strong{font-size:23px}.header-kakao .kakao-icon{width:26px;height:26px}.contact-dock .kakao-icon{width:24px;height:24px}}

.process-bottom [data-contact="phone"]{gap:6px}.contact-actions .contact-call{gap:7px}

/* Type scale and optical refinements — shared across all six sections. */
:root{--section-title:48px;--content-title:24px;--body-copy:18px;--caption:14px}
body{font-size:var(--body-copy)}
.section-heading h2,.contact-banner h2{font-size:var(--section-title);line-height:1.25}
.service-card h3,.work-card h3,.process-step strong,.contact-panel h3,.benefit h3{font-size:var(--content-title);line-height:1.4}
.service-description,.step-copy,.step-detail p,.contact-description,.benefit-copy p{font-size:var(--body-copy);line-height:1.7}
.price-row span,.price-row strong,.price-note,.step-index,.business-info,.footer-bottom{font-size:var(--caption)}
.service-description{min-height:62px}
.contact-areas h4{font-size:24px}.area-tabs button{font-size:18px}.area-panel li{font-size:14px}
.title-accent{color:var(--blue)}
.wordmark,.site-header .wordmark{gap:0}
.wordmark .wordmark-sub{width:91%;margin-top:-2px;letter-spacing:-.035em}
.header-call{padding-left:14px;padding-right:20px;gap:5px}
.header-kakao,.header-kakao:hover{background:transparent;border:0;box-shadow:none;padding:0}
.header-kakao .kakao-icon{width:100%;height:100%}
.header-kakao:hover .kakao-icon{transform:scale(1.05)}
.header-kakao .kakao-icon{transition:transform .18s}
.hero .primary>svg:last-child{display:block;margin-left:0}
.hero .kakao .kakao-cutout{width:44px;height:42px;stroke:none;object-fit:contain}
.hero .kakao{gap:10px}

/* Each service is a single accessible tap-to-call target. */
.service-card{transition:border-color .2s,box-shadow .2s}
.service-link{display:block;height:100%}
.service-link:focus-visible{outline-offset:-4px;border-radius:16px}
.service-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.service-title h3{margin-bottom:0}
.service-arrow{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--soft);color:var(--blue);transition:background .2s,color .2s,transform .2s}
.service-arrow svg{width:25px;height:25px;stroke-width:1.8}
.service-card:hover,.service-card:focus-within{border-color:#9FCBF6;box-shadow:0 8px 24px #13365A0B}
.service-link:hover .service-arrow,.service-link:focus-visible .service-arrow{background:var(--blue);color:#fff;transform:rotate(5deg)}
.service-link:active .service-arrow{transform:scale(.92)}

/* A dark editorial composition: one field image, two open feature rows. */
.why{background:#081D30;color:#fff}
.why .section-heading{margin-bottom:56px}
.why h2,.why h3{color:#fff}
.why h2 span{color:#69BFFF}
.benefits-layout{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:stretch}
.benefit{position:relative;min-width:0}
.benefit-emergency{isolation:isolate;overflow:hidden;min-height:500px;border-radius:20px;background:#13394F;padding:42px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #FFFFFF1C}
.benefit-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:28% 50%;z-index:-2}
.benefit-photo-tint{position:absolute;inset:0;background:#052B46;opacity:.65;z-index:-1}
.benefit-number{font-size:164px;line-height:1;letter-spacing:-.075em;font-weight:750;color:#fff;display:flex;align-items:baseline;gap:12px}
.benefit-number span{font-size:24px;letter-spacing:-.03em;font-weight:600}
.benefit-copy h3{margin-bottom:12px}
.benefit-copy p{color:#B7C8D8}
.benefit-emergency .benefit-copy p{color:#E0EAF2}
.benefits-detail{display:flex;flex-direction:column;min-width:0}
.benefit-guarantee{display:flex;gap:36px;align-items:center;padding:30px 0 42px;border-bottom:1px solid #FFFFFF26;flex:1}
.benefit-guarantee .benefit-number{font-size:152px;color:#69BFFF;flex-shrink:0}
.benefit-complete{padding-top:38px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;flex:1}
.benefit-link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;font-size:18px;font-weight:650;color:#fff;min-height:48px;align-self:flex-start}
.benefit-arrow{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--blue);transition:background .2s,transform .2s}
.benefit-arrow svg{width:26px;height:26px;stroke-width:1.8}
.benefit-link:hover .benefit-arrow{background:#279DFF;transform:translate(2px,-2px)}
.works{padding-top:112px}

/* The centered dock repeats the hero's white and yellow pill buttons. */
.contact-dock{left:50%;right:auto;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);display:flex;grid-template-columns:none;gap:12px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.contact-dock .button{min-height:64px;padding:14px 24px;border-radius:999px;font-size:20px;border:1px solid transparent}
.contact-dock .primary{gap:6px;background:#fff;color:var(--dark);border-color:#DFEAF5;box-shadow:0 5px 0 #96B3D4,0 10px 24px #031C3828}
.contact-dock .call-copy strong{font-size:24px}
.contact-dock .primary>svg:first-child{width:24px;height:24px}
.contact-dock .primary>svg:last-child{width:28px;height:28px;margin-left:0}
.contact-dock .kakao{background:#FEE500;color:#292600;gap:9px;box-shadow:0 5px 0 #C5AC00,0 10px 24px #031C3828}
.contact-dock .kakao .kakao-cutout{width:40px;height:38px;stroke:none}
.contact-dock .primary:hover{background:#F2F8FF;box-shadow:0 7px 0 #96B3D4,0 13px 28px #031C3830}
.contact-dock .kakao:hover{background:#FFE928;color:#292600;box-shadow:0 7px 0 #C5AC00,0 13px 28px #031C3830}
.contact-dock .button:active{transform:translateY(3px);box-shadow:0 2px 0 #96B3D4}
.contact-dock .kakao:active{box-shadow:0 2px 0 #C5AC00}
@media(min-width:768px) and (max-width:1199px){
  .benefits-layout{gap:40px;grid-template-columns:1fr 1fr}
  .benefit-emergency{padding:30px;min-height:490px}
  .benefit-number{font-size:140px}
  .benefit-guarantee{gap:24px;flex-direction:column;align-items:flex-start;padding:0 0 28px}
  .benefit-guarantee .benefit-number{font-size:100px}
  .benefit-complete{padding-top:28px}
  .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
  .timeline li:nth-child(2):after{display:none}
  .contact-banner h2{font-size:48px}
}
@media(max-width:767px){
  :root{--section-title:clamp(32px,7.5vw,48px)}
  .header-call{padding-left:9px;padding-right:12px}
  .wordmark .wordmark-sub{margin-top:-2px}
  .hero .primary>svg:last-child{margin-left:0}
  .hero .kakao .kakao-cutout{width:44px;height:42px}
  .why .section-heading{margin-bottom:32px}
  .benefits-layout{grid-template-columns:1fr;gap:32px}
  .benefit-emergency{min-height:420px;padding:30px;border-radius:16px}
  .benefit-number{font-size:140px}
  .benefit-guarantee{padding:0 0 32px;gap:32px;justify-content:flex-start}
  .benefit-guarantee .benefit-number{font-size:112px}
  .benefit-complete{padding-top:30px;gap:24px}
  .works{padding-top:72px}
  .contact-banner h2{margin-left:0;transform:none;font-size:var(--section-title)}
  .contact-banner h2>span{white-space:normal}
  .service-description{min-height:0}
  .step-copy br{display:none}
  .site-footer{padding-bottom:40px}
  .contact-dock{bottom:calc(18px + env(safe-area-inset-bottom));gap:10px}
  .contact-dock .button{min-height:60px;padding:12px 20px;font-size:18px}
  .contact-dock .call-copy strong{font-size:22px}
  .contact-dock .primary>svg:last-child{width:24px;height:24px}
}
@media(max-width:639px){
  .service-grid{grid-template-columns:1fr}
  .service-body{padding:24px}
  .timeline{grid-template-columns:1fr;gap:28px}
  .process-step{display:grid;grid-template-columns:64px 1fr;column-gap:20px}
  .step-icon{grid-column:1;grid-row:1/4;margin-bottom:0}
  .step-index,.process-step strong,.step-copy{grid-column:2}
  .step-index{margin-bottom:4px}
  .process-step strong{margin-bottom:6px}
  .step-copy br{display:none}
  .step-detail{min-height:0}
  .contact-dock{width:calc(100% - 32px);max-width:430px}
  .contact-dock .primary{flex:1;min-width:0;padding:12px 14px;gap:5px}
  .contact-dock .call-copy strong{font-size:21px}
  .contact-dock .primary>svg:first-child{width:21px;height:21px}
  .contact-dock .primary>svg:last-child{display:none}
  .contact-dock .kakao{width:60px;flex-shrink:0;padding:10px}
  .contact-dock .kakao>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .contact-dock .kakao .kakao-cutout{width:36px;height:34px}
  .floating-top{bottom:calc(99px + env(safe-area-inset-bottom))}
}
@media(max-width:479px){
  .header-call{padding-left:9px;padding-right:10px}
  .benefit-emergency{padding:26px;min-height:390px}
  .benefit-guarantee{flex-direction:column;align-items:flex-start;gap:20px}
  .benefit-guarantee .benefit-number{font-size:100px}
  .benefit-copy br{display:none}
  .benefit-complete h3 br{display:initial}
  .price-row strong{font-size:14px}
}
@media(max-width:374px){
  .header-call{padding-left:7px;padding-right:8px}
  .service-body{padding:20px}
  .service-title{gap:8px}
  .service-arrow{width:36px;height:36px}
  .benefit-emergency{padding:22px;min-height:370px}
  .benefit-number{font-size:128px}
  .process-step{column-gap:16px}
  .contact-dock .call-copy strong{font-size:19px}
  .contact-dock .primary>svg:first-child{width:18px;height:18px}
  .contact-dock .primary{padding-left:10px;padding-right:10px;gap:4px}
}

/* Tightened reading rhythm and aligned comic promises. */
body{line-height:1.55}
.service-description,.step-copy,.step-detail p,.contact-description,.promise-description{line-height:1.55}
.hero h1{line-height:.94}
.promise-copy{display:flex;flex-direction:column;align-items:flex-start;gap:inherit;width:max-content}
.promise-emergency .promise-label{align-self:flex-start}
.promise-zero strong{display:flex;align-items:baseline;gap:5px}
.promise-zero strong span{font-size:.58em;line-height:1;margin-left:0;position:relative;top:-.08em}
@media(max-width:767px){.hero-lead{line-height:1.55}}

/* Three promises share a full-section photographic background. */
.why{position:relative;isolation:isolate;overflow:hidden;background:#061C30}
.why-background{position:absolute;left:0;top:-5%;width:100%;height:110%;max-width:none;object-fit:cover;object-position:center;opacity:.64;z-index:-3;transform:translateY(var(--parallax-y,0px));will-change:transform}
.why-shade{position:absolute;inset:0;background:#041A2B;opacity:.54;z-index:-2}
.why .section-heading{margin-bottom:68px}
.promise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #A4CFFF40;padding-top:44px}
.promise-feature{min-width:0;padding:0 44px 8px}
.promise-feature:first-child{padding-left:0}
.promise-feature:last-child{padding-right:0}
.promise-feature+.promise-feature{border-left:1px solid #A4CFFF40}
.promise-icon{width:80px;height:80px;color:#D6ECFF;margin-bottom:26px;position:relative}
.promise-icon svg{width:100%;height:100%}
.promise-value{display:flex;align-items:baseline;gap:9px;height:128px;margin-bottom:28px;color:#fff;font-weight:800;line-height:1;letter-spacing:-.07em;white-space:nowrap}
.metric-number{display:inline-block;font-size:108px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";min-width:1ch}
.metric-number[data-mode="up"]{min-width:2ch}
.metric-unit{font-size:28px;font-weight:650;letter-spacing:-.04em;min-width:1em}
.promise-word .metric-number{font-family:HanbangLogo,Pretendard,sans-serif;font-weight:400;letter-spacing:-.055em;min-width:2em}
.promise-feature:nth-child(2) .promise-value{color:#69BFFF}
.promise-feature h3{font-size:24px;line-height:1.35;color:#fff;margin-bottom:14px}
.promise-description{font-size:18px;color:#CCDAE7;word-break:keep-all}
.promise-feature.is-counting .metric-number{color:#91D2FF}
.promise-feature.is-locked .promise-value{animation:metric-lock .34s cubic-bezier(.16,1,.3,1)}
.promise-feature.is-locked .promise-icon{animation:icon-strike .5s cubic-bezier(.16,1,.3,1)}
@keyframes metric-lock{0%{scale:1.07;translate:0 3px}55%{scale:.985;translate:0 -1px}100%{scale:1;translate:0 0}}
@keyframes icon-strike{0%{rotate:-6deg;scale:.9}55%{rotate:3deg;scale:1.08}100%{rotate:0deg;scale:1}}
@media(min-width:768px) and (max-width:1199px){.promise-feature{padding:0 24px 6px}.promise-icon{width:68px;height:68px;margin-bottom:24px}.metric-number{font-size:88px}.metric-unit{font-size:24px}.promise-value{height:106px;margin-bottom:24px}.promise-description br{display:none}}
@media(min-width:768px) and (max-width:899px){.promise-feature{padding-left:20px;padding-right:20px}.metric-number{font-size:76px}.metric-unit{font-size:21px}.promise-value{gap:5px;height:94px}.promise-feature h3{font-size:24px}}
@media(max-width:767px){.promise-feature+.promise-feature{border-left:0}.why .section-heading{margin-bottom:36px}.why-background{object-position:68% center;opacity:.52}.promise-grid{grid-template-columns:1fr;padding-top:0;border:0;gap:0}.promise-feature,.promise-feature:first-child,.promise-feature:last-child{padding:30px 0 34px;border-left:0;border-top:1px solid #A4CFFF40;display:grid;grid-template-columns:1fr 76px;column-gap:20px;align-items:start}.promise-icon{grid-column:2;grid-row:1;width:76px;height:76px;margin:8px 0 0}.promise-value{grid-column:1;grid-row:1;height:auto;min-height:105px;margin-bottom:18px;gap:7px}.metric-number{font-size:90px}.metric-unit{font-size:24px}.promise-feature h3,.promise-description{grid-column:1/-1}.promise-feature h3{margin-bottom:10px}.promise-description br{display:none}}
@media(max-width:374px){.promise-feature,.promise-feature:first-child,.promise-feature:last-child{grid-template-columns:1fr 60px;column-gap:12px}.promise-icon{width:60px;height:60px}.metric-number{font-size:76px}.metric-unit{font-size:21px}.promise-value{min-height:90px}}

/* Unified impact motion: a short wind-up, a clear hit, then a steady resting state. */
.motion-item{--enter-delay:0ms}
.motion-item.is-queued{opacity:0}
.motion-item.is-entered[data-motion="text"]{animation:text-strike .65s var(--enter-delay) cubic-bezier(.16,1,.3,1) both}
.motion-item.is-entered[data-motion="image"]{animation:photo-strike .8s var(--enter-delay) cubic-bezier(.16,1,.3,1) both}
.motion-item.is-entered[data-motion="detail"]{animation:detail-strike .55s var(--enter-delay) cubic-bezier(.16,1,.3,1) both}
@keyframes text-strike{0%{opacity:0;clip-path:inset(0 100% 0 0);translate:-18px 3px}65%{opacity:1;clip-path:inset(0 -3% 0 -3%);translate:2px 0}100%{opacity:1;clip-path:inset(-8% -3% -8% -3%);translate:0 0}}
@keyframes photo-strike{0%{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);scale:1.025}65%{opacity:1;clip-path:polygon(0 0,100% 0,97% 100%,0 100%);scale:.998}100%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);scale:1}}
@keyframes detail-strike{0%{opacity:0;scale:.9;translate:0 5px}60%{opacity:1;scale:1.025;translate:0 -1px}100%{opacity:1;scale:1;translate:0 0}}
@keyframes headline-strike{0%{opacity:0;translate:-30px 7px;scale:1.045}65%{opacity:1;translate:3px -1px;scale:.995}100%{opacity:1;translate:0 0;scale:1}}
.hero-title-line{animation:headline-strike .72s .1s cubic-bezier(.16,1,.3,1) both}
.hero-title-line:nth-child(2){animation-delay:.24s}
.hero-lead{animation:text-strike .7s .4s cubic-bezier(.16,1,.3,1) both}
.hero .cta-row{animation:detail-strike .6s .6s cubic-bezier(.16,1,.3,1) both}
.site-header .wordmark{animation:detail-strike .55s .05s cubic-bezier(.16,1,.3,1) both}
.desktop-nav a{animation:text-strike .5s calc(.08s * var(--nav-index,1)) cubic-bezier(.16,1,.3,1) both;position:relative}
.desktop-nav a:after{content:'';position:absolute;left:0;right:0;bottom:14px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1)}
.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}
.header-actions{animation:detail-strike .6s .3s cubic-bezier(.16,1,.3,1) both}
.contact-dock .button{animation:detail-strike .6s .75s cubic-bezier(.16,1,.3,1) both}
.contact-dock .button:nth-child(2){animation-delay:.88s}
.hero-background,.contact-photo{transform:translateY(var(--parallax-y,0px)) scale(1.04);will-change:transform}
.service-card{position:relative;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s}
.service-card:after{content:'';position:absolute;inset:0;border:3px solid var(--blue);border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .18s;z-index:4}
.service-card:hover:after,.service-card:focus-within:after{opacity:1}
.service-card:hover,.service-card:focus-within{transform:translateY(-4px);border-color:var(--blue);box-shadow:0 12px 26px #13365A15}
.service-photo img,.work-media img{transition:transform .55s cubic-bezier(.16,1,.3,1),filter .3s}
.service-card:hover .service-photo img{transform:scale(1.055)}
.work-card:hover .work-media img{transform:scale(1.035)}
.work-card h3{transition:color .2s}.work-card:hover h3{color:var(--blue)}
a,button{position:relative}
.button,.filter,.area-tabs button,.icon-button,.back-top,.floating-top,.wordmark{transition:background .2s,color .2s,transform .22s cubic-bezier(.16,1,.3,1),box-shadow .2s}
.button svg,.button img,.service-arrow svg,.back-top svg,.floating-top svg{transition:translate .22s,scale .22s}
@media(hover:hover) and (pointer:fine){
 .button:hover>svg:last-child:not(.contact-icon):not(.kakao-icon),.back-top:hover svg,.service-link:hover .service-arrow svg{translate:2px -2px}
 .button:hover>.contact-icon{animation:call-nudge .55s 1}
 .button:hover .kakao-icon{scale:1.08}
 .filter:hover,.area-tabs button:hover,.icon-button:hover{transform:translateY(-2px)}
 .wordmark:hover{transform:rotate(-3deg) scale(1.035)}
 .promise-feature:hover .promise-icon{transform:translateY(-4px) rotate(-4deg)}
}
.promise-icon{transition:transform .3s cubic-bezier(.16,1,.3,1)}
a:active,button:active{scale:.975}
.service-link:active{scale:1}
.hit-layer{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:8}
.hit-wave{position:absolute;border:2px solid currentColor;border-radius:50%;pointer-events:none;animation:tap-impact .48s cubic-bezier(.16,1,.3,1) both}
@keyframes tap-impact{from{transform:translate(-50%,-50%) scale(.12);opacity:.45}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}
.process-step.is-active .step-icon svg{animation:icon-strike .45s cubic-bezier(.16,1,.3,1)}
.info-dialog[open]{animation:detail-strike .3s cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:reduce){
 .motion-item,.motion-item.is-queued{opacity:1!important;clip-path:none!important;translate:none!important;scale:none!important}
 .hero-background,.why-background,.contact-photo{transform:none!important;will-change:auto}
 .service-card:hover,.service-card:focus-within,.wordmark:hover,.promise-feature:hover .promise-icon{transform:none}
 a:active,button:active{scale:1}
}
.mobile-nav:not([hidden]) a{animation:text-strike .45s cubic-bezier(.16,1,.3,1) both}
.mobile-nav a:nth-child(2){animation-delay:.04s}.mobile-nav a:nth-child(3){animation-delay:.08s}.mobile-nav a:nth-child(4){animation-delay:.12s}.mobile-nav a:nth-child(5){animation-delay:.16s}.mobile-nav a:nth-child(6){animation-delay:.2s}
.floating-top:not([hidden]){animation:detail-strike .35s cubic-bezier(.16,1,.3,1)}
.contact-areas .area-panel[hidden] li.motion-item{animation:none}
.contact-areas .area-panel:not([hidden]) li.is-entered{animation:text-strike .45s var(--enter-delay) cubic-bezier(.16,1,.3,1) both}

/* v13 — stronger type, precise comic captions, and a single decisive brand hit. */
:root{--section-title:54px}
.section-heading h2,.contact-banner h2{font-size:var(--section-title)}
.wordmark strong{transform:rotate(-3deg) skew(-5deg) scale(1.035);transform-origin:50% 75%}
.wordmark:hover{transform:none}
.wordmark:hover strong{color:var(--hover)}
.price-row span{font-size:16px}
.price-row strong{font-size:18px;font-weight:650}
.hero-promise .promise-copy{display:grid;grid-template-columns:max-content;justify-items:start;gap:inherit;align-items:start}
.hero-promise .promise-label{display:block;line-height:1.05;letter-spacing:-.045em}
.promise-label-text{display:block;width:max-content;transform-origin:left center}
.promise-emergency strong{font-size:66px}
.promise-emergency strong span{position:relative;top:-.2em}
.promise-emergency .promise-label{font-size:29px}
.promise-zero strong{font-size:82px}
.promise-zero strong span{top:-.2em}
.promise-zero .promise-label{font-size:26px}
.promise-copy-zero{gap:7px!important}
.promise-grid{border-top:0;padding-top:0}
.promise-feature+.promise-feature{border-left-color:#A4CFFF22}
.promise-value{gap:4px}
.metric-number,.metric-number[data-mode="up"]{min-width:0;letter-spacing:-.055em}
.metric-unit{margin-left:-.08em}
.promise-fist img{width:100%;height:100%;object-fit:contain}
.promise-feature-punch.is-locked .promise-value{animation:none}
.promise-feature-punch.is-locked .promise-icon{animation:none}
.promise-feature-punch.is-striking .promise-fist img{animation:fist-stamp .85s .12s cubic-bezier(.16,1,.3,1) both}
.impact-word{position:relative;display:inline-flex;align-items:baseline;gap:1px;isolation:isolate;font:400 108px/1 HanbangLogo,Pretendard,sans-serif;letter-spacing:-.055em}
.impact-letters,.impact-exclamation{display:inline-block}
.impact-exclamation{color:#69BFFF;transform:rotate(7deg);transform-origin:center 80%;margin-left:4px}
.impact-flash{position:absolute;inset:-18% -18%;z-index:-1;background:#69BFFF;opacity:0;clip-path:polygon(3% 16%,35% 28%,42% 0,55% 24%,89% 5%,79% 38%,100% 49%,80% 60%,92% 93%,59% 76%,45% 100%,37% 75%,0 84%,18% 56%,0 38%);pointer-events:none}
.is-striking .impact-letters{animation:brand-stamp .8s .14s cubic-bezier(.16,1,.3,1) both}
.is-striking .impact-exclamation{animation:brand-bang .6s .42s cubic-bezier(.16,1,.3,1) both}
.is-striking .impact-flash{animation:brand-flash .46s .34s ease-out both}
@keyframes fist-stamp{0%{transform:translate(18px,-9px) scale(.82) rotate(9deg)}38%{transform:translate(-3px,5px) scale(1.16) rotate(-5deg)}65%{transform:translate(1px,-1px) scale(.98)}100%{transform:translate(0,0) scale(1) rotate(0)}}
@keyframes brand-stamp{0%{opacity:0;transform:translate(30px,7px) scale(1.24,.9)}36%{opacity:1;transform:translate(-4px,0) scale(.96,1.04)}65%{transform:translate(1px,0) scale(1.01)}100%{opacity:1;transform:translate(0,0) scale(1)}}
@keyframes brand-bang{0%{opacity:0;transform:translateY(-19px) rotate(-17deg) scale(.7)}60%{opacity:1;transform:translateY(2px) rotate(11deg) scale(1.1)}100%{opacity:1;transform:translateY(0) rotate(7deg) scale(1)}}
@keyframes brand-flash{0%{opacity:0;transform:scale(.65)}25%{opacity:.24}100%{opacity:0;transform:scale(1.12)}}
@media(hover:hover) and (pointer:fine){.promise-feature-punch:hover .promise-fist{transform:translate(4px,-3px) rotate(-4deg)}.promise-feature-punch:hover .impact-exclamation{color:#A4DCFF}}
@media(min-width:1024px) and (max-width:1279px){.promise-emergency strong{font-size:56px}.promise-emergency .promise-label{font-size:25px}.promise-zero strong{font-size:68px}.promise-zero .promise-label{font-size:22px}}
@media(min-width:768px) and (max-width:1023px){.promise-emergency strong{font-size:46px}.promise-emergency .promise-label{font-size:21px}.promise-zero strong{font-size:59px}.promise-zero .promise-label{font-size:19px}}
@media(min-width:768px) and (max-width:1199px){.impact-word{font-size:88px}}
@media(min-width:768px) and (max-width:899px){.impact-word{font-size:76px}}
@media(max-width:767px){:root{--section-title:clamp(34px,8vw,54px)}.promise-emergency strong{font-size:42px}.promise-emergency .promise-label{font-size:19px}.promise-zero strong{font-size:52px}.promise-zero .promise-label{font-size:17px}.promise-copy-zero{gap:5px!important}.promise-feature+.promise-feature{border-left:0}.promise-feature:first-child{border-top:0;padding-top:0}.promise-feature{border-top-color:#A4CFFF22}.promise-value{gap:4px}.impact-word{font-size:90px}}
@media(min-width:480px) and (max-width:767px){.promise-emergency strong{font-size:48px}.promise-emergency .promise-label{font-size:21px}.promise-zero strong{font-size:59px}.promise-zero .promise-label{font-size:19px}}
@media(max-width:374px){.promise-emergency strong{font-size:36px}.promise-emergency .promise-label{font-size:17px}.promise-zero strong{font-size:46px}.promise-zero .promise-label{font-size:15px}.impact-word{font-size:76px}}
@media(prefers-reduced-motion:reduce){.impact-letters,.impact-exclamation{opacity:1!important}.impact-flash{display:none}.promise-feature-punch:hover .promise-fist{transform:none}}

/* v14: balanced consultation buttons, open impact accents and field-photo mosaic. */
:root{--consult-height:86px}
.wordmark .wordmark-sub{width:97%;letter-spacing:0;transform:translateX(1px)}
.header-kakao .kakao-icon{width:82%;height:82%;object-fit:contain}
@media(min-width:1200px){.header-inner{gap:44px}}
.hero-lead{margin-top:18px}
.hero .cta-row{margin-top:50px}
.hero .button,.contact-dock .button{height:var(--consult-height);min-height:var(--consult-height);padding-top:24px;padding-bottom:24px}
.hero .kakao .kakao-cutout,.contact-dock .kakao .kakao-cutout{width:34px;height:32px}
.contact-dock .primary{padding-top:24px;padding-bottom:24px}
.contact-dock .kakao{padding-top:24px;padding-bottom:24px}
.floating-top{bottom:calc(130px + env(safe-area-inset-bottom))}
.why .section-intro,.works .section-intro{font-size:18px;line-height:1.5;max-width:none;padding-bottom:6px;flex-shrink:0}
.why .section-intro{color:#CCDAE7}
.promise-grid,.promise-feature,.promise-value,.impact-word{overflow:visible}
.promise-feature-punch{position:relative;z-index:1}
.promise-value{gap:10px}
.metric-unit{margin-left:0;position:relative;top:-.19em}
.promise-feature:nth-child(2) .promise-value{color:#fff}
.promise-feature:nth-child(2).is-counting .metric-number{color:#fff}
.promise-icon svg{overflow:visible}
.impact-word{isolation:auto}
.impact-letters,.impact-exclamation{position:relative;z-index:2}
.impact-flash{z-index:0;inset:-24% -22%;transform-origin:50% 55%}
.promise-feature-punch.is-striking .promise-fist svg{animation:fist-stamp .85s .12s cubic-bezier(.16,1,.3,1) both}
.is-striking .impact-letters{transform-origin:50% 65%;animation:brand-pop .8s .14s cubic-bezier(.16,1,.3,1) both}
.is-striking .impact-flash{animation:brand-flash .62s .3s ease-out both}
@keyframes brand-pop{0%{opacity:0;transform:scale(0) rotate(-9deg)}48%{opacity:1;transform:scale(1.15) rotate(2deg)}72%{transform:scale(.96) rotate(-1deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:96px;gap:24px;align-items:stretch}
.work-card{grid-row:span 3;display:flex;flex-direction:column;gap:12px}
.work-card.tall{grid-row:span 4}
.work-media{flex:1;min-height:0;aspect-ratio:auto;border-radius:16px}
.work-card h3{margin:0;font-size:24px;line-height:1.35;flex-shrink:0}
.work-media img{object-position:var(--photo-position,50% 50%)}
.work-media video{object-fit:cover}
@media(min-width:768px) and (max-width:1199px){
 .why .section-heading,.works .section-heading{align-items:flex-start;flex-direction:column;gap:20px}
 .hero-lead{margin-top:16px}.hero .cta-row{margin-top:42px}
 .work-grid{grid-auto-rows:80px;gap:20px}.work-card h3{font-size:22px}
 .promise-value{gap:9px}
}
@media(max-width:767px){
 .hero-lead{margin-top:14px}.hero .cta-row{margin-top:16px}
 .hero-art{margin-bottom:32px}
 .hero .button,.contact-dock .button{padding-top:24px;padding-bottom:24px}
 .hero .kakao .kakao-cutout,.contact-dock .kakao .kakao-cutout{width:32px;height:30px}
 .why .section-intro,.works .section-intro{margin-top:20px;font-size:18px;padding-bottom:0;max-width:100%}
 .promise-value{gap:9px}
 .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:76px;gap:20px 16px}
 .work-card h3{font-size:20px;line-height:1.4}
 .contact-dock .kakao{width:var(--consult-height)}
 .contact-dock{bottom:calc(16px + env(safe-area-inset-bottom))}
 .site-footer{padding-bottom:128px}
}
@media(max-width:479px){
 .work-grid{grid-auto-rows:58px;gap:20px 12px}
 .work-card{gap:9px}.work-card h3{font-size:18px;line-height:1.4;letter-spacing:-.04em}
 .work-media{border-radius:12px}
 .contact-dock .kakao{width:72px}
}
@media(prefers-reduced-motion:reduce){.promise-fist svg,.impact-letters{animation:none!important;transform:none!important;opacity:1!important}}

/* v16: compact contact marks and a continuous, draggable field gallery. */
.site-header .wordmark strong{transition:transform .25s cubic-bezier(.16,1,.3,1),color .2s}
@media(hover:hover){.site-header .wordmark:hover strong{transform:rotate(-8deg) skew(-9deg) scale(1.065)}}
.header-kakao{width:50px;height:50px;min-height:50px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.header-kakao .kakao-icon{width:34px;height:34px}
.hero .kakao .kakao-cutout{width:24px;height:23px}
.metric-number{font-weight:700}
.impact-word{font-family:Pretendard,PretendardFull,sans-serif;font-weight:750;letter-spacing:-.065em}
.works{overflow:hidden}
.work-marquee{width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;touch-action:pan-y;cursor:grab;overscroll-behavior-x:contain;padding:0 0 6px}
.work-marquee::-webkit-scrollbar{display:none}
.work-marquee.is-dragging{cursor:grabbing;user-select:none}
.work-marquee:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.work-track{display:flex;width:max-content}
.work-grid.work-group{display:flex;gap:24px;grid-template-columns:none;grid-auto-rows:auto;padding-right:24px;align-items:flex-start}
.work-group .work-card,.work-group .work-card.tall{display:flex;flex:0 0 clamp(300px,28vw,420px);width:clamp(300px,28vw,420px);gap:0;grid-row:auto}
.work-group .work-card:nth-child(even){padding-top:44px}
.work-group .work-media{flex:none;height:340px;width:100%;aspect-ratio:auto;border-radius:16px;margin-bottom:20px}
.work-group .work-card h3{font-size:24px;line-height:1.35;margin:0 0 8px}
.work-group .work-description{font-size:18px;line-height:1.5;color:var(--muted);margin:0;max-width:95%}
.work-group img{-webkit-user-drag:none;user-select:none}
.work-group [data-motion]{clip-path:none!important;opacity:1!important;animation:none!important}
@media(max-width:767px){
 .header-kakao{width:42px;height:42px;min-height:42px}
 .header-kakao .kakao-icon{width:28px;height:28px}
 .hero .kakao .kakao-cutout{width:22px;height:21px}
 .work-grid.work-group{gap:16px;padding-right:16px}
 .work-group .work-card,.work-group .work-card.tall{width:78vw;flex-basis:78vw;max-width:360px}
 .work-group .work-media{height:300px;margin-bottom:16px}
 .work-group .work-card:nth-child(even){padding-top:30px}
 .work-group .work-card h3{font-size:24px}
 .work-group .work-description{font-size:18px}
}
@media(max-width:374px){.header-kakao{width:36px;height:36px;min-height:36px}.header-kakao .kakao-icon{width:24px;height:24px}.hero .kakao .kakao-cutout{width:20px;height:19px}.work-group .work-media{height:260px}}
@media(prefers-reduced-motion:reduce){.site-header .wordmark:hover strong{transform:rotate(-3deg) skew(-5deg) scale(1.035)}}

.header-kakao{background:#FEE500;border-radius:50%}
.header-kakao:hover{background:#FFE928}

/* v17 — sculptural assets, open process flow and integrated consultation. */
:root{--consult-height:78px}
.hero .button,.contact-dock .button,.contact-dock .primary,.contact-dock .kakao{padding-top:20px;padding-bottom:20px}
.floating-top{bottom:calc(24px + env(safe-area-inset-bottom));width:64px;height:64px;border-radius:50%;font-size:14px;gap:2px}
.floating-top svg{width:18px;height:18px}
.desktop-nav a:after{bottom:21px}
.services .section-intro{font-size:18px;max-width:none;line-height:1.5;padding-bottom:6px}
.promise-icon{width:112px;height:112px;margin-bottom:18px}
.promise-icon img{width:100%;height:100%;object-fit:contain}
.impact-word{font-size:100px;font-weight:800}
.impact-exclamation{font-size:1.2em;margin-left:6px;line-height:.85}
.promise-feature-punch:not(.is-striking):not(.is-locked) .impact-letters{font-size:0}
.is-striking .impact-letters{animation:brand-grow .8s .14s cubic-bezier(.16,1,.3,1) both;transform:none}
@keyframes brand-grow{0%{font-size:0;opacity:0}55%{font-size:1.08em;opacity:1}78%{font-size:.97em}100%{font-size:1em;opacity:1}}
.promise-feature-punch.is-striking .promise-fist img{animation:fist-stamp .8s .12s cubic-bezier(.16,1,.3,1) both}
.work-group .work-card:nth-child(even){padding-top:0}
.process-flow{gap:44px;margin:56px 0 0}
.process-flow li:not(:last-child):after{display:none}
.process-flow .process-step{display:block;padding:0;border-radius:0;transform:none}
.process-visual{position:relative;margin-bottom:28px}
.process-flow .step-icon{width:144px;height:144px;margin:0 0 0 -10px;background:transparent;border:0;border-radius:0;display:block}
.step-icon img{width:100%;height:100%;object-fit:contain}
.flow-arrow{position:absolute;right:-12px;top:54px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--blue);background:#E4EEF9}
.flow-arrow svg{width:24px;height:24px}
.process-flow .step-index{display:block;font-size:14px;letter-spacing:.015em;margin-bottom:10px;color:var(--blue)}
.process-flow strong{display:block;font-size:24px;line-height:1.35;margin-bottom:16px}
.process-flow .step-copy{font-size:18px;line-height:1.55;margin:0}
.contact-banner{padding:88px 0 80px;background:#061A2E}
.contact-photo{opacity:.8;object-position:center;z-index:-4}
.contact-photo-shade{opacity:.72;background:#031626}
.contact-sweep{display:none}
.contact-content{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:72px;align-items:stretch}
.contact-copy{position:relative;padding:12px 0 250px}
.contact-banner h2{font-size:var(--section-title);line-height:1.2;margin-left:4px}
.contact-banner h2 em:after{display:none}
.contact-description{font-size:20px;line-height:1.55;margin-top:24px}
.contact-promises{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px;position:relative;z-index:3}
.contact-promises>span{display:flex;align-items:center;gap:7px;background:#fff;color:#064B9C;padding:12px 18px;border-radius:6px;font-size:18px;font-weight:750;transform:rotate(-3deg);box-shadow:4px 4px 0 #087BEE}
.contact-promises>span+span{background:#FEE500;color:#172D47;transform:rotate(3deg)}
.contact-promises strong{font-size:27px;letter-spacing:-.055em}
.contact-art{position:absolute;left:0;bottom:-100px;width:420px;height:330px;margin:0;pointer-events:none}
.contact-fist{width:380px;height:380px;left:10px;bottom:-25px;transform:rotate(-16deg);filter:drop-shadow(0 16px 24px #0004);object-fit:contain}
.contact-banner.is-in-view .contact-fist{animation:cta-rise .85s cubic-bezier(.16,1,.3,1) both}
@keyframes cta-rise{from{opacity:0;transform:translateY(130px) rotate(-25deg)}to{opacity:1;transform:translateY(0) rotate(-16deg)}}
.contact-panel{padding:32px;background:#FFFFFFF5;border-radius:24px;box-shadow:none;align-self:start}
.contact-areas{margin:0;padding:0;border:0}
.contact-areas h4{font-size:24px;display:flex;align-items:center;gap:10px;margin:0 0 24px}
.contact-areas h4 svg{width:32px;height:32px;stroke-width:2}
.area-panel ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px}
.area-panel li{position:relative;font-size:16px;padding-left:12px;white-space:normal;word-break:keep-all;line-height:1.45}
.area-panel li:before{content:'·';position:absolute;left:0;color:#087BEE;font-weight:900}
.area-panel li small{font-size:12px;padding:0;background:none;margin-left:3px;color:#647286;display:inline}
.contact-actions{flex-direction:row;gap:12px;margin-top:32px;align-items:stretch}
.contact-actions .button{height:78px;min-height:78px;padding:20px 16px;width:auto;gap:6px;font-size:20px}
.contact-actions .contact-call{background:#fff;color:var(--dark);border:1px solid #DFEAF5;box-shadow:0 5px 0 #96B3D4;flex:1.25}
.contact-actions .contact-call strong{font-size:23px;font-weight:800;line-height:1.15}
.contact-actions .contact-call>svg:first-child{width:22px;height:22px}
.contact-actions .contact-call>svg:last-child{display:block;width:27px;height:27px;margin:0}
.contact-actions .contact-chat{flex:1;background:#FEE500;color:#292600;box-shadow:0 5px 0 #C5AC00}
.contact-actions .kakao-cutout{width:24px;height:23px;stroke:none}
.contact-actions .contact-call:hover{background:#F2F8FF;box-shadow:0 7px 0 #96B3D4}
.contact-actions .contact-chat:hover{background:#FFE928}
.site-footer{padding:50px 0 144px;background:#06111E;color:#C0CDDA}
.footer-row{display:flex;align-items:center;gap:40px}
.site-footer .wordmark{--logo-size:52px;flex-shrink:0}
.site-footer .wordmark strong,.site-footer .wordmark-sub{color:#fff}
.business-info{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 0;font-size:14px;line-height:1.5;max-width:none;flex:1;color:#B9C7D5}
.business-info>span{padding:0 16px;border-right:1px solid #FFFFFF26;font-size:14px}
.business-info>span:first-child{padding-left:0}
.business-info>span:last-child{border-right:0}
.footer-copyright{font-size:12px;line-height:1.5;text-align:right;color:#8091A4;flex-shrink:0}
@media(min-width:768px) and (max-width:1199px){
 .services .section-heading{align-items:flex-start;flex-direction:column;gap:20px}
 .impact-word{font-size:80px}.promise-icon{width:94px;height:94px}
 .process-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}.process-flow li:nth-child(2) .flow-arrow{display:none}
 .contact-content{grid-template-columns:1fr;gap:36px}.contact-copy{padding-bottom:12px;max-width:none;padding-right:300px;min-height:310px}.contact-art{left:auto;right:0;bottom:-20px;width:280px;height:280px}.contact-fist{width:300px;height:300px;left:0;bottom:-20px}
 .contact-panel{width:100%;padding:32px}.contact-actions .contact-call{flex:1}.contact-actions .contact-chat{flex:1}
 .footer-row{gap:28px;flex-wrap:wrap}.business-info{min-width:60%}.footer-copyright{margin-left:auto}
}
@media(max-width:767px){
 .floating-top{bottom:calc(16px + env(safe-area-inset-bottom));right:12px;width:52px;height:52px;font-size:14px}
 .contact-dock{width:calc(100% - 96px);left:16px;transform:none;max-width:430px;gap:8px}
 .contact-dock .call-copy strong{font-size:20px}.contact-dock .kakao{width:64px}
 .contact-dock .primary{padding-left:12px;padding-right:12px}
 .services .section-intro{margin-top:20px;font-size:18px;padding:0}
 .promise-icon{width:94px;height:94px;margin:0;grid-column:2;grid-row:1}.promise-feature{grid-template-columns:1fr 94px}
 .impact-word{font-size:82px}.promise-value{min-height:105px}
 .process-flow{grid-template-columns:1fr;gap:32px;margin-top:36px}
 .process-flow .process-step{display:grid;grid-template-columns:104px 1fr;column-gap:20px;align-items:start}
 .process-visual{grid-column:1;grid-row:1/4;margin:0;position:relative}
 .process-flow .step-icon{width:112px;height:112px;margin:0 0 0 -8px}
 .process-flow .step-index,.process-flow strong,.process-flow .step-copy{grid-column:2}
 .process-flow .step-index{font-size:14px;margin-bottom:8px}
 .process-flow strong{font-size:24px;margin-bottom:10px}.process-flow .step-copy{font-size:18px;line-height:1.5}
 .flow-arrow{display:none}
 .contact-banner{padding:64px 0}.contact-content{grid-template-columns:1fr;gap:32px}
 .contact-copy{padding:0 0 230px}.contact-banner h2{font-size:var(--section-title)}
 .contact-description{font-size:18px;line-height:1.55;margin-top:24px}
 .contact-promises{gap:12px;margin-top:24px}.contact-promises>span{font-size:16px;padding:10px 14px}.contact-promises strong{font-size:25px}
 .contact-art{left:auto;right:-12px;bottom:-40px;width:280px;height:280px}.contact-fist{width:300px;height:300px;left:0;bottom:-25px}
 .contact-panel{padding:24px 20px;border-radius:20px}.contact-areas{margin:0;padding:0;border:0}
 .contact-areas h4{font-size:24px;margin-bottom:20px}.contact-areas h4 svg{width:32px;height:32px}
 .area-panel ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px}.area-panel li{font-size:16px}.area-panel li small{font-size:12px;display:inline}
 .contact-actions{margin-top:28px;gap:10px}.contact-actions .button{padding:20px 10px;font-size:18px}.contact-actions .contact-call strong{font-size:20px}.contact-actions .contact-call>svg:first-child{width:20px;height:20px}.contact-actions .contact-call>svg:last-child{display:none}.contact-actions .contact-chat{flex:none;width:64px}.contact-chat>span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.contact-actions .kakao-cutout{width:27px;height:26px}
 .site-footer{padding:40px 0 132px}.footer-row{flex-wrap:wrap;gap:28px}.site-footer .wordmark{--logo-size:42px}.business-info{flex-basis:100%;order:2;gap:12px 0}.business-info>span{padding:0 12px}.footer-copyright{margin-left:auto;font-size:11px}
}
@media(max-width:479px){.area-panel ul{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-dock .call-copy strong{font-size:18px}.contact-dock .primary>svg:first-child{display:none}.contact-dock .kakao{width:56px}.contact-dock .kakao .kakao-cutout{width:28px;height:26px}.business-info>span{border-right:0;padding:0;flex-basis:100%}.process-flow .process-step{grid-template-columns:80px 1fr;column-gap:16px}.process-flow .step-icon{width:92px;height:92px;margin-left:-10px}}
@media(max-width:374px){.site-footer .wordmark{--logo-size:38px}.contact-dock .call-copy strong{font-size:16px}.contact-dock .primary{padding-left:8px;padding-right:8px}.contact-dock .kakao{width:50px}.impact-word{font-size:68px}.promise-icon{width:80px;height:80px}.promise-feature{grid-template-columns:1fr 80px}.contact-panel{padding:24px 16px}.contact-actions .contact-call strong{font-size:18px}.contact-promises>span{padding:9px 11px;font-size:15px}.contact-promises strong{font-size:24px}}
@media(prefers-reduced-motion:reduce){.impact-letters{font-size:1em!important}.contact-fist{animation:none!important}}
@media(max-width:479px){.business-info>span{border-bottom:1px solid #FFFFFF18;padding-bottom:10px}.business-info>span:last-child{border-bottom:0;padding-bottom:0}}

/* v18 — warmer emoji assets, measured spacing and compact comic consultation. */
.hero .fist-stage{translate:-28px 0}
.promise-feature+.promise-feature{border-left:0;position:relative}
.promise-feature+.promise-feature:before{content:'';position:absolute;top:0;bottom:0;left:-14px;width:1px;background:#A4CFFF22}
.impact-exclamation{position:relative;top:.08em}
.work-marquee,.work-marquee.is-dragging,.work-card,.work-media,.work-media img{cursor:default}
.work-card:hover .work-media img{transform:none}
.work-group .work-description{min-height:3em;max-width:none}
.work-group .work-description br{display:block}
.process-flow .step-copy{min-height:3.1em}
.process-flow{column-gap:64px}
.process-flow .process-visual{display:flex;align-items:center;justify-content:center;height:144px}
.process-flow .step-icon{margin:0;width:132px;height:132px}
.process-flow .flow-arrow{right:-51px;top:52px;width:38px;height:38px}
.contact-content{grid-template-columns:minmax(0,1fr) 600px;gap:64px}
.contact-banner h2{font-family:Pretendard,PretendardFull,sans-serif;font-weight:750;font-size:var(--section-title);line-height:1.2;letter-spacing:-.045em}
.contact-copy{padding-bottom:330px}
.contact-panel{width:600px;padding:28px}
.area-panel ul{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:6px;row-gap:14px}
.area-panel li{font-size:16px;white-space:nowrap;letter-spacing:-.04em;padding-left:10px}
.contact-actions{display:flex;flex-direction:row;gap:14px;justify-content:center}
.contact-actions .button{flex:none;width:auto;height:78px;min-height:78px;padding:20px 24px;font-size:20px;gap:6px;justify-content:center}
.contact-actions .contact-call{flex:none;width:auto;padding-left:24px;padding-right:24px}
.contact-actions .call-copy{flex:none;width:auto;margin:0;text-align:center}
.contact-actions .contact-call strong{font-size:24px;letter-spacing:-.04em}
.contact-actions .contact-call>svg:last-child{width:28px;height:28px;margin:0}
.contact-actions .contact-chat{flex:none;width:auto;padding-left:24px;padding-right:24px}
.contact-actions .contact-chat>span{position:static;width:auto;height:auto;clip-path:none;overflow:visible}
.contact-art{position:absolute;left:0;bottom:-85px;width:480px;height:360px;max-width:none}
.contact-fist{width:430px;height:430px;left:-45px;bottom:-35px;transform:rotate(-8deg);filter:drop-shadow(6px 10px 0 #03172C65)}
.contact-art .promise-emergency{width:184px;height:169px;right:5px;top:-26px;padding:30px 26px;bottom:auto;gap:4px}
.contact-art .promise-emergency strong{font-size:46px}
.contact-art .promise-emergency strong span{font-size:21px}
.contact-art .promise-emergency .promise-label{font-size:20px}
.contact-art .promise-zero{width:162px;height:155px;right:-8px;bottom:-3px;top:auto;padding:29px 24px;gap:4px}
.contact-art .promise-zero strong{font-size:59px}
.contact-art .promise-zero .promise-label{font-size:18px}
.contact-art .promise-label-text{width:auto;transform:none}
.contact-banner.is-in-view .contact-fist{animation:cta-comic-rise .85s cubic-bezier(.16,1,.3,1) both}
@keyframes cta-comic-rise{from{opacity:0;transform:translateY(120px) rotate(-16deg)}to{opacity:1;transform:translateY(0) rotate(-8deg)}}
.footer-row{display:grid;grid-template-columns:1fr auto;gap:30px 40px;align-items:end}
.site-footer .wordmark{grid-column:1/-1;justify-self:start}
.business-info{grid-column:1;min-width:0;flex:none;gap:10px 0;color:#7F8D9C;font-size:13px}
.business-info>span{font-size:13px;border:0;padding:0 14px;position:relative;flex-basis:auto}
.business-info>span+span:before{content:'';position:absolute;left:0;top:50%;width:1px;height:10px;background:#FFFFFF20;transform:translateY(-50%)}
.footer-copyright{grid-column:2;font-size:11px;color:#697989;white-space:nowrap;line-height:1.5;margin:0}
@media(min-width:768px) and (max-width:1199px){
 .contact-content{grid-template-columns:1fr;gap:36px}.contact-panel{width:600px;max-width:100%;justify-self:center}
 .contact-copy{padding:0 320px 0 0;min-height:340px}.contact-art{left:auto;right:0;bottom:-12px;width:320px;height:320px}.contact-fist{width:310px;height:310px;left:-40px;bottom:0}
 .contact-art .promise-emergency{width:142px;height:130px;right:0;top:-8px;padding:25px 20px}.contact-art .promise-emergency strong{font-size:36px}.contact-art .promise-emergency .promise-label{font-size:16px}.contact-art .promise-zero{width:128px;height:123px;right:0;bottom:6px;padding:24px 18px}.contact-art .promise-zero strong{font-size:46px}.contact-art .promise-zero .promise-label{font-size:15px}
 .process-flow{column-gap:90px}.process-flow .flow-arrow{right:-64px}.footer-row{grid-template-columns:1fr;gap:24px}.business-info{grid-column:1;min-width:0}.footer-copyright{grid-column:1;text-align:left;margin:0}
}
@media(max-width:767px){
 .hero .fist-stage{translate:-14px 0}
 .promise-feature+.promise-feature:before{display:none}
 .process-flow .process-visual{height:104px;display:block}.process-flow .step-icon{width:104px;height:104px;margin-left:-4px}.process-flow .flow-arrow{display:none}
 .process-flow .process-step{grid-template-columns:104px 1fr}
 .contact-content{grid-template-columns:1fr;gap:32px}.contact-copy{padding:0 0 300px;min-height:0}
 .contact-panel{width:100%;max-width:600px;padding:24px 20px}
 .contact-banner h2{font-size:var(--section-title)}
 .contact-art{width:350px;height:300px;max-width:100%;left:0;right:auto;bottom:-24px}
 .contact-fist{width:320px;height:320px;left:-35px;bottom:-20px}
 .contact-art .promise-emergency{width:148px;height:136px;right:0;top:0;padding:24px 21px}.contact-art .promise-emergency strong{font-size:38px}.contact-art .promise-emergency strong span{font-size:18px}.contact-art .promise-emergency .promise-label{font-size:16px}
 .contact-art .promise-zero{width:132px;height:127px;right:0;bottom:3px;padding:23px 18px}.contact-art .promise-zero strong{font-size:48px}.contact-art .promise-zero .promise-label{font-size:15px}
 .area-panel ul{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:4px;row-gap:12px}
 .contact-actions{gap:10px}.contact-actions .button{padding:20px 14px;font-size:18px}.contact-actions .contact-call strong{font-size:21px}.contact-actions .contact-chat{width:auto;padding:20px 14px}
 .contact-actions .contact-call>svg:last-child{display:block;width:24px;height:24px}
 .site-footer .wordmark{grid-column:1/-1}.footer-row{display:grid;grid-template-columns:1fr;gap:24px}.business-info{order:initial;grid-column:1;flex-basis:auto;display:flex;flex-direction:row;gap:10px 0}.business-info>span{font-size:13px;padding:0 12px;border:0;flex-basis:auto}.business-info>span:first-child{padding-left:0}.footer-copyright{grid-column:1;text-align:left;white-space:normal;font-size:11px;margin:0}
}
@media(max-width:479px){
 .process-flow .process-step{display:block}.process-flow .process-visual{height:100px;margin-bottom:16px}.process-flow .step-icon{width:104px;height:104px;margin-left:-4px}.process-flow .step-copy{font-size:18px}.process-flow{gap:36px}
 .contact-panel{padding:24px 16px}.area-panel li{font-size:16px;padding-left:8px;letter-spacing:-.06em}
 .contact-actions{gap:10px;justify-content:stretch}.contact-actions .contact-call{flex:1;min-width:0;padding:20px 10px}.contact-actions .contact-call strong{font-size:21px}.contact-actions .contact-call>svg:first-child{width:20px;height:20px}.contact-actions .contact-call>svg:last-child{display:none}
 .contact-actions .contact-chat{width:60px;padding:20px 12px}.contact-actions .contact-chat>span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.contact-actions .kakao-cutout{width:24px;height:23px}
 .business-info>span{padding:0 10px}.business-info>span:nth-child(3){padding-left:0}.business-info>span:nth-child(3):before{display:none}
}
@media(max-width:374px){
 .hero .fist-stage{translate:-10px 0}.contact-actions .contact-call strong{font-size:19px}.contact-actions .contact-call>svg:first-child{display:none}.contact-actions .contact-chat{width:54px}.contact-panel{padding:22px 12px}.area-panel li{font-size:15px}.contact-art{width:290px}.contact-fist{width:290px;height:290px;left:-35px}.contact-art .promise-emergency{width:128px;height:118px;right:-2px;top:6px}.contact-art .promise-emergency strong{font-size:32px}.contact-art .promise-emergency .promise-label{font-size:14px}.contact-art .promise-zero{width:118px;height:113px;right:-2px;bottom:12px}.contact-art .promise-zero strong{font-size:42px}.contact-art .promise-zero .promise-label{font-size:14px}
 .business-info{display:block}.business-info>span{display:block;padding:0;margin:0 0 8px}.business-info>span:before{display:none}
}
@media(min-width:1024px){
 .contact-actions .button{padding:20px 26px;font-weight:750}
 .contact-actions .contact-call{padding:20px 26px;gap:7px}
 .contact-actions .contact-call strong{font:900 24px/1 Pretendard,PretendardFull,sans-serif;letter-spacing:-.025em}
 .contact-actions .contact-call>svg:first-child{width:26px;height:26px}.contact-actions .contact-call>svg:last-child{width:30px;height:30px}
 .contact-actions .contact-chat{padding:20px 26px;gap:10px}
}
@media(max-width:374px){.area-panel li{font-size:16px;white-space:normal;word-break:break-all;letter-spacing:-.04em}.footer-copyright{font-size:10px;white-space:nowrap}}

/* v19: original flat filled vectors, natural copy flow and genuinely content-sized CTAs. */
.process-flow .process-visual{justify-content:flex-start}
.process-flow .flow-arrow{right:-31px}
.work-group .work-description{word-break:normal;overflow-wrap:anywhere;text-wrap:wrap;min-height:3em}
.hero .primary,.contact-dock .primary{color:var(--blue)}
.hero .button,.contact-dock .button,.contact-dock .primary,.contact-dock .kakao,.contact-actions .button{height:auto;min-height:0;padding-top:16px;padding-bottom:16px}
.hero .cta-row,.contact-dock,.contact-actions{align-items:stretch}
.hero .kakao,.contact-dock .kakao,.contact-actions .contact-chat{line-height:1.5}
.hero .kakao{padding-right:32px}.contact-dock .kakao{padding-right:30px}.contact-actions .contact-chat{padding-right:32px}
.contact-banner h2{font-family:HanbangLogo,Pretendard,sans-serif;font-weight:400;font-size:86px;line-height:1.08;letter-spacing:-.045em;transform:skew(-8deg)}
.contact-content{grid-template-columns:minmax(0,1fr) 584px;gap:60px}
.contact-panel{width:584px;padding:24px}
.contact-areas{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:24px 18px;align-items:center}
.contact-areas h4{font-size:22px;margin:0;gap:8px;white-space:nowrap}
.contact-areas h4 svg{width:30px;height:30px}
.contact-areas .area-tabs{width:260px;max-width:100%;justify-self:end;margin:0}
.contact-areas .area-tabs button{font-size:17px;padding:10px 12px}
.contact-areas .area-panels{grid-column:1/-1;padding:0 16px}
.contact-actions{margin-top:26px;padding-top:24px;border-top:1px solid #DAE5EE;gap:14px}
.contact-actions .contact-call{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 4px 0 #0559B0}
.contact-actions .contact-call:hover{background:var(--hover);color:#fff;box-shadow:0 6px 0 #0559B0}
.contact-art .promise-zero{left:-30px;right:auto;bottom:28px}
.contact-art .promise-zero strong{gap:1px}
.contact-art .promise-zero strong span{font-size:.48em;margin-left:-1px}
@media(min-width:768px) and (max-width:1199px){
 .process-flow .flow-arrow{right:-42px}
 .contact-content{grid-template-columns:1fr}.contact-panel{width:584px;max-width:100%}
 .contact-banner h2{font-size:68px}
 .contact-copy{padding-right:300px;min-height:360px}
 .contact-art .promise-zero{left:-30px;right:auto;bottom:8px}
}
@media(max-width:767px){
 .process-flow .process-visual{display:block}
 .contact-content{grid-template-columns:1fr}.contact-panel{width:100%;padding:24px 20px}
 .contact-banner h2{font-size:clamp(47px,9.8vw,70px)}
 .contact-areas{grid-template-columns:1fr;gap:18px}.contact-areas h4{font-size:24px}.contact-areas .area-tabs{width:100%;justify-self:stretch}.contact-areas .area-panels{padding:0 10px}
 .contact-art .promise-zero{left:-10px;right:auto;bottom:4px}
 .contact-actions{padding-top:22px;margin-top:24px}
 .hero .button,.contact-dock .button,.contact-dock .primary,.contact-dock .kakao,.contact-actions .button{height:auto;min-height:0;padding-top:16px;padding-bottom:16px}
 .contact-dock .kakao{padding-right:12px}
}
@media(max-width:479px){.contact-actions .contact-chat{padding-right:12px}.contact-panel{padding:22px 16px}.contact-areas .area-panels{padding:0 6px}.contact-banner h2{font-size:clamp(45px,11.8vw,57px)}}
@media(max-width:374px){.contact-banner h2{font-size:43px}.contact-areas .area-panels{padding:0 3px}.contact-art .promise-zero{left:-5px;bottom:12px}}
.hero .button,.contact-dock .button,.contact-dock .primary,.contact-dock .kakao,.contact-actions .button{padding-top:20px;padding-bottom:20px}
@media(min-width:768px) and (max-width:899px){.contact-banner h2{font-size:56px}.contact-copy{padding-right:290px}}
.contact-dock .kakao .kakao-cutout{width:32px;height:30px}
/* Align the area heading and tabs to the consultation row; inset only the district list. */
.contact-areas{display:block;width:100%;max-width:520px;margin:0 auto}
.contact-areas h4{margin:0 0 20px}
.contact-areas .area-tabs{width:100%;max-width:none;margin:0 0 22px}
.contact-areas .area-panels{padding:0 16px}
.contact-actions{max-width:520px;margin-left:auto;margin-right:auto}
@media(max-width:767px){.contact-areas .area-panels{padding:0 10px}}
@media(max-width:479px){.contact-areas .area-panels{padding:0 6px}}
@media(max-width:374px){.contact-areas .area-panels{padding:0 3px}}

/* v20 — persistent consultation accents and reliable pointer-based marquee resume. */
.hero .button,.contact-dock .button,.contact-actions .button,.header-call{position:relative;isolation:isolate}
.hero .button:after,.contact-dock .button:after,.contact-actions .button:after,.header-call:after{content:'';position:absolute;inset:-1px;border:2px solid currentColor;border-radius:inherit;pointer-events:none;opacity:0;animation:consult-beacon 3.2s ease-out infinite;z-index:-1}
.hero .kakao:after,.contact-dock .kakao:after,.contact-actions .contact-chat:after{border-color:#E2BB00;animation-delay:1.4s}
@keyframes consult-beacon{0%,12%{opacity:0;scale:1}18%{opacity:.42;scale:1}45%{opacity:0;scale:1.075 1.18}100%{opacity:0;scale:1.075 1.18}}
.hero .button>.contact-icon,.contact-dock .button>.contact-icon,.contact-actions .button>.contact-icon{animation:phone-beckon 4.4s ease-in-out infinite}
@keyframes phone-beckon{0%,72%,100%{rotate:0deg}77%{rotate:-13deg}82%{rotate:10deg}87%{rotate:-7deg}92%{rotate:0deg}}
.promise-icon{width:96px;height:96px}
.work-description br{display:block}
.process-flow .step-icon{width:112px;height:112px}
.process-flow .process-visual{height:124px}
.process-flow .flow-arrow{right:68px;top:36px}
@media(min-width:1200px){.process-flow>li:last-child{justify-self:end;width:max-content;max-width:100%}.process-flow>li:last-child .process-step{width:max-content;max-width:100%}}
.contact-banner{padding-top:80px;padding-bottom:80px}
.contact-content{align-items:center}
.contact-copy{padding:0;min-height:0;align-self:stretch}
.contact-banner h2{margin-left:-12px}
.contact-art{left:40px;bottom:-130px;height:330px}
.contact-fist{left:-15px;bottom:-50px;width:420px;height:420px}
.contact-art .promise-zero{bottom:110px;left:-30px}
.area-panel ul{row-gap:9px}
@media(min-width:768px) and (max-width:1199px){.promise-icon{width:82px;height:82px}.process-flow .flow-arrow{right:90px;top:36px}.process-flow .step-icon{width:104px;height:104px}.contact-copy{padding-right:300px;min-height:360px}.contact-art{left:auto;right:0;bottom:-65px;height:300px}.contact-fist{width:310px;height:310px;left:0;bottom:-40px}.contact-art .promise-zero{left:-30px;bottom:60px}}
@media(min-width:768px) and (max-width:899px){.contact-copy{padding-right:290px}}
@media(max-width:767px){.promise-icon{width:82px;height:82px}.promise-feature{grid-template-columns:1fr 82px}.process-flow .step-icon{width:92px;height:92px;margin-left:0}.process-flow .process-visual{height:96px}.process-flow>li:last-child{justify-self:stretch;width:auto}.contact-banner{padding-top:64px;padding-bottom:64px}.contact-copy{padding:0 0 250px;min-height:0}.contact-art{left:24px;right:auto;bottom:-80px;height:280px}.contact-fist{width:300px;height:300px;left:0;bottom:-45px}.contact-art .promise-zero{left:-24px;bottom:80px}.area-panel ul{row-gap:8px}}
@media(max-width:374px){.promise-icon{width:72px;height:72px}.promise-feature{grid-template-columns:1fr 72px}.contact-banner h2{margin-left:-8px}.contact-art{left:20px}.contact-fist{width:280px;height:280px}.contact-art .promise-zero{left:-24px;bottom:84px}}
@media(prefers-reduced-motion:reduce){.hero .button:after,.contact-dock .button:after,.contact-actions .button:after,.header-call:after{display:none}.hero .button>.contact-icon,.contact-dock .button>.contact-icon,.contact-actions .button>.contact-icon{animation:none!important}}
@media(min-width:1200px){.contact-fist{width:350px;height:350px;left:10px}.contact-art .promise-emergency{top:30px}}
.contact-actions .contact-call:after,.header-call:after{border-color:var(--blue)}
.header-kakao{position:relative;isolation:isolate}
.header-kakao:after{content:'';position:absolute;inset:-1px;border:2px solid #E2BB00;border-radius:inherit;pointer-events:none;opacity:0;animation:consult-beacon 3.2s 1.4s ease-out infinite;z-index:-1}
@media(prefers-reduced-motion:reduce){.header-kakao:after{display:none}}

/* v21 — pipe motifs, even-distance beacons and a balanced four-step rhythm. */
.services,.process{position:relative;isolation:isolate;overflow:hidden}
.services>.container,.process>.container{position:relative;z-index:1}



/* Animate equal pixel offsets, instead of stretching a pill by unequal x/y scales. */
.hero .button:after,.contact-dock .button:after,.contact-actions .button:after,.header-call:after,.header-kakao:after{inset:-2px;border-width:2px;animation-name:consult-beacon-even;animation-duration:3.2s;scale:none}
@keyframes consult-beacon-even{0%,8%{inset:-2px;opacity:0}15%{inset:-2px;opacity:.68}48%,100%{inset:-12px;opacity:0}}
.hero .button>.kakao-icon,.contact-dock .button>.kakao-icon,.contact-actions .button>.kakao-icon,.header-kakao>.kakao-icon{animation:phone-beckon 4.4s 1.4s ease-in-out infinite;transform-origin:center}
.header-call>.contact-icon{animation:phone-beckon 4.4s ease-in-out infinite}
.hero .hero-shade{opacity:.72}
.why .why-shade{opacity:.72}
.impact-word{font-size:94px}
.impact-exclamation{top:.025em}
.site-header .wordmark{position:relative;top:2px}
.wordmark .wordmark-sub{transform:translateX(2px)}
.floating-top svg{translate:0 3px}
.process-flow{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:60px}
.process-flow>li,.process-flow>li:last-child{justify-self:stretch;width:auto;max-width:100%}
.process-flow>li:last-child .process-step{width:100%;max-width:100%}
.process-flow .step-icon{width:96px;height:96px}
.process-flow .process-visual{height:108px}
.process-flow .flow-arrow{left:calc(50% + 24px);right:auto;top:32px;width:28px;height:28px;background:#E4F1F8;color:#2586CC}
.process-flow .flow-arrow svg{width:17px;height:17px;display:block;margin:0;stroke-width:2}
.contact-art .promise-zero{left:80px;bottom:90px}
.contact-art .promise-copy-zero{gap:2px!important}
.contact-art .promise-zero strong{gap:6px}
.contact-art .promise-zero strong span{margin-left:0}
.contact-areas h4{gap:4px}
.contact-actions .contact-call{box-shadow:0 5px 0 #0559B0}
.contact-actions .contact-call:hover{box-shadow:0 7px 0 #0559B0}
@media(min-width:1200px){.contact-fist{left:150px}}
@media(min-width:768px) and (max-width:1199px){
 .impact-word{font-size:76px}
 .process-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 64px}
 .process-flow .step-icon{width:88px;height:88px}
 .process-flow .flow-arrow{left:calc(50% + 24px);right:auto;top:28px}
 .process-flow .process-visual{height:100px}
 .contact-fist{left:48px}.contact-art .promise-zero{left:12px;bottom:60px}
}
@media(max-width:767px){
 
 .impact-word{font-size:77px}
 .process-flow{grid-template-columns:1fr;gap:36px}
 .process-flow .step-icon{width:80px;height:80px}.process-flow .process-visual{height:84px}
 .process-flow .flow-arrow{display:none}
 .contact-fist{left:55px}.contact-art .promise-zero{left:10px;bottom:80px}
}
@media(max-width:374px){.impact-word{font-size:64px}.contact-fist{left:32px}.contact-art .promise-zero{left:-8px;bottom:84px}}
@media(prefers-reduced-motion:reduce){
 .hero .button>.kakao-icon,.contact-dock .button>.kakao-icon,.contact-actions .button>.kakao-icon,.header-kakao>.kakao-icon,.header-call>.contact-icon{animation:none!important}
}
/* Keep the emergency balloon clear of the knuckles after moving the arm right. */
@media(min-width:1200px){.contact-art .promise-emergency{left:0;right:auto;top:0}.contact-art .promise-zero{left:170px;bottom:60px}}
@media(min-width:768px) and (max-width:1199px){.contact-art .promise-emergency{left:-25px;right:auto;top:-8px}.contact-art .promise-zero{left:88px;bottom:35px}}
@media(max-width:767px){.contact-art .promise-emergency{left:-10px;right:auto;top:0}.contact-art .promise-zero{left:130px;bottom:50px}}
@media(max-width:374px){.contact-art .promise-emergency{left:-10px}.contact-art .promise-zero{left:104px;bottom:54px}}
@media(min-width:1200px){.contact-art .promise-emergency{top:30px}}
@media(max-width:767px){.contact-fist{left:5px}.contact-art .promise-zero{left:85px}}
@media(max-width:374px){.contact-fist{left:0}.contact-art .promise-zero{left:72px}}

/* v22 — expansive blue pipework, shadow-aware ripples and full-width process spacing. */


.hero .button,.contact-dock .button,.contact-actions .button{--beacon-shadow:5px}
.hero .button{--beacon-shadow:6px}
.hero .button:hover{--beacon-shadow:9px}
.contact-dock .button:hover,.contact-actions .button:hover{--beacon-shadow:7px}
.header-call,.header-kakao{--beacon-shadow:0px}
.hero .button:after,.contact-dock .button:after,.contact-actions .button:after,.header-call:after,.header-kakao:after{border-width:3px;inset:-3px -3px calc(-3px - var(--beacon-shadow)) -3px;animation-name:consult-beacon-shadow;transition:bottom .18s}
@keyframes consult-beacon-shadow{0%,8%{inset:-3px -3px calc(-3px - var(--beacon-shadow)) -3px;opacity:0}15%{inset:-3px -3px calc(-3px - var(--beacon-shadow)) -3px;opacity:.75}48%,100%{inset:-15px -15px calc(-15px - var(--beacon-shadow)) -15px;opacity:0}}
.hero .promise-zero strong{position:relative;left:-3px}
.process-flow .flow-arrow{left:calc(100% + 40px);right:auto;top:28px;width:40px;height:40px}
.process-flow .flow-arrow svg{width:24px;height:24px}
.contact-banner{padding-top:112px;padding-bottom:112px}
.contact-banner h2{line-height:1.01}
@media(min-width:1200px){
 .process-flow{grid-template-columns:repeat(4,max-content);justify-content:space-between;column-gap:40px}
 .process-flow>li,.process-flow>li:last-child{width:max-content;max-width:none;justify-self:start}
 .process-flow .process-step,.process-flow>li:last-child .process-step{width:max-content;max-width:none}
 .contact-banner h2{font-size:90px}
 .contact-art .promise-emergency{left:420px;right:auto;top:30px}
}
@media(min-width:1200px) and (max-width:1350px){.contact-art .promise-emergency{left:360px;width:164px;height:151px;padding:26px 22px}.contact-art .promise-emergency strong{font-size:41px}.contact-art .promise-emergency .promise-label{font-size:18px}.contact-art{left:15px}.contact-fist{left:110px}}
@media(min-width:768px) and (max-width:1199px){
 
 
 .process-flow .flow-arrow{left:calc(50% + 64px);top:24px}
 .contact-fist{left:-25px}.contact-art .promise-emergency{left:180px;right:auto;top:0}
}
@media(min-width:768px) and (max-width:1023px){.contact-banner{padding-top:80px;padding-bottom:80px}}
@media(max-width:767px){
 
 
 .contact-banner{padding-top:72px;padding-bottom:72px}
 .contact-fist{left:-25px}.contact-art .promise-emergency{left:155px;right:auto;top:0}
 .contact-art .promise-zero{left:35px}
}
@media(max-width:374px){.contact-fist{left:-30px}.contact-art .promise-emergency{left:140px}.contact-art .promise-zero{left:20px}}
/* Narrow screens keep the emergency label beside the hand, with the knuckles visible. */
@media(max-width:767px){.contact-fist{left:-55px}.contact-art .promise-emergency{left:185px;width:124px;height:114px;padding:20px 17px}.contact-art .promise-emergency strong{font-size:32px}.contact-art .promise-emergency strong span{font-size:16px}.contact-art .promise-emergency .promise-label{font-size:14px}}
@media(max-width:374px){.contact-fist{left:-55px}.contact-art .promise-emergency{left:155px;width:112px;height:103px;padding:18px 15px}.contact-art .promise-emergency strong{font-size:29px}.contact-art .promise-emergency strong span{font-size:14px}.contact-art .promise-emergency .promise-label{font-size:13px}}

/* v23 — skin-toned fist, no decorative pipework and arrows centered on the whole step. */
.process-flow .process-step{position:relative}
.process-flow .process-visual{position:static}
.process-flow .flow-arrow{left:calc(100% + 88px);right:auto;top:50%;translate:0 -50%}
@media(min-width:1200px){.contact-fist{width:420px;height:420px;left:115px;bottom:-95px}}
@media(min-width:1200px) and (max-width:1350px){.contact-fist{left:70px}}
@media(min-width:768px) and (max-width:1199px){.process-flow .flow-arrow{left:calc(100% + 12px);top:50%}.contact-fist{width:360px;height:360px;left:-50px;bottom:-75px}}
@media(max-width:767px){.contact-fist{width:340px;height:340px;left:-75px;bottom:-75px}}
@media(max-width:374px){.contact-fist{width:315px;height:315px;left:-73px;bottom:-73px}}
.contact-fist{max-width:none}
@media(min-width:1351px){.contact-art .promise-emergency{left:445px}}

/* v24 — let the impact burst escape its column; clip only the photographic backdrop. */
.why{overflow:visible}
.why-backdrop{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none}
.why-backdrop .why-background{z-index:0}
.why-backdrop .why-shade{z-index:1}
.promise-feature-punch,.promise-word,.impact-word{overflow:visible;clip-path:none}
.impact-word{isolation:isolate}
.impact-flash{left:-30px;transform-origin:0 55%}
.process-flow{--flow-copy-width:clamp(236px,19vw,280px)}
@media(min-width:1200px){
 .process-flow .step-copy{width:var(--flow-copy-width);max-width:none}
 .contact-fist{width:500px;height:500px;left:75px;bottom:-125px}
}
@media(min-width:1351px){.contact-art .promise-emergency{left:475px}}
@media(min-width:1200px) and (max-width:1350px){.contact-fist{width:460px;height:460px;left:50px;bottom:-115px}}
@media(min-width:768px) and (max-width:1199px){.contact-fist{width:420px;height:420px;left:-80px;bottom:-90px}}
@media(max-width:767px){
 .impact-flash{left:-10px}
 .process-flow .step-copy{max-width:100%}
 .contact-fist{width:390px;height:390px;left:-100px;bottom:-35px}
}
@media(max-width:374px){.contact-fist{width:360px;height:360px;left:-96px;bottom:-25px}}
.process-flow .step-copy br{display:block}
@media(max-width:767px){.contact-fist{bottom:-20px}}
@media(max-width:374px){.contact-fist{bottom:-10px}}
/* v25 — move process arrows slightly toward the preceding step. */
.process-flow .flow-arrow{translate:-20px -50%}

/* v26 — mobile layout, touch targets and short-viewport consultation. Desktop >=1024 is preserved. */
@media(max-width:1023px){
 .mobile-nav{max-height:calc(100dvh - var(--header) - 16px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .menu-toggle{min-width:44px;min-height:44px}
 .menu-toggle svg{width:24px;height:24px}
 .menu-toggle[aria-expanded="true"]{color:var(--blue);background:#EAF4FF}
}
@media(max-width:767px){
 :root{--header:80px;--mobile-gutter:20px}
 html{scroll-padding-top:calc(var(--header) + 16px)}
 body{padding-bottom:0}
 .container{width:calc(100% - var(--mobile-gutter)*2)}
 .header-inner{gap:12px}
 .header-actions{gap:6px;margin-left:auto;min-width:0}
 .site-header .wordmark{flex:none}
 .header-call{min-height:44px;padding:10px;font-size:13px;line-height:1;gap:4px;white-space:nowrap}
 .header-call .contact-icon{width:14px;height:14px}
 .header-kakao{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;display:flex;align-items:center;justify-content:center}
 .header-kakao .kakao-icon{width:28px;height:28px}
 .menu-toggle{width:44px;height:44px;padding:0}
 .mobile-nav{padding:12px var(--mobile-gutter) 20px}
 .mobile-nav a{min-height:48px;padding:12px 4px;font-size:17px;line-height:1.4}
 .mobile-nav a svg{width:20px;height:20px}
 .section{padding:72px 0}
 .section-heading{margin-bottom:32px}
 .section-intro,.services .section-intro,.works .section-intro{font-size:16px;line-height:1.5;padding:0;margin-top:18px}
 .hero-grid{min-height:0;padding:36px 0 40px;gap:0}
 .hero h1{font-size:clamp(46px,14.6vw,74px);line-height:.94;margin:0;max-width:100%}
 .hero-title-line{white-space:nowrap}
 .hero-lead{font-size:18px;line-height:1.5;margin-top:18px;max-width:none}
 .hero-lead-break{display:block}
 .hero-art{width:min(100%,380px);max-width:100%;height:320px;aspect-ratio:auto;margin:24px auto 16px}
 .hero .cta-row{display:grid;grid-template-columns:1fr;gap:14px;margin-top:24px;max-width:none;width:100%}
 .hero .button{width:100%;min-width:0;min-height:58px;height:auto;padding:14px 18px;gap:7px;font-size:18px;line-height:1.5}
 .hero .primary{justify-content:center}
 .hero .call-copy strong{font-size:22px;line-height:1.25}
 .hero .primary>svg:first-child{display:block;width:22px;height:22px}
 .hero .primary>svg:last-child{display:block;width:25px;height:25px;margin:0}
 .hero .kakao{font-size:18px;padding-right:24px}
 .hero .kakao .kakao-cutout{width:25px;height:24px}
 .service-grid{grid-template-columns:1fr;gap:20px}
 .service-body{padding:20px}
 .service-card h3{font-size:22px}
 .service-description{font-size:16px;line-height:1.5;min-height:3em}
 .price-row>span{font-size:14px}.price-row>strong{font-size:18px}
 .promise-grid{gap:0}.promise-feature{column-gap:16px}
 .promise-description{font-size:16px;line-height:1.5}
 .promise-feature h3{font-size:22px}
 .impact-flash{left:-10px}
 .work-group{gap:16px}
 .work-group .work-card{width:min(78vw,340px);flex:0 0 min(78vw,340px)}
 .work-group .work-media{height:260px;min-height:260px;aspect-ratio:auto}
 .work-group .work-card h3{font-size:20px;line-height:1.35}
 .work-group .work-description{font-size:16px;line-height:1.5;min-height:3em}
 .work-marquee{touch-action:pan-y;overscroll-behavior-x:contain}
 .process-flow{grid-template-columns:1fr;gap:30px;margin-top:36px}
 .process-flow .process-step{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:16px;align-items:start;width:100%}
 .process-flow .process-visual{grid-column:1;grid-row:1/4;width:64px;height:80px;margin:0}
 .process-flow .step-icon{width:64px;height:64px;margin:0}
 .process-flow .step-index{grid-column:2;font-size:12px;line-height:1.4;letter-spacing:.015em;margin:0 0 6px}
 .process-flow strong{grid-column:2;font-size:20px;line-height:1.35;margin:0 0 8px}
 .process-flow .step-copy{grid-column:2;width:auto;max-width:none;font-size:16px;line-height:1.5;min-height:3em;margin:0}
 .process-flow .flow-arrow{display:none}
 .contact-content{gap:24px}
 .contact-copy{padding:0 0 250px;min-height:0}
 .contact-banner h2{font-size:clamp(40px,11.2vw,64px);line-height:1.02;transform:none;margin-left:0;letter-spacing:-.045em}
 .contact-banner h2>span{display:block;width:max-content;max-width:100%;transform:skew(-8deg);transform-origin:0 100%}
 .contact-description{font-size:17px;line-height:1.5;margin-top:22px}
 .contact-art{left:20px;right:auto;width:350px;max-width:100%;bottom:-80px;height:280px;clip-path:inset(-180px -24px 80px -24px)}
 .contact-art .promise-zero{bottom:90px}
 .contact-panel{width:100%;max-width:600px;padding:24px 20px;border-radius:20px}
 .contact-areas h4{font-size:22px;line-height:1.35;gap:5px;margin-bottom:18px}
 .contact-areas h4 svg{width:28px;height:28px}
 .contact-areas .area-tabs{margin-bottom:20px}
 .contact-areas .area-tabs button{font-size:16px;min-height:46px;padding:10px}
 .contact-areas .area-panels{padding:0 4px}
 .area-panel ul{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px;row-gap:10px}
 .area-panel li{font-size:16px;line-height:1.45;padding-left:9px;white-space:nowrap;word-break:keep-all;letter-spacing:-.04em}
 .contact-actions{gap:10px;margin-top:22px;padding-top:22px}
 .contact-actions .button{min-height:58px;height:auto;padding:14px 12px;line-height:1.5}
 .contact-actions .contact-call{flex:1;min-width:0;gap:6px;justify-content:center}
 .contact-actions .contact-call strong{font-size:21px;line-height:1.25}
 .contact-actions .contact-call>svg:first-child{display:block;width:20px;height:20px}
 .contact-actions .contact-call>svg:last-child{display:none}
 .contact-actions .contact-chat{width:58px;flex:0 0 58px;padding:14px}
 .contact-actions .contact-chat>span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
 .contact-actions .contact-chat .kakao-cutout{width:26px;height:25px}
 .contact-dock{left:20px;right:84px;bottom:calc(24px + env(safe-area-inset-bottom));width:auto;max-width:430px;transform:none;gap:8px;padding:0;align-items:stretch}
 .contact-dock .button,.contact-dock .primary,.contact-dock .kakao{height:auto;min-height:56px;padding-top:14px;padding-bottom:14px;line-height:1.5}
 .contact-dock .primary{flex:1;min-width:0;padding-left:10px;padding-right:10px;gap:5px;justify-content:center}
 .contact-dock .call-copy{flex:none;width:auto;margin:0}
 .contact-dock .call-copy strong{font-size:20px;line-height:1.25}
 .contact-dock .primary>svg:first-child,.contact-dock .primary>svg:last-child{display:none}
 .contact-dock .kakao{width:56px;flex:0 0 56px;padding-left:14px;padding-right:14px}
 .contact-dock .kakao .kakao-cutout{width:28px;height:26px}
 .floating-top{right:12px;bottom:calc(24px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:50%;font-size:14px}
 .site-footer{padding:40px 0 calc(112px + env(safe-area-inset-bottom))}
 .footer-row{gap:24px}
 .business-info{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
 .business-info>span{font-size:13px;line-height:1.5;margin:0;padding:0;border:0}
 .business-info>span:before{display:none}
 .footer-copyright{font-size:11px;line-height:1.6;white-space:normal;overflow-wrap:anywhere;text-align:left}
 .info-dialog{width:calc(100% - 32px);max-width:460px;max-height:calc(100dvh - 32px);padding:22px;border-radius:20px;overflow:auto;overscroll-behavior:contain}
 .info-dialog h2{font-size:22px;line-height:1.35;margin-bottom:16px}
 .info-dialog p{font-size:16px;line-height:1.5}
 .info-dialog .icon-button{min-width:44px;min-height:44px}
 .kakao-id-box{padding:14px;gap:12px;flex-wrap:wrap}
 .kakao-id-box strong{font-size:24px}
 .kakao-id-box button{min-height:44px;padding:10px 14px;font-size:14px}
 .info-dialog .dialog-confirm{min-height:48px;font-size:16px;padding:12px 20px}
}
@media(min-width:600px) and (max-width:767px){
 .hero .cta-row{grid-template-columns:1.3fr 1fr;max-width:600px;margin-left:auto;margin-right:auto}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .process-flow .process-step{grid-template-columns:80px minmax(0,1fr);column-gap:24px}
 .process-flow .process-visual,.process-flow .step-icon{width:80px;height:80px}
 .process-flow .step-copy{font-size:18px}
 .contact-actions .contact-chat{width:auto;flex:1;padding:14px 22px}
 .contact-actions .contact-chat>span{position:static;width:auto;height:auto;clip-path:none;overflow:visible}
}
@media(max-width:479px){
 .header-call{font-size:12px}.header-call .contact-icon{display:none}
 .hero-art{height:300px}
 .hero .call-copy strong{font-size:22px}
 .contact-dock .call-copy strong{font-size:18px}
 .contact-panel{padding:22px 16px}
 .area-panel ul{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:10px}
 .contact-actions .contact-call strong{font-size:20px}
 .contact-actions .contact-call>svg:first-child{width:18px;height:18px}
 .work-group .work-card{width:78vw;flex-basis:78vw}
 .work-group .work-media{height:240px;min-height:240px}
}
@media(max-width:359px){
 :root{--mobile-gutter:16px}
 .header-inner{gap:8px}.header-actions{gap:4px}
 .hero h1{font-size:46px}
 .hero-art{height:280px}
 .hero .button{padding-left:14px;padding-right:14px}
 .hero .call-copy strong{font-size:21px}
 .contact-actions .contact-call>svg:first-child{display:none}
 .contact-actions .contact-call strong{font-size:19px}
 .contact-panel{padding:22px 14px}
 .contact-art .promise-zero{left:16px}
 .contact-dock .call-copy strong{font-size:18px}
 .contact-dock .primary{padding-left:9px;padding-right:9px}
}
@media(max-width:479px){.header-call{font-size:13px}}
@media(min-width:360px) and (max-width:767px){.contact-fist{bottom:-42px}}
@media(min-width:360px) and (max-width:767px){.contact-dock .primary>svg:first-child{display:block;width:20px;height:20px}}

/* v27 — requested mobile spacing, full-width consultation and attached CTA artwork. */
.work-marquee img{-webkit-user-drag:none;user-select:none}
@media(max-width:767px){
 .header-actions .header-call,.header-actions .header-kakao{display:none}
 .section{padding-block:80px}
 .hero{padding:80px 0}
 .hero-grid{padding:0}
 #contact{padding:0}
 .contact-banner{padding-block:80px}
 .hero-lead,.section-intro,.services .section-intro,.works .section-intro,
 .service-description,.promise-description,.work-group .work-description,
 .process-flow .step-copy,.contact-description,.area-panel li,
 .price-row>span,.info-dialog p,.business-info>span,.footer-copyright{font-size:14px;line-height:1.5}
 .process-flow{gap:24px}
 .process-flow>li+li{border-top:1px solid rgba(15,65,112,.12);padding-top:24px}
 .contact-content{gap:0}
 .contact-copy{padding-bottom:280px}
 .contact-art{left:auto;right:0;bottom:0;height:280px;width:350px;max-width:100%;clip-path:inset(-180px -24px 0 -24px)}
 .contact-fist{left:auto;right:-16px;bottom:-112px}
 .contact-art .promise-emergency{left:auto;right:-8px;top:135px}
 .contact-art .promise-zero{left:calc(100% - 260px);bottom:24px}
 .contact-actions{display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:stretch}
 .contact-actions .contact-call{display:flex;width:100%;gap:6px;padding:14px 12px;justify-content:center;align-items:center;min-height:56px}
 .contact-actions .contact-call>svg:first-child{margin:0;flex:none}
 .contact-actions .contact-call .call-copy{display:block;flex:none;width:auto;margin:0;line-height:1}
 .contact-actions .contact-call strong{display:block;font-size:20px;line-height:1.25;white-space:nowrap}
 .contact-actions .contact-chat{display:flex;align-items:center;justify-content:center;width:56px;min-width:0;min-height:56px;padding:14px}
 .contact-actions .contact-chat>span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
 .contact-dock{left:var(--mobile-gutter);right:var(--mobile-gutter);max-width:none;width:auto;opacity:0;visibility:hidden;pointer-events:none;translate:0 14px;transition:opacity .25s ease,translate .25s ease,visibility .25s}
 .contact-dock.is-mobile-visible{opacity:1;visibility:visible;pointer-events:auto;translate:0 0}
 .contact-dock .primary{padding-inline:12px;gap:6px}
 .contact-dock .call-copy strong{font-size:20px}
 .contact-dock .primary>svg:first-child{display:block;width:20px;height:20px}
 .floating-top{right:var(--mobile-gutter);bottom:calc(96px + env(safe-area-inset-bottom))}
 .site-footer{padding-bottom:calc(176px + env(safe-area-inset-bottom))}
}
@media(max-width:359px){
 .contact-fist{bottom:-86px}
 .contact-art .promise-zero{left:calc(100% - 255px)}
}
@media(prefers-reduced-motion:reduce){.contact-dock{transition:none}}

/* v28 — mobile viewport hero, two-column services and a manual field slider. */
.menu-backdrop,.work-slider-controls,.footer-top{display:none}
@media(max-width:767px){
 body.menu-open{overflow:hidden}
 .menu-backdrop{display:block;position:fixed;inset:var(--header) 0 0;z-index:35;background:rgba(2,15,31,.66);border:0;padding:0;backdrop-filter:blur(2px)}
 .mobile-nav{padding:14px var(--mobile-gutter) 20px;border-bottom:0;max-height:calc(100dvh - var(--header) - 20px - env(safe-area-inset-bottom))}
 .mobile-nav a{padding:19px 4px;min-height:64px}
 .mobile-nav a:last-child{border-bottom:0}
 .contact-dock{z-index:60}
 .section,.hero,.contact-banner{padding-block:60px}
 #contact{padding:0}
 .section-heading h2,.services h2,.why h2,.works h2,.process h2{font-size:32px;line-height:1.25}
 .service-card h3,.promise-feature h3,.work-group .work-card h3,.process-flow strong,.contact-areas h4{font-size:20px}
 .service-description,.promise-description,.work-group .work-description,.process-flow .step-copy,.section-intro,.hero-lead,.contact-description{font-size:14px;line-height:1.5}
 .service-card,.work-media,.work-group .work-media,.contact-panel,.info-dialog{border-radius:10px}
 .hero .button,.contact-dock .button,.contact-actions .button{height:auto;min-height:0;padding:12px 14px;line-height:1.5;animation:mobile-consult-thump 3.6s ease-in-out infinite}
 .hero .primary,.contact-dock .primary,.contact-actions .contact-call{gap:6px}
 .hero .call-copy strong,.contact-dock .call-copy strong,.contact-actions .contact-call strong{font-size:16px;line-height:1.5}
 .hero .kakao,.contact-dock .kakao,.contact-actions .contact-chat{font-size:18px}
 .hero .button:after,.contact-dock .button:after,.contact-actions .button:after,.header-call:after,.header-kakao:after,.hit-layer{display:none!important}
 .hero .button svg,.contact-dock .button svg,.contact-actions .button svg{animation:none!important}
 .hero .kakao,.contact-dock .kakao,.contact-actions .kakao{animation-delay:1.8s}
 .hero .primary>svg:first-child,.contact-dock .primary>svg:first-child,.contact-actions .contact-call>svg:first-child{width:18px;height:18px;margin:0}
 .hero .primary>svg:last-child{width:22px;height:22px}
 .contact-dock .button{min-height:50px}
 .contact-dock .kakao,.contact-actions .contact-chat{width:50px;flex-basis:50px;padding-inline:12px}
 .contact-dock .kakao .kakao-cutout,.contact-actions .contact-chat .kakao-cutout{width:24px;height:24px}
 .floating-top{display:none!important}
 .hero{height:calc(100svh - var(--header));min-height:500px}
 .hero-grid{height:100%;min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto minmax(80px,1fr) auto;gap:10px;padding:0}
 .hero-copy{display:contents}
 .hero h1{grid-row:1;font-size:clamp(44px,13.4vw,64px);line-height:.93}
 .hero-lead{grid-row:2;margin:0}
 .hero .hero-art{grid-row:3;width:min(100%,280px);height:100%;min-height:0;max-height:270px;margin:0 auto;align-self:center}
 .hero .fist-stage{inset:-6% 5% -10%;translate:0 0}
 .hero .impact-stage:not(.fist-stage){inset:0}
 .hero .hero-promise{width:90px;height:86px}
 .hero .promise-emergency{left:0;right:auto;top:0;bottom:auto}
 .hero .promise-zero{left:auto;right:0;top:auto;bottom:0}
 .hero .promise-emergency strong{font-size:27px}.hero .promise-emergency strong>span{font-size:14px}
 .hero .promise-zero strong{font-size:35px}.hero .promise-zero strong>span{font-size:16px}
 .hero .promise-label{font-size:12px}
 .hero .cta-row{grid-row:4;width:100%;max-width:100%;margin:0;gap:10px;grid-template-columns:1fr}
 .hero .kakao .kakao-cutout{width:22px;height:22px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .service-body{padding:14px 12px}
 .service-title{gap:4px}.service-card h3{gap:4px;margin-bottom:6px;line-height:1.25}
 .service-arrow{width:18px;height:18px;flex:none}.service-arrow svg{width:18px;height:18px}
 .service-description{min-height:0}
 .price-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:14px;padding-top:10px}
 .price-row>span{font-size:12px}.price-row>strong{font-size:16px;line-height:1.5}
 .promise-feature{grid-template-columns:minmax(0,1fr) 60px;column-gap:12px}
 .promise-icon{width:60px;height:60px}
 .promise-value,.metric-number,.impact-word{font-size:72px}
 .promise-value{min-height:88px}
 .impact-letters{font-size:1em}.promise-feature-punch:not(.is-striking):not(.is-locked) .impact-letters{font-size:0}
 .impact-exclamation{font-size:.95em}
 .work-marquee{overflow-x:auto;touch-action:pan-x pan-y;scroll-snap-type:x mandatory;scrollbar-width:none;padding-inline:var(--mobile-gutter);scroll-padding-inline:var(--mobile-gutter)}
 .work-marquee::-webkit-scrollbar{display:none}
 .work-marquee.is-dragging{scroll-snap-type:none}
 .work-track{width:max-content;gap:0}
 .work-group{gap:16px;padding:0}
 .work-group[data-marquee-clone]{display:none}
 .work-group .work-card{width:calc(100vw - var(--mobile-gutter)*2);flex:0 0 calc(100vw - var(--mobile-gutter)*2);scroll-snap-align:start}
 .work-group .work-media{height:260px;min-height:260px}
 .work-slider-controls{display:block;margin-top:24px}
 .work-slider{display:block;width:100%;height:36px;padding:0;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:ew-resize;touch-action:pan-y}
 .work-slider::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:#DDE7F2}
 .work-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:44px;height:8px;margin-top:-2px;border:0;border-radius:4px;background:var(--blue)}
 .work-slider::-moz-range-track{height:4px;border-radius:4px;background:#DDE7F2}
 .work-slider::-moz-range-thumb{width:44px;height:8px;border:0;border-radius:4px;background:var(--blue)}
 .work-slider:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
 .process-flow .process-step{grid-template-columns:52px minmax(0,1fr);column-gap:24px;row-gap:0}
 .process-flow .process-visual{width:52px;height:52px;grid-row:1/4;align-self:center}
 .process-flow .step-icon{width:52px;height:52px}
 .process-flow .step-index{margin-bottom:4px;line-height:1.25}
 .process-flow strong{margin-bottom:6px;line-height:1.3}
 .process-flow .step-copy{min-height:0}
 .contact-content{position:relative;gap:20px;padding-bottom:300px;grid-template-columns:minmax(0,1fr)}
 .contact-copy{display:contents}
 .contact-banner h2{grid-row:1;font-size:54px;line-height:1.02;margin:0}
 .contact-banner h2>span{width:auto;white-space:normal}
 .contact-description{grid-row:2;margin:0}
 .contact-panel{grid-row:3;padding:22px 16px}
 .contact-art{position:absolute;bottom:-60px;right:0;left:auto;width:min(100%,350px);height:300px;max-width:100%;margin:0;clip-path:inset(-20px -20px 0 -20px)}
 .contact-fist{left:auto;right:-16px;bottom:-100px;width:390px;height:390px}
 .contact-art .promise-emergency{left:auto;right:-6px;top:80px}
 .contact-art .promise-zero{left:12px;bottom:50px}
 .contact-areas .area-tabs button{font-size:14px;min-height:44px;padding:10px}
 .area-panel ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 5px}
 .area-panel li{font-size:12px;line-height:1.4;padding-left:7px;letter-spacing:-.04em}
 .contact-actions{grid-template-columns:minmax(0,1fr) 50px;gap:8px;padding-top:18px;margin-top:18px}
 .contact-actions .contact-chat{min-height:0}
 .site-footer{padding:36px 0 calc(100px + env(safe-area-inset-bottom))}
 .footer-row{grid-template-columns:minmax(0,1fr) auto;gap:20px 16px;align-items:center}
 .site-footer .wordmark{grid-column:1;justify-self:start}
 .footer-top{display:block;grid-column:2;grid-row:1;font-size:14px;line-height:1.5;color:#CBD5E1;padding:12px 0 12px 12px}
 .business-info,.footer-copyright{grid-column:1/-1}
 .business-info{gap:4px}.business-info>span{font-size:12px;line-height:1.35}
 .footer-copyright{font-size:11px;line-height:1.5}
}
@media(max-width:359px){
 .service-body{padding:12px 10px}.service-card h3{font-size:20px;letter-spacing:-.06em}.service-arrow{width:16px;height:16px}
 .contact-panel{padding-inline:12px}.contact-fist{width:360px;height:360px;bottom:-80px}
 .contact-art .promise-zero{left:0}
}
@media(min-width:600px) and (max-width:767px){.hero .cta-row{grid-template-columns:1.3fr 1fr}.contact-actions .contact-chat{width:50px;padding:12px}.contact-actions .contact-chat>span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}}
@keyframes mobile-consult-thump{0%,10%,22%,100%{transform:scale(1)}5%{transform:scale(1.025)}16%{transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){.hero .button,.contact-dock .button,.contact-actions .button{animation:none!important}}
@media(max-width:767px){
 .work-grid.work-group{padding-right:0}
 .work-group .work-card,.work-group .work-card.tall{width:calc(100vw - var(--mobile-gutter)*2);flex:0 0 calc(100vw - var(--mobile-gutter)*2);max-width:none}
 .service-link{height:100%;display:flex;flex-direction:column}
 .service-body{display:flex;flex-direction:column;flex:1}
 .service-description{margin-bottom:14px}
 .price-row{margin-top:auto}
 .footer-top{margin:0}
}

/* v29 — mobile optical alignment, compact promises and clearer service details. */
.service-copy-mobile{display:none}
@media(max-width:767px){
 .hero .call-copy strong,.contact-dock .call-copy strong,.contact-actions .contact-call strong{font-size:18px}
 .contact-dock .primary>.contact-icon,.contact-dock .primary>.call-copy,
 .contact-actions .contact-call>.contact-icon,.contact-actions .contact-call>.call-copy{translate:-4px 0}
 .hero{padding-top:80px}
 .hero .promise-emergency{width:124px;height:114px;left:-4px;top:-5px}
 .hero .promise-zero{width:124px;height:119px;right:-4px;bottom:-4px}
 .hero .promise-emergency strong{font-size:38px}.hero .promise-emergency strong>span{font-size:18px}
 .hero .promise-zero strong{font-size:48px}.hero .promise-zero strong>span{font-size:22px}
 .hero .promise-emergency .promise-label,.hero .promise-zero .promise-label{font-size:16px}
 .service-photo{height:clamp(120px,34vw,190px);aspect-ratio:auto;flex:none}
 .service-body{padding-top:22px}
 .service-title{align-items:center;min-height:50px;margin-bottom:6px;gap:5px}
 .service-card h3{margin:0;align-self:center}
 .service-arrow{width:28px;height:28px;align-self:center}
 .service-arrow svg{width:20px;height:20px}
 .service-copy-desktop{display:none}.service-copy-mobile,.service-copy-mobile>span{display:block}
 .service-copy-mobile>span{white-space:nowrap}
 .service-description{min-height:63px;margin-bottom:14px}
 .promise-value,.metric-number{font-size:60px}
 .impact-word{font-size:54px}
 .promise-value{height:auto;min-height:68px;margin-bottom:6px}
 .promise-feature h3{margin-bottom:6px}
 .promise-description br{display:block}
 .work-group .work-card,.work-group .work-card.tall{width:calc((100vw - var(--mobile-gutter)*2)*.82);flex-basis:calc((100vw - var(--mobile-gutter)*2)*.82)}
 .work-slider::-webkit-slider-thumb{height:4px;margin-top:0}
 .work-slider::-moz-range-thumb{height:4px}
 .process-flow>li:first-child{border-top:1px solid rgba(15,65,112,.12);padding-top:24px}
 .process-flow .step-index{margin-bottom:9px}
 .contact-content{padding-bottom:210px}
 .contact-fist{bottom:-80px}
}
@media(max-width:767px){
 .hero .fist-stage{inset:-30% 5% -10%;translate:0 -4px}
 .hero .promise-emergency{top:-16px}
 .hero .promise-zero{bottom:-12px}
}
@media(max-width:767px){.contact-actions .contact-call>.contact-icon{display:block}}

/* v30 — mobile type rhythm, centered benefits and direct open-chat consultation. */
.mobile-work-break,.promise-copy-mobile{display:none}
@media(max-width:767px){
 .hero h1{font-size:54px}
 .service-body{padding:14px 12px}
 .service-card h3{font-size:18px;line-height:1.25;margin:0}
 .service-title{min-height:28px;gap:6px;margin-bottom:2px}
 .promise-value{gap:3px}
 .metric-unit{margin-left:0}
 .promise-feature,.promise-feature:first-child,.promise-feature:last-child{grid-template-columns:minmax(0,1fr) 76px;column-gap:16px;padding:24px 0;border-top:1px solid #A4CFFF22}
 .promise-feature:last-child{padding-bottom:0}
 .promise-feature+.promise-feature:before{display:none}
 .promise-icon{grid-column:2;grid-row:1/4;align-self:center;width:76px;height:76px;margin:0}
 .promise-feature .promise-value{grid-column:1;grid-row:1}
 .promise-feature h3{grid-column:1;grid-row:2}
 .promise-description{grid-column:1;grid-row:3}
 .impact-exclamation{font-size:1.25em;top:.025em}
 .promise-copy-desktop{display:none}.promise-copy-mobile{display:inline}
 .mobile-work-break{display:block}
 .contact-content{padding-bottom:234px}
}
@media(max-width:359px){.service-body{padding:12px 10px}}
@media(max-width:767px){.works .section-intro br.mobile-work-break{display:block}}
@media(max-width:767px){.contact-actions .contact-call>svg.contact-icon:first-child{display:block}}
/* v31 — equal mobile consultation controls and a clearer price-row action. */
.promise-feature:first-child .metric-number,
.promise-feature:first-child.is-counting .metric-number{color:#fff}
@media(max-width:767px){
 .hero .button,.contact-dock .button,.contact-actions .button{min-height:54px;height:auto;--mobile-button-shadow:#96B3D4}
 .hero .kakao,.contact-dock .kakao,.contact-actions .kakao{--mobile-button-shadow:#C5AC00}
 .contact-actions .contact-call{--mobile-button-shadow:#0559B0}
 .hero .button,.hero .button:hover,.contact-dock .button,.contact-dock .button:hover,.contact-actions .button,.contact-actions .button:hover{box-shadow:0 5px 0 var(--mobile-button-shadow),0 12px 24px #0002}
 .service-body{display:grid;grid-template-columns:minmax(0,1fr) 28px;grid-template-rows:auto 1fr auto;align-items:start}
 .service-title{display:contents}
 .service-card h3{grid-column:1/-1;grid-row:1;margin-bottom:4px}
 .service-description{grid-column:1/-1;grid-row:2}
 .price-row{grid-column:1/-1;grid-row:3;padding-right:36px;margin-top:0}
 .service-arrow{grid-column:2;grid-row:3;align-self:center;justify-self:end;z-index:1}
 .contact-panel{margin-top:12px}
 .contact-areas h4{font-size:18px}
 .contact-areas .area-tabs{padding:3px}
 .contact-areas .area-tabs button{min-height:38px;padding:8px 10px;line-height:1.3}
}
/* v32 — closer mobile headline/subtitle rhythm. */
@media(max-width:767px){
 .hero h1{font-size:60px}
 .hero-lead{margin-top:-4px}
 .services .section-heading,.works .section-heading{gap:0}
 .services .section-intro,.works .section-intro{margin-top:12px}
 .contact-description{margin-top:-8px}
}
/* Footer blog link, alongside the existing brand. */
.footer-brand{grid-column:1/-1;display:flex;align-items:center;gap:24px;min-width:0;flex-wrap:wrap}
.footer-blog{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid #FFFFFF40;border-radius:8px;color:#fff;font-size:14px;font-weight:600;line-height:1.5;transition:background .18s,border-color .18s}
.footer-blog svg{width:16px;height:16px}
.footer-blog:hover{background:#FFFFFF12;border-color:#FFFFFF80}
.footer-blog:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:767px){.footer-brand{grid-column:1;gap:16px}.footer-blog{padding:10px 12px}}
