:root{--bg: #0b0d10;--panel: rgba(255, 255, 255, .06);--panel2: rgba(255, 255, 255, .09);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .66);--line: rgba(255, 255, 255, .1);--shadow: 0 16px 50px rgba(0, 0, 0, .45);--r: 18px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--text);background:radial-gradient(1200px 600px at 20% 10%,rgba(91,140,255,.18),transparent 60%),radial-gradient(900px 500px at 80% 20%,rgba(255,120,120,.14),transparent 55%),var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}a{color:inherit;text-decoration:none}.wrap{width:min(1100px,calc(100% - 40px));margin:0 auto;padding:42px 0 60px}.hero{padding:28px 0}.brand{font-weight:700;letter-spacing:.6px;opacity:.95;margin-bottom:18px}.title{margin:0;font-size:clamp(28px,4vw,44px);line-height:1.1}.subtitle{margin:10px 0 0;color:var(--muted);max-width:62ch;font-size:15px;line-height:1.6}.heroRow{display:flex;gap:10px;margin-top:18px}.btn{border:1px solid var(--line);background:#ffffff14;padding:10px 14px;border-radius:14px;box-shadow:var(--shadow);display:inline-flex;align-items:center;gap:8px}.btn:hover{background:#ffffff1f}.btn.ghost{background:transparent;box-shadow:none}.grid{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:980px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.grid{grid-template-columns:1fr}}.cardLink{display:block}.card{border:1px solid var(--line);background:linear-gradient(180deg,var(--panel),rgba(255,255,255,.04));border-radius:var(--r);padding:14px 14px 12px;box-shadow:var(--shadow);min-height:132px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .08s ease,border-color .08s ease}.cardLink:hover .card{transform:translateY(-2px);border-color:#ffffff2e}.cardTitleRow{display:flex;align-items:center;justify-content:space-between;gap:10px}.cardTitle{margin:0;font-size:16px}.cardDesc{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.pill{font-size:11px;padding:5px 8px;border-radius:999px;border:1px solid var(--line);background:#ffffff14;color:#ffffffdb}.tagRow{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.tag{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#ffffff0d;color:#ffffffc7}.footer{margin-top:28px;color:#ffffff8c;display:flex;gap:10px;align-items:center}.dot{opacity:.5}.projectHeader{padding:10px 0 22px}.back{color:#ffffffbf}.back:hover{color:#fffffff2}.projectTitle{margin:12px 0 0;font-size:34px}.projectDesc{margin:10px 0 0;color:var(--muted);line-height:1.6;max-width:70ch}.projectBody{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:900px){.projectBody{grid-template-columns:1fr}}.panel{border:1px solid var(--line);background:linear-gradient(180deg,var(--panel2),rgba(255,255,255,.04));border-radius:var(--r);padding:14px;box-shadow:var(--shadow)}.panel h2{margin:0 0 10px;font-size:14px;opacity:.92}.panel p{margin:0;color:var(--muted);line-height:1.6;font-size:13px}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono}.section{margin-top:18px}.sectionHead{display:flex;align-items:center;gap:12px;margin:10px 0}.sectionTitle{margin:0;font-size:13px;letter-spacing:.6px;text-transform:uppercase;color:#ffffffc7}.sectionLine{height:1px;flex:1;background:#ffffff1a;border-radius:999px}
