.balloon-entry{padding:1.15rem 0 3rem;color:var(--color-ink)}
.balloon-entry__back{display:inline-flex;gap:.45rem;align-items:center;margin:0 0 .9rem;color:var(--color-primary);font-weight:700;text-decoration:none}
.balloon-entry__back:focus-visible,.balloon-entry button:focus-visible,.balloon-entry a:focus-visible,.balloon-entry input:focus-visible+span{outline:3px solid #2476df;outline-offset:3px}
.balloon-entry__eyebrow{display:inline-flex;align-items:center;gap:.45rem;color:var(--color-primary);font-size:.75rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.balloon-setup{overflow:hidden;border:1px solid var(--color-line);border-radius:1rem;background:var(--color-surface);box-shadow:var(--color-shadow)}
.balloon-setup__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);min-height:220px;border-bottom:1px solid var(--color-line);background:linear-gradient(110deg,var(--color-surface),var(--color-surface-soft))}
.balloon-setup__intro{align-self:center;padding:1.45rem clamp(1.25rem,3vw,2.2rem)}
.balloon-setup__intro h1{margin:.45rem 0 .55rem;font-size:clamp(2rem,3.2vw,3rem);line-height:1.05;letter-spacing:-.04em}
.balloon-setup__intro>p{max-width:42rem;margin:0;color:var(--color-muted);font-size:1rem;line-height:1.55}
.balloon-setup__art{display:block;width:100%;height:100%;min-height:220px;max-height:300px;object-fit:cover;object-position:center 54%}
.balloon-entry__meta{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 0}.balloon-entry__meta span{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .62rem;border:1px solid var(--color-line);border-radius:.4rem;background:var(--color-surface);font-size:.82rem;font-weight:650}
.balloon-setup__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.8fr);gap:1rem;padding:1rem}
.balloon-setup__side{display:grid;align-content:start;gap:1rem}
.balloon-panel{min-width:0;padding:1rem 1.1rem;border:1px solid var(--color-line);border-radius:.65rem;background:var(--color-surface)}
.balloon-panel__heading{display:flex;align-items:flex-start;gap:.7rem;margin-bottom:.85rem}.balloon-panel__heading h2{margin:0;font-size:1.08rem;line-height:1.3}.balloon-panel__heading p{margin:.2rem 0 0;color:var(--color-muted);font-size:.84rem;line-height:1.4}
.balloon-panel__step{display:grid;flex:0 0 2rem;width:2rem;height:2rem;place-items:center;border-radius:.5rem;background:#e9f1ff;color:#1761c5;font-size:.76rem;font-weight:850}[data-theme="dark"] .balloon-panel__step{background:#263c5c;color:#9dc3ff}
.balloon-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}
.balloon-preset{display:flex;min-width:0;align-items:center;gap:.6rem;padding:.65rem .75rem;border:1px solid var(--color-line);border-radius:.55rem;background:var(--color-surface);color:var(--color-ink);text-align:left;cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.balloon-preset:hover{transform:translateY(-1px);border-color:#8fb9f4}.balloon-preset>i{display:grid;flex:0 0 2rem;width:2rem;height:2rem;place-items:center;border-radius:.48rem;background:#fff4cf;color:#cb8a00;font-size:1rem}.balloon-preset:nth-child(2)>i{background:#eaf2ff;color:#3975d1}.balloon-preset:nth-child(3)>i{background:#e9f8f0;color:#2a9b69}.balloon-preset:nth-child(4)>i{background:#f4ebff;color:#8555cb}.balloon-preset b,.balloon-preset small{display:block}.balloon-preset b{font-size:.88rem}.balloon-preset small{margin-top:.12rem;color:var(--color-muted);font-size:.73rem}.balloon-preset.is-active{border-color:#3975d1;background:#f1f6ff;box-shadow:inset 0 0 0 1px #3975d1}[data-theme="dark"] .balloon-preset.is-active{background:#1d2d47}
.balloon-letter-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.balloon-letter-group{min-width:0;margin:0;padding:.65rem;border:1px solid var(--color-line);border-radius:.55rem}.balloon-letter-group legend{float:none;width:auto;margin:0 0 .45rem;padding:0 .2rem;color:var(--color-muted);font-size:.75rem;font-weight:750}.balloon-letter-group legend i{margin-right:.25rem;color:var(--color-primary)}
.balloon-letters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem}.balloon-letter{position:relative;min-width:0}.balloon-letter input{position:absolute;width:1px;height:1px;opacity:0}.balloon-letter span{display:grid;min-height:2rem;place-items:center;border:1px solid var(--color-line);border-radius:.38rem;background:var(--color-surface-soft);color:var(--color-ink);font-size:.86rem;font-weight:800;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.balloon-letter input:checked+span{border-color:#3575d1;background:#e9f2ff;color:#1558ad}[data-theme="dark"] .balloon-letter input:checked+span{border-color:#6d9de3;background:#253c5e;color:#c6dcff}.balloon-letter input:focus-visible+span{outline:3px solid #2476df;outline-offset:2px}
.balloon-selection-count{display:flex;align-items:center;gap:.4rem;margin:.65rem 0 0;color:var(--color-muted);font-size:.8rem}.balloon-selection-count i{color:#239b68}
.balloon-speed-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.balloon-speed-option,.balloon-crowd-options label{position:relative;min-width:0}.balloon-speed-option input,.balloon-crowd-options input{position:absolute;width:1px;height:1px;opacity:0}.balloon-speed-option>span{display:flex;min-height:3.25rem;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;border:1px solid var(--color-line);border-radius:.5rem;background:var(--color-surface-soft);cursor:pointer}.balloon-speed-option>span i{color:var(--color-primary)}.balloon-speed-option>span b{font-size:.8rem}.balloon-speed-option input:checked+span{border-color:#3575d1;background:#edf4ff;color:#1458b0;box-shadow:inset 0 0 0 1px #3575d1}[data-theme="dark"] .balloon-speed-option input:checked+span{background:#233958;color:#c6dcff}
.balloon-crowd-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.balloon-crowd-options span{display:grid;min-height:2.7rem;place-items:center;border:1px solid var(--color-line);border-radius:.5rem;background:var(--color-surface-soft);font-size:1.05rem;font-weight:800;cursor:pointer}.balloon-crowd-options input:checked+span{border-color:#3575d1;background:#edf4ff;color:#1458b0;box-shadow:inset 0 0 0 1px #3575d1}[data-theme="dark"] .balloon-crowd-options input:checked+span{background:#233958;color:#c6dcff}
.balloon-howto{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem .95rem;border:1px solid #f0d98a;border-radius:.6rem;background:#fff9e5;color:#53441c}.balloon-howto>i{margin-top:.1rem;color:#d09510;font-size:1.1rem}.balloon-howto strong{font-size:.85rem}.balloon-howto p{margin:.2rem 0 0;color:#6e613d;font-size:.78rem;line-height:1.45}[data-theme="dark"] .balloon-howto{border-color:#65552b;background:#29291f;color:#fff0be}[data-theme="dark"] .balloon-howto p{color:#d5cba5}
.balloon-setup__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;border-top:1px solid var(--color-line);background:var(--color-surface-soft)}.balloon-setup__footer p{display:flex;align-items:center;gap:.4rem;margin:0;color:var(--color-muted);font-size:.8rem}.balloon-setup__footer p i{color:#239b68}.balloon-start{flex:0 0 auto;min-height:2.9rem}
.balloon-play{overflow:hidden;border:1px solid var(--color-line);border-radius:.9rem;background:var(--color-surface);box-shadow:var(--color-shadow)}.balloon-play__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--color-line)}.balloon-play__toolbar>div:first-child{display:grid;gap:.15rem}.balloon-play__toolbar strong{font-size:1.05rem}.balloon-play__stats{display:flex;align-items:center;gap:.8rem}.balloon-play__stats>span{white-space:nowrap;font-size:.9rem}.balloon-play__stats>span:first-child i{color:#e7a900}.balloon-play__stats>span:nth-child(2) i{color:#e34b69}.balloon-pause{min-height:2.35rem;padding:.35rem .75rem}.balloon-play__hint{padding:.55rem 1rem;background:#fff7d9;color:#604c0a;text-align:center;font-size:.88rem;font-weight:700}[data-theme="dark"] .balloon-play__hint{background:#302b1b;color:#ffe9a2}
.balloon-stage{position:relative;min-height:min(62vh,620px);overflow:hidden;background:linear-gradient(180deg,#93dcff 0%,#d8f3ff 70%,#bdeca2 70%,#8fd67c 100%);isolation:isolate}.balloon-stage:before{position:absolute;right:-5%;bottom:12%;left:-5%;height:15%;border-radius:50% 50% 0 0;background:rgba(255,255,255,.35);content:""}.balloon-stage:after{position:absolute;right:0;bottom:0;left:0;height:8%;background:linear-gradient(0deg,rgba(48,128,66,.17),transparent);content:""}
.balloon-flyer{position:absolute;z-index:2;top:-90px;left:var(--balloon-x);display:grid;width:clamp(3.4rem,7vw,5rem);height:clamp(4.2rem,8vw,6rem);place-items:center;border:0;border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 32% 25%,rgba(255,255,255,.95) 0 5%,transparent 21%),radial-gradient(circle at 35% 28%,#fff7 0 4%,transparent 27%),var(--balloon-color);box-shadow:inset -8px -9px 13px rgba(30,45,80,.18),0 7px 12px rgba(27,69,113,.2);color:white;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:900;text-shadow:0 2px 3px #0004;transform:translateX(-50%);animation:balloon-wiggle 1.9s ease-in-out infinite alternate;user-select:none}.balloon-flyer:after{position:absolute;bottom:-.42rem;left:50%;width:.5rem;height:.5rem;background:var(--balloon-color);clip-path:polygon(0 0,100% 0,50% 100%);content:"";transform:translateX(-50%)}.balloon-flyer.is-popping{animation:balloon-pop .22s ease-out forwards}.balloon-flyer__string{position:absolute;top:calc(100% + .45rem);left:50%;height:2.4rem;border-left:1px dashed rgba(54,84,99,.6)}
@keyframes balloon-wiggle{from{margin-left:-5px}to{margin-left:5px}}@keyframes balloon-pop{to{opacity:0;transform:translateX(-50%) scale(1.7)}}
.balloon-play__footer{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.65rem 1rem;border-top:1px solid var(--color-line);color:var(--color-muted);font-size:.8rem}.balloon-play__footer>span{display:inline-flex;align-items:center;gap:.4rem}.balloon-play__footer>span i{color:var(--color-primary)}.balloon-play__footer .button{min-height:2.2rem;padding:.25rem .55rem}
.balloon-result{max-width:680px;margin:3rem auto;padding:2.3rem 1.5rem;border:1px solid var(--color-line);border-radius:1rem;background:var(--color-surface);box-shadow:var(--color-shadow);text-align:center}.balloon-result__icon{display:grid;width:4.3rem;height:4.3rem;margin:0 auto 1rem;place-items:center;border-radius:1.3rem;background:#fff2ca;color:#e5a700;font-size:2rem}.balloon-result h2{margin:.35rem 0;font-size:2rem}.balloon-result>p:not(.balloon-entry__eyebrow){color:var(--color-muted)}.balloon-result__score{display:inline-flex;align-items:center;gap:.45rem;margin:.5rem 0 1.3rem;padding:.65rem 1rem;border:1px solid #f1d37b;border-radius:.6rem;background:#fff9e5;color:#624e0a;font-size:1.3rem}[data-theme="dark"] .balloon-result__score{border-color:#65552b;background:#29291f;color:#ffe9a2}.balloon-result__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem}
[hidden]{display:none!important}
@media(max-width:900px){.balloon-setup__hero{grid-template-columns:minmax(0,1fr) minmax(260px,.75fr)}.balloon-setup__grid{grid-template-columns:minmax(0,1fr) minmax(240px,.7fr)}.balloon-presets{grid-template-columns:1fr}.balloon-preset{padding:.48rem .6rem}.balloon-preset>i{width:1.8rem;height:1.8rem;flex-basis:1.8rem}}
@media(max-width:680px){.balloon-entry{padding-top:.8rem}.balloon-setup__hero{grid-template-columns:1fr}.balloon-setup__art{order:-1;height:clamp(175px,48vw,260px);min-height:0}.balloon-setup__intro{padding:1.1rem}.balloon-setup__intro h1{font-size:2.2rem}.balloon-setup__grid{grid-template-columns:1fr;padding:.65rem}.balloon-setup__side{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.balloon-howto{grid-column:1/-1}.balloon-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.balloon-preset{padding:.55rem}.balloon-setup__footer{align-items:stretch;flex-direction:column}.balloon-setup__footer p{justify-content:center;text-align:center}.balloon-start{width:100%}.balloon-play__toolbar{align-items:flex-start;flex-direction:column}.balloon-play__stats{width:100%;justify-content:space-between;gap:.35rem}.balloon-stage{min-height:56vh}.balloon-play__footer{align-items:flex-start;flex-direction:column}.balloon-result{margin:1.5rem auto;padding:1.6rem 1rem}}
@media(max-width:420px){.balloon-letter-groups{grid-template-columns:1fr}.balloon-setup__side{grid-template-columns:1fr}.balloon-howto{grid-column:auto}.balloon-panel{padding:.85rem}.balloon-play__stats>span{font-size:.78rem}.balloon-result__actions{flex-direction:column}.balloon-result__actions>*{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.balloon-flyer,.balloon-flyer.is-popping{animation:none}}
.balloon-fullscreen{min-height:2.35rem;padding:.35rem .7rem;white-space:nowrap}.balloon-fullscreen i{margin-right:.15rem}
.balloon-play:fullscreen{display:flex;width:100vw;height:100vh;min-height:100vh;flex-direction:column;border:0;border-radius:0;background:var(--color-surface)}.balloon-play:fullscreen .balloon-play__toolbar,.balloon-play:fullscreen .balloon-play__hint,.balloon-play:fullscreen .balloon-play__footer{flex:0 0 auto}.balloon-play:fullscreen .balloon-stage{flex:1 1 auto;min-height:0}
@media(max-width:680px){.balloon-play__stats{flex-wrap:wrap}.balloon-fullscreen{padding-inline:.5rem}}
.balloon-cannon{position:absolute;z-index:4;bottom:8px;left:50%;width:74px;height:60px;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 3px 3px #18334a55)}
.balloon-cannon__body{position:absolute;bottom:9px;left:50%;width:37px;height:28px;border:3px solid #24455c;border-radius:50% 50% 35% 35%;background:linear-gradient(145deg,#effaff,#7eb5cf 72%,#4f829e);transform:translateX(-50%)}
.balloon-cannon__barrel{position:absolute;z-index:1;bottom:27px;left:50%;width:12px;height:39px;border:3px solid #24455c;border-radius:8px 8px 3px 3px;background:linear-gradient(90deg,#eafaff,#66a7c5 65%,#42718d);transform:translateX(-50%) rotate(var(--cannon-angle,0deg));transform-origin:50% 100%;transition:transform .12s ease-out}
.balloon-cannon__wheel{position:absolute;bottom:1px;width:20px;height:20px;border:3px solid #19394f;border-radius:50%;background:radial-gradient(circle,#f8d46b 0 20%,#526b7b 23% 100%)}.balloon-cannon__wheel--left{left:12px}.balloon-cannon__wheel--right{right:12px}
.balloon-cannon.is-firing .balloon-cannon__body{animation:cannon-recoil .14s ease-out}
@keyframes cannon-recoil{50%{transform:translate(-50%,3px)}}
.balloon-laser{position:absolute;z-index:3;height:5px;border-radius:999px;background:linear-gradient(90deg,#fff,#78f4ff 45%,#25b9ff);box-shadow:0 0 6px 2px #55dbff,0 0 16px 5px #46caff88;opacity:0;transform:rotate(var(--laser-angle)) scaleX(.03);transform-origin:0 50%;pointer-events:none}
.balloon-laser.is-firing{animation:laser-shot .15s ease-out forwards}
@keyframes laser-shot{to{opacity:1;transform:rotate(var(--laser-angle)) scaleX(1)}}
.balloon-flyer.is-targeted{filter:brightness(1.3) drop-shadow(0 0 9px #fff)}.balloon-flyer.is-popping{z-index:5;animation:balloon-pop .24s ease-out forwards}
.balloon-flyer.is-popping:before{position:absolute;z-index:-1;inset:-.55rem;border:4px solid #fff8;border-radius:50%;background:radial-gradient(circle,#fff9 0 12%,#ffe96b88 15% 35%,transparent 68%);content:"";animation:balloon-burst .24s ease-out forwards}
@keyframes balloon-burst{to{inset:-1.7rem;opacity:0;transform:scale(1.8)}}
.balloon-play__mistakes{display:grid;gap:.35rem;padding:.45rem 1rem .55rem;border-top:1px solid var(--color-line);background:var(--color-surface-soft)}.balloon-play__mistakes-head{display:flex;justify-content:space-between;color:var(--color-muted);font-size:.72rem}.balloon-play__mistakes-head b{color:var(--color-ink);font-variant-numeric:tabular-nums}.balloon-play__mistakes-track{height:6px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--color-line) 72%,transparent)}.balloon-play__mistakes-track>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f1c446,#e85d68);transition:width .2s ease}
.balloon-miss-toast{position:absolute;z-index:6;right:1rem;bottom:4.8rem;left:1rem;width:max-content;max-width:calc(100% - 2rem);margin:auto;padding:.55rem .85rem;border:1px solid #f1d98b;border-radius:999px;background:#fff8dd;color:#59440b;font-size:.82rem;font-weight:700;text-align:center;box-shadow:0 8px 24px #19334a2b;opacity:0;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}[data-theme="dark"] .balloon-miss-toast{border-color:#80652d;background:#302a19;color:#ffe8a1}.balloon-miss-toast.is-visible{opacity:1;transform:translateY(0)}.balloon-miss-toast.is-life-loss{border-color:#ef9b70;background:#fff0e8;color:#8b321e}[data-theme="dark"] .balloon-miss-toast.is-life-loss{border-color:#9d573b;background:#38221b;color:#ffc1a6}
.balloon-play:fullscreen .balloon-play__mistakes{flex:0 0 auto}
@media(max-width:520px){.balloon-miss-toast{right:.5rem;left:.5rem;max-width:calc(100% - 1rem);border-radius:.7rem;font-size:.75rem}.balloon-cannon{transform:translateX(-50%) scale(.88);transform-origin:bottom center}}
@media(prefers-reduced-motion:reduce){.balloon-laser.is-firing,.balloon-cannon.is-firing .balloon-cannon__body,.balloon-flyer.is-popping:before{animation-duration:.01ms;animation-iteration-count:1}}
