#app.bridge-wide{max-width:1430px}.bridge-wide .task-header{padding:18px 24px 10px}.bridge-wide .task-header .game-instruction{margin:4px 0}.bridge-wide .task-header h1.game-question{font-size:24px;line-height:1.45;padding:12px 18px;margin:6px 0}.bridge-puzzle-scene{padding:16px 18px 20px;background:linear-gradient(#e7f3da,#f5efd5);border:2px solid #bfd3a4;border-radius:22px;margin:0 14px 18px}.bridge-puzzle-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:3px 8px 13px}.bridge-puzzle-top h2{margin:0 0 4px;font-size:23px}.bridge-puzzle-top p{margin:0;font-size:16px;line-height:1.6}.bridge-materials{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}.bridge-materials>span{background:#fff;border-radius:12px;padding:9px 12px;font-weight:800;white-space:nowrap;border:1px solid #bfd3b5}.bridge-materials>.stone-stock{background:#e4edf2;border-color:#899ea9;color:#294b60}.bridge-map-viewport{overflow-x:auto;overflow-y:hidden;max-width:100%;border-radius:20px;border:3px solid #5c8b76;overscroll-behavior-x:contain;background:#9fcda1;scrollbar-color:#427761 #d8edda;scrollbar-width:thin}.bridge-map-viewport:focus-visible{outline:4px solid #8953a0;outline-offset:2px}.bridge-river-world{--bank:92px;display:grid;grid-template-columns:var(--bank) minmax(0,1fr) var(--bank);min-width:calc(var(--bridge-cols)*50px + 2*var(--bank) + 18px);position:relative;isolation:isolate;padding:14px 0;background:linear-gradient(#d9efbecc,#9dcc83e6),url(assets/scenes/bridge-canyon.webp) center 50%/cover}.bridge-bank{position:relative;background:linear-gradient(90deg,#abcf81cc,#e3ecc195);min-width:0}.bridge-right-bank{background:linear-gradient(90deg,#e3ecc195,#abcf81cc)}.bridge-bank-label{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#f9ffd4d9;padding:4px 8px;border-radius:10px;font-weight:800;font-size:14px;z-index:4}.bridge-finish-flag{position:absolute;left:50%;transform:translate(-50%,-80%);color:#3f713a;font-size:48px;text-shadow:2px 2px white;z-index:4}.bridge-map-grid{display:grid;grid-template-columns:repeat(var(--bridge-cols),minmax(0,1fr));grid-auto-rows:clamp(54px,7vw,88px);gap:2px;padding:4px;background:linear-gradient(135deg,#75c7d6,#51b2d1);border-left:5px solid #709777;border-right:5px solid #709777;box-shadow:inset 0 0 20px #2589b677}.bridge-cell{position:relative;min-height:44px;min-width:0;padding:0;background:#cdeff146;border:1px dashed #297e9894;border-radius:7px;box-shadow:none;overflow:hidden;display:grid;place-items:center;user-select:none;touch-action:pan-x pan-y}.bridge-cell:disabled{opacity:1;cursor:default}.bridge-cell.bridge-filled{touch-action:none;cursor:grab}.bridge-cell.bridge-filled:active{cursor:grabbing;transform:none}.bridge-cell:not(:disabled):hover{background:#eaf8e8a8}.bridge-cell:focus-visible{outline:4px solid #894f99;outline-offset:-4px;z-index:5}.bridge-cell>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.bridge-tile-art{display:block;pointer-events:none}.rock-shape{color:#727d85;text-shadow:3px 3px #405a65,-3px -3px #c0d1d2;font-size:clamp(32px,4.5vw,60px)}.bridge-rock{background:#a4d3cd;border-style:solid}.rapid-waves{color:#f4ffff;font-size:clamp(39px,5vw,70px);position:absolute;inset:0;display:grid;place-items:center;text-shadow:2px 3px #288fae;line-height:1;pointer-events:none;z-index:1}.bridge-rapid{background:repeating-linear-gradient(165deg,#1986b15c 0 10px,#8bdfeb82 11px 15px);border-color:#126f96}.island-star{position:absolute;top:3px;right:3px;background:#fff3a4;color:#a0770d;border:2px solid #b0b75b;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:20px;z-index:3;pointer-events:none}.bridge-fixed-mark{position:absolute;left:1px;top:1px;font-size:12px;background:#fff2c5;color:#416041;line-height:1.2;border-radius:4px;padding:2px;z-index:3}.bridge-route{background:#d0ed8d8c;box-shadow:inset 0 0 0 2px #58a450}.bridge-walker{position:absolute;z-index:8;pointer-events:none;width:94px;height:100px;transform:translate(-50%,-62%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;filter:drop-shadow(0 4px 2px #264c4044)}.bridge-walker>svg{width:100%;height:86px;overflow:visible}.bridge-walker>span{font-size:13px;font-weight:800;background:#fffadced;border-radius:8px;padding:1px 7px;line-height:1.3;color:#28533c}.bridge-walking>span{display:none}.bridge-pan-controls{display:none;gap:9px;align-items:center;justify-content:space-between;margin-top:8px}.bridge-can-pan .bridge-pan-controls{display:flex}.bridge-pan-controls>span{font-size:13px;color:#476655;text-align:center}.bridge-pan-controls button{min-height:44px;padding:5px 9px;font-size:14px;border-radius:12px;white-space:nowrap}.bridge-toolbox{display:flex;justify-content:center;gap:13px;flex-wrap:wrap;margin:16px 0 8px}.bridge-supply{display:flex;align-items:center;justify-content:center;gap:9px;min-height:72px;padding:9px 16px;background:#fffdf3;border:3px solid #bdd0bd;border-radius:18px;font-weight:800;font-size:17px;touch-action:none;user-select:none;cursor:grab}.bridge-supply:active{transform:none;cursor:grabbing}.bridge-supply.selected{border-color:#146755;background:#f4fbd4;box-shadow:0 0 0 2px #b0d391}.bridge-supply-preview{display:block;width:52px;height:52px;pointer-events:none}.bridge-supply-preview>svg{width:100%;height:100%}.bridge-tool-instruction{text-align:center;line-height:1.65;margin:10px 0 13px;font-size:16px;font-weight:700}.bridge-tool-instruction>span{font-size:14px;font-weight:400;color:#4b6b5a}.bridge-puzzle-scene .check-row{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:10px}.bridge-drop-hover{outline:4px solid #fff7a2!important;outline-offset:-4px;background:#c3edaf!important}.bridge-drop-blocked{outline:3px dashed #a4533d!important;outline-offset:-3px}.bridge-drag-origin{opacity:.45!important}.bridge-drag-ghost{position:fixed;z-index:3000;pointer-events:none;width:80px;height:80px;transform:translate(-50%,-50%);background:#fdfbe9e8;border:3px solid #166c51;border-radius:12px;box-shadow:0 8px 25px #173e3955;padding:7px}.bridge-drag-ghost>svg{width:100%;height:100%}.bridge-drag-ghost>span{position:absolute;left:50%;top:100%;transform:translateX(-50%);padding:3px 8px;border-radius:8px;white-space:nowrap;background:#134e3ee8;color:white;font-size:14px}.bridge-return-hover{border-color:#ae6941;background:#fff1dd}.bridge-puzzle-scene>.crossing-banner{position:static;padding:16px 10px;margin:12px 0 0;background:#f4ffd7;border-radius:14px;text-align:center;font-weight:800}.bridge-walk-skip,.bridge-walk-replay{display:block;margin:10px auto 0}.bridge-puzzle-scene:not([data-crossing=walking]) .bridge-walk-skip{display:none}.bridge-puzzle-scene:not([data-crossing=done]) .bridge-walk-replay{display:none}.bridge-puzzle-scene:is([data-crossing=pending],[data-crossing=walking])~.success{display:none}.bridge-puzzle-scene[data-crossing=done] .bridge-walker{filter:drop-shadow(0 3px 2px #385e3e55)}
@media(max-width:600px){#app.bridge-wide{padding-left:7px;padding-right:7px}.bridge-wide .task-header{padding:12px 12px 8px;gap:4px}.bridge-wide .task-header .game-instruction{font-size:14px}.bridge-wide .task-header h1.game-question{font-size:19px;line-height:1.4;padding:9px 11px;margin:4px 0}.bridge-wide .task-header .listen{min-height:42px;padding:7px 12px}.bridge-puzzle-scene{padding:10px 5px 16px;margin:0 3px 12px;border-radius:16px}.bridge-puzzle-top{align-items:flex-start;gap:8px;padding:0 6px 10px;flex-wrap:wrap}.bridge-puzzle-top h2{font-size:20px}.bridge-puzzle-top p{font-size:15px}.bridge-materials{gap:6px;flex-shrink:1}.bridge-materials>span{font-size:14px;padding:5px 9px}.bridge-river-world{--bank:64px;padding:10px 0}.bridge-map-grid{grid-auto-rows:54px;border-left-width:3px;border-right-width:3px;padding:3px}.bridge-map-viewport{border-width:2px;border-radius:13px}.bridge-bank-label{font-size:12px;padding:3px 6px;bottom:3px}.bridge-walker{width:73px;height:80px}.bridge-walker>svg{height:70px}.bridge-walker>span{font-size:12px}.bridge-finish-flag{font-size:39px}.island-star{width:22px;height:22px;font-size:17px;right:1px;top:1px}.bridge-toolbox{gap:7px;margin-top:12px}.bridge-supply{padding:7px 9px;gap:7px;font-size:15px;min-height:62px;border-width:2px;flex:0 1 calc(50% - 8px)}.bridge-supply-preview{width:42px;height:42px;flex:none}.bridge-tool-instruction{font-size:14px;padding:0 4px}.bridge-tool-instruction>span{font-size:13px}.bridge-puzzle-scene .check-row{gap:8px}.bridge-puzzle-scene .check-row button{min-height:48px;font-size:15px;padding:10px 12px}.bridge-wide .hint-row .feedback{font-size:16px}.bridge-wide .game-controls{padding:0 7px}.bridge-drag-ghost{width:70px;height:70px}}

/* Star islands are full-cell, four-way ground connections, never bridge sockets. */
.bridge-cell.bridge-island{background:#87b55c;border:2px solid #47753c;border-radius:12px}.bridge-island .island-star{inset:0;width:100%;height:100%;border:0;border-radius:0;background:none;display:block}.island-star>svg{display:block;width:100%;height:100%}.bridge-island.energy-collected{box-shadow:inset 0 0 0 3px #fff6a3,0 0 8px #ffe264}.bridge-island.energy-collected .island-star>svg{filter:brightness(1.12)}.bridge-island.energy-collected:after{content:"✓";position:absolute;right:1px;bottom:1px;z-index:4;color:#164d31;background:#fff7b0;border-radius:50%;font-size:15px;font-weight:900;width:20px;height:20px;line-height:20px}.bridge-energy-count{color:#765513}.crossing-banner[hidden]{display:none!important}
