@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;600&display=swap";
:root{--bg:#0a0e12;--bg-elevated:#0f151b;--bg-card:#131b23;--bg-card-hover:#17212b;--text:#eae7e0;--text-muted:#93a0ad;--text-dim:#5a6572;--border:#ffffff12;--border-hi:#ffffff24;--amber:#ffb020;--amber-glow:#ffb02059;--amber-dim:#ffb0201a;--cyan:#4fd8c4;--cyan-glow:#4fd8c44d;--violet:#a78bfa;--violet-glow:#a78bfa4d;--pink:#f472b6;--pink-glow:#f472b64d;--green:#34d399;--green-glow:#34d3994d;--blue:#60a5fa;--blue-glow:#60a5fa4d;--grid-line:#ffffff07;--topbar-bg:#0a0e12b8;--glass-bg:#0a0e12eb;--edge-line:#ffffff14;--maxw:1120px}:root[data-theme=light]{--bg:#eaeef3;--bg-elevated:#f2f5f9;--bg-card:#fff;--bg-card-hover:#f5f8fc;--text:#131a22;--text-muted:#48566a;--text-dim:#6f7a89;--border:#0f17201a;--border-hi:#0f172033;--amber:#b5730a;--amber-glow:#b5730a4d;--amber-dim:#b5730a1f;--cyan:#0e9a86;--cyan-glow:#0e9a8640;--violet:#6d4bd1;--violet-glow:#6d4bd140;--pink:#cf3f7a;--pink-glow:#cf3f7a40;--green:#1a9d63;--green-glow:#1a9d6347;--blue:#2563eb;--blue-glow:#2563eb40;--grid-line:#0f17200d;--topbar-bg:#edf0f5c7;--glass-bg:#ffffffeb;--edge-line:#0f172024}.pf-term-scope{--bg-elevated:#0f151b;--bg-card:#131b23;--bg-card-hover:#17212b;--border:#ffffff12;--border-hi:#ffffff24;--text:#eae7e0;--text-muted:#93a0ad;--text-dim:#5a6572;--amber:#ffb020;--cyan:#4fd8c4;--green:#34d399;--blue:#60a5fa}.pf-cursor{mix-blend-mode:screen}:root[data-theme=light] .pf-cursor{mix-blend-mode:normal}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{background:var(--bg);margin:0;padding:0}::selection{color:#fff;background:#ffb02040}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes heartbeat{0%,to{box-shadow:0 0 0 0 var(--green-glow);opacity:1}50%{opacity:.55;box-shadow:0 0 0 4px #34d39900}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes packet{0%{offset-distance:0%}to{offset-distance:100%}}@keyframes gridpan{0%{background-position:0 0}to{background-position:44px 44px}}@keyframes led{0%,to{opacity:1}50%{opacity:.2}}@keyframes badgefloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glowpulse{0%,to{box-shadow:0 0 0 0 var(--amber-glow), 0 8px 30px #ffb02026}50%{box-shadow:0 0 22px 2px var(--amber-glow), 0 8px 30px #ffb02040}}@keyframes dashmove{to{stroke-dashoffset:-24px}}@keyframes fadeup{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}input::placeholder,textarea::placeholder{color:var(--text-dim)}input:focus,textarea:focus{outline:none}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.pf-container{z-index:1;max-width:var(--maxw);margin:0 auto;padding:0 16px;position:relative}.pf-topbar-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;gap:10px;margin:0 auto;padding:10px 16px;display:flex}.pf-nav{align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:11.5px;display:flex}.pf-nav-links{align-items:center;gap:8px;display:none}.pf-hero{grid-template-columns:1fr;align-items:center;gap:30px;padding:36px 0 20px;display:grid}.pf-hero-art{aspect-ratio:1;order:2;justify-self:center;width:100%;max-width:300px;margin:0 auto;position:relative}.pf-section{padding:44px 0}.pf-about-grid,.pf-contact-grid{grid-template-columns:1fr;align-items:start;gap:24px;display:grid}.pf-projects-grid{grid-template-columns:1fr;gap:16px;display:grid}.pf-footer-grid{grid-template-columns:1fr;align-items:start;gap:20px;display:grid}.pf-footer-right{text-align:left}.pf-skill-graph{display:none}.pf-skill-list{display:block}@media (min-width:560px){.pf-nav-links{display:flex}.pf-footer-grid{grid-template-columns:1fr 1fr;gap:24px}.pf-footer-right{text-align:right}}@media (min-width:640px){.pf-container{padding:0 24px}.pf-topbar-inner{gap:16px;padding:11px 24px}}@media (min-width:760px){.pf-projects-grid{grid-template-columns:1fr 1fr;gap:20px}}@media (min-width:768px){.pf-section{padding:60px 0}.pf-skill-graph{display:block}.pf-skill-list{display:none}}@media (min-width:820px){.pf-about-grid{grid-template-columns:1.15fr .85fr;gap:28px}.pf-contact-grid{grid-template-columns:.9fr 1.1fr;gap:28px}}@media (min-width:900px){.pf-hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;min-height:82vh;padding:56px 0 40px}.pf-hero-art{order:0;justify-self:end;max-width:440px;margin:0}}.pf-social{width:42px;height:42px;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;text-decoration:none;transition:color .2s,border-color .2s,background .2s,transform .2s,box-shadow .2s;display:inline-flex}.pf-social svg{width:20px;height:20px;display:block}.pf-social:hover,.pf-social:focus-visible{background:var(--bg-card-hover);outline:none;transform:translateY(-3px);box-shadow:0 8px 22px #0006}.pf-social--gh:hover,.pf-social--gh:focus-visible{color:var(--text);border-color:var(--border-hi)}.pf-social--li:hover,.pf-social--li:focus-visible{color:var(--blue);border-color:var(--blue)}.pf-social--web:hover,.pf-social--web:focus-visible{color:var(--cyan);border-color:var(--cyan)}.pf-iconbtn{background:var(--bg-card);border:1px solid var(--border-hi);width:38px;height:38px;color:var(--text-muted);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;transition:color .2s,border-color .2s,background .2s,transform .2s,box-shadow .2s;display:inline-flex}.pf-iconbtn svg{width:18px;height:18px;display:block}.pf-iconbtn--on{color:var(--green);border-color:#34d39973}.pf-iconbtn:hover,.pf-iconbtn:focus-visible{background:var(--bg-card-hover);border-color:var(--amber);color:var(--amber);outline:none;transform:translateY(-2px);box-shadow:0 6px 18px #00000059}.pf-about-intro{grid-template-columns:1fr;gap:14px;max-width:940px;margin-bottom:26px;display:grid}@media (min-width:760px){.pf-about-intro{grid-template-columns:1fr 1fr;gap:30px}}@media (max-width:560px){.pf-term-body{padding:16px 14px!important;font-size:11.5px!important}}.pf-char{display:inline-block}.pf-char--fall{animation:.6s cubic-bezier(.45,0,.9,.5) forwards pf-charfall}@keyframes pf-charfall{to{opacity:0;transform:translate(var(--fx,0px), 72px) rotate(var(--fr,18deg))}}
