/* Additive Figma text only. Reuse existing local fonts and page scale systems. */
@font-face{font-family:Added Title CJK;src:url('../case-figma/portfolio-cjk.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
.added-frame-titles{position:absolute;inset:0;z-index:30;pointer-events:none}
.added-frame-title{position:absolute;box-sizing:border-box;margin:0;padding:0;border:0;font-family:'Directory Albert','Added Title CJK',sans-serif;font-style:normal;font-weight:200;font-synthesis:none;text-transform:uppercase;white-space:nowrap;transform-origin:0 0;text-rendering:geometricPrecision}
.added-web-titles{inset:0 auto auto 0;width:calc(100% / var(--case-scale,1));height:calc(100% / var(--case-scale,1));transform:scale(var(--case-scale,1));transform-origin:0 0;opacity:var(--banner-title-opacity,1)}
[data-case-title-in-flight]{opacity:0!important}
[data-case-content-curtain]{opacity:0!important;pointer-events:none!important}
[data-case-content-curtain] *{pointer-events:none!important}
[data-directory-intro-pending] .directory-entry-layout > [data-node-id] > :not([data-node-id="1017:131"],[data-node-id="1018:167"],[data-node-id="1018:170"]){opacity:0}
.case-title-motion-layer{position:fixed;inset:0;z-index:80;overflow:clip;pointer-events:none}
.case-title-motion-piece{position:absolute;left:0;top:0;transform-origin:0 0}
::highlight(case-title-unprinted){color:transparent}
html[data-case-cover] .case-title-motion-layer{view-transition-name:portfolio-case-title-layer}
::view-transition-group(portfolio-case-title-layer){z-index:5;animation:none}
::view-transition-old(portfolio-case-title-layer){display:none}
::view-transition-new(portfolio-case-title-layer){mix-blend-mode:normal;animation:case-title-layer-hold 760ms linear both}
@keyframes case-title-layer-hold{from,to{opacity:1}}
/* Match ROAD PARTY at the top of each case page. */
:is(#feast-of-the-gods,#case-frame-11,#case-frame-12,#case-frame-15,#case-frame-16){
  position:relative;
  --event-title-height:40px;
  --event-title-top:calc(var(--portfolio-nav-y,24px) + (var(--portfolio-nav-height,45px) - var(--event-title-height) * var(--portfolio-title-scale,1)) / 2);
  --event-content-offset:calc(var(--event-title-top) - 126px * var(--portfolio-title-scale,1));
}
.added-event-titles{inset:var(--event-title-top) auto auto 0;width:1920px;height:var(--event-title-height);transform:scale(var(--portfolio-title-scale,1));transform-origin:0 0}
.added-event-titles .added-frame-title:nth-child(3){text-align:right}
.added-frame-title.cabin-heading{white-space:pre}
[data-title-layout] .added-frame-title{font-family:'Directory Albert','Portfolio CJK ExtraLight',sans-serif}
/* Both scene captions share the established relay/handoff animation clocks. */
.render-added-number{opacity:0}
[data-aigc-continuation] .aigc-added-number{opacity:var(--aigc-label-opacity,0);translate:0 var(--aigc-label-y,16px)}
/* Centre the entire directory composition, including previews and hit areas.
   Its content bounds were y=206…932, whose midpoint is 29 below y=540. */
#case-directory .figma-frame,#case-directory .directory-chapter{translate:0 -29px}
/* Text-only chapter bounds: 211…1673.55. Balance that composition around x=960;
   previews and hit areas follow the same offset, independently of edge titles. */
#case-directory .directory-entry-layout{position:absolute;inset:0;translate:17.725px 0}
#case-directory .directory-chapter{translate:17.725px -29px}
[data-render-dual] .render-row-title{left:0}
[data-render-dual] .render-chinese-title{right:0}
/* Compensate for each board's scale so chapter titles have one displayed size. */
#case-frame-3 :is(.render-added-number,.render-row-title,.render-chinese-title),
#case-frame-21 :is(.aigc-added-number,.aigc-text){
  font-family:'Directory Albert','Portfolio CJK ExtraLight',sans-serif;
  font-size:calc(45px * var(--chapter-title-scale,1) / var(--render-scale,1))!important;
}
#case-frame-4 .poster-labels .added-frame-title,
#case-frame-5 .added-web-titles .added-frame-title{
  font-family:'Directory Albert','Portfolio CJK ExtraLight',sans-serif;
  font-size:calc(45px * var(--chapter-title-scale,1) / var(--title-board-scale,1))!important;
}
#case-frame-4 .poster-labels{--title-board-scale:var(--poster-scale,1)}
#case-frame-5{--title-board-scale:var(--case-scale,1)}
#cabin-exhibition [data-title-layout=exhibit] .added-frame-title{
  font-family:'Directory Albert','Portfolio CJK ExtraLight',sans-serif;
  font-size:calc(45px * var(--chapter-title-scale,1) / var(--figma-board-scale,1))!important;
}
:is(#feast-of-the-gods,#case-frame-11,#case-frame-12,#case-frame-15,#case-frame-16) .added-event-titles .added-frame-title{
  font-size:calc(45px * var(--chapter-title-scale,1) / var(--portfolio-title-scale,1))!important;
}
