/* 과학 아틀라스 — 부력 놀이판 (2026-10-01 새로 만듦)
   무대 = 생성 그림(빈 유리 물통) 위에 물 한 겹. 물통 안쪽 자리는 그림에서 잰 값(%)이다.
   tank.webp 를 다른 그림으로 바꾸면 .by-tank 의 네 값을 다시 재야 한다. */
.by-sec{margin:30px 0 0;padding-top:24px;border-top:1px solid var(--ink-3)}
.by-h{font-family:var(--disp);font-weight:700;font-size:19px;margin-bottom:8px}
.by-tip{color:var(--chalk-dim);font-size:14.5px;line-height:1.7;margin-bottom:12px}

.by-stage{position:relative;border-radius:var(--radius);overflow:hidden;background:#b8b4ae;touch-action:none;user-select:none;-webkit-user-select:none}
.by-bg{display:block;width:100%;height:auto;pointer-events:none}
.by-tank{position:absolute;left:23%;width:53.9%;top:24.2%;height:52.2%}
.by-stage.is-drag .by-tank{outline:2px dashed rgba(201,162,39,.7);outline-offset:4px;border-radius:4px}

/* 물 — 물건 위에 얹혀서 잠긴 부분만 푸르게 덮는다 */
.by-water{position:absolute;left:0;right:0;bottom:0;height:46%;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(120,196,214,.42),rgba(70,150,178,.55));
  transition:height .8s cubic-bezier(.3,.7,.3,1),background .9s}
.by-water.is-salt{background:linear-gradient(180deg,rgba(170,214,222,.5),rgba(110,170,190,.62))}
.by-surf{position:absolute;left:0;right:0;top:-3px;height:6px;
  background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(255,255,255,0));animation:by-wave 3.2s ease-in-out infinite}
@keyframes by-wave{0%,100%{transform:translateY(0)}50%{transform:translateY(1.5px)}}
.by-water.is-pour::before{content:"";position:absolute;left:46%;width:8%;top:-60%;height:60%;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.85));filter:blur(2px);animation:by-pour 1s ease-out forwards}
@keyframes by-pour{from{opacity:1}to{opacity:0;transform:translateY(20%)}}

.by-mark{position:absolute;left:-7%;right:-2%;height:0;border-top:2px dashed rgba(27,39,64,.55);z-index:4;pointer-events:none}
.by-mark span{position:absolute;right:101%;top:-9px;white-space:nowrap;font-size:11px;color:#1b2740;background:rgba(237,233,222,.85);padding:1px 6px;border-radius:3px}

.by-thing{position:absolute;z-index:2;cursor:grab;touch-action:none;
  transition:top 1.1s cubic-bezier(.35,.9,.4,1.08),left .3s;filter:drop-shadow(0 3px 4px rgba(0,0,0,.18))}
.by-thing.is-float{animation:by-bob 3s ease-in-out infinite}
.by-thing.is-lifted{opacity:.25}
@keyframes by-bob{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 2px;rotate:.8deg}}

.by-say{position:absolute;left:3%;right:3%;bottom:3%;z-index:6;margin:0;font-size:14.5px;line-height:1.6;color:#1b2740;
  background:rgba(247,244,235,.92);border-radius:8px;padding:9px 13px;box-shadow:0 4px 14px rgba(0,0,0,.12);opacity:0;transform:translateY(6px);transition:.35s;pointer-events:none}
.by-say.on{opacity:1;transform:none}
.by-say:empty{display:none}

/* 물건 선반 */
.by-tray{display:flex;gap:8px;overflow-x:auto;padding:12px 2px 6px;scrollbar-width:thin}
.by-item{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:4px;width:84px;padding:8px 4px 7px;
  background:var(--ink-2);border:1px solid var(--ink-3);border-radius:10px;color:var(--chalk);font-family:inherit;font-size:12.5px;cursor:grab;touch-action:none}
.by-item img{width:62px;height:46px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
.by-item:hover{border-color:var(--brass)}
.by-item.is-used{opacity:.35;cursor:default}
.by-item:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.by-ghost{position:fixed;left:0;top:0;z-index:100;pointer-events:none;filter:drop-shadow(0 10px 14px rgba(0,0,0,.35))}

.by-row{display:flex;align-items:center;gap:12px;margin-top:6px}
.by-reset{background:none;border:1px solid var(--ink-3);color:var(--chalk-dim);border-radius:999px;padding:6px 14px;font-size:13px;font-family:inherit}
.by-reset:hover{color:var(--chalk);border-color:var(--chalk-dim)}
.by-liq{font-size:12.5px;color:var(--cyan)}

/* 배 */
.by-ship{position:absolute;z-index:2;transition:top 1.2s cubic-bezier(.35,.9,.4,1.05)}
.by-ship.is-float{animation:by-bob 3.6s ease-in-out infinite}
.by-ship.is-sunk{transition:top 2.4s cubic-bezier(.5,0,.6,1);rotate:-4deg}
.by-ship > img{display:block;width:100%;height:auto;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.18))}
.by-line{position:absolute;left:5%;right:5%;height:0;border-top:2px solid #C9A227;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.by-line span{position:absolute;left:0;top:-18px;font-size:10.5px;color:#7a5c0e;background:rgba(247,244,235,.85);padding:0 5px;border-radius:3px;font-style:normal}
.by-deck{position:absolute;aspect-ratio:5.39}
.by-crate{position:absolute;width:18%;bottom:0;animation:by-land .45s cubic-bezier(.3,1.5,.5,1)}
.by-crate{transform:translateY(0)}
@keyframes by-land{from{transform:translateY(-120%);opacity:0}to{transform:none;opacity:1}}

@media (max-width:640px){
  .by-say{font-size:13px;padding:7px 10px}
  .by-item{width:72px}
  .by-item img{width:52px;height:40px}
}
@media (prefers-reduced-motion:reduce){
  .by-thing,.by-ship,.by-water{transition:none}
  .by-thing.is-float,.by-ship.is-float,.by-surf{animation:none}
}
