:root{--bg: #f5f7fb;--bg-2: #edf2f9;--surface: #ffffff;--surface-soft: #f9fbff;--ink: #101828;--ink-soft: #4a5a72;--line: #d8e0eb;--line-strong: #c6d2e2;--primary: #0f6fff;--primary-dark: #0a58ce;--primary-soft: #e8f1ff;--shadow: 0 16px 48px rgba(18, 41, 75, .08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Plus Jakarta Sans,Manrope,sans-serif;color:var(--ink);background:radial-gradient(circle at 8% 0%,rgba(15,111,255,.1),transparent 32%),radial-gradient(circle at 100% 18%,rgba(15,111,255,.06),transparent 28%),linear-gradient(180deg,var(--bg-2),var(--bg))}a{color:inherit}.screen-center{min-height:100vh;display:grid;place-items:center;color:var(--ink-soft)}.portfolio-shell{min-height:100vh}.site-nav-wrap{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f5f7fbe0}.site-nav{max-width:1120px;margin:0 auto;padding:.9rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.brand{border:0;background:none;padding:0;display:inline-flex;align-items:center;gap:.6rem;font-size:1rem;font-weight:700;color:var(--ink);cursor:pointer}.brand-mark{width:2rem;height:2rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:.8rem;color:#fff;background:linear-gradient(135deg,#1e7dff,#0d63ea)}.mobile-nav-toggle{display:none;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);padding:.45rem .8rem;font-weight:700}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-links button,.nav-links .admin-link{border:0;background:none;color:var(--ink-soft);font-size:.92rem;font-weight:600;text-decoration:none;border-radius:9px;padding:.45rem .72rem;cursor:pointer}.nav-links button:hover,.nav-links .admin-link:hover{color:var(--ink);background:var(--surface)}.nav-links button.is-active{color:var(--ink);background:var(--surface);box-shadow:0 2px 8px #10182814}.nav-links .admin-link{margin-left:.25rem;border:1px solid var(--line-strong);background:var(--surface)}.site-main{max-width:1120px;margin:0 auto;padding:1.2rem 1.25rem 0}.page-stack{display:grid;gap:.95rem}.hero-block{position:relative;border-radius:20px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.hero-background{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,111,255,.08) 1px,transparent 1px) 0 0 / 26px 26px,linear-gradient(rgba(15,111,255,.06) 1px,transparent 1px) 0 0 / 26px 26px,radial-gradient(circle at 90% 20%,rgba(15,111,255,.14),transparent 36%)}.hero-content{position:relative;z-index:1;padding:clamp(1.25rem,2.4vw,2.2rem)}.hero-pill{margin:0;width:fit-content;padding:.36rem .62rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface-soft);color:var(--ink-soft);font-size:.78rem;font-weight:600}.hero-content h1{margin:.9rem 0 0;max-width:22ch;font-size:clamp(2rem,4.3vw,3.8rem);line-height:1.05;letter-spacing:-.03em}.hero-summary{margin:.9rem 0 0;max-width:70ch;color:var(--ink-soft);font-size:1.02rem;line-height:1.72}.hero-cta-row{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem}.btn{border:0;border-radius:10px;padding:.63rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .13s ease,box-shadow .13s ease}.btn:hover{transform:translateY(-1px)}.btn:focus-visible{outline:3px solid rgba(15,111,255,.27);outline-offset:2px}.btn-primary{color:#fff;background:var(--primary);box-shadow:0 9px 20px #0f6fff38}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{color:var(--ink);border:1px solid var(--line-strong);background:var(--surface)}.social-row{margin-top:.95rem;display:flex;flex-wrap:wrap;gap:.45rem}.social-row a,.social-row span{border-radius:999px;border:1px solid var(--line-strong);background:var(--surface-soft);color:var(--ink-soft);padding:.37rem .62rem;font-size:.8rem;text-decoration:none}.social-row a:hover{color:var(--ink);border-color:#afc0d5}.section-card{border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);padding:1rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.section-head h2,.page-header h1,.content-tile h2,.project-tile h2,.admin-header h1,.admin-card h1,.admin-card h2{margin:0;letter-spacing:-.02em}.section-head h2{font-size:1.42rem}.text-link{border:0;background:none;color:var(--primary-dark);font-weight:700;cursor:pointer}.text-link:hover{text-decoration:underline}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.project-grid.full-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-tile{border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:.85rem}.project-tile.large{padding:1rem}.tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.project-tile h3,.project-tile h2{margin:0}.project-tile h3{font-size:1.04rem}.project-tile h2{font-size:1.2rem}.project-tile p{margin:.5rem 0 0;color:var(--ink-soft);line-height:1.6}.tech-stack{font-family:IBM Plex Mono,monospace;font-size:.79rem;color:#34506e}.badge{border-radius:999px;border:1px solid #bad4ff;background:var(--primary-soft);color:var(--primary-dark);padding:.22rem .44rem;font-size:.7rem;font-family:IBM Plex Mono,monospace;white-space:nowrap}.tile-links{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.tile-links a,.contact-list a,.footer-links a{color:var(--primary-dark);text-decoration:none;font-weight:600;border-bottom:1px solid rgba(10,88,206,.35);width:fit-content}.tile-links a:hover,.contact-list a:hover,.footer-links a:hover{color:var(--primary);border-bottom-color:var(--primary)}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.content-tile{border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:.9rem}.content-tile h2{font-size:1.3rem}.timeline-list{margin-top:.7rem;display:grid;gap:.68rem}.timeline-item{border-left:2px solid var(--line-strong);padding-left:.7rem}.timeline-item.detailed p{margin:.45rem 0 0;color:var(--ink-soft);line-height:1.62}.timeline-item h3{margin:0;font-size:1rem}.meta{margin:.3rem 0 0;color:var(--ink-soft);font-size:.86rem;font-family:IBM Plex Mono,monospace}.focus-list{margin:.7rem 0 0;padding-left:1.1rem;color:var(--ink-soft);display:grid;gap:.45rem;line-height:1.6}.eyebrow{margin:0;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--primary-dark);font-size:.75rem}.page-header p,.banner-card p{color:var(--ink-soft);line-height:1.65}.page-header h1{margin-top:.48rem;font-size:clamp(1.8rem,3vw,2.8rem)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.stat-tile{border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);padding:.9rem}.stat-tile p{margin:0;font-size:.82rem;color:var(--ink-soft);font-family:IBM Plex Mono,monospace}.stat-tile strong{display:block;margin-top:.38rem;font-size:1.2rem}.chip-wrap{margin-top:.7rem;display:flex;flex-wrap:wrap;gap:.5rem}.chip{border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:#2b4565;font-size:.8rem;font-family:IBM Plex Mono,monospace;padding:.34rem .58rem}.contact-form,.admin-form{display:grid;gap:.7rem}.contact-form label,.admin-form label{display:grid;gap:.35rem;font-weight:600}.contact-form input,.contact-form textarea,.admin-form input,.admin-form textarea,.admin-form select{border-radius:9px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;padding:.63rem}.contact-form input:focus,.contact-form textarea:focus,.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus{outline:3px solid rgba(15,111,255,.2);border-color:#8fb9f4}.contact-list{margin-top:.7rem;display:grid;gap:.45rem}.contact-list span{color:var(--ink-soft)}.notice,.updated{margin:0;color:var(--ink-soft);font-size:.9rem}.site-footer{max-width:1120px;margin:1rem auto 2.5rem;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);padding:1rem}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:1rem}.footer-grid h3,.footer-grid h4{margin:0}.footer-grid h4{font-family:IBM Plex Mono,monospace;color:var(--ink-soft);font-size:.8rem;letter-spacing:.04em}.footer-grid p{margin:.52rem 0 0;color:var(--ink-soft);line-height:1.6}.footer-links{margin-top:.52rem;display:grid;gap:.34rem}.footer-links button{border:0;background:none;color:var(--primary-dark);text-align:left;font-weight:600;cursor:pointer;padding:0;width:fit-content}.footer-links button:hover{color:var(--primary)}.footer-copy{margin:.95rem 0 0;border-top:1px solid var(--line);padding-top:.8rem;color:var(--ink-soft);font-size:.82rem}.admin-shell{max-width:1100px;margin:0 auto;padding:1.2rem}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.8rem}.admin-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.admin-card{margin-bottom:.9rem}.admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.admin-item{border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:.85rem}.checkbox-label{grid-template-columns:auto 1fr;align-items:center;gap:.6rem}.auth-tabs{display:flex;flex-wrap:wrap;gap:.45rem}@media(max-width:980px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col,.footer-grid,.stats-grid{grid-template-columns:1fr}}@media(max-width:840px){.mobile-nav-toggle{display:inline-flex}.nav-links{position:absolute;left:.8rem;right:.8rem;top:calc(100% + .45rem);display:none;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);padding:.45rem}.nav-links.is-open{display:flex}.nav-links button,.nav-links .admin-link{text-align:left}.nav-links .admin-link{margin-left:0}.project-grid,.project-grid.full-grid,.admin-list{grid-template-columns:1fr}.admin-header{flex-direction:column;align-items:flex-start}}@media(max-width:640px){.site-main,.site-nav,.site-footer,.admin-shell{padding-left:.85rem;padding-right:.85rem}.hero-content h1{font-size:1.9rem}}
