@font-face{font-family:Suisse Intl book;src:url(/assets/SuisseIntl-Book%20copie-_XHtw5wy.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Delta Mono Web;src:url(/assets/Delta_Mono-Regular-BeAvD_Vt.otf) format("opentype");font-weight:400;font-style:normal}:root{--page-gutter: clamp(16px, 4vw, 40px);--name-size: clamp(2rem, 14vw, 17rem);--name-gap: clamp(8px, 1.2vw, 16px);--toggle-size: clamp(44px, 5vw, 50px);--name-word-units: 5.5;--pill-size: clamp(.82rem, 1.1vw, 1rem);--pill-height: clamp(2.15rem, 3.2vw, 2.6rem);--pill-padding-x: clamp(1.05rem, 3.5vw, 4rem);--pill-padding-y: clamp(.38rem, .8vw, .6rem);--category-pill-width: clamp(148px, 18vw, 220px);--category-pill-height: var(--pill-height);--categories-gap: clamp(18px, 2.5vw, 30px);--gallery-gap: 8px;--category-card-height: clamp(160px, 28vh, 320px);--category-card-height-max: 260px;--mobile-section-gap: 0px;--carousel-gap: clamp(12px, 2vw, 18px);--carousel-card-width: clamp(160px, 24vw, 260px);--carousel-card-height: clamp(220px, 46vh, 520px);--bottom-bar-height: 0px;--info-origin-x: 50vw;--info-origin-y: 50vh;--surface: #000000;--heading-text: #ffffff;--border: #ffffff;--capsule-bg: #ffffff;--capsule-text: #000000;--toggle-bg: #000000;--toggle-icon: #ffffff;--project-name-pill-bg: color-mix(in oklab, #f6f4ef 72%, transparent);--project-name-pill-text: #000000;--suisse-font: "Suisse Intl book", "Suisse Int'l book", "Suisse Int'l", "Helvetica Neue", Arial, sans-serif;--title-font: "Delta Mono Web", "Delta_Mono", "Delta Mono", "JetBrains Mono", "JetBrains Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace}@supports (height: 100svh){:root{--category-card-height: clamp(160px, 28svh, 320px);--carousel-card-height: clamp(220px, 46svh, 520px)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{min-height:100vh;background:var(--surface);color:var(--heading-text);font-family:var(--suisse-font);transition:background-color .22s ease,color .22s ease;position:fixed;top:0;right:0;bottom:0;left:0;width:100%;padding-bottom:var(--bottom-bar-height)}@supports (height: 100dvh){body{min-height:100dvh}}body[data-theme=light]{--surface: #f6f4ef;--heading-text: #000000;--border: #000000;--capsule-bg: #000000;--capsule-text: #ffffff;--toggle-bg: #000000;--toggle-icon: #ffffff}body[data-theme=dark]{--toggle-bg: #ffffff;--toggle-icon: #000000}.page{min-height:100vh;height:100vh;position:relative;z-index:2;padding:var(--page-gutter);padding-bottom:calc(var(--page-gutter) + (var(--bottom-bar-height) * .25));display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:clamp(18px,2vh,40px);transition:filter .62s cubic-bezier(.22,.61,.36,1),transform .62s cubic-bezier(.22,.61,.36,1)}@supports (height: 100dvh){.page{min-height:100dvh;height:100dvh}}body.is-info-open .page,body.is-info-opening .page{filter:blur(clamp(14px,3.2vw,30px)) saturate(.8);transform:scale(.99)}.info-view{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:clamp(20px,4vw,48px);opacity:0;pointer-events:none;isolation:isolate;background:color-mix(in oklab,var(--surface) 8%,transparent);backdrop-filter:blur(0px) saturate(1);-webkit-backdrop-filter:blur(0px) saturate(1);transition:opacity .38s ease,backdrop-filter .68s cubic-bezier(.16,1,.3,1),-webkit-backdrop-filter .68s cubic-bezier(.16,1,.3,1)}.info-view:before{content:"";position:absolute;top:-32vmax;right:-32vmax;bottom:-32vmax;left:-32vmax;z-index:0;background:radial-gradient(circle at var(--info-origin-x) var(--info-origin-y),color-mix(in oklab,var(--surface) 8%,transparent) 0%,color-mix(in oklab,var(--surface) 60%,transparent) 40%,color-mix(in oklab,var(--surface) 94%,transparent) 100%);transform:scale(.2);opacity:0;filter:blur(2px);transition:transform .76s cubic-bezier(.16,1,.3,1),filter .76s cubic-bezier(.16,1,.3,1),opacity .32s ease}body.is-info-open .info-view,body.is-info-opening .info-view{opacity:1;pointer-events:auto;backdrop-filter:blur(clamp(18px,4vw,36px)) saturate(.86);-webkit-backdrop-filter:blur(clamp(18px,4vw,36px)) saturate(.86)}body.is-info-open .info-view:before,body.is-info-opening .info-view:before{transform:scale(1);opacity:1;filter:blur(38px)}.info-view-content{position:relative;z-index:1;display:grid;gap:clamp(8px,1.4vh,12px);text-align:left;max-width:min(88ch,94vw);opacity:0;transform:translateY(18px) scale(.98);transition:opacity .36s ease .12s,transform .56s cubic-bezier(.16,1,.3,1) .12s;max-height:min(82vh,640px)}body.is-info-open .info-view-content{opacity:1;transform:translateY(0) scale(1)}.info-view-name{margin:0;font-family:var(--suisse-font);font-size:clamp(.92rem,1.6vw,1.08rem);font-weight:400;line-height:1.52;letter-spacing:0;color:var(--heading-text)}.info-view-text{margin:0;font-family:var(--suisse-font);font-size:clamp(.92rem,1.6vw,1.08rem);font-weight:400;line-height:1.52;letter-spacing:0;color:var(--heading-text);white-space:pre-line;text-align:justify;text-justify:inter-word}.info-view-tabs{display:inline-flex;flex-wrap:wrap;gap:10px;margin-top:clamp(8px,1.6vh,14px)}.info-view-tab.category-button{width:auto;min-width:0;min-height:var(--pill-height);padding:0 clamp(.85rem,2.2vw,1.3rem);font-size:var(--pill-size);opacity:1;transform:none}.info-view-panels{position:relative;overflow:hidden}.info-view-panel{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;padding-right:10px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;opacity:0;transform:translate(100%);transition:transform .52s cubic-bezier(.16,1,.3,1),opacity .32s ease}.info-view-panels[data-active=info] .info-view-panel[data-panel=info],.info-view-panels[data-active=skills] .info-view-panel[data-panel=skills]{position:relative;opacity:1;transform:translate(0)}.info-view-panel[data-panel=skills]{overflow-y:auto}.info-view-panel[data-panel=info]{overflow:visible}.info-view-panels[data-active=skills] .info-view-panel[data-panel=info]{transform:translate(-100%)}.info-view-panels[data-active=info] .info-view-panel[data-panel=skills]{transform:translate(100%)}.info-view-skills-pills{display:flex;flex-wrap:wrap;gap:clamp(10px,2vw,16px);padding:2px 0 6px;--pill-padding-x: clamp(.82rem, 2.1vw, 1.2rem)}.info-view-skill-pill{display:inline-flex;align-items:center;justify-content:center;cursor:default}.info-view-links{display:inline-flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin-top:clamp(6px,1.2vh,10px);--pill-padding-x: clamp(.82rem, 2.1vw, 1.2rem)}.info-view-link,.info-view-back-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:var(--pill-height)}.info-view .pill-button{position:relative;isolation:isolate;border-color:transparent;background:var(--project-name-pill-bg);color:var(--project-name-pill-text);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.info-view .pill-button:before{content:"";position:absolute;top:-1.5px;right:-1.5px;bottom:-1.5px;left:-1.5px;box-sizing:border-box;border-radius:1000.5px;border:1.5px solid #ffffff;opacity:0;pointer-events:none;transition:opacity .22s ease}.info-view-back-button{margin-left:auto}body.is-categories .page{gap:12px}.top-header{width:100%;max-height:280px;overflow:clip;transform:translateY(0);opacity:1;transition:transform .38s ease,opacity .32s ease,max-height .38s ease}body.is-categories .top-header{transform:translateY(-140%);opacity:0;max-height:0;pointer-events:none}.name{margin:0;width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;column-gap:var(--name-gap);transform:translateY(-14px);font-family:var(--title-font);font-weight:400;font-size:clamp(1.85rem,calc((60vw - var(--page-gutter) - var(--name-gap)) / var(--name-word-units)),12rem);line-height:1.1;letter-spacing:-.015em;text-transform:none;color:var(--heading-text)}.name-part{min-width:0;white-space:nowrap;overflow:hidden;max-width:100%}.name-part-left{justify-self:start;text-align:right;display:flex;justify-content:flex-end;gap:.05em}.name-part-right{justify-self:end;width:100%;text-align:right;display:flex;justify-content:flex-end;gap:.05em}.name-letter{display:inline-block;font-size:inherit;line-height:inherit}.theme-toggle{border:1.5px solid var(--border);background:var(--toggle-bg);color:var(--toggle-icon);font-family:var(--suisse-font);border-radius:999px;width:var(--toggle-size);height:var(--toggle-size);justify-self:center;padding:0;display:grid;place-items:center;position:relative;transform:translateY(0);cursor:pointer;transition:background-color .22s ease,border-color .22s ease,color .22s ease}.theme-icon{position:absolute;width:18px;height:18px;top:0;right:0;bottom:0;left:0;margin:auto;display:grid;place-items:center;opacity:0;transform:scale(.92);transition:opacity .22s ease,transform .22s ease}.theme-icon.moon{width:22px;height:22px}.theme-icon svg{width:100%;height:100%}body[data-theme=light] .theme-icon.moon,body[data-theme=dark] .theme-icon.sun{opacity:1;transform:scale(1)}.actions{width:100%;display:flex;align-items:flex-start;justify-content:flex-start;gap:clamp(10px,1.8vw,16px);transition:transform .56s ease}.actions .pill-button:last-child{margin-left:auto}body.is-categories .actions .pill-button:last-child{margin-left:0}.pill-button{border:1.5px solid var(--border);background:var(--capsule-bg);color:var(--capsule-text);font-family:var(--suisse-font);border-radius:999px;padding:var(--pill-padding-y) var(--pill-padding-x);min-height:var(--pill-height);font-size:var(--pill-size);font-weight:400;letter-spacing:.01em;text-transform:none;white-space:nowrap;cursor:pointer;transition:min-height .28s ease,padding .28s ease,width .28s ease,transform .28s ease,opacity .28s ease}.info-view .info-view-skill-pill.pill-button{cursor:default}.info-view .info-view-skill-pill.pill-button:before{opacity:1}.actions .pill-button{position:relative;isolation:isolate;border-color:transparent;background:var(--project-name-pill-bg);color:var(--project-name-pill-text);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.actions .pill-button:before{content:"";position:absolute;top:-1.5px;right:-1.5px;bottom:-1.5px;left:-1.5px;box-sizing:border-box;border-radius:1000.5px;border:1.5px solid #ffffff;opacity:0;pointer-events:none;transition:opacity .22s ease}.projects-button{width:fit-content;min-width:max-content}.info-button{width:fit-content;min-width:max-content;padding-inline:clamp(.82rem,2.6vw,2.8rem)}body.is-categories .actions{transform:translateY(-8px);display:grid;grid-template-columns:var(--category-pill-width) 1fr auto;align-items:start}body.is-categories .projects-button{justify-self:center;min-width:0;padding-inline:1rem}body.is-categories .info-button{justify-self:end}.categories-layout{min-height:0;display:grid;grid-template-columns:var(--category-pill-width) minmax(0,1fr);column-gap:var(--categories-gap);height:100%;opacity:0;transform:translateY(24px);pointer-events:none;transition:opacity .32s ease,transform .38s ease}body.is-categories .categories-layout{opacity:1;transform:translateY(0);pointer-events:auto}.categories-sidebar{min-width:0}.category-list{display:flex;flex-direction:column;gap:10px}.category-button{position:relative;isolation:isolate;border:1.5px solid transparent;background:var(--project-name-pill-bg);color:var(--project-name-pill-text);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:999px;min-height:var(--category-pill-height);width:var(--category-pill-width);padding:0 clamp(.75rem,1.4vw,1rem);font-size:var(--pill-size);font-family:var(--suisse-font);font-weight:400;letter-spacing:.01em;text-align:center;opacity:0;transform:translateY(14px);transition:opacity .32s ease,transform .32s ease,background-color .24s ease,color .24s ease}.category-button:before{content:"";position:absolute;top:-1.5px;right:-1.5px;bottom:-1.5px;left:-1.5px;box-sizing:border-box;border-radius:1000.5px;border:1.5px solid #ffffff;z-index:1;opacity:0;pointer-events:none;transition:opacity .22s ease}body.is-categories .category-button{opacity:1;transform:translateY(0)}body.is-categories .category-button:nth-child(1){transition-delay:50ms}body.is-categories .category-button:nth-child(2){transition-delay:.12s}body.is-categories .category-button:nth-child(3){transition-delay:.19s}body.is-categories .category-button:nth-child(4){transition-delay:.26s}body.is-categories .category-button:nth-child(5){transition-delay:.33s}.category-button.is-active{background:var(--capsule-bg);color:var(--capsule-text)}.gallery-panel{min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:clamp(24px,3vh,34px);padding-right:6px;scrollbar-gutter:stable both-edges;scroll-snap-type:y mandatory;scroll-padding-top:0}.gallery-section{min-height:100%;height:var(--gallery-section-height, auto);display:flex;flex-direction:column;position:relative;scroll-snap-align:start;scroll-snap-stop:always}.gallery-section.is-carousel{justify-content:center}.gallery-carousel{position:relative;width:100%;height:100%;display:flex;align-items:center}.carousel-track{width:100%;display:flex;align-items:center;gap:var(--carousel-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:auto;overscroll-behavior-y:auto;touch-action:pan-x pan-y pinch-zoom;padding-inline:clamp(6px,2vw,14px);padding-top:clamp(4px,.9vh,10px);padding-bottom:var(--carousel-indicator-clearance, clamp(48px, 8vh, 78px));scrollbar-width:none}.carousel-track::-webkit-scrollbar{display:none}.project-card.carousel-card{flex:0 0 auto;width:calc(var(--carousel-card-height) * var(--carousel-image-ratio, .68));max-width:min(86vw,calc(var(--carousel-card-height) * 1.35));height:auto}.project-card.carousel-card img{width:100%;max-width:100%;height:auto;max-height:var(--carousel-card-height);object-fit:contain}.carousel-indicator-dock{position:absolute;left:50%;bottom:clamp(10px,2vh,18px);transform:translate(-50%);display:inline-flex;align-items:center;gap:clamp(8px,1.8vw,14px);max-width:min(96vw,500px);pointer-events:none}.carousel-indicator{display:inline-flex;align-items:center;gap:clamp(6px,1.6vw,10px);padding:clamp(5px,1.2vw,7px) clamp(8px,2.2vw,12px);border-radius:999px;border:1px solid color-mix(in oklab,var(--border) 100%,transparent);background:color-mix(in oklab,var(--surface) 100%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.carousel-dots{display:inline-flex;align-items:center;gap:clamp(4px,1.2vw,8px);min-width:0}.carousel-dot{width:clamp(4px,1.2vw,6px);height:clamp(4px,1.2vw,6px);border-radius:999px;background:color-mix(in oklab,var(--heading-text) 45%,transparent);transition:transform .2s ease,background-color .2s ease}.carousel-dots,.carousel-counter{pointer-events:none}.carousel-dot.is-active{background:var(--heading-text);transform:scale(1.1)}.carousel-counter{font-family:var(--suisse-font);font-size:clamp(.58rem,1.5vw,.72rem);color:color-mix(in oklab,var(--heading-text) 78%,transparent);letter-spacing:.02em;white-space:nowrap}.carousel-row-controls{display:inline-flex;align-items:stretch;height:var(--carousel-indicator-height, auto);gap:clamp(4px,1vw,8px);pointer-events:auto}.carousel-row-toggle{height:100%;aspect-ratio:1;border-radius:999px;border:1px solid color-mix(in oklab,var(--border) 100%,transparent);background:color-mix(in oklab,var(--surface) 100%,transparent);color:color-mix(in oklab,var(--heading-text) 82%,transparent);display:inline-flex;align-items:center;justify-content:center;padding:clamp(2px,.45vw,4px);flex-shrink:0;cursor:pointer;transition:transform .18s ease,color .18s ease,background-color .18s ease}.carousel-row-toggle-icon{width:100%;height:100%;display:inline-flex;align-items:center;justify-content:center}.carousel-row-toggle-icon svg{width:100%;height:100%;fill:none}.carousel-row-toggle .row-icon-block{fill:currentColor;stroke:none}.carousel-row-toggle .row-icon-gap{fill:currentColor;opacity:.46}.carousel-row-toggle.is-active{color:#fff;background:#000;border-color:#000}.carousel-row-toggle:active{transform:scale(.96)}.carousel-track.is-multi-rows{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-template-rows:repeat(var(--carousel-row-count, 2),minmax(0,1fr));align-content:center;row-gap:var(--carousel-row-gap, clamp(18px, 4vh, 30px));column-gap:var(--carousel-row-column-gap, clamp(12px, 2.8vw, 22px));padding-top:var(--carousel-row-padding-block, clamp(12px, 2.6vh, 22px));padding-bottom:calc(var(--carousel-row-padding-block, clamp(12px, 2.6vh, 22px)) + var(--carousel-indicator-clearance, clamp(48px, 8vh, 78px)))}.carousel-track.is-multi-rows .project-card.carousel-card{width:calc(var(--carousel-card-height) * var(--carousel-image-ratio, .68) * var(--carousel-row-scale, .5));max-width:none}.carousel-track.is-multi-rows .project-card.carousel-card img{max-height:calc(var(--carousel-card-height) * var(--carousel-row-scale, .5))}.gallery-section-title{margin:0 0 10px;font-family:var(--suisse-font);font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;color:color-mix(in oklab,var(--heading-text) 72%,transparent)}.gallery-grid{display:grid;grid-template-columns:repeat(var(--gallery-columns, 12),minmax(0,1fr));grid-auto-rows:var(--section-card-height, var(--category-card-height));gap:var(--gallery-gap);flex:1 1 auto;align-content:stretch}.project-card{margin:0;position:relative;border-radius:5px;min-height:80px;height:var(--section-card-height, var(--category-card-height));border:none;overflow:hidden;background:transparent}.project-card-link{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;text-decoration:none;color:inherit;cursor:pointer}.project-card-link:focus-visible{outline:2px solid color-mix(in oklab,var(--heading-text) 70%,transparent);outline-offset:2px}.project-card img{width:100%;height:100%;object-fit:cover;display:block}.project-card.is-clickable{cursor:pointer}.project-card.portrait{grid-column:span var(--portrait-span, 4)}.project-card.landscape{grid-column:span var(--landscape-span, 8)}.project-card.portrait-tall{grid-column:span var(--portrait-span, 4);grid-row:span 2;height:auto;min-height:0}.project-card figcaption{position:absolute;display:flex;align-items:center;justify-content:center;left:50%;top:50%;transform:translate(-50%,-50%) translateY(8px);max-width:calc(100% - 18px);padding:.34rem .82rem;border-radius:999px;background:var(--project-name-pill-bg);color:var(--project-name-pill-text);font-family:var(--title-font);font-size:clamp(.64rem,3.9vw,.82rem);line-height:1;letter-spacing:.01em;text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);opacity:0;pointer-events:none;z-index:2;transition:opacity .22s ease,transform .22s ease}.project-card:hover figcaption,.project-card:focus-within figcaption{opacity:1;transform:translate(-50%,-50%) translateY(0)}@media(max-width:1170px){.gallery-section[data-category=visual-identity] .project-card{grid-column:span var(--landscape-span, 8)}}@media(max-width:640px){.project-masonry-video iframe,.project-masonry-video video{min-height:200px}}@media(max-width:980px)and (min-width:641px){:root{--pill-size: clamp(.76rem, 1.05vw, .9rem);--pill-height: clamp(2rem, 3vw, 2.3rem);--pill-padding-x: clamp(.82rem, 1.9vw, 1.3rem);--category-pill-width: clamp(126px, 18vw, 170px)}.category-button{padding-inline:clamp(.65rem,1.2vw,.9rem)}.info-button{padding-inline:clamp(.7rem,1.5vw,1.05rem)}}@media(max-width:640px){:root{--toggle-size: 32px;--name-gap: 6px;--pill-padding-x: clamp(.9rem, 5vw, 1.8rem);--category-pill-width: clamp(128px, 45vw, 170px);--categories-gap: 14px;--category-card-height-max: 210px;--mobile-section-gap: clamp(22px, 4vh, 34px);--mobile-bottom-extra: 8px;--actions-bottom-offset: calc(max(env(safe-area-inset-bottom, 0px), 6px) + var(--mobile-bottom-extra));--actions-height: calc(2.2rem + .6rem + 2px);--category-actions-gap: 2px;--categories-stack-clearance: calc(var(--actions-bottom-offset) + var(--actions-height) + var(--category-actions-gap));--bottom-bar-height: calc(var(--actions-bottom-offset) + var(--actions-height) + 10px)}body.is-info-open .info-view,body.is-info-opening .info-view{backdrop-filter:blur(clamp(28px,8vw,52px)) saturate(.86);-webkit-backdrop-filter:blur(clamp(28px,8vw,52px)) saturate(.86)}.info-view-text,.info-view-name{text-align:left;text-justify:auto}.info-view-panels{overflow:hidden}.name{position:relative;gap:8px;transform:translateY(-6px);letter-spacing:-.01em}.theme-toggle{position:absolute;left:50%;top:75%;transform:translate(-50%,-50%);z-index:2}.theme-icon{width:14px;height:14px}.theme-icon.moon{width:17px;height:17px}.name-part-left,.name-part-right{gap:.02em}.pill-button{padding:.3rem clamp(.7rem,4vw,1.2rem);min-height:2.2rem}.info-view-links .pill-button{padding:.3rem var(--pill-padding-x)}body{padding-bottom:var(--bottom-bar-height)}.page{padding-bottom:calc(var(--bottom-bar-height) * .35)}.actions{position:fixed;left:var(--page-gutter);right:var(--page-gutter);width:auto;bottom:var(--actions-bottom-offset);gap:10px;flex-wrap:wrap;justify-content:flex-start;align-items:center;z-index:20;background:transparent;padding:0;border-radius:0;border:none;backdrop-filter:none;-webkit-backdrop-filter:none}body.is-actions-nested{padding-bottom:0}body.is-actions-nested .page{grid-template-rows:0 minmax(0,1fr);gap:6px;padding-bottom:calc(max(env(safe-area-inset-bottom,0px),4px) + var(--mobile-bottom-extra))}body.is-actions-nested .actions{position:static;left:auto;right:auto;bottom:auto;width:100%;margin-top:0;z-index:1;transform:none;flex-wrap:nowrap;order:3;padding-bottom:calc(max(env(safe-area-inset-bottom,0px),2px) + var(--mobile-bottom-extra))}.pill-button{flex:0 1 auto;width:auto;min-width:0;max-width:100%;padding-inline:clamp(.8rem,4vw,1.4rem);text-align:center}.info-button{padding-inline:clamp(.64rem,3.2vw,.95rem)}.actions .pill-button:last-child{margin-left:auto}body.is-categories .actions{display:flex;grid-template-columns:none;flex-wrap:nowrap}body.is-categories .actions .pill-button:last-child{margin-left:auto}.categories-layout{grid-template-columns:1fr;grid-template-rows:1fr auto;row-gap:10px;padding-bottom:var(--categories-stack-clearance);transition:opacity .32s ease,transform .38s ease}body.is-actions-nested .categories-layout{grid-template-rows:minmax(0,1fr) auto auto;row-gap:10px;padding-bottom:0}.categories-sidebar{order:2}body.is-actions-nested .categories-sidebar{position:static;left:auto;right:auto;bottom:auto;z-index:auto}.category-list{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px;padding-bottom:0}.category-button{width:auto;flex:0 0 auto;text-align:center;padding-inline:clamp(.7rem,3.2vw,1rem);white-space:nowrap}.gallery-panel{order:1;padding-bottom:8px;gap:var(--mobile-section-gap);scroll-snap-type:none}body.is-actions-nested .gallery-panel{padding-bottom:0}.gallery-section{scroll-snap-stop:normal}.gallery-grid{grid-template-columns:repeat(var(--gallery-columns, 4),minmax(0,1fr))}.project-card figcaption{left:auto;right:8px;top:auto;bottom:8px;transform:none;max-width:calc(100% - 16px);padding:.28rem .66rem;font-size:.64rem;opacity:1;transition:none}.project-card:hover figcaption,.project-card:focus-within figcaption{opacity:1;transform:none}.actions{margin-top:8px}}.image-trail-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.trail-image{position:absolute;pointer-events:none;object-fit:cover;border-radius:2px;transform:translate(-50%,-50%) rotate(var(--rotation, 0deg)) scale(1);transition:transform .22s ease-out;will-change:transform}.trail-image.fade-out{transform:translate(-50%,-50%) rotate(var(--rotation, 0deg)) scale(0)}.trail-touch-hint{position:fixed;left:50%;top:50%;display:inline-flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transform:translate3d(-50%,-50%,0);transition:opacity .22s ease}.trail-touch-hint-pill{display:inline-flex;align-items:center;justify-content:center;padding:.42rem .9rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--heading-text) 45%,transparent);background:color-mix(in oklab,var(--surface) 84%,transparent);color:var(--heading-text);font-family:var(--suisse-font);font-size:clamp(.58rem,2.9vw,.74rem);letter-spacing:.01em;white-space:nowrap;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.trail-touch-hint.is-visible{opacity:1}@media(hover:hover)and (pointer:fine){.trail-touch-hint{display:none}.actions .pill-button:hover:before{opacity:1}.info-view .pill-button:hover:before{opacity:1}.category-button:not(.is-active):hover:before{opacity:1}.category-button.is-active:hover:before{opacity:0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.seo-noscript{position:fixed;left:var(--page-gutter);right:var(--page-gutter);bottom:var(--page-gutter);font-family:var(--suisse-font);font-size:.95rem;line-height:1.5;max-width:60ch;color:var(--heading-text);background:color-mix(in oklab,var(--surface) 92%,transparent);border:1px solid color-mix(in oklab,var(--heading-text) 28%,transparent);border-radius:18px;padding:1rem 1.2rem}.seo-noscript a{color:inherit}.project-view{display:none;width:100%;min-height:0;padding-bottom:clamp(28px,6vh,72px)}body.is-project-view{--bottom-bar-height: 0px}body.is-project-view .categories-layout{grid-template-columns:1fr}body.is-project-view .categories-sidebar{display:none}body.is-project-view .gallery-panel{gap:0;padding-right:0;scroll-snap-type:none;scrollbar-gutter:auto}body.is-project-view .gallery-section{display:none}body.is-project-view .project-view{display:block}body.is-project-view .page{padding:0;grid-template-rows:auto auto minmax(0,1fr);gap:0}.project-view-content{display:flex;flex-direction:column;gap:clamp(26px,4vh,44px);padding-inline:0}.project-view-loading{min-height:52vh;display:grid;place-items:center;padding:clamp(28px,6vh,72px) clamp(16px,2vw,28px);font-family:var(--mono-font);font-size:clamp(.72rem,.9vw,.86rem);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in oklab,var(--heading-text) 65%,transparent)}.project-intro{height:100vh;min-height:100vh;max-height:100vh;display:flex;flex-direction:column;gap:clamp(16px,2.4vh,28px);padding-bottom:calc(max(env(safe-area-inset-bottom,0px),clamp(8px,1.2vh,16px)) + 30px);overflow:hidden}body.is-project-view .actions{display:flex;align-items:flex-start;justify-content:flex-start;gap:clamp(10px,1.8vw,16px);position:fixed;top:calc(max(env(safe-area-inset-top,0px),0px) + var(--page-gutter));left:0;right:0;width:100%;margin:0;padding-inline:var(--page-gutter);z-index:40;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}body.is-project-view .actions .pill-button:last-child{margin-left:auto}.project-hero{display:flex;flex-direction:column;gap:clamp(10px,1.8vh,16px)}.project-title{margin:0;font-family:var(--title-font);font-weight:400;font-size:clamp(1.8rem,4.8vw,3.8rem);line-height:1.02;letter-spacing:-.02em;color:var(--heading-text)}.project-description{margin:0;max-width:90ch;font-family:var(--suisse-font);font-size:clamp(.92rem,1.15vw,1.06rem);line-height:1.55;color:color-mix(in oklab,var(--heading-text) 90%,transparent);text-align:justify;text-justify:inter-word;-webkit-hyphens:none;hyphens:none;text-wrap:pretty;white-space:pre-line}.project-description em,.project-collaboration em{font-style:italic}.project-collaboration{margin:0;font-family:var(--suisse-font);font-size:clamp(.72rem,.95vw,.82rem);letter-spacing:.01em;color:color-mix(in oklab,var(--heading-text) 70%,transparent);text-align:justify;text-justify:inter-word;-webkit-hyphens:none;hyphens:none;text-wrap:pretty;white-space:pre-line}.project-links{display:flex;flex-wrap:wrap;gap:10px}.project-link{border:1px solid color-mix(in oklab,var(--border) 55%,transparent);border-radius:999px;padding:.32rem .85rem;font-family:var(--suisse-font);font-size:.74rem;text-decoration:none;color:var(--heading-text);background:color-mix(in oklab,var(--surface) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.project-main-image{flex:1 1 0;position:relative;width:100%;max-width:none;margin:0;border-radius:0;overflow:hidden;border:none;background:transparent;min-height:clamp(72px,14vh,180px)}.project-main-image img{display:block;width:100%;height:100%;object-fit:cover}.project-hero,.project-masonry,.project-other{padding-inline:var(--page-gutter)}@media(min-width:1024px){.project-hero,.project-masonry,.project-other{padding-inline:6vw}}@media(min-width:1600px){.project-hero,.project-masonry,.project-other{padding-inline:10vw}}@supports (height: 100dvh){.project-intro{height:100dvh;min-height:100dvh;max-height:100dvh}}.project-masonry{display:flex;flex-direction:column}.project-masonry-columns{--masonry-columns: 2;display:grid;grid-template-columns:repeat(var(--masonry-columns),minmax(0,1fr));gap:8px;align-items:start}.project-masonry-column{min-width:0}.project-masonry-full-row{width:100%}@media(min-width:1024px){.project-masonry.columns-3 .project-masonry-item.is-portrait>img,.project-masonry.columns-3 .project-masonry-item.is-portrait>a>img{width:100%;object-fit:cover}}.project-masonry-item{position:relative;margin:0 0 8px;border-radius:0;overflow:hidden;border:none;background:transparent}.project-snippet-container{position:relative;width:100%;height:auto;aspect-ratio:var(--snippet-ratio, 16 / 10);min-height:clamp(220px,42vh,420px);max-height:70vh;overflow:hidden;touch-action:pan-y;overscroll-behavior:contain;background:color-mix(in oklab,var(--heading-text) 12%,transparent)}.project-snippet-container.is-hero{height:100%;max-height:none;min-height:0;aspect-ratio:auto}.project-snippet-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.project-snippet-iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;opacity:0;transition:opacity .32s ease}.project-snippet-iframe.is-ready{opacity:1}.project-snippet-container.is-active{touch-action:none}.snippet-start-button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;border:none;border-radius:999px;min-width:182px;padding:12px 24px;background:#000;color:#fff;font-family:var(--suisse-font);font-size:14px;font-weight:500;line-height:1.2;cursor:pointer;box-shadow:0 4px 12px #0003;transition:transform .22s ease,background-color .22s ease,opacity .16s ease}.snippet-start-button:hover{transform:translate(-50%,-50%) scale(1.03);background:#1a1a1a}.snippet-start-button.is-hidden{opacity:0;pointer-events:none}.snippet-start-button-icon{display:block;margin-bottom:4px;font-size:16px;line-height:1}.snippet-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;padding:10px 20px;border-radius:999px;font-family:var(--suisse-font);font-size:14px;color:#000;background:#ffffffe6;opacity:0;pointer-events:none;transition:opacity .24s ease}.snippet-loader.is-visible{opacity:1}.project-snippet-container .project-video-unmute[disabled]{opacity:.45;cursor:default}.project-main-image.is-png,.project-masonry-item.is-png,.project-other-card.is-png{background:transparent}.project-masonry-item.is-full{width:100%}.project-masonry-item>img,.project-masonry-link>img{display:block;width:100%;max-width:100%;height:auto;max-height:90vh;object-fit:cover}.project-masonry-item video{display:block;width:100%;height:auto;max-height:90vh;object-fit:contain}.project-masonry-item.is-forced-column{display:flex;flex-direction:column}.project-masonry-item.is-forced-column>video{width:auto;max-width:100%}.project-masonry-item.is-portrait{display:flex;flex-direction:column}.project-masonry-item.is-portrait>img,.project-masonry-item.is-portrait>a>img{width:auto;max-width:100%;max-height:min(82vh,920px);object-fit:contain}.project-masonry-item.is-left{align-items:flex-end}.project-masonry-item.is-right{align-items:flex-start}.project-masonry-item.is-very-tall>img,.project-masonry-item.is-very-tall>a>img{max-height:min(72vh,760px)}@supports (height: 100dvh){.project-masonry-item.is-portrait>img,.project-masonry-item.is-portrait>a>img{max-height:min(82dvh,920px)}.project-masonry-item.is-very-tall>img,.project-masonry-item.is-very-tall>a>img{max-height:min(72dvh,760px)}}img.iland-logo{max-width:60%;margin-inline:auto;display:block}.project-masonry-link{display:block;color:inherit;text-decoration:none}.project-masonry-video{position:relative;aspect-ratio:var(--project-video-aspect-ratio, 16 / 9);overflow:hidden;background:#000;margin:0 0 clamp(10px,1.4vw,18px)}.project-masonry-video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:none}.project-masonry-video.is-cinematic{--project-video-max-h: min(82vh, calc(100vh - (var(--page-gutter) * 2)));width:min(100%,calc(var(--project-video-max-h) * var(--project-video-ratio, 1.7777778) * var(--project-video-width-scale, 1)));margin-left:auto;margin-right:auto;height:auto}@supports (height: 100dvh){.project-masonry-video.is-cinematic{--project-video-max-h: min(82dvh, calc(100dvh - (var(--page-gutter) * 2)))}}.project-masonry-video.is-cinematic iframe{transform:scale(var(--project-video-zoom, 1));transform-origin:center}.project-video-unmute{position:absolute;left:50%;bottom:clamp(10px,2.2vh,18px);transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;z-index:2;border:1px solid color-mix(in oklab,var(--border) 40%,transparent);border-radius:999px;min-width:clamp(38px,3.6vw,44px);min-height:clamp(32px,3.2vw,38px);padding:0;font-family:var(--suisse-font);color:var(--heading-text);background:color-mix(in oklab,var(--surface) 45%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer}.project-video-unmute svg{width:clamp(15px,1.4vw,18px);height:clamp(15px,1.4vw,18px);display:block}.project-video-unmute:focus-visible{outline:2px solid color-mix(in oklab,var(--heading-text) 70%,transparent);outline-offset:2px}.project-video-controls{position:absolute;left:50%;bottom:clamp(50px,7vh,60px);transform:translate(-50%);display:flex;align-items:center;gap:12px;width:calc(100% - 40px);max-width:600px;background:color-mix(in oklab,var(--surface) 45%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid color-mix(in oklab,var(--border) 40%,transparent);border-radius:999px;padding:8px 16px;z-index:10;opacity:0;transition:opacity .3s ease,transform .3s ease;pointer-events:none}.project-masonry-item:hover .project-video-controls{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(-5px)}.project-video-timeline-container{flex-grow:1;height:24px;display:flex;align-items:center;cursor:pointer}.project-video-timeline{width:100%;height:4px;background:color-mix(in oklab,var(--heading-text) 15%,transparent);border-radius:2px;overflow:hidden;position:relative}.project-video-progress{width:0%;height:100%;background:var(--heading-text);border-radius:2px;transition:width .1s linear}.project-video-fullscreen-btn{background:transparent;border:none;padding:6px;cursor:pointer;color:var(--heading-text);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease,transform .2s ease}.project-video-fullscreen-btn:hover{background:color-mix(in oklab,var(--heading-text) 10%,transparent);transform:scale(1.1)}.project-video-fullscreen-btn svg{width:20px;height:20px;display:block}.project-other{padding-top:clamp(6px,1.2vh,12px);border-top:1px solid color-mix(in oklab,var(--border) 32%,transparent);display:flex;flex-direction:column;gap:14px}.project-other-title{margin:0;display:inline-flex;align-items:center;width:fit-content;border:1px solid transparent;border-radius:999px;min-height:var(--pill-height);padding:var(--pill-padding-y) calc(var(--pill-padding-x) * .55);font-family:var(--title-font);font-size:var(--pill-size);letter-spacing:.01em;text-transform:none;color:var(--project-name-pill-text);background:var(--project-name-pill-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.project-other-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1vw,12px)}.project-other-card{display:block;position:relative;border:none;border-radius:0;overflow:hidden;background:transparent;padding:0;margin:0;cursor:pointer;text-align:left;text-decoration:none;color:inherit}.project-other-card img{width:100%;aspect-ratio:4 / 5;object-fit:cover;display:block}.project-other-label{position:absolute;display:flex;align-items:center;justify-content:center;left:50%;top:50%;transform:translate(-50%,-50%) translateY(8px);max-width:calc(100% - 18px);padding:.34rem .82rem;border-radius:999px;background:color-mix(in oklab,#f6f4ef 44%,transparent);border:1px solid color-mix(in oklab,#ffffff 24%,transparent);font-family:var(--title-font);font-size:clamp(.64rem,.9vw,.82rem);line-height:1;letter-spacing:.01em;text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--project-name-pill-text);backdrop-filter:blur(200px);-webkit-backdrop-filter:blur(200px);opacity:0;pointer-events:none;z-index:2;transition:opacity .22s ease,transform .22s ease}.project-other-card:hover .project-other-label,.project-other-card:focus-visible .project-other-label,.project-other-card:focus-within .project-other-label{opacity:1;transform:translate(-50%,-50%) translateY(0)}@media(max-width:900px){.project-description.is-two-columns{column-count:1}}@media(min-width:641px){.project-other{padding-bottom:clamp(18px,3.2vh,40px)}}@media(max-width:640px){.project-description,.project-collaboration{text-align:left;text-justify:auto}body.is-project-view{--bottom-bar-height: 0px}body.is-project-view .gallery-panel{overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:0}body.is-project-view .actions{top:auto;left:var(--page-gutter);right:var(--page-gutter);width:auto;bottom:var(--actions-bottom-offset);gap:10px;flex-wrap:wrap;justify-content:flex-start;align-items:center;padding-inline:0;z-index:30}.project-intro{height:100svh;min-height:100svh;max-height:100svh;gap:clamp(12px,2vh,20px);padding-bottom:calc(var(--actions-height) + var(--actions-bottom-offset) + 30px)}.project-main-image{min-height:clamp(64px,12vh,140px)}.project-snippet-container{min-height:clamp(220px,48svh,420px);max-height:62svh}.project-snippet-container.is-hero{height:100%;min-height:clamp(220px,44svh,520px);max-height:none;aspect-ratio:auto}.project-masonry-video.is-cinematic{--project-video-max-h: min(64svh, calc(100svh - 120px) )}.project-description.is-two-columns{column-count:1;column-gap:0}.project-masonry{display:flex;flex-direction:column}.project-masonry-columns{--masonry-columns: 2}.project-other-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-masonry-item.is-portrait>img,.project-masonry-item.is-portrait>a>img{max-height:min(68svh,640px)}.project-masonry-item.is-very-tall>img,.project-masonry-item.is-very-tall>a>img{max-height:min(60svh,560px)}.project-other-label{left:auto;top:auto;right:clamp(8px,2.4vw,12px);bottom:clamp(8px,2.4vw,12px);max-width:calc(100% - 16px);transform:none;opacity:1;font-size:clamp(.62rem,2.8vw,.74rem)}.project-other-card:hover .project-other-label,.project-other-card:focus-visible .project-other-label,.project-other-card:focus-within .project-other-label{transform:none;opacity:1}.project-other-card:nth-child(3){display:none}}
