*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--t:.45s cubic-bezier(.4, 0, .2, 1);--bg-transition:1.6s cubic-bezier(.25, .46, .45, .94);--human-bg:#f5f0e8;--human-fg:#1a1a18;--human-muted:#5a5a52;--human-subtle:#a0a098;--human-faint:#c0bab0;--human-wip-bg:#ede8dc;--human-wip-fg:#a0988a;--human-wip-border:#d8d0c0;--robot-bg:#030a03;--robot-fg:#0c4;--robot-bright:#0f5;--robot-mid:#0a3;--robot-dim:#007a25;--robot-dark:#005518;--robot-darker:#004410}html{scroll-behavior:smooth}body{background-color:var(--human-bg);min-height:100dvh;color:var(--human-fg);transition:background-color var(--bg-transition), color var(--t);--name-font:"DM Serif Display", serif;--name-style:italic;--name-size:clamp(2.8rem, 6vw, 4.5rem);--name-spacing:-.02em;--name-color:inherit;--name-overflow:visible;--tagline-size:clamp(.9rem, 1.8vw, 1.05rem);--tagline-color:#474741;--tagline-lh:1.65;--tagline-spacing:normal;--label-color:#505048;--label-font:"DM Mono", monospace;--label-size:.62rem;--label-spacing:.12em;--num-color:#505048;--num-font:"DM Mono", monospace;--num-size:.62rem;--link-size:.92rem;--desc-color:#474741;--desc-size:.78rem;--wip-bg:var(--human-wip-bg);--wip-color:#474741;--wip-border:var(--human-wip-border);--contact-size:.8rem;--contact-color:#474741;flex-direction:column;justify-content:center;align-items:center;padding:3rem 4rem;font-family:DM Sans,sans-serif;display:flex}body.mode-robot{background-color:var(--robot-bg);color:var(--robot-fg);--name-font:"Press Start 2P", cursive;--name-style:normal;--name-size:.75rem;--name-spacing:.04em;--name-color:var(--robot-bright);--name-overflow:hidden;--tagline-size:.73rem;--tagline-color:var(--robot-fg);--tagline-lh:1.95;--tagline-spacing:.02em;--label-color:var(--robot-fg);--label-font:"Press Start 2P", cursive;--label-size:.5rem;--label-spacing:.2em;--num-color:var(--robot-fg);--num-font:"Press Start 2P", cursive;--num-size:.5rem;--link-size:.76rem;--desc-color:var(--robot-fg);--desc-size:.7rem;--wip-bg:transparent;--wip-color:var(--robot-dark);--wip-border:var(--robot-darker);--contact-size:.7rem;--contact-color:var(--robot-fg);font-family:DM Mono,monospace}body.mode-robot:before{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000012 2px 4px);position:fixed;inset:0}main,.switcher,.footer-note{z-index:1;position:relative}main{width:100%;max-width:500px}.page-layout{flex-direction:column;align-items:center;width:100%;display:flex}@media (width<=600px){body{padding:2rem 1.75rem calc(env(safe-area-inset-bottom,0px) + 6rem)}}.name{line-height:1;font-family:var(--name-font);font-style:var(--name-style);font-size:var(--name-size);letter-spacing:var(--name-spacing);color:var(--name-color);overflow:var(--name-overflow);text-overflow:ellipsis;transition:font-size var(--t), color var(--t), letter-spacing var(--t);margin-bottom:1.2rem;font-weight:400}.cursor{background:var(--robot-fg);vertical-align:text-bottom;opacity:0;width:.6em;height:1em;transition:opacity var(--t);margin-left:3px;display:inline-block}body.mode-robot .cursor{opacity:1;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.tagline{line-height:var(--tagline-lh);max-width:500px;font-size:var(--tagline-size);color:var(--tagline-color);letter-spacing:var(--tagline-spacing);transition:color var(--t), font-size var(--t);margin-bottom:2.75rem}.projects{margin-bottom:2.75rem}.projects-label{font-family:var(--label-font);font-size:var(--label-size);letter-spacing:var(--label-spacing);color:var(--label-color);text-transform:uppercase;transition:color var(--t);margin-bottom:.9rem}.project-list{padding:0;list-style:none}.project-item{align-items:baseline;gap:.9rem;margin-bottom:.55rem;display:flex}.project-num{font-family:var(--num-font);font-size:var(--num-size);color:var(--num-color);transition:color var(--t);flex-shrink:0}.project-link{font-size:var(--link-size);color:inherit;flex-wrap:wrap;align-items:baseline;gap:.7rem;font-weight:400;text-decoration:none;display:flex}a.project-link{border-bottom:1px solid #0000;transition:border-color .2s}a.project-link:hover{border-bottom-color:currentColor}.project-desc{font-size:var(--desc-size);color:var(--desc-color);transition:color var(--t);font-weight:300}.project-wip{letter-spacing:.08em;background:var(--wip-bg);color:var(--wip-color);border:1px solid var(--wip-border);transition:background var(--t), color var(--t), border-color var(--t);border-radius:1px;padding:.12rem .4rem;font-family:DM Mono,monospace;font-size:.58rem}.contact{flex-wrap:wrap;align-items:center;gap:1.4rem;display:flex}.contact a{font-size:var(--contact-size);color:var(--contact-color);border-bottom:1px solid #0000;text-decoration:none;transition:color .2s,border-color .2s}.contact a:hover{border-bottom-color:currentColor}body.mode-human .contact a:hover{color:var(--human-fg)}body.mode-robot .contact a:hover{color:var(--robot-bright)}.contact-sep{opacity:.2;font-size:.65rem}.switcher{z-index:100;border:1px solid;border-radius:2px;flex-shrink:0;transition:opacity .2s;display:flex;position:static;overflow:hidden}.switcher:hover{opacity:1}.switcher button{color:inherit;cursor:pointer;transition:background var(--t), color var(--t);background:0 0;border:none;justify-content:center;align-items:center;padding:.4rem .6rem;display:flex}body:not(.mode-robot) .switcher button:hover{background:var(--human-fg);color:#fff}body.mode-robot .switcher button:hover{background:var(--human-bg);color:var(--human-fg)}.toggle-icon{z-index:1;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:relative}.toggle-icon svg{pointer-events:none;width:100%;height:100%;transition:opacity .2s;position:absolute}.icon-human{opacity:0;pointer-events:none}body.mode-robot .icon-human{opacity:1}body.mode-robot .icon-robot{opacity:0}body.mode-human .icon-robot{opacity:1}body.mode-human .icon-human{opacity:0}.footer-controls{z-index:2;box-sizing:border-box;justify-content:space-between;align-items:center;gap:1.5rem;width:min(500px,100% - 8rem);max-width:500px;display:flex;position:fixed;bottom:2.5rem;left:50%;transform:translate(-50%)}.footer-controls .switcher{flex-shrink:0;margin-left:auto}.footer-note{letter-spacing:.06em;color:#505048;white-space:nowrap;text-overflow:ellipsis;min-width:0;transition:color var(--t);flex:auto;font-family:DM Mono,monospace;font-size:.58rem;overflow:hidden}@media (width<=600px){.footer-controls{bottom:calc(env(safe-area-inset-bottom,0px) + 1.75rem);width:calc(100% - 3.5rem)}}body.mode-robot .footer-note{color:var(--robot-fg)}:focus-visible{outline:3px solid var(--human-fg);outline-offset:3px}body.mode-robot :focus-visible{outline-color:var(--robot-bright)}.skip-link{background:var(--human-fg);color:var(--human-bg);z-index:10000;transition:top var(--t);padding:.5rem 1rem;font-size:.875rem;text-decoration:none;position:absolute;top:-100%;left:0}.skip-link:focus{top:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}
