@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800;900;1000&display=swap');
:root{font-family:'Nunito','Trebuchet MS',sans-serif;color:#102638;background:#0b1742;font-size:16px;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-width:320px}[hidden]{display:none!important}button,input,select{font:inherit;color:inherit}button,summary,select{cursor:pointer}button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #067e9c;outline-offset:4px}input[aria-invalid=true]{border-color:#a43020;background:#ffe1cd}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.scenery{position:fixed;inset:0;z-index:-1;background:#10205b url('assets/airport-world.webp') center center/cover no-repeat;overflow:hidden}.cloud-drift{position:absolute;inset:-12px;background:url('assets/airport-world.webp') center center/cover no-repeat;clip-path:polygon(0 0,50% 0,48% 24%,0 22%);mask-image:linear-gradient(#000 60%,transparent);animation:clouds 48s ease-in-out infinite alternate}.lamp-glow{position:absolute;top:0;right:15%;width:35%;height:35%;background:radial-gradient(ellipse at top,rgba(255,170,36,.16),transparent 65%);animation:lamplight 7s ease-in-out infinite;pointer-events:none}
main{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,500px);grid-template-rows:auto 1fr auto;column-gap:54px;max-width:1320px;min-height:100svh;margin:auto;padding:50px 40px 26px}.heading{grid-column:1;align-self:start;justify-self:center;text-align:center;position:relative;z-index:2;max-width:100%;margin:0 0 28px}.heading h1{margin:0;padding:13px 30px 17px;color:#ffe072;background:#3b211a;border:6px solid #59331e;border-radius:12px 8px 17px 8px;box-shadow:0 4px 0 #150f18,inset 0 2px #a3662f,0 8px 16px #020a2670;font-size:clamp(2.2rem,3.8vw,3.6rem);font-weight:1000;line-height:1.1;letter-spacing:-2px;transform:rotate(-1.2deg);text-shadow:2px 3px #18191d}
.decision{grid-column:1;grid-row:2;align-self:start;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;min-width:0}.guide-speech{position:relative;left:36px;background:#fff1cb;border:3px solid #122033;border-radius:49% 46% 43% 48% / 38% 45% 42% 50%;padding:24px 32px;text-align:center;max-width:480px;top:30px;box-shadow:0 4px #08132c40;z-index:2}.guide-speech:after{content:'';position:absolute;bottom:-16px;left:45%;width:25px;height:25px;background:#fff1cb;border-right:3px solid #122033;border-bottom:3px solid #122033;transform:skewY(-30deg) rotate(40deg)}.guide-speech h2{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:1000;line-height:1.13;margin:0}.guide-speech p{font-size:1rem;font-weight:700;line-height:1.35;margin:10px 0 0}.guide-stage{position:relative;width:min(100%,310px);margin-top:-3px;left:45px}.plane{width:100%;aspect-ratio:1;background:url('assets/guide-poses.webp') 0 0/400% 100% no-repeat;transform-origin:50% 78%;filter:drop-shadow(0 8px 3px #080d2c55)}.decision[data-mood=happy] .plane{background-position:33.3333% 0}.decision[data-mood=meh] .plane{background-position:66.6667% 0}.decision[data-mood=sad] .plane{background-position:100% 0}.decision.react[data-mood=happy] .plane{animation:happy-bounce .85s ease-out}.decision.react[data-mood=sad] .plane,.decision.react[data-mood=meh] .plane{animation:head-shake .65s ease-in-out}.decision.react .guide-speech{animation:speech-pop .3s ease-out}.decision.wiggle .plane{animation:wing-wiggle 1.1s ease-in-out}.decision[data-mood=sad] h2{color:#8d311e}
.guest-runway{position:absolute;left:10px;top:62%;width:155px;height:auto;pointer-events:none;z-index:0}.guest-plane{width:100%;height:auto;background:url('assets/airline-planes.webp') 0 0/100% 500% no-repeat;filter:drop-shadow(0 4px 3px #060b2455)}.guest-plane[data-airline=aa]{background-position:0 25%}.guest-plane[data-airline=ua]{background-position:0 50%}.guest-plane[data-airline=sw]{background-position:0 75%}.guest-plane[data-airline=mr]{background-position:0 100%}.guest-plane.arriving{animation:taxi-in 2.2s cubic-bezier(.18,.55,.3,1) both}
.ticket-board{grid-column:2;grid-row:1 / 3;align-self:center;position:relative;z-index:3;margin:12px 0 25px;padding:14px;background:#59301c;border:5px solid #201719;border-radius:24px 18px 17px 24px;box-shadow:inset 0 4px #ba7430,inset 0 -6px #302026,6px 8px 0 #0c142b80,0 12px 24px #010c3960}.paper{padding:22px;background:radial-gradient(ellipse at top left,#fff2c9,#f7daa2 80%);border:2px solid #ab713c;border-radius:10px 12px 8px 11px;box-shadow:inset 0 0 20px #c5843535}select,input{width:100%;min-width:0;background:#fff4d9b8;border:2px solid #54432f;border-radius:7px;font-size:1.3rem;font-weight:800;line-height:1.25;padding:10px 12px}select{padding:12px 36px 12px 12px;font-size:1.3rem}label{font-size:1.12rem;font-weight:900;display:block;margin-bottom:4px}input::placeholder{color:#7d7565;opacity:.7;font-weight:600}input::-webkit-inner-spin-button{appearance:none}input[type=number]{-moz-appearance:textfield}.cash-row{margin:17px 0}.cash-input{position:relative}.cash-input span{position:absolute;left:13px;top:10px;font-size:1.3rem;font-weight:800}.cash-input input{padding-left:29px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.award-row{margin:0 0 17px}.result{font-size:.875rem;font-weight:800;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:7px}.result:empty{display:none}.rating{color:#15562e}.rating.fair{color:#78490d}.rating.poor{color:#9c3121}.error{font-size:.875rem;line-height:1.35;font-weight:700;color:#932c1d;margin:8px 0 0}.mixed-toggle{border:1.5px solid #a37a46;border-radius:7px;padding:10px 12px;margin:14px 0 16px}.mixed-toggle summary{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:1.13rem;font-weight:900;list-style:none}.mixed-toggle summary:after{content:'';width:10px;height:10px;flex:none;border-bottom:3px solid;border-right:3px solid;transform:rotate(45deg);transition:transform .2s;margin:-5px 3px 0 8px}.mixed-toggle[open] summary:after{transform:rotate(225deg);margin-top:6px}.mixed-toggle .fields{margin-top:15px}.mixed-toggle .award-row{margin:0}.mixed-content{overflow:hidden}.mixed-toggle[open] .mixed-content{animation:disclose .25s ease-out}.mixed-badge{font-size:.8rem;font-weight:800;background:#ead393;padding:2px 6px;border-radius:4px;margin-left:auto}.score{border:2px solid #44713b;border-radius:12px;background:#e1e7b7;text-align:center;padding:13px 10px 12px;min-height:105px}.score strong{display:block;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.15;font-weight:1000;letter-spacing:-1.3px}.score span{display:block;font-size:1.2rem;font-weight:900;color:#205d35;margin-top:3px}.score p{font-size:.94rem;font-weight:800;margin:6px 0 0}.score[data-tone=empty]{background:#ecdba9;border-color:#b89354}.score[data-tone=empty] strong{font-size:1.55rem;letter-spacing:-.4px}.score[data-tone=empty] span{font-size:1rem;color:#645034;font-weight:700}.score[data-tone=poor]{background:#f1c9a8;border-color:#a35938}.score[data-tone=poor] span{color:#8e2e20}.score[data-tone=fair]{background:#f0dda2;border-color:#9d772d}.score[data-tone=fair] span{color:#77530c}.board-footer{position:relative;border-top:2px solid #bb925a;margin-top:15px;padding-top:11px;font-size:.95rem}.method>summary{font-weight:900;cursor:pointer;padding:3px 0;width:fit-content;list-style:none}.method>summary:before{content:'›';font-size:1.5rem;line-height:.7;display:inline-block;margin-right:8px;vertical-align:-1px}.method[open]>summary:before{transform:rotate(90deg)}summary::-webkit-details-marker{display:none}button{background:none;border:0;font-weight:800;text-decoration:underline;text-underline-offset:3px;padding:4px 0}#clear{position:absolute;right:0;top:11px;color:#075e92}.details-content{font-size:.9rem;line-height:1.5;padding-top:6px}.details-content p{margin:13px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}h3{font-size:1rem;margin:0}h3 span{font-size:.85rem;font-weight:600}.benchmark-inputs label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:1rem}.benchmark-inputs input{width:100px;margin:8px 0}a{color:#075778}.motion-toggle{grid-row:3;grid-column:1 / -1;justify-self:start;align-self:end;color:#fff0be;background:#101b3edb;border:1px solid #cfb77780;border-radius:20px;padding:9px 16px;font-size:.875rem;text-decoration:none;z-index:4}
@keyframes clouds{from{transform:translateX(-5px)}to{transform:translateX(10px)}}@keyframes lamplight{0%,100%{opacity:.6}43%{opacity:.8}46%{opacity:.65}60%{opacity:1}}@keyframes taxi-in{from{transform:translateX(-420px)}to{transform:translateX(0)}}@keyframes happy-bounce{0%,100%{transform:translateY(0)}35%{transform:translateY(-22px) rotate(-4deg)}65%{transform:translateY(-5px) rotate(3deg)}}@keyframes head-shake{0%,100%{transform:rotate(0)}25%,65%{transform:rotate(-4deg)}45%,85%{transform:rotate(3deg)}}@keyframes wing-wiggle{0%,100%{transform:rotate(0)}40%{transform:rotate(-2deg)}70%{transform:rotate(2deg)}}@keyframes speech-pop{from{transform:scale(.97)}to{transform:scale(1)}}@keyframes disclose{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
body.motion-paused *,body.motion-paused *:before,body.motion-paused *:after{animation:none!important;transition:none!important}
@media(min-width:1500px){main{padding-top:70px}.guest-runway{left:0;top:59%}}
@media(max-width:1000px){main{column-gap:22px;padding:32px 24px 22px;grid-template-columns:minmax(0,1fr) minmax(350px,440px)}.heading h1{padding:12px 15px;font-size:2.45rem}.guide-speech{padding:22px}.guide-speech h2{font-size:1.5rem}.paper{padding:18px}.ticket-board{padding:10px}.guest-runway{width:150px;height:auto;top:63%;left:0}}
@media(max-width:760px){.scenery{background-position:35% center}.cloud-drift{display:none}main{display:flex;flex-direction:column;min-height:100svh;padding:20px 16px;gap:0;max-width:560px}.heading{margin:0 auto 18px}.heading h1{font-size:2.3rem;padding:10px 25px;border-width:4px;letter-spacing:-1.3px}.decision{display:grid;grid-template-columns:112px minmax(0,1fr);width:100%;align-items:center;margin-bottom:14px;min-height:118px}.guide-stage{grid-column:1;grid-row:1;margin:0;width:132px;position:relative;left:-10px}.guide-speech{grid-column:2;grid-row:1;left:0;top:0;padding:16px 18px;border-radius:22px;max-width:none}.guide-speech:after{left:-10px;top:40%;bottom:auto;width:16px;height:16px;transform:rotate(135deg)}.guide-speech h2{font-size:1.25rem;line-height:1.15}.guide-speech p{font-size:.85rem;margin-top:6px}.ticket-board{width:100%;align-self:auto;margin:0 0 15px;padding:9px;border-width:4px;border-radius:16px}.paper{padding:17px}.cash-row{margin:15px 0}.fields{gap:12px}select,input{font-size:1.16rem}label{font-size:1rem}.score strong{font-size:2.35rem}.guest-runway{position:relative;order:3;top:auto;left:auto;width:140px;height:auto;margin:-2px 12px -45px auto}.motion-toggle{order:4;align-self:flex-start;margin-top:12px}.lamp-glow{right:0;width:65%}.mixed-toggle{margin-top:13px}.heading{order:0}.decision{order:1}.ticket-board{order:2}.details-content{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@supports (interpolate-size:allow-keywords){.mixed-toggle{interpolate-size:allow-keywords}.mixed-toggle::details-content{height:0;overflow:clip;transition:height .28s ease,content-visibility .28s allow-discrete}.mixed-toggle[open]::details-content{height:auto}}
.guest-runway{height:auto;aspect-ratio:8/3}.guest-plane{height:100%}
/* Help expands inside the board without moving the runway or the host. */
.method .details-content{max-height:min(42svh,400px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:8px}
@media(min-width:761px){main{grid-template-rows:max-content 1fr auto}.guest-runway{top:62svh}}
@media(min-width:1500px){.guest-runway{top:59svh}}

.payment-pills{display:flex;gap:4px;padding:4px;margin:0 0 15px;border:2px solid #79522e;border-radius:30px;background:#dec28c}
.payment-pills button{flex:1;padding:9px 10px;text-decoration:none;border-radius:24px;font-size:1rem;line-height:1.2;min-height:44px}
.payment-pills button[aria-pressed=true]{background:#153e53;color:#fff3cf;box-shadow:0 2px 3px #32241d30}
/* A real layout: the guide shares the board's column geometry, never viewport art coordinates. */
main{max-width:1440px;grid-template-columns:minmax(0,1fr) 440px;grid-template-rows:max-content 1fr auto;gap:24px;padding:32px 32px 24px;min-height:max(720px,100svh)}
.heading{margin:0;justify-self:center}
.scene-cast{display:contents}
.scene-cast .decision{grid-column:1;grid-row:2;justify-self:end;align-self:start;width:min(52%,310px);min-width:0;display:flex;position:relative;left:auto;bottom:auto;margin:clamp(160px,32svh,330px) 0 10px;z-index:2}
.scene-cast .guide-speech{position:relative;left:auto;top:auto;bottom:auto;transform:none;width:100%;max-width:100%;padding:18px 20px;border-radius:28px;overflow-wrap:anywhere}
.scene-cast .guide-speech h2{font-size:clamp(1.2rem,1.8vw,1.65rem)}
.scene-cast .guide-speech p{font-size:1rem}
.scene-cast .guide-speech:after{left:53%;top:auto;bottom:-13px;width:22px;height:22px;transform:rotate(45deg);border-right:3px solid #122033;border-bottom:3px solid #122033}
.scene-cast .guide-stage{width:100%;left:0;margin:-14% 0 0}
.scene-cast .plane{filter:drop-shadow(0 4px 2px #080d2c40)}
.decision.react .guide-speech{animation:none}
.scene-cast .guest-runway{position:absolute;left:24px;top:clamp(190px,43svh,390px);width:calc((100% - 504px)*.44);aspect-ratio:8/3;margin:0;z-index:0}
.ticket-board{margin:0;align-self:center;min-width:0}
.motion-toggle{grid-row:3;margin:0}
.ground-service{position:absolute;left:17%;bottom:-3%;width:62%;height:40%}
.baggage-cart{position:absolute;left:0;bottom:0;width:76%;aspect-ratio:1481/365;background:url('assets/baggage-cart.webp') center/contain no-repeat;opacity:1;animation:service-cart 40s ease-in-out infinite}
.suitcase{position:absolute;bottom:35%;width:11%;aspect-ratio:396/223;background:url('assets/suitcase.webp') center/contain no-repeat;opacity:0;animation:transfer-bag 40s ease-in-out infinite}
.suitcase-one{left:15%}.suitcase-two{left:27%;animation-delay:.6s}
.scene-cast .guest-plane{animation:service-plane 40s ease-in-out infinite;transform-origin:50% 90%}
.scene-cast .guest-plane.arriving{animation:service-plane 40s ease-in-out infinite}
@keyframes service-plane{0%,100%{transform:translateX(-12%);opacity:0}2.5%,96.5%{transform:translateX(0);opacity:1}99%{transform:translateX(14%);opacity:0}}
@keyframes service-cart{0%,2.5%{transform:translateX(-45%);opacity:0}5.5%,19%{transform:translateX(0);opacity:1}22.5%,100%{transform:translateX(50%);opacity:0}}
@keyframes transfer-bag{0%,5.75%{transform:translate(55px,-22px);opacity:0}6.5%{opacity:1}9%,12%{transform:translate(0,0);opacity:1}15.5%{transform:translate(55px,-22px);opacity:1}16.75%,100%{transform:translate(55px,-22px);opacity:0}}
body.motion-paused .scene-cast .guest-plane,body.motion-paused .baggage-cart{opacity:1;transform:none}
body.motion-paused .suitcase{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.scene-cast .guest-plane,.baggage-cart,.suitcase{opacity:1;transform:none}}
@media(max-width:1000px){
 main{display:flex;flex-direction:column;width:100%;max-width:620px;min-height:100svh;padding:20px 16px;gap:14px}
 .heading{order:0;margin:0 auto}
 .heading h1{font-size:clamp(1.8rem,5.8vw,2.6rem);padding:9px 18px;border-width:4px;letter-spacing:-1px}
 .scene-cast{display:contents}
 .scene-cast .decision{order:1;display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;width:100%;margin:0;align-items:center;min-height:100px;align-self:stretch}
 .scene-cast .guide-stage{grid-column:1;grid-row:1;width:100%;left:0;margin:0}
 .scene-cast .guide-speech{grid-column:2;grid-row:1;left:auto;top:auto;bottom:auto;width:100%;max-width:100%;transform:none;padding:13px 16px;border-radius:20px}
 .scene-cast .guide-speech h2{font-size:1.15rem}
 .scene-cast .guide-speech p{font-size:.875rem;line-height:1.35;margin-top:5px}
 .scene-cast .guide-speech:after{left:-11px;top:44%;bottom:auto;width:16px;height:16px;transform:rotate(135deg)}
 .ticket-board{order:2;width:100%;padding:8px;border-width:4px;border-radius:16px;margin:0;align-self:stretch}
 .paper{padding:16px}
 .cash-row{margin:14px 0}
 .fields{gap:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 label{font-size:1rem}
 input,select{font-size:1rem;min-height:44px;padding:10px}
 .cash-input input{padding-left:28px}
 .cash-input span{font-size:1rem}
 .payment-pills{margin-bottom:13px}
 .payment-pills button{font-size:.95rem;padding:9px 7px}
 .score{min-height:0;padding:10px}
 .score strong{font-size:2rem}
 .scene-cast .guest-runway{order:3;position:relative;left:auto;top:auto;width:min(80%,340px);margin:4px auto 14px;flex:none}
 .motion-toggle{order:4;align-self:center;margin:0}
 .cloud-drift{display:none}
}
@media(max-width:360px){main{padding:14px 10px;gap:10px}.scene-cast .decision{grid-template-columns:68px minmax(0,1fr);gap:8px}.scene-cast .guide-speech{padding:11px 12px}.paper{padding:12px}.payment-pills button{font-size:.875rem}.scene-cast .guide-speech h2{font-size:1.05rem}}

/* Approved shared design: one title, one value, and a bubble sized to its message. */
main{overflow:clip;grid-template-rows:1fr auto}
.heading{margin:0 0 14px;text-align:center}
.heading h1{font-size:1.8rem;letter-spacing:-1px;line-height:1.1;color:#15283b;background:none;border:0;box-shadow:none;text-shadow:none;transform:none;padding:0}
.ticket-board{grid-row:1}
.scene-cast .decision{grid-row:1}
.motion-toggle{grid-row:2}
.program-picker{position:relative}
.program-picker select{appearance:none;-webkit-appearance:none;background-image:none;padding-right:40px}
.program-picker:after{content:'';position:absolute;right:16px;top:50%;width:9px;height:9px;border-right:2px solid #15283b;border-bottom:2px solid #15283b;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.scene-cast .guide-speech{width:max-content;max-width:100%;padding:11px 13px;border:2px solid #142133;border-radius:20px;box-shadow:0 2px #14213330}
#verdict-description{display:none}
.scene-cast .guide-speech:before{content:'';position:absolute;left:50%;top:auto;bottom:-13px;width:0;height:0;border:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:13px solid #142133}
.scene-cast .guide-speech:after{content:'';position:absolute;left:calc(50% + 2px);top:auto;bottom:-9px;width:0;height:0;background:none;transform:none;border:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:11px solid #fff1cb}
.score,.score[data-tone]{background:none;border:0;border-radius:0;min-height:0;padding:12px 4px 10px}
.score small{display:block;font-size:.8125rem;font-weight:700;color:#15283b}
.score strong{font-size:1.65rem;letter-spacing:0;margin-top:3px}
.score span{font-size:.875rem;margin-top:3px}
.score[data-tone=good] strong,.score[data-tone=great] strong,.score[data-tone=good] span,.score[data-tone=great] span{color:#246039}
.score[data-tone=fair] strong,.score[data-tone=fair] span{color:#85530b}
.score[data-tone=poor] strong,.score[data-tone=poor] span{color:#a22e22}
#booking-choice{display:none}
.scene-cast .guest-plane{animation:none;opacity:1;transform:none}
.scene-cast .guest-plane.arriving{animation:approved-arrival 4.75s cubic-bezier(.25,.5,.5,1) both}
@keyframes approved-arrival{from{transform:translateX(-100vw)}to{transform:translateX(0)}}
.ground-service{left:calc(24px + (100% - 504px)*.088);top:calc(clamp(190px,43svh,390px) + (min(100vw,1440px) - 504px)*.15);bottom:auto;width:calc((100% - 504px)*.143);height:auto;aspect-ratio:1481/365;transform:translateX(-100vw);animation:approved-service 40s linear infinite}
.baggage-cart{width:100%;height:100%;opacity:1;animation:none}
.suitcase{width:16%;bottom:38%;opacity:1;animation:approved-bag 40s ease-in-out infinite}
.suitcase-one{left:16%}.suitcase-two{display:none}
@keyframes approved-service{0%{transform:translateX(-100vw)}5%,15%{transform:translateX(0)}20%,100%{transform:translateX(100vw)}}
@keyframes approved-bag{0%,6%{transform:translate(0,0)}9%,11%{transform:translate(22px,-7px)}14%,100%{transform:translate(0,0)}}
body.motion-paused .ground-service{transform:translateX(-100vw)}
@media(prefers-reduced-motion:reduce){.ground-service{transform:translateX(-100vw)}}
@media(max-width:1000px){
 body{background:#102052}
 main{max-width:480px;min-height:100svh;padding:0;gap:0;display:flex;overflow:clip}
 .scenery{display:none}
 .scene-cast{display:block;position:relative;order:0;width:100%;aspect-ratio:3/2;background:#102052 url('assets/airport-world.webp') center top/100% 100% no-repeat;overflow:hidden}
 .scene-cast .decision{position:static;display:contents;margin:0}
 .scene-cast .guide-stage{position:absolute;right:2px;left:auto;bottom:19px;width:145px;height:145px;margin:0;transform:scaleX(-1)}
 .scene-cast .guide-speech{position:absolute;right:149px;left:auto;top:auto;bottom:24px;width:max-content;max-width:calc(100% - 163px);padding:11px 13px;text-align:left;transform:none}
 .scene-cast .guide-speech h2{font-size:1rem;line-height:1.16;font-weight:1000;overflow-wrap:anywhere}
 .scene-cast .guide-speech:before{right:-13px;left:auto;top:50%;bottom:auto;margin-top:-8px;width:0;height:0;border:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:13px solid #142133}
 .scene-cast .guide-speech:after{right:-9px;left:auto;top:50%;bottom:auto;margin-top:-6px;width:0;height:0;border:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:11px solid #fff1cb}
 .scene-cast .guest-runway{position:absolute;left:18%;top:35%;width:40%;height:auto;aspect-ratio:8/3;margin:0}
 .ground-service{left:26%;top:53%;width:13%;height:auto;aspect-ratio:1481/365;animation-name:mobile-service;transform:translateX(-320%)}
 @keyframes mobile-service{0%{transform:translateX(-320%)}5%,15%{transform:translateX(0)}20%,100%{transform:translateX(620%)}}
 .ticket-board{order:1;width:100%;padding:7px 9px 9px;background:#613a22;border:0;border-top:5px solid #ba7934;border-radius:0;margin:0;box-shadow:0 -4px #241719}
 .paper{padding:12px 14px;background:linear-gradient(110deg,#fff1cd,#f4d99f);border:2px solid #af793d;border-radius:10px;box-shadow:none}
 .heading{margin:0 0 10px;order:initial}
 .heading h1{font-size:25px;padding:0;border:0;letter-spacing:-1px}
 label{font-size:15px;margin-bottom:5px}
 input,select{font-size:16px;min-height:46px;padding:10px;border:2px solid #8a704b;border-radius:8px;background:#fff7e2}
 .cash-row{margin:10px 0}
 .cash-input span{top:11px;font-size:16px;left:12px}
 .cash-input input{padding-left:26px}
 .payment-pills{margin:10px 0;padding:4px;gap:4px;border:1px solid #a37a46;border-radius:25px;background:#e2c791}
 .payment-pills button{font-size:15px;padding:9px 5px;min-height:44px}
 .fields{gap:12px}
 .award-row{margin-bottom:0}
 .score strong{font-size:25px;line-height:1.2}
 .board-footer{margin-top:0;padding-top:2px;border-top:1px solid #bfa16d;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;font-size:14px}
 .method{min-width:0;flex:1}
 .method>summary{min-height:44px;padding:10px 0}
 #clear{position:static;font-size:14px;min-height:44px;flex:none}
 .method .details-content{max-height:none;overflow:visible;padding-right:0}
 .motion-toggle{order:2;margin:12px auto 16px;min-height:44px;align-self:center}
}
@media(max-width:350px){.scene-cast .guide-stage{width:125px;height:125px;bottom:22px}.scene-cast .guide-speech{right:125px;max-width:calc(100% - 139px);padding:8px 9px}.paper{padding:12px}.fields{gap:8px}}

.ground-service.resetting{animation:none!important;transform:translateX(-100vw)}

/* Sequence the cart after the aircraft's actual animation-end event. */
.ground-service{animation:none;transform:translateX(-100vw)}
.ground-service.servicing{animation:cart-trip 13.75s linear both}
.suitcase{animation:none}
.ground-service.servicing .suitcase{animation:bag-trip 13.75s ease-in-out both}
@keyframes cart-trip{0%{transform:translateX(-100vw)}43.63636%,56.36364%{transform:translateX(0)}100%{transform:translateX(100vw)}}
@keyframes bag-trip{0%,43.63636%{transform:translate(0,0)}50%{transform:translate(22px,-7px)}56.36364%,100%{transform:translate(0,0)}}
.score[data-tone=empty] strong{font-size:1.65rem;color:#695b48}
.score[data-tone=empty] span{font-size:.875rem}
@media(min-width:1001px){
 .scene-cast .decision{position:absolute;right:496px;left:auto;bottom:11%;width:310px;margin:0;display:flex}
 .scene-cast .guide-stage{margin-top:-20%}
 .scene-cast .guide-speech{font-size:1rem}
 .scene-cast .guide-speech h2{font-size:1.25rem}
}
@media(max-width:1000px){
 .ground-service{animation:none;transform:translateX(-320%)}
 .ground-service.servicing{animation:mobile-cart-trip 13.75s linear both}
 @keyframes mobile-cart-trip{0%{transform:translateX(-320%)}43.63636%,56.36364%{transform:translateX(0)}100%{transform:translateX(620%)}}
}
/* Desktop uses a wider airfield and a compact counter, with its own proportions. */
@media(min-width:1001px){
 main{grid-template-columns:minmax(0,1fr) 390px}
 .ticket-board{padding:10px}
 .paper{padding:18px}
 .heading h1{font-size:1.75rem}
 label{font-size:1rem}
 input,select{font-size:1.1rem;min-height:46px}
 .cash-input span{font-size:1.1rem}
 .cash-row{margin:14px 0}
 .award-row{margin-bottom:10px}
 .score strong{font-size:1.75rem}
 .scene-cast .decision{right:446px;width:340px;bottom:11%}
 .scene-cast .guest-runway{left:24px;width:calc((100% - 454px)*.50);top:clamp(180px,42svh,370px)}
 .ground-service{left:calc(24px + (100% - 454px)*.10);top:calc(clamp(180px,42svh,370px) + (min(100vw,1440px) - 454px)*.17);width:calc((100% - 454px)*.1625)}
}

/* Outgoing aircraft clears the runway before the next livery enters. */
.scene-cast .guest-plane.departing{transform-origin:center;animation:airline-takeoff 2.4s ease-in both}
@keyframes airline-takeoff{
 0%{transform:translate(0,0) rotate(0)}
 30%{transform:translate(12vw,0) rotate(0)}
 60%{transform:translate(42vw,-9vh) rotate(-9deg)}
 100%{transform:translate(110vw,-38vh) rotate(-12deg)}
}

/* The foreground uses the same artwork and image fit as the scene beneath it. */
.airport-foreground{position:fixed;inset:0;background:url('assets/airport-foreground.webp') center center/cover no-repeat;z-index:1;pointer-events:none}
.ground-service{z-index:0}
@media(max-width:1000px){
 .airport-foreground{position:absolute;background-position:center top;background-size:100% 100%}
 .scene-cast .guide-stage,.scene-cast .guide-speech{z-index:2}
}
