/* Pro Fishing uses the shared GoM materials and original frame/button artwork. */
.pro-fishing-root {
  position:absolute; inset:var(--pro-shell-top,0px) 0 var(--pro-shell-bottom,0px); z-index:700; display:grid;
  grid-template-rows:auto minmax(0,1fr); min-height:0; overflow:hidden;
  background:var(--mg-surface-window); color:var(--mg-text-main);
  font:14px/1.45 var(--font-readable,system-ui,sans-serif); isolation:isolate;
  --pro-left-width:clamp(225px,17vw,300px); --pro-right-width:clamp(270px,20vw,350px);
}
.pro-fishing-root.pro-editor {grid-template-rows:auto minmax(0,1fr) auto}
/* The normal chat/portal (800), overlays (1000+) and topbar (3200) stay above Pro. */
#app.pro-fishing-open > #bottomBar {grid-column:1 / -1}
.pro-fishing-root * {box-sizing:border-box}
.pro-fishing-root > .mg-frame-art {z-index:25}
.pro-fishing-root button,.pro-fishing-root input,.pro-fishing-root select,.pro-fishing-root textarea {font:inherit}
.pro-fishing-root button {cursor:pointer;color:var(--mg-text-main);padding:9px 15px;border:1px solid var(--mg-border-muted);border-radius:2px;background:var(--mg-image-secondary) center/100% 100% no-repeat,var(--mg-surface-chrome);min-height:36px}
.pro-fishing-root button.ui-btn--primary,.pro-fishing-root button.pro-primary {background:var(--mg-image-primary) center/100% 100% no-repeat,var(--mg-surface-chrome);color:var(--mg-parchment)}
.pro-fishing-root button:hover:not(:disabled) {filter:brightness(1.13)}
.pro-fishing-root button:disabled {opacity:.45;cursor:default}
.pro-fishing-root :is(button,input,select,textarea):focus-visible {outline:2px solid var(--mg-amber);outline-offset:2px}
.pro-fishing-root > header,.pro-fishing-root > footer {position:relative;padding:12px 20px;display:flex;align-items:center;gap:14px;background:var(--mg-surface-chrome);min-width:0}
.pro-fishing-root > header {border-bottom:1px solid var(--mg-bronze);min-height:76px}
.pro-fishing-root > footer {border-top:1px solid var(--mg-bronze);min-height:66px;z-index:3}
.pro-fishing-root > :is(header,footer) > .mg-frame-art {--mg-frame-edge-size:.225rem}
.pro-title-icon {width:42px;height:42px;object-fit:contain;flex-shrink:0}
.pro-fishing-root > header {position:relative}
.pro-fishing-root [data-exit-choices] {position:absolute;top:100%;left:20px;display:flex;flex-wrap:wrap;gap:8px;max-width:calc(100% - 40px);padding:12px;background:var(--mg-surface-panel);border:1px solid var(--mg-bronze);box-shadow:0 8px 20px #0008;z-index:25}
.pro-fishing-root [data-exit-choices][hidden] {display:none}
.pro-title {display:flex;align-items:baseline;gap:22px;min-width:0}
.pro-fishing-root header strong {font:24px/1.2 var(--font-accent,Georgia,serif);color:var(--mg-parchment)}
.pro-title>span,.pro-kicker,.pro-section-title>span {font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mg-brass)}
.pro-title>span {padding-left:20px;border-left:1px solid var(--mg-border-muted)}
.pro-spacer {flex:1}.pro-time-of-day {font-size:12px;color:var(--mg-text-muted)}
.pro-body {display:grid;grid-template-columns:var(--pro-left-width) minmax(0,1fr) var(--pro-right-width);grid-template-rows:minmax(0,1fr);min-height:0;overflow:hidden;position:relative}
/* Dialogs must never become a fourth grid item / implicit second map row. */
.pro-dialog-layer {position:absolute;inset:0;z-index:20;pointer-events:none}
.pro-dialog-layer>div {pointer-events:auto}
.pro-drawer {min-height:0;min-width:0;padding:22px 18px;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;background:var(--mg-surface-panel);z-index:2;scrollbar-color:var(--mg-bronze) transparent}
.pro-left {border-right:1px solid var(--mg-bronze)}.pro-right {border-left:1px solid var(--mg-bronze)}
.pro-section-title {padding:0 0 15px;margin-bottom:10px;border-bottom:1px solid var(--mg-border-muted)}
.pro-drawer h3 {font:19px/1.3 var(--font-accent,Georgia,serif);margin:5px 0 10px;color:var(--mg-parchment)}
.pro-drawer :is(p,label) {margin:10px 0}.pro-drawer small {display:block;color:var(--mg-text-muted);font-size:11px;line-height:1.55}
.pro-drawer [data-range-penalty][hidden] {display:none}
.pro-habitat-legend {display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:12px 0;font-size:11px;color:var(--mg-text-muted)}
.pro-habitat-legend span {display:flex;align-items:center;gap:7px}
.pro-habitat-legend i {display:inline-flex;align-items:center;justify-content:center;width:18px;height:16px;flex:none;border:1px solid var(--habitat-color);color:var(--habitat-color);font:14px system-ui;background:#131714}
.pro-habitat-legend i:empty {background:var(--habitat-color)}
.pro-habitat-help {margin:8px 0}.pro-habitat-help summary {font-size:12px}.pro-habitat-help small {margin-top:8px}
.pro-drawer fieldset {min-width:0;border:0;padding:0;margin:0}
.pro-drawer label {display:block;font-size:12px;color:var(--mg-text-muted)}
.pro-drawer :is(select,input:not([type=checkbox]),textarea),.pro-survey-card input {display:block;width:100%;min-width:0;max-width:100%;padding:9px 8px;margin:5px 0;color:var(--mg-text-main);background:var(--mg-surface-recessed);border:1px solid var(--mg-border-muted);border-radius:2px}
.pro-drawer select option {background:var(--mg-graphite-deep);color:var(--mg-text-main)}
.pro-drawer label.pro-tackle-row {display:flex;align-items:center;gap:10px;padding:10px 0;margin:0;border-bottom:1px solid var(--mg-border-muted)}
.pro-tackle-row>span:last-child {flex:1;min-width:0}
.pro-tackle-icon {display:grid;place-items:center;width:48px;height:54px;flex:0 0 48px;background:var(--mg-image-slot) center/100% 100% no-repeat}
.pro-tackle-icon img {width:90%;height:90%;object-fit:contain}
.pro-setup-stage {min-width:0}
.pro-setup-settings {margin-top:12px;padding-top:8px;border-top:1px solid var(--mg-border-muted)}
/* Missing dedicated artwork stays text-only; never show the generic item tile. */
.pro-tackle-icon:has(img[src$="/placeholder.png"]) {display:none}
.pro-list {list-style:none;margin:0;padding:0}
.pro-list li {padding:9px 0;border-bottom:1px solid var(--mg-border-muted);font-size:12px}
.pro-position-list li {padding:0;margin:0 0 8px;border:1px solid var(--mg-border-muted);background:var(--mg-surface-recessed)}
.pro-fishing-root button.pro-position {display:flex;align-items:center;gap:12px;width:100%;padding:12px 10px;background:transparent;border:0;text-align:left}
.pro-position strong {display:block;font-weight:500;color:var(--mg-parchment);font-size:13px;line-height:1.35}
.pro-position-number {font:17px Georgia,serif;color:var(--mg-brass);padding-right:8px;border-right:1px solid var(--mg-border-muted)}
.pro-position-list .is-selected {border-color:var(--mg-bronze);background:var(--mg-surface-chrome);box-shadow:inset 3px 0 var(--mg-bronze)}
.pro-position-list .is-selected small {color:var(--mg-amber)}
.pro-position-repair {padding:0 12px 12px}.pro-position-repair button {margin-top:8px}
.pro-map-tools {padding:20px 0 14px;border-bottom:1px solid var(--mg-border-muted)}
.pro-map-tools>button {width:100%;margin:7px 0 10px}
.pro-drawer label.pro-check {display:flex;align-items:center;gap:8px;color:var(--mg-text-main)}
.pro-check input {width:17px;height:17px;margin:0;accent-color:var(--mg-bronze)}
.pro-drawer details {padding:13px 0;border-bottom:1px solid var(--mg-border-muted)}
.pro-drawer summary {cursor:pointer;font:15px var(--font-accent,Georgia,serif);color:var(--mg-parchment)}
.pro-drawer summary>span {float:right;font:11px var(--font-readable,system-ui);color:var(--mg-text-muted)}
.pro-drawer .pro-rig-help {padding:6px 0 10px}.pro-rig-help summary {font:12px var(--font-readable,system-ui);color:var(--mg-text-muted)}.pro-rig-help small {margin-top:8px}
.pro-empty {font-size:12px;color:var(--mg-text-muted)}
.pro-marker-row {display:flex;align-items:center;gap:8px;font-size:12px}.pro-marker-row>span {flex:1;overflow-wrap:anywhere}
.pro-fishing-root .pro-marker-row button {padding:0;width:26px;min-height:26px;background:transparent;border:0;font-size:18px;color:var(--mg-text-muted)}
.pro-left-hidden {--pro-left-width:0px}.pro-right-hidden {--pro-right-width:0px}
.pro-left-hidden .pro-left,.pro-right-hidden .pro-right {padding:0;border:0;visibility:hidden}
.pro-viewport {position:relative;overflow:hidden;touch-action:none;background:var(--mg-surface-recessed);min-width:0;min-height:0;isolation:isolate}
/* Own lighting: the covered location must not tint the Pro background. Weather
   recipes in base.css apply equally to the image and its WebGL replacement. */
.pro-viewport {--bg-brightness:1}
.pro-viewport:has(> .pro-weather.atmosphere-night) {--bg-brightness:.9}
.pro-viewport > .pro-map > :is(img,.pro-water-animation) {filter:brightness(var(--bg-brightness));transition:filter 1.8s ease}
.pro-map {position:absolute;left:0;top:0;width:1672px;height:941px;transform-origin:0 0;user-select:none}
.pro-map>img {width:100%;height:100%;display:block;pointer-events:none}
.pro-map>img.pro-pier-overlay {position:absolute;inset:0;z-index:1}
.pro-map>img.pro-pier-overlay[hidden] {display:none}
.pro-map>.pro-spots,.pro-map>svg {z-index:2}
.pro-map>svg,.pro-map>canvas {position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pro-map .pro-spots {position:absolute;inset:0;pointer-events:none}
.pro-map button.pro-spot {pointer-events:auto;position:absolute;transform:translate(-50%,-50%);border-radius:50%;width:calc(24px / var(--pro-map-scale,1));height:calc(24px / var(--pro-map-scale,1));min-height:0;font-size:calc(12px / var(--pro-map-scale,1));padding:0;background:var(--mg-parchment-dim);color:var(--mg-graphite-deep);border:2px solid var(--mg-graphite-deep);box-shadow:0 0 0 4px #19161166}
.pro-map button.pro-spot.active {box-shadow:0 0 0 5px #b8925a80;border-color:var(--mg-amber)}
.pro-map button.pro-spot.locked {background:var(--mg-graphite);color:var(--mg-text-muted)}
.pro-zoom {position:absolute;right:16px;top:16px;display:flex;gap:4px;z-index:2}.pro-zoom button {min-width:35px;padding:5px 10px}
.pro-hint {position:absolute;left:16px;bottom:16px;z-index:2;max-width:75%;padding:7px 12px;background:var(--mg-surface-chrome);border:1px solid var(--mg-border-muted);pointer-events:none;font-size:12px;line-height:1.5;white-space:pre-line}.pro-hint:empty {display:none}
/* Weather is fixed to the visible scene, above the image/current and below
   the hint/zoom controls. Panning and zooming do not enlarge the raindrops. */
.pro-viewport > .pro-weather {inset:0;width:100%;height:100%;z-index:1;contain:paint}
.pro-weather[hidden] {display:none}
.pro-weather:not(.is-active) *, .pro-weather[hidden] *,
.pro-weather:not(.is-active) *::before, .pro-weather:not(.is-active) *::after {animation-play-state:paused}
@media(prefers-reduced-motion:reduce) {
  .pro-weather *, .pro-weather *::before, .pro-weather *::after {animation:none!important}
  .pro-viewport > .pro-map > :is(img,.pro-water-animation) {transition-duration:300ms}
}
.pro-notice {color:var(--mg-amber)}.pro-error {color:#ed9a87}.pro-status {flex:1;min-width:0;font-size:13px}
.pro-scene-column {display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;overflow:hidden}
.pro-scene-controls {position:relative;z-index:3;display:flex;align-items:flex-end;gap:16px;padding:12px 16px;flex-wrap:wrap;background:var(--mg-surface-recessed)}
.pro-scene-controls .pro-status {flex:0 1 auto;max-width:65%;padding:7px 12px;background:var(--mg-surface-chrome);border:1px solid var(--mg-border-muted);overflow-wrap:anywhere}
.pro-scene-controls .pro-status:empty {display:none}
.pro-fishing-root .pro-scene-controls [data-actions] {margin-left:auto;min-width:0;max-width:100%;flex-shrink:1;pointer-events:auto;flex-wrap:wrap;justify-content:flex-end}
.pro-viewport:has(> .pro-scene-controls) > .pro-hint {bottom:86px}
@media(max-width:800px) {
  .pro-scene-column {position:absolute;inset:0}
  .pro-scene-column > .pro-viewport {position:relative;inset:auto}
  .pro-scene-controls {padding:10px;gap:8px;flex-wrap:wrap}
  .pro-scene-controls .pro-status {max-width:100%;flex-basis:100%;font-size:12px}
  .pro-viewport:has(> .pro-scene-controls) > .pro-hint {bottom:150px}
}
.pro-fishing-root [data-actions] {display:flex;gap:8px;flex-shrink:0}.pro-fishing-root [data-actions] button {min-width:115px}
.pro-bite-button {animation:pro-button-bite .9s infinite}@keyframes pro-button-bite {50%{filter:brightness(1.35)}}
.pro-strike-anchor {position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:4;max-width:calc(100% - 32px);pointer-events:none}
.pro-strike {min-width:170px;pointer-events:auto}
.pro-strike:disabled {pointer-events:none}
@media(max-width:800px) {.pro-strike-anchor {bottom:108px}}
.pro-fight-hud {position:absolute;bottom:100px;left:50%;transform:translateX(-50%);z-index:3;width:min(370px,calc(100% - 32px));padding:14px 18px;background:var(--mg-surface-chrome);border:1px solid var(--mg-bronze);box-shadow:0 8px 30px #0009;user-select:none;touch-action:none}
.pro-fight-hud[hidden] {display:none}
.pro-fight-hud>strong {color:var(--mg-parchment)}
.pro-fight-hud>[data-fight-state] {float:right;font-size:12px;color:#cad6a6}
.pro-fight-hud.is-danger>[data-fight-state] {color:#ed9a87}
.pro-fight-hud label {display:block;font-size:12px;margin:10px 0 4px}
.pro-fight-hud label>span {float:right}
.pro-fight-hud small {display:block;font-size:11px;line-height:1.5;color:var(--mg-text-muted);margin-top:8px}
.pro-fight-hud [data-pulse-result] {color:var(--mg-amber);min-height:16px}
.pro-tension-track,.pro-progress-track,.pro-timing-track {height:10px;position:relative;overflow:hidden;background:#161713;border:1px solid var(--mg-border-muted)}
.pro-tension-track {background:linear-gradient(to right,#ac6c57 0% 16%,#6e8c61 16% 85%,#b59b54 85% 90%,#ac6c57 90%)}
.pro-tension-track i {display:block;height:100%;border-right:3px solid #fff1cf;background:#10120f88}
.pro-progress-track i {display:block;height:100%;background:var(--mg-brass)}
.pro-timing-track {height:16px;margin-top:14px}
.pro-timing-track>span {position:absolute;left:62%;width:16%;height:100%;background:#5d5a4c}
.pro-fight-hud.is-pull-available .pro-timing-track>span {background:#668454}
.pro-timing-track i {position:absolute;top:0;bottom:0;width:3px;background:var(--mg-parchment);transform:translateX(-50%)}
.pro-fight-hud.is-timing-ready .pro-timing-track {border-color:#d8e6a2}
.pro-viewport:has(> .pro-fight-hud:not([hidden]))>.pro-hint {display:none}
@media(max-width:800px) {.pro-fight-hud {bottom:140px;padding:10px 14px}}
.pro-catch,.pro-preflight,.pro-survey-overlay {position:absolute;inset:0;background:#14110ddd;display:grid;place-items:center;padding:22px;overflow:auto;z-index:5}
.pro-survey-overlay {background:#14110da8}
.pro-catch-card,.pro-preflight>article,.pro-survey-card {position:relative;max-height:100%;overflow:auto;width:min(510px,100%);padding:34px;background:var(--mg-surface-window);border:1px solid var(--mg-bronze);box-shadow:0 18px 65px #0009}
.pro-preflight>article {width:min(610px,100%)}
.pro-catch-card {text-align:center}.pro-catch-card>img {width:160px;height:140px;object-fit:contain}.pro-catch-card h2,.pro-survey-card h2,.pro-preflight h2 {font:27px/1.2 var(--font-accent,Georgia,serif);margin:8px 0 20px;color:var(--mg-parchment)}
.pro-catch-card .pro-measures {font:26px Georgia,serif;color:var(--mg-amber)}.pro-catch-card button {margin:8px 4px}.pro-catch-card>small {display:block}
.pro-fishing-root .pro-size-label {color:var(--value-tier-color,inherit);font-weight:600}
.pro-catch-card[data-size=trophy] {border-color:var(--mg-amber)}
.pro-dialog-actions {display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.pro-dialog-actions button {flex:1;min-width:150px}
.pro-survey-card :is(p,small),.pro-preflight p {color:var(--mg-text-muted)}.pro-survey-card small {display:block;font-size:12px;line-height:1.6}
.pro-survey-card .pro-error,.pro-preflight .pro-error {color:#ed9a87}.pro-survey-card .pro-error:empty {display:none}
.pro-survey-result {display:flex;align-items:center;gap:20px;padding:18px 10px;border-block:1px solid var(--mg-border-muted);margin:20px 0;background:var(--mg-surface-recessed)}
.pro-survey-result>img {width:66px;height:82px;object-fit:contain;transform:rotate(-22deg)}
.pro-survey-result strong {font:40px Georgia,serif;color:var(--mg-amber)}.pro-survey-result strong span {font-size:22px}
.pro-rig {height:105px;display:block;margin:15px auto;background:var(--mg-surface-recessed);border:1px solid var(--mg-border-muted);width:100%}
.pro-compact-catch {padding:10px;border:1px solid var(--mg-bronze);margin:12px 0}
.pro-export {width:100%;min-height:130px}
.pro-scale-control input[type=range] {display:block;width:100%;margin:0 0 12px;accent-color:var(--mg-bronze)}
.pro-scale-preview {pointer-events:none}
.pro-spot-preview {pointer-events:none}
.pro-water-range.pro-spot-sector {fill:#e7c27e25;stroke:#f2cf87;stroke-width:1.8;stroke-dasharray:5 4}
.pro-spot-direction {fill:none;stroke:#ffe1a1;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.pro-spot-edit-actions {display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.pro-spot-edit-actions button {flex:1 1 100%;white-space:normal}
.pro-spot-edit-actions button[aria-pressed=true] {border-color:var(--mg-amber)}
.pro-spot-coordinates {display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pro-aim-direction .pro-viewport {cursor:crosshair}
.pro-scale-grid {fill:none;stroke:#fff1ce;stroke-opacity:.25;stroke-width:.65}
.pro-scale-grid.is-major {stroke-opacity:.5;stroke-width:1}
.pro-scale-ruler {color:#f5c772;filter:drop-shadow(0 1px 2px #17130e)}
.pro-scale-ruler-1 {color:#8ee4cf}.pro-scale-ruler-2 {color:#9ac9ff}
.pro-scale-ruler path {fill:none;stroke:currentColor;stroke-width:3}
.pro-scale-ruler circle {fill:currentColor;stroke:#211b14;stroke-width:1}
.pro-scale-ruler text {fill:currentColor;font:600 15px var(--font-readable,system-ui);paint-order:stroke;stroke:#211b14;stroke-width:3;stroke-linejoin:round}
.pro-editor {z-index:710;--pro-left-width:250px;--pro-right-width:290px}.pro-editor.pro-left-hidden {--pro-left-width:0px}.pro-editor.pro-right-hidden {--pro-right-width:0px}
.pro-editor .pro-map canvas {image-rendering:pixelated}.pro-editor h3 {margin:10px 0}.pro-editor input[type=range] {padding:0}.pro-editor .pro-drawer p {margin:7px 0}.pro-editor [data-value-readout] {color:var(--mg-amber)}
.pro-flow-directions {display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:12px 0;max-width:180px}.pro-flow-directions button {margin:0;font-size:22px;line-height:1;padding:8px}.pro-flow-directions button[aria-pressed=true] {border-color:var(--mg-amber)}.pro-flow-directions [data-flow-arrow] {display:grid;place-items:center;font-size:23px;color:var(--mg-amber)}
.pro-saved-marker circle {fill:var(--mg-amber);stroke:#231e16;stroke-width:2}
.pro-measure-label {fill:#fff1cb;font:13px var(--font-readable,system-ui);paint-order:stroke;stroke:#211b14;stroke-width:3px}
.pro-target {fill:none;stroke:#e8d798;stroke-width:2}.pro-water-range {fill:#d8d9a20b;stroke:#e8dfac77;stroke-width:1.5;stroke-dasharray:5 6}
@media(min-width:1800px) {.pro-fishing-root {font-size:15px}.pro-drawer {padding:25px 22px}.pro-position strong {font-size:15px}.pro-drawer small {font-size:12px}.pro-drawer label {font-size:13px}.pro-fishing-root header strong {font-size:28px}}
@media(max-height:820px) {.pro-drawer {padding-top:14px}.pro-section-title {padding-bottom:8px;margin-bottom:6px}.pro-drawer h3 {margin:4px 0 6px}.pro-drawer label.pro-tackle-row {padding:6px 0}.pro-tackle-icon {width:40px;height:44px;flex-basis:40px}.pro-rig {height:76px;margin:10px auto}.pro-fishing-root button.pro-position {padding:9px}.pro-map-tools {padding-top:14px}}
@media(max-width:1100px) {.pro-fishing-root:not(.pro-left-hidden) {--pro-left-width:210px}.pro-fishing-root:not(.pro-right-hidden) {--pro-right-width:255px}.pro-drawer {padding:16px 12px}.pro-title {display:block}.pro-title>span {display:block;border:0;padding:3px 0 0}.pro-time-of-day {display:none}.pro-fishing-root header strong {font-size:20px}.pro-title-icon {width:30px;height:30px}}
@media(max-width:800px) {.pro-body {display:block}.pro-viewport {position:absolute;inset:0}.pro-drawer {position:absolute;top:0;bottom:0;width:min(290px,80vw);box-shadow:0 0 30px #0009}.pro-left {left:0}.pro-right {right:0}.pro-fishing-root > header {flex-wrap:wrap;padding:10px;gap:8px}.pro-fishing-root > footer {padding:10px;gap:8px;flex-wrap:wrap}.pro-title-icon {display:none}.pro-title>span {font-size:9px}.pro-fishing-root header strong {font-size:18px}.pro-title {flex:1}.pro-spacer {display:none}.pro-fishing-root [data-actions] {margin-left:auto}.pro-fishing-root [data-actions] button {min-width:85px}.pro-survey-card,.pro-catch-card {padding:25px}.pro-editor header strong {flex:1}.pro-editor header button {padding:5px 9px}}

/* Position drifts with the server; the inner float moves independently. */
.pro-map .pro-float{position:absolute;z-index:3;width:calc(64px / var(--pro-map-scale,1));height:calc(64px / var(--pro-map-scale,1));transform:translate(-50%,-65%);pointer-events:none;transition:left 2.7s linear,top 2.7s linear}
.pro-map .pro-float[hidden]{display:none!important}
.pro-map .pro-float-new{transition:none}
.pro-map .pro-float-casting{transition:none;z-index:2}
.pro-float-casting .pro-float-ripple{visibility:hidden}
.pro-float.pro-float-casting .pro-float-motion{animation:none;transition:none;opacity:1;transform:rotate(35deg)}
.pro-float.pro-float-casting .pro-float-sprite{animation:none}
.pro-float-motion{position:absolute;inset:0;transform-origin:50% 65%;transform:translateY(0) rotate(0);opacity:1;transition:transform 1.1s ease,opacity 1.1s ease}
.pro-float-sprite{display:block;width:100%;height:100%;object-fit:contain;transform:rotate(-22deg);filter:drop-shadow(0 1px 1px #102b25) drop-shadow(0 0 1px #fff7cb);user-select:none}
.pro-float-ripple{position:absolute;left:22%;top:58%;width:56%;height:17%;border:1px solid #e4f8e0aa;border-radius:50%;background:#bedcd31c;opacity:.4;transition:opacity 1s ease}
.pro-float[data-state="settling"] .pro-float-motion{animation:pro-float-settle 1.3s ease-out both}
.pro-float:is([data-state="upright"],[data-state="nibble"]) .pro-float-sprite{animation:pro-float-bob 3s ease-in-out infinite}
.pro-float[data-state="flat"] .pro-float-motion{transform:translateY(1%) rotate(82deg)}
/* The settling animation holds its last frame. An explicit sinking animation
   avoids jumping to opacity:0 when that animation is replaced (no CSS transition). */
.pro-float[data-state="submerged"] .pro-float-motion{transform:translateY(55%) rotate(6deg);opacity:0;animation:pro-float-sink 1.8s ease-in-out both}
.pro-float[data-state="submerged"] .pro-float-ripple{opacity:.16}
.pro-float[data-state="bite"] .pro-float-motion{animation:pro-float-dive 1.8s ease-in-out both}
.pro-float[data-state="bite"] .pro-float-ripple{border-color:#f5db91;animation:pro-float-rings 1.5s ease-out infinite}
.pro-float[data-state="nibble"]{--pro-touch-depth:20%;--pro-touch-angle:-6deg}
.pro-float[data-state="nibble"][data-bite-signal="subtle"]{--pro-touch-depth:11%;--pro-touch-angle:-4deg}
.pro-float[data-state="nibble"][data-bite-signal="faint"]{--pro-touch-depth:5%;--pro-touch-angle:-2deg}
.pro-float[data-state="nibble"] .pro-float-motion{animation:pro-float-nibble var(--pro-nibble-period,6s) ease-in-out var(--pro-nibble-delay,0s) infinite}
.pro-float[data-state="nibble"] .pro-float-ripple{border-color:#e4f8e0aa;opacity:.3}
.pro-drawer .pro-rig-leader{width:100%;height:112px;margin:6px auto}
.pro-motion-status{display:block;color:#cfceac;margin-top:3px}
.pro-float[data-state="weed"] .pro-float-motion{transform:translateY(4%) rotate(22deg);opacity:.93}
.pro-float[data-state="snag"] .pro-float-motion{transform:translateY(17%) rotate(35deg);opacity:.8}
.pro-float[data-state="snag"] .pro-float-sprite{animation:pro-float-tug 1.4s ease-in-out infinite}
.pro-float[data-state="releasing"] .pro-float-motion{transform:translateY(5%) rotate(20deg)}
.pro-float[data-state="releasing"] .pro-float-sprite{animation:pro-float-tug .5s ease-in-out infinite}
@keyframes pro-float-settle{0%{transform:translateY(-35%) rotate(65deg);opacity:.5}55%{transform:translateY(8%) rotate(-10deg);opacity:1}100%{transform:translateY(0) rotate(0);opacity:1}}
@keyframes pro-float-bob{0%,100%{transform:translateY(0) rotate(-24deg)}50%{transform:translateY(3%) rotate(-19deg)}}
@keyframes pro-float-sink{0%{transform:translateY(0) rotate(0);opacity:1}20%{transform:translateY(8%) rotate(2deg);opacity:.95}65%{transform:translateY(35%) rotate(4deg);opacity:.5}100%{transform:translateY(55%) rotate(6deg);opacity:0}}
@keyframes pro-float-dive{0%{transform:translateY(0) rotate(0);opacity:1}20%{transform:translateY(10%) rotate(-8deg);opacity:.95}35%{transform:translateY(-3%) rotate(6deg);opacity:.95}55%{transform:translateY(18%) rotate(-5deg);opacity:.7}100%{transform:translateY(65%) rotate(-10deg);opacity:0}}
@keyframes pro-float-fade{from{opacity:1}to{opacity:0}}
@keyframes pro-float-nibble{0%,24%,100%{transform:translateY(0) rotate(0);opacity:1}8%{transform:translateY(var(--pro-touch-depth)) rotate(var(--pro-touch-angle));opacity:.9}15%{transform:translateY(2%) rotate(2deg);opacity:1}}
@keyframes pro-float-rings{0%{transform:scale(.7);opacity:.85}100%{transform:scale(1.8);opacity:.1}}
@keyframes pro-float-tug{0%,100%{transform:translate(0,0) rotate(-22deg)}45%{transform:translate(-2%,4%) rotate(-26deg)}60%{transform:translate(2%,-2%) rotate(-18deg)}}
@media(prefers-reduced-motion:reduce){.pro-map .pro-float,.pro-float-motion,.pro-float-ripple{transition:none}.pro-float-motion,.pro-float-sprite,.pro-float-ripple{animation:none!important}.pro-float:is([data-state="submerged"],[data-state="bite"]) .pro-float-motion{transform:none;opacity:0;animation:pro-float-fade 1.8s linear both!important}.pro-float[data-state="bite"] .pro-float-ripple{opacity:.85}.pro-float[data-state="nibble"] .pro-float-motion{opacity:.8}}

.pro-map>canvas.pro-water-animation{image-rendering:auto}
.pro-map>canvas[hidden]{display:none!important}
