*,*: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(.22, 1, .36, 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(18px);filter:blur(4px)}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(-10px);filter:blur(6px)}}@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 .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 .32s 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 .6s 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 .6s var(--ease-spring) 80ms both}.subtitle-link{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px;transition:color .2s var(--ease-out)}.subtitle-link:hover{color:var(--color-text)}.home-socials{display:flex;align-items:center;gap:10px;margin-top:var(--space-3);animation:page-enter .6s var(--ease-spring) .15s both}.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)}.social-link:hover{color:var(--color-text)}.social-sep{font-size:.75rem;color:var(--color-text-tertiary)}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.35}}@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 .6s var(--ease-spring) .2s 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}.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:hover{background:var(--glass-strong-bg);-webkit-backdrop-filter:var(--glass-strong-backdrop);backdrop-filter:var(--glass-strong-backdrop);box-shadow:var(--glass-strong-shadow)}.email-btn__text{display:inline-block;animation:email-text-in .25s var(--ease-spring) both}.email-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--color-text);color:var(--color-bg);font-family:var(--font-rounded);font-size:.75rem;padding:4px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;text-transform:none;transition:opacity .15s var(--ease-out)}.email-btn:hover .email-tooltip{opacity:1}.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 .7s var(--ease-spring) .28s both}.other-work-section{margin-top:var(--space-12);animation:page-enter .55s var(--ease-spring) .48s 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 .55s var(--ease-spring) both;animation-delay:calc(.22s + var(--i, 0) * 50ms)}.other-work-section .project-list>li{animation-delay:calc(.51s + var(--i, 0) * 50ms)}.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 .3s var(--ease-out),transform .3s var(--ease-spring),box-shadow .3s var(--ease-out)}.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)}.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}.project-info{display:flex;flex-direction:column;gap:2px}.project-name{display:flex;align-items:center;gap:6px;font-size:.9375rem;font-weight:500;color:var(--color-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.project-logo{width:18px;height:18px;object-fit:contain;flex-shrink:0;filter:grayscale(1) opacity(.4);position:relative;top:1px;transition:filter .25s var(--ease-out),transform .35s var(--ease-spring)}.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}}.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}.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}}.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}.mt-logo path{transform-box:fill-box;transform-origin:center}@keyframes mt-trail-in{0%{transform:translate(-8px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes mt-body-in{0%{transform:translate(8px);opacity:0}to{transform:translate(0);opacity:1}}.project-row:hover .mt-logo__trail,.project-row--active .mt-logo__trail{animation:mt-trail-in .38s var(--ease-spring) both}.project-row:hover .mt-logo__body,.project-row--active .mt-logo__body{animation:mt-body-in .42s var(--ease-spring) 80ms 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}}.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)}.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 .35s var(--ease-out),filter .35s var(--ease-out),transform .35s var(--ease-spring);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:900px;margin:0 auto;padding:20vh 48px 10vh;animation:page-enter .45s var(--ease-spring) both}.project-page--exiting{animation:page-exit .32s 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)}.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-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)}.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}.project-mockup-item{border-radius:16px;overflow:hidden;background:#ffffff80;box-shadow:0 1px 3px #0000000a,0 4px 12px #0000000d;min-height:0}.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)}@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)}}
