/* Project scenes: photography supplies the ground; no framed hero cards. */
.case-page .case-scene.opening{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:100svh;height:auto;padding:180px 7% 10svh;background:var(--scene-ground,#ded9d7);overflow:hidden}
.case-page .case-scene .archive-hero-art,.case-page .case-scene .iris-entrance-art{position:absolute;inset:0;width:100%;height:100%;margin:0;min-height:0;z-index:-2;background:none}
.case-page .case-scene .archive-hero-art img,.case-page .case-scene .iris-entrance-art img{position:absolute;inset:0 0 0 auto;width:68%;height:100%;object-fit:contain;object-position:var(--scene-position,50% 50%);mix-blend-mode:normal;mask-image:linear-gradient(90deg,transparent,black 20%,black 94%,transparent);transform-origin:65% 45%}
.case-page .case-scene[data-scene=environment] .archive-hero-art img{width:100%;object-fit:cover;mask-image:none}
.case-scene:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,var(--scene-ground) 0%,transparent 67%)}
.case-scene[data-scene=environment]:after{background:linear-gradient(90deg,#070b18ab,transparent 85%),linear-gradient(0deg,#070b1866,transparent 65%)}
.case-page .case-scene .opening-copy{position:relative;left:auto;bottom:auto;margin:0;width:53%;max-width:900px;z-index:2}
.case-page .case-scene .opening-copy h1{font-size:clamp(66px,7.7vw,118px);line-height:.97;letter-spacing:-.048em;margin:22px 0 30px;max-width:none;text-shadow:none;overflow-wrap:normal}
.case-page .case-scene .opening-copy>p:not(.small-index){font-size:19px;line-height:1.55;max-width:320px}
.case-page .case-scene .opening-copy>a{font-size:13px;padding:16px 0;margin-top:25px;border-bottom:1px solid currentColor;display:inline-flex;gap:35px;max-width:100%}
.case-page .case-scene[data-ink=light],.case-page .case-scene[data-ink=light] :is(em,.small-index){color:#f6f2ef}
.case-page.scene-dark .nav:not(.menu-open){color:#fff}.case-page.scene-dark .nav:not(.menu-open):before{background:linear-gradient(#080a0b66,transparent)}
.case-page .case-scene[data-ink=dark]{color:#443a4a}
.case-page .archive-intro,.case-page .iris-introduction,.case-page .proposal-intro{padding:115px 8% 100px;background:linear-gradient(150deg,#faf7f3,#efe9f1)}
.case-page .archive-intro h2{max-width:1000px;font-size:clamp(48px,5.7vw,82px)}
.case-page .archive-gallery.reader{padding:45px 3% 100px;background:linear-gradient(135deg,#eee7ee,#faf5ef 55%,#e9edf0)}
.case-page .archive-frames{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 22px;align-items:start}
.case-page .archive-frames>.portrait:first-child{grid-column:span 2;grid-row:span 2}
.case-page .archive-frames>.portrait:nth-child(4n+2){padding:0;margin-top:70px}
.case-page .archive-frames>.wide{grid-column:1/-1}
.case-page .archive-gallery[data-layout=contact] .archive-frame{grid-column:auto;grid-row:auto;margin:0}
.case-page .archive-gallery-heading{padding:0 2%;margin-bottom:45px}
.case-page .archive-development.reader{display:block;padding:90px 0 70px;background:linear-gradient(125deg,#ece6ef,#fbf5ef 48%,#e4edef)}
.case-page .archive-development-title{position:relative;top:auto;padding:0 8%;margin-bottom:60px}
.case-page .archive-development-title>p:last-child{max-width:500px}
.case-page .archive-boards{gap:45px}
.case-page .archive-boards:not(.studies) .archive-frame{width:100%;padding:0;margin:0}
.case-page .archive-boards:not(.studies) figcaption{padding:16px 5% 0}
.case-page .archive-boards.studies{padding:0 5%;gap:45px 5%}
.case-page .archive-enlarge,.case-page .iris-image-hint{background:none;color:white;text-shadow:0 1px 6px #000;filter:drop-shadow(0 1px 2px #0006)}
.case-page #flower-dock{display:block!important;visibility:visible!important;pointer-events:auto!important}
.case-page .flower-speech{display:block!important;visibility:visible!important}
.case-page .iris-title h1{font-size:clamp(86px,10vw,150px)!important}
.case-page .iris-margin-note{display:none}
.case-page .iris-detail-label{position:absolute;left:7%;bottom:8%;padding:0;color:white;text-shadow:0 2px 15px #342039}
.case-page .iris-detail-label .small-index{color:white}
.case-page .iris-detail-label>p:last-child{font-size:clamp(45px,6vw,86px)}
.case-page .iris-process-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:65px 5%}
.case-page .iris-process-grid .zoom-trigger{aspect-ratio:auto;background:none}
.case-page .iris-process-grid img{height:auto!important;object-fit:contain}
.case-page .iris-process-grid figure:nth-child(even){margin-top:100px}
.case-page .iris-process-board{padding-top:80px;grid-column:1/-1}
.case-page .iris-closing{background:#bdb4a7}
.case-page .iris-closing figure img{mix-blend-mode:normal;mask-image:linear-gradient(90deg,transparent,black 12%,black 88%,transparent)}
.case-page .proposal-opening:not(.tpms-opening){background:radial-gradient(ellipse at 82% 15%,#c1badb,transparent 55%),radial-gradient(ellipse at 5% 90%,#d5dedb,transparent 60%),#f2ece8}
.case-page .tpms-opening{position:relative;isolation:isolate;display:flex;min-height:100svh;padding:190px 7% 10svh;align-items:flex-end;background:#e6e8e0}
.case-page .tpms-opening-photo{position:absolute;inset:0;z-index:-2}.case-page .tpms-opening-photo img{width:100%;height:100%;object-fit:cover}.case-page .tpms-opening-photo figcaption{position:absolute;right:4%;bottom:3%;color:white;max-width:36%}
.case-page .tpms-opening:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#e6e8e0fa,#e6e8e099 42%,transparent 85%)}
.case-page .tpms-opening .opening-copy{width:48%}
@media(max-width:900px){.case-page .case-scene .opening-copy{width:62%}.case-page .case-scene .opening-copy h1{font-size:clamp(58px,8.5vw,86px)}.case-page .archive-frames{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){
.case-page .case-scene.opening{min-height:110svh;padding:68svh 7% 55px;display:block}
.case-page .case-scene .archive-hero-art img,.case-page .case-scene .iris-entrance-art img{width:100%;height:76svh;object-position:50% 30%;mask-image:linear-gradient(0deg,transparent,black 22%,black 95%,transparent);inset:0}
.case-page .case-scene[data-scene=environment] .archive-hero-art img{height:100%;object-position:var(--scene-position);mask-image:none}
.case-scene:after{background:linear-gradient(0deg,var(--scene-ground) 0%,transparent 55%)}
.case-scene[data-scene=environment]:after{background:linear-gradient(0deg,#070b18da,transparent 95%)}
.case-page .case-scene .opening-copy{width:100%;max-width:none;margin:0}
.case-page .case-scene .opening-copy h1{font-size:clamp(48px,14vw,78px);overflow-wrap:anywhere;margin:18px 0 22px}
.case-page .iris-title h1{font-size:clamp(64px,19vw,95px)!important}
.case-page .case-scene .opening-copy>p:not(.small-index){font-size:17px}
.case-page .archive-intro,.case-page .iris-introduction,.case-page .proposal-intro{padding:70px 7%}
.case-page .archive-intro h2{font-size:42px}
.case-page .archive-frames{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}
.case-page .archive-frames>.portrait:first-child{grid-column:span 2;grid-row:auto}
.case-page .archive-frames>.portrait:nth-child(3n+2){width:100%}.case-page .archive-frames>.portrait:nth-child(4n+2){margin-top:35px}
.case-page .archive-frame figcaption{font-size:9px;letter-spacing:.06em}.case-page .archive-enlarge{width:28px;height:28px;line-height:28px;right:7px;bottom:7px}
.case-page .archive-development.reader{padding:65px 0 45px}.case-page .archive-development-title{padding:0 7%;margin-bottom:40px}.case-page .archive-boards{gap:30px}
.case-page .iris-process-grid{gap:35px 20px}.case-page .iris-process-grid figure:nth-child(even){margin-top:45px}.case-page .iris-process-board{padding-top:40px}
.case-page .tpms-opening{padding:72svh 7% 55px;min-height:110svh}.case-page .tpms-opening-photo img{height:80svh;object-position:70% center}.case-page .tpms-opening:after{background:linear-gradient(0deg,#e6e8e0 5%,transparent 85%)}.case-page .tpms-opening .opening-copy{width:100%}.case-page .tpms-opening-photo figcaption{display:none}
}
@media(prefers-reduced-motion:reduce){.case-page [data-case-motion]{transform:none!important;opacity:1!important}}
/* Mask follows the photograph's actual bounds, not its contain letterbox. */
@media(min-width:651px){.case-page .case-scene[data-scene=studio] .archive-hero-art img,.case-page .case-scene[data-scene=studio] .iris-entrance-art img{width:auto;max-width:75%;right:5%;left:auto;mask-image:linear-gradient(90deg,transparent,black 14%,black 84%,transparent)}.case-page .case-scene[data-scene=studio]:after{background:linear-gradient(90deg,var(--scene-ground),transparent 64%)}}
@media(max-width:650px){.case-page .case-scene[data-scene=studio] .archive-hero-art img,.case-page .case-scene[data-scene=studio] .iris-entrance-art img{width:100%;object-fit:cover;mask-image:linear-gradient(0deg,transparent,black 30%,black 92%,transparent)}}
@media(min-width:651px){.case-page .case-scene[data-scene=studio] .archive-hero-art img,.case-page .case-scene[data-scene=studio] .iris-entrance-art img{width:min(64vw,calc(100svh * var(--scene-ratio, .6)));height:auto;max-width:none;top:50%;bottom:auto;translate:0 -50%;object-fit:contain}.archive-project[data-project=three-mirrors] .case-scene .archive-hero-art img{width:60vw;right:0}.archive-project[data-project=three-mirrors] .opening-copy{width:38%}.archive-project[data-project=three-mirrors] .opening-copy h1{font-size:clamp(64px,6.5vw,94px)}}
@media(max-width:650px){.case-page .case-scene[data-scene=studio] .archive-hero-art img,.case-page .case-scene[data-scene=studio] .iris-entrance-art img{width:min(100vw,calc(76svh * var(--scene-ratio,.6)));height:auto;max-width:none;top:0;left:50%;right:auto;translate:-50% 0;object-fit:contain;mask-image:linear-gradient(0deg,transparent,black 20%,black 97%,transparent)}}
.case-page .tpms-opening-photo{margin:0!important}
@media(max-width:650px){.case-page .case-scene[data-scene=studio][data-scene-shape=wide]{padding-top:50svh;min-height:95svh}.case-page .case-scene[data-scene=studio][data-scene-shape=wide] .archive-hero-art img{top:10svh}.case-page .case-scene[data-scene=studio][data-scene-shape=wide]:after{background:linear-gradient(0deg,var(--scene-ground) 0%,transparent 67%)}}
.case-page .iris-detail:after{content:'';position:absolute;inset:45% 0 0;pointer-events:none;background:linear-gradient(transparent,#22192c88);z-index:1}.case-page .iris-detail-label{z-index:2}
/* Position the source with layout, leaving transforms exclusively to motion. */
.case-page .case-scene[data-scene=studio] :is(.archive-hero-art,.iris-entrance-art){display:flex;align-items:center;justify-content:flex-end;padding-right:5%}
.case-page .case-scene[data-scene=studio] :is(.archive-hero-art,.iris-entrance-art) img{position:relative;inset:auto;translate:none}
@media(max-width:650px){.case-page .case-scene[data-scene=studio] :is(.archive-hero-art,.iris-entrance-art){align-items:flex-start;justify-content:center;padding:0}.case-page .case-scene[data-scene=studio] :is(.archive-hero-art,.iris-entrance-art) img{inset:auto;translate:none}.case-page .case-scene[data-scene=studio][data-scene-shape=wide] .archive-hero-art img{top:auto;margin-top:10svh}}
@media(min-width:651px) and (max-width:1000px){.case-page .case-scene[data-scene=studio]{padding-top:62svh;min-height:100svh}.case-page .case-scene[data-scene=studio] .opening-copy{width:90%}.case-page .case-scene[data-scene=studio] :is(.archive-hero-art,.iris-entrance-art){align-items:flex-start;justify-content:flex-end;padding:65px 4% 0}.case-page .case-scene[data-scene=studio] :is(.archive-hero-art,.iris-entrance-art) img{height:67svh;width:auto;max-width:80%;mask-image:linear-gradient(0deg,transparent,black 23%,black 97%,transparent)}.case-page .case-scene[data-scene=studio]:after{background:linear-gradient(0deg,var(--scene-ground),transparent 65%)}.case-page .case-scene[data-scene=studio] .opening-copy h1{font-size:76px}.case-page .iris-title h1{font-size:98px!important}}
.case-page .case-scene[data-ink=dark],.case-page .case-scene[data-ink=dark] .small-index{color:#302634}.case-page .case-scene[data-ink=dark] em{color:#503964}
@media(max-width:1000px){.case-page .case-scene[data-scene=studio] :is(.archive-hero-art,.iris-entrance-art) img{mask-image:linear-gradient(90deg,transparent,black 12%,black 88%,transparent),linear-gradient(0deg,transparent,black 22%,black 95%,transparent);mask-composite:intersect}}
.case-page .case-scene .opening-copy h1{overflow-wrap:anywhere}
.case-page #flower-dock.is-hidden{visibility:hidden!important;pointer-events:none!important}
/* The closing object belongs to the same studio ground as the opening. */
.case-page .iris-closing{background:#998f86;color:#302634}
.case-page .iris-closing :is(em,.small-index){color:#49315c}
.case-page .iris-closing figure .zoom-trigger{height:auto!important;min-height:0}
.case-page .iris-closing figure img{height:auto!important;object-fit:contain;mask-image:linear-gradient(90deg,transparent,black 12%,black 88%,transparent),linear-gradient(0deg,transparent,black 14%,black 94%,transparent);mask-composite:intersect}
.case-page .iris-closing figure{display:flex;justify-content:center;min-width:0}
.case-page .iris-closing figure .zoom-trigger{width:min(100%,calc(78svh * .6))}
/* Remove only verified blank outer canvas in the reader; zoom uses the full original. */
.board-reading-window{display:block;width:100%;position:relative;overflow:hidden}
.case-page .archive-boards .zoom-trigger:hover img{transform:none}
.case-page .archive-project[data-project=venus] :is(.archive-gallery,.archive-development),
.case-page .archive-project[data-project=create-me] .archive-development{background:#000;color:#f5eef7}
.case-page .archive-project[data-project=venus] :is(.archive-gallery,.archive-development) :is(.small-index,em),
.case-page .archive-project[data-project=create-me] .archive-development :is(.small-index,em){color:#d2bfdc}
.case-page .archive-project[data-project=venus] .archive-density button[aria-pressed=true]{border-color:#e1d0ea}
.case-page .archive-project[data-project=venus] .archive-gallery{padding-inline:0}
.case-page .archive-project[data-project=venus] .archive-gallery-heading{padding-inline:5%}
.case-page .archive-project[data-project=venus] .archive-frames>.wide figcaption{padding-inline:5%}

/* Iris: photographic entrance, short statements, and uninterrupted model plates. */
.case-page .iris-entrance[data-scene=environment] .iris-entrance-art img{width:100%;height:100%;max-width:none;inset:0;object-fit:cover;object-position:50% 43%;mask-image:none;mix-blend-mode:normal}
.case-page .iris-entrance[data-scene=environment]:after{background:linear-gradient(180deg,#21112599,transparent 100px),linear-gradient(90deg,#27113f70,transparent 80%),linear-gradient(0deg,#27113f88,transparent 75%)}
.case-page .iris-entrance .iris-title{color:#fff}
.case-page .iris-entrance .iris-title :is(em,.small-index){color:#fff}
.case-page .iris-intro-bottom{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap}
.case-page .iris-intro-bottom .iris-medium{font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.case-page .iris-process{padding:100px 0 0!important;background:#fff}
.case-page .iris-process-heading{margin-inline:7%}
.case-page .iris-process-grid{margin:0 7% 95px;align-items:center}
.case-page .iris-process-grid figure:nth-child(even){margin-top:0}
.case-page .iris-process-grid img{max-height:76svh;object-fit:contain}
.case-page .iris-models figure{margin-bottom:60px}
.case-page .iris-models img{width:100%;height:auto!important}
.case-page .iris-models figcaption{margin:16px 7% 0}
.case-page .iris-models .zoom-trigger:hover img{transform:none}
.case-page .iris-print{padding:45px 0 70px;background:#f5f0eb}
.case-page .iris-print figure{width:min(68%,780px);margin:auto}
.case-page .iris-print img{max-height:90svh;object-fit:contain}
@media(max-width:650px){.case-page .iris-entrance.case-scene.opening{min-height:100svh;padding:48svh 7% 45px}.case-page .iris-process{padding-top:65px!important}.case-page .iris-process-grid{margin-bottom:55px;gap:20px}.case-page .iris-print figure{width:86%}}

/* Dark-ground objects read as one continuous gallery rather than pale cards. */
.case-page .archive-project[data-project=recur] .archive-gallery{background:#050914;color:#f0eaf6;padding-inline:0}
.case-page .archive-project[data-project=alien-bride] .archive-gallery{background:#080909;color:#f0eaf6;padding-inline:0}
.case-page .archive-project:is([data-project=recur],[data-project=alien-bride],[data-project=above-clouds],[data-project=three-mirrors]) .archive-gallery :is(.small-index,figcaption){color:#c8bed7}
.case-page .archive-project:is([data-project=recur],[data-project=alien-bride],[data-project=above-clouds],[data-project=three-mirrors]) .archive-gallery-heading{padding-inline:5%}
.case-page .archive-project:is([data-project=recur],[data-project=alien-bride],[data-project=above-clouds],[data-project=three-mirrors]) .archive-frame figcaption{padding-inline:5%}
.case-page .archive-project:is([data-project=recur],[data-project=alien-bride],[data-project=above-clouds],[data-project=three-mirrors]) .archive-density button[aria-pressed=true]{border-color:#c8bed7}

.case-page .tpms-opening{overflow:hidden}

.case-page .archive-project[data-project=above-clouds] .archive-gallery{background:#030303;color:#f0eaf6}
.case-page .archive-project[data-project=three-mirrors] .archive-gallery{background:#0c1114;color:#f0eaf6;padding-inline:0}
.case-page .archive-project[data-project=five-elements] .archive-gallery{background:#fff;padding-inline:0}
.case-page .archive-project[data-project=five-elements] .archive-gallery-heading,.case-page .archive-project[data-project=five-elements] figcaption{padding-inline:5%}

.case-page .archive-development-title h2 em{display:block}

/* Carry the gallery atmosphere into the warm closing without a section seam. */
.case-page .archive-project[data-project=herlo] .archive-gallery.reader{
 background:
 linear-gradient(to bottom,rgba(248,243,240,0) 0%,rgba(248,243,240,.08) 18%,rgba(248,243,240,.3) 38%,rgba(248,243,240,.65) 62%,rgba(248,243,240,.92) 83%,#f8f3f0 100%) bottom / 100% clamp(240px,32vh,420px) no-repeat,
 linear-gradient(135deg,#eee7ee,#faf5ef 55%,#e9edf0);
}
.case-page .archive-project[data-project=herlo] .archive-notes{border-top:0;background:#f8f3f0}
