@import "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400&display=swap";:root{--page-width:390px;--page-padding:10px;--header-height:80px;--frame-radius:10px;--pill-radius:55px;--motion-ease-standard:cubic-bezier(.4, 0, .2, 1);--motion-ease-emphasized:cubic-bezier(.22, 1, .36, 1);--motion-ease-soft:cubic-bezier(.16, 1, .3, 1);--motion-duration-fast:.18s;--motion-duration-medium:.32s;--motion-duration-slow:.56s;--motion-stagger:70ms;--route-transition-duration:.3s;--route-transition-delay:.3s;--route-transition-ease:ease-in-out;--desktop-carousel-height-multiplier:1.37895;--surface:#fff;--text:#000;--icon-ink:#282828;--muted:#999;--surface-elevated:#ffffffdb;--shadow:0 10px 26px #00000014;--shadow-floating:0 18px 42px #00000021;--font-mono:"Geist Mono", "SF Mono", "SFMono-Regular", ui-monospace, "Roboto Mono", Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box}html{background:var(--surface);scroll-behavior:smooth;scrollbar-gutter:stable}body{background:var(--surface);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:12px;font-weight:400;line-height:1.35}button,input,textarea,select{font:inherit}img,video{object-fit:cover;width:100%;height:100%;display:block}.cropped-media{width:100%;height:100%;position:relative;overflow:hidden}.cropped-media-image{max-width:none;position:absolute}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#root{isolation:isolate;min-height:100vh}.app-shell{justify-content:center;width:100%;min-height:100vh;display:flex;position:relative}.app-frame{isolation:isolate;width:min(100%, var(--page-width));min-height:100vh;position:relative}.page{isolation:isolate;width:100%;min-height:calc(100vh - var(--header-height));padding:0 var(--page-padding) var(--page-padding);background:var(--surface);backface-visibility:hidden;transform-origin:top;view-transition-name:route-shell;will-change:opacity, transform;position:relative}.page.project-page{min-height:100vh}.page>:not(.page-sequence){--page-reveal-index:0;opacity:1;transform:none}.page>:first-child{--page-reveal-index:0}.page>:nth-child(2){--page-reveal-index:1}.page>:nth-child(3){--page-reveal-index:2}.page>:nth-child(4){--page-reveal-index:3}.page-sequence>*{--page-sequence-index:0;opacity:1;transform:none}.page-sequence>:first-child{--page-sequence-index:0}.page-sequence>:nth-child(2){--page-sequence-index:1}.page-sequence>:nth-child(3){--page-sequence-index:2}.page-sequence>:nth-child(4){--page-sequence-index:3}.page-sequence>:nth-child(5){--page-sequence-index:4}.page-sequence>:nth-child(6){--page-sequence-index:5}.page-header{z-index:20;height:var(--header-height);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;justify-content:center;align-items:flex-end;display:flex;position:sticky;top:0}.icon-pill{border-radius:var(--pill-radius);background:var(--surface);cursor:pointer;appearance:none;width:50px;height:30px;color:inherit;transition:transform var(--motion-duration-medium) var(--motion-ease-emphasized), box-shadow var(--motion-duration-fast) var(--motion-ease-standard), background-color var(--motion-duration-fast) var(--motion-ease-standard);will-change:transform, box-shadow;border:0;place-items:center;padding:0;text-decoration:none;display:grid;transform:translateZ(0);box-shadow:0 0 10px #0000001a}.icon-pill:hover,.icon-pill:active{transform:translateZ(0)}.icon-pill:focus-visible,.project-tile:focus-visible{outline:1px solid var(--text);outline-offset:2px}.icon{place-items:center;width:22px;height:22px;display:grid}.icon-glyph{width:100%;height:100%;color:var(--icon-ink);transform-origin:50%;transition:transform var(--motion-duration-medium) var(--motion-ease-soft);display:block}.icon-glyph.is-close{transform:rotate(45deg)}:root[data-icon-transition] .icon-glyph{transition:none}@supports (view-transition-name:icon-toggle){::view-transition-group(icon-toggle){animation-duration:.3s;animation-timing-function:ease-in-out}::view-transition-old(icon-toggle){transform-origin:50%;animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:both}::view-transition-new(icon-toggle){transform-origin:50%;animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:both}:root[data-icon-transition=opening]::view-transition-old(icon-toggle){animation-name:icon-rotate-open-old}:root[data-icon-transition=opening]::view-transition-new(icon-toggle){animation-name:icon-rotate-open-new}:root[data-icon-transition=closing]::view-transition-old(icon-toggle){animation-name:icon-rotate-close-old}:root[data-icon-transition=closing]::view-transition-new(icon-toggle){animation-name:icon-rotate-close-new}}@keyframes icon-rotate-open-old{0%{opacity:1;transform:rotate(0)}to{opacity:0;transform:rotate(45deg)}}@keyframes icon-rotate-open-new{0%{opacity:0;transform:rotate(0)}to{opacity:1;transform:rotate(45deg)}}@keyframes icon-rotate-close-old{0%{opacity:1;transform:rotate(45deg)}to{opacity:0;transform:rotate(0)}}@keyframes icon-rotate-close-new{0%{opacity:0;transform:rotate(45deg)}to{opacity:1;transform:rotate(0)}}.main-intro{text-align:center;justify-content:center;align-items:center;height:351px;padding:80px 10px;display:flex}.main-intro p,.about-block p,.timeline-item p,.project-meta p{margin:0}.project-list,.project-gallery{gap:10px;display:grid}.project-tile{aspect-ratio:3/4;border-radius:var(--frame-radius);width:100%;box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation;transition:transform var(--motion-duration-medium) var(--motion-ease-emphasized), box-shadow var(--motion-duration-medium) var(--motion-ease-soft);will-change:transform, box-shadow;background:#f1f1f1;border:0;padding:0;position:relative;overflow:hidden;transform:translateZ(0)}.project-tile-shared-frame{border-radius:inherit;background:inherit;position:absolute;inset:0;overflow:hidden}.project-tile:active{transform:translateY(-1px)scale(.996)}.project-tile-media{opacity:0;transition:opacity var(--motion-duration-medium) var(--motion-ease-standard);will-change:opacity;position:absolute;inset:0}.project-tile-media.is-active{opacity:1}.project-tile-media img,.project-tile-media video,.project-tile-media .cropped-media-image,.project-frame img,.project-frame video,.project-frame .cropped-media-image{transition:transform .9s var(--motion-ease-soft);will-change:transform;transform:scale(1.02)}.project-tile-media.is-active img,.project-tile-media.is-active video,.project-tile-media.is-active .cropped-media-image{transform:scale(1)}.project-frame:hover img,.project-frame:hover video,.project-frame:hover .cropped-media-image{transform:scale(1.03)}.project-tile-controls{z-index:2;justify-content:center;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:20px;left:20px;right:20px}.dots-pill{border-radius:var(--pill-radius);min-width:90px;height:30px;box-shadow:var(--shadow);transition:transform var(--motion-duration-medium) var(--motion-ease-emphasized), box-shadow var(--motion-duration-medium) var(--motion-ease-soft);background:#fff;justify-content:center;align-items:center;gap:7px;padding:5px 10px;display:inline-flex}.dot{width:5px;height:5px;transition:background-color var(--motion-duration-fast) var(--motion-ease-standard), transform var(--motion-duration-fast) var(--motion-ease-standard);background:#d0d0d0;border-radius:999px}.dot.is-active{background:var(--text);transform:scale(1.05)}.about-content{text-align:center;gap:80px;padding:80px 40px;display:grid}.about-block{gap:0;display:grid}.about-intro{white-space:pre-line}.timeline{gap:30px;display:grid}.timeline-item{gap:0;display:grid}.muted{color:var(--muted)}.services-copy,.contact-copy,.project-description{white-space:pre-line}.project-meta{text-align:center;gap:40px;padding:80px 40px;display:grid}.project-title-group{gap:10px;display:grid}.project-description{color:var(--muted)}.project-page>.project-page-toolbar-layer,.project-page>.project-hero-stack{opacity:1;animation:none;transform:none}.project-page-toolbar-layer{z-index:12;pointer-events:none;position:absolute;inset:10px}.project-page-toolbar{width:100%;height:var(--header-height);pointer-events:none;justify-content:center;align-items:flex-end;display:flex;position:sticky;top:0}.project-page-toolbar .icon-pill{pointer-events:auto}.project-hero-stack{position:relative}.project-hero{aspect-ratio:370/493;border-radius:var(--frame-radius);isolation:isolate;background:#f1f1f1;width:100%;position:relative;overflow:hidden}.project-hero-media,.project-hero-fade{border-radius:inherit;position:absolute;inset:0}.project-hero-media{background:inherit;overflow:hidden}.project-hero-fade{pointer-events:none;background:linear-gradient(#fff0 49.9%,#fff 100%)}.project-years{color:var(--muted)}.project-frame{border-radius:var(--frame-radius);box-shadow:var(--shadow);transition:transform var(--motion-duration-medium) var(--motion-ease-emphasized), box-shadow var(--motion-duration-medium) var(--motion-ease-soft);will-change:transform, box-shadow;background:#f1f1f1;position:relative;overflow:hidden;transform:translateZ(0)}.project-page .project-frame{box-shadow:none;background:#f1f1f1;transition:none}.project-frame:hover{box-shadow:var(--shadow-floating);transform:translateY(-3px)}.project-page .project-frame:hover{box-shadow:none;transform:none}@supports (view-transition-name:route-shell){::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-group(route-shell){animation-duration:calc(var(--route-transition-duration) + var(--route-transition-delay));animation-timing-function:linear}::view-transition-old(route-shell){will-change:opacity, transform;transform-origin:top;animation-fill-mode:both}::view-transition-new(route-shell){will-change:opacity, transform;transform-origin:top;animation-fill-mode:both}::view-transition-old(route-shell){animation-duration:var(--route-transition-duration);animation-name:route-fade-through-out;animation-timing-function:ease-out}::view-transition-new(route-shell){animation-duration:var(--route-transition-duration);animation-delay:var(--route-transition-delay);animation-name:route-fade-through-in;animation-timing-function:var(--route-transition-ease)}}@keyframes route-fade-through-in{0%{opacity:0}to{opacity:1}}@keyframes route-fade-through-out{0%{opacity:1}to{opacity:0}}@media (width>=900px){.app-shell.is-home-route{justify-content:stretch}.app-frame.is-home-route{width:100%;max-width:none}.home-page.is-desktop-carousel{min-height:calc(100vh - var(--header-height));flex-direction:column;display:flex;overflow:hidden}.home-page.is-desktop-carousel .main-intro{flex:none;height:auto;min-height:clamp(170px,24vh,230px);padding:48px 10px 38px}.desktop-project-stage{min-height:0;margin:0 calc(var(--page-padding) * -1);flex:auto;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.desktop-project-rail{width:100%;height:var(--desktop-rail-height);outline:none;position:relative;overflow:hidden}.desktop-project-rail:focus-visible{outline:1px solid var(--text);outline-offset:-1px}.desktop-carousel-tile{width:var(--desktop-tile-width);aspect-ratio:285/393;margin-top:calc(var(--desktop-tile-width) * var(--desktop-carousel-height-multiplier) / -2);margin-left:calc(var(--desktop-tile-width) / -2);transform-origin:50%;will-change:transform, opacity;position:absolute;top:50%;left:50%}.desktop-carousel-tile:focus-visible{z-index:40!important}.desktop-carousel-tile:active{box-shadow:var(--shadow-floating)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.icon-pill,.icon-glyph,.project-tile,.project-frame,.project-tile-media,.project-tile-media img,.project-tile-media video,.project-tile-media .cropped-media-image,.project-frame img,.project-frame video,.project-frame .cropped-media-image,.dots-pill,.dot{transition:none}.page>:not(.page-sequence),.page-sequence>*{opacity:1;transform:none}::view-transition-old(route-shell){animation:none}::view-transition-new(route-shell){animation:none}::view-transition-old(icon-toggle){animation:none}::view-transition-new(icon-toggle){animation:none}}
