:root{--background:#fff;--foreground:#171717;--bg:#0e1012;--panel:#121418;--border:#22262c;--text:#f5f6fa;--muted:#b0bec5;--a1:#1ad1ff;--a2:#a855f7;--ring:#37bfff}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:#0e1012;max-width:100vw;overflow-x:hidden}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Arial,Helvetica,sans-serif}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}a{color:inherit;text-decoration:none}a.btn:hover{transition:transform .2s;transform:translateY(-1px)}:focus-visible{outline:3px solid var(--a1);outline-offset:2px}.skip-link{width:1px;height:1px;position:absolute;top:auto;left:-9999px;overflow:hidden}.skip-link:focus{z-index:9999;color:#f5f6fa;background:#0e1012;border:1px solid #2a2e34;border-radius:8px;width:auto;height:auto;padding:8px 12px;font-weight:600;text-decoration:none;top:16px;left:16px}.site-root{z-index:1;position:relative}#tsparticles{pointer-events:none}.container{max-width:1120px;margin:0 auto;padding:40px 20px}.section{border-bottom:1px solid var(--border);padding:24px 0}.section h2{margin:0 0 12px;font-size:22px}.input{width:100%;color:var(--text);background:#0f1216;border:1px solid #2a2e34;border-radius:10px;padding:10px 12px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.row-between{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.year-pill{color:var(--muted);border:1px solid #2a2e34;border-radius:999px;padding:2px 8px;font-size:12px}.chips{color:var(--muted);flex-wrap:wrap;gap:8px;margin-top:6px;font-size:13px;display:flex}.chip{border:1px solid #2a2e34;border-radius:999px;padding:2px 8px}.card{background:var(--panel);border:1px solid var(--border);transform-style:preserve-3d;border-radius:14px;padding:12px;transition:transform .22s,box-shadow .22s,border-color .22s;box-shadow:0 0 transparent}.card:hover{border-color:#2c323a;transform:translateY(-2px);box-shadow:0 18px 48px rgba(26,209,255,.08),0 22px 64px rgba(168,85,247,.08)}.card:focus{box-shadow:0 0 0 2px rgba(55,191,255,.6),0 14px 40px rgba(26,209,255,.1),0 18px 56px rgba(168,85,247,.1);outline:none!important}.card:focus-visible{box-shadow:0 0 0 2px rgba(55,191,255,.6),0 14px 40px rgba(26,209,255,.1),0 18px 56px rgba(168,85,247,.1);outline:none!important}a.btn,button.btn{transform-style:preserve-3d;transition:transform .18s,box-shadow .18s,border-color .18s}@media (pointer:coarse){.card,a.btn,button.btn{transition:box-shadow .18s}}.projects{grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:20px;display:grid}.project-card{grid-template-columns:320px 1fr;align-items:stretch;gap:16px;padding:16px;display:grid}@media (max-width:820px){.project-card{grid-template-columns:1fr}}.thumb-wrap{position:relative}.thumb{object-fit:cover;border:1px solid var(--border);background:#0f1216;border-radius:12px;width:100%;height:180px;display:block}.aurora-thumb{filter:saturate(110%);background:radial-gradient(40% 60% at 25% 30%,rgba(26,209,255,.35),transparent 60%),radial-gradient(50% 60% at 75% 70%,rgba(168,85,247,.3),transparent 60%),radial-gradient(30% 40% at 55% 20%,rgba(120,220,255,.25),transparent 60%),#0f1216;animation:14s ease-in-out infinite alternate thumb-flow}@keyframes thumb-flow{0%{transform:translate(-2%,-1%)scale(1.03)}50%{transform:translate(1%)scale(1.05)}to{transform:translate(2%,2%)scale(1.07)}}html,body{background:0 0!important}.site-root{position:relative;z-index:1!important}#tsparticles{z-index:0;position:fixed;top:0;bottom:0;left:0;right:0;pointer-events:none!important}.typewriter{white-space:nowrap;display:inline-block}.caret{opacity:.9;margin-left:2px;animation:1s step-end infinite tw-blink}.caret-hide{opacity:0;animation:none}@keyframes tw-blink{0%,50%{opacity:.9}51%,to{opacity:0}}.clock{border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:rgba(15,18,22,.35);border-radius:12px;align-items:baseline;gap:10px;padding:6px 10px;display:flex;box-shadow:0 8px 30px rgba(26,209,255,.06),0 10px 40px rgba(168,85,247,.06)}.clock-time{font-variant-numeric:tabular-nums;letter-spacing:.5px}.clock-num{font-size:18px;font-weight:700}.clock-sep{padding:0 2px;transition:opacity .25s}.clock-sep.dim{opacity:.25}.clock-date{color:var(--muted);margin-left:4px;font-size:12px}@keyframes gel-pulse{0%{opacity:.55;transform:translate(-2%,-1%)scale(.92)}50%{opacity:.65;transform:translate(2%,1%)scale(1.06)}to{opacity:.58;transform:translate(-1%,2%)scale(.98)}}@media (prefers-reduced-motion:reduce){.pulse-clock .gel{animation:none}}.pulse-clock{isolation:isolate;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(12,14,18,.35);border-radius:50%;width:220px;height:220px;position:relative;overflow:hidden;box-shadow:inset 0 1px 12px rgba(255,255,255,.04),0 18px 48px rgba(26,209,255,.08),0 24px 72px rgba(168,85,247,.08)}.pulse-clock .gel{filter:blur(30px)saturate(115%);opacity:.55;border-radius:50%;animation:7.5s ease-in-out infinite gel-pulse;position:absolute;top:-10%;bottom:-10%;left:-10%;right:-10%;transform:scale(.9)}.pulse-clock .gel-a{background:radial-gradient(circle at 30% 40%,rgba(26,209,255,.333),rgba(26,209,255,0) 60%)}.pulse-clock .gel-b{background:radial-gradient(circle at 70% 65%,rgba(168,85,247,.333),rgba(168,85,247,0) 60%);animation-duration:9.5s;animation-delay:.4s}.pulse-clock .gel-c{background:radial-gradient(circle at 50% 30%,rgba(120,220,255,.333),rgba(120,220,255,0) 60%);animation-duration:11s;animation-delay:.9s}.pulse-clock .face{text-align:center;z-index:1;place-items:center;padding:16px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.pulse-clock .time{font-variant-numeric:tabular-nums;letter-spacing:.5px;text-shadow:0 0 24px rgba(26,209,255,.35),0 0 36px rgba(168,85,247,.25);font-size:28px;font-weight:800}.pulse-clock .date{color:var(--muted);margin-top:6px;font-size:12px}@media (prefers-reduced-motion:reduce){.pulse-clock .gel{animation:none}}
