@font-face{font-family:'JetBrains Mono';src:url('./assets/jetbrains-mono-bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{color-scheme:dark;--paper:#122127;--ink:#dce9d4;--accent:#d9aa79;--muted:#7b9d99}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:var(--paper)}
body{color:var(--ink);overflow:hidden;-webkit-font-smoothing:antialiased}
button{-webkit-tap-highlight-color:transparent;font:inherit;color:inherit}
button:focus-visible{outline:2px solid var(--accent);outline-offset:8px}
.landing{position:relative;isolation:isolate;min-height:100svh;height:100svh;height:100dvh;overflow:hidden}
.landing:after{content:'';z-index:9;pointer-events:none;position:absolute;inset:0;opacity:.055;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.scene{position:absolute;inset:0;display:block;border:0;background:none;padding:0;margin:0;cursor:pointer;width:100%;height:100%;touch-action:manipulation;border-radius:0;outline-offset:-14px;transform:translate3d(var(--scene-x,0px),var(--scene-y,0px),0) scale(1.02);transition:transform .65s cubic-bezier(.2,.7,.3,1)}
.scene-trigger{position:absolute;inset:0;z-index:0;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer}
.scene-trigger:focus-visible{outline-offset:-14px}
.scene svg{position:relative;z-index:1;display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.lab-code-rain{font-family:'JetBrains Mono',monospace;font-weight:700;font-kerning:none;opacity:.64;user-select:none}
.scene .particles{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:visible}
.lab-email-link{pointer-events:all;cursor:pointer;outline:none}
.lab-email-hit{stroke:transparent;stroke-width:1.5}
.lab-email-link:hover .lab-email-text,.lab-email-link:focus-visible .lab-email-text{fill:#eef2d7;text-decoration:underline}
.lab-email-link:focus-visible .lab-email-hit{stroke:var(--accent);stroke-dasharray:4 3;fill:#d9aa7910}
.particle{position:absolute;width:7px;height:7px;background:var(--accent);border-radius:50%;left:var(--x);top:var(--y);animation:particle-flight 1.1s cubic-bezier(.13,.64,.27,1) both}
.particle:nth-child(3n){border-radius:0;transform:rotate(45deg);background:#c8e89e}
.particle:nth-child(3n + 1){width:5px;height:5px;background:#d8aa51}
@keyframes particle-flight{0%{opacity:0;translate:0 0;scale:.3}12%{opacity:1}100%{opacity:0;translate:var(--dx) var(--dy);scale:.2}}
.motion-toggle{position:absolute;right:26px;bottom:22px;z-index:10;border:1px solid #6b8b8559;background:#122127bf;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;transition:background .2s,border-color .2s}
.motion-toggle:hover{background:#345356;border-color:#a0b8a8}
.motion-toggle[hidden]{display:none}
.motion-toggle svg{width:15px;height:15px}
.motion-toggle .play{display:none}
.is-paused .motion-toggle .pause{display:none}
.is-paused .motion-toggle .play{display:block}
.is-paused .scene svg *, .is-paused .particle{animation-play-state:paused!important}
.is-paused .scene{transform:none;transition:none}
@media(max-width:700px){.motion-toggle{right:18px;bottom:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.scene{transform:none!important}.particle,.lab-code-rain{display:none}}
