:root{--paper:#f7efe0;--paper-2:#ede2cd;--ink:#22283d;--ink-soft:#5a6180;--star:#ffc94d;--hud-bg:#0e1a2cd1;--hud-edge:#ffffff47;--hud-ink:#fff;--sai-left:env(safe-area-inset-left,0px)}*{box-sizing:border-box}html,body{color:#fff;-webkit-tap-highlight-color:transparent;height:100%;background:#1d4e6b;height:100dvh;margin:0;font-family:Be Vietnam Pro,system-ui,sans-serif;overflow:hidden}h2,h4{margin:0;font-family:"Baloo 2",Be Vietnam Pro,system-ui,sans-serif;font-weight:700;line-height:1.15}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:0}:focus-visible{outline:3px solid var(--star);outline-offset:2px;border-radius:8px}canvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}#loading{z-index:50;text-align:center;background:#1d4e6b;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;transition:opacity .3s;display:flex;position:fixed;inset:0}#loading.hide{opacity:0;pointer-events:none}#loadingText{color:#fff;max-width:280px;margin:0;font-family:"Baloo 2",Be Vietnam Pro,system-ui,sans-serif;font-size:18px;font-weight:700}#loadingMascot{width:72px;height:72px}#loading:not(.hide) #loadingMascot{animation:1.4s ease-in-out infinite ldbob}@keyframes ldbob{50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){#loading:not(.hide) #loadingMascot{animation:none}}#loadingBar{background:#ffffff2e;border-radius:999px;width:min(60vw,260px);height:8px;overflow:hidden}#loadingBar i{background:var(--star);width:0;height:100%;transition:width .15s linear;display:block}#loadingBar.indeterminate i{width:35%}#loading:not(.hide) #loadingBar.indeterminate i{animation:1.1s ease-in-out infinite alternate ldslide}@keyframes ldslide{0%{transform:translate(-40%)}to{transform:translate(230%)}}#loadRetry{background:var(--star);color:#2a1e00;border-radius:999px;padding:12px 24px;font-family:"Baloo 2",system-ui,sans-serif;font-size:16px;font-weight:700}.hud,.hud button,#actBtn,.finale,.choiceBtn,.wavesQuit,.seg button,.sw{touch-action:manipulation}.hud{pointer-events:none;padding:13px 16px;padding-top:calc(13px + env(safe-area-inset-top));padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right));background:linear-gradient(#081422a8,#0000);flex-wrap:wrap;align-items:center;gap:12px;display:flex;position:fixed;top:0;left:0;right:0}body.darkIsle .hud{background:0 0}.hud h2{white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;min-width:0;font-size:17px;display:flex;overflow:visible}.hud #hudIntroBtn{width:auto;min-width:0;max-width:100%;height:44px;font:inherit;color:inherit;text-align:left;background:0 0;border:0;border-radius:12px;flex:0 auto;align-items:center;gap:8px;margin:-12px 0;padding:0 8px 0 0;display:inline-flex}.hud #hudIntroBtn:disabled{pointer-events:none;cursor:default;color:inherit}.hud #hudIntroBtn:disabled .hudIc{display:none}#hudName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.hudIc{opacity:.85;flex:none;width:20px;height:20px}@media (max-width:419px){body:not(.demoPill) .hud{grid-template-columns:minmax(0,1fr) 44px 44px;row-gap:8px;display:grid}body:not(.demoPill) .hud h2{grid-area:1/1}body:not(.demoPill) #chartBtn{grid-area:1/2}body:not(.demoPill) #settingsBtn{grid-area:1/3}body:not(.demoPill) .hud .count{grid-area:2/1/3/4;justify-content:center;justify-self:end;min-width:100px}body.introOn:not(.demoPill) .hud .count{visibility:hidden}}.hud .count{width:auto;color:var(--star);border-radius:999px;align-items:center;gap:7px;padding:5px 13px;font-size:14px;font-weight:600;display:flex}.hud button{pointer-events:auto;background:var(--hud-bg);border:1px solid var(--hud-edge);width:44px;height:44px;color:var(--hud-ink);border-radius:50%;flex:none;place-items:center;font-size:20px;display:grid}#settingsBtn svg,#chartBtn svg{width:22px;height:22px}.hud .count svg{flex:none;width:14px;height:14px}.tip{top:calc(62px + env(safe-area-inset-top));left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);width:-moz-fit-content;width:fit-content;max-width:calc(100vw - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));background:var(--hud-bg);border:1px solid var(--hud-edge);text-align:center;color:var(--hud-ink);pointer-events:none;border-radius:999px;margin:0 auto;padding:5px 10px;font-size:13.5px;transition:opacity .6s;position:fixed}.tip.gone{opacity:0}#handCue{pointer-events:none;z-index:2;width:48px;height:48px;transition:opacity .4s;position:fixed;bottom:26%;left:18%}#handCue svg{opacity:0;width:100%;height:100%;display:block}#handCue:not(.off) svg{animation:1.2s ease-in-out infinite handCue}#handCue.off{opacity:0}body.introOn #handCue svg{animation-play-state:paused}body:has(.guide:not([hidden])) #handCue svg{animation-play-state:paused}body:has(.islandMap) #handCue svg{animation-play-state:paused}body.introOn #handCue{visibility:hidden}body:has(.guide:not([hidden])) #handCue{visibility:hidden}@keyframes handCue{0%{opacity:0;transform:translate(-22px,10px)}25%{opacity:1}75%{opacity:1}to{opacity:0;transform:translate(22px,-14px)}}@media (max-width:419px){.tip{top:calc(118px + env(safe-area-inset-top))}}#actBtn{right:calc(22px + env(safe-area-inset-right));z-index:1;bottom:calc(42px + env(safe-area-inset-bottom));background:var(--star);color:#2a1e00;opacity:0;pointer-events:none;border-radius:50%;place-items:center;width:82px;height:82px;font-family:"Baloo 2",system-ui,sans-serif;font-size:15px;font-weight:700;line-height:1.1;transition:transform .28s cubic-bezier(.34,1.56,.64,1),opacity .18s;display:grid;position:fixed;transform:scale(.5);box-shadow:0 5px 18px #0006}#actBtn.show{opacity:1;pointer-events:auto;transform:scale(1)}#actBtn.show[aria-busy=true],#chartBtn[aria-busy=true],#settingsBtn[aria-busy=true]{opacity:.6}#ovBtn{right:calc(22px + env(safe-area-inset-right));bottom:calc(42px + env(safe-area-inset-bottom));background:var(--hud-bg);border:1px solid var(--hud-edge);min-width:82px;height:44px;color:var(--hud-ink);border-radius:22px;padding:0 14px;font-family:"Baloo 2",system-ui,sans-serif;font-size:14px;font-weight:700;line-height:1;transition:bottom .28s;position:fixed;box-shadow:0 4px 14px #00000059}#ovBtn.on{background:var(--star);color:#2a1e00}body.askOn #ovBtn{bottom:calc(136px + env(safe-area-inset-bottom))}#ovBtn.calm{transition:none}body.darkIsle #ovBtn,body.darkIsle #chartBtn,body.darkIsle .islandMap .close{outline:1px solid #ffffff8c}body.darkIsle #ovBtn:focus-visible,body.darkIsle #chartBtn:focus-visible,body.darkIsle .islandMap .close:focus-visible{outline:3px solid var(--star);outline-offset:2px}.kbhint{left:calc(18px + env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));color:#bfd3e0;pointer-events:none;text-shadow:0 1px 5px #000000a6;font-size:12.5px;position:fixed}body.touch .kbhint{display:none}#world3d{touch-action:none;position:fixed;inset:0}#world3d canvas{display:block}.travelFade{z-index:45;opacity:0;pointer-events:none;background:#1d4e6b;transition:opacity .32s;display:none;position:fixed;inset:0}.travelFade.on{pointer-events:auto;display:block}.travelFade.dark{opacity:1}.bubble{z-index:29;background:var(--paper);max-width:min(80vw,420px);color:var(--ink);text-align:center;opacity:0;pointer-events:none;visibility:hidden;border-radius:20px;margin:0;padding:14px 20px;font-size:16px;font-weight:600;line-height:1.35;transition:opacity .22s,transform .22s,visibility 0s linear .22s;position:fixed;top:32%;left:50%;transform:translate(-50%,-50%)scale(.94);box-shadow:0 8px #22283d38}.bubble.on{opacity:1;visibility:visible;transition-delay:0s;transform:translate(-50%,-50%)scale(1)}body.demo .count,body.crossing .hud,body.crossing .tip,body.crossing .kbhint,body.crossing #actBtn,body.crossing #ovBtn,body.sideIsle #ovBtn{display:none}.choice{z-index:46;opacity:0;background:#060e1a9e;place-items:center;padding:20px;transition:opacity .18s;display:grid;position:fixed;inset:0}.choice.on{opacity:1}.choiceCard{background:var(--paper);width:min(94vw,440px);max-height:86dvh;color:var(--ink);text-align:center;border-radius:26px;padding:24px 22px 20px;transition:transform .22s;overflow-y:auto;transform:translateY(10px);box-shadow:0 12px #22283d3d}.choice.on .choiceCard{transform:translateY(0)}.choiceCard p{margin:0 0 20px;font-family:"Baloo 2",system-ui,sans-serif;font-size:21px;font-weight:700;line-height:1.25}.choiceRow{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.choiceBtn{min-height:56px;color:var(--ink);background:#22283d14;border-radius:18px;flex:140px;padding:14px 18px;font-family:"Baloo 2",system-ui,sans-serif;font-size:16.5px;font-weight:700;line-height:1.15}.choiceBtn.primary{background:var(--star);color:#2a1e00;box-shadow:0 4px #22283d38}.waves{pointer-events:none;z-index:6;position:absolute;inset:0}.wavesHearts{top:calc(10px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));gap:6px;font-style:normal;line-height:1;display:flex;position:absolute}.wavesHearts i{color:#e2574c;text-shadow:0 2px #060e1a47;font-size:26px;font-style:normal;transition:color .18s,transform .18s,opacity .18s}.wavesHearts i.off{color:#8fa3b4;opacity:.55;transform:scale(.72)}.wavesHearts i.pop{animation:.45s ease-out wavesPop}@keyframes wavesPop{0%{opacity:1;transform:scale(1.45)}45%{opacity:.7;transform:scale(.6)}to{opacity:.55;transform:scale(.72)}}@media (prefers-reduced-motion:reduce){.wavesHearts i{transition:none}.wavesHearts i.pop{animation:none}}.wavesDots{left:50%;top:calc(12px + env(safe-area-inset-top));gap:7px;display:flex;position:absolute;transform:translate(-50%)}.wavesDots i{background:#f7efe052;border-radius:50%;width:11px;height:11px;transition:background .2s,transform .2s;box-shadow:0 1px #060e1a40}.wavesDots i.on{background:var(--star);transform:scale(1.22)}.wavesQuit{pointer-events:auto;top:calc(10px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));color:#fff;background:#060e1a57;border-radius:999px;min-width:76px;min-height:48px;padding:0 18px;font-family:"Baloo 2",system-ui,sans-serif;font-size:14.5px;font-weight:700;position:absolute}.wavesCount{color:var(--paper);text-shadow:0 6px #060e1a4d;opacity:0;place-items:center;font-family:"Baloo 2",system-ui,sans-serif;font-size:86px;font-weight:700;display:grid;position:absolute;inset:0}.wavesCount.on{animation:.7s ease-out wavesCount}@keyframes wavesCount{0%{opacity:0;transform:scale(1.5)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@media (prefers-reduced-motion:reduce){.wavesCount.on{opacity:1;animation:none}.wavesDots i{transition:none}}.in{padding:0 22px}.close{float:right;z-index:2;background:#22283d17;border-radius:50%;place-items:center;width:44px;height:44px;margin:4px 4px 0 0;font-size:17px;display:grid;position:sticky;top:0}.fade{pointer-events:none;background:linear-gradient(180deg,#f7efe000,var(--paper) 78%);opacity:0;height:34px;margin-top:-34px;transition:opacity .2s;position:sticky;bottom:0}.finale{z-index:40;text-align:center;background:#060e1ae0;place-items:center;padding:30px;display:none;position:fixed;inset:0;overflow-y:auto}.finale>div{margin:auto}.finale.show{display:grid}.finale h2{margin-bottom:8px;font-size:27px}.finale p{color:#c7d6e6;max-width:320px;margin:0 auto;font-size:15px}.finale button{background:var(--star);color:#2a1e00;border-radius:999px;margin-top:22px;padding:13px 26px;font-family:"Baloo 2",system-ui,sans-serif;font-weight:700}#finaleNext{color:#fff;margin-top:14px}.finaleRow{flex-wrap:wrap;justify-content:center;gap:0 12px;display:flex}.finale.canBoard [data-act=finale-close]{color:#fff;background:#ffffff24}#resetBtn{color:#c7d6e6;background:0 0;border:1.5px solid #c7d6e68c;min-height:44px;margin:48px auto 0;padding:10px 20px;font-size:14px;font-weight:400;display:block}@media (orientation:landscape) and (max-height:519px){#finale{padding:12px 24px}#finale>div{text-align:left;grid-template-columns:minmax(0,320px) auto;gap:0 32px;display:grid}#finale p{margin:0}#finale h2{grid-area:1/1}#finaleBody{grid-area:2/1}#finale #finaleNext{grid-area:3/1;margin-top:10px}.finaleRow{flex-direction:column;grid-area:1/2/3/3;gap:10px}.finaleRow button{margin:0}#resetBtn{grid-area:3/2;margin:24px 0 0}}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}:root{--modal-w:420px;--modal-r:24px;--modal-scrim:#060e1a9e;--modal-scrim-stack:#060e1a4d;--modal-shadow:0 18px 60px #0006}.modalCard{width:min(var(--modal-w),calc(100vw - 24px));max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;background:var(--paper);color:var(--ink);border-radius:var(--modal-r);box-shadow:var(--modal-shadow);flex-direction:column;display:flex;overflow-y:auto}@media (max-height:479.98px){.modalCard:not(.settings){width:100vw;max-width:none;height:100dvh;max-height:none;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-radius:0}}.seg{gap:6px;display:flex}.seg button{background:#22283d12;border-radius:999px;flex:1;min-height:48px;font-weight:700}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.hgrp{grid-template-columns:60px 1fr;align-items:start;gap:0 8px;margin:8px 0 0;display:grid}.hgrp h4{white-space:nowrap;color:var(--ink-soft);margin:0;font-size:15px;line-height:44px}.hsws{flex-wrap:wrap;gap:8px;display:flex}.sw{border:3px solid #0000;border-radius:50%;width:44px;height:44px;padding:0}.sw[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper) inset}:root{--view:phone}@media (min-width:700px) and (min-height:520px){:root{--view:wide}}@media (orientation:landscape) and (max-height:519px){:root{--view:land}body.panelOpen .sv-joy{display:none}}.wavesQuit{background:#0b1220e0;min-height:48px}.exitArrow{z-index:2;color:#fff;pointer-events:none;white-space:nowrap;text-shadow:0 0 3px #0f1522,0 0 3px #0f1522,0 1px 2px #0f1522;align-items:center;gap:4px;padding:2px 4px;font-size:13.5px;font-weight:700;display:flex;position:fixed;top:0;left:0}.exitArrow.flip{flex-direction:row-reverse}.exitArrow[hidden]{display:none}.exitArrow svg{width:30px;height:30px;fill:var(--star);stroke:#0f1522;stroke-width:1.6px;stroke-linejoin:round}body.crossing .exitArrow,body.introOn .exitArrow{display:none}.settings:not(.open),.settingsScrim:not(.open){visibility:hidden;pointer-events:none}
