:root{--c-primary:#1a1a1a;--c-muted:#999;--c-border:#e5e5e5;--c-bg:#fff;--c-accent:#ccc;--sidebar-w:120px;--topnav-h:56px;--ease-out-expo:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{color:var(--c-primary);background:var(--c-bg);font-family:DM Sans,sans-serif;line-height:1.6}body:before{content:"";pointer-events:none;z-index:9999;opacity:.018;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/256px 256px;position:fixed;inset:0}a{color:inherit;text-decoration:none}.sidebar{width:var(--sidebar-w);z-index:100;background:var(--c-bg);flex-direction:column;gap:32px;height:100vh;padding:48px 24px;display:flex;position:fixed;top:0;left:0}.sidebar-logo{letter-spacing:-.02em;color:var(--c-primary);flex-direction:column;font-family:Domine,serif;font-size:14px;line-height:1.3;transition:opacity .3s;display:flex}.sidebar-logo:hover{opacity:.6}.sidebar-nav{flex-direction:column;gap:20px;list-style:none;display:flex}.sidebar-nav a{color:var(--c-muted);letter-spacing:.01em;font-size:14px;transition:color .3s;display:inline-block;position:relative}.sidebar-nav a:hover{color:var(--c-primary)}.sidebar-nav a.active{color:var(--c-primary);font-weight:700}.sidebar-bottom{color:var(--c-muted);margin-top:auto;font-size:12px}.divider{top:48px;left:var(--sidebar-w);background:var(--c-border);z-index:100;border-radius:1px;width:1px;height:calc(100vh - 96px);position:fixed}.main{margin-left:calc(var(--sidebar-w) + 1px);min-height:100vh}.section{padding:80px 64px}.page-transition{animation:pageEnter .45s var(--ease-out-expo) both}@keyframes pageEnter{0%{opacity:0;filter:blur(4px);transform:translateY(14px)}to{opacity:1;filter:blur();transform:translateY(0)}}.reveal{opacity:0;animation:revealUp .7s var(--ease-out-expo) forwards;transform:translateY(18px)}@keyframes revealUp{to{opacity:1;transform:translateY(0)}}.about{flex-direction:column;justify-content:center;min-height:100vh;display:flex}.about-content{justify-content:space-between;align-items:center;gap:64px;display:flex}.about-text{flex-shrink:0;max-width:560px}.about-carousel{flex-shrink:0;width:300px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 60px calc(100% - 60px),#0000);mask-image:linear-gradient(#0000,#000 60px calc(100% - 60px),#0000)}.about-carousel-track{flex-direction:column;gap:8px;display:flex}.about-carousel-slide{object-fit:cover;border-radius:4px;flex-shrink:0;width:100%;height:200px}.about-carousel-link{z-index:2;cursor:pointer;border-radius:4px;align-items:flex-end;padding:18px 20px;text-decoration:none;display:flex;position:absolute;left:0;right:0;overflow:hidden}.about-carousel-link:before{content:"";opacity:0;transition:opacity .5s var(--ease-out-expo);background:linear-gradient(#0000 45%,#0000008c);position:absolute;inset:0}.about-carousel-link:hover:before{opacity:1}.about-carousel-label{color:#fff;letter-spacing:.02em;opacity:0;transition:opacity .4s var(--ease-out-expo), transform .5s var(--ease-out-expo);align-items:center;gap:8px;font-size:13px;font-weight:500;display:inline-flex;position:relative;transform:translateY(8px)}.about-carousel-link:hover .about-carousel-label{opacity:1;transform:translateY(0)}.about-carousel-label-text{position:relative}.about-carousel-label-text:after{content:"";width:0;height:1px;transition:width .5s var(--ease-out-expo) .1s;background:#ffffffb3;position:absolute;bottom:-3px;left:0}.about-carousel-link:hover .about-carousel-label-text:after{width:100%}.about-carousel-label-arrow{transition:transform .5s var(--ease-out-expo);display:inline-block;transform:translate(-4px)}.about-carousel-link:hover .about-carousel-label-arrow{transform:translate(0)}.about-name{letter-spacing:-.03em;margin-bottom:40px;font-family:Domine,serif;font-size:64px;font-weight:400;line-height:1.1}.about-bio p{color:var(--c-primary);max-width:560px;margin-bottom:20px;font-size:16px;line-height:1.75}.about-bio p:last-child{margin-bottom:0}.about-links{gap:24px;margin-top:40px;display:flex}.about-links a{color:var(--c-muted);background-image:linear-gradient(var(--c-accent), var(--c-accent));transition:color .3s ease, background-size .4s var(--ease-out-expo), gap .35s var(--ease-out-expo);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;align-items:center;gap:0;padding-bottom:2px;font-size:14px;text-decoration:none;display:inline-flex}.about-links a .arrow{width:0;transition:width .35s var(--ease-out-expo), opacity .3s ease;opacity:0;display:inline-block;overflow:hidden}.about-links a:hover{color:var(--c-primary);background-size:100% 1px;background-image:linear-gradient(var(--c-primary), var(--c-primary));gap:6px}.about-links a:hover .arrow{opacity:1;width:16px}.work-heading{letter-spacing:-.02em;margin-bottom:64px;font-family:Domine,serif;font-size:48px;font-weight:400}.work-list{max-width:720px}.work-item{color:var(--c-primary);opacity:0;align-items:baseline;padding:12px 0;text-decoration:none;transition:opacity .5s,transform .5s;display:flex;transform:translateY(12px)}.work-item.visible{opacity:1;transform:translateY(0)}.work-item-title{letter-spacing:-.01em;white-space:nowrap;font-size:16px;font-weight:500;transition:color .3s}.work-item-dots{background-image:radial-gradient(circle, var(--c-accent) 1px, transparent 1px);background-position:0;background-repeat:repeat-x;background-size:10px 2px;flex:1;align-self:center;min-width:20px;height:1px;margin:0 12px}.work-item-tag{color:var(--c-muted);white-space:nowrap;font-size:12px;transition:color .3s}.work-list:hover .work-item.visible{opacity:.35}.work-list:hover .work-item.visible:hover{opacity:1}.work-preview{aspect-ratio:4/3;pointer-events:none;z-index:50;opacity:0;border-radius:6px;width:260px;transition:opacity .2s;position:fixed;overflow:hidden}.work-preview.active{opacity:1}.work-preview-img{object-fit:cover;border-radius:6px;width:100%;height:100%}.project-back{color:var(--c-muted);align-items:center;gap:6px;margin-bottom:48px;font-size:13px;transition:color .3s;display:inline-flex}.project-back:hover{color:var(--c-primary)}.project-back-arrow{transition:transform .3s var(--ease-out-expo)}.project-back:hover .project-back-arrow{transform:translate(-3px)}.project-header{max-width:720px;margin-bottom:48px}.project-title{letter-spacing:-.02em;margin-bottom:16px;font-family:Domine,serif;font-size:48px;font-weight:400;line-height:1.15}.project-meta{color:var(--c-muted);align-items:center;gap:12px;margin-bottom:24px;font-size:13px;display:flex}.project-meta-dot{background:var(--c-accent);border-radius:50%;width:3px;height:3px}.project-tagline{color:var(--c-primary);max-width:560px;font-size:18px;line-height:1.65}.project-images{grid-template-columns:1fr 1fr;gap:12px;max-width:720px;margin-bottom:48px;display:grid}.project-img{object-fit:cover;aspect-ratio:3/2;cursor:pointer;border-radius:4px;width:100%;height:100%;transition:opacity .3s}.project-img:hover{opacity:.85}.lightbox{z-index:10000;cursor:pointer;justify-content:center;align-items:center;padding:48px;display:flex;position:fixed;inset:0}.lightbox:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(32px);background:#ffffff4d;position:absolute;inset:0}.lightbox.closing{opacity:0}.lightbox-img{object-fit:contain;border-radius:4px;max-width:min(900px,100vw - 96px);max-height:calc(100vh - 96px);position:relative}.project-body{max-width:560px;margin-bottom:56px}.project-text{color:var(--c-primary);margin-bottom:20px;font-size:16px;line-height:1.75}.project-text:last-of-type{margin-bottom:32px}.project-link{color:var(--c-muted);background-image:linear-gradient(var(--c-accent), var(--c-accent));transition:color .3s ease, background-size .4s var(--ease-out-expo);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;align-items:center;padding-bottom:2px;font-size:14px;display:inline-flex}.project-link:hover{color:var(--c-primary);background-size:100% 1px;background-image:linear-gradient(var(--c-primary), var(--c-primary))}.project-footer{border-top:1px solid var(--c-border);flex-direction:column;gap:28px;max-width:560px;padding-top:32px;display:flex}.project-detail-label{text-transform:uppercase;letter-spacing:.08em;color:var(--c-muted);margin-bottom:8px;font-size:11px;font-weight:500}.project-detail p{color:var(--c-primary);font-size:14px;line-height:1.7}.contact{max-width:720px;padding-top:120px;padding-bottom:120px}.contact-heading{letter-spacing:-.02em;margin-bottom:24px;font-family:Domine,serif;font-size:40px;font-weight:400}.contact-text{color:var(--c-muted);max-width:480px;margin-bottom:32px;font-size:16px;line-height:1.75}.contact-links{flex-direction:column;gap:14px;display:flex}.contact-links a{color:var(--c-muted);background-image:linear-gradient(var(--c-accent), var(--c-accent));width:fit-content;transition:color .3s ease, background-size .4s var(--ease-out-expo), gap .35s var(--ease-out-expo);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;align-items:center;gap:0;padding-bottom:2px;font-size:14px;text-decoration:none;display:inline-flex}.contact-links a .arrow{width:0;transition:width .35s var(--ease-out-expo), opacity .3s ease;opacity:0;display:inline-block;overflow:hidden}.contact-links a:hover{color:var(--c-primary);background-size:100% 1px;background-image:linear-gradient(var(--c-primary), var(--c-primary));gap:6px}.contact-links a:hover .arrow{opacity:1;width:16px}.topnav{display:none}@media (width<=768px){.sidebar,.divider{display:none}.topnav{height:var(--topnav-h);border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;padding:0 24px;display:flex}.topnav-logo{font-family:Domine,serif;font-size:18px}.topnav-links{gap:20px;list-style:none;display:flex}.topnav-links a{color:var(--c-muted);font-size:13px;transition:color .3s;position:relative}.topnav-links a:hover{color:var(--c-primary)}.topnav-links a.active{color:var(--c-primary);font-weight:700}.main{margin-left:0}.section{padding:48px 24px}.about{min-height:calc(100vh - var(--topnav-h));justify-content:flex-start;padding-top:40px}.about-content{flex-direction:column;gap:40px}.about-carousel{width:100%}.about-name{margin-bottom:28px;font-size:40px}.about-bio p{font-size:15px}.work-heading{margin-bottom:40px;font-size:36px}.work-preview{display:none}.work-list:hover .work-item.visible{opacity:1}.contact-heading,.project-title{font-size:32px}.project-tagline{font-size:16px}.project-images{grid-template-columns:1fr}}@media (width<=480px){.about-name{font-size:32px}.work-item-title{font-size:14px}.work-item-tag{font-size:11px}}
