:root{--bg: #f6f3ec;--surface: #fffdf8;--border: #e2dcc9;--border-strong: #cfc5a8;--ink: #1a1712;--ink-muted: #5c5646;--ink-faint: #928a72;--accent: #1e3a5f;--accent-hover: #142944;--accent-soft: #1e3a5f0f;--accent-soft-strong: #1e3a5f24;--accent-2: #9c7a2e;--serif: "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", "Consolas", monospace;--max-width: 980px}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-image:radial-gradient(circle at 12% -10%,#1e3a5f14 0%,transparent 40%),radial-gradient(circle at 92% 10%,#1e3a5f0a 0%,transparent 35%);background-attachment:fixed}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}::selection{background:var(--accent-soft-strong);color:var(--ink)}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:var(--accent);z-index:70;transition:width .1s linear}.cursor-spotlight{position:fixed;top:0;left:0;width:200px;height:200px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--accent-soft-strong),transparent 70%);transform:translate(-9999px,-9999px);z-index:5;will-change:transform}@media(pointer:coarse){.cursor-spotlight{display:none}}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}.nav{position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f6f3ecd9;border-bottom:1px solid var(--border)}.nav-inner{max-width:var(--max-width);margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}.nav-brand{font-family:var(--serif);font-weight:700;font-size:19px;letter-spacing:-.01em;color:var(--accent)}.nav-links{display:flex;gap:30px}.nav-links button{font-size:14px;font-weight:500;color:var(--ink-muted);border-bottom:2px solid transparent;padding-bottom:2px;transition:color .2s ease,border-color .2s ease}.nav-links button:hover{color:var(--ink)}.nav-links button.is-active{color:var(--accent);border-bottom-color:var(--accent)}.nav-right{display:flex;align-items:center;gap:14px}.nav-hamburger{display:none;flex-direction:column;gap:4px;padding:8px}.nav-hamburger span{width:20px;height:2px;background:var(--ink);border-radius:1px}.nav-mobile-menu{display:none}@media(max-width:680px){.nav-links{display:none}.nav-hamburger{display:flex}.nav-mobile-menu{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 16px 30px -18px #1a171240;padding:8px 20px 18px}.nav-mobile-menu button{text-align:left;padding:12px 4px;font-size:16px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--border)}.nav-mobile-menu button.is-active{color:var(--accent)}}.lang-toggle{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--ink-faint);border:1px solid var(--border-strong);border-radius:3px;padding:6px 11px;transition:border-color .2s ease,background .2s ease}.lang-toggle:hover{background:var(--accent-soft)}.lang-toggle .active{color:var(--accent);font-weight:700}.lang-divider{color:var(--border-strong)}.hero{padding:108px 24px 96px}.hero-inner{max-width:var(--max-width);margin:0 auto}.hero-eyebrow{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:22px;animation:fade-up .7s ease both}.hero-name{font-family:var(--serif);font-size:clamp(2.75rem,7vw,4.75rem);font-weight:700;letter-spacing:-.015em;line-height:1.04;color:var(--ink);animation:fade-up .7s ease .05s both}.hero-subtitle{margin-top:16px;font-size:clamp(1.05rem,2.2vw,1.3rem);color:var(--ink-muted);font-weight:500;animation:fade-up .7s ease .1s both}.hero-cta{margin-top:34px;display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:700;letter-spacing:.01em;color:var(--surface);background:var(--accent);padding:15px 28px;border-radius:4px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;animation:fade-up .7s ease .15s both}.hero-cta:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 14px 28px -14px var(--accent-soft-strong)}.hero-cta-arrow{transition:transform .2s ease}.hero-cta:hover .hero-cta-arrow{transform:translate(3px)}.hero-timeline{margin-top:40px;display:flex;flex-direction:row;align-items:center;gap:18px;max-width:560px;animation:fade-up .7s ease .13s both}.hero-timeline-label{display:flex;flex-direction:column;gap:3px;white-space:nowrap;font-family:var(--mono)}.hero-timeline-label-end{text-align:right}.hero-timeline-start-label{font-size:12px;color:var(--ink-muted)}.hero-timeline-end-label{font-size:12px;color:var(--accent-2)}.hero-timeline-sub{font-size:11px;color:var(--ink-faint)}.hero-timeline-line{position:relative;flex:1;width:100%;height:2px;background:var(--border)}.hero-timeline-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent);top:-3px;left:2%;animation:travel-x 3.2s ease-in-out infinite,pulse-dot 3.2s ease-in-out infinite}@keyframes travel-x{0%{left:2%}50%{left:96%}to{left:2%}}@keyframes travel-y{0%{top:2%}50%{top:96%}to{top:2%}}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 0 var(--accent-soft-strong)}50%{box-shadow:0 0 0 7px transparent}}@media(max-width:680px){.hero-timeline{flex-direction:column;align-items:flex-start;gap:14px}.hero-timeline-label-end{text-align:left}.hero-timeline-line{flex:none;width:2px;height:56px}.hero-timeline-dot{top:2%;left:-3px;animation:travel-y 3.2s ease-in-out infinite,pulse-dot 3.2s ease-in-out infinite}}.hero-tagline{margin-top:38px;max-width:540px;font-family:var(--serif);font-style:italic;font-size:1.15rem;line-height:1.55;color:var(--ink-muted);border-left:3px solid var(--accent);padding-left:20px;animation:fade-up .7s ease .2s both}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.section-heading{font-family:var(--serif);font-size:clamp(1.7rem,3.4vw,2.3rem);font-weight:700;letter-spacing:-.01em;color:var(--ink)}.section-subheading{margin-top:8px;color:var(--ink-faint);font-size:.95rem}.about{padding:64px 24px;border-top:1px solid var(--border)}.about-inner{max-width:var(--max-width);margin:0 auto}.about-body{margin-top:26px;display:flex;flex-direction:column;gap:18px;max-width:620px}.about-body p{font-size:1.05rem;line-height:1.75;color:var(--ink-muted)}.about-body p:first-child:first-letter{font-family:var(--serif);font-weight:700;font-size:3.1rem;line-height:.75;float:left;padding-right:9px;padding-top:8px;color:var(--accent)}.experience{padding:64px 24px;border-top:1px solid var(--border)}.experience-inner{max-width:var(--max-width);margin:0 auto}.experience-list{margin-top:36px;border-top:1px solid var(--border)}.experience-row{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:26px 12px;margin:0 -12px;border-bottom:1px solid var(--border)}.experience-date{font-family:var(--mono);font-size:12px;color:var(--ink-faint);white-space:nowrap;padding-top:2px}.experience-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.experience-org{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:var(--ink)}.experience-role{font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--accent);white-space:nowrap}.experience-bullets{margin:12px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.experience-bullets li{color:var(--ink-muted);font-size:.97rem;line-height:1.6}.experience-label-heading{margin-top:40px;font-size:14px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-faint)}.experience-achievements-heading{margin-top:36px}.skills-list{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}.skills-list li{font-family:var(--mono);font-size:12px;color:var(--ink-muted);border:1px solid var(--border-strong);border-radius:3px;padding:6px 12px}.achievements-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}.achievements-list p{color:var(--ink-muted);font-size:.95rem;line-height:1.6}@media(max-width:640px){.experience-row{grid-template-columns:1fr;gap:8px;padding:22px 12px}}.projects{padding:84px 24px;border-top:1px solid var(--border)}.projects-inner{max-width:var(--max-width);margin:0 auto}.projects-list{margin-top:40px;border-top:1px solid var(--border)}.project-item{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:34px 12px;margin:0 -12px;border-bottom:1px solid var(--border);border-radius:3px;transition:opacity .6s ease,transform .6s ease,background .2s ease}.project-item:not(.is-disabled):hover{background:var(--accent-soft)}.project-item.is-disabled{opacity:.5;cursor:default}.project-index{font-family:var(--mono);font-size:13px;color:var(--ink-faint);padding-top:8px}.project-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.project-name{font-family:var(--serif);font-weight:700;font-size:1.55rem;color:var(--ink)}.project-visit{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--accent);white-space:nowrap}.project-visit .arrow{transition:transform .2s ease}.project-item:hover .project-visit .arrow{transform:translate(3px)}.project-status-soon{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}.project-desc{margin-top:12px;color:var(--ink-muted);font-size:1rem;line-height:1.65;max-width:600px}.project-meta{margin-top:16px;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--ink-faint)}.footer{padding:76px 24px 56px;border-top:1px solid var(--border)}.footer-inner{max-width:var(--max-width);margin:0 auto}.footer-contact{margin-top:28px;display:flex;flex-direction:column;align-items:flex-start;gap:22px}.footer-btn{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:700;letter-spacing:.01em;color:var(--surface);background:var(--accent);padding:12px 22px;border-radius:4px;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}.footer-btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 14px 28px -14px var(--accent-soft-strong)}.footer-btn-arrow{transition:transform .2s ease}.footer-btn:hover .footer-btn-arrow{transform:translate(3px)}.footer-email-row{display:flex;flex-direction:column;gap:4px}.footer-email-label{font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint)}.footer-email{font-family:var(--serif);font-size:1.2rem;color:var(--ink);border-bottom:1px solid var(--border-strong);padding-bottom:2px;width:fit-content;transition:color .2s ease,border-color .2s ease}.footer-email:hover{color:var(--accent);border-color:var(--accent)}.footer-bottom{margin-top:50px;font-size:13px;color:var(--ink-faint)}@media(max-width:640px){.hero{padding:84px 20px 64px}.about,.projects,.footer{padding-left:20px;padding-right:20px}.nav-inner{padding:14px 20px}.project-item{grid-template-columns:1fr;gap:8px;padding:28px 12px}.project-index{padding-top:0}.hero-tagline{font-size:1.05rem}}
