@import"https://fonts.googleapis.com/css2?family=Newsreader:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Source+Serif+4:wght@400;500;600&family=Source+Sans+3:wght@500;600&display=swap";:root{--cream: #faf6f0;--ink: #2b2620;--tile: #ede3d3;--accent: #c1622d;--accent-soft: rgba(193, 98, 45, .1);--muted: #5b5142;--meta: #8a7a63;--body-text: #4a4030;--hairline: rgba(43, 38, 32, .15);--hairline-strong: rgba(43, 38, 32, .2);--font-display: "Newsreader", serif;--font-body: "Source Serif 4", serif;--font-label: "Source Sans 3", sans-serif;--page-pad: 80px}@media(max-width:1100px){:root{--page-pad: 40px}}@media(max-width:640px){:root{--page-pad: 20px}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}html{scrollbar-gutter:stable}body{background:var(--cream);color:var(--ink);font-family:var(--font-body)}a{text-decoration:none;color:inherit}.label{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.page{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1760px;margin-left:auto;margin-right:auto;padding-left:var(--page-pad);padding-right:var(--page-pad)}.gate{min-height:100vh;display:flex;align-items:center;justify-content:center}.gate__form{display:flex;flex-direction:column;gap:16px;width:280px}.gate__label{color:var(--accent);font-size:12px;text-align:center}.gate__input{font-family:var(--font-body);font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--hairline-strong);border-radius:6px;padding:10px 14px}.gate__input:focus{outline:none;border-color:var(--accent)}.gate__submit{font-family:var(--font-label);font-size:12px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:6px;padding:10px 14px;cursor:pointer}.gate__submit:disabled{opacity:.5;cursor:default}.gate__error{font-size:13px;color:var(--accent);text-align:center}@media(prefers-reduced-motion:no-preference){.gate__label,.gate__input,.gate__submit{animation:intro-slide .75s ease-out both;animation-delay:calc(.5s + var(--gate-i) * .25s)}.gate.is-leaving .gate__label,.gate.is-leaving .gate__input,.gate.is-leaving .gate__submit{animation:gate-leave var(--gate-leave-ms) ease-in both;animation-delay:calc((2 - var(--gate-i)) * var(--gate-leave-stagger))}}@keyframes gate-leave{to{opacity:0;transform:translateY(10px)}}.tooltip-portal{position:fixed;z-index:9999;pointer-events:none}.tooltip-pill{display:block;white-space:nowrap;padding:6px 12px;border-radius:8px;border:1px solid var(--hairline-strong);font-family:var(--font-label);font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--ink);background:#fff;box-shadow:0 4px 12px #2b26201f}.nav{margin-bottom:4px}.nav__inner{display:flex;align-items:center;justify-content:space-between;padding-top:22.5px;padding-bottom:21px;position:relative;border-bottom:1px solid transparent}.nav__inner:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:none;transform-origin:left center}.nav__brand{font-family:var(--font-display);font-weight:500;font-size:26px;letter-spacing:-.01em}.nav__icons{display:flex;align-items:center;gap:10px}.nav__icon-link{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--muted);transition:color .25s ease}.nav__icon-link svg{position:relative;z-index:1}.nav__icon-link:before,.nav__icon-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;transform-origin:center center;transform:scale3d(.5,.5,1);opacity:0;transition:transform .3s ease-out,opacity .3s ease-out;pointer-events:none}.nav__icon-link:before{background:#fff;box-shadow:0 2px 6px #2b262000;transition:transform .3s ease-out,opacity .3s ease-out,box-shadow .3s ease-out}.nav__icon-link:after{background:#c1622d2e}.nav__icon-link:hover{color:var(--accent)}.nav__icon-link:hover:before{transform:scaleZ(1);opacity:1;box-shadow:0 2px 6px #2b262024}.nav__icon-link.is-active{color:var(--accent)}.nav__icon-link.is-active:after{transform:scaleZ(1);opacity:1}@media(max-width:640px){.nav__icons{gap:4px}}.hero{padding-top:32px;padding-bottom:20px}@media(min-width:1200px){.hero{padding-top:24px;padding-bottom:12px}}.hero__inner{display:flex}.hero__intro{flex:1;padding-right:40px}.hero__kicker{color:var(--accent);font-size:14px;margin-bottom:12px}.hero__headline{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:36px;line-height:1.1;margin:0}.rotating-word{position:relative;display:inline-block;vertical-align:top}.rotating-word__reserve{display:grid;visibility:hidden}.rotating-word__reserve span{grid-area:1 / 1;white-space:nowrap}.rotating-word__window{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.rotating-word__item{position:absolute;top:0;right:0;bottom:0;left:0;white-space:nowrap;transition:transform 1s cubic-bezier(.6,-.25,.3,1.25)}.rotating-word__item--instant{transition:none}.hero__aside{flex:1;position:relative;border-left:1px solid transparent;padding-left:40px;display:flex;flex-direction:column;justify-content:flex-start;gap:12px}.hero__aside:before{content:"";position:absolute;top:0;bottom:0;left:-1px;width:1px;background:var(--hairline-strong);transform-origin:center top}.hero__body{flex:1;display:flex;align-items:center;font-size:16px;line-height:1.6;color:var(--muted);margin:0;white-space:pre-line}.hero__tags{display:flex;flex-wrap:wrap}.tag{font-family:var(--font-label);font-size:14px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--accent)}.tag:not(:last-child):after{content:"  ·  "}.hero__tags{container-type:inline-size}@container (max-width: 424px){.tag:last-child{display:none}.tag:nth-last-child(2):after{content:none}}@media(min-width:641px){.hero__inner{container-type:inline-size}.hero__intro{flex:0 0 40%;min-width:max-content}.hero__headline{font-size:clamp(25px,calc(3.42cqi - 3.6px),36px)}}@media(max-width:1100px){.hero__intro{padding-right:24px}.hero__aside{padding-left:24px}}@media(max-width:640px){.hero{padding-top:36px}.hero__inner{flex-direction:column;gap:48px}.hero__intro{padding-right:0}.hero__headline{font-size:29px}.hero__aside{border-left:none;padding-left:0;border-top:1px solid transparent;padding-top:24px}.hero__aside:before{top:-1px;bottom:auto;left:0;right:0;width:auto;height:1px;transform-origin:left center}}.section-title{color:var(--accent);font-size:14px;padding-top:24px}@media(max-width:640px){.section-title{padding-top:24px}}:root{--image-shadow: 0 14px 56px rgba(43, 38, 32, .2);--image-shadow-sm: 0 8px 28px rgba(43, 38, 32, .16);--stage-h-max: 720px;--stage-gap: 20px;--stage-top: 311px}body{--stage-h: clamp(360px, calc(100svh - var(--stage-top) - 32px), var(--stage-h-max));--index-w: clamp(220px, calc(220px + (var(--stage-h) - 384px) * .2222), 260px);--preview-w: min(calc(var(--stage-h) * 1.6), calc(100% - var(--index-w) - var(--stage-gap)));--stage-w: calc(var(--preview-w) + var(--stage-gap) + var(--index-w))}.page--home .stage-width,.page--project .stage-width{width:var(--stage-w);margin-left:auto;margin-right:auto}@media(max-width:800px){.page--home .stage-width,.page--project .stage-width{width:auto}}body{--gutter: #efe7da;--panel-pad: 48px;--min-gutter: 48px;--max-gutter: 114px;--panel-top: 74px;--panel-radius: 20px;--panel: max( calc(var(--stage-w) + 2 * var(--panel-pad)), calc(100vw - 2 * var(--max-gutter)) );--panel-fill: calc( var(--panel) + clamp(0px, (var(--panel) - (100vw - 2 * var(--min-gutter))) * 1000, 100vw) );position:relative;isolation:isolate;background:var(--gutter)}body:before{content:"";position:absolute;top:var(--panel-top);bottom:0;left:0;right:0;min-height:calc(100vh - var(--panel-top));z-index:-1;width:min(var(--panel-fill),100%);margin:0 auto;background:var(--cream);border-radius:clamp(0px,(100vw - var(--panel-fill)) * 1000,var(--panel-radius)) clamp(0px,(100vw - var(--panel-fill)) * 1000,var(--panel-radius)) 0 0;pointer-events:none}@media(max-width:800px){body{background:var(--cream)}body:before{display:none}}.showcase{display:grid;grid-template-columns:var(--preview-w) var(--index-w);justify-content:center;column-gap:var(--stage-gap);row-gap:16px;padding-top:12px;padding-bottom:100px}.showcase__title-row{grid-column:1 / -1;padding-top:0}.showcase__preview-slot{position:relative;align-self:start}.showcase__preview{position:relative;display:block;cursor:pointer;aspect-ratio:16 / 10;border-radius:14px;overflow:hidden;border:1px solid rgba(43,38,32,.08);background:var(--tile);box-shadow:var(--image-shadow);transition:box-shadow .25s ease}.showcase__preview:hover{box-shadow:0 18px 64px #2b262047}.showcase__visual{position:absolute;top:0;right:0;bottom:0;left:0;--layer-zoom: .98}.showcase__layer{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--tile);font-family:var(--font-label);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--meta)}.showcase__layer img{width:100%;height:100%;object-fit:cover}.showcase__img--reveal{animation:showcase-fade-in var(--fade) ease-out both}.showcase__layer--entering{animation:showcase-fade-in var(--layer-fade) ease-out var(--layer-delay) both,showcase-layer-grow var(--layer-enter) cubic-bezier(.34,1.45,.64,1) var(--layer-delay) both}.showcase__layer--leaving{animation:showcase-fade-out var(--layer-leave) ease var(--layer-leave-at) both}@keyframes showcase-fade-out{0%{opacity:1}to{opacity:0}}@keyframes showcase-layer-grow{0%{transform:scale3d(var(--layer-zoom),var(--layer-zoom),1)}to{transform:scaleZ(1)}}@keyframes showcase-fade-in{0%{opacity:0}to{opacity:1}}.showcase__body{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:flex-end;color:var(--ink)}.showcase__frost{position:relative;padding:12px 18px}.showcase__frost:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-top-left-radius:8px;background:#faf6f0e6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.showcase__frost>span{position:relative}.showcase__cue{flex:none;white-space:nowrap;font-size:13px;color:var(--accent);transform:translateY(10px)}.showcase__cue:before,.showcase__cue>span{opacity:0}.showcase__preview:hover .showcase__cue,.showcase__preview:focus-visible .showcase__cue{transform:none;animation:showcase-cue-slide var(--cue-slide) both}.showcase__preview:hover .showcase__cue:before,.showcase__preview:hover .showcase__cue>span,.showcase__preview:focus-visible .showcase__cue:before,.showcase__preview:focus-visible .showcase__cue>span{opacity:1;transition:opacity var(--cue-in) ease-out}.showcase__cue-arrow{display:inline-block;transition:transform .15s ease}.showcase__preview:hover .showcase__cue-arrow{transform:translate(3px)}.showcase__index{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;min-height:0;overflow:visible}.showcase__index>li{flex:1 1 0;min-height:44px;max-height:64px;display:flex}.showcase__row{position:relative;cursor:pointer;flex:1;display:flex;align-items:center;gap:16px;padding:6px 12px 6px 18px;border-radius:6px;transition:background-color .15s ease,box-shadow .25s ease}.showcase__row:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--accent);transform:scaleY(0);transform-origin:bottom;transition:none}.showcase__row.is-pending:before{transform:scaleY(1);transition:transform var(--dwell) linear}.showcase__row.is-selected:before{transform:scaleY(1)}.showcase__row:hover,.showcase__row.is-selected{background:#2b26200a}.showcase__row.is-selected{box-shadow:0 6px 56px #2b26202e;transition:background-color var(--fade) ease,box-shadow var(--fade) ease}.showcase__row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.showcase__thumb{display:none;flex-shrink:0;width:56px;height:35px;border-radius:4px;overflow:hidden;background:var(--tile)}.showcase__thumb img{width:100%;height:100%;object-fit:cover;display:block}.showcase__row-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.showcase__row-title{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(18px,calc(18px + (var(--stage-h) - 384px) / 60),21px);line-height:1.2;transition:color .15s ease}.showcase__row.is-selected .showcase__row-title{color:var(--accent);transition:color var(--fade) ease}.showcase__row-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--font-label);font-size:clamp(15px,calc(15px + (var(--stage-h) - 384px) / 180),16px);color:var(--meta)}.showcase__row-company{font-weight:600}.showcase__row-view{flex:none;font-size:13px;color:var(--accent);opacity:0;transform:translateY(10px)}.showcase__row.is-selected:hover .showcase__row-view,.showcase__row.is-selected:focus-visible .showcase__row-view{opacity:1;transform:none;transition:opacity var(--cue-in) ease-out var(--row-view-delay);animation:showcase-cue-slide var(--cue-slide) var(--row-view-delay) both}@keyframes showcase-cue-slide{0%{transform:translateY(10px);animation-timing-function:ease-out}50%{transform:translateY(-1px);animation-timing-function:ease-in-out}to{transform:none}}@keyframes intro-slide{0%{opacity:0;transform:translateY(var(--slide-from, -5px))}}@keyframes intro-draw-x{0%{opacity:0;transform:scaleX(0)}}@keyframes intro-draw-y{0%{opacity:0;transform:scaleY(0)}}.is-intro .nav__brand{animation:intro-slide var(--intro-name-ms) ease-out both}.is-intro .nav__icon-link{animation:intro-slide var(--intro-icon-ms) ease-out var(--intro-icons-at) both}.is-intro .nav__icons>:nth-child(2) .nav__icon-link{animation-delay:calc(var(--intro-icons-at) + var(--intro-icon-stagger))}.is-intro .nav__icons>:nth-child(3) .nav__icon-link{animation-delay:calc(var(--intro-icons-at) + var(--intro-icon-stagger) * 2)}.is-intro .nav__inner:after{animation:intro-draw-x var(--intro-rule-ms) ease-out var(--intro-rule-at) both}.is-intro .hero__intro{animation:intro-slide var(--intro-block-ms) ease-out var(--intro-tagline-at) both}.is-intro .hero__aside:before{animation:intro-draw-y var(--intro-line-ms) ease-out var(--intro-line-at) both}.is-intro .hero__aside>*{animation:intro-slide var(--intro-block-ms) ease-out var(--intro-aside-at) both}@media(max-width:640px){.is-intro .hero__aside:before{animation-name:intro-draw-x}}.showcase.is-held .showcase__title-row,.showcase.is-held .showcase__preview,.showcase.is-held .showcase__index>li:not(.is-lead),.showcase.is-held:not(.is-lead-due) .showcase__index>li.is-lead{opacity:0;pointer-events:none}.showcase--intro:not(.is-held) .showcase__title-row,.showcase--intro:not(.is-held) .showcase__preview{animation:showcase-fade-in var(--reveal) ease-out both}.showcase--intro:not(.is-held) .showcase__index>li,.showcase--intro.is-lead-due .showcase__index>li.is-lead{animation:showcase-row-in var(--row-reveal) ease-out both;animation-delay:var(--row-delay)}@keyframes showcase-row-in{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.page--home.is-return .hero__intro,.page--home.is-return .hero__aside{animation:intro-slide var(--return-ms) ease-out both}.page--home.is-return .hero__aside{animation-delay:var(--return-stagger)}}@keyframes page-leave{to{opacity:0}}.page--home.is-leaving{pointer-events:none}.page--home.is-leaving .hero__intro,.page--home.is-leaving .hero__aside,.page--home.is-leaving .showcase .showcase__index>li,.page--home.is-leaving .showcase .showcase__title-row,.page--home.is-leaving .showcase .showcase__preview{animation:page-leave var(--leave-ms) ease both}.page--home.is-leaving .hero__aside{animation-delay:var(--leave-stagger)}.page--home.is-leaving .showcase .showcase__index>li{animation-delay:calc((var(--row-i) + 3) * var(--leave-stagger))}.page--home.is-leaving .showcase .showcase__title-row,.page--home.is-leaving .showcase .showcase__preview{animation-delay:calc(2 * var(--leave-stagger))}.page--project.is-leaving{pointer-events:none}.page--project.is-leaving>:not(.nav){animation:page-leave var(--exit-ms) ease both}@media(prefers-reduced-motion:no-preference){.page--project .project-meta,.page--project .project-title,.page--project .pull-quote,.page--project .project-overview{animation:intro-slide var(--enter-ms) ease-out both;animation-delay:calc(var(--enter-i) * var(--enter-stagger))}}.showcase__loader{position:absolute;inset:0 calc(-1 * (var(--stage-gap) + var(--index-w))) 0 0;display:flex;align-items:center;justify-content:center;animation:showcase-fade-in .25s ease-out both}.showcase__loader-track{position:relative;width:96px;height:2px;border-radius:1px;overflow:hidden;background:var(--hairline)}.showcase__loader-track:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:40%;background:var(--accent);animation:showcase-loader-sweep 1.1s ease-in-out infinite}@keyframes showcase-loader-sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media(prefers-reduced-motion:reduce){.showcase__layer--entering,.showcase__layer--leaving,.showcase__img--reveal{animation:none}.showcase__cue,.showcase__row-view{transform:none;animation:none!important}.showcase__row.is-pending:not(.is-selected):before{transform:scaleY(0)}}@media(max-width:800px){.showcase{grid-template-columns:1fr;grid-template-rows:auto;padding-bottom:56px}.showcase__preview-slot,.showcase__preview{display:none}.showcase__index{gap:16px;overflow:visible}.showcase__index>li{flex:none;max-height:none}.showcase__row{flex-direction:column;align-items:stretch;gap:0;padding:0;border-radius:10px;overflow:hidden;border:1px solid var(--hairline-strong);background:#fff}.showcase__row:before{display:none}.showcase__row:hover,.showcase__row.is-selected{background:#fff}.showcase__row.is-selected{box-shadow:none}.showcase__row.is-selected .showcase__row-title{color:inherit}.showcase__thumb{display:block;width:100%;height:auto;aspect-ratio:16 / 10;border-radius:0}.showcase__row-text{padding:14px 16px}.showcase__row-view{display:none}}.footer{margin-top:auto}.footer__inner{padding-top:36px;padding-bottom:36px;border-top:1px solid var(--hairline);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--meta)}.footer__icons{display:flex;align-items:center;gap:16px}.footer__icon-link{display:flex;color:var(--meta);transition:color .15s ease}.footer__icon-link:hover{color:var(--accent)}.project-header{padding-top:28px}.project-title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:36px;line-height:1.15;margin:0 0 18px;padding-bottom:16px;border-bottom:1px solid var(--hairline)}@media(max-width:640px){.project-title{font-size:30px}}.project-meta{display:flex;flex-wrap:wrap;column-gap:10px;row-gap:4px;margin:0 0 10px;color:var(--accent);font-size:14px}.project-meta span{white-space:nowrap}.project-meta span:not(:last-child):after{content:"·";content:"·" / "";margin-left:10px}.pull-quote{font-family:var(--font-display);font-weight:500;font-size:22px;line-height:1.35;color:var(--muted);margin:0 0 16px;font-style:italic;max-width:760px}.project-overview{font-size:16px;line-height:1.75;color:var(--body-text);margin:0 0 8px;max-width:760px}.project-overview+.project-overview{margin-top:12px}.page--project{overflow-x:clip}.project-dim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#0b0b0d;opacity:0;pointer-events:none;transition:opacity 1s ease}.project-dim.is-on{opacity:.9}@media(prefers-reduced-motion:reduce){.project-dim{transition:none}}.project-hero{position:relative;z-index:11;width:100%;aspect-ratio:16 / 10;background:var(--tile);border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-label);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--meta);margin-top:48px;overflow:hidden;box-shadow:var(--image-shadow);transition:box-shadow var(--hero-fade) ease-out,transform 1s ease}@media(prefers-reduced-motion:no-preference){.project-hero.is-playing{transform:scale(1.05)}}.project-hero__media{width:100%;height:100%;object-fit:cover;animation:showcase-fade-in var(--hero-fade) ease-out both}.project-hero:has(>.project-hero__media),.project-section__image:has(>img){background:none}.project-hero.is-loading{background:none;box-shadow:none}.project-hero.is-loading .project-hero__media{visibility:hidden;animation:none}.project-hero__loader{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;animation:showcase-fade-in .25s ease-out both}.project-hero__replay{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;border:0;background:none;cursor:pointer;animation:showcase-fade-in .25s ease-out both}.project-hero__replay-icon{position:absolute;left:50%;top:64%;width:64px;height:64px;transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid var(--hairline-strong);display:flex;align-items:center;justify-content:center;color:var(--ink)}.project-hero__replay-icon:before{content:"";position:absolute;top:-1.5px;right:-1.5px;bottom:-1.5px;left:-1.5px;border-radius:50%;background:var(--accent-soft);opacity:0;transition:opacity .15s ease}.project-hero__replay-icon svg{position:relative}.project-hero__replay:hover .project-hero__replay-icon:before,.project-hero__replay:focus-visible .project-hero__replay-icon:before{opacity:1}.project-hero__replay:focus-visible{outline:none}.project-hero__replay:focus-visible .project-hero__replay-icon{box-shadow:0 0 0 2px var(--accent)}@media(max-width:640px){.project-hero__replay-icon{width:48px;height:48px}}.project-hero__sound{position:absolute;bottom:calc(97 / 1200 * 100%);right:calc(56 / 1920 * 100%);transform:translateY(50%);display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px 0 12px;border:0;border-radius:999px;background:#1c1610b8;color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer;animation:showcase-fade-in .25s ease-out both}.project-hero__sound:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:#ffffff24;opacity:0;transition:opacity .15s ease}.project-hero__sound svg,.project-hero__sound span{position:relative}.project-hero__sound:hover:before,.project-hero__sound:focus-visible:before{opacity:1}.project-hero__sound:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}@media(max-width:640px){.project-hero__sound{bottom:10px;right:10px;transform:none;min-height:36px;padding:0 12px 0 10px}}.project-hero-caption{font-size:12px;color:var(--meta);padding-top:24px}@media(max-width:640px){.project-hero{margin-top:32px}}.project-section{display:flex;gap:56px;padding:64px 0;border-top:1px solid var(--hairline-strong);align-items:center}.project-section--reverse{flex-direction:row-reverse}.project-section__image{flex:1;aspect-ratio:16 / 10;background:var(--tile);border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-label);font-size:11px;color:var(--meta);overflow:hidden;box-shadow:var(--image-shadow-sm)}.project-section__image img{width:100%;height:100%;object-fit:cover;animation:showcase-fade-in var(--hero-fade) ease-out both}.project-section__image{position:relative;transition:box-shadow var(--hero-fade) ease-out}.project-section__image.is-loading{background:none;box-shadow:none}.project-section__image.is-loading img{visibility:hidden;animation:none}.project-section__image.is-settled{transition:box-shadow .25s ease}.project-section__image.is-zoomable:hover,.project-section__image.is-zoomable:has(:focus-visible){box-shadow:0 14px 48px #2b262042}.project-section__zoom{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:flex-end;padding:0;border:0;background:none;font:inherit;cursor:zoom-in}.project-section__zoom:focus-visible{outline:none}.project-section__zoom .showcase__cue{padding:9px 15px}.project-section__zoom:hover .showcase__cue,.project-section__zoom:focus-visible .showcase__cue{transform:none;animation:showcase-cue-slide var(--cue-slide) both}.project-section__zoom:hover .showcase__cue:before,.project-section__zoom:hover .showcase__cue>span,.project-section__zoom:focus-visible .showcase__cue:before,.project-section__zoom:focus-visible .showcase__cue>span{opacity:1;transition:opacity var(--cue-in) ease-out}.project-section__zoom:hover .showcase__cue-arrow{transform:translate(2px,-2px)}@media(hover:none){.project-section__zoom .showcase__cue{display:none}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:72px 24px 64px;background:#0b0b0de6;animation:showcase-fade-in var(--lightbox-enter) ease-out both;cursor:zoom-out}.lightbox__frame{position:relative;max-width:100%;cursor:default;animation:lightbox-grow var(--lightbox-enter) cubic-bezier(.2,.7,.2,1) both}.lightbox__img{display:block;width:auto;height:auto;max-width:min(1440px,100%);max-height:calc(100vh - 136px);border-radius:12px;box-shadow:0 24px 80px #00000080}.lightbox__caption{position:absolute;top:100%;left:0;right:0;margin:0;padding-top:10px;font-family:var(--font-display);font-style:italic;font-size:22px;line-height:1.3;color:#faf6f0cc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox__close{position:absolute;right:-8px;bottom:calc(100% + 8px);width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:none;color:#faf6f0bf;cursor:pointer;transition:color .15s ease,background-color .15s ease}.lightbox__close:hover,.lightbox__close:focus-visible{color:#faf6f0;background:#faf6f01f}.lightbox__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:600px){.lightbox{padding-left:8px;padding-right:8px}.lightbox__img{border-radius:8px}.lightbox__close{right:0}}.lightbox.is-leaving{animation:showcase-fade-out var(--lightbox-leave) ease-in both}@keyframes lightbox-grow{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.lightbox,.lightbox__frame{animation:none}}@media(prefers-reduced-motion:no-preference){.project-section:not(.is-text-in-view) .project-section__content>*{opacity:0}.project-section.is-text-in-view .project-section__content>*{--slide-from: -10px;animation:intro-slide var(--enter-ms) ease-out both;animation-delay:calc(var(--enter-i) * var(--enter-stagger))}}.project-section__content{flex:1}.project-section__kicker{color:var(--accent);font-size:16px;margin-bottom:14px}.project-section__heading{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:26px;margin:0 0 16px}.project-section__body{font-size:16px;line-height:1.75;color:var(--body-text);margin:0}.project-section__body+.project-section__body{margin-top:12px}@media(max-width:900px){.project-section,.project-section--reverse{flex-direction:column;gap:24px;padding:40px 0}.project-section__image{width:100%}}
