/* Physical controls, a single stage and a clear first action. */
.ride-hud{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#122b25;color:#f6eddb;border-bottom:1px solid #e8cf9433;font-size:12px}.ride-hud a{color:inherit;text-decoration:none}.ride-logo{font:900 28px var(--body);letter-spacing:-2px}.ride-logo span{display:inline-block;background:#ed6849;color:#162c25;font-size:15px;margin-left:7px;padding:2px 5px;letter-spacing:0;transform:rotate(-6deg)}
.ride-shell{--ride-accent:#edb965;--ride-ink:#192a25;--ride-paper:#f3ebd8;min-height:calc(100svh - 66px);padding:26px max(24px,calc((100vw - 1280px)/2));color:var(--ride-paper);background:radial-gradient(ellipse at 50% 0,#3c5440 0,#1a3028 62%,#112820 100%);overflow:hidden;isolation:isolate}.ride-shell:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.07;background:repeating-linear-gradient(90deg,#eee 0 1px,transparent 1px 90px)}
.ride-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:1280px;margin:0 auto 25px}.ride-eyebrow{font:11px var(--mono);letter-spacing:.12em;color:var(--ride-accent);margin:0 0 10px}.ride-heading h1{font:800 clamp(24px,3vw,40px)/1.15 var(--body);margin:0;letter-spacing:-.03em}.ride-neon{font:900 clamp(30px,5vw,66px)/.88 var(--body);letter-spacing:-.06em;max-width:280px;text-align:right;color:var(--ride-accent);transform:rotate(-4deg);text-shadow:2px 3px #0b211d,3px 4px #d8d28c55}
.ride-arena{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:32px;align-items:start;max-width:1280px;margin:auto}.ride-stage-wrap{min-width:0;padding-top:15px;position:relative}.ride-screen{position:relative;border:12px solid #273731;border-radius:20px;background:#131e19;box-shadow:inset 0 0 0 2px #647468,0 6px 0 #0f2018,0 22px 45px #00150b66;overflow:hidden;transform:perspective(1200px) rotateY(2deg)}.screen-top,.screen-sub{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;color:#d3d5b1;background:#152720;font:10px var(--mono)}.screen-sub{height:40px;font:12px var(--body)}.screen-led{height:6px;width:6px;flex:none;border-radius:50%;background:#f09b50;box-shadow:0 0 10px #ffc571}.ride-screen canvas{width:100%;aspect-ratio:16/9;display:block;background:#17271f}.ride-screen:after{content:'';position:absolute;inset:30px 0 40px;pointer-events:none;background:linear-gradient(120deg,#fff5 0,transparent 18% 94%,#fff1 100%);opacity:.12}.ride-media-note{margin:15px 0 0;text-align:center;color:#b6c1b2;font-size:10px;line-height:1.5}.ride-live-notice{font-size:13px;min-height:20px;color:#e8d3a7;line-height:1.6;margin:14px 0}.ride-controls{min-width:0}
.film-console,.foley-console,.plating-console{position:relative;padding:25px;border:1px solid #eff1db55;border-radius:18px;background:linear-gradient(160deg,#e3d8bc,#b9ad91);color:#25362c;box-shadow:0 7px 0 #6f6b55,0 18px 32px #071d1977,inset 0 1px 0 #fff9;transform:perspective(1300px) rotateY(-1deg)}.console-label{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:700;margin-bottom:19px}.console-label b{white-space:nowrap;font:11px var(--mono);padding:3px 7px;border:1px solid #5f7358;border-radius:3px}.console-tip{font-size:12px;line-height:1.65;margin:17px 0;color:#485342}.film-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;background:#25352b;padding:12px;border:1px solid #e7e0c0;border-radius:10px;box-shadow:inset 0 4px 12px #06190c88}.film-slot{min-width:0;position:relative;background:#15251d;color:#b4c0a2;border:1px dashed #727e64;border-radius:6px;padding:15px 5px 8px;cursor:pointer;min-height:109px}.film-slot.selected{outline:2px solid #f3b958;outline-offset:3px;color:#ffe8af}.film-slot b{display:block;font-size:10px;margin-top:7px;font-weight:500}.slot-index{position:absolute;left:5px;top:3px;font:8px var(--mono);color:#afbf9b}.slot-hole{display:block;font:30px var(--body);line-height:50px}.shot-thumbnail{display:block;width:100%;aspect-ratio:16/9;background-image:url('../public/assets/ride-film-sheet-v1.webp');background-size:300% 300%;background-position:var(--frame-x) var(--frame-y);background-color:#45644c;border-radius:2px}.film-slot.filled .shot-thumbnail{animation:film-load .22s ease-out}.shot-drawer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.shot-card{padding:7px 7px 9px;min-width:0;background:#faf0d8;border:1px solid #6f755b;border-radius:3px;box-shadow:0 3px #8d9673;transform:rotate(-2deg);cursor:pointer;transition:transform .16s,box-shadow .16s;color:#1d3025}.shot-card:nth-child(2){transform:rotate(2deg)}.shot-card:nth-child(3){transform:rotate(-1deg)}.shot-card:hover,.shot-card:focus-visible{transform:translateY(-5px) rotate(0);box-shadow:0 7px #82916b}.shot-card b{display:block;font-size:11px;margin-top:7px}.shot-card small{font-size:9px;color:#7f6247}.mood-switch{display:flex;gap:5px;margin:21px 0 15px}.ride-button{font:600 12px var(--body);border:1px solid #526245;background:#ece6d1;color:#24372a;border-radius:6px;padding:10px 12px;min-height:44px;cursor:pointer;box-shadow:0 3px #899279;transition:transform .14s,box-shadow .14s,background .14s}.ride-button:hover:not(:disabled){background:#fff4d1;transform:translateY(-1px)}.ride-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #899279}.ride-button[aria-pressed=true]{background:#324b39;color:#fff1ce;border-color:#304a35;box-shadow:inset 0 2px 4px #03130766}.ride-button:disabled{opacity:.45;cursor:default;filter:saturate(.3)}.ride-primary{display:block;width:100%;background:#eaa753;border-color:#674c2c;color:#192b1f;font-size:15px;font-weight:800;min-height:52px;box-shadow:0 5px #88613d;margin-top:14px}.ride-primary:hover:not(:disabled){background:#ffc66d}.mood-switch .ride-button{flex:1;font-size:10px;padding:9px 3px}.console-screw{position:absolute;bottom:10px;width:6px;height:6px;border-radius:50%;background:#8a927f;box-shadow:inset 1px 1px 2px #485741}.screw-left{left:10px}.screw-right{right:10px}
.ride-voicelab{background:radial-gradient(ellipse at 60% 0,#35455b,#1e2c38 70%)}.ride-voicelab .ride-screen{border-color:#2c3d46}.ride-object-stage{position:relative;border-radius:15px;overflow:hidden;background:#20382e;box-shadow:0 8px 0 #111f18,0 22px 38px #06150c66;border:1px solid #b8c1a766;touch-action:none}.ride-object-stage canvas{width:100%;height:100%;display:block;touch-action:none;outline-offset:-5px}.prop-stage{height:255px;margin-top:22px}.stage-corner{position:absolute;left:14px;bottom:13px;font:9px var(--mono);letter-spacing:.07em;color:#e4e6ce;padding:6px 8px;background:#15231caf;border-radius:4px;pointer-events:none}.object-fallback{position:absolute;inset:15%;background:#f2e8cf;color:#234030;padding:20px;font-size:13px;line-height:1.7}.object-fallback[hidden]{display:none}.prop-rack{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.prop-rack .ride-button{padding:7px 2px}.prop-rack b{display:block;font-size:10px}.prop-rack small{font-size:9px;opacity:.6}.prop-symbol{display:block;font-size:30px;line-height:45px;text-shadow:1px 3px #9a795b66}.prop-slipper{color:#b35736}.prop-bag{color:#b68821}.prop-rice{color:#4f8178}.prop-zip{color:#426589}.prop-celery{color:#4d7e32}.prop-rack [aria-pressed=true] .prop-symbol{color:#ecd596}.foley-cue-track{position:relative;display:flex;justify-content:space-between;gap:5px;border-radius:6px;background:#263d36;padding:14px 9px;margin:18px 0;color:#c8d7bb;overflow:hidden}.cue-beat{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;font-size:10px;gap:5px}.cue-beat i{width:23px;height:23px;display:grid;place-items:center;font:11px var(--mono);border:1px solid #93a88a;border-radius:50%;background:#314c3d}.cue-beat.is-current i{background:#f2bc67;color:#1e352c;box-shadow:0 0 0 6px #ebba6633}.cue-playhead{position:absolute;left:0;top:0;height:100%;width:2px;background:#f6d588;opacity:.6;transform:translateX(var(--playhead,0px))}.ride-duo{display:flex;gap:12px;align-items:stretch}.ride-duo .ride-button{flex:1}.ride-duo .ride-primary{margin:0}.ride-hit{border-radius:50%;height:95px;max-width:100px!important;background:#c8754f;color:#fff2d9;border:5px solid #635f45;box-shadow:0 6px #6f4b34,inset 0 0 0 2px #ffb68988;font-size:14px}.ride-quiet-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px}.ride-quiet-actions .ride-button{background:transparent;box-shadow:none;border-color:#6a7d5c77;font-size:10px;padding:6px 10px}.ride-quiet-actions a{color:inherit;font-size:11px}.ride-bottom{max-width:1280px;margin:35px auto 0;display:flex;justify-content:space-between;align-items:center;gap:12px;font:9px var(--mono);letter-spacing:.06em;color:#b8c6b0}.ride-bottom .ride-button{color:#d8ddc4;background:none;border:1px solid #62775a;box-shadow:none;font-size:11px}
.ride-foodlab{background:radial-gradient(ellipse at 30% 0,#5b7149,#203a2e 75%)}.plate-stage{height:470px;background:#b9c58c;box-shadow:0 7px 0 #728256,0 23px 45px #051c1266;border:7px solid #91a173}.plate-camera{display:flex;justify-content:center;gap:10px;margin-top:20px}.plate-camera .ride-button{background:#cdd7a8;box-shadow:0 3px #70825e}.plating-steps{display:flex;gap:5px}.plating-steps .ride-button{flex:1;padding:8px 3px;font-size:11px}.plating-steps i{display:inline-block;font:9px var(--mono);margin-right:4px;opacity:.6}.plating-presets{display:flex;gap:6px}.plating-presets .ride-button{flex:1;font-size:10px;padding:10px 3px}.food-selector{display:flex;gap:6px;margin-top:24px}.food-selector .ride-button{flex:1}.plate-nudges{display:flex;gap:5px;margin-top:10px;justify-content:center}.plate-nudges .ride-button{min-width:42px;font-size:18px}.ride-field{display:block;font-size:11px;line-height:1.7;margin-top:20px}.ride-field input,.menu-receipt input,.friend-price input{display:block;width:100%;padding:12px;border:1px solid #7e8c6b;background:#fff8e6;color:#243b2b;border-radius:5px;font:16px var(--body);box-sizing:border-box}.service-switch{display:grid;gap:9px}.service-switch .ride-button{text-align:left}.service-switch b{display:block;font-size:12px}.service-switch small{display:block;font-size:11px;line-height:1.6;margin-top:5px;font-weight:400}.menu-receipt{margin-top:20px;background:#fdf4df;padding:23px 19px;border:1px solid #9c9c7e;box-shadow:4px 4px #74775d44;transform:rotate(-1deg);text-align:center}.menu-receipt>span{font:8px var(--mono);letter-spacing:.1em}.menu-receipt h2{font-size:25px;margin:21px 0 13px}.menu-receipt p{font-size:12px;line-height:1.8}.menu-receipt label{display:block;font-size:11px;margin-top:20px}.menu-receipt label>span{display:flex;align-items:center;gap:7px;justify-content:center;font-size:28px;margin-top:8px}.menu-receipt input{max-width:100px;font-size:26px;text-align:center}.menu-receipt>small{display:block;font-size:10px;line-height:1.7;margin-top:15px;color:#647353}
.ride-ticket{position:relative;background:#f6e8c6;color:#22372a;border-radius:8px;padding:30px 27px 25px;box-shadow:0 6px #aa9873,0 20px 35px #05190e66;transform:rotate(.6deg);border:1px solid #e1cd9f;animation:ticket-drop .45s ease-out}.ride-ticket .ride-eyebrow{color:#9e5237;margin-top:4px}.ticket-hole{display:block;width:70px;height:8px;border-radius:8px;background:#20372b;position:absolute;top:9px;left:calc(50% - 35px);box-shadow:inset 0 2px #14251d}.ride-ticket h2{font-size:27px;line-height:1.35;letter-spacing:-.03em;margin:15px 0 22px}.ticket-metric{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed #88916e;border-bottom:1px dashed #88916e;padding:16px 0}.ticket-metric small{font-size:11px}.ticket-metric strong{font:800 43px var(--mono)}.ride-ticket>p{font-size:12px;line-height:1.7}.ticket-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ticket-actions .ride-primary{grid-column:1/-1;order:-1;margin:5px 0 9px;font-size:13px}.ticket-actions .ride-button{font-size:11px}.ticket-fold{margin-top:23px;border-top:1px dashed #909977;padding-top:20px}.ticket-fold>p:first-child{font:9px var(--mono);color:#9e5237;letter-spacing:.12em}.ticket-fold b{font-size:13px;line-height:1.7;display:block}.ticket-fold p{font-size:12px;line-height:1.8}.ticket-fold a{font-size:12px;color:#425b3e}.ride-material-status{display:block;font-size:10px;line-height:1.7;color:#72785b;margin-top:18px}.friend-price{padding:14px;background:#e3d7b9;border-radius:5px;font-size:12px}.friend-price input{margin-top:8px}.ride-popup-copy{width:100%;min-height:95px;font:12px var(--body);padding:12px;box-sizing:border-box}.ride-export-preview{display:block;width:100%;max-height:68svh;object-fit:contain}.ride-busy{opacity:.8}.ride-busy button:not([data-ride=cancel-export]),.ride-busy canvas,.ride-busy input{pointer-events:none;opacity:.65}.ride-shell button:focus-visible,.ride-shell a:focus-visible,.ride-shell canvas:focus-visible{outline:3px solid #fbb769;outline-offset:4px}.ride-shell [hidden]{display:none!important}
@keyframes film-load{from{transform:translateY(-12px) scale(.9);opacity:.3}to{transform:none;opacity:1}}@keyframes ticket-drop{from{transform:translateY(-15px) rotate(-2deg);opacity:.2}to{transform:rotate(.6deg);opacity:1}}
@media(min-width:1500px){.ride-arena{gap:45px}.ride-stage-wrap{padding-top:20px}.ride-screen{margin-top:15px}}
@media(max-width:900px){.ride-arena{grid-template-columns:minmax(0,1fr) minmax(310px,.9fr);gap:19px}.ride-shell{padding:23px 20px}.film-console,.foley-console,.plating-console{padding:19px}.ride-neon{font-size:37px;max-width:180px}.plate-stage{height:380px}}
@media(max-width:700px){.ride-hud{height:55px;padding:0 16px;font-size:10px}.ride-logo{font-size:23px}.ride-shell{padding:20px 14px;min-height:calc(100svh - 55px)}.ride-heading{margin-bottom:15px;gap:10px}.ride-heading h1{font-size:24px;max-width:245px}.ride-eyebrow{font-size:8px;margin-bottom:8px}.ride-neon{font-size:24px;max-width:95px;line-height:.98}.ride-arena{display:flex;flex-direction:column;gap:9px}.ride-stage-wrap,.ride-controls{width:100%}.ride-stage-wrap{padding:0}.ride-screen{border-width:8px;border-radius:13px;transform:none}.screen-top{height:24px;font-size:8px;padding:0 10px}.screen-sub{height:31px;font-size:10px;padding:0 10px}.ride-media-note{margin-top:9px;font-size:8px}.ride-live-notice{font-size:11px;margin:8px 0;min-height:15px}.film-console,.foley-console,.plating-console{padding:17px 15px;border-radius:13px;transform:none}.console-label{margin-bottom:14px;font-size:11px}.console-label b{font-size:9px}.film-slots{padding:10px;gap:8px}.film-slot{min-height:87px}.film-slot b{font-size:9px}.slot-hole{font-size:22px;line-height:32px}.console-tip{font-size:11px;margin:13px 0}.shot-drawer{gap:8px}.shot-card{padding:5px 5px 8px}.shot-card b{font-size:10px}.shot-card small{font-size:8px}.mood-switch{margin:15px 0 10px}.ride-primary{font-size:14px;min-height:49px}.ride-bottom{margin-top:28px;gap:5px;font-size:8px}.ride-bottom>span:nth-child(2){display:none}.prop-stage{height:210px;margin-top:15px}.ride-voicelab .ride-screen{max-width:270px;margin:0 auto;transform:rotate(-1deg)}.ride-voicelab .screen-top{height:18px}.ride-voicelab .screen-sub{height:25px}.ride-voicelab .ride-media-note{margin-top:10px}.prop-rack{gap:6px}.prop-symbol{font-size:24px;line-height:33px}.foley-cue-track{margin:14px 0;padding:10px}.ride-hit{height:67px;max-width:105px!important;border-radius:16px;font-size:13px}.plate-stage{height:310px;border-width:5px}.plate-camera{margin-top:13px}.plate-camera .ride-button{font-size:10px;min-height:38px}.ride-ticket{padding:27px 21px 20px;transform:none}.ride-ticket h2{font-size:26px}.ticket-metric strong{font-size:37px}.menu-receipt{padding:18px}.menu-receipt h2{font-size:23px}.stage-corner{font-size:8px}.plating-steps .ride-button{font-size:10px}}
@media(max-width:359px){.ride-shell{padding:17px 10px}.ride-heading h1{font-size:21px}.ride-neon{font-size:21px;max-width:80px}.film-console,.foley-console,.plating-console{padding:14px 11px}.ride-button{padding:9px 8px}.shot-card b{font-size:9px}.plate-stage{height:275px}}
@media(prefers-reduced-motion:reduce){.ride-shell *{animation:none!important;transition:none!important}.ride-screen,.film-console,.foley-console,.plating-console,.ride-ticket{transform:none}}

@media(max-width:700px){.console-tip,.console-label,.shot-card b,.mood-switch .ride-button,.prop-rack b,.plating-steps .ride-button,.ticket-actions .ride-button{font-size:12px}.film-slot b{font-size:11px}.shot-card small,.ride-quiet-actions .ride-button{font-size:11px}.ride-field input{font-size:16px}.ride-live-notice:empty{display:none}}

.ride-stage-wrap,.ride-ticket{scroll-margin-top:18px}
@media(max-width:700px){.ride-voicelab .ride-stage-wrap{display:grid;grid-template-columns:1.45fr 1fr;gap:9px;align-items:start}.ride-voicelab .ride-screen{width:100%;max-width:none;margin:0;border-width:5px;transform:none}.ride-voicelab .prop-stage{height:158px;margin:0}.ride-voicelab .stage-corner{display:none}.ride-voicelab .ride-media-note,.ride-voicelab .ride-live-notice{grid-column:1/-1;margin:0}.ride-voicelab .screen-sub{font-size:9px}.ride-voicelab .object-fallback{inset:4px;padding:8px;font-size:11px}.ride-voicelab .object-fallback .ride-button{font-size:10px;padding:4px}}
