/* CORE pages: red story panel on the left, cream paper form on the right */
.core { min-height: 100vh; display: grid; grid-template-columns: .9fr 1.1fr; }
.core__story { background: var(--red); color: var(--cream); padding-block: 56px; padding-left: max(32px, env(safe-area-inset-left, 0px)); padding-right: 40px; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; position: relative; overflow: hidden; }
.core__story .home { font-family: var(--font-script); font-size: 34px; text-decoration: none; }
.core__story h1 { font-family: var(--font-script); font-weight: 400; font-size: clamp(72px, 9vw, 132px); line-height: .9; }
.core__story .typeline { font-family: var(--font-type); font-size: 18px; margin-top: 22px; max-width: 30ch; }
.core__story .fine { font-family: var(--font-type); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
.core__apple { position: absolute; right: -60px; bottom: -40px; width: 300px; opacity: .14; pointer-events: none; }
.core__paper { background: var(--cream); color: var(--red-ink); padding-block: 56px; padding-left: 48px; padding-right: max(32px, env(safe-area-inset-right, 0px)); display: grid; align-content: center; }
.core__form { max-width: 560px; width: 100%; display: grid; gap: 26px; }
.core__form h2 { font-family: var(--font-serif); font-weight: 400; font-size: clamp(30px, 3.4vw, 40px); line-height: 1.15; }
.core__form .sub { font-size: 17px; margin-top: 8px; }
.step-tag { font-family: var(--font-type); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--red); }
.q { display: grid; gap: 12px; margin: 0; padding: 22px 0 0; border: 0; border-top: 1.5px dashed var(--line-on-cream); min-width: 0; }
.q legend { font-family: var(--font-serif); text-transform: none; letter-spacing: 0; font-size: 21px; line-height: 1.3; margin-bottom: 12px; padding: 0; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cityst { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 10px; }
.alt { font-family: var(--font-type); font-size: 14px; }
.alt a { color: var(--red); }
.btn[disabled] { opacity: .55; cursor: progress; }
@media (max-width: 880px) {
  .core { grid-template-columns: 1fr; }
  .core__story { padding: 36px max(16px, env(safe-area-inset-right, 0px)) 40px max(16px, env(safe-area-inset-left, 0px)); }
  .core__paper { padding: 40px max(16px, env(safe-area-inset-right, 0px)) 56px max(16px, env(safe-area-inset-left, 0px)); }
  .row2 { grid-template-columns: 1fr; }
}

/* performing photo fills the story panel; words sit low so they never cover her face */
.core__story { justify-content: flex-end; min-height: 560px;
  background: linear-gradient(to top, rgba(58,6,9,.96) 0%, rgba(124,11,20,.82) 34%, rgba(124,11,20,0) 62%), url('/assets/img/asia-live.jpg') 50% 22% / cover no-repeat, var(--red-deep); }
.core__story .home { position: absolute; top: 28px; left: max(32px, env(safe-area-inset-left, 0px)); text-shadow: 0 2px 12px rgba(0,0,0,.4); }
.core__story h1 { font-size: clamp(64px, 7.5vw, 112px); }
.core__apple { display: none; }
@media (max-width: 880px) { .core__story { min-height: 82vh; } .core__story .home { left: max(16px, env(safe-area-inset-left, 0px)); top: 20px; } }

/* live performance loop behind the CORE story panel */
.core__story { background: var(--red-deep); isolation: isolate; }
.core__vid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; z-index: -2; }
.core__story::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(58,6,9,.96) 0%, rgba(124,11,20,.8) 34%, rgba(124,11,20,0) 62%); }

/* join page: locked EP and big price */
.unlock { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; align-items: center; background: var(--white); border: 1.5px solid var(--red-ink); border-radius: 16px; padding: 14px; }
.unlock__cover { position: relative; aspect-ratio: 1; max-width: 100%; overflow: hidden; border-radius: 8px; }
.unlock__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.unlock__lock { position: absolute; right: 6px; bottom: 6px; width: 30px; height: 30px; border-radius: 50%; background: var(--cream); color: var(--red); display: grid; place-items: center; }
.unlock__lock svg { width: 15px; height: 15px; }
.unlock__t { font-family: var(--font-serif); font-size: 22px; line-height: 1.2; margin-top: 6px; }
.unlock__price { font-family: var(--font-type); font-size: 15px; margin-top: 8px; }
.unlock__price b { font-family: var(--font-serif); font-weight: 400; font-size: 44px; color: var(--red); vertical-align: -6px; margin-right: 4px; }
.core-price { font-family: var(--font-type); font-size: 18px; text-transform: uppercase; letter-spacing: .1em; margin-top: 10px; }
.core-price b { font-family: var(--font-serif); font-weight: 400; font-size: clamp(96px, 11vw, 140px); line-height: .9; letter-spacing: 0; text-transform: none; margin-right: 8px; vertical-align: -10px; }

/* on-site payment, styled like the rest of the CORE */
.pay { display: grid; gap: 12px; padding: 18px; border: 1.5px solid var(--red-ink); border-radius: 16px; background: var(--white); }
.pay__express:empty { display: none; }
.pay__element { min-height: 60px; }
.pay__loading { font-family: var(--font-type); font-size: 14px; opacity: .7; }
.pay__note { display: flex; gap: 8px; align-items: center; font-family: var(--font-type); font-size: 12px; opacity: .75; }
.pay__note svg { width: 13px; height: 13px; flex: none; }
.pay__btn { width: 100%; justify-content: center; }
.terms-note { font-size: 13px; line-height: 1.5; opacity: .85; }
.terms-note a { color: var(--red); }
.more { border-top: 1.5px dashed var(--line-on-cream); padding-top: 14px; }
.more summary { cursor: pointer; font-family: var(--font-type); font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.more__body { display: grid; gap: 18px; margin-top: 14px; }

/* promise, agreement checkbox, photo drop */
.promise { display: grid; gap: 8px; padding: 16px 18px; border-radius: 14px; background: var(--white); border: 1.5px dashed var(--red); }
.promise__price { font-size: 15px; line-height: 1.5; }
.promise__price b { color: var(--red); }
.promise__love { font-family: var(--font-type); font-size: 14px; line-height: 1.5; color: var(--red); }
.agree { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; align-items: start; font-size: 15px; line-height: 1.45; cursor: pointer; }
.agree input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--red); cursor: pointer; }
.agree a { color: var(--red); }
.drop { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; min-height: 84px; padding: 14px; border: 1.5px dashed var(--line-on-cream); border-radius: 12px; background: var(--white); cursor: pointer; font-size: 15px; line-height: 1.4; text-transform: none; letter-spacing: 0; font-family: var(--font-serif); }
.drop:hover { border-color: var(--red); }
.drop img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
.drop small { font-family: var(--font-type); font-size: 12px; opacity: .7; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
#photo:focus-visible + * , .drop:focus-within { outline: 2px dashed var(--red); outline-offset: 3px; }
textarea.input { resize: vertical; min-height: 90px; }

/* Tap feedback */
a.btn:active,button:not(:disabled):active,.btn:active,.pill:active,.tab:active,.poll__opt:active{transform:scale(.96);transition:transform .08s ease}
