/* Linen, stitched architecture and soft drapery — scoped to the arrival reveal. */
.venue-reveal { --linen: #f4eee2; --thread: #6e7258; background: var(--linen); color: #4d4a3c; }
.venue-reveal::before { content: ""; position: absolute; inset: 0; z-index: 0; opacity: .17; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='l'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.4' filter='url(%23l)'/%3E%3C/svg%3E"); }
.device:has(.venue-reveal:not(.cutting)) #sound { color: #77725c; border-color: #8e876f44; background: #f4eee280; }
.venue-scroll { position: absolute; inset: 0; overflow: hidden; overscroll-behavior: contain; touch-action: pan-y; scrollbar-width: none; -webkit-overflow-scrolling: touch; z-index: 1; }
.venue-scroll::-webkit-scrollbar { display: none; }
.venue-scroll:focus-visible { outline: 1px solid #8e876f66; outline-offset: -6px; }
.venue-journey { position: relative; }
.venue-stage { position: sticky; top: 0; width: 100%; overflow: hidden; isolation: isolate; }
.venue-panel { position: absolute; inset: 0; pointer-events: none; background: var(--linen); }
.venue-panel[hidden] { display: none; }
.venue-heading { position: absolute; top: calc(var(--safe-top) + 92px); left: 24px; right: 24px; text-align: center; z-index: 2; will-change: transform; }
.atelier-kicker { margin: 0 0 14px; color: #8e7669; font: italic 400 20px/1 var(--display); }
.atelier-title { margin: 0 auto; max-width: 360px; color: #525643; font: 300 clamp(34px,9.5vw,44px)/1.04 var(--display); letter-spacing: -.04em; text-wrap: balance; }
.atelier-location { margin: 15px 0 0; color: #837d6c; font: 400 11px/1.4 var(--sans); }
.venue-art { position: absolute; inset: 0; margin: 0; }
.venue-image { position: absolute; left: 50%; top: 57%; display: block; width: 185%; height: auto; max-width: none; aspect-ratio: 4 / 3; object-fit: contain; will-change: transform; mask-image: radial-gradient(ellipse 75% 75% at center,#000 43%,transparent 66.5%); }
.venue-advance { position: absolute; left: 50%; bottom: calc(var(--safe-bottom) + 42px); transform: translateX(-50%); padding: 10px 16px; border: 0; background: transparent; color: #8c826c; font: 500 9px/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; }
.venue-chevron { display: block; width: 7px; height: 7px; margin: 10px auto 0; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); }
.venue-reveal .atelier-next { position: absolute; bottom: calc(var(--safe-bottom) + 38px); left: 26px; right: 26px; width: calc(100% - 52px); min-height: 50px; color: #5b5e49; background: #f4eee2d9; border: 1px solid #8c8e6e77; border-radius: 2px; font-size: 11px; letter-spacing: .14em; box-shadow: none; }
.venue-advance[hidden], .atelier-next[hidden] { display: none; }
@media (max-height:700px) { .venue-heading { top: calc(var(--safe-top) + 64px); } .atelier-kicker { font-size: 17px; margin-bottom: 9px; } .atelier-title { font-size: 32px; } .atelier-location { margin-top: 10px; } .venue-image { width: 163%; top: 59%; } .venue-advance { bottom: calc(var(--safe-bottom) + 22px); } .venue-reveal .atelier-next { bottom: calc(var(--safe-bottom) + 22px); } }
.atelier-curtains { position: absolute; inset: 0; z-index: 4; pointer-events: none; overflow: clip; }
.atelier-curtain { position: absolute; top: 0; bottom: 0; width: 51%; background: repeating-linear-gradient(90deg, #bda393 0, #dcc8b9 8%, #ead8cb 12%, #d9c1b0 19%, #b99c88 24%, #d6beab 31%); box-shadow: 2px 0 12px #4a302a44; }
.atelier-curtain::after { content: ""; position: absolute; inset: 0; opacity: .23; background: repeating-linear-gradient(0deg, #fff5 0 1px, transparent 1px 4px); }
.atelier-curtain.left { left: 0; transform-origin: left top; border-right: 1px dashed #f0d8bf77; }
.atelier-curtain.right { right: 0; transform-origin: right top; border-left: 1px dashed #f0d8bf77; }
.atelier-curtain { will-change: transform; overflow: hidden; }
.curtain-light { position: absolute; inset: 0 -20%; background: linear-gradient(95deg,transparent 6%,#fff8e8 30%,transparent 48%,#4c392a 68%,transparent 90%); mix-blend-mode: soft-light; opacity: .04; pointer-events: none; will-change: transform,opacity; }
.atelier-curtains.open .atelier-curtain { box-shadow: 4px 0 16px #4a302a25; }
.atelier-crest { position: absolute; left: 50%; top: 46%; width: 136px; height: 136px; margin: -68px 0 0 -68px; display: grid; place-items: center; color: #777959; font: italic 22px var(--display); }
.atelier-crest img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; mask-image: radial-gradient(ellipse at center,#000 62%,transparent 77%); }
.atelier-valance { position: absolute; left: -3px; right: -3px; top: -3px; height: calc(var(--safe-top) + 58px); z-index: 5; pointer-events: none; transform-origin: center top; will-change: transform; }
.atelier-valance svg { width: 100%; height: 100%; overflow: visible; fill: #d6beac; filter: drop-shadow(0 3px 3px #6b4d3b22); }
.atelier-valance .valance-stitch { fill: none; stroke: #f7e8d4; stroke-width: 1.4; stroke-dasharray: 2 2; }
/* Generated woven fabric is split at its center seam; each half gathers independently. */
.atelier-curtain { background-image: var(--curtain-art), repeating-linear-gradient(90deg,#bda393,#ead8cb 12%,#b99c88 24%,#d6beab 31%); background-size: 200% 112%, 100% 100%; background-repeat: no-repeat; }
.atelier-curtain.left { background-position: left bottom, left top; }
.atelier-curtain.right { background-position: right bottom, right top; }
.atelier-curtain::after { opacity: .06; }
.atelier-valance { background-image: var(--curtain-art); background-size: 100% auto; background-position: center top; mask-image: linear-gradient(#000 78%,transparent); }
