.browse-extras{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px}.browse-extras button,.browse-extras a{font-size:13px;min-height:44px;padding:10px 5px;display:inline-flex;align-items:center;text-decoration:none}.browse-extras a{color:var(--gold)}
#homecoming-invitation{position:absolute;z-index:7;inset:0;pointer-events:none}#homecoming-wallet{position:fixed;width:560px;height:228px;z-index:7;isolation:isolate;transform-origin:bottom left;perspective:760px;font-family:'Gambetta',Georgia,serif;pointer-events:none}#homecoming-wallet *{box-sizing:border-box}#homecoming-wallet[hidden]{display:none}.wallet-open{position:absolute;left:0;top:7px;width:370px;height:214px;padding:0;border:0;background:url('/homecoming/wallet-reference.png') -119.907px -697.176px/2631.111px 1754.074px no-repeat;clip-path:inset(0 round 3px);filter:drop-shadow(0 3px 3px #0005);cursor:pointer;z-index:7;outline-offset:5px;pointer-events:auto}.wallet-open:focus-visible,#homecoming-ticket:focus-visible,#homecoming-dismiss:focus-visible{outline:0;box-shadow:inset 0 0 0 4px #ead5a0}.wallet-shadow{position:absolute;left:2px;top:10px;width:366px;height:209px;border-radius:2px;box-shadow:0 7px 9px #0007;z-index:0}.wallet-back{position:absolute;left:3px;top:9px;width:366px;height:209px;background:#0b1b29;border:1px solid #b2a183;border-radius:2px;z-index:1}.wallet-flap{position:absolute;left:368px;top:7px;width:52px;height:214px;background:url('/homecoming/wallet-reference.png') -778px -354px/1536px 1024px no-repeat;clip-path:path('M4 1 L36 9 Q50 12 50 32 L49 185 Q49 199 34 203 L6 214 L0 202 L0 9 Z');z-index:2;transform-origin:left center;transform:rotateY(-88deg);opacity:0}.wallet-face{position:absolute;left:0;top:7px;width:370px;height:214px;z-index:4;background:url('/homecoming/wallet-reference.png') -410px -354px/1536px 1024px no-repeat;clip-path:path('M2 0 L368 0 L369 74 C350 78 339 90 339 108 C339 125 350 139 369 145 L369 212 L0 214 L0 2 Z');pointer-events:auto}.wallet-layers{opacity:0}
#homecoming-wallet[data-fallback=true] .wallet-open{background:#123041;border:1px solid #d9c28a;border-radius:3px;color:#f4ead6;font:24px/1.1 'Gambetta',Georgia,serif}#homecoming-wallet[data-fallback=true] .wallet-open::after{content:"You're invited"}#homecoming-wallet[data-fallback=true] .wallet-face,#homecoming-wallet[data-fallback=true] .wallet-flap{background:#e7dfcc}#homecoming-wallet[data-fallback=true] .wallet-layers{background:#0b1b29}
#homecoming-ticket{position:absolute;left:3px;top:27px;width:358px;height:178px;border-radius:3px;background:linear-gradient(#102433d9,#102433d9),url('/assets/background.webp') center/cover;z-index:3;box-shadow:0 2px 5px #0006;overflow:hidden;clip-path:path('M3 0 H355 Q358 0 358 3 V63 A14 14 0 0 0 358 91 V175 Q358 178 355 178 H3 Q0 178 0 175 V3 Q0 0 3 0 Z');color:#f1eada;border:1px solid #7a8c945c;text-decoration:none;pointer-events:none}.wallet-diagram{position:absolute;left:4px;top:7px;width:140px;height:160px;object-fit:contain}.wallet-stub{position:absolute;right:0;top:0;width:154px;height:100%;border-left:1px dashed #b2ad9670;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(115deg,#17304488,#10202e66);text-align:center}.wallet-crest{width:38px;height:38px;object-fit:contain;margin-bottom:2px}.wallet-invited{font:11px/1.2 'General Sans',Arial,sans-serif;margin-bottom:5px}.wallet-event{font:23px/1.07 'Gambetta',Georgia,serif;letter-spacing:-.4px}.wallet-date{font:12px/1.3 'General Sans',Arial,sans-serif;margin-top:7px}.wallet-cta{font:14px/1.3 'General Sans',Arial,sans-serif;color:#e5cc8e;margin-top:10px;text-decoration:underline;text-underline-offset:3px}.wallet-cta::after{content:' ↗'}#homecoming-ticket:hover .wallet-cta{color:#fff0bd}
#homecoming-dismiss{position:fixed;z-index:8;width:44px;height:44px;min-height:44px;min-width:44px;font:16px 'General Sans',Arial,sans-serif;border-radius:0;border:0;padding:0;background:transparent;color:#796744;box-shadow:none;cursor:pointer;pointer-events:auto}body.has-canvas-invitation #discovery-tools{visibility:visible;transition:none}
@media(max-width:650px),(hover:none) and (pointer:coarse){#mobile-selection{bottom:calc(196px + env(safe-area-inset-bottom))}#navigation{flex-direction:column;padding:8px 6px 4px;border-radius:22px}#canvas-gesture-hint{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 3px;font-size:14px;line-height:1.35;color:#e0e4df;pointer-events:none}#canvas-gesture-hint span+span{font-size:12px;color:var(--muted)}#canvas-gesture-hint span+span::before{content:'\00b7';margin-right:8px}#navigation #mobile-tap-hint:not([hidden]){position:static;inset:auto;display:flex;justify-content:center;gap:7px;margin:0 0 6px;text-align:center;font-size:12px;line-height:1.35;color:#b9c6cb}#navigation #mobile-tap-hint span{display:inline}#mobile-tap-hint span+span::before{content:'\00b7';margin-right:7px}}
@media(prefers-reduced-motion:reduce){#homecoming-wallet,#homecoming-wallet *{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important}}
/* Three quiet breaths, then the envelope rests until opened. */
#homecoming-wallet.wallet-attention .wallet-open{animation:wallet-attention-scale 2s ease-in-out 3;transform-origin:center}
#homecoming-wallet::before{content:'';position:absolute;left:0;top:7px;width:370px;height:214px;border-radius:5px;pointer-events:none;opacity:0;box-shadow:0 0 28px 12px #d5b56855}
#homecoming-wallet.wallet-attention::before{animation:wallet-attention-halo 2s ease-in-out 3}
@keyframes wallet-attention-scale{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@keyframes wallet-attention-halo{0%,100%{opacity:0}50%{opacity:.65}}
@media(prefers-reduced-motion:reduce){#homecoming-wallet.wallet-attention .wallet-open,#homecoming-wallet.wallet-attention::before{animation:none!important}}
/* One concise device-appropriate hint; Help stays available after hints retire. */
#navigation{flex-direction:column;gap:3px}
#canvas-gesture-hint{display:flex;justify-content:center;gap:8px;margin:2px 5px 3px;font-size:12px;line-height:1.4;color:#b9c6cb;pointer-events:none}
#canvas-gesture-hint span+span::before{content:'·';margin-right:8px}
#navigation #canvas-quick-help{min-width:44px;min-height:44px;font-size:12px;padding:8px;color:#d5bd84}
#canvas-help{width:min(480px,calc(100vw - 30px));margin:auto}
#canvas-help .dialog-close{min-height:44px;padding:8px}
#inspector-help{min-width:44px;min-height:44px;font-size:12px;padding:8px;border:0;color:#d5bd84}
#canvas-help h2{margin:0 0 18px}#canvas-help .dialog-close{margin-bottom:8px}#canvas-help .help-steps{padding-left:20px;margin:0;color:#b9c3c7;font-size:14px;line-height:1.55}#canvas-help .help-steps li{padding-left:3px;margin:0 0 12px}#canvas-help strong{color:#f0e7d5;font-weight:500}#help-keyboard{margin-top:18px;font-size:13px}#help-keyboard summary{cursor:pointer;color:#d5bd84}#help-keyboard ul{margin-top:12px!important}

/* A small visible close mark inside a full-size mobile touch target. */
@media(max-width:650px),(hover:none) and (pointer:coarse){#homecoming-dismiss{font-size:14px;color:#493b24}#homecoming-dismiss::before{content:"";position:absolute;inset:13px;border:1px solid #79674466;border-radius:50%;background:#f4ebd7aa;z-index:-1}}

/* Approved compact invitation: constant scale and rightward slide. */
#homecoming-wallet{width:667px;height:373px;perspective:none}
.wallet-layers{opacity:1}.wallet-back{left:0;top:0;width:350px;height:373px;border:0;border-radius:6px;background:linear-gradient(110deg,#c6b18d,#e4d1ad);box-shadow:0 16px 30px #0005;z-index:0}
.wallet-open{left:0;top:0;width:350px;height:373px;background:transparent;clip-path:none;filter:none;z-index:7;border:0}.wallet-open:hover{background:transparent}
.wallet-face{left:0;top:0;width:350px;height:373px;border-radius:5px;background:linear-gradient(#f0e4d1,#e3d1b5);color:#80683f;z-index:4;clip-path:path('M5 0H345Q350 0 350 5V170C333 170 326 178 326 186C326 196 333 204 350 204V368Q350 373 345 373H5Q0 373 0 368V5Q0 0 5 0Z');box-shadow:inset -3px 0 4px #6d50202a}
.wallet-face:before{content:'';position:absolute;inset:0;opacity:.42;background:repeating-linear-gradient(8deg,#63462608 0 1px,transparent 1px 5px),radial-gradient(ellipse at 18% 18%,#ffffff85,transparent 44%)}
.compact-mark{position:absolute;width:145px;height:106px;left:102px;top:57px;object-fit:contain}.compact-rule{position:absolute;top:178px;left:164px;width:22px;height:1px;background:#ad8e54}.compact-message{position:absolute;top:203px;left:20px;right:20px;text-align:center;font:13px/1.5 'General Sans',Arial,sans-serif;letter-spacing:1px}.compact-crest{position:absolute;width:64px;height:64px;left:143px;bottom:27px;object-fit:contain}
#homecoming-ticket{left:10px;top:9px;width:330px;height:354px;border-radius:8px;border:1px solid #c6a46b80;background:#0a2232 url('/assets/background.webp') center/cover;padding:16px 20px;text-align:center;color:#faf3e7;z-index:2;box-shadow:0 9px 12px #0006;clip-path:path('M8 0H322Q330 0 330 8V231C321 231 321 245 330 245V346Q330 354 322 354H8Q0 354 0 346V245C9 245 9 231 0 231V8Q0 0 8 0Z')}
.compact-diagram{display:block;width:210px;height:119px;object-fit:contain;margin:0 auto 9px}.compact-sub{display:block;font:10px/1.4 'General Sans',Arial,sans-serif;letter-spacing:1.4px;color:#d4b77f;margin-bottom:8px}.compact-event{display:block;font:400 32px/.98 'Gambetta',Georgia,serif;margin-bottom:10px;white-space:nowrap}.compact-invitation{display:block;font:15px/1.4 'General Sans',Arial,sans-serif}.compact-date{display:block;margin-top:5px;font:14px/1.4 'General Sans',Arial,sans-serif;color:#c8d3d9}.compact-cta{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;border:1px solid #d4b77f;background:#e8d7b5;color:#092033;border-radius:3px;margin-top:15px;font:15px 'General Sans',Arial,sans-serif}.compact-online{display:block;font:10px/1.4 'General Sans',Arial,sans-serif;color:#b9c8ce;margin-top:7px}
#homecoming-wallet::before{top:0;width:350px;height:373px}
#homecoming-wallet.wallet-attention .wallet-open{animation:none}
#homecoming-wallet[data-fallback=true] .wallet-open{background:transparent;border:0}#homecoming-wallet[data-fallback=true] .wallet-open::after{content:none}#homecoming-wallet[data-fallback=true] .compact-mark{display:none}#homecoming-wallet[data-fallback=true] .wallet-face::after{content:"You're invited";position:absolute;top:80px;left:0;right:0;text-align:center;font-size:30px}

/* Make the compact sleeve easier to read without enlarging its footprint. */
.compact-mark{width:210px;height:154px;left:70px;top:28px}
.compact-rule{top:189px}
.compact-message{top:207px;left:12px;right:12px;font-size:20px;line-height:1.35;letter-spacing:.5px}
.compact-crest{width:88px;height:88px;left:131px;bottom:16px}
.wallet-open{clip-path:path('M5 0H345Q350 0 350 5V170C333 170 326 178 326 186C326 196 333 204 350 204V368Q350 373 345 373H5Q0 373 0 368V5Q0 0 5 0Z')}

/* Retire the mobile instruction panel once visitors start exploring. */
#mobile-controls-toggle{display:none}
@media(max-width:650px),(hover:none) and (pointer:coarse){
 #navigation.controls-collapsed{left:auto;right:12px;width:auto;max-width:none;padding:0;border-radius:24px;gap:0}
 #navigation.controls-collapsed>:not(#mobile-controls-toggle){display:none!important}
 #navigation.controls-collapsed #mobile-controls-toggle{display:block;min-width:88px;min-height:44px;padding:10px 16px;font-size:13px;color:#e6d2a5}
}

@media(max-width:650px),(hover:none) and (pointer:coarse){
 #discovery-tools{left:auto!important;right:12px;top:auto;transition:bottom 460ms cubic-bezier(.4,0,.2,1)!important}
}
@media(prefers-reduced-motion:reduce){#discovery-tools{transition:none!important}}

/* One quiet pulse after the invitation arrives during a pause. */
#homecoming-wallet.wallet-attention{animation:invitation-breathe 1.8s ease-in-out .6s 1}
#homecoming-wallet.wallet-attention::before{animation:invitation-glow 1.8s ease-in-out .6s 1;box-shadow:0 0 34px 16px #e3c07788}
@keyframes invitation-breathe{0%,100%{scale:1}50%{scale:1.025}}
@keyframes invitation-glow{0%,100%{opacity:0}50%{opacity:.55}}
@media(prefers-reduced-motion:reduce){#homecoming-wallet.wallet-attention,#homecoming-wallet.wallet-attention::before{animation:none!important}}
