@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";:root{--md-primary: #00639b;--md-on-primary: #ffffff;--md-primary-container: #cfe5ff;--md-secondary-container: #d6e4f7;--md-bg: #f8f9ff;--md-surface: #ffffff;--md-surface-2: #f7f8fc;--md-on-surface: #1b1b1f;--md-outline: #c3c7cf;--md-outline-2: #dde1ea;--md-success: #086b3b;--md-error: #b3261e;--md-bg-accent-1: #e8f3ff;--md-bg-accent-2: #eef2ff;--md-topbar-bg: rgba(248, 249, 255, .9);--md-brand: #003355;--md-nav-bg: #eaf2ff;--md-nav-text: #0f2940;--md-muted-text: #4e6172;--shadow-1: 0 1px 2px rgba(0, 0, 0, .12), 0 1px 3px rgba(0, 0, 0, .08);--shadow-2: 0 8px 20px rgba(0, 37, 76, .08)}[data-theme=dark]{--md-primary: #9ecaff;--md-on-primary: #002a46;--md-primary-container: #003355;--md-secondary-container: #2c3b4d;--md-bg: #101418;--md-surface: #151b22;--md-surface-2: #1b2430;--md-on-surface: #e2e9f3;--md-outline: #4a5665;--md-outline-2: #303946;--md-success: #8fe4b8;--md-error: #ffb4ab;--md-bg-accent-1: #1a2940;--md-bg-accent-2: #172235;--md-topbar-bg: rgba(16, 20, 24, .9);--md-brand: #d2e5ff;--md-nav-bg: #223348;--md-nav-text: #d2e5ff;--md-muted-text: #b5c2d2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{position:relative;min-height:100vh;isolation:isolate;margin:0;font-family:Roboto,sans-serif;color:var(--md-on-surface);background:radial-gradient(1200px 600px at 100% -10%,var(--md-bg-accent-1) 0%,transparent 50%),radial-gradient(1000px 500px at -10% 30%,var(--md-bg-accent-2) 0%,transparent 45%),var(--md-bg)}body:before{content:"";position:fixed;top:-120px;right:-120px;bottom:-120px;left:-120px;z-index:0;pointer-events:none;background:radial-gradient(420px 420px at 12% 22%,color-mix(in srgb,var(--md-primary) 38%,transparent),transparent 68%),radial-gradient(500px 500px at 86% 18%,color-mix(in srgb,var(--md-primary-container) 62%,transparent),transparent 70%),radial-gradient(440px 440px at 35% 86%,color-mix(in srgb,var(--md-secondary-container) 60%,transparent),transparent 72%);filter:blur(46px) saturate(120%);opacity:.42}#root{position:relative;z-index:1}.container{width:min(1040px,92vw);margin:0 auto}.topbar{position:sticky;top:0;z-index:40;background:var(--md-topbar-bg);-webkit-backdrop-filter:saturate(170%) blur(12px);backdrop-filter:saturate(170%) blur(12px);border-bottom:1px solid var(--md-outline-2)}.topbar-inner{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0;gap:1rem}.brand{margin:0;font-weight:700;font-size:1.1rem;color:var(--md-brand)}.topbar-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.nav-links{display:flex;gap:.45rem;flex-wrap:wrap}.nav-links a{text-decoration:none;color:var(--md-nav-text);background:var(--md-nav-bg);padding:.45rem .75rem;border-radius:999px;font-size:.9rem;font-weight:500;transition:all .18s ease}.nav-links a:hover{background:var(--md-primary-container);transform:translateY(-1px)}.theme-toggle{border:1px solid var(--md-outline);border-radius:999px;background:var(--md-surface-2);color:var(--md-on-surface);padding:.45rem .8rem;font:inherit;font-size:.86rem;font-weight:500;cursor:pointer;transition:background .18s ease,transform .18s ease}.theme-toggle:hover{background:var(--md-primary-container);transform:translateY(-1px)}.page-content{padding:1.25rem 0 2rem;display:grid;gap:1rem}.card,.hero{background:var(--md-surface);border-radius:24px;padding:1.35rem 1.4rem;border:1px solid var(--md-outline-2);box-shadow:var(--shadow-1);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.hero{background:linear-gradient(120deg,#cfe5ff8c,#d6e4f766),var(--md-surface);box-shadow:var(--shadow-2)}[data-theme=dark] .hero{background:linear-gradient(130deg,#2e46606b,#1f2b3c94),var(--md-surface);border-color:#3c4b5c}.eyebrow{margin:0;color:var(--md-muted-text);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:500}h1{margin:.5rem 0 0;font-size:clamp(1.7rem,4vw,2.25rem)}h2{margin:0 0 1rem;font-size:1.35rem}h3{margin:0;font-size:1.05rem}p{line-height:1.55}.headline{margin:.35rem 0 .2rem;color:var(--md-primary);font-weight:500}.hero-bio{max-width:66ch;margin-top:.65rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:999px;background:var(--md-primary);color:var(--md-on-primary);padding:.62rem 1rem;font:inherit;font-weight:500;cursor:pointer;text-decoration:none;box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00639b40}.button:disabled{opacity:.65;cursor:not-allowed}.button-tonal{color:var(--md-on-surface);background:var(--md-secondary-container)}.meta-list{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;padding:0;margin:.9rem 0 0}.meta-list li{background:var(--md-surface-2);border:1px solid var(--md-outline-2);border-radius:999px;padding:.35rem .72rem;font-size:.9rem}.meta-list a{color:var(--md-primary);text-decoration:none}.highlights{margin:.85rem 0 0;padding-left:1.2rem}.highlights li,.timeline-points li{margin-bottom:.35rem}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem}.skill-item,.project-item{border-radius:16px;border:1px solid var(--md-outline-2);background:var(--md-surface-2);padding:.9rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.skill-item p{margin:.3rem 0 .45rem;color:var(--md-muted-text)}.chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--md-outline);padding:.22rem .6rem;background:var(--md-surface);font-size:.76rem;font-weight:500;transition:transform .18s ease,border-color .18s ease,background .18s ease}.chip-filled{border-color:transparent;background:var(--md-primary-container);color:var(--md-on-surface)}.timeline{display:grid;gap:.7rem}.timeline-item{padding:.85rem .95rem;border-radius:14px;border:1px solid var(--md-outline-2);background:var(--md-surface-2);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.timeline-meta{margin:.35rem 0 .6rem;color:var(--md-muted-text);font-size:.95rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.7rem}.project-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.tags{margin:.5rem 0 .85rem;color:var(--md-muted-text);font-size:.93rem}.project-links{display:flex;gap:.75rem}.text-link{color:var(--md-primary);font-weight:500;text-decoration:none}.text-link:hover{text-decoration:underline}@media (hover: hover){.card:hover,.hero:hover{transform:translateY(-2px);border-color:var(--md-outline);box-shadow:0 10px 22px #0000001f}.skill-item:hover,.project-item:hover,.timeline-item:hover{transform:translateY(-3px);border-color:var(--md-primary);box-shadow:0 8px 18px #00639b29}.chip:hover{transform:translateY(-1px);border-color:var(--md-primary);background:var(--md-primary-container)}}.contact-form{display:grid;gap:.5rem}label{font-weight:500;font-size:.92rem;color:var(--md-on-surface)}input,textarea{width:100%;border:1px solid var(--md-outline);border-radius:12px;padding:.68rem .8rem;font:inherit;color:var(--md-on-surface);background:var(--md-surface);transition:border-color .2s ease,box-shadow .2s ease}input::placeholder,textarea::placeholder{color:var(--md-muted-text);opacity:1}input:focus,textarea:focus{outline:none;border-color:var(--md-primary);box-shadow:0 0 0 3px #00639b26}.submit-btn{width:fit-content;margin-top:.35rem}.status-success,.status-error{margin-top:.75rem;border-radius:12px;padding:.65rem .75rem;font-size:.93rem}.status-success{color:var(--md-success);background:#dff5e8;border:1px solid #b6e8cb}.status-error,.state-error{color:var(--md-error);background:#fce8e6;border:1px solid #f3c4c0}.state-box{margin-top:2rem;background:var(--md-surface);border-radius:20px;border:1px solid var(--md-outline-2);padding:1rem;box-shadow:var(--shadow-1)}@media (max-width: 720px){.topbar-inner{flex-direction:column;align-items:flex-start}.topbar-actions,.nav-links{width:100%}.hero,.card{border-radius:18px}.hero-actions{width:100%}.submit-btn,.hero-actions .button{width:100%;text-align:center}}
