:root{--canvas:#f3eadc;--bg:#fff7ec;--surface:#fff;--surface-2:#fffbf5;--line:#e8dfd2;--line-2:#d9cdbd;--ink:#1a140e;--ink-2:#4a433b;--ink-3:#6b6358;--on-photo:#fff7ec;--accent:#b5502a;--on-accent:#fff;--accent-ink:#9c4321;--accent-soft:#f6e0d4;--success:#2f7a45;--success-soft:#dcefe1;--danger:#c2333f;--danger-soft:#f8dddf;--placeholder:#efe6d8;--placeholder-2:#e8ddcc;--scrim:linear-gradient(180deg, #14100b00 35%, #14100bc7 100%);--shadow-1:0 1px 2px #1a140e0f, 0 4px 12px #1a140e0f;--shadow-2:0 8px 24px #1a140e1a, 0 24px 48px #1a140e1a;--r-sm:8px;--r-md:12px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:56px;--tap:44px;--font-display:"Bricolage Grotesque", "Inter", system-ui, sans-serif;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--fs-display-xl:40px;--lh-display-xl:44px;--fs-display-l:28px;--lh-display-l:32px;--fs-title:20px;--lh-title:26px;--fs-body:16px;--lh-body:24px;--fs-body-s:14px;--lh-body-s:20px;--fs-label:13px;--lh-label:18px;--fs-caption:12px;--lh-caption:16px;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--z-content:1;--z-sticky:10;--z-sheet:60;--z-modal:100;--bg-elev:var(--surface-2);--ink-4:var(--ink-3);--c-amber:var(--accent);--c-amber-ink:var(--on-accent);--c-amber-soft:var(--accent-soft);--c-red:var(--danger);--c-red-ink:var(--danger);--c-red-soft:var(--danger-soft);--c-green:var(--success);--c-green-ink:var(--success);--c-green-soft:var(--success-soft);--c-blue:var(--ink-2);--c-blue-ink:var(--ink);--c-blue-soft:var(--surface-2);--c-violet:var(--ink-2);--c-violet-ink:var(--ink);--c-violet-soft:var(--surface-2);--c-coral:var(--accent);--primary:var(--accent);--good:var(--success);--info:var(--ink-2);--shadow-xs:var(--shadow-1);--shadow-sm:var(--shadow-1);--shadow-md:var(--shadow-1);--shadow-lg:var(--shadow-2)}[data-theme=dark]{--canvas:#0a0805;--bg:#14100b;--surface:#211b14;--surface-2:#1a150f;--line:#332a20;--line-2:#463a2d;--ink:#fff6e6;--ink-2:#d9cfbe;--ink-3:#a89d8c;--accent:#e07a52;--on-accent:#1a140e;--accent-ink:#eb9572;--accent-soft:#3b2216;--success:#6bc283;--success-soft:#1d3424;--danger:#f0757e;--danger-soft:#3d1c1f;--placeholder:#2a231b;--placeholder-2:#322a20;--shadow-1:0 1px 2px #0006;--shadow-2:0 8px 24px #00000073, 0 24px 48px #00000080}*,:before,:after{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{width:100%;height:100%;margin:0;padding:0}body{font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);background:var(--canvas);color:var(--ink);overscroll-behavior:none;text-rendering:optimizelegibility}button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;padding:0;font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{font-family:inherit}a{color:var(--accent-ink)}a:hover{color:var(--ink)}.display{font-family:var(--font-display);letter-spacing:-.035em;font-weight:700;line-height:1.1}.display-md{font-family:var(--font-display);letter-spacing:-.03em;font-weight:700;line-height:1.15}.headline{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600;line-height:1.2}.mono{font-family:var(--font-mono);letter-spacing:0;font-feature-settings:"tnum" 1}.eyebrow{font-family:var(--font-ui);font-size:var(--fs-label);line-height:var(--lh-label);letter-spacing:0;text-transform:none;color:var(--ink-3);font-weight:500}.num{font-feature-settings:"tnum" 1}.screen{background:var(--bg);color:var(--ink);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.screen-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;overflow:hidden auto}.screen-scroll::-webkit-scrollbar{display:none}.content-col{width:100%;max-width:720px;margin:0 auto}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}.sub-hdr{z-index:20;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.sub-hdr-eyebrow{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.sub-hdr-title{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:600;overflow:hidden}.sub-hdr-step{color:var(--ink-3);white-space:nowrap;font-size:12px;font-weight:600}.sec-label{color:var(--ink-3);font-size:13px;font-weight:500}.sec-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-display-l);line-height:var(--lh-display-l);letter-spacing:-.03em;margin:0}.h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700;line-height:28px}.btn{border-radius:var(--r-pill);cursor:pointer;letter-spacing:-.01em;height:52px;transition:transform .12s var(--ease-out), background .16s var(--ease-out);-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-family:inherit;font-size:15px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{background:var(--line-2);color:var(--ink-3);cursor:not-allowed;transform:none}.btn-primary{background:var(--ink);color:var(--bg)}.btn-accent{background:var(--accent);color:var(--on-accent)}.btn-good{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line-2)}.btn-text{height:44px;color:var(--accent-ink);background:0 0;padding:0 4px}.btn-block{width:100%}.btn-sm{height:44px;padding:0 16px;font-size:14px}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:transform .12s var(--ease-out), background .15s var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:active{transform:scale(.94)}.icon-btn:hover{background:var(--surface-2)}.icon-btn-round{width:var(--tap);height:var(--tap);border-radius:var(--r-pill);color:#1a140e;cursor:pointer;transition:transform .12s var(--ease-out);background:#fff7ecf2;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn-round:active{transform:scale(.93)}.card{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--line)}.card-soft{background:var(--surface-2);border-radius:var(--r-lg);border:1px solid var(--line)}.photo-tile{border-radius:var(--r-lg);text-align:left;color:var(--on-photo);isolation:isolate;position:relative;overflow:hidden}.photo-tile>.scrim{background:var(--scrim);position:absolute;inset:0}.photo-tile>.photo-text{flex-direction:column;gap:4px;padding:16px;display:flex;position:absolute;bottom:0;left:0;right:0}.photo-pill{border-radius:var(--r-pill);color:#1a140e;background:#fff7ecf2;align-items:center;gap:6px;height:28px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.select-row{text-align:left;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);width:100%;transition:background .15s var(--ease-out), border-color .15s var(--ease-out);align-items:center;gap:14px;padding:16px;display:flex}.select-row[aria-pressed=true],.select-row.on{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.radio-dot{border-radius:var(--r-pill);border:2px solid var(--line-2);flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.radio-dot:after{content:"";border-radius:var(--r-pill);background:0 0;width:10px;height:10px}.select-row[aria-pressed=true] .radio-dot,.select-row.on .radio-dot{border-color:var(--accent)}.select-row[aria-pressed=true] .radio-dot:after,.select-row.on .radio-dot:after{background:var(--accent)}.stepper{border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--surface);align-items:center;gap:4px;padding:4px;display:flex}.stepper>button{border-radius:var(--r-pill);width:40px;height:40px;color:var(--ink);justify-content:center;align-items:center;font-size:22px;line-height:1;display:flex}.stepper>button:disabled{color:var(--line-2);cursor:not-allowed}.stepper>span{text-align:center;min-width:28px;font-size:16px;font-weight:600}.faces{display:flex}.faces>*{border-radius:var(--r-pill);border:2px solid var(--surface);flex-shrink:0;overflow:hidden}.faces>*+*{margin-left:-8px}.cta-bar{z-index:50;background:var(--surface);border-top:1px solid var(--line);padding:14px 20px max(14px, env(safe-area-inset-bottom));position:absolute;bottom:0;left:0;right:0}.cta-bar-inner{align-items:center;gap:16px;max-width:720px;margin:0 auto;display:flex}.cta-bar-eyebrow{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.cta-bar-value{font-family:var(--font-display);letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:26px}.bento{border-radius:var(--r-lg);isolation:isolate;cursor:pointer;transition:transform .2s var(--ease-out);background:var(--surface);border:1px solid var(--line);min-height:120px;color:var(--ink);flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:relative;overflow:hidden}.bento:active{transform:scale(.98)}.bento .bento-title{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.1}.bento .bento-meta{color:var(--ink-3);font-size:13px}.bento-deco{display:none}.bento-red,.bento-green,.bento-amber,.bento-blue,.bento-violet,.bento-soft{background:var(--surface);color:var(--ink)}.bento-ink{background:var(--ink);color:var(--bg);border-color:var(--ink)}.bento-ink .eyebrow,.bento-ink .bento-meta{color:#fff7ecb3}.chip{height:var(--tap);border-radius:var(--r-pill);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);cursor:pointer;transition:background .15s var(--ease-out), color .15s var(--ease-out);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}.chip:hover{background:var(--surface-2)}.chip.active,.chip[aria-pressed=true],.chip[aria-selected=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip-sm{height:36px;padding:0 14px;font-size:13px;font-weight:500}.chip-ghost{border-color:var(--line-2);background:0 0}.segmented{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented>button{height:var(--tap);border-radius:var(--r-pill);color:var(--ink);font-size:15px;font-weight:600}.segmented>button[aria-selected=true]{background:var(--ink);color:var(--bg)}.pill{border-radius:var(--r-pill);text-transform:none;letter-spacing:0;height:24px;font-size:12px;font-weight:600;font-family:var(--font-ui);align-items:center;gap:4px;padding:0 10px;display:inline-flex}.pill-red{background:var(--danger-soft);color:var(--danger)}.pill-green{background:var(--success-soft);color:var(--success)}.pill-amber{background:var(--accent-soft);color:var(--accent-ink)}.pill-blue,.pill-violet{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}.pill-mute{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line)}.live-dot{align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.live-dot:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 4px var(--accent-soft)}50%{box-shadow:0 0 0 7px #0000}}.ride-pulse{animation:1.8s ease-in-out infinite ridePulse}@keyframes ridePulse{0%,to{box-shadow:0 0 0 4px var(--accent-soft)}50%{box-shadow:0 0 0 10px #0000}}.tabbar{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);height:68px;box-shadow:var(--shadow-2);z-index:var(--z-sheet);align-items:stretch;gap:4px;padding:6px;display:flex;position:absolute}.tabbar-item{cursor:pointer;color:var(--ink-3);transition:background .22s var(--ease-out), color .22s var(--ease-out);border-radius:22px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:600;display:flex;position:relative}.tabbar-item.active{background:var(--ink);color:var(--bg)}.tabbar-item .tab-badge{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:8px;height:8px;position:absolute;top:9px;right:calc(50% - 16px)}.sheet-backdrop{z-index:var(--z-sheet);background:#1a140e73;animation:.2s both fade;position:absolute;inset:0}.sheet{background:var(--bg);border-radius:var(--r-xl) var(--r-xl) 0 0;z-index:calc(var(--z-sheet) + 1);padding:8px 20px max(28px, env(safe-area-inset-bottom));animation:sheetIn .32s var(--ease-out) both;max-height:86%;box-shadow:var(--shadow-2);position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.sheet::-webkit-scrollbar{display:none}.sheet-handle{border-radius:var(--r-pill);background:var(--line-2);width:40px;height:4px;margin:8px auto 16px}.input{border:1px solid var(--line-2);background:var(--surface);width:100%;height:52px;color:var(--ink);border-radius:14px;outline:none;padding:0 16px;font-family:inherit;font-size:16px;transition:border-color .15s}.input::placeholder{color:var(--ink-3)}.input:focus,.input:focus-within{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.input-label{color:var(--ink);text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;font-family:var(--font-ui);margin-bottom:8px;display:block}.input-row{background:var(--surface);border:1px solid var(--line-2);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex}.seat{height:var(--tap);background:var(--surface);border:1px solid var(--line-2);min-width:44px;color:var(--ink);cursor:pointer;transition:background .16s var(--ease-out), border-color .16s var(--ease-out);font-size:13px;font-weight:600;font-family:var(--font-ui);border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative}.seat.taken{background:var(--placeholder);border-color:var(--placeholder);color:var(--ink-3);cursor:not-allowed}.seat.selected{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.seat.female{background:var(--surface);border-color:var(--line-2);color:var(--ink)}.dashed{border:none;border-top:2px dashed var(--line-2);margin:0}.ticket-perforation{background:var(--surface);height:16px;position:relative}.ticket-perforation:before,.ticket-perforation:after{content:"";background:var(--bg);border-radius:50%;width:20px;height:20px;position:absolute;top:-2px}.ticket-perforation:before{left:-10px}.ticket-perforation:after{right:-10px}.ticket-perforation .dash{border-top:2px dashed var(--line-2);position:absolute;top:8px;left:20px;right:20px}.barcode{align-items:stretch;gap:1.5px;height:56px;display:flex}.barcode>i{background:var(--ink);display:block}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.anim-slide-up{animation:slideUp .32s var(--ease-out) both}.anim-fade{animation:.24s both fade}.anim-scale{animation:scaleIn .28s var(--ease-spring) both}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.live-dot:before{animation:none}}.imgph{background:repeating-linear-gradient(135deg, var(--placeholder) 0 10px, var(--placeholder-2) 10px 20px);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.app{background:var(--canvas);width:100%;height:100dvh;color:var(--ink);font-family:var(--font-ui);display:flex;overflow:hidden}.sidebar{background:var(--surface-2);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:256px;padding:26px 16px 20px;display:flex}.sidebar-brand{padding:6px 12px 24px}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar-spacer{flex:1}.nav-item{text-align:left;width:100%;height:50px;color:var(--ink-3);letter-spacing:-.01em;cursor:pointer;transition:background .16s var(--ease-out), color .16s var(--ease-out);border-radius:16px;align-items:center;gap:14px;padding:0 16px;font-size:15px;font-weight:600;display:flex;position:relative}.nav-item:hover{background:var(--surface);color:var(--ink)}.nav-item.active{background:var(--ink);color:var(--bg)}.nav-item .nav-badge{background:var(--accent);border:2px solid var(--surface-2);border-radius:50%;width:8px;height:8px;position:absolute;top:11px;left:32px}.sidebar-profile{cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--surface);width:100%;transition:background .16s var(--ease-out);border-radius:16px;align-items:center;gap:12px;margin-top:6px;padding:10px 12px;display:flex}.sidebar-profile:hover{background:var(--surface-2)}.sidebar-avatar{flex-shrink:0;width:40px;height:40px}.app-main{flex:1;justify-content:center;align-items:stretch;min-width:0;padding:22px;display:flex;position:relative}.viewport{background:var(--bg);border-radius:var(--r-xl);width:100%;max-width:1060px;height:100%;box-shadow:var(--shadow-2);border:1px solid var(--line);position:relative;overflow:hidden}.viewport-wide{max-width:1060px}.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.home-hot{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:280px;grid-auto-flow:column;gap:12px;display:grid;overflow-x:auto}.home-hot::-webkit-scrollbar{display:none}.home-hero{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.home-hero>.hero-main{aspect-ratio:4/5}.home-hero>.hero-side{display:none}.home-nearby{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.tickets-grid{flex-direction:column;gap:10px;display:flex}.span-all,.span-hire{grid-column:1/-1}@media (width>=901px){.tabbar{display:none}.home-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.span-hire{grid-column:span 2}.home-hot{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;overflow:visible}.home-hot>*{min-width:0!important}.home-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.home-hero>.hero-main{aspect-ratio:6/5}.home-hero>.hero-side{display:block}.home-nearby{grid-template-columns:repeat(2,minmax(0,1fr))}.tickets-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.tabbar-pad{height:24px!important}}@media (width<=900px){.sidebar{display:none}.app-main{padding:0}.viewport,.viewport-wide{max-width:none;box-shadow:none;border:none;border-radius:0}}.row{align-items:center;gap:12px;display:flex}.col{flex-direction:column;gap:12px;display:flex}.spread{justify-content:space-between;align-items:center;display:flex}.grow{flex:1}.center{justify-content:center;align-items:center;display:flex}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dot{background:var(--ink-3);vertical-align:middle;border-radius:50%;width:3px;height:3px;margin:0 4px;display:inline-block}.dock{left:16px;right:16px;bottom:max(16px, env(safe-area-inset-bottom));background:var(--surface);border-radius:var(--r-pill);box-shadow:var(--shadow-2);border:1px solid var(--line);z-index:var(--z-sticky);align-items:center;gap:10px;padding:6px;display:flex;position:absolute}.input[aria-invalid=true]{border-color:var(--danger)}
