:root{--bg: #0a1410;--bg-2: #0f1e18;--surface: #15241d;--border: #2a4a3a;--ink: #e8dcc4;--ink-dim: #b5ad94;--accent: #e0bd6f;--accent-2: #8fc78d;--accent-3: #4a7c59;--danger: #d97a5a;--focus: #f7c75a;--font-pixel: "Silkscreen", "Press Start 2P", monospace;--font-mono: "JetBrains Mono", "VT323", monospace;--font-body: "Inter", -apple-system, system-ui, sans-serif;--font-serif: "Cormorant Garamond", "Times New Roman", serif;--radius: 4px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 10px;--text-display: 800 clamp(44px, 7vw, 82px) / .92 var(--font-body);--text-headline: 800 clamp(28px, 4vw, 46px) / 1.03 var(--font-body);--text-title: 900 20px / 1.12 var(--font-body);--text-body: 400 16px / 1.6 var(--font-body);--text-label: 400 13px / 1.4 var(--font-mono);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--hud-h: 56px;--bottomnav-h: 64px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body{height:100%}body{background:linear-gradient(to bottom,#081310,#061310 52%,#071b18),var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg,video{display:block;max-width:100%}button{background:none;border:none;color:inherit;font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-40px;left:8px;z-index:10001;background:var(--accent);color:var(--bg);padding:8px 16px;font-family:var(--font-pixel);font-size:11px;border-radius:var(--radius);text-decoration:none}.skip-link:focus{top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page{position:relative;z-index:1;min-height:100vh;padding-top:0;padding-bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0))}@media (min-width: 768px){.page{padding-top:var(--hud-h);padding-bottom:var(--space-8)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.scanlines:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.18) 2px,rgba(0,0,0,.18) 3px);z-index:9999;mix-blend-mode:multiply}.pixel{image-rendering:pixelated;image-rendering:crisp-edges;shape-rendering:crispEdges}:root{--pixel-base: 13px;--pixel-h1: 40px;--pixel-h2: 18px;--mono-base: 14px;--mono-sm: 12px}svg.pixel,canvas.pixel{image-rendering:pixelated;image-rendering:crisp-edges;shape-rendering:crispEdges}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2)}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}::selection{background:var(--accent);color:var(--bg)}.page-stars{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:linear-gradient(to bottom,#040c0a2e,#04100e6b),url(/assets/bg/site-night-sky.svg) center top / cover no-repeat,var(--bg)}.page-stars:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1px 1px at 3% 97%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 11% 94%,var(--accent) 50%,transparent 51%),radial-gradient(2px 2px at 19% 90%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 27% 96%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 35% 89%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 43% 93%,#e8dcc4 50%,transparent 51%),radial-gradient(2px 2px at 52% 95%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 61% 88%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 69% 97%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 77% 91%,#e8dcc4 50%,transparent 51%),radial-gradient(2px 2px at 84% 94%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 92% 89%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 7% 82%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 23% 78%,var(--accent) 50%,transparent 51%),radial-gradient(2px 2px at 38% 80%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 55% 74%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 71% 83%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 88% 76%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 14% 62%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 31% 68%,var(--accent) 50%,transparent 51%),radial-gradient(2px 2px at 49% 60%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 66% 65%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 83% 58%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 22% 46%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 44% 52%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 63% 48%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 86% 44%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 18% 34%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 52% 30%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 79% 36%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 38% 18%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 74% 14%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 58% 6%,#e8dcc4 50%,transparent 51%);-webkit-mask-image:linear-gradient(to top,#000 0%,#000 40%,rgba(0,0,0,.65) 65%,rgba(0,0,0,.3) 85%,rgba(0,0,0,.08) 100%);mask-image:linear-gradient(to top,#000,#000 40%,#000000a6 65%,#0000004d 85%,#00000014);animation:page-twinkle 4s steps(2) infinite}@keyframes page-twinkle{0%,to{opacity:.36}50%{opacity:.16}}.scanlines:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,#0000 0,#0000 2px,#00000014,#0000 4px);z-index:9998;mix-blend-mode:multiply}.hud-stars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.9;background-image:radial-gradient(1px 1px at 12% 30%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 24% 70%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 38% 20%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 52% 55%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 64% 30%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 72% 80%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 83% 40%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 91% 65%,var(--accent) 50%,transparent 51%),radial-gradient(1px 1px at 8% 55%,#e8dcc4 50%,transparent 51%),radial-gradient(1px 1px at 45% 85%,var(--accent) 50%,transparent 51%)}@keyframes blink{to{opacity:0}}main{max-width:1120px;margin:0 auto;padding:58px 32px 40px;position:relative;z-index:1}section{margin-bottom:84px;scroll-margin-top:80px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid color-mix(in oklab,var(--ink) 12%,transparent)}.section-head h2{font-family:var(--font-body);font-size:clamp(28px,4vw,46px);font-weight:800;line-height:1.03;letter-spacing:0;color:var(--ink)}.section-head .meta{margin-left:auto;font-family:var(--font-mono);font-size:16px;color:var(--ink-dim)}.hero{padding:74px 0 56px;position:relative;min-height:auto}.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:44px;align-items:center}@media (max-width: 780px){.hero-grid{grid-template-columns:1fr}}.hero-eyebrow{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--accent-2);margin-bottom:20px;letter-spacing:.04em;text-transform:lowercase}.hero-eyebrow .cursor{display:inline-block;width:8px;height:14px;background:var(--accent-2);margin-left:4px;animation:blink 1s steps(2) infinite;vertical-align:-1px}.hero h1{max-width:16ch;font-family:var(--font-body);font-size:clamp(34px,4.8vw,58px);font-weight:800;line-height:1;letter-spacing:-.01em;color:var(--ink);margin-bottom:22px}.hero-sub{max-width:650px;font-family:var(--font-body);font-size:clamp(18px,2vw,22px);line-height:1.45;color:var(--ink-dim);margin-bottom:0}.hero-sub b{color:var(--ink);font-weight:800}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{font-family:var(--font-body);font-size:13px;font-weight:800;padding:0 14px;border:1px solid var(--accent);border-radius:var(--radius-md);color:var(--accent);background:transparent;letter-spacing:0;text-transform:none;display:inline-flex;align-items:center;gap:10px;min-height:40px;transition:background .12s ease,border-color .12s ease,color .12s ease;position:relative}.btn:hover,.btn.primary{background:var(--accent);color:var(--bg)}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--bg)}.btn-arrow{font-family:var(--font-mono);font-size:14px}.hero-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;position:relative;background:linear-gradient(180deg,rgba(224,189,111,.12),transparent 36%),#13231ac7;box-shadow:0 28px 80px #0000006b}.hero-card-label{font-family:var(--font-mono);font-size:12px;line-height:1.2;letter-spacing:.08em;color:var(--ink-dim);margin-bottom:14px;display:flex;justify-content:space-between}.hero-card-label .dot{color:var(--accent-2);animation:blink 1.4s steps(2) infinite}.hero-portrait{width:100%;aspect-ratio:1 / .92;background:var(--bg-2);display:block;overflow:hidden;border:1px solid color-mix(in oklab,var(--accent) 24%,transparent);border-radius:var(--radius-md)}.hero-portrait-img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:auto}.about-grid{display:grid;grid-template-columns:2fr 1fr;gap:40px}@media (max-width: 780px){.about-grid{grid-template-columns:1fr}}.about-body p{margin-bottom:18px;max-width:62ch}.about-body p.drop:first-letter{font-family:var(--font-serif);font-size:56px;float:left;line-height:.9;margin:6px 10px 0 0;color:var(--accent);font-weight:600}.about-facts{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px}.about-facts h3{font-family:var(--font-mono);font-size:10px;color:var(--accent);margin-bottom:14px;letter-spacing:1px}.about-facts dl{display:grid;grid-template-columns:auto 1fr;column-gap:16px;row-gap:10px;align-items:baseline}.about-facts dt{font-family:var(--font-mono);font-size:11px;letter-spacing:.5px;color:var(--ink-dim)}.about-facts dd{font-family:var(--font-body);font-size:14px;line-height:1.35;color:var(--ink);margin:0}.timeline{position:relative;display:grid;gap:14px;padding-left:0}.timeline:before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--border)}.job{position:relative;display:grid;grid-template-columns:250px 1fr;gap:22px;margin-bottom:0;padding:22px;border:1px solid color-mix(in oklab,var(--ink) 12%,transparent);border-radius:var(--radius-md);background:#13231a94}.job:last-child{border-bottom:none}.job-head{display:block;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:0}.job-body{color:var(--ink-dim);max-width:none;margin:0;padding-left:0;display:flex;flex-direction:column;gap:8px;list-style:none}.job-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:-8px;grid-column:2}.tag{font-family:var(--font-mono);font-size:8px;padding:5px 8px;border:1px solid var(--border);color:var(--accent-2);letter-spacing:1px}#projects .inventory,.inventory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;gap:16px;overflow:visible;padding-bottom:0;scroll-snap-type:none}.slot{background:#13231a94;border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;display:flex;flex-direction:column;gap:8px;min-height:370px;position:relative}.slot:hover{border-color:var(--accent);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--border)}.slot-icon{width:74px;height:74px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:4px;overflow:hidden}.slot-icon img{width:100%;height:100%;object-fit:cover;image-rendering:auto}.slot-meta{display:flex;justify-content:space-between;align-items:flex-start;flex-direction:column;gap:8px;font-family:var(--font-mono);font-size:10px;line-height:1.4;margin-top:8px;padding-top:10px;border-top:1px solid color-mix(in oklab,var(--ink) 12%,transparent);color:var(--ink-dim)}.slot-status{color:var(--accent-2);white-space:nowrap}.spellbook{display:flex;flex-direction:column;gap:0}.spell{display:grid;grid-template-columns:minmax(150px,.34fr) 1fr;column-gap:28px;row-gap:8px;padding:18px 0;border-bottom:1px dashed var(--border)}.spell:last-child{border-bottom:none}.spell-name{grid-row:1 / span 2;font-family:var(--font-body);font-size:15px;font-weight:900;color:var(--accent);letter-spacing:0;line-height:1.45}.spell-tools{font-family:var(--font-body);font-size:15px;color:var(--ink-dim);line-height:1.45;margin:8px 0 0}.spell-note{font-family:var(--font-body);font-size:15px;color:var(--ink);line-height:1.45;margin:8px 0 0}@media (max-width: 700px){.spell{grid-template-columns:1fr;row-gap:10px}.spell-name{grid-row:auto}}.now-grid{display:flex;flex-direction:column;gap:0;border-top:1px solid color-mix(in oklab,var(--ink) 12%,transparent)}.now-card{display:grid;grid-template-columns:minmax(150px,.34fr) 1fr;column-gap:28px;row-gap:8px;padding:18px 0;border-bottom:1px solid color-mix(in oklab,var(--ink) 12%,transparent)}.now-card:last-child{border-bottom:none}.now-head{font-family:var(--font-body);font-size:15px;font-weight:900;color:var(--accent);letter-spacing:0;line-height:1.45}.now-value{font-family:var(--font-body);font-size:15px;color:var(--ink);line-height:1.4}.now-value b{color:var(--accent);font-weight:400}@media (max-width: 700px){.now-card{grid-template-columns:1fr;row-gap:10px}}.gh{background:var(--surface);border:2px solid var(--border);padding:20px}.gh-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.gh-head .label{font-family:var(--font-mono);font-size:10px;color:var(--accent)}.gh-head .stat{font-family:var(--font-mono);font-size:16px;color:var(--ink-dim)}.gh-grid{display:grid;grid-template-columns:repeat(53,1fr);gap:2px;margin-bottom:14px}.gh-unavailable{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;min-height:92px;padding:18px;border:1px dashed color-mix(in oklab,var(--ink) 16%,transparent);border-radius:var(--radius-md);color:var(--ink-dim)}.gh-unavailable a{font-weight:800;text-decoration:underline;text-underline-offset:3px}.gh-cell{aspect-ratio:1;background:var(--bg-2);border:1px solid rgba(255,255,255,.04)}.gh-cell.l1{background:color-mix(in oklab,var(--accent-2) 25%,var(--bg-2))}.gh-cell.l2{background:color-mix(in oklab,var(--accent-2) 50%,var(--bg-2))}.gh-cell.l3{background:color-mix(in oklab,var(--accent-2) 75%,var(--bg-2))}.gh-cell.l4{background:var(--accent-2)}.gh-legend{display:flex;justify-content:flex-end;gap:4px;align-items:center;font-family:var(--font-mono);font-size:8px;color:var(--ink-dim)}.gh-legend .gh-cell{width:12px;height:12px;aspect-ratio:auto}.contact-card{display:flex;align-items:center;justify-content:space-between;gap:22px;border:1px solid var(--accent);border-radius:var(--radius-md);padding:32px;text-align:left;position:relative;background:linear-gradient(90deg,rgba(224,189,111,.12),transparent),#13231ab8}.contact-card h3{font-family:var(--font-body);font-size:clamp(26px,3vw,40px);line-height:1.05;color:var(--ink);letter-spacing:1px;margin-bottom:12px}.contact-card p{font-family:var(--font-body);font-size:18px;color:var(--ink-dim);max-width:640px;margin:8px 0 0}.footer-wrap{position:relative;margin-top:0;padding-top:clamp(96px,12vw,180px);overflow:hidden;background:linear-gradient(to bottom,transparent 0%,transparent 40%,rgba(5,14,22,.4) 60%,rgba(5,16,8,.85) 85%,#051008 100%)}.footer-wrap:before{content:"";position:absolute;left:-10%;right:-10%;top:clamp(24px,4vw,56px);height:clamp(250px,28vw,360px);z-index:7;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 20% 40%,rgba(200,220,240,.14),transparent 60%),radial-gradient(ellipse 80% 40% at 70% 55%,rgba(180,200,230,.12),transparent 65%),radial-gradient(ellipse 50% 60% at 45% 65%,rgba(220,230,250,.09),transparent 60%);filter:blur(10px);animation:fog-drift 28s ease-in-out infinite alternate}@keyframes fog-drift{0%{transform:translate(-20px)}to{transform:translate(20px)}}.forest-scene{position:relative;height:clamp(340px,43.2vw,620px);margin-top:clamp(-110px,-8vw,-44px);overflow:hidden;isolation:isolate;background:transparent}.forest-scene:before{content:"";position:absolute;inset:0 0 auto;height:28%;z-index:6;pointer-events:none;background:linear-gradient(to bottom,#070d0ac7,#070d0a6b 38%,#070d0a00)}.forest-scene:after{content:"";position:absolute;inset:auto 0 0;height:16%;z-index:6;pointer-events:none;background:linear-gradient(to top,#041008cc,#04100800)}.footer-forest-art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center bottom;image-rendering:auto;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.34) 9%,#000 24%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.34) 9%,#000 24%);pointer-events:none;-webkit-user-select:none;user-select:none}.footer-mist{position:absolute;left:-12%;right:-12%;height:28%;z-index:4;pointer-events:none;opacity:.34;background:linear-gradient(90deg,transparent 0 4%,rgba(191,218,218,.16) 10% 25%,transparent 33% 40%,rgba(191,218,218,.12) 48% 68%,transparent 78% 100%);mix-blend-mode:screen;animation:fog-drift-a 36s ease-in-out infinite alternate}.footer-mist-a{bottom:24%}.footer-mist-b{bottom:34%;opacity:.24;animation-name:fog-drift-b;animation-duration:48s}@keyframes fog-drift-a{0%{transform:translate(-20px)}to{transform:translate(28px)}}@keyframes fog-drift-b{0%{transform:translate(30px)}to{transform:translate(-24px)}}.footer-fireflies{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;width:100%;height:100%;pointer-events:none}.footer-firefly{animation:footer-firefly-drift 13s ease-in-out infinite;opacity:.8;filter:drop-shadow(0 0 7px rgba(249,233,0,.75));transform-box:fill-box;transform-origin:center}@keyframes footer-firefly-drift{0%,to{transform:translate(0) scale(.8);opacity:.24}18%{opacity:.9}45%{transform:translate(34px,-26px) scale(1.15);opacity:1}72%{transform:translate(-18px,-44px) scale(.94);opacity:.7}}.footer-cat{position:absolute;bottom:3.4%;z-index:8;pointer-events:none;transform-origin:center bottom;will-change:transform;left:calc(-1 * var(--cat-width));animation:cat-full-width-path var(--cycle) linear infinite;animation-delay:var(--phase, 0s)}.footer-cat:after{content:"";position:absolute;left:8%;right:8%;bottom:1px;height:8px;z-index:-1;background:#0000006b;filter:blur(2px);transform-origin:center;animation:cat-shadow-step var(--frame-speed) steps(2,end) infinite}.footer-cat-runner{position:relative;transform-origin:center bottom}.footer-cat-sprite{display:block;aspect-ratio:var(--sprite-ratio);width:var(--cat-width);background-image:var(--sprite-url);background-repeat:no-repeat;background-size:200% 200%;background-position:0% 0%;image-rendering:auto;filter:drop-shadow(0 7px 0 rgba(0,0,0,.42));-webkit-user-select:none;user-select:none;animation:cat-frame var(--frame-speed) steps(1,end) infinite,cat-row var(--cycle) steps(1,end) infinite;animation-delay:0s,var(--phase, 0s)}.cat-tuxedo{z-index:9;--cat-width: clamp(132px, 13vw, 204px);--cycle: 12.5s;--frame-speed: .38s;--phase: 0s;--chase-gap: clamp(128px, 17vw, 244px);--turn-buffer: clamp(160px, 18vw, 300px);animation-name:kai-chase-path}.cat-tuxedo .footer-cat-sprite{--sprite-url: url(/assets/footer/sprites/cat-tuxedo-run-sheet.png);--sprite-ratio: 596 / 389;animation:cat-frame var(--frame-speed) steps(1,end) infinite;background-position-y:0%}.cat-tuxedo .footer-cat-runner{animation:chase-runner-facing var(--cycle) steps(1,end) infinite;animation-delay:var(--phase, 0s)}.cat-siberian{z-index:8;--cat-width: clamp(168px, 17vw, 262px);--cycle: 12.5s;--frame-speed: .42s;--phase: 0s;--chase-gap: clamp(128px, 17vw, 244px);--turn-buffer: clamp(160px, 18vw, 300px);animation-name:finn-chase-path}.cat-siberian .footer-cat-sprite{--sprite-ratio: 581 / 381;position:relative;overflow:hidden;background-image:none;animation:none}.cat-siberian .footer-cat-sprite:before,.cat-siberian .footer-cat-sprite:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-position:center bottom;background-size:100% 100%;image-rendering:auto}.cat-siberian .footer-cat-sprite:before{opacity:1;background-image:url(/assets/footer/sprites/cat-siberian-run-frame-1.png);animation:sprite-frame-one var(--frame-speed) steps(1,end) infinite}.cat-siberian .footer-cat-sprite:after{opacity:0;background-image:url(/assets/footer/sprites/cat-siberian-run-frame-2.png);animation:sprite-frame-two var(--frame-speed) steps(1,end) infinite}.cat-siberian .footer-cat-runner{animation:chase-runner-facing var(--cycle) steps(1,end) infinite;animation-delay:var(--phase, 0s)}.cat-tortie{bottom:10%;z-index:7;--cat-width: clamp(88px, 8.1vw, 126px);--nap-width: clamp(66px, 6vw, 95px);--nap-x: calc(50vw + 64px) ;--pounce-x: calc(68vw + var(--cat-width));--cycle: 38s;--frame-speed: 1.6s;--phase: -5s;animation-timing-function:linear;animation-name:tortie-nap-path}.cat-tortie:after{animation:tortie-pounce-shadow var(--cycle) linear infinite;animation-delay:var(--phase, 0s)}.cat-tortie .footer-cat-sprite{--sprite-ratio: 497 / 387;background-image:url(/assets/footer/sprites/cat-tortie-walk4-sheet.png);background-repeat:no-repeat;background-size:400% 100%;background-position:0% 0%;animation:tortie-walk-visibility var(--cycle) steps(1,end) infinite,tortie-walk-frame var(--frame-speed) steps(1,end) infinite;animation-delay:var(--phase, 0s),0s}.cat-tortie .footer-cat-runner{animation:tortie-pounce-runner var(--cycle) linear infinite;animation-delay:var(--phase, 0s)}.footer-cat-pounce{position:absolute;left:50%;bottom:0;width:calc(var(--cat-width) * 1.62);aspect-ratio:587 / 354;transform:translate(-50%);opacity:0;z-index:2;background-image:url(/assets/footer/sprites/cat-tortie-pounce-sheet.png);background-repeat:no-repeat;background-size:400% 100%;background-position:0% 0%;image-rendering:auto;filter:drop-shadow(0 7px 0 rgba(0,0,0,.42));pointer-events:none;animation:tortie-pounce-visibility var(--cycle) steps(1,end) infinite,tortie-pounce-frame var(--cycle) steps(1,end) infinite;animation-delay:var(--phase, 0s),var(--phase, 0s)}.cat-chase-firefly{position:absolute;left:calc(100% + 4px);bottom:48%;width:clamp(22px,2.45vw,32px);height:auto;opacity:0;z-index:3;pointer-events:none;filter:drop-shadow(0 0 4px rgba(249,233,0,.9)) drop-shadow(0 0 10px rgba(249,233,0,.45));animation:tortie-chase-firefly var(--cycle) linear infinite,tortie-firefly-flicker .82s steps(2,end) infinite;animation-delay:var(--phase, 0s),0s}.footer-cat-nap{position:absolute;left:50%;bottom:0;width:var(--nap-width);aspect-ratio:761 / 492;transform:translate(-50%);background-image:url(/assets/footer/sprites/cat-tortie-nap.png);background-repeat:no-repeat;background-size:contain;background-position:center bottom;image-rendering:auto;filter:drop-shadow(0 7px 0 rgba(0,0,0,.42));opacity:0;animation:tortie-nap-visibility var(--cycle) steps(1,end) infinite;animation-delay:var(--phase, 0s)}@keyframes cat-shadow-step{0%,to{transform:scaleX(1);opacity:.48}50%{transform:scaleX(.82);opacity:.3}}@keyframes cat-frame{0%,49.99%{background-position-x:0%}50%,to{background-position-x:100%}}@keyframes sprite-frame-one{0%,49.99%{opacity:1}50%,to{opacity:0}}@keyframes sprite-frame-two{0%,49.99%{opacity:0}50%,to{opacity:1}}@keyframes cat-row{0%,49.99%{background-position-y:0%}50%,to{background-position-y:100%}}@keyframes chase-runner-facing{0%,55.99%{transform:scaleX(1)}56%,to{transform:scaleX(-1)}}@keyframes tortie-row{0%,75.99%{background-position-y:0%}76%,to{background-position-y:100%}}@keyframes tortie-walk-frame{0%,24.99%{background-position-x:0%}25%,49.99%{background-position-x:33.333%}50%,74.99%{background-position-x:66.667%}75%,to{background-position-x:100%}}@keyframes tortie-pounce-runner{0%,75.9%{transform:scaleX(1)}76%,86.49%{transform:scaleX(-1) translateY(0) rotate(0)}88.5%{transform:scaleX(-1) translateY(-3px) rotate(-1.5deg)}90.5%{transform:scaleX(-1) translateY(0) rotate(1deg)}93%,to{transform:scaleX(-1) translateY(0) rotate(0)}}@keyframes tortie-pounce-visibility{0%,83.99%{opacity:0}84%,92.99%{opacity:1}93%,to{opacity:0}}@keyframes tortie-pounce-frame{0%,86.49%{background-position-x:0%}86.5%,88.49%{background-position-x:33.333%}88.5%,90.49%{background-position-x:66.667%}90.5%,to{background-position-x:100%}}@keyframes tortie-chase-firefly{0%,75.99%{opacity:0;transform:translate(0) scale(.9)}76%,80%{opacity:1;transform:translate(4px,-6px) scale(.95)}83.99%{opacity:1;transform:translate(18px,-18px) scale(1)}84%,to{opacity:0;transform:translate(18px,-18px) scale(1)}}@keyframes tortie-pounce-shadow{0%,75.99%{transform:scaleX(1);opacity:.42}76%,83.99%{transform:scaleX(1);opacity:.42}88.5%{transform:scaleX(.82);opacity:.26}93%,to{transform:scaleX(1);opacity:.42}}@keyframes tortie-firefly-flicker{0%,to{filter:drop-shadow(0 0 4px rgba(249,233,0,.9)) drop-shadow(0 0 10px rgba(249,233,0,.45))}50%{filter:drop-shadow(0 0 7px rgba(255,247,184,1)) drop-shadow(0 0 16px rgba(249,233,0,.72))}}@keyframes tortie-walk-visibility{0%,24.99%{opacity:1}25%,55%{opacity:0}55.01%,83.99%{opacity:1}84%,92.99%{opacity:0}93%,to{opacity:1}}@keyframes tortie-nap-visibility{0%,24.99%{opacity:0}25%,55%{opacity:1}55.01%,to{opacity:0}}@keyframes cat-full-width-path{0%{transform:translate(0)}46%{transform:translate(calc(100vw + var(--cat-width) + var(--cat-width)))}50%{transform:translate(calc(100vw + var(--cat-width) + var(--cat-width)))}96%{transform:translate(0)}to{transform:translate(0)}}@keyframes kai-chase-path{0%{transform:translate(calc(-1 * var(--chase-gap)))}48%,56%{transform:translate(calc(100vw + var(--cat-width) + var(--cat-width) + var(--turn-buffer) - var(--chase-gap)))}96%,to{transform:translate(calc(-1 * var(--chase-gap)))}}@keyframes finn-chase-path{0%{transform:translate(0)}48%,56%{transform:translate(calc(100vw + var(--cat-width) + var(--cat-width) + var(--turn-buffer)))}96%,to{transform:translate(0)}}@keyframes tortie-nap-path{0%{transform:translate(0)}24%,55%{transform:translate(var(--nap-x))}72%,76%{transform:translate(calc(100vw + var(--cat-width) + var(--cat-width)))}84%,86.5%{transform:translate(var(--pounce-x))}to{transform:translate(0)}}@media (prefers-reduced-motion: reduce){.footer-cat,.footer-cat-runner,.footer-cat-sprite,.footer-cat-sprite:before,.footer-cat-sprite:after,.footer-cat-pounce,.footer-cat-nap,.cat-chase-firefly,.footer-cat:after,.footer-wrap:before,.footer-mist,.footer-firefly{animation:none!important}.cat-chase-firefly,.footer-cat-pounce{opacity:0}}.footer-meta{position:relative;z-index:2;padding:28px 32px 20px;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:16px;color:var(--ink-dim);border-top:1px dashed var(--border)}.footer-meta .glyph{color:var(--accent)}.footer-signoff{position:relative;z-index:2;text-align:center;padding:18px 0 16px;font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);letter-spacing:.08em;background:#0000004d}.recipe-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:stretch;padding:18px;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius-sm);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,background .15s}.recipe-card:hover{border-color:var(--accent);background:#00000080;transform:translate(2px)}.recipe-card:hover .recipe-arrow{color:var(--accent);transform:translate(2px)}.recipe-icon{width:88px;height:88px;display:flex;align-items:center;justify-content:center;background:#0006;border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;align-self:flex-start;overflow:hidden}.recipe-icon svg{width:56px;height:56px}.recipe-icon img{width:100%;height:100%;display:block;object-fit:cover;image-rendering:auto}@media (min-width: 768px){.recipe-icon{width:104px;height:104px}}.recipe-body{display:flex;flex-direction:column;gap:6px;min-width:0}.recipe-cuisine{font-family:var(--font-mono);font-size:8px;color:var(--accent-2);letter-spacing:.15em}.recipe-name{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:.04em;color:var(--ink);line-height:1.2}.recipe-blurb{font-size:14px;color:var(--ink-dim);line-height:1.5;text-wrap:pretty}.recipe-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);letter-spacing:.05em;margin-top:4px}.recipe-meta .recipe-difficulty{color:var(--accent);letter-spacing:.1em}.recipe-source{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);opacity:.8}.recipe-source em{color:var(--accent-2);font-style:normal}.recipe-arrow{align-self:center;color:var(--ink-dim);font-size:18px;transition:color .15s,transform .15s}@media (max-width: 600px){.recipe-card{grid-template-columns:auto 1fr}.recipe-arrow{display:none}}.cookbook-feature{display:grid;grid-template-columns:minmax(280px,.95fr) 1fr;gap:18px;align-items:stretch}.featured-recipe{min-height:100%}.cookbook-note{border:1px solid color-mix(in oklab,var(--ink) 12%,transparent);border-radius:var(--radius-md);padding:22px;background:linear-gradient(90deg,rgba(224,189,111,.1),transparent),#13231a94}.cookbook-note h3{margin:0;color:var(--ink);font-family:var(--font-body);font-size:20px;line-height:1.2}.cookbook-note p{margin:12px 0 0;color:var(--ink-dim);line-height:1.6}.gh-cell.loading{animation:gh-pulse 1.4s ease-in-out infinite}@keyframes gh-pulse{0%,to{opacity:.6}50%{opacity:1}}.gh-head .label a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent)}.gh-head .label a:hover{color:var(--accent)}.section-kicker{font-family:var(--font-mono);font-size:14px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px;color:var(--accent-2)}.hero-proof-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px}.hero-proof{min-height:116px;border:1px solid color-mix(in oklab,var(--ink) 13%,transparent);border-radius:var(--radius-md);padding:16px;background:#13231ab8}.hero-proof strong{display:block;margin-bottom:8px;color:var(--accent);font-size:24px;line-height:1}.hero-proof span{display:block;color:var(--ink-dim);font-size:13px;line-height:1.45}.profile-summary{display:grid;gap:0;margin-top:14px}.profile-row{display:grid;grid-template-columns:112px 1fr;gap:12px;padding:10px 0;border-top:1px solid color-mix(in oklab,var(--ink) 12%,transparent);font-family:var(--font-body);font-size:13px;line-height:1.4}.profile-row b{color:var(--ink-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em}.profile-row span{color:var(--ink)}.section-title-block{min-width:0}.section-title-row{display:flex;align-items:center;gap:12px}.section-note{max-width:450px;margin:0;color:var(--ink-dim);font-size:15px;line-height:1.55;text-align:right}.timeline:before,.job:before{display:none}.job-role{display:block;font-family:var(--font-body);font-size:15px;font-weight:900;line-height:1.2;color:var(--accent);letter-spacing:.5px}.job-at{display:block;margin-top:8px;font-family:var(--font-body);font-size:15px;color:var(--ink-dim)}.job-date{display:block;margin:14px 0 0;font-family:var(--font-mono);font-size:12px;color:var(--ink-dim)}.job-content{display:flex;flex-direction:column;gap:14px}.job-summary{margin:0;color:var(--ink);font-size:16px;font-weight:800;line-height:1.45}.job-body li{position:relative;padding-left:18px;color:var(--ink-dim);line-height:1.55}.job-body li:before{content:"";position:absolute;left:0;top:.72em;width:6px;height:6px;background:var(--accent)}.job-details{border-top:1px dashed color-mix(in oklab,var(--ink) 12%,transparent);padding-top:12px}.job-details summary{color:var(--accent);cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:800}.job-details .job-body{margin-top:12px}.slot:hover{transform:none;box-shadow:none}.slot-name{margin-top:8px;font-family:var(--font-body);font-size:20px;font-weight:800;line-height:1.2;color:var(--ink);letter-spacing:0}.slot-desc{font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--ink-dim);flex:1}.apps-layout{display:block}.apps-intro{border:1px solid color-mix(in oklab,var(--ink) 12%,transparent);border-radius:var(--radius-md);padding:22px;background:radial-gradient(circle at 20% 20%,rgba(143,178,216,.14),transparent 16rem),#13231aa6}.app-card{border:1px solid color-mix(in oklab,var(--ink) 12%,transparent);border-radius:var(--radius-md);background:#13231a94;padding:18px}.apps-intro h3,.app-card h3{margin:0;color:var(--ink);font-family:var(--font-body);font-size:20px;line-height:1.2}.app-status{margin-top:8px;color:var(--accent-2);font-size:13px;font-weight:900;letter-spacing:0}.apps-intro p,.app-card p{margin:12px 0 0;color:var(--ink-dim);line-height:1.6}.app-proof{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none}.app-proof li{display:grid;gap:2px;padding-top:10px;border-top:1px dashed color-mix(in oklab,var(--ink) 12%,transparent);color:var(--ink);font-size:14px;line-height:1.35}.app-proof-label{color:var(--accent);font-size:12px;font-weight:800}.app-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.app-card .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.app-cta{margin-top:18px;text-decoration:none}.app-icon-asset{display:block;width:74px;height:74px;margin-bottom:16px;border:1px solid color-mix(in oklab,var(--ink) 12%,transparent);border-radius:18px;overflow:hidden;background:var(--bg-2)}.app-icon-asset img{width:100%;height:100%;object-fit:cover}.skills-panel{border:1px solid color-mix(in oklab,var(--ink) 12%,transparent);border-radius:var(--radius-md);background:#13231a94;padding:22px}.skills-panel .spellbook{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 30px}.skills-panel .spell{display:block;padding:0;border-bottom:none}.contact-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;flex-shrink:0}@media (max-width: 1080px){#projects .inventory,.inventory{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 920px){.hero-grid,.job{grid-template-columns:1fr}.job-tags{grid-column:auto;margin-top:0}.hero-proof-strip,.app-list,.skills-panel .spellbook{grid-template-columns:1fr}.section-head,.contact-card{align-items:flex-start;flex-direction:column}.section-note{text-align:left}}@media (max-width: 640px){main{padding-inline:20px}.hero{padding-top:42px}#projects .inventory,.inventory{grid-template-columns:1fr}.profile-row{grid-template-columns:1fr;gap:4px}.cookbook-feature,.cookbook-preview .recipe-card{grid-template-columns:1fr}.cookbook-preview .recipe-icon{width:100%;height:auto;aspect-ratio:16 / 10}}.recipe-page{max-width:880px;margin:0 auto;padding:40px 24px 80px}.recipe-back{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-pixel);font-size:10px;letter-spacing:.15em;color:var(--ink-dim);text-decoration:none;margin-bottom:24px;transition:color .15s}.recipe-header{display:grid;grid-template-columns:96px 1fr;gap:24px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--border);margin-bottom:32px}.recipe-hero-icon{width:96px;height:96px;background:#0006;border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center}.recipe-hero-icon svg{width:80px;height:80px}.recipe-cuisine-tag{font-family:var(--font-pixel);font-size:9px;color:var(--accent-2);letter-spacing:.2em;margin-bottom:6px}.recipe-title{font-family:var(--font-display);font-size:36px;font-weight:700;letter-spacing:.02em;margin:0 0 8px;text-wrap:balance}.recipe-tagline{font-size:16px;color:var(--ink-dim);font-style:italic;margin:0;text-wrap:pretty}.recipe-stats{display:flex;flex-direction:column;gap:0;padding:18px 22px;background:#0000004d;border:1px solid var(--border);border-radius:4px;margin-bottom:40px}.recipe-stat-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 22px}.recipe-stat-row-quest{padding-bottom:14px;margin-bottom:14px;border-bottom:1px dashed var(--border)}.recipe-stat-quest{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:15px;color:var(--ink)}.recipe-stat-icon{font-size:16px;filter:hue-rotate(15deg) saturate(.85);opacity:.95}.recipe-stat-quest-value{letter-spacing:.02em}.recipe-stat-row-rpg{flex-direction:column;gap:8px}.recipe-rpg-label{font-family:var(--font-pixel);font-size:8px;letter-spacing:.2em;color:var(--accent-2);text-align:center}.recipe-rpg-stats{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px 22px}.recipe-rpg{display:inline-flex;align-items:baseline;gap:6px}.recipe-rpg-key{font-family:var(--font-pixel);font-size:9px;letter-spacing:.15em;color:var(--accent)}.recipe-rpg-val{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink);line-height:1}.recipe-rpg-unit{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase}@media (max-width: 600px){.recipe-stat-row{gap:10px 16px}.recipe-rpg-stats{gap:6px 16px}}.recipe-body-content{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}@media (min-width: 900px){.recipe-body-content{grid-template-columns:320px minmax(0,1fr);gap:48px}}.recipe-section h2{font-family:var(--font-pixel);font-size:12px;color:var(--accent);letter-spacing:.2em;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.recipe-section h3{font-family:"VT323",var(--font-mono);font-size:22px;color:var(--accent-2);text-transform:uppercase;letter-spacing:.08em;margin:22px 0 8px;line-height:1}.recipe-ingredients ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.recipe-ingredients li{display:flex;align-items:baseline;gap:10px;font-size:15px;line-height:1.5;padding:7px 0;border-bottom:1px dashed var(--border)}.recipe-ingredients li:before{content:"◇";color:var(--accent-2);font-size:10px;flex-shrink:0}.recipe-instructions ol{list-style:none;counter-reset:step;padding:0;margin:0;display:flex;flex-direction:column;gap:18px}.recipe-instructions li{counter-increment:step;position:relative;padding-left:46px;font-size:15px;line-height:1.6;text-wrap:pretty;min-height:28px}.recipe-instructions li:before{content:counter(step,decimal-leading-zero);font-family:var(--font-pixel);font-size:10px;color:var(--accent);letter-spacing:.1em;background:#00000080;border:1px solid var(--border);border-radius:3px;display:flex;align-items:center;justify-content:center;width:32px;height:28px;position:absolute;left:0;top:0}.recipe-instructions li b{color:var(--accent);font-weight:600}.recipe-instructions li em{color:var(--accent-2);font-style:normal}.recipe-notes{margin-top:40px;padding:20px 24px;border:1px solid var(--border);background:color-mix(in oklab,var(--accent) 8%,transparent);border-radius:var(--radius-md)}.recipe-notes h2{margin-top:0}.recipe-notes ul{margin:0;padding-left:20px}.recipe-notes li{font-size:14px;line-height:1.6;color:var(--ink-dim);margin-bottom:6px}.recipe-macros-row{margin-bottom:32px;display:flex;justify-content:center}.recipe-macros-row .recipe-macros{margin-top:0;max-width:640px;width:100%}.recipe-notes-row{margin-top:48px;max-width:880px}.recipe-macros{margin-top:32px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.recipe-macro{text-align:center;padding:12px 8px;background:#0000004d;border:1px solid var(--border);border-radius:4px}.recipe-macro-label{font-family:var(--font-pixel);font-size:8px;color:var(--accent);letter-spacing:.15em;margin-bottom:4px}.recipe-macro-value{font-family:var(--font-mono);font-size:14px;color:var(--ink)}@media (max-width: 600px){.recipe-macros{grid-template-columns:repeat(2,1fr)}.recipe-header{grid-template-columns:64px 1fr;gap:16px}.recipe-hero-icon{width:64px;height:64px}.recipe-hero-icon svg{width:56px;height:56px}.recipe-title{font-size:24px}}.hud-top{display:none;position:fixed;top:0;left:0;right:0;height:var(--hud-h);z-index:100;background:#0a1410d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border);align-items:center;padding:0 var(--space-5);gap:var(--space-5);font-family:var(--font-mono)}.hud-stars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(1px 1px at 20% 30%,rgba(232,220,196,.4),transparent),radial-gradient(1px 1px at 60% 70%,rgba(232,220,196,.3),transparent),radial-gradient(1px 1px at 85% 40%,rgba(232,220,196,.4),transparent);opacity:.5}.hud-logo{display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:none;color:var(--accent);font-size:var(--pixel-base);letter-spacing:.05em;z-index:1}.hud-nav{z-index:1}.hud-nav ul{list-style:none;padding:0;margin:0;display:flex;gap:var(--space-5)}.hud-nav a{color:var(--ink-dim);text-decoration:none;font-size:var(--pixel-base);letter-spacing:.05em;padding:var(--space-2) var(--space-3);border-radius:var(--radius);transition:color .12s;position:relative}.hud-nav a:hover{color:var(--ink)}.hud-nav a.active{color:var(--accent)}.hud-nav a.active:after{content:"";position:absolute;left:50%;bottom:-2px;transform:translate(-50%);width:6px;height:6px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.scanline-toggle{position:fixed;top:10px;right:10px;z-index:120;display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;padding:0 10px;border:1px solid rgba(224,189,111,.45);border-radius:8px;background:#0a1410e0;color:var(--accent);font-family:var(--font-body);font-size:12px;font-weight:800;line-height:1;box-shadow:0 6px 18px #0000003d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;transition:border-color .14s ease-out,background .14s ease-out,color .14s ease-out}.scanline-toggle:hover{background:#e0bd6f1f;color:var(--ink)}.scanline-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.scanline-toggle:disabled{cursor:not-allowed;opacity:.72}.scanline-toggle[aria-checked=false]{border-color:#b5ad9452;color:var(--ink-dim)}.scanline-toggle-label,.scanline-toggle-state{white-space:nowrap}.scanline-toggle-track{width:30px;height:16px;padding:2px;border:1px solid currentColor;border-radius:999px;background:#e0bd6f24}.scanline-toggle-thumb{display:block;width:10px;height:10px;border-radius:999px;background:currentColor;box-shadow:0 0 6px currentColor;transform:translate(14px);transition:transform .16s ease-out}.scanline-toggle[aria-checked=false] .scanline-toggle-thumb{transform:translate(0)}.scanline-toggle-state{min-width:20px;color:var(--ink-dim);font-family:var(--font-mono);font-size:10px;text-align:left}@media (min-width: 768px){.hud-top{display:flex}.scanline-toggle{top:11px;right:16px}}@media (max-width: 640px){.scanline-toggle{top:10px;right:14px;width:46px;padding:0;gap:0}.scanline-toggle-label,.scanline-toggle-state{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;background:#0a1410f2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:2px solid var(--border);height:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0));padding-bottom:env(safe-area-inset-bottom,0);font-family:var(--font-mono);box-shadow:0 -4px 16px #0006}.bottom-nav ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);height:var(--bottomnav-h)}.bn-item{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;text-decoration:none;color:var(--ink-dim);font-family:inherit;font-size:9px;letter-spacing:.05em;border-radius:0;background:transparent;border:none;cursor:pointer;position:relative;transition:color .12s,background .12s;min-height:48px}.bn-item:hover{color:var(--ink)}.bn-item.active{color:var(--accent)}.bn-item.active:before{content:"";position:absolute;top:0;left:20%;right:20%;height:3px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.bn-item:active{background:#ffffff0d}.bn-icon{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center}.bn-icon svg{width:22px!important;height:22px!important}.bn-label{font-size:8px;letter-spacing:.08em;line-height:1}@media (min-width: 768px){.bottom-nav{display:none}}.bn-drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:99;animation:bnFadeIn .18s ease-out}.bn-drawer{position:fixed;bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0));left:0;right:0;z-index:100;background:var(--bg-2);border-top:2px solid var(--accent);padding:var(--space-4) var(--space-3) var(--space-3);animation:bnSlideUp .24s cubic-bezier(.16,1,.3,1);max-height:calc(100vh - var(--bottomnav-h) - 80px);overflow-y:auto;font-family:var(--font-mono)}@keyframes bnFadeIn{0%{opacity:0}to{opacity:1}}@keyframes bnSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bn-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2) var(--space-3);border-bottom:1px dashed var(--border);margin-bottom:var(--space-2)}.bn-drawer-title{color:var(--accent);font-size:var(--pixel-base);letter-spacing:.08em}.bn-drawer-close{color:var(--ink-dim);font-size:18px;width:36px;height:36px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center}.bn-drawer-close:hover{color:var(--ink);background:#ffffff0f}.bn-drawer-list{list-style:none;padding:0;margin:0}.bn-drawer-list li+li{border-top:1px solid var(--border)}.bn-drawer-list a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);text-decoration:none;color:var(--ink);font-size:var(--pixel-base);min-height:48px;transition:background .12s}.bn-drawer-list a:hover{background:#ffffff0a}.bn-drawer-list a.active,.bn-drawer-list a.active .bn-drawer-arrow{color:var(--accent)}.bn-drawer-label{flex:1;letter-spacing:.05em}.bn-drawer-arrow{color:var(--ink-dim);font-size:14px}section{position:relative;z-index:2;padding:var(--space-6) var(--space-4);max-width:1200px;margin:0 auto}@media (min-width: 768px){section{padding:var(--space-7) var(--space-6)}}#home,.hero{min-height:calc(100vh - var(--hud-h));display:grid;place-items:center;text-align:center;padding:var(--space-7) var(--space-4)}@media (min-width: 768px){#home,.hero{min-height:100vh}}.hero-title,.recipe-title{line-height:1.05}main:focus{outline:none}section p a,section li a{text-decoration:underline;text-underline-offset:2px}@media (max-width: 768px){.gh-grid{overflow-x:auto;-webkit-overflow-scrolling:touch}}section{max-width:1120px;padding:38px 32px;margin:0 auto 16px}#home,.hero{min-height:auto;display:block;place-items:initial;text-align:left;padding:74px 32px 56px}.hero-proof,.profile-summary,.section-head,.slot,.app-card,.apps-intro,.skills-panel,.now-grid,.contact-card{text-align:left}@media (max-width: 640px){section{padding:34px 20px;margin-bottom:16px}#home,.hero{padding:64px 20px 38px}.hero-grid{gap:28px}.hero h1{font-size:40px;margin-bottom:16px}.hero-sub{font-size:17px;line-height:1.42}.hero-actions{gap:8px;margin-top:20px}.hero-proof-strip{gap:8px;margin-top:18px}.hero-proof{min-height:auto;padding:12px}.hero-proof strong{margin-bottom:6px;font-size:22px}.hero-proof span{font-size:12px}}.recipe-page{position:relative;z-index:2;max-width:880px;margin:0 auto;padding:var(--space-7) var(--space-4) var(--space-8)}@media (min-width: 768px){.recipe-page{padding:var(--space-8) var(--space-6)}}.recipe-back{display:inline-block;margin-bottom:var(--space-5);font-family:var(--font-pixel);font-size:var(--pixel-base);color:var(--ink-dim);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.recipe-back:hover{color:var(--accent)}.recipe-header{display:grid;grid-template-columns:80px 1fr;gap:var(--space-4);align-items:center;margin-bottom:var(--space-6)}@media (min-width: 640px){.recipe-header{grid-template-columns:120px 1fr;gap:var(--space-5)}}.recipe-hero-icon{width:80px;height:80px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:#00000059}.recipe-hero-img{width:100%;height:100%;display:block;object-fit:cover;image-rendering:auto}@media (min-width: 640px){.recipe-hero-icon{width:120px;height:120px}}.recipe-cuisine-tag{font-family:var(--font-pixel);font-size:10px;letter-spacing:.1em;color:var(--accent);margin-bottom:var(--space-2)}.recipe-title{font-family:var(--font-serif);font-size:clamp(28px,6vw,44px);font-weight:600;line-height:1.05;color:var(--ink);margin-bottom:var(--space-2)}.recipe-tagline{font-style:italic;color:var(--ink-dim);font-family:var(--font-serif);font-size:clamp(14px,2.5vw,18px);line-height:1.4}.recipe-stats{margin-bottom:var(--space-6);border:1px solid var(--border);background:var(--bg-2);padding:var(--space-4);border-radius:var(--radius)}.recipe-stat-row{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4)}.recipe-stat-row+.recipe-stat-row{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--border)}.recipe-stat-quest{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--mono-base);color:var(--ink)}.recipe-stat-icon{color:var(--accent)}.recipe-stat-row-rpg{flex-direction:column;align-items:stretch}.recipe-rpg-label{font-family:var(--font-pixel);font-size:9px;letter-spacing:.1em;color:var(--ink-dim);margin-bottom:var(--space-2)}.recipe-rpg-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}@media (min-width: 480px){.recipe-rpg-stats{grid-template-columns:repeat(4,1fr)}}.recipe-rpg{display:flex;flex-direction:column;align-items:center;padding:var(--space-2);background:var(--surface);border:1px solid var(--border)}.recipe-rpg-key{font-family:var(--font-pixel);font-size:10px;color:var(--accent)}.recipe-rpg-val{font-family:var(--font-mono);font-size:18px;color:var(--ink);margin:2px 0}.recipe-rpg-unit{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim)}.recipe-body-content{display:grid;gap:var(--space-6);grid-template-columns:1fr;margin-bottom:var(--space-7)}@media (min-width: 880px){.recipe-body-content{grid-template-columns:320px 1fr;gap:var(--space-7)}}.recipe-section h2{font-family:var(--font-pixel);font-size:var(--pixel-base);letter-spacing:.08em;color:var(--accent);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px dashed var(--border)}.recipe-section h3{font-family:var(--font-pixel);font-size:11px;letter-spacing:.06em;color:var(--accent-2);margin:var(--space-4) 0 var(--space-2)}.recipe-section ul{list-style:none;padding:0;margin:0}.recipe-section ul li{padding:var(--space-2) 0;border-bottom:1px dotted rgba(168,160,133,.2);font-size:15px;line-height:1.45}.recipe-instructions ol{list-style:none;counter-reset:step;padding:0;margin:0}.recipe-instructions ol li{counter-increment:step;position:relative;padding:var(--space-3) 0 var(--space-4) 36px;border-bottom:1px dashed var(--border);line-height:1.6}.recipe-instructions ol li:before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:var(--space-3);font-family:var(--font-pixel);font-size:12px;color:var(--accent);letter-spacing:.05em}.recipe-instructions strong{color:var(--accent);font-weight:600}.recipe-instructions em{color:var(--accent-2);font-style:italic}.recipe-notes{border:1px solid var(--border);background:color-mix(in oklab,var(--accent) 8%,transparent);border-radius:var(--radius-md);padding:var(--space-5)}.recipe-notes h2{font-family:var(--font-pixel);font-size:var(--pixel-base);color:var(--accent);margin-bottom:var(--space-3)}.recipe-notes ul{list-style:disc;padding-left:var(--space-5)}.recipe-notes li{margin-bottom:var(--space-2);line-height:1.6}.recipe-notes strong{color:var(--accent-2)}.recipe-placeholder{position:relative;z-index:2;max-width:600px;margin:0 auto;padding:var(--space-7) var(--space-4);text-align:center}.recipe-placeholder-image{width:min(280px,100%);aspect-ratio:1;margin:0 auto var(--space-5);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:#00000059}.recipe-placeholder-image img{width:100%;height:100%;display:block;object-fit:cover;image-rendering:auto}.recipe-placeholder h1{font-family:var(--font-serif);font-size:36px;margin:var(--space-5) 0}.recipe-coming{font-family:var(--font-pixel);color:var(--accent);margin-bottom:var(--space-4)}.recipe-coming-sub{color:var(--ink-dim);line-height:1.6}.fireflies-page{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.fireflies-page .firefly{position:absolute;width:3px;height:3px;background:#f7c75a;border-radius:50%;box-shadow:0 0 8px 2px #f7c75a80;opacity:0;animation:ffDrift linear forwards}@keyframes ffDrift{0%{opacity:0;transform:translate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translate(var(--dx),var(--dy))}}.footer-wrap{position:relative;margin-top:0}@media (max-width: 767px){.forest-scene{height:300px;margin-top:-56px}.cat-siberian{--cat-width: 134px;--chase-gap: 92px}.cat-tuxedo{--cat-width: 108px;--chase-gap: 92px}.cat-tortie{--cat-width: 78px;--nap-width: 60px;--nap-x: calc(50vw + 42px) ;--pounce-x: calc(46vw + var(--cat-width))}.footer-status,.footer-signoff{padding:var(--space-3) var(--space-4);font-size:11px}}
