
:root{--bg:#06131d;--ivory:#f8f1e8;--gold:#e7bc75;--gold2:#f9d897;--red:#ff5d64;--serif:'Bodoni Moda','GFS Didot',Didot,'Bodoni Moda','Times New Roman',serif;--sans:'DM Sans','Arial',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#06111b;color:var(--ivory);font:15px/1.5 var(--sans);overflow-x:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--red);outline-offset:3px}a{color:inherit;text-decoration:none}
.scene-holder{position:relative;overflow:hidden;background:#08121c}.scene{position:relative;width:100%;aspect-ratio:1700/864;min-height:540px;isolation:isolate;overflow:hidden}.scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;pointer-events:none;user-select:none}
/* Recreate only the approved heading as editable live type, hiding rasterized lettering. */
.live-head{position:absolute;left:4.7%;top:12.65%;width:41%;height:20.9%;z-index:4;display:flex;align-items:center;pointer-events:auto;background:transparent;border-radius:0 8px 8px 0}
.live-head:before{content:none}
.live-head h1{position:relative;z-index:1;font-family:var(--serif);font-size:clamp(30px,4.1vw,76px);font-weight:600;line-height:1.045;letter-spacing:-.072em;text-transform:uppercase;white-space:nowrap;margin:0;text-shadow:0 2px 17px #07121c}
.live-head h1 span{display:block}.live-head h1 em{font-style:normal;font-weight:600;color:var(--red);display:inline-block;margin-right:.12em}
/* The approved original curved photographic reel, photos, arrows and background remain visible. */
.carousel-btn{position:absolute;z-index:15;width:5.25%;aspect-ratio:1;border:0;background:transparent;border-radius:50%;color:transparent;display:block;touch-action:manipulation}
.carousel-btn.prev{left:1.1%;top:65.7%}.carousel-btn.next{right:1.15%;top:65.7%}.carousel-btn:hover,.carousel-btn:focus-visible{box-shadow:0 0 0 3px #ffdc91cf,0 0 27px #f5c26e;outline:none;background:#f8d48a1b}
.hotspot{position:absolute;z-index:5;padding:0;background:transparent;border:0;color:transparent;cursor:zoom-in;clip-path:polygon(3% 2%,97% 2%,98% 96%,2% 98%)}.hotspot:hover,.hotspot:focus-visible{box-shadow:inset 0 0 0 4px #ffe0a3;outline:none;background:#ffe3a024}.hotspot:focus-visible{outline:3px solid var(--gold2)}
/* Live event viewer replaces the sample-generated descriptive panel, not the banner artwork. */
.event-card{position:absolute;z-index:11;left:48.1%;top:59.9%;width:32.1%;height:33%;background:linear-gradient(135deg,#06111b,#081722);border:1px solid #eec278;border-radius:10px;box-shadow:0 10px 45px #000b,0 0 14px #ce9b4a55;display:grid;grid-template-columns:42% 58%;padding:0.7%;gap:2%;overflow:hidden;transition:opacity .22s,transform .22s}
.event-card[hidden]{display:none!important}.event-card .event-img{width:100%;height:100%;min-height:0;object-fit:cover;border:1px solid #986d3e;border-radius:4px;cursor:zoom-in}.event-copy{position:relative;min-width:0;padding:1.8% 8% 3% 1%;display:flex;flex-direction:column;gap:.32vw}.event-meta{color:#eabe70;text-transform:uppercase;letter-spacing:.19em;font-size:clamp(7px,.64vw,10px);font-weight:700}.event-copy h2{font-family:var(--serif);font-size:clamp(15px,1.25vw,21px);font-weight:500;line-height:1.2;letter-spacing:-.042em;margin:0 0 .15em}.event-copy p{font-size:clamp(11px,.77vw,13px);line-height:1.5;color:#e9e2d8;margin:.3em 0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.event-count{color:#d3b27d;font-size:clamp(8px,.75vw,12px);margin:auto 0 0}.viewer-link{display:inline-flex;justify-content:center;align-items:center;gap:9px;max-width:100%;border:1px solid var(--gold);border-radius:40px;background:#c799492b;color:var(--ivory);font-weight:700;font-size:clamp(8px,.68vw,11px);padding:8px 10px;letter-spacing:.05em;text-transform:uppercase}.viewer-link:hover{background:#986124}.event-close{position:absolute;right:1%;top:1%;z-index:2;border:0;background:#06111bbd;color:#fff;width:24px;height:24px;border-radius:50%;font-size:19px}.event-copy h2{padding-right:20px}
/* Moving photo windows sit inside the actual curved strip, using the approved perforated border unchanged. */
.frame-photo{position:absolute;z-index:3;padding:0;border:0;background:#06131d;overflow:hidden;cursor:pointer;transition:filter .18s,opacity .28s,box-shadow .28s}.frame-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.frame-photo:hover{filter:brightness(1.13) saturate(1.07);outline:2px solid #ffd07b}.frame-photo.selected{box-shadow:0 0 0 3px #ffe7b3 inset,0 0 20px 4px #f2b854;z-index:9}.frame-photo img.changing{animation:swap .43s ease}@keyframes swap{0%{opacity:.15;transform:translateX(12px) scale(1.03)}100%{opacity:1;transform:translateX(0) scale(1)}}
/* Slim film frame masks deliberately do not cover the perforations or reel. */
.f0{left:5.4%;top:63%;width:13.2%;height:12.7%;clip-path:polygon(1% 9%,98% 0%,98% 92%,1% 100%)}
.f1{left:20.1%;top:55.4%;width:14.2%;height:18.1%;clip-path:polygon(1% 19%,100% 0%,100% 94%,1% 100%)}
.f2{left:36%;top:46.1%;width:14.9%;height:21.3%;clip-path:polygon(0% 9%,99% 0%,99% 100%,0 100%)}
.f3{left:52.6%;top:45.9%;width:16.3%;height:13.4%;clip-path:polygon(0 0,100% 0,100% 99%,0 99%)}
.f4{left:70.4%;top:45.5%;width:14.3%;height:20.4%;clip-path:polygon(0 0,100% 3%,100% 100%,0 95%)}
.f5{left:86%;top:54.8%;width:11.2%;height:17.9%;clip-path:polygon(0 0,99% 12%,100% 97%,0 90%)}
/* Inline film counter also responds to navigation without flattening the artwork. */
.counter-live{position:absolute;z-index:12;left:46%;bottom:2.4%;width:10%;text-align:center;color:#f5d6a1;font:700 clamp(9px,.92vw,15px)/1.3 var(--sans);letter-spacing:.16em;background:#07131bde;border-radius:20px;padding:3px}
.archive{background:linear-gradient(180deg,#081622,#0b1824);padding:66px clamp(20px,5vw,95px) 85px;border-top:1px solid #e6b86a55}.archive-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.archive-eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-size:12px}.archive h2{font:500 clamp(30px,3.6vw,56px)/1.06 var(--serif);margin:14px 0}.archive p{max-width:750px;color:#cfc9c4;line-height:1.65}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:13px}.thumb{display:flex;flex-direction:column;text-align:left;padding:0;border:1px solid #d4ab6f66;background:#14212b;color:var(--ivory);min-width:0;overflow:hidden}.thumb:hover,.thumb:focus-visible{border-color:#ffe0a1;box-shadow:0 0 17px #e7c08344}.thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#08111a}.thumb span{font-size:13px;padding:12px 12px 14px;line-height:1.3}
.editor{margin-top:32px;max-width:850px;border:1px solid #a6804f85;border-radius:10px;padding:22px;background:#0e1d2b}.editor summary{cursor:pointer;color:var(--gold2);font-weight:700}.editor p{font-size:13px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:15px 0}.actions label,.actions button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:12px 17px;border-radius:25px;color:#ffe8c2;border:1px solid #b99055;background:#142333;font-size:12px}.actions button:hover,.actions label:hover{background:#503924}.actions input[type=file]{display:none}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fields label{font-size:12px;color:#e8d0a5}.fields input,.fields textarea{display:block;width:100%;padding:11px;margin-top:5px;background:#09141f;color:#fff;border:1px solid #887451;border-radius:5px}.fields textarea{height:76px;resize:vertical}#status{font-size:12px;color:#e9b66a}
.photo-dialog{border:1px solid #d7ab71;border-radius:12px;padding:15px;background:#07121bf7;color:var(--ivory);width:min(1100px,94vw);max-height:94vh;overflow:auto;box-shadow:0 30px 80px #000b}.photo-dialog::backdrop{background:#010409ec;backdrop-filter:blur(7px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-top h2{font:500 clamp(22px,3vw,38px) var(--serif);margin:8px 0}.dialog-top button{border:1px solid #cba568;color:#fff;background:#1d2530;border-radius:26px;padding:7px 14px}.photo-dialog img{display:block;max-width:100%;height:auto;max-height:66vh;object-fit:contain;margin:12px auto;background:#000}.dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px}.dialog-bottom p{margin:0;color:#e7d8c1;font-size:14px}.dialog-buttons{display:flex;gap:12px}.dialog-buttons button{width:50px;height:45px;background:#101e2e;color:var(--gold2);border:1px solid var(--gold);border-radius:30px;font-size:27px}
@media(max-width:1120px){.scene{width:1120px;left:50%;transform:translateX(-50%);min-height:570px}.scene-holder{height:570px}.live-head h1{font-size:47px}.event-copy h2{font-size:19px}.event-copy p{font-size:11px}.event-count{font-size:10px}}
@media(max-width:680px){.scene{width:1050px;left:58%;min-height:534px}.scene-holder{height:535px}.live-head{left:6%;top:11.9%;width:42%}.live-head h1{font-size:40px}.counter-live{font-size:10px}.archive{padding:40px 22px}.archive-head{display:block}.fields{grid-template-columns:1fr}.event-card{width:33%;height:34%}.event-copy h2{font-size:15px}}
@media(prefers-reduced-motion:reduce){.frame-photo,.event-card{transition:none}.frame-photo img.changing{animation:none}}

/* On-demand event information: fixed typographic hierarchy across ALL photographs. */
.event-card[hidden]{display:none!important}
.event-copy h2{font-family:var(--serif);font-size:clamp(15px,1.25vw,21px)!important;line-height:1.2!important;font-weight:500!important;letter-spacing:-.025em!important;max-height:2.55em;overflow:hidden}
.event-copy p{font-family:var(--sans);font-size:clamp(11px,.77vw,13px)!important;line-height:1.5!important;font-weight:400!important;letter-spacing:0!important}
.event-card{animation:informationAppear .2s ease-out both}
@keyframes informationAppear{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.event-card{animation:none}}


.f2{height:24%!important}.f3{height:23%!important}.f4{height:23%!important}

/* Restore the approved navigation instruction lost beneath the repaired backdrop. */
.counter-live:after{content:'USE ARROWS TO EXPLORE';position:absolute;top:23px;left:50%;transform:translateX(-50%);white-space:nowrap;font:500 clamp(9px,.70vw,12px)/1.3 var(--sans);letter-spacing:.22em;color:#e8dbc9;text-align:center}

/* Align photographs to the six NEGATIVE WINDOWS within the already-approved curved reel.
   Window masks follow the strip's upper and lower trajectories; the reel artwork
   and its gold perforated rails are not redrawn or replaced. */
.foreground-photo-matte{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;display:block;isolation:isolate}
.frame-photo{z-index:4;box-shadow:none;transform:translateZ(0)}
.frame-photo img{object-fit:cover;object-position:center 42%;}
/* Percentages match the existing scene canvas (not viewport) and stay aligned
   while the scene is responsively scaled as a single artwork. */
.f0{left:3.0%;top:55.0%;width:15.8%;height:22.5%;clip-path:polygon(0% 17%,100% 0%,100% 91%,0% 93%)}
.f1{left:19.9%;top:47.8%;width:15.0%;height:27.0%;clip-path:polygon(0% 17%,100% 0%,100% 89%,0% 100%)}
.f2{left:36.0%;top:43.0%;width:14.9%;height:27.2%;clip-path:polygon(0% 7%,100% 0%,100% 84%,0% 100%)}
.f3{left:52.6%;top:42.8%;width:16.3%;height:26.8%;clip-path:polygon(0% 0%,100% 2%,100% 79%,0% 84%)}
.f4{left:70.4%;top:44.1%;width:14.3%;height:27.6%;clip-path:polygon(0% 0%,100% 14%,100% 94%,0% 78%)}
.f5{left:86.0%;top:49.0%;width:12.0%;height:30.0%;clip-path:polygon(0% 0%,100% 17%,100% 100%,0% 65%)}
.aligned-negative-rail{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none;overflow:visible;}

/* ONLY CONFERENCE FILMSTRIP: original perforated UPPER edge, clipped from the existing approved artwork; never a new/duplicate reel. */
.scene .original-upper-perforations{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;z-index:14;pointer-events:none;user-select:none;clip-path:polygon(0.000% 58.390%,6.944% 56.344%,13.889% 52.797%,20.833% 50.068%,27.778% 46.521%,34.722% 43.656%,41.667% 41.610%,48.611% 39.973%,55.556% 39.563%,62.500% 39.700%,69.444% 41.201%,76.389% 42.838%,83.333% 45.293%,90.278% 48.840%,97.222% 53.342%,100.000% 55.116%,100.000% 60.846%,97.222% 59.072%,90.278% 54.570%,83.333% 51.023%,76.389% 48.568%,69.444% 46.930%,62.500% 45.430%,55.556% 45.293%,48.611% 45.703%,41.667% 47.340%,34.722% 49.386%,27.778% 52.251%,20.833% 55.798%,13.889% 58.527%,6.944% 62.074%,0.000% 64.120%);}
/* Keep interactive photo windows beneath both the upper and lower gold edges. */
.scene .frame-photo,.scene .frame-photo.selected{z-index:4;}

/* 27 OCT verification: ONE interactive foreground filmstrip. No second photo row.
   Retain the approved winding gold reel above; this is part of the hero artwork. */
.scene #filmImages{position:absolute;inset:0;z-index:4;pointer-events:none;}
.scene #filmImages>.frame-photo{pointer-events:auto;background:#07131b;isolation:isolate;}
.scene #filmImages>.frame-photo img{opacity:1;mix-blend-mode:normal;}

/* Reuse the genuine golden lower perforations from the supplied scene. The opaque matte beneath permanently removes the photos baked into the negative. */
.scene .original-lower-perforations{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:8;clip-path:polygon(0.000% 74.761%,7.639% 76.535%,15.278% 75.853%,22.917% 73.670%,30.556% 70.941%,38.194% 67.804%,45.833% 64.393%,53.472% 62.210%,61.111% 61.937%,68.750% 63.029%,76.389% 66.849%,84.028% 70.396%,91.667% 77.080%,100.000% 83.356%,100.000% 90.450%,91.667% 82.538%,84.028% 76.535%,76.389% 72.306%,68.750% 68.486%,61.111% 66.712%,53.472% 67.531%,45.833% 69.441%,38.194% 72.715%,30.556% 76.398%,22.917% 79.536%,15.278% 81.855%,7.639% 82.401%,0.000% 82.401%);}

/* Only one interactive foreground photo row. The matte masks the photographs baked into the approved reel graphic. */
.scene #filmImages{position:absolute;inset:0;z-index:4;pointer-events:none}
.scene #filmImages>.frame-photo{pointer-events:auto;isolation:isolate;background:#0e121a}
.scene #filmImages>.frame-photo img{display:block;opacity:1;mix-blend-mode:normal}

[hidden]{display:none!important}html{scroll-behavior:auto}body.motion-paused *{animation-play-state:paused!important} @media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}