:root{--bg:#0c100e;--bg-soft:#121814;--bg-card:#131a16;--rule:#25342b;--rule-soft:#1a2520;--ink:#e8ecd8;--ink-soft:#aab3a0;--ink-mute:#6f7868;--copper:#c97b3f;--copper-hi:#e8a96e;--copper-lo:#6c9b7a;--patina:#88c79a;--shadow:#0000008c;--row-pad:36px;--gap:36px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01", "cv11";font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.serif{letter-spacing:-.005em;font-family:Instrument Serif,Cormorant Garamond,EB Garamond,Georgia,serif;font-weight:400}a{color:inherit;text-decoration:none}::selection{background:var(--copper);color:var(--bg)}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(1200px 700px at 75% -10%, color-mix(in oklch, var(--copper) 14%, transparent), transparent 60%), radial-gradient(900px 500px at -5% 110%, color-mix(in oklch, var(--patina) 7%, transparent), transparent 60%);opacity:.9;position:fixed;inset:0}.shell{z-index:1;max-width:1120px;margin:0 auto;padding:32px 32px 120px;position:relative}@media (max-width:640px){.shell{padding:24px 18px 80px}}section{scroll-margin-top:96px}.cb-nav-bar{z-index:50;background:color-mix(in oklch, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);border-bottom:1px solid #0000;transition:border-color .25s,background .25s;position:sticky;top:0}.cb-nav-bar.scrolled{border-bottom-color:var(--rule);background:color-mix(in oklch, var(--bg) 92%, transparent)}.cb-nav-inner{justify-content:space-between;align-items:center;gap:32px;max-width:1120px;margin:0 auto;padding:14px 32px;display:flex}@media (max-width:640px){.cb-nav-inner{padding:12px 18px}}.nav-lockup{cursor:pointer;align-items:center;gap:10px;display:flex}.nav-lockup .wm{letter-spacing:-.01em;font-family:Instrument Serif,serif;font-size:22px;line-height:1}.nav-lockup .wm em{color:var(--copper);font-style:normal}.cb-nav-links{letter-spacing:.02em;align-items:center;gap:4px;font-family:JetBrains Mono,monospace;font-size:11.5px;display:flex}.cb-nav-links a{color:var(--ink-mute);text-transform:lowercase;border-radius:6px;align-items:baseline;gap:8px;padding:6px 12px;transition:color .2s;display:inline-flex;position:relative}.cb-nav-links a .num{color:var(--ink-mute);opacity:.7;font-size:9.5px;transition:color .2s,opacity .2s}.cb-nav-links a:hover{color:var(--ink)}.cb-nav-links a:hover .num{color:var(--ink-soft);opacity:1}.cb-nav-links a.active{color:var(--copper)}.cb-nav-links a.active .num{color:var(--copper);opacity:1}.cb-nav-links a.ext{color:var(--ink-mute);border-left:1px solid var(--rule);border-radius:0;margin-left:8px;padding-left:16px}.cb-nav-links a.ext:hover{color:var(--copper)}@media (max-width:640px){.cb-nav-links a .num{display:none}.cb-nav-links a{padding:6px 8px}.cb-nav-links a.ext{margin-left:2px;padding-left:10px}}@media (max-width:480px){.nav-lockup .wm{display:none}.cb-nav-inner{gap:12px}.cb-nav-links{scrollbar-width:none;overflow-x:auto}.cb-nav-links::-webkit-scrollbar{display:none}}.cb-nav-progress{pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.cb-nav-progress-fill{background:linear-gradient(90deg, var(--copper-lo), var(--copper) 60%, var(--copper-hi));width:0%;height:100%;box-shadow:0 0 8px color-mix(in oklch, var(--copper) 50%, transparent);transition:width .55s cubic-bezier(.4,.6,.2,1)}@property --cb-ry{syntax:"<angle>";inherits:false;initial-value:-45deg}@property --cb-lift{syntax:"<length>";inherits:false;initial-value:0}.cb-stage{transform-style:preserve-3d;display:inline-block}.cb-cube{transform-style:preserve-3d;transform:rotateX(-35.264deg) rotateY(var(--cb-ry,-45deg)) translateY(var(--cb-lift,0px));transition:--cb-lift .4s cubic-bezier(.4,.6,.2,1),--cb-ry .4s cubic-bezier(.4,.6,.2,1);position:relative}.cb-cube.hov{--cb-lift:-3px}.cb-cube.spin{animation:1s cubic-bezier(.42,.05,.35,1) both cb-spin}@keyframes cb-spin{0%{--cb-ry:-45deg;--cb-lift:0px}50%{--cb-ry:-225deg;--cb-lift:-16px}to{--cb-ry:-405deg;--cb-lift:0px}}.cb-face{backface-visibility:hidden;position:absolute;top:0;left:0;box-shadow:inset 0 0 0 .5px #0000002e}@media (prefers-reduced-motion:reduce){.cb-cube.spin{animation:none}.cb-cube,.cb-cube.hov{transition:none}}.hero{border-bottom:1px solid var(--rule);grid-template-columns:1.4fr 1fr;align-items:center;gap:64px;min-height:78vh;margin-bottom:120px;padding:80px 0 120px;display:grid}@media (max-width:840px){.hero{grid-template-columns:1fr;gap:40px;min-height:0;margin-bottom:80px;padding:56px 0 80px}}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--copper);align-items:center;gap:10px;margin-bottom:24px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.eyebrow:before{content:"";background:var(--copper);width:24px;height:1px;display:inline-block}.hero h1{letter-spacing:-.022em;text-wrap:pretty;margin:0 0 18px;font-family:Instrument Serif,serif;font-size:clamp(48px,7.4vw,96px);font-weight:400;line-height:.96}.hero h1 em{color:var(--copper);font-style:italic}.hero p.lede{color:var(--ink-soft);max-width:46ch;margin:0;font-size:17px;line-height:1.55}.hero-meta{color:var(--ink-soft);flex-direction:column;gap:14px;font-family:JetBrains Mono,monospace;font-size:11.5px;display:flex}.hero-meta .kv{border-bottom:1px dashed var(--rule);justify-content:space-between;gap:14px;padding-bottom:10px;display:flex}.hero-meta .kv b{color:var(--ink);font-weight:500}.hero-meta .kv .v{color:var(--ink)}.hero-meta .kv .v.copper{color:var(--copper)}.sect-head{justify-content:space-between;align-items:baseline;gap:16px;margin:0 0 40px;padding-top:8px;display:flex}.sect-head h2{letter-spacing:-.015em;margin:0;font-family:Instrument Serif,serif;font-size:44px;font-weight:400}.sect-head h2 .num{color:var(--ink-mute);letter-spacing:.04em;vertical-align:middle;margin-right:18px;font-family:JetBrains Mono,monospace;font-size:12px}@media (max-width:640px){.sect-head h2{font-size:32px}.sect-head{flex-wrap:wrap}}#featured,#projects{margin-bottom:160px}@media (max-width:840px){#featured,#projects{margin-bottom:96px}}.sect-head .tools{align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.filter-btn{border:1px solid var(--rule);color:var(--ink-soft);font-family:inherit;font-size:inherit;cursor:pointer;text-transform:lowercase;letter-spacing:.02em;background:0 0;border-radius:999px;padding:6px 10px;transition:all .15s}.filter-btn:hover{color:var(--ink);border-color:var(--ink-mute)}.filter-btn.on{color:var(--bg);background:var(--copper);border-color:var(--copper)}.featured{border-top:1px solid var(--rule);grid-template-columns:1fr;gap:0;margin-bottom:80px;display:grid}.fcard{border:1px solid var(--rule);background:0 0;border-top:0;border-left:0;border-right:0;border-radius:0;flex-direction:row;transition:border-color .25s,transform .25s;display:flex;position:relative;overflow:hidden}.fcard:hover{border-color:var(--copper)}.fcard:hover .fcard-thumb-fill{transform:scale(1.02)}.fcard-thumb{background:var(--bg-soft);border-right:1px solid var(--rule);flex-shrink:0;width:52%;min-height:440px;position:relative;overflow:hidden}.fcard-thumb-fill{justify-content:center;align-items:center;transition:transform .6s;display:flex;position:absolute;inset:0}.fcard-thumb-grid{background-image:linear-gradient(to right, var(--rule-soft) 1px, transparent 1px), linear-gradient(to bottom, var(--rule-soft) 1px, transparent 1px);opacity:.5;background-size:32px 32px;position:absolute;inset:0}.fcard-thumb-corner{color:var(--ink-mute);letter-spacing:.08em;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex;position:absolute;top:10px;left:10px}.fcard-thumb-corner .dot{background:var(--ink-mute);border-radius:50%;width:6px;height:6px}.fcard-thumb-placeholder{color:var(--ink-mute);border:1px dashed var(--rule);background:color-mix(in oklch, var(--bg-card) 70%, transparent);letter-spacing:.04em;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:11px}.fcard-body{flex-direction:column;flex:1;justify-content:center;gap:18px;padding:64px 56px 56px;display:flex}.fcard-name{letter-spacing:-.01em;align-items:baseline;gap:12px;font-family:Instrument Serif,serif;font-size:52px;line-height:1;display:flex}.fcard-name .bracket{color:var(--copper);font-family:JetBrains Mono,monospace;font-size:26px}.fcard-desc{color:var(--ink-soft);max-width:50ch;margin:0;font-size:17px;line-height:1.55}.fcard-foot{color:var(--ink-mute);justify-content:space-between;align-items:center;margin-top:24px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.fcard-foot .repo{color:var(--ink-soft)}.fcard-foot .repo:hover{color:var(--copper)}.fcard-foot .repo .arrow{margin-left:4px;transition:transform .2s;display:inline-block}.fcard-foot .repo:hover .arrow{transform:translate(2px,-2px)}@media (max-width:720px){.fcard{flex-direction:column}.fcard-thumb{border-right:0;border-bottom:1px solid var(--rule);width:100%;min-height:240px}.fcard-body{padding:32px 24px}.fcard-name{font-size:38px}}.pill{letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--rule);color:var(--ink-soft);border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:10px;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.pill.active{color:var(--patina);border-color:color-mix(in oklch, var(--patina) 35%, var(--rule))}.pill.wip{color:var(--copper);border-color:color-mix(in oklch, var(--copper) 35%, var(--rule))}.pill.archived{color:var(--ink-mute)}.list{border-top:1px solid var(--rule)}.row{padding:var(--row-pad) 4px;border-bottom:1px solid var(--rule-soft);cursor:default;grid-template-columns:36px minmax(220px,300px) 1fr 140px 24px;align-items:center;gap:24px;transition:background .15s,padding .25s;display:grid}.row:hover{background:color-mix(in oklch, var(--copper) 6%, transparent)}.row:hover .row-arrow{color:var(--copper);transform:translate(2px,-2px)}.row:hover .row-name{color:var(--copper)}.row-idx{color:var(--ink-mute);letter-spacing:.04em;font-family:JetBrains Mono,monospace;font-size:11px}.row-name{letter-spacing:-.005em;font-family:Instrument Serif,serif;font-size:32px;line-height:1;transition:color .15s}.row-name .bracket{color:var(--copper);margin:0 6px 0 0;font-family:JetBrains Mono,monospace;font-size:14px}.row-desc{color:var(--ink-soft);font-size:16px;line-height:1.5}.row-status{justify-self:start}.row-arrow{color:var(--ink-mute);justify-self:end;font-family:JetBrains Mono,monospace;font-size:16px;transition:transform .2s,color .15s}@media (max-width:760px){.row{grid-template-columns:24px 1fr 80px;gap:16px}.row-desc{color:var(--ink-mute);grid-column:2/4;font-size:13px}.row-arrow{display:none}}.about{border-top:0;grid-template-columns:1fr 1.6fr;align-items:start;gap:80px;margin-top:0;padding-top:24px;display:grid}.about .sect-head{grid-column:1/-1;margin-bottom:56px}@media (max-width:840px){.about{grid-template-columns:1fr;gap:32px}}.about h3{letter-spacing:-.01em;color:var(--copper);margin:0;font-family:Instrument Serif,serif;font-size:40px;font-style:italic;font-weight:400;line-height:1.05}.about-body{color:var(--ink-soft);max-width:60ch;font-size:18px;line-height:1.7}.about-body p{margin:0 0 18px}.about-body p:last-child{margin-bottom:0}.about-body em{color:var(--ink);font-style:italic}.about-body code{background:var(--bg-soft);color:var(--copper);border-radius:3px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:14px}footer{border-top:1px solid var(--rule-soft);color:var(--ink-mute);justify-content:space-between;align-items:flex-end;gap:24px;margin-top:96px;padding-top:32px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}footer .signoff{max-width:28ch;line-height:1.5}footer .signoff em{color:var(--copper);font-style:normal}footer .colophon{text-align:right}footer a:hover{color:var(--copper)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rise{animation:.55s both rise}.rise.d1{animation-delay:50ms}.rise.d2{animation-delay:.1s}.rise.d3{animation-delay:.15s}.rise.d4{animation-delay:.2s}@media (prefers-reduced-motion:reduce){.rise{animation:none}}
