.tour-root{--tile-w: clamp(280px, 48vw, 480px);--tile-aspect: 4 / 5;position:relative;display:flex;flex-direction:column;align-items:stretch;min-height:calc(100dvh - 60px);padding-top:16px;padding-bottom:24px;user-select:none;-webkit-user-select:none}.tour-caption{text-align:center;font-family:var(--mono, monospace);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gallery-mute, #7a7466);padding:8px 16px;min-height:24px;transition:opacity .2s ease}.tour-caption-bottom{color:var(--gallery-ink, #1a1a1a);text-transform:none;letter-spacing:0;font-family:var(--serif-display, Georgia, serif);font-style:normal;font-size:clamp(16px,1.5vw,20px);padding:12px 24px}.tour-rail{position:relative;flex:1 1 auto;width:100%;overflow:hidden;touch-action:pan-y;outline:none}.tour-rail:focus-visible{outline:2px solid var(--gallery-accent, #8b6a3c);outline-offset:-2px}.tour-tile{position:absolute;left:50%;top:50%;width:var(--tile-w);aspect-ratio:var(--tile-aspect);margin:0;padding:0;border:0;background:transparent;--tour-d: 0;--tour-scale: 1;--tour-opacity: 1;--tour-z: 1000;transform:translate(calc(-50% + var(--tour-d) * var(--tile-w) * .9),-50%) scale(var(--tour-scale));transform-origin:center center;opacity:var(--tour-opacity);z-index:var(--tour-z);transition:opacity .18s ease;will-change:transform,opacity;cursor:pointer}.tour-tile[data-focused=true]{cursor:pointer}.tour-tile.tile-intro[data-focused=true]{cursor:default}.tour-tile:focus-visible{outline:2px solid var(--gallery-accent, #8b6a3c);outline-offset:6px}.tile-visual{background:var(--gallery-tile, #f0ebde);border:1px solid var(--gallery-line, #d9d3c5);box-shadow:0 2px 10px #0000000d}.tour-tile[data-focused=true].tile-visual{box-shadow:0 10px 40px #0000001f}.tile-visual-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:8%}.tile-visual-inner img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;-webkit-user-drag:none;user-select:none}.tile-text-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:10% 8%;color:var(--gallery-ink, #1a1a1a)}.tile-text-title{font-family:var(--serif-display, Georgia, serif);font-style:normal;font-weight:500;font-size:clamp(24px,3.2vw,40px);line-height:1.15;margin:0 0 16px}.tile-text-excerpt{font-family:var(--serif-body, Georgia, serif);font-size:clamp(13px,1vw,16px);line-height:1.6;margin:0;color:var(--gallery-mute, #5a5448);max-width:32ch;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.tile-intro-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:12% 8% 8%;color:var(--gallery-ink, #1a1a1a);overflow:hidden}.tile-intro-stamp{font-family:var(--mono, monospace);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gallery-accent, #8b6a3c);margin:0 0 14px}.tile-intro-title{font-family:var(--serif-display, Georgia, serif);font-style:normal;font-weight:500;font-size:clamp(28px,3.4vw,44px);line-height:1.1;margin:0 0 10px;color:var(--gallery-ink, #1a1a1a)}.tile-intro-meta{font-family:var(--mono, monospace);font-size:11px;letter-spacing:.2em;color:var(--gallery-mute, #7a7466);margin:0 0 22px}.tile-intro-body{flex:1 1 auto;overflow-y:auto;font-family:var(--serif-body, Georgia, serif);font-size:clamp(15px,1.1vw,17px);line-height:1.75;text-align:left;width:100%;max-width:38ch;margin:0 auto;padding-right:4px}.tile-intro-body :global(p){margin:0 0 .9em}.tile-intro-body :global(p:last-child){margin-bottom:0}.tour-tile[data-focused=false] .tile-intro-body{pointer-events:none}.tour-progress{text-align:center;font-family:var(--mono, monospace);font-size:11px;letter-spacing:.24em;color:var(--gallery-mute, #7a7466);padding:6px 16px 12px}.tour-empty{display:flex;align-items:center;justify-content:center;min-height:calc(100dvh - 60px);text-align:center;color:var(--gallery-mute, #7a7466)}.tour-empty-inner h2{font-family:var(--serif-display, Georgia, serif);font-size:32px;color:var(--gallery-ink, #1a1a1a);margin-bottom:12px}.tour-empty-inner p{font-family:var(--serif-body, Georgia, serif);font-style:italic}.tour-root[data-reduced-motion=true] .tour-tile{transition:none}@media(max-width:700px){.tour-root{--tile-w: clamp(220px, 78vw, 360px)}.tour-caption-bottom{font-size:16px;padding:10px 16px}}
