:root{--bg-primary: #0f1417;--bg-secondary: #161d22;--bg-tertiary: #1f282e;--text-primary: #f1f5f7;--text-secondary: #c2ccd2;--text-muted: #8a98a0;--text-on-accent: #04140f;--border-color: #2a353c;--brand-primary: #2dd4bf;--brand-primary-dim: #14b8a6;--brand-pop: #f59e0b;--code-bg: #0b1013;--radius-xl: 16px;--radius-lg: 12px;--radius: 8px;--maxw: 720px;--tabbar-h: 60px;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-secondary);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased}a{color:var(--brand-primary);text-decoration:none}h1,h2,h3{color:var(--text-primary);line-height:1.25}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 24px)}.appbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg-primary) 88%,transparent);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid color-mix(in srgb,var(--border-color) 50%,transparent)}.appbar-inner{max-width:var(--maxw);margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:10px}.appbar .mark{width:30px;height:30px;border-radius:8px;flex:none;background:var(--brand-primary);color:var(--text-on-accent);display:grid;place-items:center;font-weight:800;font-size:14px}.appbar .titles{display:flex;flex-direction:column;line-height:1.15}.appbar .t1{color:var(--text-primary);font-weight:700;font-size:15px}.appbar .t2{color:var(--text-muted);font-size:11px}.page-head{padding:18px 0 6px}.page-head h1{margin:0 0 4px;font-size:23px;letter-spacing:-.01em}.page-head p{margin:0;color:var(--text-muted);font-size:14px}.eyebrow{color:var(--brand-primary);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}section{margin:22px 0}section[id]{scroll-margin-top:108px}.section-title{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px}.card{background:color-mix(in srgb,var(--bg-secondary) 75%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 45%,transparent);border-radius:var(--radius-xl);padding:16px;box-shadow:0 1px 2px #00000040}.card+.card{margin-top:12px}.card h3{margin:0 0 4px;font-size:16px}.card .meta{color:var(--text-muted);font-size:13px}.card .body{margin-top:8px;font-size:14px;color:var(--text-secondary)}.grid{display:grid;gap:12px}@media(min-width:560px){.grid.two{grid-template-columns:1fr 1fr}}.navgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.navcard{display:flex;flex-direction:column;gap:8px;background:color-mix(in srgb,var(--bg-secondary) 75%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 45%,transparent);border-radius:var(--radius-xl);padding:16px;min-height:96px;color:var(--text-secondary);box-shadow:0 1px 2px #00000040;transition:background .15s ease,transform .15s ease}.navcard:hover{background:var(--bg-tertiary)}.navcard .ic{color:var(--brand-primary)}.navcard .lbl{color:var(--text-primary);font-weight:650;font-size:15px}.navcard .sub{color:var(--text-muted);font-size:12px}.navcard.pop{border-color:color-mix(in srgb,var(--brand-pop) 50%,transparent)}.navcard.pop .ic{color:var(--brand-pop)}.navcard.span2{grid-column:1 / -1;flex-direction:row;align-items:center}.navcard.span2 .ic{flex:none}.chip{display:inline-flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--brand-primary) 16%,transparent);color:var(--brand-primary);border:1px solid color-mix(in srgb,var(--brand-primary) 30%,transparent);border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.chip.amber{background:color-mix(in srgb,var(--brand-pop) 16%,transparent);color:var(--brand-pop);border-color:color-mix(in srgb,var(--brand-pop) 32%,transparent)}.chip.muted{background:var(--bg-tertiary);color:var(--text-muted);border-color:transparent}.kv{display:flex;gap:8px;font-size:14px;padding:5px 0}.kv .k{color:var(--text-muted);min-width:92px;flex:none}.kv .v{color:var(--text-secondary)}ul.clean{list-style:none;padding:0;margin:8px 0 0}ul.clean li{padding:4px 0 4px 18px;position:relative;font-size:14px}ul.clean li:before{content:"";position:absolute;left:2px;top:11px;width:6px;height:6px;border-radius:2px;background:var(--brand-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--radius-lg);font-weight:650;font-size:15px;cursor:pointer;border:1px solid transparent;background:var(--bg-tertiary);color:var(--text-primary);width:100%}.btn.primary{background:var(--brand-primary);color:var(--text-on-accent)}.btn.pop{background:var(--brand-pop);color:var(--text-on-accent)}.btn.ghost{background:transparent;border-color:var(--border-color)}.btn:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.maplink{font-size:13px;font-weight:600}.hours{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.hours span{font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);border-radius:6px;padding:2px 7px}details.acc{border:1px solid color-mix(in srgb,var(--border-color) 45%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-secondary) 60%,transparent);margin-bottom:8px;overflow:hidden}details.acc>summary{list-style:none;cursor:pointer;padding:13px 14px;font-weight:600;color:var(--text-primary);font-size:14px;display:flex;gap:10px;align-items:flex-start}details.acc>summary::-webkit-details-marker{display:none}details.acc>summary:after{content:"+";margin-left:auto;color:var(--text-muted);font-size:18px;line-height:1}details.acc[open]>summary:after{content:"–"}details.acc .acc-body{padding:0 14px 14px;font-size:14px;color:var(--text-secondary)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:color-mix(in srgb,var(--bg-secondary) 94%,transparent);backdrop-filter:blur(8px);border-top:1px solid color-mix(in srgb,var(--border-color) 60%,transparent);display:flex}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);font-size:11px;font-weight:600;min-height:44px}.tabbar a.active{color:var(--brand-primary)}.tabbar a.active.qr{color:var(--brand-pop)}.tabbar svg{width:22px;height:22px}.filterbar{position:sticky;top:51px;z-index:15;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 4px;padding:10px 16px;background:color-mix(in srgb,var(--bg-primary) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb,var(--border-color) 40%,transparent)}.filterbar::-webkit-scrollbar{display:none}.fchip{flex:none;min-height:38px;padding:0 15px;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:13px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap}.fchip.on{background:var(--brand-primary);color:var(--text-on-accent);border-color:transparent}.fchip.deal.on{background:var(--brand-pop)}.fchip:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.daypill{flex:none;min-width:52px;min-height:52px;padding:5px 10px;border-radius:14px;border:1px solid var(--border-color);background:var(--bg-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:var(--text-secondary);cursor:pointer;text-decoration:none}.daypill .dow{font-size:11px;color:var(--text-muted);font-weight:600}.daypill .dnum{font-size:17px;font-weight:750;color:var(--text-primary);line-height:1}.daypill.on{background:var(--brand-primary);border-color:transparent}.daypill.on .dow,.daypill.on .dnum{color:var(--text-on-accent)}details.day{border:1px solid color-mix(in srgb,var(--border-color) 45%,transparent);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--bg-secondary) 70%,transparent);margin-bottom:10px;overflow:hidden}details.day>summary{list-style:none;cursor:pointer;padding:14px;display:flex;align-items:center;gap:12px}details.day>summary::-webkit-details-marker{display:none}details.day .d-date{flex:none;width:46px;text-align:center}details.day .d-date .dow{font-size:11px;color:var(--text-muted);font-weight:700;text-transform:uppercase}details.day .d-date .dnum{font-size:22px;font-weight:800;color:var(--text-primary);line-height:1}details.day .d-main{flex:1;min-width:0}details.day .d-main .d-act{color:var(--text-primary);font-weight:700;font-size:15px}details.day .d-main .d-time{color:var(--text-muted);font-size:12.5px;margin-top:2px}details.day>summary .caret{color:var(--text-muted);font-size:18px;flex:none}details.day[open]>summary .caret{transform:rotate(180deg)}details.day .day-body{padding:0 14px 14px}.todaytag{background:color-mix(in srgb,var(--brand-pop) 18%,transparent);color:var(--brand-pop);border:1px solid color-mix(in srgb,var(--brand-pop) 35%,transparent);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;flex:none}.ctxbox{background:var(--bg-tertiary);border-radius:var(--radius-lg);padding:12px;margin-top:10px}.ctxbox .ctxt{font-size:12px;font-weight:700;color:var(--brand-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.qrthumb{display:inline-flex;align-items:center;gap:10px;margin-top:10px;background:#fff;border:none;border-radius:var(--radius-lg);padding:8px 12px 8px 8px;cursor:pointer;width:100%}.qrthumb img{width:64px;height:64px;border-radius:6px;image-rendering:pixelated}.qrthumb .qtt{text-align:left}.qrthumb .qtt b{color:#0f1417;font-size:13.5px;display:block}.qrthumb .qtt span{color:#475569;font-size:12px}.lightbox{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:24px;background:#000c}.lightbox.open{display:flex}.lightbox .lb-panel{background:#fff;border-radius:18px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:92vw}.lightbox .lb-range{color:#04140f;font-weight:700;font-size:14px;background:#fde68a;border-radius:999px;padding:4px 14px}.lightbox .lb-img{width:min(80vw,360px);height:auto;image-rendering:pixelated}.lightbox .lb-hint{color:#475569;font-size:12px}.daynav{display:flex;align-items:center;gap:10px;margin:6px 0 12px}.daynav .nav-btn{flex:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);display:grid;place-items:center;cursor:pointer}.daynav .nav-btn[disabled]{opacity:.35;cursor:default}.daynav .nav-title{flex:1;text-align:center}.daynav .nt-day{font-size:18px;font-weight:750;color:var(--text-primary)}.daynav .nt-sub{font-size:12px;color:var(--text-muted)}.daypill{position:relative}.daypill.today:after{content:"";position:absolute;top:5px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--brand-pop)}.daypill.on.today:after{background:var(--text-on-accent)}.metropass{display:flex;align-items:center;gap:12px;width:100%;border:none;cursor:pointer;text-align:left;background:#fff;border-radius:var(--radius-lg);padding:8px;margin-bottom:14px}.metropass img{width:58px;height:58px;image-rendering:pixelated;border-radius:6px;flex:none}.metropass b{color:#0f1417;font-size:13.5px;display:block}.metropass span{color:#475569;font-size:12px}.event{display:flex;gap:12px;padding-bottom:16px;position:relative}.event:not(:last-child):before{content:"";position:absolute;left:5px;top:15px;bottom:0;width:2px;background:color-mix(in srgb,var(--border-color) 70%,transparent)}.event .ev-dot{flex:none;width:12px;height:12px;border-radius:50%;margin-top:4px;background:var(--brand-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary) 18%,transparent);z-index:1}.event .ev-body{flex:1;min-width:0}.event .ev-time{font-size:12px;font-weight:700;color:var(--brand-primary)}.event .ev-title{color:var(--text-primary);font-weight:650;font-size:15px;margin-top:1px}.event .ev-detail{font-size:13.5px;color:var(--text-secondary);margin-top:3px}.travel{display:inline-flex;align-items:center;gap:8px;margin-top:9px;background:var(--bg-tertiary);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600;color:var(--text-primary);min-height:36px}.travel svg{width:15px;height:15px;color:var(--brand-primary);flex:none}.travel .tarrow{color:var(--brand-primary);margin-left:2px}.note{font-size:13px;color:var(--text-muted)}.callout{border-left:3px solid var(--brand-pop);background:color-mix(in srgb,var(--brand-pop) 9%,transparent);border-radius:0 var(--radius) var(--radius) 0;padding:10px 12px;font-size:13.5px;margin:12px 0}.callout strong{color:var(--text-primary)}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
