/* TypeQuest Bonus Lab experimental styles v0.7.2 */
.bonus-lab-card{margin-top:18px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-color:#d9d3f0;background:linear-gradient(135deg,#fff,#f7f5ff)}
.bonus-lab-card .kicker{color:#7052bd}.bonus-lab-card h3{margin:5px 0 6px;font-size:1.2rem}.bonus-lab-card p{margin:0;color:var(--muted);line-height:1.45;max-width:760px}.bonus-lab-card button{background:#7052bd;white-space:nowrap}.experimental-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eee9ff;color:#5d45a0;font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.bonus-select-banner{background:linear-gradient(135deg,#fff,#f7f5ff);border-color:#ddd5f5}.bonus-select-banner .track-kicker{color:#7052bd}.bonus-unit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.bonus-unit{padding:11px 10px;border:1px solid var(--line);background:#fff;color:var(--ink);text-align:left;min-height:70px}.bonus-unit strong,.bonus-unit small{display:block}.bonus-unit strong{font-size:.84rem}.bonus-unit small{font-size:.67rem;color:var(--muted);margin-top:4px;line-height:1.25}.bonus-unit.active{border-color:#8269c4;background:#f4f0ff;box-shadow:0 0 0 2px rgba(112,82,189,.09)}.bonus-unit.locked{opacity:.45;cursor:not-allowed}.bonus-unit.locked:hover{transform:none;box-shadow:none}
body.bonus-game-active main{max-width:1180px;padding-top:12px;padding-bottom:18px;min-height:calc(100vh - 72px)}body.bonus-game-active .site-footer{display:none}.bonus-runner{max-width:1100px}.bonus-runner .runner-nav{margin-bottom:6px}.bonus-game-card{padding:0;overflow:hidden;border-color:#d9d3f0}.bonus-game-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 15px;border-bottom:1px solid var(--line);background:#faf9ff}.bonus-title-wrap{display:flex;align-items:center;gap:10px}.bonus-title-wrap h1{margin:0;font-size:1.25rem;letter-spacing:-.03em}.bonus-title-wrap p{margin:2px 0 0;color:var(--muted);font-size:.7rem}.bonus-metrics{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.bonus-metric{padding:6px 9px;border-radius:999px;border:1px solid #ded8ef;background:#fff;font-size:.7rem;font-weight:850;color:var(--ink-2)}.bonus-metric.primary{background:#f0edff;color:#5b439c;border-color:#d6cef2}
.bonus-playfield{position:relative;height:min(56vh,455px);min-height:335px;overflow:hidden;background:linear-gradient(180deg,#eef6ff 0%,#f7fbff 58%,#eef7f1 100%);outline:none}.bonus-playfield:focus-visible{box-shadow:inset 0 0 0 3px rgba(112,82,189,.25)}.bonus-sky-cloud{position:absolute;border-radius:999px;background:rgba(255,255,255,.72);height:24px;width:90px}.bonus-sky-cloud:before,.bonus-sky-cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.bonus-sky-cloud:before{width:38px;height:38px;left:12px;top:-17px}.bonus-sky-cloud:after{width:45px;height:45px;right:12px;top:-23px}.bonus-sky-cloud.c1{top:16%;left:8%;transform:scale(.8)}.bonus-sky-cloud.c2{top:28%;right:7%;transform:scale(.6)}
.bonus-target{position:absolute;top:0;z-index:4;display:grid;place-items:center;min-width:78px;min-height:88px;padding:15px 15px 25px;border-radius:52% 48% 49% 51%/55% 55% 45% 45%;background:linear-gradient(145deg,#ffffff,#efe6ff);border:2px solid #7d63c7;box-shadow:0 10px 18px rgba(84,63,137,.18);font-weight:900;color:#2f2448;will-change:transform}.bonus-target:after{content:"";position:absolute;left:50%;bottom:-24px;width:1px;height:25px;background:#8269c4}.bonus-target-label{display:block;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.96rem}.bonus-target-label .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.bonus-target.locked{border-color:#0b9b88;box-shadow:0 0 0 4px rgba(11,155,136,.13),0 9px 18px rgba(84,63,137,.15)}.bonus-target.complete{animation:bonusPop .22s ease forwards}.bonus-target.bonus-error,.bonus-playfield.bonus-error{animation:bonusError .15s ease}.bonus-target.reduced{transform:none!important;min-height:70px;padding-bottom:20px}.bonus-target-life{position:absolute;left:12px;right:12px;bottom:9px;height:4px;background:rgba(112,82,189,.15);border-radius:999px;overflow:hidden}.bonus-target-life span{display:block;height:100%;width:100%;background:#7052bd;border-radius:inherit}
.bonus-overlay[hidden]{display:none!important}
.bonus-status{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 14px;border-top:1px solid var(--line);background:#fff}.bonus-typing{min-width:0}.bonus-typing strong{font-size:.72rem}.bonus-typing code{display:inline-block;margin-left:7px;padding:4px 7px;border-radius:7px;background:#f2f4f7;color:var(--ink);font-weight:850}.bonus-status-text{font-size:.68rem;color:var(--muted);text-align:right}.bonus-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:12px;overflow:auto;background:rgba(247,249,252,.87);backdrop-filter:blur(3px)}.bonus-overlay-card{width:min(430px,100%);max-height:100%;overflow:auto;padding:clamp(16px,2.4vh,24px);border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);text-align:center;scrollbar-gutter:stable}.bonus-overlay-card h2{margin:7px 0 8px;font-size:clamp(1.45rem,3.2vw,1.8rem);letter-spacing:-.045em}.bonus-overlay-card p{color:var(--muted);line-height:1.45}.bonus-overlay-card .action-row{justify-content:center;margin-top:18px}.bonus-result-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0}.bonus-result-stats div{padding:11px;border-radius:12px;background:var(--surface-soft);border:1px solid var(--line)}.bonus-result-stats strong{display:block;font-size:1.25rem}.bonus-result-stats span{display:block;font-size:.68rem;color:var(--muted);margin-top:2px}
@keyframes bonusPop{to{transform:scale(1.22);opacity:0}}@keyframes bonusError{50%{filter:saturate(1.5);box-shadow:inset 0 0 0 4px rgba(197,59,80,.12)}}
@media(max-width:900px){.bonus-unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bonus-game-top{align-items:flex-start;flex-direction:column}.bonus-metrics{justify-content:flex-start}.bonus-playfield{height:52vh}}
@media(max-width:720px){.bonus-lab-card{align-items:flex-start;flex-direction:column}.bonus-lab-card button{width:100%}.bonus-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bonus-status{align-items:flex-start;flex-direction:column}.bonus-status-text{text-align:left}.bonus-playfield{min-height:360px;height:54vh}}
@media(max-height:740px) and (min-width:721px){body.bonus-game-active main{padding-top:8px}.bonus-runner .runner-nav{margin-bottom:4px}.bonus-game-top{padding:7px 12px}.bonus-title-wrap h1{font-size:1.1rem}.bonus-playfield{height:calc(100vh - 235px);min-height:300px}.bonus-status{padding:7px 12px}.bonus-overlay{padding:8px}.bonus-overlay-card{padding:14px;max-height:100%}.bonus-overlay-card h2{margin:5px 0 6px;font-size:1.35rem}.bonus-overlay-card p{font-size:.9rem;line-height:1.38}.bonus-result-stats{gap:6px;margin:12px 0}.bonus-result-stats div{padding:8px}.bonus-result-stats strong{font-size:1.08rem}.bonus-result-stats span{font-size:.62rem}.bonus-overlay-card .action-row{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.bonus-target.complete,.bonus-target.bonus-error,.bonus-playfield.bonus-error{animation:none}.bonus-target{transition:none}.bonus-target.complete{opacity:0}}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* v0.7.2 Bonus Lab activity selection + Code Garden */
.bonus-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}.bonus-choice{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:16px 17px;text-align:left;border:1px solid var(--line);background:#fff;color:var(--ink);min-height:145px}.bonus-choice:hover{border-color:#cfc5ea}.bonus-choice.active{border-color:#8068c4;background:linear-gradient(135deg,#fff,#f5f1ff);box-shadow:0 0 0 2px rgba(112,82,189,.08)}.bonus-choice strong{font-size:1rem}.bonus-choice>span:not(.experimental-pill){font-size:.78rem;line-height:1.42;color:var(--muted)}.bonus-choice small{margin-top:auto;color:#7052bd;font-weight:800;font-size:.67rem}
.garden-playfield{background:linear-gradient(180deg,#eaf6ff 0%,#f9fcff 54%,#e5f2df 55%,#d7ead0 100%)}.garden-scene{position:absolute;inset:0;overflow:hidden}.garden-sky{position:absolute;inset:0 0 42% 0}.garden-sun{position:absolute;right:9%;top:11%;width:58px;height:58px;border-radius:50%;background:#ffd968;box-shadow:0 0 0 9px rgba(255,217,104,.18)}.garden-cloud{position:absolute;width:88px;height:24px;border-radius:999px;background:rgba(255,255,255,.78)}.garden-cloud:before,.garden-cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.garden-cloud:before{width:38px;height:38px;left:12px;top:-16px}.garden-cloud:after{width:44px;height:44px;right:11px;top:-21px}.garden-cloud.gc1{left:9%;top:16%;transform:scale(.8)}.garden-cloud.gc2{right:24%;top:30%;transform:scale(.58)}.garden-bed{position:absolute;left:-3%;right:-3%;bottom:-16px;height:43%;border-radius:48% 48% 0 0/18% 18% 0 0;background:linear-gradient(180deg,#7dbb72,#5e9b57)}
.garden-growth-grid{position:absolute;left:5%;right:5%;bottom:4%;height:36%;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,1fr);align-items:end;gap:4px 9px;z-index:2}.garden-growth-slot{position:relative;display:block;height:72px;opacity:.16;transform:translateY(8px) scale(.78);transition:opacity .2s ease,transform .24s ease}.garden-growth-slot.grown{opacity:1;transform:translateY(0) scale(1)}.garden-growth-slot .stem{position:absolute;left:50%;bottom:8px;width:5px;height:39px;border-radius:999px;background:#327c43;transform:translateX(-50%)}.garden-growth-slot .leaf{position:absolute;bottom:24px;width:20px;height:11px;background:#4e9a58;border-radius:100% 0 100% 0}.garden-growth-slot .leaf.l1{left:50%;transform:translateX(-20px) rotate(20deg)}.garden-growth-slot .leaf.l2{left:50%;transform:translateX(1px) scaleX(-1) rotate(20deg)}.garden-growth-slot .bloom{position:absolute;left:50%;bottom:43px;width:27px;height:27px;border-radius:50%;background:#f29a7d;box-shadow:-13px 2px 0 -4px #f4b4c5,13px 2px 0 -4px #f4b4c5,0 -13px 0 -4px #ffd86d,0 13px 0 -4px #d69bd5;transform:translateX(-50%)}.garden-growth-slot:nth-child(3n+2) .bloom{background:#f4c75d;box-shadow:-13px 2px 0 -4px #fff0a3,13px 2px 0 -4px #fff0a3,0 -13px 0 -4px #f7a8a8,0 13px 0 -4px #f7a8a8}.garden-growth-slot:nth-child(3n) .bloom{background:#9b82d0;box-shadow:-13px 2px 0 -4px #c9b7ef,13px 2px 0 -4px #c9b7ef,0 -13px 0 -4px #7fc8bb,0 13px 0 -4px #7fc8bb}.garden-growth-slot:nth-child(even){height:61px}.garden-growth-slot:nth-child(4n){height:82px}
.garden-target-wrap{position:absolute;z-index:6;left:50%;top:38%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px}.garden-prompt{font-size:.68rem;text-transform:uppercase;letter-spacing:.11em;font-weight:900;color:#557062}.garden-target{min-width:170px;padding:17px 22px;border-radius:16px;border:2px solid #75a77a;background:rgba(255,255,255,.95);box-shadow:0 12px 28px rgba(44,83,55,.14);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.18rem;font-weight:900;text-align:center;color:#294434}.garden-target .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.garden-target.locked{border-color:#0b9b88;box-shadow:0 0 0 4px rgba(11,155,136,.11),0 12px 28px rgba(44,83,55,.14)}.garden-target.complete{animation:gardenTargetComplete .18s ease}.garden-target.bonus-error{animation:bonusError .15s ease}.garden-complete .garden-sun{box-shadow:0 0 0 14px rgba(255,217,104,.21)}.garden-results{grid-template-columns:repeat(3,1fr)}
@keyframes gardenTargetComplete{50%{transform:scale(1.05);border-color:#0b9b88}}
@media(max-width:720px){.bonus-choice-grid{grid-template-columns:1fr}.garden-growth-grid{left:3%;right:3%;gap:2px 4px}.garden-target-wrap{top:34%}.garden-target{min-width:145px}}
@media(prefers-reduced-motion:reduce){.garden-growth-slot{transition:none}.garden-target.complete,.garden-target.bonus-error{animation:none}.garden-cloud,.garden-sun{transform:none}}

/* v0.7.3 Circuit Packet Route */
.bonus-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.circuit-playfield{background:linear-gradient(180deg,#eef4fb 0%,#f8fbff 100%)}
.route-scene{position:absolute;inset:0;overflow:hidden;background-image:radial-gradient(circle at 1px 1px,rgba(82,112,146,.12) 1px,transparent 0);background-size:24px 24px}
.route-source,.route-junction,.route-server,.route-miss-bin{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #b9c7d8;background:rgba(255,255,255,.96);box-shadow:0 8px 18px rgba(58,79,103,.1);color:#32475e;font-weight:900}
.route-source{left:3.5%;top:50%;transform:translateY(-50%);width:95px;height:54px;border-radius:12px;font-size:.66rem;letter-spacing:.08em}
.route-junction{left:48%;top:50%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:18px;border-color:#8f79ce;background:linear-gradient(145deg,#fff,#f0ebff);color:#594491;font-size:.65rem;letter-spacing:.07em}
.route-junction:before{content:"";width:20px;height:20px;border:3px solid #7052bd;border-radius:50%;margin-bottom:4px;box-shadow:inset 0 0 0 4px #fff}
.route-server{right:5%;width:96px;height:70px;border-radius:14px;transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}
.route-server-a{top:12%}.route-server-b{bottom:12%}.route-server strong{font-size:1.2rem;color:#7052bd}.route-server span{font-size:.62rem;letter-spacing:.09em}.route-server.lit{border-color:#0b9b88;box-shadow:0 0 0 5px rgba(11,155,136,.13),0 10px 22px rgba(58,79,103,.15);transform:scale(1.04)}
.route-miss-bin{left:45%;bottom:4%;transform:translateX(-50%);width:108px;height:34px;border-radius:10px;border-style:dashed;background:#f7f8fa;color:#6f7d8b;font-size:.58rem;letter-spacing:.08em;transition:background .18s ease,border-color .18s ease}.route-miss-bin.lit{background:#fff3e8;border-color:#d88c46;color:#9b5b22}
.route-line{position:absolute;z-index:1;height:4px;border-radius:999px;background:linear-gradient(90deg,#b7c6d6,#8f79ce)}
.route-line-in{left:12%;top:50%;width:32%;transform:translateY(-50%)}
.route-line-a,.route-line-b{left:51%;top:50%;width:36%;transform-origin:left center}
.route-line-a{transform:rotate(-30deg)}.route-line-b{transform:rotate(30deg)}
.route-packet{position:absolute;z-index:6;display:flex;align-items:center;gap:8px;min-width:145px;max-width:210px;padding:10px 12px;border-radius:12px;border:2px solid #6f8db0;background:linear-gradient(145deg,#fff,#edf5ff);box-shadow:0 10px 22px rgba(48,74,103,.17);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.92rem;font-weight:900;color:#26394d;will-change:left,top,transform}
.route-packet.locked{border-color:#0b9b88;box-shadow:0 0 0 4px rgba(11,155,136,.12),0 10px 22px rgba(48,74,103,.17)}.route-packet.bonus-error{border-color:#d43f55!important;outline:4px solid rgba(212,63,85,.38);outline-offset:2px;box-shadow:0 0 0 6px rgba(212,63,85,.20),0 10px 24px rgba(72,25,37,.24)!important}
.route-packet.complete{border-color:#7052bd;background:linear-gradient(145deg,#fff,#f1ecff)}
.route-destination{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#7052bd;color:#fff;font-family:Arial,sans-serif;font-size:.72rem}
.route-packet-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-packet-label .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.route-packet-life{display:none;position:absolute;left:10px;right:10px;bottom:5px;height:3px;border-radius:999px;background:#dbe4ee;overflow:hidden}.route-packet-life i{display:block;height:100%;width:100%;background:#7052bd;border-radius:inherit}
.route-packet.reduced{left:26%;top:50%;transform:translate(-50%,-50%);padding-bottom:14px}.route-packet.reduced .route-packet-life{display:block}
@media(max-width:950px){.bonus-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-source{width:80px}.route-server{right:3%;width:82px}.route-packet{min-width:125px;font-size:.82rem}}
@media(max-width:720px){.bonus-choice-grid{grid-template-columns:1fr}.route-source{left:2%;width:68px}.route-junction{width:66px;height:66px}.route-server{width:72px;height:62px}.route-packet{min-width:110px;max-width:155px;padding:9px 10px}.route-destination{width:23px;height:23px}}
@media(prefers-reduced-motion:reduce){.route-server,.route-miss-bin{transition:none}}

/* v0.7.4 Meteor Shield */
.bonus-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.defense-playfield{background:linear-gradient(180deg,#11192e 0%,#1f2b49 62%,#22334c 100%)}
.defense-stars{position:absolute;inset:0;background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.9) 0 1px,transparent 1.5px),radial-gradient(circle at 78% 12%,rgba(255,255,255,.75) 0 1px,transparent 1.5px),radial-gradient(circle at 38% 35%,rgba(255,255,255,.55) 0 1px,transparent 1.5px),radial-gradient(circle at 66% 42%,rgba(255,255,255,.7) 0 1px,transparent 1.5px),radial-gradient(circle at 90% 31%,rgba(255,255,255,.55) 0 1px,transparent 1.5px),radial-gradient(circle at 20% 55%,rgba(255,255,255,.45) 0 1px,transparent 1.5px);opacity:.9}
.defense-shield{position:absolute;z-index:3;left:5%;right:5%;bottom:55px;height:12px;border-radius:999px;background:linear-gradient(90deg,rgba(89,223,224,.45),#5ee1e5 15%,#a8ffff 50%,#5ee1e5 85%,rgba(89,223,224,.45));box-shadow:0 0 12px #5ee1e5,0 0 28px rgba(94,225,229,.55),0 0 52px rgba(94,225,229,.24)}
.defense-shield:before{content:"";position:absolute;left:0;right:0;bottom:-14px;height:35px;border-radius:50%;border-top:2px solid rgba(129,245,245,.6);opacity:.75}
.defense-shield span{position:absolute;right:0;bottom:17px;font-size:.55rem;font-weight:900;letter-spacing:.12em;color:#a8ffff;text-shadow:0 1px 4px #0a1224}
.defense-base{position:absolute;left:0;right:0;bottom:0;height:58px;background:linear-gradient(180deg,#263d50,#162334);border-top:1px solid rgba(255,255,255,.08)}
.defense-target{position:absolute;top:0;z-index:6;display:flex;align-items:center;gap:9px;min-width:105px;max-width:205px;padding:10px 13px;border-radius:16px;border:2px solid #d48355;background:linear-gradient(145deg,#fff8f1,#ffd5b9);box-shadow:0 7px 18px rgba(4,9,21,.34),0 0 0 2px rgba(255,167,102,.08);font-weight:900;color:#542d22;will-change:transform}
.defense-target.locked{border-color:#5ee1e5;box-shadow:0 0 0 4px rgba(94,225,229,.15),0 7px 18px rgba(4,9,21,.34)}.defense-target.bonus-error{border-color:#ff536d!important;outline:4px solid rgba(255,83,109,.48);outline-offset:2px;box-shadow:0 0 0 6px rgba(255,83,109,.22),0 0 22px rgba(255,83,109,.34),0 7px 18px rgba(4,9,21,.34)!important}
.defense-target.blocked{animation:defenseBlock .22s ease forwards}
.defense-rock{position:relative;flex:0 0 auto;width:30px;height:30px;border-radius:48% 52% 43% 57%;background:radial-gradient(circle at 35% 30%,#f9bc83 0 12%,transparent 13%),radial-gradient(circle at 68% 65%,#99513d 0 13%,transparent 14%),linear-gradient(145deg,#d97c52,#7e3d36);box-shadow:-8px -3px 13px rgba(255,123,63,.48)}
.defense-rock:before{content:"";position:absolute;right:25px;top:8px;width:35px;height:13px;border-radius:999px;background:linear-gradient(90deg,transparent,#ff8e43 45%,#ffd16b);filter:blur(1px);opacity:.9;z-index:-1}
.defense-target-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.94rem}.defense-target-label .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.defense-target-life{display:none;position:absolute;left:10px;right:10px;bottom:5px;height:3px;border-radius:999px;background:rgba(84,45,34,.15);overflow:hidden}.defense-target-life span{display:block;height:100%;width:100%;background:#d26b45;border-radius:inherit}
.defense-target.reduced{transform:translateX(-50%)!important;top:28%!important;padding-bottom:15px}.defense-target.reduced .defense-target-life{display:block}
.defense-playfield.shield-hit .defense-shield{animation:shieldHit .22s ease}.defense-playfield.shield-hit{box-shadow:inset 0 -65px 55px rgba(255,128,78,.16)}
@keyframes defenseBlock{50%{transform:scale(1.16);filter:brightness(1.25)}to{transform:scale(.72);opacity:0}}
@keyframes shieldHit{50%{box-shadow:0 0 18px #ffad82,0 0 45px rgba(255,119,72,.78);background:#ffbf9c}}
@media(max-width:1120px){.bonus-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.bonus-choice-grid{grid-template-columns:1fr}.defense-target{min-width:92px;max-width:150px;padding:8px 10px}.defense-rock{width:25px;height:25px}.defense-shield{left:3%;right:3%}}
@media(prefers-reduced-motion:reduce){.defense-target.blocked,.defense-playfield.shield-hit .defense-shield{animation:none}.defense-playfield.shield-hit{box-shadow:inset 0 -45px 40px rgba(255,128,78,.12)}}


/* v0.7.6 Keyboard Climb */
.bonus-choice-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.climb-playfield{background:linear-gradient(180deg,#dff1ff 0%,#f4f9ff 48%,#e6efe2 100%)}
.climb-course{position:absolute;left:2.5%;top:3%;bottom:3%;width:68%;overflow:hidden;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.04))}
.climb-mountain{position:absolute;left:8%;right:5%;bottom:-5%;height:92%;background:linear-gradient(145deg,#8ca3a8 0%,#667f80 42%,#526b68 100%);clip-path:polygon(4% 100%,22% 63%,34% 72%,51% 31%,63% 49%,75% 22%,98% 100%);filter:drop-shadow(0 12px 18px rgba(54,75,79,.2))}
.climb-mountain:after{content:"";position:absolute;left:44%;top:5%;width:31%;height:27%;background:linear-gradient(145deg,#fff,#eaf4f4);clip-path:polygon(0 52%,32% 0,55% 37%,72% 17%,100% 100%,41% 72%);opacity:.95}
.climb-platform{position:absolute;z-index:4;width:76px;height:18px;transform:translateX(-50%);border-radius:999px;background:#6a5142;box-shadow:0 4px 0 #47362c,0 7px 13px rgba(42,44,42,.16);transition:background .2s ease,box-shadow .2s ease,transform .2s ease}
.climb-platform i{position:absolute;left:50%;bottom:12px;width:2px;height:23px;background:rgba(255,255,255,.55)}
.climb-platform b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.58rem;color:#fff;letter-spacing:.04em}
.climb-platform.reached{background:#0b9b88;box-shadow:0 4px 0 #08796b,0 0 0 4px rgba(11,155,136,.12)}
.climb-platform.next{background:#7052bd;box-shadow:0 4px 0 #523c91,0 0 0 5px rgba(112,82,189,.14);transform:translateX(-50%) scale(1.08)}
.climb-summit{position:absolute;z-index:5;left:74%;top:4%;display:flex;align-items:center;gap:7px;color:#4c5660;font-size:.6rem;letter-spacing:.12em;font-weight:900;transition:color .2s ease,transform .2s ease}
.climb-flag{position:relative;width:3px;height:38px;background:#5a6670;border-radius:2px}.climb-flag:after{content:"";position:absolute;left:3px;top:2px;width:31px;height:17px;background:#7052bd;clip-path:polygon(0 0,100% 18%,77% 100%,0 88%)}
.climb-summit.reached{color:#0b7e67;transform:scale(1.08)}.climb-summit.reached .climb-flag:after{background:#0b9b88}
.climb-avatar{position:absolute;z-index:8;width:42px;height:50px;transform:translate(-50%,0);transition:left .34s ease,bottom .34s ease,transform .2s ease;filter:drop-shadow(0 5px 7px rgba(29,47,54,.22))}
.climb-avatar-head{position:absolute;left:50%;top:0;width:17px;height:17px;transform:translateX(-50%);border-radius:50%;background:#f2c7a7;border:2px solid #334a55}
.climb-avatar-body{position:absolute;left:50%;top:16px;transform:translateX(-50%);display:grid;place-items:center;width:33px;height:30px;border-radius:11px 11px 13px 13px;background:#2f6f87;border:2px solid #244f61;color:#fff;font-size:.55rem;font-weight:900;letter-spacing:.05em}
.climb-avatar.at-summit{transform:translate(-50%,-3px) scale(1.08)}
.climb-panel{position:absolute;z-index:7;right:3%;top:50%;transform:translateY(-50%);width:26%;min-width:205px;padding:18px;border:1px solid #cbd7df;border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 14px 30px rgba(56,78,91,.13)}
.climb-panel-kicker{display:block;margin-bottom:9px;color:#596b78;font-size:.62rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.climb-target{display:block;min-height:72px;padding:20px 13px;border:3px solid #6f8db0;border-radius:14px;background:linear-gradient(145deg,#fff,#edf5ff);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.2rem;font-weight:900;text-align:center;color:#26394d;transition:border-color .14s ease,box-shadow .14s ease,transform .16s ease}
.climb-target .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.climb-target.locked{border-color:#0b9b88;box-shadow:0 0 0 4px rgba(11,155,136,.13)}
.climb-target.bonus-error{border-color:#d43f55!important;outline:4px solid rgba(212,63,85,.38);outline-offset:2px;box-shadow:0 0 0 6px rgba(212,63,85,.20),0 10px 24px rgba(72,25,37,.20)!important}
.climb-target.complete{border-color:#7052bd;transform:scale(1.035)}
.climb-panel small{display:block;margin-top:10px;color:#697986;font-size:.68rem;line-height:1.35}
.climb-playfield.climb-paused .climb-avatar{transition:none}
@media(max-width:900px){.climb-course{width:64%}.climb-panel{width:30%;min-width:185px}.climb-target{font-size:1.05rem}}
@media(max-width:720px){.climb-course{left:2%;right:2%;top:2%;bottom:34%;width:auto}.climb-panel{left:5%;right:5%;top:auto;bottom:3%;transform:none;width:auto;min-width:0;padding:12px}.climb-target{min-height:55px;padding:13px;font-size:1rem}.climb-panel small{display:none}.climb-platform{width:58px}.climb-avatar{width:36px;height:43px}}
@media(prefers-reduced-motion:reduce){.climb-platform,.climb-summit,.climb-avatar,.climb-target{transition:none}.climb-target.complete{transform:none}}

/* v0.9.26 Typing Relay — keep Pace Guide unobstructed by the prompt card */
.race-playfield{background:linear-gradient(180deg,#e7f2ff 0%,#f8fbff 46%,#e6f0e4 100%)}
.race-course{position:absolute;left:4%;right:4%;top:8%;bottom:40%;border-radius:20px;background:linear-gradient(180deg,#f1d2a8 0%,#dcae77 100%);border:1px solid rgba(101,75,48,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.32);overflow:hidden}
.race-course:before{content:"";position:absolute;left:4%;right:4%;top:50%;height:2px;background:rgba(255,255,255,.62);box-shadow:0 -74px 0 rgba(255,255,255,.55),0 74px 0 rgba(255,255,255,.55)}
.race-lane{position:absolute;left:7%;right:7%;height:90px}
.race-lane-player{top:24%}.race-lane-guide{top:58%}
.race-line{position:absolute;left:0;right:0;top:50%;height:4px;border-radius:999px;background:rgba(96,66,38,.23)}
.race-line:after{content:"";position:absolute;left:0;top:0;width:var(--player-progress,0%);height:100%;border-radius:inherit;background:#0b9b88}
.race-lane-guide .race-line:after{display:none}
.race-lane-label{position:absolute;left:0;top:0;font-size:.58rem;font-weight:900;letter-spacing:.1em;color:#6c5237}
.race-finish{position:absolute;right:5.5%;top:10%;bottom:9%;z-index:2;width:18px;background:repeating-conic-gradient(#fff 0 25%,#222 0 50%) 50%/12px 12px;border:1px solid rgba(0,0,0,.15)}
.race-finish strong{position:absolute;right:-5px;top:-20px;transform:translateX(35%);font-size:.55rem;letter-spacing:.1em;color:#4a3a2a}
.race-markers{position:absolute;left:7%;right:7%;bottom:4%;height:20px}
.race-markers span{position:absolute;transform:translateX(-50%);font-size:.52rem;font-weight:800;color:rgba(80,57,37,.65)}
.race-runner{position:absolute;top:50%;z-index:5;width:42px;height:42px;transform:translate(-50%,-50%);transition:left .24s ease,transform .18s ease;filter:drop-shadow(0 5px 6px rgba(61,45,32,.18))}
.race-runner i{position:absolute;left:50%;top:2px;width:15px;height:15px;transform:translateX(-50%);border-radius:50%;background:#f2c7a7;border:2px solid #334a55}
.race-runner b{position:absolute;left:50%;top:15px;transform:translateX(-50%);display:grid;place-items:center;width:31px;height:24px;border-radius:10px;background:#2f6f87;border:2px solid #244f61;color:#fff;font-size:.52rem;letter-spacing:.04em}
.race-guide i{background:#d7d7d7;border-color:#696969}.race-guide b{background:#7c7c7c;border-color:#5c5c5c}
.race-runner.finished{transform:translate(-50%,-50%) scale(1.08)}
.race-panel{position:absolute;z-index:7;left:50%;bottom:5%;transform:translateX(-50%);width:min(440px,44%);padding:14px 17px;border:1px solid #cbd7df;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 12px 26px rgba(56,78,91,.13)}
.race-panel-kicker{display:block;margin-bottom:8px;color:#596b78;font-size:.62rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.race-target{display:block;min-height:58px;padding:14px 13px;border:3px solid #6f8db0;border-radius:14px;background:linear-gradient(145deg,#fff,#edf5ff);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.15rem;font-weight:900;text-align:center;color:#26394d;transition:border-color .14s ease,box-shadow .14s ease,transform .16s ease}
.race-target .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.race-target.locked{border-color:#0b9b88;box-shadow:0 0 0 4px rgba(11,155,136,.13)}
.race-target.bonus-error{border-color:#d43f55!important;outline:4px solid rgba(212,63,85,.38);outline-offset:2px;box-shadow:0 0 0 6px rgba(212,63,85,.20),0 10px 24px rgba(72,25,37,.20)!important}
.race-target.complete{border-color:#7052bd;transform:scale(1.025)}
.race-panel small{display:block;margin-top:8px;color:#697986;font-size:.67rem;line-height:1.3}
.race-scene.race-paused .race-runner{transition:none}
@media(max-width:900px){.race-panel{width:min(500px,52%)}.race-runner{width:38px;height:38px}.race-lane{left:6%;right:6%}.race-markers{left:6%;right:6%}}
@media(max-width:720px){.race-course{left:2%;right:2%;top:3%;bottom:42%}.race-lane-player{top:22%}.race-lane-guide{top:58%}.race-panel{left:5%;right:5%;bottom:3%;transform:none;width:auto;padding:11px}.race-target{min-height:50px;padding:11px;font-size:1rem}.race-panel small{display:none}.race-finish{right:5%}.race-runner{transition:left .2s ease}}
@media(prefers-reduced-motion:reduce){.race-runner,.race-target{transition:none}.race-target.complete{transform:none}}

/* v0.7.8 Adaptive Key Challenge */
.adaptive-playfield{background:linear-gradient(180deg,#eef5ff 0%,#f8fbff 48%,#eef2f7 100%)}
.adaptive-scene-host,.adaptive-scene{position:absolute;inset:0;overflow:hidden}.adaptive-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(93,116,145,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(93,116,145,.07) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.25))}
.adaptive-heading{position:absolute;left:4%;top:7%;display:flex;flex-direction:column;gap:3px}.adaptive-heading span{font-size:.62rem;font-weight:900;letter-spacing:.13em;color:#7052bd}.adaptive-heading strong{font-size:.92rem;color:#34485d}
.adaptive-focus{position:absolute;left:4%;right:4%;top:17%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.adaptive-key-card{padding:12px 14px;border:1px solid #cfd9e6;border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 8px 20px rgba(64,82,108,.08)}.adaptive-key-card b{display:block;font:900 1.45rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#47366f}.adaptive-key-card span{display:block;margin-top:5px;font-size:.64rem;color:#6c7988}.adaptive-key-card i{display:block;margin-top:8px;height:5px;border-radius:999px;background:#e2e8f0;overflow:hidden}.adaptive-key-card em{display:block;height:100%;border-radius:inherit;background:#0b9b88;transition:width .2s ease}.adaptive-focus-empty{grid-column:1/-1;padding:14px;border:1px dashed #cbd5e1;border-radius:14px;background:rgba(255,255,255,.75);font-size:.75rem;color:#68778a}
.adaptive-panel{position:absolute;left:50%;top:57%;transform:translate(-50%,-50%);width:min(520px,62%);padding:18px;border:1px solid #cbd7e3;border-radius:20px;background:rgba(255,255,255,.96);box-shadow:0 16px 34px rgba(61,82,110,.13)}.adaptive-panel-kicker{display:block;margin-bottom:9px;font-size:.62rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#596b78}.adaptive-target{display:block;min-height:76px;padding:20px 16px;border:3px solid #6f8db0;border-radius:16px;background:linear-gradient(145deg,#fff,#edf5ff);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.25rem;font-weight:900;text-align:center;color:#26394d;transition:border-color .14s ease,box-shadow .14s ease,transform .16s ease}.adaptive-target .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.adaptive-target.locked{border-color:#0b9b88;box-shadow:0 0 0 4px rgba(11,155,136,.13)}.adaptive-target.bonus-error{border-color:#d43f55!important;outline:4px solid rgba(212,63,85,.38);outline-offset:2px;box-shadow:0 0 0 6px rgba(212,63,85,.20),0 10px 24px rgba(72,25,37,.20)!important}.adaptive-target.complete{border-color:#7052bd;transform:scale(1.025)}.adaptive-panel small{display:block;margin-top:9px;color:#697986;font-size:.69rem;line-height:1.35}.adaptive-note{position:absolute;left:4%;right:4%;bottom:5%;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.67rem;color:#617184}.adaptive-note b{color:#47366f}.adaptive-paused .adaptive-target{transition:none}
@media(max-width:900px){.adaptive-panel{width:min(560px,72%)}.adaptive-key-card{padding:10px 12px}.adaptive-key-card b{font-size:1.25rem}}
@media(max-width:720px){.adaptive-heading{top:4%}.adaptive-focus{top:14%;grid-template-columns:repeat(3,1fr);gap:6px}.adaptive-key-card{padding:8px}.adaptive-key-card span{display:none}.adaptive-panel{left:5%;right:5%;top:56%;transform:translateY(-50%);width:auto;padding:12px}.adaptive-target{min-height:56px;padding:13px;font-size:1.05rem}.adaptive-panel small{display:none}.adaptive-note{bottom:3%;font-size:.61rem;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.adaptive-key-card em,.adaptive-target{transition:none}.adaptive-target.complete{transform:none}}

/* v0.8.0 End-of-Unit Remix */
.remix-playfield{background:#eef4f8}
.remix-stage-strip{position:absolute;left:0;right:0;top:0;z-index:9;height:44px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#dbe3eb;border-bottom:1px solid #cbd4df}
.remix-stage-strip span{display:flex;align-items:center;justify-content:center;gap:7px;background:#f7f9fb;color:#657587;font-size:.68rem;font-weight:850;letter-spacing:.015em;transition:background .15s ease,color .15s ease}
.remix-stage-strip span b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dce4ec;color:#536273;font-size:.65rem}
.remix-stage-strip span.active{background:#f1edff;color:#503c8a}.remix-stage-strip span.active b{background:#7052bd;color:#fff}
.remix-stage-strip span.complete{background:#e9f6f1;color:#176d5c}.remix-stage-strip span.complete b{background:#0b9b88;color:#fff}
.remix-scene{position:absolute;left:0;right:0;top:44px;bottom:0;overflow:hidden}
.remix-garden-scene{background:linear-gradient(180deg,#eaf6ff 0%,#f9fcff 54%,#e5f2df 55%,#d7ead0 100%)}
.remix-climb-scene{background:linear-gradient(180deg,#e9f4fb 0%,#f8fbfd 47%,#e7efe5 100%)}
.remix-race-scene{background:linear-gradient(180deg,#e7f2ff 0%,#f8fbff 46%,#e6f0e4 100%)}
@media(max-width:720px){.remix-stage-strip{height:40px}.remix-stage-strip span{font-size:.61rem;gap:4px}.remix-stage-strip span b{width:20px;height:20px}.remix-scene{top:40px}}
@media(prefers-reduced-motion:reduce){.remix-stage-strip span{transition:none}}

/* v0.8.1 Memory Match */
.memory-playfield{background:linear-gradient(180deg,#f6f2ff 0%,#fbfcff 46%,#edf7f3 100%)}
.memory-scene{position:absolute;inset:0;display:grid;place-items:center;padding:18px 24px}
.memory-grid{width:min(760px,94%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.memory-card{position:relative;min-width:0;height:126px;padding:10px;border:2px solid #cfd7e2;border-radius:18px;background:linear-gradient(145deg,#fff,#f4f6f9);color:var(--ink);box-shadow:0 7px 16px rgba(37,49,65,.08);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease,background .14s ease}
.memory-card-face{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0}
.memory-card strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.memory-card-back{font-size:2rem;color:#6d5aa9}
.memory-card-value{font-size:clamp(1rem,2vw,1.45rem);letter-spacing:.01em}
.memory-card small{font-size:.67rem;color:var(--muted);font-weight:800}
.memory-card.selected{border-color:#7052bd;box-shadow:0 0 0 4px rgba(112,82,189,.14),0 8px 18px rgba(55,43,92,.11);transform:translateY(-2px)}
.memory-card.face-up{border-color:#6a8ca8;background:linear-gradient(145deg,#fff,#eef7ff)}
.memory-card.typing{border-color:#0b9b88;box-shadow:0 0 0 4px rgba(11,155,136,.14),0 8px 18px rgba(32,90,78,.10)}
.memory-card.matched{border-color:#0b9b88;background:linear-gradient(145deg,#fff,#eaf8f2);box-shadow:none}
.memory-card.bonus-error{border-color:#c83e4d!important;box-shadow:0 0 0 5px rgba(200,62,77,.18),0 8px 18px rgba(120,34,44,.14)!important;animation:bonusError .15s ease}
.memory-paused .memory-card{transition:none}
.memory-style-label{display:grid;gap:7px;margin:14px auto 0;text-align:left;max-width:330px}
.memory-style-label strong{font-size:.75rem;color:var(--ink-2)}
.memory-style-label select{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit}
.memory-intro-card{width:min(470px,90%)}
@media(max-width:720px){.memory-scene{padding:14px}.memory-grid{gap:9px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:430px}.memory-card{height:82px;border-radius:14px}.memory-card-value{font-size:1rem}.memory-card-back{font-size:1.45rem}}
@media(max-height:740px) and (min-width:721px){.memory-scene{padding:12px 20px}.memory-grid{gap:10px}.memory-card{height:105px}.memory-card-value{font-size:1.08rem}}
@media(prefers-reduced-motion:reduce){.memory-card{transition:none}.memory-card.selected{transform:none}.memory-card.bonus-error{animation:none}}

/* v0.8.3 Key Cascade mode cleanup */
.cascade-playfield{background:linear-gradient(180deg,#f5f7fb 0%,#eef4f8 100%)}
.cascade-scene{position:absolute;inset:0;overflow:hidden;padding:16px 20px}
.cascade-layout{height:100%;display:grid;grid-template-columns:minmax(320px,1.35fr) minmax(235px,.75fr);gap:18px;align-items:center;max-width:920px;margin:0 auto}
.cascade-board-wrap{min-width:0;display:grid;place-items:center}
.cascade-grid{--cascade-cols:6;width:min(430px,96%);aspect-ratio:1;display:grid;grid-template-columns:repeat(var(--cascade-cols),minmax(0,1fr));gap:7px;padding:10px;border:1px solid #cbd6e1;border-radius:20px;background:rgba(255,255,255,.82);box-shadow:0 12px 28px rgba(47,65,84,.09)}
.cascade-cell{min-width:0;min-height:0;border:0;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;font:inherit;overflow:hidden}
button.cascade-cell{cursor:pointer}
.cascade-tile{border:2px solid rgba(72,86,104,.18);color:#26394d;box-shadow:0 4px 9px rgba(38,54,72,.08);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,opacity .14s ease;animation:cascadeSettle .2s ease}
.cascade-tile strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(1rem,2.1vw,1.35rem);line-height:1;font-weight:950;text-transform:none}
.cascade-tile small{font-size:.5rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase;color:rgba(38,57,77,.66)}
.cascade-color-0{background:#e8dcff}.cascade-color-1{background:#d9f1e7}.cascade-color-2{background:#ffe8c7}.cascade-color-3{background:#dcecff}.cascade-color-4{background:#f9dce4}.cascade-color-5{background:#e7edcf}
.cascade-cell.selected{border-color:#5e48a0;box-shadow:0 0 0 4px rgba(94,72,160,.18),0 5px 12px rgba(55,43,92,.13);transform:translateY(-1px)}
.cascade-cell.cluster-selected{border-color:#0b8e7b;box-shadow:0 0 0 4px rgba(11,142,123,.16),0 5px 12px rgba(27,87,77,.12)}
.cascade-lock{border:2px solid #798696;background:repeating-linear-gradient(135deg,#e3e8ed 0,#e3e8ed 8px,#d3dbe3 8px,#d3dbe3 16px);color:#42505d}
.cascade-lock strong{font-size:1.1rem}.cascade-lock small,.cascade-badge small{font-size:.48rem;font-weight:950;letter-spacing:.05em}
.cascade-badge{border:2px solid #a57925;background:linear-gradient(145deg,#fff7cf,#f0d67a);color:#704c09;box-shadow:inset 0 0 0 3px rgba(255,255,255,.48)}
.cascade-badge strong{font-size:1.25rem;line-height:1}
.cascade-empty{background:rgba(220,228,236,.3)}
.cascade-panel{min-width:0;padding:16px;border:1px solid #cbd6e1;border-radius:18px;background:rgba(255,255,255,.93);box-shadow:0 12px 26px rgba(47,65,84,.08)}
.cascade-kicker{display:block;color:#65509f;font-size:.62rem;font-weight:950;letter-spacing:.11em;text-transform:uppercase;margin-bottom:9px}
.cascade-objective{padding:11px 12px;border:1px solid #d8e0e8;border-radius:13px;background:#f8fafc}.cascade-objective strong,.cascade-objective span{display:block}.cascade-objective strong{font-size:.88rem}.cascade-objective span{margin-top:3px;color:#687789;font-size:.69rem;font-weight:800}.cascade-objective i{display:block;height:6px;margin-top:9px;border-radius:999px;background:#e3e8ee;overflow:hidden}.cascade-objective em{display:block;height:100%;border-radius:inherit;background:#0b9b88;transition:width .18s ease}
.cascade-selection{margin-top:12px}.cascade-selection>span{display:block;color:#667688;font-size:.65rem;font-weight:850}.cascade-target{display:flex;min-height:72px;margin-top:7px;padding:12px;align-items:center;justify-content:center;border:3px solid #cad4de;border-radius:14px;background:#f7f9fb;color:#38495a;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(.95rem,1.6vw,1.15rem);font-weight:950;text-align:center;word-break:break-word;transition:border-color .14s ease,box-shadow .14s ease}
.cascade-target.active{border-color:#0b9b88;background:#f4fbf8;box-shadow:0 0 0 4px rgba(11,155,136,.12)}
.cascade-target .typed{color:#0b7e67;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.cascade-target.bonus-error{border-color:#c83e4d!important;outline:4px solid rgba(200,62,77,.32);outline-offset:1px;box-shadow:0 0 0 6px rgba(200,62,77,.16)!important;animation:bonusError .15s ease}
.cascade-selection small{display:block;margin-top:7px;color:#718091;font-size:.65rem;line-height:1.35}
.cascade-intro-card{width:min(500px,90%)}
.cascade-paused .cascade-tile,.cascade-paused .cascade-objective em{transition:none}
@keyframes cascadeSettle{from{opacity:.55;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.cascade-scene{padding:12px}.cascade-layout{grid-template-columns:minmax(280px,1.2fr) minmax(210px,.8fr);gap:10px}.cascade-grid{width:min(390px,96%);gap:5px;padding:8px}.cascade-panel{padding:12px}.cascade-target{min-height:60px;padding:9px}}
@media(max-width:720px){.cascade-scene{padding:9px}.cascade-layout{grid-template-columns:1fr;grid-template-rows:minmax(245px,1fr) auto;gap:7px}.cascade-grid{width:min(330px,92%);gap:4px;padding:6px;border-radius:15px}.cascade-cell{border-radius:9px}.cascade-panel{display:grid;grid-template-columns:1fr 1.2fr;gap:9px;padding:8px 9px;border-radius:13px}.cascade-kicker{display:none}.cascade-objective{padding:8px}.cascade-selection{margin:0}.cascade-target{min-height:48px;margin-top:4px;padding:7px;font-size:.92rem}.cascade-selection small{display:none}}
@media(max-height:740px) and (min-width:721px){.cascade-scene{padding:8px 16px}.cascade-layout{gap:12px}.cascade-grid{width:min(370px,88%);gap:5px;padding:7px}.cascade-panel{padding:11px}.cascade-target{min-height:55px;padding:8px}.cascade-selection small{display:none}}
@media(prefers-reduced-motion:reduce){.cascade-tile{animation:none;transition:none}.cascade-objective em,.cascade-target{transition:none}.cascade-cell.selected{transform:none}.cascade-target.bonus-error{animation:none}}

/* v0.8.4 Bonus progress tracking */
.bonus-unit{position:relative}
.bonus-unit.complete{background:var(--success-soft);border-color:#b7dfc9}
.bonus-unit.complete.active{box-shadow:0 0 0 2px rgba(48,132,102,.10)}
.bonus-unit-check,.bonus-unit-partial{position:absolute;top:7px;right:7px;display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;font-size:.68rem;font-weight:950;line-height:1}
.bonus-unit-check{background:var(--success);color:#fff}
.bonus-unit-partial{background:#edf0f4;color:var(--ink-2);border:1px solid var(--line)}
.bonus-card-progress{display:block;width:100%;margin-top:2px;padding-top:8px;border-top:1px solid var(--line);font-size:.68rem;font-weight:850;color:var(--muted)}
.bonus-card-progress.has-progress{color:var(--success)}
.bonus-choice.complete{border-color:#b7dfc9;background:linear-gradient(135deg,#fff,var(--success-soft))}
.bonus-level-complete{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;padding:7px 10px;border-radius:999px;background:var(--success-soft);border:1px solid #b7dfc9;color:var(--success);font-size:.72rem;font-weight:900}


/* v0.8.6 Bonus result-card fit refinement */
.bonus-result-card{width:min(500px,100%);max-height:calc(100% - 4px);overflow:auto;padding:15px 18px}
.bonus-result-card>.bonus-level-complete{margin:0 5px 6px 0;padding:5px 8px;font-size:.65rem}
.bonus-result-card>.experimental-pill{margin:0 0 6px;padding:5px 8px;font-size:.62rem;vertical-align:top}
.bonus-result-card h2{margin:5px 0 6px;font-size:1.48rem;line-height:1.08}
.bonus-result-card>p{margin:6px 0;font-size:.86rem;line-height:1.35}
.bonus-result-card .bonus-result-stats{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:6px;margin:11px 0}
.bonus-result-card .bonus-result-stats div{padding:8px 6px}
.bonus-result-card .bonus-result-stats strong{font-size:1.08rem}
.bonus-result-card .bonus-result-stats span{font-size:.61rem;line-height:1.2}
.bonus-result-card .action-row{gap:8px;margin-top:10px;flex-wrap:wrap}
.bonus-result-card .action-row button{padding:9px 12px}
@media(max-height:740px) and (min-width:721px){
 .bonus-result-card{width:min(510px,100%);padding:11px 14px;max-height:calc(100% - 2px)}
 .bonus-result-card>.bonus-level-complete{padding:4px 7px;font-size:.62rem;margin-bottom:5px}
 .bonus-result-card>.experimental-pill{padding:4px 7px;font-size:.59rem;margin-bottom:5px}
 .bonus-result-card h2{margin:4px 0 5px;font-size:1.34rem}
 .bonus-result-card>p{margin:5px 0;font-size:.79rem;line-height:1.3}
 .bonus-result-card .bonus-result-stats{grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:5px;margin:8px 0}
 .bonus-result-card .bonus-result-stats div{padding:6px 5px}
 .bonus-result-card .bonus-result-stats strong{font-size:1rem}
 .bonus-result-card .bonus-result-stats span{font-size:.58rem}
 .bonus-result-card .action-row{margin-top:8px;gap:7px}
 .bonus-result-card .action-row button{padding:8px 11px;font-size:.78rem}
}
@media(max-width:720px){
 .bonus-result-card{width:min(430px,100%);padding:12px}
 .bonus-result-card .bonus-result-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}



/* v0.9.13 Bonus Lab selector compression */
.bonus-select-banner{padding:18px 20px;margin-bottom:12px}
.bonus-choice-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;margin:0 0 12px}
.bonus-choice{justify-content:space-between;gap:8px;min-height:76px;padding:11px 14px}
.bonus-choice strong{font-size:.92rem;line-height:1.18}
.bonus-card-progress{margin-top:auto;padding-top:7px;font-size:.66rem}
.bonus-unit-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.bonus-unit{display:flex;align-items:center;min-height:50px;padding:9px 11px}
.bonus-unit strong{font-size:.82rem;line-height:1.15}
.bonus-unit small{display:none}
.bonus-selector-card{padding:18px 20px}
.bonus-selector-card .field-label{margin-bottom:9px}
.bonus-selector-card .start-row{margin-top:14px}
@media(max-width:900px){.bonus-unit-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.bonus-unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bonus-choice{min-height:68px}}
@media(max-width:420px){.bonus-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.9.15 Bonus Lab viewport compression */
.bonus-page-top{margin-bottom:14px}
.bonus-page-top h1{margin-bottom:0}
.bonus-select-banner{
 display:grid;
 grid-template-columns:minmax(190px,.38fr) minmax(0,1fr);
 grid-template-rows:auto auto;
 column-gap:24px;
 row-gap:1px;
 align-items:center;
 padding:13px 18px;
 margin-bottom:11px
}
.bonus-select-banner .track-kicker{grid-column:1;grid-row:1}
.bonus-select-banner h2{grid-column:1;grid-row:2;margin:2px 0 0;font-size:1.16rem;line-height:1.15}
.bonus-select-banner p{grid-column:2;grid-row:1/3;margin:0;line-height:1.4}
.bonus-choice-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:11px}
.bonus-choice{
 min-height:76px;
 padding:10px 13px;
 gap:5px;
 justify-content:space-between
}
.bonus-choice strong{font-size:.88rem;line-height:1.15}
.bonus-card-progress{margin-top:auto;padding-top:7px;font-size:.64rem}
.bonus-selector-card{padding:17px 19px}
.bonus-selector-card .field-label{margin-bottom:9px}
.bonus-selector-card .start-row{margin-top:12px}
.bonus-unit-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.bonus-unit{min-height:50px;padding:9px 10px}
.bonus-unit strong{font-size:.8rem}
@media(max-width:980px){
 .bonus-choice-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
 .bonus-unit-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(max-width:800px){
 .bonus-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .bonus-unit-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:720px){
 .bonus-page-top{margin-bottom:12px}
 .bonus-select-banner{display:block;padding:13px 15px}
 .bonus-select-banner h2{margin:3px 0 4px}
 .bonus-select-banner p{font-size:.82rem;line-height:1.38}
 .bonus-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .bonus-unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .bonus-selector-card{padding:15px}
}
@media(max-width:440px){
 .bonus-choice-grid{grid-template-columns:1fr}
 .bonus-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

