header.svelte-982zda{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);background:var(--c-bg);border-bottom:1px solid var(--c-faint);opacity:0;transform:translateY(-6px);transition:opacity .6s ease,transform .6s ease;transition-delay:.9s}header.visible.svelte-982zda{opacity:1;transform:none}nav.svelte-982zda{max-width:var(--max-w);margin:0 auto;padding:0 var(--pad-x);height:100%;display:flex;align-items:center;justify-content:space-between}.wordmark.svelte-982zda{font-family:var(--font-body);font-size:1rem;font-weight:500;letter-spacing:-.01em;color:var(--c-text);line-height:1}.nav-links.svelte-982zda{display:flex;gap:2.25rem;align-items:center}button.svelte-982zda{font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);position:relative;transition:color .2s ease;padding-bottom:2px}button.svelte-982zda:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1)}button.svelte-982zda:hover,button.active.svelte-982zda{color:var(--c-text)}button.active.svelte-982zda:after,button.svelte-982zda:hover:after{transform:scaleX(1)}@media (max-width: 580px){.nav-links.svelte-982zda{display:none}}.hero-canvas.svelte-b6k3u8.svelte-b6k3u8{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.hero.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-direction:column;justify-content:center;padding:3rem var(--pad-x) 4rem;position:relative}.hero-inner.svelte-b6k3u8.svelte-b6k3u8{max-width:var(--max-w);margin:0 auto;width:100%}.hero-name.svelte-b6k3u8.svelte-b6k3u8{font-family:var(--font-display);font-weight:300;font-style:italic;font-size:clamp(3.5rem,12vw,13rem);line-height:.92;letter-spacing:-.02em;display:block;margin-bottom:1rem}.hero-motto.svelte-b6k3u8.svelte-b6k3u8{font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--c-muted);margin-bottom:2.5rem;opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease;transition-delay:.5s}.hero-motto.mounted.svelte-b6k3u8.svelte-b6k3u8{opacity:1;transform:none}.name-clip.svelte-b6k3u8.svelte-b6k3u8{display:block;overflow:hidden;padding-bottom:.06em}.name-word.svelte-b6k3u8.svelte-b6k3u8{display:block;animation:svelte-b6k3u8-nameReveal 1s cubic-bezier(.16,1,.3,1) var(--d, 0ms) both}@keyframes svelte-b6k3u8-nameReveal{0%{transform:translateY(105%)}to{transform:none}}.hero-footer.svelte-b6k3u8.svelte-b6k3u8{display:grid;grid-template-columns:190px 1fr;gap:2rem 3rem;width:100%;padding-top:2.5rem;border-top:1px solid var(--c-faint);opacity:0;transform:translateY(12px);transition:opacity .7s ease,transform .7s ease;transition-delay:.65s}.hero-footer.mounted.svelte-b6k3u8.svelte-b6k3u8{opacity:1;transform:none}.hero-meta.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-direction:column;gap:.3rem;padding-top:.1em}.hero-role.svelte-b6k3u8.svelte-b6k3u8{font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--c-muted)}.hero-location.svelte-b6k3u8.svelte-b6k3u8{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted)}.scroll-hint.svelte-b6k3u8.svelte-b6k3u8{position:absolute;bottom:2.5rem;left:var(--pad-x);font-size:1rem;color:var(--c-muted);opacity:0;transition:opacity .6s ease;transition-delay:1.1s;animation:svelte-b6k3u8-drift 2.8s ease-in-out infinite;animation-play-state:paused}.scroll-hint.mounted.svelte-b6k3u8.svelte-b6k3u8{opacity:1;animation-play-state:running}@keyframes svelte-b6k3u8-drift{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}.photo-slider.svelte-b6k3u8.svelte-b6k3u8{width:100%;overflow:hidden;padding-top:var(--nav-h);-webkit-mask-image:linear-gradient(to right,transparent 0%,black 10%,black 90%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 10%,black 90%,transparent 100%)}.slider-track.svelte-b6k3u8.svelte-b6k3u8{display:flex;gap:1rem;padding:2rem 0 .5rem;width:-moz-max-content;width:max-content;animation:svelte-b6k3u8-slider-scroll 28s linear infinite}.slider-track.svelte-b6k3u8.svelte-b6k3u8:hover{animation-play-state:paused}.slider-item.svelte-b6k3u8.svelte-b6k3u8{flex-shrink:0;padding:0;background:none;border:none;cursor:pointer;border-radius:12px;overflow:hidden;display:block}.slider-img.svelte-b6k3u8.svelte-b6k3u8{height:260px;width:auto;aspect-ratio:3 / 4;-o-object-fit:cover;object-fit:cover;display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .4s cubic-bezier(.16,1,.3,1)}.slider-item.svelte-b6k3u8:hover .slider-img.svelte-b6k3u8{transform:scale(1.04)}@keyframes svelte-b6k3u8-slider-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.fan-overlay.svelte-b6k3u8.svelte-b6k3u8{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;cursor:pointer;animation:svelte-b6k3u8-overlayIn .25s ease both}@keyframes svelte-b6k3u8-overlayIn{0%{opacity:0}to{opacity:1}}.fan-overlay-img.svelte-b6k3u8.svelte-b6k3u8{max-width:min(88vw,520px);max-height:90vh;-o-object-fit:contain;object-fit:contain;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:svelte-b6k3u8-imgIn .35s cubic-bezier(.16,1,.3,1) both}@keyframes svelte-b6k3u8-imgIn{0%{transform:scale(.9);opacity:0}to{transform:none;opacity:1}}section.svelte-b6k3u8.svelte-b6k3u8:not(.hero){padding:var(--section-gap) var(--pad-x);border-top:1px solid var(--c-faint)}.container.svelte-b6k3u8.svelte-b6k3u8{max-width:var(--max-w);margin:0 auto}.section-label.svelte-b6k3u8.svelte-b6k3u8{display:block;font-size:.62rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--c-muted);margin-bottom:3rem}.exp-list.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-direction:column}.exp-item.svelte-b6k3u8.svelte-b6k3u8{display:grid;grid-template-columns:155px 1fr;gap:2rem;padding:2.25rem 0;border-bottom:1px solid var(--c-faint)}.exp-item.svelte-b6k3u8.svelte-b6k3u8:first-child{border-top:1px solid var(--c-faint)}.exp-period.svelte-b6k3u8.svelte-b6k3u8{font-size:.72rem;color:var(--c-muted);font-weight:500;letter-spacing:.04em}.exp-header.svelte-b6k3u8.svelte-b6k3u8{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.55rem}.exp-role.svelte-b6k3u8.svelte-b6k3u8{font-size:1rem;font-weight:700}.exp-sep.svelte-b6k3u8.svelte-b6k3u8{color:var(--c-faint);font-size:.9rem}.exp-company.svelte-b6k3u8.svelte-b6k3u8{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--c-text);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s ease}.exp-company.svelte-b6k3u8.svelte-b6k3u8:hover{color:var(--c-accent)}.exp-logo.svelte-b6k3u8.svelte-b6k3u8{width:22px;height:22px;-o-object-fit:contain;object-fit:contain;border-radius:3px;flex-shrink:0;display:block}.exp-desc.svelte-b6k3u8.svelte-b6k3u8{font-size:.88rem;color:var(--c-muted);line-height:1.65;max-width:520px}.edu-item.svelte-b6k3u8.svelte-b6k3u8{display:grid;grid-template-columns:155px 1fr;gap:2rem;padding:2.25rem 0;border-top:1px solid var(--c-faint);border-bottom:1px solid var(--c-faint)}.edu-period.svelte-b6k3u8.svelte-b6k3u8{font-size:.72rem;color:var(--c-muted);font-weight:500;letter-spacing:.04em;padding-top:.25em}.edu-degree.svelte-b6k3u8.svelte-b6k3u8{display:block;font-size:1rem;font-weight:700;margin-bottom:.55rem}.edu-school.svelte-b6k3u8.svelte-b6k3u8{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--c-text);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s ease}.edu-school.svelte-b6k3u8.svelte-b6k3u8:hover{color:var(--c-accent)}.edu-logo.svelte-b6k3u8.svelte-b6k3u8{width:22px;height:22px;-o-object-fit:contain;object-fit:contain;border-radius:3px;flex-shrink:0}.projects-list.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-direction:column}.project-item.svelte-b6k3u8.svelte-b6k3u8{display:grid;grid-template-columns:72px 1fr 220px;align-items:center;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--c-faint)}.project-item.svelte-b6k3u8.svelte-b6k3u8:first-of-type{border-top:1px solid var(--c-faint)}.project-meta.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-direction:column;gap:.3rem}.project-cat.svelte-b6k3u8.svelte-b6k3u8{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-muted);font-weight:600}.project-year.svelte-b6k3u8.svelte-b6k3u8{font-size:.7rem;color:var(--c-muted);font-weight:400}.project-name.svelte-b6k3u8.svelte-b6k3u8{display:block;font-size:1.05rem;font-weight:700;margin-bottom:.4rem;transition:color .2s ease}.project-item.svelte-b6k3u8:hover .project-name.svelte-b6k3u8{color:var(--c-accent)}.project-desc.svelte-b6k3u8.svelte-b6k3u8{font-size:.875rem;color:var(--c-muted);line-height:1.6;margin-bottom:.85rem}.project-tags.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-wrap:wrap;gap:.3rem}.tag.svelte-b6k3u8.svelte-b6k3u8{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);border:1px solid var(--c-faint);padding:.2em .55em;font-weight:500;transition:border-color .2s ease,color .2s ease}.project-item.svelte-b6k3u8:hover .tag.svelte-b6k3u8{border-color:var(--c-muted);color:var(--c-text)}.project-image-wrap.svelte-b6k3u8.svelte-b6k3u8{position:relative;width:220px;height:138px;overflow:hidden;flex-shrink:0}.project-image.svelte-b6k3u8.svelte-b6k3u8{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.16,1,.3,1)}.project-item.svelte-b6k3u8:hover .project-image.svelte-b6k3u8{transform:scale(1.05)}.project-arrow.svelte-b6k3u8.svelte-b6k3u8{position:absolute;bottom:8px;right:8px;width:28px;height:28px;background:var(--c-bg);color:var(--c-text);display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s ease,color .2s ease}.project-item.svelte-b6k3u8:hover .project-arrow.svelte-b6k3u8{background:var(--c-text);color:var(--c-bg);transform:translate(2px,-2px)}#contact.svelte-b6k3u8.svelte-b6k3u8{min-height:50vh;display:flex;align-items:center}#contact.svelte-b6k3u8 .container.svelte-b6k3u8{width:100%}.contact-inner.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-direction:column;gap:2.5rem}.contact-headline.svelte-b6k3u8.svelte-b6k3u8{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(2.5rem,6vw,5.5rem);line-height:1;letter-spacing:-.01em}.contact-links.svelte-b6k3u8.svelte-b6k3u8{display:flex;flex-wrap:wrap;gap:.5rem 2.5rem}.contact-links.svelte-b6k3u8 a.svelte-b6k3u8{font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);position:relative;padding-bottom:2px;transition:color .2s ease}.contact-links.svelte-b6k3u8 a.svelte-b6k3u8:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1)}.contact-links.svelte-b6k3u8 a.svelte-b6k3u8:hover{color:var(--c-text)}.contact-links.svelte-b6k3u8 a.svelte-b6k3u8:hover:after{transform:scaleX(1)}footer.svelte-b6k3u8.svelte-b6k3u8{display:flex;gap:2rem;align-items:center;padding-top:1rem;border-top:1px solid var(--c-faint);font-size:.72rem;font-weight:500;letter-spacing:.08em;color:var(--c-muted);text-transform:uppercase}@media (max-width: 760px){.project-item.svelte-b6k3u8.svelte-b6k3u8{grid-template-columns:72px 1fr;grid-template-rows:auto auto}.project-image-wrap.svelte-b6k3u8.svelte-b6k3u8{grid-column:1 / -1;width:100%;height:180px;order:-1}}@media (max-width: 640px){.slider-track.svelte-b6k3u8.svelte-b6k3u8{padding-top:1rem;padding-bottom:.25rem}.slider-img.svelte-b6k3u8.svelte-b6k3u8{height:180px}.hero-footer.svelte-b6k3u8.svelte-b6k3u8{grid-template-columns:1fr;gap:1.5rem}.edu-item.svelte-b6k3u8.svelte-b6k3u8,.exp-item.svelte-b6k3u8.svelte-b6k3u8{grid-template-columns:1fr;gap:.5rem}.project-item.svelte-b6k3u8.svelte-b6k3u8{grid-template-columns:1fr}.project-meta.svelte-b6k3u8.svelte-b6k3u8{flex-direction:row;gap:.75rem;align-items:center}}