.floating-control{font-family:var(--mono);letter-spacing:.06em;border:1px solid var(--line2);color:var(--text2);background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:blur(8px);border-radius:6px;align-items:center;gap:7px;min-height:34px;padding:7px 11px;font-size:12px;display:flex}.floating-control:hover{color:var(--acc);border-color:var(--acc)}.language-switcher svg{border-radius:2px;display:block}.theme-switcher{justify-content:center;min-width:36px;padding:7px 10px}.theme-switcher svg{display:block}.hero{padding:clamp(64px,11vw,140px) 0 clamp(30px,4vw,50px)}.identity{align-items:center;gap:clamp(16px,2.6vw,26px);margin-bottom:24px;display:flex}.identity img{object-fit:cover;border:1px solid var(--line2);border-radius:14px;flex:none;width:clamp(76px,10vw,116px);height:clamp(76px,10vw,116px);display:block}.identity h1{font-size:var(--h1);letter-spacing:-.022em;margin:0 0 8px;font-weight:600;line-height:1.05}.role{font-family:var(--mono);letter-spacing:.04em;color:var(--acc);margin:0;font-size:13px}.contact-pills{flex-wrap:wrap;gap:8px;margin-bottom:0;display:flex}.contact-pills a{border:1px solid var(--line2);color:var(--text2);border-radius:20px;align-items:baseline;gap:8px;padding:7px 14px;font-size:13.5px;display:inline-flex}.contact-pills span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-size:10px}.copy{gap:14px;max-width:64ch;display:grid}.copy p{color:var(--text2);margin:0}.hero-highlights{gap:10px;max-width:68ch;margin:clamp(22px,3vw,30px) 0;padding:0;list-style:none;display:grid}.hero-highlights li{grid-template-columns:10px minmax(0,1fr);gap:8px;font-size:clamp(15px,1.4vw,17px);line-height:1.5;display:grid}.hero-highlights li:before{content:"";background:var(--acc);border-radius:50%;width:4px;height:4px;margin-top:.7em}.facts{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px clamp(20px,3vw,40px);margin:clamp(30px,4vw,44px) 0 0;padding-top:clamp(18px,2.4vw,24px);display:grid}.facts div{display:grid}.facts dt{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;font-size:10px}.facts dd{margin:0;font-size:14px;line-height:1.4}.section{padding:clamp(34px,5vw,64px) 0 0}.principles-title{flex-wrap:wrap;align-items:baseline;gap:18px;margin-bottom:clamp(18px,2.6vw,28px);display:flex}.principles-title p{font-family:var(--mono);color:var(--text3);margin:0;font-size:12px}.themes{gap:clamp(12px,1.8vw,18px);display:grid}.theme-card{border:1px solid var(--line);border-left:2px solid var(--accline);background:var(--surf);border-radius:10px;flex-wrap:wrap;gap:clamp(16px,3vw,34px);padding:clamp(20px,3vw,30px);display:flex}.theme-number{font-family:var(--mono);letter-spacing:-.03em;color:var(--acc);flex:0 0 56px;font-size:40px;line-height:.9}@media (width<=760px){.theme-number{flex-basis:auto;font-size:30px}}.theme-card>div:nth-child(2){flex:330px;min-width:0}.theme-card h3{font-size:var(--h3);letter-spacing:-.01em;max-width:24ch;margin:0 0 10px;font-weight:600;line-height:1.28}.theme-card p{color:var(--text2);max-width:58ch;margin:0}.evidence{flex:250px;align-content:start;gap:8px;min-width:220px;display:grid}.evidence div{border:1px solid var(--line);background:var(--bg2);border-radius:6px;padding:9px 11px}.evidence b{font-family:var(--mono);letter-spacing:.04em;color:var(--acc);margin-bottom:3px;font-size:11px;display:block}.evidence span{color:var(--text2);font-size:13px;line-height:1.45}@media (width<=760px){.evidence{min-width:0}}.lightbox-backdrop{z-index:100;background:var(--scrim);backdrop-filter:blur(3px);place-items:center;padding:clamp(16px,4vw,40px);animation:.16s ease-out lightbox-fade;display:grid;position:fixed;inset:0}.lightbox-dialog{flex-direction:column;align-items:center;gap:14px;max-width:min(92vw,520px);display:flex;position:relative}.lightbox-image{border:1px solid var(--line2);background:var(--bg2);border-radius:14px;width:auto;max-width:100%;height:auto;max-height:82vh;display:block}.lightbox-caption{text-align:center;max-width:52ch;color:var(--text2);margin:0;font-size:13px;line-height:1.5}.lightbox-close{z-index:1;border:1px solid var(--accline);background:var(--surf);width:36px;height:36px;color:var(--acc);font-family:var(--mono);border-radius:50%;place-items:center;font-size:20px;line-height:1;display:grid;position:absolute;top:-14px;right:-14px}.lightbox-close:hover{border-color:var(--acc);color:var(--acc)}.lightbox-close:focus-visible{outline:2px solid var(--acc);outline-offset:2px}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lightbox-backdrop{animation:none}}@media (width<=760px){.lightbox-close{top:-8px;right:-8px}}.tags-block{margin-top:22px}.label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin:0 0 9px;font-size:10.5px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags .tag{font-family:var(--mono);border:1px solid var(--line);color:var(--text2);background:var(--bg2);appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;margin:0;padding:3px 7px;font-size:11px;line-height:1.5;transition:color .15s,border-color .15s,background-color .15s}@media (hover:hover){.tags .tag:hover{color:var(--text);border-color:var(--accline);background:var(--accdim)}}.tags .tag:focus-visible{outline:1px solid var(--accline);outline-offset:2px}.tags .tag:active{transform:translateY(1px)}.tags .tag.is-copied,.tags .tag.is-copied:hover{color:var(--acc);border-color:var(--acc);background:var(--accdim);transition:none}.project-card{border:1px solid var(--line);background:var(--surf);border-radius:10px;scroll-margin-top:26px;overflow:hidden}.project-header{padding:clamp(12px, 1.8vw, 15px) var(--card);border-bottom:1px solid var(--line);background:var(--surf2);font-family:var(--mono);color:var(--text3);flex-wrap:wrap;align-items:baseline;gap:12px;font-size:12px;display:flex}.project-header>span:first-child{color:var(--acc);letter-spacing:-.02em;font-size:21px;line-height:1}.accent{color:var(--acc)}.kind{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--accline);color:var(--acc);border-radius:3px;padding:2px 7px;font-size:10.5px}.period{margin-left:auto;font-size:11.5px}.project-content{padding:clamp(20px, 2.8vw, 30px) var(--card)}.project-content h3{font-size:var(--h3);letter-spacing:-.012em;max-width:30ch;margin:0 0 6px;font-weight:600;line-height:1.24}.project-role{font-family:var(--mono);color:var(--text3);margin:0 0 20px;font-size:12px}.project-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px 26px;margin:0 0 22px;padding:14px 0;display:flex}.project-stat{flex-direction:column;gap:1px;display:flex}.project-stat b{letter-spacing:-.01em;font-size:19px;font-weight:600;line-height:1.15}.project-stat span{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text3);font-size:10.5px}.project-links{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.project-links a{border:1px solid var(--accline);font-family:var(--mono);letter-spacing:.03em;border-radius:20px;padding:6px 13px;font-size:11.5px}.media-block{margin-top:22px}.media-list{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.media-shot-button{border:1px solid var(--line2);background:var(--bg2);border-radius:10px;width:clamp(75px,8vw,100px);padding:0;line-height:0;display:block;position:relative;overflow:hidden}.media-shot-button img,.media-shot-button video{aspect-ratio:1080/2276;object-fit:cover;width:100%;height:auto;display:block}.media-shot-button:hover{border-color:var(--acc)}.media-shot-button:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.media-placeholder{aspect-ratio:9/19;border:1px dashed var(--line2);background:var(--bg2);width:clamp(104px,13vw,128px);color:var(--text3);font-family:var(--mono);border-radius:12px;place-items:center;font-size:10.5px;display:grid}.details-button{width:auto;min-height:58px;margin:0 var(--card) clamp(20px, 2.8vw, 30px);border:1px solid var(--accline);text-align:left;background:var(--accdim);font-family:var(--mono);letter-spacing:.02em;color:var(--acc2);border-radius:9px;align-items:center;gap:13px;padding:10px 12px;font-size:13px;transition:color .16s,background-color .16s,border-color .16s,transform .16s,box-shadow .16s;display:flex}.details-button:hover{color:var(--text);border-color:var(--acc);background:color-mix(in srgb, var(--acc) 18%, var(--surf));transform:translateY(-1px);box-shadow:0 8px 22px #00000024}.details-button:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.details-button-icon{background:var(--acc);width:34px;height:34px;color:var(--bg);font-family:var(--sans);border-radius:7px;flex:none;place-items:center;font-size:18px;font-weight:700;line-height:1;display:grid;overflow:hidden}.details-button-icon span{transition:transform .18s}.details-button:hover .details-button-icon span{transform:translateY(2px)}.details-button[aria-expanded=true] .details-button-icon span{transform:rotate(180deg)}.details-button[aria-expanded=true]:hover .details-button-icon span{transform:rotate(180deg)translateY(2px)}.details-button-label{font-weight:600}.details-button small{font-family:var(--mono);color:var(--text3);white-space:nowrap;margin-left:auto;font-size:11.5px;transition:color .16s}.details-button:hover small{color:var(--text2)}.details{padding:clamp(22px, 2.8vw, 30px) var(--card) clamp(26px, 3.2vw, 34px);border-top:1px solid var(--line);background:var(--bg2);gap:22px;display:grid}.detail-group{border:1px solid var(--line);background:var(--surf);border-radius:8px;padding:clamp(16px,2.2vw,22px)}.detail-group h4{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--acc);border-bottom:1px solid var(--line);margin:0 0 12px;padding-bottom:9px;font-size:11px}.detail-group ul{gap:9px;margin:0;padding:0;list-style:none;display:grid}.detail-group li{color:var(--text2);gap:10px;font-size:14.4px;line-height:1.54;display:flex}.detail-group li:before{content:"—";color:var(--line2);font-family:var(--mono)}@media (width<=760px){.period{width:100%;margin-left:0}.details-button{align-items:center}.details-button small{white-space:normal;text-align:right}}@media (prefers-reduced-motion:reduce){.details-button,.details-button-icon span,.details-button small{transition:none}.details-button:hover{transform:none}}.projects-section{padding-bottom:clamp(36px,5vw,64px)}.section-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:clamp(18px,2.6vw,26px);display:flex}.section-title>p{font-family:var(--mono);color:var(--text3);max-width:46ch;margin:0;font-size:12px}.projects-layout{flex-wrap:wrap;align-items:flex-start;gap:clamp(16px,2.4vw,30px);display:flex}.project-nav{border:1px solid var(--line);background:var(--surf);border-radius:10px;flex:0 200px;min-width:186px;max-height:calc(100vh - 44px);position:sticky;top:22px;overflow:auto}.project-nav header{border-bottom:1px solid var(--line);background:var(--surf2);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text3);justify-content:space-between;align-items:baseline;gap:8px;padding:11px 12px 9px;font-size:10px;display:flex;position:sticky;top:0}.project-nav header b{color:var(--acc)}.project-nav a{color:var(--text2);border:0;border-left:2px solid #0000;border-radius:0 6px 6px 0;padding:9px 10px;font-size:13.5px;display:block}.project-nav a.active{border-left-color:var(--acc);color:var(--acc);background:var(--accdim)}.project-nav a>span{font-family:var(--mono);color:var(--text3);margin-right:8px;font-size:11px}.project-nav a.active>span{color:inherit}.project-nav small{font-family:var(--mono);color:var(--text3);margin-top:3px;font-size:10.5px;display:block}.projects{flex:470px;gap:clamp(14px,2.2vw,22px);min-width:0;display:grid}.mobile-nav{display:none}@media (width<=760px){.project-nav{display:none}.mobile-nav{z-index:34;margin-bottom:14px;display:block;position:sticky;top:8px}.mobile-nav>button{border:1px solid var(--line2);background:color-mix(in srgb, var(--surf) 94%, transparent);text-align:left;border-radius:9px;align-items:center;gap:10px;width:100%;min-height:48px;padding:11px 14px;display:flex}.mobile-nav button b{font-family:var(--mono);color:var(--acc);font-size:11px}.mobile-nav button span{font-family:var(--mono);color:var(--text3);margin-left:auto}.mobile-nav>div{border:1px solid var(--line2);background:var(--surf);border-radius:9px;gap:2px;margin-top:6px;padding:6px;display:grid}.mobile-nav a{color:var(--text2);border:0;border-radius:6px;align-items:baseline;gap:10px;padding:11px 12px;font-size:14px;display:flex}.mobile-nav small{font-family:var(--mono);color:var(--text3);margin-left:auto;font-size:10.5px}}.skills-section h2{margin-bottom:20px}.skills{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(12px,1.8vw,16px);display:grid}.skills article{border:1px solid var(--line);background:var(--surf);border-radius:10px;padding:clamp(18px,2.4vw,24px)}.skills h3{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--acc);border-bottom:1px solid var(--line);margin:0 0 12px;padding-bottom:9px;font-size:11px}.skills .tags-block{margin:0}.contact-section{border:1px solid var(--line2);background:var(--surf);border-radius:10px;margin-top:clamp(36px,5vw,64px);padding:clamp(24px,3.4vw,38px)}.contact-section h2{margin-bottom:14px}.contact-section>p{max-width:52ch;color:var(--text2);margin:0 0 22px}.contact-section>div{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.contact-section a{border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:6px;padding:13px 15px;display:block}.contact-section a span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:5px;font-size:10.5px;display:block}.early-experience h2{margin-bottom:clamp(18px,2.6vw,28px)}.early-experience-list{border-top:1px solid var(--line)}.early-experience-list article{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,.32fr) minmax(0,1fr);gap:clamp(18px,4vw,52px);padding:clamp(22px,3vw,30px) 0;display:grid}.early-experience-period{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--acc);margin:0;font-size:11px;line-height:1.5}.early-experience-list h3{font-size:var(--h3);margin:0 0 8px;font-weight:600;line-height:1.3}.early-experience-list article>div{max-width:65ch}.early-experience-list article>div p{color:var(--text2);margin:0}.early-experience-list article>div p+p{margin-top:10px}@media (width<=620px){.early-experience-list article{grid-template-columns:1fr;gap:8px}}.interests-section h2{margin-bottom:clamp(18px,2.6vw,28px)}.interests-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.interests-grid article{border:1px dashed var(--line2);background:color-mix(in srgb, var(--surf) 88%, var(--accdim));border-radius:10px;padding:clamp(18px,2.4vw,24px)}.interests-grid h3{font-family:var(--mono);letter-spacing:.02em;color:var(--acc);margin:0 0 8px;font-size:13px;font-weight:500}.interests-grid p{color:var(--text2);margin:0}@media (width<=620px){.interests-grid{grid-template-columns:1fr}}:root{--bg:#070a08;--bg2:#0f1613;--surf:#1a2420;--surf2:#212d28;--line:#3a4d43;--line2:#4e6659;--text:#e9efea;--text2:#b3c0b8;--text3:#8b9b92;--acc:#4ef08a;--acc2:#9bffc4;--accdim:#4ef08a1f;--accline:#4ef08a57;--scrim:#040705ed;--h1:clamp(34px, 6vw, 60px);--h2:clamp(22px, 3vw, 31px);--h3:clamp(19px, 2.3vw, 24px);--body:clamp(15.5px, 1.35vw, 17px);--pad:clamp(18px, 4vw, 40px);--card:clamp(20px, 3.2vw, 36px);--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}:root[data-theme=light]{--bg:#e4ebe6;--bg2:#f2f6f3;--surf:#fff;--surf2:#eef3f0;--line:#c2cec7;--line2:#a3b2aa;--text:#0d1512;--text2:#46544d;--text3:#59685f;--acc:#0a7a3c;--acc2:#0a7a3c;--accdim:#0a7a3c17;--accline:#0a7a3c4d;--scrim:#0d1512db}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);overflow-x:hidden}body{background:var(--bg);font-family:var(--sans);font-size:var(--body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.62}:root[data-theme=light] body{background-color:#0000;background-image:radial-gradient(1100px 620px at 88% -8%,#0a7a3c1c,#0000 62%),radial-gradient(760px 520px at 4% 24%,#0a7a3c0f,#0000 66%),linear-gradient(#fff 0%,#eaf0ec 44%,#dde5e0 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}:root[data-theme=dark] body{background-color:#0000;background-image:radial-gradient(900px 560px at 92% -6%,#4ef08a12,#0000 64%),linear-gradient(#0a0f0c 0%,#070a08 60%,#050807 100%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box}a{color:var(--acc);border-bottom:1px solid var(--accline);text-decoration:none}a:hover{color:var(--acc2);border-bottom-color:var(--acc)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}::selection{background:var(--accdim);color:var(--text)}h2{font-size:var(--h2);letter-spacing:-.01em;align-items:center;gap:12px;margin:0;font-weight:600;display:flex}h2:before{content:"";background:var(--acc);border-radius:2px;flex:none;width:18px;height:2px}.resume{background:var(--bg);min-height:100vh;color:var(--text);position:relative}.background{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.background:after{content:"";background-image:radial-gradient(var(--line) 1px, transparent 1px);opacity:.22;background-size:36px 36px;position:absolute;inset:0}.background>div{background:radial-gradient(circle, var(--accdim) 0%, transparent 70%);border-radius:50%;width:720px;height:720px;position:absolute;top:-240px;right:-220px}.controls{z-index:30;gap:6px;display:flex;position:fixed;top:16px;right:16px}main{z-index:1;max-width:1000px;padding:0 var(--pad) 110px;margin:auto;position:relative}@media (width<=760px){.controls{top:auto;bottom:16px}}
