@font-face{font-family:Neo;src:url('assets/NanumSquareNeoTTF-bRg.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Neo;src:url('assets/NanumSquareNeoTTF-cBd.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:Neo;src:url('assets/NanumSquareNeoTTF-dEb.woff2') format('woff2');font-weight:800;font-display:swap}@font-face{font-family:Neo;src:url('assets/NanumSquareNeoTTF-eHv.woff2') format('woff2');font-weight:900;font-display:swap}
:root{--ink:#070707;--surface:#f7f8fb;--blue:#4f6efd;--muted:#686868}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;font-family:Neo,sans-serif;color:var(--ink);font-size:14px;word-break:keep-all;overflow-wrap:break-word}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.container{width:min(1180px,calc(100% - 80px));margin:auto}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:white;z-index:20}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}header{height:80px;background:rgba(0,0,0,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;position:sticky;top:0;z-index:10}.nav-wrap{width:min(1180px,calc(100% - 80px));height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;position:relative}.brand{display:flex;flex-direction:column;gap:5px}.brand strong{font-size:16px;font-weight:900}.brand span{font-size:11.3px;color:#979797}nav{display:flex;gap:51px;position:absolute;left:50%;transform:translateX(-50%)}nav a{color:#bbb;font-size:14px}nav a.active,nav a:hover{color:white}nav a.active{font-weight:800}.contact-top{display:flex;align-items:center;gap:6px;border:1px solid #424a5c;border-radius:20px;padding:9px 16px;font-weight:700;font-size:12px}.hero{height:680px;background:#e8e7e8;position:relative;text-align:center;padding-top:115px;overflow:hidden}.hero h1{font-size:36px;line-height:44px;font-weight:900}.hero>p{font-size:26px;margin-top:19px}.portrait{width:267px;height:380px;object-fit:cover;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.about{background:var(--ink);color:#fff;text-align:center;padding:72px 25px 64px;min-height:360px}.about h2{font-size:28px;line-height:38px;font-weight:800}.about h2 span{color:var(--blue);font-weight:900}.about>p{color:#bcbcbc;font-size:14px;line-height:20px;margin-top:14px}.about-tags{display:flex;justify-content:center;gap:10px;margin-top:30px;flex-wrap:wrap}.about-tags span{border-radius:25px;background:#1c1c1c;color:#a7a7a7;padding:15px 25px;font-weight:700}.portfolio{background:var(--surface);padding:100px 0 178px}.section-heading{text-align:center}.section-heading>img{margin:0 auto 20px}.eyebrow{font-size:18px;font-weight:800;line-height:22px}.section-heading h2{font-size:28px;line-height:36px;font-weight:900;margin-top:18px}.section-heading .muted{margin-top:12px}.muted{font-size:14px;line-height:20px;color:var(--muted)}.filters{display:flex;gap:10px;margin:46px 0 20px;flex-wrap:wrap}.filters button{border:1px solid #e8e7e8;border-radius:22px;background:white;color:#4b4b4b;height:40px;padding:0 22px;font-weight:700}.filters button[aria-pressed=true]{background:#151515;border-color:#151515;color:#ececec;font-weight:800}.filters button:hover{border-color:#151515}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.project{border-radius:25px;overflow:hidden;box-shadow:1px 3px 4px #0000000d;background:white}.project[hidden]{display:none}.project-image{aspect-ratio:576/360;position:relative;background:white;overflow:hidden}.project-image>img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;transform-origin:center}.company{position:absolute;left:30px;top:20px;letter-spacing:1.8px;font-size:18px;font-weight:900;color:white}.company.ink{color:#000}.project-body{padding:25px 30px 30px;min-height:225px}.meta{display:flex;align-items:center;gap:9px;color:#7180a0;font-size:13px;font-weight:800}.project-logo{height:58px;display:flex;align-items:center;gap:15px;font-size:34px;font-weight:900;margin:7px 0 10px}.project-logo img{flex-shrink:0}.project-description{color:#686868;line-height:20px;font-size:14px;letter-spacing:-.45px;min-height:20px}.tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}.tags span{background:#f2f4f8;color:#828282;border-radius:20px;padding:12px 20px;font-size:13px;font-weight:800}.expertise{padding:130px 0 148px}.expertise-grid{display:grid;grid-template-columns:520fr 650fr;gap:10px;margin-top:44px}.core{background:var(--ink);border-radius:25px;padding:35px 40px;color:white;min-height:420px}.accent{color:#7e93f8;font-weight:800}.core h3{font-size:28px;font-weight:900;margin-top:10px}.core-description{margin-top:12px;color:#d9d9d9;line-height:22px}.core ul{margin:22px 0 0;padding:0;list-style:none;display:grid;gap:15px}.core li{display:flex;gap:10px;align-items:flex-start}.core h4{font-size:18px;font-weight:800}.core li p{color:#8995ac;font-size:13px;margin-top:5px}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skill-card{background:var(--surface);border-radius:25px;padding:30px;min-height:205px}.skill-card>p{color:var(--blue);font-weight:800}.skill-card h3{font-size:24px;font-weight:900;margin:43px 0 8px}.career{background:var(--ink);color:#fff;padding:129px 0 102px}.career-list{max-width:1000px;margin:32px auto 0;display:grid;gap:10px}.career-card{background:#111;border-radius:25px;padding:23px 30px;min-height:150px}.date{color:#7e93f8;font-size:13px;font-weight:800}.career-card h3{font-size:22px;font-weight:900;margin-top:9px}.position{font-size:13px;margin-top:8px}.career-card .muted{color:#ababab;margin-top:13px}.career-dots{margin:30px auto 0}.experience{background:var(--surface);padding:94px 0 127px}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:56px}.more-grid article{border-radius:25px;overflow:hidden;background:white;box-shadow:1px 3px 4px #0000000d}.more-image{height:260px;background:#f2f2f2;position:relative;display:flex;align-items:center;justify-content:center;padding:30px}.more-art{width:100%;height:auto;max-height:200px;object-fit:contain;position:relative}.surf-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:#000c}.more-body{padding:32px 30px;min-height:130px}.more-body h3{font-size:24px;font-weight:900}.more-body p{color:#686868;margin-top:20px;line-height:20px}footer{position:relative;overflow:hidden;min-height:536px}.footer-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.08}.footer-inner{position:relative;padding-top:112px}.footer-copy{position:relative;z-index:1;max-width:520px}.footer-copy h2{font-size:36px;line-height:44px;font-weight:900}.footer-copy>p{color:#686868;line-height:20px;margin-top:18px}.contact-button{display:flex;align-items:center;justify-content:space-between;width:160px;background:black;color:white;padding:15px 18px;border-radius:8px;font-size:12px;font-weight:700;margin:15px 0 18px}.contact-button span{transform:rotate(45deg)}.contact-line{display:flex;gap:10px;align-items:center;font-weight:800;margin-top:14px}.footer-portrait{position:absolute;width:267px;height:380px;object-fit:cover;bottom:0;right:165px}.copyright{display:flex;justify-content:space-between;color:#9f9f9f;font-size:12px;padding:88px 0 38px;position:relative;gap:20px}.copyright span:first-child{font-weight:700}
@media(min-width:1400px){.hero{height:680px}}@media(max-width:1100px){nav{gap:25px}.project-description{min-height:40px}.expertise-grid{grid-template-columns:1fr}.core{min-height:0}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.skill-card{padding:22px}.skill-card h3{font-size:20px}.project-logo{font-size:28px}.tags span{padding:12px 14px}.footer-portrait{right:40px}.about h2{font-size:24px}.about h2 br{display:none}.about{padding-inline:40px}}
@media(max-width:760px){html{scroll-padding-top:112px}.container,.nav-wrap{width:calc(100% - 40px)}header{height:112px}.nav-wrap{align-items:flex-start;padding-top:18px}.brand strong{font-size:14px}.brand span{font-size:10px}.contact-top{padding:8px 12px}nav{left:0;right:0;bottom:15px;transform:none;justify-content:space-between;gap:0}nav a{font-size:13px}.hero{height:580px;padding:62px 18px 0}.hero h1{font-size:27px;line-height:38px}.hero>p{font-size:21px;margin-top:16px}.portrait{width:246px;height:350px}.about{padding:50px 24px}.about h2{font-size:21px;line-height:31px}.about>p{line-height:24px;margin-top:23px}.about>p br{display:none}.about-tags{gap:8px;margin-top:24px}.about-tags span{font-size:11px;padding:12px 16px}.portfolio,.expertise,.career,.experience{padding:70px 0}.eyebrow{font-size:15px}.section-heading h2{font-size:23px;line-height:33px;margin-top:15px}.section-heading h2 br{display:none}.section-heading .muted{line-height:23px;font-size:13px}.filters{margin-top:30px;gap:7px}.filters button{font-size:12px;padding:0 14px;height:36px}.project-grid,.more-grid{grid-template-columns:1fr;gap:22px}.project{border-radius:20px}.company{font-size:14px;left:20px;top:17px}.project-body{padding:22px 20px 24px;min-height:0}.project-logo{font-size:26px}.project-description{letter-spacing:0;font-size:13px;min-height:0;line-height:22px}.tags{gap:7px;margin-top:18px}.tags span{font-size:11px;padding:11px 15px}.expertise-grid{margin-top:30px}.core{padding:28px 24px;border-radius:20px}.core h3{font-size:26px}.core h4{font-size:15px}.core-description{font-size:13px}.core ul{gap:20px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-card{min-height:200px;padding:22px 18px;border-radius:20px}.skill-card>p{font-size:12px}.skill-card h3{font-size:19px;margin-top:32px}.skill-card .muted{font-size:12px}.career-card{padding:25px 22px}.career-card h3{font-size:20px}.career-card .muted{font-size:13px;line-height:23px}.more-grid{margin-top:30px}.more-image{height:auto;aspect-ratio:576/260;padding:25px}.more-body{padding:25px 22px}.more-body h3{font-size:21px}.more-body p{font-size:13px;line-height:22px;margin-top:12px}.footer-inner{padding-top:62px}.footer-copy h2{font-size:27px;line-height:38px}.footer-copy>p{font-size:13px;line-height:22px}.footer-portrait{position:relative;margin:30px auto 0;right:auto;width:211px;height:300px}.copyright{padding:24px 0 28px;flex-direction:column;gap:12px;font-size:10px}.contact-line{font-size:13px}.contact-button{margin-top:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.contact-button span{transform:none}

body{background:#fff}

/* Consistent section titles on desktop and mobile. */
section h2,.about h2,.section-heading h2{font-size:32px;line-height:40px}
@media(max-width:760px){
  section h2,.about h2,.section-heading h2,.footer-copy h2{font-size:28px;line-height:36px}
  .footer-inner{display:flex;flex-direction:column}
  .footer-copy{order:0}
  .copyright{order:1;position:absolute;left:0;right:0;bottom:0;z-index:2}
  .footer-portrait{order:2;margin:30px auto 0;flex-shrink:0;z-index:0}
}
.section-reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.section-reveal.is-revealed,.section-reveal:target,.section-reveal:focus-within{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.section-reveal{opacity:1;transform:none;transition:none}}
@media print{.section-reveal{opacity:1;transform:none;transition:none}}

.content-reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.content-reveal.is-revealed,.content-reveal:focus-within{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.content-reveal{opacity:1;transform:none;transition:none}}
@media print{.content-reveal{opacity:1;transform:none;transition:none}}

/* Subtle image zoom on devices with a hover-capable pointer. */
@media (hover:hover) and (pointer:fine){article.project:hover .project-image>img{transform:scale(1.045)}}
@media (prefers-reduced-motion:reduce){.project-image>img{transition:none}article.project:hover .project-image>img{transform:none}}
