*{box-sizing:border-box}html{color:#183a3d;background:#ddf3f6;font:16px/1.45 ui-rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:#fffdf6;border:1px solid #b1c6bd;border-radius:13px;min-width:44px;min-height:44px;padding:9px 14px;font-weight:650}button:hover:not(:disabled){background:#e5eee2}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #286b65}.primary{color:#fffdf6;background:#286b65;border-color:#286b65}.primary:hover:not(:disabled){background:#205650}#app{max-width:780px;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));min-height:100dvh;margin:auto}.game{background:#fffdf6;border:1px solid #c0d9d2;border-radius:24px;padding:18px;box-shadow:0 12px 40px #397d9410}.top{justify-content:space-between;align-items:center;gap:8px;display:flex}.top h1{margin:0;font-size:20px;line-height:1.2}.sub{color:#49625d;font-size:14px}.icon{vertical-align:middle;width:20px;height:20px}.iconbutton{padding:8px 12px}.stats{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;margin:10px 0 6px;font-size:14px;display:flex}.tides{gap:6px;min-height:40px;display:flex}.tide{background:#e9f0e4;border-radius:10px;flex:1;padding:6px 10px;font-size:14px}.tide.past{color:#49625d;background:#edf2f1}.tide.soon{outline:2px dashed #8a491b}.board{--cols:7;grid-template-columns:repeat(var(--cols),1fr);width:min(100%,504px,100dvh - 285px);aspect-ratio:var(--ratio);isolation:isolate;background:#c7e7e9;border-radius:18px;margin:12px auto 6px;padding:4px;display:grid}.cell{aspect-ratio:1;cursor:default;border:0;border-radius:8px;min-width:0;min-height:0;padding:0;position:relative;background:0 0!important}.cell:disabled{opacity:1}.cell img{pointer-events:none;object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.cell .actor{z-index:4;animation:.15s ease-out arrive;transform:translateY(-12%)}.cell.available{cursor:pointer}.cell.available:after{content:"";border:1px solid #286b6580;border-radius:6px;position:absolute;inset:10%}.cell.flood:before{content:"";z-index:2;background:#397d9420;border:2px dashed #8a491b;border-radius:6px;position:absolute;inset:12%}.cell.hinted:after{content:"";z-index:5;border:3px solid #286b65;border-radius:8px;position:absolute;inset:5%}.board.busy .actor{animation:.15s ease-out arrive}.board.flooding{animation:.3s ease-out wave}.board .void{visibility:hidden}.instruction{text-align:center;max-width:540px;min-height:40px;margin:4px auto 8px;font-size:14px}.tools{gap:8px;display:flex}.tools button{flex:1;padding:8px}.pad{grid-template-rows:repeat(2,44px);grid-template-columns:repeat(3,44px);gap:4px;width:max-content;margin:10px auto 0;display:grid}.pad button{padding:0}.up{grid-column:2}.left{grid-column:1}.down{grid-column:2}.right{grid-column:3}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.notice{color:#804019;padding:6px 0;font-size:14px}.panel{background:#e9f0e4;border-radius:15px;margin:12px 0;padding:14px}.panel h2{margin:0 0 6px;font-size:20px}.panel p{margin:6px 0 10px;font-size:14px}.panel button{margin:3px}.overlay{z-index:20;background:#183a3d65;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.dialog{background:#fffdf6;border-radius:20px;width:min(100%,460px);max-height:90dvh;padding:22px;overflow:auto;box-shadow:0 20px 70px #183a3d40}.dialog h2{margin:0 0 10px}.dialog button{margin:4px}.setting{justify-content:space-between;align-items:center;margin:12px 0;display:flex}.setting button{min-width:85px}.intro{text-align:center;padding:12px 0}.hero{object-fit:contain;width:100%;height:clamp(160px,30vh,300px)}.intro h1{margin:4px 0;font-size:40px}.intro p{margin:4px 0 20px}.intro button{width:min(100%,340px);margin:10px auto;display:block}.level-grid{grid-template-columns:repeat(5,1fr);gap:10px;margin:12px 0 24px;display:grid}.level-grid button{min-height:58px}.level-grid small{font-size:12px;display:block}.chapter{margin:20px 0 4px;font-size:16px}.endnote{text-align:center;color:#49625d;font-size:13px}.link{color:#286b65}.toast{text-align:center;min-height:20px;font-size:14px}.help{font-size:14px;line-height:1.6}.broken{border:2px solid #8a491b}.still .actor,.still .flooding{animation:none}@keyframes arrive{0%{transform:translateY(-20%)}to{transform:translateY(-12%)}}@keyframes wave{50%{background:#90ccd4}}@media (width<=600px){#app{padding:8px 10px}.game{border-radius:18px;padding:10px}.top h1{font-size:18px}.board{width:min(100%,100dvh - 282px);max-width:420px;margin-top:8px}.tide{padding:5px 7px;font-size:14px}.instruction{min-height:38px;margin:4px auto 6px}.pad{margin-top:6px}.level-grid{grid-template-columns:repeat(4,1fr)}.stats{margin:6px 0}.tools button{font-size:14px}.intro h1{font-size:34px}}.pad .up{grid-row:1}.pad .left,.pad .down,.pad .right{grid-row:2}.toast{margin:4px 0 0}.toast:empty{display:none}@media (width<=600px){.board{width:min(100%,420px,100dvh - 372px)}.tools .icon{display:none}.tools button{white-space:nowrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}#app{--board-min:180px;flex-direction:column;padding:8px;display:flex}.game{border:0;border-radius:18px;padding:10px}.game.playing{flex-direction:column;min-height:calc(100dvh - 16px);display:flex}.board{width:min(100%,504px);min-width:var(--board-min);flex-shrink:0;gap:0;margin:6px auto 0;padding:0}.stats{margin:4px 0;font-size:14px;line-height:1.3}.tides{min-height:0}.tide{padding:4px 6px;font-size:14px;line-height:1.3}.board-note{justify-content:space-between;align-items:center;gap:6px;min-height:44px;margin:4px 0;display:flex}.board-note>span{max-height:36px;font-size:13px;line-height:18px;overflow:auto}.board-note>button{white-space:nowrap;padding:4px 8px;font-size:13px}.tools{gap:6px;margin-top:auto}.tools button{white-space:nowrap;height:44px;padding:6px}.tools .icon{display:none}.pad{gap:6px;width:100%;height:44px;margin:6px 0 0;display:flex}.pad button{flex:1}.hidden{display:none!important}.wood-label{z-index:6;color:#183a3d;text-align:center;pointer-events:none;background:#fffdf6;border:1px solid #286b6530;border-radius:4px;min-width:16px;font-size:14px;line-height:17px;position:absolute;top:1px;right:1px}.chapter-controls{align-items:center;gap:6px;margin:20px 0;display:flex}.chapter-controls select{color:#183a3d;min-width:0;min-height:44px;font:inherit;background:#fffdf6;border:1px solid #b1c6bd;border-radius:12px;flex:1;padding:8px}.level-grid{grid-template-columns:repeat(5,1fr);gap:6px}.level-grid button{min-width:0;padding:8px 2px}.level-grid button[aria-disabled=true]{color:#52645f;background:#e9edeb}.notice{margin:4px 0;font-size:12px}.toast{font-size:12px;line-height:16px}@media (width>=600px){#app{padding:16px}.game{padding:18px}.game.playing{min-height:calc(100dvh - 32px)}.board{width:min(100%,504px,max(var(--board-min),calc(100dvh - 280px)))}}.area-controls{align-items:center;gap:4px;margin:4px 0;font-size:12px;display:flex}.area-controls>span{text-align:center;flex:1}.area-controls button{min-width:36px;padding:4px 6px;font-size:12px}.wood-label{font-size:11px}.multi-area .stats,.multi-area .tides{display:none}.area-controls button{min-width:44px}.area-controls span{line-height:16px}
