/* Short illustrated alley cartoons. Their clock and score stay in the controller. */
.bowling-shot:has(>.bowling-celebration:not([hidden])){inset:0;bottom:0;left:0;width:100%;max-width:none;transform:none;padding:0;border:0;border-radius:0;background:none;box-shadow:none;pointer-events:none;overflow:hidden}
.bowling-shot:has(>.bowling-celebration:not([hidden]))>:not(.bowling-celebration){display:none}
.bowling-celebration{--bc-ink:#244c40;--bc-red:#df5131;--bc-gold:#edb340;--hit-at:.88s;--react-at:1.05s;position:absolute;inset:0;container-type:size;overflow:hidden;isolation:isolate;color:var(--bc-ink);background:#f7efd9;font-family:var(--body);text-align:left}
.bowling-celebration[hidden]{display:none!important}
.bowling-celebration[data-kind=spare]{--hit-at:.79s;--react-at:.96s}
.bowling-celebration[data-kind=pinfall]{--hit-at:.58s;--react-at:.72s}
.bowling-celebration:is([data-kind=gutter],[data-kind=miss]){--hit-at:.72s;--react-at:.85s}
.bc-shell{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 28% 47%,#fff8e7 0,#f8efd9 66%,#f0e2c2 100%);animation:bc-screen-in .22s ease-out both}
.bc-shell:before{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;opacity:.2;background-image:repeating-radial-gradient(circle at 17% 22%,#795d2a35 0 .6px,transparent .8px 4px);background-size:7px 9px;mix-blend-mode:multiply}
.bc-shell:after{content:'';position:absolute;left:0;right:0;bottom:-1%;height:7%;background:repeating-conic-gradient(#e55332 0 25%,#fff2d4 0 50%) 0 0/30px 30px;opacity:.85;transform:skewY(-1deg);transform-origin:left bottom}
.bc-border{position:absolute;inset:14px;border:1px solid #b5814440;z-index:6;pointer-events:none}
.bc-border:before,.bc-border:after{content:'';position:absolute;width:19px;height:19px;border:3px solid #dd5935}
.bc-border:before{left:-2px;top:-2px;border-right:0;border-bottom:0}.bc-border:after{right:-2px;bottom:-2px;border-left:0;border-top:0}
.bc-brand{position:absolute;left:5%;right:5%;top:6%;z-index:4;font:700 clamp(8px,1.45cqw,13px)/1.2 var(--body);text-transform:uppercase;letter-spacing:.22em;color:#486650}
.bc-brand:before{content:'◆';display:inline-block;margin-right:1em;color:#d45a35}
.bc-watermark{position:absolute;right:-3%;top:-12%;pointer-events:none;font:normal min(70cqw,680px)/1 var(--display);color:#cf71310b;transform:rotate(-9deg)}
.bc-content{position:absolute;inset:11% 5% 10% 0;display:grid;grid-template-columns:60% minmax(0,1fr);align-items:center;column-gap:2%}
.bc-picture{position:relative;min-width:0;width:100%;margin-left:0;aspect-ratio:1.6;z-index:1;clip-path:inset(-30% 0 -30% -20%)}
.bc-art{display:block;width:100%;height:100%;overflow:visible}
.bc-type{position:relative;z-index:3;min-width:0;padding:0 1% 4% 0;animation:bc-title-land .38s var(--hit-at) cubic-bezier(.16,.82,.3,1.1) both}
.bc-title{display:block;font:normal clamp(39px,8.3cqw,104px)/.94 var(--display);letter-spacing:-.045em;text-transform:uppercase;overflow-wrap:anywhere;color:#214c3c;text-shadow:2px 3px 0 #fff4d0}
html:lang(zh) .bowling-celebration .bc-title{font-weight:850;letter-spacing:.015em;line-height:1.12}
.bowling-celebration .bc-copy{max-width:24em;margin:17px 0 0;font:500 clamp(11px,1.7cqw,16px)/1.5 var(--body);color:#56644b;text-align:inherit;text-wrap:balance}
.bc-tally{display:inline-flex;align-items:center;justify-content:center;min-width:49px;height:35px;padding:3px 12px;margin:0 0 15px;border:2px solid #d45635;background:#e65b34;color:#fff3d2;box-shadow:4px 4px 0 #e3b56150;transform:rotate(-7deg);font:normal clamp(20px,3.8cqw,39px)/1 var(--display)}
.bowling-celebration[data-kind=spare] .bc-tally{background:#234e40;border-color:#234e40}.bowling-celebration[data-kind=spare] .bc-title{color:#c84d2b}
.bowling-celebration:is([data-kind=gutter],[data-kind=miss]) .bc-title{font-size:clamp(35px,7.6cqw,92px);color:#be4b2d}
.bowling-celebration[data-kind=pinfall] .bc-title{font-size:clamp(35px,7.4cqw,92px)}
/* Everything in the scene has its own transform wrapper: entry never fights action. */
.bc-enter{animation:bc-cast-enter .32s cubic-bezier(.15,.75,.3,1) both}.bc-enter-support{animation-delay:.08s}
.bc-actor{transform-box:fill-box;transform-origin:50% 88%}.bc-support{animation:bc-support-cheer .8s var(--react-at) ease-in-out both}
.bc-floor{animation:bc-floor-unroll .32s ease-out both;transform-origin:50% 80%}
.bc-speed-lines{opacity:0;animation:bc-speed-flash .8s .15s both}
.bc-pin{transform-box:fill-box;transform-origin:50% 100%}
.bc-pin-hit{animation:bc-pin-scatter .64s calc(var(--hit-at) + var(--pin-delay,0s)) cubic-bezier(.13,.62,.3,1) both}
.bc-ball-spin{transform-box:fill-box;transform-origin:50% 50%;animation:bc-ball-spin 1.1s .08s linear both}
.bc-ball-path{animation:bc-ball-strike 1.1s .05s cubic-bezier(.18,.6,.4,1) both}
.bc-impact{opacity:0;transform-origin:715px 352px;animation:bc-pin-impact .5s var(--hit-at) cubic-bezier(.1,.8,.3,1) both}
.bc-confetti path{opacity:0;transform-box:fill-box;transform-origin:center;animation:bc-confetti-pop 1.15s calc(var(--react-at) + var(--spark-delay,0s)) ease-out both}
.bc-stars{transform-origin:480px 280px;animation:bc-stars-pop .7s var(--react-at) both}
.bc-trail,.bc-cheese-bridge,.bc-dough,.bc-peel,.bc-delivery-box,.bc-flour-cloud,.bc-juggle-balls,.bc-reaction{display:none}
.bc-topping{transform-box:fill-box;transform-origin:50% 85%;animation:bc-topping-hop .8s calc(var(--react-at) + var(--friend-delay,0s)) ease-in-out both}
.bc-friend-0{--friend-delay:0s}.bc-friend-1{--friend-delay:.09s}.bc-friend-2{--friend-delay:.16s}.bc-friend-3{--friend-delay:.22s}
/* Squid winds back, slings the ball, then springs up while the pins scatter. */
[data-scene=squid-slingshot] .bc-lead{animation:bc-squid-whip 2.8s ease-in-out both}
[data-scene=squid-slingshot] .bc-trail{display:block;stroke-dasharray:550;animation:bc-sling-trail .8s .35s both}
/* A pepper-cannon recoil and a puff of flour precede the pizza-tank salute. */
[data-scene=tank-salute] .bc-lead{animation:bc-tank-salute 2.8s cubic-bezier(.2,.7,.3,1) both}
[data-scene=tank-salute] .bc-ball-path{animation:bc-tank-shot 1.1s .07s cubic-bezier(.18,.65,.4,1) both}
[data-scene=tank-salute] .bc-flour-cloud{display:block;transform-origin:440px 350px;animation:bc-cannon-puff .65s .4s both}
/* The courier brakes; the box lid flips and launches the strike delivery. */
[data-scene=special-delivery] .bc-lead{animation:bc-courier-delivery 2.8s cubic-bezier(.16,.7,.3,1) both}
[data-scene=special-delivery] .bc-delivery-box{display:block;animation:bc-box-arrive .55s both}
[data-scene=special-delivery] .bc-box-lid{transform-origin:462px 376px;animation:bc-box-open 1.2s .37s both}
[data-scene=special-delivery] .bc-ball-path{animation:bc-box-ball 1.1s .05s ease-in-out both}
/* Spare stories: a chef's peel, elastic dough bridge, and one sweeping tentacle. */
[data-scene=chef-sweep] .bc-lead{animation:bc-chef-sweep 2.4s ease-in-out both}
[data-scene=chef-sweep] .bc-peel{display:block;transform-origin:350px 455px;animation:bc-peel-sweep 1.25s .1s both}
[data-scene=chef-sweep] .bc-ball-path{animation:bc-spare-roll 1s .08s ease-in-out both}
[data-scene=dough-bridge] .bc-lead{animation:bc-popsicle-pull 2.4s ease-in-out both}
[data-scene=dough-bridge] .bc-dough{display:block;transform-origin:435px 470px;animation:bc-dough-stretch 1.65s .08s both}
[data-scene=dough-bridge] .bc-cheese-bridge{display:block;transform-origin:435px 430px;animation:bc-bridge-stretch .55s .22s both}
[data-scene=dough-bridge] .bc-ball-path{animation:bc-bridge-ball 1.05s .05s ease-in-out both}
[data-scene=squid-cleanup] .bc-lead{animation:bc-squid-cleanup 2.4s ease-in-out both}
[data-scene=squid-cleanup] .bc-trail{display:block;stroke-dasharray:550;animation:bc-sling-trail .7s .27s both}
[data-scene=squid-cleanup] .bc-ball-path{animation:bc-spare-roll 1s .07s ease-in-out both}
/* Gutter stories leave every pin standing. The cast reacts to the escaped ball. */
.bowling-celebration:is([data-kind=gutter],[data-kind=miss]) .bc-impact,.bowling-celebration:is([data-kind=gutter],[data-kind=miss]) .bc-confetti,.bowling-celebration:is([data-kind=gutter],[data-kind=miss]) .bc-stars{display:none}
.bowling-celebration:is([data-kind=gutter],[data-kind=miss]) .bc-reaction{display:block;transform-origin:545px 210px;animation:bc-reaction-pop .6s var(--react-at) both}
[data-scene=courier-chase] .bc-lead{animation:bc-courier-chase 2.2s ease-in-out both}
[data-scene=courier-chase] .bc-support{animation:bc-chef-chase 2.2s ease-in-out both}
[data-scene=courier-chase] .bc-ball-path{animation:bc-runaway-ball 1.65s .05s ease-in both}
[data-scene=squid-too-late] .bc-lead{animation:bc-squid-late 2.2s ease-in-out both}
[data-scene=squid-too-late] .bc-trail{display:block;stroke-dasharray:550;animation:bc-late-trail 1.1s .55s both}
[data-scene=squid-too-late] .bc-ball-path{animation:bc-runaway-ball 1.5s .02s ease-in both}
[data-scene=tank-backfire] .bc-lead{animation:bc-tank-backfire 2.2s ease-in-out both}
[data-scene=tank-backfire] .bc-ball-path{animation:bc-backfire-ball 1.8s .02s ease-in-out both}
[data-scene=tank-backfire] .bc-flour-cloud{display:block;transform-origin:440px 350px;animation:bc-backfire-puff .65s .85s both}
/* Misses are little double takes, flour mishaps, and toppings peeking at the rack. */
[data-scene=popsicle-double-take] .bc-lead{animation:bc-double-take 1.9s ease-in-out both}
[data-scene=popsicle-double-take] .bc-ball-path,[data-scene=toppings-peek] .bc-ball-path{animation:bc-missed-ball 1.5s .03s ease-in-out both}
[data-scene=chef-flour-cloud] .bc-lead{animation:bc-chef-flour 1.9s ease-in-out both}
[data-scene=chef-flour-cloud] .bc-flour-cloud{display:block;transform-origin:440px 350px;animation:bc-flour-poof 1.15s .23s both}
[data-scene=chef-flour-cloud] .bc-ball-path{animation:bc-missed-ball 1.5s .02s ease-in-out both}
[data-scene=toppings-peek] .bc-lead{animation:bc-double-take 1.9s ease-in-out both}
[data-scene=toppings-peek] .bc-topping{animation:bc-toppings-peek 1.65s calc(.09s + var(--friend-delay,0s)) both}
/* Ordinary pinfall keeps exactly the correct number of standing symbolic pins. */
[data-scene=toppings-bounce] .bc-lead{animation:bc-popsicle-win 1.7s ease-in-out both}
[data-scene=chef-counts] .bc-lead{animation:bc-chef-count 1.7s ease-in-out both}
[data-scene=squid-juggle] .bc-lead{animation:bc-squid-juggle 1.7s ease-in-out both}
[data-scene=squid-juggle] .bc-juggle-balls{display:block}
[data-scene=squid-juggle] .bc-juggle-one{animation:bc-juggle-first 1.55s .03s both;transform-origin:207px 194px}
[data-scene=squid-juggle] .bc-juggle-two{animation:bc-juggle-second 1.55s .03s both;transform-origin:399px 216px}
.bowling-celebration[data-kind=pinfall] .bc-ball-path{animation:bc-pinfall-ball .8s .02s ease-in-out both}
.bowling-celebration[data-kind=pinfall] .bc-confetti path{animation-duration:.68s}
/* Finite animation beats: anticipation, action, then a readable result hold. */
@keyframes bc-screen-in{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes bc-cast-enter{from{opacity:0;transform:translate(-25px,18px)}to{opacity:1;transform:translate(0,0)}}
@keyframes bc-floor-unroll{from{opacity:0;transform:scaleX(.8)}to{opacity:1;transform:scaleX(1)}}
@keyframes bc-title-land{0%{opacity:0;transform:translate(15%,9%) rotate(6deg) scale(.8)}70%{opacity:1;transform:translate(-1%,0) rotate(-4deg) scale(1.04)}100%{opacity:1;transform:translate(0,0) rotate(-3deg) scale(1)}}
@keyframes bc-speed-flash{0%,100%{opacity:0;transform:translateX(-35px)}30%,65%{opacity:.7;transform:translateX(0)}}
@keyframes bc-pin-scatter{0%,10%{opacity:1;transform:none}75%{opacity:1}100%{opacity:0;transform:translate(var(--pin-x),var(--pin-y)) rotate(var(--pin-angle))}}
@keyframes bc-pin-impact{0%{opacity:0;transform:scale(.1) rotate(-15deg)}25%{opacity:1;transform:scale(1.05) rotate(4deg)}70%{opacity:.8}100%{opacity:0;transform:scale(1.2) rotate(12deg)}}
@keyframes bc-ball-spin{from{transform:rotate(-70deg)}to{transform:rotate(350deg)}}
@keyframes bc-ball-strike{0%,18%{transform:translate(-35px,2px) scale(.87)}48%{transform:translate(170px,-130px) scale(.85)}82%{transform:translate(410px,-52px) scale(.8)}100%{transform:translate(480px,-22px) scale(.75);opacity:0}}
@keyframes bc-confetti-pop{0%{opacity:0;transform:translate(0,55px) scale(.4)}18%{opacity:1}100%{opacity:0;transform:translate(var(--spark-x),-55px) rotate(var(--spark-turn))}}
@keyframes bc-stars-pop{0%{opacity:0;transform:scale(.45) rotate(-15deg)}55%{opacity:1;transform:scale(1.08) rotate(5deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes bc-support-cheer{0%{transform:none}30%{transform:translateY(-34px) rotate(8deg)}55%{transform:translateY(0) scale(1.05,.94)}80%{transform:translateY(-13px) rotate(-5deg)}100%{transform:none}}
@keyframes bc-topping-hop{0%{transform:none}25%{transform:translateY(-43px) rotate(-12deg) scale(.96,1.05)}55%{transform:translateY(2px) rotate(8deg) scale(1.08,.9)}80%{transform:translateY(-13px) rotate(-5deg)}100%{transform:none}}
@keyframes bc-squid-whip{0%{transform:rotate(-7deg)}17%{transform:translate(-30px,12px) rotate(-18deg) scale(1.04,.94)}31%{transform:translate(44px,-19px) rotate(15deg) scale(.94,1.07)}46%{transform:translate(-8px,0) rotate(-5deg)}61%{transform:translate(0,-42px) rotate(4deg)}76%{transform:translate(0,0) scale(1.04,.96)}90%{transform:translate(0,-12px)}100%{transform:none}}
@keyframes bc-sling-trail{0%{opacity:0;stroke-dashoffset:550;transform:translateX(-25px)}25%{opacity:.9}70%{opacity:.7;stroke-dashoffset:0}100%{opacity:0;stroke-dashoffset:-150}}
@keyframes bc-tank-salute{0%{transform:translateX(-130px) rotate(-3deg)}15%{transform:translateX(5px) rotate(2deg)}23%{transform:translateX(-22px) rotate(-7deg) scale(1.04,.94)}34%{transform:translateX(4px) rotate(3deg)}46%{transform:none}62%{transform:translateY(-16px) rotate(-4deg)}77%{transform:translateY(0) rotate(3deg)}100%{transform:none}}
@keyframes bc-tank-shot{0%,24%{opacity:0;transform:translate(48px,-50px) scale(.5)}25%{opacity:1}53%{transform:translate(205px,-160px) scale(.7)}86%{opacity:1;transform:translate(420px,-50px) scale(.8)}100%{opacity:0;transform:translate(490px,-28px) scale(.7)}}
@keyframes bc-cannon-puff{0%{opacity:0;transform:translate(-55px,10px) scale(.08)}35%{opacity:.8;transform:translate(-10px,-10px) scale(.34)}100%{opacity:0;transform:translate(45px,-30px) scale(.5)}}
@keyframes bc-courier-delivery{0%{transform:translateX(-140px) rotate(-4deg)}16%{transform:translateX(40px) rotate(4deg)}25%{transform:translateX(5px) rotate(-7deg)}34%{transform:translateX(22px) rotate(3deg)}49%{transform:translateX(12px)}65%{transform:translate(12px,-18px) rotate(-3deg)}78%{transform:translate(12px,0) rotate(2deg)}100%{transform:translateX(12px)}}
@keyframes bc-box-arrive{from{opacity:0;transform:translate(-190px,-70px) rotate(-20deg)}70%{opacity:1;transform:translate(7px,4px) rotate(5deg)}to{opacity:1;transform:none}}
@keyframes bc-box-open{0%{transform:none}30%{transform:translateY(-80px) rotate(-35deg)}55%{transform:translateY(-95px) rotate(-43deg)}100%{transform:translate(-20px,-70px) rotate(-30deg)}}
@keyframes bc-box-ball{0%,34%{opacity:0;transform:translate(242px,-17px) scale(.55)}35%{opacity:1}57%{transform:translate(260px,-155px) scale(.8)}87%{opacity:1;transform:translate(420px,-52px) scale(.8)}100%{opacity:0;transform:translate(480px,-22px) scale(.7)}}
@keyframes bc-chef-sweep{0%{transform:translateX(-35px) rotate(-8deg)}20%{transform:translate(-13px,4px) rotate(-13deg)}39%{transform:translate(48px,-6px) rotate(11deg)}55%{transform:translate(12px,0) rotate(-3deg)}70%{transform:translate(12px,-20px) rotate(5deg)}100%{transform:translateX(12px)}}
@keyframes bc-peel-sweep{0%{transform:translateX(-55px) rotate(-27deg)}35%{transform:translateX(-28px) rotate(-36deg)}68%{transform:translate(125px,-12px) rotate(28deg)}100%{transform:translate(135px,-7px) rotate(16deg)}}
@keyframes bc-spare-roll{0%,20%{transform:translate(55px,3px) scale(.85)}67%{transform:translate(325px,-46px) scale(.8)}89%{opacity:1;transform:translate(420px,-55px) scale(.75)}100%{opacity:0;transform:translate(480px,-30px) scale(.7)}}
@keyframes bc-popsicle-pull{0%{transform:rotate(-4deg)}18%{transform:translateX(-24px) rotate(-13deg) scale(.94,1.03)}35%{transform:translateX(13px) rotate(9deg)}55%{transform:translateY(-15px) rotate(4deg)}76%{transform:translateY(0) scale(1.05,.95)}100%{transform:none}}
@keyframes bc-dough-stretch{0%{opacity:0;transform:translateY(20px) scale(.45,.8)}25%{opacity:1;transform:translateY(0) scale(.85,1.2)}45%{transform:scale(1.4,.7)}70%{transform:scale(1.12,.9)}100%{opacity:1;transform:none}}
@keyframes bc-bridge-stretch{from{opacity:0;transform:scaleX(.05) scaleY(.8)}65%{opacity:1;transform:scaleX(1.08) scaleY(.9)}to{opacity:1;transform:none}}
@keyframes bc-bridge-ball{0%,20%{transform:translate(-10px,12px) scale(.85)}55%{transform:translate(155px,-90px) scale(.8)}84%{opacity:1;transform:translate(410px,-50px) scale(.75)}100%{opacity:0;transform:translate(480px,-30px) scale(.7)}}
@keyframes bc-squid-cleanup{0%{transform:rotate(-7deg)}18%{transform:translate(-25px,9px) rotate(-13deg)}36%{transform:translate(58px,-17px) rotate(16deg) scale(1.06,.95)}51%{transform:translate(5px,0) rotate(-7deg)}68%{transform:translate(5px,-27px) rotate(4deg)}100%{transform:translateX(5px)}}
@keyframes bc-reaction-pop{0%{opacity:0;transform:translateY(17px) scale(.2)}45%{opacity:1;transform:translateY(-5px) scale(1.1) rotate(8deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(-6deg)}}
@keyframes bc-runaway-ball{0%{transform:translate(-30px,0) scale(.9)}34%{transform:translate(195px,-15px) scale(.83)}56%{transform:translate(310px,74px) scale(.8)}80%{opacity:1;transform:translate(525px,90px) scale(.7)}100%{opacity:0;transform:translate(730px,100px) scale(.65)}}
@keyframes bc-courier-chase{0%{transform:translateX(-90px) rotate(-4deg)}22%{transform:translateX(40px) rotate(5deg)}40%{transform:translateX(15px) rotate(-7deg)}63%{transform:translateX(90px) rotate(4deg)}80%{transform:translateX(120px) rotate(-3deg)}100%{transform:translateX(120px)}}
@keyframes bc-chef-chase{0%,20%{transform:none}38%{transform:translate(26px,-20px) rotate(8deg)}50%{transform:translate(63px,0) rotate(-6deg)}65%{transform:translate(103px,-17px) rotate(9deg)}80%{transform:translate(142px,0) rotate(-3deg)}100%{transform:translate(150px,0)}}
@keyframes bc-squid-late{0%,20%{transform:rotate(-5deg)}42%{transform:translate(40px,-10px) rotate(13deg) scale(1.1,.95)}58%{transform:translate(88px,5px) rotate(17deg) scale(1.13,.88)}72%{transform:translate(35px,12px) rotate(-10deg)}100%{transform:translate(25px,0) rotate(-6deg)}}
@keyframes bc-late-trail{0%{opacity:0;stroke-dashoffset:550;transform:translateY(55px)}40%{opacity:.65;stroke-dashoffset:0;transform:translate(45px,45px)}100%{opacity:0;stroke-dashoffset:-150;transform:translate(95px,65px)}}
@keyframes bc-tank-backfire{0%{transform:translateX(-60px)}23%{transform:translateX(4px) rotate(2deg)}34%{transform:translateX(-25px) rotate(-9deg)}50%{transform:translateY(13px) rotate(8deg) scale(1.04,.94)}66%{transform:translateY(-10px) rotate(-6deg)}100%{transform:rotate(-3deg)}}
@keyframes bc-backfire-ball{0%,22%{opacity:0;transform:translate(40px,-35px) scale(.55)}23%{opacity:1}42%{transform:translate(20px,-210px) scale(.8)}68%{transform:translate(-80px,-65px) scale(.85)}80%{transform:translate(-115px,25px) scale(.7)}100%{opacity:0;transform:translate(-155px,110px) scale(.65)}}
@keyframes bc-backfire-puff{0%{opacity:0;transform:translate(-175px,75px) scale(.05)}40%{opacity:.9;transform:translate(-175px,45px) scale(.55)}100%{opacity:0;transform:translate(-170px,15px) scale(.8)}}
@keyframes bc-double-take{0%{transform:none}24%{transform:rotate(7deg)}40%{transform:translateY(-13px) rotate(-12deg) scale(.95,1.04)}57%{transform:translateY(3px) rotate(9deg) scale(1.04,.96)}72%{transform:rotate(-5deg)}100%{transform:rotate(-3deg)}}
@keyframes bc-missed-ball{0%{transform:translate(-25px,5px) scale(.85)}55%{transform:translate(337px,25px) scale(.78)}70%{transform:translate(365px,21px) scale(.78)}85%,100%{transform:translate(352px,27px) scale(.78)}}
@keyframes bc-chef-flour{0%{transform:none}25%{transform:rotate(-8deg)}45%{transform:translate(28px,-14px) rotate(12deg)}65%{transform:translate(-8px,4px) rotate(-10deg) scale(1.05,.94)}80%{transform:rotate(6deg)}100%{transform:rotate(-3deg)}}
@keyframes bc-flour-poof{0%{opacity:0;transform:translate(-45px,55px) scale(.08)}35%{opacity:.95;transform:translate(-15px,0) scale(1.12)}65%{opacity:.85;transform:translate(10px,-22px) scale(1.2)}100%{opacity:0;transform:translate(35px,-50px) scale(1.4)}}
@keyframes bc-toppings-peek{0%{opacity:0;transform:translateY(60px) scale(.8)}30%{opacity:1;transform:translateY(0) rotate(-12deg)}50%{transform:translateY(9px) rotate(10deg)}70%{transform:translateY(-12px) rotate(-5deg)}100%{opacity:1;transform:translateY(0) rotate(4deg)}}
@keyframes bc-popsicle-win{0%{transform:rotate(-5deg)}30%{transform:rotate(7deg)}56%{transform:translateY(-36px) rotate(-5deg)}77%{transform:scale(1.06,.94)}100%{transform:none}}
@keyframes bc-chef-count{0%{transform:rotate(-5deg)}24%{transform:translateX(12px) rotate(8deg)}44%{transform:translateX(-4px) rotate(-8deg)}65%{transform:translateY(-24px) rotate(5deg)}82%{transform:scale(1.06,.94)}100%{transform:none}}
@keyframes bc-squid-juggle{0%{transform:rotate(-5deg)}26%{transform:translateY(-12px) rotate(8deg)}50%{transform:translateY(0) rotate(-8deg)}74%{transform:translateY(-23px) rotate(7deg)}100%{transform:none}}
@keyframes bc-juggle-first{0%{opacity:0;transform:translate(90px,160px) scale(.6)}25%{opacity:1;transform:translate(0,-20px) scale(1)}56%{transform:translate(-30px,50px) scale(.95)}80%{transform:translate(55px,-10px) scale(.9)}100%{opacity:1;transform:translate(95px,145px) scale(.65)}}
@keyframes bc-juggle-second{0%{opacity:0;transform:translate(-100px,170px) scale(.6)}25%{opacity:1;transform:translate(-30px,90px) scale(.8)}50%{transform:translate(15px,-55px) scale(1)}80%{transform:translate(50px,5px) scale(.95)}100%{opacity:1;transform:translate(35px,120px) scale(.7)}}
@keyframes bc-pinfall-ball{0%{transform:translate(-25px,5px) scale(.85)}55%{transform:translate(260px,-45px) scale(.8)}84%{opacity:1;transform:translate(420px,-50px) scale(.75)}100%{opacity:0;transform:translate(480px,-20px) scale(.7)}}
/* Squarer lane viewports give the cartoon the stage and keep a short caption below. */
@container (min-width:421px) and (max-aspect-ratio:3/2){.bc-content{inset:9% 5% 10%;grid-template-columns:1fr;grid-template-rows:minmax(0,1.65fr) minmax(0,.35fr);gap:0}.bc-picture{width:100%;height:100%;margin:0;align-self:end;aspect-ratio:1.7778}.bc-type{align-self:start;text-align:center;padding:0}.bc-title,.bowling-celebration:is([data-kind=gutter],[data-kind=miss],[data-kind=pinfall]) .bc-title{font-size:clamp(40px,7.5cqw,80px)}.bowling-celebration .bc-copy{max-width:40em;font-size:clamp(11px,1.65cqw,16px);margin:9px auto 0}.bc-tally{display:none}}
/* A stacked storybook composition on phones, with a separate text area. */
@container (max-width:420px){.bc-brand{top:5%;font-size:8px;letter-spacing:.15em}.bc-content{inset:10% 5% 10%;grid-template-columns:1fr;grid-template-rows:minmax(0,1.15fr) minmax(0,.85fr);gap:0}.bc-picture{width:100%;height:100%;max-height:100%;margin:0;aspect-ratio:1.6;align-self:end}.bc-type{align-self:start;text-align:center;padding:2% 0 0}.bc-title{font-size:clamp(34px,13.5cqw,62px)}.bowling-celebration .bc-copy{max-width:26em;font-size:clamp(10px,3cqw,13px);line-height:1.4;margin:10px auto 0}.bc-tally{display:none}.bc-watermark{top:-1%;right:-11%;font-size:100cqw}.bc-border{inset:9px}.bowling-celebration:is([data-kind=gutter],[data-kind=miss],[data-kind=pinfall]) .bc-title{font-size:clamp(31px,12cqw,55px)}}
/* Short fullscreen stages keep an entire actor and the result, without tiny copy. */
@container (max-height:230px){.bc-brand{top:5%;font-size:7px;letter-spacing:.14em}.bc-content{inset:12% 4% 8% 0;grid-template-columns:59% minmax(0,1fr);grid-template-rows:1fr}.bc-picture{height:100%;width:100%;max-height:none;margin:0;align-self:center}.bc-type{align-self:center;text-align:left;padding:0 0 2%}.bc-title,.bowling-celebration:is([data-kind=gutter],[data-kind=miss],[data-kind=pinfall]) .bc-title{font-size:clamp(23px,6.3cqw,60px)}.bc-copy,.bc-tally{display:none}.bc-border{inset:6px}.bc-watermark{font-size:65cqw;top:-50%;right:0}.bc-shell:after{height:6%;background-size:20px 20px}}
.bowling-celebration.is-paused,.bowling-celebration.is-paused *,.bowling-celebration.is-paused *:before,.bowling-celebration.is-paused *:after{animation-play-state:paused!important}
.bowling-celebration[data-reduced=true] *,.bowling-celebration[data-reduced=true] *:before,.bowling-celebration[data-reduced=true] *:after{animation:none!important}
.bowling-celebration[data-reduced=true] .bc-type{transform:rotate(-3deg)}.bowling-celebration[data-reduced=true] .bc-pin-hit{transform:translate(var(--pin-x),var(--pin-y)) rotate(var(--pin-angle));opacity:.35}.bowling-celebration[data-reduced=true] .bc-confetti,.bowling-celebration[data-reduced=true] .bc-flour-cloud,.bowling-celebration[data-reduced=true] .bc-impact,.bowling-celebration[data-reduced=true] .bc-trail,.bowling-celebration[data-reduced=true] .bc-speed-lines{display:none}
@media(prefers-reduced-motion:reduce){.bowling-celebration *,.bowling-celebration *:before,.bowling-celebration *:after{animation:none!important}.bowling-celebration .bc-pin-hit{transform:translate(var(--pin-x),var(--pin-y)) rotate(var(--pin-angle));opacity:.35}.bowling-celebration .bc-confetti,.bowling-celebration .bc-flour-cloud,.bowling-celebration .bc-impact,.bowling-celebration .bc-trail,.bowling-celebration .bc-speed-lines{display:none}}

/* Fixed celebration offsets live in the stylesheet so CSP blocks no inline styles. */
.bc-pin-0{--pin-delay:0.000s;--pin-x:35px;--pin-y:-25px;--pin-angle:115deg}
.bc-pin-1{--pin-delay:0.025s;--pin-x:-44px;--pin-y:-42px;--pin-angle:-105deg}
.bc-pin-2{--pin-delay:0.050s;--pin-x:53px;--pin-y:-59px;--pin-angle:115deg}
.bc-pin-3{--pin-delay:0.075s;--pin-x:-62px;--pin-y:-25px;--pin-angle:-105deg}
.bc-pin-4{--pin-delay:0.000s;--pin-x:71px;--pin-y:-42px;--pin-angle:115deg}
.bc-pin-5{--pin-delay:0.025s;--pin-x:-80px;--pin-y:-59px;--pin-angle:-105deg}
.bc-pin-6{--pin-delay:0.050s;--pin-x:89px;--pin-y:-25px;--pin-angle:115deg}
.bc-pin-7{--pin-delay:0.075s;--pin-x:-98px;--pin-y:-42px;--pin-angle:-105deg}
.bc-pin-8{--pin-delay:0.000s;--pin-x:107px;--pin-y:-59px;--pin-angle:115deg}
.bc-pin-9{--pin-delay:0.025s;--pin-x:-116px;--pin-y:-25px;--pin-angle:-105deg}
.bc-confetti-0{--spark-delay:0.000s;--spark-x:-20px;--spark-turn:-110deg}
.bc-confetti-1{--spark-delay:0.045s;--spark-x:23px;--spark-turn:95deg}
.bc-confetti-2{--spark-delay:0.090s;--spark-x:-26px;--spark-turn:-110deg}
.bc-confetti-3{--spark-delay:0.135s;--spark-x:29px;--spark-turn:95deg}
.bc-confetti-4{--spark-delay:0.180s;--spark-x:-32px;--spark-turn:-110deg}
.bc-confetti-5{--spark-delay:0.000s;--spark-x:35px;--spark-turn:95deg}
.bc-confetti-6{--spark-delay:0.045s;--spark-x:-38px;--spark-turn:-110deg}
.bc-confetti-7{--spark-delay:0.090s;--spark-x:41px;--spark-turn:95deg}
.bc-confetti-8{--spark-delay:0.135s;--spark-x:-44px;--spark-turn:-110deg}
.bc-confetti-9{--spark-delay:0.180s;--spark-x:47px;--spark-turn:95deg}
.bc-confetti-10{--spark-delay:0.000s;--spark-x:-50px;--spark-turn:-110deg}
.bc-confetti-11{--spark-delay:0.045s;--spark-x:53px;--spark-turn:95deg}
.bc-confetti-12{--spark-delay:0.090s;--spark-x:-56px;--spark-turn:-110deg}
.bc-confetti-13{--spark-delay:0.135s;--spark-x:59px;--spark-turn:95deg}
