*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--paper:#f4f1ea;--paper-2:#ebe6dc;--white:#fffcf7;--ink:#141c27;--navy:#0c1622;--blue:#1658cf;--red:#e1252a;--muted:#5d6673;--rule:#ddd6c8;--serif:"DM Serif Display", "Times New Roman", Georgia, serif;--sans:Manrope, Inter, system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--wrap:1480px;--gutter:64px;--radius:18px;--header:84px}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6;overflow-x:hidden}body.cv-open{overflow:hidden}img,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}h1,h2,h3{font-family:var(--serif);letter-spacing:-.03em;color:var(--ink);font-weight:400;line-height:1.12}.wrap{width:min(var(--wrap), calc(100% - (var(--gutter) * 2)));margin-inline:auto}.icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{z-index:100;border:1px solid var(--ink);background:#fff;padding:10px 16px;position:fixed;top:12px;left:12px}:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#7a7164;align-items:center;gap:10px;margin-bottom:16px;font-size:11px;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:18px;height:1px}.eyebrow.light,.eyebrow.light:before{color:#fffcf7b3}.topbar{z-index:50;-webkit-backdrop-filter:blur(14px);background:#f4f1eaeb;border-bottom:1px solid #141c270f;position:sticky;top:0}.topbar-inner{width:min(var(--wrap), calc(100% - (var(--gutter) * 2)));min-height:var(--header);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;display:flex}.brand{flex:0 auto;align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{width:42px;height:38px;font-family:var(--serif);color:var(--navy);font-size:34px;line-height:1;position:relative}.brand-mark span:first-child{position:absolute;top:0;left:0}.brand-mark span:last-child{opacity:.72;position:absolute;top:0;left:14px}.brand-name{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;font-size:13px;font-weight:700}.nav{gap:28px;display:flex}.nav a{color:var(--muted);font-size:15px;font-weight:500}.nav a:hover{color:var(--ink)}.topbar-actions{align-items:center;gap:10px;display:flex}.lang{align-items:center;gap:2px;margin-right:6px;display:flex}.lang button{font-family:var(--mono);letter-spacing:.12em;color:var(--muted);border-radius:8px;padding:6px 8px;font-size:11px}.lang button[aria-current=true]{color:var(--ink);background:#141c270f}.menu-toggle{border:1px solid var(--rule);border-radius:10px;place-items:center;width:40px;height:40px;display:none}.btn{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;transition:transform .15s,background .15s;display:inline-flex}.btn-sm{padding:8px 14px;font-size:13px}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--ink)}.btn-ghost{color:var(--ink);border-color:var(--rule);background:0 0}.btn-ghost:hover{background:#fff}.btn-on-dark{background:var(--white);color:var(--navy)}.btn-on-dark:hover{background:#fff}.hero{scroll-margin-top:var(--header);padding:20px 0 0}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);align-items:center;gap:36px;display:grid}.hero-copy{padding-top:8px;padding-bottom:64px}.hero h1{margin-bottom:18px;font-size:clamp(42px,4.8vw,70px)}.hero h1 span{display:block}@media (width>=1200px){.hero h1 span:nth-child(2){white-space:nowrap}}.hero-kicker{color:var(--ink);max-width:42em;margin-bottom:14px;font-size:14px;font-weight:600}.hero-lead{color:var(--muted);max-width:44em;margin-bottom:28px}.cta-row{flex-wrap:wrap;gap:10px;display:flex}.hero-photo{border-radius:24px;min-height:580px;margin:0;position:relative;overflow:hidden}.hero-photo:after{content:"";pointer-events:none;background:linear-gradient(90deg, var(--paper) 0%, #f4f1ea00 18%);position:absolute;inset:0}.hero-photo img{object-fit:cover;object-position:58% 40%;width:100%;height:100%;min-height:580px}.photo-badge{transform-origin:100%;font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#fffcf7eb;text-shadow:0 1px 8px #00000059;font-size:10px;position:absolute;top:50%;right:18px;transform:translateY(-50%)rotate(90deg)}.pillar-row{z-index:2;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:-56px;padding-bottom:40px;display:grid;position:relative}.pillar-card{background:var(--white);border-radius:var(--radius);padding:26px 24px 28px;box-shadow:0 18px 40px -28px #0c162273}.pillar-card h2{margin-bottom:10px;font-size:22px}.pillar-card p{color:var(--muted);font-size:14.5px}.experience{background:var(--navy);color:#fff;scroll-margin-top:var(--header);padding:96px 0;position:relative;overflow:hidden}.exp-texture{pointer-events:none;width:46%;position:absolute;inset:0 auto 0 0}.exp-texture img{object-fit:cover;filter:saturate(.65)brightness(.55);width:100%;height:100%}.exp-texture:after{content:"";background:linear-gradient(90deg, #0c162259 0%, #0c1622d1 62%, var(--navy) 100%);position:absolute;inset:0}.exp-layout{z-index:1;grid-template-columns:1fr 1.05fr;align-items:start;gap:72px;display:grid;position:relative}.experience h2,.experience h3,.contact h2,.method h2,.method h3{color:#fff}.experience h2{max-width:22ch;margin-bottom:18px;font-size:clamp(36px,4vw,52px)}.exp-lead{color:#fffcf7c7;max-width:36em;margin-bottom:28px}.exp-note{font-family:var(--mono);letter-spacing:.04em;color:#fffcf773;margin:12px 0 0;font-size:11px}.exp-timeline{padding-top:8px;list-style:none}.exp-timeline li{border-left:1px solid #fffcf729;padding:18px 0 22px 24px;position:relative}.exp-timeline li:before{content:"";background:#fff;border-radius:50%;width:7px;height:7px;position:absolute;top:26px;left:-4px}.exp-timeline .when{font-family:var(--mono);letter-spacing:.08em;color:#fffcf780;margin-bottom:6px;font-size:11px}.exp-timeline h3{margin-bottom:6px;font-size:20px}.exp-timeline .job-org{color:#fffcf7b8;margin-bottom:8px;font-size:14.5px}.exp-timeline .job-blurb{color:#fffcf794;font-size:13.5px;line-height:1.5}.projects{background:var(--paper);scroll-margin-top:var(--header);padding:80px 0 64px}.projects-head{grid-template-columns:1.15fr .85fr;align-items:end;gap:40px;margin-bottom:32px;display:grid}.projects-head h2{max-width:none;font-size:clamp(32px,3.6vw,48px)}.section-aside{color:var(--muted);max-width:38em;margin:0;padding-bottom:4px;font-size:15.5px}.case{background:var(--white);border:1px solid #141c270f;border-radius:22px;grid-template-columns:minmax(300px,.9fr) minmax(0,1.2fr);align-items:stretch;min-height:560px;margin-bottom:28px;display:grid;overflow:hidden}.case-drono{grid-template-columns:minmax(0,1.2fr) minmax(300px,.9fr)}.case-media,.case-mosaic{background:#1b2430;height:100%;min-height:560px;position:relative}.case-media img{object-fit:cover;object-position:48% 58%;width:100%;max-width:none;height:100%;position:absolute;inset:0}.case-caption{z-index:1;color:#fff;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;background:#08131d9e;border-radius:999px;padding:7px 12px;font-size:10px;position:absolute;bottom:16px;left:16px}.case-mosaic{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:5px;padding:5px;display:grid}.case-mosaic img{object-fit:cover;border-radius:14px;width:100%;max-width:none;height:100%;min-height:0}.case-panel{flex-direction:column;justify-content:center;align-items:flex-start;padding:36px 40px 34px;display:flex}.case-panel>p,.case-features,.case-stats{width:100%}.case-panel .btn{align-self:flex-start}.project-kicker{font-family:var(--mono);letter-spacing:.16em;color:#7a7164;margin-bottom:10px;font-size:11px}.case-panel h3{margin-bottom:10px;font-size:clamp(26px,2.4vw,34px)}.case-panel>p{color:var(--muted);margin-bottom:18px;font-size:15px}.case-features{grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:18px;list-style:none;display:grid}.case-features li{border-top:1px solid var(--rule);padding-top:12px}.case-features strong{margin-bottom:4px;font-size:13.5px;font-weight:700;display:block}.case-features span{color:var(--muted);font-size:13px;line-height:1.45;display:block}.case-stats{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:12px 18px;margin:0 0 22px;padding-top:16px;display:grid}.case-stats dt{font-family:var(--serif);margin-bottom:2px;font-size:20px}.case-stats dd{color:var(--muted);font-size:12px}.volunteer{background:var(--paper);scroll-margin-top:var(--header);padding:96px 0}.volunteer-grid{grid-template-columns:.85fr 1.15fr;align-items:center;gap:56px;display:grid}.volunteer-eyebrow,.volunteer-eyebrow:before{color:var(--red)}.volunteer h2{margin-bottom:16px;font-size:clamp(32px,3.8vw,46px)}.volunteer-copy p{color:var(--muted)}.volunteer-chip{color:var(--red);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid #e1252a59;border-radius:999px;margin-top:24px;padding:8px 14px;font-size:11px;display:inline-flex}.volunteer-photos{grid-template-columns:1.15fr .85fr;gap:12px;display:grid}.volunteer-photos img{object-fit:cover;border-radius:var(--radius);width:100%;height:420px}.skills{background:var(--white);border-top:1px solid var(--rule);padding:80px 0}.skills-grid{grid-template-columns:1.1fr .9fr .9fr .9fr;gap:32px;display:grid}.skills h2{font-size:clamp(36px,4vw,48px)}.skill-col h3{align-items:flex-start;gap:10px;margin-bottom:18px;font-size:21px;line-height:1.25;display:flex}.skill-col h3 .icon{flex:none;width:22px;height:22px}.skill-col ul{list-style:none}.skill-col li{border-top:1px solid var(--rule);color:var(--muted);padding:8px 0;font-size:14.5px}.method{background:var(--navy);color:#fff;padding:96px 0}.method-grid{grid-template-columns:.9fr 1.2fr;align-items:start;gap:64px;display:grid}.method h2{font-size:clamp(34px,3.8vw,48px)}.method-steps{grid-template-columns:repeat(3,1fr);gap:28px;list-style:none;display:grid;position:relative}.method-steps:before{content:"";background:#fffcf72e;height:1px;position:absolute;top:13px;left:8%;right:8%}.method-steps li{border:none;flex-direction:column;gap:12px;padding:0;display:flex}.method-steps span{font-family:var(--mono);letter-spacing:.14em;color:#fffcf78c;z-index:1;background:var(--navy);width:fit-content;padding-top:0;padding-right:12px;font-size:13px;position:relative}.method-steps h3{margin-bottom:6px;font-size:26px}.method-steps p{color:#fffcf7ad}.contact{color:#fff;min-height:520px;scroll-margin-top:var(--header);align-items:center;display:flex;position:relative;overflow:hidden}.contact-media{position:absolute;inset:0}.contact-media img{object-fit:cover;width:100%;height:100%}.contact-media:after{content:"";background:linear-gradient(90deg,#08131db8 0%,#08131d61 52%,#08131d38 100%);position:absolute;inset:0}.contact-grid{width:min(var(--wrap), calc(100% - (var(--gutter) * 2)));grid-template-columns:1.15fr .85fr;align-items:center;gap:48px;padding:72px 0;display:grid;position:relative}.contact h2{text-shadow:0 2px 24px #08131d66;max-width:16ch;font-size:clamp(32px,3.8vw,48px)}.contact-panel{background:0 0;padding:8px 0 0}.contact-panel ul{margin-bottom:22px;list-style:none}.contact-panel li{border-bottom:1px solid #fffcf71f;padding:12px 0}.contact-panel span{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#fffcf78c;margin-bottom:4px;font-size:10.5px;display:block}.contact-panel a,.contact-panel strong{font-family:var(--serif);color:#fff;font-size:22px;font-weight:400}.footer{background:var(--navy);color:#fffcf79e;padding:28px 0}.footer .brand-mark,.footer .brand-name{color:#fff}.footer-inner{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.footer-inner>*{min-width:0}.footer-nav{flex-wrap:wrap;gap:12px 16px;font-size:13px;display:flex}.footer-copy{font-family:var(--mono);letter-spacing:.06em;text-align:right;font-size:11px}.drawer{background:var(--paper);border:none;width:min(420px,100%);height:100%;max-height:100%;margin:0 0 0 auto;padding:24px 24px 40px}.drawer::backdrop,.dialog::backdrop{background:#08131d80}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.drawer-title{font-size:28px}.icon-btn{border:1px solid var(--rule);border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.drawer-nav{flex-direction:column;display:flex}.drawer-nav a{font-family:var(--serif);border-bottom:1px solid var(--rule);padding:10px 0;font-size:28px}.drawer-cv{width:100%;margin-top:28px}.drawer-lang{margin-top:24px}.drawer-lang button[aria-current=true]{background:#141c2714}.cv-stage{color:#fff;background:#070d14;border:none;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:0;overflow:hidden}.cv-stage[open]{flex-direction:column;animation:.42s cubic-bezier(.16,1,.3,1) cv-enter;display:flex}.cv-stage::backdrop{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#05090eb8;animation:.28s cv-fade}@keyframes cv-enter{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes cv-fade{0%{opacity:0}to{opacity:1}}.cv-stage-bar{border-bottom:1px solid #fffcf714;justify-content:space-between;align-items:center;gap:16px;padding:18px 28px;display:flex}.cv-stage-identity{align-items:center;gap:14px;min-width:0;display:flex}.cv-stage-identity .brand-mark{color:#fff;flex:none}.cv-kicker{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#fffcf78c;margin-bottom:4px;font-size:10px}.cv-stage-bar h2{color:#fff;font-size:clamp(18px,2vw,26px)}.cv-stage-actions{align-items:center;gap:12px;display:flex}.cv-counter{font-family:var(--mono);letter-spacing:.14em;color:#fffcf78c;font-size:11px}.cv-close{color:#fff;border-color:#fffcf72e}.cv-reader{background:radial-gradient(900px 320px at 50% 0,#1658cf24,#0000 58%),#070d14;flex:1;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:8px;min-height:0;padding:28px 20px 36px;display:grid}.cv-nav{color:#fff;border:1px solid #fffcf729;border-radius:50%;justify-self:center;place-items:center;width:48px;height:48px;display:grid}.cv-nav:hover{background:#fffcf714}.cv-nav:disabled{opacity:.28;cursor:default}.cv-page{background:#fff;border-radius:8px;place-self:start center;width:min(780px,100%);max-height:calc(100vh - 160px);margin:0 auto;overflow:auto;box-shadow:0 32px 80px #00000073}.cv-page[hidden]{display:none}.cv-page img{width:100%;height:auto}@media (width<=1600px){:root{--wrap:1400px;--gutter:56px}}@media (width<=1200px){:root{--wrap:1120px;--gutter:40px}.hero-copy{padding-bottom:96px}.pillar-row{margin-top:-28px}}@media (width<=1100px){.nav{gap:16px}.skills-grid{grid-template-columns:1fr 1fr}.skills-grid>div:first-child{grid-column:1/-1}}@media (width<=1024px){.exp-layout,.method-grid,.contact-grid{grid-template-columns:1fr}.exp-texture{opacity:.45;width:100%}.method-steps{grid-template-columns:1fr;gap:28px}.method-steps:before{display:none}.footer-inner{grid-template-columns:1fr}.footer-copy{text-align:left}.case,.case-drono{grid-template-columns:1fr 1fr}.case-panel{padding:28px 24px}}@media (width<=900px){.experience h2 br,.nav,.topbar-actions .btn-ghost,.topbar-actions .btn-primary{display:none}.menu-toggle{display:grid}.hero-grid,.volunteer-grid,.projects-head,.case,.case-drono{grid-template-columns:1fr}.case,.case-media,.case-mosaic{min-height:0}.case-media,.case-mosaic{order:-1;min-height:280px}.case-mosaic{grid-template-rows:140px 140px}.case-panel{padding:24px 22px 26px}.case-features{grid-template-columns:1fr}.case-panel .btn{align-self:stretch}.hero h1 span:nth-child(2){white-space:normal}.hero-photo,.hero-photo img{min-height:340px}.hero-photo:after{background:linear-gradient(180deg, var(--paper) 0%, #f4f1ea00 22%)}.photo-badge{display:none}.pillar-row{grid-template-columns:1fr;margin-top:22px}.volunteer-photos,.skills-grid{grid-template-columns:1fr}.volunteer-photos img{height:240px}.cv-reader{grid-template-columns:44px minmax(0,1fr) 44px;padding:16px 10px 24px}.cv-page{width:100%;max-height:calc(100vh - 140px)}}@media (width<=640px){:root{--gutter:20px;--header:68px}.wrap,.topbar-inner,.contact-grid{width:min(var(--wrap), calc(100% - 40px))}.brand-name{display:none}.hero h1{font-size:36px}.hero h1 span{white-space:normal}.contact-panel a,.contact-panel strong{word-break:break-word;font-size:20px}.exp-timeline li{padding-left:20px}.cv-stage-bar{flex-wrap:wrap;padding:14px 16px}.cv-counter{order:3;width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.cv-stage[open],.cv-stage::backdrop{animation:none}}
