/* Current 2.1 room layer: gallery. Unlayered, loaded after flow-current.css, so it overrides the legacy bundle.
   The gallery is a journey downstream: an ink hall at the river mouth, a map of the rooms, then one full-bleed
   room per work, each in its own software's material. Rooms widen to the full river as you arrive (the one
   authored motion moment). Scope: hall, room map, living sites (AfterImage), DOT/AIR, Roseraie, Atlas, the shell
   of the main room (prologue, works index, end, colophon) and the project dialog frame. */

.gallery-page{--gx-head:76px;--gx-room-pad:var(--gutter);--gx-max:1680px}
.gallery-page main{overflow:visible}

/* ───────────── Downstream: every room is full-bleed and opens to the river's width on arrival ───────────── */
.gallery-page :is(.gh,.air,#project-dot-air,#project-roseraie,#project-atlas){margin-inline:calc(50% - 50vw)!important;width:auto!important;max-width:none!important;border-radius:0!important;border-inline:0!important}
.gallery-page :is(.air,#project-dot-air,#project-roseraie,#project-atlas){scroll-margin-top:var(--gx-head);animation:none}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    html:not([data-site-motion=off]) .gallery-page :is(.air,#project-dot-air,#project-roseraie,#project-atlas){animation:gx-widen linear both;animation-timeline:view();animation-range:entry 0% entry 85%}
  }
}
@keyframes gx-widen{
  from{clip-path:inset(0 max(6px,calc(var(--gutter) - 14px)) 0 max(6px,calc(var(--gutter) - 14px)) round 36px 36px 0 0)}
  to{clip-path:inset(0 0 0 0 round 0)}
}

