@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}:root{color:#e4e5d9;font-synthesis:none;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-synthesis:none;background:#171a16;font-family:Space Grotesk,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:5px;outline:2px solid #c3f86b}button:active{transform:translateY(1px)}button:disabled{cursor:wait}::selection{color:#152014;background:#c3f86b}svg{vertical-align:middle;flex-shrink:0}button{padding:0}p,h1,h2,h3{margin:0}button svg,a svg{pointer-events:none}.portfolio{--bg:#171a16;--text:#e4e5d9;--muted:#9ca193;--line:#ffffff20;--accent:#c3f86b;--journey:0;color:var(--text);background:var(--bg)}.portfolio.light{--bg:#e1e4d9;--text:#222a1d;--muted:#555e4d;--line:#202b1926;--accent:#3a581c}.experience{height:340dvh;min-height:1600px}.stage{isolation:isolate;height:100dvh;min-height:600px;position:sticky;top:0;overflow:hidden}.ambient-field{pointer-events:none;background:radial-gradient(at 69% 54%,#52663a29,#0000 55%);position:absolute;inset:0}.stage:after{content:"";z-index:6;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.site-header{z-index:4;border-bottom:1px solid var(--line);height:105px;opacity:clamp(0, calc(1 - var(--journey) * 3), 1);align-items:center;margin:0 4.2%;display:flex;position:relative}.wordmark{letter-spacing:-1.8px;font-size:29px;font-weight:600}.wordmark span{vertical-align:top;letter-spacing:0;margin:5px 0 0 4px;font-size:13px;display:inline-block}.site-header nav{align-items:center;gap:43px;margin-left:auto;display:flex}.site-header nav button,.site-header nav a{align-items:center;gap:9px;font-size:14px;display:flex}.site-header nav button:hover,.site-header nav a:hover{color:var(--accent)}.site-header nav button span{color:var(--muted);align-self:start;font:10px IBM Plex Mono,monospace}.theme-toggle{border:1px solid var(--line);border-radius:50%;place-items:center;width:33px;height:33px;margin-left:34px;display:grid}.hero-copy{z-index:3;opacity:clamp(0, calc(1 - var(--journey) * 4.5), 1);transform:translateY(calc(var(--journey) * -140px));pointer-events:auto;position:absolute;top:25%;left:7%}.hero-intro{letter-spacing:1.5px;color:var(--muted);align-items:center;gap:12px;margin-bottom:28px;font:10px IBM Plex Mono,monospace;display:flex}.intro-line{background:var(--accent);width:22px;height:1px}h1{letter-spacing:-.072em;font-size:clamp(72px,7.1vw,118px);font-weight:500;line-height:.99}.punctuation{color:var(--accent)}.hero-description{color:var(--muted);letter-spacing:-.2px;margin-top:29px;font-size:17px;line-height:1.65}.enter-button{border:1px solid var(--text);align-items:center;gap:38px;margin-top:33px;padding:16px 20px;font-size:14px;transition:background .2s,color .2s;display:flex}.enter-button:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.enter-button svg{transition:transform .25s}.enter-button:hover svg{transform:translate(2px,-2px)}.skip-intro{color:var(--muted);align-items:center;gap:9px;margin-top:18px;font-size:11px;display:flex}.skip-intro:hover{color:var(--text)}.computer-scene{z-index:2;pointer-events:none;opacity:0;transition:opacity 1s;position:absolute;inset:0}.scene-ready .computer-scene{opacity:1}.computer-scene canvas{width:100%;height:100%;display:block}.desk-interactive canvas{pointer-events:auto}.desk-hotspot{z-index:2;pointer-events:auto;border-radius:50%;width:44px;height:44px;position:absolute;transform:translate(-50%,-50%)}.desk-hotspot span{background:var(--text);color:var(--bg);white-space:nowrap;opacity:0;padding:8px 12px;font:10px IBM Plex Mono,monospace;transition:opacity .2s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.desk-hotspot:active{transform:translate(-50%,-50%)}.desk-hotspot:hover span,.desk-hotspot:focus-visible span{opacity:1}.desk-hotspot:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.desk-feedback{max-width:260px;color:var(--accent);margin-top:55px;font:11px/1.6 IBM Plex Mono,monospace;position:absolute;top:23%;right:6.4%}.computer-scene:not(.desk-interactive) .desk-feedback{visibility:hidden}@media (width<=760px){.desk-feedback{text-align:right;max-width:190px;font-size:10px;top:42%;right:6%}}.scene-annotation{z-index:3;color:var(--muted);opacity:clamp(0, calc(1 - var(--journey) * 5), 1);align-items:center;gap:16px;display:flex;position:absolute;top:23%;right:6.4%}.scene-annotation p{font:10px/1.65 IBM Plex Mono,monospace}.scene-annotation svg{color:var(--accent);margin-left:13px}.annotation-line{background:var(--line);width:33px;height:1px}.hero-footer{z-index:4;opacity:clamp(0, calc(1 - var(--journey) * 3), 1);align-items:end;display:flex;position:absolute;bottom:35px;left:4.2%;right:4.2%}.scroll-instruction{align-items:center;gap:12px;display:flex}.scroll-instruction span{letter-spacing:1px;color:var(--muted);font:9px/1.65 IBM Plex Mono,monospace}.scroll-icon{border:1px solid var(--line);border-radius:22px;place-items:center;width:36px;height:48px;display:grid}.hero-footnote{color:var(--muted);font-size:11px;line-height:1.7;position:absolute;left:49%}.sound-button{color:var(--muted);align-items:center;gap:9px;font:10px IBM Plex Mono,monospace;display:flex}.hero-footer .sound-button{min-height:44px;margin-left:auto}.sound-button:hover{color:var(--accent)}.journey-track{z-index:5;background:var(--line);height:2px;position:absolute;bottom:0;left:0;right:0}.journey-track span{background:var(--accent);transform-origin:0;width:100%;height:100%;transform:scaleX(var(--journey));display:block}.journey-caption{z-index:3;opacity:clamp(0, calc(1 - (var(--journey) - .43) * (var(--journey) - .43) * 90), 1);pointer-events:none;transform:translateY(calc((.45 - var(--journey)) * 90px));position:absolute;top:18%;left:8%}.journey-caption p{letter-spacing:-1.5px;font-size:36px}.journey-caption span{letter-spacing:1.5px;color:var(--muted);margin-top:15px;font:9px IBM Plex Mono,monospace;display:block}.loading-state{z-index:3;color:var(--muted);align-items:center;gap:10px;font:11px IBM Plex Mono,monospace;display:flex;position:absolute;bottom:24%;left:65%}.loading-state span{background:var(--accent);width:8px;height:8px;animation:1s steps(2,end) infinite loading}@keyframes loading{50%{opacity:.2}}.skip-link{z-index:30;background:var(--accent);color:var(--bg);padding:15px;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:none}.scene-fallback{text-align:center;z-index:3;position:absolute;top:34%;right:12%}.fallback-symbol{border:7px solid var(--muted);color:var(--accent);box-shadow:0 20px 0 -10px var(--muted);border-radius:24px;padding:30px 60px;font:100px IBM Plex Mono,monospace}.scene-fallback p{color:var(--muted);margin:30px 0 16px;font-size:13px;line-height:1.6}.scene-fallback button{font-size:13px;text-decoration:underline}.inside .stage{pointer-events:none}.desktop{--os-bg:#263125;--os-ink:#c3d3af;--os-dim:#9aa98c;--os-panel:#20281e;--os-line:#80906a55;z-index:10;background:var(--os-bg);color:var(--os-ink);opacity:0;visibility:hidden;transition:opacity .55s,visibility .55s;position:fixed;inset:0;overflow:hidden}.desktop.is-active{opacity:1;visibility:visible}.desktop:before{content:"";pointer-events:none;background-image:radial-gradient(#c5dca529 .7px,#0000 .7px);background-size:5px 5px;position:absolute;inset:0}.desktop.crt-enabled:after{content:"";z-index:6;pointer-events:none;background:repeating-linear-gradient(0deg,#0000000d 0 1px,#0000 1px 4px);position:absolute;inset:0;box-shadow:inset 0 0 160px #06110545}.os-menubar{z-index:3;color:#202b1c;background:#bdcbaa;border-bottom:2px solid #101b11;align-items:center;gap:35px;height:46px;padding:0 24px;font:11px IBM Plex Mono,monospace;display:flex;position:relative}.os-brand{align-items:center;gap:9px;font-size:14px;font-weight:500;display:flex}.os-brand svg{width:21px;height:21px}.os-brand span{margin-left:-5px;font-size:10px;font-weight:400}.os-menu-links{gap:25px;display:flex}.os-menubar button{min-height:32px}.os-menubar button:hover{text-decoration:underline}.os-menu-right{align-items:center;gap:25px;margin-left:auto;display:flex}.os-menu-right svg{font-size:17px}.crt-toggle{font-size:9px}.desktop-wallpaper{text-align:right;color:#a0b88630;pointer-events:none;position:absolute;bottom:17%;right:4.5%}.desktop-wallpaper>span{letter-spacing:-.075em;font-size:clamp(90px,13vw,220px);font-weight:600;line-height:.8}.wallpaper-dot{color:#c3f86b66}.desktop-wallpaper small{letter-spacing:2px;color:#bbcdaa6b;margin-top:26px;font:9px IBM Plex Mono,monospace;display:block}.desktop-icons{z-index:2;gap:23px;display:grid;position:absolute;top:83px;left:28px}.desktop-icons button{flex-direction:column;align-items:center;gap:9px;width:95px;padding:10px 0;display:flex}.desktop-icons button svg{filter:drop-shadow(2px 2px #10200e);width:38px;height:38px}.desktop-icons button span{border:1px solid #0000;padding:3px 5px;font:10px IBM Plex Mono,monospace}.desktop-icons button:hover span,.desktop-icons button.selected span{border:1px dotted var(--os-ink);background:#bbd49a22}.app-window{z-index:3;background:var(--os-panel);border:1px solid #a2b789;flex-direction:column;width:min(950px,76%);height:calc(100% - 184px);max-height:850px;display:flex;position:absolute;top:92px;left:max(155px,15%);overflow:hidden;box-shadow:7px 7px #12200e70,0 28px 90px #0b140b44}.app-window.maximized{width:auto;height:auto;max-height:none;inset:60px 15px 80px}.window-titlebar{color:#1d2a19;cursor:grab;touch-action:none;background:#a8ba91;border-bottom:2px solid #0f1d0f;justify-content:space-between;align-items:center;height:33px;min-height:33px;padding:0 7px 0 12px;display:flex}.window-titlebar:active{cursor:grabbing}.window-title{align-items:center;gap:9px;font:11px IBM Plex Mono,monospace;display:flex}.window-controls{gap:5px;display:flex}.window-controls button{background:#b2c29c;border:1px solid #4c6040;place-items:center;width:21px;height:21px;display:grid;box-shadow:inset 1px 1px #d7e7c2,inset -1px -1px #728461}.window-controls button:hover{background:#d1e0bf}.window-controls svg{width:13px;height:13px}.window-body{overscroll-behavior:contain;scrollbar-color:#829c69 #273021;scrollbar-width:thin;flex:1;min-height:0;overflow:auto}.window-status{border-top:1px solid var(--os-line);height:27px;color:var(--os-dim);background:#232d20;flex-shrink:0;align-items:center;gap:7px;padding:0 12px;font:9px IBM Plex Mono,monospace;display:flex}.window-status>span:last-child{white-space:nowrap;text-overflow:ellipsis;max-width:50%;margin-left:auto;font-size:8px;overflow:hidden}.status-light{background:#c3f86b;border-radius:50%;width:5px;height:5px}.finder-toolbar{border-bottom:1px solid var(--os-line);color:var(--os-dim);justify-content:space-between;padding:12px 24px;font:10px IBM Plex Mono,monospace;display:flex}.finder-toolbar>span:first-child{align-items:center;gap:10px;display:flex}.finder-intro{justify-content:space-between;align-items:end;padding:32px 32px 28px;display:flex}.mono-label{letter-spacing:1px;color:var(--os-dim);font:9px/1.5 IBM Plex Mono,monospace}.finder-intro h2{letter-spacing:-1.5px;margin-top:13px;font-size:35px;font-weight:400;line-height:1.14}.finder-intro>p{color:var(--os-dim);margin:0 7px 2px 20px;font:10px/1.9 IBM Plex Mono,monospace}.project-filters{border-bottom:1px solid var(--os-line);align-items:center;gap:5px;margin:0 32px 22px;padding-bottom:12px;display:flex}.project-filters button{color:var(--os-dim);border:1px solid #0000;padding:7px 11px;font:10px IBM Plex Mono,monospace}.project-filters button.active{color:#d5e5be;background:#afc69516;border-color:#9cb581}.project-filters button:hover{color:#d5e5be}.project-filters button span{margin-left:10px;font-size:8px}.project-filters>svg{color:var(--os-dim);margin-left:auto}.project-grid{grid-template-columns:1fr 1fr;gap:26px 22px;padding:0 32px 30px;display:grid}.project-card{text-align:left;min-width:0}.project-image{background:#141813;border:1px solid #90a17944;height:200px;position:relative;overflow:hidden}.samops-cover-label{color:#fff7ed;text-shadow:0 2px 20px #160d23;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.samops-cover-label strong{letter-spacing:-.055em;font-size:clamp(32px,4vw,60px);font-weight:500}.samops-cover-label span{font-size:11px}.project-image img{object-fit:cover;filter:saturate(.75);width:100%;height:100%;transition:transform .5s,filter .5s}.project-card:hover .project-image img{filter:saturate();transform:scale(1.04)}.project-scribo .project-image{background:#e9ebe7}.project-scribo img{object-fit:contain}.project-card-caption{justify-content:space-between;align-items:center;margin-top:13px;display:flex}.project-card-caption .mono-label{letter-spacing:.5px;font-size:8px}.project-card-caption h3{letter-spacing:-.6px;margin-top:5px;font-size:21px;font-weight:400}.project-card-caption>svg{transition:transform .25s}.project-card:hover .project-card-caption>svg{color:#c3f86b;transform:translate(3px,-3px)}.project-art{background:#151e16;border:1px solid #90a17944;flex-direction:column;justify-content:center;align-items:center;gap:18px;height:170px;display:flex}.project-art small{letter-spacing:1.5px;color:#8da778;font:8px IBM Plex Mono,monospace}.env-brackets{color:#557247;align-items:center;gap:20px;font:50px IBM Plex Mono,monospace;display:flex}.env-brackets span{color:#d0dfbe;font-size:32px}.project-keyboard .project-art{background:#a5b493}.keyboard-letters{color:#293b24;align-items:center;gap:13px;font-size:24px;display:flex}.keyboard-letters>span{background:#d0dac6;border:1px solid #5d7150;border-radius:6px;place-items:center;width:73px;height:73px;font:32px IBM Plex Mono,monospace;display:grid;box-shadow:5px 6px #6b7e5e,inset 0 0 0 5px #b9c6a9}.project-keyboard .project-art small{color:#3a5130}.finder-footer{border-top:1px solid var(--os-line);color:var(--os-dim);justify-content:space-between;margin:0 32px;padding:17px 0;font:9px/1.6 IBM Plex Mono,monospace;display:flex}.os-dock{z-index:4;justify-content:space-between;align-items:center;height:53px;display:flex;position:absolute;bottom:17px;left:25px;right:25px}.back-to-scene{align-items:center;gap:9px;min-height:44px;font:10px IBM Plex Mono,monospace;display:flex}.back-to-scene:hover{color:#c3f86b}.dock-apps{background:#293623;border:1px solid #8d9f7680;gap:4px;padding:6px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:3px 3px #142110}.dock-apps button{border:1px solid #0000;place-items:center;width:43px;height:37px;display:grid;position:relative}.dock-apps button:hover{background:#7c955840;border-color:#9cb581}.dock-apps button.active:after{content:"";background:#c3f86b;width:10px;height:2px;position:absolute;bottom:-3px}.desktop .sound-button{color:var(--os-dim);min-height:44px}.project-detail{padding:25px 32px}.back-button{color:var(--os-dim);align-items:center;gap:8px;margin-bottom:30px;font:10px IBM Plex Mono,monospace;display:flex}.back-button:hover{color:#c3f86b}.detail-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}.detail-heading h2{letter-spacing:-2px;margin-top:8px;font-size:48px;font-weight:400}.retro-button{color:#1d2b17;white-space:nowrap;background:#b5c99b;border:1px solid #d9e8c9;justify-content:center;align-items:center;gap:15px;padding:12px 16px;font:11px IBM Plex Mono,monospace;display:inline-flex;box-shadow:3px 3px #091607}.retro-button:hover{background:#c3f86b}.retro-button svg{width:16px;height:16px}.detail-description{color:#adc09a;margin:12px 0 25px;font-size:19px}.detail-cover{border:1px solid var(--os-line);width:100%;height:auto;margin-bottom:20px;display:block}.detail-copy{max-width:620px;padding:5px 0 25px;font-size:15px;line-height:1.8}.detail-copy small{color:var(--os-dim);margin-top:15px;font:10px/1.7 IBM Plex Mono,monospace;display:block}.tech-list{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.tech-list span{border:1px solid var(--os-line);padding:5px 9px;font:10px IBM Plex Mono,monospace}.about-content{max-width:790px;padding:45px}.about-content h2{letter-spacing:-1.9px;margin:20px 0 28px;font-size:42px;font-weight:400;line-height:1.12}.about-lead{color:#c3f86b;margin-bottom:20px;font-size:24px!important;line-height:1.45!important}.about-content>p:not(.mono-label){max-width:620px;font-size:15px;line-height:1.9}.about-columns{grid-template-columns:1fr 1fr;gap:25px;padding:30px 0;display:grid}.about-columns h3{margin-bottom:14px;font:11px IBM Plex Mono,monospace}.about-columns p{color:var(--os-dim);font:11px/2 IBM Plex Mono,monospace}.terminal-content{color:#b6e390;background:#101a10;min-height:100%;padding:25px;font:12px/1.9 IBM Plex Mono,monospace}.terminal-output p{white-space:pre-wrap;overflow-wrap:anywhere}.terminal-content form{gap:10px;margin-top:12px;display:flex}.terminal-content input{color:#c3f86b;min-width:0;font:inherit;background:0 0;border:0;outline:none;flex:1}.terminal-content label{white-space:nowrap}.contact-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:40px;display:flex}.contact-content>svg{color:#c3f86b;margin-bottom:24px}.contact-content h2{letter-spacing:-2.5px;margin:22px 0;font-size:58px;font-weight:400;line-height:1.05}.contact-content>p:not(.mono-label){color:var(--os-dim);font-size:15px;line-height:1.8}.contact-button{margin-top:25px}.profile-actions,.contact-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.profile-actions{margin:24px 0}.about-background{border-top:1px solid var(--os-line);margin:28px 0}.about-background section{border-bottom:1px solid var(--os-line);padding:22px 0}.about-background h3{margin:12px 0;font-size:18px;font-weight:400}.about-background section>p:last-child{color:var(--os-dim);font-size:14px;line-height:1.7}.contact-links{justify-content:center;gap:18px;margin-top:16px}.contact-links a{align-items:center;gap:5px;font-size:12px;display:inline-flex}.contact-links a:hover{color:#c3f86b}.contact-content>.contact-address{overflow-wrap:anywhere;margin-top:12px;font-size:12px}.contact-content>small{color:var(--os-dim);margin-top:30px;font:10px IBM Plex Mono,monospace}@media (width>=1700px){.hero-copy{top:28%;left:10%}.site-header{margin:0 6%}.hero-footer{left:6%;right:6%}.scene-annotation{right:12%}.app-window{left:calc(50% - 475px)}}@media (width<=1050px){.hero-copy{top:27%;left:5%}h1{font-size:82px}.hero-intro{letter-spacing:1px;font-size:8px}.hero-description{font-size:15px}.scene-annotation{top:22%;right:5%}.scene-annotation svg{display:none}.app-window{width:calc(100% - 160px);left:135px}.finder-intro h2{font-size:28px}.finder-intro>p{font-size:9px}.project-image{height:165px}.project-art{height:150px}.finder-intro,.project-detail{padding:25px}.project-grid{padding:0 25px 25px}.project-filters{margin:0 25px 20px}.finder-footer{margin:0 25px}}@media (width<=760px){.experience{height:280dvh;min-height:1400px}.stage{min-height:650px}.site-header{height:80px;margin:0 6%}.wordmark{font-size:25px}.site-header nav{gap:24px}.site-header nav button,.site-header nav a{font-size:12px}.site-header nav button:first-child span{display:none}.theme-toggle{border:0;width:20px;margin-left:21px}.hero-copy{top:135px;left:7%}.hero-intro{letter-spacing:.7px;margin-bottom:17px;font-size:8px}h1{font-size:73px}.hero-description{margin-top:19px;font-size:14px;line-height:1.6}.enter-button{gap:24px;margin-top:20px;padding:12px 15px;font-size:12px}.skip-intro{margin-top:13px;font-size:10px}.computer-scene{top:250px;bottom:-50px}.scene-annotation{display:none}.hero-footer{bottom:23px;left:7%;right:7%}.hero-footnote{display:none}.scroll-instruction span{font-size:8px}.scroll-icon{width:29px;height:40px}.hero-footer .sound-button{font-size:8px}.loading-state{font-size:9px;bottom:26%;left:50%;transform:translate(-50%)}.journey-caption{top:17%;left:7%}.journey-caption p{font-size:28px}.journey-caption span{font-size:8px}.scene-fallback{top:53%;left:14%;right:14%}.fallback-symbol{padding:10px;font-size:60px}.scene-fallback p{margin:15px 0}.desktop-icons{gap:5px;display:flex;top:63px;left:12px}.desktop-icons button{gap:4px;width:76px}.desktop-icons button svg{width:28px;height:28px}.desktop-icons button span{font-size:8px}.os-menubar{gap:20px;height:43px;padding:0 13px}.os-menu-links{display:none}.os-menu-right{gap:17px}.os-menubar time{font-size:10px}.os-brand{font-size:12px}.app-window{width:calc(100% - 28px);height:calc(100% - 228px);max-height:none;top:153px;left:14px}.app-window.maximized{inset:53px 8px 71px}.finder-toolbar{padding:10px 16px;font-size:8px}.finder-intro{padding:24px 20px}.finder-intro h2{font-size:28px}.finder-intro>p{display:none}.mono-label{font-size:8px}.project-filters{margin:0 20px 18px}.project-grid{grid-template-columns:1fr;gap:25px;padding:0 20px 25px}.project-image{aspect-ratio:1.7;height:auto}.project-art{height:170px}.project-card-caption h3{font-size:22px}.finder-footer{margin:0 20px;font-size:8px}.finder-footer>span{display:none}.os-dock{bottom:9px;left:17px;right:17px}.back-to-scene{gap:0;font-size:0}.back-to-scene svg{width:19px;height:19px}.desktop .sound-button span{display:none}.desktop .sound-button svg{width:19px;height:19px}.dock-apps{padding:4px}.dock-apps button{width:35px;height:32px}.window-status{font-size:8px}.window-status>span:last-child{font-size:7px}.project-detail{padding:20px}.detail-heading h2{letter-spacing:-1.3px;font-size:34px}.detail-heading .retro-button{gap:7px;padding:9px 10px;font-size:9px}.detail-description{font-size:16px}.detail-copy{font-size:13px}.about-content{padding:28px 23px}.about-content h2{letter-spacing:-1.3px;font-size:31px}.about-content>p:not(.mono-label){font-size:13px}.about-lead{font-size:20px!important}.about-columns{gap:20px}.about-columns p{font-size:9px}.about-columns h3{font-size:10px}.contact-content{padding:30px 20px}.contact-content h2{font-size:42px}.contact-content>p:not(.mono-label){font-size:12px}.contact-content .mono-label{font-size:7px}.terminal-content{padding:17px;font-size:10px}.terminal-content form{flex-wrap:wrap;gap:5px}.terminal-content input{min-width:100px}.desktop-wallpaper>span{font-size:110px}}@media (width<=400px){.site-header nav{gap:18px}.site-header nav button:nth-child(2){display:none}.hero-copy{top:122px}h1{font-size:66px}.hero-intro{font-size:7px}.computer-scene{top:280px;bottom:-25px}.hero-description{font-size:13px}.finder-intro h2{font-size:25px}.app-window{width:calc(100% - 18px);left:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.experience{height:100dvh;min-height:650px}.journey-caption,.journey-track{display:none}}@media (width>=761px){.scene-annotation{top:19%}}@media (width>=761px) and (height<=760px){.hero-copy{top:24%}h1{font-size:clamp(66px,6.1vw,88px)}.hero-intro{margin-bottom:21px}.hero-description{margin-top:22px;font-size:15px}.enter-button{margin-top:22px;padding:13px 18px}.skip-intro{margin-top:13px}.hero-footer{bottom:25px}.scene-annotation{top:19%}}.desktop{inset:auto;left:var(--screen-left,8vw);top:var(--screen-top,10dvh);width:var(--screen-width,84vw);height:var(--screen-height,80dvh);border-radius:2.6%/3.7%;transition:opacity .22s,visibility .22s;box-shadow:inset 0 0 18px #0a140d;container-type:size}.desktop .os-menubar{gap:25px;height:35px;padding:0 18px;font-size:10px}.desktop .os-brand{font-size:12px}.desktop .os-brand svg{width:17px;height:17px}.desktop .os-menu-right{gap:20px}.desktop .os-menubar time{font-size:10px}.desktop-icons{gap:18px;top:54px;left:9px}.desktop-icons button{gap:6px;width:79px}.desktop-icons button svg{width:31px;height:31px}.desktop-icons button span{font-size:8px}.app-window{width:calc(100% - 123px);height:calc(100% - 115px);max-height:none;top:57px;left:101px}.app-window.maximized{inset:42px 11px 53px}.window-titlebar{height:29px;min-height:29px}.finder-intro{padding:23px 25px}.finder-intro h2{font-size:29px}.project-image{height:160px}.project-art{height:140px}.os-dock{height:42px;bottom:5px;left:18px;right:18px}.dock-apps{padding:4px}.dock-apps button{width:34px;height:29px}.dock-apps svg{width:19px;height:19px}.back-to-scene,.desktop .sound-button{font-size:9px}.project-grid{gap:23px 19px;padding:0 25px 25px}.project-filters{margin:0 25px 18px}.finder-intro>p{font-size:9px}.desktop-wallpaper{bottom:17%;right:5%}.desktop-wallpaper>span{font-size:100px}.desktop-wallpaper small{letter-spacing:1px;font-size:8px}.no-webgl .desktop{border-radius:0;width:100vw;height:100dvh;inset:0}@container (width<=800px){.finder-intro>p{display:none}.finder-intro h2{font-size:26px}.project-image{height:145px}.project-card-caption h3{font-size:19px}.back-to-scene{font-size:0}.desktop .sound-button span{display:none}.about-content{padding:26px}.about-content h2{font-size:32px}.contact-content h2{font-size:40px}}@container (width<=550px){.desktop-icons{gap:0;display:flex;top:43px;left:11px}.desktop-icons button{width:67px;padding:7px 0}.desktop-icons button svg{width:24px;height:24px}.desktop-icons button span{font-size:7px}.app-window{width:calc(100% - 20px);height:calc(100% - 169px);top:115px;left:10px}.app-window.maximized{inset:41px 8px 51px}.desktop .os-menubar{padding:0 12px}.os-menu-links{display:none}.desktop .os-menu-right{gap:12px}.desktop .os-brand{font-size:11px}.desktop .os-brand span,.desktop .crt-toggle{font-size:8px}.finder-intro{padding:20px 17px}.finder-intro h2{font-size:24px}.project-filters{margin:0 17px 17px}.project-grid{grid-template-columns:1fr;padding:0 17px 20px}.project-image{aspect-ratio:1.7;height:auto}.finder-toolbar{padding:9px 13px;font-size:8px}.finder-toolbar>span:first-child{gap:5px}.project-filters button{padding:6px 9px;font-size:9px}.os-dock{left:15px;right:15px}.window-status{font-size:7px}.window-status>span:last-child{font-size:6px}.about-content{padding:22px 17px}.about-content h2{font-size:27px}.contact-content{padding:25px 17px}.contact-content h2{font-size:38px}.contact-content>p:not(.mono-label){font-size:12px}.contact-content .mono-label{font-size:7px}.contact-content .retro-button{padding:11px 10px;font-size:9px}.project-detail{padding:18px}.detail-heading h2{font-size:28px}.detail-heading .retro-button{gap:6px;padding:8px;font-size:8px}.detail-copy{font-size:12px}.terminal-content{padding:13px;font-size:9px}.terminal-content form{flex-wrap:wrap;gap:5px}.window-title{font-size:10px}}@media (width<=760px){.inside .computer-scene{top:0;bottom:0}.computer-scene{top:calc(250px * (1 - var(--journey)));bottom:calc(-50px * (1 - var(--journey)))}}.terminal-content.amber{color:#ebbf78}.terminal-content.amber input{color:#ffd597}.secret-toast{z-index:5;color:#1c2b15;white-space:nowrap;background:#bfd7a0;border:1px solid #d3e4bf;padding:10px 15px;font:10px IBM Plex Mono,monospace;position:absolute;top:42px;left:50%;transform:translate(-50%);box-shadow:3px 3px #13220c}.matrix-egg{z-index:5;background:#091509;position:absolute;inset:0;overflow:hidden}.matrix-egg canvas{width:100%;height:100%;display:block}.matrix-egg button{color:#bce597;background:#101b11e8;border:1px solid #8db866;align-items:center;gap:10px;padding:10px 13px;font:10px IBM Plex Mono,monospace;display:flex;position:absolute;top:20px;right:20px}.matrix-egg kbd{border:1px solid #8db866;padding:3px;font:9px IBM Plex Mono,monospace}.matrix-egg>p{color:#d2ebbe;white-space:nowrap;background:#091509cf;padding:12px;font:14px IBM Plex Mono,monospace;position:absolute;bottom:35px;left:50%;transform:translate(-50%)}.snake-game{max-width:650px;margin:auto;padding:24px}.snake-heading{justify-content:space-between;align-items:end;gap:15px;margin-bottom:20px;display:flex}.snake-heading h2{letter-spacing:-1px;margin-top:9px;font-size:29px;font-weight:400}.snake-heading>span{color:#c3f86b;white-space:nowrap;font:11px IBM Plex Mono,monospace}.snake-board{border:1px solid #7d985f;max-width:400px;margin:auto;position:relative}.snake-board canvas{width:100%;image-rendering:pixelated;display:block}.snake-overlay{background:#10200ebd;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:0}.snake-overlay p{letter-spacing:-.8px;font-size:25px}.snake-controls{justify-content:center;gap:9px;margin-top:17px;display:flex}.snake-controls button{background:#7d985f22;border:1px solid #7d985f;place-items:center;width:44px;height:37px;display:grid}.snake-controls button:active{background:#7d985f66}.snake-help{text-align:center;color:#99b280;margin-top:15px;font:9px/1.7 IBM Plex Mono,monospace}@container (width<=550px){.desktop-icons button{width:54px}.snake-game{padding:17px}.snake-heading h2{font-size:23px}.snake-heading>span{font-size:9px}.snake-heading .mono-label{font-size:6px}.secret-toast{white-space:normal;max-width:90%;font-size:8px}.terminal-output{font-size:8px}}
