*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:#f9f9f7;color:#292a28;font:14px Montserrat,Arial,sans-serif;overflow-x:clip}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}header{position:fixed;inset:0 0 auto;z-index:5;display:flex;justify-content:space-between;padding:28px 4vw;pointer-events:none}header a{pointer-events:auto;padding:10px;background:#ffffffad}header>span{padding:10px;font-size:12px;letter-spacing:2px;text-transform:uppercase}#runway-world{position:fixed;inset:0;background:#f7f7f4}#runway-world canvas{display:block;width:100%;height:100%}#runway-scroll{height:560svh}.runway-intro{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;text-align:center}.runway-intro p{font-size:12px;letter-spacing:4px}.runway-intro h1{font:400 clamp(42px,6vw,82px)/1 'Cormorant Garamond',serif;margin:20px 0 28px}.runway-intro>span{font-size:12px}.project-card{position:fixed;left:0;top:0;width:300px;min-height:380px;padding:14px 14px 22px;background:#fafaf8;border:1px solid #d6d6d0;box-shadow:0 12px 40px #33333312;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;transform-origin:center;visibility:hidden;will-change:transform,opacity}.project-card img{width:100%;height:245px;object-fit:cover}.project-card strong{font:400 42px/1 'Cormorant Garamond',serif}.project-card>span{font-size:12px}.project-card .project-number{font-size:10px;letter-spacing:2px}.project-card em{font:italic 22px/1.3 'Cormorant Garamond',serif}.paper{min-height:380px;gap:27px}.project-index{position:fixed;z-index:5;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:24px;padding:8px 16px;background:#ffffffc9;white-space:nowrap}.project-index button{background:none;border:0;padding:10px 0;opacity:.5;font-size:12px}.project-index button[aria-current=true]{opacity:1}.project-index span{margin-left:6px}dialog{border:0;width:min(850px,92vw);max-height:88svh;padding:50px;background:#fafaf8}dialog::backdrop{background:#2228;backdrop-filter:blur(8px)}.close-detail{position:absolute;right:20px;top:14px;border:0;background:none;padding:10px}dialog h2{font:48px/1 'Cormorant Garamond',serif;margin:20px 0}dialog p{line-height:1.7;max-width:48ch}dialog video{max-height:55svh;width:100%;object-fit:contain}dialog a{display:inline-block;padding:12px 0;border-bottom:1px solid #777}.no-webgl #runway-world{background:linear-gradient(160deg,#f2f2ee,#fff 50%,#e1e1dc)}@media(max-width:700px){header{padding:16px 12px;font-size:12px}.project-card{width:250px;min-height:325px}.project-card img{height:195px}.project-card strong{font-size:36px}.project-index{gap:18px;padding:6px 12px}.project-index span{display:none}.project-index button{min-width:40px;min-height:40px}dialog{padding:45px 24px 28px}.runway-intro h1{font-size:49px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* The cards follow their world position and perspective, not timed pop-ups. */
.project-card,.project-card.paper{width:300px;height:400px;min-height:400px;gap:16px;box-shadow:0 4px 14px #0000000a;backface-visibility:hidden}.project-card img{height:245px}.project-card strong{font-size:42px}.project-card .project-number{font-size:12px}.project-card>span{font-size:14px}.project-index,header{z-index:200}.runway-intro h1{font-size:clamp(40px,5vw,68px)}.runway-intro{z-index:120}.project-card:focus-visible{outline:2px solid #777;outline-offset:5px}dialog{z-index:300}#runway-world{background:#fff}.project-index{border:1px solid #eee}
#runway-world,#runway-panels{position:fixed;inset:0 auto auto 0;width:100%;height:100svh;overflow:hidden}#runway-panels{pointer-events:none;z-index:2}#runway-panels .project-card{position:absolute;will-change:transform;transform-origin:center;pointer-events:auto;margin:0;width:300px;height:400px;background:#fff;border:1px solid #d5d2cf;box-shadow:none}#runway-scroll{height:760svh}.runway-intro{height:100svh;bottom:auto;z-index:4}.runway-intro h1{font-size:clamp(42px,5.5vw,76px);margin-top:16px}.runway-intro>span{position:absolute;bottom:calc(90px + env(safe-area-inset-bottom,0px));font-size:12px}.project-index{bottom:calc(18px + env(safe-area-inset-bottom,0px))}header{padding-top:calc(18px + env(safe-area-inset-top,0px))}.no-webgl #runway-world{background:linear-gradient(105deg,#f5f5f4 20%,#d5d3d2 21%,#dedcda 79%,#f5f5f4 80%)}@media(max-width:700px){.runway-intro h1{font-size:46px}.project-index{bottom:calc(16px + env(safe-area-inset-bottom,0px))}#runway-panels .project-card{width:300px;height:400px;min-height:400px}.project-card img{height:245px}.project-card strong{font-size:42px}header>span{font-size:10px;letter-spacing:1px}}

/* Exhibition placards and a restrained fashion-show index. */
/* Continuous movement over a compact native scroll distance. */
#runway-scroll{height:430svh}
.runway-figure{position:absolute;left:0;top:0;width:300px;height:450px;pointer-events:none;backface-visibility:hidden}
.runway-figure img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
#runway-panels button.project-card{
  padding:34px 28px 30px;align-items:flex-start;justify-content:center;gap:20px;
  background:#f5f1e9;border:0;border-top:3px solid #302d29;border-bottom:3px solid #302d29;
  text-align:left;color:#302d29;box-shadow:inset 0 0 0 1px #d4cbbb;
}
#runway-panels .project-card::before{content:'VILLA DOCE';position:absolute;top:14px;right:28px;font:8px/1 Montserrat,sans-serif;letter-spacing:2px}
#runway-panels .project-card::after{content:'';position:absolute;left:28px;right:28px;bottom:15px;border-top:1px solid #c8bcaa}
#runway-panels .project-card .project-number{order:-2;font-size:10px;letter-spacing:1.8px;line-height:1.4;padding-bottom:12px;border-bottom:1px solid #a79a86;width:100%}
#runway-panels .project-card strong{font-size:62px;line-height:.95;font-weight:400;letter-spacing:-1.5px;max-width:8ch}
#runway-panels .project-card em{font-size:23px;line-height:1.3;max-width:18ch}
#runway-panels .project-card>span:last-child{font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-top:10px;padding-bottom:5px;border-bottom:1px solid #867b6c}
#runway-panels .project-card img{order:-1;width:100%;height:142px;object-fit:cover;flex-shrink:0}
#runway-panels .project-card:has(img){gap:12px}
#runway-panels .project-card:has(img) strong{font-size:48px}
#runway-panels .project-card:hover{box-shadow:inset 0 0 0 1px #8a7a62}
#runway-panels .project-card{padding:24px;border-color:#bab7b2;background:#fcfbf9;transition:border-color .25s}.project-card.paper{gap:32px}.project-card:focus-visible{outline:3px solid #292a28;outline-offset:8px}.project-card:hover{border-color:#292a28}.project-index{border:0;border-top:1px solid #bdbbb6;background:#ffffffed;padding-inline:22px}.project-index button{transition:opacity .2s;border-bottom:1px solid transparent}.project-index button[aria-current=true]{border-bottom-color:#292a28}.project-index button:focus-visible{outline:1px solid #292a28;outline-offset:4px}
/* Floating exhibits; transparent typographic controls. */
header a,header>span,.project-index{background:transparent;border:0;box-shadow:none}
#runway-panels button.project-card{background:#f6f4ee;border:0;box-shadow:0 8px 40px #16151016}
#runway-panels .project-card em{font-size:19px;line-height:1.35}
#runway-panels .project-card strong{font-size:54px}
#runway-panels .project-card:has(img) strong{font-size:42px}
#project-detail{opacity:0;transform:translateY(24px) scale(.985);transition:opacity .42s ease,transform .6s cubic-bezier(.2,.7,.2,1);width:min(1000px,94vw);padding:64px clamp(24px,6vw,90px);overscroll-behavior:contain}
#project-detail.revealed{opacity:1;transform:none}
#project-detail::backdrop{background:#24232000;backdrop-filter:blur(0);transition:background .42s,backdrop-filter .42s}
#project-detail.revealed::backdrop{background:#24232066;backdrop-filter:blur(6px)}
#project-detail p{max-width:65ch;line-height:1.85;margin:0 0 24px;font-size:15px}
#project-detail h2{font-size:clamp(38px,5vw,62px);line-height:1.05;margin:16px 0 32px}
#project-detail h3{font:400 30px/1.2 'Cormorant Garamond',serif;margin:34px 0 22px}
#project-detail .detail-venue{font-size:11px;letter-spacing:1.4px;text-transform:uppercase}
#project-detail video{margin:0 0 32px}.detail-gallery{display:grid;gap:24px;margin:32px 0}.detail-gallery img{display:block;width:100%;height:auto}
body.detail-open{overflow:hidden}.project-index{max-width:96vw;gap:20px}.project-index button{white-space:normal}
@media(max-width:700px){#project-detail{max-height:90svh;padding:52px 24px 32px}.project-index{gap:12px}.project-index span{display:none}}
@media(prefers-reduced-motion:reduce){#project-detail,#project-detail::backdrop{transition:none}}

.project-enquiry-cta{display:inline-block;font:inherit;color:inherit;background:none;border:0;border-bottom:1px solid currentColor;padding:12px 0;cursor:pointer}.project-enquiry{border:1px solid #d8d4cc;background:#fffefa;color:#222;width:min(600px,calc(100vw - 32px));max-height:90svh;padding:clamp(24px,5vw,48px);overflow:auto;box-sizing:border-box}.project-enquiry::backdrop{background:#17171780}.project-enquiry h2{font:400 clamp(30px,5vw,42px)/1.1 'Cormorant Garamond',serif;margin:24px 0}.enquiry-close{display:block;margin-left:auto;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.project-enquiry label{display:block;font-size:13px;margin:24px 0 0}.project-enquiry input:not([type=checkbox]),.project-enquiry textarea{display:block;box-sizing:border-box;width:100%;padding:12px 0;background:transparent;border:0;border-bottom:1px solid #999;font:16px/1.5 Montserrat,Arial,sans-serif;color:inherit;border-radius:0}.project-enquiry textarea{resize:vertical}.enquiry-submit{margin-top:28px;padding:14px 20px;background:#222;color:#fff;border:0;font:inherit;cursor:pointer}.enquiry-submit:disabled{opacity:.55}.enquiry-status,.enquiry-context{font:13px/1.7 Montserrat,Arial,sans-serif}.enquiry-trap{position:absolute;left:-10000px}.project-enquiry :focus-visible{outline:2px solid #65665d;outline-offset:4px}

#runway-panels button.project-card{background:#fff}

/* Light editorial labels sit over the burgundy runway, never inside panels. */
.runway-intro{justify-content:flex-start;padding-top:58svh;color:#fff;text-shadow:0 1px 4px #26050d80}
.runway-intro h1{font-size:clamp(38px,5vw,68px);margin:10px 0 0}
.runway-intro p{margin:0}
.project-index{color:#fff;text-shadow:0 1px 3px #26050d80}
.project-index button{opacity:.72}
.project-index button[aria-current=true]{opacity:1;border-bottom-color:#fff}
.project-index button:focus-visible{outline-color:#fff}
@media(max-height:500px){.runway-intro{padding-top:52svh}.runway-intro h1{font-size:36px}.runway-intro>span{bottom:70px}}

/* Explicit centring also applies to the absolutely positioned hint in Safari. */
.runway-page .runway-intro{left:0;right:0;width:100%;padding-inline:20px;align-items:center}
.runway-page .runway-intro>p,.runway-page .runway-intro>h1{width:100%;max-width:100%;text-align:center}
.runway-page .runway-intro>span{left:0;right:0;width:100%;text-align:center;padding-inline:20px}
/* A chosen cover has its own space within the existing 300 x 400 placard. */
#runway-panels .project-card:has(img){padding:34px 28px 28px;gap:10px;justify-content:flex-start}
#runway-panels .project-card:has(img) .project-number{flex:none;font-size:9px;letter-spacing:1px;line-height:1.35;padding-bottom:8px}
#runway-panels .project-card:has(img) img{height:104px;flex:none;object-fit:cover}
#runway-panels .project-card:has(img) strong{font-size:34px;line-height:1;letter-spacing:-.6px;max-width:100%;flex:none}
#runway-panels .project-card:has(img) em{font-size:16px;line-height:1.25;max-width:100%;flex:none}
#runway-panels .project-card:has(img)>span:last-child{margin-top:auto;font-size:9px;line-height:1.3;flex:none}
/* Only the content scrolls, so Close remains available throughout a gallery. */
#project-detail{padding:0;overflow:hidden;max-height:90svh}
#project-detail[open]{display:flex;flex-direction:column}
.detail-toolbar{display:flex;justify-content:flex-end;flex:none;padding:10px 16px;background:#fafaf8;border-bottom:1px solid #e4e2dd;z-index:1}
#project-detail .close-detail{position:static;min-height:44px;padding:10px 14px;background:none}
#detail-content{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:24px clamp(24px,6vw,90px) 40px;-webkit-overflow-scrolling:touch}
.detail-back{display:block;margin-top:32px;padding:12px 0;min-height:44px;border:0;border-bottom:1px solid currentColor;background:none}
@media(max-width:700px){#project-detail{width:calc(100% - 32px);padding:0}#detail-content{padding:24px 20px 32px}}

#runway-world,#runway-panels{direction:ltr}html[dir=rtl] .project-card,html[dir=rtl] #detail-content{direction:rtl}.project-card strong,.project-card em{overflow-wrap:anywhere}
