:root{--bg:#f3efe4;--bg-raised:#fff;--ink:#17181c;--ink-soft:#5b5646;--line:#17181c;--accent:#f2540b;--accent-2:#2547e8;--accent-3:#1f8f63;--radius:4px;--wrap:1120px;--vignette:.12;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101216;--bg-raised:#191b21;--ink:#ece8dc;--ink-soft:#a29d8c;--line:#ece8dc;--accent:#ff7a4a;--accent-2:#7c93ff;--accent-3:#57d9a3;--vignette:.32;color-scheme:dark}}:root[data-theme=dark]{--bg:#101216;--bg-raised:#191b21;--ink:#ece8dc;--ink-soft:#a29d8c;--line:#ece8dc;--accent:#ff7a4a;--accent-2:#7c93ff;--accent-3:#57d9a3;--vignette:.32;color-scheme:dark}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;color:var(--ink);opacity:.05;background-image:radial-gradient(currentColor 1px,#0000 1px);background-size:22px 22px;position:fixed;inset:0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body:before{opacity:.035;background-image:repeating-linear-gradient(currentColor 0 1px,#0000 1px 3px)}}:root[data-theme=dark] body:before{opacity:.035;background-image:repeating-linear-gradient(currentColor 0 1px,#0000 1px 3px)}[hidden]{display:none!important}.skip-link{background:var(--accent);color:#fff;z-index:100;padding:.6em 1em;position:absolute;top:0;left:-9999px}.skip-link:focus{top:1rem;left:1rem}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{text-wrap:balance;margin:0;font-family:IBM Plex Sans,sans-serif}code,.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.crt-overlay{z-index:60;pointer-events:none;background-image:repeating-linear-gradient(to bottom, #0000000f 0 1px, transparent 1px 3px), radial-gradient(ellipse at center, transparent 55%, rgba(0, 0, 0, var(--vignette)) 100%);position:fixed;inset:0}.crt-overlay:after{content:"";background:linear-gradient(#0000 0%,#ffffff0d 45%,#0000 55%);animation:7s linear infinite crt-sweep;position:absolute;inset:-20% 0}@keyframes crt-sweep{0%{transform:translateY(-30%)}to{transform:translateY(30%)}}@media (prefers-reduced-motion:reduce){.crt-overlay:after{animation:none;display:none}}#boot-screen{z-index:200;color:#4fbe86;background:#05070a;justify-content:center;align-items:center;font-family:VT323,IBM Plex Mono,monospace;transition:opacity .4s,transform .4s;display:flex;position:fixed;inset:0}.boot-inner{width:min(420px,84vw);font-size:clamp(1.15rem,1rem + 1.2vw,1.55rem);line-height:1.5}.boot-inner p{white-space:pre-wrap;margin:0 0 .15em}.boot-inner .ok{color:#b8ffde}.boot-bar{border:2px solid #4fbe86;width:100%;height:12px;margin-top:.9em}.boot-bar-fill{background:#4fbe86;width:0%;height:100%;animation:1.3s steps(24,end) .15s forwards boot-fill}@keyframes boot-fill{to{width:100%}}#boot-screen.boot-done{opacity:0;transform:scaleY(.01)}@media (prefers-reduced-motion:reduce){#boot-screen{display:none!important}}.tmux-bar{z-index:20;background:var(--bg-raised);border-bottom:2px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1.25rem;font-family:IBM Plex Mono,monospace;font-size:.82rem;display:flex;position:sticky;top:0}.tmux-left{align-items:center;gap:.7rem;min-width:0;font-weight:600;display:flex}.brand-mark{color:var(--accent)}.tmux-left a{align-items:center;gap:.45rem;text-decoration:none;display:inline-flex}.tmux-right{align-items:center;gap:1.1rem;display:flex}.tmux-tabs{gap:.4rem;display:flex}.tmux-tabs a{color:var(--ink);border-radius:var(--radius);border:1.5px solid #0000;padding:.3rem .7rem;text-decoration:none}.tmux-tabs a:hover,.tmux-tabs a:focus-visible{border-color:var(--line);background:var(--bg)}.tmux-tabs a[aria-current=page]{border-color:var(--line);background:var(--accent);color:#fff}.theme-toggle{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);width:1.65rem;height:1.65rem;color:var(--ink);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:.85rem;line-height:1;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--accent);color:var(--accent)}.clock{letter-spacing:.03em;color:var(--ink-soft);text-shadow:0 0 5px color-mix(in srgb, var(--accent) 35%, transparent);font-variant-numeric:tabular-nums;border-left:1.5px solid var(--line);padding-left:1.1rem;font-family:VT323,monospace;font-size:1.15rem}.chrome-label{letter-spacing:.02em;font-family:VT323,monospace;font-size:1rem}main,footer{z-index:1;position:relative}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:1.25rem}section{padding-block:clamp(2.5rem,5vw,4.5rem)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem;font-family:IBM Plex Mono,monospace;font-size:.78rem}h2{margin-bottom:1.75rem;font-size:clamp(1.6rem,1.15rem + 2vw,2.35rem);font-weight:700}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.75rem;display:flex}.section-head h2{margin-bottom:0}.section-head .eyebrow{margin-bottom:.5rem}.more-link{color:var(--ink);white-space:nowrap;border-bottom:2px solid #0000;padding-bottom:.25rem;font-family:IBM Plex Mono,monospace;font-size:.85rem;font-weight:600;text-decoration:none}.more-link:before{content:"$ ";color:var(--accent)}.more-link:hover,.more-link:focus-visible{border-bottom-color:var(--accent)}.desktop{flex-direction:column;min-height:calc(100svh - 3.4rem);display:flex;position:relative}.desktop-icons{z-index:2;flex-flow:wrap;justify-content:center;gap:1.4rem;padding:1.5rem 1.25rem 0;display:flex}@media (width>=641px) and (height>=760px){.desktop-icons{flex-direction:column;padding:0;position:absolute;top:1.75rem;left:1.75rem}}.icon{width:78px;color:var(--ink);flex-direction:column;align-items:center;gap:.4rem;text-decoration:none;display:flex}.icon-glyph{border:2px solid var(--line);background:var(--bg-raised);letter-spacing:.02em;width:46px;height:46px;box-shadow:3px 3px 0 var(--line);border-radius:5px;justify-content:center;align-items:center;font-family:IBM Plex Mono,monospace;font-size:.65rem;font-weight:700;transition:transform .12s,box-shadow .12s;display:flex}.icon-glyph.folder{clip-path:polygon(0 14%,38% 14%,46% 0%,100% 0%,100% 100%,0 100%)}.icon-label{text-align:center;border-radius:2px;padding:.1rem .4rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.icon:hover .icon-glyph,.icon:focus-visible .icon-glyph{box-shadow:5px 5px 0 var(--line);transform:translate(-2px,-2px)}.icon:hover .icon-label,.icon:focus-visible .icon-label{background:var(--accent);color:#fff}@media (prefers-reduced-motion:reduce){.icon-glyph{transition:none}}.desktop-main{flex:1;justify-content:center;align-items:center;padding:5.5rem 1.25rem 2rem;display:flex}.terminal-card{background:var(--bg-raised);border:2px solid var(--line);box-shadow:8px 8px 0 var(--line), 0 40px 70px -30px #0006;border-radius:8px;width:100%;max-width:780px;margin-inline:auto;overflow:hidden}.terminal-titlebar{border-bottom:2px solid var(--line);color:var(--ink-soft);align-items:center;gap:.75rem;padding:.55rem .9rem;font-family:IBM Plex Mono,monospace;font-size:.75rem;display:flex}.terminal-body{padding:1.5rem 1.5rem 1.75rem;font-family:IBM Plex Mono,monospace;font-size:.95rem}.terminal-body .line{white-space:pre-wrap;word-break:break-word;margin:0 0 .5rem}.terminal-body .line.gap{margin-bottom:1.1rem}.terminal-body .answer{color:var(--ink-soft)}.prompt{color:var(--accent);text-shadow:0 0 6px color-mix(in srgb, var(--accent) 65%, transparent)}.type{white-space:nowrap;vertical-align:bottom;width:0;max-width:100%;animation:reveal var(--dur,1s) steps(var(--chars,10), end) var(--delay,0s) both;display:inline-block;overflow:hidden}@keyframes reveal{0%{width:0}to{width:100%}}.cursor{background:var(--accent);width:.55em;height:1em;box-shadow:0 0 8px color-mix(in srgb, var(--accent) 70%, transparent);vertical-align:text-bottom;opacity:0;margin-left:2px;animation:1s steps(1,jump-none) infinite blink,0s linear 9.3s forwards appear;display:inline-block}@keyframes blink{50%{opacity:0}}@keyframes appear{to{opacity:1}}@media (prefers-reduced-motion:reduce){.type{width:100%;animation:none}.cursor{opacity:1;animation:1.2s steps(1,jump-none) infinite blink}}.dock{z-index:2;justify-content:center;padding:0 1.25rem clamp(1.5rem,4vw,2.75rem);display:flex}.dock-inner{border:2px solid var(--line);background:var(--bg-raised);box-shadow:5px 5px 0 var(--line);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:.6rem;padding:.55rem;display:flex}.cmd-btn{color:var(--ink);background:0 0;border:2px solid #0000;border-radius:8px;padding:.55rem .9rem;font-family:IBM Plex Mono,monospace;font-size:.85rem;font-weight:600;text-decoration:none;transition:transform .12s,background .12s,color .12s,border-color .12s}.cmd-btn:before{content:"$ ";color:var(--accent)}.cmd-btn:hover,.cmd-btn:focus-visible{border-color:var(--line);transform:translateY(-3px)}.cmd-btn:active{transform:translateY(0)}.cmd-btn.accent{background:var(--accent);color:#fff;border-color:var(--line)}.cmd-btn.accent:before{color:#fff}@media (prefers-reduced-motion:reduce){.cmd-btn{transition:none}}.grid{gap:1.25rem;display:grid}.notes-grid{grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card{background:var(--bg-raised);border:2px solid var(--line);border-radius:var(--radius);box-shadow:5px 5px 0 var(--line);color:var(--ink);flex-direction:column;gap:.6rem;padding:1.25rem 1.3rem;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex}.card:hover,.card:focus-visible{box-shadow:8px 8px 0 var(--line);transform:translate(-3px,-3px)}@media (prefers-reduced-motion:reduce){.card{transition:none}}.card-top{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.card-title{font-family:IBM Plex Mono,monospace;font-size:1rem;font-weight:600}.card-title .ext{color:var(--accent)}.card-time{color:var(--ink-soft);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:.75rem}.card-excerpt{color:var(--ink-soft);margin:0;font-size:.92rem}.tags{flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.4rem;display:flex}.tag{color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 12%, transparent);border:1px solid var(--accent-2);border-radius:3px;padding:.15rem .45rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.project-card .card-title{font-size:1.05rem}.status{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);white-space:nowrap;align-items:center;gap:.4rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;display:inline-flex}.status:before{content:"";background:var(--dot,var(--ink-soft));border-radius:50%;width:7px;height:7px}.status.active{--dot:var(--accent-3)}.status.building{--dot:var(--accent)}.status.shipped{--dot:var(--accent-2)}.status.paused{--dot:var(--ink-soft)}.page-shell{padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:4rem}.window{background:var(--bg-raised);border:2px solid var(--line);box-shadow:8px 8px 0 var(--line), 0 40px 70px -35px #00000059;border-radius:8px;overflow:hidden}.window-titlebar{border-bottom:2px solid var(--line);color:var(--ink-soft);align-items:center;gap:.85rem;padding:.6rem 1rem;font-family:IBM Plex Mono,monospace;font-size:.78rem;display:flex}.dot-btn{cursor:pointer;background:#ff5f56;border:none;border-radius:50%;width:9px;height:9px;padding:0;text-decoration:none;transition:transform .12s,filter .12s;display:inline-block}.dot-btn:hover,.dot-btn:focus-visible{filter:brightness(1.1);transform:scale(1.15)}.dots{flex:none;gap:.35rem;display:inline-flex}.dot{border-radius:50%;width:9px;height:9px;display:inline-block}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27c93f}.window-body{padding:clamp(1.5rem,4vw,2.5rem)}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem;display:flex}.chip{color:var(--ink);background:var(--bg);border:1.5px solid var(--line);cursor:pointer;border-radius:999px;padding:.3rem .75rem;font-family:IBM Plex Mono,monospace;font-size:.78rem}.chip:hover{border-color:var(--accent)}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--line);color:#fff}.note-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0 2rem;font-family:IBM Plex Mono,monospace;font-size:.82rem;display:flex}.note-prose{max-width:68ch;font-size:1.02rem}.note-prose>*+*{margin-top:1.1em}.note-prose h2{margin-top:1.6em;margin-bottom:0;font-size:1.25rem}.note-prose ul,.note-prose ol{flex-direction:column;gap:.5em;padding-left:1.3em;display:flex}.note-prose blockquote{border-left:3px solid var(--accent);color:var(--ink-soft);margin:0;padding-left:1em}.note-prose code{background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:.05em .35em;font-size:.9em}.note-prose strong{color:var(--ink)}a.wikilink{color:var(--accent-2);text-underline-offset:2px;text-decoration:underline 1.5px}a.wikilink:hover,a.wikilink:focus-visible{color:var(--accent)}a.wikilink-missing{color:var(--ink-soft);text-decoration-style:dashed}.graph-block{border-top:2px dashed var(--line);max-width:68ch;margin-top:3rem;padding-top:1.75rem}.graph-block h3{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:.85rem;font-family:IBM Plex Mono,monospace;font-size:.85rem}.graph-list{flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.graph-list a{color:var(--accent-2);border-bottom:1px dotted #0000;font-family:IBM Plex Mono,monospace;font-size:.9rem;text-decoration:none}.graph-list a:hover,.graph-list a:focus-visible{border-bottom-color:var(--accent-2)}.graph-empty{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:.85rem}.back-link{color:var(--ink-soft);margin-bottom:1.5rem;font-family:IBM Plex Mono,monospace;font-size:.85rem;text-decoration:none;display:inline-block}.back-link:hover,.back-link:focus-visible{color:var(--accent)}.about-lede{max-width:62ch;margin:0 0 2rem;font-size:1.1rem}.about-lede .accent-word{color:var(--accent);font-weight:600}.stat-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2.5rem;display:grid}.stat{border:2px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:.9rem 1rem}.stat-num{color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:1.4rem;font-weight:700;display:block}.stat-label{color:var(--ink-soft);font-size:.82rem}.about-block{margin-bottom:2.25rem}.about-block h3{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:.9rem;font-family:IBM Plex Mono,monospace;font-size:.95rem}.timeline{flex-direction:column;gap:1.1rem;margin:0;padding:0;list-style:none;display:flex}.timeline li{border-left:2px solid var(--line);padding-left:1rem}.timeline .role{font-weight:600}.timeline .industry{color:var(--ink-soft);font-size:.9rem}.skill-groups{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.skill-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.skill-list li{border:1.5px solid var(--line);border-radius:4px;padding:.25rem .6rem;font-family:IBM Plex Mono,monospace;font-size:.82rem}.cred-list{color:var(--ink-soft);flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.cred-list strong{color:var(--ink)}footer{border-top:2px solid var(--line);padding-block:clamp(2.5rem,5vw,4rem) 3rem}.footer-grid{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem;display:flex}.contact-links{margin:0;padding:0;font-family:IBM Plex Mono,monospace;font-size:.95rem;list-style:none}.contact-links li{margin-bottom:.4rem}.contact-links a{border-bottom:1px solid #0000;text-decoration:none}.contact-links a:hover,.contact-links a:focus-visible{border-bottom-color:var(--accent);color:var(--accent)}.contact-links .arrow{color:var(--ink-soft);margin-right:.5rem}.fine-print{color:var(--ink-soft);margin-top:2.5rem;font-family:IBM Plex Mono,monospace;font-size:.78rem}@media (width<=560px){.tmux-tabs{display:none}.terminal-body{font-size:.85rem}}
