:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#0f172a;--muted:#667085;--line:#dfe2e6;--surface:#eff1f4;--accent:#1959ff;--accent-dark:#0e45d9;background:#f8f8f5;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 78% 6%,#1959ff12,#0000 23rem),#f8f8f5;min-width:320px;min-height:100vh;margin:0}body,button,a{font-family:inherit}a{color:inherit;text-decoration:none;transition:color .16s,background .16s,border-color .16s}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline-offset:4px;outline:3px solid #1959ff59}::selection{color:var(--ink);background:#cbd9ff}.site-shell{width:min(100%,1440px);margin:0 auto;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{justify-content:space-between;align-items:center;width:min(100% - 48px,1180px);height:84px;margin:0 auto;display:flex}.brand{background:var(--ink);color:#fff;letter-spacing:-.04em;border-radius:50%;place-items:center;width:42px;height:42px;font-size:.9rem;font-weight:800;display:grid}.site-header nav{gap:32px;display:flex}.site-header nav a{color:var(--muted);font-size:.95rem;font-weight:650}.site-header nav a:hover{color:var(--accent)}.section{width:min(100% - 48px,1180px);margin:0 auto;padding:124px 0}.hero{grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);align-items:center;gap:clamp(48px,7vw,92px);min-height:calc(100vh - 84px);padding-top:70px;padding-bottom:110px;display:grid}.eyebrow{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin:0 0 22px;font-size:.82rem;font-weight:800}.hero-role{letter-spacing:-.065em;text-wrap:balance;max-width:780px;margin:0;font-size:clamp(3rem,5.6vw,5.25rem);font-weight:800;line-height:1.02}.hero-introduction{max-width:670px;color:var(--muted);margin:34px 0 0;font-size:clamp(1.08rem,1.5vw,1.28rem);line-height:1.85}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:42px;display:flex}.button{border:1px solid var(--line);border-radius:999px;justify-content:center;align-items:center;gap:14px;min-height:52px;padding:0 22px;font-size:.96rem;font-weight:750;display:inline-flex}.button-primary{border-color:var(--accent);background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-secondary{color:var(--ink);background:#fff}.button-secondary:hover{border-color:var(--ink)}.profile-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe0;border-radius:32px;padding:12px 28px 28px;position:relative;box-shadow:0 28px 80px #0f172a1a}.profile-card:before{z-index:-1;content:"";filter:blur(4px);background:#dce6ff;border-radius:50%;width:150px;height:150px;position:absolute;top:-42px;right:-42px}.profile-photo{aspect-ratio:3/4;background:var(--surface);border-radius:24px;width:calc(100% + 32px);margin:0 -16px 28px;position:relative;overflow:hidden}.profile-photo img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.profile-photo-caption{background:linear-gradient(#0000 45%,#0f172a1f 62%,#0f172ae0 100%);flex-direction:column;justify-content:flex-end;padding:100px 24px 24px;display:flex;position:absolute;inset:0}.profile-kicker{color:#ffffffb8;margin:0 0 6px;font-size:.85rem;font-weight:650}.profile-card h2{color:#fff;letter-spacing:-.045em;margin:0;font-size:1.65rem;line-height:1.1}.profile-name{color:#ffffffb8;margin:7px 0 0;font-size:.98rem}.profile-card dl{border-top:1px solid var(--line);margin:0}.profile-card dl div{border-bottom:1px solid var(--line);grid-template-columns:74px 1fr;gap:12px;padding:15px 0;display:grid}.profile-card dt{color:var(--muted);font-size:.78rem;font-weight:700}.profile-card dd{margin:0;font-size:.86rem;font-weight:650;line-height:1.5}.profile-links{gap:24px;margin-top:26px;display:flex}.profile-links a{color:var(--ink);align-items:center;gap:7px;font-size:.88rem;font-weight:750;display:inline-flex}.profile-links a:hover{color:var(--accent)}.section-heading{grid-template-columns:minmax(0,1fr) minmax(260px,.42fr);align-items:end;gap:48px;margin-bottom:64px;display:grid}.section-heading .eyebrow{margin-bottom:15px}.section-heading h2{letter-spacing:-.065em;text-wrap:balance;max-width:720px;margin:0;font-size:clamp(2.1rem,4.2vw,3.7rem);line-height:1.08}.section-heading>p{color:var(--muted);margin:0;font-size:1.02rem;line-height:1.8}.project-grid{gap:28px;display:grid}.project-card{border:1px solid var(--line);background:#ffffff94;border-radius:28px;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);min-height:540px;transition:background .18s,transform .18s;display:grid;overflow:hidden}.project-card:nth-child(2n){grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr)}.project-card:nth-child(2n) .project-media{border-right:1px solid var(--line);border-left:0;order:-1}.project-card.project-card-text-only,.project-card.project-card-text-only:nth-child(2n){grid-template-columns:1fr;min-height:0}.project-card-text-only h3,.project-card-text-only .project-summary{max-width:780px}.project-card-text-only .project-highlights{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.project-card-text-only .project-highlights li{border-right:1px solid var(--line);border-bottom:0;padding-right:24px}.project-card-text-only .project-highlights li:not(:first-child){padding-left:24px}.project-card-text-only .project-highlights li:last-child{border-right:0;padding-right:0}.project-card-text-only .tag-list{margin-top:0}.project-card:hover{background:#fff;transform:translateY(-3px)}.project-card-content{flex-direction:column;min-width:0;padding:clamp(34px,4vw,52px);display:flex}.project-media{border-left:1px solid var(--line);background:#f0eff7;place-items:center;min-width:0;min-height:100%;padding:clamp(12px,1.8vw,24px);display:grid}.project-media img{object-fit:contain;background:#fff;border:1px solid #0f172a14;border-radius:16px;width:100%;height:100%;max-height:620px;display:block}.project-media-placeholder{background:#e6e8eb;min-height:430px}.placeholder-label{color:#858b95;text-align:center;gap:8px;display:grid}.placeholder-label span{letter-spacing:.13em;text-transform:uppercase;font-size:.76rem;font-weight:800}.placeholder-label small{font-size:.88rem}.project-number{color:var(--accent);margin-bottom:54px;font-size:.82rem;font-weight:800}.project-card h3{letter-spacing:-.045em;max-width:420px;margin:0;font-size:clamp(1.35rem,2.1vw,1.85rem);line-height:1.25}.project-summary{max-width:510px;color:var(--muted);margin:18px 0 0;font-size:.98rem;line-height:1.75}.project-highlights{border-top:1px solid var(--line);margin:30px 0 0;padding:0;list-style:none}.project-highlights li{border-bottom:1px solid var(--line);grid-template-columns:34px 1fr;gap:10px;padding:20px 0;display:grid}.project-highlights li>span{color:var(--accent);padding-top:2px;font-size:.7rem;font-weight:800}.project-highlights strong{letter-spacing:-.015em;font-size:.9rem;line-height:1.45;display:block}.project-highlights p{color:var(--muted);margin:7px 0 0;font-size:.82rem;line-height:1.65}.project-result{color:var(--accent);margin-top:30px;font-size:.93rem}.project-metrics{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;margin:28px 0 0;display:flex}.project-metrics>div{flex-direction:column;min-width:160px;padding:20px 26px 20px 0;display:flex}.project-metrics strong{letter-spacing:-.055em;font-size:clamp(1.7rem,3vw,2.35rem)}.project-metrics span{color:var(--muted);margin-top:6px;font-size:.82rem}.tag-list{flex-wrap:wrap;gap:7px;margin:auto 0 0;padding:28px 0 0;list-style:none;display:flex}.tag-list li{background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 11px;font-size:.76rem;font-weight:650}.experience-section{background:var(--ink);padding:0 24px}.section-dark{color:#fff}.section-dark .eyebrow{color:#8dabff}.section-dark .section-heading>p{color:#9ba7b8}.timeline{border-top:1px solid #ffffff2b}.timeline-item{border-bottom:1px solid #ffffff2b;grid-template-columns:.62fr .8fr 1.55fr;gap:42px;padding:42px 0;display:grid}.timeline-period{color:#8e9bad;margin:4px 0 0;font-size:.78rem;font-weight:650}.timeline-role h3{letter-spacing:-.03em;margin:0 0 7px;font-size:1.32rem}.timeline-role p,.timeline-details>p{color:#aeb8c6;margin:0;font-size:.9rem;line-height:1.7}.timeline-details ul{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.timeline-details li{color:#dbe1e9;padding-left:17px;font-size:.86rem;line-height:1.55;position:relative}.timeline-details li:before{content:"";background:#8dabff;border-radius:50%;width:4px;height:4px;position:absolute;top:.62em;left:0}.skills-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.skill-group{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px}.skill-group h3{min-height:48px;color:var(--accent);letter-spacing:-.01em;margin:0 0 30px;font-size:.94rem}.skill-group ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.skill-group li{color:var(--muted);font-size:.9rem}.background-section{padding-top:40px}.background-list{border-top:1px solid var(--line)}.background-list article{border-bottom:1px solid var(--line);grid-template-columns:80px 1fr;align-items:start;gap:24px;padding:28px 0;display:grid}.background-list article>span{color:var(--accent);font-size:.8rem;font-weight:800}.background-list h3{letter-spacing:-.025em;margin:0 0 8px;font-size:1.15rem}.background-list p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.connect-section{padding-top:48px;padding-bottom:72px}.connect-links{border-top:1px solid var(--line)}.connect-links a{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr auto;align-items:center;gap:24px;min-height:92px;display:grid}.connect-links span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;font-weight:700}.connect-links strong{color:var(--ink);letter-spacing:-.025em;font-size:clamp(1rem,2vw,1.28rem);font-weight:700}.connect-links a>span:last-child{color:var(--accent);font-size:1rem;transition:transform .18s}.connect-links a:hover>span:last-child{transform:translate(3px,-3px)}footer{width:min(100% - 48px,1180px);min-height:140px;color:var(--muted);justify-content:space-between;align-items:center;margin:0 auto;font-size:.8rem;display:flex}@media (width<=900px){.hero{grid-template-columns:1fr;min-height:auto}.profile-card{width:min(100%,420px)}.skills-grid{grid-template-columns:repeat(2,1fr)}.project-card,.project-card:nth-child(2n){grid-template-columns:1fr}.project-card .project-media,.project-card:nth-child(2n) .project-media{border-right:0;border-bottom:1px solid var(--line);border-left:0;order:-1}.project-card-text-only .project-highlights{border-bottom:0;grid-template-columns:1fr}.project-card-text-only .project-highlights li,.project-card-text-only .project-highlights li:not(:first-child){border-right:0;border-bottom:1px solid var(--line);padding-left:0;padding-right:0}.section-heading,.timeline-item{grid-template-columns:1fr}.section-heading{gap:22px}.timeline-item{gap:12px}}@media (width<=640px){.site-header{width:min(100% - 36px,1180px)}.site-header nav{gap:16px}.site-header nav a:nth-child(2),.site-header nav a:nth-child(3){display:none}.section{width:min(100% - 36px,1180px);padding:88px 0}.hero{padding-top:50px;padding-bottom:88px}.hero-role{font-size:clamp(2.8rem,13vw,4.2rem)}.profile-card{padding:12px 28px 28px}.skills-grid{grid-template-columns:1fr}.project-card{border-radius:22px;min-height:0}.project-card-content{padding:30px 26px 34px}.project-media,.project-media-placeholder{min-height:240px}.project-metrics>div{min-width:50%;padding-right:12px}.project-number{margin-bottom:42px}.experience-section{padding:0 18px}.section-dark{width:100%}.skill-group{padding:28px}.skill-group h3{min-height:auto}.connect-links a{grid-template-columns:1fr auto;gap:7px 16px;min-height:84px}.connect-links a>span:first-child{grid-column:1/-1}footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;width:min(100% - 36px,1180px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
