@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{--bg:#090a0a;--bg-elevated:#0f1110;--surface:#121513;--surface-hover:#171b18;--text:#edf2ed;--muted:#8b948d;--faint:#5a615c;--line:#252a26;--accent:#9cff57;--accent-soft:#9cff571a;--sans:"Noto Sans SC", system-ui, sans-serif;--mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{color-scheme:dark;background:var(--bg);font-family:var(--sans);scroll-behavior:smooth}body{min-height:100vh;color:var(--text);background:linear-gradient(#ffffff05 1px, transparent 1px), linear-gradient(90deg, #ffffff05 1px, transparent 1px), radial-gradient(circle at 76% 12%, #9cff570d, transparent 28%), var(--bg);-webkit-font-smoothing:antialiased;background-size:48px 48px,48px 48px,auto,auto;margin:0;line-height:1.75}body:before{z-index:-1;pointer-events:none;content:"";background:linear-gradient(90deg, var(--bg) 0, transparent 12%, transparent 88%, var(--bg) 100%);position:fixed;inset:0}::selection{color:var(--bg);background:var(--accent)}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}.site-header{z-index:20;backdrop-filter:blur(18px);background:#090a0ad1;border-bottom:1px solid #ffffff12;width:100%;position:sticky;top:0}.site-nav{justify-content:space-between;align-items:center;width:min(1120px,100% - 40px);height:72px;margin:0 auto;display:flex}.brand{font-family:var(--mono);letter-spacing:-.02em;align-items:center;gap:10px;font-size:.96rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark,.accent,.prompt,.online{color:var(--accent)}.brand-mark{font-size:1.15rem}.nav-links{align-items:center;gap:34px;display:flex}.nav-links a{color:var(--muted);font-family:var(--mono);font-size:.79rem;text-decoration:none;transition:color .18s;position:relative}.nav-links a span{color:var(--faint);margin-right:5px;font-size:.65rem}.nav-links a:after{content:"";background:var(--accent);opacity:0;height:1px;transition:all .18s;position:absolute;bottom:-24px;left:0;right:0;transform:scaleX(.4)}.nav-links a:hover,.nav-links a.active{color:var(--text)}.nav-links a.active:after{opacity:1;transform:scaleX(1)}.hamburger{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;width:40px;height:40px;padding:10px;display:none}.hamburger .line{background:var(--text);width:100%;height:1px;margin:4px 0;display:block}.site-main{width:min(1120px,100% - 40px);min-height:calc(100vh - 160px);margin:0 auto;padding:88px 0 100px}.page-header{max-width:780px;margin-bottom:26px}.page-header h1{letter-spacing:-.07em;margin:6px 0 0;font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.05}.eyebrow{color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.71rem;font-weight:500}.status-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block;box-shadow:0 0 12px #9cff578c}.hero{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:center;gap:96px;min-height:610px;padding:72px 0 110px;display:grid}.hero h1{letter-spacing:-.075em;max-width:750px;margin:21px 0 26px;font-size:clamp(3.2rem,6.8vw,6.4rem);line-height:1.04}.hero-intro{color:#aab2ab;max-width:590px;margin:0;font-size:1.02rem;line-height:1.9}.hero-actions{gap:12px;margin-top:38px;display:flex}.button{border:1px solid var(--line);min-height:46px;font-family:var(--mono);border-radius:3px;justify-content:center;align-items:center;gap:28px;padding:0 20px;font-size:.78rem;text-decoration:none;transition:all .18s;display:inline-flex}.button.primary{border-color:var(--accent);color:#0b0d0b;background:var(--accent)}.button.primary:hover{background:#b1ff7b;transform:translateY(-2px)}.button.secondary:hover{border-color:var(--muted);background:var(--surface)}.terminal{font-family:var(--mono);background:#0c0e0de0;border:1px solid #2a302b;border-radius:5px;overflow:hidden;transform:translateY(8px);box-shadow:28px 28px 0 -1px #0d0f0e,28px 28px #1a1e1b}.terminal-bar{border-bottom:1px solid var(--line);background:#111412;justify-content:space-between;align-items:center;height:43px;padding:0 15px;display:flex}.terminal-bar div{gap:7px;display:flex}.terminal-bar div span{background:#343a35;border-radius:50%;width:7px;height:7px}.terminal-bar div span:first-child{background:var(--accent)}.terminal-bar p{color:var(--faint);margin:0;font-size:.65rem}.terminal-body{color:#cbd2cc;min-height:270px;padding:28px;font-size:.79rem}.terminal-body p{margin:0 0 9px}.terminal-body .output{color:var(--muted);margin:-4px 0 21px 17px}.cursor{color:var(--accent);margin-left:4px;animation:1.1s steps(2,start) infinite blink}@keyframes blink{50%{opacity:0}}.home-section,.skills-section{border-top:1px solid var(--line);padding-top:82px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:30px;display:flex}.section-heading h2{letter-spacing:-.05em;margin:5px 0 0;font-size:clamp(1.7rem,4vw,2.7rem)}.section-heading>a{color:var(--muted);font-family:var(--mono);font-size:.75rem;text-decoration:none}.section-heading>a span{color:var(--accent);margin-left:8px}.post-list{border-top:1px solid var(--line)}.post-card{border-bottom:1px solid var(--line)}.post-card-link{grid-template-columns:58px 1fr auto;align-items:center;gap:22px;padding:28px 18px 28px 8px;text-decoration:none;transition:background .18s,padding .18s;display:grid}.post-card-link:hover{background:var(--surface-hover);padding-left:14px;padding-right:12px}.post-index{color:var(--faint);font-family:var(--mono);font-size:.72rem}.post-content h2{letter-spacing:-.035em;margin:5px 0 7px;font-size:clamp(1.15rem,3vw,1.55rem);line-height:1.4}.post-content>p{max-width:690px;color:var(--muted);margin:0;font-size:.88rem}.post-meta{color:var(--faint);font-family:var(--mono);flex-wrap:wrap;gap:14px;font-size:.65rem;display:flex}.post-meta span{color:#778079}.post-arrow{color:var(--faint);font-family:var(--mono);font-size:1.15rem;transition:color .18s,transform .18s}.post-card-link:hover .post-arrow{color:var(--accent);transform:translate(2px,-2px)}.page-lead{max-width:680px;color:var(--muted);margin:0 0 54px;font-size:1.02rem}.content-toolbar{border-bottom:1px solid var(--line);color:var(--faint);font-family:var(--mono);justify-content:space-between;padding:12px 7px;font-size:.67rem;display:flex}.pagination{font-family:var(--mono);grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin-top:36px;font-size:.72rem;display:grid}.pagination-direction,.pagination-page{color:var(--muted);text-decoration:none;transition:color .18s,border-color .18s,background .18s}.pagination-direction:last-child{text-align:right}.pagination-direction:hover,.pagination-page:hover{color:var(--accent)}.pagination-direction.is-disabled{color:var(--faint);opacity:.45}.pagination-pages{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pagination-page{border:1px solid var(--line);place-items:center;width:32px;height:32px;display:grid}.pagination-page.is-current{border-color:var(--accent);background:var(--accent);color:#0a0a0a}@media (width<=640px){.pagination{grid-template-columns:1fr 1fr}.pagination-pages{grid-area:1/1/auto/-1}}.about-grid{grid-template-columns:1.2fr .8fr;gap:90px;margin-top:50px;display:grid}.about-copy>p:not(.large-copy){max-width:670px;color:var(--muted)}.large-copy{letter-spacing:-.04em;margin:0 0 34px;font-size:clamp(1.5rem,3vw,2.3rem);font-weight:600;line-height:1.6}.quote-block{border-left:2px solid var(--accent);background:var(--surface);margin-top:52px;padding:20px 24px}.quote-block span{color:var(--faint);font-family:var(--mono);font-size:.65rem}.quote-block p{margin:4px 0 0;font-size:1.06rem}.profile-panel{border:1px solid var(--line);font-family:var(--mono);background:#0f1110cc;align-self:start}.panel-label{border-bottom:1px solid var(--line);color:var(--faint);padding:11px 17px;font-size:.66rem}.profile-panel dl{margin:0;padding:19px 22px}.profile-panel dl div{grid-template-columns:90px 1fr;padding:10px 0;font-size:.76rem;display:grid}.profile-panel dt{color:#727a73}.profile-panel dt:after{content:":"}.profile-panel dd{color:#bac2bb;margin:0}.skills-section{margin-top:110px}.skill-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.skill{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:92px;font-family:var(--mono);align-items:center;gap:24px;padding:20px;font-size:.88rem;transition:background .18s;display:flex}.skill:hover{background:var(--surface)}.skill span{color:var(--faint);font-size:.64rem}.tags{flex-wrap:wrap;gap:9px;display:flex}.tag{border:1px solid var(--line);color:var(--muted);background:var(--surface);font-family:var(--mono);border-radius:2px;padding:5px 10px;font-size:.66rem;text-decoration:none;transition:all .18s;display:inline-flex}.tag:hover{color:var(--accent);background:var(--accent-soft);border-color:#9cff5773}.tag-large{padding:15px 19px;font-size:.8rem}.article-shell{width:min(760px,100%);margin:0 auto}.article-header{border-bottom:1px solid var(--line);padding-bottom:50px}.back-link{color:var(--muted);font-family:var(--mono);margin-bottom:62px;font-size:.72rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.article-kicker{color:var(--accent);font-family:var(--mono);letter-spacing:.08em;margin-bottom:16px;font-size:.68rem}.article-header h1{letter-spacing:-.065em;margin:0 0 20px;font-size:clamp(2.5rem,7vw,4.8rem);line-height:1.15}.article-description{color:var(--muted);margin:0 0 22px;font-size:1.03rem}.article-meta{color:var(--faint);font-family:var(--mono);gap:10px;margin-bottom:22px;font-size:.69rem;display:flex}.prose{color:#c5ccc6;padding-top:45px;font-size:1rem;line-height:1.95}.prose h2,.prose h3{color:var(--text);letter-spacing:-.035em;margin:2.2em 0 .7em;line-height:1.4}.prose h2{font-size:1.65rem}.prose a{color:var(--accent);text-underline-offset:4px}.prose code{border:1px solid var(--line);color:var(--accent);background:var(--surface);font-family:var(--mono);border-radius:2px;padding:2px 6px;font-size:.85em}.prose li{margin:.65em 0}.site-footer{border-top:1px solid var(--line);width:min(1120px,100% - 40px);min-height:88px;color:var(--faint);font-family:var(--mono);justify-content:space-between;align-items:center;margin:0 auto;font-size:.67rem;display:flex}.site-footer div{align-items:center;display:flex}.site-footer p{margin:0}.site-footer a{color:var(--muted);text-underline-offset:3px}@media (width<=860px){.hero{grid-template-columns:1fr;gap:52px}.terminal{width:min(540px,100% - 28px)}.about-grid{grid-template-columns:1fr;gap:50px}.profile-panel{max-width:540px}}@media (width<=640px){body{background-size:32px 32px,32px 32px,auto,auto}.site-nav,.site-main,.site-footer{width:min(100% - 28px,1120px)}.site-nav{height:64px}.hamburger{display:block}.nav-links{border-bottom:1px solid var(--line);background:#090a0af7;flex-direction:column;align-items:stretch;gap:0;padding:16px 14px 22px;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.expanded{display:flex}.nav-links a{border-bottom:1px solid #ffffff0a;padding:13px}.nav-links a:after{display:none}.site-main{padding:62px 0 74px}.hero{min-height:auto;padding:16px 0 80px}.hero h1{margin-top:17px;font-size:clamp(3rem,15vw,4.5rem)}.hero-intro{font-size:.94rem}.hero-actions{flex-direction:column;align-items:stretch}.button{width:100%}.terminal{width:calc(100% - 18px);box-shadow:18px 18px 0 -1px #0d0f0e,18px 18px #1a1e1b}.terminal-body{min-height:250px;padding:24px 20px}.home-section{padding-top:60px}.post-card-link{grid-template-columns:32px 1fr auto;gap:10px;padding:24px 4px}.post-card-link:hover{padding-left:6px;padding-right:2px}.post-meta{gap:8px}.post-content>p{display:none}.section-heading{align-items:start}.page-header h1{font-size:3.2rem}.about-grid{margin-top:35px}.large-copy{font-size:1.45rem}.skills-section{margin-top:80px}.skill-grid{grid-template-columns:repeat(2,1fr)}.skill{gap:13px;min-height:76px;padding:15px}.article-header h1{font-size:2.8rem}.back-link{margin-bottom:45px}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:25px 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