/* ───────────── The hall: the river mouth ───────────── */
.gallery-page .gallery-header.gh{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr auto;column-gap:clamp(16px,2vw,32px);align-items:start;margin-top:calc(var(--gx-head) * -1);padding:calc(var(--gx-head) + clamp(72px,6vw,96px)) var(--gutter) 0;min-height:max(760px,100svh);background:var(--ink);color:#e7ebf2;overflow:clip;border:0}
.gallery-page .gh::before,.gallery-page .gh::after{display:none!important}
.gallery-page .gh>.scene-contours{display:none}
.gallery-page .gh>.flow-stream-signature{position:absolute;z-index:2;top:calc(var(--gx-head) + 18px);left:var(--gutter);margin:0;color:#e7ebf2}
.gallery-page .gh>.flow-stream-signature small{color:#e7ebf2b3}
.gh-river{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.gh-streams path{fill:none;stroke:#e7ebf2;stroke-width:1;opacity:.09;vector-effect:non-scaling-stroke}
.gh-streams path:nth-child(2n){opacity:.05}
.gh-main-current{fill:none;stroke:url(#gh-current);stroke-width:2;vector-effect:non-scaling-stroke;opacity:.9}
.gallery-page .gh .gallery-title-row{grid-column:1/-1;margin:0;display:block}
.gallery-page .gh h1{margin:0;font-size:clamp(84px,19.4vw,340px)!important;line-height:.8!important;letter-spacing:-.04em!important;color:#e7ebf2!important;text-shadow:none;white-space:nowrap}
.gallery-page .gh .gh-body{grid-column:1/6;grid-row:2;align-self:start;margin-top:clamp(36px,4.4vw,72px);display:flex;flex-direction:column;gap:32px;max-width:560px}
.gallery-page .gh .gallery-introduction{margin:0;max-width:none}
.gallery-page .gh .gallery-introduction h2{margin:0;font:400 clamp(36px,3.9vw,64px)/1.14 var(--zh-display);letter-spacing:0;color:#e7ebf2}
.gallery-page .gh .gallery-introduction h2 span{display:block;color:inherit}
html[lang=en] .gallery-page .gh .gallery-introduction h2{font-family:var(--display);font-size:clamp(40px,4.2vw,70px);line-height:1.02;letter-spacing:-.025em}
.gallery-page .gh .gallery-introduction p{margin:20px 0 0;max-width:34em;font:400 16px/1.8 var(--body);color:#e7ebf2b8}
.gallery-page .gh .gallery-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin:0}
.gallery-page .gh .gallery-primary-link{display:inline-flex;align-items:center;gap:16px;background:#e7ebf2;color:var(--ink);padding:17px 24px;border-radius:60px;font:600 14px var(--body);text-decoration:none}
.gallery-page .gh .gallery-primary-link:hover{color:var(--ink);background:#e7ebf2}
.gallery-page .gh .gallery-secondary-link{display:inline-flex;align-items:center;gap:12px;padding:12px 2px;color:#e7ebf2;font:600 14px var(--body);text-decoration:none;border-bottom:1px solid #e7ebf266;background:none}
.gallery-page .gh .gallery-secondary-link:hover{border-color:var(--c-sun)}
.gallery-page .gh :is(.gallery-primary-link,.gallery-secondary-link)::after{display:none}
.gallery-page .gh :focus-visible{outline-color:var(--c-sun)}

.gh-fleet{grid-column:6/-1;grid-row:2;position:relative;align-self:stretch;min-height:clamp(380px,34vw,560px);margin-top:clamp(28px,3.6vw,60px)}
.gh-plate{position:absolute;margin:0;display:flex;flex-direction:column;gap:12px}
.gh-plate img{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 40px 70px -30px #000000d0,0 0 0 1px #ffffff1c;background:#14173a}
.gh-plate figcaption{display:flex;align-items:baseline;gap:12px;font:500 12px/1.3 var(--body);color:#e7ebf2a6}
.gh-plate figcaption span:first-child{font:500 11px var(--mono);color:#e7ebf2a6}
.gh-plate figcaption b{font:400 19px/1 var(--display);letter-spacing:-.01em;color:#e7ebf2}
.gh-plate--rose{left:0;top:0;width:45%}
.gh-plate--atlas{left:35%;top:24%;width:40%;z-index:2}
.gh-plate--chroma{left:65%;top:50%;width:35%;z-index:3}
.gallery-page .gh .collection-mark{position:absolute;right:0;top:34px;left:auto;bottom:auto;display:flex;align-items:center;gap:12px;margin:0;padding:0;background:none;border:0;box-shadow:none;transform:none;width:auto;height:auto}
.gallery-page .gh .collection-mark::before,.gallery-page .gh .collection-mark::after{display:none}
.gallery-page .gh .collection-mark img{position:static;width:54px;height:54px;border-radius:50%;background:#14173a;animation:none;transform:none;opacity:1}
.gallery-page .gh .collection-mark span{position:static;font:500 12px/1.3 var(--body);letter-spacing:0;color:#e7ebf2a6;transform:none;background:none;padding:0}
.gh-fleet-serial{position:absolute;right:0;top:0;text-align:right;font:500 11px var(--mono);color:#e7ebf299}

.gh-rail{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px 40px;margin-top:clamp(28px,3vw,48px);padding:22px 0 26px;border-top:1px solid #e7ebf21f;font:500 12px/1.4 var(--body);color:#e7ebf299}
.gallery-page .gh .gallery-kicker{display:flex;gap:18px;align-items:center;margin:0;padding:0;font:inherit;letter-spacing:0;color:inherit}
.gallery-page .gh .gallery-kicker .lime-text{display:none}
.gallery-page .gh .gallery-kicker .collection-volume{font:500 11px var(--mono);color:#e7ebf2a6}
.gallery-page .gh .gallery-hero-foot{display:flex;align-items:center;gap:12px;margin:0;font:inherit;letter-spacing:0;color:inherit}
.gallery-page .gh .gallery-signal{width:7px;height:7px;border-radius:50%;background:var(--c-mint);box-shadow:none;animation:none}
.gh-years{display:inline-flex;align-items:center;gap:6px;font:500 11px var(--mono);color:#e7ebf2a6}
.gallery-page .gh .gallery-header-end{display:flex;align-items:center;gap:14px;margin:0;padding:0;font:500 11px var(--mono);letter-spacing:0;color:#e7ebf2a6}
.gallery-page .gh .gallery-header-line{display:block;width:56px;flex:none;height:1px;background:#e7ebf240}
.gallery-page .gh .gallery-header-line::after{display:none}

/* ───────────── The room map: four rooms on one current ───────────── */
.gallery-page .collection-navigation.gn{display:grid;grid-template-columns:minmax(180px,.32fr) 1fr;align-items:start;gap:28px clamp(24px,4vw,72px);max-width:none;margin:0;padding:clamp(56px,6vw,96px) 0 clamp(64px,7vw,110px);background:none;border:0;border-radius:0;box-shadow:none}
.gallery-page .gn::before,.gallery-page .gn::after{display:none}
.gallery-page .gn .gallery-room-label{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;position:static;font:400 clamp(22px,1.8vw,28px)/1.2 var(--zh-strong);letter-spacing:0;color:var(--flow-ink);background:none}
html[lang=en] .gallery-page .gn .gallery-room-label{font-family:var(--display)}
.gallery-page .gn .gallery-room-label span+span{font:500 11px var(--mono);color:var(--muted);letter-spacing:0}
.gallery-page .collection-navigation.gn{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0;row-gap:36px}
.gallery-page .gn .gallery-room-label{grid-column:1/-1;grid-row:1;flex-direction:row;align-items:baseline;gap:18px}
.gallery-page .gn .room-token{display:none!important}
.gallery-page .collection-navigation.gn>a{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0!important;margin:0;padding:42px 16px 6px 0!important;background:none!important;border:0!important;border-radius:0;box-shadow:none!important;color:var(--flow-ink)!important;text-decoration:none;transform:none!important;overflow:visible;min-height:0}
.gallery-page .collection-navigation.gn>a::after{content:'';display:block!important;position:absolute;left:0;right:0;top:10px;height:2px;background:var(--current);background-size:400% 100%;transform:none;opacity:1;inset-inline:0;border:0}
.gallery-page .collection-navigation.gn>a:nth-of-type(2)::after{background-position:33.3% 0}
.gallery-page .collection-navigation.gn>a:nth-of-type(3)::after{background-position:66.6% 0}
.gallery-page .collection-navigation.gn>a:nth-of-type(4)::after{background-position:100% 0;right:16px}
.gallery-page .collection-navigation.gn>a::before{content:'';display:block!important;position:absolute;left:0;top:0;z-index:1;width:22px;height:22px;border-radius:50%;background:var(--paper);border:2px solid var(--flow-ink);transition:transform .45s var(--ease-out),background .3s;transform:none;opacity:1;inset:0 auto auto 0}
.gallery-page .collection-navigation.gn>a>span{font:400 clamp(19px,1.6vw,24px)/1.25 var(--zh-strong);letter-spacing:0;color:inherit;opacity:1}
html[lang=en] .gallery-page .collection-navigation.gn>a>span{font-family:var(--display);letter-spacing:-.01em}
.gallery-page .collection-navigation.gn>a>small{font:500 11px var(--mono);letter-spacing:0;color:var(--muted)!important;opacity:1}
.gallery-page .collection-navigation.gn>a:is(:hover,:focus-visible)::before{transform:scale(1.25)}
.gallery-page .collection-navigation.gn>a:hover>span{text-decoration:underline;text-decoration-color:var(--c-pink);text-underline-offset:6px}
.gallery-page .collection-navigation.gn>a[aria-current=page]::before{background:var(--flow-ink);box-shadow:0 0 0 5px var(--paper),0 0 0 7px var(--c-blue)}
.gallery-page .collection-navigation.gn>a[href*="#living-sites"]::before{border-color:#dd5a48}

/* ───────────── Living sites: AfterImage, a motorsport photo editorial ───────────── */
.gallery-page .ai-sites-section.air{--air-ink:#0c0f10;--air-ink-2:#151a1b;--air-cream:#f0eee8;--air-muted:#b9bdb8;--air-red:#dd5a48;--air-line:#f0eee824;--air-cond:AfterimageBarlow,'DM Sans',sans-serif;--air-serif:AfterimageCormorant,'Current Serif',Georgia,serif;position:relative;margin-block:0;padding:clamp(96px,10vw,160px) 0 clamp(56px,6vw,90px);background:var(--air-ink);color:var(--air-cream);border:0}
.gallery-page .air::before,.gallery-page .air::after{display:none!important}
.gallery-page .air :focus-visible{outline:2px solid var(--air-red);outline-offset:4px}
.air-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);align-items:end;padding:0 var(--gx-room-pad) clamp(44px,4.6vw,72px)}
.gallery-page .air-head h2{grid-column:1/8;margin:0;font:400 clamp(52px,6.6vw,118px)/1 var(--zh-display);letter-spacing:0;color:var(--air-cream);text-wrap:balance}
html[lang=en] .gallery-page .air-head h2{font:800 clamp(60px,8vw,140px)/.86 var(--air-cond);letter-spacing:-.025em;text-transform:none}
.air-head-side{grid-column:9/-1;display:flex;flex-direction:column;gap:18px;padding-bottom:8px}
.air-plaque{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;font:500 13px/1.4 var(--body);color:var(--air-cream)}
.air-plaque .ai-sites-index{font:500 11px/1.6 var(--mono);letter-spacing:0;color:var(--air-red)}
.air-intro{margin:0;font:400 15px/1.8 var(--body);color:var(--air-muted);max-width:40em}

.air-stage{--ai-x:70%;--ai-y:44%;position:relative;isolation:isolate;display:grid;grid-template-rows:auto 1fr auto;min-height:clamp(680px,calc(100svh - 40px),1000px);overflow:hidden;color:var(--air-cream);background:#07090a}
.air-photo,.air-shade{position:absolute;inset:0;pointer-events:none}
.air-photo{z-index:-2}
.air-photo img{width:100%;height:100%;object-fit:cover;object-position:52% 46%;filter:saturate(.92) contrast(1.06) brightness(.86);transform:translate(var(--ai-parallax-x,0px),var(--ai-parallax-y,0px)) scale(1.04);transition:transform 1.2s var(--ease-out)}
.air-shade{z-index:-1;background:linear-gradient(90deg,#060809f0 0%,#060809c4 30%,#06080933 64%,transparent 82%),linear-gradient(0deg,#060809f2 0%,transparent 34%),linear-gradient(180deg,#06080999,transparent 22%)}
.air-top,.air-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin:0 var(--gx-room-pad);font:500 11px/1.4 var(--mono);letter-spacing:0;color:#e4e5df}
.air-top{min-height:78px;border-bottom:1px solid #f0eee83d}
.air-top>span:nth-child(2){justify-self:center;color:#c9ccc7}
.gallery-page .air .ai-mark{display:inline-flex;align-items:center;gap:10px;font:800 17px/1 var(--air-cond);letter-spacing:.04em}
.gallery-page .air .ai-mark b{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--air-cream);color:#101314;font:800 25px/.8 var(--air-cond);letter-spacing:-.18em;transform:skew(-10deg)}
.gallery-page .air .ai-mark b span{color:var(--air-red)}
.gallery-page .air .ai-online{justify-self:end;display:flex;align-items:center;gap:10px;color:var(--air-cream)}
.gallery-page .air .ai-online i{width:8px;height:8px;border-radius:50%;background:var(--air-red);box-shadow:none;animation:none}
.air-core{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);align-items:end;padding:clamp(40px,5vw,80px) var(--gx-room-pad) clamp(40px,4vw,64px)}
.air-copy{grid-column:1/9;display:flex;flex-direction:column;min-width:0}
.gallery-page .air-copy h3{order:1;margin:0;font:800 clamp(112px,15.4vw,272px)/.76 var(--air-cond);letter-spacing:-.045em;text-transform:uppercase;color:var(--air-cream)}
.air-copy h3 span{display:block}
.air-copy h3 span:last-child{color:transparent;-webkit-text-stroke:2px var(--air-cream);margin-left:.34em}
.air-eyebrow{order:2;margin:28px 0 0;font:500 13px/1.5 var(--body);color:var(--air-cream)}
.air-edition{order:3;display:flex;align-items:center;gap:12px;margin:8px 0 0;font:500 11px/1.4 var(--mono);color:var(--air-muted)}
.air-edition i{width:28px;height:1px;background:var(--air-red)}
.air-quote{order:4;margin:30px 0 16px;font:italic 500 clamp(26px,2.7vw,42px)/1.15 var(--air-serif);color:#e8e5dd;letter-spacing:0}
.air-quote em{color:var(--air-cream);font-style:italic}
.air-brief{order:5;margin:0;max-width:58ch;font:400 15px/1.85 var(--body);color:#dcdbd5;text-wrap:pretty}
.air-actions{order:6;display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:32px}
.air-actions a{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:54px;font:600 14px var(--body);text-decoration:none;transition:background .3s,color .3s,border-color .3s}
.air-enter{padding:14px 22px;background:var(--air-cream);color:#111415}
.air-enter .ic{color:var(--air-red);font-size:18px}
.air-enter:hover{background:#fff;color:#111415}
.air-note{padding:12px 2px;color:var(--air-cream);border-bottom:1px solid #f0eee88a}
.air-note .ic{color:var(--air-red)}
.air-note:hover{border-color:var(--air-red);color:#fff}
.air-viewfinder{grid-column:10/-1;align-self:end;position:relative;display:flex;flex-direction:column;aspect-ratio:3/4;max-height:460px;padding:18px;border:1px solid #f0eee84d;background:#0c1011d9;translate:var(--ai-parallax-x,0px) var(--ai-parallax-y,0px);transition:translate .8s var(--ease-out)}
.air-viewfinder::before,.air-viewfinder::after{content:'';position:absolute;width:22px;height:22px;border-color:var(--air-red);pointer-events:none}
.air-viewfinder::before{left:8px;top:8px;border-left:2px solid;border-top:2px solid}
.air-viewfinder::after{right:8px;bottom:8px;border-right:2px solid;border-bottom:2px solid}
.air-vf-top,.air-vf-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;font:500 11px var(--mono);color:#d7d8d1}
.air-vf-bottom span:last-child{font:800 34px/.8 var(--air-cond);color:var(--air-red)}
.air-vf-face{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;margin:16px 0;border-block:1px solid #f0eee824;overflow:hidden}
.air-vf-orbit{position:absolute;width:118%;aspect-ratio:1;left:50%;top:50%;translate:-50% -50%;border:1px solid #dd5a4870;border-radius:50%}
.air-vf-orbit i{position:absolute;inset:16%;border:1px dashed #f0eee82e;border-radius:50%}
.air-vf-orbit i+i{inset:auto;width:10px;height:10px;left:50%;top:-5px;border:0;background:var(--air-red)}
.air-vf-word{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.air-vf-word span{font:500 11px var(--mono);color:var(--air-red)}
.air-vf-word strong{font:800 clamp(40px,3.6vw,58px)/.85 var(--air-cond);letter-spacing:-.03em;color:var(--air-cream)}
.air-vf-sequence{position:relative;display:flex;gap:16px;font:500 11px var(--mono);color:var(--air-muted)}
.air-bottom{min-height:64px;border-top:1px solid #f0eee83d;color:#cfd0c9;font:500 11px/1.5 var(--body)}
.air-bottom>span:last-child{justify-self:end;font-family:var(--mono)}
.air-progress{display:block;width:180px;height:2px;background:#f0eee83a;overflow:hidden}
.air-progress i{display:block;width:34%;height:100%;background:var(--air-red)}

.gallery-page .ai-sites-facts.air-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(200px,1.1fr);margin:0;border:0;border-bottom:1px solid var(--air-line);color:var(--air-cream);background:none}
.gallery-page .air-facts>div{display:flex;flex-direction:column;gap:12px;padding:clamp(28px,3vw,44px) var(--gx-room-pad) clamp(26px,2.6vw,38px);border:0;border-right:1px solid var(--air-line)}
.gallery-page .air-facts strong{font:800 clamp(72px,8vw,136px)/.8 var(--air-cond);letter-spacing:-.03em;color:var(--air-cream)}
.gallery-page .air-facts div span{font:500 13px/1.4 var(--body);color:var(--air-muted);letter-spacing:0}
.gallery-page .air-facts>a{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:clamp(28px,3vw,44px) var(--gx-room-pad);background:var(--air-red);color:#120c0b;font:800 clamp(26px,2.4vw,40px)/.9 var(--air-cond);letter-spacing:0;text-decoration:none;transition:background .3s}
.gallery-page .air-facts>a .ic{font-size:.9em}
.gallery-page .air-facts>a:hover{background:#f06b58}

.air-sheet{display:grid;grid-template-columns:1.45fr 1fr 1fr 1.45fr;gap:clamp(12px,1.4vw,22px);align-items:start;padding:clamp(56px,6vw,96px) var(--gx-room-pad) clamp(48px,5vw,80px)}
.air-frame{margin:0;display:flex;flex-direction:column;gap:14px;min-width:0}
.air-frame img{display:block;width:100%;height:clamp(240px,26vw,420px);object-fit:cover;background:var(--air-ink-2)}
.air-frame--2,.air-frame--3{margin-top:clamp(36px,5vw,84px)}
.air-frame--2 img,.air-frame--3 img{height:clamp(220px,22vw,360px)}
.air-frame figcaption{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font:500 13px/1.45 var(--body);color:var(--air-cream)}
.air-frame figcaption b{grid-row:1/3;font:800 26px/.9 var(--air-cond);color:var(--air-red)}
.air-frame figcaption small{font:400 12px/1.4 var(--body);color:var(--air-muted)}

.gallery-page .air .ai-release-history{margin:0 var(--gx-room-pad);border:1px solid #f0eee833;background:var(--air-ink-2);color:var(--air-cream);overflow:hidden;scroll-margin-top:110px}
.gallery-page .air .ai-release-history>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:clamp(16px,2.4vw,36px);min-height:0;padding:clamp(24px,2.6vw,38px) clamp(22px,2.6vw,40px);cursor:pointer;list-style:none;background:none;transition:background .35s}
.gallery-page .air .ai-release-history>summary::before{display:none}
.gallery-page .air .ai-release-history>summary:hover{background:#1c2223}
.gallery-page .air .ai-history-seal{width:64px;height:64px;display:grid;place-items:center;border:1px solid #f0eee866;font:800 46px/.85 var(--air-cond);letter-spacing:-.12em;box-shadow:none;transform:none}
.gallery-page .air .ai-history-intro{display:flex;flex-direction:column;gap:6px}
.gallery-page .air .ai-history-intro small{font:500 11px/1.4 var(--mono);letter-spacing:0;color:#e9a093}
.gallery-page .air .ai-history-intro strong{font:400 clamp(26px,2.6vw,40px)/1.15 var(--zh-display);letter-spacing:0}
html[lang=en] .gallery-page .air .ai-history-intro strong{font:800 clamp(32px,3vw,48px)/.95 var(--air-cond)}
.gallery-page .air .ai-history-intro em{font:400 13px/1.6 var(--body);color:var(--air-muted);font-style:normal}
.gallery-page .air .ai-history-route{display:flex;align-items:center;gap:10px;white-space:nowrap;font:800 clamp(38px,4vw,64px)/.8 var(--air-cond);letter-spacing:-.02em;color:#d8d9d2}
.gallery-page .air .ai-history-route-old{display:inline-flex;align-items:center;gap:10px;color:#8f938f}
.gallery-page .air .ai-history-route .ic{font-size:20px;color:var(--air-red)}
.gallery-page .air .ai-history-plus{position:relative;width:46px;height:46px;border:1px solid var(--air-red);border-radius:50%;font-size:0;color:var(--air-red);transition:transform .45s var(--ease-out),background .3s}
.gallery-page .air .ai-history-plus::before,.gallery-page .air .ai-history-plus::after{content:'';position:absolute;left:50%;top:50%;width:16px;height:1.5px;background:currentColor;translate:-50% -50%}
.gallery-page .air .ai-history-plus::after{rotate:90deg}
.gallery-page .air .ai-release-history[open] .ai-history-plus{transform:rotate(45deg);background:#dd5a481f}
.gallery-page .air .ai-history-pages{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid #f0eee82e;background:none;animation:none}
.gallery-page .air .ai-history-page{grid-column:1/-1;position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(200px,.3fr) minmax(0,1fr);column-gap:clamp(24px,4vw,72px);align-items:start;padding:clamp(34px,3.6vw,56px) clamp(22px,2.6vw,40px);background:none;border-top:1px solid #f0eee81f}
.gallery-page .air .ai-history-page:first-child{border-top:0;background:linear-gradient(100deg,#1d2526,#151a1b 60%,#2b1a17)}
.gallery-page .air .ai-history-page>*{grid-column:2;min-width:0}
.gallery-page .air .ai-history-date{grid-column:1;grid-row:1/span 4;display:flex;flex-direction:column;align-items:flex-start;gap:8px;font:500 11px/1.4 var(--mono);letter-spacing:0;text-transform:none;color:var(--air-muted)}
.gallery-page .air .ai-history-date span{font:500 13px var(--body);color:#e9a093!important}
.gallery-page .air .ai-history-page h3{margin:0 0 16px;max-width:none;font:400 clamp(24px,2.3vw,36px)/1.3 var(--zh-display);letter-spacing:0;color:var(--air-cream)}
html[lang=en] .gallery-page .air .ai-history-page h3{font:800 clamp(28px,2.6vw,42px)/1.02 var(--air-cond);letter-spacing:-.01em}
.gallery-page .air .ai-history-page h3>span:first-child{display:block;margin:0 0 18px;font:800 clamp(88px,9vw,150px)/.74 var(--air-cond);letter-spacing:-.05em;color:var(--air-cream);-webkit-text-stroke:0;text-shadow:none}
.gallery-page .air .ai-history-page:not(:first-child) h3>span:first-child{color:transparent;-webkit-text-stroke:1.5px #d6d4c9}
.gallery-page .air .ai-history-page>p{max-width:68ch;margin:0 0 24px;font:400 14px/1.85 var(--body);color:#c3c9c5}
.gallery-page .air .ai-history-changes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:6px 0 0;border-top:1px solid #f0eee82e}
.gallery-page .air .ai-history-changes>section{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:20px 22px 18px 0;border:0;border-left:0}
.gallery-page .air .ai-history-changes>section+section{padding-left:22px;border-left:1px solid #f0eee81f}
.gallery-page .air .ai-history-changes b{font:500 11px/1.6 var(--mono);color:var(--air-red)}
.gallery-page .air .ai-history-changes h4{margin:0 0 6px;font:600 15px/1.45 var(--body);color:#f1dfd8}
.gallery-page .air .ai-history-changes p{margin:0;font:400 13px/1.75 var(--body);color:#b4bbb7}
.gallery-page .air .ai-history-page>a{display:inline-flex;align-items:center;gap:16px;width:fit-content;margin-top:26px;padding-bottom:6px;border-bottom:1px solid #df9c90;color:#f5cfc7;font:600 13px var(--body);text-decoration:none}
.gallery-page .air .ai-history-page>a:hover{color:#fff;border-color:#fff}
.gallery-page .air .ai-history-page--v13::before{opacity:.06}
.gallery-page .air .ai-history-page--v14::before{opacity:.14}
.gallery-page .air .ai-sites-credit{margin:28px var(--gx-room-pad) 0;max-width:120ch;font:400 12px/1.8 var(--body);color:#c4c8c4}
.gallery-page .air .ai-sites-credit span{color:inherit}
.gallery-page .air .ai-sites-credit a{color:#efc9c0;text-decoration:underline;text-underline-offset:3px}

/* ───────────── Main room shell: prologue, works index rail, end, colophon ───────────── */
.gallery-page .collection-section{padding-top:clamp(110px,11vw,180px)}
.gallery-page .gallery-section-prologue{display:grid;grid-template-columns:minmax(180px,.32fr) 1fr auto;align-items:start;gap:28px clamp(24px,4vw,72px);margin:0 0 clamp(36px,4vw,60px);padding:0;border:0;background:none}
.gallery-page .gallery-section-prologue::before,.gallery-page .gallery-section-prologue::after{display:none}
.gallery-page .gallery-section-prologue>.mono{padding-top:14px;font:500 11px var(--mono);letter-spacing:0;color:var(--muted)}
.gallery-page .gallery-section-prologue h2{margin:0;font:400 clamp(44px,5.6vw,96px)/1.08 var(--zh-display);letter-spacing:0;color:var(--flow-ink)}
html[lang=en] .gallery-page .gallery-section-prologue h2{font-family:var(--display);letter-spacing:-.03em;line-height:1}
.gallery-page .gallery-section-prologue p{margin:18px 0 0;max-width:40em;font:400 16px/1.8 var(--body);color:var(--muted)}
.gallery-page .gallery-prologue-glyph{font:400 clamp(40px,4vw,72px)/1 var(--display);color:var(--c-violet);opacity:.8;animation:none}
.gallery-page .collection-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:0 0 clamp(48px,5vw,80px);padding:18px 0 0;border-top:1px solid var(--line);border-bottom:0}
.gallery-page .collection-toolbar h2{display:flex;align-items:baseline;gap:14px;margin:0;font:400 18px/1.3 var(--zh-strong);letter-spacing:0;color:var(--flow-ink)}
.gallery-page .collection-toolbar h2 .mono:first-child{font:400 18px/1.3 var(--zh-strong);letter-spacing:0}
html[lang=en] .gallery-page .collection-toolbar h2 .mono:first-child{font:400 20px/1.2 var(--display)}
.gallery-page .collection-toolbar .collection-count{padding:0;background:none;border:0;font:500 13px var(--mono);color:var(--muted)}
.gallery-page .collection-toolbar>p{margin:0;font:500 13px var(--body);color:var(--muted);letter-spacing:0}
.gallery-page .collection-end{display:flex;align-items:center;gap:18px;margin-top:clamp(80px,8vw,130px);font:500 12px var(--body);letter-spacing:0;color:var(--muted)}
.gallery-page .collection-end-line{flex:1;height:2px;border-radius:2px;background:var(--current);opacity:.7}
.gallery-page .collection-end b{font-weight:400;color:var(--c-violet)}

/* Works index: a small buoy rail on the right edge while the main room is in view. */
.gallery-page .scene-index--works{position:sticky;top:calc(50svh - 150px);z-index:70;height:0;margin:0;padding:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px;background:none;border:0;box-shadow:none;overflow:visible;pointer-events:none;translate:calc(var(--gutter) - 14px) 0}
.gallery-page .scene-index--works::before,.gallery-page .scene-index--works::after{display:none}
.gallery-page .scene-index--works a{pointer-events:auto;position:relative;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:28px;width:auto;margin:0;padding:3px 4px 3px 10px;background:none!important;border:0!important;border-radius:20px;box-shadow:none!important;color:var(--flow-ink);text-decoration:none;font:500 12px/1 var(--body);letter-spacing:0}
.gallery-page .scene-index--works a::before,.gallery-page .scene-index--works a::after{display:none}
.gallery-page .scene-index--works a>i{order:3;width:9px;height:9px;flex:none;border-radius:50%;background:#10132e;box-shadow:0 0 0 2px #e7ebf2cc;transition:transform .35s var(--ease-out)}
.gallery-page .scene-index--works a>small{order:2;font:500 11px var(--mono);color:inherit;opacity:0;transition:opacity .3s}
.gallery-page .scene-index--works a>span{order:1;padding:5px 10px;border-radius:20px;background:var(--ink);color:#e7ebf2;font:500 12px/1 var(--body);letter-spacing:0;opacity:0;translate:8px 0;transition:opacity .3s,translate .45s var(--ease-out);white-space:nowrap}
.gallery-page .scene-index--works a>b{display:none}
.gallery-page .scene-index--works a:is(:hover,:focus-visible)>span{opacity:1;translate:0 0}
.gallery-page .scene-index--works a:is(:hover,:focus-visible,[aria-current=location])>i{transform:scale(1.5);background:var(--c-pink)}
.gallery-page .scene-index--works a[href="#project-dot-air"]>i{background:#ee3829}
.gallery-page .scene-index--works a[href="#project-roseraie"]>i{background:#8e65aa}
.gallery-page .scene-index--works a[href="#project-atlas"]>i{background:#d7b77e}

.gallery-page .gallery-colophon{display:grid;grid-template-columns:minmax(180px,.32fr) 1fr auto;align-items:end;gap:28px clamp(24px,4vw,72px);margin-top:clamp(100px,10vw,160px);padding:clamp(40px,4vw,64px) 0 0;border-top:1px solid var(--line);background:none}
.gallery-page .gallery-colophon::before,.gallery-page .gallery-colophon::after{display:none}
.gallery-page .colophon-index{display:flex;flex-direction:column;gap:4px;font:400 20px/1.2 var(--zh-strong);letter-spacing:0;color:var(--flow-ink)}
html[lang=en] .gallery-page .colophon-index{font-family:var(--display)}
.gallery-page .colophon-braces{font:500 12px var(--mono);color:var(--muted);margin-top:8px}
.gallery-page .colophon-copy .eyebrow{margin:0 0 14px;font:500 13px var(--body);letter-spacing:0;color:var(--muted)}
.gallery-page .colophon-copy h2{margin:0;font:400 clamp(32px,3.4vw,56px)/1.15 var(--zh-display);letter-spacing:0;color:var(--flow-ink)}
html[lang=en] .gallery-page .colophon-copy h2{font-family:var(--display);letter-spacing:-.02em}
.gallery-page .colophon-copy>p:last-child{margin:16px 0 0;max-width:40em;font:400 16px/1.8 var(--body);color:var(--muted)}
.gallery-page .creator-link{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:4px 14px;padding:18px 24px;border-radius:60px;background:var(--flow-ink);color:var(--paper);font:600 14px var(--body);text-decoration:none;border:0}
.gallery-page .creator-link .mono{grid-column:1/-1;font:500 11px var(--mono);letter-spacing:0;color:#e7ebf299}
.gallery-page .gallery-route-status{margin:0 0 24px;font:500 14px var(--body);color:var(--flow-ink)}

/* ───────────── DOT/AIR: vermilion, dots and an orbital Earth ───────────── */
#project-dot-air.da-exhibit{--dx-pad:var(--gutter);--da-type:"Dot Air Display",var(--zh-display);--da-ui:var(--body);margin-block:0 0;border:0;background:var(--da-paper);color:var(--da-ink);overflow:clip;box-shadow:none;padding:0}
#project-dot-air::before,#project-dot-air::after{display:none}
#project-dot-air .da-masthead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:20px var(--dx-pad);border-bottom:1px solid #20221f24;background:var(--da-paper)}
#project-dot-air .da-masthead h2{font-size:30px;letter-spacing:-.05em;margin:0}
#project-dot-air .da-masthead>span{justify-self:center;font:500 12px/1.4 var(--da-ui);letter-spacing:0}
#project-dot-air .da-masthead>button{justify-self:end;display:inline-flex;align-items:center;gap:12px;border:1px solid var(--da-ink);border-radius:100px;padding:12px 20px;min-height:46px;font:600 13px var(--da-ui);background:transparent;color:var(--da-ink);cursor:pointer;transition:background .3s,color .3s}
#project-dot-air .da-masthead>button:hover{background:var(--da-ink);color:var(--da-paper)}

#project-dot-air .da-hero{position:relative;isolation:isolate;min-height:clamp(660px,calc(100svh - 80px),980px);background-color:var(--da-red);background-image:radial-gradient(var(--da-paper) 4.4px,transparent 5px);background-size:46px 46px;background-position:23px 23px;overflow:clip}
#project-dot-air .da-hero-top{position:relative;z-index:3;display:flex;justify-content:space-between;gap:20px;padding:26px var(--dx-pad);font:600 11px/1.4 var(--da-ui);letter-spacing:0}
#project-dot-air .da-hero-top span{background:var(--da-red);color:var(--da-paper);padding:5px 9px}
#project-dot-air .da-hero-copy{position:relative;z-index:2;width:min(62%,980px);padding:clamp(24px,4vw,70px) 0 160px var(--dx-pad);pointer-events:none}
#project-dot-air .da-display h3{font-size:clamp(76px,11.6vw,214px);line-height:.86;letter-spacing:-.07em}
#project-dot-air .da-way{position:relative;margin:26px 0 36px;padding:14px 30px 18px 16px;font-size:clamp(30px,4.6vw,84px);box-shadow:none;isolation:isolate}
#project-dot-air .da-way::after{content:'';position:absolute;inset:0;z-index:-1;border:3px solid var(--da-ink);border-radius:inherit;translate:9px 11px}
#project-dot-air .da-hero-copy>p{font:500 15px/1.9 var(--da-ui);max-width:380px;padding:9px 12px}
#project-dot-air .da-hero>.da-globe{position:absolute;z-index:1;width:min(70vw,1180px);right:-14vw;top:50%;translate:0 -46%;filter:drop-shadow(-24px 30px 34px #6d120c80)}
#project-dot-air .da-coordinate{right:auto;left:calc(52% - 70px);bottom:120px;width:150px;height:150px;border-width:3px;box-shadow:none}
#project-dot-air .da-coordinate>span{font:600 9px/1.3 var(--da-ui);letter-spacing:0;text-align:center}
#project-dot-air .da-coordinate>strong{font-size:44px}
#project-dot-air .da-marquee{bottom:8px}
#project-dot-air .da-marquee span{animation:none;transform:translateX(-6%)}
#project-dot-air .da-marquee span{font-size:clamp(34px,5vw,84px)}

#project-dot-air .da-console{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:0;padding:28px var(--dx-pad) 24px;background:var(--da-ink);color:var(--da-paper);border:0}
#project-dot-air .da-console .da-overline{color:#f5f3ebb3}
#project-dot-air .da-airports{gap:8px;margin-top:14px;flex-wrap:wrap}
#project-dot-air .da-airports button{min-width:78px;min-height:58px;padding:9px 14px;border:1px solid #f5f3eb33;border-radius:14px;color:var(--da-paper);background:transparent}
#project-dot-air .da-airports button b{font:400 19px var(--da-type);letter-spacing:-.02em}
#project-dot-air .da-airports button span{font:500 11px var(--da-ui);opacity:.8}
#project-dot-air .da-airports button[aria-pressed=true]{background:var(--da-yellow);border-color:var(--da-yellow);color:var(--da-ink)}
#project-dot-air .da-airports button[aria-pressed=true]::after{border-color:#ead25a80}
#project-dot-air .da-orbit-controls button{border-color:#f5f3eb66;background:transparent;color:var(--da-paper);font:600 12px var(--da-ui);padding:13px 18px;min-height:48px}
#project-dot-air .da-orbit-controls button[aria-pressed=true]{background:var(--da-paper);color:var(--da-ink)}
#project-dot-air .da-scene-caption{padding:14px var(--dx-pad);background:var(--da-ink);color:#f5f3eb9e;border-top:1px solid #f5f3eb1a;font:500 12px/1.7 var(--da-ui)}
#project-dot-air :focus-visible{outline:3px solid var(--da-yellow);outline-offset:3px}
#project-dot-air .da-masthead :focus-visible,#project-dot-air .da-atlas :focus-visible,#project-dot-air .da-history :focus-visible,#project-dot-air .da-folio :focus-visible{outline-color:#285b79}

#project-dot-air .da-plate{margin:0;padding:clamp(64px,7vw,120px) var(--dx-pad) clamp(40px,4vw,64px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);background:linear-gradient(180deg,var(--da-paper) 0 62%,#efe9d8 62%)}
#project-dot-air .da-plate-frame{grid-column:1/-1;position:relative;padding:clamp(10px,1vw,16px);border:1px solid var(--da-ink);background:#fff;box-shadow:0 50px 90px -50px #20221f99}
#project-dot-air .da-plate-frame img{display:block;width:100%;height:auto}
#project-dot-air .da-plate figcaption{grid-column:1/-1;margin-top:16px;font:500 13px/1.6 var(--da-ui);color:#54564e}

#project-dot-air .da-atlas{padding:clamp(64px,7vw,110px) var(--dx-pad) clamp(40px,4vw,60px);background:#efe9d8}
#project-dot-air .da-section-heading{grid-template-columns:1.2fr .8fr;gap:16px clamp(24px,4vw,72px)}
#project-dot-air .da-section-heading h3{font-size:clamp(46px,6.2vw,112px);line-height:.98;letter-spacing:-.06em}
#project-dot-air .da-section-heading p{font:400 15px/1.85 var(--da-ui);max-width:420px}
#project-dot-air .da-overline{font:600 12px/1.5 var(--da-ui);letter-spacing:0}
#project-dot-air .da-tail-gallery{margin-top:clamp(36px,4vw,64px)}
#project-dot-air .da-tail{min-height:clamp(340px,30vw,460px)}
#project-dot-air .da-tail-disc{width:clamp(200px,19vw,300px);height:clamp(200px,19vw,300px)}
#project-dot-air .da-tail-1 .da-tail-disc{width:clamp(220px,21vw,330px);height:clamp(220px,21vw,330px)}
#project-dot-air .da-tail img{width:clamp(130px,11vw,180px);height:auto;filter:drop-shadow(10px 14px 14px #20221f40)}
#project-dot-air .da-tail strong{font:600 15px var(--da-ui)}
#project-dot-air .da-tail>span:last-child{display:inline-flex;align-items:center;gap:6px;font:600 11px var(--da-ui);letter-spacing:0}

#project-dot-air .da-dna{margin:0;border-radius:0;grid-template-columns:auto 1fr auto;gap:clamp(28px,4vw,72px);padding:clamp(56px,6vw,96px) var(--dx-pad);background:var(--da-yellow)}
#project-dot-air .da-dna-dots{gap:14px}
#project-dot-air .da-dna-dots i{width:clamp(26px,2.6vw,40px);height:clamp(26px,2.6vw,40px)}
#project-dot-air .da-dna h3{font-size:clamp(34px,4vw,68px);line-height:1.05;letter-spacing:-.05em}
#project-dot-air .da-dna p{font:400 15px/1.8 var(--da-ui)}
#project-dot-air .da-dna>a{display:inline-flex;align-items:center;gap:12px;padding:16px 24px;min-height:52px;font:600 13px var(--da-ui)}

#project-dot-air .da-history{margin:clamp(56px,6vw,96px) var(--dx-pad) 0;border:1px solid var(--da-ink)}
#project-dot-air .da-history>summary{grid-template-columns:auto 1fr auto 46px;gap:clamp(18px,2.4vw,36px);padding:clamp(24px,2.6vw,36px) clamp(22px,2.6vw,40px)}
#project-dot-air .da-history-label{font:600 12px var(--da-ui);letter-spacing:0}
#project-dot-air .da-history-title{font:400 clamp(28px,2.8vw,44px)/1.1 var(--da-type);letter-spacing:-.04em}
#project-dot-air .da-history-title small{font:400 13px/1.7 var(--da-ui)}
#project-dot-air .da-history-versions{display:inline-flex;align-items:center;gap:12px;font-size:clamp(26px,2.4vw,38px)}
#project-dot-air .da-history-versions i{margin:0;font-size:16px;display:inline-flex}
#project-dot-air .da-back{rotate:180deg}
#project-dot-air .da-history-toggle{position:relative;width:46px;height:46px;font-size:0}
#project-dot-air .da-history-toggle::before,#project-dot-air .da-history-toggle::after{content:'';position:absolute;left:50%;top:50%;width:16px;height:2px;background:currentColor;translate:-50% -50%}
#project-dot-air .da-history-toggle::after{rotate:90deg}
#project-dot-air .da-history-body{padding:4px clamp(22px,2.6vw,40px) 30px}
#project-dot-air .da-release{padding:clamp(36px,4vw,60px) 0}
#project-dot-air .da-release-meta{font:600 12px var(--da-ui);letter-spacing:0}
#project-dot-air .da-release-heading h4{font:400 clamp(26px,2.6vw,42px)/1.15 var(--da-type);letter-spacing:-.04em}
#project-dot-air .da-release-heading p{font:400 15px/1.85 var(--da-ui);max-width:72ch}
#project-dot-air .da-release-changes section>span{font:600 12px var(--da-ui)}
#project-dot-air .da-release-changes h5{font:700 16px/1.45 var(--da-ui)}
#project-dot-air .da-release-changes p{font:400 14px/1.85 var(--da-ui)}
#project-dot-air .da-release-capture img{border:1px solid var(--da-ink);box-shadow:0 40px 70px -46px #20221f88}
#project-dot-air .da-release-capture figcaption{font:400 13px/1.7 var(--da-ui)}
#project-dot-air .da-release-original{gap:6px}
#project-dot-air .da-release-end p{font:400 13px/1.8 var(--da-ui)}
#project-dot-air .da-release-end a{font:600 13px/1.6 var(--da-ui);display:inline-flex;align-items:center;gap:8px}

#project-dot-air .da-folio{grid-template-columns:1fr auto;gap:22px 32px;padding:clamp(48px,5vw,80px) var(--dx-pad) clamp(40px,4vw,60px)}
#project-dot-air .da-folio>div>p{font:400 clamp(20px,1.8vw,28px)/1.35 var(--da-type);letter-spacing:-.03em}
#project-dot-air .da-links a{gap:16px;font:600 13px var(--da-ui);padding:14px 20px;min-height:50px}
#project-dot-air .da-note{font:400 13px/1.85 var(--da-ui);max-width:90ch}
#project-dot-air .da-credit{font:400 12px/1.8 var(--da-ui)}

/* ───────────── Roseraie: a violet rococo atelier ───────────── */
#project-roseraie.rose-v2{--rv-han:var(--zh-mid);--rr-display:var(--zh-mid);--rr-read:var(--body);margin:0;border:0;box-shadow:none;background:linear-gradient(180deg,#f8f1ff 0%,#f1e6fb 48%,#f6edfa 100%);color:var(--rv-ink);overflow:clip}
#project-roseraie::before,#project-roseraie::after{display:none}
#project-roseraie :focus-visible{outline:3px solid #77549c;outline-offset:4px}
#project-roseraie .rose-ribbon,#project-roseraie .rose-footer{display:flex;justify-content:space-between;gap:20px;padding:18px var(--gutter);background:#efe3fc;border:0;border-bottom:1px solid #d9c7ec;font:500 12px/1.4 var(--body);letter-spacing:0;color:#6e5a7e}
#project-roseraie .rose-footer{border-bottom:0;border-top:1px solid #d9c7ec}
#project-roseraie .rose-ribbon b,#project-roseraie .rose-footer b{display:inline-flex;vertical-align:-2px;margin:0 6px}
.rose-orn{width:14px;height:14px;fill:#8e65aa}
.rose-orn--line{fill:none;stroke:#8e65aa;stroke-width:1.4;stroke-linecap:round}

#project-roseraie .rose-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);min-height:clamp(720px,calc(100svh - 60px),1040px);padding:0 var(--gutter);border:0;overflow:clip;background:radial-gradient(ellipse 60% 70% at 78% 30%,#ead9fbd0,transparent 62%),radial-gradient(ellipse 50% 50% at 10% 100%,#f6d9ea,transparent 60%),linear-gradient(140deg,#fbf6ff,#efe2fb)}
#project-roseraie .rose-hero::before,#project-roseraie .rose-hero::after{display:none}
#project-roseraie .rose-hero-copy{grid-column:1/6;position:relative;z-index:3;align-self:center;padding:clamp(56px,6vw,100px) 0}
#project-roseraie .rose-overline{display:block;font:italic 400 18px/1.3 var(--rv-latin);letter-spacing:0;color:#8d70a3}
#project-roseraie .rose-v2-hero-mark{width:clamp(64px,5.4vw,92px);height:auto;margin:22px 0 0;filter:drop-shadow(0 14px 18px #9672aa44)}
#project-roseraie .rose-hero-copy h3{margin:10px 0 2px;font:300 clamp(96px,11.4vw,200px)/.8 var(--rv-latin);letter-spacing:-.07em;color:#4f3c60;text-shadow:none}
#project-roseraie .rose-hero-copy h3 span{color:#a2669f}
#project-roseraie .rose-hero-cn{margin:14px 0 clamp(28px,3vw,48px);font:400 clamp(18px,1.6vw,24px)/1.4 var(--zh-mid);letter-spacing:.3em;color:#8565a0}
#project-roseraie .rose-hero-copy h4{margin:0 0 20px;font:400 clamp(36px,3.8vw,62px)/1.18 var(--zh-mid);letter-spacing:0;color:#563d6e}
html[lang=en] #project-roseraie .rose-hero-copy h4{font:italic 400 clamp(40px,4.2vw,70px)/1.02 var(--rv-latin);letter-spacing:-.02em}
#project-roseraie .rose-hero-copy>p:last-of-type{max-width:30em;font:400 16px/1.85 var(--body);color:#6a5879}
#project-roseraie .rose-hero-copy button{display:inline-flex;align-items:center;gap:16px;margin-top:30px;padding:16px 24px;min-height:54px;border-radius:60px;background:#6f5196;border:0;color:#fffaff;font:600 14px var(--body);box-shadow:0 20px 40px -18px #6f5196aa;cursor:pointer}
#project-roseraie .rose-hero-copy button:hover{background:#573c7c}
#project-roseraie .rose-hero-art{grid-column:6/-1;position:relative;z-index:2;min-height:0;overflow:visible;align-self:stretch}
#project-roseraie .rose-v2-ring--outer{width:min(62vw,900px);height:min(62vw,900px);right:-16vw;top:-10%}
#project-roseraie .rose-v2-ring--inner{width:min(40vw,580px);height:min(40vw,580px);right:-4vw;top:2%}
#project-roseraie .rose-v2-botanical-halo{width:min(40vw,600px);height:min(40vw,600px);right:-2vw;top:-6%}
#project-roseraie .rose-v2-botanical{width:min(32vw,520px);max-width:none;right:-3vw;top:-2%;z-index:1}
#project-roseraie .rose-v2-preview{position:absolute;z-index:4;left:0;right:-2vw;top:auto;bottom:clamp(70px,9vw,140px);width:auto;padding:12px 12px 0;border:1px solid #cbb4e5;border-radius:16px;background:#fffafd;box-shadow:0 60px 110px -40px #523b6aa0,0 0 0 8px #ffffffa8;transform:none}
#project-roseraie .rose-v2-preview::after{display:none}
#project-roseraie:hover .rose-v2-preview{transform:none}
#project-roseraie .rose-v2-preview>span{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 10px;font:500 11px var(--mono);letter-spacing:0;color:#856e9b}
#project-roseraie .rose-v2-preview>span b{display:inline-flex;gap:6px}
#project-roseraie .rose-v2-preview>span b i{width:10px;height:10px;border-radius:50%;border:1px solid #b9a2d1}
#project-roseraie .rose-v2-preview img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border:1px solid #e1d4ee;border-radius:6px 6px 0 0}
#project-roseraie .rose-v2-preview small{display:block;padding:10px 4px 12px;font:500 11px var(--body);letter-spacing:0;color:#856e9b}
#project-roseraie .rose-v2-medallion{right:-1vw;bottom:clamp(30px,4vw,70px);width:112px;height:112px;font:italic 400 44px/1 var(--rv-latin);color:#6b4f8d}
#project-roseraie .rose-v2-medallion small{font:500 9px/1 var(--body);letter-spacing:.06em;margin-top:4px}
#project-roseraie .rose-hero-foot{grid-column:1/-1;position:absolute;left:var(--gutter);right:var(--gutter);bottom:0;z-index:3;display:flex;justify-content:space-between;padding:18px 0 22px;border-top:1px solid #cdb3e0;font:500 12px var(--body);letter-spacing:0;color:#786487}

#project-roseraie .rose-prologue{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);align-items:end;padding:clamp(80px,9vw,150px) var(--gutter) clamp(56px,6vw,90px);background:none;border:0}
#project-roseraie .rose-prologue>div{grid-column:1/8}
#project-roseraie .rose-prologue>div>span{display:block;margin-bottom:20px;font:italic 400 18px/1.3 var(--rv-latin);letter-spacing:0;color:#8d70a3}
#project-roseraie .rose-prologue h3{margin:0;font:400 clamp(40px,4.6vw,80px)/1.15 var(--zh-mid);letter-spacing:0;color:#4f3c60}
html[lang=en] #project-roseraie .rose-prologue h3{font:300 clamp(48px,5.4vw,92px)/1 var(--rv-latin);letter-spacing:-.03em}
#project-roseraie .rose-prologue h3 em{font-style:normal;color:#9a6aa8}
#project-roseraie .rose-prologue>p{grid-column:9/-1;margin:0;font:400 16px/1.9 var(--body);color:#665479}

#project-roseraie .rose-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 var(--gutter);padding:0;background:none;border-top:1px solid #cdb3e0;border-bottom:1px solid #cdb3e0}
#project-roseraie .rose-triptych>div{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;gap:6px 18px;align-items:center;padding:clamp(28px,3vw,44px) clamp(18px,2vw,36px);background:none!important;border:0;border-radius:0;box-shadow:none!important;min-height:0}
#project-roseraie .rose-triptych>div+div{border-left:1px solid #dccbeb}
#project-roseraie .rose-triptych>div::before,#project-roseraie .rose-triptych>div::after{display:none}
#project-roseraie .rose-triptych span{grid-column:1/-1;font:italic 400 17px/1.3 var(--rv-latin);letter-spacing:0;color:#8d70a3}
#project-roseraie .rose-triptych b{grid-row:2/4;display:grid;place-items:center;width:58px;height:58px;border:1px solid #c7aedf;border-radius:50%;margin:0}
#project-roseraie .rose-triptych b .rose-orn{width:22px;height:22px}
#project-roseraie .rose-triptych strong{font:400 clamp(22px,2vw,30px)/1.25 var(--zh-mid);letter-spacing:0;color:#5d4478}
html[lang=en] #project-roseraie .rose-triptych strong{font:500 clamp(22px,2vw,30px)/1.1 var(--rv-latin)}
#project-roseraie .rose-triptych p{margin:0;font:400 14px/1.6 var(--body);color:#766385}

#project-roseraie .rose-gallery{margin:0;padding:clamp(80px,8vw,130px) var(--gutter) clamp(56px,6vw,90px);background:none;border:0;color:#4e3d60}
#project-roseraie .rose-gallery-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding-bottom:22px;margin-bottom:28px;border-bottom:1px solid #c8afdc}
#project-roseraie .rose-gallery-heading span{font:500 12px var(--body);letter-spacing:0;color:#856e96}
#project-roseraie .rose-gallery-heading p{margin:0;font:400 clamp(28px,2.8vw,46px)/1.2 var(--zh-mid);color:#5e477c}
html[lang=en] #project-roseraie .rose-gallery-heading p{font:300 clamp(32px,3.2vw,52px)/1.1 var(--rv-latin)}
#project-roseraie .rose-gallery-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:clamp(20px,2.4vw,40px)}
#project-roseraie .rose-gallery-rail{display:flex;flex-direction:column;border:0;padding:0}
#project-roseraie .rose-gallery-rail button{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;min-height:62px;padding:14px 12px;text-align:left;border:0;border-bottom:1px solid #d4c3e4;border-radius:0;background:none;color:#6c537d;cursor:pointer;transition:background .3s,padding .35s var(--ease-out)}
#project-roseraie .rose-gallery-rail button small{font:500 11px var(--mono);letter-spacing:0}
#project-roseraie .rose-gallery-rail button span{font:400 18px/1.3 var(--zh-mid);letter-spacing:0}
html[lang=en] #project-roseraie .rose-gallery-rail button span{font:500 19px/1.2 var(--rv-latin)}
#project-roseraie .rose-gallery-rail button b{display:inline-flex}
#project-roseraie .rose-gallery-rail button[aria-pressed=true],#project-roseraie .rose-gallery-rail button:hover{background:#fffaff;color:#5e367d;padding-left:18px}
#project-roseraie .rose-gallery-rail p{margin:22px 0 0;font:400 13px/1.7 var(--body);color:#856e96}
#project-roseraie .rose-gallery-stage{position:relative;min-height:0;border:1px solid #d4bfe7;border-radius:18px;background:radial-gradient(circle at 50% 18%,#fffbff,#e9dcf4);overflow:hidden}
#project-roseraie .rose-v2-scene{min-height:0;padding:clamp(20px,2.4vw,40px) clamp(20px,2.4vw,40px) 52px}
#project-roseraie .rose-v2-scene img{width:100%;max-height:min(70vh,760px);height:auto;object-fit:contain;border-radius:8px;box-shadow:0 40px 70px -36px #5c477b80}
#project-roseraie .rose-v2-scene--compact img{width:auto;max-width:min(100%,330px);max-height:min(70vh,700px)}
#project-roseraie .rose-v2-scene figcaption{left:clamp(20px,2.4vw,40px);bottom:18px;font:500 11px var(--body);letter-spacing:0}
#project-roseraie .rose-gallery-caption{display:grid;grid-template-columns:auto 1fr auto;gap:20px;margin-top:16px;font:500 12px var(--body);letter-spacing:0;color:#765d91}
#project-roseraie .rose-gallery-caption span:first-child{font:italic 400 18px/1 var(--rv-latin)}
#project-roseraie .rose-gallery-caption span:nth-child(2){font:400 14px var(--body);text-align:center}

#project-roseraie .rose-v2-history{margin:0 var(--gutter);border:1px solid #cbb7dc;border-radius:18px;background:linear-gradient(120deg,#fbf4ff,#f0e3f9)}
#project-roseraie .rose-v2-history summary{grid-template-columns:auto 1fr auto auto;gap:clamp(18px,2.4vw,36px);padding:clamp(26px,2.8vw,40px) clamp(22px,3vw,48px)}
#project-roseraie .rose-v2-history-seal{position:relative;width:68px;height:68px}
#project-roseraie .rose-v2-history-seal span{position:absolute;right:2px;top:2px;translate:none;display:inline-flex}
#project-roseraie .rose-v2-history-intro small{font:500 12px var(--body);letter-spacing:0;color:#8e70a5}
#project-roseraie .rose-v2-history-intro strong{font:400 clamp(30px,3vw,48px)/1.15 var(--zh-mid);color:#583e75}
html[lang=en] #project-roseraie .rose-v2-history-intro strong{font:300 clamp(36px,3.4vw,56px)/1 var(--rv-latin)}
#project-roseraie .rose-v2-history-route{display:inline-flex;align-items:center;gap:10px;font:400 clamp(28px,2.6vw,40px)/1 var(--rv-latin);color:#7a5a99}
#project-roseraie .rose-v2-history-route i{display:inline-flex;font-size:18px;color:#b867a0}
#project-roseraie .rose-v2-history-plus{position:relative;width:46px;height:46px;font-size:0;color:#7a5a99}
#project-roseraie .rose-v2-history-plus::before,#project-roseraie .rose-v2-history-plus::after{content:'';position:absolute;left:50%;top:50%;width:16px;height:1.5px;background:currentColor;translate:-50% -50%}
#project-roseraie .rose-v2-history-plus::after{rotate:90deg}
#project-roseraie .rose-v2-history-pages{grid-template-columns:1fr 1fr;padding:0 clamp(22px,3vw,48px) clamp(30px,3vw,48px)}
#project-roseraie .rose-v2-history-page{padding:clamp(26px,2.6vw,40px);border-radius:0}
#project-roseraie .rose-v2-history-date{font:500 12px var(--mono);letter-spacing:0}
#project-roseraie .rose-v2-history-page h4{font:400 clamp(28px,2.6vw,40px)/1.25 var(--zh-mid)}
html[lang=en] #project-roseraie .rose-v2-history-page h4{font:400 clamp(30px,2.8vw,44px)/1.1 var(--rv-latin)}
#project-roseraie .rose-v2-history-page h4 span{font:italic 500 1.2em/1 var(--rv-latin)}
#project-roseraie .rose-v2-history-page>p{font:400 15px/1.8 var(--body)}
#project-roseraie .rose-v2-history-changes h5{font:400 19px/1.35 var(--zh-mid)}
html[lang=en] #project-roseraie .rose-v2-history-changes h5{font:500 20px/1.25 var(--rv-latin)}
#project-roseraie .rose-v2-history-changes p{font:400 13px/1.8 var(--body)}
#project-roseraie .rose-v2-history-page>a{display:inline-flex;align-items:center;gap:16px;font:600 13px var(--body)}

#project-roseraie .rose-closing{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);align-items:end;padding:clamp(80px,9vw,150px) var(--gutter) clamp(56px,6vw,90px);background:none;border:0}
#project-roseraie .rose-closing>div{grid-column:1/7}
#project-roseraie .rose-closing>div>span{display:block;margin-bottom:18px;font:italic 400 19px/1.3 var(--rv-latin);letter-spacing:0;color:#8d70a3}
#project-roseraie .rose-closing strong{display:block;font:400 clamp(40px,4.6vw,80px)/1.15 var(--zh-mid);color:#4f3c60}
html[lang=en] #project-roseraie .rose-closing strong{font:300 clamp(48px,5.4vw,92px)/1 var(--rv-latin);letter-spacing:-.03em}
#project-roseraie .rose-closing .rose-actions{grid-column:7/-1;justify-self:end;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
#project-roseraie .rose-actions a{display:inline-flex;align-items:center;gap:16px;min-height:54px;padding:14px 22px;border:1px solid #b79ad1;border-radius:60px;background:#fffaffcc;color:#5e477c;font:600 14px var(--body);text-decoration:none;transition:background .3s,color .3s}
#project-roseraie .rose-actions a:hover{background:#fff}
#project-roseraie .rose-actions .rose-action-main{background:#6f5196;border-color:#6f5196;color:#fffaff}
#project-roseraie .rose-actions .rose-action-main:hover{background:#573c7c}

/* ───────────── Atlas: Renaissance fresco, cosmic pigment, an observatory ───────────── */
#project-atlas.atlas-v2-exhibit{--atlas-zh:var(--zh-mid);--atlas-read:var(--body);margin:0;border:0;box-shadow:none;background:var(--atlas-v2-night);overflow:clip}
#project-atlas :focus-visible{outline:3px solid #e2c184;outline-offset:4px}
#project-atlas .atlas-v2-edition{padding:18px var(--gutter);border-bottom:1px solid #8e6c42;background:#e8d8b4;font:500 12px/1.4 var(--body);letter-spacing:0}
#project-atlas .atlas-v2-overture{min-height:clamp(700px,100svh,1060px)}
#project-atlas .atlas-v2-overture-frame{inset:clamp(14px,1.6vw,26px)}
#project-atlas .atlas-v2-overture-top,#project-atlas .atlas-v2-overture-bottom{left:calc(var(--gutter) + 16px);right:calc(var(--gutter) + 16px);font:500 12px/1.5 var(--atlas-serif);letter-spacing:.08em}
#project-atlas .atlas-v2-overture-bottom>span:last-child{display:inline-flex;align-items:center;gap:8px;letter-spacing:0;font-family:var(--body)}
#project-atlas .atlas-v2-overture-copy{top:50%;transform:translateY(-46%)}
#project-atlas .atlas-v2-overture-copy>span{font:400 clamp(15px,1.3vw,19px)/1.5 var(--zh-mid);letter-spacing:.12em}
html[lang=en] #project-atlas .atlas-v2-overture-copy>span{font:italic 400 clamp(18px,1.5vw,24px)/1.4 var(--atlas-serif);letter-spacing:.02em}
#project-atlas .atlas-v2-overture-copy h3{font-size:clamp(140px,23vw,400px)}
#project-atlas .atlas-v2-overture-copy p{font:400 clamp(28px,3.2vw,54px)/1.25 var(--zh-mid);letter-spacing:.04em}
html[lang=en] #project-atlas .atlas-v2-overture-copy p{font:italic 400 clamp(30px,3.4vw,56px)/1.2 var(--atlas-serif);letter-spacing:0}
#project-atlas .atlas-v2-prologue{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);gap:0 clamp(16px,2vw,32px);padding:clamp(90px,9vw,150px) var(--gutter) clamp(80px,8vw,130px)}
#project-atlas .atlas-v2-prologue>div:first-child{grid-column:1/8}
#project-atlas .atlas-v2-prologue>div:last-child{grid-column:9/-1}
#project-atlas .atlas-v2-prologue::before{inset:clamp(14px,1.6vw,26px)}
#project-atlas .atlas-v2-overline{font:500 13px var(--body);letter-spacing:0}
#project-atlas .atlas-v2-prologue h3{font:400 clamp(44px,5.4vw,92px)/1.16 var(--zh-mid);letter-spacing:0}
html[lang=en] #project-atlas .atlas-v2-prologue h3{font:400 clamp(54px,6vw,100px)/1.02 var(--atlas-serif);letter-spacing:-.04em}
#project-atlas .atlas-v2-prologue p{font:400 17px/1.9 var(--body)}
html[lang=en] #project-atlas .atlas-v2-prologue p{font:400 22px/1.55 var(--atlas-serif)}
#project-atlas .atlas-v2-prologue button{display:inline-flex;font:600 14px var(--body);min-height:54px;padding:14px 22px}
#project-atlas .atlas-v2-ledger>div{padding:clamp(28px,3vw,48px) var(--gutter)}
#project-atlas .atlas-v2-ledger>div+div{padding-left:clamp(24px,2.6vw,40px)}
#project-atlas .atlas-v2-ledger b{font-size:clamp(60px,6.4vw,112px)}
#project-atlas .atlas-v2-ledger span{font:500 13px/1.4 var(--body);letter-spacing:0}
#project-atlas .atlas-v2-ledger p{padding:clamp(28px,3vw,48px) var(--gutter) clamp(28px,3vw,48px) clamp(24px,2.6vw,40px);font:400 clamp(20px,1.7vw,26px)/1.45 var(--zh-mid)}
html[lang=en] #project-atlas .atlas-v2-ledger p{font:italic 400 clamp(22px,1.9vw,28px)/1.3 var(--atlas-serif)}
#project-atlas .atlas-v2-view-head{padding:20px var(--gutter);font:500 12px/1.4 var(--atlas-serif);letter-spacing:.06em}
#project-atlas .atlas-v2-view-layout{grid-template-columns:minmax(240px,300px) minmax(0,1fr);min-height:clamp(560px,52vw,820px)}
#project-atlas .atlas-v2-view-rail{padding:clamp(28px,3vw,44px) 24px 28px var(--gutter)}
#project-atlas .atlas-v2-view-rail>p{font:500 13px/1.5 var(--body);letter-spacing:0}
#project-atlas .atlas-v2-view-rail button span{font:400 17px/1.3 var(--zh-mid)}
html[lang=en] #project-atlas .atlas-v2-view-rail button span{font:400 18px var(--atlas-serif)}
#project-atlas .atlas-v2-view-rail button i{display:inline-flex}
#project-atlas .atlas-v2-view-aside p{font:400 15px/1.7 var(--body)}
#project-atlas .atlas-v2-view-aside small{font:400 13px/1.6 var(--body)}
#project-atlas .atlas-v2-view-stage{min-height:clamp(560px,52vw,820px)}
#project-atlas :is(.atlas-v2-sky-title span,.atlas-v2-manuscript-copy>span,.atlas-v2-manuscript-index,.atlas-v2-index-head,.atlas-v2-index-foot,.atlas-v2-sky-count span){font-family:var(--atlas-serif);font-size:12px;letter-spacing:.08em}
#project-atlas .atlas-v2-sky-title strong{font:400 clamp(36px,4.2vw,72px)/1.2 var(--zh-mid)}
html[lang=en] #project-atlas .atlas-v2-sky-title strong{font:italic 400 clamp(40px,4.6vw,76px)/1.05 var(--atlas-serif)}
#project-atlas .atlas-v2-manuscript-copy strong,#project-atlas .atlas-v2-index-title{font-family:var(--zh-mid)}
html[lang=en] #project-atlas :is(.atlas-v2-manuscript-copy strong,.atlas-v2-index-title){font-family:var(--atlas-serif)}
#project-atlas .atlas-v2-epilogue{min-height:clamp(600px,48vw,820px)}
#project-atlas .atlas-v2-epilogue-copy{width:min(56%,760px);padding:clamp(70px,7vw,120px) var(--gutter)}
#project-atlas .atlas-v2-epilogue-copy>span{font:500 12px var(--atlas-serif);letter-spacing:.08em}
#project-atlas .atlas-v2-epilogue-copy h3{font:400 clamp(36px,3.8vw,64px)/1.2 var(--zh-mid)}
html[lang=en] #project-atlas .atlas-v2-epilogue-copy h3{font:italic 400 clamp(44px,4.6vw,76px)/1.04 var(--atlas-serif)}
#project-atlas .atlas-v2-actions a{display:inline-flex;gap:14px;min-height:50px;padding:13px 18px;font:600 14px var(--body)}
#project-atlas .atlas-v2-epilogue-copy small{font:400 13px/1.7 var(--body);color:#4f4a40;max-width:56ch}

/* ───────────── The project dialog: a full sheet that rises from the river ───────────── */
.gallery-page .exhibition-dialog{max-height:calc(100svh - 32px)}
.gallery-page .exhibition-dialog::backdrop{background:#0b0d26b8}
.gallery-page .exhibition-dialog .dialog-close{font-size:0!important;line-height:0}
.gallery-page .exhibition-dialog .dialog-close::before,.gallery-page .exhibition-dialog .dialog-close::after{content:'';position:absolute;left:50%;top:50%;width:16px;height:2px;border-radius:2px;background:currentColor;translate:-50% -50%;rotate:45deg}
.gallery-page .exhibition-dialog .dialog-close::after{rotate:-45deg}
.gallery-page :is(.da-dialog,.roseraie-dialog,.atlas-dialog){width:min(1240px,calc(100% - 32px));border-radius:22px}
.gallery-page .roseraie-dialog .rose-detail{--rv-han:var(--zh-mid)}
.gallery-page .roseraie-dialog :is(.rose-detail-head p,.rose-detail-grid h3){font-family:var(--zh-mid)}
.gallery-page .roseraie-dialog :is(.rose-detail-grid p,.rose-gallery-rail p,.rose-gallery-caption span:nth-child(2)){font-family:var(--body)}
.gallery-page .roseraie-dialog .rose-gallery-rail button span{font-family:var(--zh-mid)}
html[lang=en] .gallery-page .roseraie-dialog :is(.rose-detail-head p,.rose-detail-grid h3,.rose-gallery-rail button span){font-family:var(--rv-latin)}
.gallery-page .roseraie-dialog :is(.rose-detail-head span,.rose-gallery-heading span,.rose-detail-grid small,.rose-v2-history-intro small,.rose-v2-history-date){letter-spacing:0}
.gallery-page .roseraie-dialog .rose-v2-scene img{max-height:min(64vh,640px)}
.gallery-page .atlas-dialog .atlas-v2-detail{--atlas-zh:var(--zh-mid);--atlas-read:var(--body)}
.gallery-page .atlas-dialog :is(.atlas-v2-detail-head>span,.atlas-v2-view-head,.atlas-v2-detail-chapters span){letter-spacing:.06em}
.gallery-page .atlas-dialog .atlas-v2-detail-chapters h3{font-family:var(--zh-mid)}
html[lang=en] .gallery-page .atlas-dialog .atlas-v2-detail-chapters h3{font-family:var(--atlas-serif)}
.gallery-page .atlas-dialog .atlas-v2-view-rail button i,.gallery-page .atlas-dialog .atlas-v2-actions a .ic{display:inline-flex}
.gallery-page .da-dialog .da-detail-head .da-overline{letter-spacing:0;font-size:12px}
.gallery-page .da-dialog .da-detail-head h2{font-size:clamp(56px,7vw,96px)}
.gallery-page .da-dialog .da-software img{border:1px solid var(--da-ink)}
.gallery-page .da-dialog .da-software figcaption{font-size:12px}
.gallery-page .da-dialog .da-detail-body h3{font:400 clamp(26px,2.6vw,40px)/1.2 var(--da-type);letter-spacing:-.04em}
.gallery-page .da-dialog .da-detail-body>p:not(.da-note){font-size:16px}
.gallery-page .da-dialog .da-links a{display:inline-flex;align-items:center;gap:14px;font-size:13px}

/* ───────────── Responsive ───────────── */
@media (max-width:1100px){
  .gallery-page .gh .gh-body{grid-column:1/-1}
  .gh-fleet{grid-column:1/-1;grid-row:3;min-height:clamp(320px,60vw,560px);margin-top:48px}
  .gh-rail{grid-row:4;grid-template-columns:1fr;gap:12px}
  .gallery-page .gallery-header.gh{grid-template-rows:auto auto auto auto}
  .air-copy{grid-column:1/-1}
  .air-viewfinder{display:none}
  .gallery-page .air-head h2{grid-column:1/-1}
  .air-head-side{grid-column:1/-1;margin-top:24px}
  #project-dot-air .da-hero-copy{width:78%}
  #project-dot-air .da-hero>.da-globe{width:96vw;right:-38vw;top:auto;bottom:-10vw;translate:none}
  #project-dot-air .da-coordinate{left:auto;right:var(--gutter);bottom:120px}
  #project-roseraie .rose-hero-copy{grid-column:1/-1;padding-bottom:20px}
  #project-roseraie .rose-hero-art{grid-column:1/-1;min-height:clamp(420px,70vw,700px)}
  #project-roseraie .rose-v2-preview{bottom:110px;right:0}
  #project-roseraie .rose-prologue>div,#project-roseraie .rose-prologue>p,#project-roseraie .rose-closing>div,#project-roseraie .rose-closing .rose-actions{grid-column:1/-1;justify-self:start;justify-content:flex-start}
  #project-roseraie .rose-prologue>p,#project-roseraie .rose-closing .rose-actions{margin-top:28px}
  #project-atlas .atlas-v2-prologue>div:first-child,#project-atlas .atlas-v2-prologue>div:last-child{grid-column:1/-1}
  #project-atlas .atlas-v2-prologue>div:last-child{margin-top:30px}
  #project-atlas .atlas-v2-epilogue-copy{width:min(80%,700px)}
}
@media (max-width:900px){
  .gallery-page .gallery-section-prologue,.gallery-page .gallery-colophon{grid-template-columns:1fr}
  .gallery-page .collection-navigation.gn{grid-template-columns:repeat(4,minmax(0,1fr))}
  .gallery-page .gn .gallery-room-label{grid-column:1/-1}
  .gallery-page .gallery-prologue-glyph{display:none}
  .gallery-page .ai-sites-facts.air-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gallery-page .air-facts>a{grid-column:1/-1}
  .air-sheet{grid-template-columns:1fr 1fr}
  .air-frame--2,.air-frame--3{margin-top:0}
  .air-frame--3{margin-top:0}
  .gallery-page .air .ai-history-page{grid-template-columns:1fr}
  .gallery-page .air .ai-history-page>*,.gallery-page .air .ai-history-date{grid-column:1;grid-row:auto}
  .gallery-page .air .ai-history-date{flex-direction:row;justify-content:space-between;margin-bottom:18px}
  .gallery-page .air .ai-history-changes{grid-template-columns:1fr}
  .gallery-page .air .ai-history-changes>section+section{padding-left:0;border-left:0;border-top:1px solid #f0eee81f}
  #project-dot-air .da-masthead{grid-template-columns:1fr auto}
  #project-dot-air .da-masthead>span{display:none}
  #project-dot-air .da-console{flex-direction:column;align-items:flex-start}
  #project-dot-air .da-section-heading{grid-template-columns:1fr}
  #project-dot-air .da-dna{grid-template-columns:1fr}
  #project-dot-air .da-folio{grid-template-columns:1fr}
  #project-roseraie .rose-triptych{grid-template-columns:1fr}
  #project-roseraie .rose-triptych>div+div{border-left:0;border-top:1px solid #dccbeb}
  #project-roseraie .rose-gallery-layout{grid-template-columns:1fr}
  #project-roseraie .rose-gallery-rail{flex-direction:row;flex-wrap:wrap;gap:0}
  #project-roseraie .rose-gallery-rail button{flex:1 1 30%}
  #project-roseraie .rose-gallery-rail p{flex-basis:100%}
  #project-roseraie .rose-v2-history-pages{grid-template-columns:1fr}
  #project-roseraie .rose-v2-history-page+article{border-left:1px solid #d7c6e7;border-top:0}
  #project-atlas .atlas-v2-ledger{grid-template-columns:repeat(3,minmax(0,1fr))}
  #project-atlas .atlas-v2-ledger p{grid-column:1/-1;border-top:1px solid #aa8856}
  #project-atlas .atlas-v2-view-layout{grid-template-columns:1fr}
  #project-atlas .atlas-v2-view-rail{padding:28px var(--gutter);border-right:0;border-bottom:1px solid #896f4a}
  .gallery-page .scene-index--works{display:none}
}
@media (max-width:760px){
  .gallery-page .gallery-header.gh{min-height:0;padding-bottom:0}
  .gallery-page .gh h1{font-size:clamp(64px,19vw,140px)!important}
  .gallery-page .gh .gh-body{margin-top:32px;gap:26px}
  .gh-fleet{min-height:0;height:clamp(300px,92vw,520px)}
  .gh-plate--rose{width:62%}
  .gh-plate--atlas{left:30%;top:30%;width:58%}
  .gh-plate--chroma{left:44%;top:60%;width:56%}
  .gh-plate figcaption{display:none}
  .gh-fleet-serial{display:none}
  .gallery-page .gh .collection-mark{top:auto;right:auto;bottom:0;left:0}
  .gallery-page .gh .collection-mark span{display:none}
  .gallery-page .gh .gallery-kicker{flex-wrap:wrap;gap:8px 14px}
  .gallery-page .collection-navigation.gn{grid-template-columns:1fr 1fr;row-gap:28px}
  .gallery-page .collection-navigation.gn>a{margin-top:30px}
  .gallery-page .collection-navigation.gn>a::before{top:-30px;left:12px;inset:-30px auto auto 12px}
  .gallery-page .collection-navigation.gn>a::after{top:-20px;left:12px;right:0}
  .gallery-page .collection-navigation.gn>a:nth-of-type(2n)::after{right:12px}
  .gallery-page .gn .gallery-room-label{grid-column:1/-1}
  .air-top,.air-bottom{grid-template-columns:1fr auto}
  .air-top>span:nth-child(2),.air-bottom .air-progress{display:none}
  .air-bottom{padding:14px 0;gap:10px}
  .gallery-page .air-copy h3{font-size:clamp(84px,27vw,150px)}
  .air-copy h3 span:last-child{margin-left:.18em;-webkit-text-stroke-width:1.5px}
  .air-actions a{width:100%}
  .gallery-page .ai-sites-facts.air-facts{grid-template-columns:1fr 1fr 1fr}
  .gallery-page .air-facts>div{padding:24px 14px 22px;padding-left:max(14px,var(--gutter))}
  .gallery-page .air-facts>div+div{padding-left:14px}
  .gallery-page .air-facts strong{font-size:clamp(44px,13vw,72px)}
  .air-sheet{grid-template-columns:1fr;gap:28px}
  .air-frame img,.air-frame--2 img,.air-frame--3 img{height:auto;aspect-ratio:3/2}
  .gallery-page .air .ai-release-history>summary{grid-template-columns:auto minmax(0,1fr) auto}
  .gallery-page .air .ai-history-route{display:none}
  .gallery-page .air .ai-history-seal{width:48px;height:48px;font-size:34px}
  .gallery-page .collection-toolbar{flex-direction:column;align-items:flex-start;gap:8px}
  #project-dot-air .da-hero{min-height:760px}
  #project-dot-air .da-hero-top span+span{display:none}
  #project-dot-air .da-hero-copy{width:100%;padding-right:var(--gutter);padding-bottom:380px}
  #project-dot-air .da-display h3{font-size:clamp(66px,20vw,120px)}
  #project-dot-air .da-way{font-size:clamp(28px,9vw,48px)}
  #project-dot-air .da-hero>.da-globe{width:132vw;right:-46vw;bottom:-22vw}
  #project-dot-air .da-coordinate{width:118px;height:118px;bottom:96px;left:var(--gutter);right:auto}
  #project-dot-air .da-coordinate>strong{font-size:34px}
  #project-dot-air .da-orbit-controls{flex-wrap:wrap}
  #project-dot-air .da-scene-caption{flex-direction:column}
  #project-dot-air .da-tail-gallery{grid-template-columns:1fr}
  #project-dot-air .da-tail-gallery::before{display:none}
  #project-dot-air .da-history>summary{grid-template-columns:1fr 46px}
  #project-dot-air .da-history-label,#project-dot-air .da-history-versions{display:none}
  #project-dot-air .da-release-heading{grid-template-columns:1fr}
  #project-dot-air .da-release-end{flex-direction:column;align-items:flex-start}
  #project-roseraie .rose-ribbon,#project-roseraie .rose-footer,#project-roseraie .rose-hero-foot{flex-direction:column;gap:4px}
  #project-roseraie .rose-hero-copy h3{font-size:clamp(76px,24vw,128px)}
  #project-roseraie .rose-hero-art{min-height:clamp(360px,96vw,560px)}
  #project-roseraie .rose-v2-preview{bottom:96px;left:-4px;right:-4px}
  #project-roseraie .rose-v2-botanical{width:56vw;right:-10vw;top:-4%}
  #project-roseraie .rose-v2-medallion{width:84px;height:84px;font-size:34px;bottom:30px}
  #project-roseraie .rose-gallery-heading{flex-direction:column;gap:10px}
  #project-roseraie .rose-gallery-rail button{flex-basis:100%}
  #project-roseraie .rose-gallery-caption{grid-template-columns:1fr;gap:6px}
  #project-roseraie .rose-gallery-caption span:nth-child(2){text-align:left}
  #project-roseraie .rose-v2-history summary{grid-template-columns:auto 1fr auto}
  #project-roseraie .rose-v2-history-route{display:none}
  #project-roseraie .rose-actions a{width:100%;justify-content:space-between}
  #project-atlas .atlas-v2-edition{flex-direction:column;gap:4px}
  #project-atlas .atlas-v2-overture{min-height:640px}
  #project-atlas .atlas-v2-overture-top{flex-direction:column;align-items:flex-start;gap:2px}
  #project-atlas .atlas-v2-overture-copy h3{font-size:clamp(96px,30vw,160px)}
  #project-atlas .atlas-v2-ledger{grid-template-columns:1fr}
  #project-atlas .atlas-v2-ledger>div{border-right:0;border-bottom:1px solid #aa8856;padding-left:var(--gutter)!important;flex-direction:row;align-items:baseline;gap:18px}
  #project-atlas .atlas-v2-ledger p{padding-left:var(--gutter);border-top:0}
  #project-atlas .atlas-v2-epilogue-copy{width:100%}
  #project-atlas .atlas-v2-epilogue::after{background:linear-gradient(180deg,#f3e4cbf2,#f1e1cbd9 60%,#f1e1cb99)}
  #project-atlas .atlas-v2-actions a{width:100%;justify-content:space-between}
  .gallery-page .creator-link{justify-self:start}
}
@media (max-width:420px){
  .gallery-page .gh .gallery-introduction h2{font-size:32px}
  .gallery-page .ai-sites-facts.air-facts{grid-template-columns:1fr}
  .gallery-page .air-facts>div{flex-direction:row;align-items:baseline;border-right:0;border-bottom:1px solid var(--air-line);padding-left:var(--gutter)!important}
}

/* ───────────── Motion: the widening is the only authored moment; ornamental loops rest ───────────── */
html[data-site-motion=off] .gallery-page :is(.air-photo img,.air-viewfinder){transform:none;translate:none;transition:none}
@media (prefers-reduced-motion:reduce){
  .gallery-page :is(.air-photo img,.air-viewfinder){transform:none;translate:none;transition:none}
  .gallery-page .gn-river a>i,.gallery-page .scene-index--works a>*{transition:none}
}
.gallery-page .roseraie-dialog .rose-gallery-heading p{font:400 clamp(26px,2.6vw,40px)/1.2 var(--zh-mid);color:#5e477c}
html[lang=en] .gallery-page .roseraie-dialog .rose-gallery-heading p{font:300 clamp(30px,3vw,46px)/1.1 var(--rv-latin)}
#project-atlas .atlas-v2-plate--index{display:flex;flex-direction:column;padding:clamp(32px,3vw,52px) clamp(28px,4vw,64px)}
#project-atlas .atlas-v2-index-title{margin-top:auto;margin-bottom:clamp(28px,3vw,48px)}
#project-atlas .atlas-v2-index-grid{margin-bottom:auto}
#project-atlas .atlas-v2-index-grid>div{padding:clamp(16px,1.8vw,26px) 6px}
#project-atlas .atlas-v2-index-grid span{font:400 clamp(17px,1.4vw,21px)/1.4 var(--zh-mid)}
html[lang=en] #project-atlas .atlas-v2-index-grid span{font:400 clamp(19px,1.5vw,23px)/1.25 var(--atlas-serif)}

/* ═════════════ Unification pass (2026-10): one exhibit system across every room ═════════════
   Roles (tokens only): Chinese display → --zh-display; Chinese sub-heads → --zh-strong (--ux-sub); labels and buttons →
   --ux-label (= --body: DM Sans for Latin, the Chinese reading face for Chinese); reading → --body; data → --mono. Each room keeps one
   signature Latin display face for its wordmark only. Shared components: fact rows, pill buttons, the drawer ledger
   (top/bottom rules, title, route, ring toggle) and the detail sheet — each skinned by its room's palette. */
.gallery-page{--ux-label:var(--body);--ux-sub:var(--zh-strong)}
/* flow.css gives every .exhibit legacy --display/--body stacks; the rooms take the site tokens instead. */
.gallery-page .exhibit,.gallery-page .exhibition-dialog.exhibition-dialog{--display:inherit;--body:inherit}
/* A closed drawer's pages are not part of the page until it opens (Chrome keeps them laid out behind the summary). */
.gallery-page details:not([open])>:not(summary){visibility:hidden}
#project-dot-air .da-history:not([open])>.da-history-body{transition:visibility 0s linear .65s}

/* ── Hall and main-room shell ── */
.gallery-page .gallery-section-prologue>.mono{font:500 13px/1.4 var(--body)}
.gallery-page .creator-link .mono{font:500 12px var(--body);color:#e7ebf2b3}
.gallery-page .colophon-copy{display:flex;flex-direction:column}
.gallery-page .colophon-copy h2{order:1}
.gallery-page .colophon-copy>p:last-child{order:2}
.gallery-page .colophon-copy .eyebrow{order:3;margin:18px 0 0}
.gallery-page .gh h1{letter-spacing:-.02em!important}

/* ── AfterImage: one display voice (Barlow), the quote in the site's Cesso, the edition log as a ledger ── */
.gallery-page .air-copy h3{letter-spacing:-.02em}
.gallery-page .air-head h2{letter-spacing:.03em}
html[lang=en] .gallery-page .air-head h2{letter-spacing:-.02em}
.gallery-page .air-quote{font:700 clamp(26px,2.5vw,38px)/1.08 var(--air-cond);letter-spacing:0;font-style:normal;color:#e8e5dd}
.gallery-page .air-quote em{font-style:normal;color:inherit}
.air-bottom{font-size:12px}
.gallery-page .air-facts strong{letter-spacing:-.02em}
.gallery-page .air .ai-release-history{margin:0 var(--gx-room-pad);border:0;border-top:1px solid #f0eee859;border-bottom:1px solid #f0eee859;background:none;overflow:visible}
.gallery-page .air .ai-release-history>summary{grid-template-columns:auto minmax(0,1fr) auto auto;gap:clamp(16px,3vw,48px);padding:clamp(22px,2.4vw,30px) 0}
.gallery-page .air .ai-release-history>summary:hover{background:none}
.gallery-page .air .ai-history-seal{width:56px;height:56px;font-size:40px;letter-spacing:-.1em}
.gallery-page .air .ai-history-intro small{display:none}
.gallery-page .air .ai-history-intro strong{font:400 clamp(26px,2.4vw,36px)/1.2 var(--zh-display);letter-spacing:.03em}
html[lang=en] .gallery-page .air .ai-history-intro strong{font:800 clamp(30px,2.8vw,44px)/.95 var(--air-cond);letter-spacing:0}
.gallery-page .air .ai-history-intro em{font:400 14px/1.6 var(--body)}
.gallery-page .air .ai-history-route{font:500 13px/1 var(--mono);letter-spacing:0;color:var(--air-muted);gap:10px}
.gallery-page .air .ai-history-route-old{color:var(--air-muted)}
.gallery-page .air .ai-history-route .ic{font-size:14px}
.gallery-page .air .ai-history-plus{width:52px;height:52px;border-color:#f0eee86b;color:var(--air-cream);transition:transform .6s var(--ease-out),background .35s,color .35s}
.gallery-page .air .ai-release-history>summary:hover .ai-history-plus{background:var(--air-cream);color:var(--air-ink);border-color:var(--air-cream)}
.gallery-page .air .ai-history-pages{border-top:1px solid #f0eee82e}
.gallery-page .air .ai-history-page{grid-template-columns:minmax(150px,2.4fr) minmax(0,9.6fr);column-gap:clamp(20px,4vw,72px);padding:clamp(28px,3vw,44px) 0}
.gallery-page .air .ai-history-page:first-child{background:none}
.gallery-page .air .ai-history-date{gap:10px;font:500 13px/1.3 var(--mono)}
.gallery-page .air .ai-history-date span{display:inline-flex;align-items:center;min-height:26px;padding:0 11px;border:1px solid #f0eee86b;border-radius:999px;font:600 12px/1 var(--ux-label);color:var(--air-cream)!important}
.gallery-page .air .ai-history-page--latest .ai-history-date span{background:var(--air-red);border-color:var(--air-red);color:#120c0b!important}
.gallery-page .air .ai-history-page h3{font:400 clamp(22px,2.1vw,32px)/1.3 var(--ux-sub);letter-spacing:.03em}
html[lang=en] .gallery-page .air .ai-history-page h3{font:800 clamp(26px,2.4vw,38px)/1.04 var(--air-cond);letter-spacing:0}
.gallery-page .air .ai-history-page h3>span:first-child{margin:0 0 20px;font-size:clamp(72px,7.4vw,124px);letter-spacing:-.02em}
.gallery-page .air .ai-history-page>p{font-size:15px;line-height:1.85}
.gallery-page .air .ai-history-changes{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px 28px;border-top:0}
.gallery-page .air .ai-history-changes>section,.gallery-page .air .ai-history-changes>section+section{grid-template-columns:28px minmax(0,1fr);gap:10px;padding:14px 0 0;border:0;border-top:1px solid #f0eee82e}
.gallery-page .air .ai-history-changes b{font:500 12px/1.7 var(--mono)}
.gallery-page .air .ai-history-changes h4{margin:0 0 6px;font:400 17px/1.4 var(--ux-sub);letter-spacing:.03em;color:#f3e7e2}
html[lang=en] .gallery-page .air .ai-history-changes h4{font:600 15px/1.4 var(--body)}
.gallery-page .air .ai-history-changes p{font-size:14px;line-height:1.75}
.gallery-page .air .ai-history-page>a{gap:10px;padding:0;border:0;font:600 14px/1.3 var(--ux-label);color:var(--air-cream);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:#f0eee86b}
.gallery-page .air .ai-history-page>a:hover{text-decoration-color:var(--air-red)}

/* ── DOT/AIR: Archivo Black (Dot Air Display) stays for the wordmark and Latin display; everything else joins the site ── */
#project-dot-air.da-exhibit,.gallery-page .da-dialog{--da-ui:var(--body)}
#project-dot-air .da-marquee{display:none}
#project-dot-air .da-display h3{letter-spacing:-.02em}
#project-dot-air .da-way{transform:rotate(-3deg);box-shadow:none;border:0;padding:.14em .52em .2em .24em;letter-spacing:-.02em}
#project-dot-air .da-way::after{display:none}
#project-dot-air .da-hero-copy>p{font:400 15px/1.9 var(--body);padding:10px 14px}
#project-dot-air .da-hero-top{font:600 12px/1.4 var(--body)}
#project-dot-air .da-coordinate{width:176px;height:176px;gap:6px;border:0;transform:none;box-shadow:none;background:var(--da-yellow)}
#project-dot-air .da-coordinate>span{font:600 11px/1.3 var(--body);letter-spacing:0}
#project-dot-air .da-coordinate>span[data-da-coordinates]{font:500 11px/1.3 var(--mono)}
#project-dot-air .da-coordinate>strong{font-size:50px;letter-spacing:-.02em}
#project-dot-air .da-pin{font-size:11px}
#project-dot-air .da-masthead h2{letter-spacing:-.02em}
#project-dot-air .da-masthead>span{font:500 13px/1.4 var(--body)}
#project-dot-air .da-overline,#project-dot-air .da-tail>.da-overline{font:500 12px/1.5 var(--body);letter-spacing:0}
#project-dot-air .da-section-heading{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:end}
#project-dot-air .da-section-heading>.da-overline{order:3;grid-column:1/-1;color:#54564e}
#project-dot-air .da-dna>div:not(.da-dna-dots),#project-dot-air .da-folio>div:first-child{display:flex;flex-direction:column}
#project-dot-air .da-dna>div>.da-overline,#project-dot-air .da-folio>div>.da-overline{order:3;margin-top:14px}
#project-dot-air .da-dna>div>p{order:2}
#project-dot-air .da-section-heading h3,#project-dot-air .da-dna h3{letter-spacing:-.02em}
html:not([lang=en]) #project-dot-air .da-section-heading h3{font-family:var(--zh-display);font-size:clamp(46px,5.6vw,96px);line-height:1.2;letter-spacing:.03em}
html:not([lang=en]) #project-dot-air .da-dna h3{font-family:var(--zh-display);font-size:clamp(34px,3.8vw,64px);line-height:1.2;letter-spacing:.03em}
#project-dot-air .da-section-heading p,#project-dot-air .da-dna p{font:400 16px/1.9 var(--body)}
#project-dot-air .da-tail strong{padding:0;background:none;font:600 15px var(--ux-label)}
#project-dot-air .da-tail>span:last-child{font:600 12px var(--body);letter-spacing:0}
#project-dot-air .da-tail img{filter:none}
#project-dot-air .da-airports button span{font:500 12px var(--ux-label);opacity:.85}
#project-dot-air .da-airports button b{letter-spacing:0}
#project-dot-air .da-orbit-controls button{font:600 13px var(--ux-label)}
/* Buttons: one pill for the whole room. */
#project-dot-air :is(.da-masthead>button,.da-dna>a,.da-links a),.gallery-page .da-dialog .da-links a{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 22px;border:1px solid var(--da-ink);border-radius:999px;font:600 14px/1 var(--ux-label);letter-spacing:0;white-space:nowrap;text-decoration:none;transition:background .3s,color .3s,border-color .3s,translate .45s var(--ease-out)}
#project-dot-air :is(.da-masthead>button,.da-dna>a,.da-links a):hover,.gallery-page .da-dialog .da-links a:hover{translate:0 -2px}
#project-dot-air :is(.da-masthead>button,.da-links a,.da-dna>a) .ic,.gallery-page .da-dialog .da-links a .ic{width:16px;height:16px}
/* Drawer ledger. */
#project-dot-air .da-history{margin:clamp(56px,6vw,96px) var(--dx-pad) 0;border:0;border-top:1px solid #20221f59;border-bottom:1px solid #20221f59;background:none}
#project-dot-air .da-history>summary{grid-template-columns:minmax(0,1fr) auto auto;gap:clamp(16px,3vw,48px);padding:clamp(22px,2.4vw,30px) 0}
#project-dot-air .da-history>summary:hover{background:none}
#project-dot-air .da-history-label{display:none}
#project-dot-air .da-history-title{font:400 clamp(26px,2.4vw,36px)/1.15 var(--da-type);letter-spacing:-.02em}
html:not([lang=en]) #project-dot-air .da-history-title{font-family:var(--zh-display);letter-spacing:.03em}
#project-dot-air .da-history-title small{margin-top:6px;font:400 14px/1.5 var(--body);color:#54564e}
#project-dot-air .da-history-versions{gap:10px;font:500 13px/1 var(--mono);color:#54564e}
#project-dot-air .da-history-versions i{font-size:14px}
#project-dot-air .da-history-toggle{width:52px;height:52px;border:1px solid #20221f59;background:none;color:var(--da-ink);transition:rotate .6s var(--ease-out),background .35s,color .35s}
#project-dot-air .da-history>summary:hover .da-history-toggle{background:var(--da-ink);color:var(--da-paper)}
#project-dot-air .da-history-body{padding:0 0 clamp(24px,3vw,40px)}
#project-dot-air .da-release{padding:clamp(28px,3vw,44px) 0;border-top:1px solid #20221f2e}
#project-dot-air .da-release-meta{align-items:center;font:500 13px var(--mono);color:#54564e}
#project-dot-air .da-release-meta span{display:inline-flex;align-items:center;min-height:26px;padding:0 11px;border:1px solid #20221f59;border-radius:999px;font:600 12px/1 var(--ux-label);color:var(--da-ink)}
#project-dot-air .da-release--current .da-release-meta span{background:var(--da-ink);border-color:var(--da-ink);color:var(--da-paper)}
#project-dot-air .da-release-heading>strong{letter-spacing:-.02em}
#project-dot-air .da-release-heading>div{display:flex;flex-direction:column}
#project-dot-air .da-release-heading .da-overline{order:3;margin-top:12px;color:#54564e}
#project-dot-air .da-release-heading h4{margin:0 0 14px;font:400 clamp(22px,2.1vw,32px)/1.3 var(--da-type);letter-spacing:-.02em}
html:not([lang=en]) #project-dot-air .da-release-heading h4{font-family:var(--ux-sub);letter-spacing:.03em}
#project-dot-air .da-release-heading p{font:400 15px/1.9 var(--body)}
#project-dot-air .da-release-changes{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px 28px}
#project-dot-air .da-release-changes section{padding-top:14px;border-top:1px solid #20221f2e}
#project-dot-air .da-release-changes section>span{font:500 12px var(--mono);color:#b3261b}
#project-dot-air .da-release-changes h5{margin:8px 0 8px;font:400 17px/1.4 var(--ux-sub);letter-spacing:.03em}
html[lang=en] #project-dot-air .da-release-changes h5{font:600 15px/1.4 var(--body)}
#project-dot-air .da-release-changes p{font:400 14px/1.9 var(--body)}
#project-dot-air .da-release-capture img{border-radius:14px;box-shadow:none;border:1px solid #20221f2e}
#project-dot-air .da-release-capture figcaption,#project-dot-air .da-release-end p{font:400 13px/1.75 var(--body)}
#project-dot-air .da-release-end a,#project-dot-air .da-release-original{gap:8px;border:0;font:600 14px/1.3 var(--ux-label);color:var(--da-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:#20221f59}
#project-dot-air .da-release-original{font-size:13px}
#project-dot-air .da-release-end a:hover,#project-dot-air .da-release-original:hover{text-decoration-color:currentColor}
html:not([lang=en]) #project-dot-air .da-folio>div>p{font:400 clamp(20px,1.8vw,28px)/1.4 var(--ux-sub);letter-spacing:.03em}
#project-dot-air .da-folio>div>p{letter-spacing:-.01em}
#project-dot-air .da-plate-frame{box-shadow:0 40px 80px -50px #20221f80}

/* ── Roseraie: Cormorant stays for the wordmark and Latin lines; Chinese joins the site tokens ── */
:is(#project-roseraie,.gallery-page .roseraie-dialog){--rv-han:var(--ux-sub);--rr-display:var(--zh-display)}
#project-roseraie .rose-hero-copy{display:flex;flex-direction:column;align-items:flex-start}
#project-roseraie .rose-v2-hero-mark{order:1}
#project-roseraie .rose-hero-copy h3{order:2;letter-spacing:-.02em}
#project-roseraie .rose-hero-cn{order:3;font:400 clamp(18px,1.5vw,22px)/1.4 var(--ux-sub);letter-spacing:.04em}
#project-roseraie .rose-hero-copy h4{order:4}
#project-roseraie .rose-hero-copy>p:last-of-type{order:5}
#project-roseraie .rose-hero-copy button{order:6}
#project-roseraie .rose-overline{order:7;margin-top:26px;font-size:17px}
#project-roseraie .rose-prologue>div:first-child,#project-roseraie .rose-closing>div:first-child{display:flex;flex-direction:column}
#project-roseraie .rose-prologue>div>span,#project-roseraie .rose-closing>div>span{order:2;margin:22px 0 0}
#project-roseraie .rose-triptych>div{grid-template-rows:auto auto auto;align-items:start}
#project-roseraie .rose-triptych b{grid-column:1;grid-row:1/4;align-self:center}
#project-roseraie .rose-triptych strong{grid-column:2;grid-row:1}
#project-roseraie .rose-triptych p{grid-column:2;grid-row:2}
#project-roseraie .rose-triptych span{grid-column:2;grid-row:3;margin-top:6px;font-size:16px}
html:not([lang=en]) #project-roseraie :is(.rose-hero-copy h4,.rose-prologue h3,.rose-closing strong){font-family:var(--zh-display);letter-spacing:.03em;line-height:1.2}
html:not([lang=en]) #project-roseraie .rose-gallery-heading p{font-family:var(--zh-display);letter-spacing:.03em}
html:not([lang=en]) #project-roseraie :is(.rose-triptych strong,.rose-gallery-rail button span){font-family:var(--ux-sub);letter-spacing:.03em}
#project-roseraie .rose-v2-medallion{display:none}
#project-roseraie .rose-v2-preview small,#project-roseraie .rose-v2-scene figcaption{font:500 12px var(--body)}
#project-roseraie :is(.rose-hero-copy button,.rose-actions a),.gallery-page .roseraie-dialog .rose-actions a{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 22px;border-radius:999px;font:600 14px/1 var(--ux-label);letter-spacing:0;box-shadow:none;white-space:nowrap}
#project-roseraie :is(.rose-hero-copy button,.rose-actions a) .ic,.gallery-page .roseraie-dialog .rose-actions a .ic{width:16px;height:16px}
/* Roseraie drawer ledger (room and sheet). */
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history{margin:0 var(--gutter);border:0;border-top:1px solid #b79ad18c;border-bottom:1px solid #b79ad18c;border-radius:0;background:none;box-shadow:none;overflow:visible}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:clamp(16px,3vw,48px);padding:clamp(22px,2.4vw,30px) 0;background:none;list-style:none;cursor:pointer}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history>summary::before,:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history>summary::after{display:none}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-seal{width:56px;height:56px;box-shadow:none}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-intro{display:flex;flex-direction:column;gap:6px}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-intro small{display:none}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-intro strong{font:400 clamp(26px,2.4vw,36px)/1.2 var(--zh-display);letter-spacing:.03em;color:#4f3c60}
html[lang=en] :is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-intro strong{font:300 clamp(32px,3vw,46px)/1 var(--rv-latin);letter-spacing:-.01em}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-intro em{font:400 14px/1.6 var(--body);font-style:normal;color:#6a5879}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-route{display:inline-flex;align-items:center;gap:10px;font:500 13px/1 var(--mono);color:#6a5879}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-route i{display:inline-flex;font-size:14px;color:#b867a0}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-plus{position:relative;display:block;width:52px;height:52px;border:1px solid #b79ad1;border-radius:50%;font-size:0;color:#5e477c;background:none;transition:rotate .6s var(--ease-out),background .35s,color .35s}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-plus::before,:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-plus::after{content:'';position:absolute;left:50%;top:50%;width:16px;height:1.5px;background:currentColor;translate:-50% -50%}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-plus::after{rotate:90deg}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history>summary:hover .rose-v2-history-plus{background:#6f5196;border-color:#6f5196;color:#fffaff}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history[open] .rose-v2-history-plus{rotate:45deg}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-pages{display:grid;grid-template-columns:1fr;gap:0;padding:0 0 clamp(24px,3vw,40px);background:none}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page{display:grid;grid-template-columns:minmax(150px,2.4fr) minmax(0,9.6fr);column-gap:clamp(20px,4vw,72px);align-items:start;padding:clamp(28px,3vw,44px) 0;border:0;border-top:1px solid #b79ad159;border-radius:0;background:none;box-shadow:none}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page+article{border-left:0;border-top:1px solid #b79ad159}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page>*{grid-column:2;min-width:0}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-date{grid-column:1;grid-row:1/span 5;display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:0;font:500 13px/1.3 var(--mono);letter-spacing:0;color:#6a5879}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-date span{display:inline-flex;align-items:center;min-height:26px;padding:0 11px;border:1px solid #b79ad1;border-radius:999px;font:600 12px/1 var(--ux-label);letter-spacing:0;color:#5e477c}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page:first-child .rose-v2-history-date span{background:#6f5196;border-color:#6f5196;color:#fffaff}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-date time{font:500 13px var(--mono);letter-spacing:0}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page h4{margin:0;font:400 clamp(22px,2.1vw,32px)/1.3 var(--ux-sub);letter-spacing:.03em;color:#4f3c60}
html[lang=en] :is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page h4{font:400 clamp(28px,2.6vw,40px)/1.1 var(--rv-latin);letter-spacing:-.01em}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page h4 span{display:block;margin-bottom:10px;font:300 clamp(56px,5.4vw,88px)/.86 var(--rv-latin);letter-spacing:-.02em;color:#6f5196}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page>p{margin:12px 0 0;max-width:64ch;font:400 15px/1.9 var(--body);color:#665479}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-changes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px 28px;margin:24px 0 0;padding:0;border:0}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-changes section{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:14px 0 0;border:0;border-top:1px solid #b79ad159;background:none}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-changes b{font:500 12px/1.7 var(--mono);color:#b867a0}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-changes h5{margin:0 0 6px;font:400 17px/1.4 var(--ux-sub);letter-spacing:.03em;color:#4f3c60}
html[lang=en] :is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-changes h5{font:500 20px/1.25 var(--rv-latin)}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-changes p{margin:0;font:400 14px/1.75 var(--body);color:#6a5879}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-note{margin:20px 0 0;font:400 13px/1.7 var(--body);color:#6a5879}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page>a{display:inline-flex;align-items:center;gap:10px;width:fit-content;margin-top:16px;padding:0;border:0;font:600 14px/1.3 var(--ux-label);color:#4f3c60;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:#b79ad1}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page>a:hover{text-decoration-color:currentColor}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page>a .ic{width:15px;height:15px}

/* ── Atlas: EB Garamond stays the Latin voice; Chinese joins the site tokens ── */
#project-atlas,.gallery-page .atlas-dialog .atlas-v2-detail{--atlas-zh:var(--ux-sub)}
#project-atlas .atlas-v2-edition i{display:inline-block;width:6px;height:6px;margin:0 12px;padding:0;border-radius:50%;background:#a16141;font-size:0;vertical-align:middle}
#project-atlas .atlas-v2-overture-copy{display:flex;flex-direction:column;align-items:center;transform:translateY(-58%)}
#project-atlas .atlas-v2-overture-frame::before,#project-atlas .atlas-v2-overture-frame::after{content:"";width:9px;height:9px;padding:0;top:-5px;border-radius:50%;background:#e2c184;box-shadow:0 0 0 6px #14263a}
#project-atlas .atlas-v2-overture-frame::after{top:auto;bottom:-5px}
#project-atlas .atlas-v2-overture-copy h3{order:1;letter-spacing:-.02em}
#project-atlas .atlas-v2-overture-copy p{order:2;letter-spacing:.04em}
#project-atlas .atlas-v2-overture-copy>span{order:3;margin-top:22px;font:400 clamp(15px,1.2vw,18px)/1.5 var(--ux-sub);letter-spacing:.04em}
html[lang=en] #project-atlas .atlas-v2-overture-copy p{letter-spacing:0}
#project-atlas .atlas-v2-prologue>div:first-child{display:flex;flex-direction:column}
#project-atlas .atlas-v2-prologue .atlas-v2-overline{order:2;margin:22px 0 0}
html:not([lang=en]) #project-atlas :is(.atlas-v2-prologue h3,.atlas-v2-epilogue-copy h3,.atlas-v2-sky-title strong){font-family:var(--zh-display);letter-spacing:.03em;line-height:1.2}
html:not([lang=en]) #project-atlas .atlas-v2-ledger p{font-family:var(--ux-sub);letter-spacing:.03em}
#project-atlas .atlas-v2-ledger b{letter-spacing:-.02em}
#project-atlas .atlas-v2-epilogue-copy{display:flex;flex-direction:column;align-items:flex-start}
#project-atlas .atlas-v2-epilogue-copy h3{order:1;margin:0 0 18px}
#project-atlas .atlas-v2-epilogue-copy>span{order:2;margin-bottom:30px}
#project-atlas .atlas-v2-epilogue-copy .atlas-v2-actions{order:3}
#project-atlas .atlas-v2-epilogue-copy small{order:4}
:is(#project-atlas,.gallery-page .atlas-dialog) .atlas-v2-sky-title{display:flex;flex-direction:column}
:is(#project-atlas,.gallery-page .atlas-dialog) .atlas-v2-sky-title strong{order:1;margin:0}
:is(#project-atlas,.gallery-page .atlas-dialog) .atlas-v2-sky-title span{order:2;margin-top:14px}
:is(#project-atlas,.gallery-page .atlas-dialog) .atlas-v2-manuscript-copy>span{font-size:12px;letter-spacing:.06em}
html:not([lang=en]) :is(#project-atlas,.gallery-page .atlas-dialog) .atlas-v2-sky-count span{font-family:var(--body);letter-spacing:0;font-size:13px}
:is(#project-atlas,.gallery-page .atlas-dialog) .atlas-v2-view-rail>p{font:500 13px/1.5 var(--body);letter-spacing:0}
html:not([lang=en]) :is(#project-atlas,.gallery-page .atlas-dialog) .atlas-v2-view-rail button span{font-family:var(--ux-sub);letter-spacing:.03em}
:is(#project-atlas,.gallery-page .atlas-dialog) :is(.atlas-v2-prologue button,.atlas-v2-actions a){display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 22px;border-radius:999px;font:600 14px/1 var(--ux-label);letter-spacing:0;white-space:nowrap}
:is(#project-atlas,.gallery-page .atlas-dialog) :is(.atlas-v2-prologue button,.atlas-v2-actions a):hover{transform:none;translate:0 -2px}
:is(#project-atlas,.gallery-page .atlas-dialog) :is(.atlas-v2-prologue button,.atlas-v2-actions a) .ic{width:16px;height:16px}

/* ── Detail sheets for DOT/AIR, Roseraie and Atlas: the same sheet as the other six rooms ── */
.gallery-page :is(.da-dialog,.roseraie-dialog,.atlas-dialog){width:min(1440px,calc(100vw - 32px));max-width:none;border-radius:24px;box-shadow:0 40px 120px -30px #000000a6}
.gallery-page .da-dialog .da-detail-head{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(40px,5vw,84px) clamp(22px,5vw,84px) clamp(28px,3vw,44px)}
.gallery-page .da-dialog .da-detail-head h2{order:1;margin:0;font-size:clamp(56px,7vw,112px);letter-spacing:-.02em}
.gallery-page .da-dialog .da-detail-head p{order:2;margin:20px 0 0;font:400 clamp(22px,2.05vw,32px)/1.28 var(--ux-sub);letter-spacing:.03em}
html[lang=en] .gallery-page .da-dialog .da-detail-head p{font:400 clamp(22px,2vw,30px)/1.2 var(--da-type);letter-spacing:-.01em}
.gallery-page .da-dialog .da-detail-head .da-overline{order:3;margin-top:16px;font:500 13px/1.4 var(--mono);letter-spacing:0;color:#54564e}
.gallery-page .da-dialog .da-software{padding:0 clamp(22px,5vw,84px)}
.gallery-page .da-dialog .da-software img{border-radius:14px;border:1px solid #20221f2e}
.gallery-page .da-dialog .da-software figcaption{padding:12px 0 0;font:500 13px/1.5 var(--body);color:#54564e}
.gallery-page .da-dialog .da-detail-body{display:grid;justify-items:start;gap:0;padding:clamp(32px,3.4vw,52px) clamp(22px,5vw,84px) clamp(32px,4vw,64px)}
.gallery-page .da-dialog .da-detail-body h3{margin:0;padding-top:clamp(22px,2.4vw,32px);border-top:1px solid #20221f2e;width:100%;font:400 clamp(26px,2.6vw,40px)/1.22 var(--da-type);letter-spacing:-.02em}
html:not([lang=en]) .gallery-page .da-dialog .da-detail-body h3{font-family:var(--zh-display);letter-spacing:.03em}
.gallery-page .da-dialog .da-detail-body>p:not(.da-note){margin:14px 0 0;max-width:68ch;font:400 16px/1.9 var(--body)}
.gallery-page .da-dialog .da-detail-body .da-links{margin:28px 0 0}
.gallery-page .da-dialog .da-note{margin:28px 0 0;padding:18px 22px;max-width:none;border-radius:16px;background:#ebe5d4;font:400 14px/1.75 var(--body);color:#54564e}
.gallery-page .roseraie-dialog .rose-detail-head{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:clamp(40px,5vw,84px) clamp(22px,5vw,84px) clamp(28px,3vw,44px)}
.gallery-page .roseraie-dialog .rose-detail-head img{order:0;width:72px;height:72px;margin:0 0 18px}
.gallery-page .roseraie-dialog .rose-detail-head h2{order:1;margin:0;font:300 clamp(64px,7.4vw,124px)/.86 var(--rv-latin);letter-spacing:-.02em;color:#4f3c60}
.gallery-page .roseraie-dialog .rose-detail-head p{order:2;margin:20px 0 0;font:400 clamp(22px,2.05vw,32px)/1.28 var(--ux-sub);letter-spacing:.03em;color:#563d6e}
html[lang=en] .gallery-page .roseraie-dialog .rose-detail-head p{font:italic 400 clamp(26px,2.4vw,36px)/1.15 var(--rv-latin);letter-spacing:0}
.gallery-page .roseraie-dialog .rose-detail-head span{order:3;margin-top:16px;font:500 13px/1.4 var(--mono);letter-spacing:0;color:#856e9b}
.gallery-page .roseraie-dialog .rose-gallery{padding:0 clamp(22px,5vw,84px)}
.gallery-page .roseraie-dialog .rose-gallery-heading span,.gallery-page .roseraie-dialog .rose-gallery-caption span:not(:nth-child(2)){font:500 12px var(--body);letter-spacing:0}
.gallery-page .roseraie-dialog .rose-gallery-caption span:first-child{font:italic 400 18px/1 var(--rv-latin)}
html:not([lang=en]) .gallery-page .roseraie-dialog .rose-gallery-heading p{font-family:var(--zh-display);letter-spacing:.03em}
.gallery-page .roseraie-dialog .rose-gallery-rail button small{font:500 12px var(--mono);letter-spacing:0}
.gallery-page .roseraie-dialog .rose-v2-scene figcaption{font:500 12px var(--body);letter-spacing:0}
.gallery-page .roseraie-dialog .rose-detail-grid{display:grid;grid-template-columns:1fr;gap:0;margin:0;padding:clamp(28px,3vw,44px) clamp(22px,5vw,84px) 0;background:none;border:0}
.gallery-page .roseraie-dialog .rose-detail-grid section{display:grid;grid-template-columns:minmax(120px,2.4fr) minmax(0,9.6fr);column-gap:clamp(16px,4vw,72px);padding:clamp(22px,2.4vw,32px) 0;border:0;border-top:1px solid #b79ad159;background:none}
.gallery-page .roseraie-dialog .rose-detail-grid small{grid-row:1/3;font:500 13px/1.5 var(--body);letter-spacing:0;color:#856e9b}
.gallery-page .roseraie-dialog .rose-detail-grid h3{grid-column:2;margin:0;font:400 clamp(24px,2.4vw,36px)/1.24 var(--zh-display);letter-spacing:.03em;color:#4f3c60}
html[lang=en] .gallery-page .roseraie-dialog .rose-detail-grid h3{font:400 clamp(28px,2.6vw,40px)/1.1 var(--rv-latin);letter-spacing:-.01em}
.gallery-page .roseraie-dialog .rose-detail-grid p{grid-column:2;margin:12px 0 0;max-width:68ch;font:400 15px/1.9 var(--body);color:#665479}
#project-dialog.roseraie-dialog .rose-v2-history{margin:clamp(28px,3vw,44px) clamp(22px,5vw,84px) 0}
.gallery-page .roseraie-dialog .rose-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin:0;padding:clamp(22px,2.4vw,32px) clamp(22px,5vw,84px) clamp(32px,4vw,64px);border:0;background:none}
.gallery-page .roseraie-dialog .rose-actions a{border:1px solid #b79ad1;background:#fffaffcc;color:#5e477c}
.gallery-page .roseraie-dialog .rose-actions a.rose-action-main{background:#6f5196;border-color:#6f5196;color:#fffaff}
.gallery-page .atlas-dialog .atlas-v2-detail-head{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(40px,5vw,84px) clamp(22px,5vw,84px) clamp(32px,3.4vw,52px)}
.gallery-page .atlas-dialog .atlas-v2-detail-head h2{order:1;margin:0;font-size:clamp(76px,10vw,150px);letter-spacing:-.02em}
.gallery-page .atlas-dialog .atlas-v2-detail-head p{order:2;margin:18px 0 0;font:400 clamp(22px,2.05vw,32px)/1.28 var(--ux-sub);letter-spacing:.03em}
html[lang=en] .gallery-page .atlas-dialog .atlas-v2-detail-head p{font:italic 400 clamp(24px,2.2vw,32px)/1.2 var(--atlas-serif);letter-spacing:0}
.gallery-page .atlas-dialog .atlas-v2-detail-head>span{order:3;margin-top:16px;font:500 13px/1.4 var(--mono);letter-spacing:0;color:#e1bf83}
.gallery-page .atlas-dialog .atlas-v2-view-head span{font:500 12px/1.4 var(--atlas-serif);letter-spacing:.06em}
.gallery-page .atlas-dialog .atlas-v2-detail-chapters{grid-template-columns:1fr;gap:0;padding:clamp(28px,3vw,44px) clamp(22px,5vw,84px) 0}
.gallery-page .atlas-dialog .atlas-v2-detail-chapters section{display:grid;grid-template-columns:minmax(120px,2.4fr) minmax(0,9.6fr);column-gap:clamp(16px,4vw,72px);padding:clamp(22px,2.4vw,32px) 0;border:0;border-top:1px solid #8e6c4259;background:none}
.gallery-page .atlas-dialog .atlas-v2-detail-chapters span{grid-row:1/3;font:500 13px/1.5 var(--atlas-serif);letter-spacing:.04em;color:#86563e}
.gallery-page .atlas-dialog .atlas-v2-detail-chapters h3{grid-column:2;margin:0;font:400 clamp(24px,2.4vw,36px)/1.24 var(--zh-display);letter-spacing:.03em;color:#1d3047}
html[lang=en] .gallery-page .atlas-dialog .atlas-v2-detail-chapters h3{font:italic 400 clamp(28px,2.6vw,40px)/1.1 var(--atlas-serif);letter-spacing:-.01em}
.gallery-page .atlas-dialog .atlas-v2-detail-chapters p{grid-column:2;margin:12px 0 0;max-width:68ch;font:400 15px/1.9 var(--body);color:#4f4a40}
.gallery-page .atlas-dialog .atlas-v2-detail>.atlas-v2-actions{display:flex;flex-wrap:wrap;gap:10px;padding:clamp(22px,2.4vw,32px) clamp(22px,5vw,84px) clamp(32px,4vw,64px);background:radial-gradient(circle at 80% 8%,#f8ebce,#e7d4ae 72%)}

@media (max-width:900px){
  .gallery-page .air .ai-history-page,:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-page{grid-template-columns:minmax(0,1fr)}
  :is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-date{grid-column:1;grid-row:auto;flex-direction:row;align-items:center;margin-bottom:16px}
  .gallery-page .air .ai-history-date{flex-direction:row;align-items:center}
  .gallery-page :is(.roseraie-dialog .rose-detail-grid section,.atlas-dialog .atlas-v2-detail-chapters section){grid-template-columns:minmax(0,1fr);row-gap:8px}
  .gallery-page :is(.roseraie-dialog .rose-detail-grid small,.atlas-dialog .atlas-v2-detail-chapters span){grid-row:auto}
  .gallery-page :is(.roseraie-dialog .rose-detail-grid :is(h3,p),.atlas-dialog .atlas-v2-detail-chapters :is(h3,p)){grid-column:1}
}
@media (max-width:760px){
  .gallery-page .air .ai-release-history>summary,:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history>summary{grid-template-columns:auto minmax(0,1fr) auto;gap:16px}
  #project-dot-air .da-history>summary{grid-template-columns:minmax(0,1fr) auto}
  .gallery-page .air .ai-history-plus,#project-dot-air .da-history-toggle,:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-plus{width:44px;height:44px}
  :is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-route{display:none}
  #project-dot-air .da-coordinate{width:128px;height:128px}
  #project-dot-air .da-coordinate>strong{font-size:38px}
  #project-dot-air .da-hero-top,#project-dot-air .da-airports button span,.air-top,.air-bottom,.gh-rail,.gallery-page .gh .gallery-header-end,.gallery-page .gh .gallery-kicker .collection-volume,.gh-years,.gallery-page .collection-navigation.gn>a>small,.gallery-page .gn .gallery-room-label span+span,.gallery-page .air .ai-sites-index,.air-edition,.air-vf-top,.air-vf-bottom{font-size:12px}
  #project-dot-air :is(.da-masthead>button,.da-dna>a,.da-links a),.gallery-page .da-dialog .da-links a{min-height:48px;padding:0 18px}
  #project-roseraie :is(.rose-hero-copy button,.rose-actions a),.gallery-page .roseraie-dialog .rose-actions a,:is(#project-atlas,.gallery-page .atlas-dialog) :is(.atlas-v2-prologue button,.atlas-v2-actions a){min-height:48px;padding:0 18px;white-space:normal}
  .gallery-page :is(.da-dialog,.roseraie-dialog,.atlas-dialog){width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:18px}
  .gallery-page :is(.da-dialog .da-detail-head,.roseraie-dialog .rose-detail-head,.atlas-dialog .atlas-v2-detail-head){padding:64px 18px 24px}
  .gallery-page .da-dialog :is(.da-software,.da-detail-body),.gallery-page .roseraie-dialog :is(.rose-gallery,.rose-detail-grid,.rose-actions),.gallery-page .atlas-dialog :is(.atlas-v2-detail-chapters,.atlas-v2-detail>.atlas-v2-actions){padding-inline:18px}
  #project-dialog.roseraie-dialog .rose-v2-history{margin-inline:18px}
}
/* Mincho tuning for the Chinese voice: open tracking on headings, generous leading for reading. */
html:not([lang=en]) .gallery-page :is(.gh .gallery-introduction h2,.gallery-section-prologue h2,.colophon-copy h2){letter-spacing:.03em;line-height:1.2}
html:not([lang=en]) .gallery-page :is(.gn .gallery-room-label,.collection-navigation.gn>a>span,.collection-toolbar h2,.collection-toolbar h2 .mono:first-child,.colophon-index){letter-spacing:.03em}
html:not([lang=en]) .gallery-page :is(.gh .gallery-introduction p,.gallery-section-prologue p,.colophon-copy>p:last-child,.air-intro,.air-brief,.air .ai-history-page>p,.air .ai-history-changes p,#project-roseraie .rose-prologue>p,#project-roseraie .rose-hero-copy>p:last-of-type,#project-atlas .atlas-v2-prologue p){line-height:1.9}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-gallery-rail button>small{grid-column:1}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-gallery-rail button>span{grid-column:2;min-width:0}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-gallery-rail button>b{grid-column:3}
@media (max-width:900px){
  #project-dot-air .da-section-heading{grid-template-columns:minmax(0,1fr)}
}
/* The title's current-drop keeps its hidden full stop inside the dot (no hidden overflow). */
.gallery-page #gallery-title>span{text-indent:0;letter-spacing:-1em}
.gallery-page .air .ai-sites-credit :is(a,span){display:inline-block}
@media (max-width:760px){
  .gallery-page .air .ai-online,.air-top{font-size:12px}
  #project-dot-air .da-masthead{grid-template-columns:minmax(0,1fr) auto;gap:12px}
  #project-dot-air .da-masthead>button{white-space:normal;text-align:left;padding:8px 16px;line-height:1.25}
  #project-dot-air .da-dna{grid-template-columns:minmax(0,1fr);gap:22px}
  #project-dot-air .da-dna-dots{display:none}
  #project-dot-air .da-dna>a,#project-dot-air .da-dna h3{grid-column:1;max-width:100%}
  #project-dot-air .da-dna>a,#project-dot-air .da-links a,.gallery-page .da-dialog .da-links a{white-space:normal;justify-self:start}
  html[lang=en] #project-dot-air .da-dna h3{font-size:clamp(28px,8vw,40px)}
}
@media (max-width:760px){
  #project-dot-air .da-masthead{grid-template-columns:minmax(0,1fr)}
  #project-dot-air .da-masthead>button{justify-self:start}
  #project-atlas .atlas-v2-overture-copy{top:40%}
}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history[open] .rose-v2-history-plus{transform:none}
.gallery-page .air .ai-release-history .ai-history-plus{transform:none;transition:rotate .6s var(--ease-out),background .35s,color .35s}
.gallery-page .air .ai-release-history[open] .ai-history-plus{transform:none;rotate:45deg}
:is(#project-roseraie,.gallery-page .roseraie-dialog) .rose-v2-history-note{padding:14px 18px;border:0;border-radius:14px;background:#efe3f8;max-width:64ch}
:is(#project-atlas,.gallery-page .atlas-dialog) :is(.atlas-v2-sky-title span,.atlas-v2-manuscript-copy>span,.atlas-v2-manuscript-index,.atlas-v2-index-head,.atlas-v2-index-foot){font-family:var(--atlas-serif);font-size:12px;letter-spacing:.06em}
/* Works index: only the buoy is a target — its hidden name pill must never sit on top of a room's buttons. */
.gallery-page .scene-index--works a{pointer-events:none}
.gallery-page .scene-index--works a>i{position:relative;pointer-events:auto}
.gallery-page .scene-index--works a>i::after{content:'';position:absolute;inset:-9px}
.gallery-page .scene-index--works a>span{pointer-events:none}
