:root{--bg:#f5f9f5;--bg-soft:#f0f6f0;--card:#ffffff;--ink:#203c25;--ink-soft:#43714e;--accent:#ef9393;--accent-2:#4f9d5b;--shadow:#d0e1d2;--pixel:"Press Start 2P",monospace;--sans:"Nunito",system-ui,-apple-system,sans-serif;--tile:var(--bg);--selection-bg:#f9cfcf;--selection-ink:var(--ink);--hamster-scale:8;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#161719;--bg-soft:#1e1f22;--card:#222326;--ink:#ececee;--ink-soft:#a4a6ab;--accent:#f2a3a3;--accent-2:#7cc98a;--shadow:#0c0c0d;--tile:#2e2f33;--selection-bg:#f2a3a3;--selection-ink:#161719}}::selection{background:var(--selection-bg);color:var(--selection-ink)}*{box-sizing:border-box}html{scroll-behavior:smooth;background-color:var(--bg);background-image:radial-gradient( 140% 620px at 50% 0,var(--bg-soft) 0%,transparent 70% );background-repeat:no-repeat;overscroll-behavior:none}body{overflow-x:hidden;margin:0;min-height:100vh;font-family:var(--sans);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}.wrap{max-width:640px;margin:0 auto;padding:48px 20px 64px;display:flex;flex-direction:column;gap:28px}.hero{text-align:center}.hamster-stage{display:inline-flex;flex-direction:column;align-items:center;margin-bottom:8px}.bob{position:relative;z-index:1;animation:bob 2.6s ease-in-out infinite}.hamster{width:calc(34px * var(--hamster-scale));height:calc(26px * var(--hamster-scale));background-image:url("assets/hamster-typing.png");background-repeat:no-repeat;background-size:calc(68px * var(--hamster-scale)) calc(26px * var(--hamster-scale));background-position-x:0;image-rendering:pixelated;animation:type 0.55s steps(2) infinite}.pad{width:calc(40px * var(--hamster-scale));max-width:92vw;height:10px;margin-top:-6px;position:relative;background:color-mix(in srgb,var(--accent-2) 35%,transparent)}.pad::after{content:"";position:absolute;top:100%;left:8px;right:8px;height:6px;background:color-mix(in srgb,var(--accent-2) 15%,transparent)}h1{font-family:var(--pixel);font-size:clamp(18px,5.4vw,30px);line-height:1.5;margin:14px 0 10px;color:var(--ink);text-shadow:3px 3px 0 var(--bg-soft)}h1 .name{color:var(--accent-2)}.tagline{font-size:clamp(13px,4vw,18px);color:var(--ink-soft);max-width:90vw;white-space:nowrap;margin:0 auto;font-weight:600}.card{background:var(--card);border-radius:18px;padding:22px 24px;box-shadow:0 6px 0 var(--shadow)}h2{font-family:var(--pixel);font-size:13px;line-height:1.6;margin:0 0 14px;color:var(--accent-2);display:flex;align-items:center;gap:16px}.pixel-bullet{width:12px;height:12px;flex:none;background:var(--accent);box-shadow:0 0 0 3px var(--card),0 0 0 5px var(--accent)}.card p{margin:0 0 12px}.card p:last-child{margin-bottom:0}a{color:var(--accent-2);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px;font-weight:700}a:hover{color:var(--accent)}em{color:var(--ink);font-style:italic}strong{color:var(--ink)}.hobby-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px}.hobby-grid li{display:flex;align-items:center;gap:12px;background:var(--tile);border-radius:12px;padding:12px 14px}.hobby-grid img{width:40px;height:40px;flex:none;image-rendering:pixelated}.hobby-grid div{display:flex;flex-direction:column}.hobby-grid strong{font-size:15px}.hobby-grid span{font-size:13px;color:var(--ink-soft)}.contact{text-align:center}.contact h2{justify-content:center}.links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:16px}.links a{text-decoration:none;background:var(--card);border-radius:12px;padding:10px 18px;box-shadow:0 4px 0 var(--shadow);transition:transform 0.12s ease,box-shadow 0.12s ease}.links a:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--shadow);color:var(--accent-2)}.links a:active{transform:translateY(2px);box-shadow:0 2px 0 var(--shadow)}.footnote{font-size:13px;color:var(--ink-soft);margin:0}@media (max-width:480px){:root{--hamster-scale:6}.wrap{padding:32px 16px 48px}.hobby-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.bob{animation:none}.hamster{animation:none;background-position-x:calc(-34px * var(--hamster-scale))}.links a{transition:none}html{scroll-behavior:auto}}@keyframes type{from{background-position-x:0}to{background-position-x:calc(-68px * var(--hamster-scale))}}@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}