@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pixelify-sans-latin-400-normal-DLrIX9QE.woff2)format("woff2"),url(/assets/pixelify-sans-latin-400-normal-JapMNN6Z.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pixelify-sans-latin-700-normal-D3Xxx3QE.woff2)format("woff2"),url(/assets/pixelify-sans-latin-700-normal-BctWAS0u.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--wall:#151515;--ink:#e0cfa3;--navigation:#ded3b4;--control:#171714;--focus:#ffedb0;color:var(--ink);background:var(--wall);font-synthesis:none;text-rendering:optimizelegibility;font-family:Pixelify Sans,monospace}*{box-sizing:border-box}html{scroll-behavior:auto}body{min-width:280px;margin:0}a{color:inherit}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--focus);outline-offset:5px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--control);padding:12px 16px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:16px}.scroll-section{pointer-events:none;min-height:100svh;position:relative}.projection-stage{isolation:isolate;background:var(--wall);pointer-events:none;position:fixed;inset:0;overflow:hidden}.wall-texture,.film-texture,.projection-shutter{position:absolute;inset:0}.wall-texture{image-rendering:pixelated;background-position:50%;background-size:cover}.film-texture{background-position:50%;background-size:cover}.film-svg{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.film-source{visibility:hidden;pointer-events:none;width:1440px;height:960px;position:absolute}.projection-content{padding:max(96px, env(safe-area-inset-top)) clamp(24px, 6vw, 100px) max(96px, env(safe-area-inset-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(18px,4.167vh,40px);display:flex;position:absolute;inset:0}.projected-title,.projected-role{flex-wrap:wrap;justify-content:center;column-gap:0;line-height:1.15;display:flex}.projected-title{letter-spacing:-.01em;max-width:1100px;font-size:clamp(28px,4.167vw,60px);font-weight:700}.projected-role{font-size:clamp(20px,2.48vw,35px);font-weight:400}.projected-word{white-space:nowrap}.word-space{white-space:pre;width:.32em}.glyph{opacity:.92;background-image:linear-gradient(var(--ink), var(--ink)), linear-gradient(#ffffffb8, #ffffffb8), var(--wall-image);background-blend-mode:multiply, normal;background-size:100% 100%, 100% 100%, var(--texture-size,1440px 960px);background-position:0 0, 0 0, var(--texture-position,center);color:#0000;-webkit-background-clip:text;background-clip:text;display:inline-block}.projection-shutter{opacity:0;background:#000;transition:opacity .1s linear}.projection-stage[data-phase=outgoing] .projection-shutter{opacity:.08}.projection-stage[data-phase=advance] .projection-shutter{opacity:.42}.projection-stage[data-phase=advance] .projection-content{opacity:0}.reel-boundary{opacity:0;background:#dcd0ae29;width:100%;height:3px;position:absolute;top:-5%;left:0;box-shadow:0 5px #00000040}.projection-stage[data-phase=advance] .reel-boundary{animation:.1s linear both reel-advance}@keyframes reel-advance{0%{opacity:0;transform:translateY(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(110vh)}}@media (width<=600px){.projected-title{font-size:clamp(24px,6.667vw,28px)}.projected-role{font-size:clamp(20px,4.8vw,24px)}}@media (height<=480px) and (orientation:landscape){.projected-title{font-size:clamp(24px,6vh,32px)}.projected-role{font-size:18px}.projection-content{gap:12px;padding-top:64px;padding-bottom:74px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation:none!important}.reel-boundary{display:none}.projection-shutter{transition:none}}@media (forced-colors:active){.projection-stage{background:canvas}.wall-texture,.film-texture,.reel-boundary,.projection-shutter{display:none}.glyph{color:canvastext;opacity:1;background:0 0}}.sound-control{z-index:5;top:max(20px, env(safe-area-inset-top));right:max(20px, env(safe-area-inset-right));width:44px;min-height:44px;font:inherit;color:var(--navigation);background:var(--control);cursor:pointer;border:1px solid;place-items:center;padding:10px;display:grid;position:fixed}.sound-control:disabled{cursor:wait;opacity:.7}.sound-control svg{width:22px;height:22px}.projection-content:not([data-section=intro]){gap:28px;padding-block:84px 54px}.projection-content:not([data-section=intro]) .projected-title{font-size:clamp(28px,3vw,42px)}.section-copy{text-align:left;color:#f3e9cd;pointer-events:auto;scrollbar-width:thin;scrollbar-color:#a69773 transparent;width:min(1120px,100%);min-height:0;padding:4px 12px 20px;font-family:Pixelify Sans,monospace;font-size:19px;line-height:1.55;overflow:auto}.section-copy p{margin:0 0 16px}.section-copy h3{margin:0 0 8px;font-family:Pixelify Sans,monospace;font-size:25px;font-weight:400;line-height:1.3}.section-copy .lead{font-size:23px;line-height:1.55}.about-copy,.contact-copy{max-width:690px;margin-inline:auto}.personal-note{align-items:center;gap:10px;font-size:17px;display:flex}.project-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.project-story{border-top:1px solid #a6977370;min-width:0;padding-top:18px}.section-copy .project-tagline{letter-spacing:.025em;font-size:16px}.section-copy .impact{font-family:Pixelify Sans,monospace;font-size:18px}.section-copy details{margin-block:16px}.section-copy summary{cursor:pointer;text-underline-offset:5px;min-height:44px;padding-block:10px;text-decoration:underline}.section-copy details[open] summary{margin-bottom:8px}.other-work,.education{border-top:1px solid #a6977370;padding-top:10px}.tech-list{flex-wrap:wrap;gap:10px 16px;display:flex}.tech-badge{align-items:center;gap:7px;font-family:Pixelify Sans,monospace;font-size:18px;line-height:1.35;display:inline-flex}.tech-icon{flex-shrink:0;width:20px;height:20px;display:inline-block}.brand-icon{-webkit-mask:var(--brand-icon) center / contain no-repeat;mask:var(--brand-icon) center / contain no-repeat;background:currentColor}.skill-grid{grid-template-columns:repeat(2,1fr);gap:28px 48px;display:grid}.skill-grid h3{margin-bottom:14px}.section-copy .skill-note{margin:12px 0 0;font-size:16px}.experience-list{grid-template-columns:1fr 1fr;gap:24px 48px;display:grid}.experience-list article{border-left:1px solid #a6977370;padding-left:20px}.section-copy .work-date{letter-spacing:.05em;margin-bottom:8px;font-size:16px}.section-copy .job-title{margin-bottom:10px;font-family:Pixelify Sans,monospace;font-size:18px}.contact-links{flex-direction:column;align-items:flex-start;gap:12px;margin-block:28px;display:flex}.contact-links a{overflow-wrap:anywhere;text-underline-offset:5px;align-items:center;gap:12px;min-height:44px;display:flex}.currently-intro{text-align:center}.currently-grid{grid-template-columns:repeat(3,1fr);gap:40px;margin-top:32px;display:grid}.currently-grid article{border-top:1px solid #a6977370;padding-top:24px}.currently-grid .symbol-icon{width:30px;height:30px;margin-bottom:16px}.section-copy .interest-label{text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px;font-size:16px}.projection-stage[data-phase=incoming] .section-copy{animation:.4s ease-out both copy-arrive}.projection-stage[data-phase=outgoing] .section-copy{opacity:0;pointer-events:none;transition:opacity .11s}@keyframes copy-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.projection-content:not([data-section=intro]){gap:22px;padding:86px 22px 32px}.projection-content:not([data-section=intro]) .projected-title{font-size:28px}.section-copy{padding-inline:2px 10px;font-size:18px}.section-copy .lead{font-size:19px}.project-grid,.experience-list,.skill-grid,.currently-grid{grid-template-columns:1fr;gap:26px}.tech-badge{font-size:17px}.currently-grid{margin-top:24px}.section-copy h3{font-size:24px}}@media (height<=480px) and (orientation:landscape){.projection-content:not([data-section=intro]){gap:16px;padding-block:60px 24px}}@media (forced-colors:active){.section-copy{color:canvastext}.brand-icon{background:canvastext}}.section-copy{flex:1;padding:0 0 44px;position:relative;overflow:visible}.horizontal-viewport{scrollbar-width:none;touch-action:pan-y;cursor:grab;width:100%;height:100%;overflow:auto hidden}.horizontal-viewport:active{cursor:grabbing}.horizontal-viewport::-webkit-scrollbar{display:none}.horizontal-columns{column-count:1;column-width:auto;column-fill:auto;column-gap:32px;width:min(480px,100%);height:100%;padding:4px 8px}.horizontal-columns .project-grid,.horizontal-columns .experience-list,.horizontal-columns .skill-grid,.horizontal-columns .currently-grid{margin:0;display:block}.horizontal-columns article,.horizontal-columns .skill-grid>section{break-inside:avoid-column;margin-bottom:24px}.horizontal-columns .about-copy,.horizontal-columns .contact-copy{max-width:none;margin:0}.horizontal-columns p,.horizontal-columns h3,.horizontal-columns .tech-badge{break-inside:avoid-column}.horizontal-columns .tech-list{margin-bottom:20px}.reading-toggle{width:40px;height:40px;color:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;position:absolute;bottom:0;right:0}.reading-toggle svg{fill:currentColor;width:18px;height:18px}@media (width<=760px){.horizontal-columns{column-gap:24px}.section-copy{padding:0 0 44px}}.horizontal-columns .project-grid>article,.horizontal-columns .experience-list>article:nth-child(2n),.horizontal-columns .skill-grid>section:nth-child(2n){break-after:column}.projection-content[data-section=experience] .section-copy{width:min(900px,100%)}.static-copy{flex:0 auto;padding:4px 12px 20px;overflow:auto}.horizontal-columns:has(.skill-grid){columns:auto;width:max-content;padding-right:0}.horizontal-columns .skill-grid{gap:32px;display:flex}.skill-column{flex:0 0 min(480px,100vw - 60px);width:min(480px,100vw - 60px)}.skill-column>section{margin-bottom:24px}@media (height<=650px){.skill-column{flex-basis:520px;width:520px}}.project-support{break-inside:avoid-column}.sync-explanation{scrollbar-width:thin;overscroll-behavior:contain;max-height:180px;padding-right:10px;overflow-y:auto}.horizontal-columns .experience-list>article>p:last-child{margin-bottom:0}.horizontal-columns:has(.project-grid){columns:auto;gap:32px;width:max-content;display:flex}.horizontal-columns .project-grid{flex-shrink:0;gap:32px;height:100%;display:flex}.horizontal-columns .project-story{flex-direction:column;flex:0 0 min(520px,100vw - 60px);width:min(520px,100vw - 60px);height:100%;margin:0;padding-top:12px;display:flex}.project-story>h3,.project-story>p{flex-shrink:0}.project-story .project-support{flex-direction:column;flex:1;min-height:0;display:flex}.project-story .project-support details{margin-block:8px}.project-story .project-support details[open]{flex:1;min-height:70px}.project-story .sync-explanation{height:calc(100% - 60px);max-height:none}.project-story .project-support .tech-list{flex-shrink:0;margin-bottom:0}.horizontal-columns .other-work{flex:0 0 360px;width:360px;max-height:100%;margin:0;overflow-y:auto}.horizontal-columns .experience-list>article{margin-bottom:4px}.horizontal-columns .experience-list .work-date{margin-bottom:2px;line-height:1.25}.horizontal-columns .experience-list h3{margin-bottom:2px}.horizontal-columns .experience-list .job-title{margin-bottom:6px;line-height:1.2}@media (height<=650px){.horizontal-columns .project-story{flex-basis:640px;width:640px}}.project-story .project-support details[open]{position:relative}.project-story .sync-explanation{height:auto;position:absolute;inset:60px 0 0}@media (height<=650px){.horizontal-columns .project-story{flex-basis:800px;width:800px}.project-story>p{margin-bottom:8px}.horizontal-columns .project-story{padding-top:8px}.project-story>p{margin-bottom:4px;line-height:1.35}.project-story .project-support details{margin-block:4px}.project-story summary{margin-bottom:0;padding-block:6px}.project-story .sync-explanation{top:48px}.project-story .tech-list{gap:6px 12px}}
