@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=DM+Sans:wght@400;500;700&display=swap";*,*:before,*:after{box-sizing:border-box}:root{background-color:#04060c}body{margin:0;font-family:Space Grotesk,DM Sans,sans-serif;background:radial-gradient(circle at 20% 20%,rgba(123,255,177,.08),transparent 28%),radial-gradient(circle at 80% 0%,rgba(125,199,255,.1),transparent 35%),#04060c;color:#e8ebf5;min-height:100vh}a{color:inherit}p{line-height:1.6}h1,h2,h3,h4{line-height:1.2}#root{width:100%}:root{--bg: #06070d;--panel: rgba(255, 255, 255, .04);--panel-strong: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--text: #e8ebf5;--muted: #9aa0b5;--accent: #7bffb1;--accent-2: #7dc7ff;--card-gradient: linear-gradient(135deg, rgba(123, 255, 177, .08), rgba(125, 199, 255, .1));--shadow: 0 30px 80px rgba(0, 0, 0, .35)}.page{min-height:100vh;color:var(--text);position:relative;display:flex;flex-direction:column}.glow{position:fixed;width:30vw;height:30vw;filter:blur(120px);opacity:.35;z-index:0}.glow-a{top:-10%;left:-5%;background:radial-gradient(circle,rgba(123,255,177,.35),transparent 60%)}.glow-b{bottom:-10%;right:-5%;background:radial-gradient(circle,rgba(125,199,255,.35),transparent 60%)}.shell{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:24px 20px 80px;flex:1}.topbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:18px 28px;margin:8px auto 0;max-width:1240px;width:calc(100% - 32px);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(135deg,#06070dcc,#060c14b3);border-bottom:1px solid var(--border);border-radius:18px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand-mark{width:42px;height:42px;border-radius:14px;background:var(--card-gradient);display:grid;place-items:center;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text);box-shadow:var(--shadow)}.brand-name{font-weight:700;letter-spacing:.3px}.brand-sub{color:var(--muted);font-size:12px}nav{display:flex;align-items:center;gap:12px}nav a,nav .link-btn{color:var(--text);text-decoration:none;padding:11px 16px;border-radius:999px;transition:all .2s ease;font-weight:600;letter-spacing:.2px;font-size:14px;border:1px solid transparent;background:transparent;cursor:pointer}nav a:hover,nav .link-btn:hover{background:var(--panel);color:#fff}nav .pill{background:var(--panel);border:1px solid var(--border)}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;padding:32px 0 48px;align-items:stretch}.hero-text h1{font-size:clamp(32px,4vw,54px);margin:10px 0 12px;letter-spacing:-.5px}.hero-text p{margin:0 0 24px;color:#c2c7d7;max-width:640px}.tag{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:1px}.cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.button{padding:12px 18px;border-radius:12px;text-decoration:none;font-weight:700;border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.button.primary{background:linear-gradient(135deg,#7bffb1,#7dc7ff);color:#041018;box-shadow:var(--shadow)}.button.ghost{color:var(--text);background:var(--panel)}.button:hover{transform:translateY(-2px)}.button.small{padding:8px 12px;font-size:13px}.hero-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.stat{border:1px solid var(--border);padding:12px;border-radius:14px;background:var(--panel)}.stat.highlight{background:var(--card-gradient);color:#041018}.stat-value{font-size:20px;font-weight:800}.stat-label{color:var(--muted);font-size:13px}.hero-card{border:1px solid var(--border);border-radius:20px;padding:18px;background:linear-gradient(160deg,#ffffff0f,#ffffff05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.hero-card-top{display:flex;gap:12px;align-items:center}.pulse{width:10px;height:10px;border-radius:50%;background:#7bffb1;box-shadow:0 0 0 8px #7bffb126}.tiny{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px;margin:0 0 4px}.hero-card h3{margin:0 0 4px;font-size:20px}.hero-card-body{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--border);color:var(--text);font-weight:600;font-size:13px}.hero-card-footer{color:#c2c7d7}.panel{background:#ffffff05;border-radius:18px;border:1px solid var(--border);padding:24px;margin-top:12px;box-shadow:0 20px 60px #00000040}.section-header{display:grid;gap:6px;margin-bottom:20px}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;font-weight:700;font-size:12px}.section-title-row{display:flex;align-items:center;gap:12px}.section-title-row h2{margin:0;font-size:24px}.divider{flex:1;height:1px;background:var(--border)}.section-description{color:#c2c7d7;margin:0}.filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.filter{display:grid;gap:6px}.filter label{color:var(--muted);font-size:13px}.filter select,.filter input{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font-weight:600}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.card{border:1px solid var(--border);border-radius:16px;padding:18px;background:var(--panel);position:relative;overflow:hidden;transition:transform .2s ease,border-color .2s ease}.card-cover{width:calc(100% + 36px);margin:-18px -18px 12px;height:180px;border-radius:12px 12px 10px 10px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.08)}.card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(123,255,177,.12),transparent 45%);opacity:0;transition:opacity .3s ease}.card:hover{transform:translateY(-4px);border-color:#7bffb166}.card:hover:after{opacity:1}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.badge{padding:6px 10px;border-radius:999px;background:var(--panel-strong);border:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:1px}.year{color:var(--muted);font-size:12px}.card h3{margin:4px 0 8px}.card p{margin:0 0 12px;color:#cfd4e4}.card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.project-clickable{cursor:pointer}.tech-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.arrow-link{color:var(--accent);text-decoration:none;font-weight:700}.arrow-link:hover{text-decoration:underline}.meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pill-link{border:1px solid var(--border);background:var(--panel);padding:10px 14px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--text)}.pill-link:hover{text-decoration:none;border-color:#7bffb159;background:#7bffb114}.list{display:flex;flex-direction:column;gap:10px}.link-reset{color:inherit;text-decoration:none}.list-item{display:flex;justify-content:space-between;align-items:center;padding:14px 12px;border-radius:12px;border:1px solid var(--border);background:var(--panel);gap:12px}.list-item h3{margin:4px 0}.tag-row{display:flex;gap:8px;flex-wrap:wrap}.pill{border:1px solid var(--border);padding:8px 12px;border-radius:999px;color:var(--text);background:var(--panel);font-weight:600;text-decoration:none}.pill.soft{background:#7bffb114;color:#b6ffe0;border-color:#7bffb159}.arrow{font-size:18px;color:var(--accent)}.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.note{text-decoration:none;color:inherit}.note{border:1px solid var(--border);border-radius:14px;padding:14px;background:var(--panel)}.note-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.note h4{margin:0 0 6px}.note p{margin:0;color:#cfd4e4}.callout{margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:#cfd4e4}.callout.error{border-color:#ff636366;color:#ffc3c3}.footer{max-width:1180px;margin:auto auto 0;padding:24px 20px 40px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);position:relative;z-index:2;width:100%}.footer-detail{max-width:920px}.footer-links{display:flex;gap:10px}.footer a{color:var(--text);text-decoration:none;padding:8px 10px;border-radius:10px;border:1px solid transparent}.footer a:hover{border-color:var(--border);background:var(--panel)}.detail{background:linear-gradient(150deg,#ffffff0a,#ffffff04);border:1px solid var(--border);border-radius:18px;padding:24px;box-shadow:0 20px 60px #00000059;max-width:920px;margin:16px auto;display:grid;gap:12px}.detail-top{display:flex;align-items:flex-start;gap:14px;justify-content:space-between}.detail h1{margin:0 0 6px;font-size:clamp(28px,4vw,40px)}.detail-head{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.detail-cover{width:100%;display:block;margin:2px 0 12px;border-radius:14px;border:1px solid var(--border);object-fit:cover;max-height:360px;background:#0f1424}.detail .tiny{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:#ffffff0a;border:1px solid var(--border);color:#c2c7d7}.lead{font-size:18px;color:#d9deec;margin:0 0 14px}.markdown{line-height:1.7;color:#e8ebf5;margin-top:12px}.markdown h2,.markdown h3{margin:18px 0 8px}.markdown p{margin:10px 0}.markdown ul{margin:10px 0;color:#d9deec;border-left:2px solid var(--border);padding-left:16px}.markdown strong{color:#7bffb1}.related{margin-top:18px;display:grid;gap:10px;border-top:1px solid var(--border);padding-top:12px}.pill.back{cursor:pointer;background:var(--panel);border:1px solid var(--border);transition:background .2s ease}.pill.back:hover{background:var(--panel-strong)}.back-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;font-weight:700;letter-spacing:.2px;transition:transform .2s ease,background .2s ease,border-color .2s ease}.back-btn:hover{transform:translateY(-1px);background:var(--panel);border-color:#7bffb159}.back-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel);border-radius:8px;border:1px solid var(--border);font-weight:800}.admin{background:#ffffff05;border:1px solid var(--border);border-radius:18px;padding:24px;max-width:1080px;margin:0 auto;box-shadow:0 20px 60px #00000059;display:grid;gap:12px}.admin h1{margin:0 0 8px}.admin .muted{color:var(--muted);margin:0 0 4px}.admin-auth-page{max-width:640px;margin:24px auto;padding:28px;background:linear-gradient(145deg,#7bffb10d,#7dc7ff0a)}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.admin-head-left{display:grid;gap:4px}.admin-form{display:grid;gap:12px;margin-top:12px}.admin-auth{display:grid;gap:10px;margin-bottom:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(145deg,#7bffb108,#7dc7ff05)}.auth-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}.admin .button,.admin .button.primary,.admin .button.ghost{box-shadow:none}.admin .button{border-radius:12px;padding:10px 14px;font-weight:700;letter-spacing:.2px}.admin .button.primary{background:linear-gradient(135deg,#7bffb1,#7dc7ff);color:#041018;border:1px solid rgba(123,255,177,.4)}.admin .button.ghost{background:var(--panel);border:1px solid var(--border);color:var(--text)}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.form-row{display:grid;gap:6px}.input-with-actions{display:flex;align-items:center;gap:8px}.input-with-actions input[type=text],.input-with-actions input[type=url],.input-with-actions input[type=search],.input-with-actions input:not([type]){flex:1}.form-row.wide{grid-column:1 / -1}.form-row label{color:var(--muted);font-size:13px}.form-row input,.form-row textarea,.form-row select{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font-weight:600;width:100%}.form-row textarea{resize:vertical}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{display:none}.switch .slider{width:38px;height:22px;border-radius:999px;background:var(--border);position:relative;transition:background .2s}.switch .slider:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#dfe6f5;transition:transform .2s}.switch input:checked+.slider{background:linear-gradient(135deg,#7bffb1,#7dc7ff)}.switch input:checked+.slider:after{transform:translate(16px)}.switch-label{color:var(--muted);font-size:13px}.admin .button.primary{width:fit-content;box-shadow:none}.admin-editor{display:grid;gap:12px;grid-template-columns:minmax(320px,1fr) minmax(320px,1fr)}.admin-editor .panel{padding:12px;background:transparent;border:none}.preview{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--panel);height:100%;overflow:auto}.preview-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.preview-cover{width:100%;display:block;border-radius:10px;border:1px solid var(--border);object-fit:cover;max-height:220px;margin-bottom:10px}.preview h2,.preview h3{margin:12px 0 6px}.preview p{margin:8px 0;color:#cfd4e4}.toast{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#7bffb114;color:#bdfad7;font-weight:600;width:fit-content}.toast.error{background:#ff63631a;color:#ffc3c3;border-color:#ff636366}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.toolbar button{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:10px;cursor:pointer;font-weight:700}.toolbar button:hover{border-color:#7bffb180}.colors{display:inline-flex;gap:6px;align-items:center}.color-swatch{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);cursor:pointer;padding:0}.color-swatch:hover{transform:translateY(-1px)}.admin-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.focus-panel .admin-actions{margin-top:8px}@media(max-width:960px){.admin-editor{grid-template-columns:1fr}.admin{padding:18px}}@media(max-width:700px){.detail{padding:20px}.detail-top{grid-template-columns:1fr;align-items:flex-start;gap:10px}.back-btn{width:fit-content}}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.topbar{position:sticky;top:0}nav{gap:6px;flex-wrap:wrap}nav a,nav .link-btn{padding:9px 12px;font-size:13px}}@media(max-width:620px){.topbar{flex-direction:column;align-items:flex-start;gap:12px}.hero-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}.shell{padding:16px 16px 60px}.list-item{flex-direction:column;align-items:flex-start}.footer{flex-direction:column;align-items:flex-start;gap:10px}}
