:root{--paper:#faf7f1;--ink:#1d1a17;--muted:#6f6862;--faint:#e7e1d6;--card:#fff;--accent:#1e6b4e;--accent-bright:#279667;--accent-soft:#eaf2ec;--up:#1e6b4e;--down:#b4482d;--shadow:0 1px 2px #1d1a170d, 0 8px 28px #1d1a1712;--shadow-lift:0 2px 4px #1d1a170f, 0 18px 44px #1d1a1721}[data-theme=dark]{--paper:#141210;--ink:#ece7dd;--muted:#9b948a;--faint:#2b2820;--card:#1c1915;--accent:#5fb98d;--accent-bright:#74d3a4;--accent-soft:#1d2b23;--up:#5fb98d;--down:#d67655;--shadow:0 1px 2px #0000004d, 0 8px 28px #00000059;--shadow-lift:0 2px 4px #00000059, 0 18px 44px #00000080}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html.has-cursor,html.has-cursor a,html.has-cursor button{cursor:none}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font:17px/1.65 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;transition:background .35s,color .35s;overflow-x:hidden}::selection{background:var(--accent);color:var(--paper)}a{color:var(--accent);text-decoration:none}.wrap{max-width:1200px;margin:0 auto;padding:0 40px}@media (width<=640px){.wrap{padding:0 22px}}.cursor-dot{z-index:200;pointer-events:none;background:var(--accent-bright);border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;transition:width .2s,height .2s,margin .2s,background-color .2s;display:none;position:fixed;top:0;left:0}.has-cursor .cursor-dot{display:block}.cursor-dot.active{background:var(--accent-bright);width:8px;height:8px;margin:-4px 0 0 -4px}.cursor-ring{z-index:199;pointer-events:none;width:90px;height:90px;margin:-45px 0 0 -45px;display:none;position:fixed;top:0;left:0}.has-cursor .cursor-ring{display:block}.cursor-ring-scaler{justify-content:center;align-items:center;width:100%;height:100%;transition:transform .35s cubic-bezier(.25,1,.5,1);display:flex}.cursor-ring.active .cursor-ring-scaler{transform:scale(.8)}.cursor-text-container{justify-content:center;align-items:center;width:100%;height:100%;animation:15s linear infinite rotate-cursor-text;display:flex;position:relative}.cursor-text-char{color:var(--ink);text-transform:uppercase;font-size:8.2px;font-weight:700;transition:color .3s;position:absolute;top:50%;left:50%}.cursor-ring.active .cursor-text-char{color:var(--accent-bright)}@keyframes rotate-cursor-text{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scroll-progress{background:var(--accent-bright);z-index:90;width:0%;height:2.5px;position:fixed;top:0;left:0}nav{z-index:50;-webkit-backdrop-filter:blur(12px);background:color-mix(in srgb, var(--paper) 78%, transparent);border-bottom:1px solid #0000;transition:border-color .3s;position:fixed;top:0;left:0;right:0}nav.scrolled{border-bottom-color:var(--faint)}nav .bar{align-items:center;gap:22px;max-width:1200px;margin:0 auto;padding:14px 40px;display:flex}nav .sig{color:var(--ink);margin-right:auto;font-family:Fraunces,Georgia,serif;font-size:21px;font-weight:600}nav .links{gap:20px;display:flex}nav .links a{letter-spacing:.06em;color:var(--muted);padding:3px 0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;position:relative}nav .links a:after{content:"";background:var(--accent);width:0;height:1.5px;transition:width .25s;position:absolute;bottom:0;left:0}nav .links a:hover:after,nav .links a.active:after{width:100%}nav .links a.active{color:var(--ink)}#themeBtn{border:1px solid var(--faint);background:var(--card);color:var(--ink);cursor:pointer;border-radius:50%;place-items:center;width:32px;height:32px;font-size:14px;transition:transform .2s,box-shadow .2s;display:grid}#themeBtn:hover{box-shadow:var(--shadow);transform:rotate(20deg)scale(1.08)}@media (width<=560px){nav .bar{padding:14px 22px}nav .links{gap:12px}nav .links a{font-size:11px}}.hero{align-items:center;min-height:100svh;padding:120px 0 80px;display:flex;position:relative;overflow:hidden}#tape{opacity:.5;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:center;gap:64px;width:100%;display:grid;position:relative}@media (width<=900px){.hero-grid{grid-template-columns:1fr;gap:48px}}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;display:inline-flex}.kicker .dot{background:var(--accent-bright);border-radius:50%;width:7px;height:7px;animation:2.2s infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}55%{box-shadow:0 0 0 8px #0000}}.hero h1{letter-spacing:-.025em;margin-top:20px;font-family:Fraunces,Georgia,serif;font-size:clamp(56px,10.5vw,128px);font-weight:500;line-height:.98}.hero h1 em{color:var(--accent);font-style:italic}.hero h1 .line{padding-bottom:.08em;display:block;overflow:hidden}.hero h1 .line>span{animation:.9s cubic-bezier(.2,.7,.2,1) forwards paused rise;display:inline-block;transform:translateY(110%)}.hero h1 .line:nth-child(2)>span{animation-delay:.14s}@keyframes rise{to{transform:translateY(0)}}.hero .sub{max-width:520px;color:var(--muted);opacity:0;margin-top:26px;font-size:18px;animation:.8s .5s forwards paused fadeUp}.hero .sub strong{color:var(--ink);font-weight:600}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero .cta{opacity:0;flex-wrap:wrap;gap:16px;margin-top:34px;animation:.8s .66s forwards paused fadeUp;display:flex}.booted .hero h1 .line>span,.booted .hero .sub,.booted .hero .cta{animation-play-state:running}.hero-side{opacity:0;animation:.9s .8s forwards paused fadeUp}.booted .hero-side{animation-play-state:running}.scroll-cue{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;display:flex;position:absolute;bottom:26px;left:40px}.scroll-cue .cue-line{background:var(--faint);width:56px;height:1.5px;position:relative;overflow:hidden}.scroll-cue .cue-line:after{content:"";background:var(--accent-bright);animation:2s cubic-bezier(.6,0,.3,1) infinite cue;position:absolute;inset:0;transform:translate(-100%)}@keyframes cue{45%{transform:translate(0)}to{transform:translate(100%)}}.btn{letter-spacing:.03em;cursor:pointer;border:1px solid var(--ink);color:var(--ink);will-change:transform;background:0 0;border-radius:999px;align-items:center;gap:9px;padding:12px 22px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13.5px;transition:transform .2s cubic-bezier(.2,.7,.2,1),background .2s,color .2s,box-shadow .2s;display:inline-flex}.btn.primary{background:var(--ink);color:var(--paper)}.btn:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.btn.primary:hover{background:var(--accent);border-color:var(--accent)}.btn:not(.primary):hover{background:var(--ink);color:var(--paper)}.facts{opacity:0;grid-template-columns:repeat(2,minmax(0,240px));gap:10px 36px;margin-top:30px;animation:.8s .58s forwards paused fadeUp;display:grid}.booted .facts{animation-play-state:running}.fact{border-bottom:1px dashed var(--faint);align-items:baseline;gap:12px;padding-bottom:8px;display:flex}.fact dt{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);min-width:66px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.fact dd{color:var(--ink);font-size:14px;font-weight:500}@media (width<=560px){.facts{grid-template-columns:1fr}}.currently{border:1px dashed var(--faint);border-radius:14px;max-width:380px;margin-top:16px;margin-left:auto;padding:16px 18px}@media (width<=900px){.currently{margin-left:0}}.cur-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.currently ul{margin-top:8px;list-style:none}.currently li{color:var(--muted);padding:4px 0 4px 18px;font-size:13.5px;position:relative}.currently li:before{content:"→";color:var(--accent);position:absolute;left:0}.book{background:color-mix(in srgb, var(--card) 82%, transparent);-webkit-backdrop-filter:blur(6px);border:1px solid var(--faint);box-shadow:var(--shadow-lift);border-radius:16px;max-width:380px;margin-left:auto;padding:20px 22px;font-family:JetBrains Mono,ui-monospace,monospace}@media (width<=900px){.book{margin-left:0}}.book-head{letter-spacing:.1em;color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.book-head .live-dot{color:var(--accent-bright);animation:1.6s infinite blink}@keyframes blink{50%{opacity:.35}}.book-px{font-variant-numeric:tabular-nums;margin:10px 0 14px;font-size:34px;font-weight:500;transition:color .2s}.book-px.up{color:var(--up)}.book-px.down{color:var(--down)}.book-px .chg{margin-left:10px;font-size:12.5px}.book-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.book .row{color:var(--muted);z-index:0;justify-content:space-between;padding:3.5px 6px;font-size:11.5px;display:flex;position:relative;overflow:hidden}.book .row .px{color:var(--ink)}.book .depth{z-index:-1;opacity:.16;border-radius:3px;transition:width .6s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0}.book .depth.bid{background:var(--up);right:auto}.book .depth.ask{background:var(--down);right:auto}.book-foot{letter-spacing:.06em;color:var(--muted);border-top:1px dashed var(--faint);margin-top:14px;padding-top:10px;font-size:10px}.ticker{border-top:1px solid var(--faint);border-bottom:1px solid var(--faint);padding:13px 0;position:relative;overflow:hidden}.ticker .rail{gap:48px;width:max-content;animation:36s linear infinite marqueeMove;display:flex}.ticker:hover .rail{animation-play-state:paused}@keyframes marqueeMove{to{transform:translate(-50%)}}.ticker .item{color:var(--muted);white-space:nowrap;letter-spacing:.03em;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px}.ticker .item b{color:var(--ink);font-weight:500}.ticker .up{color:var(--up)}.ticker .down{color:var(--down)}.marquee{padding:72px 0 8px;overflow:hidden}.marquee-rail{width:max-content;animation:40s linear infinite marqueeMove;display:flex}.marquee-rail.reverse{animation-direction:reverse}.marquee-rail span{white-space:nowrap;color:#0000;-webkit-text-stroke:1.2px color-mix(in srgb, var(--muted) 55%, transparent);padding-right:.4em;font-family:Fraunces,Georgia,serif;font-size:clamp(54px,9vw,110px);font-style:italic;font-weight:500;line-height:1}section{padding:96px 0 24px}.sect-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:72px;display:grid}.sect-left{position:sticky;top:110px}@media (width<=900px){.sect-grid{grid-template-columns:1fr;gap:34px}.sect-left{position:static}}h2{text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:14px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;font-weight:500}h2 .idx{color:var(--accent);margin-right:8px}.sect-title{letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-size:clamp(28px,3.2vw,40px);font-weight:500;line-height:1.15}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(26px)}.reveal.in{opacity:1;transform:none}.filters{flex-wrap:wrap;gap:7px;margin-top:26px;display:flex}.filter{letter-spacing:.04em;cursor:pointer;border:1px solid var(--faint);color:var(--muted);background:0 0;border-radius:999px;padding:5px 13px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;transition:all .2s}.filter:hover{border-color:var(--accent);color:var(--accent)}.filter.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.stats{grid-template-columns:repeat(4,1fr);display:grid}@media (width<=820px){.stats{grid-template-columns:repeat(2,1fr);row-gap:34px}}.stat{border-left:2px solid var(--faint);padding:4px 26px 4px 22px;transition:border-color .3s}.stat:hover{border-left-color:var(--accent-bright)}.stat .num{letter-spacing:-.03em;color:var(--accent);font-variant-numeric:tabular-nums;font-family:Fraunces,Georgia,serif;font-size:clamp(42px,4.6vw,60px);font-weight:600;line-height:1}.stat .lbl{color:var(--muted);max-width:200px;margin-top:10px;font-size:13.5px;line-height:1.45}.sect-body .offset .proj{margin-left:9%}@media (width<=900px){.sect-body .offset .proj{margin-left:0}}.proj{background:var(--card);border:1px solid var(--faint);box-shadow:var(--shadow);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));border-radius:18px;margin-bottom:30px;padding:34px 36px;transition:box-shadow .3s,border-color .3s,transform .3s;position:relative;overflow:hidden}.proj:before{content:"";opacity:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--accent) 9%, transparent), transparent 65%);pointer-events:none;transition:opacity .35s;position:absolute;inset:0}.proj:hover:before{opacity:1}.proj:hover{box-shadow:var(--shadow-lift);border-color:color-mix(in srgb, var(--accent) 35%, var(--faint))}.ghost-idx{color:#0000;-webkit-text-stroke:1px color-mix(in srgb, var(--muted) 30%, transparent);pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Fraunces,Georgia,serif;font-size:120px;font-style:italic;font-weight:600;line-height:1;position:absolute;top:-6px;right:14px}.meta-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex;position:relative}.meta-row .cat,.meta-row .metric{letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.meta-row .cat{color:var(--muted);border:1px solid var(--faint)}.meta-row .metric{color:var(--paper);background:var(--accent)}.proj .head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex;position:relative}.proj h3{letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-size:28px;font-weight:600}.proj .flag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);vertical-align:4px;border-radius:999px;margin-left:10px;padding:3px 10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px}.proj .year{color:var(--muted);white-space:nowrap;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px}.proj>p{color:var(--muted);max-width:640px;margin-top:12px;position:relative}.proj p b,.proj li b{color:var(--ink);font-weight:600}.proj .stack{flex-wrap:wrap;gap:7px;margin-top:16px;display:flex;position:relative}.proj .stack span{color:var(--muted);border:1px solid var(--faint);border-radius:999px;padding:3px 10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;transition:color .2s,border-color .2s,transform .2s}.proj .stack span:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.proj-links{flex-wrap:wrap;align-items:center;gap:22px;margin-top:18px;display:flex;position:relative}.proj-links .spec-toggle{margin-top:0}.proj-link{letter-spacing:.05em;color:var(--ink);border-bottom:1px solid var(--faint);padding-bottom:2px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;transition:color .2s,border-color .2s}.proj-link:hover{color:var(--accent);border-color:var(--accent)}.spec-toggle{cursor:pointer;letter-spacing:.05em;color:var(--accent);background:0 0;border:none;align-items:center;gap:7px;padding:4px 0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;display:inline-flex;position:relative}.spec-toggle .chev{transition:transform .3s;display:inline-block}.proj.open .spec-toggle .chev{transform:rotate(90deg)}.spec{max-height:0;transition:max-height .45s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden}.spec ul{margin:16px 0 6px;padding-left:0;list-style:none}.spec li{color:var(--muted);border-top:1px dashed var(--faint);max-width:620px;padding:9px 0 9px 22px;font-size:15px;position:relative}.spec li:before{content:"▸";color:var(--accent);position:absolute;left:2px}.timeline{padding-left:30px;position:relative}.timeline:before{content:"";background:var(--faint);width:2px;position:absolute;top:6px;bottom:6px;left:6px}.tl-item{padding-bottom:44px;position:relative}.tl-item:before{content:"";background:var(--paper);border:3px solid var(--accent);border-radius:50%;width:14px;height:14px;transition:transform .25s;position:absolute;top:7px;left:-30px}.tl-item:hover:before{transform:scale(1.3)}.tl-item .when{color:var(--muted);font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px}.tl-item h3{margin-top:5px;font-size:19px;font-weight:600}.tl-item .where{color:var(--muted);font-size:15px}.tl-item ul{margin:12px 0 0;padding-left:0;list-style:none}.tl-item li{color:var(--muted);max-width:620px;padding:5px 0 5px 20px;font-size:15.5px;position:relative}.tl-item li:before{content:"—";color:var(--accent);position:absolute;left:0}.tl-item li b{color:var(--ink);font-weight:600}.tools{flex-wrap:wrap;gap:9px;display:flex}.tools span{border:1px solid var(--faint);color:var(--muted);background:var(--card);cursor:default;border-radius:999px;padding:8px 16px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;transition:all .22s cubic-bezier(.2,.7,.2,1)}.tools span:hover{color:var(--paper);background:var(--accent);border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-3px)rotate(-1deg)}footer{padding:40px 0 90px}.footer-grid{grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);align-items:end;gap:60px;display:grid}@media (width<=820px){.footer-grid{grid-template-columns:1fr;gap:40px}}footer .reach{letter-spacing:-.015em;max-width:640px;font-family:Fraunces,Georgia,serif;font-size:clamp(32px,4.8vw,54px);font-weight:500;line-height:1.16}footer .reach em{color:var(--accent);font-style:italic}#magnet{margin-top:38px;display:inline-flex}footer .links{flex-direction:column;align-items:flex-start;gap:14px;font-size:16px;display:flex}footer .links a{border-bottom:1px solid #0000;transition:border-color .15s,transform .2s}footer .links a:hover{border-bottom-color:var(--accent);transform:translate(4px)}footer .colophon{color:var(--muted);border-top:1px solid var(--faint);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:72px;padding-top:22px;font-size:13px;display:flex}footer .colophon .clock{font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}.loader{z-index:100;background:var(--paper);border-bottom:2px solid var(--accent);place-items:center;transition:transform .7s cubic-bezier(.65,0,.2,1);display:grid;position:fixed;inset:0}.loader.exit{transform:translateY(-100%)}.loader-inner{flex-direction:column;align-items:center;gap:10px;display:flex}.loader-sig{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:64px;font-weight:600;animation:.6s both loaderFade}@keyframes loaderFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.loader-line polyline{stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420px;animation:1.1s cubic-bezier(.4,0,.3,1) .15s forwards loaderDraw}@keyframes loaderDraw{to{stroke-dashoffset:0}}.loader-tag{letter-spacing:.12em;color:var(--muted);text-transform:uppercase;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;animation:.6s .35s both loaderFade}.loader.exit .loader-inner{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}.ticker .rail,.marquee-rail{animation:none}.loader{display:none}.hero h1 .line>span{transform:none}.hero .sub,.hero .cta,.hero-side,.facts{opacity:1}}.github-section{border:1px solid var(--faint);background:var(--card);border-radius:8px;margin-top:56px;padding:32px;transition:border-color .3s,background-color .3s}.github-header{border-bottom:1px solid var(--faint);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:24px;padding-bottom:16px;display:flex}.github-title{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:500}.github-subtitle{color:var(--muted);font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;text-decoration:none;transition:color .2s}.github-subtitle:hover{color:var(--accent-bright)}.calendar-wrapper{width:100%;padding-bottom:4px;overflow-x:auto}.calendar-wrapper::-webkit-scrollbar{height:5px}.calendar-wrapper::-webkit-scrollbar-track{background:0 0}.calendar-wrapper::-webkit-scrollbar-thumb{background:var(--faint);border-radius:4px}.calendar-wrapper::-webkit-scrollbar-thumb:hover{background:var(--muted)}@media (width<=560px){.github-section{padding:20px}}
