/* NightRoute live experience — adapted from the approved nine-screen prototype. */
body{background:#050508}.ambient{inset:0;background:radial-gradient(circle at 12% 12%,#ff2e9a22,transparent 28%),radial-gradient(circle at 86% 72%,#00e5ff18,transparent 30%),linear-gradient(#07070cdd,#050508);filter:saturate(1.2)}
.app-shell{width:min(100%,480px);padding:calc(max(18px,env(safe-area-inset-top)) + 3px) 18px max(30px,env(safe-area-inset-bottom));isolation:isolate}.app-shell:before{content:"";position:fixed;inset:0;z-index:-2;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,#0006,transparent 70%)}
.topbar{margin-bottom:30px}.brand{font-size:19px;letter-spacing:.03em;text-decoration:none}.mode{background:#ffb0200b;backdrop-filter:blur(12px)}.compact-title{font-size:clamp(40px,11vw,52px)!important;line-height:.96;margin-bottom:18px}.card{background:linear-gradient(145deg,#171722ee,#0e0e16f2);border-color:#302b3e;box-shadow:0 24px 70px #0008,inset 0 1px #ffffff08}.card.hot{border-color:#ff2e9a88;box-shadow:0 25px 70px #0009,0 0 38px #ff2e9a18}.btn{min-height:54px;border-radius:17px;letter-spacing:.01em;box-shadow:0 14px 36px #ff2e9a3c}.btn:focus-visible,.icon-btn:focus-visible,.hold:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.btn.secondary{background:#171722dd;border-color:#353041}.meta{line-height:1.45}
.ticket-card{position:relative;overflow:hidden;padding-bottom:22px}.ticket-shine{position:absolute;width:230px;height:230px;right:-90px;top:-110px;border-radius:50%;background:radial-gradient(circle,#00e5ff2b,transparent 65%);animation:ticketFloat 6s ease-in-out infinite alternate}.ticket-head{position:relative;padding:25px 22px;margin:-20px -20px 20px;background:linear-gradient(130deg,#ff2e9a20,#00e5ff0a 58%,transparent);min-height:140px}.ticket-mark{position:absolute;right:20px;top:22px;font:700 32px 'Space Grotesk';letter-spacing:-.08em;color:#ffffff0e}.ticket-head .value{font-size:23px;max-width:330px;margin-top:26px}@keyframes ticketFloat{to{transform:translate(-24px,30px) scale(1.14)}}
.countdown-hero{position:relative;overflow:hidden;margin-bottom:14px;padding:24px;border:1px solid #00e5ff45;border-radius:22px;background:radial-gradient(circle at 85% 20%,#00e5ff20,transparent 38%),#0d1218}.countdown-hero .countdown{color:var(--cyan);font-size:32px;margin:6px 0 10px}.countdown-hero p{color:var(--dim);font-size:13px;margin:0}.pulse-line{height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);box-shadow:0 0 16px var(--cyan);animation:scan 2.8s linear infinite}@keyframes scan{0%{transform:translateX(-110%)}100%{transform:translateX(110%)}}
.value-card .value{font-size:28px;margin:7px 0 16px}.value-strip{grid-template-columns:repeat(3,1fr)}.value-pill{padding:15px 7px;background:#ffffff06}.value-pill b{font-size:21px}.value-pill.feature{border-color:#ff2e9a66;background:#ff2e9a12}.value-pill.feature b{color:var(--pink)}.value-equation{display:flex;align-items:center;gap:9px;padding-top:13px;border-top:1px solid var(--stroke);font-size:12px;color:var(--dim)}.value-equation strong{font-size:16px;color:white}.value-equation .saving{margin-left:auto;color:var(--green);font-weight:700}.readiness-card .check{background:#ffffff05;border:1px solid #ffffff07}.check span{display:grid;gap:2px}.check b{color:var(--ink);font-size:13px}.check small{color:var(--mute);font-size:11px}.check.checking i{border:2px solid #494355;border-top-color:var(--cyan);background:transparent;animation:spin .8s linear infinite}
.stop-rail{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:0 0 18px}.stop-rail span{height:34px;border:1px solid var(--stroke);border-radius:10px;display:grid;place-items:center;color:var(--mute);font:700 11px 'Space Grotesk';background:#101018}.stop-rail span.done{color:#06100a;background:var(--green);border-color:var(--green)}.stop-rail span.active{color:white;background:var(--pink);border-color:var(--pink);box-shadow:0 0 22px #ff2e9a66;animation:activeStop 1.8s ease-in-out infinite}@keyframes activeStop{50%{box-shadow:0 0 38px #ff2e9aaa}}
.venue-hero{position:relative;overflow:hidden;text-align:center;padding:38px 20px 24px;border:1px solid #ff2e9a77;border-radius:27px;background:radial-gradient(circle at 50% 18%,#ff2e9a2d,transparent 43%),linear-gradient(145deg,#19111e,#0c0d15);box-shadow:0 30px 80px #0009,0 0 50px #ff2e9a18;margin-bottom:14px}.venue-orbit{width:106px;height:106px;border:1px solid #ff2e9a55;border-radius:50%;position:absolute;top:-45px;left:calc(50% - 53px);box-shadow:0 0 42px #ff2e9a44}.venue-orbit:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:var(--cyan);left:5px;top:70px;box-shadow:0 0 16px var(--cyan);animation:orbit 4s linear infinite;transform-origin:47px -18px}@keyframes orbit{to{rotate:360deg}}.venue-kicker{font-size:10px;color:var(--cyan);letter-spacing:.2em;text-transform:uppercase;font-weight:700}.venue-hero h2{font:700 clamp(35px,10vw,48px)/.98 'Space Grotesk';letter-spacing:-.05em;margin:12px 0 9px}.venue-hero p{color:var(--dim);font-size:13px;margin:0 0 24px}.venue-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:9px}.venue-actions .btn{padding:13px 10px;font-size:12px;display:grid;place-items:center;text-decoration:none}.reveal-timer{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #00e5ff45;border-radius:19px;padding:17px 18px;background:#00e5ff0a;margin-bottom:14px}.reveal-timer .countdown{font-size:31px;color:var(--cyan);margin-top:3px}.lock-badge{display:grid;justify-items:center;gap:4px;color:var(--mute);font-size:10px;text-align:center}.route-details summary{cursor:pointer;color:var(--dim);font-size:12px;text-align:center;padding:12px;list-style:none}.route-details summary:after{content:" +";color:var(--pink)}.route-details[open] summary:after{content:" –"}
.eligibility-head{display:grid;grid-template-columns:55px 1fr;align-items:center;gap:15px;margin:28px 0}.signal-ring{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:24px;color:var(--cyan);border:1px solid #00e5ff88;box-shadow:0 0 30px #00e5ff27;animation:signal 1.5s ease-in-out infinite}@keyframes signal{50%{box-shadow:0 0 50px #00e5ff66;transform:scale(1.04)}}.eligibility-head .hero-title{margin:5px 0 0}.eligibility-card{border-color:#00e5ff3d}
.redeem-screen{overflow:hidden}.redeem-screen:before{z-index:-1;background:radial-gradient(circle at 50% 55%,#ff2e9a5c,transparent 35%),linear-gradient(145deg,#ff2e9a1a,#00e5ff12,#9d4edd1c);background-size:160% 160%}.serve-stage{text-align:center;margin-top:22px}.live-pill{display:inline-flex;align-items:center;gap:7px;background:#ff2e9a16;border:1px solid #ff2e9a61;color:#ff8dca;border-radius:99px;padding:7px 12px;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.13em;margin-bottom:25px}.live-pill i{width:7px;height:7px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px var(--pink);animation:livePulse 1s infinite}@keyframes livePulse{50%{opacity:.4}}.serve-stage .sub{font-size:13px;max-width:350px;margin:0 auto 16px}.token-clock{display:inline-block;font-size:12px;padding:9px 13px;border:1px solid #00e5ff55;border-radius:99px;background:#00e5ff0c}.hold-wrap{position:relative;width:238px;height:238px;margin:22px auto}.hold-halo{position:absolute;inset:7px;border-radius:50%;background:conic-gradient(from 90deg,var(--pink),var(--cyan),#9d4edd,var(--pink));filter:blur(22px);opacity:.55;animation:haloSpin 3s linear infinite}@keyframes haloSpin{to{rotate:360deg}}.hold{position:absolute;inset:19px;width:auto;height:auto;margin:0;background:conic-gradient(var(--cyan) var(--progress,0%),#35233e 0);box-shadow:0 0 55px #ff2e9a55,inset 0 0 28px #000}.hold:before{inset:8px;background:radial-gradient(circle at 50% 35%,#2b1731,#100d18 70%);border:1px solid #ffffff12}.hold span{font-size:15px;letter-spacing:.02em;line-height:1.35}.hold span small{display:block;color:var(--cyan);font-size:9px;letter-spacing:.18em;margin-bottom:6px}.venue-chip{display:inline-block;padding:10px 14px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff12;font-size:12px}.security-note{display:flex;justify-content:center;gap:16px;color:var(--mute);font-size:10px;margin-top:17px}
.success-screen:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 50% 34%,#1fd96e66,transparent 34%),linear-gradient(#06150c,#050807 70%)}.success{padding-top:7vh}.success-burst{position:absolute;left:50%;top:8%;width:240px;height:240px;transform:translateX(-50%);background:repeating-conic-gradient(from 20deg,#1fd96e25 0 2deg,transparent 2deg 15deg);border-radius:50%;animation:haloSpin 14s linear infinite}.success-mark{position:relative;width:104px;height:104px;font-size:52px;background:#ecfff4;color:#067532;box-shadow:0 0 0 12px #1fd96e22,0 0 80px #1fd96e99}.success .hero-title{position:relative;color:#f4fff8;font-size:56px!important;line-height:.83;margin-top:24px;text-shadow:0 0 35px #1fd96e55}.success-venue{font:700 20px 'Space Grotesk';color:var(--green);margin:12px 0}.used-stamp{display:inline-block;color:#9cf8bd;border:1px dashed #1fd96e88;border-radius:10px;padding:9px 14px;font-size:11px;letter-spacing:.13em;margin:0 0 24px}.success-btn{background:var(--green);color:#05200e;box-shadow:0 14px 36px #1fd96e33}
.crew-preview{border-color:#9d4edd55;background:radial-gradient(circle at 90% 0,#9d4edd25,transparent 40%),linear-gradient(145deg,#171722ee,#0e0e16f2)}.crew-preview .value{font-size:25px;margin:7px 0}.crew-faces{display:flex;align-items:center;margin:18px 0}.crew-faces i{width:42px;height:42px;margin-left:-7px;border:2px solid #171722;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ff2e9a,#9d4edd);color:#fff;font:700 10px 'Space Grotesk';font-style:normal}.crew-faces i:first-child{margin-left:0}.crew-faces i:nth-child(2){background:linear-gradient(145deg,#00e5ff,#4568dc)}.crew-faces i:nth-child(3){background:linear-gradient(145deg,#ffb020,#ff2e9a)}.crew-faces b{margin-left:10px;font-size:12px}.crew-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.crew-actions .btn{padding:11px 8px;font-size:11px}.crew-room{border-color:#9d4edd66}.crew-faces.large{flex-wrap:wrap}.crew-faces.large i{width:52px;height:52px}.vibe-poll{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.vibe-poll button{border:1px solid var(--stroke);border-radius:13px;padding:13px 8px;background:#ffffff08;color:var(--ink);font-weight:700}.vibe-poll button.selected{border-color:var(--cyan);color:var(--cyan);background:#00e5ff12}.live-alert{width:100%;display:grid;gap:2px;text-align:left;margin:-14px 0 18px;padding:13px 15px;border:1px solid #00e5ff55;border-radius:14px;background:#00e5ff10;color:var(--ink)}.live-alert b{font-size:12px;color:var(--cyan)}.live-alert span{font-size:11px;color:var(--dim)}.live-alert.important,.live-alert.urgent{border-color:#ff2e9a66;background:#ff2e9a10}.live-alert.important b,.live-alert.urgent b{color:#ff86c7}
@media(min-width:700px){body:after{content:"LIVE NIGHT EXPERIENCE";position:fixed;left:34px;bottom:30px;color:#ffffff12;font:700 11px 'Space Grotesk';letter-spacing:.28em;writing-mode:vertical-rl}.app-shell{border-left:1px solid #ffffff08;border-right:1px solid #ffffff08;box-shadow:0 0 100px #000}.card{padding:22px}.ticket-head{margin:-22px -22px 20px}}
@media(max-width:380px){.app-shell{padding-inline:14px}.venue-actions{grid-template-columns:1fr}.value-pill b{font-size:18px}.success .hero-title{font-size:48px!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
.membership-card{border-color:#ff2e9a55;background:linear-gradient(145deg,#211129,#100d18)}.membership-card .btn{display:block;margin-top:14px;text-align:center;text-decoration:none}
