:root{--paper:#fff;--ink:#121212;--muted:#6e6e6e;--hairline:#d9d9d9;--accent:#2b4a6f;--surface:#f2f2f2;--header-bg:#ffffffeb;--on-ink:#fff;--on-ink-muted:#9b9b9b;--on-ink-hairline:#484848;--on-ink-accent:#9db8d6;--content:1440px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#101010;--ink:#ededed;--muted:#909090;--hairline:#2e2e2e;--accent:#8aa8cc;--surface:#1a1a1a;--header-bg:#101010eb;--on-ink:#101010;--on-ink-muted:#6b6b6b;--on-ink-hairline:#c9c9c9;--on-ink-accent:#2b4a6f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);word-break:keep-all;margin:0;font-family:Arial,Pretendard,Noto Sans KR,sans-serif;line-height:1.6}body,a,button,summary{-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.skip-link{z-index:100;color:#fff;background:var(--accent);padding:10px 14px;font-weight:700;transition:transform .16s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.page-shell,.header-inner{width:min(100%, var(--content));margin-inline:auto;padding-inline:clamp(20px,4vw,64px)}.site-header{z-index:50;border-bottom:1px solid var(--hairline);background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;min-height:72px;display:flex}.wordmark{letter-spacing:.16em;font-size:.82rem;font-weight:800}.site-header nav{gap:clamp(16px,2.7vw,42px);display:flex}.site-header nav a,.section-label,.project-meta dt,.contributions h4,.problem-cases h4,.case-content h5,.principles-title,.timeline-section h3,.resume-grid h3{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;font-size:.7rem;font-weight:700}.site-header nav a{color:var(--ink);position:relative}.lang-switch{border:1px solid var(--hairline);padding:3px 9px}.lang-switch:after{display:none}.site-header nav a:after{background:var(--accent);content:"";transform-origin:100%;height:1px;transition:transform .18s;position:absolute;bottom:-7px;left:0;right:0;transform:scaleX(0)}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.hero{min-height:calc(100svh - 72px);padding-top:clamp(72px,11vw,160px);padding-bottom:clamp(48px,8vw,112px)}.hero-main{gap:clamp(52px,7vw,120px);display:grid}.hero-name,.hero-copy,.hero-meta{opacity:0;clip-path:inset(0 100% 0 0);animation:cubic-bezier(.22,1,.36,1) both sequential-reveal;transform:translate(-24px)}.hero-name{animation-duration:.52s}.hero-copy{animation-duration:.62s;animation-delay:.11s}.hero-meta{animation-duration:.7s;animation-delay:.2s}@keyframes sequential-reveal{to{opacity:1;clip-path:inset(0);transform:translate(0)}}.eyebrow{color:var(--accent);letter-spacing:.14em;margin:0 0 22px;font-size:clamp(.68rem,.8vw,.78rem);font-weight:800}.name-ko{letter-spacing:-.075em;margin:0;font-size:clamp(3.5rem,9vw,8.4rem);font-weight:800;line-height:.9}.hero-copy h1,.section-heading h2,.contact-inner h2{letter-spacing:-.055em;margin:0;font-weight:600;line-height:1.16}.hero-copy h1{max-width:800px;font-size:clamp(2.35rem,5vw,5.2rem)}.hero-copy>p{max-width:660px;color:var(--muted);margin:clamp(28px,4vw,52px) 0 0;font-size:clamp(1rem,1.35vw,1.3rem);line-height:1.75}.hero-actions{flex-wrap:wrap;gap:18px 28px;margin-top:38px;display:flex}.primary-link,.text-link,.project-link{letter-spacing:.04em;justify-content:space-between;align-items:center;gap:22px;font-size:.82rem;font-weight:700;display:inline-flex}.primary-link{min-width:170px;color:var(--on-ink);background:var(--ink);padding:14px 18px;transition:background .18s}.primary-link:hover{background:var(--accent)}.text-link{border-bottom:1px solid var(--ink);padding:13px 0}button.text-link{border-style:solid;border-width:0 0 1px;border-color:var(--ink);color:inherit;cursor:pointer;background:0 0;font-family:inherit}.resume-download-hint{margin:0}.hero-meta{border-top:1px solid var(--hairline);grid-template-columns:repeat(3,1fr);margin:clamp(72px,11vw,160px) 0 0;padding:0;display:grid}.hero-meta>div{padding:22px 26px 0 0}.hero-meta dt{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;margin-bottom:5px;font-size:.68rem}.hero-meta dd{margin:0;font-size:clamp(.82rem,1.1vw,1rem);font-weight:600}.status-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-right:9px;display:inline-block}.work-section,.principles-section,.resume-section{border-top:1px solid var(--hairline);padding-top:clamp(96px,12vw,180px);padding-bottom:clamp(96px,12vw,180px)}.section-heading{gap:22px;margin-bottom:clamp(64px,9vw,128px);display:grid}.section-label{color:var(--accent);margin:0}.section-heading h2{max-width:860px;font-size:clamp(2.3rem,5vw,5rem)}.projects{gap:clamp(120px,16vw,240px);display:grid}.project-case{scroll-margin-top:100px}.project-heading{border-bottom:1px solid var(--ink);grid-template-columns:minmax(76px,.32fr) minmax(0,2fr);gap:clamp(24px,4vw,72px);padding-bottom:clamp(30px,4vw,52px);display:grid}.project-index{color:var(--accent);letter-spacing:.12em;padding-top:10px;font-size:.78rem;font-weight:800}.project-title-line{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.project-title-line h3{letter-spacing:-.065em;margin:0;font-size:clamp(3rem,7vw,7rem);font-weight:600;line-height:.95}.project-links{flex-wrap:wrap;flex:none;align-items:center;gap:10px 22px;display:flex}.project-link{border-bottom:1px solid var(--ink);flex:none;padding-bottom:4px}.project-status{border:1px solid var(--hairline);color:var(--muted);flex:none;padding:5px 10px;font-size:.72rem}.project-summary{max-width:700px;color:var(--muted);margin:28px 0 0;font-size:clamp(1rem,1.4vw,1.3rem)}.project-stack{flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none;display:flex}.project-stack li{border:1px solid var(--hairline);color:var(--muted);letter-spacing:.03em;white-space:nowrap;padding:5px 11px;font-size:.72rem;font-weight:600}.project-body{gap:clamp(48px,7vw,112px);padding-top:clamp(36px,5vw,72px);display:grid}.project-meta{align-content:start;gap:28px;margin:0;display:grid}.project-meta>div{gap:7px;display:grid}.project-meta dd{max-width:360px;margin:0;font-size:.94rem;font-weight:600;line-height:1.65}.project-detail{min-width:0}.evidence{border:1px solid var(--ink);background:var(--surface);margin:0 0 clamp(64px,8vw,104px);padding:clamp(14px,2vw,22px)}.evidence-image{border:1px solid var(--hairline);width:100%;height:auto;display:block}.evidence figcaption{border-top:1px solid var(--ink);max-width:700px;color:var(--muted);margin-top:16px;padding-top:14px;font-size:.78rem;line-height:1.65}.evidence figcaption:before{color:var(--accent);letter-spacing:.11em;content:"EVIDENCE";margin-right:10px;font-size:.68rem;font-weight:800}.diagram{border:1px solid var(--ink);margin:clamp(64px,8vw,104px) 0 0;padding:clamp(18px,2.4vw,30px)}.diagram-scroll{overflow-x:auto}.diagram-svg{width:100%;height:auto;font-family:inherit;display:block}.diagram figcaption{border-top:1px solid var(--ink);max-width:700px;color:var(--muted);margin-top:18px;padding-top:14px;font-size:.78rem;line-height:1.65}.diagram figcaption:before{color:var(--accent);letter-spacing:.11em;content:"ARCHITECTURE";margin-right:10px;font-size:.68rem;font-weight:800}.contributions h4,.problem-cases h4{margin:0 0 24px}.contributions ol{counter-reset:contribution;margin:0;padding:0;list-style:none}.contributions li{border-top:1px solid var(--hairline);counter-increment:contribution;grid-template-columns:30px minmax(0,1fr);gap:12px;padding:16px 0;font-size:clamp(.94rem,1.2vw,1.08rem);display:grid}.contributions li:before{color:var(--accent);content:"0" counter(contribution);font-size:.68rem;font-weight:800}.problem-cases{margin-top:clamp(64px,8vw,104px)}.problem-cases details{border-top:1px solid var(--hairline)}.problem-cases details:last-child{border-bottom:1px solid var(--hairline)}.problem-cases summary{cursor:pointer;grid-template-columns:34px minmax(0,1fr) 24px;align-items:center;gap:14px;min-height:82px;padding:16px 0;font-size:clamp(1rem,1.35vw,1.2rem);font-weight:700;list-style:none;display:grid}.problem-cases summary::-webkit-details-marker{display:none}.case-number{color:var(--accent);letter-spacing:.1em;font-size:.68rem}.summary-mark{width:18px;height:18px;display:block;position:relative}.summary-mark:before,.summary-mark:after{background:var(--ink);content:"";width:14px;height:1px;position:absolute;top:8px;left:2px}.summary-mark:after{transition:transform .18s;transform:rotate(90deg)}details[open] .summary-mark:after{transform:rotate(0)}.case-content{gap:28px;padding:8px 0 44px 48px;display:grid}.case-content h5{margin:0 0 7px}.case-content p,.case-content ul{color:var(--muted);margin:0;font-size:.94rem}.case-content ul{gap:5px;padding-left:1.2em;display:grid}.case-result{border-left:2px solid var(--accent);padding-left:16px}.other-work{border-top:1px solid var(--ink);margin-top:clamp(96px,13vw,200px);padding-top:clamp(28px,4vw,48px)}.other-work-list{margin:24px 0 0;padding:0;list-style:none;display:grid}.other-work-list li{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);gap:20px clamp(24px,4vw,64px);padding:26px 0;display:grid}.other-work-head h4{letter-spacing:-.02em;margin:0;font-size:clamp(1.15rem,1.7vw,1.5rem)}.other-work-period{color:var(--muted);margin:7px 0 0;font-size:.78rem;font-weight:700}.other-work-body{justify-items:start;gap:14px;display:grid}.other-work-summary{max-width:660px;margin:0;font-size:clamp(.96rem,1.2vw,1.08rem);line-height:1.7}.other-work-stack{color:var(--muted);margin:0;font-size:.78rem;font-weight:600}.about-intro{gap:24px;max-width:820px;margin-bottom:clamp(72px,9vw,128px);display:grid}.about-intro p{margin:0;font-size:clamp(1.05rem,1.5vw,1.4rem);line-height:1.8}.about-intro p+p{color:var(--muted)}.principles-title{color:var(--accent);margin:0 0 24px}.principles-list{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none;display:grid}.principles-list li{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(50px,.3fr) minmax(0,2fr);gap:24px;padding:clamp(28px,4vw,52px) 0;display:grid}.principle-number{color:var(--accent);font-size:.72rem;font-weight:800}.principles-list h3{letter-spacing:-.035em;margin:0;font-size:clamp(1.45rem,2.5vw,2.7rem);font-weight:600}.principles-list p{color:var(--muted);margin:10px 0 0}.resume-grid{gap:clamp(64px,8vw,128px);display:grid}.resume-grid h3{color:var(--accent);margin:0 0 24px}.skills-list{border-top:1px solid var(--ink);margin:0}.skills-list>div{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(140px,.48fr) minmax(0,1.52fr);gap:24px;padding:20px 0;display:grid}.skills-list dt{font-size:.82rem;font-weight:700}.skills-list dd{color:var(--muted);margin:0}.timeline-section{margin-bottom:clamp(72px,9vw,128px)}.timeline-section h3{color:var(--accent);margin:0 0 24px}.timeline{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(110px,.18fr) minmax(0,1fr);gap:20px;padding:22px 0;display:grid}.timeline-period{color:var(--muted);letter-spacing:.06em;margin:0;font-size:.78rem;font-weight:700}.timeline-body{min-width:0}.timeline-entry-title{flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin:0;font-size:1rem;font-weight:700;display:flex}.timeline-kind{border:1px solid var(--hairline);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;flex:none;padding:3px 9px;font-size:.62rem}.timeline li[data-kind=project] .timeline-kind{border-color:var(--accent);color:var(--accent)}.timeline-detail{color:var(--muted);margin:9px 0 0;font-size:.9rem}.timeline-org{color:var(--ink);font-weight:600}.certifications p{border-top:1px solid var(--ink);color:var(--muted);margin:0;padding-top:20px}.contact-section{color:var(--on-ink);background:var(--ink)}.contact-inner{padding-top:clamp(96px,12vw,180px);padding-bottom:30px}.contact-inner .section-label{color:var(--on-ink-accent)}.contact-inner h2{max-width:1120px;margin-top:36px;font-size:clamp(2.6rem,6.8vw,7rem)}.contact-links{flex-wrap:wrap;gap:18px 36px;margin-top:clamp(64px,9vw,128px);display:flex}.contact-links a{border-bottom:1px solid var(--on-ink);padding-bottom:5px;font-size:clamp(1rem,1.6vw,1.35rem)}.footer-line{border-top:1px solid var(--on-ink-hairline);color:var(--on-ink-muted);letter-spacing:.12em;justify-content:space-between;margin-top:clamp(96px,14vw,200px);padding-top:24px;font-size:.66rem;display:flex}@media (width>=901px){.hero-main,.project-body{grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr)}.hero-name{padding-top:7px}.resume-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}}@media (width<=900px){.hero{min-height:auto}.hero-main,.project-body,.resume-grid{grid-template-columns:1fr}.name-ko{font-size:clamp(4rem,18vw,7rem)}.project-heading{grid-template-columns:48px minmax(0,1fr)}.project-title-line{flex-direction:column;align-items:flex-start}}@media (width<=720px){.diagram-svg{width:680px}}@media (width<=640px){html{scroll-behavior:auto}.site-header{position:static}.header-inner{align-items:flex-start;min-height:auto;padding-top:20px;padding-bottom:20px}.site-header nav{grid-template-columns:repeat(2,auto);gap:5px 18px;display:grid}.hero-meta{grid-template-columns:1fr}.hero-meta>div{border-bottom:1px solid var(--hairline);grid-template-columns:72px 1fr;padding:15px 0;display:grid}.hero-meta dt{margin:0}.project-heading{grid-template-columns:1fr}.project-index{padding:0}.project-title-line h3{font-size:clamp(3.4rem,18vw,5rem)}.case-content{padding-left:0}.skills-list>div,.timeline li{grid-template-columns:1fr;gap:7px}.footer-line{flex-direction:column;align-items:flex-start;gap:20px}}@media print{:root{--paper:#fff;--ink:#000;--muted:#444;--hairline:#b5b5b5;--accent:#000;--surface:#fff;--on-ink:#000;--on-ink-muted:#444;--on-ink-hairline:#b5b5b5;--on-ink-accent:#444;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@page{margin:14mm}.site-header,.skip-link,.hero-actions,.diagram,.evidence,.summary-mark,[data-resume-download]{display:none!important}body{font-size:10.5pt;line-height:1.5}.page-shell{width:100%;padding-inline:0}.hero-name,.hero-copy,.hero-meta{opacity:1;clip-path:none;animation:none;transform:none}.hero{min-height:0;padding:0 0 8mm}.hero-main{gap:6mm}.name-ko{font-size:26pt}.hero-copy h1{font-size:15pt}.hero-copy>p{margin-top:4mm;font-size:10.5pt}.hero-meta{margin-top:6mm}.work-section,.principles-section,.resume-section,.contact-inner{padding-top:7mm;padding-bottom:7mm}.section-heading{gap:3mm;margin-bottom:5mm}.section-heading h2,.contact-inner h2{font-size:15pt}.about-intro,.timeline-section{margin-bottom:6mm}.about-intro p{font-size:10.5pt;line-height:1.6}.projects{gap:9mm}.project-title-line h3{font-size:17pt}.project-summary,.project-stack{margin-top:3mm}.project-body{gap:5mm;padding-top:4mm}.problem-cases{margin-top:6mm}.problem-cases summary{grid-template-columns:30px minmax(0,1fr);min-height:0;padding:2mm 0;font-size:11pt}.case-content{gap:3mm;padding:0 0 4mm 30px}.resume-grid,.principles-list li{gap:6mm}.contact-section{color:#000;background:#fff}.contact-links{gap:3mm 8mm;margin-top:4mm}.contact-links a{border-bottom:none;font-size:11pt}.footer-line{margin-top:6mm}.contact-links a[href^=http]:after,.project-link[href^=http]:after{color:#444;content:" " attr(href);font-size:8pt;font-weight:400}.project-case,.principles-list li,.timeline li,.problem-cases details,.skills-list>div{break-inside:avoid}.work-section,.principles-section,.resume-section{break-before:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.hero-name,.hero-copy,.hero-meta{opacity:1;clip-path:none;animation:none;transform:none}}
