/* Visual composition is independent from routing and interaction. */
body:not(.layout-classic){--line:#17292322;--accent:#28705b;--button:#195e48;--soft:#edf4ef;font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}
.access-header{position:relative;z-index:1;width:min(100%,640px);display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);font-size:13px;font-weight:650;letter-spacing:.02em}.access-header small{font-size:10px;font-weight:400;opacity:.7}.layout-classic .access-header,.layout-poster .access-header,.layout-status .access-header{display:none}
body:not(.layout-classic) .eyebrow{font-size:11px;letter-spacing:.04em;font-weight:500}body:not(.layout-classic) .symbol,body:not(.layout-classic) .minimal-symbol{display:none}body:not(.layout-classic) .primary span{margin-left:auto}body:not(.layout-classic) .intro{line-height:1.85}body:not(.layout-classic) .foot{letter-spacing:0;text-align:center;max-width:560px;line-height:1.8}body:not(.layout-classic) .page-top{margin-bottom:28px}.preview-badge{position:relative;z-index:2;font-size:10px;letter-spacing:0;background:#fffdf6;color:#6b6350;border:1px solid #d8d0be;border-radius:4px;padding:4px 9px;align-self:center;margin-bottom:8px}
/* Navigation: page header, horizontal rows and a clear selected state. */
body.layout-directory{--bg:#f7faf8;--card:#fff;--text:#163e31;--muted:#708178;--accent:#1f6b4f;--button:#1f654a;--soft:#eaf3ec;--line:#274d3020;background:var(--bg);justify-content:flex-start;padding:16px 24px 28px}.layout-directory .card{max-width:640px;background:transparent;box-shadow:none;border:0;border-radius:0;padding:40px 0 10px}.layout-directory h1{font-size:30px;max-width:520px;font-weight:650;letter-spacing:-.045em;margin-bottom:14px}.layout-directory .routes{margin:34px 0 24px;gap:0;border-top:1px solid var(--line)}.layout-directory .route{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:22px 12px;background:transparent}.layout-directory .route.selected{background:#e7f0e8;border-left:3px solid var(--accent);padding-left:9px}.layout-directory .route strong{font-size:15px}.layout-directory .route small{margin-top:5px}.layout-directory .route-num{width:24px;font-size:13px}.layout-directory .primary{border-radius:5px;min-height:52px}.layout-directory .pill{border:1px solid var(--line);background:transparent;border-radius:3px}.layout-directory .steps{border-bottom:1px solid var(--line);padding-bottom:22px}.layout-directory .brand-logo{text-align:left}.layout-directory .destination{border-radius:4px}.layout-directory .hero-media{border-radius:4px}
/* Editorial: a paper-like page with open space and strong typography. */
body.layout-editorial{--bg:#f4f0e7;--card:transparent;--text:#282722;--muted:#777369;--accent:#a5482d;--button:#252a26;--soft:#ece6d9;--line:#34372e33;background:var(--bg);justify-content:flex-start;padding:18px 30px 30px}.layout-editorial .access-header{max-width:690px}.layout-editorial .card{max-width:690px;border:0;border-radius:0;background:transparent;box-shadow:none;padding:64px 0 12px}.layout-editorial h1{font-family:Georgia,"Songti SC","Noto Serif SC",serif;font-size:42px;font-weight:500;line-height:1.3;letter-spacing:-.06em;margin-bottom:24px;max-width:570px}.layout-editorial .intro{max-width:430px;margin-bottom:38px}.layout-editorial .eyebrow{color:var(--muted);border-left:2px solid var(--accent);padding-left:10px}.layout-editorial .primary{border-radius:0;justify-content:space-between;font-size:14px;max-width:360px;padding:18px 22px}.layout-editorial .subtle{text-align:left;margin-top:25px}.layout-editorial .brand-logo{text-align:left}.layout-editorial .hero-media{border-radius:0;background:transparent}.layout-editorial .slide-box{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:24px 0}.layout-editorial .routes{gap:0}.layout-editorial .route{border-radius:0;border-width:0 0 1px;padding:18px 4px}.layout-editorial .route.selected{border-left:3px solid var(--accent);padding-left:12px}.layout-editorial .destination{border:0;border-left:2px solid var(--accent);border-radius:0;padding-left:18px}
/* Cover: full-bleed background, stable contrast and a responsive split layout. */
body.layout-cover{--bg:#253c44;--card:transparent;--text:#fff;--muted:#e2e8e5;--accent:#f2e2bc;--button:#fff;--soft:#ffffff10;--line:#ffffff40;position:relative;background:var(--bg);min-height:100vh;justify-content:flex-start;align-items:flex-start;padding:22px 28px 30px}.layout-cover:after{content:"";position:fixed;inset:0;background:linear-gradient(180deg,#0d20262b 10%,#10202773 42%,#0b1c22ed 100%);pointer-events:none;z-index:0}.layout-cover .page-background{object-position:center}.layout-cover .access-header{max-width:none;border-color:#ffffff40}.layout-cover .card{width:100%;max-width:800px;margin-top:auto;background:transparent;box-shadow:none;border:0;border-radius:0;padding:70px 0 6px}.layout-cover h1{font-size:37px;line-height:1.25;font-weight:550;letter-spacing:-.045em;max-width:620px;margin-bottom:24px}.layout-cover .intro{max-width:400px;margin-bottom:28px}.layout-cover .primary{background:#faf8f1;color:#223e40;border-radius:3px;box-shadow:none}.layout-cover .eyebrow{color:#ead8b2}.layout-cover .routes{margin-top:22px}.layout-cover .route{border-radius:4px;background:#10212780}.layout-cover .route.selected{background:#f4efe0;color:#223b38;border-color:#f4efe0}.layout-cover .route.selected small,.layout-cover .route.selected .route-state{color:#526e63}.layout-cover .brand-logo{text-align:left}.layout-cover .brand-logo img{padding:8px;background:#fff;border-radius:5px;box-sizing:content-box}.layout-cover .loading-orbit{border-radius:0;box-shadow:none;width:48px;height:48px;margin:0 0 24px;font-size:24px}.layout-cover .foot{align-self:flex-start;text-align:left}.layout-cover .hero-media{border-radius:4px;background:#ffffff0d}.layout-cover .destination{border-radius:3px}
@media(min-width:760px){
 body.layout-cover{padding:30px 6vw 38px}
 .layout-cover .card{max-width:none;display:grid;grid-template-columns:1.15fr .85fr;column-gap:9vw;align-items:start;padding-top:70px}
 .layout-cover .card>.brand-logo{grid-column:1;grid-row:1}
 .layout-cover .card>.page-top,.layout-cover .card>.eyebrow{grid-column:1;grid-row:2}
 .layout-cover .card>h1{grid-column:1;grid-row:3}
 .layout-cover .card>.intro{grid-column:1;grid-row:4}
 .layout-cover .card>.hero-media{grid-column:1;grid-row:5 / span 3}
 .layout-cover .card>.routes,.layout-cover .card>.destination,.layout-cover .card>.slide-box,.layout-cover .card>.poster-destination{grid-column:2;grid-row:3 / span 2;margin-top:0}
 .layout-cover .card>.primary{grid-column:2;grid-row:5}
 .layout-cover .card>.countdown{grid-column:2;grid-row:6}
 .layout-cover .card>.progress{grid-column:2;grid-row:7}
 .layout-cover .card>.subtle{grid-column:2;grid-row:8}
 .layout-cover .card>.poster-copy{grid-column:1;grid-row:3 / span 5}
 .layout-cover .card>.steps{grid-column:1/-1;grid-row:3}
 .layout-cover .card>section{grid-column:1/-1;max-width:640px;grid-row:4 / span 5}
 .layout-cover .loading-orbit{display:none}
}
/* Ticket: a dedicated confirmation layout with a perforated address area. */
body.layout-ticket{--bg:#dce9e1;--card:#fbfaf4;--text:#243d33;--muted:#6c7e72;--accent:#3d6951;--button:#345b46;--soft:#edf1e9;--line:#36544338;background:var(--bg);padding:24px 26px 30px;justify-content:center}.layout-ticket .access-header{max-width:420px;border:0;padding:0 2px 18px;text-transform:none}.layout-ticket .card{max-width:420px;position:relative;border:0;border-top:5px solid #42634f;border-radius:3px;box-shadow:0 10px 30px #32493913;padding:32px 26px}.layout-ticket .card:before,.layout-ticket .card:after{content:"";position:absolute;width:24px;height:24px;background:var(--bg);border-radius:50%;top:57%}.layout-ticket .card:before{left:-12px}.layout-ticket .card:after{right:-12px}.layout-ticket h1{font-size:28px;font-weight:550;letter-spacing:-.035em;margin-bottom:14px}.layout-ticket .eyebrow{border-bottom:1px dashed var(--line);padding-bottom:16px;margin-bottom:24px;color:var(--muted)}.layout-ticket .destination{background:none;border:0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);border-radius:0;padding:25px 0;margin:25px 0}.layout-ticket .destination strong{font-family:ui-monospace,monospace;font-size:15px}.layout-ticket .primary{border-radius:3px;min-height:49px}.layout-ticket .hero-media{border-radius:2px}.layout-ticket .route{border-radius:2px}.layout-ticket .steps{flex-wrap:wrap}
/* Redirect and maintenance are status views, not marketing layouts. */
body.layout-status{--bg:#070b16;--card:#111a2e;--text:#eef2fc;--muted:#90a0c0;--accent:#a99bff;--button:#7c6cff;--line:#ffffff16;--soft:#a99bff1f;background:radial-gradient(980px 560px at 50% -14%,#7c6cff33,transparent 62%),radial-gradient(760px 520px at 50% 122%,#22d3ee18,transparent 60%),var(--bg);padding:34px 20px}.layout-status .card{max-width:430px;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,#ffffff12,transparent 32%),#111a2ef2;backdrop-filter:blur(16px);box-shadow:0 40px 100px -34px #000,inset 0 1px 0 #ffffff18;padding:46px 32px}.layout-status .eyebrow{display:inline-block;margin:0 0 18px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.2em}.layout-status h1{font-size:24px;letter-spacing:-.02em;margin-bottom:12px}.layout-status .intro{max-width:320px;margin-bottom:26px}.layout-status .primary{max-width:320px;border-radius:14px}.layout-status .spinner{width:56px;height:56px;border-width:3px;margin:4px 0 30px;box-shadow:0 0 34px -4px var(--accent)}.layout-status .symbol{width:76px;height:76px;border-radius:22px;margin:4px 0 24px;font-size:34px}.layout-status .foot{color:#6b7694}
.preview-result{position:fixed;z-index:20;left:12px;right:12px;bottom:12px;max-width:540px;margin:auto;display:flex;gap:12px;align-items:center;padding:13px 14px;background:#fffef8;color:#273831;border:1px solid #a2b9a6;border-radius:7px;box-shadow:0 5px 26px #0002;font:12px/1.6 system-ui}.preview-result div{min-width:0;flex:1}.preview-result strong{font-size:11px}.preview-result code{display:block;overflow-wrap:anywhere;color:#35684b;font-size:10px}.preview-result button{background:#e9eee7;border:0;border-radius:4px;padding:7px 9px;color:#35573f;cursor:pointer;white-space:nowrap}.preview-result[hidden]{display:none}.preview-result:not([hidden])~.foot{margin-bottom:76px}
@media(max-width:420px){.layout-directory h1{font-size:27px}.layout-editorial h1{font-size:35px}.layout-editorial .card{padding-top:45px}.layout-cover h1{font-size:32px}.layout-ticket .card{padding:26px 22px}.layout-ticket h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.spinner{animation:none}}

h1{white-space:pre-line}
body.layout-poster{--bg:#f7fbff;--card:transparent;--text:#243b55;--muted:#607487;--accent:#357ce8;--button:#2874ef;--line:#25446a1c;--soft:#dceaff55;background:var(--bg)}

.layout-directory:has(.page-background):after,.layout-editorial:has(.page-background):after,.layout-poster:has(.page-background):after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--bg) 88%,transparent)}
