/* TIRHAB / Guest Edition 2026 — concise, dignified invitation experience.
   Pure layout: server-confirmed RSVP and QR security remain in app.js. */
:root{--guest-radius:19px;--guest-ink:#111317;--guest-paper:#F3F1EA;--guest-action:#FF5A3C}
html{scroll-padding-top:100px}
body{color:var(--guest-ink);background:#F3F1EA}
.shell{max-width:600px;padding-inline:clamp(16px,5vw,27px)}
.topbar{margin-bottom:0;padding-block:10px 13px;border-bottom:1px solid #11131716}
.guest-logo-lockup>img{background:#FFE7E1;border-radius:13px;width:42px;height:42px;padding:6px}
.topbar h1{font-size:1.31rem;letter-spacing:0;line-height:1.5}
.guest-intro{padding-block:19px 13px}
.guest-intro .guest-intro-kicker{font-size:.69rem;color:#8D4233}
.guest-intro p{font-weight:700;font-size:clamp(1.02rem,4vw,1.29rem);letter-spacing:0;line-height:1.9}
.guest-respond-shortcut{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  border-radius:999px;background:#111317;color:#FFF;text-decoration:none;font:750 .79rem Alexandria,Tahoma,sans-serif;
  padding:11px 19px;margin-top:4px}
.guest-respond-shortcut:hover{background:#303638}
.guest-respond-shortcut:focus-visible{outline:3px solid var(--guest-action);outline-offset:3px}
.invitation-artwork{border-radius:16px;box-shadow:0 18px 42px #11131713}
.invitation-response-link{font-weight:780;font-size:.92rem}
.hero-card{padding:23px;border-radius:20px;box-shadow:none}
.hero-card h2{font-weight:750;font-size:clamp(1.72rem,6vw,2.2rem);letter-spacing:0}
.artwork-loaded .hero-card{margin-block:8px 17px;padding:13px 16px;background:#FFF}
.artwork-loaded .event-meta strong{font-weight:750}
.journey-strip{margin-block:11px 21px}
.rsvp-card{border-radius:21px;box-shadow:0 13px 34px #1113170B;margin-bottom:15px}
.rsvp-card:before{height:3px}
.card h3{font-size:clamp(1.16rem,4vw,1.48rem);letter-spacing:0;font-weight:800}
.rsvp-card>.muted{font-size:.85rem;line-height:1.95}
.action-grid button{border-radius:14px;min-height:57px;font-weight:850;font-size:.97rem}
.action-grid #confirmButton{background:#FF5A3C;color:#111317}
.action-grid #declineButton{background:#F3F1EA;color:#222727;border:1px solid #11131720}
.companions{border-radius:15px;padding:13px;background:#F5F4EF}
.pass-card{border-radius:20px;box-shadow:0 13px 30px #11131712;padding:21px}
.pass-card h3{font-size:1.32rem;font-weight:760}
.pass-card .qr-wrap{background:#FFF;border:1px solid #11131713}
.pass-card .pass-button{border-radius:14px}
#tokenText{display:none!important} /* Do not expose private gate token as text in the default pass. */
.quick{border-radius:17px;box-shadow:none;min-height:105px}
.quick strong{font-size:.75rem;font-weight:780}
.quick small{font-size:.61rem}
.info-card{margin-top:15px;border-radius:17px}
.guest-footer{font-size:.72rem}
@media(max-width:520px){
 .topbar h1{font-size:1.18rem}
 .guest-intro{padding-block:14px 10px}
 .guest-intro p{font-size:1.02rem;line-height:1.8}
 .rsvp-card{padding:19px}
 .action-grid{grid-template-columns:1.2fr 1fr}
 .action-grid button{padding-inline:8px;font-size:.9rem}
 .pass-card{padding:18px}
 .quick{min-height:97px}
}
@media(max-width:340px){.action-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.guest-respond-shortcut{transition:none!important}}
