@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap";:root{--bg:#0f1318;--paper:#131920e0;--ink:#e8edf2;--muted:#8a9ab0;--line:#94a3b847;--brand:#94a3b8;--brand-soft:#94a3b826;--chip:#323c4b66;--body-font:"Manrope", sans-serif;--heading-font:"Plus Jakarta Sans", "Manrope", sans-serif;font-family:var(--body-font);color:var(--ink);background:var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 10% 0%, #6478a01f 0%, transparent 40%), radial-gradient(circle at 100% 20%, #50648c1a 0%, transparent 35%), linear-gradient(165deg, #151b23, #0f1318 45%, #141a21 100%), var(--bg);color:var(--ink);background-attachment:fixed;padding-top:1.5rem}@media (width<=900px){body{padding-top:.65rem}}a{color:inherit}.site-shell{border:1px solid var(--line);background:var(--paper);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;width:min(1080px,100% - 2rem);margin:0 auto 1.25rem;overflow:hidden;box-shadow:0 20px 45px #0000006b}.hero{border-bottom:1px solid var(--line);background-color:#0000;background-image:linear-gradient(#0c111659,#0e131973),url(/bg.png);background-position:50%,top;background-repeat:no-repeat;background-size:auto,cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;grid-template-columns:1.5fr 1fr;gap:1.25rem;padding:2.5rem;display:grid}.hero-copy h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;font-family:var(--heading-font);letter-spacing:-.01em;margin:.5rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.09em;color:var(--brand);margin:0;font-weight:700}.lede{color:var(--muted);max-width:56ch;margin:0}.cta-row{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.btn{border:1px solid var(--ink);border-radius:12px;align-items:center;gap:.4rem;padding:.7rem 1rem;font-weight:500;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:inline-flex}.btn-primary{background:var(--brand);color:#0f1318;border-color:#94a3b88f}.btn-secondary{background:var(--brand-soft);border-color:#94a3b866}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0000004d}.hero-card{border:1px solid var(--line);background:linear-gradient(165deg,#28374b57,#151d24bd 75%);border-radius:16px;align-self:start;padding:.85rem .9rem}.hero-card h2{font-size:1.2rem;font-family:var(--heading-font);margin:0 0 .5rem}.hero-card ul{margin:0 0 .9rem;padding-left:1.1rem;font-size:.88rem;line-height:1.3}.hero-card p{color:var(--muted);margin:0}.hero-profile-links{flex-direction:column;gap:.35rem;margin-top:.8rem;display:flex}.hero-github{color:var(--brand);align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}main{gap:1rem;padding:1rem;display:grid}.panel{border:1px solid var(--line);background:linear-gradient(#1b242dd1,#10151cf0);border-radius:16px;padding:1.1rem;scroll-margin-top:6.5rem}.panel h2{font-size:1.35rem;font-family:var(--heading-font);letter-spacing:0;margin:0 0 .6rem}.section-title{align-items:center;gap:.5rem;display:inline-flex}.section-title svg{color:var(--brand)}.panel p{margin:.4rem 0}.timeline-item{background:#12181fe6;border:1px dashed #94a3b859;border-radius:14px;padding:.8rem}.timeline-item summary{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:.75rem;list-style:none;display:flex}.summary-main{flex-direction:column;gap:.25rem;display:flex}.exp-indicator{color:var(--brand);border:1px solid var(--line);background:var(--brand-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.78rem;display:inline-flex}.exp-indicator .state-open,.timeline-item[open] .exp-indicator .state-collapsed{display:none}.timeline-item[open] .exp-indicator .state-open{display:inline}.timeline-item .chevron{transition:transform .2s}.timeline-item[open] .chevron{transform:rotate(180deg)}.timeline-item[open] .exp-indicator{color:var(--ink);border-color:#eaf2ec52}.older-role:not([open]){border-style:solid}.timeline-item summary:hover .role-title{color:var(--brand)}.timeline-item summary::-webkit-details-marker{display:none}.role-title{font-size:1.05rem;font-weight:700;font-family:var(--heading-font);margin:0}.timeline-item+.timeline-item{margin-top:.8rem}.timeline-item h3{margin:0;font-size:1.05rem}.meta{color:var(--muted);margin:.3rem 0 0;font-size:.95rem}.timeline-item ul{margin:.8rem 0 0;padding-left:1.1rem}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.project-group+.project-group{margin-top:1rem}.project-group-title{font-family:var(--heading-font);color:var(--brand);letter-spacing:.01em;margin:0 0 .65rem;font-size:1rem}.project-card{border:1px solid var(--line);background:#12181fe6;border-radius:14px;flex-direction:column;padding:.85rem;transition:transform .2s,border-color .2s;display:flex}.project-card:hover{border-color:#94a3b880;transform:translateY(-3px)}.project-card h3{font-size:1rem;font-family:var(--heading-font);margin:0}.project-image{aspect-ratio:4/3;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:10px;width:100%;margin-bottom:.65rem}.project-card p{color:var(--muted);margin:.65rem 0}.project-card-footer{margin-top:auto}.project-stack{flex-wrap:wrap;gap:.35rem;margin:.65rem 0;padding:0;list-style:none;display:flex}.project-stack li{color:var(--ink);background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:.22rem .45rem;font-family:IBM Plex Mono,monospace;font-size:.74rem;line-height:1.2}.project-card a{color:var(--brand);margin-top:.25rem;font-weight:500;text-decoration:none;display:inline-block}.project-links{flex-wrap:wrap;gap:.7rem;display:flex}.project-links a{align-items:center;gap:.3rem;display:inline-flex}.project-live-row{width:100%;margin-top:.45rem}.project-live-button{width:100%;color:var(--ink);background:#94a3b824;border:1px solid #94a3b87a;border-radius:8px;justify-content:center;align-items:center;gap:.32rem;padding:.32rem .58rem;font-weight:600;display:inline-flex}.project-live-button:hover{background:#94a3b838;border-color:#94a3b8b3}.skills-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.skills-column{border:1px solid var(--line);background:#12181f94;border-radius:12px;padding:.65rem}.skills-category-title{font-size:1rem;font-weight:700;font-family:var(--heading-font);color:var(--brand);letter-spacing:.01em;align-items:center;gap:.4rem;margin:0 0 .55rem;display:inline-flex}.skills-category-title svg{width:1rem;height:1rem}.skill-list{flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.skill-list li{border:1px solid var(--line);background:var(--chip);border-radius:999px;padding:.35rem .55rem;font-family:IBM Plex Mono,monospace;font-size:.86rem}.note{color:var(--muted);font-size:.92rem}.footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.footer p{margin:0;font-weight:700}.footer-version{text-align:center;color:var(--muted);flex:1;font-size:.85rem;font-weight:500}.footer a{color:var(--brand);text-decoration:none}.footer-links{gap:1rem;display:flex}.footer-links a{align-items:center;gap:.35rem;display:inline-flex}.contact-form{flex-direction:column;gap:1rem;margin-top:.8rem;display:flex}.form-group{flex-direction:column;gap:.35rem;display:flex}.form-group label{color:var(--ink);font-size:.95rem;font-weight:600}.form-group input,.form-group textarea{border:1px solid var(--line);color:var(--ink);background:#0f131899;border-radius:10px;padding:.65rem .75rem;font-family:Manrope,sans-serif;font-size:.95rem;transition:border-color .2s,background .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--brand);background:#0f1318cc;outline:none}.form-group textarea{resize:vertical;min-height:120px}.cf-turnstile{margin:.5rem 0}.submit-button{background:var(--brand);color:#0f1318;border:1px solid var(--brand);cursor:pointer;border-radius:10px;padding:.75rem 1.2rem;font-size:.95rem;font-weight:600;transition:transform .2s,box-shadow .2s}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 22px #0000004d}.submit-button:disabled{opacity:.7;cursor:not-allowed}.form-status{border-radius:10px;padding:.75rem;font-size:.95rem;font-weight:500}.form-status.success{color:#86efac;background:#22c55e26;border:1px solid #22c55e66}.form-status.error{color:#fca5a5;background:#ef444426;border:1px solid #ef444466}.site-shell,.hero,.panel,.project-card,.timeline-item,.hero-card{animation:.45s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.hero{grid-template-columns:1fr;padding:1.4rem}.project-grid,.skills-columns{grid-template-columns:1fr}.page-layout{width:calc(100% - 1rem)}.timeline-item summary{flex-direction:column;align-items:flex-start}}
