:root{--bg0: #0A0E0F;--bg1: #11181B;--bg2: #1B2428;--bg3: #253136;--fg1: #E8F2F0;--fg2: #A3B5B1;--fg3: #6A7C79;--fg4: #3F4F4D;--line: #1F2A2E;--line-bright: #2E3F44;--line-accent: #3F5A5C;--accent-green: #4ADE80;--accent-green-dim:#2EA85A;--accent-magenta: #FF4D9D;--accent-magenta-dim:#C72D74;--accent-amber: #FFB454;--accent-amber-dim:#C7811E;--accent-cyan: #5EEAD4;--accent-cyan-dim: #2DB5A0;--accent-red: #FF6B6B;--accent-red-dim: #C73D3D;--success: var(--accent-green);--warn: var(--accent-amber);--error: var(--accent-red);--info: var(--accent-cyan);--link: var(--accent-green);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-sans: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-pixel: "Pixelify Sans", "JetBrains Mono", monospace;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-15: 15px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-32: 32px;--fs-44: 44px;--fs-60: 60px;--fw-regular: 400;--fw-medium: 500;--fw-bold: 700;--lh-tight: 1.1;--lh-snug: 1.3;--lh-mono: 1.55;--lh-body: 1.6;--tracking-tight: -.01em;--tracking-normal: 0;--tracking-caps: .08em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--radius-0: 0;--radius-1: 2px;--radius-2: 4px;--radius-pill: 999px;--shadow-press: inset 0 1px 0 0 rgba(0,0,0,.5);--shadow-glow-green: 0 0 0 1px var(--accent-green), 0 0 24px -4px rgba(74, 222, 128, .5);--shadow-glow-magenta: 0 0 0 1px var(--accent-magenta), 0 0 24px -4px rgba(255, 77, 157, .4);--shadow-glow-amber: 0 0 0 1px var(--accent-amber), 0 0 24px -4px rgba(255, 180, 84, .4);--shadow-card-hover: inset 2px 0 0 0 var(--accent-green);--shadow-modal: 0 24px 64px -16px rgba(0,0,0,.8), 0 0 0 1px var(--line-bright);--ease-out: cubic-bezier(.2, .7, .3, 1);--ease-snap: cubic-bezier(.7, 0, .3, 1);--dur-fast: 80ms;--dur-base: .12s;--dur-enter: .2s;--scanlines: repeating-linear-gradient( to bottom, transparent 0, transparent 2px, rgba(255,255,255,.025) 2px, rgba(255,255,255,.025) 3px )}html,body{background:var(--bg0);color:var(--fg1);font-family:var(--font-mono);font-size:var(--fs-14);line-height:var(--lh-mono);font-feature-settings:"ss01","ss02","calt","liga" 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--accent-green);color:var(--bg0)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100vh}body{background:var(--bg0);color:var(--fg1);font-family:var(--font-mono)}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.35) 100%)}main,.nav{position:relative;z-index:2}.wrap{max-width:1120px;margin:0 auto;padding-left:32px;padding-right:32px}a{color:var(--link)}.nav{position:sticky;top:0;z-index:50;background:#0a0e0fc7;backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.nav__inner{max-width:1120px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav__left{display:flex;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:8px;font-family:var(--font-pixel);font-weight:700;font-size:22px;color:var(--fg1);line-height:1;text-decoration:none}.brand img{image-rendering:pixelated}.nav__links{display:flex;gap:4px}.nav__links a{font-family:var(--font-mono);font-size:13px;color:var(--fg2);text-decoration:none;padding:5px 10px;border-radius:2px;position:relative;transition:color .12s var(--ease-out)}.nav__links a:hover{color:var(--fg1)}.nav__links a.is-active{color:var(--accent-green)}.nav__links a.is-active:after{content:"";position:absolute;left:10px;right:10px;bottom:-2px;height:1px;background:var(--accent-green)}.nav__right{display:flex;align-items:center;gap:14px}.btn{font-family:var(--font-mono);font-weight:500;font-size:13px;padding:8px 14px;border-radius:4px;cursor:pointer;user-select:none;border:1px solid var(--line-bright);background:var(--bg1);color:var(--fg1);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;transition:all .12s var(--ease-out)}.btn:hover{background:var(--bg2);border-color:var(--line-accent)}.btn:active{box-shadow:var(--shadow-press);transform:translateY(1px)}.btn--primary{background:var(--accent-green);color:var(--bg0);border-color:var(--accent-green)}.btn--primary:hover{background:var(--accent-green);color:var(--bg0);box-shadow:0 0 0 1px var(--accent-green),0 0 24px -4px #4ade8080}.btn--ghost{background:transparent;border-color:var(--line)}.btn--ghost:hover{background:var(--bg1)}.eyebrow{font-family:var(--font-mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);margin-bottom:12px}.eyebrow--magenta{color:var(--accent-magenta)}.sec-head{margin-bottom:32px}.sec-head h2{font-family:var(--font-mono);font-weight:700;font-size:32px;line-height:1.1;color:var(--fg1);margin:0}.sec-row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:24px}.sec-row .sec-head{margin-bottom:0}.sec-note{font-family:var(--font-mono);font-size:12px;color:var(--fg3)}.tag{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:2px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.tag:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.tag--shipped{color:var(--accent-green);background:#4ade8014;border:1px solid rgba(74,222,128,.4)}.tag--wip{color:var(--accent-amber);background:#ffb45414;border:1px solid rgba(255,180,84,.4)}.chip{font-family:var(--font-mono);font-size:11px;padding:3px 9px;border-radius:2px;background:var(--bg2);color:var(--fg1);border:1px solid var(--line);white-space:nowrap}.hero{padding:64px 0 48px}.hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}.hero h1{font-family:var(--font-mono);font-weight:700;font-size:54px;line-height:1.05;letter-spacing:-.01em;color:var(--fg1);margin:0 0 16px}.hero h1 .green{color:var(--accent-green)}.hero__bio{font-family:var(--font-sans);font-size:17px;line-height:1.55;color:var(--fg2);max-width:520px;margin:0 0 28px}.hero__cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hero__cta .hint{font-family:var(--font-mono);font-size:12px;color:var(--fg3)}.term{background:var(--bg1);border:1px solid var(--line-bright);border-radius:4px;overflow:hidden;position:relative}.term__bar{background:var(--bg2);padding:6px 12px;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:11px;color:var(--fg3);display:flex;align-items:center;gap:8px}.term__dots{display:flex;gap:5px}.term__dots span{width:9px;height:9px;border-radius:999px;background:var(--bg3)}.term__body{padding:14px 16px;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--fg1);height:200px;display:flex;flex-direction:column}.term__body .ps1{color:var(--accent-green)}.term__body .out{color:var(--fg2)}.term__cmds,.term__prompt{flex:0 0 auto}.term__projects{flex:0 1 auto;min-height:0;overflow:hidden;position:relative}.term__marquee{display:flex;flex-direction:column}.term__proj{white-space:nowrap}.term__projects.is-scrolling{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%)}.term__projects.is-scrolling .term__marquee{animation:term-scroll 12s linear infinite;will-change:transform}.term__projects.is-scrolling:hover .term__marquee{animation-play-state:paused}@keyframes term-scroll{to{transform:translateY(calc(-1 * var(--scroll-h, 0px)))}}@media(prefers-reduced-motion:reduce){.term__projects.is-scrolling .term__marquee{animation:none}}.term:after{content:"";position:absolute;inset:0;pointer-events:none;background:var(--scanlines);mix-blend-mode:screen}.blink{display:inline-block;width:8px;height:1em;background:var(--accent-green);vertical-align:-2px;margin-left:2px;animation:cursor-blink 1.06s steps(1,end) infinite}@keyframes cursor-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.card{background:var(--bg1);border:1px solid var(--line);border-radius:4px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;text-decoration:none;color:inherit;transition:all .12s var(--ease-out)}.card:hover{border-color:var(--line-bright);box-shadow:inset 2px 0 0 0 var(--accent-green)}.card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.card__title{display:flex;align-items:center;gap:10px;min-width:0}.card__title img{image-rendering:pixelated}.card__title .name{font-family:var(--font-mono);font-weight:700;font-size:17px;color:var(--fg1)}.card__title .note{font-family:var(--font-mono);font-size:11px;color:var(--fg4);font-style:italic}.card__desc{font-family:var(--font-sans);font-size:14px;line-height:1.55;color:var(--fg2);margin:0}.card__foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:auto}.card__foot .chips{display:flex;gap:4px;flex-wrap:wrap}.card__foot .year{font-family:var(--font-mono);font-size:11px;color:var(--fg3);white-space:nowrap}.devlog-list{border:1px solid var(--line);border-radius:4px;background:var(--bg1);overflow:hidden}.devlog-row{display:grid;grid-template-columns:110px 1fr 90px;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;align-items:baseline;transition:background .12s var(--ease-out)}.devlog-row:last-child{border-bottom:0}.devlog-row:hover{background:var(--bg2)}.devlog-row .meta{display:flex;flex-direction:column;gap:4px}.devlog-row .meta .date{font-family:var(--font-mono);font-size:12px;color:var(--accent-green)}.devlog-row .meta .kind{font-family:var(--font-mono);font-size:10px;color:var(--fg3);letter-spacing:.06em;text-transform:uppercase}.devlog-row .title{font-family:var(--font-mono);font-weight:700;font-size:15px;color:var(--fg1);margin-bottom:4px}.devlog-row .teaser{font-family:var(--font-sans);font-size:14px;color:var(--fg2);line-height:1.55}.devlog-row .read{font-family:var(--font-mono);font-size:11px;color:var(--fg3);text-align:right}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.uses-card{background:var(--bg1);border:1px solid var(--line);border-radius:4px;padding:14px 16px}.uses-card .label{font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);margin-bottom:10px}.uses-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.uses-card li{font-family:var(--font-mono);font-size:12px;color:var(--fg1)}.uses-card li:before{content:"▸";color:var(--fg3);margin-right:6px}.contact-card{background:var(--bg1);border:1px solid var(--line-bright);border-radius:4px;padding:24px;max-width:720px}.contact-card p{font-family:var(--font-sans);font-size:15px;line-height:1.55;color:var(--fg2);margin:0 0 18px}.contact-card .row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.contact-card .tbd{font-family:var(--font-mono);font-size:12px;color:var(--fg4)}footer{border-top:1px solid var(--line);padding:32px 0 48px;margin-top:48px;position:relative;z-index:2}.footer-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.footer-prompt{font-family:var(--font-mono);font-size:13px;color:var(--fg2);display:flex;align-items:center;gap:6px}.footer-prompt .ps1{color:var(--accent-green)}.footer-fine{margin-top:18px;font-family:var(--font-mono);font-size:11px;color:var(--fg3);line-height:1.6}.footer-tbd{font-family:var(--font-mono);font-size:12px;color:var(--fg4)}.sec{padding:48px 0}.post{max-width:720px;margin:0 auto;padding:56px 32px 80px}.post__back{font-family:var(--font-mono);font-size:12px;color:var(--fg3);text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-bottom:40px;transition:color .12s var(--ease-out)}.post__back:hover{color:var(--fg1)}.post__eyebrow{font-family:var(--font-mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);margin-bottom:14px}.post__eyebrow--magenta{color:var(--accent-magenta)}.post__eyebrow--amber{color:var(--accent-amber)}.post__title{font-family:var(--font-mono);font-weight:700;font-size:36px;line-height:1.1;color:var(--fg1);margin:0 0 20px}.post__title--tight{margin-bottom:8px}.post__subtitle{font-family:var(--font-mono);font-size:13px;color:var(--fg4);font-style:italic;margin:0 0 20px}.post__meta{font-family:var(--font-mono);font-size:12px;color:var(--fg3);margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--line)}.post__meta--row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.prose{font-family:var(--font-sans);font-size:16px;line-height:1.7;color:var(--fg2)}.prose>:first-child{margin-top:0}.prose p{margin:0 0 24px}.prose p:last-child{margin-bottom:0}.prose h2{font-family:var(--font-mono);font-weight:700;font-size:18px;color:var(--fg1);margin:40px 0 16px;line-height:1.2}.prose strong{color:var(--fg1);font-weight:600}.prose code{font-family:var(--font-mono);font-size:13px;background:var(--bg2);color:var(--accent-green);padding:1px 6px;border-radius:2px}.prose ul{padding-left:0;margin:0 0 24px;list-style:none;display:flex;flex-direction:column;gap:10px}.prose li{padding-left:18px;position:relative}.prose li:before{content:"▸";color:var(--fg3);position:absolute;left:0}.prose a{color:var(--accent-green)}.prose blockquote{border-left:2px solid var(--accent-green);padding:14px 18px;background:var(--bg1);border-radius:0 4px 4px 0;margin:0 0 24px}.prose blockquote p{margin:0}.placeholder-box{border:1px dashed var(--line-bright);border-radius:4px;padding:24px;margin:0 0 24px;font-family:var(--font-mono);font-size:12px;color:var(--fg3);display:flex;align-items:center;gap:10px}.placeholder-box:before{content:"[ ]";color:var(--fg4);flex-shrink:0}@media(max-width:860px){.hero__grid{grid-template-columns:1fr;gap:28px}.hero h1{font-size:40px}.grid-2{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr)}.nav__links{display:none}.devlog-row{grid-template-columns:1fr;gap:6px}.devlog-row .read{text-align:left}.post__title{font-size:28px}}@media(max-width:520px){.grid-4{grid-template-columns:1fr}.wrap,.post{padding-left:20px;padding-right:20px}}
