
    .duck-race-game{--purple:#633be6;--deep:#25185c;--ink:#292345;--muted:#827b97;--yellow:#ffdc55;--line:#e6e1f3}
    .duck-race-game *{box-sizing:border-box}.duck-race-game{margin:0;background:radial-gradient(ellipse at 10% 0,#fff9db,transparent 40%),radial-gradient(ellipse at 95% 10%,#e7ddff,transparent 45%),#f5f3fc;color:var(--ink);font:15px/1.5 "Segoe UI",system-ui,sans-serif}.duck-race-game button,.duck-race-game textarea{font:inherit}.duck-race-game button{cursor:pointer;touch-action:manipulation}.duck-race-game button:disabled{opacity:.45;cursor:not-allowed}.duck-race-game button:focus-visible,.duck-race-game textarea:focus-visible,.duck-race-game input:focus-visible{outline:3px solid #bfaaff;outline-offset:4px}.duck-race-game button{transition:background .16s,transform .16s}.duck-race-game button:active:not(:disabled){transform:translateY(2px)}
    .duck-race-game .app{max-width:1510px;margin:auto;padding:24px 30px 40px}.duck-race-game .topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.duck-race-game .brand{display:flex;align-items:center;gap:11px}.duck-race-game .brand-icon{background:var(--purple);width:46px;height:46px;display:grid;place-items:center;border-radius:15px;font-size:27px;box-shadow:0 5px 0 #4427aa;transform:rotate(-7deg)}.duck-race-game .brand-name{font-weight:900;font-size:23px;letter-spacing:-1px}.duck-race-game .brand-name em{font-style:normal;color:var(--purple)}.duck-race-game .brand-sub{font-size:10px;color:var(--muted);font-weight:800;letter-spacing:1.9px}.duck-race-game .head-actions{display:flex;gap:9px}.duck-race-game .pill-btn{display:flex;gap:7px;align-items:center;border:1px solid var(--line);background:#ffffffd9;color:#5a498a;padding:10px 15px;border-radius:12px;font-size:12px;font-weight:800}.duck-race-game .pill-btn:hover{background:#f0eaff}.duck-race-game .pill-btn.active{background:var(--purple);color:white}.duck-race-game .page-intro{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:0 3px 15px}.duck-race-game .eyebrow{font-size:10px;font-weight:900;letter-spacing:1.6px;color:#9183aa}.duck-race-game .page-intro p{font-size:12px;color:var(--muted);margin:3px 0}.duck-race-game .preview-badge{background:#fff;border:1px solid var(--line);padding:6px 11px;border-radius:8px;color:#897b9b;font-size:10px;letter-spacing:1px;font-weight:800}
    .duck-race-game .screen-frame{padding:8px;background:linear-gradient(125deg,#5633b9,#241d49 40%,#483181 85%,#9a6bea);border-radius:25px;box-shadow:0 22px 55px #3c276c24,0 4px 0 #fff,0 7px 0 #d6cce9}.duck-race-game .scene{position:relative;aspect-ratio:16/8;overflow:hidden;border-radius:18px;background:#55c5e7;isolation:isolate;container-type:inline-size}.duck-race-game .scene:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px #ffffff54,inset 0 -8px 25px #046a9026;border-radius:inherit;pointer-events:none;z-index:9}.duck-race-game .scene-heading{position:absolute;z-index:5;top:16px;left:20px;right:20px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.duck-race-game .scene-brand{background:#ffffffed;border:2px solid #fff;border-radius:10px;display:flex;align-items:center;gap:6px;padding:7px 11px;font-weight:900;font-size:12px;color:#392475;box-shadow:0 3px 8px #17459113}.duck-race-game .scene-title{text-align:center;position:absolute;left:50%;top:0;transform:translateX(-50%);white-space:nowrap}.duck-race-game .scene-title h2{font-size:clamp(23px,3cqw,47px);line-height:1.2;letter-spacing:-1px;color:#ffde46;paint-order:stroke fill;-webkit-text-stroke:5px white;text-shadow:0 4px 0 #f0a700,0 7px 0 #4953af,0 9px 15px #285a8166;font-weight:1000;margin:0}.duck-race-game .scene-title p{margin:8px 0 0;color:#254f80;background:#ffffffd9;display:inline-block;border-radius:20px;padding:4px 13px;font-size:10px;font-weight:800;letter-spacing:.3px}.duck-race-game .scene-meta{display:flex;gap:7px;flex-direction:column;align-items:flex-end}.duck-race-game .players-pill{border:2px solid white;border-radius:20px;background:#f9f8fff0;color:#534c98;font-size:11px;font-weight:850;padding:6px 12px;box-shadow:0 2px 8px #2c4a6c1a}.duck-race-game .players-pill b{font-size:13px;color:#6342de}.duck-race-game .status{font-size:9px;background:#203b65b8;color:#fff;border:1px solid #ffffff70;border-radius:20px;padding:4px 9px;font-weight:900;letter-spacing:.8px;display:flex;align-items:center;gap:5px}.duck-race-game .status:before{content:"";width:6px;height:6px;border-radius:50%;background:#8aeb84}.duck-race-game .status.racing:before{background:#ffe36c;animation:pulse .6s infinite alternate}.duck-race-game .status.finished:before{background:#ffcf34}
    .duck-race-game .leaderboard{position:absolute;z-index:6;left:14px;top:30%;width:15%;min-width:133px;max-width:210px;border:1px solid #ffffff6b;border-radius:14px;background:linear-gradient(135deg,#124c77df,#12345edd);box-shadow:0 5px 20px #044b642a;backdrop-filter:blur(6px);color:#fff;overflow:hidden}.duck-race-game .leaderboard h2{margin:0;padding:13px 13px 9px;display:flex;justify-content:space-between;gap:5px;font-size:10px;letter-spacing:1px;font-weight:900;border-bottom:1px solid #ffffff1c}.duck-race-game .leaderboard h2 span{font-size:8px;letter-spacing:0;color:#a6d4ee;font-weight:600}.duck-race-game .medals{padding:5px 0}.duck-race-game .medal{display:flex;align-items:center;gap:8px;padding:7px 12px;min-width:0}.duck-race-game .medal.first{background:linear-gradient(90deg,#ffd54b50,transparent)}.duck-race-game .medal-icon{width:24px;height:24px;display:grid;place-items:center;flex:none;background:var(--rank-color,#7060f4);border-radius:50%;border:2px solid #ffffffbc;font-size:12px;font-weight:900;text-shadow:0 1px 1px #0003}.duck-race-game .first .medal-icon{background:none;border:none;font-size:23px}.duck-race-game .medal-name{font-size:clamp(10px,1cqw,14px);font-weight:750;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duck-race-game .board-footer{border-top:1px solid #ffffff21;font-size:9px;padding:9px 12px;color:#a5d4ea}.duck-race-game .board-footer strong{color:white}.duck-race-game .view-note{font-size:8px;display:block;opacity:.8;margin-top:4px}
    .duck-race-game #lanes{position:absolute;inset:0;z-index:3;pointer-events:none}.duck-race-game .racer{position:absolute;left:0;top:0;width:100px;height:90px;will-change:transform;transform-origin:center bottom}.duck-race-game .duck-art{display:block;width:100%;height:auto;object-fit:contain;position:relative;z-index:2;animation:swim 1s ease-in-out infinite alternate;filter:var(--duck-filter);transform-origin:50% 80%}.duck-race-game .racer-name{display:flex;align-items:center;gap:5px;position:absolute;z-index:4;left:54%;bottom:91%;transform:translateX(-50%);border:2px solid #fff;background:#fffffff5;color:#263761;padding:2px 9px 2px 2px;border-radius:25px;max-width:145px;min-width:75px;box-shadow:0 3px 8px #1573a454;white-space:nowrap;font-size:11px;font-weight:900}.duck-race-game .racer-name .place{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--tag-color,#7463e5);color:white;font-size:11px;border:1px solid #fff8}.duck-race-game .racer-name .name{overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:95px}.duck-race-game .racer.crossed .place{background:#f4ae19}.duck-race-game .wake{position:absolute;left:-22%;bottom:4%;width:85%;height:20%;border-bottom:3px solid #fffffff0;border-radius:50%;box-shadow:0 7px 0 -5px #fff,0 11px 0 -8px #d8ffff;opacity:.85;animation:wake .7s infinite alternate}.duck-race-game .wake:before,.duck-race-game .wake:after{content:"";position:absolute;width:14px;height:7px;border-top:2px solid white;border-radius:50%;left:-4%;top:-15%}.duck-race-game .wake:after{left:25%;top:100%;width:23px}.duck-race-game .scene[data-phase="paused"] .duck-art,.duck-race-game .scene[data-phase="paused"] .wake{animation-play-state:paused}.duck-race-game .scene[data-phase="idle"] .wake{opacity:.35}.duck-race-game .finish-layer{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:.93}.duck-race-game .finish-sign{position:absolute;right:9.3%;top:25%;z-index:4;transform:rotate(3deg);color:white;background:linear-gradient(#bd8150,#9e5d35);border:3px solid #e7ad70;border-radius:6px;padding:3px 12px;box-shadow:0 4px 0 #71482b;font-size:clamp(15px,2cqw,28px);font-weight:1000;letter-spacing:1px;text-shadow:0 2px 0 #6f4327}.duck-race-game .finish-sign:after{content:"";position:absolute;width:6px;height:28px;left:50%;top:100%;background:#865c37;border-left:2px solid #d59a5e;z-index:-1}.duck-race-game .scene-bottom{position:absolute;bottom:13px;left:20px;right:20px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.duck-race-game .timer{display:flex;align-items:center;gap:8px;background:#fff7dfed;border:2px solid white;border-radius:13px;padding:6px 12px;box-shadow:0 3px 8px #1573a428}.duck-race-game .timer span{font-size:10px;color:#74698b;font-weight:800}.duck-race-game .timer b{color:#6343d2;font-weight:950;font-size:21px;font-variant-numeric:tabular-nums}.duck-race-game .leader-chip{background:#163d67b5;border:1px solid #ffffff80;border-radius:20px;padding:6px 13px;color:white;font-size:11px;font-weight:700;max-width:40%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.duck-race-game .track-foot{font-size:10px;color:white;text-shadow:0 1px 4px #064660;font-weight:750;text-align:right}.duck-race-game .sparkle{position:absolute;pointer-events:none;z-index:4;color:#fff789;font-size:28px;text-shadow:0 2px 0 #ffd83f;animation:twinkle 2s infinite alternate}.duck-race-game .sparkle.one{left:67%;top:54%}.duck-race-game .sparkle.two{left:36%;top:81%;font-size:18px;animation-delay:.5s}.duck-race-game .sparkle.three{left:87%;top:70%;font-size:16px;animation-delay:1.2s}
    .duck-race-game .controls-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 5px}.duck-race-game .controls-caption strong{font-size:15px;font-weight:850}.duck-race-game .controls-caption p{font-size:12px;color:var(--muted);margin:3px 0 0}.duck-race-game .race-controls{display:flex;align-items:center;gap:8px}.duck-race-game .primary,.duck-race-game .secondary{border-radius:13px;padding:12px 20px;font-size:13px;font-weight:850;white-space:nowrap;border:1px solid var(--line);min-height:46px}.duck-race-game .primary{background:linear-gradient(#7a4df1,#6236da);border-color:#7044e3;box-shadow:0 4px 0 #4625aa;color:white}.duck-race-game .primary:hover{background:#7544ed}.duck-race-game .secondary{background:white;color:#675785}.duck-race-game .secondary:hover{background:#f0eaff}.duck-race-game .config-grid{display:grid;grid-template-columns:1fr 340px;gap:18px;margin-top:4px}.duck-race-game .panel{padding:21px;border:1px solid var(--line);border-radius:18px;background:#ffffffd9;box-shadow:0 5px 20px #59398805}.duck-race-game .panel h2{margin:0 0 14px;font-size:13px;display:flex;justify-content:space-between;align-items:center;gap:10px}.duck-race-game .panel h2 span{font-size:10px;font-weight:600;color:#9a91ab}.duck-race-game .config-inner{display:grid;grid-template-columns:1fr 1fr;gap:24px}.duck-race-game .field-title{font-size:10px;letter-spacing:1px;color:#817192;font-weight:850;margin-bottom:8px}.duck-race-game .textarea{width:100%;height:164px;resize:vertical;border:1px solid #e2dcef;background:#fbfaff;border-radius:12px;padding:11px 13px;line-height:1.5;color:#554869;font-size:13px}.duck-race-game .hintline{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#a296ac;margin-top:6px}.duck-race-game .hintline.error{color:#c14258}.duck-race-game .duration{display:flex;gap:6px;margin-bottom:13px}.duck-race-game .dur-btn{flex:1;border:1px solid var(--line);border-radius:10px;background:#f7f4ff;color:#80708f;padding:11px 5px;font-weight:850;font-size:12px}.duck-race-game .dur-btn.selected{background:var(--purple);color:white;border-color:var(--purple)}.duck-race-game .toggle-line{display:flex;align-items:center;gap:7px;font-size:12px;color:#786886;line-height:1.5;margin-top:14px;cursor:pointer}.duck-race-game .toggle-line input{accent-color:var(--purple);width:16px;height:16px}.duck-race-game .tiny-note{font-size:10px;line-height:1.6;color:#a599b0;margin-top:9px}.duck-race-game .history{margin:0;padding:0;list-style:none}.duck-race-game .history li{padding:11px 0;border-bottom:1px solid #f0ecf6;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}.duck-race-game .history li:last-child{border:0}.duck-race-game .history strong{color:#6746c2;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.duck-race-game .history .muted{color:#b0a5b8;font-size:10px}.duck-race-game .muted-empty{color:#a599b0;font-size:12px;padding:13px 0}.duck-race-game .page-footer{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#aa9db6;padding:22px 3px 0}.duck-race-game .presentation .config-grid,.duck-race-game .presentation .page-intro,.duck-race-game .presentation .page-footer{display:none}.duck-race-game .presentation.app{max-width:none;padding:14px 20px}.duck-race-game .presentation .topbar{margin-bottom:12px}.duck-race-game .presentation .scene{aspect-ratio:auto;height:calc(100dvh - 190px);min-height:340px}.duck-race-game .presentation .controls-bar{padding-top:17px}.duck-race-game .empty-track{display:none;position:absolute;z-index:4;inset:40% 10% 15% 20%;align-items:center;justify-content:center;flex-direction:column;font-size:52px;gap:8px;color:#225586;text-shadow:0 2px white}.duck-race-game .empty-track span{background:white;padding:7px 14px;border-radius:15px;font-size:15px}
    .duck-race-game .overlay{position:absolute;inset:0;z-index:20;display:flex;justify-content:center;align-items:center;background:#13325b6b;backdrop-filter:blur(4px);padding:20px}.duck-race-game .hidden{display:none!important}.duck-race-game .result{background:linear-gradient(#fffdf3,#fff);border:4px solid #ffdf70;border-radius:28px;width:min(420px,100%);text-align:center;position:relative;z-index:2;padding:20px 25px 24px;box-shadow:0 25px 60px #112a5c50}.duck-race-game .trophy{font-size:45px}.duck-race-game .result h2{color:#5938ac;font-size:23px;margin:2px 0 7px;font-weight:950}.duck-race-game .result p{font-size:12px;color:#94829b;margin:0}.duck-race-game .winner{font-size:40px;color:#e8ab1c;font-weight:950;overflow-wrap:anywhere;margin:9px 0;text-shadow:0 2px 0 #ffe9a8}.duck-race-game .winner-sub{font-size:10px;color:#a090aa}.duck-race-game .result-podium{display:flex;gap:8px;justify-content:center;margin:10px 0}.duck-race-game .result-podium span{padding:6px 12px;background:#f3effc;border-radius:10px;color:#7f6d99;font-size:12px;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duck-race-game .result .toggle-line{justify-content:center;font-size:11px}.duck-race-game .result .primary{width:100%;margin-top:17px}.duck-race-game .confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.duck-race-game .confetti i{position:absolute;top:-20px;left:var(--xx);width:8px;height:14px;background:var(--cc);animation:confetti var(--dur) linear forwards;animation-delay:var(--delay)}.duck-race-game .countdown-mask{position:absolute;inset:0;z-index:15;display:grid;place-items:center;background:#285c9b12;pointer-events:none}.duck-race-game .countdown-number{font-size:140px;font-weight:1000;color:#ffdc50;-webkit-text-stroke:5px white;paint-order:stroke fill;text-shadow:0 7px 0 #6e44ce,0 14px 24px #24518780;animation:pop .5s infinite alternate}.duck-race-game .paused-banner{display:none;position:absolute;z-index:17;left:50%;top:55%;transform:translate(-50%,-50%);background:#5030aae0;color:white;border:3px solid white;border-radius:18px;padding:12px 24px;font-size:22px;font-weight:900;white-space:nowrap;box-shadow:0 9px 25px #17325440}.duck-race-game .paused-banner.show{display:block}.duck-race-game .toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:12px;background:#392366;color:white;font-size:13px;opacity:0;pointer-events:none;z-index:50;transition:.2s;max-width:90vw;text-align:center}.duck-race-game .toast.show{opacity:1}
    @keyframes swim{to{transform:rotate(3deg) translateY(-3px)}}@keyframes wake{to{transform:scaleX(.88);opacity:.4}}@keyframes twinkle{to{opacity:.3;transform:scale(.7) rotate(15deg)}}@keyframes pulse{to{opacity:.3}}@keyframes pop{to{transform:scale(1.13)}}@keyframes confetti{to{transform:translateY(850px) translateX(var(--dx)) rotate(900deg);opacity:0}}
    @media(max-width:1000px){.duck-race-game .app{padding:18px}.duck-race-game .scene{aspect-ratio:16/9}.duck-race-game .scene-title h2{-webkit-text-stroke:4px white}.duck-race-game .scene-title p{font-size:8px}.duck-race-game .scene-brand{font-size:10px;padding:5px 8px}.duck-race-game .scene-meta .players-pill{font-size:9px;padding:5px 8px}.duck-race-game .leaderboard{min-width:115px}.duck-race-game .leaderboard h2{font-size:8px;padding:10px}.duck-race-game .medal{padding:5px 9px}.duck-race-game .medal-icon{width:21px;height:21px}.duck-race-game .medal-name{font-size:10px}.duck-race-game .board-footer{font-size:8px;padding:7px 9px}.duck-race-game .scene-heading{left:14px;right:14px;top:12px}.duck-race-game .config-grid{grid-template-columns:1fr 280px}.duck-race-game .controls-caption{display:none}.duck-race-game .controls-bar{justify-content:center}.duck-race-game .racer-name{font-size:10px;min-width:65px}.duck-race-game .racer-name .place{width:18px;height:18px;font-size:9px}}
    @media(max-width:650px){.duck-race-game .app{padding:14px 9px}.duck-race-game .brand-name{font-size:18px}.duck-race-game .brand-sub{font-size:8px;letter-spacing:1px}.duck-race-game .brand-icon{width:36px;height:36px;font-size:22px}.duck-race-game .pill-btn{padding:8px 10px;font-size:10px}.duck-race-game .head-actions{gap:5px}.duck-race-game .pill-btn .action-text{display:none}.duck-race-game .topbar{margin-bottom:14px}.duck-race-game .page-intro{padding-bottom:10px}.duck-race-game .eyebrow{font-size:8px}.duck-race-game .page-intro p{font-size:10px}.duck-race-game .preview-badge{font-size:8px;padding:5px 8px}.duck-race-game .screen-frame{padding:5px;border-radius:17px}.duck-race-game .scene{aspect-ratio:4/3;border-radius:12px}.duck-race-game .scene-heading{top:10px;left:9px;right:9px}.duck-race-game .scene-brand{font-size:8px;padding:4px 6px;border-width:1px}.duck-race-game .scene-title{top:33px}.duck-race-game .scene-title h2{font-size:24px;-webkit-text-stroke:3px white}.duck-race-game .scene-title p{font-size:7px;margin-top:6px;padding:3px 8px}.duck-race-game .scene-meta .players-pill{font-size:8px;padding:3px 7px;border-width:1px}.duck-race-game .scene-meta .players-pill b{font-size:10px}.duck-race-game .status{font-size:7px;padding:3px 6px}.duck-race-game .leaderboard{left:6px;top:33%;min-width:0;width:24%;border-radius:8px}.duck-race-game .leaderboard h2{font-size:6px;padding:6px}.duck-race-game .leaderboard h2 span{display:none}.duck-race-game .medal{padding:4px 5px;gap:5px}.duck-race-game .medal-icon{width:16px;height:16px;border-width:1px;font-size:9px}.duck-race-game .first .medal-icon{font-size:15px}.duck-race-game .medal-name{font-size:8px}.duck-race-game .board-footer{font-size:6px;padding:5px}.duck-race-game .view-note{font-size:6px}.duck-race-game .scene-bottom{bottom:8px;left:9px;right:9px;gap:5px}.duck-race-game .timer{padding:3px 7px;gap:4px;border-radius:9px;border-width:1px}.duck-race-game .timer span{font-size:7px}.duck-race-game .timer b{font-size:15px}.duck-race-game .leader-chip{font-size:8px;padding:4px 8px;max-width:43%}.duck-race-game .track-foot{display:none}.duck-race-game .finish-sign{font-size:16px;right:5%;top:29%;padding:0 6px;border-width:2px}.duck-race-game .racer-name{font-size:8px;border-width:1px;padding:1px 5px 1px 1px;min-width:50px;max-width:75px;gap:2px}.duck-race-game .racer-name .place{width:14px;height:14px;font-size:8px}.duck-race-game .racer-name .name{max-width:45px}.duck-race-game .race-controls{width:100%;gap:5px}.duck-race-game .primary,.duck-race-game .secondary{padding:10px 9px;min-height:43px;font-size:10px}.duck-race-game .race-controls .primary{flex:1}.duck-race-game .controls-bar{padding:17px 1px}.duck-race-game .config-grid{grid-template-columns:1fr;gap:12px}.duck-race-game .panel{padding:16px}.duck-race-game .config-inner{grid-template-columns:1fr;gap:18px}.duck-race-game .textarea{height:145px}.duck-race-game .page-footer{font-size:8px}.duck-race-game .countdown-number{font-size:95px}.duck-race-game .paused-banner{font-size:14px;padding:9px 13px;border-width:2px}.duck-race-game .result{padding:13px;border-width:3px;border-radius:20px;width:280px}.duck-race-game .result h2{font-size:18px}.duck-race-game .result p{font-size:10px}.duck-race-game .trophy{font-size:32px}.duck-race-game .winner{font-size:30px;margin:3px 0}.duck-race-game .result-podium{margin:6px 0}.duck-race-game .result .primary{margin-top:10px}.duck-race-game .result .toggle-line{font-size:9px}.duck-race-game .presentation.app{padding:9px}.duck-race-game .presentation .scene{height:calc(100dvh - 165px);min-height:300px}.duck-race-game .presentation .scene-title h2{font-size:23px}}
    .duck-race-game .scene{background:#55c5e7}.duck-race-game .river-panorama{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.duck-race-game .finish-gate,.duck-race-game .start-gate{position:absolute;inset:0;z-index:2;pointer-events:none;will-change:transform}.duck-race-game .finish-gate{visibility:hidden}.duck-race-game .start-line{position:absolute;inset:0;width:100%;height:100%;opacity:.75}.duck-race-game .start-sign{position:absolute;left:27%;top:25%;padding:4px 13px;background:#fffce8;border:2px solid white;border-radius:8px;color:#6c4ba3;font-size:clamp(10px,1.2cqw,18px);font-weight:900;box-shadow:0 3px 0 #ccd59b;transform:rotate(-3deg)}.duck-race-game .distance-markers{position:absolute;inset:0;z-index:1;pointer-events:none}.duck-race-game .distance-marker{position:absolute;left:0;top:26%;background:#fffcdd;border:2px solid white;color:#5d4a7a;padding:2px 9px;border-radius:7px;box-shadow:0 3px 0 #6c865b;font-size:clamp(9px,1cqw,14px);font-weight:900;white-space:nowrap;will-change:transform}.duck-race-game .distance-marker:after{content:"";position:absolute;width:4px;height:22px;left:50%;top:100%;background:#96724d}.duck-race-game .course-hud{position:absolute;z-index:5;left:30%;right:22%;top:17%;background:#ffffffed;border:2px solid #fff;border-radius:13px;padding:7px 13px;box-shadow:0 4px 15px #13598720}.duck-race-game .course-caption{display:flex;justify-content:space-between;gap:10px;color:#5a5682;font-size:9px;font-weight:850;letter-spacing:.5px}.duck-race-game .course-caption b{color:#6c47db;letter-spacing:0;font-variant-numeric:tabular-nums}.duck-race-game .course-map{height:7px;background:#e2dcfa;border-radius:9px;position:relative;margin-top:7px;isolation:isolate}.duck-race-game .course-map:after{content:'🏁';position:absolute;right:-5px;top:-6px;font-size:14px}.duck-race-game .course-progress{height:100%;width:0;background:linear-gradient(90deg,#9c79f1,#6940dd);border-radius:inherit;position:relative}.duck-race-game .course-progress:after{content:'🦆';position:absolute;right:-8px;top:-8px;font-size:17px;filter:drop-shadow(0 1px 1px white)}.duck-race-game .sparkle{display:none}
    @media(max-width:650px){.duck-race-game .course-hud{top:26%;left:31%;right:8%;padding:4px 9px;border-radius:8px;border-width:1px}.duck-race-game .course-caption{font-size:6px;gap:4px}.duck-race-game .course-map{height:4px;margin-top:5px}.duck-race-game .course-map:after{font-size:10px;top:-5px}.duck-race-game .course-progress:after{font-size:12px;top:-6px}.duck-race-game .start-sign{left:31%;top:32%;padding:2px 7px;font-size:8px}.duck-race-game .distance-marker{top:33%;font-size:7px;padding:1px 5px}.duck-race-game .finish-sign{top:32%}}
    .duck-race-game .racer-name{left:-4px;bottom:84%;transform:translate(-100%,50%);padding:3px 10px;min-width:0}.duck-race-game .finish-sign{left:75.5%;right:auto;transform:none}
    .duck-race-game .sample-btn{font-size:10px;padding:4px 8px;border:1px solid #ded4f6;border-radius:7px;background:#f6f1ff;color:#6a46b9;margin:0 0 8px}.duck-race-game .custom-time{display:flex;align-items:center;gap:10px;color:#786886;font-size:11px}.duck-race-game .custom-time input{width:105px;border:1px solid #ddd3ee;border-radius:9px;padding:8px 10px;font:inherit;background:#fbfaff;color:#553d84}.duck-race-game .custom-time input[aria-invalid="true"]{border-color:#c64b61}.duck-race-game .duration-error{min-height:17px;font-size:10px;color:#c14258;margin-top:3px}
    .duck-race-game #lanes[data-density="crowded"] .racer-name{left:20%;bottom:84%;transform:translate(-100%,50%);border:1.5px solid #34465b;border-radius:8px;box-shadow:none;background:#fff}.duck-race-game #lanes[data-density="crowded"] .wake{opacity:.16;border-bottom-width:1px;box-shadow:0 4px 0 -3px #fff}.duck-race-game #lanes[data-density="crowded"] .front-runner .racer-name{border-color:#c7a24f;background:#fffbd9}
    .duck-race-game .scene:is([data-phase="idle"],[data-phase="countdown"]) #lanes .duck-art{animation:idle-bob var(--bob-duration,3s) ease-in-out infinite;animation-delay:var(--bob-delay,0s)}.duck-race-game .scene:is([data-phase="idle"],[data-phase="countdown"]) #lanes .racer-name{animation:idle-label var(--bob-duration,3s) ease-in-out infinite;animation-delay:var(--bob-delay,0s)}
    @keyframes idle-bob{0%,100%{transform:translateY(1.5px) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1.5deg)}}@keyframes idle-label{0%,100%{translate:0 1.5px}50%{translate:0 -3px}}
    .duck-race-game .duck-body{position:relative;z-index:2;transform-origin:50% 80%;transform:translateX(calc(var(--surge,0)*2px)) rotate(calc(var(--surge,0)*-.7deg));transition:transform .6s ease-out}
    .duck-race-game .racer-state{position:absolute;left:64%;bottom:80%;z-index:5;display:inline-flex;align-items:center;gap:2px;padding:2px 5px;border:1px solid #fff;border-radius:7px;background:#fff2ce;color:#815215;font-size:9px;font-weight:800;line-height:1.3;white-space:nowrap;box-shadow:0 2px 5px #174a6d25}.duck-race-game .racer-state[hidden]{display:none}.duck-race-game .racer-state:before{content:'↗'}.duck-race-game .racer.slowing .racer-state{background:#e3f4ff;color:#23557d;border-color:#bbdef6}.duck-race-game .racer.slowing .racer-state:before{content:'🐌'}.duck-race-game #lanes[data-density="crowded"] .racer-state{padding:1px 3px;box-shadow:none}.duck-race-game #lanes[data-density="crowded"] .racer-state .state-text{display:none}.duck-race-game #lanes[data-density="crowded"] .front-runner .racer-state .state-text{display:inline}.duck-race-game .racer .water-trail{transition:opacity .6s}.duck-race-game .racer.slowing .water-trail{opacity:.55}.duck-race-game #lanes .racer.slowing .duck-art{animation-duration:2.8s}.duck-race-game .scene[data-sprint="true"] .timer{background:#fff0c7;border-color:#ffd465}.duck-race-game .scene[data-sprint="true"] .timer b{color:#b76113}.duck-race-game .scene[data-sprint="true"] .scene-title p{background:#fff0c7;color:#99500d}@media(max-width:650px){.duck-race-game .racer-state{font-size:8px;padding:1px 4px}}
    .duck-race-game #lanes .racer.moving .duck-art{animation:swim-glide var(--swim-duration,2s) ease-in-out infinite;animation-delay:var(--bob-delay,0s)}.duck-race-game #lanes .racer.race-winner .duck-art{animation-duration:3.2s}
    .duck-race-game #lanes .racer .wake,.duck-race-game #lanes[data-density="crowded"] .racer .wake{height:32%;bottom:-3%;border:0;border-radius:0;box-shadow:none;left:-48%;width:145%;overflow:visible;animation:none;opacity:.22}
    .duck-race-game .wake .water-trail{display:block;width:100%;height:100%;overflow:visible}.duck-race-game .wake:before,.duck-race-game .wake:after{content:none}
    .duck-race-game #lanes .racer.moving .wake{display:block;left:-48%;width:145%;opacity:calc(.72 + var(--surge,0)*.16);transform-origin:right center;transform:scaleX(calc(1 + var(--surge,0)*.2));animation:swim-wake 1.6s ease-in-out infinite;animation-delay:var(--bob-delay,0s);transition:transform .6s ease-out,opacity .6s ease-out;will-change:transform,opacity}.duck-race-game #lanes[data-density="crowded"] .racer.moving .wake{opacity:calc(.4 + var(--surge,0)*.24)}
    .duck-race-game #lanes .racer.moving .water-foam{animation:foam-fizz 1.4s ease-out infinite;animation-delay:var(--bob-delay,0s);transform-origin:center}.duck-race-game #lanes .racer.moving .water-lines{animation:water-flow 1.8s ease-in-out infinite;animation-delay:var(--bob-delay,0s)}
    @keyframes foam-fizz{0%{transform:translate(-28px,0);opacity:.4}35%{opacity:1}100%{transform:translate(-40px,-5px);opacity:.15}}@keyframes water-flow{0%,100%{translate:0 0;opacity:.85}50%{translate:-3px 1px;opacity:1}}
    @keyframes swim-glide{0%,100%{transform:translateY(.6px) rotate(-.25deg)}50%{transform:translateY(-.6px) rotate(.25deg)}}@keyframes swim-wake{0%,100%{transform:translateX(0) scaleX(calc(.97 + var(--surge,0)*.2))}50%{transform:translateX(-3px) scaleX(calc(1.03 + var(--surge,0)*.2))}}@keyframes water-spray{0%{transform:translate(0,0) scale(.8)}100%{transform:translate(-24px,-3px) scale(.15);opacity:0}}
    .duck-race-game .racer.stopped .wake{opacity:0!important}.duck-race-game .race-winner .racer-name{border-color:#c7a24f;background:#fff5d5}.duck-race-game .scene[data-phase="paused"] #lanes .duck-art,.duck-race-game .scene[data-phase="paused"] #lanes .wake,.duck-race-game .scene[data-phase="paused"] #lanes .wake:before,.duck-race-game .scene[data-phase="paused"] #lanes .wake:after,.duck-race-game .racer.stopped .duck-art,.duck-race-game .racer.stopped .wake{animation-play-state:paused}
    .duck-race-game .scene[data-phase="paused"] #lanes .water-foam,.duck-race-game .scene[data-phase="paused"] #lanes .water-lines{animation-play-state:paused}
    .duck-race-game #lanes[data-effects="balanced"] .racer:not(.front-runner):not(.race-winner) .wake,.duck-race-game #lanes[data-effects="balanced"] .racer:not(.front-runner):not(.race-winner) .water-lines{animation:none}.duck-race-game #lanes[data-effects="balanced"] .racer:not(.front-runner):not(.race-winner) .water-foam{display:none}
    .duck-race-game .river-panorama{width:300%;will-change:transform}
    .duck-race-game .scene-brand,.duck-race-game .scene-meta,.duck-race-game .track-foot{display:none!important}
    .duck-race-game .start-hint{display:none;align-items:center;justify-content:center;gap:5px;padding:6px 10px;border:1px solid #ffffff80;border-radius:20px;background:#163d67c9;color:#fff;font-size:clamp(10px,1.1cqw,15px);font-weight:700;white-space:nowrap}.duck-race-game .start-hint kbd{padding:1px 6px;border:1px solid #ffffffa6;border-bottom-width:3px;border-radius:5px;background:#ffffffed;color:#304b73;font:inherit;font-weight:900}.duck-race-game .scene[data-phase="idle"] .start-hint{display:flex}.duck-race-game .app:has(#startBtn:disabled) .start-hint{display:none}
    .duck-race-game .finish-gate .finish-sign{top:max(29%,96px);bottom:auto;left:80%;right:auto;transform:translateX(calc(-100% - 10px))}.duck-race-game .finish-gate .finish-sign:after{left:100%;top:50%;width:12px;height:5px;border-left:0}
    .duck-race-game .screen-frame{padding:0;background:none;box-shadow:none;border:0;border-radius:0}.duck-race-game .scene{border:0;border-radius:0}.duck-race-game .scene:after{box-shadow:none;border-radius:0}.duck-race-game .present-exit{display:none}
    body.duck-race-page:has(.duck-race-game .presentation){overflow:hidden}.duck-race-game .presentation.app{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;padding:0;overflow:hidden;z-index:40}.duck-race-game .presentation .topbar,.duck-race-game .presentation .page-intro,.duck-race-game .presentation .controls-bar,.duck-race-game .presentation .config-grid,.duck-race-game .presentation .page-footer{display:none}.duck-race-game .presentation .race-main,.duck-race-game .presentation .screen-frame{height:100%;margin:0;padding:0}.duck-race-game .presentation .scene{width:100%;height:100dvh;min-height:0;aspect-ratio:auto;border:0;border-radius:0}
    .duck-race-game .presentation .present-exit{display:grid;place-items:center;position:fixed;right:16px;bottom:14px;z-index:35;width:40px;height:36px;border:0;border-radius:8px;background:#fffffff0;color:#5235a2;font-size:23px;opacity:0;transition:opacity .15s}.duck-race-game .presentation .present-exit:hover,.duck-race-game .presentation .present-exit:focus-visible{opacity:1}
    @media(prefers-reduced-motion:reduce){.duck-race-game .duck-art,.duck-race-game .wake,.duck-race-game .sparkle,.duck-race-game .status:before,.duck-race-game .countdown-number,.duck-race-game .scene:is([data-phase="idle"],[data-phase="countdown"]) #lanes .duck-art,.duck-race-game .scene:is([data-phase="idle"],[data-phase="countdown"]) #lanes .racer-name,.duck-race-game #lanes .racer.moving .duck-art,.duck-race-game #lanes .racer.moving .wake,.duck-race-game #lanes .racer.moving .water-foam,.duck-race-game #lanes .racer.moving .water-lines{animation:none}}
  .duck-race-game .duck-art{height:100%;object-fit:contain}
.duck-race-game .race-intro h1{font-size:clamp(24px,3vw,36px);line-height:1.2;margin:0 0 8px;color:var(--deep)}
.duck-race-game .race-intro p{margin:0;color:var(--muted);font-size:13px;max-width:640px}
.duck-race-game .duck-body{width:100%;height:100%}
.duck-race-page:has(.duck-race-game .presentation)>.site-header,.duck-race-page:has(.duck-race-game .presentation)>.site-footer,.duck-race-page:has(.duck-race-game .presentation) .duck-race-seo{display:none}
.duck-race-game .toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%)}
@media(max-width:650px){.duck-race-game .topbar{flex-wrap:wrap;gap:12px}.duck-race-game .race-intro p{font-size:12px}.duck-race-game .head-actions{margin-left:auto}}
