:root{--ink:#1a1916;--surface:#232219;--border:#3a3928;--border-soft:#29281e;--paper:beige;--paper-dim:#d4d4b8;--dust:#a3a38a;--dust-dim:#74745f;--ember:#87a96b;--ember-bright:#9ec286;--card-bg:#2b2a20;--font-body:"Manrope", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-pixel:"Press Start 2P", var(--font-mono);--sp-1:.5rem;--sp-2:1rem;--sp-3:1.5rem;--sp-4:2rem;--sp-5:2.75rem}:root[data-theme=light]{--ink:#f3efe2;--surface:#fff;--border:#dedacb;--border-soft:#e9e5d8;--paper:#1a1916;--paper-dim:#3e3d31;--dust:#6e6e58;--dust-dim:#8c8c77;--ember:#5f8049;--ember-bright:#46613a;--card-bg:#fff}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html,body{height:100%;overflow:hidden}body{background:var(--ink);color:var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;justify-content:center;align-items:center;font-size:1rem;line-height:1.75;transition:background-color .35s,color .35s;display:flex}a{color:inherit;text-decoration:none}::selection{background:var(--ember);color:var(--ink)}:focus-visible{outline:1.5px solid var(--ember-bright);outline-offset:3px}.starfield{z-index:0;pointer-events:none;transform:translate(calc(var(--mx,0) * 1px), calc(var(--my,0) * 1px));transition:transform .6s ease-out;position:fixed;inset:-5%;overflow:hidden}.star{background:var(--paper);border-radius:50%;animation-name:twinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute}@keyframes twinkle{0%,to{opacity:var(--base-opacity,.55);transform:scale(1)translate(0)}50%{opacity:1;transform:scale(1.8)translate(2px,-2px)}}.grain{z-index:3;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:fixed;inset:0}.hero-section{z-index:3;width:100%;max-width:660px;padding:var(--sp-3) var(--sp-4) var(--sp-4);align-items:center;gap:var(--sp-4);flex-direction:column;margin-inline:auto;display:flex;position:relative;transform:translateY(-4vh)}.hero-logo-link{z-index:3;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:relative}.hero-logo-link:hover{opacity:.85}.hero-logo-icon{width:120px;height:120px;image-rendering:pixelated;animation:6s ease-in-out infinite floatLogo}@keyframes floatLogo{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.hero-content{z-index:3;text-align:left;align-items:flex-start;gap:var(--sp-3);flex-direction:column;width:100%;max-width:640px;display:flex;position:relative}.hero-content p,.hero-content a{font-family:var(--font-body);color:var(--paper-dim);font-size:1.0625rem;line-height:1.85}.headline{color:var(--paper);font-weight:500}.status{font-family:var(--font-body);letter-spacing:.01em;color:var(--dust);align-items:center;gap:.6em;font-size:1rem;display:inline-flex}.dot{background:var(--ember);border-radius:50%;flex-shrink:0;width:6px;height:6px}.dot.live{animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #87a96b59}50%{opacity:.55;box-shadow:0 0 0 5px #87a96b00}}.text-link{color:var(--paper);border-bottom:1px solid var(--ember);transition:color .15s,border-color .15s}.text-link:hover{color:var(--ember-bright);border-color:var(--ember-bright)}.simple-page{z-index:3;width:100%;max-width:560px;padding:var(--sp-4);align-items:flex-start;gap:var(--sp-3);flex-direction:column;margin-inline:auto;display:flex;position:relative}.simple-page-title{font-family:var(--font-body);color:var(--paper);text-transform:capitalize;font-size:1.5rem;font-weight:500}.simple-page p{font-family:var(--font-body);color:var(--paper-dim);font-size:1rem;line-height:1.85}.fade-up{opacity:0;animation:.9s cubic-bezier(.16,1,.3,1) forwards fadeUp;transform:translateY(16px)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.simple-footer{left:0;right:0;bottom:var(--sp-3);z-index:3;text-align:center;font-family:var(--font-body);color:var(--dust-dim);align-items:center;gap:var(--sp-2);flex-direction:column;font-size:1rem;display:flex;position:fixed}.socials{gap:1.1rem;display:flex}.socials a{color:var(--dust)}.socials svg{width:18px;height:18px;transition:transform .6s cubic-bezier(.55,.055,.675,.19),color .3s}.socials a:hover svg{color:#fff;transform:rotate(360deg)}.theme-toggle{z-index:50;border:1px solid var(--border);width:38px;height:38px;color:var(--dust);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:color .2s,border-color .2s,transform .2s;display:flex;position:fixed;top:24px;right:24px}.theme-toggle:hover{color:var(--paper);border-color:var(--dust-dim);transform:scale(1.06)}.theme-toggle svg{width:16px;height:16px}.theme-toggle .icon-sun{display:block}.theme-toggle .icon-moon,:root[data-theme=light] .theme-toggle .icon-sun{display:none}:root[data-theme=light] .theme-toggle .icon-moon,.hero-logo-icon.for-dark{display:block}.hero-logo-icon.for-light,:root[data-theme=light] .hero-logo-icon.for-dark{display:none}:root[data-theme=light] .hero-logo-icon.for-light{display:block}@media (max-width:640px){.hero-section{padding:var(--sp-2) var(--sp-3) var(--sp-4);gap:var(--sp-3);transform:translateY(-2vh)}.hero-logo-icon{width:96px;height:96px}}.projects-page{z-index:3;align-items:stretch;width:100%;height:100vh;display:flex;position:relative}.projects-sidebar{width:180px;height:100vh;padding:var(--sp-4) var(--sp-3);gap:var(--sp-4);flex-direction:column;flex-shrink:0;display:flex}.sidebar-back{font-family:var(--font-body);color:var(--dust);align-items:center;gap:.5rem;font-size:.875rem;transition:color .15s;display:inline-flex}.sidebar-back:hover{color:var(--paper)}.sidebar-back svg{width:14px;height:14px}.sidebar-filter-list{flex-direction:column;gap:.35rem;display:flex}.sidebar-filter-item{text-align:left;font-family:var(--font-body);color:var(--dust);cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;padding:.3rem 0 .3rem .7rem;font-size:.875rem;transition:color .15s,border-color .15s}.sidebar-filter-item:hover{color:var(--paper)}.sidebar-filter-item.active{color:var(--ember-bright);border-left-color:var(--ember)}.projects-main{height:100vh;padding:var(--sp-5) var(--sp-4) var(--sp-5) var(--sp-2);scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;overflow-y:auto}.projects-heading{font-family:var(--font-body);color:var(--paper);margin-bottom:var(--sp-4);font-size:1.5rem;font-weight:500}.project-groups{gap:var(--sp-4);flex-direction:column;width:100%;max-width:560px;display:flex}.project-group-title{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dust-dim);margin-bottom:var(--sp-2);font-size:.8125rem}.project-list{flex-direction:column;gap:.6rem;display:flex}.project-item{border-bottom:1px solid var(--border-soft);flex-direction:column;gap:.15rem;padding:.7rem 0;display:flex}.project-item-title{font-family:var(--font-body);color:var(--paper);font-size:.9rem;transition:color .15s}.project-item-title:hover{color:var(--ember-bright)}.project-item-desc{font-family:var(--font-body);color:var(--dust);font-size:.78rem;line-height:1.6}@media (max-width:640px){.projects-page{flex-direction:column;height:auto;min-height:100vh}.projects-sidebar{flex-direction:row;justify-content:space-between;align-items:center;width:100%;height:auto}.sidebar-filter-list{flex-flow:wrap}.projects-main{height:auto;overflow-y:visible}}.admin-filter-bar{flex-wrap:wrap;gap:.5rem;margin-top:8px;display:flex}.admin-filter-pill{font-family:var(--font-body);color:var(--dust);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .85rem;font-size:.8rem;transition:color .15s,border-color .15s,background .15s}.admin-filter-pill:hover{color:var(--paper);border-color:var(--dust-dim)}.admin-filter-pill.active{color:var(--ink);background:var(--ember);border-color:var(--ember)}.admin-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;width:100%;display:grid}.admin-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:6px;padding:14px;display:flex}.admin-card-parent{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--dust-dim);font-size:.7rem}.admin-card-title{font-family:var(--font-body);color:var(--paper);font-size:.95rem}.admin-card-desc{font-family:var(--font-body);color:var(--dust);font-size:.8rem;line-height:1.5}.admin-card-actions{gap:12px;margin-top:6px;display:flex}.admin-card-actions button{cursor:pointer;font-family:var(--font-body);color:var(--dust);background:0 0;border:none;padding:0;font-size:.78rem}.admin-card-actions button:hover{color:var(--ember-bright)}.admin-card-actions button.danger:hover{color:#c0685a}.admin-page-scroll{scrollbar-width:thin;scrollbar-color:var(--border) transparent;justify-content:center;width:100%;height:100vh;display:flex;overflow-y:auto}.btn{font-family:var(--font-body);cursor:pointer;border:1px solid #0000;border-radius:6px;padding:9px 18px;font-size:.85rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.btn-primary{background:var(--ember);color:var(--ink)}.btn-primary:hover{background:var(--ember-bright)}.btn-ghost{border-color:var(--border);color:var(--dust);background:0 0}.btn-ghost:hover{color:var(--paper);border-color:var(--dust-dim)}.btn-sm{border-radius:5px;padding:6px 12px;font-size:.75rem}.btn-danger{border-color:var(--border);color:#c0685a;background:0 0}.btn-danger:hover{color:var(--ink);background:#c0685a;border-color:#c0685a}.project-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;width:100%;display:grid}.project-card{border:1px solid var(--border-soft);background:var(--card-bg);border-radius:8px;flex-direction:column;gap:8px;padding:16px;display:flex;box-shadow:0 2px 6px #00000026}.project-card-title{font-family:var(--font-body);color:var(--paper);font-size:.95rem}.project-card-desc{font-family:var(--font-body);color:var(--dust);font-size:.8rem;line-height:1.6}.project-card-links{gap:14px;margin-top:4px;display:flex}@media (max-width:640px){.project-grid{grid-template-columns:1fr}}
