/* Lab completion scene: cartoon science lab (chunky outlines, hard shadows, checkerboard floor) meets a code terminal. */
body.victory-open{overflow:hidden}
.victory{--v-ink:#12151f;--v-lime:#c6f15b;--v-yellow:#ffd23f;--v-pink:#f29bcd;--v-pass:#ff7a59;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#12151fea;overflow:auto}
.victory-burst{position:fixed;inset:0;pointer-events:none;z-index:2}
.victory-card{position:relative;z-index:1;width:min(980px,100%);background:#fff;color:var(--v-ink);border:5px solid var(--v-ink);border-radius:6px;box-shadow:12px 12px 0 var(--v-pass);overflow:hidden;animation:v-in .5s cubic-bezier(.2,.9,.25,1.2)}
.victory-bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 22px;background:var(--v-ink);color:var(--v-lime);font:700 13px/1.5 Consolas,monospace;letter-spacing:.1em}
.victory-stage{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);gap:24px;align-items:center;padding:30px 30px 34px;background:#b7a6e3;background-image:linear-gradient(45deg,#a996dc 25%,transparent 25%,transparent 75%,#a996dc 75%),linear-gradient(45deg,#a996dc 25%,transparent 25%,transparent 75%,#a996dc 75%);background-size:48px 48px;background-position:0 0,24px 24px;border-bottom:5px solid var(--v-ink)}

/* The machine: three flasks and a light panel. */
.victory-machine{position:relative;height:190px;display:flex;align-items:flex-end;justify-content:center;gap:14px;padding:0 10px 18px;background:#5b6b8a;border:5px solid var(--v-ink);border-radius:10px 10px 4px 4px;box-shadow:6px 6px 0 var(--v-ink)}
.flask{position:relative;width:44px;height:92px;border:4px solid var(--v-ink);border-radius:6px 6px 22px 22px;background:#e9f3ff;overflow:hidden}
.flask.f2{height:122px}.flask.f3{height:74px}
.flask i{position:absolute;inset:auto 0 0;height:62%;background:var(--v-lime);border-top:4px solid var(--v-ink)}
.flask.f2 i{background:var(--v-pass);height:72%}.flask.f3 i{background:var(--v-pink);height:55%}
.flask:before{content:'';position:absolute;top:-14px;left:10px;width:16px;height:14px;border:4px solid var(--v-ink);border-bottom:0;background:#e9f3ff}
.machine-lights{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:10px}
.machine-lights b{width:16px;height:16px;border:3px solid var(--v-ink);border-radius:50%;background:#384257}
.machine-lights b:nth-child(1){background:var(--v-lime)}.machine-lights b:nth-child(2){background:var(--v-yellow)}.machine-lights b:nth-child(3){background:var(--v-pink)}.machine-lights b:nth-child(4){background:var(--v-pass)}

.victory-copy{min-width:0}
.victory-stamp{display:inline-block;margin:0 0 10px;padding:6px 14px;border:4px solid var(--v-ink);background:var(--v-lime);color:var(--v-ink);font:900 16px/1.2 Consolas,monospace;letter-spacing:.14em;transform:rotate(-4deg);box-shadow:4px 4px 0 var(--v-ink)}
.victory h2{margin:6px 0 12px;color:var(--v-ink);font:900 clamp(42px,7vw,76px)/.95 'Arial Black','Segoe UI',Arial,sans-serif;letter-spacing:-.03em;text-transform:none;-webkit-text-stroke:0;text-shadow:4px 4px 0 #fff}
.victory .victory-name{margin:0;font:600 clamp(18px,2.4vw,24px)/1.4 'Segoe UI',Arial,sans-serif;color:var(--v-ink)}
.victory .victory-name strong{background:var(--v-yellow);padding:0 6px;border:3px solid var(--v-ink);color:var(--v-ink)}

.victory-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:26px;padding:26px 30px 10px}
.victory .victory-label{margin:0 0 10px;font:800 12px/1.5 Consolas,monospace;letter-spacing:.14em;color:#5a3d9c}
.victory-skills{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.victory-skills li{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:3px solid var(--v-ink);border-radius:4px;background:#f6f3ff;font:600 16px/1.4 'Segoe UI',Arial,sans-serif;color:var(--v-ink);animation:v-skill .4s both;animation-delay:calc(.35s + var(--i) * .12s)}
.victory-skills li span{flex:0 0 26px;height:26px;display:grid;place-items:center;border:3px solid var(--v-ink);border-radius:3px;background:var(--v-lime);font-weight:900}
.victory .victory-ai{min-height:4.6em;margin:0 0 18px;padding:14px 16px;background:var(--v-ink);color:var(--v-lime);border-radius:4px;font:600 15px/1.5 Consolas,monospace}
.victory-meter{display:flex;gap:6px;margin-bottom:16px}
.victory-meter span{flex:1;padding:8px 0;text-align:center;border:3px solid var(--v-ink);border-radius:3px;background:#eee;color:#555;font:800 14px Consolas,monospace}
.victory-meter span.is-on{background:var(--v-lime);color:var(--v-ink)}
.victory-meter span.is-now{background:var(--v-yellow);transform:translateY(-4px);box-shadow:0 4px 0 var(--v-ink)}
.victory .victory-proud{margin:0;font:400 20px/1.4 Georgia,'Times New Roman',serif;color:var(--v-ink)}
.victory-actions{display:flex;flex-wrap:wrap;gap:14px;padding:20px 30px 28px}
.victory .victory-actions button{min-height:50px;padding:12px 20px;border:4px solid var(--v-ink);border-radius:4px;background:var(--v-yellow);color:var(--v-ink);box-shadow:5px 5px 0 var(--v-ink);font:800 16px/1.2 'Segoe UI',Arial,sans-serif;cursor:pointer}
.victory .victory-actions button:hover{background:var(--v-lime)}
.victory .victory-actions button:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--v-ink)}
.victory .victory-actions [data-victory-close]{background:#fff}
.victory :focus-visible{outline:4px solid #1b5fd0;outline-offset:4px}

@media(prefers-reduced-motion:no-preference){
.flask i{animation:v-bubble 1.4s ease-in-out infinite alternate}.flask.f2 i{animation-delay:.3s}.flask.f3 i{animation-delay:.6s}
.machine-lights b{animation:v-blink .9s steps(2,end) infinite}.machine-lights b:nth-child(2){animation-delay:.2s}.machine-lights b:nth-child(3){animation-delay:.4s}.machine-lights b:nth-child(4){animation-delay:.6s}
.victory-stamp{animation:v-stamp .45s .25s cubic-bezier(.2,1.6,.4,1) both}
}
@keyframes v-in{from{transform:scale(.85) translateY(30px);opacity:0}to{transform:none;opacity:1}}
@keyframes v-skill{from{transform:translateX(-18px);opacity:0}to{transform:none;opacity:1}}
@keyframes v-bubble{to{height:80%}}
@keyframes v-blink{50%{opacity:.25}}
@keyframes v-stamp{from{transform:rotate(-4deg) scale(2.2);opacity:0}to{transform:rotate(-4deg) scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.victory-card,.victory-skills li{animation:none}}
.access-no-motion .victory *{animation:none!important}
.access-contrast .victory-stage{background-image:none}
@media(max-width:760px){.victory{place-items:start center}.victory-stage,.victory-body{grid-template-columns:minmax(0,1fr)}.victory-machine{height:150px}.victory-stage,.victory-body,.victory-actions{padding-left:18px;padding-right:18px}.victory-card{box-shadow:6px 6px 0 var(--v-pass)}.victory .victory-actions button{width:100%}}
.victory-legend{margin:14px 0 0;padding:12px 14px;border:3px solid #10151f;border-radius:10px;background:#241d3f;color:#fff}
.victory-legend p{margin:4px 0 6px;font-size:16px;line-height:1.45}
.victory-legend p.victory-label{margin:0}
.victory-legend cite{font:700 13px/1.3 Consolas,monospace;color:#c6f15b;font-style:normal}
.victory .victory-legend .victory-label{color:#c6f15b}
.victory .victory-legend p{color:#fff}

/* Completion is a mechanical computing finale, not a generic popup. */
.victory-engine{height:auto;min-height:230px;background:none;border:0;box-shadow:none;padding:0}.victory-engine svg{display:block;width:100%;max-width:340px;height:auto}.victory-gear{transform-origin:95px 157px;animation:finish-engine 8s linear infinite}.victory-gear.reverse{transform-origin:174px 157px;animation-direction:reverse}.victory-output{animation:finish-output 2.4s steps(3) infinite}.victory-stamp{background:#c6f15b;color:#12151f}.victory-card{max-height:calc(100dvh - 32px);overflow:auto}.victory-open .victory-actions{position:sticky;bottom:0;background:#edf4dd;z-index:3}.access-calm .victory *,.access-no-motion .victory *{animation:none!important;transition:none!important}@keyframes finish-engine{to{transform:rotate(360deg)}}@keyframes finish-output{50%{transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.victory *{animation:none!important;transition:none!important}}@media(max-width:650px){.victory-engine{min-height:130px}.victory-engine svg{max-width:210px;margin:auto}.victory-stage{padding:20px;gap:14px}.victory{padding:10px}.victory-card{max-height:calc(100dvh - 20px)}}
