:root{--bg:#070b19;--bg-elevated:#0d1430;--surface:#111a3a;--border:#94b2e624;--text:#d6e6f8;--text-strong:#f2f7ff;--muted:#8b9cc0;--accent:#6cc4ff;--accent-soft:#6cc4ff1f;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius:12px;--radius-sm:8px;--header-h:68px;--max-w:1080px;--gutter:clamp(20px, 5vw, 48px);--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:radial-gradient(1200px 600px at 85% -10%, #6cc4ff14, transparent 60%), radial-gradient(900px 500px at -10% 30%, #7c5cff0f, transparent 60%), var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-attachment:fixed;font-size:1.0625rem;line-height:1.65}body.no-scroll{overflow:hidden}img{max-width:100%;height:auto;display:block}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}h1,h2,h3{color:var(--text-strong);letter-spacing:-.02em;line-height:1.15}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{width:100%;max-width:var(--max-w);padding-inline:var(--gutter);margin-inline:auto}.accent{color:var(--accent)}.skip-link{z-index:100;background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);padding:10px 16px;font-weight:600;position:absolute;top:-100px;left:16px}.skip-link:focus{top:16px}.button{border-radius:var(--radius-sm);border:1px solid var(--accent);font-family:var(--font-mono);white-space:nowrap;transition:background-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:.875rem;font-weight:500;line-height:1;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent);color:var(--bg)}.button-primary:hover{background:#9ad6ff}.button-outline{color:var(--accent)}.button-outline:hover{background:var(--accent-soft)}.button-sm{padding:9px 16px;font-size:.8125rem}.button-lg{padding:16px 28px;font-size:.9375rem}.site-header{z-index:50;height:var(--header-h);-webkit-backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--border);transition:transform .3s var(--ease);background:#070b19bf;position:sticky;top:0}.site-header.is-hidden{transform:translateY(-100%)}.header-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.logo{border:1.5px solid var(--accent);width:40px;height:40px;color:var(--accent);font-family:var(--font-mono);transition:background-color .2s var(--ease);border-radius:10px;place-items:center;font-size:.9rem;font-weight:600;display:grid}.logo:hover{background:var(--accent-soft)}.desktop-nav{display:none}.desktop-nav ol{counter-reset:nav;gap:4px;display:flex}.desktop-nav li a,.mobile-menu li a{color:var(--text);transition:color .2s var(--ease);padding:8px 12px;font-size:.875rem;display:inline-block;position:relative}.desktop-nav li,.mobile-menu li{counter-increment:nav}.desktop-nav li a:before,.mobile-menu li a:before{content:"0" counter(nav) ". ";color:var(--accent);font-family:var(--font-mono);font-size:.8em}.desktop-nav li a:hover{color:var(--accent)}.menu-toggle{width:44px;height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;place-items:center;margin-right:-8px;font-size:1.6rem;display:grid}.mobile-menu{z-index:49;inset:var(--header-h) 0 0 0;background:var(--bg);animation:menu-in .25s var(--ease);position:fixed;overflow-y:auto}.mobile-menu nav{padding:48px var(--gutter);flex-direction:column;align-items:center;gap:32px;display:flex}.mobile-menu ol{counter-reset:nav;flex-direction:column;align-items:center;gap:12px;display:flex}.mobile-menu li a{font-size:1.25rem}.mobile-menu .button{width:min(100%,280px)}@keyframes menu-in{0%{opacity:0;transform:translateY(-8px)}}@media (width>=900px){.desktop-nav{align-items:center;gap:16px;display:flex}.menu-toggle,.mobile-menu{display:none}}.section{scroll-margin-top:calc(var(--header-h) - 24px);padding-block:clamp(72px,12vw,128px)}.section-heading{align-items:baseline;gap:12px;margin-bottom:clamp(28px,5vw,44px);display:flex}.section-heading h2{white-space:nowrap;font-size:clamp(1.5rem,4vw,2rem)}.section-index{color:var(--accent);font-family:var(--font-mono);font-size:clamp(.95rem,2.5vw,1.15rem)}.section-rule{background:var(--border);flex:1;align-self:center;max-width:300px;height:1px}.hero{min-height:calc(100svh - var(--header-h));flex-direction:column;justify-content:center;padding-block:64px;display:flex}.hero-eyebrow{color:var(--accent);font-family:var(--font-mono);margin-bottom:16px;font-size:clamp(.9rem,2.5vw,1rem)}.hero-name{letter-spacing:-.035em;font-size:clamp(2.6rem,9vw,5rem);font-weight:800}.hero-role{color:var(--muted);letter-spacing:-.03em;margin-top:8px;font-size:clamp(1.6rem,6vw,3.25rem);font-weight:700;line-height:1.15}.hero-tagline{max-width:560px;color:var(--muted);margin-top:24px;font-size:clamp(1rem,2.5vw,1.125rem)}.hero-location{color:var(--muted);font-family:var(--font-mono);align-items:center;gap:6px;margin-top:16px;font-size:.85rem;display:inline-flex}.hero-location svg{color:var(--accent)}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:40px;display:flex}.hero-socials,.footer-socials{gap:8px;display:flex}.hero-socials{margin-top:32px;margin-left:-10px}.hero-socials a,.footer-socials a{width:44px;height:44px;color:var(--muted);transition:color .2s var(--ease), transform .2s var(--ease);place-items:center;font-size:1.25rem;display:grid}.hero-socials a:hover,.footer-socials a:hover{color:var(--accent);transform:translateY(-2px)}.about-grid{gap:48px;display:grid}.about-text{color:var(--muted);flex-direction:column;gap:16px;display:flex}.about-education{color:var(--text);font-family:var(--font-mono);font-size:.85rem}.skills{margin-top:clamp(40px,6vw,56px)}.skills-heading{color:var(--text-strong);margin-bottom:20px;font-size:1.05rem;font-weight:600}.skill-groups{gap:20px;display:grid}.skill-group dt{color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.78rem}.skill-group dd{margin:0}@media (width>=768px){.skill-groups{grid-template-columns:1fr 1fr;gap:28px 40px}}.skill-grid{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.chip{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-family:var(--font-mono);transition:border-color .2s var(--ease), color .2s var(--ease);border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:.8rem;display:inline-flex}.chip svg{color:var(--accent)}.chip:hover{border-color:var(--accent)}.about-photo{justify-self:center;width:min(100%,300px);position:relative}.about-photo img{z-index:1;aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius);filter:grayscale(20%);width:100%;transition:filter .3s var(--ease), transform .3s var(--ease);position:relative}.about-photo:after{content:"";border:2px solid var(--accent);border-radius:var(--radius);transition:transform .3s var(--ease);position:absolute;inset:0;transform:translate(14px,14px)}.about-photo:hover img{filter:none;transform:translate(-4px,-4px)}.about-photo:hover:after{transform:translate(10px,10px)}@media (width>=768px){.about-grid{grid-template-columns:3fr 2fr;align-items:start}}.timeline{flex-direction:column;gap:40px;display:flex}.timeline-item{gap:8px;display:grid}.timeline-item h3{font-size:1.15rem;font-weight:600}.timeline-item h3 a{transition:background-size .25s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat}.timeline-item h3 a:hover{background-size:100% 1px}.timeline-period{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.bullets{color:var(--muted);flex-direction:column;gap:8px;margin-top:12px;display:flex}.bullets li{padding-left:20px;position:relative}.bullets li:before{content:"▹";color:var(--accent);position:absolute;left:0}@media (width>=768px){.timeline-item{grid-template-columns:160px 1fr;gap:24px}.timeline-item h3 a{transition:background-size .25s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat}.timeline-item h3 a:hover{background-size:100% 1px}.timeline-period{padding-top:4px}}.project-list{flex-direction:column;gap:clamp(64px,10vw,112px);display:flex}.project{align-items:center;gap:24px;display:grid}.project-media{border-radius:var(--radius);overflow:hidden}.project-media.browser{border:1px solid var(--border);background:var(--surface);transition:transform .35s var(--ease);box-shadow:0 30px 60px -20px #0009}.project:hover .project-media.browser{transform:translateY(-4px)}.browser-bar{border-bottom:1px solid var(--border);gap:6px;padding:10px 12px;display:flex}.browser-bar span{background:#94b2e640;border-radius:50%;width:10px;height:10px}.project-media.phones{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:minmax(130px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:4px;display:grid;overflow-x:auto}.project-media.phones::-webkit-scrollbar{display:none}.project-media.phones img{scroll-snap-align:start;border:1px solid var(--border);border-radius:18px;box-shadow:0 20px 40px -20px #000000b3}.project-eyebrow{color:var(--accent);font-family:var(--font-mono);font-size:.8rem}.project-title{margin-top:4px;font-size:clamp(1.5rem,4vw,1.85rem)}.project-desc{color:var(--muted);margin-top:16px}.tag-list{color:var(--muted);font-family:var(--font-mono);flex-wrap:wrap;gap:6px 16px;margin-top:16px;font-size:.78rem;display:flex}.project-links{flex-wrap:wrap;gap:8px;margin-top:20px;margin-left:-10px;display:flex}.project-links a{border-radius:var(--radius-sm);min-height:44px;color:var(--text);transition:color .2s var(--ease), background-color .2s var(--ease);align-items:center;gap:8px;padding:0 10px;font-size:.875rem;display:inline-flex}.project-links a:hover{color:var(--accent);background:var(--accent-soft)}.project-links svg{font-size:1.1rem}@media (width>=900px){.project{grid-template-columns:7fr 5fr;gap:48px}.project.is-flipped .project-media{order:2}.project.is-flipped{grid-template-columns:5fr 7fr}}.talk-list{gap:16px;display:grid}.talk-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);transition:border-color .2s var(--ease), transform .2s var(--ease);padding:clamp(20px,4vw,28px);display:block}.talk-card:hover{border-color:var(--accent);transform:translateY(-3px)}.talk-card h3{margin-top:6px;font-size:clamp(1.15rem,3vw,1.35rem)}.talk-card p:last-child{color:var(--muted);margin-top:10px}.talk-arrow{vertical-align:-2px;color:var(--accent);transition:transform .2s var(--ease)}.talk-card:hover .talk-arrow{transform:translate(2px,-2px)}.contact{text-align:center;max-width:600px;margin-inline:auto}.contact-title{margin-top:12px;font-size:clamp(2rem,7vw,3.25rem);font-weight:800}.contact-blurb{color:var(--muted);margin:20px 0 40px}.site-footer{padding:32px var(--gutter) 40px;border-top:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);text-align:center;flex-direction:column;align-items:center;gap:8px;font-size:.78rem;display:flex}.reveal{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}
