*,*: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}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}.home{max-width:1100px;margin:0 auto;padding:18vh 48px 10vh}.home-header{margin-bottom:72px}.home-header h1{font-size:2rem;font-weight:600;letter-spacing:-.025em;color:var(--color-text);line-height:1.2}.home-subtitle{font-family:var(--font-rounded);font-size:.9375rem;font-weight:400;color:var(--color-text-secondary);margin-top:8px}.tripadvisor-link{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px;transition:color .2s ease}.tripadvisor-link:hover{color:var(--color-text)}.home-socials{display:flex;align-items:center;gap:6px;margin-top:12px}.social-link{font-family:var(--font-rounded);font-size:.8125rem;font-weight:400;color:var(--color-text-tertiary);text-decoration:none;transition:color .2s ease}.social-link:hover{color:var(--color-text)}.social-sep{font-size:.75rem;color:var(--color-text-tertiary)}.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}.other-work-section{margin-top:48px}.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:4px;padding-left:16px}.project-row--no-link{cursor:default}.project-list{list-style:none;display:flex;flex-direction:column;gap:4px}.project-row{position:relative;display:flex;align-items:baseline;gap:16px;padding:14px 16px;text-decoration:none;color:inherit;border-radius:14px;transform:translate(0);background:transparent;transition:background .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),backdrop-filter .3s cubic-bezier(.4,0,.2,1)}.project-row:hover,.project-row--active{background:linear-gradient(135deg,#fff9,#ffffff40);-webkit-backdrop-filter:blur(16px) saturate(1.8);backdrop-filter:blur(16px) saturate(1.8);box-shadow:inset 0 0 0 1px #ffffff80,0 4px 16px #0000000f,0 1px 3px #0000000a;transform:translate(4px)}.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{font-size:.9375rem;font-weight:500;color:var(--color-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.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 .18s cubic-bezier(.4,0,.2,1),filter .18s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1);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(28px);transform:scale(.96)}.preview-exit{opacity:0;filter:blur(28px);transform:scale(1.03)}@keyframes page-enter{0%{opacity:0;transform:translateY(18px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.project-page{max-width:900px;margin:0 auto;padding:20vh 48px 10vh;animation:page-enter .45s cubic-bezier(.22,1,.36,1) both}.back-link{display:inline-block;font-size:.875rem;font-weight:400;color:var(--color-text-secondary);text-decoration:none;margin-bottom:48px;transition:color .2s ease}.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:12px}.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:48px;transition:color .2s ease}.project-visit-link:hover{color:var(--color-text)}.project-mockups{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;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:32px;background:#ffffff73;-webkit-backdrop-filter:blur(12px) saturate(1.6);backdrop-filter:blur(12px) saturate(1.6);box-shadow:inset 0 0 0 1px #ffffff80,0 1px 3px #0000000a,0 4px 12px #0000000d}.bento-text-content{display:flex;flex-direction:column;gap:8px}.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:24px}}
