:root{--leaf-cursor:url("assets/leaf-cursor.svg") 3 3,auto}body,button,a,canvas,[role=button],#world{cursor:var(--leaf-cursor)!important}input:not([type=checkbox]):not([type=color]):not([type=range]),textarea{cursor:text!important}
.rapids{position:absolute;inset:0;z-index:20;background:#307f7b;overflow:hidden;color:#fff6d5}.rapids[hidden],.rapids [hidden]{display:none!important}#rapids-canvas{display:block;width:100%;height:100%;touch-action:none}.rapids-active .world-dock,.rapids-active .touch-controls,.rapids-active .room-badge,.rapids-active .chat-history-toggle{visibility:hidden}.rapids-hud{position:absolute;top:3%;left:3%;right:3%;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.rapids-title{font:600 clamp(13px,2vw,24px) 'Fraunces',serif;text-shadow:0 2px 4px #123c2c}.rapids-title small{display:block;font:600 clamp(9px,1vw,12px) 'DM Sans',sans-serif;letter-spacing:1px;margin-top:4px}.rapids-counter{padding:9px 16px;border:2px solid #fff0bb7a;background:#224c3ded;border-radius:15px;text-align:center;font-size:12px;box-shadow:0 4px 0 #17342666}.rapids-counter strong{font-size:25px;font-variant-numeric:tabular-nums}.rapids-leave{pointer-events:auto;border:2px solid #5d502c;background:#fff0c1;color:#365540;border-radius:50%;width:39px;height:39px;font-size:23px;font-weight:700}
.rapids-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(390px,85%);padding:25px 28px;text-align:center;border:3px solid #5b5632;background:#fff6dddF;backdrop-filter:blur(5px);border-radius:25px;color:#344c36;box-shadow:0 9px 0 #314d3150,0 20px 70px #173a4555}.rapids-card h2{font:600 clamp(23px,3vw,37px)/1.07 'Fraunces',serif;margin:7px 0 10px;color:#315840}.rapids-card p{font-size:13px;line-height:1.6;margin:10px 0}.rapids-kicker{font-size:10px;font-weight:800;letter-spacing:2px;color:#827139}.rapids-card .rapids-primary,.rapids-card .rapids-secondary{display:block;width:100%;padding:13px 16px;border:2px solid #385f3c;border-radius:13px;font-weight:800;background:#9fca69;color:#284c31;margin-top:10px;box-shadow:0 3px 0 #345b3c}.rapids-card .rapids-primary:hover{background:#b5de7d}.rapids-card .rapids-secondary{background:transparent;box-shadow:none;border-color:#a7ae85}.rapids-controls{position:absolute;left:4%;right:4%;bottom:8%;display:flex;justify-content:space-between;pointer-events:none}.rapids-controls button{pointer-events:auto;touch-action:none;width:55px;height:55px;border-radius:50%;border:2px solid #fff2bd8a;background:#245748bb;color:#fff0bd;font-size:25px}.rapids-progress{position:absolute;left:22%;bottom:3%;width:56%;height:8px;accent-color:#eace7e}.rapids-dodges{position:absolute;right:4%;top:16%;background:#244d3ec9;border-radius:12px;padding:7px 12px;font-size:12px;color:#fff4d0}.rapids-finish{top:68%;background:#fff6ddeF}.rapids-finish p{margin:8px 0}.rapids-load-error:empty{display:none}
@media(max-width:600px){.rapids-card{padding:14px 19px;width:min(330px,87%)}.rapids-card p{font-size:11px;line-height:1.45}.rapids-card .rapids-primary,.rapids-card .rapids-secondary{padding:9px 12px}.rapids-counter{padding:5px 10px;font-size:9px}.rapids-counter strong{font-size:20px}.rapids-dodges{font-size:10px;top:18%;padding:5px 8px}.rapids-leave{width:32px;height:32px}.rapids-controls button{width:44px;height:44px}.rapids-finish{top:66%;padding:12px 20px}.rapids-finish h2{font-size:25px}}

.rapids-finish{top:auto;bottom:4%;transform:translateX(-50%);width:min(540px,88%);padding:12px 18px;display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}.rapids-finish .rapids-kicker,.rapids-finish h2,.rapids-finish p{grid-column:1/-1}.rapids-finish h2{font-size:27px;margin:0}.rapids-finish p{margin:0 0 3px;font-size:12px}.rapids-finish .rapids-primary,.rapids-finish .rapids-secondary{margin-top:0;padding:9px 10px;font-size:12px}.rapids-progress{appearance:none;border:1px solid #f3e8b688;border-radius:7px;overflow:hidden;background:#234e4b99}.rapids-progress::-webkit-progress-bar{background:#234e4b99}.rapids-progress::-webkit-progress-value{background:#e5cc78;border-radius:7px}

@media(max-width:600px){.rapids-card{padding:10px 16px}.rapids-kicker{font-size:8px;letter-spacing:1.3px}.rapids-card h2{font-size:22px;margin:3px 0 5px}.rapids-card p{font-size:10px;line-height:1.3;margin:5px 0}.rapids-card .rapids-primary,.rapids-card .rapids-secondary{padding:7px 10px;font-size:12px;margin-top:6px}.rapids-title small{display:none}.rapids-dodges{top:20%}.rapids-finish{padding:8px 12px;gap:5px 8px}.rapids-finish .rapids-kicker{display:none}.rapids-finish h2{grid-column:1;font-size:20px;margin:0;align-self:center}.rapids-finish p{grid-column:2;margin:0;align-self:center;font-size:10px}.rapids-finish .rapids-primary,.rapids-finish .rapids-secondary{margin:0;font-size:10px}.rapids-controls button{width:36px;height:36px;font-size:19px}}

/* Trip health stays visible beside the river rather than inside a popup. */
.rapids-vitals{position:absolute;right:3%;top:13%;min-width:160px;text-align:center;background:#183f35eb;border:1px solid #f6dc8b88;border-radius:15px;padding:9px 15px 10px;color:#fff0bd;box-shadow:0 3px 0 #122f2866;font-size:13px;pointer-events:none}
.rapids-vitals i{padding:0 6px;color:#a9bf9b}.rapids-lives{display:flex;justify-content:center;gap:8px;font-size:26px;line-height:1.25;color:#ebba66;text-shadow:0 2px #705234;margin-bottom:3px}.rapids-lives span{transition:color .15s,opacity .15s}.rapids-lives .spent{color:#6d7f69;opacity:.45;text-shadow:none}.rapids-lives.is-hit{color:#ff896d}
.rapids-catch-total{font-size:15px;padding-bottom:5px;border-bottom:1px solid #dfc78355;margin-bottom:4px}.rapids-catch-total strong{font-size:23px;margin-right:4px;font-variant-numeric:tabular-nums}
.rapids-fish-targets{position:absolute;inset:0;pointer-events:none}.rapids-fish-target{position:absolute;pointer-events:auto;background:transparent;border:0;padding:0;border-radius:50%;box-shadow:none;touch-action:manipulation}.rapids-fish-target:focus-visible{outline:2px solid #ffec9d;outline-offset:5px}
.rapids-key-hint{position:absolute;bottom:5%;left:3%;display:grid;gap:3px;font-size:14px;line-height:1.4;color:#fff5d0;text-shadow:0 2px 3px #193e37;pointer-events:none}
.rapids-tree-warning{position:absolute;top:16%;left:50%;transform:translateX(-50%);margin:0;padding:9px 16px;border:2px solid #dba862;border-radius:12px;background:#443f27eb;color:#fff2c4;font-weight:800;font-size:16px;pointer-events:none}
.rapids[data-phase=lost] .rapids-finish{top:50%;bottom:auto;transform:translate(-50%,-50%);border-color:#8d5c3c;background:#fff1ddec}.rapids[data-phase=lost] .rapids-kicker{color:#a44d30}
.rapids-card p{font-size:15px;line-height:1.5}.rapids-controls{bottom:7%}.rapids-finish{bottom:4%}.rapids-finish p{font-size:14px}
@media(max-width:700px){.rapids-vitals{min-width:118px;top:16%;padding:5px 8px;font-size:11px;border-radius:10px}.rapids-lives{font-size:19px;gap:5px;margin:0}.rapids-card p{font-size:12px}.rapids-finish p{font-size:11px}.rapids-hud{top:3%;gap:8px}.rapids-title{font-size:14px}}

.rapids-catch-note{font-size:13px;color:#fff1ae;padding:4px 0 6px}.rapids-catch-note.is-rare{color:#ffc1ef;font-weight:800}.rapids-finish .rapids-catch-breakdown{grid-column:1/-1;font-size:12px;color:#476552;line-height:1.45;margin:0 0 4px}.rapids-fish-target[title='Rainbow trout']:focus-visible{outline-color:#f4b8ff}


.rapids-moth-total{display:block;font-size:12px;color:#f2dda2;line-height:1.25}.rapids-moth-total strong{font-size:17px}

.rapids-sound{position:absolute;left:3%;top:13%;padding:7px 11px;border:1px solid #c9b474;border-radius:10px;background:#1d4438e8;color:#f3e7c0;font:600 12px "DM Sans",sans-serif}.rapids-sound[aria-pressed=true]{color:#c6cfbe;background:#263a30}.rapids #rapids-context-menu{z-index:40;min-width:115px}
