/* Access journey composition, using the landing's shared tokens and controls. */
.access-page * { box-sizing: border-box; }
.access-page { min-block-size: 100svh; padding: var(--space-5) var(--gutter); }
.access-page a { color: var(--accent); text-underline-offset: 4px; }
.access-page a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.access-page a:active { color: var(--ink); }
.access-skip { position: absolute; inset-block-start: -100px; }
.access-skip:focus { inset-block-start: var(--space-3); padding: var(--space-2); background: var(--surface-raised); z-index: 2; }
.journey-layout { display: grid; max-inline-size: var(--page-max); margin: var(--space-7) auto; gap: var(--space-7); align-items: center; }
.access-card { min-inline-size: 0; padding: var(--space-5); border: 1px solid var(--line-warm); border-radius: var(--radius-xl); background: var(--surface-raised); box-shadow: var(--shadow-paper); }
.access-card > .co-eyebrow { display: block; margin-block-end: var(--space-4); }
.access-card .access-title { font-size: clamp(29px,5.5vw,44px); line-height: 1.25; margin-block-end: var(--space-5); }
.access-card > p { margin: 0 0 var(--space-5); }
.access-card form { display: grid; gap: var(--space-3); margin-block-start: var(--space-5); }
.access-card .co-input { min-inline-size: 0; }
.access-card .co-btn { margin-block-start: var(--space-2); }
.access-card a.co-btn { color: var(--ink); }
.access-card .co-status { margin: var(--space-3) 0 0; overflow-wrap: anywhere; }
.access-card .co-status:empty { margin: 0; }
.access-card > a:not(.co-btn):last-of-type { display: inline-block; margin-block-start: var(--space-5); font-size: var(--text-small); }
.access-note { border-block-start: 1px dashed var(--line-warm); margin-block-start: var(--space-6); padding-block-start: var(--space-5); font-size: var(--text-small); color: var(--ink-muted); }
.access-note b { color: var(--ink); }
.access-note p { margin: var(--space-1) 0 0; }
.journey-ticket { order: 2; padding: var(--space-6) var(--space-5); background: var(--beige); border-radius: var(--shape-ticket); text-align: center; transform: rotate(calc(-1 * var(--tilt))); box-shadow: var(--shadow-stamp); }
.journey-ticket > * { transform: rotate(var(--tilt)); }
.ticket-art { color: var(--stamp); max-inline-size: 380px; margin: var(--space-5) auto; }
.ticket-art img { display: block; inline-size: 100%; block-size: auto; }
.journey-ticket h2 { font: 800 clamp(27px,4vw,36px)/1.3 var(--font-display); margin: 0 0 var(--space-4); }
.journey-ticket p { margin: 0; }
.ticket-bottom { display: flex; justify-content: space-between; gap: var(--space-3); border-block-start: 1px dashed var(--stamp); margin-block-start: var(--space-6); padding-block-start: var(--space-4); font-size: var(--text-small); color: var(--accent); }
.mail-summary { background: var(--surface-sunken); border-radius: var(--radius-md); padding: var(--space-5); margin-block-end: var(--space-5); }
.mail-summary p { margin: var(--space-2) 0; font-weight: 700; }
.mail-summary span { font-size: var(--text-small); color: var(--ink-muted); }
.journey-seal { display: grid; place-items: center; inline-size: 58px; block-size: 58px; border: 1px dashed var(--stamp); border-radius: var(--shape-blob-a); background: var(--beige); color: var(--accent); margin-block-end: var(--space-5); font-size: 30px; transform: rotate(calc(-1 * var(--tilt))); }
.access-footer { text-align: center; font-size: var(--text-small); color: var(--ink-muted); padding-block: var(--space-4); }
@media (min-width: 768px) {
 .journey-layout { grid-template-columns: .9fr 1.1fr; gap: var(--space-8); margin-block: var(--space-8); }
 .journey-ticket { order: 0; }
 .access-card { padding: var(--space-7); }
}
@media (max-width: 767px) {
 .journey-layout { margin-block-start: var(--space-6); gap: var(--space-7); }
 .journey-ticket { display: none; }
}
@media (prefers-reduced-motion: reduce) { .access-page .co-btn { transition: none; } }

.access-card [hidden] { display: none; }

.access-page a { text-decoration-skip-ink: none; }
