@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";:root{--paper: #ffffff;--ink: #1a1a1a;--accent: #00994a;--muted: #6b6b6b;--line: #deded8;--font: "Inter", "Helvetica Neue", Arial, sans-serif;--font-headings: "Space Grotesk", "Inter", sans-serif;--ease: cubic-bezier(.22, 1, .36, 1);--gutter: clamp(22px, 4vw, 72px)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-family:var(--font-headings);font-weight:500;line-height:1.05;letter-spacing:-.055em}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%}button{background:none;border:0}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button:disabled{cursor:default}a,button{touch-action:manipulation}.page{padding:140px var(--gutter) 80px;min-height:80svh}.eyebrow{font-size:.75rem;letter-spacing:.065em;text-transform:uppercase;font-weight:500}.muted{color:var(--muted)}.accent{color:var(--accent)}.page-topline{display:flex;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--line)}.display-title{font-size:clamp(64px,11vw,170px);margin:28px 0 65px;letter-spacing:-.07em;line-height:.94}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;border-bottom:1px solid currentColor;padding:10px 0;font-size:1rem}.text-link span:last-child{transition:transform .4s var(--ease)}.text-link:hover span:last-child{transform:translate(4px,-4px)}.pill{border:1px solid var(--line);padding:7px 14px;border-radius:40px;font-size:.875rem}.page-enter{animation:page-enter .85s var(--ease) both}.reveal{animation:page-enter .8s var(--ease) both}@keyframes page-enter{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}::view-transition-old(root){animation:.35s var(--ease) both old-page}::view-transition-new(root){animation:.65s var(--ease) both new-page}@keyframes old-page{to{opacity:0;transform:translateY(-20px)}}@keyframes new-page{0%{opacity:0;transform:translateY(35px)}}.cookie-banner{position:fixed;bottom:18px;left:var(--gutter);right:var(--gutter);z-index:100;background:var(--ink);color:var(--paper);padding:15px 20px;display:flex;justify-content:space-between;align-items:center;gap:22px;box-shadow:0 5px 30px #0001;font-size:.875rem}.cookie-banner>div{display:flex;gap:12px}.cookie-btn{color:var(--paper);padding:7px 16px;border:1px solid #ffffff60;border-radius:30px;font-size:.875rem}.cookie-btn-accept{background:var(--accent);border-color:var(--accent);color:var(--paper)}@media (max-width: 650px){.page{padding-top:112px}.display-title{margin-bottom:40px}.cookie-banner{padding:14px;gap:12px;flex-wrap:wrap}.cookie-banner>span{font-size:.75rem}.cookie-banner>div{margin-left:auto}.page-topline{font-size:.75rem}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.scroll-reveal{opacity:0;translate:0 36px;transition:opacity .9s var(--ease) var(--reveal-delay, 0ms),translate 1.15s var(--ease) var(--reveal-delay, 0ms)}.scroll-reveal.is-revealed{opacity:1;translate:0 0}.display-title,.project-header h1,.contact-heading h1{animation:title-unfold 1.15s var(--ease) both;transform-origin:0% 100%}@keyframes title-unfold{0%{opacity:0;transform:translateY(35px) rotate(2deg);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}.page-topline{animation:line-open 1.1s var(--ease) both}@keyframes line-open{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}.motion-ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0;margin:75px calc(-1 * var(--gutter));color:var(--ink)}.motion-ticker-track{display:flex;width:max-content;animation:ticker-travel 35s linear infinite}.motion-ticker-track>span{display:flex;align-items:center;gap:35px;padding-right:35px;font-family:var(--font-headings);font-size:clamp(30px,5vw,75px);line-height:1;letter-spacing:-.055em}.motion-ticker-track app-living-mark{font-size:.7em}@keyframes ticker-travel{to{transform:translate(-50%)}}.section-mark{display:block;font-size:80px;margin-bottom:30px}.page-ornament{display:inline-block;font-size:.55em;vertical-align:middle;margin-left:.15em}@supports (animation-timeline: view()){.project-hero img,.about-main figure img,.interests-grid figure img{animation:image-drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}@keyframes image-drift{0%{transform:scale(1.025) translateY(-8px)}to{transform:scale(1.025) translateY(8px)}}}@media (max-width: 700px){.scroll-reveal{translate:0 22px}.motion-ticker{margin-top:45px;margin-bottom:45px;padding:18px 0}.motion-ticker-track>span{gap:20px;padding-right:20px}.section-mark{font-size:55px}}@media (prefers-reduced-motion: reduce){.scroll-reveal{opacity:1;translate:none}.motion-ticker-track{animation:none}.display-title,.project-header h1,.contact-heading h1{clip-path:none;transform:none}}.about-main figure{position:relative}.photo-interest img{animation:photo-sway 10s ease-in-out infinite}@keyframes registration-turn{to{transform:rotate(360deg)}}@keyframes photo-sway{50%{transform:translateY(-7px) rotate(.5deg)}}@media (max-width: 759px){:root{--gutter: 24px}html{scroll-padding-top:24px}.page{padding:44px 24px 55px;max-width:560px;margin:auto;min-height:65svh}.page-topline{display:none}.eyebrow{font-size:11px;letter-spacing:0;text-transform:none}.display-title{font-size:38px;line-height:1.15;letter-spacing:-.05em;margin:0 0 30px}.text-link{font-size:13px;gap:20px}.scroll-reveal{translate:0 8px;filter:blur(3px);transition:opacity .8s var(--ease),translate .8s var(--ease),filter .8s var(--ease);transition-delay:var(--reveal-delay, 0ms)}.scroll-reveal.is-revealed{translate:none;filter:blur(0)}.page-enter{animation:mobile-page-enter .8s var(--ease) both}.mobile-intro>*{animation:mobile-intro-enter .8s var(--ease) both}.mobile-intro h1{animation-delay:40ms}.mobile-intro>p{animation-delay:80ms}.mobile-intro>.mobile-current{animation-delay:.12s}.mobile-intro>.intro-links{animation-delay:.16s}a,button{transition:color .22s,transform .22s var(--ease)}button:active,.intro-links a:active,.mobile-inline-link:active{transform:scale(.97);transition-duration:90ms}.motion-ticker{display:none}::view-transition-old(root){animation:mobile-route-out .2s ease both}::view-transition-new(root){animation:mobile-page-enter .65s var(--ease) both}}@keyframes mobile-page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes mobile-intro-enter{0%{opacity:0;filter:blur(4px);transform:translateY(6px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes mobile-route-out{to{opacity:0;transform:translateY(-5px)}}@media (prefers-reduced-motion: reduce){.scroll-reveal,.scroll-reveal.is-revealed{opacity:1;translate:none;filter:none;transition:none}.page-enter,.mobile-intro>*{animation:none}::view-transition-old(root),::view-transition-new(root){animation:none}html{scroll-behavior:auto}}
