:root{
  color-scheme:light;
  --ink:#111317;
  --muted:#6d706f;
  --accent:#ff5a3c;
  --accent-soft:#ffe7e1;
  --paper:#f3f1ea;
  --mist:#d7dfda;
  --card:#fcfbf7;
  --line:#e1ded5;
  --success:#176b51;
  --success-soft:#e3efe9;
  --danger:#b8443d;
  --danger-soft:#f8e8e4;
  --shadow:0 24px 60px rgba(17,19,23,.08);
}
*{box-sizing:border-box}
html{background:var(--paper);font-family:"Noto Sans Arabic",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);-webkit-text-size-adjust:100%}
body{margin:0;background:radial-gradient(circle at top right,rgba(255,90,60,.08),transparent 24rem),var(--paper);min-height:100vh}
button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}
.shell{width:min(100%,680px);margin:auto;padding:calc(20px + env(safe-area-inset-top)) 16px calc(40px + env(safe-area-inset-bottom))}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding:0 2px}.topbar h1{margin:1px 0 0;font-size:1.35rem;font-weight:950}.eyebrow{font-size:.66rem;font-weight:900;letter-spacing:.14em;color:var(--muted)}.eyebrow.brand{color:var(--accent)}.eyebrow.light{color:rgba(243,241,234,.58)}
.connection{display:flex;align-items:center;gap:7px;background:rgba(252,251,247,.86);border:1px solid var(--line);border-radius:999px;padding:8px 11px;font-size:.75rem;font-weight:800;backdrop-filter:blur(12px)}.connection i{display:block;width:8px;height:8px;border-radius:50%;background:var(--success)}.connection.offline i{background:var(--accent)}
.hero-card{padding:27px;border-radius:30px;background:var(--ink);color:#fff;box-shadow:var(--shadow);min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;inset:auto -60px -100px auto;width:260px;height:260px;border:1px solid rgba(255,90,60,.32);border-radius:50%}.hero-card:after{content:"";position:absolute;top:24px;left:24px;width:10px;height:10px;background:var(--accent);border-radius:50%}.hero-card>*{position:relative;z-index:1}.hero-card h2{font-size:clamp(2rem,8vw,3.1rem);line-height:1.14;margin:8px 0 8px;max-width:560px;font-weight:950}.hero-card>p{margin:0 0 26px;color:rgba(255,255,255,.68);font-size:1.04rem}.event-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid rgba(255,255,255,.14);padding-top:18px}.event-meta div{display:flex;flex-direction:column;gap:5px}.event-meta span{font-size:.72rem;color:rgba(255,255,255,.48)}.event-meta strong{font-size:.94rem;line-height:1.55}
.journey-strip{display:flex;align-items:center;justify-content:center;margin:18px 4px}.journey-step{display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--muted);font-size:.7rem;font-weight:800;min-width:52px}.journey-step b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--card);border:1px solid var(--line);font-size:.72rem}.journey-step.active b{background:var(--ink);color:#fff;border-color:var(--ink)}.journey-line{height:1px;flex:1;max-width:76px;background:var(--line);margin-bottom:20px}
.card{background:var(--card);border:1px solid rgba(225,222,213,.9);border-radius:24px;padding:20px;box-shadow:0 10px 34px rgba(17,19,23,.035);margin-bottom:14px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card h3{font-size:1.35rem;line-height:1.35;margin:5px 0;font-weight:900}.muted,.pass-copy p{color:var(--muted);line-height:1.75}.rsvp-card>.muted{margin:4px 0 16px}.state-pill{display:inline-flex;white-space:nowrap;border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:850}.state-pill.pending{background:var(--accent-soft);color:#b8443d}.state-pill.confirmed{background:var(--success-soft);color:var(--success)}.state-pill.declined{background:var(--danger-soft);color:var(--danger)}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.primary,.secondary,.pass-button{border-radius:15px;padding:14px 16px;font-weight:900;border:0;min-height:50px}.primary{background:var(--accent);color:var(--ink)}.secondary{background:var(--mist);color:var(--ink)}.companions{margin-top:16px;border-top:1px solid var(--line);padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.companions label{display:block;font-weight:900}.companions small{display:block;color:var(--muted);margin-top:3px;line-height:1.45}.stepper{display:flex;align-items:center;gap:14px;background:var(--paper);padding:5px;border-radius:14px}.stepper button{width:38px;height:38px;border:0;border-radius:10px;background:var(--card);font-size:1.25rem}.state-line{margin-top:14px;padding:12px 14px;border-radius:13px;background:var(--success-soft);color:var(--success);font-weight:800;line-height:1.5}
.pass-card{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:18px;align-items:center;background:var(--ink);color:#fff}.pass-copy h3{font-size:1.55rem;margin:6px 0;font-weight:950}.pass-copy p{color:rgba(255,255,255,.62)}.group-size{display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.07);border-radius:13px;padding:10px 12px;margin-top:12px}.group-size span{font-size:.78rem;color:rgba(255,255,255,.55)}.group-size strong{font-size:1.05rem}.qr-wrap{align-self:stretch;display:grid;place-items:center}.qr{background:white;border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:10px;display:grid;place-items:center;aspect-ratio:1;width:100%}.qr img,.qr canvas{max-width:100%!important;height:auto!important}.pass-button{grid-column:1/-1;background:var(--accent);color:var(--ink);width:100%}.token-line{grid-column:1/-1;text-align:center;color:rgba(255,255,255,.38);font-size:.62rem;letter-spacing:.04em;word-break:break-all}
.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.quick{border:1px solid var(--line);background:var(--card);border-radius:19px;padding:15px 7px;display:flex;flex-direction:column;gap:4px;align-items:center;color:var(--ink);min-height:94px}.quick span{font-size:1.25rem;color:var(--accent);font-weight:900}.quick strong{font-size:.88rem}.quick small{color:var(--muted);font-size:.68rem}.info-card{padding-top:8px;padding-bottom:8px}.info-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.info-row:last-child{border-bottom:0}.info-row span{color:var(--muted);font-size:.88rem}.info-row strong{font-size:.9rem}
.pass-overlay{position:fixed;inset:0;z-index:999;background:#090a0b;color:#fff;display:grid;place-items:center;padding:24px env(safe-area-inset-right) 24px env(safe-area-inset-left)}.close-pass{position:absolute;top:calc(16px + env(safe-area-inset-top));left:18px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.8rem}.full-pass{width:min(100%,420px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.full-pass .eyebrow{color:var(--accent)}.full-pass h2{font-size:2rem;margin:0;font-weight:950}.full-pass p{margin:0;color:rgba(255,255,255,.62)}.qr.large{width:min(78vw,330px);border-radius:28px;padding:16px;margin:12px 0}.full-pass>strong{font-size:1.1rem}.full-pass>small{color:rgba(255,255,255,.56)}
footer{text-align:center;color:#9a9c99;font-size:.74rem;padding:28px 0}
@media(max-width:520px){.shell{padding-left:14px;padding-right:14px}.hero-card{padding:22px;border-radius:26px;min-height:278px}.event-meta{grid-template-columns:1fr}.pass-card{grid-template-columns:minmax(0,1fr) 122px;padding:17px}.quick-actions{gap:6px}.quick{padding:13px 4px}.action-grid{grid-template-columns:1fr 1fr}}
@media(max-width:370px){.pass-card{grid-template-columns:1fr}.qr-wrap{width:160px;justify-self:center}.quick small{display:none}.section-head{flex-direction:column}.state-pill{align-self:flex-start}}

[hidden]{display:none!important}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #FF5A3C;outline-offset:4px}.notice{padding:14px;border:1px solid #d7dfda;border-radius:14px;line-height:1.8;background:#fcfbf7}.state-line.warning{color:#79421a;background:#fff0d7}.stepper button{width:44px;height:44px}.pass-overlay{overflow:auto}.full-pass{padding:36px 18px}.token-line{color:#b8bab9}.hero-card h2,.pass-copy h3{overflow-wrap:anywhere}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.quick svg{width:24px;height:24px;fill:none;stroke:#c7361f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.invitation-artwork{margin-bottom:16px;border-radius:22px;overflow:hidden;background:var(--card);box-shadow:var(--shadow)}
.invitation-artwork canvas{display:block;width:100%;height:auto}
.invitation-artwork>p,.invitation-artwork>button{margin:16px}
.invitation-response-link{display:block;text-align:center;padding:14px;color:var(--ink);font-weight:800;min-height:48px}
.hero-card.has-artwork{min-height:0;padding:20px;background:var(--card);color:var(--ink);box-shadow:none;border:1px solid var(--line)}
.hero-card.has-artwork:before,.hero-card.has-artwork:after,.hero-card.has-artwork>.eyebrow{display:none}
.hero-card.has-artwork h2{font-size:1.2rem;line-height:1.6}
.hero-card.has-artwork>p,.hero-card.has-artwork .event-meta span{color:var(--muted)}
.hero-card.has-artwork>p{margin-bottom:12px}.hero-card.has-artwork .event-meta{border-color:var(--line);padding-top:12px}
#rsvpCard{scroll-margin-top:18px}
