:root{--bg: #09090b;--surface: #111113;--surface-2: #17171a;--border: rgba(255, 255, 255, .07);--text: #fafafa;--muted: rgba(250, 250, 250, .55);--accent: #22d3ee;--accent-dim: rgba(34, 211, 238, .12);--danger: #f87171;--success: #4ade80;--warn: #facc15;--radius: 12px;--font-sans: "Geist", system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.6;min-height:100dvh;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100dvh}a{color:var(--accent);text-decoration:none}img{max-width:100%;display:block}.content{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:0 1.5rem;padding-top:84px;padding-bottom:4rem}.page{display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%}.page--auth{justify-content:center;min-height:calc(100dvh - 220px)}.page-head{text-align:center;display:flex;flex-direction:column;gap:1rem;align-items:center;max-width:680px;margin-bottom:1rem}.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);opacity:.85}h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:600;line-height:1.1;letter-spacing:-.03em}h1 em{font-style:normal;color:var(--accent)}h2{font-size:1.1rem;font-weight:600}.subtext{color:var(--muted);font-weight:300;font-size:.98rem;max-width:44ch}.page-state{text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:1rem;align-items:center;justify-content:center;padding:3rem 1rem}.page-state>h2{color:var(--text);font-size:1.6rem}.page-state--error{color:var(--danger)}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.1rem;max-width:720px;padding:3rem 1rem 2rem}.hero-title{font-size:clamp(2.2rem,6vw,4rem);max-width:20ch}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 2rem;height:64px;border-bottom:1px solid var(--border);background:#09090bc7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.nav-brand{font-family:var(--font-mono);font-size:.85rem;font-weight:500;letter-spacing:.06em;color:var(--text);white-space:nowrap}.nav-brand span{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-link{padding:.4rem .8rem;border-radius:8px;color:var(--muted);font-size:.9rem;transition:color .2s ease,background .2s ease}.nav-link:hover,.nav-link.active{color:var(--text);background:var(--surface)}.nav-auth{display:flex;align-items:center}.nav-user{display:flex;align-items:center;gap:.6rem}.nav-user-name{color:var(--muted);font-size:.85rem;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.4rem;border-radius:10px;border:1px solid transparent;font-family:var(--font-sans);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;color:var(--text);background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#082f35}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{border-color:var(--border);color:var(--text);background:var(--surface)}.btn-ghost:hover:not(:disabled){border-color:#22d3ee59}.btn--danger{color:var(--danger)}.btn--danger:hover{border-color:#f8717166}.btn-sm{padding:.4rem .9rem;font-size:.82rem}.btn-block{width:100%}.btn-row{display:flex;gap:.6rem}.chip{display:inline-block;padding:.22rem .75rem;border-radius:99px;background:var(--accent-dim);color:var(--accent);font-size:.75rem;font-weight:500;border:1px solid rgba(34,211,238,.25)}.chip--active{background:var(--accent-dim);color:var(--accent);border-color:#22d3ee73}.tag{display:inline-block;padding:.18rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-family:var(--font-mono);font-size:.72rem}.tech-list{display:flex;flex-wrap:wrap;gap:.4rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.25rem;width:100%}.project-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:border-color .25s ease,transform .25s ease}.project-card:hover{border-color:#22d3ee4d;transform:translateY(-3px)}.project-card-img{aspect-ratio:16 / 9;width:100%;object-fit:cover;background:var(--surface-2)}.project-card-img--placeholder{display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:2.2rem;color:var(--accent);border-bottom:1px solid var(--border)}.project-card-body{display:flex;flex-direction:column;gap:.6rem;padding:1.2rem;flex:1}.project-card-title{font-size:1.08rem;font-weight:600;line-height:1.3}.project-card-desc{color:var(--muted);font-size:.88rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.project-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.4rem}.project-card-cta{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);font-weight:500}.project-detail{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;width:100%;max-width:960px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.project-detail-media img,.project-detail-placeholder{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}.project-detail-placeholder{display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:3rem;color:var(--accent)}.project-detail-info{display:flex;flex-direction:column;gap:1.1rem;align-items:flex-start}.detail-meta{display:flex;align-items:center;gap:.75rem}.detail-date{color:var(--muted);font-size:.85rem;font-family:var(--font-mono)}.project-detail-info h1{font-size:2rem}.project-detail-desc{color:var(--muted)}.project-links{display:flex;gap:.75rem;margin-top:.3rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--muted)}.field input,.field textarea,.field select,.admin-table select{padding:.65rem .9rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-family:var(--font-sans);font-size:.95rem;transition:border-color .2s ease}.field input:focus,.field textarea:focus,.field select:focus,.admin-table select:focus{outline:none;border-color:#22d3ee80}.field textarea{resize:vertical}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.check-field{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--muted);cursor:pointer}.check-field input{accent-color:var(--accent);width:16px;height:16px}.form-note{font-size:.9rem;color:var(--accent)}.form-note--error{color:var(--danger)}.form-note--ok{color:var(--success)}.auth-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.contact-form{max-width:480px}.auth-head{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.5rem}.auth-head .subtext{font-size:.9rem}.auth-alt{text-align:center;font-size:.88rem;color:var(--muted)}.tabs{display:flex;gap:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.3rem}.tab{padding:.5rem 1.4rem;border-radius:8px;border:none;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:.9rem;cursor:pointer;transition:all .2s ease}.tab:hover{color:var(--text)}.tab--active{background:var(--accent-dim);color:var(--accent)}.admin-layout{display:grid;grid-template-columns:400px 1fr;gap:1.5rem;width:100%;align-items:start}.admin-form{display:flex;flex-direction:column;gap:.9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;position:sticky;top:84px}.admin-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:100%;overflow-x:auto;display:flex;flex-direction:column;gap:1rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table th{color:var(--muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.td-actions{display:flex;gap:.4rem;white-space:nowrap}.admin-table select{padding:.35rem .5rem;border-radius:8px}.contact-inbox{display:flex;flex-direction:column;gap:.8rem;width:100%;max-width:760px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.contact-inbox>h2{margin-bottom:.3rem}.message-card{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.2rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);cursor:default}.message-card--unread{border-left:3px solid var(--accent)}.message-card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.message-card-name{font-weight:600;font-size:.95rem}.message-card-email{color:var(--muted);font-size:.85rem}.message-card-right{display:flex;align-items:center;gap:.6rem}.message-card-date{color:var(--muted);font-size:.78rem;font-family:var(--font-mono)}.message-card-body{color:var(--text);font-size:.92rem;white-space:pre-wrap}.status-pill{display:inline-block;padding:.2rem .7rem;border-radius:99px;font-size:.72rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border);color:var(--muted)}.status-pill--active{color:var(--success);border-color:#4ade8059;background:#4ade8014}.status-pill--archived{color:var(--danger);border-color:#f8717159;background:#f8717114}.status-pill--draft{color:var(--muted)}.footer{display:flex;align-items:center;justify-content:center;gap:1.4rem;height:52px;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.7rem;color:var(--muted);letter-spacing:.05em;background:#09090b99}.footer a:hover{color:var(--accent)}@media (max-width: 860px){.admin-layout{grid-template-columns:1fr}.admin-form{position:static}.project-detail{grid-template-columns:1fr;padding:1.25rem}}@media (max-width: 640px){.nav{padding:0 1rem}.nav-links{order:3;width:100%;justify-content:center;padding-bottom:.5rem}.nav{flex-wrap:wrap;height:auto;padding-top:.5rem;padding-bottom:.5rem}.content{padding-top:120px}.field-row{grid-template-columns:1fr}.message-card-top{flex-direction:column;align-items:flex-start}.nav-user-name{display:none}}
