/* Scoped exclusively to the opening screen; later journey surfaces are unchanged. */
body:has(.opening-screen.is-active) { color:#fff; color-scheme:dark; background: radial-gradient(ellipse at 90% 8%,rgba(57,255,20,.13),transparent 34%),radial-gradient(ellipse at 8% 22%,rgba(160,32,240,.3),transparent 48%),linear-gradient(135deg,#521b77,#321047 52%,#21092e); }
body:has(.opening-screen.is-active) .site-header, body:has(.opening-screen.is-active) #progress-wrap, body:has(.opening-screen.is-active) footer { --white:#fff; --muted:#dfd2e8; --green:#39ff14; }
body .step.opening-screen { --white:#fff; --muted:#dfd2e8; --green:#39ff14; --green-soft:#a3ff8d; --border:rgba(188,127,230,.35); --ampt-gradient:linear-gradient(90deg,#a020f0,#d785ff 44%,#39ff14); --ampt-edge:linear-gradient(135deg,#a020f0,#a6a9b5 52%,#39ff14); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; background:radial-gradient(ellipse at 0 0,rgba(160,32,240,.2),transparent 65%),linear-gradient(145deg,#42165e,#281035); }
body .opening-screen h1 { max-width:none; font-family:'Arial Narrow','Helvetica Neue',Arial,sans-serif; font-weight:800; font-size:clamp(2.25rem,5vw,3.5rem); line-height:1.05; text-transform:none; letter-spacing:-.035em; }
.opening-screen .lead { max-width:57ch; }
.opening-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.opening-grid legend { margin-bottom:1.1rem; font-size:1.2rem; }
.opening-card { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:300px; padding:1.35rem; overflow:hidden; border:1px solid rgba(160,32,240,.8); border-radius:1.35rem; cursor:pointer; box-shadow:0 14px 36px rgba(27,4,40,.3); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.opening-card { text-align:left; font:inherit; appearance:none; background:transparent; width:100%; }
.opening-photo { position:absolute; inset:0; z-index:-2; display:grid; place-items:center; padding:1rem; background:linear-gradient(135deg,#75419b,#43235b); color:#fff; }
.opening-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.opening-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(43,0,55,.03) 38%,rgba(43,0,55,.88)); }
.opening-card::after { content:''; position:absolute; inset:0; padding:2px; border-radius:inherit; pointer-events:none; background:var(--ampt-edge); -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.opening-card[data-opening-card="lessons"] img { object-position:42% 50%; }
.opening-card[data-opening-card="party"] img { object-position:50% 100%; }
.opening-card strong { color:#fff; font-size:clamp(1.2rem,2.2vw,1.7rem); line-height:1.1; text-shadow:0 2px 12px rgba(20,0,30,.6); }
.opening-card { border-color:transparent; }
.opening-card:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(160,32,240,.18); }
.opening-card:hover::after, .opening-card[aria-pressed="true"]::after { padding:3px; }
.opening-card[aria-pressed="true"] { box-shadow:0 8px 26px rgba(57,255,20,.12); }
.opening-card:focus-visible { outline:3px solid #fff; outline-offset:5px; }
.opening-selected { display:none; position:absolute; top:.8rem; left:.8rem; padding:.4rem .7rem; border-radius:999px; background:#39ff14; color:#23301f; font-size:.75rem; font-weight:850; }
.opening-card[aria-pressed="true"] .opening-selected { display:block; }
.opening-event-route, .opening-lessons-note { margin-top:1.5rem; }
.opening-screen .primary-button { color:#17200f; background:linear-gradient(100deg,#39ff14,#b3ff85); }
.opening-screen .eyebrow { background:none; color:#39ff14; font-family:inherit; font-size:.74rem; letter-spacing:.21em; font-weight:800; }
.opening-headline-accent { display:inline-block; color:transparent; background:var(--ampt-gradient); background-clip:text; -webkit-background-clip:text; }
body .opening-screen::before { inset:0; height:auto; padding:1px; border-radius:inherit; background:var(--ampt-edge); opacity:.3; pointer-events:none; -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
body .opening-screen h1, body .opening-screen h1:focus, body .opening-screen h1:focus-visible { outline:none; border:0; box-shadow:none; }
.opening-grid legend { font-weight:650; }
/* Theme activation only: reuse the existing detail selector for Events routes. */
body.events-journey:not(.editing-quote) [data-step="details"] .field:has(#eventTypeEditor) { display:block; }
body.context-wedding:not(:has(.opening-screen.is-active)) { color:#282326; color-scheme:light; --white:#282326; --muted:#655c60; --green:#71445e; --green-soft:#596148; --violet:#71445e; --border:rgba(113,68,94,.22); background:radial-gradient(circle at 84% 20%,rgba(184,155,99,.13),transparent 32%),linear-gradient(145deg,#f7f1e8,#fffcf8); --focus:0 0 0 4px rgba(127,154,120,.25); }
body.context-wedding .field input, body.context-wedding .field select, body.context-wedding .time-picker select { color:#282326; background-color:#fffcf8; border-color:rgba(113,68,94,.25); }
body.context-wedding .primary-button { color:#fffcf8; background:#71445e; box-shadow:0 6px 18px rgba(113,68,94,.13); }
body.context-wedding .confirm-dialog { background:#f7f1e8; }
body.context-wedding .ready-mark, body.context-wedding .success-ring { color:#fffcf8; box-shadow:none; }
body.context-wedding .ambient { opacity:.035; }
body.context-wedding .step:not(.opening-screen) { background:linear-gradient(145deg,#fffcf8,#f7f1e8); }
body.context-wedding .step:not(.opening-screen)::before { background:linear-gradient(100deg,#71445e,#b89b63,#7f9a78); }
body.context-wedding .step:not(.opening-screen) h1, body.context-wedding .step:not(.opening-screen) h2 { color:#282326; font-family:'Iowan Old Style',Baskerville,'Times New Roman',serif; font-weight:500; }
body.context-wedding .inline-options label:has(input:checked) span { background:#71445e; color:#fffcf8; }
body.context-wedding .progress-track span { background:linear-gradient(100deg,#71445e,#b89b63,#7f9a78); box-shadow:none; }
body.context-wedding .choice-card:has(input:checked) { background:rgba(127,154,120,.1); box-shadow:inset 0 0 0 1px #7f9a78; }
body.context-party:not(:has(.opening-screen.is-active)) { --green:#39ff14; --violet:#a020f0; background:radial-gradient(circle at 85% 15%,rgba(57,255,20,.12),transparent 34%),linear-gradient(135deg,#2b0037,#40105b); }
body.context-party .step:not(.opening-screen) { background:linear-gradient(140deg,#351044,#2b0037); }
body.context-corporate .step:not(.opening-screen) { background:linear-gradient(145deg,#e9edf2,#d9dde2); }
@media(max-width:560px) { .opening-grid { grid-template-columns:1fr; } .opening-card { min-height:245px; } }
@media(prefers-reduced-motion:reduce) { .opening-card { transition:none; } .opening-card:hover { transform:none; } }
