:root{--brand:#2c4fe1;--blue:#162c8a;--blue-deep:#101f5f;--paper:#f6f8fe;--ink:#10193e;--muted:#68739f;--line:#c9d0ee;--soft:#c9d2f5;--white:#fff;--red:#e8412c;--red-deep:#c93320;--red-soft:#ff7a66;--sans:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;--disp:"Archivo","Noto Sans KR","Apple SD Gothic Neo",sans-serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--wrap:1200px;--gutter:24px;--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word;font-size:15.5px;line-height:1.65}img,video{max-width:100%;height:auto;display:block}[hidden]{display:none!important}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3,h4{letter-spacing:-.01em;line-height:1.25}:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.grid-blue :focus-visible,.topbar :focus-visible{outline-color:#fff}.skip{color:var(--blue);z-index:100;background:#fff;padding:8px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--mono);letter-spacing:.14em;font-weight:500}.disp{font-family:var(--disp);letter-spacing:-.02em;font-weight:900}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.eyebrow{font-family:var(--mono);letter-spacing:.14em;color:var(--brand);text-transform:uppercase;font-size:12px;font-weight:500}.grid-blue .eyebrow,.dark .eyebrow{color:var(--soft)}.grid-paper{background-color:var(--paper);background-image:linear-gradient(#16308a1c 1px,#0000 1px),linear-gradient(90deg,#16308a1c 1px,#0000 1px),linear-gradient(#16308a0e 1px,#0000 1px),linear-gradient(90deg,#16308a0e 1px,#0000 1px);background-size:140px 140px,140px 140px,28px 28px,28px 28px}.grid-blue{background-color:var(--blue);color:#fff;background-image:linear-gradient(#ffffff21 1px,#0000 1px),linear-gradient(90deg,#ffffff21 1px,#0000 1px),linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:140px 140px,140px 140px,28px 28px,28px 28px}.cross{pointer-events:none;width:44px;height:44px;position:absolute}.cross:before{content:"";background:#ffffffa6;width:1px;position:absolute;top:0;bottom:0;left:50%}.cross:after{content:"";background:#ffffffa6;height:1px;position:absolute;top:50%;left:0;right:0}.cross.ink:before,.cross.ink:after{background:#162c8a8c}.c-tr{top:48px;right:6%}.c-bl{bottom:44px;left:6%}.c-br{bottom:44px;right:6%}.c-tl{top:48px;left:6%}.btn{border:1.5px solid var(--blue);background:var(--blue);color:#fff;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);justify-content:center;align-items:center;gap:10px;padding:13px 22px;font-size:14.5px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--brand);border-color:var(--brand)}.btn:active{transform:translateY(1px)}.btn .arr{font-family:var(--mono);transition:transform .2s var(--ease);font-weight:500}.btn:hover .arr{transform:translate(4px)}.btn.ghost{color:var(--blue);background:0 0}.btn.ghost:hover{background:var(--blue);color:#fff}.grid-blue .btn.ghost,.dark .btn.ghost{color:#fff;border-color:#ffffffbf}.grid-blue .btn.ghost:hover,.dark .btn.ghost:hover{color:var(--blue);background:#fff;border-color:#fff}.btn.solid{background:var(--red);border-color:var(--red);color:#fff}.btn.solid:hover{background:var(--red-deep);border-color:var(--red-deep)}.grid-blue .btn.solid,.grid-blue .btn.solid:hover{color:#fff}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.tblock{border:1.5px solid var(--blue);border-collapse:collapse;background:#fff;width:100%;font-size:13.5px}.tblock th{font-family:var(--mono);letter-spacing:.12em;color:var(--muted);text-align:left;border-right:1px solid var(--line);vertical-align:top;white-space:nowrap;width:34%;padding:9px 14px;font-size:11px;font-weight:500}.tblock td{color:var(--ink);padding:9px 14px}.tblock tr+tr th,.tblock tr+tr td{border-top:1px solid var(--line)}.tblock.dark{background:0 0;border-color:#ffffffa6;width:auto;min-width:300px;max-width:460px}.tblock.dark th{color:var(--soft);border-right-color:#ffffff59}.tblock.dark td{color:#fff}.tblock.dark tr+tr th,.tblock.dark tr+tr td{border-top-color:#ffffff59}.sec{padding:96px 0}.sec+.sec{border-top:1px solid var(--line)}.sec-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;display:flex}.sec-head h2{font-family:var(--disp);letter-spacing:-.015em;margin-top:12px;font-size:clamp(30px,4vw,46px);font-weight:900}.sec-head .lede{color:var(--muted);max-width:62ch;margin-top:12px;font-size:16px}.grid-blue .sec-head .lede{color:var(--soft)}.sec-head .more{font-family:var(--mono);letter-spacing:.14em;color:var(--blue);border-bottom:1px solid var(--blue);white-space:nowrap;padding-bottom:4px;font-size:12px;text-decoration:none}.sec-head .more:hover{color:var(--red);border-color:var(--red)}.grid-blue .sec-head .more{color:#fff;border-color:#ffffffb3}.phead{padding:88px 0 64px;position:relative;overflow:hidden}.phead h1{font-family:var(--disp);letter-spacing:-.02em;margin:14px 0 18px;font-size:clamp(40px,6.5vw,80px);font-weight:900;line-height:1}.phead .lede{max-width:60ch;color:var(--soft);font-size:clamp(15px,1.8vw,18px)}.phead.light .lede{color:var(--muted)}.crumb{font-family:var(--mono);letter-spacing:.12em;color:var(--soft);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.crumb a{color:inherit;text-decoration:none}.crumb a:hover{text-underline-offset:4px;text-decoration:underline}.cards{grid-template-columns:repeat(4,1fr);gap:22px;display:grid}.cards.three{grid-template-columns:repeat(3,1fr)}.card{border:1.5px solid var(--line);color:inherit;transition:border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);background:#fff;flex-direction:column;text-decoration:none;display:flex;position:relative}.card:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 18px 40px -22px #162c8a73}.card .frame{aspect-ratio:4/3;background:var(--paper);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.card .frame img{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .6s var(--ease)}.card:hover .frame img{transform:scale(1.03)}.card .frame.tall img{object-position:center 8%}.card .frame.contain img{object-fit:contain;padding:12px}.card .frame.mock img{object-position:center}.card .meta{flex-direction:column;flex:1;gap:6px;padding:16px 18px 18px;display:flex}.card .code{font-family:var(--mono);letter-spacing:.14em;color:var(--brand);justify-content:space-between;gap:8px;font-size:10.5px;display:flex}.card .code .yr{color:var(--muted)}.card h3{text-wrap:balance;font-size:16.5px;font-weight:700;line-height:1.45}.card .client{color:var(--muted);font-size:13px}.card .tags{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:10px;display:flex}.tag{color:var(--blue);background:var(--paper);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11.5px;text-decoration:none;transition:border-color .2s,color .2s}a.tag:hover{border-color:var(--red);color:var(--red)}.badge{font-family:var(--mono);letter-spacing:.1em;background:var(--ink);color:#fff;z-index:1;padding:4px 8px;font-size:10px;position:absolute;top:10px;left:10px}.rv{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transform:translateY(18px)}.rv.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.rv{opacity:1;transition:none;transform:none}}.topbar{z-index:60;background:var(--blue);color:#fff;border-bottom:1px solid #ffffff40;position:sticky;top:0}.topbar .tbin{max-width:var(--wrap);padding:0 var(--gutter);align-items:center;gap:26px;height:60px;margin:0 auto;display:flex}.topbar .logo{flex:none;align-items:center;text-decoration:none;display:flex}.topbar .logo img{width:auto;height:18px}.topbar nav{align-items:center;gap:4px;margin-left:auto;display:flex}.topbar nav a{color:var(--soft);font-family:var(--mono);letter-spacing:.14em;border-bottom:1px solid #0000;padding:8px 11px;font-size:11.5px;text-decoration:none;transition:color .2s}.topbar nav a:hover,.topbar nav a[aria-current=page]{color:#fff}.topbar nav a[aria-current=page]{border-bottom-color:#fff}.topbar nav .cta{color:#fff;border:1px solid #ffffffbf;margin-left:10px;padding:8px 14px}.topbar nav .cta:hover{color:var(--blue);background:#fff}.burger{cursor:pointer;background:0 0;border:1px solid #fff9;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:38px;margin-left:auto;display:none}.burger span{background:#fff;width:18px;height:1.5px;transition:transform .25s,opacity .25s;display:block}.burger[aria-expanded=true] span:first-child{transform:translateY(6.5px)rotate(45deg)}.burger[aria-expanded=true] span:nth-child(2){opacity:0}.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}@media (width<=860px){.burger{display:flex}.topbar nav{background:var(--blue-deep);padding:12px var(--gutter) 22px;border-bottom:1px solid #ffffff40;flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:60px;left:0;right:0}.topbar nav.open{display:flex}.topbar nav a{border-bottom:1px solid #ffffff1f;padding:14px 4px;font-size:13px}.topbar nav a[aria-current=page]{color:#fff;border-bottom-color:#ffffff1f}.topbar nav .cta{text-align:center;border:1px solid #fff;margin:14px 0 0}}.foot{padding:88px 0 40px;position:relative}.foot .top{grid-template-columns:1.2fr 1fr;align-items:end;gap:40px;margin-bottom:56px;display:grid}.foot h2{font-family:var(--disp);letter-spacing:-.02em;margin:14px 0 26px;font-size:clamp(34px,5vw,64px);font-weight:900;line-height:1.05}.foot .lede{color:var(--soft);max-width:44ch;margin-bottom:28px}.foot .cols{border-top:1px solid #ffffff59;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:32px;display:grid}.foot .cols h4{font-family:var(--mono);letter-spacing:.14em;color:var(--soft);margin-bottom:14px;font-size:11px;font-weight:500}.foot .cols a,.foot .cols p{color:#fff;font-size:14px;line-height:1.9;text-decoration:none;display:block}.foot .cols a:hover{text-underline-offset:4px;text-decoration:underline}.foot .cols p{color:var(--soft);font-size:13px}.foot .base{color:var(--soft);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:48px;font-size:11px;display:flex}@media (width<=900px){.foot .top{grid-template-columns:1fr}.foot .cols{grid-template-columns:1fr 1fr}}@media (width<=520px){.foot .cols{grid-template-columns:1fr}}.stats{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.stat{border:1.5px solid var(--blue);background:#fff;padding:32px 28px}.stat .num{font-family:var(--disp);color:var(--blue);font-size:54px;font-weight:900;line-height:1.05}.stat .cap{font-family:var(--mono);letter-spacing:.14em;color:var(--muted);margin:10px 0 18px;font-size:11px}.stat .d1{margin-bottom:6px;font-weight:700}.stat .d2{color:var(--muted);font-size:14px}.steps{border-top:1.5px solid var(--blue);grid-template-columns:repeat(4,1fr);gap:28px;display:grid}.step{padding-top:26px;position:relative}.step:before{content:"";border-left:1.5px solid var(--blue);border-top:1.5px solid var(--blue);background:var(--paper);width:15px;height:15px;position:absolute;top:-8px;left:0;transform:rotate(45deg)}.step .sno{font-family:var(--mono);color:var(--blue);margin-bottom:12px;font-size:22px;font-weight:700}.step h3{margin-bottom:10px;font-size:18px;font-weight:700}.step p{color:var(--muted);font-size:14px}.clients-wall{border:1.5px solid var(--blue);background:#fff;flex-wrap:wrap;justify-content:center;align-items:center;gap:30px 44px;padding:44px 40px;display:flex}.clients-wall img{width:auto;max-width:150px}.sheet{border:1.5px solid var(--blue);background:#fff}.sheet-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px 20px;display:flex}.sheet-head .mono{color:var(--red);font-size:11px}.sheet-head .pg{color:var(--muted)}.sheet-body{grid-template-columns:360px 1fr;gap:40px;padding:34px 28px 34px 24px;display:grid}.sheet-info .clogo{width:auto;max-width:200px;max-height:44px;margin-bottom:20px}.sheet-info .client{color:var(--muted);margin-bottom:6px;font-size:14px}.sheet-info h1{text-wrap:balance;margin-bottom:22px;font-size:clamp(22px,2.4vw,28px);font-weight:900;line-height:1.45}.sheet-info .desc{color:var(--ink);margin-top:22px;font-size:14.5px;line-height:1.8}.sheet-info .tags{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.sheet-visual{min-width:0}.shot-main{border:1px solid var(--line);background:var(--paper);max-height:640px;position:relative;overflow:hidden}.shot-main img{object-fit:contain;object-position:top;width:100%;height:auto;max-height:640px;margin:0 auto}.shot-main.tall img{object-fit:cover}.shot-main.tall{max-height:560px}.shot-strip{scrollbar-width:thin;scrollbar-color:var(--line) transparent;gap:12px;margin-top:12px;padding-bottom:6px;display:flex;overflow-x:auto}.shot-strip button{border:1px solid var(--line);cursor:pointer;background:#fff;flex:none;height:120px;padding:0;transition:border-color .2s}.shot-strip button:hover,.shot-strip button[aria-current=true]{border-color:var(--blue)}.shot-strip img{object-fit:cover;object-position:top;width:auto;max-width:220px;height:100%}.pn{grid-template-columns:1fr 1fr;gap:16px;margin-top:22px;display:grid}.pn a{border:1.5px solid var(--line);color:inherit;background:#fff;flex-direction:column;gap:4px;padding:18px 20px;text-decoration:none;transition:border-color .2s;display:flex}.pn a:hover{border-color:var(--blue)}.pn a.next{text-align:right;align-items:flex-end}.pn .lab{font-family:var(--mono);letter-spacing:.14em;color:var(--muted);font-size:10.5px}.pn strong{font-size:15px;line-height:1.4}dialog.lb{background:0 0;border:0;max-width:min(96vw,1400px);max-height:94vh;padding:0}dialog.lb::backdrop{background:#10193edb}dialog.lb img{border:1px solid var(--line);background:#fff;width:auto;max-width:96vw;height:auto;max-height:90vh}dialog.lb button{color:var(--blue);cursor:pointer;background:#fff;border:0;width:40px;height:40px;font-size:20px;position:fixed;top:14px;right:14px}.form{border:1.5px solid var(--blue);background:#fff}.form .row{border-bottom:1px solid var(--line);grid-template-columns:220px 1fr;align-items:start;gap:18px;padding:18px 24px;display:grid}.form .row:last-child{border-bottom:0}.form label.lab,.form .lab{font-family:var(--mono);letter-spacing:.12em;color:var(--muted);padding-top:12px;font-size:11px}.form .req:after{content:" *";color:var(--brand)}.inp,.form textarea,.form select{border:1px solid var(--line);background:var(--paper);width:100%;font:inherit;color:var(--ink);padding:11px 14px;font-size:14.5px}.inp:focus,.form textarea:focus,.form select:focus{border-color:var(--blue);background:#fff;outline:none}.form textarea{resize:vertical;min-height:170px}.chk{flex-wrap:wrap;gap:8px 18px;padding-top:10px;display:flex}.chk label{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.chk input{width:16px;height:16px;accent-color:var(--blue)}.form .foot-row{background:var(--paper);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;display:flex}.form .err{color:#c62828;margin-top:6px;font-size:13px;display:none}.form .row.invalid .err{display:block}.form .row.invalid .inp{border-color:#c62828}.notice{border:1.5px solid var(--blue);background:#fff;padding:22px 24px;font-size:14.5px;line-height:1.8}.notice.ok{color:#0f5c31;border-color:#1b8a4a}.notice.bad{color:#8e1b1b;border-color:#c62828}@media (width<=760px){.form .row{grid-template-columns:1fr;gap:6px;padding:16px 18px}.form .lab{padding-top:0}}@media (width<=1100px){.cards{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.cards,.cards.three{grid-template-columns:repeat(2,1fr)}.stats,.steps{grid-template-columns:1fr 1fr}.sheet-body{grid-template-columns:1fr;gap:26px}.sec{padding:72px 0}}@media (width<=560px){.cards,.cards.three,.stats,.steps,.pn{grid-template-columns:1fr}.tblock.dark{width:100%;min-width:0}.clients-wall{gap:22px 28px;padding:28px 20px}.clients-wall img{max-width:110px}}::view-transition-old(root){animation:vt-out .22s var(--ease) both}::view-transition-new(root){animation:vt-in .32s var(--ease) both}@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}.topbar{transition:box-shadow .3s var(--ease)}.topbar .tbin{transition:height .3s var(--ease)}.topbar.scrolled{box-shadow:0 10px 30px -14px #10193e99}.topbar.scrolled .tbin{height:52px}.topbar nav a{position:relative}.topbar nav a:not(.cta):after{content:"";transform-origin:0;height:1px;transition:transform .25s var(--ease);background:#fff;position:absolute;bottom:4px;left:11px;right:11px;transform:scaleX(0)}.topbar nav a:not(.cta):hover:after{transform:scaleX(1)}.sec-head h2{padding-bottom:14px;position:relative}.sec-head h2:after{content:"";background:var(--red);transform-origin:0;width:56px;height:2px;transition:transform .8s var(--ease) .25s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.sec-head.in h2:after{transform:scaleX(1)}.grid-blue .sec-head h2:after{background:var(--red-soft)}.hero[data-parallax]{--mx:0;--my:0;background-position:calc(var(--mx) * -14px) calc(var(--my) * -14px)}.hero[data-parallax] .cross{transform:translate(calc(var(--mx) * 18px),calc(var(--my) * 18px));transition:transform .4s var(--ease)}.hero .coord{color:var(--soft);letter-spacing:.16em;pointer-events:none;opacity:.85;font-size:10.5px;position:absolute;bottom:22px;right:6%}@media (pointer:coarse){.hero .coord{display:none}}.hero .hin{animation:rise .8s var(--ease) both}.hero .hin:first-child{animation-delay:50ms}.hero .hin:nth-child(2){animation-delay:.15s}.hero .hin:nth-child(3){animation-delay:.25s}.hero .hin:nth-child(4){animation-delay:.38s}.hero .hin:nth-child(5){animation-delay:.5s}.hero .hin:nth-child(6){animation-delay:.62s}.hero .hblock tr{animation:rise .6s var(--ease) both}.hero .hblock tr:first-child{animation-delay:.55s}.hero .hblock tr:nth-child(2){animation-delay:.65s}.hero .hblock tr:nth-child(3){animation-delay:.75s}.hero .hblock tr:nth-child(4){animation-delay:.85s}.hero .hblock tr:nth-child(5){animation-delay:.95s}.hero .cross{animation:crossin 1s var(--ease) .7s both}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes crossin{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}@media (prefers-reduced-motion:reduce){.hero .hin,.hero .hblock tr,.hero .cross{animation:none}}.card .frame:after{content:"";opacity:0;background:linear-gradient(#0000 60%,#162c8a38);transition:opacity .3s;position:absolute;inset:0}.card:hover .frame:after{opacity:1}.card .code{transition:letter-spacing .25s var(--ease)}.card:hover .code{letter-spacing:.22em}.card h3{transition:color .2s}.card:hover h3{color:var(--red)}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.card.pop{animation:pop .45s var(--ease) both}.stat{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.stat:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px #162c8a80}.step .sno{transition:transform .3s var(--ease),color .3s}.step:hover .sno{color:var(--red);transform:translate(6px)}.clients-wall img{filter:grayscale();opacity:.75;transition:filter .3s,opacity .3s,transform .3s var(--ease)}.clients-wall img:hover{filter:none;opacity:1;transform:scale(1.06)}@media (prefers-reduced-motion:reduce){.card.pop{animation:none}.stat,.step .sno,.clients-wall img{transition:none}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
