:root { --j-ink:#103c32; --j-deep:#0a251f; --j-paper:#fbf8f0; --j-surface:#fffdf8; --j-brass:#a77b35; --j-gold:#d8b975; --j-success:#cfe7d5; --j-text:#243c34; --j-muted:#5c6c62; --j-line:#dce2d7; --j-radius:14px; --j-shadow:0 12px 40px #102e2408; --j-serif:Georgia,'Times New Roman',serif; --j-sans:'Segoe UI',Arial,sans-serif; }
.j-rich-editor { min-height:180px; border:1px solid var(--j-line); border-radius:7px; padding:16px; background:var(--j-paper); color:var(--j-text); font-weight:400; }.j-rich-editor:focus { outline:3px solid var(--j-brass); outline-offset:2px; }.j-information-post { margin:0; }.j-rich-content p { margin-bottom:12px; }#access-root h1 { max-width:900px; }
.j-stack > label:not(.j-field) { display:flex; align-items:center; gap:10px; }.j-stack > label:not(.j-field) input[type=checkbox] { width:18px; height:18px; min-height:18px; margin:0; flex-shrink:0; accent-color:var(--j-ink); }.journey-public #home > .j-stack { width:min(1240px,calc(100% - 36px)); margin:24px auto; }
.j-exam-logo-wall { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:30px; }.j-exam-logo-card { display:flex; align-items:center; flex-direction:column; justify-content:center; gap:18px; padding:26px; background:#fff; color:#244537; border:1px solid var(--j-line); border-radius:12px; font-size:.85rem; font-weight:650; transition:transform .2s,border-color .2s; }.j-exam-logo-card:hover { transform:translateY(-3px); border-color:var(--j-brass); }.j-exam-logo-image { min-height:90px; display:flex; align-items:center; justify-content:center; width:100%; }.j-exam-logo-image img { width:auto; height:auto; max-width:min(100%,250px); max-height:84px; object-fit:contain; }@media(max-width:600px) { .j-exam-logo-wall { grid-template-columns:1fr; gap:14px; } }
.j-exam-logo-image img { height:84px; }
.journey-app,.journey-public { font-family:var(--j-sans); color:var(--j-text); background:var(--j-paper); line-height:1.65; }
.journey-app *, .journey-public * { box-sizing:border-box; }
.journey-app p { color:inherit; }.journey-app p.j-muted { color:var(--j-muted); }
.journey-app .skip-link { position:fixed; top:-120px; left:18px; z-index:300; padding:12px 18px; background:var(--j-surface); color:var(--j-text); border:2px solid var(--j-brass); }.journey-app .skip-link:focus { top:12px; }
.j-public-header > .j-announcement { display:block; text-align:center; padding:10px 24px; }
.j-dark { --j-paper:#0d211c; --j-surface:#142d25; --j-text:#eef2e8; --j-muted:#b8c7b9; --j-line:#345044; --j-shadow:0 12px 40px #00000016; }
.j-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:11px 19px; border-radius:6px; border:1px solid var(--j-line); background:var(--j-surface); color:var(--j-text); font:600 .83rem var(--j-sans); cursor:pointer; text-decoration:none; transition:transform .2s,background .2s; }
.j-button.primary { background:var(--j-ink); color:#fff; border-color:var(--j-ink); }.j-dark .j-button.primary { background:var(--j-gold); color:#17271f; border-color:var(--j-gold); }.j-button.danger { color:#a33225; border-color:#dca295; }.j-dark .j-button.danger { color:#ffb6a6; }.j-button:hover { transform:translateY(-2px); }.j-button:disabled { opacity:.55; cursor:wait; }
.j-card { padding:26px; border:1px solid var(--j-line); background:var(--j-surface); border-radius:var(--j-radius); box-shadow:var(--j-shadow); min-width:0; }.j-card h2 { margin:0 0 12px; font:500 1.65rem var(--j-serif); letter-spacing:-.025em; }.j-card h3 { margin:0 0 8px; font-size:1.05rem; }.j-muted { color:var(--j-muted); font-size:.86rem; }.j-kicker { text-transform:uppercase; letter-spacing:.17em; font-size:.7rem; font-weight:700; color:var(--j-muted); }
.j-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }.j-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.j-grid.four { grid-template-columns:repeat(4,minmax(0,1fr)); }.j-stack { display:grid; gap:22px; }.j-row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }.j-between { justify-content:space-between; }.j-hero-title { font-family:var(--j-serif); font-size:clamp(2.5rem,5vw,4.6rem); line-height:1.08; letter-spacing:-.045em; font-weight:600; margin:12px 0 22px; }.j-heading { font-family:var(--j-serif); font-size:clamp(2rem,3.6vw,3.2rem); line-height:1.15; letter-spacing:-.035em; margin:12px 0 20px; }.j-section { padding:80px 0; position:relative; }.j-section + .j-section { border-top:1px solid var(--j-line); }.j-container { width:min(1240px,calc(100% - 64px)); margin:auto; }
.j-badge { display:inline-block; padding:4px 10px; border-radius:30px; font-size:.7rem; font-weight:700; background:#e2eee1; color:#225031; }.j-badge.warning { background:#f5e6c5; color:#604316; }.j-badge.error { background:#fce2da; color:#882b1e; }.j-badge.neutral { background:#e6ebe7; color:#3f5547; }
.j-field { display:flex; flex-direction:column; gap:7px; font-size:.8rem; font-weight:600; }.j-field input,.j-field select,.j-field textarea,.j-search { width:100%; min-height:44px; padding:11px 12px; border:1px solid var(--j-line); border-radius:6px; background:var(--j-surface); color:var(--j-text); font:400 .9rem var(--j-sans); }.j-field textarea { min-height:100px; }.j-field .j-muted { font-weight:400; }.j-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.j-wide { grid-column:1/-1; }.j-field input[type=checkbox] { width:20px; min-height:20px; accent-color:#347650; }.j-error { padding:14px; border:1px solid #b74b37; border-radius:7px; color:#a63022; background:#fff0e9; }.j-dark .j-error { color:#ffd4c4; background:#4b2b24; }
.j-table { overflow:auto; }.j-table table { width:100%; border-collapse:collapse; font-size:.8rem; }.j-table th,.j-table td { text-align:left; padding:14px 12px; border-bottom:1px solid var(--j-line); max-width:290px; overflow-wrap:anywhere; }.j-table th { font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--j-muted); }.j-table td .j-button { min-height:34px; padding:6px 10px; font-size:.75rem; }.j-table input[type=checkbox] { width:18px; height:18px; }
.j-tabs { display:flex; gap:6px; flex-wrap:wrap; padding:6px; background:var(--j-surface); border:1px solid var(--j-line); border-radius:10px; }.j-tabs a,.j-tabs button { color:var(--j-muted); padding:10px 16px; border:0; background:transparent; border-radius:6px; cursor:pointer; font:600 .8rem var(--j-sans); }.j-tabs [aria-selected=true],.j-tabs [aria-current=page] { color:var(--j-text); background:var(--j-paper); }
.j-empty { padding:32px; border:1px dashed var(--j-line); border-radius:10px; color:var(--j-muted); text-align:center; }.j-skeleton { min-height:160px; border-radius:12px; background:linear-gradient(100deg,var(--j-line),var(--j-surface),var(--j-line)); animation:j-pulse 1.2s ease-in-out infinite; }.j-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:200; background:var(--j-ink); border:1px solid #759b81; color:white; padding:14px 24px; border-radius:8px; max-width:90vw; box-shadow:0 6px 30px #0003; }.j-toast:empty { display:none; }
.j-modal { width:min(760px,calc(100% - 32px)); max-height:90vh; overflow:auto; border:1px solid var(--j-line); padding:28px; border-radius:14px; color:var(--j-text); background:var(--j-surface); }.j-modal::backdrop { background:#03140ecc; }.j-drawer { position:fixed; right:0; left:auto; top:0; bottom:0; margin:0; height:100vh; max-height:100vh; border-radius:0; width:min(480px,100vw); }.j-modal h2 { font:600 1.8rem var(--j-serif); margin-top:0; }
.j-layout { display:grid; grid-template-columns:244px minmax(0,1fr); min-height:100vh; }.j-sidebar { background:var(--j-deep); color:#e6eee3; padding:28px 18px; position:sticky; top:0; align-self:start; height:100vh; overflow:auto; }.j-sidebar .j-brand { display:flex; gap:10px; align-items:center; color:white; font-weight:750; padding:0 8px 22px; }.j-brand img { width:38px; height:44px; object-fit:contain; }.j-sidebar nav { display:grid; gap:4px; margin-top:20px; }.j-sidebar nav a { color:#c5d1c4; padding:10px 12px; border-radius:7px; font-size:.8rem; display:flex; align-items:center; gap:10px; }.j-sidebar nav a[aria-current=page] { color:#fff6da; background:#27483b; border-left:2px solid var(--j-gold); }.j-sidebar .j-muted { color:#b6c7b5; }.j-sidebar .j-field select { background:#183c2b; color:white; border-color:#4b6957; }.j-workspace { min-width:0; }.j-topbar { border-bottom:1px solid var(--j-line); background:var(--j-surface); padding:18px 32px; display:flex; justify-content:space-between; gap:18px; align-items:center; position:sticky; top:0; z-index:20; }.j-topbar .j-search { max-width:360px; }.j-topbar .j-button { padding:9px 12px; }.j-content { padding:32px; }.j-content > h1 { font:600 clamp(2rem,3vw,3rem) var(--j-serif); letter-spacing:-.04em; margin:10px 0 24px; }.j-breadcrumb { color:var(--j-muted); font-size:.75rem; }.j-preview { padding:10px 14px; border:1px solid var(--j-line); background:var(--j-surface); border-radius:7px; color:var(--j-muted); font-size:.74rem; margin-bottom:24px; }.j-mobile-nav { display:none; }.j-layout.collapsed { grid-template-columns:88px minmax(0,1fr); }.j-layout.collapsed .j-sidebar .nav-label,.j-layout.collapsed .j-sidebar .role-block,.j-layout.collapsed .j-sidebar .j-brand span { display:none; }.j-icon { width:18px; height:18px; flex-shrink:0; display:inline-block; vertical-align:middle; }
.j-stat strong { display:block; font:500 2.5rem var(--j-serif); color:var(--j-text); margin:8px 0; }.j-timeline { list-style:none; padding:0 0 0 20px; border-left:1px solid var(--j-brass); }.j-timeline li { padding:0 0 24px 16px; position:relative; }.j-timeline li::before { content:''; width:7px; height:7px; background:var(--j-brass); position:absolute; left:-24px; top:9px; border-radius:50%; }.j-route { position:relative; display:flex; overflow:auto; gap:0; padding:28px 0; list-style:none; }.j-route li { flex:1; min-width:125px; position:relative; padding:28px 12px 0; font-size:.75rem; border-top:1px solid var(--j-line); }.j-route li::before { content:''; position:absolute; top:-6px; left:14px; width:11px; height:11px; border-radius:50%; background:var(--j-surface); border:2px solid var(--j-brass); }.j-route li.done { border-top:2px solid var(--j-brass); }.j-route li.done::before { background:var(--j-brass); }.j-route [aria-current=step] { font-weight:750; color:var(--j-text); }.j-route [aria-current=step]::before { box-shadow:0 0 0 6px #b3914a25; }
.j-dark .j-icon,.j-sidebar .j-icon,.j-button.primary .j-icon,.j-journey-hero .j-icon { filter:invert(1); }
.j-photo-break { position:relative; min-height:440px; display:flex; align-items:end; overflow:hidden; color:white; }.j-photo-break > img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; }.j-photo-break::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#062a22ed,#062a2220); }.j-photo-break > div { position:relative; z-index:1; padding-top:100px; padding-bottom:55px; }.j-photo-break .j-muted { color:#d7e5d2; }.j-photo-break .j-heading { max-width:650px; }.j-route li.done::after { content:''; height:2px; position:absolute; top:-2px; left:0; right:0; background:var(--j-brass); transform-origin:left; animation:j-complete .8s ease both; }@keyframes j-complete { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.j-journey-hero .j-hero-title { animation:j-enter .8s ease both; }.j-journey-hero .j-muted { animation:j-enter .8s .15s ease both; }
.j-chart { display:flex; gap:16px; align-items:end; min-height:180px; padding-top:25px; }.j-chart-bar { flex:1; text-align:center; font-size:.7rem; color:var(--j-muted); }.j-chart-bar i { display:block; background:var(--j-gold); border-radius:5px 5px 0 0; min-height:3px; width:65%; margin:0 auto 8px; }.j-kanban { display:grid; grid-template-columns:repeat(5,minmax(200px,1fr)); gap:16px; overflow:auto; }.j-kanban article { padding:16px; margin:12px 0; cursor:grab; }.j-upload-preview { width:100%; max-height:180px; object-fit:cover; border-radius:8px; }.j-media-grid img { width:100%; height:150px; object-fit:cover; }
.j-globe { position:relative; width:min(400px,90vw); aspect-ratio:1; margin:auto; border:1px solid #e4cf954a; border-radius:50%; background:repeating-linear-gradient(0deg,transparent 0 47px,#e4cf951f 48px 49px,transparent 50px); overflow:hidden; box-shadow:inset 0 0 65px #041d1c45; }.j-globe::before,.j-globe::after { content:''; position:absolute; inset:0 22%; border:1px solid #e4cf9545; border-radius:50%; }.j-globe::after { inset:0 39%; }.j-globe svg { position:absolute; width:100%; height:100%; inset:0; }.j-globe path { stroke:#d8b975; stroke-width:1.4; fill:none; stroke-dasharray:500; stroke-dashoffset:500; animation:j-route-draw 2.5s ease forwards; }.j-globe circle { fill:#e3ce98; }.j-pin { position:absolute; background:#183f34; border:1px solid #947942; border-radius:20px; color:#f9efda; font-size:.65rem; padding:6px 12px; z-index:1; }
.journey-public .j-journey-hero { background:#103c32; color:#fff8e9; padding:80px 0; position:relative; overflow:hidden; }.j-journey-hero .j-muted,.j-journey-hero .j-kicker { color:#d1dbc9; }.j-journey-hero .j-button.primary { background:#d8b975; color:#18352a; border-color:#d8b975; }.j-journey-hero .j-button { background:transparent; color:#fff8e9; border-color:#6e8f79; }.j-journey-hero .j-grid { align-items:center; }.j-search-form { display:flex; gap:8px; background:white; padding:8px; border-radius:8px; max-width:600px; margin-top:28px; }.j-search-form input { flex:1; min-width:0; border:0; background:white; color:#223c32; font:inherit; padding:8px; }.j-search-form .j-button { background:#103c32; color:white; }.j-editorial-photo { width:100%; height:360px; object-fit:cover; border-radius:12px; }.j-destination { position:relative; padding-top:65px; }.j-destination::before { content:'↗'; position:absolute; top:22px; font-size:1.2rem; color:var(--j-brass); }.j-logo-wall { display:flex; gap:30px; align-items:center; justify-content:center; flex-wrap:wrap; padding:30px; border:1px solid var(--j-line); border-radius:12px; }.j-logo-wall img { max-width:180px; max-height:65px; object-fit:contain; }.j-section.in-view .j-reveal { animation:j-enter .7s ease both; }.j-public-nav { display:flex; gap:18px; flex-wrap:wrap; }.j-public-header { background:var(--j-surface); border-bottom:1px solid var(--j-line); }.j-public-header > div { display:flex; gap:25px; align-items:center; justify-content:space-between; padding:22px 0; flex-wrap:wrap; }.j-public-nav a { font-size:.82rem; font-weight:600; }.j-public-footer { background:var(--j-deep); color:#e9eee0; padding:48px 0; }.j-public-footer .j-muted { color:#c3d0bd; }.j-public-footer a { color:#e9eee0; }.j-announcement { padding:10px 24px; background:#e9dcc0; color:#44391f; text-align:center; font-size:.78rem; }
.journey-app :focus-visible,.journey-public :focus-visible { outline:3px solid #ad833d; outline-offset:4px; }.j-image-caption { font-size:.72rem; color:var(--j-muted); }.j-rich-text { white-space:pre-line; overflow-wrap:anywhere; }.j-meter { width:100%; accent-color:#b3914a; height:12px; }.j-message { border-bottom:1px solid var(--j-line); padding:18px 0; }.j-pill-list { display:flex; gap:8px; flex-wrap:wrap; }
@keyframes j-enter { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }@keyframes j-pulse { 50% { opacity:.45; } }@keyframes j-route-draw { to { stroke-dashoffset:0; } }
@media(min-width:800px) { .journey-app .j-content { animation:j-enter .35s ease; } }
@media(max-width:1100px) { .j-grid.four { grid-template-columns:repeat(2,minmax(0,1fr)); }.j-layout { grid-template-columns:210px minmax(0,1fr); }.j-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.j-topbar { padding:16px 20px; }.j-content { padding:24px; } }
@media(max-width:760px) { .j-container { width:calc(100% - 36px); }.j-grid,.j-grid.two,.j-grid.four { grid-template-columns:1fr; }.j-layout,.j-layout.collapsed { grid-template-columns:1fr; }.j-sidebar { display:none; position:fixed; z-index:70; width:260px; }.j-layout.menu-open .j-sidebar { display:block; box-shadow:0 0 0 100vw #0008; }.j-content { padding:20px 18px 90px; }.j-topbar { gap:8px; flex-wrap:wrap; }.j-topbar .j-search { order:4; max-width:none; }.j-mobile-nav { position:fixed; bottom:0; left:0; right:0; display:flex; justify-content:space-around; padding:12px 4px; background:var(--j-surface); border-top:1px solid var(--j-line); z-index:40; }.j-mobile-nav a { font-size:.68rem; padding:6px; color:var(--j-text); }.j-fields { grid-template-columns:1fr; }.j-section { padding:50px 0; }.journey-public .j-journey-hero { padding:50px 0; }.j-globe { width:280px; }.j-hero-title { font-size:2.9rem; }.j-public-nav { gap:14px; }.j-public-header > div { gap:16px; }.j-toast { bottom:80px; }.j-search-form .j-button { padding:10px; }.j-card { padding:22px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }.j-globe path { stroke-dashoffset:0; } }
@media print { .j-sidebar,.j-topbar,.j-mobile-nav,.j-preview,.j-button,.j-public-header,.j-public-footer { display:none!important; }.j-layout { display:block; }.j-dark { --j-paper:white; --j-surface:white; --j-text:black; --j-muted:#333; --j-line:#ccc; }.j-content { padding:0; } }
.j-globe.j-animated-globe { position:relative; width:min(400px,100%); aspect-ratio:1; border:0; background:none; box-shadow:none; overflow:visible; isolation:isolate; cursor:grab; touch-action:none; user-select:none; }
.j-globe.j-animated-globe::before,.j-globe.j-animated-globe::after { content:none; }
.j-animated-globe canvas { position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none; }
.j-animated-globe.is-dragging { cursor:grabbing; }
.j-animated-globe .j-globe-label { position:absolute; top:0; left:0; margin:0; font-size:12px; line-height:1.25; font-weight:500; white-space:nowrap; padding:6px 11px; max-width:calc(100% - 16px); background:var(--globe-label); color:var(--globe-cream); border:1px solid #947942; border-radius:20px; text-decoration:none; opacity:0; visibility:hidden; will-change:transform; cursor:default; }
.j-animated-globe a.j-globe-label { cursor:pointer; }
.j-animated-globe .j-globe-label:hover,.j-animated-globe .j-globe-label:focus-visible { border-color:var(--globe-gold); background:#284c3b; box-shadow:0 0 16px #d8b97522; }
@media(max-width:760px) { .j-globe.j-animated-globe { width:min(280px,100%); }.j-animated-globe .j-globe-label { font-size:11.5px; padding:6px 9px; } }
/* Boarding-pass Journey: component-scoped layout, no continuous route/progress lines. */
.j-pass-journey { padding-block:clamp(2.75rem,5vw,4rem) clamp(1.75rem,3vw,2.5rem); }
.j-pass-heading { margin-bottom:2rem; }
.j-pass-heading .j-heading { margin-bottom:0; }
.j-pass-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.75rem; list-style:none; padding:0; margin:0; }
.j-pass-step { position:relative; min-width:0; display:flex; }
.j-boarding-pass { position:relative; isolation:isolate; display:flex; flex-direction:column; width:100%; padding:1.5rem 1.3rem 1.1rem; border:1px solid color-mix(in srgb,var(--j-ink) 42%,transparent); border-radius:var(--j-radius); background:var(--j-surface); color:var(--j-text); box-shadow:var(--j-shadow); transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease; }
.j-boarding-pass::before,.j-boarding-pass::after { content:''; position:absolute; z-index:2; width:1rem; height:1rem; bottom:2.6rem; border:1px dotted color-mix(in srgb,var(--j-ink) 50%,transparent); border-radius:50%; background:var(--j-paper); }
.j-boarding-pass::before { left:calc(-.5rem - 1px); clip-path:inset(0 0 0 50%); }
.j-boarding-pass::after { right:calc(-.5rem - 1px); clip-path:inset(0 50% 0 0); }
.j-pass-watermark { position:absolute; z-index:-1; right:.75rem; top:2.5rem; color:transparent; -webkit-text-stroke:1px var(--j-brass); opacity:.18; font:400 clamp(5rem,7vw,7rem)/1 var(--j-serif); pointer-events:none; }
.j-pass-top { display:flex; align-items:center; justify-content:space-between; gap:.65rem; margin-bottom:2.25rem; }
.j-pass-label { font:700 .625rem/1.6 var(--j-sans); letter-spacing:.11em; text-transform:uppercase; color:var(--j-ink); }
.j-pass-label > span { color:var(--j-brass); padding-inline:.15rem; }
.j-pass-icon { display:block; flex:0 0 1.6rem; width:1.6rem; height:1.6rem; background:var(--j-ink); -webkit-mask:var(--pass-icon) center/contain no-repeat; mask:var(--pass-icon) center/contain no-repeat; transition:transform .3s ease; }
.j-boarding-pass h3 { margin:0 0 .8rem; max-width:12ch; font:500 clamp(1.4rem,1.7vw,1.7rem)/1.16 var(--j-serif); color:var(--j-ink); }
.j-pass-description { margin:0 0 1.5rem; font:400 .875rem/1.75 var(--j-sans); color:var(--j-text); }
.j-pass-footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:auto; padding-top:1.1rem; border-top:1px dashed color-mix(in srgb,var(--j-ink) 24%,transparent); font:600 .625rem/1.5 var(--j-sans); letter-spacing:.06em; text-transform:uppercase; color:var(--j-ink); }
.j-pass-ticket-mark { display:flex; align-items:center; gap:2px; opacity:.4; }
.j-pass-ticket-mark i { width:2px; height:.75rem; background:currentColor; }
.j-pass-ticket-mark i:nth-child(even) { width:1px; height:.6rem; }
.j-pass-connector { position:absolute; z-index:3; pointer-events:none; width:2.5rem; height:2rem; top:46%; right:calc(-2.125rem); color:var(--j-ink); opacity:.35; stroke:currentColor; stroke-width:1; stroke-linecap:round; stroke-linejoin:round; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .j-boarding-pass:hover { transform:translateY(-5px); border-color:var(--j-ink); box-shadow:0 16px 32px color-mix(in srgb,var(--j-deep) 12%,transparent); }.j-boarding-pass:hover .j-pass-icon { transform:translateY(-2px) rotate(-7deg); } }
@media(prefers-reduced-motion:no-preference) { .j-pass-journey.is-motion-ready:not(.is-revealed) .j-pass-step { opacity:0; transform:translateY(18px); }.j-pass-journey.is-revealed .j-pass-step { animation:j-pass-arrive .65s cubic-bezier(.22,.61,.36,1) both; animation-delay:calc(var(--pass-index) * 100ms); } }
@keyframes j-pass-arrive { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@media(max-width:1100px) { .j-pass-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.75rem; }.j-pass-connector { top:45%; }.j-pass-step:nth-child(2) .j-pass-connector { display:none; }.j-boarding-pass h3 { max-width:18ch; }.j-pass-top { margin-bottom:1.75rem; } }
@media(max-width:760px) { .j-pass-list { grid-template-columns:1fr; gap:1.1rem; }.j-pass-connector { display:none; }.j-boarding-pass { padding:1.4rem 1.35rem 1.1rem; }.j-pass-label { font-size:.6875rem; }.j-pass-footer { font-size:.6875rem; }.j-pass-watermark { font-size:6rem; top:1.8rem; }.j-pass-top { margin-bottom:1.5rem; } }
@media(prefers-reduced-motion:reduce) { .j-pass-step,.j-boarding-pass,.j-pass-icon { opacity:1!important; transform:none!important; animation:none!important; transition:none!important; } }

/* Typography only: grid, positioning, spacing, globe and motion rules are unchanged. */
@font-face{font-family:Inter;src:url('/assets/fonts/Inter.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Fraunces;src:url('/assets/fonts/Fraunces.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--type-12:.75rem;--type-14:.875rem;--type-16:1rem;--type-18:1.125rem;--type-22:1.375rem;--type-28:1.75rem;--type-40:2.5rem;--type-56:3.5rem;--type-serif:Fraunces,Georgia,'Times New Roman',serif;--type-sans:Inter,'Segoe UI',Arial,sans-serif;--type-copy:68ch;--type-body-leading:1.6;--type-heading-leading:1.2}
.journey-app:not(.pw-body){font-family:var(--type-sans);font-size:var(--type-16);line-height:var(--type-body-leading)}
.journey-public :is(p,li,summary,input,select,textarea,button,.brand,.j-public-nav,.j-button){font-family:var(--type-sans)}
.journey-public p,.journey-app:not(.pw-body) p{font-size:var(--type-16);line-height:var(--type-body-leading);max-inline-size:var(--type-copy)}
.journey-public :is(h1,h2,h3),.journey-app:not(.pw-body) :is(h1,h2,h3){font-family:var(--type-serif);font-weight:500;line-height:var(--type-heading-leading);letter-spacing:-.025em;text-wrap:pretty}
.journey-public .j-hero-title,.journey-app:not(.pw-body) .j-hero-title{font-size:clamp(var(--type-40),4.5vw,var(--type-56));line-height:1.15}
.journey-public .j-heading,.journey-app:not(.pw-body) .j-heading{font-size:clamp(var(--type-28),3vw,var(--type-40))}
.journey-public .j-card h2,.journey-app:not(.pw-body) .j-card h2{font-size:var(--type-28)}
.journey-public .j-card h3,.journey-app:not(.pw-body) .j-card h3{font-size:var(--type-22)}
.journey-public :is(.j-muted,.j-image-caption),.journey-app:not(.pw-body) .j-muted{font-size:var(--type-14);color:var(--j-muted);line-height:var(--type-body-leading)}
.journey-public .j-kicker,.journey-app:not(.pw-body) .j-kicker{font-family:var(--type-sans);font-size:var(--type-12);line-height:1.6;letter-spacing:.14em;font-weight:650}
.journey-public .j-pass-label{color:var(--j-ink);font-size:var(--type-12)}
.journey-public .j-pass-footer{color:var(--j-muted);font-size:var(--type-12)}
.journey-public .j-announcement{font-family:var(--type-sans);font-size:var(--type-14);line-height:1.6}
.journey-public .j-journey-hero :is(.j-muted,.j-kicker){color:#d1dbc9}
.journey-public .j-public-footer :is(p,.j-muted){color:#c3d0bd}
.journey-public .j-photo-break :is(p,.j-muted){color:var(--j-paper)}
.journey-public .j-button,.journey-app:not(.pw-body) .j-button{font-family:var(--type-sans);font-size:var(--type-14);font-weight:600;min-block-size:44px}
.journey-public .j-public-nav a{font-size:var(--type-14);line-height:1.6;min-block-size:44px;align-content:center}
.journey-public :is(.j-rich-text,.j-rich-content),.journey-app:not(.pw-body) .j-rich-text{max-inline-size:var(--type-copy)}
.journey-public :is(strong,b),.journey-app:not(.pw-body) :is(strong,b){font-weight:650}
.journey-public .j-error,.journey-app .j-error,.journey-app .form-error:not(:empty){color:#963e49;background:#f9e9eb;font-size:var(--type-16);line-height:1.6}
.journey-public :is(.j-stat,.j-badge),.journey-app input{font-variant-numeric:tabular-nums}
.journey-public :focus-visible,.journey-app :focus-visible{outline-color:var(--j-ink)}
.journey-public .catalogue-note,.journey-public .j-card .j-rich-text{color:var(--j-text);font-size:var(--type-16)}

.journey-public .j-photo-break :is(.j-heading,.j-muted){background-color:var(--j-deep);color:var(--j-paper)}

.journey-public p.j-muted{font-size:var(--type-16)}
