@font-face{font-family:Caprasimo;font-style:normal;font-display:swap;font-weight:400;src:url(./caprasimo-latin-ext-400-normal-8NotPp3s.woff2) format("woff2"),url(./caprasimo-latin-ext-400-normal-8IkORZSg.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caprasimo;font-style:normal;font-display:swap;font-weight:400;src:url(./caprasimo-latin-400-normal-u3avbpQ7.woff2) format("woff2"),url(./caprasimo-latin-400-normal-CPOhBPz8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(./nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(./nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(./nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(./nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-cyrillic-ext-900-normal-BLeVovcl.woff2) format("woff2"),url(./nunito-cyrillic-ext-900-normal-DKFql_-q.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-cyrillic-900-normal-CWPcV0_V.woff2) format("woff2"),url(./nunito-cyrillic-900-normal-Dr1fjxoU.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-vietnamese-900-normal-D6LWQAy_.woff2) format("woff2"),url(./nunito-vietnamese-900-normal-WV2-fBew.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-ext-900-normal-Dllsvgjo.woff2) format("woff2"),url(./nunito-latin-ext-900-normal-CTBZd6bf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-900-normal-BVB1fGs6.woff2) format("woff2"),url(./nunito-latin-900-normal-CVn49sIn.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--cream: #fff4dc;--cream-2: #f6e3bb;--cream-3: #e2c58e;--navy: #1f3f86;--navy-2: #142b61;--red: #e8473c;--red-2: #a8261d;--ink: #23315c;--gold: #f2c14a;--display: "Caprasimo", Georgia, serif;--body: "Nunito", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#5fd0d8}body{font-family:var(--body);color:var(--ink);user-select:none;-webkit-user-select:none;touch-action:none}#app{position:fixed;inset:0}canvas.water,canvas.board{position:fixed;left:0;top:0;display:block}canvas.water{z-index:0}canvas.board{z-index:1;touch-action:none}.hidden{display:none!important}.btn{font-family:var(--display);border:0;cursor:pointer;color:var(--navy);background:var(--cream);border-radius:999px;padding:.55rem 1.3rem;font-size:1.15rem;line-height:1;box-shadow:inset 0 -.28rem 0 var(--cream-3),inset 0 .18rem #ffffffe6,0 .3rem .6rem #0a284647;transition:scale .14s cubic-bezier(.3,1.6,.5,1),filter .12s;scale:1}.btn:hover{filter:brightness(1.05)}.btn.down{scale:.92;transition-duration:.04s;filter:brightness(.96)}.btn:disabled{opacity:.55;cursor:default}.btn.big{font-size:1.5rem;padding:.8rem 2.2rem;background:var(--red);color:#fff7ea;box-shadow:inset 0 -.32rem 0 var(--red-2),inset 0 .2rem #ffffff73,0 .35rem .8rem #500a0a4d;text-shadow:0 .12rem 0 rgba(90,10,10,.45)}.btn.small{font-size:.95rem;padding:.45rem .9rem}.btn.round{width:3.2rem;height:3.2rem;padding:0;display:grid;place-items:center}i[class^=ico-]{display:inline-block;flex:none}.ico-pause{width:1.1rem;height:1.2rem;border-left:.38rem solid var(--navy);border-right:.38rem solid var(--navy);border-radius:.1rem}.ico-back{width:.95rem;height:.95rem;border-left:.34rem solid var(--navy);border-bottom:.34rem solid var(--navy);rotate:45deg;margin-left:.3rem;border-radius:.1rem}.ico-map{width:1.3rem;height:1rem;border:.26rem solid var(--navy);border-radius:.2rem}.ico-token{width:1.15em;height:1.15em;border-radius:50%;background:radial-gradient(circle at 50% 50%,transparent 0 22%,#b8862a 23% 30%,#f5cf63 31% 70%,#b8862a 71% 100%);vertical-align:-.2em;margin-right:.2em;box-shadow:0 .06em .1em #00000040}.ico-tug,.ico-dredge,.ico-key{width:3.2rem;height:2.6rem;background-size:contain;background-repeat:no-repeat;background-position:center}.ico-tug:before,.ico-dredge:before,.ico-key:before{display:block;font-size:2.1rem;line-height:2.6rem;text-align:center}.ico-tug:before{content:"⛴"}.ico-dredge:before{content:"⚓"}.ico-key:before{content:"⚿"}.hud{position:fixed;z-index:5;left:0;right:0;top:0;padding:max(.6rem,env(safe-area-inset-top)) .7rem 0;display:flex;align-items:flex-start;gap:.5rem;pointer-events:none}.hud>*{pointer-events:auto}.plaque.lvl{background:var(--navy);color:var(--cream);font-family:var(--display);font-size:1.15rem;padding:.7rem 1rem;border-radius:1.4rem;box-shadow:0 0 0 .3rem var(--cream),0 .45rem .8rem #0a28464d;margin-top:.3rem;white-space:nowrap}.moves{margin:0 auto;min-width:5.6rem;text-align:center;background:var(--cream);border-radius:2rem;padding:.35rem 1rem .4rem;box-shadow:inset 0 -.3rem 0 var(--cream-3),0 .45rem .9rem #0a28464d;display:flex;flex-direction:column;align-items:center}.moves-n{font-family:var(--display);font-size:2.4rem;line-height:1;color:var(--navy)}.moves-l{font-weight:900;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);opacity:.75}.moves.tick .moves-n{animation:tick .32s cubic-bezier(.3,1.7,.5,1)}.moves.low .moves-n{color:var(--red)}@keyframes tick{0%{scale:1.35}to{scale:1}}.btn.tickets,.btn.tokens{display:flex;align-items:center;gap:.3rem;font-size:1.2rem;padding:.55rem .9rem;margin-top:.3rem;background:var(--navy);color:var(--cream);box-shadow:0 0 0 .3rem var(--cream),0 .45rem .8rem #0a28464d}.offer{position:fixed;z-index:6;left:50%;translate:-50% 0;top:6.6rem;display:flex;align-items:center;gap:.6rem;background:#fff4dcf5;padding:.4rem .5rem .4rem 1rem;border-radius:2rem;box-shadow:0 .4rem .9rem #0a28464d;white-space:nowrap;animation:pop .45s cubic-bezier(.3,1.6,.5,1)}.offer-t{font-weight:900;font-size:.95rem;color:var(--red-2)}@keyframes pop{0%{scale:.6;opacity:0}to{scale:1;opacity:1}}.tray{position:fixed;z-index:5;left:0;right:0;bottom:0;padding:0 .8rem max(.8rem,env(safe-area-inset-bottom));display:flex;justify-content:center;gap:.8rem;pointer-events:none}.btn.helper{pointer-events:auto;position:relative;width:6rem;height:5.2rem;border-radius:1.6rem;padding:0;display:grid;place-items:center}.btn.helper .tag{position:absolute;bottom:-.55rem;left:50%;translate:-50% 0;background:var(--navy);color:var(--cream);font-family:var(--display);font-size:.95rem;padding:.25rem .65rem;border-radius:1rem;box-shadow:0 0 0 .2rem var(--cream);white-space:nowrap}.btn.helper.active{background:#fff;box-shadow:0 0 0 .3rem var(--gold),0 .4rem 1rem #0a284659;scale:1.06}.lesson{position:fixed;z-index:6;left:50%;translate:-50% 0;bottom:7.6rem;max-width:92vw;text-align:center;background:var(--navy);color:var(--cream);font-weight:900;font-size:1.05rem;padding:.6rem 1.2rem;border-radius:1.4rem;box-shadow:0 .4rem .9rem #0a284659;animation:pop .4s cubic-bezier(.3,1.6,.5,1)}.panel{position:fixed;z-index:20;inset:0;display:grid;place-items:center;background:#0c284600;transition:background .3s}.panel.in{background:#0c284659}.card{background:var(--cream);border-radius:2.2rem;padding:1.6rem 1.6rem 1.8rem;min-width:18rem;max-width:92vw;text-align:center;box-shadow:inset 0 -.45rem 0 var(--cream-3),0 1rem 2.4rem #0a284666;translate:0 2rem;opacity:0;transition:translate .4s cubic-bezier(.3,1.5,.5,1),opacity .25s}.panel.in .card{translate:0 0;opacity:1}.card h2{font-family:var(--display);font-weight:400;font-size:2rem;margin:0 0 1rem;color:var(--navy)}.card .why{font-weight:900;font-size:1.1rem;margin:0 0 1.2rem;color:var(--red-2)}.card .row{display:flex;gap:.8rem;justify-content:center;align-items:center}.card .col{display:flex;flex-direction:column;gap:.8rem;align-items:stretch}.stars{display:flex;justify-content:center;gap:.4rem;margin:.2rem 0 1rem}.star{width:4.2rem;height:4.2rem;background:#d9c69c;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.star.on{background:linear-gradient(#ffe57a,#f2b52c);animation:star .5s cubic-bezier(.3,1.8,.5,1) both;animation-delay:calc(.35s + var(--d))}.stars .star:nth-child(2){translate:0 -.6rem}@keyframes star{0%{scale:2.2;opacity:0;rotate:-30deg}to{scale:1;opacity:1;rotate:0deg}}.earn{font-family:var(--display);font-size:1.8rem;color:var(--navy);margin-bottom:1.2rem}.screen{position:fixed;z-index:10;inset:0}.title-screen{display:grid;place-items:center;background:linear-gradient(180deg,#a6ecee26,#2fa9c440)}.title-card{text-align:center}.logo{font-family:var(--display);font-weight:400;font-size:4.2rem;line-height:.95;margin:0 0 2rem;color:#fff7e6;text-shadow:0 .3rem 0 var(--navy),0 .8rem 1.4rem rgba(0,40,80,.35)}.map-screen{background:linear-gradient(#7fdbe0,#3fb4cc);overflow:hidden}.map-top{position:absolute;z-index:2;left:0;right:0;top:0;display:flex;justify-content:space-between;padding:.7rem}.map-scroll{position:absolute;inset:0;overflow-y:auto;padding:5rem 1rem 3rem;touch-action:pan-y}.port{max-width:34rem;margin:0 auto 2rem}.port h2{font-family:var(--display);font-weight:400;color:#fff7e6;text-shadow:0 .2rem 0 var(--navy);text-align:center;font-size:1.8rem;margin:0 0 1rem}.port.shut{opacity:.55}.nodes{display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem}.btn.node{position:relative;width:100%;aspect-ratio:1;padding:0;border-radius:50%;font-size:1.2rem;display:grid;place-items:center}.btn.node.now{background:var(--red);color:#fff;box-shadow:0 0 0 .3rem var(--cream),0 .4rem .9rem #0a284659;animation:breathe 1.6s ease-in-out infinite}.btn.node.later{background:#cfe9ea;color:#7aa}.btn.node .st{position:absolute;bottom:-.2rem;width:1.6rem;height:.5rem;border-radius:.3rem;background:linear-gradient(90deg,#f2b52c calc(var(--n, 1) * 33%),#d9c69c 0)}.btn.node .st.s1{--n: 1}.btn.node .st.s2{--n: 2}.btn.node .st.s3{--n: 3}@keyframes breathe{50%{scale:1.07}}.standin{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#00000073;font-family:system-ui,sans-serif}.standin-box{background:#fff;color:#111;border-radius:12px;padding:18px 22px;min-width:260px;text-align:center}.standin-price{font-size:22px;font-weight:700}.standin-small{font-size:13px;color:#555}.standin-row{display:flex;gap:10px;justify-content:center;margin-top:12px}.standin-row button{font-size:16px;padding:8px 18px}.shop{position:fixed;z-index:30;inset:0;pointer-events:none}.shop .sheet{pointer-events:auto;position:absolute;left:50%;bottom:0;translate:-50% 105%;width:min(100%,46rem);height:min(64vh,40rem);background:var(--cream);border-radius:2rem 2rem 0 0;box-shadow:0 -.6rem 2rem #0a284659;display:flex;flex-direction:column;transition:translate .34s cubic-bezier(.3,1.25,.5,1)}.shop.in .sheet{translate:-50% 0}.sheet-top{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem .4rem}.sheet-top h2{font-family:var(--display);font-weight:400;font-size:1.8rem;color:var(--navy);margin:0}.sheet-top .bal{margin:0}.ico-close{width:1.1rem;height:1.1rem;background:linear-gradient(45deg,transparent 40%,var(--navy) 40% 60%,transparent 60%),linear-gradient(-45deg,transparent 40%,var(--navy) 40% 60%,transparent 60%)}.tabs{display:flex;gap:.4rem;padding:.3rem .8rem .6rem;overflow-x:auto;scrollbar-width:none;flex:none}.btn.tab{font-size:.95rem;padding:.5rem .9rem;flex:none;background:#f1dfb9}.btn.tab.on{background:var(--navy);color:var(--cream);box-shadow:0 .25rem .5rem #0a28464d}.goods{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.6rem,1fr));gap:.8rem;padding:.4rem .9rem 1rem;touch-action:pan-y;align-content:start}.good{background:#fffaf0;border-radius:1.3rem;padding:.7rem .6rem .8rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;box-shadow:inset 0 -.25rem #ecd7ad}.good.trying{box-shadow:0 0 0 .25rem var(--gold),inset 0 -.25rem #ecd7ad}.good .pic{width:100%;aspect-ratio:1.3;border-radius:1rem;background:radial-gradient(circle at 50% 40%,#e7f8f8,#bfe7ea);display:grid;place-items:center;position:relative}.good .name{font-family:var(--display);font-weight:400;font-size:1.05rem;color:var(--navy);line-height:1.1}.good .use{font-weight:800;font-size:.82rem;color:#5a6585;line-height:1.2;min-height:2em}.good .save{font-weight:900;font-size:.8rem;color:#1a8a69}.good .owned{font-family:var(--display);color:#1a8a69}.btn.price{display:flex;flex-direction:column;align-items:center;gap:.05rem;background:var(--red);color:#fff7ea;padding:.4rem 1rem .45rem;box-shadow:inset 0 -.25rem 0 var(--red-2),0 .25rem .5rem #500a0a40}.btn.price b{font-size:1.15rem;line-height:1}.btn.price small{font-family:var(--body);font-weight:900;font-size:.68rem;letter-spacing:.02em}.btn.tokens-price{flex-direction:row;gap:.3rem;background:var(--navy);color:var(--cream);box-shadow:inset 0 -.25rem 0 var(--navy-2)}.btn.ghost{background:transparent;box-shadow:inset 0 0 0 .15rem #d8c08f;font-size:.85rem;padding:.35rem .8rem}.good .amt{position:absolute;bottom:.3rem;font-family:var(--display);color:var(--navy);font-size:1.1rem}.good .pile{font-size:calc(1rem + var(--n) * .45rem)}.good .swatch{width:70%;height:60%;border-radius:50%;box-shadow:inset 0 .3rem .6rem #fff9,0 .3rem .6rem #00000026}.good .have{position:absolute;top:.4rem;right:.5rem;background:var(--navy);color:var(--cream);font-family:var(--display);border-radius:1rem;padding:.1rem .5rem;font-size:.9rem}.fine{text-align:center;font-weight:800;font-size:.8rem;color:#7a8099;margin:0 0 max(.6rem,env(safe-area-inset-bottom))}.swatch[data-water=water_puffin]{background:#4aa8e8}.swatch[data-water=water_salt]{background:#eba0b4}.swatch[data-water=water_key]{background:#7cc7a0}.swatch[data-water=water_frost]{background:#8ad8e4}.swatch[data-water=water_bridge]{background:#5cc28a}.swatch[data-water=water_twin]{background:#2fc6c8}.swatch[data-water=water_tide]{background:#d6a35a}.swatch[data-water=water_grand]{background:#3d6fd6}.glyph{width:60%;height:40%;border-radius:1rem 2rem 2rem 1rem;background:linear-gradient(#fff,#dfe8f2);box-shadow:0 .3rem .5rem #00000026}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;margin-bottom:.8rem}.day{background:#f1dfb9;border-radius:.8rem;padding:.5rem .1rem;font-family:var(--display);font-size:.9rem;color:var(--navy);display:flex;flex-direction:column;align-items:center;gap:.2rem}.day.got{opacity:.45}.day.now{background:var(--gold);box-shadow:0 0 0 .2rem #fff}.plots{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin-bottom:1rem}.plot{background:#f1dfb9;border-radius:1.2rem;padding:.8rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.plot .house{width:4rem;height:3.4rem;background:#d7c39a;clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%);opacity:.5}.plot.built .house{background:linear-gradient(#f2847a 0 40%,#fff1d6 40%);opacity:1}.town-btn{display:block;margin:-.4rem auto 1rem}.hud.enter{animation:from-top .5s cubic-bezier(.3,1.4,.5,1) backwards}.tray.enter{animation:from-bottom .5s cubic-bezier(.3,1.4,.5,1) .08s backwards}@keyframes from-top{0%{translate:0 -120%}to{translate:0 0}}@keyframes from-bottom{0%{translate:0 120%}to{translate:0 0}}.title-screen.out .title-card{animation:lift-away .38s cubic-bezier(.5,0,.8,.4) both}.title-screen.out{animation:fade-out .38s ease both;pointer-events:none}@keyframes lift-away{to{translate:0 -40vh;scale:.8;opacity:0}}@keyframes fade-out{to{opacity:0}}.map-screen.enter{animation:fade-in .32s ease both}.map-screen.enter .port{animation:rise-in .45s cubic-bezier(.3,1.3,.5,1) both}.map-screen.out{animation:fade-out .32s ease both;pointer-events:none}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{translate:0 2rem;opacity:0}}.title-card{animation:rise-in .6s cubic-bezier(.3,1.3,.5,1) both}.title-card{background:#fff4dcf0;border-radius:2.6rem;padding:2rem 2.4rem 2.2rem;box-shadow:inset 0 -.5rem 0 var(--cream-3),0 1rem 2.4rem #0a284659}.title-card .logo{color:var(--navy);text-shadow:0 .25rem 0 #f2c14a;margin-bottom:1.4rem}.tricky-banner{position:fixed;z-index:7;left:50%;top:42%;translate:-50% -50%;font-family:var(--display);font-size:2.4rem;color:#fff4dc;white-space:nowrap;background:var(--red);padding:.6rem 1.6rem;border-radius:2rem;box-shadow:0 0 0 .3rem var(--cream),0 .8rem 1.6rem #500a0a59;pointer-events:none;animation:tricky 2.1s cubic-bezier(.3,1.5,.5,1) both}@keyframes tricky{0%{scale:.3;opacity:0;rotate:-8deg}18%{scale:1.08;opacity:1;rotate:2deg}26%{scale:1;rotate:-2deg}80%{scale:1;opacity:1;translate:-50% -50%}to{scale:.9;opacity:0;translate:-50% -120%}}.btn.node.tricky:after{content:"";position:absolute;top:-.3rem;right:-.2rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--red);box-shadow:0 0 0 .15rem var(--cream)}.map-screen{background:transparent}.map-top{pointer-events:none;align-items:flex-start;gap:.4rem}.map-top>*{pointer-events:auto}.map-scroll{padding:0}.map-world{position:relative;width:min(100%,34rem);margin:0 auto}.route{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.route polyline{fill:none;stroke:#fff4dc;stroke-dasharray:1.2 1.6;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-width:.35rem;opacity:.85}.map-world .btn.node{position:absolute;translate:-50% 50%;width:3.4rem;height:3.4rem;aspect-ratio:auto}.map-world .btn.node.later{background:#d8eef0;color:#7fa7ad;box-shadow:inset 0 -.25rem #b9d8dc,0 .25rem .5rem #0a284633}.island{position:absolute;width:15rem;height:12rem;translate:-50% 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.3rem}.island.l{left:30%}.island.r{left:70%}.island .isle-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.island .isle-shape{position:absolute;inset:1.5rem 1rem 2.6rem;border-radius:50% 46% 52% 48%;background:radial-gradient(circle at 50% 40%,#9edc8a 0 45%,#f3dfa7 47% 70%,#f3dfa700 72%)}.island .isle-art+.isle-shape{display:none}.isle-name{position:relative;font-family:var(--display);font-weight:400;font-size:1.35rem;color:var(--navy);background:var(--cream);padding:.3rem 1rem;border-radius:1.2rem;box-shadow:inset 0 -.2rem 0 var(--cream-3),0 .3rem .6rem #0a28464d;white-space:nowrap}.isle-lock{position:relative;font-weight:900;color:var(--cream);text-shadow:0 .1rem .2rem rgba(0,0,0,.4)}.island.shut{filter:saturate(.4) brightness(.95)}.island .town-btn{position:relative;margin:0}.me{position:absolute;width:3.2rem;height:1.6rem;translate:-50% 50%;border-radius:1rem 2rem 2rem 1rem;background:linear-gradient(#fff,#dfe8f2);box-shadow:0 0 0 .2rem var(--navy),0 .4rem .6rem #00000040;animation:bob 2s ease-in-out infinite;pointer-events:none}@keyframes bob{50%{translate:-50% 30%;rotate:3deg}}.btn.daily{font-size:.95rem;padding:.55rem .9rem;margin-top:.3rem;background:var(--gold);color:var(--navy)}.btn.daily.done{background:#d8eef0;color:#5f8a90}.panel.low{align-items:end;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.panel.low.in{background:#0c28461f}.panel.low .card{translate:0 120%}.panel.low.in .card{translate:0 0}.tray.away{translate:0 130%;transition:translate .35s cubic-bezier(.5,0,.8,.4)}.tray{transition:translate .4s cubic-bezier(.3,1.4,.5,1)}body.wide .hud{left:var(--split);top:calc(var(--town-foot) + .6rem);padding:0 1.4rem;justify-content:center;gap:1rem}body.wide .hud .moves{margin:0 1rem}body.wide .tray{left:var(--split);bottom:1.6rem;gap:1.4rem}body.wide .offer{left:calc(var(--split) + (100vw - var(--split)) / 2);top:calc(var(--town-foot) + 6.8rem)}body.wide .lesson{left:calc(var(--split) + (100vw - var(--split)) / 2);bottom:auto;top:calc(var(--town-foot) * .5);width:max-content;max-width:calc(100vw - var(--split) - 2rem)}body.wide .panel.low{justify-items:end;padding-right:calc((100vw - var(--split) - 22rem) / 2)}body.wide .tricky-banner{left:calc(var(--split) / 2)}.ico-buoy{width:1.6em;height:1.6em;vertical-align:-.45em;margin-right:.25em;animation:buoy 2.4s ease-in-out infinite}@keyframes buoy{50%{rotate:12deg}}.plot img.house{width:6rem;height:5rem;object-fit:contain;filter:grayscale(.85) brightness(1.1);opacity:.45}.plot.built img.house{filter:none;opacity:1;animation:pop .5s cubic-bezier(.3,1.6,.5,1)}.btn.build-offer{display:grid;grid-template-columns:3.2rem 1fr;width:min(100%,19rem);box-sizing:border-box;column-gap:.6rem;row-gap:.3rem;align-items:center;margin:0 auto 1rem;padding:.55rem .8rem .6rem .6rem;border:0;border-image:none;--bw-y: 0px;--bw-x: 0px;border-radius:1.4rem;background:#fffaf0;box-shadow:inset 0 0 0 .15rem #ecd3a6,0 .25rem .5rem #0a284626;font-size:1.05rem;text-align:left;max-width:100%}.btn.build-offer.down{translate:0 .1rem;box-shadow:inset 0 0 0 .15rem #e2c48f,0 .1rem .25rem #0a284626}.btn.build-offer img{grid-row:1 / 3;width:3.2rem;height:3.4rem;object-fit:contain}.btn.build-offer span{align-self:end;text-wrap:balance;line-height:1.12}.btn.build-offer b{align-self:start;justify-self:start;display:flex;align-items:center;background:var(--navy);color:var(--cream);padding:.3rem .6rem;border-radius:1rem;font-weight:400}.built-line{font-family:var(--display);color:#1a8a69;font-size:1.2rem;margin:0 0 1rem;animation:pop .45s cubic-bezier(.3,1.6,.5,1)}.good .ferry-pic{width:80%;height:auto;filter:drop-shadow(0 .3rem .3rem rgba(10,40,70,.25))}.good .set-pic{width:70%;height:80%;object-fit:contain}.good .pack-pic{width:70%;height:78%;object-fit:contain;filter:drop-shadow(0 .3rem .3rem rgba(10,40,70,.25))}i.ico-token{background:url(../art/ui/token.webp) center / contain no-repeat;box-shadow:none;width:1.25em;height:1.25em}.btn{background:none;border-style:solid;--bw-y: 0px;--bw-x: 1.5rem;border-width:round(down,var(--bw-y),1px) round(down,var(--bw-x),1px);border-color:transparent;border-image:url(../art/ui/pill-cream.webp) 0 76 fill / var(--bw-y) var(--bw-x) stretch;box-shadow:none;padding:.7rem .3rem .8rem;filter:drop-shadow(0 .25rem .35rem rgba(10,40,70,.25))}.btn.down{border-image-source:url(../art/ui/pill-cream-down.webp)}.btn.big,.btn.price{border-image-source:url(../art/ui/pill-red.webp);background:none;box-shadow:none;padding:.95rem .6rem 1.05rem}.btn.big.down,.btn.price.down{border-image-source:url(../art/ui/pill-red-down.webp)}.btn.price{padding:.5rem .2rem .55rem}.btn.tab{--bw-x: 1.1rem;padding:.45rem .1rem .55rem;background:none}.btn.tab.on,.btn.tokens-price{border-image-source:url(../art/ui/pill-blue.webp);background:none;box-shadow:none;color:var(--cream)}.btn.round{border:0;border-image:none;--bw-y: 0px;--bw-x: 0px;width:3.4rem;height:3.4rem;padding:0;background:url(../art/ui/round.webp) center / contain no-repeat,url(../art/ui/round-down.webp) center / 0 0 no-repeat}.btn.round.down{background-size:0 0,contain}.btn.ghost{border-image:none;border:0;--bw-y: 0px;--bw-x: 0px;background:none;box-shadow:inset 0 0 0 .15rem #d8c08f;border-radius:1rem;filter:none}i.ico-pause,i.ico-back,i.ico-map,i.ico-close{border:0;rotate:none;margin:0;width:2.1rem;height:2.1rem;background:center / contain no-repeat}i.ico-pause{background-image:url(../art/ui/g-pause.webp)}i.ico-back{background-image:url(../art/ui/g-back.webp)}i.ico-map{background-image:url(../art/ui/g-map.webp)}i.ico-close{background-image:url(../art/ui/g-close.webp)}.plaque.lvl{background:url(../art/ui/cloud-navy.webp) center / contain no-repeat;box-shadow:none;border-radius:0;width:7.8rem;height:4.1rem;padding:0;display:grid;place-items:center;margin-top:0;font-size:1.15rem;padding-bottom:.15rem;filter:drop-shadow(0 .3rem .4rem rgba(10,40,70,.3))}.moves{background:url(../art/ui/cloud-moves.webp) center / contain no-repeat;box-shadow:none;border-radius:0;width:7.2rem;height:3.85rem;padding:.2rem 0 0;justify-content:flex-start;filter:drop-shadow(0 .3rem .4rem rgba(10,40,70,.3))}.moves-n{font-size:2.1rem}.moves-l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.btn.tokens,.btn.tickets{border:0;border-image:none;--bw-y: 0px;--bw-x: 0px;background:url(../art/ui/cloud-navy.webp) center / contain no-repeat;box-shadow:none;width:7.4rem;height:3.9rem;padding:0 0 .15rem;margin-top:0;justify-content:center;font-size:1.25rem}.btn.tokens.down{scale:.92}.btn.helper{border:0;border-image:none;--bw-y: 0px;--bw-x: 0px;background:url(../art/ui/h-plaque.webp) center / contain no-repeat;box-shadow:none;width:6.6rem;height:5.1rem;border-radius:0}.btn.helper.active{background-color:transparent;box-shadow:none;filter:drop-shadow(0 0 .5rem #ffe27a) drop-shadow(0 .3rem .4rem rgba(10,40,70,.3))}i.ico-tug,i.ico-dredge,i.ico-key{width:4.6rem;height:3.3rem;margin-top:-.4rem;background:center / contain no-repeat}i.ico-tug:before,i.ico-dredge:before,i.ico-key:before{content:none}i.ico-tug{background-image:url(../art/ui/h-tug.webp)}i.ico-dredge{background-image:url(../art/ui/h-dredge.webp)}i.ico-key{background-image:url(../art/ui/h-key.webp)}.btn.helper .tag{background:url(../art/ui/tag.webp) center / 100% 100% no-repeat;box-shadow:none;padding:.3rem .85rem .35rem;bottom:-.35rem}.card{background:none;border-style:solid;border-color:transparent;--bw-y: 2.2rem;--bw-x: 2.2rem;border-width:round(down,var(--bw-y),1px) round(down,var(--bw-x),1px);border-image:url(../art/ui/panel.webp) 140 fill / var(--bw-y) var(--bw-x) stretch;box-shadow:none;padding:.4rem .6rem .6rem;filter:drop-shadow(0 .8rem 1.2rem rgba(10,40,70,.35))}.card h2{display:inline-block;color:var(--cream);font-size:1.7rem;margin:-.6rem 0 .9rem;padding:.55rem .4rem .7rem;border-style:solid;border-color:transparent;--bw-y: 0px;--bw-x: 2.8rem;border-width:round(down,var(--bw-y),1px) round(down,var(--bw-x),1px);border-image:url(../art/ui/ribbon.webp) 0 260 fill / var(--bw-y) var(--bw-x) stretch;white-space:nowrap}.star{clip-path:none;background:url(../art/ui/star-off.webp) center / contain no-repeat}.star.on{background:url(../art/ui/star-on.webp) center / contain no-repeat}.shop .sheet{background:none;border-style:solid;border-color:transparent;--bw-y: 2rem;--bw-x: 2rem;border-width:round(down,var(--bw-y),1px) round(down,var(--bw-x),1px) 0;border-image:url(../art/ui/panel.webp) 140 140 0 fill / var(--bw-y) var(--bw-x) 0 stretch;box-shadow:none;filter:drop-shadow(0 -.4rem 1rem rgba(10,40,70,.3))}.sheet-top{padding-top:0}.map-world .btn.node,.map-world .btn.node.done,.map-world .btn.node.now,.map-world .btn.node.later{border:0;border-image:none;--bw-y: 0px;--bw-x: 0px;box-shadow:none;filter:drop-shadow(0 .3rem .3rem rgba(10,40,70,.3));width:3.4rem;height:4.4rem;border-radius:0;background:url(../art/ui/buoy-done.webp) center top / auto 3.4rem no-repeat;color:var(--cream);opacity:1;animation:none}.map-world .btn.node.now{background-image:url(../art/ui/buoy-now.webp);animation:breathe 1.6s ease-in-out infinite}.map-world .btn.node.later{background-image:url(../art/ui/buoy-shut.webp)}.map-world .btn.node>span{position:absolute;bottom:0;left:50%;translate:-50% 0;background:url(../art/ui/tag.webp) center / 100% 100% no-repeat;padding:.15rem .55rem .2rem;font-size:.85rem}.map-world .btn.node .st{bottom:1.4rem}.goods{grid-template-columns:repeat(auto-fill,minmax(8.2rem,1fr))}img.me{width:5.5rem;height:auto;background:none;box-shadow:none;border-radius:0;filter:drop-shadow(0 .3rem .3rem rgba(10,40,70,.3))}.isle-deco{position:absolute;width:7rem;translate:-50% 50%;pointer-events:none;filter:drop-shadow(0 .3rem .4rem rgba(10,40,70,.25))}body.wide .map-world{width:min(100%,64rem)}body.wide .island{width:22rem;height:17rem}body.wide .island.l{left:22%}body.wide .island.r{left:78%}body.wide .isle-deco{width:10rem}.btn.price small,.fine{font-size:.82rem}.good .use{font-size:.84rem}.isle-deco{display:block}.isle-deco img{width:100%;display:block}.isle-deco .isle-tower{position:absolute;width:46%;left:30%;bottom:38%;filter:drop-shadow(0 .2rem .2rem rgba(10,40,70,.25))}.map-buoy{position:absolute;width:2.2rem;translate:-50% 50%;pointer-events:none;filter:drop-shadow(0 .2rem .2rem rgba(10,40,70,.3));animation:buoy 2.8s ease-in-out infinite}.map-boat{position:absolute;width:4.2rem;translate:-50% 50%;rotate:var(--r);pointer-events:none;filter:drop-shadow(0 .25rem .25rem rgba(10,40,70,.3));animation:anchor 3.4s ease-in-out var(--d) infinite}@keyframes anchor{50%{scale:1.04}}body.wide .map-buoy{width:3rem}body.wide .map-boat{width:6rem}i.ico-token.fly{position:fixed;z-index:40;width:1.8rem;height:1.8rem;margin:-.9rem 0 0 -.9rem;pointer-events:none;filter:drop-shadow(0 .2rem .3rem rgba(10,40,70,.35))}.btn.tokens.bump{animation:bump .28s cubic-bezier(.3,1.8,.5,1)}@keyframes bump{40%{scale:1.16}}body:not(.wide) .lesson{bottom:auto;top:calc(var(--town-h) * .5)}body:not(.wide) .offer:not(.hidden)~.lesson{display:none}.title-card{padding:1.4rem 2rem 2rem}.logo-wrap{position:relative;display:inline-block;padding-top:1.6rem}.logo-puffin{position:absolute;width:5.2rem;right:-1.6rem;top:-1.2rem;rotate:8deg;filter:drop-shadow(0 .3rem .3rem rgba(10,40,70,.3));animation:perch 3.2s ease-in-out infinite}@keyframes perch{50%{rotate:2deg;translate:0 -.2rem}}.logo{margin:0 0 .6rem;line-height:.95;font-size:3.9rem;text-shadow:none;color:inherit}.logo .word{display:inline-block;white-space:nowrap}.logo .ch{display:inline-block;color:#fff4dc;rotate:var(--r);-webkit-text-stroke:.14em #1f3f86;paint-order:stroke fill;text-shadow:0 .05em 0 #1f3f86,0 .1em 0 #1f3f86,0 .15em 0 #142b61,0 .26em .18em rgba(10,40,70,.35);animation:letter 2.8s ease-in-out calc(var(--i) * .12s) infinite}.logo .w1 .ch{color:#ff6a5c}@keyframes letter{50%{translate:0 -.06em}}.logo-sub{display:inline-block;font-family:var(--display);color:var(--cream);font-size:1.2rem;margin:0 0 1.3rem;padding:.45rem .3rem .6rem;border-style:solid;border-color:transparent;--bw-y: 0px;--bw-x: 2.4rem;border-width:round(down,var(--bw-y),1px) round(down,var(--bw-x),1px);border-image:url(../art/ui/ribbon.webp) 0 260 fill / var(--bw-y) var(--bw-x) stretch}.title-card .logo{color:inherit;text-shadow:none}.title-card{display:flex;flex-direction:column;align-items:center}body:not(.wide) .hud{padding-top:max(.35rem,env(safe-area-inset-top));align-items:center}body:not(.wide) .btn.round.pause{width:2.8rem;height:2.8rem}body:not(.wide) .btn.round.pause i.ico-pause{width:1.7rem;height:1.7rem}body:not(.wide) .plaque.lvl{width:6.6rem;height:3.45rem;font-size:1rem}body:not(.wide) .moves{width:6.1rem;height:3.25rem}body:not(.wide) .moves-n{font-size:1.8rem}body:not(.wide) .btn.tokens{width:6.3rem;height:3.3rem;font-size:1.08rem}i.jc{display:inline-block;flex:none;width:1.05em;height:1.05em;background:url(../art/ui/jazz-coin.svg) center / contain no-repeat;vertical-align:-.17em;margin-right:.2em}.btn.price{flex-direction:row;justify-content:center;gap:.3rem}.btn.price i.jc{width:1.25rem;height:1.25rem;margin:0;filter:drop-shadow(0 .06rem .08rem rgba(80,10,10,.35))}.fine.notice{color:var(--navy);font-size:.95rem}body.wide.compact .hud{gap:.3rem;padding:0 .4rem}body.wide.compact .hud .moves{margin:0}body.wide.compact .offer{top:calc(var(--town-foot) + 5rem)}body.wide.compact .tray{bottom:.6rem}body.compact .shop .sheet{height:calc(100vh - .4rem)}body.compact .good .pic{aspect-ratio:2.3}.card .col .btn,.btn.town-btn,.shop .btn.tab{min-height:44px}body:not(.wide) .shop .tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:.3rem .3rem .6rem;overflow:visible}body:not(.wide) .shop .btn.tab{--bw-x: .8rem;padding:.3rem 0 .35rem;font-size:max(13px,.95rem);white-space:nowrap}body:not(.wide) .shop .sheet{height:min(76vh,42rem)}body.wide:not(.compact) .shop .sheet{height:min(80vh,46rem)}.panel:not(.in) .card{pointer-events:none}.good .amt{z-index:1;line-height:1.1;padding:.05rem .45rem .1rem;border-radius:.7rem;background:#fffaf0e6;box-shadow:0 .1rem .25rem #0a284633}.btn{min-height:44px}.btn.round{min-width:44px;min-height:44px}body.wide .shop .btn.tab,body.wide .btn.town-btn,body.wide .shop .btn.ghost,body.wide .shop .btn.tokens-price{min-height:max(44px,2.5rem)}body.wide .btn.daily{min-height:max(44px,2.75rem);font-size:1.1rem}:where(.btn,.card,.card h2,.logo-sub,.shop .sheet){position:relative;isolation:isolate}:where(.btn,.card,.card h2,.logo-sub,.shop .sheet):before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:calc(-1*round(down,var(--bw-y),1px)) calc(-1*round(down,var(--bw-x),1px));border:0 solid transparent;border-image-source:inherit;border-image-slice:inherit;border-image-repeat:inherit;border-image-width:calc(var(--bw-y) + min(1px,var(--bw-y) * 1000)) calc(var(--bw-x) + min(1px,var(--bw-x) * 1000))}.shop .sheet:before{inset:calc(-1*round(down,var(--bw-y),1px)) calc(-1*round(down,var(--bw-x),1px)) 0;border-image-width:calc(var(--bw-y) + 1px) calc(var(--bw-x) + 1px) 0}
