:root{--ink:#111;--white:#fff;--surface:#f5f5f5;--border:#e5e5e5;--muted:#8a8a8a;--maxw:1600px;--gutter:clamp(20px,5vw,80px);--radius:2px;--font-sans:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,system-ui,"Apple SD Gothic Neo","Malgun Gothic",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--white);color:var(--ink);font-family:var(--font-sans);font-weight:400;line-height:1.6;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}section{padding-top:clamp(72px,12vh,160px);padding-bottom:clamp(72px,12vh,160px)}.eyebrow{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 20px}.section-head{max-width:960px;margin-bottom:clamp(40px,6vh,72px)}.section-head h2{font-size:clamp(28px,4.4vw,48px);font-weight:800;line-height:1.15;letter-spacing:-.03em;margin:0 0 20px}.section-head p{font-size:clamp(16px,1.8vw,19px);color:#3a3a3a;margin:0;max-width:620px}.btn{display:inline-flex;align-items:center;gap:10px;font-family:inherit;font-size:15px;font-weight:600;letter-spacing:-.01em;padding:14px 26px;border-radius:var(--radius);border:1px solid var(--ink);cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease;white-space:nowrap}.btn-primary{background:var(--ink);color:var(--white)}.btn-primary:hover{background:#000;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--white)}.btn-sm{padding:10px 18px;font-size:14px}.arrow{display:inline-block;transition:transform .2s ease}.btn:hover .arrow{transform:translateX(3px)}.header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:hsla(0,0%,100%,.86);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid transparent;transition:border-color .25s ease}.header.scrolled{border-bottom-color:var(--border)}.header .container{height:64px;display:flex;align-items:center;justify-content:space-between}.logo-img{height:clamp(15px,4.6vw,22px);width:auto;display:block}.logo-img--light{filter:brightness(0) invert(1)}.nav{display:flex;align-items:center;gap:28px}.nav a.navlink{font-size:14px;font-weight:500;color:#444;transition:color .15s ease}.nav a.navlink:hover{color:var(--ink)}@media (max-width:720px){.nav .navlink{display:none}}@media (max-width:520px){.hide-sm{display:none}}.hero{position:relative;min-height:calc(100svh - 64px);display:flex;flex-direction:column;justify-content:center;padding-top:clamp(56px,9vh,120px);padding-bottom:clamp(96px,12vh,150px)}.hero-eyebrow{font-size:clamp(12px,1.2vw,14px);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 clamp(20px,3vh,34px)}.hero h1{font-size:clamp(44px,9.2vw,128px);font-weight:900;line-height:1.02;letter-spacing:-.05em;margin:0 0 clamp(26px,3.4vh,40px)}.hero h1 .line{display:block;overflow:hidden;padding-bottom:.02em}.hero h1 .line>span{display:block;transform:translateY(110%);animation:hero-line .95s cubic-bezier(.19,1,.22,1) both}.hero h1 .line:first-child>span{animation-delay:.12s}.hero h1 .line:nth-child(2)>span{animation-delay:.26s}@keyframes hero-line{to{transform:translateY(0)}}.hero .fu{opacity:0;transform:translateY(18px);animation:hero-fu .8s ease both;animation-delay:var(--d,0s)}@keyframes hero-fu{to{opacity:1;transform:none}}.hero .sub{font-size:clamp(16px,2.1vw,21px);color:#3a3a3a;max-width:620px;margin:0 0 40px;line-height:1.6}.scroll-cue{position:absolute;left:var(--gutter);bottom:clamp(24px,4vh,44px);display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.scroll-cue .cue-line{display:block;width:46px;height:1px;background:var(--ink);transform-origin:left center;animation:cue 1.9s ease-in-out infinite}@keyframes cue{0%,to{transform:scaleX(.4);opacity:.35}50%{transform:scaleX(1);opacity:1}}@media (prefers-reduced-motion:reduce){.hero .fu,.hero h1 .line>span{animation:none;opacity:1;transform:none}.scroll-cue .cue-line{animation:none;transform:scaleX(1);opacity:1}}.hero-cta{gap:14px;align-items:center}.hero-cta,.hero-meta{display:flex;flex-wrap:wrap}.hero-meta{margin-top:64px;padding-top:28px;border-top:1px solid var(--border);gap:40px}.hero-meta .item{min-width:120px}.hero-meta .item strong{display:block;font-size:15px;font-weight:700;margin-bottom:4px}.hero-meta .item span{font-size:14px;color:var(--muted)}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:clamp(20px,3vw,36px);gap:clamp(20px,3vw,36px)}@media (max-width:760px){.work-grid{grid-template-columns:1fr}}.work-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--white);overflow:hidden;transition:border-color .2s ease,transform .2s ease;display:flex;flex-direction:column}.work-card:hover{border-color:var(--ink);transform:translateY(-3px)}.thumb{position:relative;aspect-ratio:16/10;background:var(--surface);overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;object-position:top center}.thumb .thumb-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--muted);background:var(--surface);font-size:13px;letter-spacing:.02em}.thumb .thumb-fallback .mark{font-size:20px;font-weight:800;letter-spacing:.1em;color:var(--ink)}.work-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1 1}.work-body .row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.work-body h3{font-size:19px;font-weight:700;margin:0;letter-spacing:-.02em}.work-body .host{font-size:13px;color:var(--muted)}.work-body p{font-size:14.5px;color:#4a4a4a;margin:0;line-height:1.55}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.tag{font-size:12px;font-weight:600;letter-spacing:.02em;color:#333;border:1px solid var(--border);border-radius:var(--radius);padding:4px 9px}.work-link{margin-top:auto;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:7px;padding-top:6px}.work-link .arrow{transition:transform .2s ease}.work-card:hover .work-link .arrow{transform:translateX(3px)}.service{background:var(--surface)}.svc-cols{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}@media (max-width:860px){.svc-cols{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.svc-cols{grid-template-columns:1fr}}.svc-cell{background:var(--white);padding:28px 24px 32px}.svc-cell .n{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:14px}.svc-cell h4{font-size:17px;font-weight:700;margin:0 0 8px;letter-spacing:-.02em}.svc-cell p{font-size:14px;color:#4a4a4a;margin:0;line-height:1.55}.process{margin-top:56px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.process .step{gap:10px;font-size:15px;font-weight:600}.process .step,.process .step .idx{display:inline-flex;align-items:center}.process .step .idx{width:26px;height:26px;border:1px solid var(--ink);border-radius:50%;justify-content:center;font-size:12px;font-weight:700}.process .sep{color:var(--muted)}.why{margin-top:64px;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:28px 48px;gap:28px 48px}@media (max-width:760px){.why{grid-template-columns:1fr}}.why .item{display:flex;gap:16px}.why .item .mk{font-size:14px;font-weight:800;color:var(--ink);flex:none;width:22px}.why .item h5{font-size:16.5px;font-weight:700;margin:0 0 6px;letter-spacing:-.02em}.why .item p{font-size:14.5px;color:#4a4a4a;margin:0;line-height:1.55}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:clamp(32px,6vw,80px);gap:clamp(32px,6vw,80px);align-items:start}@media (max-width:820px){.about-grid{grid-template-columns:1fr}}.about p{font-size:clamp(16px,1.9vw,19px);line-height:1.7;color:#2a2a2a;margin:0 0 22px}.about p:last-child{margin-bottom:0}.about .aside{border-left:2px solid var(--ink);padding-left:24px}.about .aside .k{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--muted);margin-bottom:6px}.about .aside .v{font-size:15px;margin-bottom:20px;line-height:1.5}.about .aside .v:last-child{margin-bottom:0}.contact{background:var(--ink)}.contact,.contact .section-head h2{color:var(--white)}.contact .section-head p{color:#c9c9c9}.contact-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(32px,6vw,72px);gap:clamp(32px,6vw,72px);align-items:start}@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}.contact-info .line{padding:18px 0;border-top:1px solid #2e2e2e;display:flex;justify-content:space-between;gap:16px;align-items:baseline}.contact-info .line:last-child{border-bottom:1px solid #2e2e2e}.contact-info .line .k{font-size:13px;color:#8f8f8f;letter-spacing:.04em}.contact-info .line .v{font-size:16px;font-weight:600}.form{display:grid;grid-gap:14px;gap:14px}.form .field{display:grid;grid-gap:7px;gap:7px}.form label{font-size:13px;color:#b8b8b8;font-weight:500}.form input,.form textarea{font-family:inherit;font-size:15px;color:var(--white);background:#1b1b1b;border:1px solid #333;border-radius:var(--radius);padding:13px 14px;transition:border-color .15s ease}.form input:focus,.form textarea:focus{outline:none;border-color:#fff}.form textarea{resize:vertical;min-height:110px}.form .row2{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}@media (max-width:480px){.form .row2{grid-template-columns:1fr}}.form .btn-primary{background:var(--white);color:var(--ink);border-color:var(--white);justify-content:center;margin-top:4px}.form .btn-primary:hover{background:#eee}.form .btn-primary:disabled{opacity:.6;cursor:default}.form .note{font-size:12.5px;color:#7d7d7d;margin:2px 0 0}.form-success{border:1px solid #333;border-radius:var(--radius);background:#1b1b1b;padding:30px 28px}.form-success strong{display:block;font-size:18px;font-weight:700;color:var(--white);margin-bottom:10px}.form-success p{margin:0;font-size:14.5px;color:#b8b8b8;line-height:1.6}.footer{background:var(--ink);color:var(--white);border-top:1px solid #2a2a2a;padding:40px 0}.footer .container{justify-content:space-between;align-items:center}.footer .container,.footer .fmeta{display:flex;flex-wrap:wrap;gap:18px}.footer .fmeta{font-size:13px;color:#9a9a9a}.footer .fmeta a:hover{color:#fff}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}