@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-cyrillic-wght-normal.CjwCQKo9.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-ext-wght-normal.BDUtSsKd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/jost-latin-wght-normal.ObQm3Zd1.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/caveat-cyrillic-ext-400-normal.3iEGd-c5.woff2) format("woff2"),url(/_astro/caveat-cyrillic-ext-400-normal.Cg0RnRQ5.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/caveat-cyrillic-400-normal.9cDH9rLW.woff2) format("woff2"),url(/_astro/caveat-cyrillic-400-normal.CebvvJET.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/caveat-latin-ext-400-normal.D7hBUiug.woff2) format("woff2"),url(/_astro/caveat-latin-ext-400-normal.DtiRFvw0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/caveat-latin-400-normal.D6LQsQ_v.woff2) format("woff2"),url(/_astro/caveat-latin-400-normal.BzhAQZkN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-cyrillic-ext-700-normal.CrK2-ngJ.woff2) format("woff2"),url(/_astro/caveat-cyrillic-ext-700-normal.DjFGiEhD.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-cyrillic-700-normal.BIyejhEL.woff2) format("woff2"),url(/_astro/caveat-cyrillic-700-normal.Bhcx9qBB.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-latin-ext-700-normal.DFbRgDry.woff2) format("woff2"),url(/_astro/caveat-latin-ext-700-normal.DjJQd59I.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-latin-700-normal.D8_1Nw6V.woff2) format("woff2"),url(/_astro/caveat-latin-700-normal.cPyBTTZN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f0ebe3;--bg-2: #f8f6f2;--card: #ffffff;--text: #262626;--muted: #5f5f5f;--line: #262626;--soft-line: rgba(0, 0, 0, .12);--accent: #29a587;--ghost: rgba(0, 0, 0, .035);--name-fill: #ffffff;--name-edge: #000000;--shadow: 5px 5px 0 rgba(0, 0, 0, .15);--sans: "Jost Variable", "Jost", system-ui, sans-serif;--script: "Caveat", cursive;--wrap: 1200px;color-scheme:light}:root[data-theme=dark]{--bg: #1b1b1b;--bg-2: #222222;--card: #2a2a2a;--text: #f2f2f2;--muted: #b5b5b5;--line: #e9e9e9;--soft-line: rgba(255, 255, 255, .14);--ghost: rgba(255, 255, 255, .04);--name-fill: #1b1b1b;--name-edge: #ffffff;--shadow: 5px 5px 0 rgba(255, 255, 255, .12);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.7;color:var(--text);background:linear-gradient(180deg,var(--bg) 0,var(--bg-2) 900px) no-repeat,var(--bg-2);overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-decoration:none;overflow-wrap:anywhere}a:hover{text-decoration:underline}h1,h2,h3,h4{line-height:1.2;margin:0}.wrap{width:min(var(--wrap),100% - 32px);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site-header{position:fixed;inset:0 0 auto;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:18px max(16px,calc((100vw - var(--wrap)) / 2));transition:background .3s,box-shadow .3s}.site-header.scrolled{background:color-mix(in srgb,var(--bg-2) 92%,transparent);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--soft-line)}.logo{font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text);font-size:15px}.logo span{color:var(--accent)}.header-actions{display:flex;gap:14px;align-items:center}.icon-btn{background:none;border:0;color:var(--text);cursor:pointer;padding:6px;display:grid;place-items:center}.icon-btn svg{width:22px;height:22px}.menu-btn span{display:block;width:24px;height:2px;background:currentColor;margin:5px 0;transition:transform .3s}.nav-open .menu-btn span:first-child{transform:translateY(3.5px) rotate(45deg)}.nav-open .menu-btn span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.nav-overlay{position:fixed;inset:0;z-index:40;background:var(--bg-2);display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}.nav-open .nav-overlay{opacity:1;visibility:visible}.nav-overlay ul{list-style:none;padding:0;margin:0;text-align:center}.nav-overlay a{display:block;font-size:clamp(28px,6vw,48px);font-weight:700;text-transform:uppercase;color:var(--text);padding:4px 0}.nav-overlay a:hover{color:var(--accent);text-decoration:none}section{position:relative;padding:110px 0 40px;overflow-x:clip}html,body{overflow-x:clip}.section-head{position:relative;text-align:center;margin-bottom:56px}.section-head h2{font-size:clamp(28px,4vw,40px);font-weight:700;text-transform:uppercase;letter-spacing:.02em}.section-head h2 em{font-style:normal;color:var(--accent)}.section-head .sub{margin-top:6px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.section-head .sub b{font-family:var(--script);font-size:26px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text);margin-left:4px}.ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-55%);font-family:var(--script);font-size:clamp(110px,22vw,300px);line-height:1;color:var(--ghost);white-space:nowrap;pointer-events:none;user-select:none;z-index:-1}.hero{min-height:100vh;display:flex;align-items:center;padding:120px 0 60px;overflow:hidden}.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;position:relative}.hero .ghost{top:auto;bottom:-60px;transform:translate(-50%)}.hello{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hello span{color:var(--accent)}.hero h1{margin:18px 0 24px;font-size:clamp(48px,8.4vw,96px);font-weight:700;text-transform:uppercase;line-height:1.05}.hero h1 .prefix{color:var(--accent);display:block}.hero h1 .outline{display:block;color:var(--name-fill);letter-spacing:.02em;text-shadow:2px 2px 0 var(--name-edge),-2px 2px 0 var(--name-edge),2px -2px 0 var(--name-edge),-2px -2px 0 var(--name-edge),0 2px 0 var(--name-edge),0 -2px 0 var(--name-edge),2px 0 0 var(--name-edge),-2px 0 0 var(--name-edge),6px 6px 0 rgba(0,0,0,.18)}.role{display:flex;align-items:baseline;gap:12px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.role b{font-family:var(--script);font-size:30px;font-weight:700;text-transform:none;letter-spacing:0}.from{margin-top:26px;font-size:14px;color:var(--muted)}.hero-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border:2px solid var(--line);border-radius:30px;font-size:13px;font-weight:600;color:var(--text);background:var(--card);box-shadow:var(--shadow)}.pill:hover{text-decoration:none;background:var(--accent);border-color:var(--accent);color:#fff}.hero-photo{position:relative;justify-self:center;width:min(470px,100%)}.hero-photo .frame{aspect-ratio:470 / 560;border-radius:50%;overflow:hidden;background:#555}.hero-photo .frame img{width:100%;height:100%;object-fit:cover;object-position:center 15%}.hero-photo .dots{position:absolute;width:120px;opacity:.9;z-index:-1}.hero-photo .dots.a{left:-40px;bottom:30px}.hero-photo .dots.b{right:-50px;bottom:-10px}:root[data-theme=dark] .hero-photo .dots{filter:invert(1)}.badge{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 22px;background:var(--card);border:2px solid var(--line);border-radius:40px;box-shadow:var(--shadow)}.badge strong{font-size:32px;font-weight:700;line-height:1}.badge strong i{font-style:normal;color:var(--accent)}.badge small{font-size:11px;font-weight:700;text-transform:uppercase;line-height:1.25;letter-spacing:.05em}.badge small span{display:block;color:var(--accent)}.badge.a{left:-30px;bottom:120px}.badge.b{right:-20px;bottom:30px}.about-text{max-width:980px;margin:0 auto;font-size:17px}.about-text p{margin:0 0 1em}.about-text .kicker{text-align:center;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:13px}.resume-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}.resume-col h3{text-align:center;font-size:22px;margin-bottom:18px}.acc{border-top:2px solid var(--line)}.acc details{position:relative;border-bottom:2px solid var(--line)}.acc summary{list-style:none;cursor:pointer;padding:22px 52px 22px 0;font-weight:600;font-size:17px}.acc summary::-webkit-details-marker{display:none}.acc summary:after{content:"+";position:absolute;right:0;top:18px;width:34px;height:34px;border:2px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:500;background:var(--card);line-height:1}.acc details[open] summary:after{content:"–";background:var(--accent);border-color:var(--accent);color:#fff}.acc .body{padding:0 0 22px}.acc .meta{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-bottom:8px}.acc .inst{font-family:var(--script);font-size:24px;line-height:1.2}.acc .period{font-size:12px;font-weight:700;white-space:nowrap;letter-spacing:.05em}.acc .details{font-size:14px;color:var(--muted)}.acc .details p{margin:.3em 0}.acc .details ul{margin:.3em 0;padding-left:1.1em}.plain-list{list-style:none;padding:0;margin:0}.cite-list{margin:0;padding-left:1.3em}.cite-list li,.plain-list li{margin-bottom:.75em;overflow-wrap:anywhere}.cite-list li::marker{color:var(--accent);font-weight:700}.item-links{display:inline-flex;gap:8px;margin-left:6px;vertical-align:middle}.item-links a{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:1px 8px;border:1.5px solid var(--accent);border-radius:12px}.item-links a:hover{background:var(--accent);color:#fff;text-decoration:none}.card{background:var(--card);border:2px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:clamp(20px,4vw,44px)}.achievements-card ul{columns:2 340px;column-gap:48px}.achievements-card li{break-inside:avoid}.tabs-intro{text-align:center;margin:-30px 0 30px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.tablist{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:30px}.tablist button{font:inherit;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;padding:8px 18px;border-radius:30px;border:2px solid var(--line);background:var(--card);color:var(--text)}.tablist button[aria-selected=true],.tablist button:hover{background:var(--accent);border-color:var(--accent);color:#fff}.tabpanel h3{font-size:20px;margin:0 0 18px}.tabpanel h4{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:28px 0 14px}.tabpanel h4:first-of-type{margin-top:0}.tabpanel .scroll{max-height:640px;overflow-y:auto;padding-right:10px;font-size:15px}.tabpanel[hidden]{display:none}.reviewer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;list-style:none;padding:0;margin:0}.reviewer-grid li{border:1.5px solid var(--soft-line);border-radius:12px;padding:10px 14px;font-size:14px}.reviewer-grid li small{display:block;color:var(--accent);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.06em}.skills{display:grid;grid-template-columns:1fr 1fr;gap:26px 60px}.skill .top{display:flex;justify-content:space-between;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.skill meter{width:100%;height:10px;display:block;appearance:none;border:2px solid var(--line);border-radius:10px;background:var(--card);overflow:hidden}.skill meter::-webkit-meter-bar{background:var(--card);border:0;border-radius:10px;height:6px}.skill meter::-webkit-meter-optimum-value{background:var(--accent);border-radius:10px}.skill meter::-moz-meter-bar{background:var(--accent);border-radius:10px}.works{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.work{display:block;color:var(--text)}.work:hover{text-decoration:none}.work .thumb{border-radius:22px;overflow:hidden;border:2px solid var(--line);box-shadow:var(--shadow);aspect-ratio:4 / 3.4;background:var(--card)}.work .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.work:hover .thumb img{transform:scale(1.05)}.work h3{margin-top:18px;font-size:22px}.work .see{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.center{text-align:center;margin-top:40px}.btn{display:inline-block;padding:12px 30px;border:2px solid var(--line);border-radius:30px;font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.08em;color:var(--text);background:var(--card);box-shadow:var(--shadow)}.btn:hover{text-decoration:none;background:var(--accent);border-color:var(--accent);color:#fff}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:26px}.gallery figure{margin:0}.gallery a.tile{display:block;border-radius:18px;overflow:hidden;border:2px solid var(--line);box-shadow:var(--shadow);background:var(--card);aspect-ratio:4 / 3}.gallery a.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery a.tile:hover img{transform:scale(1.04)}.gallery .pdf-tile{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:6px;color:var(--accent);font-weight:700}.gallery .pdf-tile svg{width:64px;height:64px}.gallery figcaption{margin-top:12px;font-weight:600;font-size:15px;line-height:1.4}.gallery figcaption small{display:block;color:var(--muted);font-weight:500}.gallery figcaption a{font-size:12px;font-weight:700;text-transform:uppercase}.page-hero{padding:140px 0 40px;text-align:center}.page-hero h1{font-size:clamp(36px,6vw,64px);text-transform:uppercase}.page-hero p{color:var(--muted)}.cat-nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}.cat-nav a[aria-current=page]{background:var(--accent);border-color:var(--accent);color:#fff}dialog.lightbox{border:0;padding:0;background:transparent;max-width:95vw;max-height:92vh}dialog.lightbox::backdrop{background:#000000d9}dialog.lightbox img{max-width:95vw;max-height:86vh;width:auto;border-radius:10px}dialog.lightbox p{color:#fff;text-align:center;margin:10px 0 0}dialog.lightbox button{position:fixed;top:14px;right:18px;background:none;border:0;color:#fff;font-size:38px;cursor:pointer;line-height:1}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.contact-grid h3{font-size:15px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:12px}.contact-grid p{margin:0 0 6px;overflow-wrap:anywhere}footer{padding:50px 0 40px;text-align:center;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.js-reveal .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.js-reveal .reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.js-reveal .reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}@media(max-width:900px){.hero .wrap,.resume-grid,.skills,.contact-grid{grid-template-columns:1fr}.hero{text-align:left}.hero-photo{order:-1;width:min(360px,88%);margin-bottom:10px}.badge.a{left:-10px}.badge.b{right:-10px}.works{grid-template-columns:1fr;max-width:480px;margin-inline:auto}section{padding-top:80px}}@media(max-width:480px){.badge{padding:8px 14px}.badge strong{font-size:24px}.hero-photo .dots{display:none}.acc .meta{flex-direction:column;gap:2px}}section.tight{padding-top:20px}
