:root,[data-theme=dark]{--bg: #0a0f1c;--bg-alt: #121a2e;--surface: #192338;--surface-hover: #202c47;--text: #e6f1ff;--text-muted: #8b95a7;--accent: #00f0ff;--accent-2: #b967ff;--border: rgba(255, 255, 255, .1);--glow: 0 0 18px rgba(0, 240, 255, .11);--accent-hover: color-mix(in srgb, var(--accent) 77%, black 25%);--shadow: 0 12px 30px rgba(0, 0, 0, .45);--bg-gradient: linear-gradient(160deg, #070b14 0%, var(--bg) 45%, var(--bg-alt) 100%);--btn-gradient: linear-gradient( 135deg, color-mix(in srgb, var(--accent) 78%, black 22%), color-mix(in srgb, var(--accent-2) 78%, black 22%) );--btn-text: #05070d;--terminal-bg: #0a0e17;--terminal-bar-bg: #0d1220;--terminal-border: rgba(0, 240, 255, .25);--terminal-border-soft: rgba(0, 240, 255, .15);--terminal-scanline: rgba(255, 255, 255, .025);--terminal-text: #c9d3ec;--terminal-title: #6b7a99;--terminal-prompt: #b967ff;--terminal-output: #7ef9e0;--terminal-output-glow: rgba(126, 249, 224, .25);--terminal-accent: #00f0ff;--terminal-accent-glow: rgba(0, 240, 255, .4);--terminal-shadow: 0 20px 40px rgba(0, 0, 0, .35), 0 0 30px rgba(0, 240, 255, .08);--sky-top: #1b2a4d;--sky-mid: #3f6693;--sky-horizon: #e3a75f;--grass-top: #5a7a4e;--grass-bottom: #35502f;--cursor-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M2 2 L2 16 L6 12.5 L8.5 18 L11 16.8 L8.5 11 L14 11 Z' fill='none' stroke='%2300f0ff' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2, auto;--cursor-card: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 22 22'%3E%3Cpath d='M2 6V2H6' stroke='%2300f0ff' stroke-width='1.6' fill='none'/%3E%3Cpath d='M16 2H20V6' stroke='%2300f0ff' stroke-width='1.6' fill='none'/%3E%3Cpath d='M20 16V20H16' stroke='%2300f0ff' stroke-width='1.6' fill='none'/%3E%3Cpath d='M6 20H2V16' stroke='%2300f0ff' stroke-width='1.6' fill='none'/%3E%3Ccircle cx='11' cy='11' r='2' fill='%2300f0ff'/%3E%3C/svg%3E") 8 8, pointer;--cursor-hand: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2300f0ff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 14a8 8 0 0 1-8 8'/%3E%3Cpath d='M18 11v-1a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0'/%3E%3Cpath d='M14 10V9a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v1'/%3E%3Cpath d='M10 9.5V4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v10'/%3E%3Cpath d='M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15'/%3E%3C/svg%3E") 8 3, pointer}[data-theme=light]{--bg: #dbe5fa;--bg-alt: #eaf0fc;--surface: #f3f6ff;--surface-hover: #e2eaf9;--text: #10131a;--text-muted: #55607a;--accent: #0891b2;--accent-2: #7c3aed;--border: rgba(16, 47, 116, .14);--glow: 0 0 24px rgba(8, 145, 178, .18);--accent-hover: var(--accent);--shadow: 0 12px 30px rgba(16, 19, 26, .12);--bg-gradient: linear-gradient(160deg, #cbdafb 0%, #dbe5fa 45%, #eaf0fc 100%);--btn-gradient: linear-gradient( 135deg, color-mix(in srgb, var(--accent) 45%, white 55%), color-mix(in srgb, var(--accent-2) 45%, white 55%) );--btn-text: #10131a;--terminal-bg: #f0f4ff;--terminal-bar-bg: #e2e9fa;--terminal-border: rgba(8, 145, 178, .3);--terminal-border-soft: rgba(8, 145, 178, .18);--terminal-scanline: rgba(16, 47, 116, .025);--terminal-text: #1b2338;--terminal-title: #6b7690;--terminal-prompt: #7c3aed;--terminal-output: #067a6f;--terminal-output-glow: rgba(6, 122, 111, .15);--terminal-accent: #0891b2;--terminal-accent-glow: rgba(8, 145, 178, .25);--terminal-shadow: 0 20px 40px rgba(16, 19, 26, .12), 0 0 24px rgba(8, 145, 178, .1);--sky-top: #5fa8e6;--sky-mid: #a9d6f5;--sky-horizon: #ffe0b0;--grass-top: #c3e8ab;--grass-bottom: #8ec27f;--cursor-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M2 2 L2 16 L6 12.5 L8.5 18 L11 16.8 L8.5 11 L14 11 Z' fill='none' stroke='%230891b2' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2, auto;--cursor-card: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 22 22'%3E%3Cpath d='M2 6V2H6' stroke='%230891b2' stroke-width='1.6' fill='none'/%3E%3Cpath d='M16 2H20V6' stroke='%230891b2' stroke-width='1.6' fill='none'/%3E%3Cpath d='M20 16V20H16' stroke='%230891b2' stroke-width='1.6' fill='none'/%3E%3Cpath d='M6 20H2V16' stroke='%230891b2' stroke-width='1.6' fill='none'/%3E%3Ccircle cx='11' cy='11' r='2' fill='%230891b2'/%3E%3C/svg%3E") 8 8, pointer;--cursor-hand: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%230891b2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 14a8 8 0 0 1-8 8'/%3E%3Cpath d='M18 11v-1a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0'/%3E%3Cpath d='M14 10V9a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v1'/%3E%3Cpath d='M10 9.5V4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v10'/%3E%3Cpath d='M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15'/%3E%3C/svg%3E") 8 3, pointer}*{box-sizing:border-box}:root{font-family:Space Grotesk,Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);cursor:var(--cursor-default);background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 18%,transparent) 0%,transparent 45%),radial-gradient(circle at top right,color-mix(in srgb,var(--accent-2) 18%,transparent) 0%,transparent 45%),repeating-linear-gradient(0deg,color-mix(in srgb,var(--text) 4%,transparent) 0px,transparent 1px,transparent 48px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--text) 4%,transparent) 0px,transparent 1px,transparent 48px),var(--bg-gradient);background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,no-repeat;background-position:top left,top right,center,center,center;background-size:40% 32vh,40% 32vh,100% 100%,100% 100%,100% 100%;background-attachment:fixed,fixed,fixed,fixed,fixed;transition:background-color .3s ease,color .3s ease}::selection{background:var(--accent);color:var(--btn-text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-alt)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent),var(--accent-2));border-radius:999px;border:2px solid var(--bg-alt)}::-webkit-scrollbar-thumb:hover{filter:brightness(1.2)}a{font-weight:500;color:var(--accent);text-decoration:inherit;cursor:var(--cursor-hand)}h1,h2,h3{line-height:1.15}button{font-family:inherit;cursor:var(--cursor-hand)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-hover);outline-offset:2px}main{overflow-x:hidden}.section{max-width:1100px;margin:0 auto;padding:6rem 1.5rem 4rem}.section__header{margin-bottom:2.5rem}.section__header--row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.section__link{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.9rem;color:var(--accent);white-space:nowrap}.section__link:hover{text-decoration:underline}.section__tag{display:block;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;color:var(--accent);font-size:.85rem;letter-spacing:.04em;margin-bottom:.5rem;animation:neon-flicker 7s ease-in-out infinite}@keyframes neon-flicker{0%,19%,21%,23%,55%,57%,to{opacity:1}20%,22%,56%{opacity:.65}}.hud-card{position:relative;cursor:var(--cursor-card)}.hud-card:before,.hud-card:after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--accent);opacity:.35;transition:opacity .2s ease;pointer-events:none}.hud-card:before{top:0;left:0;border-right:none;border-bottom:none;border-top-left-radius:1rem}.hud-card:after{bottom:0;right:0;border-left:none;border-top:none;border-bottom-right-radius:1rem;border-color:var(--accent-2)}.hud-card:hover:before,.hud-card:hover:after{opacity:1}.section h2,.section h1{font-size:clamp(1.8rem,3vw,2.4rem);margin:0}.page-section{padding-top:7.5rem}.page-back{display:inline-block;color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem}.page-back:hover{color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.4rem;border-radius:999px;font-weight:600;font-size:.95rem;border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;white-space:nowrap}.btn--primary{background:var(--btn-gradient);color:var(--btn-text);border:none;box-shadow:var(--glow)}.btn--primary:hover{transform:translateY(-2px)}.btn--ghost{background:var(--surface);color:var(--text)}.btn--ghost:hover{background:var(--surface-hover);border-color:var(--accent-hover)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.icon-button:hover{color:var(--accent-hover);border-color:var(--accent-hover)}.icon-button:disabled{opacity:.35;cursor:not-allowed}.icon-button:disabled:hover{color:var(--text);border-color:var(--border)}.tag{display:inline-block;padding:.3rem .8rem;border-radius:999px;font-size:.8rem;background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;background:transparent;transition:background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease;border-bottom:1px solid transparent}.navbar--scrolled{background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.navbar__inner{max-width:1100px;margin:0 auto;padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.navbar__brand-glyph{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-weight:700;font-size:1.05rem;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.navbar__links{display:flex;align-items:center;gap:1.6rem;font-size:.95rem}.navbar__links a{color:var(--text-muted)}.navbar__links a:hover{color:var(--accent)}.navbar__resume{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:999px;background:var(--btn-gradient);color:var(--btn-text)!important;font-weight:600;font-size:.85rem}.navbar__resume--mobile{display:none}.navbar__actions{display:flex;align-items:center;gap:.6rem}.navbar__burger{display:none}@media(max-width:900px){.navbar__links{position:fixed;top:4.2rem;left:0;right:0;bottom:0;background:var(--bg);flex-direction:column;align-items:flex-start;padding:2rem 1.5rem;gap:1.4rem;font-size:1.2rem;transform:translate(100%);transition:transform .3s ease}.navbar__links--open{transform:translate(0)}.navbar__resume--mobile{display:inline-flex;margin-top:1rem}.navbar__actions .navbar__resume{display:none}.navbar__burger{display:inline-flex}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:6rem 1.5rem 3rem;text-align:center;overflow:hidden}.hero__glow{position:absolute;inset:-20% -10% auto;height:60%;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%),radial-gradient(closest-side,color-mix(in srgb,var(--accent-2) 22%,transparent),transparent 70%);background-position:20% 0%,80% 20%;background-size:60% 60%,60% 60%;background-repeat:no-repeat;filter:blur(10px);pointer-events:none}.hero__inner{position:relative;z-index:1;max-width:640px}.hero__avatar{width:9rem;height:9rem;border-radius:50%;object-fit:cover;background:#fff;border:2px solid var(--border);box-shadow:var(--glow);margin-bottom:1.5rem}.hero__eyebrow{color:var(--text-muted);margin:0;font-family:JetBrains Mono,ui-monospace,Menlo,monospace}.hero__name{position:relative;font-size:clamp(2.4rem,6vw,3.6rem);margin:.3rem 0 .6rem;background:linear-gradient(135deg,var(--text),var(--accent) 60%,var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.hero__role{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:1.3rem;min-height:1.8rem;margin:0 0 .6rem}.hero__typed{color:var(--accent)}.hero__cursor{color:var(--accent-2);animation:blink 1s step-start infinite}@keyframes blink{50%{opacity:0}}.hero__location{color:var(--text-muted);margin:0 0 2rem}.hero__cta{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.hero__socials{display:flex;justify-content:center;gap:1rem;color:var(--text-muted);margin-bottom:3rem}.hero__socials a{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 55%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.hero__socials a:hover{color:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--glow);transform:translateY(-2px)}.hero__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;max-width:32rem;margin:0 auto 3rem;padding-top:2rem;border-top:1px solid var(--border)}.hero__stat{display:flex;flex-direction:column;gap:.2rem}.hero__stat-value{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.hero__stat-label{font-size:.72rem;color:var(--text-muted);line-height:1.3}@media(max-width:560px){.hero__stats{grid-template-columns:repeat(2,1fr)}}.hero__scroll{display:inline-flex;margin-top:2.5rem;color:var(--text-muted);animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.about{display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem;align-items:start}.about__text p{color:var(--text-muted);line-height:1.7}.about__motto{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;color:var(--accent)!important;font-weight:600}.about__stack,.about__education{margin-top:1.5rem}.about__education-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.9rem}.about__education-card{display:flex;gap:.8rem;align-items:flex-start;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:.9rem;transition:border-color .2s ease,box-shadow .2s ease}.about__education-card:hover{border-color:var(--accent-hover);box-shadow:var(--glow)}.about__education-icon{font-size:1.6rem;line-height:1}.about__education-card h3{margin:0 0 .2rem;font-size:.95rem}.about__education-card p{margin:0 0 .35rem;font-size:.85rem;line-height:1.4}.about__education-meta{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.72rem;color:var(--accent)}.about__stack-label{display:block;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:var(--text-muted);margin-bottom:.75rem}.about__stack-tags{display:flex;flex-wrap:wrap;gap:.5rem}.about__terminal{position:relative;background:var(--terminal-bg);border:1px solid var(--terminal-border);border-radius:.9rem;overflow:hidden;box-shadow:0 0 0 1px color-mix(in srgb,var(--terminal-border) 60%,transparent),var(--terminal-shadow);transition:background-color .3s ease,border-color .3s ease,box-shadow .2s ease}.about__terminal:focus-within{border-color:var(--terminal-accent);box-shadow:0 0 16px color-mix(in srgb,var(--terminal-accent) 12%,transparent),var(--terminal-shadow),var(--shadow)}[data-theme=dark] .about__terminal:focus-within{border-color:color-mix(in srgb,var(--terminal-accent) 60%,var(--terminal-border));box-shadow:0 0 14px color-mix(in srgb,var(--terminal-accent) 7%,transparent),var(--terminal-shadow),var(--shadow)}.about__terminal:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,var(--terminal-scanline) 0px,var(--terminal-scanline) 1px,transparent 1px,transparent 3px);pointer-events:none}.about__terminal-bar{position:relative;display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;background:var(--terminal-bar-bg);border-bottom:1px solid var(--terminal-border-soft);cursor:var(--cursor-hand)}.about__terminal-dot{width:.65rem;height:.65rem;border-radius:50%}.about__terminal-dot--red{background:#ff5f56}.about__terminal-dot--yellow{background:#ffbd2e}.about__terminal-dot--green{background:#27c93f}.about__terminal-title{margin-left:.5rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.78rem;color:var(--terminal-title)}.about__terminal-body{position:relative;padding:1.25rem 1.5rem 1.5rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.88rem;line-height:1.7;color:var(--terminal-text);max-height:30rem;overflow-y:auto;cursor:text}.about__terminal-body p{margin:0}.about__terminal-prompt{color:var(--terminal-prompt);font-weight:700}.about__terminal-output{color:var(--terminal-output);margin-bottom:.9rem!important;text-shadow:0 0 8px var(--terminal-output-glow);white-space:pre-wrap}.about__terminal-output--accent{color:var(--terminal-accent);text-shadow:0 0 8px var(--terminal-accent-glow)}.about__terminal-cursor{display:inline-block;width:2px;height:1em;background:var(--terminal-accent);vertical-align:text-bottom;animation:blink 1s step-start infinite}.about__terminal-input-row{display:flex;align-items:center}.about__terminal-input-row .about__terminal-prompt{margin-right:1ch}.about__terminal-input{flex:0 0 auto;max-width:100%;border:none;outline:none;background:transparent;padding:0;font:inherit;color:var(--terminal-text);caret-color:transparent}@media(max-width:800px){.about{grid-template-columns:1fr}}.roadmap__controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.roadmap__controls-group{display:flex;align-items:center;gap:.6rem}.roadmap__play{padding:.5rem 1rem;font-size:.85rem}.roadmap__hint{color:var(--text-muted);font-size:.8rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace}.roadmap__fullscreen-toggle{width:2rem;height:2rem}.roadmap:fullscreen{display:flex;flex-direction:column;justify-content:center;padding:2rem 2.5rem;background:var(--bg)}.roadmap:fullscreen .roadmap__track{height:min(70vh,46rem)}.roadmap__track{position:relative;height:25rem;margin:0 1.5rem;cursor:var(--cursor-hand);touch-action:pan-y;border-radius:.75rem;overflow:hidden;outline:none;background:var(--bg-gradient) fixed center / 100% 100%}.roadmap__track:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}[data-theme=dark] .roadmap__track:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}.roadmap__track--dragging{cursor:grabbing}.roadmap__scenery{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.roadmap__cloud,.roadmap__bird,.roadmap__plane{position:absolute;left:-15%;display:inline-flex;animation-name:roadmap-drift;animation-timing-function:linear;animation-iteration-count:infinite}.roadmap__cloud{opacity:.9}.roadmap__cloud-icon{fill:#f5f9ff;stroke:color-mix(in srgb,var(--text) 20%,transparent);stroke-width:.5;transition:fill .8s ease}.roadmap__scenery--raining .roadmap__cloud-icon{fill:#5c6b7c}.roadmap__bird{color:color-mix(in srgb,var(--text) 70%,transparent);opacity:.7}.roadmap__bird-wing{transform-box:fill-box;animation:roadmap-flap .35s ease-in-out infinite alternate}.roadmap__bird-wing--left{transform-origin:100% 50%}.roadmap__bird-wing--right{transform-origin:0% 50%;animation-direction:alternate-reverse}@keyframes roadmap-flap{0%{transform:rotate(-18deg)}to{transform:rotate(18deg)}}.roadmap__plane{opacity:.95}.roadmap__plane-icon{overflow:visible;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));animation:roadmap-plane-bank 3s ease-in-out infinite alternate}.roadmap__plane-body{fill:#d9dfe6;stroke:#b7bfc7;stroke-width:.4}.roadmap__plane-shadow{fill:#aab2ba;opacity:.7}.roadmap__plane-tail,.roadmap__plane-accent{fill:#d6273f}.roadmap__plane-cockpit{stroke:#2a3038;stroke-width:.7;stroke-linecap:round}.roadmap__plane-engine{fill:#55606b}.roadmap__plane-window{fill:#17191c}@keyframes roadmap-plane-bank{0%{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}@keyframes roadmap-drift{0%{left:-15%}to{left:115%}}.roadmap__weather-tint{position:absolute;inset:0;background:linear-gradient(to bottom,color-mix(in srgb,#1b2a3a 32%,transparent),transparent 75%);opacity:0;transition:opacity 1.4s ease;pointer-events:none}.roadmap__weather-tint--active{opacity:.55}.roadmap__lightning{position:absolute;inset:0;background:#fff;opacity:0;mix-blend-mode:screen;pointer-events:none;transition:opacity .08s ease-out;z-index:1}.roadmap__lightning--active{opacity:.9;transition:opacity .04s ease-in}.roadmap__rain{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity 1.2s ease}.roadmap__rain--active{opacity:1}.roadmap__raindrop{position:absolute;top:-10%;width:1px;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--text) 55%,transparent));animation-name:roadmap-rain-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes roadmap-rain-fall{0%{top:-10%;opacity:0}10%{opacity:1}85%{opacity:.8}to{top:94%;opacity:0}}.roadmap__tree{--tree-scale: 1;position:absolute;transform:translate(-50%,-95%) scale(var(--tree-scale));transform-origin:bottom center;opacity:.9;z-index:4;pointer-events:none;filter:brightness(1.15) saturate(.85);animation:roadmap-sway 3.5s ease-in-out infinite alternate}[data-theme=dark] .roadmap__tree{filter:brightness(.8) saturate(.8)}@keyframes roadmap-sway{0%{transform:translate(-50%,-95%) scale(var(--tree-scale)) rotate(-3deg)}to{transform:translate(-50%,-95%) scale(var(--tree-scale)) rotate(3deg)}}.roadmap__river{fill:color-mix(in srgb,var(--accent) 40%,#1c6fae 60%);opacity:.5}.roadmap__river-flow{fill:none;stroke:#ffffff8c;stroke-width:.6;stroke-dasharray:2 3.5;vector-effect:non-scaling-stroke;animation:roadmap-river-flow 1.4s linear infinite}@keyframes roadmap-river-flow{to{stroke-dashoffset:-11}}.roadmap__player{position:absolute;transform:translate(-50%,-100%);transition:left .35s ease,top .35s ease;pointer-events:none;z-index:3}.roadmap__player[data-flying=true]{z-index:5}.roadmap__player-shadow{position:absolute;left:50%;bottom:-.2rem;width:1.5rem;height:.4rem;border-radius:50%;background:color-mix(in srgb,var(--accent) 35%,transparent);filter:blur(1.5px);transform:translate(-50%);animation:roadmap-ping 1.6s ease-out infinite}.roadmap__runner{display:block;overflow:visible;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));transition:transform .2s ease}.roadmap__player[data-facing=left] .roadmap__runner{transform:translate(-.3rem) scaleX(-1)}.roadmap__player[data-facing=right] .roadmap__runner{transform:translate(.3rem)}.roadmap__player[data-flying=true] .roadmap__runner{transform:rotate(24deg)}.roadmap__player[data-facing=left][data-flying=true] .roadmap__runner{transform:translate(-.3rem) scaleX(-1) rotate(24deg)}.roadmap__player[data-flying=true][data-flight-parity="0"]{animation:roadmap-fly-arc-a var(--fly-duration, 1.8s) ease-in-out}.roadmap__player[data-flying=true][data-flight-parity="1"]{animation:roadmap-fly-arc-b var(--fly-duration, 1.8s) ease-in-out}.roadmap__player[data-dragging=true][data-flight-parity="0"]{animation:roadmap-hover-arc-a var(--fly-duration, .4s) ease-in-out}.roadmap__player[data-dragging=true][data-flight-parity="1"]{animation:roadmap-hover-arc-b var(--fly-duration, .4s) ease-in-out}@keyframes roadmap-fly-arc-a{0%,to{transform:translate(-50%,-100%) translateY(0)}50%{transform:translate(-50%,-100%) translateY(-3.4rem)}}@keyframes roadmap-fly-arc-b{0%,to{transform:translate(-50%,-100%) translateY(0)}50%{transform:translate(-50%,-100%) translateY(-3.4rem)}}@keyframes roadmap-hover-arc-a{0%,to{transform:translate(-50%,-100%) translateY(0)}50%{transform:translate(-50%,-100%) translateY(-1.3rem)}}@keyframes roadmap-hover-arc-b{0%,to{transform:translate(-50%,-100%) translateY(0)}50%{transform:translate(-50%,-100%) translateY(-1.3rem)}}.roadmap__jetpack-body{fill:#5a6472;stroke:#33383f;stroke-width:.3}.roadmap__jetpack-flame{fill:#ff9a3c;transform-box:fill-box;transform-origin:top center;animation:roadmap-jet-flame .15s ease-in-out infinite alternate}@keyframes roadmap-jet-flame{0%{transform:scaleY(.85)}to{transform:scaleY(1.2)}}.roadmap__jetpack-smoke{fill:color-mix(in srgb,var(--text-muted) 65%,transparent);transform-box:fill-box;transform-origin:center;animation:roadmap-jet-smoke .6s ease-out infinite}.roadmap__jetpack-smoke--2{animation-delay:.2s}.roadmap__jetpack-smoke--3{animation-delay:.4s}@keyframes roadmap-jet-smoke{0%{transform:translate(0) scale(.4);opacity:.8}to{transform:translate(-4px,4px) scale(1.8);opacity:0}}.roadmap__runner-hair{fill:#3b2a1e}.roadmap__runner-head{fill:#e8b48a}.roadmap__runner-nose{fill:#cf986c}.roadmap__runner-torso{fill:#2f6fb0;stroke:#1f4d80;stroke-width:.2}.roadmap__runner-arm{stroke:#e8b48a;stroke-width:2;stroke-linecap:round;transform-box:fill-box}.roadmap__runner-leg{stroke:#22344c;stroke-width:2.2;stroke-linecap:round}.roadmap__runner-shoe{fill:#14202f}.roadmap__runner-leg-group,.roadmap__runner-shin-group{transform-box:fill-box}.roadmap__player[data-moving=true]:not([data-flying=true]) .roadmap__runner-arm,.roadmap__player[data-moving=true]:not([data-flying=true]) .roadmap__runner-leg-group{animation:roadmap-run-swing .4s ease-in-out infinite alternate}.roadmap__player[data-moving=true]:not([data-flying=true]) .roadmap__runner-shin-group--left{animation:roadmap-run-knee .4s ease-in-out infinite alternate}.roadmap__player[data-moving=true]:not([data-flying=true]) .roadmap__runner-shin-group--right{animation:roadmap-run-knee-mirror .4s ease-in-out infinite alternate}.roadmap__runner-leg-group--left,.roadmap__runner-arm--right{transform-origin:100% 0%}.roadmap__runner-leg-group--right,.roadmap__runner-arm--left{transform-origin:0% 0%;animation-direction:alternate-reverse}.roadmap__runner-shin-group--left{transform-origin:100% 0%}.roadmap__runner-shin-group--right{transform-origin:0% 0%}@keyframes roadmap-run-swing{0%{transform:rotate(-13deg)}to{transform:rotate(13deg)}}@keyframes roadmap-run-knee{0%,to{transform:rotate(0)}50%{transform:rotate(-22deg)}}@keyframes roadmap-run-knee-mirror{0%,to{transform:rotate(0)}50%{transform:rotate(22deg)}}@keyframes roadmap-ping{0%{transform:translate(-50%) scale(.7);opacity:.55}to{transform:translate(-50%) scale(1.8);opacity:0}}.roadmap__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.roadmap__area{fill:url(#roadmap-grass);stroke:none}.roadmap__line{fill:none;stroke:url(#roadmap-line);stroke-width:2;vector-effect:non-scaling-stroke;opacity:.6}.roadmap__road{fill:none;stroke:color-mix(in srgb,#8a6a4a 75%,transparent);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}[data-theme=light] .roadmap__road{stroke:color-mix(in srgb,#b08e64 70%,transparent)}.roadmap__road-dashes{fill:none;stroke:var(--bg);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;opacity:.7}.roadmap__node-pole{position:absolute;width:1px;height:3.6rem;transform:translate(-50%,-100%);border-radius:999px;background:linear-gradient(to top,color-mix(in srgb,var(--text) 18%,transparent),color-mix(in srgb,var(--accent) 70%,white 30%));opacity:.55;z-index:1;pointer-events:none}.roadmap__node-pole[data-active=true]{opacity:.95;box-shadow:0 0 8px color-mix(in srgb,var(--accent) 30%,transparent)}.roadmap__node{position:absolute;transform:translate(-50%,-50%) translateY(-4.6rem);background:none;border:none;padding:0;cursor:var(--cursor-hand);z-index:2}.roadmap__node-dot{display:flex;align-items:center;justify-content:center;width:1.95rem;height:1.95rem;border-radius:50%;background:var(--surface);border:1px solid var(--border);font-size:.9rem;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.roadmap__node:hover .roadmap__node-dot{border-color:var(--accent-hover)}.roadmap__node[data-active=true] .roadmap__node-dot{border:2px solid var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 18%,transparent);transform:scale(1.12);animation:roadmap-node-pop .45s ease}.roadmap__node[data-active=true]:after{content:"";position:absolute;inset:-.9rem;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 55%,transparent) 0%,transparent 70%);animation:roadmap-spotlight-pulse 1.8s ease-in-out infinite;pointer-events:none;z-index:-1}@keyframes roadmap-spotlight-pulse{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:.9;transform:scale(1.1)}}@keyframes roadmap-node-pop{0%{transform:scale(1.12)}45%{transform:scale(1.45) rotate(-6deg)}70%{transform:scale(1.25) rotate(4deg)}to{transform:scale(1.12) rotate(0)}}[data-theme=dark] .roadmap__node[data-active=true] .roadmap__node-dot{box-shadow:0 0 6px color-mix(in srgb,var(--accent) 6%,transparent)}.roadmap__node[data-active=true]:hover .roadmap__node-dot{box-shadow:var(--glow)}.roadmap__years{position:relative;height:1.6rem;margin:.5rem 1.5rem 0;border-top:1px solid var(--border)}.roadmap__month-tick{position:absolute;top:0;width:1px;height:.5rem;background:color-mix(in srgb,var(--border) 80%,transparent);pointer-events:none}.roadmap__month-tick[data-year=true]{height:.9rem;width:1.5px;background:color-mix(in srgb,var(--text-muted) 70%,transparent)}.roadmap__year{position:absolute;top:.9rem;transform:translate(-50%);font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.8rem;color:var(--text-muted);white-space:nowrap}.roadmap__card-row{display:flex;align-items:center;gap:1rem;margin-top:1.5rem}.roadmap__card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.roadmap__card:hover{transform:translateY(-4px);box-shadow:var(--glow);border-color:var(--accent-hover)}.roadmap__card-date{display:inline-block;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;color:var(--accent);font-size:.85rem;margin-bottom:.3rem}.roadmap__card h3{margin:0 0 .3rem;font-size:1.1rem}.roadmap__card p{margin:0;color:var(--text-muted)}.roadmap__arrow--prev{transform:rotate(90deg)}.roadmap__arrow--next{transform:rotate(-90deg)}.roadmap__pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.roadmap__pagination-dot{width:.5rem;height:.5rem;border-radius:50%;padding:0;border:none;background:var(--border);cursor:var(--cursor-hand)}.roadmap__pagination-dot[data-active=true]{background:linear-gradient(135deg,var(--accent),var(--accent-2));width:1.4rem;border-radius:999px}@media(max-width:640px){.roadmap__track{height:21rem;margin:0 .5rem}.roadmap__node-dot{width:1.55rem;height:1.55rem;font-size:.75rem}.roadmap__tree{--tree-scale: .75}.roadmap__years{margin:.5rem .5rem 0}.roadmap__year{font-size:.7rem}.roadmap__card{padding:1.1rem}}#journey:not([data-inview=true]) *,#journey:not([data-inview=true]) *:before,#journey:not([data-inview=true]) *:after,.roadmap__rain:not(.roadmap__rain--active) .roadmap__raindrop{animation-play-state:paused!important}.experience-timeline{display:flex;flex-direction:column}.experience-item{display:grid;grid-template-columns:7.5rem 1.75rem 1fr;column-gap:1.25rem}.experience-item__date{padding-top:.3rem;font-weight:600;text-align:right;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;color:var(--accent);font-size:.8rem;white-space:nowrap}.experience-item__line{display:flex;flex-direction:column;align-items:center}.experience-item__dot{flex:0 0 auto;width:1rem;height:1rem;margin-top:.3rem;border-radius:50%;border:2px solid var(--accent);background:var(--bg);box-shadow:0 0 0 4px var(--bg);transition:background-color .2s ease}.experience-item:hover .experience-item__dot{background:var(--accent)}.experience-item__dot--active{background:var(--accent);animation:experience-pulse 2.4s ease-out infinite}@keyframes experience-pulse{0%{box-shadow:0 0 0 4px var(--bg),0 0 0 4px color-mix(in srgb,var(--accent) 55%,transparent)}to{box-shadow:0 0 0 4px var(--bg),0 0 0 14px transparent}}.experience-item__connector{flex:1;width:2px;margin-top:.3rem;background:linear-gradient(to bottom,var(--accent),var(--border) 70%)}.experience-item:last-child .experience-item__connector{display:none}.experience-item__body{padding-bottom:1.75rem;border-bottom:1px solid var(--border);margin-bottom:1.75rem}.experience-item:last-child .experience-item__body{border-bottom:none;margin-bottom:0;padding-bottom:0}.experience-item__toggle{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;width:100%;background:none;border:none;padding:0;text-align:left;color:inherit}.experience-item__toggle h3{margin:0 0 .2rem;font-size:1.05rem;transition:color .2s ease}.experience-item:hover .experience-item__toggle h3{color:var(--accent)}.experience-item__meta{margin:0;color:var(--text-muted);font-size:.9rem}.experience-item__chevron{flex:0 0 auto;width:.6rem;height:.6rem;margin:.55rem .35rem 0 0;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform .2s ease,margin .2s ease}.experience-item__chevron--open{margin-top:.8rem;transform:rotate(-135deg)}.experience-item__toggle:hover .experience-item__chevron{border-color:var(--accent)}.experience-item__headline{display:flex;align-items:flex-start;gap:.9rem}.experience-item__logo{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;height:2.75rem;padding:0 .7rem;border-radius:.75rem;background:var(--surface);border:1px solid var(--border)}.experience-item__logo-img{height:var(--logo-height, 1.05rem);width:auto;display:block}.experience-item__chip.experience-item__client{display:inline-flex;align-items:center;gap:.55rem;padding:.2rem .85rem;line-height:1;color:var(--text);font-size:.72rem;font-weight:600;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.experience-item__client .experience-item__client-img{height:.95rem;width:auto;flex:0 0 auto}.experience-item__chip .logo-dark,[data-theme=dark] .experience-item__chip .logo-light{display:none}[data-theme=dark] .experience-item__chip .logo-dark{display:block}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.experience-item__logo .logo-dark,[data-theme=dark] .experience-item__logo .logo-light{display:none}[data-theme=dark] .experience-item__logo .logo-dark{display:block}.experience-item__monogram{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-weight:700;font-size:.85rem;letter-spacing:.02em;color:var(--brand)}.experience-item__content{margin-top:1rem}.experience__roles{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.experience__roles li{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;border-bottom:1px dashed var(--border);padding-bottom:.35rem}.experience__role-title{font-weight:600}.experience__role-period{color:var(--text-muted);font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.8rem}.experience-item__bullets{margin:0;padding-left:1.2rem;color:var(--text-muted);display:flex;flex-direction:column;gap:.4rem}.experience-item__chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem}.experience-item__chip{display:inline-flex;align-items:center;min-height:1.7rem;padding:.12rem .55rem;border-radius:999px;border:1px solid var(--border);font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.68rem;color:var(--text-muted)}.experience-item__chip--live{color:var(--accent);border-color:var(--accent);box-shadow:var(--glow)}.experience-roles{list-style:none;margin:0;padding:0 0 0 1.1rem;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:1.4rem}.experience-role{position:relative}.experience-role__dot{position:absolute;left:calc(-1.1rem - 5px);top:.35rem;width:8px;height:8px;border-radius:50%;background:var(--bg);border:2px solid var(--border)}.experience-role__dot--live{background:var(--accent);border-color:var(--accent);box-shadow:var(--glow)}.experience-role__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.experience-item__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}@media(max-width:640px){.experience-item{grid-template-columns:1.5rem 1fr}.experience-item__date{grid-column:1 / -1;text-align:left;padding-top:0;margin-bottom:.4rem}.experience-item__line,.experience-item__body{grid-row:2}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.project-card{height:100%;--cat: var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:1rem;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-4px);box-shadow:var(--glow);border-color:var(--accent-hover)}.project-card__preview{position:relative;aspect-ratio:16 / 9;flex-shrink:0;overflow:hidden;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--cat) 38%,transparent),transparent 60%),linear-gradient(135deg,color-mix(in srgb,var(--bg) 80%,var(--cat) 20%),color-mix(in srgb,var(--bg) 92%,var(--cat) 8%));border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center}.project-card__preview--image{align-items:stretch}.project-card__image{width:100%;height:100%;object-fit:cover;object-position:center}.project-card__image--contain{object-fit:contain;background:#fff;padding:1rem}.project-card[data-category=data]{--cat: #22b8e6}.project-card[data-category=ml]{--cat: #a770ef}.project-card[data-category=apps]{--cat: #2fc590}.project-card[data-category=games]{--cat: #f2784b}.project-card[data-category=automation]{--cat: #e8b33a}.project-card__badge,.project-card__category{position:absolute;bottom:.55rem;padding:.15rem .55rem;border-radius:999px;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.62rem;letter-spacing:.03em}.project-card__badge{right:.7rem;background:var(--cat);color:#0a0f1c;font-weight:700}.project-card__category{left:3.4rem;color:var(--cat);border:1px solid color-mix(in srgb,var(--cat) 55%,transparent);background:color-mix(in srgb,var(--bg) 70%,transparent)}.project-card__preview-bar{position:absolute;top:.6rem;left:.7rem;display:flex;gap:.3rem}.project-card__preview-bar span{width:.45rem;height:.45rem;border-radius:50%;background:var(--border)}.project-card__preview-icon{font-size:3rem;filter:drop-shadow(0 6px 14px color-mix(in srgb,var(--cat) 55%,transparent))}.project-card:hover{border-color:var(--cat)}.project-card__body{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;flex:1}.project-card__head{display:flex;align-items:flex-start;gap:.6rem}.project-card__icon{font-size:1.3rem;line-height:1;flex:0 0 auto}.project-card__head h3{margin:0;font-size:1.1rem}.project-card__period{color:var(--text-muted);font-size:.75rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;white-space:nowrap}.project-card p{color:var(--text-muted);margin:0;font-size:.92rem;flex-grow:1}.project-card__bullets{color:var(--text-muted);margin:0;padding-left:1.1rem;font-size:.9rem;flex-grow:1;display:flex;flex-direction:column;gap:.3rem}.project-card__tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-card__stats{display:flex;flex-wrap:wrap;gap:.9rem;font-size:.78rem;color:var(--text-muted);font-family:JetBrains Mono,ui-monospace,Menlo,monospace}.project-card__stats span{display:inline-flex;align-items:center;gap:.3rem}.project-card__links{display:flex;gap:1rem}[data-theme=light] .project-card p,[data-theme=light] .project-card__bullets,[data-theme=light] .project-card__period,[data-theme=light] .project-card__stats{color:#374361}[data-theme=light] .project-card__category{color:color-mix(in srgb,var(--cat) 45%,#10131a);border-color:color-mix(in srgb,var(--cat) 70%,#10131a);background:#fffc}[data-theme=light] .project-card .tag{color:#374361}.projects-carousel{position:relative}.projects-carousel__track{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .25rem 1.25rem;scrollbar-width:none}.projects-carousel__track::-webkit-scrollbar{display:none}.projects-carousel__track>.project-card{flex:0 0 min(21rem,82vw);height:auto;scroll-snap-align:start}.projects-carousel__track{cursor:grab}.projects-carousel__track[data-dragging=true]{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}.projects-carousel__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.5rem}.projects-carousel__dots{display:flex;gap:.5rem}.projects-carousel__dot{width:.6rem;height:.6rem;padding:0;border:none;border-radius:999px;background:var(--border);cursor:var(--cursor-hand);transition:width .25s ease,background-color .25s ease}.projects-carousel__dot[aria-selected=true]{width:1.6rem;background:var(--accent)}.projects-carousel__controls{display:flex;gap:.6rem}.projects-carousel__hint{margin:0;color:var(--text-muted);font-size:.85rem}.project-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.5rem}.project-filters button{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:.85rem;cursor:var(--cursor-hand)}.project-filters button:hover{border-color:var(--accent-hover);color:var(--accent)}.project-group{margin-bottom:3.5rem;scroll-margin-top:6rem}.project-group__head{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:.4rem}.project-group__head h2{font-size:1.4rem}.project-group__count{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.75rem;color:var(--accent)}.project-group__blurb{margin:0 0 1.5rem;color:var(--text-muted)}.beyond__subhead{margin:0 0 1.25rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.9rem;font-weight:500;color:var(--text-muted)}.beyond__subhead:not(:first-of-type){margin-top:3rem}.hobby-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}.hobby-card{display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:1.1rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.hobby-card:hover{transform:translateY(-4px);box-shadow:var(--glow);border-color:var(--accent-hover)}.hobby-card__media{display:flex;align-items:center;justify-content:center;height:9.5rem;font-size:3.4rem;background:linear-gradient(135deg,var(--hobby-from, #1f7a8c),var(--hobby-to, #6a4fd8));overflow:hidden}.hobby-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.hobby-card:hover .hobby-card__media img{transform:scale(1.06)}.hobby-card__body{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem 1.3rem}.hobby-card__body h3{margin:0;font-size:1.1rem}.hobby-card__body p{margin:0;color:var(--text-muted);font-size:.88rem}.hobby-card__cta{margin-top:.4rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.8rem;color:var(--accent)}.hobby-card--futsal,.hobby-section--futsal{--hobby-from: #2e9e5b;--hobby-to: #1b6b6f}.hobby-card--riding,.hobby-section--riding{--hobby-from: #e0703a;--hobby-to: #b0306a}.hobby-card--photography,.hobby-section--photography{--hobby-from: #4a7bd8;--hobby-to: #7a4fd8}.quest-link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.quest-link{position:relative;display:flex;align-items:center;gap:1rem;padding:1.1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:1rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.quest-link:hover{transform:translateY(-3px);box-shadow:var(--glow);border-color:var(--accent-hover)}.quest-link__icon{display:block;flex:0 0 auto;width:3.6rem;height:3.6rem;overflow:hidden;border-radius:.8rem}.quest-link__icon img{display:block;width:100%;height:100%;object-fit:cover}.quest-link__text{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.quest-link__title{font-weight:600;color:var(--text)}.quest-link__blurb{color:var(--text-muted);font-size:.85rem}.quest-link__count{flex:0 0 auto;min-width:1.8rem;padding:.15rem .55rem;border-radius:999px;text-align:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.8rem;font-weight:600}.hobby-sections{display:flex;flex-direction:column;gap:4rem}.hobby-section{scroll-margin-top:6rem}.hobby-section__head{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.hobby-section__art{width:4.2rem;height:3.2rem;flex:0 0 auto;border-radius:.8rem;object-fit:cover}.hobby-section__head h2{margin:0}.hobby-section__tagline{margin:.15rem 0 0;color:var(--text-muted);font-size:.9rem}.hobby-section__desc{max-width:46rem;margin:0 0 1.5rem;color:var(--text-muted);line-height:1.7}.hobby-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-flow:dense;gap:.75rem}.hobby-gallery img{width:100%;height:14rem;object-fit:cover;border-radius:.9rem;border:1px solid var(--border);transition:transform .3s ease,box-shadow .3s ease}.hobby-gallery img:hover{transform:scale(1.02);box-shadow:var(--glow)}.hobby-section--photography .hobby-gallery img:first-child{grid-column:span 2;grid-row:span 2;height:100%;min-height:14rem}.hobby-banner{position:relative;overflow:hidden;height:13rem;border-radius:1rem}.hobby-banner img{width:100%;height:100%;object-fit:cover}.hobby-banner p{position:absolute;left:1rem;bottom:.8rem;margin:0;padding:.25rem .7rem;border-radius:999px;background:#00000073;color:#fff;font-size:.8rem}.oss-heading{margin:2.5rem 0 .75rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.9rem;font-weight:500;color:var(--text-muted)}.oss-list{list-style:none;margin:0;padding:0;max-width:52rem}.oss-row{display:grid;grid-template-columns:8rem 1fr auto;align-items:baseline;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--border)}.oss-list li:last-child .oss-row{border-bottom:none}.oss-row__badge{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.75rem;color:var(--accent)}.oss-row__title{color:var(--text);min-width:0}.oss-row:hover .oss-row__title{color:var(--accent)}.oss-row__meta{color:var(--text-muted);font-size:.8rem;white-space:nowrap}@media(max-width:640px){.oss-row{grid-template-columns:1fr;gap:.2rem}.oss-row__meta{white-space:normal}}.quest-checklist__count{margin:0 0 1rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.85rem;color:var(--text-muted)}.quest-checklist{counter-reset:none;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;max-width:52rem}.quest-checklist__item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.4rem 1.25rem;padding:1rem 0;border-bottom:1px solid var(--border)}.quest-checklist__item:last-child{border-bottom:none}.quest-checklist__index{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.85rem;font-weight:600;color:var(--accent)}.quest-checklist__title{font-weight:600;min-width:0}.quest-checklist__chip{padding:.2rem .7rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:.75rem;font-weight:600;white-space:nowrap}.quest-checklist__item--stacked{grid-template-columns:auto 1fr}.quest-checklist__desc{grid-column:2;color:var(--text-muted);font-size:.9rem}@media(max-width:640px){.quest-checklist__item{grid-template-columns:auto 1fr}.quest-checklist__chip{grid-column:2;justify-self:start}}@media(max-width:640px){.hobby-section--photography .hobby-gallery img:first-child{grid-column:auto;grid-row:auto;height:14rem}}.quest-tabs{display:flex;flex-wrap:wrap;gap:1.75rem;border-bottom:1px solid var(--border);margin-bottom:2.5rem}.quest-tab{background:none;border:none;padding:.75rem 0;font-size:.95rem;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.quest-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.quest-highlights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem}.quest-highlight-card{overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:1rem;transition:box-shadow .2s ease,border-color .2s ease}.quest-highlight-card:hover{box-shadow:var(--glow);border-color:var(--accent-hover)}.quest-highlight-card__image-link{display:block;height:12rem;background:var(--bg)}.quest-highlight-card__image{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.quest-highlight-card__image--contain{object-fit:contain;padding:4rem;background:var(--bg)}.quest-highlight-card__body{padding:1.25rem;display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.quest-highlight-card__body .quest-opensource-card__head{margin-bottom:0}.quest-highlight-card__body h2{margin:0;font-size:1.1rem}.quest-highlight-card__body p{margin:0;color:var(--text-muted);font-size:.9rem}.quest-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.quest-category-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;transition:box-shadow .2s ease,border-color .2s ease}.quest-category-card:hover{box-shadow:var(--glow);border-color:var(--accent-hover)}.quest-category-card h2{font-size:1.05rem;margin:0 0 1rem}.quest-category-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.1rem}.quest-category-list li{display:flex;flex-direction:column;gap:.15rem;padding-bottom:1.1rem;border-bottom:1px solid var(--border)}.quest-category-list li:last-child{border-bottom:none;padding-bottom:0}.quest-category-list__title{font-weight:600}.quest-category-list__meta{color:var(--accent);font-size:.78rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace}.quest-category-list p{margin:.2rem 0 0;color:var(--text-muted);font-size:.88rem}.quest-list{display:flex;flex-direction:column;gap:1.75rem}.quest-list-item{display:grid;grid-template-columns:8rem 1fr;gap:1.25rem;padding-bottom:1.75rem;border-bottom:1px solid var(--border)}.quest-list-item:last-child{border-bottom:none;padding-bottom:0}.quest-list-item__meta{display:flex;flex-direction:column;gap:.4rem}.quest-list-item__year{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;color:var(--text-muted);font-size:.85rem}.quest-list-item__badge{display:inline-block;align-self:flex-start;padding:.2rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-size:.72rem;font-weight:600}.quest-list-item h3{margin:0 0 .5rem;font-size:1.05rem}.quest-list-item__main{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem}.quest-list-item__text{flex:1;min-width:0}.quest-list-item__text p{margin:0 0 .5rem;color:var(--text-muted);font-size:.92rem}.quest-list-item__subtitle{display:block;margin-bottom:.5rem;color:var(--text-muted);font-size:.85rem}.quest-list-item__text a{display:inline-block;margin-top:.4rem;font-size:.9rem}.quest-list-item__thumb{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:8rem;height:5.5rem;overflow:hidden;border:1px solid var(--border);border-radius:.75rem;background:var(--surface);font-size:2rem}.quest-list-item__thumb img{width:100%;height:100%;object-fit:cover}.quest-list-item__thumb--contain{background:#fff}.quest-list-item__thumb--contain img{object-fit:contain;padding:.5rem}.quest-list-item ul{margin:0;padding-left:1.1rem;color:var(--text-muted);font-size:.92rem;display:flex;flex-direction:column;gap:.3rem}.quest-empty{color:var(--text-muted);font-size:.95rem}.quest-opensource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.quest-opensource-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;transition:box-shadow .2s ease,border-color .2s ease}.quest-opensource-card:hover{box-shadow:var(--glow);border-color:var(--accent-hover)}.quest-opensource-card__head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.85rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;margin-bottom:.6rem}.quest-opensource-card__identity{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.quest-opensource-card__logo{width:3rem;height:3rem;border-radius:.75rem;object-fit:cover;background:var(--bg)}.quest-opensource-card__identity h3{margin:0 0 .25rem}.quest-opensource-card h3{margin:0 0 .4rem;font-size:1.05rem}.quest-opensource-card p{margin:0;color:var(--text-muted);font-size:.9rem}@media(max-width:640px){.quest-list-item{grid-template-columns:1fr}.quest-list-item__main{flex-direction:column-reverse}.quest-list-item__thumb{width:100%}}.buddy{position:fixed;left:1rem;bottom:1rem;z-index:90;will-change:transform,opacity;width:54px;height:52px;pointer-events:none}.buddy__btn{position:relative;display:block;width:100%;height:100%;padding:0;border:none;background:none;pointer-events:auto;cursor:var(--cursor-hand);touch-action:none}.buddy--dance .buddy__bob{animation:buddy-dance .6s ease-in-out infinite}.roadmap__music-host{position:fixed;left:-9999px;top:0;width:200px;height:200px;opacity:0;pointer-events:none}.buddy__prop{display:none;position:absolute;pointer-events:none}.buddy__prop--bike{left:-5px;bottom:-14px;color:#44506b}.buddy[data-dir=left] .buddy__prop--bike{transform:scaleX(-1)}.buddy[data-dir=left] .buddy__prop--ball{animation-name:buddy-ball-left}[data-theme=dark] .buddy__prop--bike{color:#cdd6e8}.buddy__prop--bike circle,.buddy__prop--bike path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.buddy__prop--bike .buddy__bike-frame{stroke:#ff8a4c}.buddy__wheel{transform-box:fill-box;transform-origin:center;animation:buddy-wheel .5s linear infinite}.buddy__prop--ball{left:0;bottom:-4px;width:16px;height:16px;animation:buddy-ball 1.6s ease-in-out infinite}.buddy[data-play=ride] .buddy__prop--bike,.buddy[data-play=football] .buddy__prop--ball,.buddy[data-play=laptop] .buddy__prop--laptop,.buddy[data-play=photo] .buddy__prop--camera,.buddy[data-play=search] .buddy__prop--search,.buddy[data-play=coffee] .buddy__prop--coffee{display:block}.buddy__prop--laptop{left:7px;bottom:-2px}.buddy__prop--jet{left:20px;bottom:-14px;transform-origin:50% 0;animation:buddy-jet .18s ease-in-out infinite alternate}.buddy--flying .buddy__prop--jet{display:block}.buddy--flying .buddy__bob{animation:buddy-hover 1.2s ease-in-out infinite}.buddy--flying .buddy__shadow{display:none}.buddy__lap-screen{fill:#2a3347;stroke:#8392b3;stroke-width:.9}.buddy__lap-logo{fill:#6ee7ff;animation:buddy-logo 1.2s ease-in-out infinite alternate}.buddy--typing .buddy__arm{transition-duration:.12s}.buddy--typing .buddy__arm circle{opacity:0}.buddy__type-hand{fill:#b8c4de;stroke:#7788ad;stroke-width:.9;animation:buddy-type .3s ease-in-out infinite alternate}.buddy__type-hand--b{animation-delay:.15s}.buddy__lap-base{fill:#c5cde0;stroke:#8392b3;stroke-width:.8;stroke-linejoin:round}.buddy__prop--camera{left:28px;bottom:4px;width:22px;height:16px}.buddy__flash{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:radial-gradient(circle,#fff 0%,rgb(255 255 255 / .7) 30%,transparent 70%);opacity:0}.buddy--flash .buddy__flash{animation:buddy-flash .25s ease-out}.buddy__prop--search{left:32px;top:6px;color:#44506b;transform-origin:78% 78%;animation:buddy-search 1.6s ease-in-out infinite}[data-theme=dark] .buddy__prop--search{color:#cdd6e8}.buddy__prop--coffee{left:36px;bottom:6px;animation:buddy-sip 2.4s ease-in-out infinite}.buddy__steam path{fill:none;stroke:#aeb9cf;stroke-width:1.2;stroke-linecap:round;animation:buddy-steam 1.4s ease-in-out infinite}.buddy__steam path:nth-child(2){animation-delay:.6s}.buddy__fit,.buddy__headphones,.buddy__notes{display:none}.buddy[data-outfit=tika] .buddy__fit--tika,.buddy[data-outfit=marigold] .buddy__fit--marigold,.buddy[data-outfit=topi] .buddy__fit--topi,.buddy[data-outfit=witch] .buddy__fit--witch,.buddy[data-outfit=santa] .buddy__fit--santa,.buddy[data-outfit=party] .buddy__fit--party,.buddy[data-outfit=heart] .buddy__fit--heart,.buddy[data-outfit=beanie] .buddy__fit--beanie,.buddy[data-outfit=flower] .buddy__fit--flower,.buddy[data-outfit=sun] .buddy__fit--sun,.buddy[data-outfit=rain] .buddy__fit--rain,.buddy[data-outfit=leaf] .buddy__fit--leaf,.buddy[data-outfit=leaf][data-scarf] .buddy__fit--leafscarf,.buddy[data-play=music] :is(.buddy__headphones,.buddy__notes){display:inline}.buddy__fit--tika circle{fill:#e53935;stroke:#fff;stroke-width:.6}.buddy__fit--marigold path{fill:none;stroke-linecap:round}.buddy__garland-a{stroke:#ff9f1c;stroke-width:4.4;stroke-dasharray:.1 4.4}.buddy__garland-b{stroke:#ffd23f;stroke-width:2.4;stroke-dasharray:.1 4.4;stroke-dashoffset:-2.2}.buddy__topi-cap{fill:#15141a;stroke:#000;stroke-width:.8;stroke-linejoin:round}.buddy__topi-sheen{fill:none;stroke:#ffffff29;stroke-width:1.2;stroke-linecap:round}.buddy__flag-shape{fill:#dc143c;stroke:#003893;stroke-width:.9;stroke-linejoin:round}.buddy__flag-mark{fill:#fff}.buddy__witch-hat{fill:#3b2a5a;stroke:#1c1230;stroke-width:.9;stroke-linejoin:round}.buddy__witch-band{fill:#ff8a4c}.buddy__witch-buckle{fill:#ffd23f;stroke:#7a4b12;stroke-width:.6}.buddy[data-outfit=witch] .buddy__bubble,.buddy[data-outfit=santa] .buddy__bubble,.buddy[data-outfit=party] .buddy__bubble,.buddy[data-outfit=heart] .buddy__bubble{bottom:calc(100% + 40px)}.buddy__santa-hat{fill:#d93a3a;stroke:#8f1d1d;stroke-width:.9;stroke-linejoin:round}.buddy__santa-trim{fill:#fff;stroke:#c9d1e3;stroke-width:.8}.buddy__party-hat{fill:#7c4dff;stroke:#4a2bb0;stroke-width:.9;stroke-linejoin:round}.buddy__party-stripe{fill:none;stroke:#ffd23f;stroke-width:2;stroke-linecap:round}.buddy__party-pom{fill:#ff8a4c}.buddy__heart-bow{fill:#ff4d6d;stroke:#b3213f;stroke-width:.8;stroke-linejoin:round}.buddy__season{fill:var(--season, #3b6fd8);stroke:#0000004d;stroke-width:.8;stroke-linejoin:round}.buddy__season--light{fill:color-mix(in srgb,var(--season, #3b6fd8) 70%,#fff)}.buddy__pom{fill:#fff;stroke:#c9d1e3;stroke-width:.8}.buddy__flower-core{fill:#ffd23f;stroke:#00000040;stroke-width:.6}.buddy__straw{fill:#f2d27a;stroke:#a9812c;stroke-width:.8;stroke-linejoin:round}.buddy__sprig{fill:#4caf50;stroke:#00000040;stroke-width:.6;stroke-linejoin:round}.buddy__sun-pin{fill:#ffcf33;stroke:#e08a2e;stroke-width:.8}.buddy__sun-rays{fill:none;stroke:#ffcf33;stroke-width:1.1;stroke-linecap:round}.buddy__zip{fill:none;stroke:#ffffff8c;stroke-width:.9;stroke-dasharray:1 1}.buddy__button{fill:#fff;stroke:#0000004d;stroke-width:.5}.buddy__scarf-stripe{fill:none;stroke:#ffffff73;stroke-width:1.2;stroke-linecap:round}.buddy__scarf-fringe{fill:none;stroke:var(--season, #d9482e);stroke-width:.9;stroke-linecap:round}.buddy__leaf-vein{fill:none;stroke:#0000004d;stroke-width:.9;stroke-linecap:round}.buddy__hp-band{fill:none;stroke:#2a3347;stroke-width:3;stroke-linecap:round}.buddy__hp-cup{fill:#ff8a4c;stroke:#2a3347;stroke-width:1}.buddy__notes text{fill:var(--accent);font-size:9px;font-weight:700;opacity:0;animation:buddy-note 2s ease-out infinite}.buddy__notes text:nth-child(2){animation-delay:.9s}.buddy--hidden .buddy__btn{opacity:0;pointer-events:none}.buddy__btn{transition:opacity .2s ease}.buddy[data-play=football] .buddy__bob{animation:buddy-kick .8s ease-in-out infinite}.buddy[data-play=ride] .buddy__bob{animation:buddy-ride .5s ease-in-out infinite}.buddy__shadow{position:absolute;left:22%;bottom:-6px;width:56%;height:6px;border-radius:50%;background:radial-gradient(ellipse at center,rgb(10 20 50 / .22),transparent 70%);pointer-events:none;will-change:transform,opacity;animation:buddy-shadow 5s cubic-bezier(.37,0,.63,1) infinite}[data-theme=dark] .buddy__shadow{background:radial-gradient(ellipse at center,rgb(130 200 255 / .3),transparent 70%)}@keyframes buddy-shadow{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(.8);opacity:.7}}.buddy__bob{display:block;width:100%;height:100%;will-change:transform;backface-visibility:hidden;animation:buddy-bob 5s cubic-bezier(.37,0,.63,1) infinite}.buddy__btn--tickled .buddy__bob{animation:buddy-shy 1.8s ease-in-out infinite}.buddy__btn--tickled .buddy__head-group{transform:translate(-1px,2px) rotate(-7deg)}.buddy__btn--tickled .buddy__eyes,.buddy__btn--tickled .buddy__mouth{display:none}.buddy__btn--tickled .buddy__eyes-happy,.buddy__btn--tickled .buddy__grin,.buddy__btn--tickled .buddy__blush,.buddy__btn--tickled .buddy__icon--shy{display:inline}.buddy__blush{display:none;fill:#ff7aa8;opacity:.6}.buddy__icon--shy{fill:#7fd3ff}.buddy__head-hit{position:absolute;top:8%;left:14%;width:72%;height:46%}.buddy{--b-shell-hi: #ffffff;--b-shell-mid: #eef2f9;--b-shell-lo: #c6cfe0;--b-part-top: #cdd6e8;--b-part-bottom: #93a2c2;--b-line: #7788ad;--b-screen-edge: #0b1829;--b-screen-glow: #24566f;--b-eye-top: #8af4ff;--b-eye-bottom: #2fc2e6}[data-theme=dark] .buddy{--b-shell-hi: #f1f5fd;--b-shell-mid: #d6deef;--b-shell-lo: #93a2c3;--b-part-top: #bcc7de;--b-part-bottom: #8392b3;--b-line: #6f7fa3;--b-screen-edge: #040a14;--b-screen-glow: #1d4d66;--b-eye-top: #9bf7ff;--b-eye-bottom: #3bd0f0}.buddy__hero,.buddy__img{display:block;width:100%;height:100%;object-fit:contain;overflow:visible;filter:none}[data-theme=dark] .buddy__hero,[data-theme=dark] .buddy__img{filter:none}.buddy__shell{fill:url(#buddy-shell);stroke:var(--b-line);stroke-width:.9}[data-theme=dark] .buddy__shell{stroke:#7fd8e673;stroke-width:.8}.buddy__part{fill:url(#buddy-part);stroke:var(--b-line);stroke-width:.9}.buddy__seam{fill:none;stroke:var(--b-line);stroke-width:1;stroke-linejoin:round;opacity:.8}.buddy__shine{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;opacity:.85}.buddy__screen{fill:url(#buddy-screen)}.buddy__arm--l{transform-origin:22px 46px;transform:translate(calc(var(--arm-l-k, 0) * -10px),calc(var(--arm-l-k, 0) * -3px)) rotate(var(--arm-l, 0deg));transition:transform .4s ease-in-out}.buddy__arm--r{transform-origin:58px 46px;transform:translate(calc(var(--arm-r-k, 0) * 10px),calc(var(--arm-r-k, 0) * -3px)) rotate(var(--arm-r, 0deg));transition:transform .4s ease-in-out}.buddy__head-group{transform-origin:40px 40px;transform:translate(var(--head-x, 0px),var(--head-y, 0px)) rotate(var(--head-rot, 0deg));transition:transform .7s ease-in-out}.buddy__face{transform:translate(calc(var(--look-x, 0px) + var(--track-x, 0px)),var(--track-y, 0px));transition:transform .3s ease-out}.buddy__eye{fill:url(#buddy-eye);transform-box:fill-box;transform-origin:center bottom;transition:transform .08s ease-in}.buddy--blink .buddy__eye{transform:scaleY(.1)}.buddy__mouth{fill:var(--b-eye-bottom)}.buddy__eyes-happy{fill:none;stroke:var(--b-eye-top);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.buddy__eyes-happy,.buddy__grin{display:none}.buddy__grin{fill:none;stroke:var(--b-eye-bottom);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.buddy__eyes-round,.buddy__eyes-sad,.buddy__eyes-sleep,.buddy__eyes-love,.buddy__mouth-o,.buddy__mouth-sad,.buddy__mouth-flat,.buddy__icon{display:none}.buddy__icon{transform:translateY(var(--icon-lift, 0px))}.buddy[data-outfit=witch]{--icon-lift: -22px}.buddy[data-outfit=party]{--icon-lift: -14px}.buddy[data-outfit=santa]{--icon-lift: -8px}.buddy[data-outfit=beanie]{--icon-lift: -9px}.buddy:is([data-outfit=topi],[data-outfit=heart],[data-outfit=leaf]){--icon-lift: -7px}.buddy:is([data-outfit=flower],[data-outfit=sun],[data-outfit=rain]){--icon-lift: -5px}.buddy__eyes-round,.buddy__eyes-sad,.buddy__eyes-love,.buddy__mouth-o{fill:url(#buddy-eye)}.buddy__mouth-o{fill:var(--b-eye-bottom)}.buddy__eyes-sleep,.buddy__mouth-sad,.buddy__mouth-flat{fill:none;stroke:var(--b-eye-bottom);stroke-width:2;stroke-linecap:round}.buddy__eyes-sleep{stroke:var(--b-eye-top);stroke-width:2.4}.buddy[data-mood=surprised] :is(.buddy__eyes,.buddy__mouth),.buddy[data-mood=sad] :is(.buddy__eyes,.buddy__mouth),.buddy[data-mood=sleepy] :is(.buddy__eyes,.buddy__mouth),.buddy[data-mood=thinking] .buddy__mouth,.buddy[data-mood=love] .buddy__eyes{display:none}.buddy[data-mood=surprised] :is(.buddy__eyes-round,.buddy__mouth-o,.buddy__icon--wow),.buddy[data-mood=sad] :is(.buddy__eyes-sad,.buddy__mouth-sad),.buddy[data-mood=sleepy] :is(.buddy__eyes-sleep,.buddy__mouth-flat,.buddy__icon--sleep),.buddy[data-mood=thinking] :is(.buddy__mouth-flat,.buddy__icon--think),.buddy[data-mood=love] :is(.buddy__eyes-love,.buddy__icon--hearts){display:inline}.buddy[data-mood=thinking] .buddy__eyes{transform:translate(-2px,-2px)}.buddy__eyes-wink,.buddy__eyes-cool,.buddy__eyes-star,.buddy__eyes-dizzy{display:none}.buddy__eye-open{fill:url(#buddy-eye)}.buddy__wink-line{fill:none;stroke:var(--b-eye-top);stroke-width:2.6;stroke-linecap:round}.buddy__shade{fill:#0a1220;stroke:var(--b-eye-top);stroke-width:1.3}.buddy__shade-bridge{fill:none;stroke:var(--b-eye-top);stroke-width:1.6;stroke-linecap:round}.buddy__shade-glint{fill:none;stroke:#fff;stroke-width:1.2;stroke-linecap:round;opacity:.55}.buddy__eyes-star{fill:#ffd45a}.buddy__eyes-dizzy{fill:none;stroke:var(--b-eye-top);stroke-width:1.5}.buddy[data-mood=wink] .buddy__eyes,.buddy[data-mood=cool] .buddy__eyes,.buddy[data-mood=starstruck] :is(.buddy__eyes,.buddy__mouth),.buddy[data-mood=dizzy] :is(.buddy__eyes,.buddy__mouth){display:none}.buddy[data-mood=wink] .buddy__eyes-wink,.buddy[data-mood=cool] .buddy__eyes-cool,.buddy[data-mood=starstruck] :is(.buddy__eyes-star,.buddy__mouth-o,.buddy__icon--sparkle),.buddy[data-mood=dizzy] :is(.buddy__eyes-dizzy,.buddy__grin,.buddy__icon--dizzy){display:inline}.buddy__icon--sparkle,.buddy__icon--dizzy{fill:#ffd45a}.buddy[data-mood=starstruck] .buddy__arm--l{transform:rotate(40deg)}.buddy[data-mood=starstruck] .buddy__arm--r{transform:rotate(-40deg)}.buddy[data-mood=dizzy] .buddy__arm--l{transform:rotate(28deg)}.buddy[data-mood=dizzy] .buddy__arm--r{transform:rotate(-28deg)}.buddy[data-mood=dizzy] .buddy__bob{animation:buddy-dizzy .7s ease-in-out infinite}.buddy__cloud{fill:var(--surface);stroke:var(--accent);stroke-width:1}.buddy__icon text{fill:var(--accent);font:700 9px sans-serif}.buddy__icon--wow text{font-size:14px}.buddy__icon--sleep text{font-weight:700}.buddy__heart{fill:#ff6b8b;transform-box:fill-box;transform-origin:center;opacity:0;animation:buddy-heart 2.4s ease-out infinite}.buddy__heart:nth-child(2){animation-delay:.7s}.buddy__heart:nth-child(3){animation-delay:1.4s}.buddy[data-mood=thinking] .buddy__arm--r{transform:rotate(118deg) scaleY(.7)}.buddy[data-mood=surprised] .buddy__arm--l{transform:rotate(55deg)}.buddy[data-mood=surprised] .buddy__arm--r{transform:rotate(-55deg)}.buddy[data-mood=love] .buddy__arm--l{transform:rotate(35deg)}.buddy[data-mood=love] .buddy__arm--r{transform:rotate(-35deg)}.buddy[data-mood=sad] .buddy__arm--l{transform:rotate(-8deg)}.buddy[data-mood=sad] .buddy__arm--r{transform:rotate(8deg)}.buddy__bubble{--bubble-fill: color-mix(in srgb, var(--surface) 38%, transparent);--bubble-stroke: color-mix(in srgb, var(--accent) 65%, transparent);position:absolute;bottom:calc(100% + 18px);transition:bottom .2s ease;display:grid;width:max-content;max-width:11rem;padding:.6rem .9rem;border-radius:14px;background:linear-gradient(135deg,#ffffff4d,#ffffff0a 60%),var(--bubble-fill);backdrop-filter:blur(12px) saturate(1.5);-webkit-backdrop-filter:blur(12px) saturate(1.5);color:var(--text);font-size:.82rem;line-height:1.4;text-align:left;box-shadow:inset 0 1px #ffffff59,0 6px 18px #0a14321f;pointer-events:none;animation:buddy-pop .22s ease-out}[data-theme=dark] .buddy__bubble{background:linear-gradient(135deg,#ffffff24,#ffffff05 60%),var(--bubble-fill);box-shadow:inset 0 1px #ffffff29,0 6px 18px #0000004d}.buddy__outline{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.buddy__outline path{fill:var(--bubble-fill);stroke:var(--bubble-stroke);stroke-width:1;stroke-linejoin:round}.buddy:is([data-mood=thinking],[data-mood=surprised],[data-mood=sleepy],[data-mood=love],[data-mood=starstruck],[data-mood=dizzy]) .buddy__bubble{bottom:calc(100% + 38px)}.buddy[data-side=left] .buddy__bubble{left:-2px;transform-origin:bottom left}.buddy[data-side=right] .buddy__bubble{right:-2px;transform-origin:bottom right}.buddy__typing,.buddy__text{grid-area:1 / 1;position:relative}.buddy__typing{display:flex;align-items:center;gap:4px;animation:buddy-typing-out .01s linear .7s forwards}.buddy__typing i{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:buddy-dot .6s ease-in-out infinite}.buddy__typing i:nth-child(2){animation-delay:.12s}.buddy__typing i:nth-child(3){animation-delay:.24s}.buddy__text{opacity:0;animation:buddy-text-in .2s ease-out .7s forwards}@keyframes buddy-bob{0%,to{transform:translateZ(0) rotate(-.8deg)}50%{transform:translate3d(0,-5px,0) rotate(.8deg)}}@keyframes buddy-dance{0%,to{transform:translateZ(0) rotate(-6deg)}25%,75%{transform:translate3d(0,-10px,0) rotate(0)}50%{transform:translateZ(0) rotate(6deg)}}@keyframes buddy-jet{0%{transform:scaleY(.75)}to{transform:scaleY(1.2)}}@keyframes buddy-hover{0%,to{transform:translateZ(0) rotate(-3deg)}50%{transform:translate3d(0,-3px,0) rotate(3deg)}}@keyframes buddy-logo{0%{opacity:.5}to{opacity:1}}@keyframes buddy-flash{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.4)}}@keyframes buddy-type{0%{transform:translateY(0)}to{transform:translateY(-1.8px)}}@keyframes buddy-search{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}@keyframes buddy-sip{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes buddy-steam{0%{opacity:0;transform:translateY(2px)}50%{opacity:.9}to{opacity:0;transform:translateY(-3px)}}@keyframes buddy-note{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes buddy-kick{0%,to{transform:translateZ(0) rotate(-5deg)}30%{transform:translate3d(0,-6px,0) rotate(4deg)}60%{transform:translateZ(0) rotate(7deg)}}@keyframes buddy-ride{0%,to{transform:translate3d(0,-1px,0) rotate(2deg)}50%{transform:translate3d(0,-3px,0) rotate(3deg)}}@keyframes buddy-wheel{to{transform:rotate(360deg)}}@keyframes buddy-ball-left{0%,to{transform:translate(50px) rotate(0)}25%{transform:translate(13px,-14px) rotate(-180deg)}50%{transform:translate(-24px) rotate(-360deg)}75%{transform:translate(13px,-14px) rotate(-540deg)}}@keyframes buddy-ball{0%,to{transform:translate(-12px) rotate(0)}25%{transform:translate(25px,-14px) rotate(180deg)}50%{transform:translate(62px) rotate(360deg)}75%{transform:translate(25px,-14px) rotate(540deg)}}@keyframes buddy-dizzy{0%,to{transform:translate3d(-1px,0,0) rotate(-6deg)}50%{transform:translate3d(1px,0,0) rotate(6deg)}}@keyframes buddy-shy{0%,to{transform:translateZ(0) rotate(-2deg)}50%{transform:translate3d(1px,1px,0) rotate(2deg)}}@keyframes buddy-heart{0%{opacity:0;transform:translateY(5px) scale(.5)}25%{opacity:1}to{opacity:0;transform:translateY(-12px) scale(1.1)}}@keyframes buddy-pop{0%{opacity:0;transform:translateY(6px) scale(.94)}to{opacity:1;transform:none}}@keyframes buddy-dot{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-3px);opacity:1}}@keyframes buddy-typing-out{to{opacity:0;visibility:hidden}}@keyframes buddy-text-in{to{opacity:1}}@media(prefers-reduced-motion:reduce){.buddy__bob,.buddy__shadow,.buddy__btn--tickled .buddy__bob,.buddy__eye{animation:none}}.activity-status{color:var(--text-muted)}.activity-status a{color:var(--accent)}.activity-stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--border);border-radius:1rem;margin-bottom:1.5rem}.activity-stats__item{display:flex;flex-direction:column;gap:.3rem;padding:1.5rem;border-left:1px solid var(--border)}.activity-stats__item:first-child{border-left:none}.activity-stats__value{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:2rem;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.activity-stats__label{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.activity-panel{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;margin-bottom:1.5rem;min-width:0}.activity-panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.activity-panel__title{margin:0;color:var(--text-muted)}.activity-panel__title strong{color:var(--text)}.activity-panel__label{margin:0 0 1.25rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.activity-panel__note{margin:1.5rem 0 0;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.75rem;color:var(--text-muted)}.activity-years{display:flex;flex-wrap:wrap;gap:.35rem}.activity-years__tab{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.75rem;padding:.3rem .6rem;border:1px solid transparent;border-radius:.4rem;background:none;color:var(--text-muted);cursor:var(--cursor-hand)}.activity-years__tab:hover{color:var(--text)}.activity-years__tab[aria-selected=true]{color:var(--accent);border-color:var(--accent);box-shadow:var(--glow)}.activity-graph{--cell-gap: 3px;--level-1: #9be9a8;--level-2: #40c463;--level-3: #30a14e;--level-4: #216e39}[data-theme=dark] .activity-graph{--level-1: #0e4429;--level-2: #006d32;--level-3: #26a641;--level-4: #39d353}.activity-graph__scroll{overflow-x:auto;padding-bottom:.5rem}.activity-graph__inner{display:flex;gap:.6rem;min-width:640px}.activity-graph__side{display:flex;flex-direction:column}.activity-graph__months-spacer{height:1.1rem}.activity-graph__weekdays{flex:1;display:grid;grid-template-rows:repeat(7,1fr);row-gap:var(--cell-gap);font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.6rem;color:var(--text-muted)}.activity-graph__weekdays span{display:flex;align-items:center}.activity-graph__body{flex:1;min-width:0}.activity-graph__months{display:grid;column-gap:var(--cell-gap);height:1.1rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.6rem;color:var(--text-muted)}.activity-graph__months span{white-space:nowrap;overflow:visible}.activity-graph__grid{display:grid;column-gap:var(--cell-gap)}.activity-graph__week{display:grid;grid-template-rows:repeat(7,auto);row-gap:var(--cell-gap)}.activity-graph__cell{display:block;aspect-ratio:1;border-radius:2px;background:color-mix(in srgb,var(--text) 8%,transparent)}.activity-graph__legend .activity-graph__cell{width:12px}.activity-graph__cell--empty{background:none}.activity-graph__cell[data-level="1"]{background:var(--level-1)}.activity-graph__cell[data-level="2"]{background:var(--level-2)}.activity-graph__cell[data-level="3"]{background:var(--level-3)}.activity-graph__cell[data-level="4"]{background:var(--level-4)}.activity-graph__legend{display:flex;align-items:center;gap:.3rem;margin-top:.75rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.65rem;color:var(--text-muted)}.activity-graph__legend span:first-child{margin-right:.2rem}.activity-graph__legend span:last-child{margin-left:.2rem}.activity-split{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.activity-split .activity-panel{margin-bottom:0}.activity-langbar{display:flex;height:10px;border-radius:999px;overflow:hidden;gap:2px}.activity-langbar span{display:block;height:100%}.activity-langlist{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.25rem;margin:1.25rem 0 0;padding:0;font-size:.85rem}.activity-langlist li{display:flex;align-items:center;gap:.4rem}.activity-langlist li span:last-child{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.7rem;color:var(--text-muted)}.activity-langlist__dot{width:8px;height:8px;border-radius:50%}.activity-recent{list-style:none;margin:0;padding:0}.activity-recent li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.activity-recent li:last-child{border-bottom:none}.activity-recent a:hover{color:var(--accent)}.activity-recent span{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.7rem;color:var(--text-muted);white-space:nowrap}@media(max-width:800px){.activity-stats{grid-template-columns:repeat(2,1fr)}.activity-stats__item:nth-child(3){border-left:none}.activity-stats__item:nth-child(n+3){border-top:1px solid var(--border)}.activity-split{grid-template-columns:1fr}}.blog-intro{color:var(--text-muted);margin:0 0 2rem}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1.5rem;margin-bottom:2rem}.blog-post-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:1rem;overflow:hidden;color:inherit;transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.blog-post-card:hover{box-shadow:var(--glow);border-color:var(--accent-hover);transform:translateY(-2px)}.blog-post-card__cover{aspect-ratio:16 / 9;background:var(--bg-alt);overflow:hidden}.blog-post-card__cover img{width:100%;height:100%;object-fit:cover;display:block}.blog-post-card__body{display:flex;flex-direction:column;gap:.6rem;padding:1.25rem 1.5rem 1.5rem;flex:1}.blog-post-card__body h3{margin:0;font-size:1.15rem}.blog-post-card__meta{margin:0;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.72rem;color:var(--text-muted)}.blog-post-card__category{align-self:flex-start;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:999px;padding:.1rem .55rem}.tag--category{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.quest-tab__count{margin-left:.25rem;font-size:.72rem;color:var(--text-muted)}.blog-post-card__summary{margin:0;color:var(--text-muted);font-size:.92rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.blog-post-card__tags{display:flex;flex-wrap:wrap;gap:.4rem}.blog-post-card__cta{margin-top:auto;padding-top:.5rem;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.8rem;color:var(--accent)}.blog-article{max-width:46rem;margin:0 auto}.blog-article__header{margin-bottom:2rem}.blog-article__header h1{margin:.5rem 0 1rem}.blog-article__content{line-height:1.75}.blog-article__content h2,.blog-article__content h3{margin:2.2rem 0 .8rem}.blog-article__content a{color:var(--accent);text-decoration:underline}.blog-article__content figure{margin:2rem 0}.blog-article__content img{max-width:100%;height:auto;border-radius:.75rem;border:1px solid var(--border);display:block;margin:0 auto}.blog-article__content figcaption{margin-top:.6rem;text-align:center;font-size:.85rem;color:var(--text-muted)}.blog-article__content code{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.88em;background:var(--surface);padding:.15rem .4rem;border-radius:.3rem}.blog-article__content .code-block{margin:1.5rem 0;border-radius:.75rem;overflow:hidden;background:#1e222a;border:1px solid #2c313c;box-shadow:0 8px 24px #0000002e}.code-block__bar{display:flex;align-items:center;gap:.75rem;padding:.55rem .9rem;background:#282c34;border-bottom:1px solid #2c313c}.code-block__dots{display:inline-flex;gap:.4rem}.code-block__dots i{width:.7rem;height:.7rem;border-radius:50%;background:#ff5f56}.code-block__dots i:nth-child(2){background:#ffbd2e}.code-block__dots i:nth-child(3){background:#27c93f}.code-block__lang{margin-right:auto;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#7f848e}.code-block__copy{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:.72rem;color:#abb2bf;background:transparent;border:1px solid #3e4451;border-radius:.4rem;padding:.15rem .6rem;cursor:pointer}.code-block__copy:hover{color:#fff;border-color:#61afef}.blog-article__content pre{margin:0;padding:1rem 1.25rem;overflow-x:auto;background:transparent;border:none;border-radius:0;tab-size:4}.blog-article__content pre code{display:block;font-size:.86rem;line-height:1.65;background:none;padding:0;color:#abb2bf}.hljs-comment,.hljs-quote{color:#7f848e;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-doctag,.hljs-formula{color:#c678dd}.hljs-string,.hljs-regexp,.hljs-addition{color:#98c379}.hljs-number,.hljs-literal,.hljs-symbol,.hljs-bullet{color:#d19a66}.hljs-title,.hljs-title.function_,.hljs-section{color:#61afef}.hljs-title.class_,.hljs-type,.hljs-built_in{color:#e6c07b}.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-name,.hljs-deletion{color:#e06c75}.hljs-meta,.hljs-operator,.hljs-link{color:#56b6c2}.hljs-params,.hljs-subst,.hljs-punctuation{color:#abb2bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.blog-article__content blockquote{margin:1.5rem 0;padding-left:1rem;border-left:3px solid var(--accent);color:var(--text-muted)}.blog-article__content table{width:100%;border-collapse:collapse;margin:1.5rem 0}.blog-article__content th,.blog-article__content td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.blog-medium-link{align-self:flex-start}.contact p{color:var(--text-muted);margin-bottom:2rem}.contact__links{display:flex;flex-wrap:wrap;gap:1rem}.footer{position:relative;overflow:hidden;border-top:1px solid var(--border)}.footer__glow{position:absolute;inset:0;background:radial-gradient(circle at bottom left,color-mix(in srgb,var(--accent) 5%,transparent) 0%,transparent 40%),radial-gradient(circle at bottom right,color-mix(in srgb,var(--accent-2) 5%,transparent) 0%,transparent 40%);background-repeat:no-repeat,no-repeat;background-position:bottom left,bottom right;background-size:30% 100%,30% 100%;pointer-events:none}.footer__inner{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:2rem 1.5rem 3rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;color:var(--text-muted);font-size:.85rem}
