:root{--color-accent: #6f86bd;--color-accent-2: #8ea5d6;--color-accent-red: #8ea5d6;--color-bg: #ffffff;--color-surface: #ffffff;--color-text: #1c1f26;--color-muted: #5b6472;--color-border: #e4e6eb;--shadow-soft: 0 18px 36px rgba(28, 31, 38, .12);--font-sans: "Manrope", "Inter", "Segoe UI", sans-serif;--font-serif: "Fraunces", "Times New Roman", serif;--content-max: 1340px;--section-padding: 72px;--reveal-duration: .46s;--reveal-ease: cubic-bezier(.2, .7, .2, 1);--marquee-duration: 25s}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.6}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}.page{min-height:100vh;background:radial-gradient(900px 500px at 10% 0%,rgba(111,134,189,.22) 0%,transparent 65%),radial-gradient(800px 500px at 90% 10%,rgba(142,165,214,.18) 0%,transparent 60%),var(--color-bg)}.skip-link{position:absolute;left:16px;top:12px;padding:10px 14px;background:var(--color-accent);color:#fff;border-radius:999px;transform:translateY(-150%);transition:transform .2s ease}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:10;background:#f5f6f3e6;backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border)}.nav{max-width:var(--content-max);margin:0 auto;padding:16px 20px;display:flex;align-items:center;gap:16px}.logo{display:flex;align-items:center;gap:10px;font-weight:600;font-family:var(--font-serif)}.logo-mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-red))}.nav-links{display:flex;gap:12px;margin-left:auto;flex-wrap:wrap}.nav-link{padding:8px 10px;border-radius:999px;transition:background .2s ease,color .2s ease}.nav-link:hover{background:#6f86bd29}.nav-cta{padding:10px 14px;border-radius:999px;background:var(--color-accent-red);color:#fff;transition:transform .2s ease}.nav-cta:hover{transform:translateY(-1px)}.section{max-width:var(--content-max);margin:0 auto;padding:var(--section-padding) 32px}.section-head{display:flex;flex-direction:column;gap:12px;margin-bottom:28px}.section-subtitle{color:var(--color-muted);max-width:680px}.hero{display:grid;gap:32px;align-items:center;padding-top:96px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:12px;color:var(--color-accent-red);margin:0 0 12px}.hero-text h1{font-size:clamp(32px,6vw,56px);line-height:1.1;margin:0 0 16px;font-family:var(--font-serif)}.lead{font-size:18px;color:var(--color-muted);margin:0 0 24px}.cta-group{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}.button{padding:12px 18px;border-radius:12px;border:1px solid transparent;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.button.primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-2));color:#fff;box-shadow:var(--shadow-soft)}.button.ghost{border-color:var(--color-border);background:transparent;color:var(--color-text)}.button:hover{transform:translateY(-1px)}.social-links{display:flex;gap:12px}.social-link{display:inline-flex;padding:8px 12px;border-radius:999px;border:1px solid var(--color-border);color:var(--color-muted);transition:border-color .2s ease,color .2s ease,background .2s ease}.social-link:hover{border-color:var(--color-accent);color:var(--color-text);background:#6f86bd29}.hero-media{display:grid;gap:16px}.portrait{aspect-ratio:3 / 5;border-radius:48px;border:1px solid var(--color-border);object-fit:cover;width:90%}.quick-facts{list-style:none;padding:0;margin:0;display:grid;gap:8px;color:var(--color-muted)}.card{background:var(--color-surface);border-radius:20px;border:1px solid var(--color-border);padding:24px;box-shadow:var(--shadow-soft)}.section-band{width:min(var(--content-max),100% - 64px);margin:0 auto;padding:28px;border-radius:28px;border:1px solid var(--color-border);background:linear-gradient(120deg,#6f86bd1a,#8ea5d614)}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:1fr}.skills-grid{display:flex;flex-wrap:wrap;gap:12px}.skills-marquee{overflow:hidden;border-radius:18px;border:0px solid var(--color-border);background:#ffffff1c;padding:0}.skills-track{display:inline-flex;gap:15px;padding-left:0;white-space:nowrap;animation:marquee-left var(--marquee-duration) linear infinite}.skills-marquee:hover .skills-track{animation-play-state:paused}.skill-pill{padding:10px 14px;border-radius:999px;border:1px solid var(--color-border);background:#d2e1ff;font-size:14px}.project{display:grid;gap:16px}.project-media{height:160px;border-radius:16px;background:linear-gradient(135deg,#6f86bd38,#8ea5d62e);border:1px solid var(--color-border)}.highlight-list,.chip-list,.bullet-list,.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.bullet-list li{display:flex;gap:10px;align-items:flex-start}.hobby-icon{width:20px;height:20px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;background:#6f86bd2e;color:var(--color-accent);flex:0 0 auto}.hobby-icon svg{width:14px;height:14px;fill:currentColor}.timeline{display:grid;gap:20px}.timeline-item{position:relative;padding-left:24px}.timeline-item:before{content:"";position:absolute;left:0;top:6px;width:10px;height:10px;border-radius:50%;background:var(--color-accent-red)}.meta{color:var(--color-muted);font-size:14px;margin:4px 0 0}.project .tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag{padding:6px 10px;border-radius:999px;border:1px solid var(--color-border);font-size:12px;color:var(--color-muted)}.contact-card{display:grid;gap:16px}.contact-list a{display:inline-flex;padding:8px 10px;border-radius:10px;border:1px solid var(--color-border);transition:border-color .2s ease,background .2s ease}.contact-list a:hover{border-color:var(--color-accent);background:#6f86bd29}.site-footer{max-width:var(--content-max);margin:0 auto;padding:40px 20px 64px;border-top:1px solid var(--color-border)}.footer-note{color:var(--color-muted)}[data-reveal]{opacity:0;transform:translateY(100px);transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes marquee-left{0%{transform:translate(0)}to{transform:translate(-100%)}}@media(min-width:820px){.hero{grid-template-columns:1.1fr .9fr}.grid.two{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
