.migration{background:#fff2b9;border-radius:14px;padding:13px;font-size:.9rem}.open-picnic{padding:20px 12px}.open-picnic .animal-row{align-items:flex-start;gap:15px;flex-wrap:wrap}.diner{width:150px;display:flex;flex-direction:column;align-items:center}.wish{background:#fff;border-radius:17px;padding:9px 13px;display:flex;gap:8px;min-height:34px;border:2px solid #bec6a6;position:relative}.wish:after{content:'';width:9px;height:9px;background:white;transform:rotate(45deg);position:absolute;bottom:-6px;left:45%;border-right:2px solid #bec6a6;border-bottom:2px solid #bec6a6}.wish>span{border-radius:50%;background:#698e5a;width:13px;height:13px}.diner-art{position:relative;width:100px;height:115px;margin-top:8px}.diner-art>svg{width:100%;height:100%}.reaction{position:absolute;right:-2px;bottom:20px;background:#fff7d2;border-radius:50%;width:28px;height:28px;text-align:center;font-weight:900;line-height:28px}.just-right .reaction{background:#cff0b0}.too-many .reaction{background:#ffcd87}.serve-zone{width:100%;min-height:70px;border:3px solid #abc3b2;background:#fffef8;border-radius:24px;padding:8px;position:relative;overflow:visible}.fruit-slots{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.fruit-slot{width:35px;height:38px;display:grid;place-items:center;border:2px dashed #9db1a1;border-radius:50%;background:#f0f1e3}.fruit-slot>svg{width:32px;height:35px}.fruit-slot.full{border:2px solid transparent;background:transparent}.fruit-slot.missing>span{font-size:2rem;color:#76937c;line-height:1}.fruit-slot.excess{border:2px solid #bb591f;background:#fff0ca;transform:translateY(10px) rotate(-12deg)}.just-right .serve-zone{border-color:#40885b;background:#f1fbd7}.too-many .serve-zone{border-color:#c8863b}.diner>small{font-size:.76rem;margin:13px 0 6px;text-align:center;min-height:20px}.take-fruit{border:1px solid #cab88d;border-radius:12px;background:#fff8e3;min-height:46px;padding:8px 12px;font-size:.85rem}.check-row{text-align:center;padding:0 20px 22px}.check-row .primary{min-width:200px}.free-bridge{min-height:290px;padding:18px 15px 0;position:relative;background:#c1e6eb}.river-grid{display:flex;position:absolute;inset:70px 15px 67px}.river-unit{flex:1;border-right:1px dashed #518d9b77;position:relative}.river-unit.water{background:repeating-linear-gradient(0deg,#95cedc 0,#95cedc 20px,#83c3d3 22px,#95cedc 26px)}.river-unit.land{background:#dbdda8}.water-gap{display:block;color:#236f89;text-align:center;font-size:2.1rem;margin-top:40px}.bank-line{position:absolute;top:37px;bottom:64px;border-left:4px dashed #628448;z-index:1;margin-left:-2px}.bank-line>span{position:absolute;top:0;transform:translateX(-50%);background:#fff8ce;font-size:.82rem;padding:5px 9px;border-radius:9px;white-space:nowrap}.wood-row{position:absolute;left:15px;right:15px;top:104px;display:flex;gap:0;height:57px;z-index:2}.wood{height:57px;display:flex;gap:0;border:3px solid #825b38;border-radius:9px;flex-shrink:0;box-shadow:0 4px 0 #855d3844}.wood>span{flex:1;border-right:2px dashed #7c593966;position:relative}.wood>span:after{content:'';width:7px;height:7px;background:#ffffffbb;border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.wood>span:last-child{border:0}.wood-1{background:#e4b374}.wood-2{background:#d99143}.wood-3{background:#beaadf}.bridge-over .wood:last-child{outline:3px solid #b94b29;outline-offset:2px}.crossing-beaver{position:absolute;z-index:3;width:69px;height:79px;top:60px;left:7px;pointer-events:none}.crossing-beaver svg{width:100%;height:100%}.crossed .crossing-beaver{left:calc(var(--end) - 37px)}.bridge-meter{position:absolute;top:191px;left:15px;right:15px;display:flex;align-items:center;gap:5px}.bridge-meter>span{width:14px;height:14px;border:2px solid #538898;border-radius:50%;background:#d4f1f4}.bridge-meter>span.covered{background:#e5bc73}.bridge-meter>strong{font-size:.82rem;margin-left:6px}.bridge-drop{position:absolute;left:15px;right:15px;bottom:9px;min-height:48px;border:2px dashed #5d91a0;border-radius:14px;background:#ffffffbb;font-size:.9rem;font-weight:800}.crossing-banner{position:absolute;bottom:15px;left:15px;right:15px;text-align:center;color:#285a41;font-weight:800}.plank-tray{gap:16px}.timber{width:105px;min-height:88px;gap:12px}.timber-art{display:flex;border:2px solid #80654c;height:28px;border-radius:6px;max-width:88px}.timber-art>i{width:24px;display:grid;place-items:center;border-right:1px dashed #80654c}.timber-art>i:after{content:'';width:5px;height:5px;border-radius:50%;background:#fff}.timber-art>i:last-child{border:0}.placed-pieces{text-align:center;padding:0 16px 20px}.placed-pieces>span{font-size:.85rem;color:#55705e}.placed-pieces>div{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:10px;min-height:48px;align-items:center}.piece-return{min-height:48px;min-width:65px;border:2px solid #80654c;border-radius:11px;font-size:.85rem;font-weight:800;padding:8px}.piece-return>b{margin-left:7px}.challenge-setting{display:flex;gap:12px;align-items:center;font-size:.92rem}.challenge-setting input{width:24px;height:24px}.equation{flex-wrap:wrap;padding:0 12px;margin-bottom:16px}.inspect-result .missing{outline:3px solid #5e8692}.inspect-result .excess{outline:3px solid #c17b2e}.drag-ghost .timber-art{height:33px;width:100%;margin-top:9px}.drag-ghost>span:last-child{display:none}
@media(max-width:520px){.diner{width:calc(50% - 10px);max-width:150px}.diner-art{width:80px;height:90px}.open-picnic .animal-row{gap:18px 14px}.open-picnic{padding:18px 12px}.wish{padding:8px 11px}.fruit-slot{width:32px;height:35px}.fruit-slot>svg{width:29px;height:32px}.serve-zone{min-height:65px;padding:7px}.free-bridge{min-height:275px}.river-grid{inset:65px 10px 64px}.wood-row{left:10px;right:10px;top:101px;height:52px}.wood{height:52px;border-width:2px}.bridge-meter{top:183px;gap:4px;left:10px}.bridge-meter>span{width:12px;height:12px}.crossing-beaver{width:58px;height:71px;top:63px}.bridge-drop{font-size:.86rem;left:10px;right:10px}.timber{width:82px;min-height:83px}.plank-tray{gap:10px}.timber-art>i{width:19px}.bank-line{font-size:.8rem}.take-fruit{min-height:46px}.open-picnic .tray-label{max-width:130px}.check-row .primary{width:100%}}
@media(prefers-reduced-motion:no-preference){.crossed .crossing-beaver{animation:cross-river 1.2s ease-in-out both}.picnic-eating .diner-art{animation:nibble .65s ease-in-out 3}.inspect-result .excess{animation:rock .3s ease-in-out 2}@keyframes cross-river{from{left:7px;transform:translateY(0)}50%{transform:translateY(-8px)}to{left:calc(var(--end) - 37px);transform:none}}@keyframes nibble{50%{transform:translateY(5px) rotate(4deg)}}@keyframes rock{50%{transform:rotate(8deg) translateY(6px)}}}

/* Both banks and the river use the same unit grid. Reserve dry starting land. */
.free-bridge{padding:14px 12px 10px;min-height:290px;background:#d4ecdd;--bank-width:64px;--arrival:calc(var(--bank-width) + (100% - var(--bank-width) - 32px) * var(--fraction) + 7px)}
.bridge-world{position:relative;width:100%;height:183px}
.left-shore{position:absolute;top:29px;bottom:0;left:0;width:var(--bank-width);background:#bbd18b;border-radius:14px 0 0 14px;border-top:7px solid #83ad66}
.left-shore>span{display:block;text-align:center;font-size:.75rem;font-weight:800;color:#486742;margin-top:3px}
.channel-space{position:absolute;top:29px;bottom:0;left:var(--bank-width);right:0;background:#bbd18b;border-radius:0 14px 14px 0}
.free-bridge .river-grid{inset:0 32px 0 0}
.free-bridge .river-unit.land{background:#bbd18b;border-color:transparent}
.free-bridge .river-unit.water{border-top:7px solid #72b8c9}
.free-bridge .water-gap{margin-top:80px;font-size:1.5rem}
.free-bridge .bank-line{left:calc((100% - 32px) * var(--fraction));top:-7px;bottom:0;margin-left:0;border-left:3px solid #769b55}
.free-bridge .bank-line>span{top:-22px;left:16px;transform:none;font-size:.73rem;padding:4px 7px}
.free-bridge .wood-row{left:0;right:32px;top:71px;height:48px}
.free-bridge .wood{height:48px}
.free-bridge .crossing-beaver{left:5px;top:41px;width:54px;height:74px}
.free-bridge.crossed .crossing-beaver{left:var(--arrival)}
.free-bridge .bridge-meter{position:static;margin:12px 0 9px;min-height:21px}
.free-bridge .bridge-drop{position:static;width:100%;margin:0;min-height:48px}
.free-bridge .crossing-banner{position:static;padding:11px 0 5px;font-size:.95rem}
@media(max-width:520px){.free-bridge{--bank-width:57px;padding:14px 9px 10px}.free-bridge .crossing-beaver{width:47px;height:70px;top:45px}.free-bridge .bridge-meter{gap:4px}.free-bridge .bank-line>span{left:8px}}
@media(prefers-reduced-motion:no-preference){.free-bridge.crossed .crossing-beaver{animation:dry-bank-crossing 1.2s ease-in-out both}@keyframes dry-bank-crossing{from{left:5px;transform:translateY(0)}50%{transform:translateY(-6px)}to{left:var(--arrival);transform:none}}}


.wish{padding:7px 8px;gap:3px}.wish .wish-fruit{position:relative;width:32px;height:35px;background:none;border-radius:0}.wish-fruit svg{width:32px;height:35px}.wish-fruit.satisfied svg{opacity:.38}.wish-fruit>b{position:absolute;right:-2px;bottom:-2px;border-radius:50%;background:#126653;color:#fff;width:16px;height:16px;line-height:16px;text-align:center;font-size:.7rem}.fruit-slot.missing svg{opacity:.24;filter:grayscale(.7)}.basket.wrong-delivery{border:3px solid #ab6636;background:#fff0cc}.basket.wrong-delivery>span{color:#77401f;font-size:.91rem}.parcel-return{border-color:#af6e3e;background:#fff1ce}.release-stamp{max-width:720px;margin:22px auto 0;padding:16px 12px;border-top:1px solid #afcab5;text-align:center;font-size:.82rem;line-height:1.7}.release-stamp strong{display:block;font-size:.92rem}.release-stamp details{margin:8px auto 0;text-align:left;max-width:560px}.release-stamp summary{cursor:pointer;text-align:center;min-height:36px}.release-stamp ul{padding-left:22px}.release-stamp li{margin-bottom:5px}.fruit-pool-note{text-align:center;font-size:.8rem;padding:0 15px 12px;color:#54715c}
@media(prefers-reduced-motion:no-preference){.parcel-return{animation:return-parcel .45s ease-out}.wrong-delivery{animation:gentle-basket .4s ease-out}@keyframes return-parcel{0%{transform:translateY(-28px) rotate(-9deg)}60%{transform:translateY(5px) rotate(3deg)}100%{transform:none}}@keyframes gentle-basket{40%{transform:rotate(-3deg)}75%{transform:rotate(2deg)}}}

/* v0.9: ordered plates and direct river manipulation. */
.open-picnic .diner{width:210px;max-width:100%;min-width:0}
.open-picnic .serve-zone{padding:8px;min-height:78px;cursor:pointer}
.open-picnic .fruit-slots{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-start}
.plate-fruit{position:relative;width:48px;height:52px;min-width:48px;min-height:52px;padding:2px;border:2px solid transparent;background:transparent;border-radius:12px;touch-action:none;flex-shrink:0}
.plate-fruit svg{width:100%;height:100%;pointer-events:none}
.plate-fruit small{position:absolute;bottom:-2px;right:0;font-size:10px;border-radius:8px;background:#fff9e8;padding:0 3px}
.plate-fruit.selected,.wood.selected{outline:3px solid #164f76;outline-offset:2px;background-color:#f7e2ad}
.empty-plate{font-size:.85rem;padding:12px 0;color:#48675b;display:block;width:100%;text-align:center}
.wish-fruit{position:relative}.wish-fruit small{position:absolute;bottom:-6px;right:-1px;font-size:10px;border-radius:8px;background:#fff;padding:0 3px}
.plate-actions{display:flex;gap:7px;justify-content:center;width:100%;margin-top:6px}
.plate-actions button{min-height:48px;min-width:0;flex:1;padding:8px 5px;font-size:.84rem;white-space:nowrap;margin:0}
.fruit-tray .tray-label{display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 100%;width:100%;max-width:none;min-width:0;font-size:clamp(13px,3.4vw,17px);line-height:1.65;text-align:center;white-space:normal;padding:0}
.fruit-tray .tray-label>span{display:block;white-space:nowrap}
.placed-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;padding:12px}
.placed-controls>span{flex:0 0 100%;text-align:center;font-size:.85rem}
.placed-controls button{min-height:48px;font-size:.85rem;padding:8px 12px}
.bridge-water-zone{position:absolute;left:0;top:0;height:100%;width:calc((100% - 32px)*var(--fraction));z-index:1;cursor:pointer;border:3px dashed transparent;border-radius:8px;touch-action:manipulation}
.bridge-water-zone.drop-hover{background:#e5fff169;border-color:#146653;box-shadow:inset 0 0 0 4px #fff9}
.bridge-water-zone:focus-visible{outline:4px solid #164f76;outline-offset:-4px}
.river-grid,.bank-line{pointer-events:none}
.wood-row{pointer-events:none}
.free-bridge .wood{pointer-events:auto;touch-action:none;min-width:0;padding:0;cursor:grab;color:inherit;font:inherit}
.wood span{pointer-events:none}.bridge-drop{cursor:default!important}
.drag-ghost{overflow:visible!important}.drag-label{position:absolute;left:50%;transform:translateX(-50%);top:calc(100% + 4px);white-space:nowrap;background:#174f43;color:white;border-radius:8px;padding:7px 10px;font-size:14px}
.return-hover .drag-label{background:#85603b}
.hint-row{flex-wrap:wrap;gap:8px}.hint-row .feedback{flex:1 1 180px}.hint-row [data-action=undo]{min-height:48px}
@media(max-width:520px){.open-picnic .diner{width:210px;max-width:100%}.open-picnic .animal-row{gap:24px}.fruit-tray{padding-left:9px;padding-right:9px;gap:9px}.fruit-tray .item{min-width:0;width:calc((100% - 22px)/3);max-width:100px}.plate-actions button{font-size:14px}}


.drag-ghost>.drag-label{display:block!important}

.free-bridge .bridge-drop{border:0;background:transparent;padding:8px 0;min-height:28px;text-align:center;line-height:1.6}
.bridge-water-zone{border-color:#e0fcff88}.bridge-water-zone:after{content:"放在河面";position:absolute;top:9px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#e9fbffe6;color:#285c70;font-size:11px;line-height:1.5;padding:2px 6px;border-radius:6px;pointer-events:none}.crossed .bridge-water-zone:after{display:none}

.word-picture{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.parcel-item .word-picture{width:88px;height:96px}.basket>.word-picture{width:120px;height:130px}.drag-ghost>.word-picture{width:100%;height:100%;display:block}.tray:has(.parcel-item){display:grid;grid-template-columns:repeat(4,minmax(0,110px));justify-content:center;gap:12px}.tray:has(.parcel-item:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,110px))}.parcel-item{width:100%;min-width:0;min-height:112px;padding:8px}@media(max-width:520px){.tray:has(.parcel-item){grid-template-columns:repeat(2,minmax(0,110px));gap:12px}.tray:has(.parcel-item:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,100px));gap:8px}.parcel-item .word-picture{width:100%;height:86px}.parcel-item{min-height:104px;padding:6px}}

.parcel-item.selected:after{content:"已選";font-size:10px;width:auto;padding:2px 5px;line-height:1.5}

/* v0.12.2: visible retry feedback, reachable fruit supplies and bridge control. */
body.retry-open{overflow:hidden}
dialog.retry-dialog{position:fixed;inset:0;margin:auto;max-width:440px;width:calc(100% - 28px);max-height:calc(100dvh - 28px);padding:26px 24px;border:3px solid #e2b154;border-radius:26px;text-align:center;overscroll-behavior:contain;box-shadow:0 20px 80px #102d3970}
dialog.retry-dialog::backdrop{background:#163c44bd;backdrop-filter:blur(3px)}
.retry-icon{display:grid;place-items:center;margin:0 auto 12px;width:48px;height:48px;border-radius:50%;background:#ffe09a;color:#704315;font-size:30px;font-weight:900}
dialog.retry-dialog h2{font-size:1.6rem;margin-bottom:14px}dialog.retry-dialog #mistake-reason{font-size:1.14rem;font-weight:800;line-height:1.65;color:#553c22;margin-bottom:12px;overflow-wrap:anywhere}
dialog.retry-dialog .retry-reassurance{font-size:.95rem;color:#48695b;margin-bottom:20px}
.retry-dismiss{width:100%;min-height:58px;font-size:1.1rem}
body.has-fruit-dock{padding-bottom:calc(var(--fruit-dock-height,180px) + 24px)}
.has-fruit-dock .serve-zone,.has-fruit-dock .plate-actions,.has-fruit-dock .game-controls{scroll-margin-bottom:calc(var(--fruit-dock-height,180px) + 24px);scroll-margin-top:16px}
.fruit-tray{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:50;display:flex;justify-content:center;gap:8px 14px;width:min(720px,100%);padding:10px max(14px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));margin:0;border:2px solid #aac8b6;border-bottom:0;border-radius:22px 22px 0 0;background:#fffdf2;box-shadow:0 -6px 24px #244c4930;touch-action:pan-y}
.fruit-tray .item{width:86px;min-width:0;min-height:78px;padding:5px;flex:0 1 86px;touch-action:none;background:#fff}
.fruit-tray .item svg{width:48px;height:48px}.fruit-tray .item span{font-size:14px}
.fruit-tray .tray-label{gap:0;font-size:14px;line-height:1.45;margin:0;flex:0 0 100%}
.fruit-tray .tray-label>span{white-space:normal}
.free-bridge .bridge-submit{padding:4px 0 8px;margin:0}.free-bridge .bridge-submit .primary{max-width:100%;min-width:min(220px,100%)}
.timber>span:last-child,.drag-ghost .timber-count{color:#4e3018;font-weight:900}.drag-ghost .timber-count{display:block;text-align:center;font-size:14px;line-height:1.4;margin-top:3px}
@media(max-width:520px){.fruit-tray{gap:7px 10px;padding-top:9px}.fruit-tray .item{width:74px;max-width:86px;flex-basis:74px;min-height:74px}.fruit-tray .item svg{width:42px;height:42px}.fruit-tray .tray-label{font-size:14px}.retry-icon{margin-bottom:9px}dialog.retry-dialog{padding:21px 18px}}
@media(max-height:500px) and (orientation:landscape){.fruit-tray{max-width:690px;gap:8px;align-items:center;padding-top:7px;padding-bottom:calc(7px + env(safe-area-inset-bottom))}.fruit-tray .item{width:66px;min-height:62px;flex-basis:66px}.fruit-tray .item svg{width:34px;height:34px}.fruit-tray .tray-label{flex:1 1 180px;width:auto;max-width:260px;font-size:14px}dialog.retry-dialog{padding:14px 18px}.retry-icon{display:none}dialog.retry-dialog h2{font-size:1.35rem;margin-bottom:7px}dialog.retry-dialog .retry-reassurance{margin-bottom:12px}}

.fruit-dock-page{scroll-padding-bottom:calc(var(--fruit-dock-height,180px) + 20px)}
.has-fruit-dock #app button:not(.item){scroll-margin-bottom:calc(var(--fruit-dock-height,180px) + 20px)}
.drag-ghost.timber-ghost{width:92px;height:84px}.timber-ghost .timber-art{height:28px;margin-top:3px;width:100%}.timber-ghost .timber-count{margin-top:5px;line-height:18px}

.earth-harvest{background:linear-gradient(#f0d69d,#f8e5b8);display:block}.harvest-leader{display:flex;align-items:center;justify-content:center;gap:20px;margin:-10px 0 18px}.harvest-leader svg{width:150px;height:130px}.harvest-leader>span{font-size:1.2rem;font-weight:900;color:#745020}.harvest-leader small{display:block;font-size:.875rem;font-weight:500;margin-top:7px}.earth-harvest .serve-zone{background:#fff3c8;border-color:#b67b36}.drill-card .art{background:#d4e0e6}.parent-block .progress-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}.wish-fruit small,.plate-fruit small{display:none}@media(max-width:600px){.harvest-leader{gap:10px}.harvest-leader svg{width:115px;height:95px}.harvest-leader>span{font-size:1rem}}
.free-bridge{background:#e9f5ed;padding:0 0 15px;overflow:hidden;--bank-width:95px;--arrival:calc(var(--bank-width) + (100% - var(--bank-width) - 52px) * var(--fraction) - 10px)}
.free-bridge .bridge-world{height:380px;background:#73cadd url('assets/scenes/bridge-canyon.webp') center 45%/cover no-repeat;border-radius:20px 20px 0 0;isolation:isolate}
.free-bridge .left-shore{top:160px;bottom:42px;background:linear-gradient(#8fbd69e8,#8b6a4388);border-top:9px solid #9dcc66;border-radius:0 16px 0 0}
.free-bridge .left-shore>span{margin-top:6px;color:#183d31;font-size:.875rem}
.free-bridge .channel-space{top:160px;bottom:42px;background:transparent;border-radius:0}
.free-bridge .river-grid{right:52px}
.free-bridge .river-unit.water{background:linear-gradient(#3fb3ca55,#167da388);border-top:9px solid #7ddced;border-right:2px dashed #d6fcffb3}
.free-bridge .river-unit.land{background:linear-gradient(#9fc977ef,#80623b99);border-top:9px solid #9dcc66}
.free-bridge .bank-line{left:calc((100% - 52px) * var(--fraction));border-color:#f9edb5;bottom:0;top:0}
.free-bridge .bank-line>span{top:-35px;left:6px;font-size:.875rem;background:#ffefb5;border:2px solid #fff}
.free-bridge .wood-row{right:52px;top:66px;height:49px;filter:drop-shadow(0 12px 7px #073d4d66)}
.free-bridge .crossing-beaver{left:0;top:155px;width:100px;height:100px}
.free-bridge .water-gap{margin-top:130px;color:#efffff;text-shadow:0 2px 3px #065b71}
.free-bridge .bridge-meter{margin:14px 18px 5px}.free-bridge .bridge-drop{padding:7px 14px}.free-bridge .bridge-submit{padding:5px 12px}
@media(max-width:520px){.free-bridge{--bank-width:62px}.free-bridge .bridge-world{height:305px;background-position:center 48%}.free-bridge .left-shore,.free-bridge .channel-space{top:128px;bottom:27px}.free-bridge .crossing-beaver{width:68px;height:80px;top:137px}.free-bridge .wood-row{top:61px;height:42px}.free-bridge .wood{height:42px}.free-bridge .water-gap{margin-top:119px;font-size:1rem}.free-bridge .bridge-meter{margin-left:10px}.free-bridge .bank-line>span{left:3px;padding:4px}.free-bridge .bridge-drop{font-size:.875rem}}
.free-bridge{--bank-width:29.8%;--arrival:calc(71.4% - 22px)}
.free-bridge .bridge-world{background-position:center 45%;overflow:hidden}
.free-bridge .left-shore{top:120px;bottom:42px;background:none;border:0;border-radius:0}
.free-bridge .left-shore>span{display:inline-block;position:absolute;right:28px;top:45px;background:#fff3c4;border-radius:10px;padding:5px 9px}
.free-bridge .channel-space{top:130px;bottom:42px;width:var(--channel-width);right:auto}
.free-bridge .river-unit.water{background:#8ce8f21a;border-top:0;border-right:2px dashed #e0fbff99}
.free-bridge .river-unit.land{background:none;border:0}
.free-bridge .wood-row{top:16px}.free-bridge .water-gap{margin-top:128px}
.free-bridge .bridge-water-zone{width:calc((100% - 52px)*var(--fraction));border-color:#e3ffff88}
.free-bridge .bridge-water-zone:after{top:78px;font-size:.875rem}
.free-bridge .bank-line{border:0}.free-bridge .bank-line>span{top:42px;left:28px}
.free-bridge .crossing-beaver{left:calc(29.8% - 102px);top:60px}
@media(prefers-reduced-motion:no-preference){.free-bridge.crossed .crossing-beaver{animation:canyon-crossing 1.8s ease-in-out both}@keyframes canyon-crossing{from{left:calc(29.8% - 102px)}to{left:var(--arrival)}}}
@media(max-width:520px){.free-bridge{--bank-width:22%;--arrival:calc(78% - 14px)}.free-bridge .bridge-world{background-size:100% 100%}.free-bridge .channel-space{top:130px;width:calc(var(--channel-width)*1.34615)}.free-bridge .wood-row{top:16px}.free-bridge .left-shore{top:118px}.free-bridge .left-shore>span{right:9px;top:52px;font-size:.75rem}.free-bridge .crossing-beaver{left:calc(22% - 67px);top:76px}.free-bridge .bank-line>span{top:46px;left:7px;font-size:.75rem}.free-bridge .bridge-water-zone:after{font-size:.75rem}.free-bridge .water-gap{margin-top:110px}@keyframes canyon-crossing{from{left:calc(22% - 67px)}to{left:var(--arrival)}}}

.free-bridge .channel-space{width:calc(var(--channel-width) + 52px)}@media(max-width:520px){.free-bridge .channel-space{width:calc(var(--channel-width)*1.34615 + 52px)}}
