.game[data-scene=missing] .stage{border-top-color:#98744e;background:linear-gradient(160deg,#fffdf5,#f3efe3)}
.boat-repair{overflow:hidden;margin:1rem 0 .7rem;border:1px solid #acbba9;border-radius:18px;background:#dce8dc;box-shadow:0 4px 0 #d2d9c7}
.boat-repair-photos{position:relative;overflow:hidden;aspect-ratio:3/2;background:#b5d4cc}
.boat-repair-canvas{position:absolute;top:0;left:-58%;width:200%;height:100%}
.boat-repair-photo{display:block;width:100%;height:100%;object-fit:cover}
.boat-patch{position:absolute;z-index:2;width:7.2%;height:auto;opacity:0;transform:translate(-50%,-50%) rotate(var(--patch-angle,0deg));filter:drop-shadow(0 2px 2px #36231380);pointer-events:none}
.boat-patch.is-applied{opacity:1}
.boat-patch.is-new{z-index:2;animation:boat-patch-fits 2.15s ease-in-out both}
.boat-patch--1{left:50.72%;top:55.66%;--patch-angle:0deg}
.boat-patch--2{left:55.37%;top:65.04%;--patch-angle:0deg}
.boat-patch--3{left:63.38%;top:61.62%;--patch-angle:0deg}
.boat-patch--4{left:68.42%;top:57.42%;--patch-angle:0deg}
.boat-damage,.boat-mission-damage{position:absolute;z-index:1;width:5.6%;aspect-ratio:3.4/1;transform:translate(-50%,-50%) rotate(-3deg);background:linear-gradient(174deg,#c28a50 0%,#5e3218 20%,#130e0a 37%,#090908 55%,#51280f 76%,#e0a460 100%);clip-path:polygon(0 50%,12% 39%,19% 14%,27% 33%,40% 12%,48% 29%,64% 15%,73% 33%,84% 17%,100% 47%,88% 59%,80% 84%,69% 64%,58% 85%,47% 68%,34% 87%,24% 66%,14% 83%);filter:drop-shadow(0 1px 1px #140d08);pointer-events:none}
.boat-damage.boat-patch--2,.boat-mission-damage.boat-patch--2{transform:translate(-50%,-50%) rotate(4deg)}
.boat-damage.boat-patch--3,.boat-mission-damage.boat-patch--3{transform:translate(-50%,-50%) rotate(-5deg)}
.boat-damage.boat-patch--4,.boat-mission-damage.boat-patch--4{transform:translate(-50%,-50%) rotate(3deg)}
.boat-damage.is-sealed{opacity:0}
.boat-damage.is-newly-sealed{animation:boat-damage-seals 2.15s steps(1,end) both}
.mission-dialog[data-scene=boat] .mission-dialog__media>img{height:auto;aspect-ratio:3/1}
.boat-mission-patch{position:absolute;z-index:2;width:7.2%;aspect-ratio:300/130;background:url('/assets/lighthouse/boat-wood-patch-v1.png') center/contain no-repeat;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 2px #36231380);pointer-events:none}
.repair-just-done .boat-repair-canvas{transform-origin:var(--repair-focus-x) var(--repair-focus-y);animation:boat-focus-repair 3.2s ease-in-out both}
.boat-repair-burst{position:absolute;z-index:3;width:7%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.boat-repair-burst::before{content:'';position:absolute;inset:0;border:3px solid #fff2a8;border-radius:50%;box-shadow:0 0 12px #ffdf6e;opacity:0;animation:boat-repair-ring 1.3s ease-out 1.25s both}
.boat-repair-burst i{position:absolute;left:50%;top:50%;color:#fff3a9;font:normal 700 clamp(14px,3vw,25px)/1 system-ui;text-shadow:0 1px 3px #b6751d,0 0 10px #ffc447;opacity:0;animation:boat-repair-sparkle 1.4s ease-out 1.25s both}
.boat-repair-burst i:nth-child(1){--spark-x:-200%;--spark-y:-180%}
.boat-repair-burst i:nth-child(2){--spark-x:130%;--spark-y:-160%}
.boat-repair-burst i:nth-child(3){--spark-x:-170%;--spark-y:110%}
.boat-repair-burst i:nth-child(4){--spark-x:150%;--spark-y:100%}
.boat-repair-caption{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;padding:.75rem .95rem;background:#fffaf0;color:#526353;font-size:.83rem}
.boat-repair-progress{display:grid;gap:.4rem;min-width:0}
.boat-repair-progress:focus-visible{outline:3px solid #b47a27;outline-offset:4px;border-radius:4px}
.boat-repair-status{font-weight:800}
.boat-repair-marks{display:flex;gap:5px}
.boat-repair-mark{width:30px;height:9px;border:1px solid #c9b48d;border-radius:4px;background:#e9dfcb}
.boat-repair-mark.is-done{border-color:#9b6d37;background:linear-gradient(15deg,#a87943,#dfb779);box-shadow:inset 0 1px #f8e2b5}
.boat-repair-piece{display:inline-flex;align-items:center;gap:.5rem}
.boat-repair-piece .boat-value{display:inline-grid;place-items:center;min-width:1.9rem;min-height:1.9rem;padding:.15rem .3rem;border:1px solid #b58d50;border-radius:6px;background:linear-gradient(#f3dbac,#dfba7e);color:#664920;font:800 1rem/1 system-ui}
.stage .boat-repair-instruction{margin:.7rem 0;color:#48564b;font-size:1rem;line-height:1.5}
.boat-complete .boat-repair-status{color:#246642}
.boat-complete .boat-repair{border-color:#6fa783;box-shadow:0 4px 0 #bdd8be,0 0 25px #f6d88566}
.boat-complete [hidden]{display:none!important}
.boat-celebration{text-align:center;padding:1rem .8rem .7rem}
.boat-celebration .boat-complete-kicker{margin:0;color:#997126;text-transform:uppercase;font-size:.75rem;font-weight:850;letter-spacing:.08em}
.boat-celebration h4{margin:.45rem 0;font:700 clamp(1.6rem,4vw,2.2rem)/1.12 Georgia,serif;color:#594525}
.boat-celebration>p:not(.boat-complete-kicker){max-width:30rem;margin:.75rem auto 1.2rem;color:#5d5945;line-height:1.5}
@keyframes boat-focus-repair{0%{transform:scale(1)}20%,74%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes boat-damage-seals{0%,64%{opacity:1}65%,100%{opacity:0}}
@keyframes boat-patch-fits{0%,8%{opacity:0;transform:translate(-180%,-700%) rotate(-14deg) scale(2)}20%{opacity:1}65%{opacity:1;transform:translate(-50%,-45%) rotate(2deg) scale(1.12)}78%{transform:translate(-50%,-50%) rotate(0) scale(1)}88%{transform:translate(-50%,-50%) rotate(0) scale(1.07)}100%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}}
@keyframes boat-repair-ring{0%{opacity:0;transform:scale(.35)}20%{opacity:1}100%{opacity:0;transform:scale(1.8)}}
@keyframes boat-repair-sparkle{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:1}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) scale(1.2)}}
@media(max-width:390px){.boat-repair-caption{padding:.65rem .7rem;gap:.55rem;font-size:.76rem}.boat-repair{border-radius:13px}.boat-repair-mark{width:25px}}
@media(prefers-reduced-motion:reduce){.boat-patch.is-new,.boat-damage.is-newly-sealed,.repair-just-done .boat-repair-canvas{animation:none}.boat-repair-burst{display:none}}
