:root{--primary:#075b78;--accent:#eb8b4b;--ink:#173b4b;--muted:#617984;--paper:#f5f8f8;--line:#d9e5e8;--white:#fff}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}header{background:var(--white);border-bottom:1px solid var(--line);padding:14px max(18px,calc((100vw - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:14px;position:sticky;top:0;z-index:5}.brand,.headerRight{display:flex;align-items:center;gap:12px}.version{font-size:12px;color:var(--muted);white-space:nowrap}.brand strong{display:block;font-size:18px}.brand small{display:block;color:var(--muted)}.mark{width:42px;height:42px;border-radius:13px;background:var(--primary);color:white;display:grid;place-items:center;font-size:28px;font-weight:700;overflow:hidden}.mark img{width:100%;height:100%;object-fit:contain}.mark.big{width:58px;height:58px;margin-bottom:18px}main{max-width:1100px;margin:0 auto;padding:20px 18px 70px}nav{display:flex;gap:6px;overflow:auto;padding-bottom:16px}nav button{white-space:nowrap;border:0;background:transparent;color:var(--muted);font-weight:700}nav button.active{color:var(--primary);background:#e7f2f3}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:11px;padding:10px 15px;cursor:pointer}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:default}.primary{background:var(--primary);border-color:var(--primary);color:white;font-weight:700}.quiet{background:transparent;border:0;color:var(--primary)}.danger{color:#a43e39}.auth{min-height:calc(100vh - 75px);display:grid;place-items:center;padding:24px}.authCard{max-width:420px;width:100%;background:white;padding:34px;border:1px solid var(--line);border-radius:24px;box-shadow:0 14px 45px #16425612}.authCard h1{font-size:30px;line-height:1.1}.authCard p{color:var(--muted)}.authCard form{display:grid;gap:14px}.authCard .quiet{margin-top:14px}label{display:grid;gap:5px;font-weight:650;font-size:13px;color:var(--muted)}input,select,textarea{border:1px solid #bdd0d6;background:white;color:var(--ink);border-radius:9px;padding:10px;min-width:0;width:100%}input[type=color]{height:46px;padding:3px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:19px;margin-bottom:14px}.card h2,.card h3{margin:0 0 8px}.card p{margin:8px 0;color:var(--muted)}.hero{background:linear-gradient(125deg,var(--primary),#287f8d);color:white;padding:28px}.hero p{color:#e5f4f5}.hero .primary{background:white;color:var(--primary);border-color:white}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--accent)}.hero .eyebrow{color:#fff}.metric{font-size:32px;font-weight:800;line-height:1.1}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.formgrid .wide{grid-column:1/-1}.list{display:grid;gap:9px}.item{padding:12px;border:1px solid var(--line);border-radius:11px;display:flex;justify-content:space-between;align-items:center;gap:10px}.item small{display:block;color:var(--muted)}.pill{background:#e9f2f3;color:var(--primary);border-radius:99px;padding:4px 9px;font-size:12px;font-weight:700}.empty{color:var(--muted);padding:22px;text-align:center}.chart{width:100%;height:235px}.bar{height:8px;background:#e4edef;border-radius:99px;overflow:hidden}.bar span{display:block;height:100%;background:var(--accent)}#notice:not(:empty){padding:10px;margin-bottom:12px;border-radius:10px;background:#e5f1f2}footer{text-align:center;padding:20px;color:var(--muted)}@media(max-width:720px){.grid{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.formgrid .wide{grid-column:auto}.brand small{display:none}.headerRight{max-width:55%}.item{align-items:flex-start}header{padding:10px}.card{padding:15px}}@media print{header,nav,button,form,#notice,footer{display:none!important}body{background:white}main{padding:0}.card{break-inside:avoid;box-shadow:none}.printOnly{display:block!important}}
[hidden]{display:none!important}

.removePicture{display:flex;align-items:center;gap:8px}.removePicture input{width:auto;min-width:auto}

/* Kid experience */
.kid-space{max-width:1080px;margin:auto}.kid-space h1{font-size:clamp(1.8rem,5vw,2.8rem);letter-spacing:-.04em}.kid-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.race-reveal{position:relative;overflow:hidden;border-radius:28px;padding:32px;color:white;background:linear-gradient(145deg,#063b56,#087f91);box-shadow:0 15px 40px #063b5626}.race-reveal.neon{background:linear-gradient(145deg,#241047,#7632ab)}.race-reveal.sunset{background:linear-gradient(145deg,#713052,#c94e54)}.race-reveal h2{color:white;margin-top:24px}.race-reveal .eyebrow,.race-reveal small{color:#e1f3ff}.race-time{font-size:clamp(4rem,13vw,7rem);font-weight:850;letter-spacing:-.06em;line-height:1.2;margin:20px 0}.race-course{font-size:1rem;opacity:.8}.race-message{font-size:1.2rem;line-height:1.5}.race-status{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}.goal-reveal{border:1px solid #ffffff55;background:#ffffff16;padding:18px;border-radius:18px;margin:22px 0}.goal-reveal p{margin-bottom:0}.card-save{margin:20px 0 12px;width:100%}.kid-space .card>small{display:block}.race-history{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;margin:10px 0;padding:16px;border-radius:16px}.race-history small{display:block;margin-top:5px}.kid-space button[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}.sync-caption{line-height:1.5}button{min-height:44px}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media(max-width:700px){.kid-grid{grid-template-columns:1fr}.race-reveal{padding:26px}.headerRight{flex-wrap:wrap}#tabs{overflow-x:auto;flex-wrap:nowrap}#tabs button{flex-shrink:0}.kid-space>.row{align-items:flex-start}}

/* A little visitor moves the seconds, while the actual result remains honest. */
.result-stage{position:relative;isolation:isolate;min-height:310px;padding-top:140px;text-align:center}.result-stage .race-time{margin:8px 0;font-size:clamp(3.2rem,12vw,6rem);font-variant-numeric:tabular-nums}.time-label{display:block}.space-stars{position:absolute;inset:12px 0 auto;color:#cce6ff;letter-spacing:22px;opacity:.6}.reveal-visitor{position:absolute;top:32px;left:calc(50% - 55px);width:110px;height:65px;opacity:0;transform:translateX(-240px);z-index:-1}.ufo-dome{display:block;margin:auto;width:60px;height:42px;border:2px solid #baffe5;border-radius:40px 40px 9px 9px;background:#99ffd84a;font-size:30px;line-height:38px}.ufo-hull{display:block;height:22px;border-radius:50%;background:linear-gradient(#d5e2ff,#8e9ddd);border-bottom:4px dotted #baffc6;margin-top:-7px;box-shadow:0 4px 18px #b8ffcf66}.reveal-beam{position:absolute;top:58px;left:15px;width:80px;height:110px;background:linear-gradient(#b5ffae99,#b5ffae00);clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);opacity:0}.seconds-cargo{position:absolute;top:110px;left:0;right:0;font-size:14px;font-weight:850;color:#d6ffcf;opacity:0}.reveal-caption{min-height:48px;font-size:1rem}.reveal-controls{margin:16px 0}.reveal-controls button{background:#ffffff18;border-color:#ffffff66;color:white}.playing .reveal-visitor{animation:visitor-flight 3.9s ease-in-out both}.playing .reveal-beam{animation:beam-light 3.9s ease both}.playing.drop .seconds-cargo{animation:cargo-up 3.9s ease both}.playing.add .seconds-cargo{animation:cargo-down 3.9s ease both}.ocean .reveal-visitor{font-size:55px;line-height:65px}.ocean .reveal-beam{background:radial-gradient(circle,#b9f4ff88 20%,transparent 25%);background-size:22px 22px}.simple.result-stage{min-height:0;padding-top:12px}.simple .space-stars,.simple .reveal-visitor,.simple .seconds-cargo{display:none}.landed .reveal-visitor{opacity:1;transform:translateX(0)}.landed.simple .reveal-visitor{display:none}
@keyframes visitor-flight{0%{opacity:0;transform:translateX(-240px) rotate(-12deg)}25%,80%{opacity:1;transform:translateX(0) rotate(0)}100%{opacity:1;transform:translateX(0)}}
@keyframes beam-light{0%,28%,85%,100%{opacity:0}38%,76%{opacity:1}}
@keyframes cargo-up{0%,32%{opacity:0;transform:translateY(40px) scale(1)}42%{opacity:1;transform:translateY(40px) scale(1)}78%,100%{opacity:0;transform:translateY(-55px) scale(.4)}}
@keyframes cargo-down{0%,32%{opacity:0;transform:translateY(-55px) scale(.4)}42%{opacity:1}78%{opacity:1;transform:translateY(40px) scale(1)}100%{opacity:0;transform:translateY(40px)}}
@media(prefers-reduced-motion:reduce){.result-stage *{animation:none!important}}

/* Keep the old result visible throughout the transfer. */
.previous-time{position:absolute;top:8px;left:0;display:grid;text-align:left;background:#ffffff18;border:1px solid #ffffff33;border-radius:12px;padding:8px 12px;z-index:2}.previous-time small{font-size:10px;letter-spacing:.12em}.previous-time strong{font-size:24px;font-variant-numeric:tabular-nums}.result-stage{padding-top:220px;min-height:430px}.result-stage .reveal-visitor{top:90px;z-index:1}.result-stage .seconds-cargo{top:210px;font-size:27px;text-shadow:0 0 15px #afffb0;z-index:2}.result-stage .space-stars{top:70px}.result-stage .reveal-caption{margin-bottom:60px}.playing .reveal-visitor{animation:visitor-swoop 5.6s cubic-bezier(.25,.8,.4,1) both}.playing .reveal-beam{animation:beam-active 5.6s ease both;height:155px;width:120px;left:-5px}.playing.drop .seconds-cargo{animation:seconds-extract 5.6s ease-in-out both}.playing.add .seconds-cargo{animation:seconds-deliver 5.6s ease-in-out both}.playing .race-time{animation:time-pulse 5.6s ease both}.simple.result-stage{padding-top:85px;min-height:0}.simple .simple .reveal-caption{margin-bottom:16px}
@keyframes visitor-swoop{0%{opacity:0;transform:translate(-280px,-70px) rotate(-25deg) scale(.4)}18%{opacity:1;transform:translate(65px,24px) rotate(15deg) scale(1.2)}30%{transform:translate(-15px,-8px) rotate(-8deg) scale(1)}38%,80%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}88%{transform:translate(15px,-12px) rotate(8deg)}100%{opacity:0;transform:translate(300px,-110px) rotate(25deg) scale(.5)}}
@keyframes beam-active{0%,35%,86%,100%{opacity:0}40%,80%{opacity:1}}
@keyframes seconds-extract{0%,36%{opacity:0;transform:translateY(45px) scale(.7)}43%{opacity:1;transform:translateY(40px) scale(1.15)}55%{opacity:1;transform:translateY(5px) scale(1)}79%,100%{opacity:0;transform:translateY(-95px) scale(.25)}}
@keyframes seconds-deliver{0%,36%{opacity:0;transform:translateY(-95px) scale(.25)}45%{opacity:1;transform:translateY(-65px) scale(.6)}78%{opacity:1;transform:translateY(40px) scale(1.15)}87%,100%{opacity:0;transform:translateY(45px) scale(.7)}}
@keyframes time-pulse{0%,40%,88%,100%{transform:scale(1)}50%,70%{transform:scale(1.045);text-shadow:0 0 25px #baffcf88}}

/* Result direction: green dropped seconds, red added seconds. */
.result-stage.drop .seconds-cargo,.result-stage.drop .race-time,.result-stage.drop .reveal-caption,.time-drop{color:#86efac}
.result-stage.add .seconds-cargo,.result-stage.add .race-time,.result-stage.add .reveal-caption,.time-add{color:#fca5a5}
.result-stage.add .seconds-cargo{text-shadow:0 0 15px #ff6565}
.result-stage.add .reveal-beam{background:linear-gradient(#ffaaaa99,#ffaaaa00)}
.result-stage.drop .reveal-beam{background:linear-gradient(#b5ffae99,#b5ffae00)}
.result-stage.neutral .seconds-cargo{color:white;text-shadow:none}
.result-stage .reveal-caption{margin-bottom:12px}
@keyframes time-pulse{0%,40%,88%,100%{transform:scale(1)}50%,70%{transform:scale(1.045)}}

/* One continuous swimmer page, with temporary escape back to the parent menu. */
body.kid-mode{background:radial-gradient(ellipse at top,#d6f1f5,transparent 65%),#f5f8fb}body.kid-mode header,body.kid-mode footer{display:none}body.kid-mode main{max-width:760px;padding-top:12px}.kid-mode .kid-grid{grid-template-columns:1fr;gap:8px}.kid-mode .kid-space h1{font-size:clamp(1.7rem,5vw,2.3rem);margin:12px 0 22px}.back-menu{padding-left:0;font-size:14px}.race-identity{display:grid;gap:6px;border-bottom:1px solid #ffffff30;padding-bottom:20px;margin-bottom:20px}.race-identity strong{font-size:clamp(1.6rem,6vw,2.5rem);letter-spacing:-.04em}.race-reaction{padding-top:22px;margin-top:22px;border-top:1px solid #ffffff33}.race-reaction h3{margin:0 0 14px}.race-reaction button{background:#ffffff12;border-color:#ffffff44;color:white;font-size:14px}.race-reaction button[aria-pressed=true]{background:#ffffff30;outline-color:#b8f4ff}.race-reaction small{display:block;font-size:11px;margin-top:12px}.reaction-quote{font-size:1.3rem;font-style:italic}.save-hero{width:100%;margin:24px 0 18px;font-weight:800;background:white;border:0;color:#173b4b}.card-settings{margin-top:16px}.card-settings summary{cursor:pointer;font-weight:700;min-height:30px}.card-settings .card-save{margin-bottom:12px}.kid-mode .race-reveal{border:1px solid #ffffff80;box-shadow:0 20px 55px #173b4b26}.kid-mode .meet-preview{margin-top:8px}

/* Splash Planet: bright paper, cosmic stage, sticker reactions. */
body.kid-mode{background:radial-gradient(circle at top right,#f9d6ff,transparent 55%),#fff5df;color:#44245d}.kid-mode .race-reveal{background:radial-gradient(circle at 10% 20%,#f577c855,transparent 38%),radial-gradient(circle at 90% 75%,#63e6f055,transparent 50%),#472370;border:2px solid #c899ff;border-radius:30px 30px 45px 25px;box-shadow:0 7px 0 #b066cb}.kid-mode .race-reveal.neon{background:linear-gradient(145deg,#392268,#793abc)}.kid-mode .race-reveal.sunset{background:linear-gradient(145deg,#77335b,#c94e54)}.kid-mode .race-reveal h2{color:#ffeaa5;transform:rotate(-1deg)}.kid-mode .race-time{font-weight:900;text-shadow:4px 5px 0 #251445}.kid-mode .goal-reveal{border:0;background:#ffffff18;border-radius:18px}.kid-mode .save-hero{background:#ffdf9b;color:#44245d;box-shadow:0 4px 0 #ab72bb;transform:rotate(-1deg)}.kid-mode .race-reaction button{border-radius:18px;box-shadow:0 3px 0 #281944}.visitor-picker{display:grid;gap:14px;margin:18px 0}.visitor-picker small{font-size:12px;color:var(--muted)}.visitor-name{position:absolute;top:82px;left:0;right:0;text-align:center;font-size:12px;color:#e6c9ff}.visitor-character{display:block;font-size:66px;line-height:1;filter:drop-shadow(3px 5px 1px #22143d55)}.visitor-prop{position:absolute;top:28px;right:-12px;font-size:25px}.visitor-scene .reveal-visitor{height:75px;top:109px}.visitor-scene .reveal-beam{top:60px}.visitor-scene .seconds-cargo{top:232px}.visitor-scene{padding-top:255px}.visitor-scene.landed .reveal-visitor{opacity:0}.visitor-scene.neutral .seconds-cargo{display:none}.playing.neutral .reveal-beam{display:none}.visitor-scene .visitor-prop{opacity:0}.visitor-scene.playing .visitor-prop{animation:visitor-tool 5.6s both}.effect-bubble .reveal-beam{border-radius:50%;clip-path:none;background:radial-gradient(circle,#ffffff55 18%,transparent 23%);background-size:25px 25px}.effect-portal .reveal-beam,.effect-suction .reveal-beam{clip-path:ellipse(45% 50%);background:repeating-radial-gradient(ellipse,#ccadff77 0 8px,transparent 9px 16px)}.effect-flame .reveal-beam{clip-path:polygon(50% 0,65% 45%,85% 22%,100% 100%,0 100%,20% 25%,35% 50%)}.effect-claw .reveal-beam{clip-path:polygon(48% 0,52% 0,52% 90%,80% 80%,70% 100%,30% 100%,20% 80%,48% 90%)}.effect-signal .reveal-beam{clip-path:none;background:repeating-linear-gradient(transparent 0 17px,#ffffff55 18px 22px)}.effect-rainbow .reveal-beam{background:linear-gradient(90deg,#ff8caa55,#ffe49855,#9bffcc55,#a2cfff55);border-radius:40%}.effect-bite .reveal-beam,.effect-paw .reveal-beam{clip-path:circle(40%);background:radial-gradient(#ffffff55,transparent)}
@keyframes visitor-tool{0%,32%,90%,100%{opacity:0;transform:rotate(-20deg) scale(.4)}45%,75%{opacity:1;transform:rotate(15deg) scale(1.2)}}
.visitor-space-0.playing .reveal-visitor{animation:crew-space-0 5.6s ease-in-out both}
@keyframes crew-space-0{0%{opacity:0;transform:translate(-280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(-36px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-10px,-12px) rotate(-8.333333333333334deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,20px) rotate(25deg) scale(.4)}}
.visitor-space-1.playing .reveal-visitor{animation:crew-space-1 5.6s ease-in-out both}
@keyframes crew-space-1{0%{opacity:0;transform:translate(280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(-27px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-8px,-12px) rotate(4.0deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-space-2.playing .reveal-visitor{animation:crew-space-2 5.6s ease-in-out both}
@keyframes crew-space-2{0%{opacity:0;transform:translate(-280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(-18px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-6px,-12px) rotate(-3.3333333333333335deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-30px) rotate(10deg) scale(.4)}}
.visitor-space-3.playing .reveal-visitor{animation:crew-space-3 5.6s ease-in-out both}
@keyframes crew-space-3{0%{opacity:0;transform:translate(280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(-9px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-4px,-12px) rotate(10.0deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-space-4.playing .reveal-visitor{animation:crew-space-4 5.6s ease-in-out both}
@keyframes crew-space-4{0%{opacity:0;transform:translate(-280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(0px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-2px,-12px) rotate(0.0deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,60px) rotate(0deg) scale(.4)}}
.visitor-space-5.playing .reveal-visitor{animation:crew-space-5 5.6s ease-in-out both}
@keyframes crew-space-5{0%{opacity:0;transform:translate(280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(9px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0px,-12px) rotate(-8.333333333333334deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,20px) rotate(25deg) scale(.4)}}
.visitor-space-6.playing .reveal-visitor{animation:crew-space-6 5.6s ease-in-out both}
@keyframes crew-space-6{0%{opacity:0;transform:translate(-280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(18px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(2px,-12px) rotate(4.0deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-space-7.playing .reveal-visitor{animation:crew-space-7 5.6s ease-in-out both}
@keyframes crew-space-7{0%{opacity:0;transform:translate(280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(27px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(4px,-12px) rotate(-3.3333333333333335deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-30px) rotate(10deg) scale(.4)}}
.visitor-space-8.playing .reveal-visitor{animation:crew-space-8 5.6s ease-in-out both}
@keyframes crew-space-8{0%{opacity:0;transform:translate(-280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(36px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(6px,-12px) rotate(10.0deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-space-9.playing .reveal-visitor{animation:crew-space-9 5.6s ease-in-out both}
@keyframes crew-space-9{0%{opacity:0;transform:translate(280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(45px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(8px,-12px) rotate(0.0deg) scale(1.08)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,60px) rotate(0deg) scale(.4)}}
.visitor-ocean-0.playing .reveal-visitor{animation:crew-ocean-0 5.6s ease-in-out both}
@keyframes crew-ocean-0{0%{opacity:0;transform:translate(-280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(-36px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-16px,12px) rotate(12.5deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,20px) rotate(25deg) scale(.4)}}
.visitor-ocean-1.playing .reveal-visitor{animation:crew-ocean-1 5.6s ease-in-out both}
@keyframes crew-ocean-1{0%{opacity:0;transform:translate(280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(-27px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-12px,12px) rotate(-6.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-ocean-2.playing .reveal-visitor{animation:crew-ocean-2 5.6s ease-in-out both}
@keyframes crew-ocean-2{0%{opacity:0;transform:translate(-280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(-18px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-8px,12px) rotate(5.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-30px) rotate(10deg) scale(.4)}}
.visitor-ocean-3.playing .reveal-visitor{animation:crew-ocean-3 5.6s ease-in-out both}
@keyframes crew-ocean-3{0%{opacity:0;transform:translate(280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(-9px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-4px,12px) rotate(-15.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-ocean-4.playing .reveal-visitor{animation:crew-ocean-4 5.6s ease-in-out both}
@keyframes crew-ocean-4{0%{opacity:0;transform:translate(-280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(0px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0px,12px) rotate(0.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,60px) rotate(0deg) scale(.4)}}
.visitor-ocean-5.playing .reveal-visitor{animation:crew-ocean-5 5.6s ease-in-out both}
@keyframes crew-ocean-5{0%{opacity:0;transform:translate(280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(9px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(4px,12px) rotate(12.5deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,20px) rotate(25deg) scale(.4)}}
.visitor-ocean-6.playing .reveal-visitor{animation:crew-ocean-6 5.6s ease-in-out both}
@keyframes crew-ocean-6{0%{opacity:0;transform:translate(-280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(18px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(8px,12px) rotate(-6.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-ocean-7.playing .reveal-visitor{animation:crew-ocean-7 5.6s ease-in-out both}
@keyframes crew-ocean-7{0%{opacity:0;transform:translate(280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(27px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(12px,12px) rotate(5.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-30px) rotate(10deg) scale(.4)}}
.visitor-ocean-8.playing .reveal-visitor{animation:crew-ocean-8 5.6s ease-in-out both}
@keyframes crew-ocean-8{0%{opacity:0;transform:translate(-280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(36px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(16px,12px) rotate(-15.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-ocean-9.playing .reveal-visitor{animation:crew-ocean-9 5.6s ease-in-out both}
@keyframes crew-ocean-9{0%{opacity:0;transform:translate(280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(45px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(20px,12px) rotate(0.0deg) scale(1.04)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,60px) rotate(0deg) scale(.4)}}
.visitor-animals-0.playing .reveal-visitor{animation:crew-animals-0 5.6s ease-in-out both}
@keyframes crew-animals-0{0%{opacity:0;transform:translate(-280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(-36px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-12px,-22px) rotate(-12.5deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,20px) rotate(25deg) scale(.4)}}
.visitor-animals-1.playing .reveal-visitor{animation:crew-animals-1 5.6s ease-in-out both}
@keyframes crew-animals-1{0%{opacity:0;transform:translate(280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(-27px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-9px,-22px) rotate(6.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-animals-2.playing .reveal-visitor{animation:crew-animals-2 5.6s ease-in-out both}
@keyframes crew-animals-2{0%{opacity:0;transform:translate(-280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(-18px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-6px,-22px) rotate(-5.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-30px) rotate(10deg) scale(.4)}}
.visitor-animals-3.playing .reveal-visitor{animation:crew-animals-3 5.6s ease-in-out both}
@keyframes crew-animals-3{0%{opacity:0;transform:translate(280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(-9px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-3px,-22px) rotate(15.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-animals-4.playing .reveal-visitor{animation:crew-animals-4 5.6s ease-in-out both}
@keyframes crew-animals-4{0%{opacity:0;transform:translate(-280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(0px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0px,-22px) rotate(0.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,60px) rotate(0deg) scale(.4)}}
.visitor-animals-5.playing .reveal-visitor{animation:crew-animals-5 5.6s ease-in-out both}
@keyframes crew-animals-5{0%{opacity:0;transform:translate(280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(9px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(3px,-22px) rotate(-12.5deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,20px) rotate(25deg) scale(.4)}}
.visitor-animals-6.playing .reveal-visitor{animation:crew-animals-6 5.6s ease-in-out both}
@keyframes crew-animals-6{0%{opacity:0;transform:translate(-280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(18px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(6px,-22px) rotate(6.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-animals-7.playing .reveal-visitor{animation:crew-animals-7 5.6s ease-in-out both}
@keyframes crew-animals-7{0%{opacity:0;transform:translate(280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(27px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(9px,-22px) rotate(-5.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-30px) rotate(10deg) scale(.4)}}
.visitor-animals-8.playing .reveal-visitor{animation:crew-animals-8 5.6s ease-in-out both}
@keyframes crew-animals-8{0%{opacity:0;transform:translate(-280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(36px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(12px,-22px) rotate(15.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-animals-9.playing .reveal-visitor{animation:crew-animals-9 5.6s ease-in-out both}
@keyframes crew-animals-9{0%{opacity:0;transform:translate(280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(45px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(15px,-22px) rotate(0.0deg) scale(1.12)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,60px) rotate(0deg) scale(.4)}}
.visitor-fantasy-0.playing .reveal-visitor{animation:crew-fantasy-0 5.6s ease-in-out both}
@keyframes crew-fantasy-0{0%{opacity:0;transform:translate(-280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(-36px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-10px) rotate(-25deg) scale(1.1)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,20px) rotate(25deg) scale(.4)}}
.visitor-fantasy-1.playing .reveal-visitor{animation:crew-fantasy-1 5.6s ease-in-out both}
@keyframes crew-fantasy-1{0%{opacity:0;transform:translate(280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(-27px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-9px) rotate(12deg) scale(1.125)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-fantasy-2.playing .reveal-visitor{animation:crew-fantasy-2 5.6s ease-in-out both}
@keyframes crew-fantasy-2{0%{opacity:0;transform:translate(-280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(-18px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-8px) rotate(-10deg) scale(1.1500000000000001)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-30px) rotate(10deg) scale(.4)}}
.visitor-fantasy-3.playing .reveal-visitor{animation:crew-fantasy-3 5.6s ease-in-out both}
@keyframes crew-fantasy-3{0%{opacity:0;transform:translate(280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(-9px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-7px) rotate(30deg) scale(1.175)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-fantasy-4.playing .reveal-visitor{animation:crew-fantasy-4 5.6s ease-in-out both}
@keyframes crew-fantasy-4{0%{opacity:0;transform:translate(-280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(0px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-6px) rotate(0deg) scale(1.2000000000000002)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,60px) rotate(0deg) scale(.4)}}
.visitor-fantasy-5.playing .reveal-visitor{animation:crew-fantasy-5 5.6s ease-in-out both}
@keyframes crew-fantasy-5{0%{opacity:0;transform:translate(280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(9px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-5px) rotate(-25deg) scale(1.225)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,20px) rotate(25deg) scale(.4)}}
.visitor-fantasy-6.playing .reveal-visitor{animation:crew-fantasy-6 5.6s ease-in-out both}
@keyframes crew-fantasy-6{0%{opacity:0;transform:translate(-280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(18px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-4px) rotate(12deg) scale(1.25)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-fantasy-7.playing .reveal-visitor{animation:crew-fantasy-7 5.6s ease-in-out both}
@keyframes crew-fantasy-7{0%{opacity:0;transform:translate(280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(27px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-3px) rotate(-10deg) scale(1.2750000000000001)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-30px) rotate(10deg) scale(.4)}}
.visitor-fantasy-8.playing .reveal-visitor{animation:crew-fantasy-8 5.6s ease-in-out both}
@keyframes crew-fantasy-8{0%{opacity:0;transform:translate(-280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(36px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-2px) rotate(30deg) scale(1.3)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-fantasy-9.playing .reveal-visitor{animation:crew-fantasy-9 5.6s ease-in-out both}
@keyframes crew-fantasy-9{0%{opacity:0;transform:translate(280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(45px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0,-1px) rotate(0deg) scale(1.3250000000000002)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,60px) rotate(0deg) scale(.4)}}
.visitor-machines-0.playing .reveal-visitor{animation:crew-machines-0 5.6s ease-in-out both}
@keyframes crew-machines-0{0%{opacity:0;transform:translate(-280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(-36px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-20px,4px) rotate(-6.25deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,20px) rotate(25deg) scale(.4)}}
.visitor-machines-1.playing .reveal-visitor{animation:crew-machines-1 5.6s ease-in-out both}
@keyframes crew-machines-1{0%{opacity:0;transform:translate(280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(-27px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-15px,4px) rotate(3.0deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-machines-2.playing .reveal-visitor{animation:crew-machines-2 5.6s ease-in-out both}
@keyframes crew-machines-2{0%{opacity:0;transform:translate(-280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(-18px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-10px,4px) rotate(-2.5deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-30px) rotate(10deg) scale(.4)}}
.visitor-machines-3.playing .reveal-visitor{animation:crew-machines-3 5.6s ease-in-out both}
@keyframes crew-machines-3{0%{opacity:0;transform:translate(280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(-9px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(-5px,4px) rotate(7.5deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-machines-4.playing .reveal-visitor{animation:crew-machines-4 5.6s ease-in-out both}
@keyframes crew-machines-4{0%{opacity:0;transform:translate(-280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(0px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(0px,4px) rotate(0.0deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,60px) rotate(0deg) scale(.4)}}
.visitor-machines-5.playing .reveal-visitor{animation:crew-machines-5 5.6s ease-in-out both}
@keyframes crew-machines-5{0%{opacity:0;transform:translate(280px,-90px) rotate(-25deg) scale(.4)}25%{opacity:1;transform:translate(9px,12px) rotate(12.5deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(5px,4px) rotate(-6.25deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,20px) rotate(25deg) scale(.4)}}
.visitor-machines-6.playing .reveal-visitor{animation:crew-machines-6 5.6s ease-in-out both}
@keyframes crew-machines-6{0%{opacity:0;transform:translate(-280px,60px) rotate(12deg) scale(.4)}25%{opacity:1;transform:translate(18px,12px) rotate(-6.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(10px,4px) rotate(3.0deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-130px) rotate(-12deg) scale(.4)}}
.visitor-machines-7.playing .reveal-visitor{animation:crew-machines-7 5.6s ease-in-out both}
@keyframes crew-machines-7{0%{opacity:0;transform:translate(280px,-40px) rotate(-10deg) scale(.4)}25%{opacity:1;transform:translate(27px,12px) rotate(5.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(15px,4px) rotate(-2.5deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,-30px) rotate(10deg) scale(.4)}}
.visitor-machines-8.playing .reveal-visitor{animation:crew-machines-8 5.6s ease-in-out both}
@keyframes crew-machines-8{0%{opacity:0;transform:translate(-280px,120px) rotate(30deg) scale(.4)}25%{opacity:1;transform:translate(36px,12px) rotate(-15.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(20px,4px) rotate(7.5deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(280px,-190px) rotate(-30deg) scale(.4)}}
.visitor-machines-9.playing .reveal-visitor{animation:crew-machines-9 5.6s ease-in-out both}
@keyframes crew-machines-9{0%{opacity:0;transform:translate(280px,-130px) rotate(0deg) scale(.4)}25%{opacity:1;transform:translate(45px,12px) rotate(0.0deg) scale(1.12)}38%{transform:translate(0,0)}55%{transform:translate(25px,4px) rotate(0.0deg) scale(1.03)}76%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-280px,60px) rotate(0deg) scale(.4)}}

/* The entire kid experience lives inside a single bubble. */
.kid-mode main{max-width:660px;padding:16px 12px 30px}.bubble-only .back-menu{color:#e6c9ff;padding:0;margin-bottom:14px;background:transparent;min-height:32px}.bubble-only .race-identity{padding-bottom:14px;margin-bottom:14px}.bubble-section{margin-top:16px;padding-top:16px;border-top:1px solid #ffffff33;color:white}.bubble-section summary{font-weight:700;cursor:pointer;min-height:44px;padding:8px 0}.bubble-section p,.bubble-section small,.bubble-section label,.bubble-section .visitor-picker small{color:#e6dbf6}.bubble-section .item{border-color:#ffffff33;background:#ffffff0a}.bubble-section .item small{color:#e6dbf6}.bubble-section .race-history{background:#ffffff10;border-color:#ffffff33;color:white}.bubble-section .race-history small{color:#e6dbf6}.bubble-section .visitor-picker{margin-top:10px}.bubble-section .card-save{display:none}.bubble-only .race-reveal{padding:24px}.bubble-only .race-reaction small{font-size:11px}.bubble-only .save-hero{margin:20px 0 14px}.kid-mode #notice:not(:empty){position:relative;margin:0 12px 12px;font-size:12px}@media(max-width:400px){.bubble-only .race-reveal{padding:20px}.bubble-only .race-reaction .row{gap:6px}.bubble-only .race-reaction button{font-size:12px;padding:8px}}

.race-conversation{border-top:1px solid #ffffff33;margin-top:22px;padding-top:20px}.race-conversation h3{margin:0 0 14px}.message-thread{display:grid;gap:10px;margin-bottom:18px}.family-message{background:#ffffff12;border:1px solid #ffffff22;border-radius:16px;padding:12px}.family-message.mine{background:#d4b3ff24;margin-left:18px}.message-author{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:12px}.message-author time{color:#dfd0f2;font-size:11px}.family-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;color:white}.message-empty,.message-error{font-size:14px;color:#e6dbf6}#raceMessageForm{display:grid;gap:10px}#raceMessageForm label{color:#e6dbf6}#raceMessageForm textarea{resize:vertical}#raceMessageForm small{font-size:11px;color:#dfd0f2}.send-message{background:#ffdf9b;border:0;color:#44245d;font-weight:700}.message-thread{max-height:330px;overflow-y:auto;padding-right:3px}

.kid-preview-note{color:#dfd0f2;font-size:12px;padding:10px 0;margin-bottom:0}

/* Swimmer-specific palettes, independent of parent family branding. */
body.kid-mode{background:radial-gradient(circle at top right,var(--kid-page-glow,#f9d6ff),transparent 55%),var(--kid-page-paper,#fff5df)}.kid-mode .bubble-only .race-reveal{background:radial-gradient(circle at 10% 20%,#ffffff12,transparent 38%),linear-gradient(145deg,var(--kid-bubble-start,#472370),var(--kid-bubble-end,#286174))}.kid-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.kid-theme-grid button{display:grid;justify-items:center;gap:8px;background:#ffffff12;border-color:#ffffff44;color:white;padding:12px 6px;font-size:12px;min-width:0}.kid-theme-grid button[aria-pressed=true]{outline:3px solid #ffdf9b;outline-offset:1px;background:#ffffff25}.theme-swatch{display:block;width:48px;height:32px;border-radius:12px;border:1px solid #ffffff66}.kid-theme-grid button{overflow-wrap:anywhere}@media(max-width:360px){.kid-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.kid-meet-label{color:#e6dbf6;margin:14px 0}.kid-meet-events{display:grid;gap:9px;margin:20px 0}.kid-meet-events button{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;background:#ffffff10;border-color:#ffffff44;color:white;border-radius:16px;padding:13px}.kid-meet-events small{display:block;color:#dfd0f2;font-size:12px;margin-top:4px}.kid-meet-events .event-result{text-align:right}.kid-meet-events button[aria-pressed=true]{background:#ffffff25;outline-color:#ffdf9b}.kid-meet-events .time-drop{color:#86efac}.kid-meet-events .time-add{color:#fca5a5}.kid-race-detail{border-top:1px solid #ffffff33;padding-top:20px}.kid-race-waiting{text-align:center;padding:24px 10px;border-top:1px solid #ffffff33}.kid-race-waiting>span{font-size:42px}.kid-race-waiting p{color:#e6dbf6}.kid-progress label{color:#e6dbf6}#kidHistoryChart{display:block;width:100%;height:auto;margin-top:20px}#kidHistoryChart text{font:12px system-ui;fill:#e6dbf6}.kid-graph-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px}.kid-graph-point{cursor:pointer}.kid-graph-point:focus{stroke:white;stroke-width:2}#kidGraphDetail{font-size:13px;color:#e6dbf6}

.kid-race-detail{scroll-margin-top:18px}

.login-modes{display:flex;gap:8px;margin:20px 0}.login-modes button{flex:1;font-size:14px}.login-modes button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:white}#kidPairForm{display:grid;gap:14px}#kidPairForm h2{font-size:23px;margin:0}#kidPairForm input[name=code]{text-transform:uppercase;letter-spacing:.08em}.pairing-card{margin:16px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:#f2f8fc}.pair-code{display:block;font-size:clamp(16px,4vw,24px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;letter-spacing:.05em;margin:16px 0}#pairQRCode{width:204px;padding:12px;background:white;border-radius:12px;margin-bottom:15px}#pairQRCode img,#pairQRCode canvas{max-width:180px}.kid-device-list{margin-top:24px}.kid-device-list .item{margin:10px 0}.kid-leave{margin-top:18px;background:transparent;color:#e6dbf6;border-color:#ffffff44;font-size:12px}

.portal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.portal-header h2{font-size:22px;margin:8px 0}.portal-header button{color:white;background:#ffffff12;border-color:#ffffff44;font-size:12px}.portal-swimmer-label{color:#e6dbf6;margin:14px 0 20px}.login-modes{flex-wrap:wrap}.login-modes button{min-width:80px;padding:10px 8px}

/* Clear role-based login */
.auth-mode>header{display:none}.auth-mode{background:linear-gradient(160deg,#e8faff,#f4fbfc)}
.auth .authCard{max-width:480px;width:100%;padding:28px;border-radius:28px;box-shadow:0 14px 55px #075b7814;background:#fff;overflow:hidden}.auth{padding:28px 16px}.login-hero{text-align:center;padding:12px 0 26px;border-bottom:5px solid #8de0e9;margin-bottom:24px}.login-hero h1{font-size:34px;line-height:1.15;color:#073b58;margin:14px 0 8px}.login-hero p{font-size:18px;margin:0;color:#49768b}.login-hero .mark{margin:auto;background:linear-gradient(135deg,#0b6b88,#04adbc);color:white}.auth #roleHeading{text-align:center;color:#073b58;font-size:25px}.auth .login-modes{display:grid;gap:14px}.auth .login-modes button{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:20px;border:0;background:#e9f7f6;border-radius:20px;color:#073b58}.auth .login-modes button:nth-child(2){background:#e7f4ff}.auth .login-modes button:nth-child(3){background:#ddf9fc}.login-modes strong{font-size:21px;display:block}.login-modes small{font-size:15px;line-height:1.4;display:block;font-weight:400;margin-top:5px}.role-icon{font-size:32px}.login-modes button>span:last-child{margin-left:auto;font-size:28px}#authEntry>button{width:100%;margin:8px 0;min-height:56px;font-size:19px}#authEntry p,#signupHint{font-size:14px;text-align:center;color:#607488}.auth input{min-height:50px;background:#fff}.auth label{margin-bottom:18px}.auth .primary{background:#008f9c;color:white;border-color:#008f9c;min-height:54px}.auth #signup{width:100%;margin-top:8px}#authBack{padding:4px;color:#075b78}.auth button:focus-visible{outline:3px solid #ef8b66;outline-offset:3px}@media(max-width:520px){.auth .authCard{padding:22px}.auth{padding:16px 12px}.login-hero h1{font-size:30px}}

.family-members-panel{grid-column:1/-1}.member-access-card{background:#fff;border:1px solid #cbdce3;border-radius:18px;padding:22px;margin-top:20px;color:#173b4b}.member-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.member-heading h3{margin:0;font-size:21px;overflow-wrap:anywhere}.member-heading p{margin:5px 0;color:#426174;overflow-wrap:anywhere}.member-role{display:inline-block;background:#e8f4f6;color:#214f63;padding:5px 10px;border-radius:9px;font-size:14px;margin-top:8px}.member-permissions h4{margin:22px 0 12px;font-size:16px}.member-swimmer-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(190px,1fr);align-items:center;gap:18px;border-top:1px solid #e0e9ed;padding:14px 0;margin:0;font-size:16px;font-weight:600}.member-access-card select,.member-access-card option{background:#fff;color:#173b4b;font-size:16px}.member-access-card select{width:100%;min-height:50px;border:1px solid #9ab5c3;border-radius:10px}.permission-help{color:#466475;font-size:14px}.member-kid-link{margin-top:18px;border-top:1px solid #d8e5eb;padding-top:14px}.member-kid-link summary{cursor:pointer;color:#214f63}.member-kid-link label{margin-top:16px}.member-heading .danger{background:#fff3f1;color:#9b2929;border:1px solid #c77d77}.family-members-panel #inviteForm{margin:18px 0}@media(max-width:600px){.member-access-card{padding:18px}.member-swimmer-row{grid-template-columns:1fr;gap:8px}.member-heading .danger{min-height:46px}}

/* Parent race history */
.progress-selectors{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin:20px 0}.progress-chart-scroll{overflow-x:auto;padding:8px 0}.parent-progress .chart,#progressDialog .chart{height:auto;width:100%;display:block;color:var(--primary)}#chart text{font-size:13px;fill:currentColor}.progress-legend{display:flex;flex-wrap:wrap;gap:14px;padding:16px 0;font-weight:600}.progress-detail{border:1px solid #cbdde5;border-radius:16px;padding:18px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;min-height:76px}.progress-detail strong{font-size:26px}.time-drop{color:#187541}.time-add{color:#b93030}#chart [data-progress-point]:focus,#chart [data-progress-point].selected{stroke:var(--accent);stroke-width:3;outline:none}#progressDialog{width:calc(100vw - 32px);max-width:1400px;max-height:calc(100dvh - 32px);border:0;border-radius:20px;padding:24px;color:var(--primary)}#progressDialog::backdrop{background:#082b40aa}body:has(#progressDialog[open]){overflow:hidden}@media(max-width:600px){.progress-selectors{grid-template-columns:1fr 1fr;gap:12px}#progressDialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:18px}.progress-detail{align-items:flex-start;flex-direction:column}.parent-progress .row.between{gap:12px}}

.bubble-history-panel{margin-top:16px;min-width:0;color:var(--primary)}.bubble-history-panel .parent-progress{background:#fff;color:var(--primary);border-radius:18px;margin:0;padding:18px;min-width:0}.bubble-history-panel h2{color:var(--primary);font-size:21px}.bubble-history-panel p,.bubble-history-panel label{color:#456574}.bubble-history-panel .progress-detail{color:#244d60}.bubble-history-panel select{background:white;color:#143e52;border-color:#b4ccd8}.bubble-history-panel .progress-chart-scroll{max-width:100%}#progressDialog .progress-chart-scroll{max-width:100%}#progressDialog h2{color:var(--primary)}#progressDialog .progress-detail{color:#244d60}.bubble-history-panel .time-drop,#progressDialog .time-drop{color:#187541}.bubble-history-panel .time-add,#progressDialog .time-add{color:#b93030}

/* In-app meet notifications */
.meet-announcement-history{margin:14px 0 18px;padding:14px 16px;border-left:4px solid var(--accent);background:#f3fafb;border-radius:12px}.meet-announcement-history p{margin:6px 0;white-space:pre-wrap}.meet-announcement-history small{color:#58717d}.meet-notification-banner{display:flex;gap:12px;align-items:flex-start;background:#ffdf9b;color:#44245d;border-radius:16px;padding:14px 16px;margin:0 0 18px;text-align:left}.meet-notification-banner>span{font-size:26px}.meet-notification-banner strong{display:block}.meet-notification-banner p{margin:5px 0;color:#44245d;white-space:pre-wrap}.meet-notification-banner small{color:#6d557b}

/* v1.14.2 Progress dashboard */
.progress-dashboard{display:grid;gap:20px}.progress-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.progress-head h1{font-size:36px;margin:3px 0}.progress-head p,.progress-card-title p,.recent-progress p{margin:4px 0;color:#617984}.progress-controls{display:grid;grid-template-columns:minmax(180px,1fr) 150px auto;gap:14px;align-items:end}.progress-range{display:flex;background:#e9f0f4;border-radius:12px;padding:4px}.progress-range button{border:0;background:transparent}.progress-range button.active{background:#fff;box-shadow:0 2px 8px #163d5420}.progress-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.progress-stat{background:#fff;border:1px solid #dce7ec;border-radius:18px;padding:18px;box-shadow:0 6px 20px #173e5210}.progress-stat>span{font-size:11px;font-weight:800;letter-spacing:.09em;color:#6b818b}.progress-stat>strong{display:block;font-size:30px;margin:8px 0;color:#153e52}.progress-stat small{color:#58717d}.progress-layout{display:grid;grid-template-columns:minmax(0,2.7fr) minmax(230px,.8fr);gap:18px}.progress-main-card{min-width:0}.progress-card-title{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.standard-toggles{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.standard-chip{padding:6px 9px;background:#eef5f8;border-radius:999px;font-size:12px;font-weight:700}.progress-side{display:grid;gap:18px;align-content:start}.goal-ring-row{display:flex;align-items:end;gap:10px;margin:12px 0}.goal-ring-row strong{font-size:38px}.goal-ring-row span{color:#607985;padding-bottom:6px}.goal-bar{height:10px;background:#e5eef2;border-radius:99px;overflow:hidden}.goal-bar i{display:block;height:100%;background:var(--primary);border-radius:99px}.summary-row{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid #edf2f4}.summary-row:last-child{border:0}.recent-swim{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #e7eef1}.recent-swim small{display:block;color:#6c818b;margin-top:3px}.time-drop{color:#16804b!important;font-weight:750}.time-add{color:#c43d3d!important;font-weight:750}.neutral-change{color:#6c818b}.chart-grid{stroke:#dfe8ec;stroke-width:1}.progress-line{fill:none;stroke:var(--primary);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.progress-dot{fill:#fff;stroke:var(--primary);stroke-width:4}.progress-dot.is-pb{fill:var(--accent)}.standard-line{stroke-width:2;stroke-dasharray:7 7}.standard-0{stroke:#d38b18}.standard-1{stroke:#6e78b8}.standard-2{stroke:#9d5a91}.standard-3{stroke:#23877d}.standard-4{stroke:#6c8a3c}.standard-label{font-weight:800;font-size:12px}.axis-caption{font-weight:700}.progress-sheet[hidden]{display:none}.progress-sheet{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center}.sheet-backdrop{position:absolute;inset:0;border:0;border-radius:0;background:#082b4099}.sheet-card{position:relative;background:#fff;width:min(620px,100%);border-radius:24px 24px 0 0;padding:28px;box-shadow:0 -15px 60px #082b4040}.sheet-close{position:absolute;right:18px;top:14px;border:0;background:#edf3f6;border-radius:50%;width:36px;height:36px;font-size:24px}.sheet-card h2{font-size:38px;margin:8px 0}.pb-badge{font-size:13px;background:#e6f6ec;color:#187541;padding:6px 9px;border-radius:999px;vertical-align:middle}.sheet-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.sheet-detail-grid>span{background:#f4f8fa;padding:14px;border-radius:14px;color:#667d87}.sheet-detail-grid strong{display:block;color:#173f52;margin-top:5px}.muted{color:#6c818b}.progress-fullscreen{white-space:nowrap}
@media(max-width:900px){.progress-stat-grid{grid-template-columns:repeat(2,1fr)}.progress-layout{grid-template-columns:1fr}.progress-side{grid-template-columns:1fr 1fr}.progress-controls{grid-template-columns:1fr 1fr}.progress-range{grid-column:1/-1}.progress-card-title{display:block}.standard-toggles{justify-content:flex-start;margin-top:12px}}
@media(max-width:600px){.progress-head{align-items:flex-start}.progress-head h1{font-size:30px}.progress-head p{display:none}.progress-fullscreen{font-size:0;padding:10px}.progress-fullscreen:after{content:'⛶';font-size:22px}.progress-stat-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.progress-stat{min-width:150px;scroll-snap-align:start}.progress-stat>strong{font-size:25px}.progress-side{grid-template-columns:1fr}.progress-controls{grid-template-columns:1fr 1fr}.progress-range button{font-size:12px;padding:9px 7px}.recent-swim{grid-template-columns:minmax(0,1fr) auto}.recent-swim>:last-child{grid-column:1/-1}.sheet-card{padding:25px 20px max(25px,env(safe-area-inset-bottom))}.sheet-card h2{font-size:32px}.standard-toggles{max-height:42px;overflow:hidden}.progress-main-card{padding:15px}.progress-chart-scroll{margin:0 -8px}.progress-side .card{margin:0}}
