.lucky-page { background:#090c0f; color:#f5f3e9; --lucky-orange:#ff742c; --lucky-muted:#adb5bd; --lucky-border:#31373d; --font-ui:var(--bryk-font-ui); --font-display:var(--bryk-font-display); }
.lucky-page * { box-sizing:border-box; }
.lucky-page [hidden] { display:none !important; }
.lucky-page button,.lucky-page input,.lucky-page a { -webkit-tap-highlight-color:transparent; }
.lucky-page :focus-visible { outline:3px solid #58e1dd; outline-offset:5px; }
.lucky-page button,.lucky-page a { touch-action:manipulation; }
.lucky-page h1,.lucky-page h2,.board-display strong { overflow-wrap:anywhere; }
.lucky-skip { position:fixed; top:-100px; left:20px; z-index:100; padding:18px; background:#fff; color:#111; }
.lucky-skip:focus { top:16px; }
.lucky-main { width:min(1440px,calc(100% - 80px)); margin:auto; }
.platform-heading { display:flex; justify-content:space-between; gap:16px; padding:28px 0 20px; border-bottom:1px solid var(--lucky-border); font:700 .875rem/1.5 var(--font-ui); letter-spacing:.08em; }
.platform-heading a { color:inherit; text-decoration:none; }
.platform-heading>span { color:var(--lucky-muted); }
.platform-heading i { color:var(--lucky-orange); font-style:normal; margin:0 12px; }
.lucky-platform { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(32px,5vw,80px); align-items:start; padding:48px 0 80px; }
.lucky-eyebrow { margin:0 0 22px; font:800 .875rem/1.6 var(--font-ui); letter-spacing:.08em; }
.lucky-intro>.lucky-eyebrow { display:flex; align-items:center; gap:12px; }
.line-roundel { display:inline-grid; place-items:center; flex:none; width:36px; height:36px; border-radius:50%; background:var(--lucky-orange); color:#101215; font-size:1.4rem; }
.lucky-intro h1 { margin:0; font-family:var(--font-display); font-weight:900; font-size:clamp(5.5rem,9vw,9rem); line-height:.8; letter-spacing:-.025em; }
.lucky-page h1 em,.lucky-page h2 em { color:var(--lucky-orange); font-style:normal; }
.lucky-tagline { font-size:clamp(1.3rem,2vw,1.75rem); font-weight:800; margin:32px 0 14px; }
.lucky-deck { max-width:440px; margin:0 0 24px; color:#bec5ca; font-size:1.0625rem; line-height:1.75; }
.lucky-text-link { display:inline-flex; gap:16px; align-items:center; min-height:44px; color:var(--lucky-orange); font:800 .875rem/1.5 var(--font-ui); text-decoration:none; border-bottom:1px solid #7d431f; }
.lucky-text-link span { font-size:1.5rem; }
.platform-scene { position:relative; margin-top:36px; aspect-ratio:1.9; overflow:hidden; border:1px solid var(--lucky-border); }
.platform-scene img { width:100%; height:100%; object-fit:cover; display:block; opacity:.72; }
.platform-scene:after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 30%,#080b0eee); }
.platform-scene>span { position:absolute; bottom:18px; left:18px; right:18px; z-index:1; font:700 .8125rem/1.6 var(--font-ui); letter-spacing:.045em; }
.ticket-machine { min-width:0; background:#14191e; border:1px solid #474e54; box-shadow:0 16px 60px #0008; }
.machine-top { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:16px 22px; border-bottom:1px solid var(--lucky-border); background:#20262c; font:800 .8125rem/1.5 var(--font-ui); }
.machine-top>span { display:flex; align-items:center; gap:8px; color:#d3ef83; }
.preview-light { width:7px; height:7px; background:#cce980; border-radius:50%; }
.machine-top>a { color:#cad0d6; text-underline-offset:4px; }
.line-picker { margin:24px 24px 18px; padding:0; border:0; min-width:0; }
.line-picker legend { padding:0; margin:0 0 14px; font:800 .875rem/1.5 var(--font-ui); }
.line-picker legend>b,.board-caption b { color:var(--lucky-orange); margin-right:9px; }
.line-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.route-choice { --route-color:#ff9039; cursor:pointer; min-width:0; position:relative; }
.route-paint { --route-color:#57dbcd; }.route-night { --route-color:#b09aff; }
.route-choice input { position:absolute; opacity:0; width:1px; height:1px; }
.route-choice>span { display:flex; gap:8px; align-items:center; min-height:68px; border:1px solid #4b535a; background:#101419; padding:11px 9px; color:#e1e5e8; font:800 .875rem/1.2 var(--font-ui); }
.route-choice>span>b { display:grid; place-items:center; width:32px; height:32px; flex:none; color:#0c1014; background:var(--route-color); border-radius:50%; font-size:1.3rem; }
.route-choice small { display:block; margin-top:6px; color:#aeb8bf; font-size:.75rem; line-height:1.3; font-weight:500; }
.route-choice input:checked+span { border-color:var(--route-color); box-shadow:inset 0 -3px var(--route-color); background:#282e32; }
.route-choice input:focus-visible+span { outline:3px solid #fff; outline-offset:3px; }
.route-choice input:disabled+span { opacity:.55; cursor:wait; }
.line-picker>p { color:var(--lucky-muted); font-size:.875rem; line-height:1.5; margin:12px 0 0; }
.departure-board { background:#080a0d; margin:0 24px; border:1px solid #3b434a; }
.board-caption { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid #30353a; padding:13px 16px; font:700 .8125rem/1.5 var(--font-ui); color:#aeb7bd; }
.board-caption>span:last-child { color:#e9e8db; text-align:right; }
.board-display { min-height:214px; padding:22px; display:flex; flex-direction:column; justify-content:center; background-image:linear-gradient(#ffffff05 1px,transparent 1px); background-size:100% 4px; }
.board-display>span:first-child { font:700 .75rem/1.5 var(--font-ui); letter-spacing:.16em; color:#b3b8b9; margin-bottom:14px; }
.board-display strong { font-family:var(--font-display); font-size:clamp(2.3rem,3.9vw,3.75rem); line-height:.97; letter-spacing:.02em; min-height:1.94em; white-space:pre-line; color:#f2d480; }
.board-status { color:#c2cbc9; font:700 .8125rem/1.5 var(--font-ui); letter-spacing:.06em; margin-top:15px; }
.stop-track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px 0; list-style:none; margin:0; padding:20px 12px 22px; border-top:1px solid #30353a; }
.stop-track li { position:relative; text-align:center; color:#909ca4; font:700 .75rem/1.45 var(--font-ui); }
.stop-track li:before { content:""; position:absolute; top:14px; left:0; width:100%; height:2px; background:#3c474e; }
.stop-track li:nth-child(4n+1):before { left:50%; width:50%; }.stop-track li:nth-child(4n):before { width:50%; }
.stop-track b { position:relative; display:grid; place-items:center; width:30px; height:30px; border:2px solid #627079; background:#11171b; border-radius:50%; margin:0 auto 9px; color:#c5cdd1; }
.stop-track .is-active { color:#fff1bf; }.stop-track .is-active b { background:#f2d480; border-color:#f2d480; color:#12181b; box-shadow:0 0 20px #f2d48045; }
.departure-board.is-running .board-display { border-left:3px solid var(--lucky-orange); padding-left:19px; }
.punch-zone { padding:0 24px 20px; }
.punch-button { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:64px; padding:16px 22px; border:0; background:var(--lucky-orange); color:#090d0f; cursor:pointer; font:900 1.125rem/1.3 var(--font-ui); }
.punch-button>b { font-size:1.75rem; }.punch-button:hover { background:#ff965a; }
.punch-button:disabled { background:#6c645d; color:#15171a; cursor:wait; }
.punch-zone>p { color:#c4ccd1; font-size:.875rem; line-height:1.5; text-align:center; margin:12px 0 0; }
.ride-announcement:empty { display:none; }.ride-announcement { margin:14px 24px 0; color:#ecd190; font-size:.875rem; line-height:1.5; }
.lucky-noscript { padding:20px; color:white; }
.ride-ticket { margin:22px 24px 0; color:#1e2529; background:#efe9d6; box-shadow:0 6px 14px #0006; scroll-margin-top:110px; }
.ticket-stub { display:flex; gap:12px; align-items:center; padding:15px 20px; border-bottom:2px dashed #878777; }
.ticket-stub>span:first-child { background:#1e2529; color:#efe9d6; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; font:900 1.5rem var(--font-ui); }
.ticket-stub div { display:grid; gap:4px; font:900 .875rem/1.4 var(--font-ui); }
.ticket-stub small { font-size:.75rem; font-weight:700; }.ticket-punch { width:18px; height:18px; border-radius:50%; background:#14191e; margin-left:auto; flex:none; }
.ticket-body { padding:22px; }.ticket-kicker { margin:0 0 10px; font:800 .8125rem/1.5 var(--font-ui); letter-spacing:.08em; }
.ticket-body h2 { margin:0 0 14px; font:900 clamp(2.3rem,4vw,3.75rem)/.94 var(--font-display); }
.ticket-body>p:not(.ticket-kicker) { font-size:1rem; line-height:1.65; margin:0 0 20px; }
.takeaway { display:flex; gap:10px; padding:16px 0; border-top:1px solid #9c9e8f; }
.takeaway>span { font-size:1.6rem; }.takeaway p { margin:0; }.takeaway b { display:block; font:900 .8125rem/1.5 var(--font-ui); margin-bottom:5px; }.takeaway p>span { display:block; font-size:.9375rem; line-height:1.5; }
.ticket-actions { display:grid; gap:7px; }.ticket-actions>a { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:48px; padding:12px; border:1px solid #373f40; color:inherit; text-decoration:none; font:900 .8125rem/1.4 var(--font-ui); }
.ticket-actions .ticket-download { background:#172227; color:#fff4d6; }.ticket-actions>a:hover { outline:2px solid #172227; }
.ride-again { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:44px; border:0; border-top:1px dashed #83877d; background:transparent; color:#1e2529; margin-top:16px; padding:16px 0 0; font:900 .8125rem/1.5 var(--font-ui); cursor:pointer; }
.route-passport { margin:24px; border-top:1px solid #414950; padding-top:18px; }
.route-passport>div { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font:800 .8125rem/1.5 var(--font-ui); }
.route-passport>div>span { color:#d4eaaa; }.route-passport ul { display:flex; gap:8px; padding:0; margin:14px 0 10px; list-style:none; }
.route-passport li { flex:1; border:1px dashed #53606a; padding:12px 6px; text-align:center; display:grid; justify-items:center; gap:6px; color:#a5b0b8; font:700 .75rem/1.5 var(--font-ui); }
.route-passport li>b { display:grid; place-items:center; border:1px solid #637580; border-radius:50%; width:30px; height:30px; font-size:1rem; }.route-passport li small { font-size:.75rem; }
.route-passport li.is-collected { color:#d7efa9; border-color:#b9d589; border-style:solid; background:#b9d5890b; }.route-passport li.is-collected>b { background:#d7efa9; color:#121a19; border-color:#d7efa9; }
.route-passport>p { font-size:.875rem; line-height:1.6; color:#acb7bf; margin:0; }
.prize-stops { padding:55px 0 70px; border-top:1px solid var(--lucky-border); scroll-margin-top:110px; }
.lucky-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:34px; }
.lucky-section-heading h2,.ride-notes h2 { font:900 clamp(2.5rem,5.3vw,5rem)/.95 var(--font-display); margin:0; }
.lucky-section-heading>p { max-width:330px; color:#b6c0c8; font-size:1.0625rem; line-height:1.7; margin:0; }
.prize-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.prize-card { display:flex; flex-direction:column; min-width:0; background:#12171c; border:1px solid #37434b; }
.prize-number { padding:16px 20px; font:700 .8125rem/1.5 var(--font-ui); letter-spacing:.08em; color:#b6c2c9; border-bottom:1px solid #37434b; }
.prize-card>img,.prize-symbol { height:190px; width:100%; display:block; object-fit:contain; background:#090e13; }
.prize-symbol { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; font:900 4.5rem/1 var(--font-display); color:#f2d480; }
.prize-symbol>span { font:700 .8125rem/1.5 var(--font-ui); letter-spacing:.12em; color:#aab7bf; }
.prize-card>div:last-child { display:flex; flex-direction:column; flex:1; padding:24px 20px; border-top:1px solid #37434b; }
.prize-card h3 { margin:0 0 12px; font:900 1.8rem/1 var(--font-display); }.prize-card p { color:#b9c3ca; font-size:1rem; line-height:1.7; margin:0 0 24px; }
.prize-card>div:last-child>span { margin-top:auto; color:var(--lucky-orange); font:800 .8125rem/1.5 var(--font-ui); }
.ride-notes { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:55px 0 90px; border-top:1px solid var(--lucky-border); scroll-margin-top:110px; }
.ride-notes>div>p:last-child { max-width:490px; font-size:1.0625rem; line-height:1.8; color:#bcc6cd; margin-top:24px; }
.ride-faq details { border-bottom:1px solid #3b464e; }.ride-faq details:first-child { border-top:1px solid #3b464e; }
.ride-faq summary { cursor:pointer; padding:20px 6px; font-size:1rem; font-weight:800; line-height:1.5; }
.ride-faq p { margin:0; padding:0 6px 22px; color:#b8c4cc; font-size:1rem; line-height:1.7; }.ride-faq a { color:#ffe8b4; text-underline-offset:4px; }
.lucky-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; padding:32px max(24px,calc((100% - 1440px)/2)); border-top:1px solid var(--lucky-border); font:800 .8125rem/1.6 var(--font-ui); }
.lucky-footer a { color:#ced5da; text-decoration:none; display:inline-flex; align-items:center; min-height:44px; }.lucky-footer>span { color:#9dacb5; }.lucky-footer nav { display:flex; flex-wrap:wrap; gap:20px; }
@media(max-width:1150px) { .prize-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .lucky-main { width:calc(100% - 48px); }.lucky-platform { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:28px; }.route-choice>span { flex-direction:column; text-align:center; gap:8px; }.line-picker,.departure-board { margin-left:18px; margin-right:18px; }.punch-zone { padding-left:18px; padding-right:18px; }.ticket-stub { padding:14px; } }
@media(max-width:860px) { .lucky-platform { grid-template-columns:1fr; padding-top:28px; gap:28px; }.lucky-intro { display:grid; grid-template-columns:1fr 1fr; column-gap:25px; }.lucky-intro>.lucky-eyebrow { grid-column:1/-1; }.lucky-intro h1 { grid-row:2/5; font-size:clamp(5rem,12vw,7rem); }.lucky-tagline { margin:0 0 12px; }.lucky-deck { font-size:1rem; margin-bottom:12px; }.lucky-text-link { align-self:start; font-size:.8125rem; }.platform-scene { display:none; }.route-choice>span { flex-direction:row; text-align:left; padding:12px 16px; }.board-display strong { font-size:3.5rem; }.prize-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.ride-notes { grid-template-columns:1fr; gap:32px; }.lucky-section-heading { align-items:flex-start; }.lucky-section-heading>p { max-width:260px; }.platform-heading { font-size:.75rem; } }
@media(max-width:540px) { .lucky-main { width:calc(100% - 28px); }.platform-heading { padding:18px 0 14px; gap:10px; }.platform-heading>span { max-width:175px; text-align:right; }.platform-heading i { margin:0 4px; }.lucky-platform { padding-top:24px; padding-bottom:44px; }.lucky-intro { display:block; }.lucky-intro>.lucky-eyebrow { font-size:.75rem; margin-bottom:18px; }.line-roundel { width:28px; height:28px; font-size:1.1rem; }.lucky-intro h1 { font-size:3.8rem; line-height:.9; }.lucky-intro h1 br { display:none; }.lucky-intro h1 br:after { content:" "; }.lucky-intro h1 em { display:block; }.lucky-tagline { margin:18px 0 10px; font-size:1.25rem; }.lucky-deck { margin-bottom:10px; }.lucky-text-link { font-size:.75rem; }.machine-top { padding:14px; font-size:.75rem; }.line-picker { margin:20px 12px 16px; }.line-options { gap:6px; }.route-choice>span { flex-direction:column; text-align:center; padding:10px 5px; font-size:.8125rem; }.route-choice small { font-size:.75rem; }.departure-board { margin:0 12px; }.board-caption { padding:12px 10px; font-size:.75rem; }.board-display { padding:18px; min-height:208px; }.board-display strong { font-size:2.9rem; }.stop-track { padding:15px 3px; }.stop-track li { font-size:.75rem; letter-spacing:-.04em; }.stop-track b { width:26px; height:26px; }.stop-track li:before { top:12px; }.punch-zone { padding:0 12px 18px; }.punch-button { min-height:60px; padding:14px 16px; font-size:1rem; }.punch-zone>p { font-size:.8125rem; }.ride-ticket { margin:18px 12px 0; }.ticket-body { padding:18px; }.ticket-stub { gap:8px; }.ticket-stub div { font-size:.75rem; }.ticket-stub>span:first-child { width:30px; height:30px; font-size:1.15rem; }.ticket-stub small { font-size:.75rem; }.route-passport { margin:22px 12px; }.route-passport>div { font-size:.75rem; }.route-passport ul { gap:5px; }.route-passport li { padding:10px 3px; }.lucky-section-heading { display:block; }.lucky-section-heading>p { max-width:none; margin-top:20px; }.lucky-eyebrow { font-size:.8125rem; }.prize-stops { padding:36px 0 44px; }.prize-grid { grid-template-columns:1fr; gap:14px; }.prize-card { display:grid; grid-template-columns:105px 1fr; }.prize-number { grid-column:1/-1; padding:12px 16px; }.prize-card>img,.prize-symbol { height:100%; min-height:210px; }.prize-card>img { object-fit:cover; object-position:50%; }.prize-symbol { font-size:2.6rem; padding:10px; }.prize-symbol>span { font-size:.75rem; text-align:center; letter-spacing:0; }.prize-card>div:last-child { border-top:0; padding:20px 15px; }.prize-card h3 { font-size:1.5rem; }.prize-card p { font-size:1rem; margin-bottom:16px; }.prize-card>div:last-child>span { font-size:.75rem; }.ride-notes { padding:36px 0 44px; }.lucky-footer { padding:20px 16px; gap:14px; }.lucky-footer nav { gap:14px; } }
@media(max-width:540px) {
  .board-display strong { font-size:clamp(1.6rem,7.5vw,2.9rem); overflow-wrap:anywhere; }
  .prize-card { grid-template-columns:minmax(64px,28%) minmax(0,1fr); }
  .prize-card>div:last-child { min-width:0; padding:18px 12px; }
  .prize-card>img { object-fit:contain; }
  .prize-card h3 { font-size:clamp(1.1rem,4.8vw,1.5rem); overflow-wrap:normal; }
  .stop-track { grid-template-columns:repeat(4,minmax(0,1fr)); row-gap:18px; }
  .stop-track li { min-width:0; letter-spacing:0; font-size:.7rem; }
}
@media(prefers-reduced-motion:reduce) { .lucky-page *, .lucky-page *:before, .lucky-page *:after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
