:root{--bg: #0c0d0a;--bg-elev: #131410;--bg-card: #16170f;--line: #2a2c22;--line-soft: #1d1f17;--ink: #e8e4d2;--ink-dim: #9a957f;--ink-faint: #5a5747;--emerald: #6ea876;--emerald-dim: #3d5c43;--amber: #c79c4a;--amber-dim: #5c4621;--crimson: #b86a5a;--crimson-dim: #4a2620;--font-display: "Fraunces", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-8: 48px;--s-10: 64px;--s-12: 96px;--r-sm: 2px;--r-md: 4px;--r-lg: 6px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-mono);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-image:radial-gradient(ellipse at top,rgba(110,168,118,.04),transparent 60%),radial-gradient(ellipse at bottom right,rgba(199,156,74,.03),transparent 50%);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");opacity:.5;mix-blend-mode:overlay}a{color:inherit;text-decoration:none;border-bottom:1px solid var(--ink-faint);transition:border-color .12s ease,color .12s ease}a:hover{color:var(--emerald);border-color:var(--emerald)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;letter-spacing:-.02em;line-height:1.1}.shell{max-width:1240px;margin:0 auto;padding:var(--s-6) var(--s-5)}.rule{height:1px;background:var(--line);margin:var(--s-6) 0}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}.masthead{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:var(--s-5);border-bottom:1px solid var(--line);margin-bottom:var(--s-8)}.masthead h1{font-size:clamp(28px,4vw,44px);font-style:italic;font-variation-settings:"opsz" 144}.masthead .brand-link{border-bottom:none;color:inherit;display:inline-flex;align-items:baseline}.masthead .brand-link em{font-style:italic;color:var(--emerald);transition:color .12s ease}.masthead .brand-link:hover em{color:var(--amber)}.masthead .brand-sep{color:var(--ink-faint)}.masthead .nav{display:flex;gap:var(--s-5);font-size:12px;color:var(--ink-dim);align-items:baseline}.masthead .nav a{border-bottom:1px solid transparent;padding-bottom:2px;letter-spacing:.04em;color:var(--ink-dim);transition:color .12s ease,border-color .12s ease}.masthead .nav a:hover,.masthead .nav a.active{color:var(--ink);border-bottom-color:var(--emerald)}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s-8);margin-bottom:var(--s-10);padding-bottom:var(--s-8);border-bottom:1px solid var(--line)}.hero h2{font-size:clamp(36px,5vw,64px);font-weight:300;margin-bottom:var(--s-5)}.hero h2 em{font-style:italic;color:var(--emerald);font-weight:400}.hero p{color:var(--ink-dim);font-size:15px;margin-bottom:var(--s-4);max-width:60ch}.hero-narrative,.hero-technical{border:1px solid var(--line);padding:var(--s-5);background:var(--bg-elev)}.hero-narrative .eyebrow{color:var(--emerald);margin-bottom:var(--s-3)}.hero-technical .eyebrow{color:var(--amber);margin-bottom:var(--s-3)}.hero-technical .stack-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-top:var(--s-4);font-size:12px}.hero-technical .stack-stats div span{display:block;color:var(--ink-faint);font-size:10px;letter-spacing:.1em;text-transform:uppercase}@media (max-width: 880px){.hero{grid-template-columns:1fr}}.filter-bar{display:flex;gap:var(--s-2);margin-bottom:var(--s-5);flex-wrap:wrap;font-size:11px}.filter-bar button{background:transparent;border:1px solid var(--line);color:var(--ink-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:var(--s-2) var(--s-3);cursor:pointer;transition:all .12s ease}.filter-bar button:hover{color:var(--ink);border-color:var(--ink-dim)}.filter-bar button.active{color:var(--bg);background:var(--ink);border-color:var(--ink)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--s-4)}.project-card{background:var(--bg-card);border:1px solid var(--line);padding:var(--s-5);cursor:pointer;position:relative;transition:all .18s ease;display:flex;flex-direction:column;min-height:280px}.project-card:hover{border-color:var(--ink-dim);background:var(--bg-elev);transform:translateY(-1px)}.project-card .card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--s-3);gap:var(--s-3)}.project-card h3{font-size:22px;font-weight:500;letter-spacing:-.01em}.project-card .tagline{color:var(--ink-dim);font-size:12px;margin-bottom:var(--s-4);line-height:1.5}.project-card .description{font-size:12.5px;color:var(--ink);line-height:1.6;margin-bottom:var(--s-4);flex-grow:1}.project-card .meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);padding-top:var(--s-4);border-top:1px solid var(--line-soft)}.project-card .meta div span{display:block;color:var(--ink);font-size:12px;margin-top:2px;text-transform:none;letter-spacing:0}.project-card .stack{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-3)}.project-card .stack span{font-size:10px;padding:2px 6px;border:1px solid var(--line);color:var(--ink-dim);letter-spacing:.05em}.project-card .links-row{display:flex;gap:var(--s-3);margin-top:var(--s-3);font-size:11px;flex-wrap:wrap}.project-card .links-row a{color:var(--emerald);border-bottom:1px dotted var(--emerald-dim)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;white-space:nowrap}.status-badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.status-badge .dot.pulse{animation:pulse 2s ease-in-out infinite}.status-active{color:var(--emerald)}.status-shipped{color:var(--emerald);opacity:.7}.status-planning{color:var(--amber)}.status-paused{color:var(--ink-dim)}.status-archived{color:var(--ink-faint)}.status-down{color:var(--crimson)}.status-degraded{color:var(--amber)}.status-up{color:var(--emerald)}.status-unknown{color:var(--ink-faint)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.detail-head{display:grid;grid-template-columns:2fr 1fr;gap:var(--s-8);padding-bottom:var(--s-6);border-bottom:1px solid var(--line);margin-bottom:var(--s-8)}.detail-head h2{font-size:clamp(36px,5vw,56px);margin-bottom:var(--s-3)}.detail-head .breadcrumb{color:var(--ink-dim);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--s-3)}.detail-head .breadcrumb a{border:none}.detail-head .description{color:var(--ink);font-size:16px;line-height:1.65;margin-bottom:var(--s-4);max-width:65ch}.detail-head .goal{border-left:2px solid var(--emerald);padding-left:var(--s-4);font-family:var(--font-display);font-style:italic;font-size:18px;color:var(--ink);margin-top:var(--s-4);max-width:60ch}.detail-meta-card{background:var(--bg-elev);border:1px solid var(--line);padding:var(--s-5);font-size:12px}.detail-meta-card dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--s-3) var(--s-4)}.detail-meta-card dt{color:var(--ink-faint);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.detail-meta-card dd{color:var(--ink)}@media (max-width: 880px){.detail-head{grid-template-columns:1fr}}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s-5);margin-top:var(--s-8)}.section-head h3{font-size:24px;font-style:italic;font-weight:400}.links-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s-3)}.link-tile{border:1px solid var(--line);background:var(--bg-card);padding:var(--s-4);text-decoration:none;color:inherit;border-bottom:1px solid var(--line);transition:all .12s ease}.link-tile:hover{border-color:var(--emerald);background:var(--bg-elev)}.link-tile .link-type{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);margin-bottom:var(--s-2)}.link-tile .link-label{font-size:14px;color:var(--ink);margin-bottom:var(--s-1)}.link-tile .link-url{font-size:10px;color:var(--ink-faint);word-break:break-all}.timeline{position:relative;padding-left:var(--s-6)}.timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:var(--line)}.timeline-entry{position:relative;padding-bottom:var(--s-6)}.timeline-entry:before{content:"";position:absolute;left:calc(var(--s-6) * -1 + 2px);top:6px;width:9px;height:9px;background:var(--bg);border:1px solid var(--ink-dim);border-radius:50%}.timeline-entry.milestone:before{border-color:var(--emerald);background:var(--emerald)}.timeline-entry.release:before{border-color:var(--amber);background:var(--amber)}.timeline-entry.incident:before{border-color:var(--crimson);background:var(--crimson)}.timeline-entry .timeline-date{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--s-1)}.timeline-entry .timeline-title{font-family:var(--font-display);font-size:18px;font-weight:500;margin-bottom:var(--s-1)}.timeline-entry .timeline-version{font-family:var(--font-mono);font-size:10px;color:var(--amber);margin-left:var(--s-2)}.timeline-entry .timeline-body{color:var(--ink-dim);font-size:13px;max-width:60ch}.footer{margin-top:var(--s-12);padding-top:var(--s-5);border-top:1px solid var(--line);font-size:11px;color:var(--ink-faint);display:flex;justify-content:space-between}.empty{text-align:center;padding:var(--s-12) var(--s-5);color:var(--ink-faint);font-family:var(--font-display);font-style:italic}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-bottom:var(--s-5)}.form-grid.full{grid-template-columns:1fr}.form-field{display:flex;flex-direction:column;gap:var(--s-2)}.form-field label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.form-field input,.form-field textarea,.form-field select{background:var(--bg-elev);border:1px solid var(--line);color:var(--ink);font-family:var(--font-mono);font-size:13px;padding:var(--s-3);outline:none;transition:border-color .12s ease}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--emerald)}.form-field textarea{resize:vertical;min-height:80px;font-family:var(--font-mono)}.btn{background:var(--ink);color:var(--bg);border:1px solid var(--ink);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:var(--s-3) var(--s-5);cursor:pointer;transition:all .12s ease}.btn:hover{background:var(--emerald);border-color:var(--emerald);color:var(--bg)}.btn.secondary{background:transparent;color:var(--ink-dim);border-color:var(--line)}.btn.secondary:hover{color:var(--ink);border-color:var(--ink-dim);background:var(--bg-elev)}.btn.danger{background:transparent;color:var(--crimson);border-color:var(--crimson)}.btn.danger:hover{background:var(--crimson);color:var(--bg)}.btn-row{display:flex;gap:var(--s-3);margin-top:var(--s-4);flex-wrap:wrap}.admin-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:var(--s-6)}.admin-tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--ink-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:var(--s-3) var(--s-4);cursor:pointer;margin-bottom:-1px}.admin-tabs button.active{color:var(--ink);border-bottom-color:var(--emerald)}.admin-tabs button:hover{color:var(--ink)}.admin-list{display:grid;gap:var(--s-2);margin-bottom:var(--s-6)}.admin-list-item{display:flex;justify-content:space-between;align-items:center;padding:var(--s-3) var(--s-4);background:var(--bg-card);border:1px solid var(--line);font-size:12px}.admin-list-item:hover{border-color:var(--ink-dim)}.admin-list-item .actions{display:flex;gap:var(--s-2)}.admin-card{background:var(--bg-elev);border:1px solid var(--line);padding:var(--s-5);margin-bottom:var(--s-5)}.callout{background:var(--bg-elev);border-left:3px solid var(--amber);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-5);font-size:12px;color:var(--ink-dim)}.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-elev);border:1px solid var(--emerald);color:var(--ink);padding:var(--s-3) var(--s-4);font-size:12px;z-index:100;animation:slideup .2s ease-out}.toast.error{border-color:var(--crimson)}@keyframes slideup{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.about-content{max-width:70ch}.about-content h2{font-size:clamp(36px,5vw,56px);margin-bottom:var(--s-5);font-weight:300}.about-content h2 em{font-style:italic;color:var(--emerald);font-weight:400}.about-content h3{font-size:22px;font-style:italic;margin:var(--s-8) 0 var(--s-3)}.about-content p{color:var(--ink);font-size:15px;line-height:1.7;margin-bottom:var(--s-4)}.about-content p strong{color:var(--emerald);font-weight:500}.about-content ul{list-style:none;margin-bottom:var(--s-4)}.about-content ul li{padding:var(--s-2) 0;border-bottom:1px solid var(--line-soft);color:var(--ink-dim);font-size:13px}.about-content ul li strong{color:var(--ink);font-weight:500}.entity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-3);margin:var(--s-5) 0}.entity-card{border:1px solid var(--line);background:var(--bg-card);padding:var(--s-4)}.entity-card .label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);margin-bottom:var(--s-2)}.entity-card .name{font-family:var(--font-display);font-size:18px;font-weight:500;margin-bottom:var(--s-2)}.entity-card .role{font-size:12px;color:var(--ink-dim)}
