@font-face{font-family:Determination;src:url(/assets/determination-p2S8OsiJ.ttf) format("truetype");font-display:swap}:root{color-scheme:light;--bg: #f3efe6;--surface: #ebe6dc;--surface-raised: #fffaf1;--surface-soft: rgba(255, 250, 241, .88);--text: #0b0d0f;--text-soft: #353b3e;--muted: #636c70;--blue: #0068a8;--blue-strong: #004e80;--blue-soft: rgba(0, 104, 168, .09);--line: rgba(11, 13, 15, .14);--line-strong: rgba(11, 13, 15, .3);--canvas-faint: rgba(0, 104, 168, .22);--canvas-grid: rgba(11, 15, 18, .08);--backdrop: rgba(28, 33, 37, .48);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-ui: var(--font-body);--font-display: "Instrument Serif", Georgia, serif;--font-pixel: "Determination", monospace;--type-label: .75rem;--type-meta: .8125rem;--header-height: 80px;--page-padding: clamp(24px, 6vw, 88px);--section-space: clamp(76px, 9vw, 128px);--content-width: 1100px;--fast: .18s;--medium: .3s;--slow: .5s;--ease: cubic-bezier(.22, 1, .36, 1);--focus: 2px solid var(--blue)}html[data-theme=dark]{color-scheme:dark;--bg: #070809;--surface: #0c0e10;--surface-raised: #111417;--surface-soft: rgba(17, 20, 23, .86);--text: #f2eee6;--text-soft: #babbb7;--muted: #89918d;--blue: #38a9f4;--blue-strong: #168bd4;--blue-soft: rgba(56, 169, 244, .1);--line: rgba(242, 238, 230, .14);--line-strong: rgba(242, 238, 230, .3);--canvas-faint: rgba(56, 169, 244, .22);--canvas-grid: rgba(242, 238, 230, .07);--backdrop: rgba(3, 4, 5, .82)}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--line-strong) var(--bg)}body{isolation:isolate;min-width:280px;margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--medium),color var(--medium)}body.modal-open,body.arcade-open,body.menu-open{overflow:hidden}::selection{background:var(--blue-soft);color:var(--text)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:var(--focus);outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pixel-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px}.pixel-icon svg{width:100%;height:100%}.ui-label,.section-index{color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.1em;line-height:1.5;text-transform:uppercase}.section-index{color:var(--blue)}.section-title{margin-top:16px;font-family:var(--font-display);font-size:clamp(46px,6vw,68px);font-weight:400;letter-spacing:-.025em;line-height:1.05}.section-subtitle{margin-top:16px;color:var(--text-soft);font-size:15px}:is(.hero-role,.hero-education,.about-v3-bio,.dossier-desc,.impact-text,.project-description,.contact-note) strong{color:var(--blue);font-weight:600}.about-v3-bio em,.contact-note em{color:var(--text);font-family:var(--font-display);font-size:1.2em;font-style:italic;font-weight:400;letter-spacing:-.01em;line-height:1.2}.impact-text strong{font-variant-numeric:tabular-nums}.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .8s var(--ease);transition-delay:var(--reveal-delay, 0ms)}.motion-ready .reveal.visible{opacity:1;transform:translateY(0)}.site-header{position:fixed;inset:0 0 auto;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:var(--header-height);padding:0 var(--page-padding);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);transition:transform var(--medium) var(--ease),background-color var(--medium)}.desktop-nav{display:flex;align-items:center;gap:30px}.desktop-nav-right{justify-content:flex-end}.desktop-nav a{position:relative;padding:10px 0;color:var(--muted);font-size:13px;transition:color var(--fast)}.desktop-nav a:hover,.desktop-nav a.active{color:var(--text)}.desktop-nav .nav-link:after{position:absolute;inset:auto 0 4px;height:1px;background:var(--blue);content:"";transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}.desktop-nav .nav-link:hover:after,.desktop-nav .nav-link.active:after{transform:scaleX(1)}.logo{display:flex;align-items:center;justify-content:center;width:52px;height:52px}.wordmark{font-family:var(--font-display);font-size:40px;letter-spacing:-.06em;line-height:1}.wordmark-dot{color:var(--blue)}.logo img{width:44px;height:44px;object-fit:contain}.theme-toggle{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);transition:background var(--fast),color var(--fast)}.theme-toggle:hover{background:var(--surface);color:var(--text)}.menu-toggle,.mobile-menu{display:none}section{position:relative;scroll-margin-top:var(--header-height)}main>section[id]:not(.contact),#experience{min-height:calc(100svh - var(--header-height));min-height:calc(100dvh - var(--header-height))}#home{min-height:100svh;min-height:100dvh}.home{display:grid;align-items:center;isolation:isolate;overflow:clip;padding:calc(var(--header-height) + 80px) var(--page-padding) 48px}.home-content{position:relative;width:min(100%,var(--content-width));margin:auto}.hero-kicker{margin-bottom:40px;color:var(--muted);font-size:12px;letter-spacing:.015em}.hero-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:80px;align-items:end}.home h1{font-family:var(--font-display);font-size:clamp(90px,11.5vw,152px);font-weight:400;letter-spacing:-.04em;line-height:.88}.home h1>span{display:block}.hero-surname{margin-top:10px;font-style:italic}.name-period{color:var(--blue)}.arcade-letter-trigger{display:inline-block;user-select:none;touch-action:manipulation;cursor:pointer}.arcade-letter-trigger.signal-step,.logo.signal-step{animation:secret-signal .32s ease}@keyframes secret-signal{50%{color:var(--blue);transform:translateY(-2px)}}.hero-intro{padding-bottom:4px}.site-background,.background-poster,.not-found-page #particles-js{position:fixed;inset:0;z-index:-1;display:block;width:100%;height:100%;pointer-events:none}.site-background,.background-poster{mask-image:radial-gradient(ellipse 70% 65% at 40% 45%,#00000059,#000000a6 55%,#000)}.background-poster{color:var(--blue);--contour-alpha: .18;--contour-anchor-alpha: .3}[data-theme=dark] .background-poster{--contour-alpha: .22;--contour-anchor-alpha: .36}.background-poster .contour-line{opacity:var(--contour-alpha)}.background-poster .contour-anchor{opacity:var(--contour-anchor-alpha)}.background-poster path{vector-effect:non-scaling-stroke}.site-background[data-ready=true]+.background-poster{display:none}.hero-role{max-width:380px;color:var(--text);font-size:clamp(19px,2vw,24px);line-height:1.5;letter-spacing:-.035em}.hero-role a{color:var(--blue);text-decoration:underline;text-decoration-color:var(--canvas-faint);text-underline-offset:4px}.hero-education{margin-top:22px;color:var(--muted);font-size:14px;line-height:1.65}.hero-links{display:flex;align-items:center;gap:30px;margin-top:34px;font-size:13px}.hero-connect{display:inline-flex;align-items:center;gap:20px;padding-bottom:5px;border-bottom:1px solid var(--line-strong)}.hero-connect span{transition:transform var(--fast)}.hero-connect:hover span{transform:translateY(3px)}.hero-resume{color:var(--muted)}.hero-resume:hover{color:var(--text)}.hero-footnote{display:flex;align-items:center;justify-content:space-between;margin-top:84px;padding:22px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.hero-footnote a{color:var(--text-soft)}.hero-footnote a:hover{color:var(--blue)}.about,.experience,.projects{padding:var(--section-space) var(--page-padding)}.projects{padding-bottom:clamp(32px,4vw,48px)}.about-v3-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:100px;align-items:center;max-width:var(--content-width);margin:auto}.about-headline{margin-top:18px;font-family:var(--font-display);font-size:clamp(36px,4.3vw,52px);font-weight:400;letter-spacing:-.02em;line-height:1.12}.about-v3-bio{display:grid;max-width:58ch;gap:18px;margin-top:30px;color:var(--text-soft);font-size:15px;line-height:1.85}.about-blue-link{color:var(--blue);font-weight:500;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--blue) 45%,transparent);text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-color var(--fast)}.about-blue-link:hover,.about-blue-link:focus-visible{text-decoration-color:var(--blue)}.about-coordinates{display:none}.about-v3-portrait-wrapper{width:100%}.portrait-blueprint-frame{border-radius:5px;overflow:hidden}.portrait-image-container{aspect-ratio:1122 / 1402;background:var(--surface)}.portrait-image-container picture{display:block;height:100%}.portrait-image-container img{width:100%;height:100%;object-fit:cover;transform:translateY(var(--portrait-drift, 0px)) scale(1.055);transition:filter .6s var(--ease)}.vertical-name-tag{margin-top:12px;color:var(--muted);font-size:11px}.about-indexing-strip{max-width:var(--content-width);margin:56px auto 0;padding-bottom:28px;border-bottom:1px solid var(--line)}.indexing-container,.indexing-list{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.indexing-label{margin-right:20px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.indexing-list{margin:0;padding:0;list-style:none;color:var(--text-soft);font-size:12px}.slash{color:var(--line-strong)}.experience>.section-index,.experience>.section-title,.experience>.section-subtitle,.experience-archive-layout,.mini-sections-layout{max-width:var(--content-width);margin-right:auto;margin-left:auto}.experience-archive-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;margin-top:48px}.shelf-category-label{margin-bottom:16px}.experience-shelf{position:relative;display:grid}.shelf-item-group{border-bottom:1px solid var(--line)}.shelf-item{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;width:100%;gap:3px 8px;padding:17px 14px;border:0;border-radius:3px;background:transparent;text-align:left;color:var(--text-soft);transition:background var(--fast),color var(--fast)}.shelf-item:hover{background:var(--surface)}.shelf-item.active{background:var(--blue-soft);color:var(--text)}.shelf-item-company{grid-column:1;grid-row:1;color:inherit;font-size:16px;font-weight:500;letter-spacing:-.025em}.shelf-item-role{grid-column:1;grid-row:2;color:var(--muted);font-size:11px;line-height:1.6}.shelf-item-date{grid-column:2;grid-row:1;align-self:center;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.shelf-item-tab-accent{display:none}.dossier-wrapper{min-width:0}.dossier-panel{min-height:610px}.dossier-shadow-page{display:none}.dossier-card{display:none;grid-template-columns:1fr;gap:22px}.dossier-card.active{display:grid}.dossier-header{position:relative;padding-top:28px}.dossier-label{position:absolute;top:0;left:0;color:var(--blue)}.dossier-title{font-size:29px;font-weight:500;letter-spacing:-.05em;line-height:1.25}.dossier-company{display:inline-block;margin-top:6px;color:var(--blue);font-size:15px}.dossier-company:after{content:" ↗";font-size:12px}.dossier-meta{margin-top:8px;color:var(--muted);font-size:11px}.dossier-desc{max-width:66ch;color:var(--text-soft);font-size:14px;line-height:1.8}.dossier-visual{display:grid;justify-items:center;align-content:center;gap:20px;min-width:0;min-height:190px;padding:24px;border-radius:6px;background:var(--surface)}.experience-canvas{width:min(100%,520px);height:auto;aspect-ratio:42 / 17}.experience-scene-caption{display:flex;justify-content:center;gap:16px;color:var(--muted);font-size:9px;letter-spacing:.065em}.experience-scene-caption span{transition:color .24s}.experience-scene-caption span:not(:last-child):after{content:"→";margin-left:16px;color:var(--line-strong)}.experience-scene-caption span.active{color:var(--blue)}.dossier-enter{animation:dossier-enter .32s var(--ease)}@keyframes dossier-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dossier-impact{padding-top:2px}.section-label{margin-bottom:12px;color:var(--muted);font-size:10px}.impact-grid{display:grid;gap:9px}.impact-item{display:flex;align-items:flex-start;gap:11px}.impact-item .pixel-icon{width:16px;height:16px;flex-basis:16px;color:var(--blue);margin-top:3px}.impact-text{color:var(--text-soft);font-size:13px;line-height:1.6}.dossier-tech{padding-top:16px;border-top:1px solid var(--line)}.tech-tags{display:flex;flex-wrap:wrap;gap:5px 14px}.tech-tag{color:var(--muted);font-size:11px}.mobile-details-drawer{display:none}.ramp-internship{border-top:1px solid var(--line)}.ramp-internship summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0 0;cursor:pointer;list-style:none}.ramp-internship summary::-webkit-details-marker{display:none}.ramp-internship-label{display:grid;gap:4px}.ramp-internship-label strong{color:var(--text-soft);font-size:12px;font-weight:500}.ramp-internship-label>span{color:var(--muted);font-size:11px}.ramp-internship summary>.pixel-icon{color:var(--muted);transition:transform .3s var(--ease)}.ramp-internship[open] summary>.pixel-icon{transform:rotate(180deg)}.ramp-internship-body{display:grid;gap:18px;padding-top:20px}.ramp-internship-body .dossier-visual{min-height:160px}.mini-sections-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:72px;padding-top:32px;border-top:1px solid var(--line)}.mini-section-title{margin-bottom:22px;color:var(--muted)}.mini-list-row{border-bottom:1px solid var(--line)}.mini-list-header{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:16px;width:100%;padding:15px 0;border:0;background:transparent;color:var(--text);text-align:left}.mini-icon-cell{display:none}.mini-text-cell{display:grid;gap:3px}.mini-item-name{font-size:13px;font-weight:500}.mini-item-desc,.mini-meta-cell{color:var(--muted);font-size:10px}.mini-chevron{color:var(--muted);width:16px;height:16px;transition:transform var(--medium)}.mini-list-header[aria-expanded=true] .mini-chevron{transform:rotate(180deg)}.mini-list-details{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--medium),opacity var(--medium)}.mini-list-row.open .mini-list-details{grid-template-rows:1fr;opacity:1}.mini-list-desc{min-height:0;overflow:hidden;color:var(--text-soft);font-size:12px;line-height:1.75}.mini-list-row.open .mini-list-desc{padding-bottom:18px}.page-ending{display:flex;flex-direction:column}.page-ending>.contact,.page-ending>.footer{width:min(calc(100% - 2 * var(--page-padding)),var(--content-width));margin:0 auto}.contact{max-width:var(--content-width);margin:0 auto;padding:48px 0 30px;border-top:1px solid var(--line)}.contact-content{display:flex;flex-direction:column}.contact-title{order:-1;margin:16px 0 18px;font-family:var(--font-display);font-size:clamp(58px,8vw,96px);font-weight:400;letter-spacing:-.035em;line-height:1.1}.contact-note{max-width:470px;color:var(--text-soft);font-size:14px}.contact-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:36px}.contact-icons>a,.contact-icons>button{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;transition:border-color var(--fast)}.contact-icons>a:hover,.contact-icons>button:hover{border-color:var(--blue)}.contact-icon-frame{display:grid;place-items:center;color:var(--blue)}.contact-symbol{width:28px;height:28px;fill:currentColor}.contact-copy{display:grid;gap:2px}.contact-label{font-size:14px}.contact-meta{color:var(--muted);font-size:11px}.contact-action{color:var(--blue);font-size:17px}.return-top{display:inline-flex;align-items:center;gap:12px;margin-top:32px;font-size:10px}.return-top .pixel-icon{width:14px;height:14px}.return-top:hover{color:var(--text)}.section-watermark{display:none}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;max-width:var(--content-width);margin:0 auto;padding:18px 0 24px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.footer .ui-label{font-size:10px;letter-spacing:0}.email-modal{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--medium),visibility var(--medium)}.email-modal.open{opacity:1;visibility:visible;pointer-events:auto}.email-modal-backdrop{position:absolute;inset:0;background:var(--backdrop);backdrop-filter:blur(6px)}.email-modal-card{position:relative;z-index:1;width:min(100%,510px);padding:52px 40px 40px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);transform:translateY(10px);transition:transform var(--medium) var(--ease)}.email-modal.open .email-modal-card{transform:translateY(0)}.email-modal-card h2{margin-top:18px;font-family:var(--font-display);font-size:60px;font-weight:400;line-height:1}.email-modal-card>a{display:inline-block;margin-top:26px;color:var(--blue);font-size:14px}.modal-close,.arcade-close{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--muted)}.modal-close{position:absolute;top:16px;right:16px}.modal-close:hover,.arcade-close:hover{color:var(--text);border-color:var(--line-strong)}.modal-actions{display:flex;gap:12px;margin-top:34px}.modal-actions button,.modal-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--text-soft);font-size:12px}.modal-actions a{border-color:var(--blue);background:var(--blue);color:var(--bg)}.projects-editorial-heading,.project-list{max-width:var(--content-width);margin-left:auto;margin-right:auto}.projects-editorial-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:40px}.projects-editorial-heading .section-title{margin:14px 0 0;font-family:var(--font-display);font-size:clamp(2.7rem,4.6vw,4.3rem);font-weight:400;line-height:1.08;letter-spacing:-.035em;text-transform:none}.projects-intro{max-width:270px;margin:0 0 5px;color:var(--text-soft);font-size:.94rem;line-height:1.65}.project-list{border-top:1px solid var(--line-strong, var(--line))}.project-row{display:grid;grid-template-columns:160px minmax(0,.85fr) minmax(0,1.5fr) auto;align-items:center;column-gap:32px;padding:28px 0;border-bottom:1px solid var(--line)}.project-art{display:block;width:160px;height:auto;aspect-ratio:3 / 2;color:var(--blue);background:radial-gradient(ellipse,var(--bg) 55%,transparent 85%)}.project-category{margin:0 0 7px;color:var(--muted);font-size:.69rem;font-weight:500;letter-spacing:.075em;line-height:1.4;text-transform:uppercase}.project-identity h3{margin:0;font-family:var(--font-body);font-size:1.15rem;font-weight:500;line-height:1.4;letter-spacing:-.025em}.project-tools{margin:9px 0 0;color:var(--muted);font-size:.77rem;line-height:1.7}.project-description{margin:1px 0 0;color:var(--text-soft);font-size:.92rem;line-height:1.75}.project-source,.project-status{margin-top:2px;padding:3px 0;font-size:.78rem;line-height:1.5;white-space:nowrap}.project-source{display:inline-flex;align-items:center;gap:9px;color:var(--text);text-decoration:none}.project-source span{transition:transform .18s ease}.project-source:hover{color:var(--accent, var(--blue))}.project-source:hover span{transform:translate(2px,-2px)}.project-status{color:var(--muted)}@media(max-width:860px){.project-row{grid-template-columns:144px minmax(0,1fr) auto;gap:12px 24px;align-items:start}.project-art{width:144px;grid-column:1;grid-row:1 / span 2;align-self:center}.project-identity{grid-column:2;grid-row:1}.project-description{grid-column:2 / -1;grid-row:2}.project-source,.project-status{grid-column:3;grid-row:1;justify-self:end;margin-top:24px}}@media(max-width:560px){.projects-editorial-heading{display:block;margin-bottom:34px}.projects-intro{max-width:100%;margin-top:20px}.project-row{grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:17px;padding:28px 0}.project-art{grid-column:1 / -1;grid-row:1;width:min(100%,180px);align-self:start}.project-identity{grid-column:1;grid-row:2}.project-description{grid-column:1 / -1;grid-row:3}.project-identity h3{font-size:1.16rem}.project-description{font-size:.89rem}.project-source,.project-status{grid-column:2;grid-row:2}}@media(prefers-reduced-motion:reduce){.project-source span{transition:none}}.reading-progress{position:absolute;inset:auto 0 -1px;height:1px;overflow:hidden;pointer-events:none}.reading-progress span{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(var(--page-progress, 0));transform-origin:left}.home h1>.hero-name-line{overflow:hidden;padding:.08em .06em .24em;margin:-.08em -.06em -.24em}.home h1>.hero-surname{margin-top:.01em}.hero-name-line--first{transform:translateY(var(--name-drift-first, 0px))}.hero-name-line--last{transform:translateY(var(--name-drift-last, 0px))}.name-line-text{display:block}.motion-ready .hero-name-line--first .name-line-text{animation:name-arrive 1s var(--ease) both;animation-delay:.1s}.motion-ready .hero-name-line--last .name-line-text{animation:name-arrive 1.1s var(--ease) both;animation-delay:.23s}@keyframes name-arrive{0%{transform:translateY(115%)}to{transform:translateY(0)}}.hero-intro{--reveal-delay: .33s}.hero-footnote{--reveal-delay: .45s}.wordmark-dot{display:inline-block;transition:transform .35s var(--ease)}.logo:hover .wordmark-dot{transform:translateY(-3px)}.theme-toggle .pixel-icon{transition:transform .4s var(--ease)}.theme-toggle:hover .pixel-icon{transform:rotate(18deg)}.hero-connect{position:relative}.hero-connect:after{position:absolute;inset:auto 0 -1px;height:1px;background:var(--blue);content:"";transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.hero-connect:hover:after,.hero-connect:focus-visible:after{transform:scaleX(1)}.hero-resume span,.hero-footnote a span{display:inline-block;transition:transform .35s var(--ease)}.hero-resume:hover span,.hero-footnote a:hover span{transform:translate(3px,-3px)}.shelf-selection{position:absolute;top:0;left:0;width:100%;pointer-events:none;border:1px solid color-mix(in srgb,var(--blue) 16%,transparent);border-radius:4px;background:var(--blue-soft);transition:transform .44s var(--ease),height .44s var(--ease),opacity .18s}.shelf-selection.is-positioning{transition:none}@media(min-width:901px){.experience-shelf:has(.shelf-selection) .shelf-item.active{background:transparent}.experience-shelf:has(.shelf-selection) .shelf-item.active .shelf-item-company{color:var(--blue)}}.project-row{position:relative;isolation:isolate}.project-row:before{position:absolute;inset:10px -16px;z-index:-1;border-radius:6px;background:var(--blue-soft);content:"";opacity:0;transform:scale(.992);transition:opacity .3s,transform .4s var(--ease)}.project-identity,.project-source{transition:transform .35s var(--ease),color .25s}.project-identity h3{transition:color .25s}.project-row:hover:before,.project-row:focus-within:before{opacity:.6;transform:scale(1)}.project-row:hover .project-identity,.project-row:focus-within .project-identity{transform:translate(4px)}.project-row:hover h3,.project-row:focus-within h3{color:var(--blue)}.project-source:hover span,.project-row:focus-within .project-source span{transform:translate(3px,-3px)}.contact-icons>a,.contact-icons>button{transition:transform .35s var(--ease),border-color .25s}.contact-action{transition:transform .35s var(--ease)}.contact-icons>a:hover,.contact-icons>button:hover{transform:translateY(-3px)}.contact-icons>a:hover .contact-action{transform:translate(3px,-3px)}.contact-icons>button:hover .contact-action{transform:rotate(90deg)}@media(hover:none){.project-row:hover .project-identity,.contact-icons>a:hover,.contact-icons>button:hover{transform:none}}@media(max-width:900px){.shelf-selection{display:none}}@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none}.hero-name-line--first,.hero-name-line--last,.portrait-image-container img{transform:none}}.arcade-modal{width:min(640px,calc(100vw - 24px));max-width:none;max-height:calc(100svh - 24px);margin:auto;padding:0;overflow:visible;border:0;background:transparent;color:var(--text)}.arcade-modal::backdrop{background:var(--backdrop)}.arcade-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;max-height:calc(100svh - 24px);padding:14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-raised)}.arcade-shell-header,.arcade-shell-footer{display:flex;align-items:center;justify-content:space-between}.arcade-shell-header{gap:20px;padding:2px 2px 12px}.arcade-shell-header .ui-label{color:var(--blue);font-size:9px}.arcade-shell-header h2{margin-top:6px;font-family:var(--font-pixel);font-size:clamp(24px,4vw,34px);font-weight:400;line-height:1}.arcade-game-frame{position:relative;width:min(100%,520px);max-height:calc(100svh - 160px);margin:auto;overflow:hidden;aspect-ratio:3 / 4;border:1px solid var(--line-strong);background:#031733}.indy-game-iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.arcade-shell-footer{gap:10px;padding:11px 3px 0;color:var(--muted);font-size:9px;letter-spacing:.06em}@media(min-width:1600px){.home{padding-top:calc(var(--header-height) + 120px)}.hero-footnote{margin-top:110px}}@media(max-width:1180px){.desktop-nav{gap:22px}.hero-layout{gap:48px}.about-v3-layout{gap:64px}.experience-archive-layout{grid-template-columns:220px minmax(0,1fr);gap:40px}.contact,.footer{margin-left:var(--page-padding);margin-right:var(--page-padding)}}@media(max-width:900px){:root{--header-height: 68px}.site-header{grid-template-columns:1fr auto}.desktop-nav{display:none}.logo{justify-self:start;justify-content:start}.wordmark{font-size:36px}.menu-toggle{display:grid;width:44px;height:44px;place-content:center;gap:7px;padding:0;border:0;background:transparent}.menu-toggle span{display:block;width:22px;height:1px;background:var(--text);transition:transform var(--medium)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-menu{position:fixed;inset:var(--header-height) 0 0;z-index:99;display:grid;grid-template-rows:auto 1fr auto auto;padding:32px var(--page-padding);background:var(--bg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--medium),visibility var(--medium),transform var(--medium)}.mobile-menu.open{opacity:1;visibility:visible;transform:translateY(0)}.mobile-menu nav{display:grid;align-content:center}.mobile-menu nav a{display:grid;grid-template-columns:36px 1fr;padding:12px 0;border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:clamp(28px,6vw,42px);line-height:1.15}.mobile-menu nav a span{padding-top:6px;color:var(--muted);font-family:var(--font-body);font-size:10px}.mobile-menu-footer{margin-top:16px;color:var(--muted);font-size:11px}.home{padding-top:calc(var(--header-height) + 64px)}.hero-layout{gap:36px;grid-template-columns:1fr .85fr}.home h1{font-size:clamp(74px,13vw,118px)}.hero-kicker{font-size:11px;margin-bottom:32px}.hero-role{font-size:18px}.hero-education{font-size:12px}.hero-links{gap:22px;font-size:12px;margin-top:24px}.hero-footnote{margin-top:64px}.about-v3-layout{grid-template-columns:minmax(0,1fr) 240px;gap:40px;align-items:start}.about-v3-bio{font-size:14px}.about-v3-portrait-wrapper{margin-top:48px}.experience-archive-layout{display:block;margin-top:32px}.shelf-category-label,.dossier-wrapper{display:none}.experience-shelf{border-top:1px solid var(--line)}.shelf-item{grid-template-columns:1fr auto 20px;gap:3px 16px;padding:20px 14px}.shelf-item:after{grid-column:3;grid-row:1 / span 2;align-self:center;content:"+";color:var(--muted);font-size:20px;font-weight:400}.shelf-item[aria-expanded=true]:after{content:"−"}.shelf-item-company{font-size:18px}.shelf-item-date{grid-row:1 / span 2;font-size:11px}.shelf-item-role{font-size:12px}.mobile-details-drawer{display:none}.mobile-details-drawer.is-open{display:block}.mobile-details-drawer>.dossier-card{padding:28px 14px 32px;min-height:0}.dossier-header{padding-top:0}.dossier-label{position:static;display:block;margin-bottom:10px}.dossier-title{font-size:26px}.dossier-visual{min-height:160px}.mini-sections-layout{gap:32px;margin-top:48px}.mini-meta-cell{display:none}.mini-list-header{grid-template-columns:minmax(0,1fr) 16px}.contact-icons{gap:20px}.not-found-shell{grid-template-columns:1fr}}@media(max-width:620px){.home{padding-top:calc(var(--header-height) + 44px)}.hero-kicker{max-width:240px;font-size:10px;line-height:1.7;margin-bottom:32px}.hero-layout{grid-template-columns:1fr;gap:34px}.home h1{font-size:clamp(82px,22vw,130px)}.hero-intro{padding-bottom:0}.hero-role{max-width:100%;font-size:19px}.hero-education{font-size:12px;margin-top:16px}.hero-links{margin-top:25px}.hero-footnote{margin-top:38px;padding:20px 0;font-size:10px}.about-v3-layout{grid-template-columns:1fr;gap:32px}.about-headline{font-size:40px}.about-v3-bio{margin-top:24px;font-size:14px;line-height:1.8}.about-v3-portrait-wrapper{max-width:250px;margin:0 auto;text-align:center}.about-indexing-strip{margin-top:40px}.indexing-container{display:grid;gap:14px}.indexing-list{font-size:11px;gap:9px}.dossier-visual{padding:20px 8px;min-height:160px}.experience-scene-caption{font-size:8px;gap:10px}.experience-scene-caption span:not(:last-child):after{margin-left:10px}.mini-sections-layout{grid-template-columns:1fr;gap:40px}.contact{padding-top:40px}.contact-title{font-size:68px}.contact-icons{grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.contact-note{font-size:13px}.contact-icons>a,.contact-icons>button{grid-template-columns:24px minmax(0,1fr) auto;gap:10px}.contact-symbol{width:24px;height:24px}.return-top{margin-top:32px}.footer{padding:18px 0 24px}.email-modal-card{padding:52px 24px 28px}.email-modal-card>a{font-size:12px}.pokemon-grid,.pokemon-stats{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}.not-found-page{display:flex;flex-direction:column;min-height:100svh;min-height:100dvh}.not-found-header,.not-found-shell,.not-found-footer{width:min(calc(100% - 2 * var(--page-padding)),var(--content-width));margin-right:auto;margin-left:auto}.not-found-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;min-height:var(--header-height);border-bottom:1px solid var(--line)}.not-found-header .logo{justify-content:flex-start}.not-found-nav{display:flex;align-items:center;gap:24px;color:var(--muted);font-size:12px}.not-found-nav>a{display:inline-flex;align-items:center;gap:8px;padding:12px 0;transition:color var(--fast)}.not-found-nav>a:hover{color:var(--text)}.not-found-shell{flex:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:clamp(48px,6vw,80px);padding:clamp(44px,6vw,76px) 0}.not-found-card{min-width:0;padding:20px 0;border:0;background:transparent}.not-found-topline{margin-bottom:28px}.not-found-topline .ui-label{color:var(--blue)}.not-found-code{color:var(--blue);font-family:var(--font-display);font-size:clamp(88px,9vw,128px);font-weight:400;font-variant-numeric:lining-nums;letter-spacing:-.055em;line-height:.85}.not-found-card h1{max-width:12ch;margin-top:24px;font-family:var(--font-display);font-size:clamp(46px,4.7vw,64px);font-weight:400;letter-spacing:-.035em;line-height:1.06;text-wrap:balance}.not-found-copy{max-width:42ch;margin-top:22px;color:var(--text-soft);font-size:14px;line-height:1.8}.not-found-copy+.not-found-copy{margin-top:14px}.not-found-copy a,.not-found-footnote a{color:var(--blue);text-decoration:underline;text-decoration-color:var(--canvas-faint);text-underline-offset:3px}.not-found-copy strong{color:var(--text);font-weight:500}.not-found-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:30px}.not-found-home,.not-found-work{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:10px 0;font-size:13px;line-height:1.5;transition:color var(--fast),border-color var(--fast)}.not-found-home{border-bottom:1px solid var(--line-strong);color:var(--text)}.not-found-work{color:var(--muted)}.not-found-home:hover,.not-found-work:hover{border-color:var(--blue);color:var(--blue)}.not-found-actions .pixel-icon{width:16px;height:16px;flex-basis:16px}.not-found-footnote{max-width:42ch;margin-top:24px;color:var(--muted);font-size:12px;line-height:1.75}.pokemon-card{min-width:0;padding:clamp(24px,2.5vw,32px);border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg) 94%,transparent)}.pokemon-card>.ui-label{color:var(--blue);font-size:10px}.pokemon-card h2{margin-top:12px;font-family:var(--font-display);font-size:clamp(34px,3.3vw,42px);font-weight:400;letter-spacing:-.025em;line-height:1.1;text-transform:none}.pokemon-portrait{display:grid;place-items:center;min-height:220px;margin:12px 0 20px}.pokemon-portrait>img{grid-area:1 / 1;display:block;width:min(100%,220px);height:220px;object-fit:contain;image-rendering:auto}.pokemon-loading{grid-area:1 / 1;max-width:26ch;color:var(--muted);font-size:12px;line-height:1.7;text-align:center}.pokemon-grid,.pokemon-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 18px;margin:0;padding:0;background:transparent;list-style:none}.pokemon-grid p{display:grid;align-content:start;gap:4px;min-width:0}.pokemon-grid strong,.pokemon-stats strong{color:var(--muted);font-size:10px;font-weight:500;letter-spacing:.035em;line-height:1.5}.pokemon-grid span{color:var(--text-soft);font-size:12px;line-height:1.6;overflow-wrap:anywhere}.pokemon-stats{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.pokemon-stats li{display:flex;flex-direction:column;justify-content:space-between;min-width:0;gap:5px}.pokemon-stats span{color:var(--text);font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:-.025em;line-height:1.25}.pokemon-card.is-error .pokemon-portrait{min-height:0;margin-top:24px}.pokemon-card.is-error img,.pokemon-card.is-error .pokemon-grid,.pokemon-card.is-error .pokemon-stats{display:none}.not-found-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;padding:20px 0 26px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.6}.not-found-footer a:hover{color:var(--blue)}@media(max-width:900px){.not-found-shell{grid-template-columns:minmax(0,1fr);align-items:start;gap:40px;padding:48px 0}.not-found-card{padding:0}.not-found-card h1{max-width:16ch}.pokemon-card{width:100%;max-width:620px}}@media(max-width:620px){.not-found-header,.not-found-shell,.not-found-footer{width:calc(100% - 48px)}.not-found-nav{gap:16px;font-size:11px}.not-found-shell{gap:34px;padding:40px 0}.not-found-topline{margin-bottom:24px}.not-found-code{font-size:88px}.not-found-card h1{max-width:12ch;margin-top:20px;font-size:46px}.not-found-copy{font-size:13px}.not-found-actions{gap:10px 24px;margin-top:24px}.pokemon-card{padding:24px 20px}.pokemon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pokemon-grid,.pokemon-stats{gap:16px 14px}.not-found-footer{align-items:flex-start;flex-direction:column;gap:6px;padding:18px 0 24px}}
