/* Signature motion, photography interactions, media and package comparison. */
.hero-arch-trace{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);z-index:2;pointer-events:none;overflow:visible}
.hero-arch-trace path{fill:none;stroke:var(--gold);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.arch-mobile{display:none}
.attendee-page .hero-year,.attendee-page .hero-image>figcaption{z-index:3}
.attendee-page .hero-image:before{transform:translateY(var(--ornament-shift,0px))}
.exhibit-hero .hero-image:after{content:'';position:absolute;inset:-7px 0 auto;height:7px;background:var(--gold);transform-origin:left;pointer-events:none}
.depth-card{position:relative}
.depth-card:after{content:'';position:absolute;inset:0;border:1px solid transparent;pointer-events:none;transition:border-color .4s;z-index:3}
.photo-card .photo-expand,.depth-card .story-arrow,.depth-card .direction-link{transition:transform .4s,background .4s}
.photo-thumbnails{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;padding:5px 22px 22px}
.photo-thumbnails button{width:64px;height:54px;padding:3px;background:transparent;border:2px solid transparent;border-radius:2px;transition:border-color .2s,transform .2s}
.photo-thumbnails img{width:100%;height:100%;object-fit:contain}
.photo-thumbnails button[aria-pressed=true]{border-color:var(--gold);background:#cda05222}
.photo-thumbnails button:hover{transform:translateY(-3px)}
.photo-lightbox[open]{display:flex;flex-direction:column;height:min(900px,92dvh);max-height:92dvh;overflow:hidden}
.photo-lightbox-head,.photo-lightbox-foot,.photo-thumbnails{flex-shrink:0}
.photo-lightbox-head{background:var(--paper)}
.photo-lightbox>img{flex:1 1 auto;min-height:0;max-height:none;height:0;object-fit:contain}
#photo-large{touch-action:pan-y pinch-zoom}
.recap-player-dialog{width:min(490px,calc(100% - 24px));max-height:95dvh;background:var(--forest);color:var(--paper)}
.recap-player-dialog .dialog-head{padding:17px 20px;align-items:center;border-color:#ffffff30}
.recap-player-dialog .dialog-head .eyebrow{font-size:10px;color:var(--pistachio);margin-bottom:6px}
.recap-player-dialog h2{font-size:31px;color:var(--paper)}
.recap-player-dialog .close-dialog{color:var(--paper);border-color:#ffffff60}
.portrait-player{aspect-ratio:9/16;width:min(100%,calc((95dvh - 148px)*9/16));margin:auto;background:#0c2117}
.portrait-player iframe{width:100%;height:100%;border:0;display:block}
.video-fallback{font-size:12px;text-align:center;padding:13px 16px;margin:0;color:#e4ebdc}
.updates-dialog{border-top:4px solid var(--gold);width:min(600px,calc(100% - 28px))}
.updates-dialog .dialog-head{background:var(--pale);position:sticky;top:0;z-index:2}
.update-milestones{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:11px;color:var(--green);border-block:1px solid var(--line);padding:13px 0;margin-bottom:24px}
.updates-dialog .form-submit{width:100%;justify-content:space-between;margin-top:26px}
.updates-status{font-size:14px;color:var(--forest);margin:18px 0 0!important}
.updates-status:empty{display:none}
.request-sent .updates-status{padding:24px;border-left:3px solid var(--gold);background:var(--pale)}
.compare-toggle{display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:1px solid var(--line);color:var(--green);min-height:44px;padding:10px 14px;font-size:12px;font-weight:700;width:100%;margin-top:12px;transition:border-color .25s,background .25s}
.compare-toggle:hover,.compare-toggle[aria-pressed=true]{border-color:var(--green);background:var(--pale)}
.compare-toggle[aria-disabled=true]:not([aria-pressed=true]){color:var(--muted)}
.comparison-launcher{position:fixed;z-index:24;bottom:24px;right:24px;max-width:calc(100vw - 40px);box-shadow:0 8px 25px #193b2726}
.comparison-launcher .btn{background:var(--paper);color:var(--forest);border:1px solid var(--gold);gap:7px;font-size:13px}
.has-package .comparison-launcher{bottom:122px}
.comparison-dialog{width:min(1220px,calc(100% - 32px));max-height:92dvh;border-top:4px solid var(--gold)}
.comparison-dialog .dialog-head{position:sticky;top:0;background:var(--paper);z-index:4}
.comparison-dialog .dialog-body{padding-top:20px}
.comparison-scroll{max-width:100%;overflow:auto;overscroll-behavior-x:contain;border:1px solid var(--line)}
#comparison-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:calc(145px + var(--compare-columns,2)*235px);font-size:13px}
#comparison-table.single-option{min-width:0}
#comparison-table th,#comparison-table td{vertical-align:top;text-align:left;padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow-wrap:anywhere}
#comparison-table tr>:last-child{border-right:0}
#comparison-table tr:last-child>*{border-bottom:0}
#comparison-table tr>:first-child{width:145px;position:sticky;left:0;background:var(--pale);z-index:1;font-weight:700;font-size:12px}
#comparison-table thead th{background:var(--forest);color:var(--paper);font-weight:400}
#comparison-table thead tr>:first-child{background:var(--forest);color:var(--pistachio)}
.compare-name{font:400 27px/1.1 var(--display);letter-spacing:-.02em;display:block;margin:4px 0 14px}
.compare-price{font:400 35px/1 var(--display);color:var(--forest)}
#comparison-table ul{padding-left:16px;margin:0}#comparison-table li+li{margin-top:10px}
.compare-remove{color:var(--pistachio);border:0;border-bottom:1px solid #fcfaf360;background:none;padding:4px 0;font-size:11px;min-height:30px}
.compare-choose{width:100%;font-size:12px;min-height:46px;padding:12px}
.comparison-actions{display:flex;justify-content:space-between;gap:20px;margin:24px 0}
.comparison-empty{background:var(--pale);padding:30px;text-align:center}.comparison-empty .btn{margin-top:20px}
.comparison-mobile-hint{display:none}
.package-dock{transition:box-shadow .3s}
.addon-list label{padding:12px;border:1px solid var(--line);transition:border-color .2s,background .2s}
.addon-list label:has(input:checked){border-color:var(--green);background:var(--pale)}
@keyframes arch-trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes gold-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes dock-enter{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:no-preference){
 .hero-arch-trace path{animation:arch-trace 1.9s .45s cubic-bezier(.3,.6,.2,1) both}
 .attendee-page .hero-year{animation-delay:1.1s}
 .exhibit-hero .hero-image:after{animation:gold-line 1.3s .5s cubic-bezier(.2,.7,.2,1) both}
 .reveal-photo.reveal-pending{transform:translateY(32px) scale(.975)}
 .reveal-copy.reveal-pending{transform:translateY(18px)}
 .reveal-photo{transition-duration:1.05s}
 .package-dock:not([hidden]),.comparison-launcher:not([hidden]){animation:dock-enter .4s ease both}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .depth-card{transition:transform .28s ease-out,box-shadow .4s!important}
 .depth-card:hover,.depth-card:focus-visible{transform:perspective(1200px) translateY(-5px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))!important;box-shadow:0 20px 42px #193b2733}
 .depth-card:hover:after,.depth-card:focus-visible:after{border-color:var(--gold)}
 .depth-card:hover img{transform:none!important}
 .depth-card:hover .photo-expand{transform:translateY(-6px);background:var(--pistachio)}
 .depth-card:hover .direction-link{transform:translateY(-3px)}
 .depth-card:hover .story-arrow{transform:translate(3px,-3px);background:var(--pistachio)}
}
@media(max-width:1100px) and (min-width:601px){
 .sponsor-row>div:last-child{flex-wrap:wrap;gap:12px 20px}
 .sponsor-row .compare-toggle{width:auto;min-width:190px;margin-top:0}
 .sponsor-row>div:last-child>.note{flex-basis:100%;margin-top:0}
}
@media(max-width:850px) and (min-width:601px){.outdoor-cards .compare-toggle{grid-column:2}}
@media(max-width:800px){
 .arch-desktop{display:none}.arch-mobile{display:block}
 .comparison-dialog .dialog-head{padding:20px}.comparison-dialog .dialog-body{padding:20px}
 .comparison-dialog h2{font-size:34px}.comparison-mobile-hint{display:block;font-size:12px}
 #comparison-table tr>:first-child{width:112px;padding:14px 10px}
 #comparison-table{min-width:calc(112px + var(--compare-columns,2)*220px)}
 #comparison-table th,#comparison-table td{padding:16px}
 .compare-name{font-size:25px}.compare-price{font-size:30px}
}
@media(max-width:600px){
 #comparison-table{min-width:calc(96px + var(--compare-columns,2)*(100vw - 200px))}
 #comparison-table tr>:first-child{width:96px;font-size:11px}
 .comparison-launcher{bottom:82px;right:15px}.has-package .comparison-launcher{bottom:175px}
 .comparison-launcher .btn{min-height:42px;padding:10px 15px;font-size:12px}
 .photo-thumbnails{gap:5px;padding-inline:12px}.photo-thumbnails button{width:42px;height:42px}
 .updates-dialog .form-grid{grid-template-columns:1fr 1fr;gap:14px}
 .updates-dialog .form-grid .full{grid-column:1/-1}
 .updates-dialog .dialog-head{padding:20px}.updates-dialog .dialog-body{padding:20px}
 .update-milestones{gap:8px 13px;font-size:10px}.updates-dialog .dialog-head h2{font-size:37px}
}
@media(prefers-reduced-motion:reduce){
 .depth-card,.depth-card:hover,.depth-card:focus-visible,.photo-thumbnails button:hover{transform:none!important}
 .reveal-photo.reveal-pending,.reveal-copy.reveal-pending{opacity:1;transform:none}
 .hero-arch-trace path{stroke-dashoffset:0}.attendee-page .hero-image:before{transform:none}
}
