*,*:before,*:after{box-sizing:border-box}:focus{outline:none}@font-face{font-family:Neue Montreal;src:url(/fonts/PPNeueMontreal-Regular.woff2) format("woff2");font-weight:400}@font-face{font-family:Neue Montreal;src:url(/fonts/PPNeueMontreal-SemiBold.woff2) format("woff2");font-weight:600}:root{--primary-gray: rgba(23, 23, 23);--primary-gray-mid-opacity: rgba(23, 23, 23, .6);--primary-gray-opacity: rgba(23, 23, 23, .2);--sidebar-panel-bg: rgba(230, 223, 223, .95);--sidebar-rule: rgba(23, 23, 23, .4);--background: rgb(249, 249, 249);--transparent: rgba(255, 255, 255, 0);--font-family: "Neue Montreal", sans-serif;--title-size: clamp(1.5rem, 1.4vw, 6rem);--title-weight: 600;--title-wrap-width: 40rem;--grid-second-position: 9rem;--selected-work-size: 1.5rem;--regular-font-size: 1rem;--content-offset: 9rem}html,body,#root{height:100%;min-height:0;margin:0}body{height:100dvh;overflow:hidden;font-family:var(--font-family);background:var(--background);font-size:var(--regular-font-size);color:var(--primary-gray)}.app-shell{height:100dvh;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow:hidden}.top-nav,.main-layout{grid-column:1 / -1;display:grid;grid-template-columns:subgrid}.top-nav{grid-row:1}.main-layout{height:100%;min-height:0;grid-row:2;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.top-nav{min-height:64px;position:relative;z-index:30}.nav-left,.nav-right{display:grid;grid-auto-flow:column;align-items:center;gap:1.5rem;padding:0 1rem;text-transform:uppercase}:is(.nav-left,.nav-right) a{color:var(--primary-gray);text-decoration:none}.nav-right{grid-column:3;justify-content:end}.nav-left{grid-column:1;text-wrap:nowrap}.main-left,.main-right{min-width:0;min-height:0;padding:0 2rem}@media(max-width:768px){.nav-left,.main-left,.nav-right,.main-right{padding:0 1rem}}.main-left{grid-column:1;position:sticky;top:0;align-self:start;overflow:hidden}.index-left{height:100%;display:flex;flex-direction:column;justify-content:space-between}.main-right{grid-column:3;overflow:visible}.app-shell>.divider{grid-column:2;grid-row:1 / -1;align-self:stretch;height:auto}@media(max-width:768px){.app-shell{grid-template-rows:auto auto;overflow-y:auto;overflow-x:hidden}.main-layout{height:auto;grid-template-columns:1fr;grid-template-rows:auto auto;overflow:visible;gap:2rem}.project-page{grid-template-rows:max-content max-content}.main-left{grid-column:1;grid-row:1;position:static}.main-right{grid-column:1;grid-row:2}.app-shell>.divider{display:none}.project-preview{display:none}}.divider{width:1px;height:100%;background:var(--sidebar-rule)}.hero-text{font-size:var(--title-size);font-weight:var(--title-weight);max-width:var(--title-wrap-width)}.grid-second-position{text-indent:var(--grid-second-position)}.grid-second-position-spacing{width:var(--grid-second-position)}.mt-2{margin-top:.25rem}.image-gallery{position:relative;display:flex;flex-direction:column;gap:1.5rem}.image-gallery img,.image-gallery video{width:100%;height:auto}.project-preview{position:fixed;z-index:4;top:0;right:var(--preview-right, 2rem);bottom:0;left:var(--preview-left, calc(50% + 2rem + .5px) );visibility:hidden;pointer-events:none;transition:visibility 0s linear .25s}.project-preview.is-visible{visibility:visible;transition-delay:0s}.project-preview-backdrop{position:absolute;inset:0;background:var(--background);opacity:0;pointer-events:none;transition:opacity .25s ease}.project-preview.is-visible .project-preview-backdrop{opacity:.95}.project-preview-image{position:absolute;z-index:1;top:var(--preview-top, 0px);left:0;width:100%;height:auto;opacity:0;object-position:top center;transition:opacity .25s ease}.project-preview.is-visible .project-preview-image{opacity:1}.toc a{color:var(--primary-gray);text-decoration:none}.toc a:hover{text-decoration:underline}.project-left{height:100%;display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto}.info-grid{display:grid;grid-template-columns:var(--grid-second-position) minmax(0,1fr);gap:.5rem 0;align-items:baseline}.info-key,.project-section-label{color:var(--primary-gray-mid-opacity);font-weight:500}.info-value,.project-section-body{color:var(--primary-gray);min-width:0;max-width:min(28rem,100%)}.project-details{display:flex;flex-direction:column;gap:2rem}.project-section{display:grid;grid-template-columns:var(--grid-second-position) minmax(0,1fr);gap:.5rem 0}.project-section-body p{margin:0;line-height:1.35}.project-section-body p+p{margin-top:1rem}.project-testimonial{margin:0}.project-testimonial+.project-testimonial{margin-top:1.5rem}.project-testimonial cite{display:block;margin-top:.75rem;color:var(--primary-gray-mid-opacity);font-style:normal}.toc{margin-bottom:1rem}.toc ul{margin:0;padding:0;line-height:1.8}.toc li{list-style-type:none;display:flex;align-items:baseline}.toc .grid-second-position-spacing{display:inline-flex;flex:0 0 auto;align-items:baseline;justify-content:center;text-align:center}@media(max-width:768px){.project-left{height:auto;min-height:calc(60svh - 56px)}.project-details{gap:24px}.info-grid,.project-section{grid-template-columns:76px minmax(0,1fr);column-gap:12px}.project-section-body,.info-value{max-width:none}.toc{display:none}}footer{display:none}@media(max-width:768px){footer.next-project{display:flex;min-height:100svh;align-items:flex-end;padding:0 1rem 1rem}.next-project-link{display:flex;width:100%;flex-direction:column;gap:.5rem;color:var(--primary-gray);text-decoration:none}.next-project-label{color:var(--primary-gray-mid-opacity)}.next-project-name{font-weight:600}.next-project-image{display:block;width:100%;height:auto}}.menu-toggle{position:relative;z-index:30;display:flex;align-items:center;gap:1rem;border:0;padding:0 0 1rem;color:var(--primary-gray);font:inherit;text-transform:uppercase;background:transparent;cursor:pointer}.menu-square{width:.875rem;height:.875rem;flex:0 0 auto;background:var(--transparent);transition:background .3s ease,transform .9s cubic-bezier(.65,0,.35,1)}.menu-toggle.is-open .menu-square{background:#000}.menu-toggle.is-open .menu-square{transform:translate(-32.375rem);transition-delay:0s,.1s}.menu-toggle-text{position:relative;display:block;width:6ch;min-width:6ch;height:1.8ch;overflow:hidden}.menu-text-line{display:block;transition:color .3s ease,transform .8s ease}.menu-text-line:last-child{position:absolute;top:0;left:0;transform:translateY(100%)}.menu-toggle.is-open .menu-text-line:first-child,.menu-toggle.is-open .menu-text-mobile{transform:translateY(-100%)}.menu-toggle.is-open .menu-text-line:last-child{transform:translateY(0)}.menu-text-mobile{display:none}.menu-panel{position:fixed;z-index:20;top:0;right:0;bottom:0;display:flex;width:min(40rem,100vw);flex-direction:column;gap:2rem;padding:4rem 1rem 1rem;overflow-y:auto;overscroll-behavior:contain;color:var(--primary-gray);background:var(--sidebar-panel-bg);font-size:1.4rem;font-weight:700;text-wrap:pretty;transform:translate(100%);visibility:hidden;transition:transform .8s cubic-bezier(.65,0,.35,1),visibility 0s .8s}.menu-panel.is-open{transform:translate(0);visibility:visible;transition-delay:0s}.menu-panel a{color:inherit;text-decoration:none}.menu-panel a:hover,.menu-panel a:focus-visible{text-decoration:underline}.menu-about-space{display:none}.menu-skill-section{display:flex;flex-direction:column;gap:.5rem}.menu-rule{width:100%;height:1px;margin:0;background:var(--sidebar-rule)}.mobile-menu-content{display:none}.menu-work{position:relative}.menu-work-item{position:relative;display:flex;align-items:center;padding-block:.25rem;color:var(--primary-gray-mid-opacity);font-size:var(--selected-work-size);font-weight:600}.menu-work-item.active,.menu-work-item:focus-visible{color:var(--primary-gray)}.menu-work-index{display:inline-flex;width:3rem;flex:0 0 auto;align-items:center;justify-content:center;color:var(--primary-gray-mid-opacity);font-size:var(--regular-font-size);text-align:center}.menu-work-index-value{display:inline-block;width:1.5rem}.menu-work-indicator{position:absolute;z-index:2;width:.875rem;height:.875rem;pointer-events:none;background:#000;opacity:0;transform-origin:center center}.menu-details,.menu-testimonial{border-top:1px solid var(--sidebar-rule);padding-top:1rem}.menu-details{display:grid;gap:1rem;line-height:1.15}.menu-label{margin-bottom:.2rem;color:var(--primary-gray-mid-opacity);font-size:.875rem;font-weight:400;text-transform:uppercase}.menu-footer{display:block;margin-top:auto;padding-top:2rem;color:var(--primary-gray-mid-opacity);font-weight:600;overflow-wrap:anywhere}.menu-desktop-content{height:100%;display:flex;flex-direction:column;justify-content:space-between;font-size:1.2rem}.menu-top-section{display:flex;flex-direction:column;gap:2rem;font-weight:400}.menu-top-section div:not(.menu-rule){max-width:35rem}.menu-top-section .link{display:inline-block;width:fit-content;font-weight:700;border-bottom:1px solid var(--sidebar-rule)}.menu-top-section .menu-info-section{display:flex;flex-direction:column;gap:2rem;max-width:30rem}.menu-top-section .menu-info-section div>div:first-child{color:var(--sidebar-rule)}@media(prefers-reduced-motion:reduce){.menu-square,.menu-panel,.menu-text-line{transition:none}}@media(max-width:768px){.top-nav{min-height:56px;position:sticky;top:0;align-self:start;background:var(--background)}.top-nav.menu-open{z-index:50;background:transparent}.top-nav.menu-open .nav-left{visibility:hidden}.menu-toggle{padding-bottom:0}.menu-text-desktop{display:none}.menu-text-mobile{display:block}.menu-toggle.is-open .menu-square{transform:translate(calc(-100vw + 12px + 2.875rem + 5ch))}.menu-panel{width:100%;z-index:40;padding:4rem 12px 12px;background:var(--sidebar-panel-bg);font-size:14px;font-weight:400;text-wrap:wrap}.menu-desktop-content{display:none}.mobile-menu-content{display:flex;min-height:100%;flex-shrink:0;flex-direction:column}.menu-contact{font-size:clamp(18px,5.8vw,24px);font-weight:600;line-height:1.2;overflow-wrap:anywhere}.mobile-menu-content .menu-work,.mobile-menu-content .menu-details,.mobile-menu-content .menu-testimonial{margin-top:16px}.menu-work{padding-top:16px;border-top:1px solid var(--sidebar-rule)}.menu-work-item{padding-block:.125rem;color:var(--primary-gray-mid-opacity);font-size:20px;font-weight:400;line-height:1.1}.menu-work-index{width:3rem;justify-content:center;font-weight:400}.menu-work-item.active .menu-work-index-value{color:transparent}.menu-details{padding-top:16px;gap:16px}.menu-testimonial{padding-top:16px}.menu-footer{margin-top:auto;padding-top:40px}}
