*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fafafa;--bg-raised:#fff;--text:#111;--text-2:#555;--text-3:#9b9b9b;--border:#e8e8e8;--border-2:#d4d4d4;--font:"Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Consolas, monospace;--container:740px;--nav-h:60px;--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(0, 0, .2, 1)}[data-theme=dark]{--bg:#111;--bg-raised:#1a1a1a;--text:#ebebeb;--text-2:#909090;--text-3:#555;--border:#252525;--border-2:#333}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;font-size:16px;line-height:1.6}#root{min-height:100vh}a{color:inherit;text-decoration:none}.nav{z-index:50;height:var(--nav-h);transition:background .3s var(--ease), border-color .3s var(--ease);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.nav.stuck{-webkit-backdrop-filter:blur(14px);border-color:var(--border);background:#fafafad1}[data-theme=dark] .nav.stuck{background:#111111d9}.nav .nav-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.nav-name{letter-spacing:-.01em;color:var(--text);font-size:15px;font-weight:500;line-height:var(--nav-h)}.nav-links{align-items:center;gap:28px;height:100%;display:flex}.nav-links a{color:var(--text-2);transition:color .18s var(--ease);font-size:15px;line-height:var(--nav-h)}.nav-links a:hover{color:var(--text)}.theme-toggle{cursor:pointer;width:30px;height:30px;color:var(--text-3);transition:color .18s var(--ease), background .18s var(--ease);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{color:var(--text);background:var(--border)}@media (width<=600px){.nav-links{gap:18px}}@media (width<=480px){.nav-name{font-size:14px}.nav-links{gap:12px}.nav-links a{font-size:13px}}.hero{min-height:100vh;padding:calc(var(--nav-h) + 64px) 0 100px;align-items:center;display:flex}.hero-content{flex-direction:column;gap:28px;display:flex}.hero-status{color:var(--text-2);letter-spacing:.01em;border:1px solid var(--border);border-radius:100px;align-items:center;gap:8px;width:fit-content;padding:5px 12px;font-size:13px;transition-delay:40ms;display:inline-flex}.hero-status-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.hero-heading{letter-spacing:-.04em;color:var(--text);font-size:clamp(42px,6.5vw,76px);font-weight:600;line-height:1.08;transition-delay:.1s}.hero-sub{color:var(--text-2);max-width:500px;font-size:clamp(16px,2vw,19px);font-weight:400;line-height:1.72;transition-delay:.16s}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px;transition-delay:.22s;display:flex}@media (width<=600px){.hero{padding-top:calc(var(--nav-h) + 40px);min-height:100svh;padding-bottom:64px}.hero-content{gap:22px}}@media (width<=480px){.hero-content{gap:18px}.hero-sub{font-size:15px}}.project-list{flex-direction:column;display:flex}.project-item{border-bottom:1px solid var(--border);grid-template-columns:52px 1fr;gap:36px;padding:32px 0;display:grid}.project-item:first-of-type{border-top:1px solid var(--border)}.project-year{color:var(--text-3);font-variant-numeric:tabular-nums;letter-spacing:.01em;padding-top:3px;font-size:12px}.project-body{flex-direction:column;gap:10px;display:flex}.project-name{color:var(--text);letter-spacing:-.02em;font-size:16px;font-weight:500}.project-desc{color:var(--text-2);max-width:560px;font-size:14px;line-height:1.68}@media (width<=600px){.project-item{grid-template-columns:1fr;gap:6px}.project-year{padding-top:0}}.about-body{flex-direction:column;gap:52px;display:flex}.about-text{flex-direction:column;gap:18px;display:flex}.about-p{color:var(--text-2);max-width:560px;font-size:16px;line-height:1.78}.about-p+.about-p{transition-delay:80ms}.stack-grid{border-top:1px solid var(--border);flex-direction:column;display:flex}.stack-row{border-bottom:1px solid var(--border);grid-template-columns:140px 1fr;gap:20px;padding:14px 0;display:grid}.stack-key{color:var(--text-3);letter-spacing:.02em;padding-top:1px;font-size:12px;font-weight:500}.stack-val{color:var(--text-2);font-size:14px;line-height:1.6}@media (width<=600px){.about-body{gap:36px}.stack-row{grid-template-columns:100px 1fr;gap:12px}}@media (width<=480px){.stack-row{grid-template-columns:1fr;gap:4px;padding:12px 0}.stack-key{font-size:11px}}.contact-body{flex-direction:column;gap:28px;display:flex}.contact-heading{letter-spacing:-.035em;color:var(--text);max-width:460px;font-size:clamp(28px,4vw,48px);font-weight:600;line-height:1.12;transition-delay:60ms}.contact-p{color:var(--text-2);max-width:460px;font-size:16px;line-height:1.72;transition-delay:.12s}.contact-email{color:var(--text);border-bottom:1px solid var(--border);width:fit-content;transition:border-color .18s var(--ease);align-items:center;gap:8px;padding-bottom:2px;font-size:15px;font-weight:500;transition-delay:.18s;display:inline-flex}.contact-email:hover{border-color:var(--text)}.contact-email .arrow{transition:transform .18s var(--ease);display:inline-block}.contact-email:hover .arrow{transform:translate(4px)}.contact-links{gap:20px;transition-delay:.22s;display:flex}.contact-links a{color:var(--text-3);transition:color .18s var(--ease);font-size:13px}.contact-links a:hover{color:var(--text)}@media (width<=600px){.contact-body{gap:22px}.contact-heading{font-size:clamp(26px,7vw,40px)}}.admin-login{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.admin-login-box{flex-direction:column;gap:24px;width:300px;display:flex}.admin-login-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.1em;font-size:13px;font-weight:600}.admin-login-box form{flex-direction:column;gap:10px;display:flex}.admin-login-box input{width:100%;font-size:14px;font-family:var(--font);background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:7px;outline:none;padding:10px 13px;transition:border-color .15s}.admin-login-box input:focus{border-color:var(--border-2)}.admin-error{color:#d93025;font-size:12px}.admin{background:var(--bg);min-height:100vh}.admin-header{height:var(--nav-h);border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:sticky;top:0}.admin-title{color:var(--text);font-size:13px;font-weight:600}.admin-body{flex-direction:column;gap:56px;max-width:640px;margin:0 auto;padding:52px 28px 96px;display:flex}.admin-section h2{color:var(--text-3);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:8px;margin-bottom:20px;font-size:11px;font-weight:600;display:flex}.admin-count{background:var(--border);color:var(--text-3);letter-spacing:0;text-transform:none;border-radius:20px;padding:1px 7px;font-size:11px;font-weight:500}.admin-form{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:14px;padding:24px;display:flex}.admin-row{flex-direction:column;gap:6px;display:flex}.admin-row label{color:var(--text-2);font-size:12px;font-weight:500}.admin-row input,.admin-row textarea{font-size:14px;font-family:var(--font);background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:7px;outline:none;padding:9px 13px;transition:border-color .15s}.admin-row textarea{resize:vertical;min-height:80px;line-height:1.5}.admin-row input:focus,.admin-row textarea:focus{border-color:var(--border-2)}.admin-form-footer{justify-content:flex-end;align-items:center;gap:14px;padding-top:4px;display:flex}.admin-success{color:#2a7a4b;font-size:13px}.admin-note{color:var(--text-3);margin-bottom:14px;font-size:13px;line-height:1.5}.admin-note code{font-family:var(--mono);background:var(--border);border-radius:3px;padding:1px 5px;font-size:12px}.admin-empty{color:var(--text-3);font-size:14px}.admin-project-list{border:1px solid var(--border);border-radius:10px;overflow:hidden}.admin-project-item{background:var(--bg-raised);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:13px 18px;display:flex}.admin-project-item:last-child{border-bottom:none}.admin-project-item--static{opacity:.55}.admin-project-meta{align-items:center;gap:10px;display:flex}.admin-project-name{color:var(--text);font-size:14px;font-weight:500}.admin-project-year{color:var(--text-3);font-size:12px;font-family:var(--mono)}.admin-delete{font-size:12px;font-family:var(--font);color:#d93025;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;transition:background .15s}.admin-delete:hover{background:#d9302514}.admin-static-badge{color:var(--text-3);font-size:11px;font-family:var(--mono);background:var(--border);border-radius:4px;padding:2px 7px}@media (width<=600px){.admin-login-box{width:min(300px,100% - 40px)}.admin-header{padding:0 20px}.admin-body{gap:40px;padding:36px 20px 64px}.admin-form{gap:12px;padding:16px}.admin-project-item{padding:12px 14px}.admin-project-name{font-size:13px}}.reveal{opacity:0;transition:opacity .65s var(--ease-out), transform .65s var(--ease-out);transform:translateY(18px)}.reveal.in{opacity:1;transform:none}.wrap{max-width:var(--container);margin:0 auto;padding:0 28px}.btn{font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all .18s var(--ease);border:none;border-radius:7px;align-items:center;gap:6px;padding:9px 18px;text-decoration:none;display:inline-flex}.btn-dark{background:var(--text);color:var(--bg)}.btn-dark:hover{opacity:.88;transform:translateY(-1px)}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-ghost:hover{border-color:var(--border-2);background:var(--bg-raised);transform:translateY(-1px)}.section{border-top:1px solid var(--border);padding:112px 0}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:48px;font-size:13px;font-weight:600;display:block}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{color:var(--text-3);background:var(--bg-raised);border:1px solid var(--border);letter-spacing:.02em;font-size:12px;font-weight:500;font-family:var(--mono);border-radius:4px;padding:4px 10px}[data-theme=dark] .tag{color:var(--text-2);background:var(--bg-raised);border-color:var(--border-2)}@media (width<=600px){.wrap{padding:0 20px}.section{padding:72px 0}.btn{padding:8px 16px;font-size:13px}}@media (width<=480px){.wrap{padding:0 16px}.section{padding:56px 0}}
