:root{--bg:#f3efe7;--surface:#fbf9f4;--ink:#16140f;--muted:#6b665b;--line:#dcd6c8;--accent:#c4491c;--accent-ink:#fff;--shadow:0 30px 60px -30px #281e0a59;--serif:"Instrument Serif", Georgia, serif;--sans:"Inter", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--r:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f0e0c;--surface:#171612;--ink:#f1ede4;--muted:#9a9488;--line:#2b2923;--accent:#ff7a45;--accent-ink:#1a0d05;--shadow:0 30px 60px -30px #000c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f0e0c;--surface:#171612;--ink:#f1ede4;--muted:#9a9488;--line:#2b2923;--accent:#ff7a45;--accent-ink:#1a0d05;--shadow:0 30px 60px -30px #000c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.65;transition:background .3s,color .3s;overflow-x:hidden}body.lock{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}em{font-family:var(--serif);color:var(--accent);font-style:italic;font-weight:400}.wrap{width:min(1220px,100% - 48px);margin-inline:auto}.skip{background:var(--ink);color:var(--bg);z-index:200;padding:8px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}code{font-family:var(--mono);background:var(--line);border-radius:4px;padding:1px 6px;font-size:.85em}.ph{background:linear-gradient(135deg, var(--line), var(--surface));border-radius:var(--r);isolation:isolate;position:relative;overflow:hidden}.ph img{object-fit:cover;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .4s}.ph.broken img{opacity:0}figcaption{font-family:var(--mono);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;border-radius:99px;padding:3px 10px;font-size:12px;position:absolute;bottom:12px;left:14px}.btn{background:var(--ink);color:var(--bg);white-space:nowrap;border-radius:99px;align-items:center;gap:10px;padding:13px 24px;font-size:15px;font-weight:600;transition:transform .2s,background .2s,color .2s;display:inline-flex}.btn:hover{background:var(--accent);color:var(--accent-ink);transform:translateY(-2px)}.btn svg{transition:transform .25s}.btn:hover svg{transform:translate(3px,-3px)}.btn-sm{padding:9px 18px;font-size:14px}.btn-lg{padding:16px 30px;font-size:16px}.btn-line{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);background:0 0}.link{border-bottom:1.5px solid var(--accent);align-items:center;gap:8px;padding-bottom:2px;font-weight:600;display:inline-flex}.link:hover{color:var(--accent)}.icon-btn{width:40px;height:40px;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:50%;place-items:center;transition:background .2s;display:grid}.icon-btn:hover{background:var(--line)}.nav{z-index:50;transition:background .3s,box-shadow .3s;position:sticky;top:0}.nav.scrolled,.nav.open{background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}.nav-in{align-items:center;gap:14px;height:72px;display:flex}.logo{font-family:var(--serif);margin-right:auto;font-size:30px;line-height:1}.logo i{color:var(--accent);font-style:normal}.links{gap:4px;display:flex}.links a{color:var(--muted);border-radius:99px;padding:8px 14px;font-size:14px;font-weight:500;transition:color .2s,background .2s}.links a:hover{color:var(--ink)}.links a.on{color:var(--ink);background:var(--line)}.burger{flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;display:none}.burger i{background:var(--ink);width:22px;height:2px;transition:transform .25s}.nav.open .burger i:first-child{transform:translateY(4px)rotate(45deg)}.nav.open .burger i:last-child{transform:translateY(-4px)rotate(-45deg)}.hero{padding:40px 0 56px}.hero-in{grid-template-columns:1.1fr .9fr;align-items:center;gap:56px;display:grid}.eyebrow{font-family:var(--mono);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);background:var(--surface);border-radius:99px;align-items:center;gap:10px;padding:6px 14px;font-size:13px;display:inline-flex}.pulse{background:#2fb36b;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 #2fb36b99}@keyframes pulse{70%{box-shadow:0 0 0 9px #2fb36b00}to{box-shadow:0 0 #2fb36b00}}.hero h1{font-family:var(--serif);letter-spacing:-.02em;margin:26px 0 24px;font-size:clamp(46px,7vw,98px);font-weight:400;line-height:.98}.ln{padding-bottom:.08em;display:block;overflow:hidden}.ln>span{animation:1s cubic-bezier(.2,.7,.2,1) backwards rise;display:block}.ln:nth-child(2)>span{animation-delay:.1s}.ln:nth-child(3)>span{animation-delay:.2s}@keyframes rise{0%{transform:translateY(110%)}}.lead{max-width:520px;color:var(--muted);font-size:18px}.cta{flex-wrap:wrap;gap:12px;margin:30px 0 38px;display:flex}.facts{border-top:1px solid var(--line);flex-wrap:wrap;gap:14px 36px;padding-top:26px;display:flex}.facts b{font-family:var(--serif);font-size:36px;font-weight:400;line-height:1.1;display:block}.facts span{color:var(--muted);font-size:13px}.hero-art{padding:0 0 40px 40px;position:relative}.hero-art .main{aspect-ratio:4/5;border-radius:200px 200px var(--r) var(--r);box-shadow:var(--shadow)}.hero-art .side{aspect-ratio:4/3;width:38%;box-shadow:var(--shadow);border:5px solid var(--bg);border-radius:14px;animation:7s ease-in-out infinite bob;position:absolute}.hero-art .s1{top:14%;left:0}.hero-art .s2{animation-delay:-3s;bottom:8%;right:-4%}@keyframes bob{50%{transform:translateY(-10px)}}.badge-float{background:var(--surface);box-shadow:var(--shadow), inset 0 0 0 1px var(--line);border-radius:14px;flex-direction:column;padding:12px 18px;font-size:14px;display:flex;position:absolute;bottom:4px;left:10%}.badge-float span{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.strip{padding:10px 0 30px;overflow:hidden}.strip-track{gap:16px;width:max-content;animation:60s linear infinite slide;display:flex}.strip:hover .strip-track{animation-play-state:paused}.strip .ph{aspect-ratio:3/2;flex:none;width:300px}.strip .ph:nth-child(2n){margin-top:24px}@keyframes slide{to{transform:translate(calc(-50% - 8px))}}.sec{padding:96px 0}.kicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:13px}.head{margin-bottom:44px}h2{font-family:var(--serif);letter-spacing:-.015em;margin-top:10px;font-size:clamp(36px,5vw,64px);font-weight:400;line-height:1.05}.body{color:var(--muted);margin-top:16px;font-size:17px}.year{font-family:var(--mono);color:var(--muted);letter-spacing:.04em;font-size:12px}.rv{opacity:0;transition:opacity .8s cubic-bezier(.2, .7, .2, 1) var(--d,0s), transform .8s cubic-bezier(.2, .7, .2, 1) var(--d,0s);transform:translateY(26px)}.rv.in{opacity:1;transform:none}.about{grid-template-columns:1fr 1fr;align-items:center;gap:72px;display:grid}.about-imgs{grid-template-rows:auto auto;grid-template-columns:1.1fr .9fr;gap:16px;display:grid;position:relative}.a1{aspect-ratio:3/4.2;grid-row:1/3}.a2{aspect-ratio:1;margin-top:40px}.a3{aspect-ratio:1;margin-bottom:40px}.about-copy .link{margin-top:28px}.skills{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.skill{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:16px;padding:14px 14px 26px}.skill .ph{aspect-ratio:2/.8;margin-bottom:22px}.skill:hover .ph img{transform:scale(1.05)}.skill ul{gap:16px;padding:0 12px;display:grid}.skill li>div{justify-content:space-between;margin-bottom:7px;font-size:14px;font-weight:500;display:flex}.skill li b{font-family:var(--mono);color:var(--muted);font-size:12px;font-weight:400}.bar{background:var(--line);border-radius:9px;height:5px;display:block;overflow:hidden}.bar u{background:var(--accent);border-radius:9px;width:0;height:100%;transition:width 1.3s cubic-bezier(.2,.7,.2,1) .2s;display:block}.skill.in .bar u{width:var(--v)}.chips{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.chip{box-shadow:inset 0 0 0 1.5px var(--line);color:var(--muted);border-radius:99px;padding:8px 18px;font-size:14px;font-weight:500;transition:all .2s}.chip:hover{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.chip.on{background:var(--ink);color:var(--bg);box-shadow:none}.proj-grid{grid-template-columns:repeat(2,1fr);gap:44px 28px;display:grid}.proj{width:100%;display:block}.proj.wide{grid-column:1/-1}.proj .ph{aspect-ratio:3/2}.proj.wide .ph{aspect-ratio:21/9}.proj:hover .ph img{transform:scale(1.06)}.proj-meta{justify-content:space-between;align-items:flex-start;gap:16px;padding-top:18px;display:flex}.proj h3{font-family:var(--serif);margin:4px 0;font-size:34px;font-weight:400;line-height:1.1}.tag{color:var(--muted);font-size:15px}.go{width:46px;height:46px;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:50%;flex:none;place-items:center;transition:all .25s;display:grid}.proj:hover .go{background:var(--accent);color:var(--accent-ink);box-shadow:none;transform:rotate(45deg)}.timeline{gap:0;display:grid}.job{border-top:1px solid var(--line);grid-template-columns:300px 1fr;gap:40px;padding:36px 0;display:grid}.job:last-child{border-bottom:1px solid var(--line)}.job .ph{aspect-ratio:4/3}.job:hover .ph img{transform:scale(1.05)}.period{font-family:var(--mono);color:var(--accent);font-size:13px}.job h3{font-family:var(--serif);margin:8px 0 2px;font-size:38px;font-weight:400;line-height:1.1}.company{margin-bottom:14px;font-weight:600}.job-body ul{gap:8px;display:grid}.job-body li{color:var(--muted);padding-left:22px;position:relative}.job-body li:before{content:"";background:var(--accent);width:10px;height:1.5px;position:absolute;top:.7em;left:0}.certs{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.cert{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:16px;padding:12px 12px 22px;transition:transform .3s,box-shadow .3s;display:block}.cert:hover{box-shadow:var(--shadow), inset 0 0 0 1px var(--line);transform:translateY(-6px)}.cert .ph{aspect-ratio:16/10;margin-bottom:18px}.cert .ph:after{content:"";z-index:1;background:linear-gradient(#0000 40%,#00000073);position:absolute;inset:0}.cert:hover .ph img{transform:scale(1.07)}.seal{z-index:2;background:var(--accent);width:38px;height:38px;color:var(--accent-ink);border-radius:50%;place-items:center;font-size:16px;display:grid;position:absolute;bottom:12px;right:12px}.cert>div{padding:0 10px}.cert h3{font-family:var(--serif);margin:6px 0 14px;font-size:26px;font-weight:400;line-height:1.15}.more{color:var(--accent);align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.contact{padding-bottom:110px}.contact-card{background:var(--ink);color:var(--bg);border-radius:28px;grid-template-columns:1fr 1fr;gap:56px;padding:56px;display:grid;position:relative;overflow:hidden}.contact-card:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--accent) 55%, transparent), transparent 65%);pointer-events:none;width:520px;height:520px;position:absolute;top:-200px;right:-160px}.contact-card>*{position:relative}.contact-card .body{color:color-mix(in srgb, var(--bg) 70%, transparent)}.c-list{gap:12px;margin:28px 0 22px;display:grid}.c-list a,.loc{align-items:center;gap:12px;transition:color .2s;display:inline-flex}.c-list a:hover{color:var(--accent)}.socials{gap:10px;display:flex}.socials a{width:46px;height:46px;box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--bg) 30%, transparent);border-radius:50%;place-items:center;transition:all .2s;display:grid}.socials a:hover{background:var(--accent);color:var(--accent-ink);box-shadow:none;transform:translateY(-3px)}.c-form{align-content:start;gap:16px;display:grid}.c-form label{font-size:13px;font-family:var(--mono);color:color-mix(in srgb, var(--bg) 65%, transparent);gap:7px;display:grid}.c-form input,.c-form textarea{font:inherit;font-family:var(--sans);color:var(--bg);background:color-mix(in srgb, var(--bg) 8%, transparent);border:1.5px solid color-mix(in srgb, var(--bg) 22%, transparent);resize:vertical;border-radius:12px;outline:0;padding:14px 16px;font-size:16px;transition:border-color .2s}.c-form input:focus,.c-form textarea:focus{border-color:var(--accent)}.c-form ::placeholder{color:color-mix(in srgb, var(--bg) 40%, transparent)}.c-form .btn{background:var(--accent);color:var(--accent-ink);justify-self:start}.c-form .btn:hover{background:var(--bg);color:var(--ink)}.err{color:#ff8f7a;font-size:14px;font-weight:600}.fine{color:color-mix(in srgb, var(--bg) 55%, transparent);font-size:12px}.fine.center{text-align:center;color:var(--muted);margin-top:14px}.foot{border-top:1px solid var(--line)}.foot-in{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:26px 0;font-size:13px;display:flex}.foot a:hover{color:var(--accent)}.modal{z-index:100;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal[hidden]{display:none}.m-bg{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080705b8;animation:.25s fade;position:absolute;inset:0}@keyframes fade{0%{opacity:0}}.m-box{background:var(--bg);border-radius:22px;width:min(980px,100%);max-height:92vh;padding:18px;animation:.35s cubic-bezier(.2,.7,.2,1) pop;position:relative;overflow:auto}@keyframes pop{0%{opacity:0;transform:translateY(24px)scale(.97)}}.m-close{float:right;z-index:5;background:var(--ink);width:40px;height:40px;color:var(--bg);border-radius:50%;place-items:center;margin:0 0 -40px;transition:background .2s;display:grid;position:sticky;top:0}.m-close:hover{background:var(--accent)}.pm-gallery{grid-template-columns:1.4fr 1fr;gap:12px;display:grid}.pm-gallery .ph{aspect-ratio:4/3}.pm-body{padding:26px 14px 12px}.pm-body h3{font-family:var(--serif);margin:6px 0 4px;font-size:44px;font-weight:400;line-height:1.05}.pm-body dl{gap:14px;margin:24px 0;display:grid}.pm-body dt{font-family:var(--mono);color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-size:12px}.pill{box-shadow:inset 0 0 0 1px var(--line);background:var(--surface);border-radius:99px;margin:0 6px 6px 0;padding:4px 14px;font-size:13px;display:inline-block}.m-cert{text-align:center;width:min(720px,100%);padding-bottom:28px}.diploma{padding:34px 10px 10px}.d-frame{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line), inset 0 0 0 10px var(--surface), inset 0 0 0 11px var(--accent);border-radius:6px;padding:44px 30px}.d-top{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-size:12px}.d-sm{color:var(--muted);margin-top:18px;font-size:13px}.d-name{font-family:var(--serif);margin:4px 0;font-size:clamp(34px,6vw,54px);font-style:italic;line-height:1.1}.d-frame h3{font-family:var(--serif);margin:6px 0 28px;font-size:clamp(24px,4vw,34px);font-weight:400;line-height:1.15}.d-foot{justify-content:space-around;align-items:center;gap:12px;display:flex}.d-foot b{font-size:15px;display:block}.d-foot span{color:var(--muted);font-size:12px}.d-seal{background:var(--accent);width:56px;height:56px;color:var(--accent-ink);box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:50%;place-items:center;font-size:22px;display:grid}.d-id{font-family:var(--mono);color:var(--muted);margin-top:26px;font-size:11px}@media (width<=1020px){.hero-in,.about,.contact-card{grid-template-columns:1fr}.hero-in{gap:36px}.hero-art{width:100%;max-width:520px;margin-inline:auto}.about{gap:44px}.certs{grid-template-columns:repeat(2,1fr)}.job{grid-template-columns:220px 1fr;gap:28px}.contact-card{gap:36px;padding:40px 32px}}@media (width<=760px){.wrap{width:calc(100% - 32px)}.nav-in{height:62px}.nav-cta{display:none}.burger{display:flex}.links{background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;padding:8px 16px 20px;display:none;position:absolute;top:62px;left:0;right:0}.nav.open .links{display:flex}.links a{font-size:22px;font-family:var(--serif);border-bottom:1px solid var(--line);border-radius:0;padding:12px 8px;background:0 0!important}.hero{padding-top:16px}.lead{font-size:16px}.facts{gap:14px 26px}.facts b{font-size:30px}.hero-art{padding-left:14px}.hero-art .side{border-width:3px}.sec{padding:60px 0}.head{margin-bottom:30px}.strip .ph{width:220px}.about-imgs{gap:10px}.skills,.proj-grid,.certs{grid-template-columns:1fr}.proj-grid{gap:34px}.proj.wide .ph{aspect-ratio:3/2}.proj h3{font-size:28px}.job{grid-template-columns:1fr;gap:18px;padding:28px 0}.job .ph{aspect-ratio:16/10}.job h3{font-size:32px}.contact{padding-bottom:70px}.contact-card{border-radius:20px;padding:30px 20px}.c-form .btn{justify-content:center;justify-self:stretch}.pm-gallery{grid-template-columns:1fr}.pm-gallery .ph:nth-child(n+2){display:none}.pm-body h3{font-size:34px}.m-box{border-radius:18px;padding:12px}.foot-in{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.rv{opacity:1;transform:none}.bar u{width:var(--v)}}@media (width<=900px){.nav-in{height:62px}.nav-cta{display:none}.burger{display:flex}.links{background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px 24px 20px;display:none;position:absolute;top:62px;left:0;right:0}.nav.open .links{display:flex}.links a{font-size:22px;font-family:var(--serif);border-bottom:1px solid var(--line);border-radius:0;padding:12px 8px;background:0 0!important}}
