*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #f5f4f0;--color-text: #1a1a1a;--color-text-secondary: #888;--color-text-tertiary: #bbb;--color-border: #ddd;--font: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-rounded: "SF Pro Rounded", "SF Pro Display", ui-rounded, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-18: 72px;--ease-spring: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(.4, 0, .2, 1);--glass-bg: rgba(255, 255, 255, .45);--glass-backdrop: blur(12px) saturate(1.6);--glass-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5), 0 1px 3px rgba(0, 0, 0, .04), 0 4px 12px rgba(0, 0, 0, .05);--glass-strong-bg: linear-gradient( 135deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, .25) 100% );--glass-strong-backdrop: blur(16px) saturate(1.8);--glass-strong-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5), 0 4px 16px rgba(0, 0, 0, .06), 0 1px 3px rgba(0, 0, 0, .04)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop);box-shadow:var(--glass-shadow)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);background-color:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh}@keyframes page-enter{0%{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes page-exit{0%{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(-8px);filter:blur(4px)}}@keyframes email-text-in{0%{opacity:0;transform:translateY(5px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.home{max-width:1100px;margin:0 auto;padding:10vh 48px}.home--instant .home-header h1,.home--instant .home-subtitle,.home--instant .home-socials,.home--instant .availability-badge,.home--instant .email-btn__text,.home--instant .project-list>li,.home--instant .other-work-section,.home--instant .home-right{animation:none;opacity:1;transform:none;filter:none}.home--exiting{animation:page-exit .36s var(--ease-out) both;pointer-events:none}.home-header{margin-bottom:var(--space-18)}.home-header h1{font-size:2rem;font-weight:600;letter-spacing:-.025em;color:var(--color-text);line-height:1.2;animation:page-enter .72s var(--ease-spring) both}.home-subtitle{font-family:var(--font-rounded);font-size:.9375rem;font-weight:400;color:var(--color-text-secondary);margin-top:var(--space-2);animation:page-enter .72s var(--ease-spring) 90ms both}.subtitle-link{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px;transition:color .2s var(--ease-out)}@media(hover:hover){.subtitle-link:hover{color:var(--color-text)}}.home-socials{display:flex;align-items:center;gap:10px;margin-top:var(--space-3);animation:page-enter .72s var(--ease-spring) .17s both;position:relative;z-index:100}.social-link{font-family:var(--font-rounded);font-size:.8125rem;font-weight:400;color:var(--color-text-tertiary);text-decoration:none;transition:color .2s var(--ease-out)}@media(hover:hover){.social-link:hover{color:var(--color-text)}}.social-sep{font-size:.75rem;color:var(--color-text-tertiary)}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}@keyframes shimmer{0%{transform:translate(-100%) skew(-12deg)}to{transform:translate(300%) skew(-12deg)}}.availability-badge{display:inline-flex;align-items:center;gap:7px;margin-top:var(--space-3);padding:4px 10px;font-family:var(--font-rounded);font-size:.8125rem;font-weight:400;color:var(--color-text-secondary);border-radius:999px;border:1px solid var(--color-border);position:relative;overflow:hidden;cursor:default;transition:color .25s var(--ease-out),border-color .25s var(--ease-out),background .3s var(--ease-out),box-shadow .3s var(--ease-out);animation:page-enter .72s var(--ease-spring) .24s both}.availability-badge:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.55) 50%,transparent 60%);transform:translate(-100%) skew(-12deg);pointer-events:none}@media(hover:hover){.availability-badge:hover{color:var(--color-text);border-color:transparent;background:var(--glass-strong-bg);-webkit-backdrop-filter:var(--glass-strong-backdrop);backdrop-filter:var(--glass-strong-backdrop);box-shadow:var(--glass-strong-shadow)}.availability-badge:hover:after{animation:shimmer .55s var(--ease-out) forwards}.availability-badge:hover .availability-dot{animation-duration:.8s}}.availability-dot{width:7px;height:7px;border-radius:50%;background:#6ab07a;flex-shrink:0;animation:dot-pulse 2.4s ease-in-out infinite}.email-btn{background:none;border:none;cursor:pointer;padding:3px 7px;margin:-3px -7px;border-radius:8px;position:relative;text-transform:capitalize;transition:color .2s var(--ease-out),background .25s var(--ease-out),box-shadow .25s var(--ease-out)}.email-btn__text{display:inline-block;animation:email-text-in .25s var(--ease-spring) both}.gh-wrap{position:relative;display:inline-block}.gh-link{font-family:inherit;font-size:inherit;color:inherit;text-decoration:none;transition:color .2s var(--ease-out)}.gh-popover{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%) scale(.82);transform-origin:top center;opacity:0;filter:blur(10px);pointer-events:none;z-index:2147483647;isolation:isolate;will-change:transform,opacity,filter;transition:opacity .28s var(--ease-out),transform .4s var(--ease-spring),filter .32s var(--ease-out)}@media(hover:hover){.gh-wrap:hover .gh-link{color:var(--color-text)}.gh-wrap:hover .gh-popover{opacity:1;transform:translate(-50%) scale(1);filter:blur(0);pointer-events:auto}}.gh-card{width:240px;padding:10px;border-radius:12px;background:#fff;box-shadow:0 24px 48px #0000001a,0 12px 24px #0000000f,0 4px 8px #0000000a,inset 0 0 0 1px #0000000f}.gh-grid{display:flex;gap:2px;margin-bottom:10px}.gh-grid__col{display:flex;flex-direction:column;gap:2px;flex:1}.gh-cell{width:100%;aspect-ratio:1 / 1;border-radius:2px;background:#ebedef;transition:transform .2s var(--ease-spring)}.gh-cell--l1{background:#9be9a8}.gh-cell--l2{background:#40c463}.gh-cell--l3{background:#30a14e}.gh-cell--l4{background:#216e39}.gh-cell--future{background:#f3f4f5;opacity:.7}@media(hover:hover){.gh-cell:hover{transform:scale(1.25)}}.gh-profile{display:flex;align-items:center;gap:8px}.gh-profile__avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;background:#ebedef;flex-shrink:0}.gh-profile__text{display:flex;flex-direction:column;min-width:0}.gh-profile__handle{font-family:var(--font-rounded);font-size:.75rem;font-weight:500;color:var(--color-text);line-height:1.2}.gh-profile__bio{font-family:var(--font-rounded);font-size:.6875rem;color:var(--color-text-secondary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gh-card__err{margin-top:6px;font-family:var(--font-rounded);font-size:.6875rem;color:var(--color-text-secondary);text-align:center}.social-wrap{position:relative;display:inline-block}.social-anchor{font:inherit;color:inherit;text-decoration:none;background:none;border:none;padding:0;margin:0;cursor:pointer;transition:color .2s var(--ease-out)}.social-popover{position:absolute;top:calc(100% + 8px);opacity:0;filter:blur(10px);pointer-events:none;z-index:2147483647;isolation:isolate;will-change:transform,opacity,filter;transition:opacity .28s var(--ease-out),transform .4s var(--ease-spring),filter .32s var(--ease-out)}.social-popover--left{left:0;transform:scale(.82);transform-origin:top left}.social-popover--right{right:0;transform:scale(.82);transform-origin:top right}@media(hover:hover){.social-wrap:hover .social-anchor{color:var(--color-text)}.social-wrap:hover .social-popover{opacity:1;transform:scale(1);filter:blur(0);pointer-events:auto}}.social-card{width:232px;padding:12px;border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:10px;box-shadow:0 24px 48px #0000001a,0 12px 24px #0000000f,0 4px 8px #0000000a,inset 0 0 0 1px #0000000f;color:var(--color-text);text-decoration:none;cursor:pointer;transition:transform .25s var(--ease-spring)}@media(hover:hover){.social-wrap:hover .social-card{transform:translateY(-2px)}}.social-popover:before{content:"";position:absolute;left:0;right:0;top:-12px;height:14px}.social-card__profile{display:flex;align-items:center;gap:9px}.social-card__avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#ebedef;flex-shrink:0}.social-card__icon{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#f3f4f5;color:var(--color-text-secondary)}.social-card__icon svg{width:17px;height:17px}.social-card__text{display:flex;flex-direction:column;min-width:0;gap:1px}.social-card__name{font-family:var(--font-rounded);font-size:.75rem;font-weight:500;color:var(--color-text);line-height:1.2}.social-card__sub{font-family:var(--font-rounded);font-size:.6875rem;color:var(--color-text-secondary);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.social-card__glyph{width:16px;height:16px;margin-left:auto;flex-shrink:0}.social-card--x .social-card__glyph{color:#0f0f0f}.social-card--linkedin .social-card__glyph{color:#0a66c2}.social-card__cta{font-family:var(--font-rounded);font-size:.6875rem;font-weight:500;color:var(--color-text-secondary);padding-top:9px;border-top:1px solid rgba(0,0,0,.07);display:flex;align-items:center;gap:4px}.social-card--x .social-card__cta{color:#0f0f0f}.social-card--linkedin .social-card__cta{color:#0a66c2}.social-card__cta-arrow{display:inline-block;transition:transform .3s var(--ease-spring)}@media(hover:hover){.social-wrap:hover .social-card__cta-arrow{transform:translate(2px,-2px)}}.social-variant-reveal .social-card{position:relative;overflow:visible}@media(hover:hover){.social-variant-reveal .social-card__profile,.social-variant-reveal .social-card__cta{opacity:0;transform:translateY(8px);transition:opacity .3s var(--ease-out),transform .4s var(--ease-spring)}.social-variant-reveal .social-wrap:hover .social-card__profile{opacity:1;transform:translateY(0);transition-delay:.08s}.social-variant-reveal .social-wrap:hover .social-card__cta{opacity:1;transform:translateY(0);transition-delay:.18s}}.social-card__doodle{display:none}.social-variant-reveal .social-card__doodle{display:block;position:absolute;inset:0;pointer-events:none;z-index:3;color:var(--doodle, #f59e0b)}.social-variant-reveal .social-card--x{--doodle: #1d9bf0}.social-variant-reveal .social-card--linkedin{--doodle: #0a66c2}.social-variant-reveal .social-card--email{--doodle: #ea4335}.social-variant-reveal .doodle{position:absolute}.social-variant-reveal .social-card--x .doodle--star{left:140px;top:22px;width:18px;height:18px;transform:scale(0) rotate(-20deg);transform-origin:center}.social-variant-reveal .social-card--x .doodle--arrow{left:4px;top:37px;width:48px;height:34px}.social-variant-reveal .social-card--linkedin .doodle--ring{left:5px;top:5px;width:42px;height:42px}.social-variant-reveal .social-card--linkedin .doodle--check{left:78px;top:54px;width:22px;height:22px}.social-variant-reveal .social-card--email .doodle--squiggle{left:49px;top:41px;width:172px;height:11px}.social-variant-reveal .social-card--email .doodle--circle{left:-6px;bottom:3px;width:104px;height:30px}.social-variant-reveal .doodle path{stroke-dasharray:1;stroke-dashoffset:1}@media(hover:hover){.social-variant-reveal .doodle path{transition:stroke-dashoffset .5s var(--ease-out)}.social-variant-reveal .doodle--star{transition:transform .45s var(--ease-spring)}.social-variant-reveal .social-wrap:hover .doodle path{stroke-dashoffset:0}.social-variant-reveal .social-wrap:hover .doodle--star{transform:scale(1) rotate(0);transition-delay:.3s}.social-variant-reveal .social-wrap:hover .doodle--star path,.social-variant-reveal .social-wrap:hover .doodle--squiggle path,.social-variant-reveal .social-wrap:hover .doodle--ring path{transition-delay:.3s}.social-variant-reveal .social-wrap:hover .doodle--arrow path,.social-variant-reveal .social-wrap:hover .doodle--circle path,.social-variant-reveal .social-wrap:hover .doodle--check path{transition-delay:.52s}}.home-content{display:flex;align-items:flex-start;gap:80px}.home-left{flex:1;min-width:0}.home-right{width:400px;flex-shrink:0;position:sticky;top:20vh;display:flex;align-items:flex-start;justify-content:center;animation:page-enter .8s var(--ease-spring) .3s both}.other-work-section{margin-top:var(--space-12);animation:page-enter .65s var(--ease-spring) .49s both}.other-work-heading{font-family:var(--font-rounded);font-size:.75rem;font-weight:400;color:var(--color-text-tertiary);letter-spacing:.04em;text-transform:lowercase;margin-bottom:var(--space-1);padding-left:var(--space-4)}.project-row--no-link{cursor:default}.project-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.project-list>li{animation:page-enter .65s var(--ease-spring) both;animation-delay:calc(.26s + var(--i, 0) * 55ms)}.other-work-section .project-list>li{animation-delay:calc(.52s + var(--i, 0) * 55ms)}.project-row{position:relative;display:flex;align-items:baseline;gap:var(--space-4);padding:14px var(--space-4);text-decoration:none;color:inherit;border-radius:14px;transform:translate(0);background:transparent;transition:background .35s var(--ease-out),transform .4s var(--ease-spring),box-shadow .35s var(--ease-out)}@media(hover:hover){.project-row:hover,.project-row--active{background:var(--glass-strong-bg);-webkit-backdrop-filter:var(--glass-strong-backdrop);backdrop-filter:var(--glass-strong-backdrop);box-shadow:var(--glass-strong-shadow);transform:translate(8px)}.soon-wrap:hover,.soon-wrap.project-row--active{background:#00000006;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;transform:none}}.soon-wrap{position:relative;z-index:1000}.project-list>li:has(>.soon-wrap){animation:none;opacity:1;position:relative;z-index:1000}.soon-popover{position:absolute;bottom:calc(100% + 8px);left:var(--space-4, 16px);width:240px;padding:12px;border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:8px;box-shadow:0 24px 48px #0000001a,0 12px 24px #0000000f,0 4px 8px #0000000a,inset 0 0 0 1px #0000000f;transform:scale(.82);transform-origin:bottom left;opacity:0;filter:blur(10px);pointer-events:none;z-index:2147483647;isolation:isolate;will-change:transform,opacity,filter;transition:opacity .28s var(--ease-out),transform .4s var(--ease-spring),filter .32s var(--ease-out)}@media(hover:hover){.soon-wrap:hover .soon-popover{opacity:1;transform:scale(1);filter:blur(0);pointer-events:auto}}.soon-card__head{display:flex;align-items:center;gap:7px;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.07)}.soon-card__lock{color:var(--color-text-secondary);flex-shrink:0;margin-top:-1px}.soon-card__label{font-family:var(--font-rounded);font-size:.625rem;font-weight:600;letter-spacing:.18em;color:var(--color-text-secondary)}.soon-card__stamp{margin-left:auto;font-family:var(--font-rounded);font-size:.5625rem;font-weight:600;letter-spacing:.14em;color:#c5363b;border:1px solid rgba(197,54,59,.4);border-radius:4px;padding:2px 5px;transform:rotate(-4deg)}.soon-card__title{font-family:var(--font-rounded);font-size:.875rem;font-weight:500;color:var(--color-text);letter-spacing:.01em}.soon-card__redactions{display:flex;flex-direction:column;gap:5px;padding:2px 0}.soon-redact{height:9px;border-radius:2px;background:#00000052;position:relative;overflow:hidden}.soon-redact:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transform:translate(-100%)}.soon-wrap:hover .soon-redact:after{animation:soon-sheen 2.4s ease-in-out infinite}.soon-redact:nth-child(2):after{animation-delay:.18s}.soon-redact:nth-child(3):after{animation-delay:.36s}@keyframes soon-sheen{0%{transform:translate(-100%)}60%,to{transform:translate(100%)}}.soon-card__body{font-family:var(--font-rounded);font-size:.75rem;font-weight:400;color:var(--color-text-secondary);letter-spacing:.01em;line-height:1.45}.project-index{font-family:var(--font-rounded);font-size:.75rem;font-weight:400;color:var(--color-text-tertiary);flex-shrink:0;width:20px;position:relative;top:1px;transition:color .3s var(--ease-out)}.project-index__num{display:inline-block;transition:opacity .25s var(--ease-out),transform .3s var(--ease-spring)}.project-index:after{content:"→";position:absolute;left:0;top:0;opacity:0;transform:translate(-5px);transition:opacity .25s var(--ease-out),transform .3s var(--ease-spring)}@media(hover:hover){.project-row:hover .project-index,.project-row--active .project-index{color:var(--color-text-secondary)}.project-row:not(.project-row--external):not(.project-row--no-link):hover .project-index__num{opacity:0;transform:translate(5px)}.project-row:not(.project-row--external):not(.project-row--no-link):hover .project-index:after{opacity:1;transform:translate(0)}}.project-info{display:flex;flex-direction:column;gap:2px}.project-row__arrow{margin-left:auto;align-self:center;font-size:.9375rem;line-height:1;color:var(--color-text-tertiary);opacity:0;transform:translate(-4px,4px);transition:opacity .3s var(--ease-out),transform .35s var(--ease-spring),color .3s var(--ease-out)}@media(hover:hover){.project-row--external:hover .project-row__arrow{opacity:1;transform:translate(0);color:var(--color-text-secondary)}}.project-name{display:flex;align-items:center;gap:6px;font-size:.9375rem;font-weight:500;color:var(--color-text)}.project-logo{width:18px;height:18px;object-fit:contain;flex-shrink:0;filter:grayscale(1) opacity(.4);position:relative;top:1px;transition:filter .3s var(--ease-out),transform .4s var(--ease-spring)}@media(hover:hover){.project-row:hover .project-logo,.project-row--active .project-logo{filter:grayscale(1) opacity(.7);transform:scale(1.2);transition:filter .25s var(--ease-out),transform .35s var(--ease-spring)}}.trip-logo path{transform-box:fill-box;transform-origin:center}@keyframes trip-body-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes trip-eye-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@media(hover:hover){.project-row:hover .trip-logo__body,.project-row--active .trip-logo__body{animation:trip-body-in .42s var(--ease-spring) both}.project-row:hover .trip-logo__eye-left,.project-row--active .trip-logo__eye-left{animation:trip-eye-in .35s var(--ease-spring) .13s both}.project-row:hover .trip-logo__eye-right,.project-row--active .trip-logo__eye-right{animation:trip-eye-in .35s var(--ease-spring) .2s both}}@keyframes bright-ray-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.bright-ray{transform-box:fill-box;transform-origin:center}@media(hover:hover){.project-row:hover .bright-ray,.project-row--active .bright-ray{animation:bright-ray-in .2s var(--ease-spring) both;animation-delay:calc(var(--ray-i) * 8ms)}}.br-logo path{transform-box:fill-box;transform-origin:bottom center}@keyframes br-letter-in{0%{transform:translateY(6px);opacity:0}to{transform:translateY(0);opacity:1}}@media(hover:hover){.project-row:hover .br-bg,.project-row--active .br-bg{animation:br-letter-in .38s var(--ease-spring) 0ms both}.project-row:hover .br-B,.project-row--active .br-B{animation:br-letter-in .38s var(--ease-spring) 60ms both}.project-row:hover .br-e1,.project-row--active .br-e1{animation:br-letter-in .38s var(--ease-spring) .11s both}.project-row:hover .br-R,.project-row--active .br-R{animation:br-letter-in .38s var(--ease-spring) .16s both}.project-row:hover .br-e2,.project-row--active .br-e2{animation:br-letter-in .38s var(--ease-spring) .21s both}.project-row:hover .br-a,.project-row--active .br-a{animation:br-letter-in .38s var(--ease-spring) .26s both}.project-row:hover .br-l,.project-row--active .br-l{animation:br-letter-in .38s var(--ease-spring) .31s both}.project-row:hover .br-dot,.project-row--active .br-dot{animation:br-letter-in .38s var(--ease-spring) .36s both}}.sorce-logo{width:15px;height:15px}.sorce-s{stroke:#58c977;stroke-width:14;stroke-dasharray:1;stroke-dashoffset:0}@keyframes sorce-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes sorce-fill-in{0%{fill-opacity:0}to{fill-opacity:1}}@media(hover:hover){.project-row:hover .sorce-s,.project-row--active .sorce-s{animation:sorce-draw .55s var(--ease-out) both,sorce-fill-in .3s var(--ease-out) .4s both}}.land-logo{overflow:visible}.land-logo path{transform-box:fill-box;transform-origin:center}@keyframes land-frame-in{0%{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}@keyframes land-line-in{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes land-arrow-top-in{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes land-arrow-bottom-in{0%{transform:translateY(-60px);opacity:0}to{transform:translateY(0);opacity:1}}@media(hover:hover){.project-row:hover .land-logo__frame,.project-row--active .land-logo__frame{animation:land-frame-in .42s var(--ease-spring) both}.project-row:hover .land-logo__line,.project-row--active .land-logo__line{animation:land-line-in .38s var(--ease-spring) 95ms both}.project-row:hover .land-logo__arrow-top,.project-row--active .land-logo__arrow-top{animation:land-arrow-top-in .38s var(--ease-spring) .19s both}.project-row:hover .land-logo__arrow-bottom,.project-row--active .land-logo__arrow-bottom{animation:land-arrow-bottom-in .38s var(--ease-spring) .19s both}}.project-meta{font-family:var(--font-rounded);font-size:.8125rem;color:var(--color-text-secondary);transition:color .3s var(--ease-out)}@media(hover:hover){.project-row:hover .project-meta,.project-row--active .project-meta{color:var(--color-text)}}.preview-card{width:100%;aspect-ratio:1 / 1;border-radius:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000000a,0 8px 24px #0000000f;opacity:1;filter:blur(0);transform:scale(1);transition:opacity .4s var(--ease-out),filter .4s var(--ease-out),transform .4s var(--ease-spring),background-color .4s var(--ease-out);overflow:hidden}.preview-card:has(.preview-card__img){aspect-ratio:auto}.preview-card__img{width:100%;height:auto;display:block}.preview-label{font-family:var(--font-rounded);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);letter-spacing:.02em}.preview-enter{opacity:0;filter:blur(6px);transform:scale(.97)}.preview-exit{opacity:0;filter:blur(6px);transform:scale(1.01)}.project-page{max-width:1000px;margin:0 auto;padding:10vh 24px;animation:page-enter .45s var(--ease-spring) both}.project-page--exiting{animation:page-exit .36s var(--ease-out) both;pointer-events:none}.back-link{display:inline-block;font-size:.875rem;font-weight:400;color:var(--color-text-secondary);text-decoration:none;margin-bottom:var(--space-12);transition:color .2s var(--ease-out)}@media(hover:hover){.back-link:hover{color:var(--color-text)}}.project-page h1{font-size:2rem;font-weight:600;letter-spacing:-.025em;color:var(--color-text);margin-bottom:var(--space-3)}.project-title{display:flex;align-items:center;gap:var(--space-3)}.project-title-logo{width:auto;height:28px;max-width:44px;object-fit:contain;flex-shrink:0;filter:grayscale(1) opacity(.55);display:block}.project-title-logo.trip-logo{color:#002b11;filter:none}.project-title-logo.land-logo{color:#004d29;filter:none}.project-title-logo.bright-logo{color:#000;filter:none}.project-title-logo.br-logo{filter:none}.project-visit-link{display:inline-block;font-family:var(--font-rounded);font-size:.875rem;font-weight:400;color:var(--color-text-secondary);text-decoration:none;margin-bottom:var(--space-12);transition:color .2s var(--ease-out)}@media(hover:hover){.project-visit-link:hover{color:var(--color-text)}}.project-mockups{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-3);margin-top:0}@keyframes bento-enter{0%{opacity:0;transform:translateY(14px) scale(.98);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.project-mockup-item{border-radius:16px;overflow:hidden;background:#ffffff80;box-shadow:0 1px 3px #0000000a,0 4px 12px #0000000d;min-height:0;animation:bento-enter .6s var(--ease-spring) both;animation-delay:calc(.1s + var(--bento-i, 0) * 80ms)}.project-mockup-img{width:100%;height:100%;object-fit:cover;display:block}.bento-text{display:flex;align-items:center;padding:var(--space-8)}.bento-text-content{display:flex;flex-direction:column;gap:var(--space-2)}.bento-text-heading{font-size:1.125rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text)}.bento-text-body{font-family:var(--font-rounded);font-size:.875rem;font-weight:400;line-height:1.6;color:var(--color-text-secondary)}.project-tagline{font-size:1.125rem;font-weight:400;line-height:1.45;color:var(--color-text-secondary);margin:0 0 var(--space-8);max-width:620px;animation:page-enter .72s var(--ease-spring) 90ms both}.project-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-18);margin:0 0 var(--space-12);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-border);animation:page-enter .72s var(--ease-spring) .16s both}.project-intro-about{font-family:var(--font-rounded);font-size:1rem;line-height:1.65;color:var(--color-text);margin:0}.project-intro-meta{display:flex;flex-direction:column;gap:var(--space-3);margin:0}.project-meta-row{display:grid;grid-template-columns:5rem 1fr;gap:var(--space-3);align-items:baseline;font-size:.875rem;line-height:1.45}.project-meta-row dt{font-family:var(--font-rounded);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:500}.project-meta-row dd{margin:0;color:var(--color-text);font-weight:500}.project-meta-row dd a{color:var(--color-text);text-decoration:none;border-bottom:1px solid var(--color-border);transition:border-color .2s var(--ease-out)}@media(hover:hover){.project-meta-row dd a:hover{border-color:var(--color-text)}}.project-chapter{margin-top:var(--space-12);animation:page-enter .72s var(--ease-spring) .24s both}.project-chapter+.project-chapter{margin-top:var(--space-16, 80px)}.project-chapter-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-6)}.project-chapter-kicker{font-family:var(--font-rounded);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-tertiary)}.project-chapter-title{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text);margin:0}.bento-metric{display:flex;align-items:center;justify-content:center;padding:var(--space-8);text-align:center}.bento-metric-content{display:flex;flex-direction:column;gap:var(--space-1);align-items:center}.bento-metric-value{font-size:3rem;font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--color-text)}.bento-metric-label{font-family:var(--font-rounded);font-size:.875rem;color:var(--color-text-secondary);margin-top:var(--space-2)}.bento-metric-caption{font-family:var(--font-rounded);font-size:.75rem;color:var(--color-text-tertiary)}.project-mockup-item--captioned{background:transparent;box-shadow:none;overflow:visible;display:flex;flex-direction:column;gap:var(--space-2)}.project-mockup-img-wrap{border-radius:16px;overflow:hidden;background:#ffffff80;box-shadow:0 1px 3px #0000000a,0 4px 12px #0000000d;flex:1;min-height:0}.project-mockup-item--captioned .project-mockup-img{height:100%}.bento-image-caption{font-family:var(--font-rounded);font-size:.75rem;color:var(--color-text-tertiary);padding:0 var(--space-2)}.project-credits{display:flex;align-items:baseline;gap:var(--space-3);margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-border);font-family:var(--font-rounded);font-size:.875rem}.project-credits-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.project-credits-list{color:var(--color-text-secondary)}.slab-stack{display:flex;flex-direction:column;gap:40px}.slab-intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6);max-width:720px}.slab-text{display:flex;flex-direction:column;gap:var(--space-2)}.slab-heading{font-size:1.125rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text);margin:0}.slab-body{font-family:var(--font-rounded);font-size:.9rem;line-height:1.6;color:var(--color-text-secondary);margin:0}.slab-bento-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:287px;gap:var(--space-3)}.slab-bento-cell{position:relative;height:100%;animation:bento-enter .6s var(--ease-spring) both;animation-delay:calc(80ms + var(--bento-i, 0) * 60ms)}.slab-bento-card{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:16px;background:linear-gradient(135deg,#00000012,#0000000a);border:1px dashed rgba(0,0,0,.15);overflow:hidden}.slab-bento-cell-label{font-family:var(--font-rounded);font-size:1rem;color:var(--color-text-tertiary);letter-spacing:.06em}.slab-bento-card--image{background:#fff;border:none;box-shadow:0 1px 3px #0000000a,0 4px 12px #0000000d;transition:transform .22s cubic-bezier(.32,.72,.2,1),box-shadow .22s cubic-bezier(.32,.72,.2,1);will-change:transform}.slab-bento-card--image:has(.bento-video):hover{box-shadow:0 6px 18px #00000014,0 18px 48px #0000001a}.slab-bento-card--no-shadow,.slab-bento-card--no-shadow:hover,.slab-bento-card--no-shadow .slab-bento-img--framed{box-shadow:none}.slab-bento-footer{display:block;position:absolute;left:14px;right:14px;font-size:12px;font-weight:400;letter-spacing:-.005em;color:#3c3c4399;line-height:1.35;pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity .22s ease,transform .22s ease}.slab-bento-footer--below{top:calc(100% + 8px)}.slab-bento-footer--above{bottom:calc(100% + 8px);transform:translateY(-2px)}.slab-bento-cell:hover .slab-bento-footer{opacity:1;transform:translateY(0)}.bento-play-badge{position:absolute;bottom:6px;right:6px;width:18px;height:17px;display:inline-flex;align-items:center;justify-content:center;background:transparent;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:2}.bento-play-icon{display:block;width:100%;height:100%}.slab-bento-card--image:hover .bento-play-badge{opacity:0;transform:scale(.92)}.slab-bento-card--image>picture{display:block;width:100%;height:100%}.slab-bento-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:16px}.slab-bento-img--framed{border-radius:0;box-shadow:0 1px 3px #0000000d,0 8px 24px #00000014}.slab-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.slab-metric{display:flex;flex-direction:column;gap:var(--space-1)}@media(max-width:860px){.home{padding:12vh 20px 10vh}.home-content{flex-direction:column;gap:0}.home-right{display:none}.project-page{padding:12vh 20px 10vh}.project-mockups{grid-template-columns:1fr}.project-mockup-item{grid-column:span 1!important}.bento-text{padding:var(--space-6)}.project-intro{grid-template-columns:1fr;gap:var(--space-6)}.project-chapter-title{font-size:1.25rem}.bento-metric-value{font-size:2.25rem}.slab-bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}.slab-bento-cell{grid-column:span 2!important}}
