.gallery{padding-block:58px 52px}.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}.gallery-heading h1{font-size:clamp(40px,5.5vw,76px);line-height:1.15;letter-spacing:-.055em;margin:10px 0 14px}.gallery-heading>div>p:last-child{color:var(--muted)}.gallery-heading>.text-button{font-size:13px;white-space:nowrap}.gallery-scene{position:relative;isolation:isolate;height:650px;perspective:1600px;margin-top:12px;outline-offset:-6px;touch-action:pan-y}.gallery-scene:before{content:'';position:absolute;inset:58% 0 -4%;background:radial-gradient(ellipse at center,#c9b89912,transparent 67%);pointer-events:none}.gallery-rig{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--gallery-pitch,0deg)) rotateY(var(--gallery-yaw,0deg));transition:transform 400ms var(--ease)}.gallery-poster{position:absolute;left:50%;top:42px;width:clamp(235px,25vw,320px);aspect-ratio:2/3;padding:5px;border:1px solid #d2cfc35c;border-radius:2px;background:#22272b;box-shadow:0 14px 44px #0006;backface-visibility:hidden;transform-style:preserve-3d;transition:transform 780ms cubic-bezier(.22,.8,.22,1),opacity 600ms;overflow:hidden}.gallery-poster:after{content:'';position:absolute;inset:0;border:1px solid #ffffff16;background:linear-gradient(125deg,#ffffff0b,transparent 45%);pointer-events:none}.gallery-poster img{width:100%;height:100%;object-fit:cover;pointer-events:none}.gallery-poster[data-slot=front]{transform:translate3d(-50%,0,150px);opacity:1}.gallery-poster[data-slot=right]{transform:translate3d(40%,22px,-40px) rotateY(-31deg);opacity:.88}.gallery-poster[data-slot=left]{transform:translate3d(-140%,22px,-40px) rotateY(31deg);opacity:.88}.gallery-poster[data-slot=back]{transform:translate3d(-50%,15px,-210px) scale(.88);opacity:.16;pointer-events:none}.gallery-poster-label{position:absolute;inset:auto 5px 5px;padding:50px 20px 17px;background:linear-gradient(transparent,#090c10ed);text-align:left;color:#f0efe8}.gallery-poster-label strong{display:block;font-size:23px;letter-spacing:-.04em}.gallery-poster-label small{display:block;color:#ccd0d6;font-size:12px;margin-top:3px}.gallery-arrow{position:absolute;top:44%;z-index:3;width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--paper) 65%,transparent);font-size:23px;transition:background 160ms,transform 160ms;backdrop-filter:blur(10px)}.gallery-arrow:hover{background:var(--surface);transform:scale(1.07)}.gallery-prev{left:0}.gallery-next{right:0}.gallery-description{position:relative;z-index:2;max-width:710px;margin:-40px auto 0;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 75%,transparent);backdrop-filter:blur(20px);border-radius:16px;padding:20px 30px;box-shadow:0 12px 28px #0001}.gallery-description>[data-gallery-panel]{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:88px;animation:gallery-caption 220ms var(--ease)}.gallery-stage-label{font-size:11px;color:var(--accent)}.gallery-description h2{font-size:23px;letter-spacing:-.03em}.gallery-description h2 span{font-weight:400;font-size:13px;color:var(--muted);margin-left:10px}.gallery-description p{font-size:14px;color:var(--muted);margin-top:5px}.gallery-description .text-button{white-space:nowrap;font-size:14px}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:28px auto 0;max-width:900px}.gallery-choices{display:flex;gap:7px;flex-wrap:wrap}.gallery-choices button,.gallery-settings button{background:transparent;border:1px solid transparent;border-radius:8px;font-size:12px;min-height:36px;padding:7px 12px;color:var(--muted);transition:background 180ms,color 180ms,border-color 180ms}.gallery-choices button[aria-pressed=true]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.gallery-settings{display:flex;gap:4px}.gallery-settings button:hover,.gallery-choices button:hover{color:var(--ink);background:var(--note)}.gallery-settings button[aria-pressed=true]{color:var(--accent)}.gallery-hint{font-size:12px;text-align:center;color:var(--muted);margin:20px 0 0}.gallery-hint span{display:block;font-size:11px;color:var(--faint);margin-top:2px}.gallery-empty{padding-block:80px}.poster-dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:18px;width:min(900px,94vw);max-height:94dvh;padding:18px 24px;overflow:auto}.poster-dialog::backdrop{background:#080b10d9;backdrop-filter:blur(14px)}.poster-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.poster-dialog-top h2{font-size:18px}.poster-inspection{display:grid;place-items:center;perspective:1000px;height:min(70vh,750px);touch-action:none;cursor:grab}.poster-inspection:active{cursor:grabbing}.poster-inspection img{width:auto;max-width:90%;height:95%;object-fit:contain;border:1px solid #ffffff40;box-shadow:0 20px 45px #0005;transition:transform 480ms var(--ease);user-select:none}.poster-inspection[data-dragging=true] img{transition:none}.poster-dialog-bottom{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.poster-dialog-bottom p{flex:1;min-width:160px}.poster-dialog-bottom button,.poster-dialog-bottom a{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink)}@keyframes gallery-caption{from{opacity:.2;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:1100px){.gallery-scene{height:600px}.gallery-heading>.text-button{display:none}.gallery-poster{width:270px}.gallery-poster[data-slot=left]{transform:translate3d(-127%,30px,-65px) rotateY(30deg)}.gallery-poster[data-slot=right]{transform:translate3d(27%,30px,-65px) rotateY(-30deg)}}@media(max-width:700px){.gallery{padding-top:35px}.gallery-heading h1{font-size:42px}.gallery-scene{height:490px;margin-inline:-16px;overflow:clip}.gallery-poster{width:220px;top:30px}.gallery-poster[data-slot=front]{transform:translate3d(-50%,0,80px)}.gallery-poster[data-slot=left]{transform:translate3d(-102%,30px,-120px) rotateY(28deg);opacity:.45}.gallery-poster[data-slot=right]{transform:translate3d(2%,30px,-120px) rotateY(-28deg);opacity:.45}.gallery-arrow{width:40px;height:44px;top:42%}.gallery-prev{left:4px}.gallery-next{right:4px}.gallery-description{padding:17px 20px;margin-top:-24px}.gallery-description>[data-gallery-panel]{display:block;min-height:120px}.gallery-description .text-button{margin-top:12px}.gallery-description h2 span{display:block;margin:4px 0 0}.gallery-toolbar{align-items:flex-start;flex-direction:column;gap:8px}.gallery-choices button{min-height:42px}.gallery-hint{text-align:left}.poster-dialog{padding:12px}.poster-inspection{height:64vh}.poster-dialog-bottom{gap:7px}}html[data-motion=reduce] .gallery *,html[data-motion=reduce] .poster-dialog *{transition:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){.gallery *,.poster-dialog *{transition:none!important;animation:none!important}}

@media(min-width:701px){.gallery{padding-top:36px}.gallery-heading h1{font-size:clamp(40px,5vw,68px)}.gallery-scene{height:590px}.gallery-poster{top:24px}.gallery-description{margin-top:-35px}}

/* Double-sided exhibition: the outer slot selects; the inner island flips. */
.gallery-rig{pointer-events:none}
.gallery-poster{pointer-events:auto}
.gallery-exhibit-label{display:flex;justify-content:space-between;align-items:center;margin-top:34px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.13em;color:var(--faint);font-family:var(--mono,monospace)}
.gallery-scene{height:500px;margin-top:10px}
.gallery-poster{width:300px;aspect-ratio:3/4;padding:0;border:0;border-radius:22px;overflow:visible;background:transparent;box-shadow:none;top:28px}
.gallery-poster:after{display:none}
.gallery-static,.gallery-flip-host,.gallery-select-surface{position:absolute;inset:0;border-radius:22px}
.gallery-flip-host{pointer-events:none}
.gallery-poster[data-slot=front][data-enhanced=true] .gallery-flip-host{pointer-events:auto}
.gallery-static{overflow:hidden;background:#27272a;color:#f5f5f5;border:1px solid #ffffff30;box-shadow:0 16px 44px #0007}
.gallery-static-face{position:absolute;inset:0}
.gallery-static-face img{width:100%;height:100%;object-fit:cover}
.gallery-static-face[data-image-failed=true]:before{content:'画面暂未载入';position:absolute;inset:30% 10% auto;text-align:center;font-size:16px;color:#e5dce9}
.gallery-select-surface{z-index:3;padding:0;border:0;background:transparent;cursor:pointer}
.gallery-select-surface:disabled{display:none}
.gallery-select-surface:focus-visible{outline:3px solid var(--accent);outline-offset:7px}
.gallery-poster[data-slot=back] .gallery-select-surface{pointer-events:none}
.gallery-poster[data-slot=front]{z-index:2}
.gallery-poster-label{inset:auto 0 0;padding:68px 22px 36px;border-radius:0 0 22px 22px}
.gallery-poster-label small{line-height:1.65;max-width:26em}
.gallery-back-label{position:absolute;top:17px;left:18px;right:18px;width:fit-content;padding:6px 9px;background:#101019b8;border:1px solid #ffffff38;border-radius:99px;backdrop-filter:blur(10px);font-size:10px;color:#f0e2f7}
.gallery-face-tools{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:710px;margin:4px auto 18px}
.gallery-face-indicator{font-size:11px;letter-spacing:.03em;color:var(--muted)}
.gallery-face-tools>div{display:flex;gap:7px}
.gallery-face-tools button,.gallery-retry{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink);padding:10px 16px;font-size:12px;transition:transform 160ms var(--ease),border-color 160ms,background 160ms}
.gallery-face-tools button:first-child{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-soft);color:var(--accent)}
.gallery-face-tools button:hover,.gallery-retry:hover{transform:translateY(-2px);border-color:var(--accent)}
.gallery-face-tools button:active,.gallery-retry:active{transform:scale(.97)}
.gallery-face-tools button svg{width:14px;height:14px}
.gallery-description{margin-top:0}
.gallery-load-note{max-width:710px;margin:12px auto 0;font-size:12px;line-height:1.7;color:var(--muted);text-align:center}
.gallery-load-note:empty{display:none}
.gallery-retry{display:flex;margin:12px auto 0}
.gallery-hint{max-width:850px;margin-inline:auto;line-height:1.8}
.gallery-hint span{line-height:1.8}
@media(max-width:1100px){.gallery-scene{height:470px}.gallery-poster{width:270px}.gallery-description{margin-top:0}}
@media(max-width:700px){.gallery-exhibit-label{margin-top:24px;font-size:9px;letter-spacing:.08em}.gallery-scene{height:385px}.gallery-poster{width:220px;top:24px;border-radius:18px}.gallery-arrow{top:43%}.gallery-face-tools{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px}.gallery-face-indicator{width:100%;text-align:center}.gallery-face-tools button{min-height:44px}.gallery-description{margin-top:0}.gallery-poster-label{padding-inline:17px}.gallery-poster-label strong{font-size:21px}.gallery-poster-label small{font-size:11px}.gallery-back-label{left:13px;top:13px;font-size:9px}.gallery-hint{text-align:left}.gallery-load-note{text-align:left}}
