/* Bundled fonts also work offline in the Android application. */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/BarlowCondensed-SemiBold.ttf') format('truetype')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/BarlowCondensed-Bold.ttf') format('truetype')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('assets/fonts/BarlowCondensed-ExtraBold.ttf') format('truetype')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('assets/fonts/BarlowCondensed-Black.ttf') format('truetype')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('assets/fonts/DMSans-Variable.ttf') format('truetype')}
#hud #sound-mobile{right:51px}#sound-mobile[aria-pressed="false"]{opacity:.55}#overlay[data-state="paused"] h2{font-size:60px}#overlay[data-state="won"] h2{font-size:52px}#overlay[data-state="lost"] h2{font-size:62px}
:root{color-scheme:light;--ink:#153f46;--cream:#f3ecd9;--orange:#e87543}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}.cabinet{max-width:1320px;margin:auto;padding:30px 54px 20px}.masthead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #173f452b;padding-bottom:20px;font-size:11px;font-weight:700;letter-spacing:2px}.masthead a{color:inherit;text-decoration:none;display:flex;align-items:center;gap:10px}.brand-mark{font-size:35px;line-height:20px}.edition{font-size:10px;letter-spacing:1.5px}.game-layout{display:grid;grid-template-columns:1fr 360px 1fr;gap:66px;align-items:center;padding:32px 0}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:700}.intro-copy h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:100px;line-height:.79;letter-spacing:-2px;margin:25px 0 22px;position:relative}.intro-copy h1 span{color:var(--orange)}.intro-copy h1 i{font-family:Georgia,serif;font-size:76px;font-weight:400;display:block;line-height:.7;margin:10px 0 18px;color:var(--orange)}.intro-copy>p{font-size:19px;line-height:1.5;letter-spacing:-.5px}.route-note{display:flex;gap:13px;font-size:9px;font-weight:700;letter-spacing:1px;margin:35px 0}.route-dot{width:7px;height:7px;margin-top:3px;background:var(--orange);box-shadow:0 45px 0 var(--ink);position:relative}.route-dot:after{content:'';position:absolute;top:9px;left:3px;height:32px;border-left:1px dashed #87968a}.route-note div span{display:block;font-size:8px;color:#758477;margin:9px 0}.made-in{font-size:8px;line-height:1.8;letter-spacing:1px;color:#788476}.game-frame{width:360px;height:640px;position:relative;overflow:hidden;box-shadow:0 18px 45px #133a452b,0 0 0 7px #163f48,0 0 0 8px #62756c;border-radius:13px;background:#368a86;touch-action:none;user-select:none}canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.hud{position:absolute;top:0;left:0;width:100%;padding:19px 18px 12px;color:#fff6de;background:linear-gradient(#123f48e8,#123f48b0,transparent);pointer-events:none}.hud-caption{display:block;font-size:7px;letter-spacing:1.6px;color:#b9d1bf}.hud strong{font-size:12px;letter-spacing:1px}.hud button{pointer-events:auto;position:absolute;right:15px;top:17px;background:#f2ecd923;border:1px solid #f2ecd94d;color:#f8efd9;border-radius:5px;width:29px;height:29px;cursor:pointer}.progress-track{margin-top:15px;height:3px;background:#d5e5c734}.progress-track div{height:100%;background:#f3bb72;width:0}.hud-bottom{display:flex;justify-content:space-between;font-size:7px;letter-spacing:.7px;margin-top:7px}.balance{position:absolute;bottom:21px;left:20px;right:20px;display:flex;align-items:center;gap:10px;color:#fff4d9;font-size:7px;letter-spacing:1px}.balance-track{height:7px;flex:1;background:linear-gradient(90deg,#e87959 0 16%,#efd28b 16% 32%,#9bbb9b 32% 68%,#efd28b 68% 84%,#e87959 84%);position:relative;border:2px solid #153f46}.balance-track b{position:absolute;top:-5px;width:3px;height:13px;background:#fff8d8;left:50%;box-shadow:1px 1px #143f46}.balance>span:last-child{font-size:15px;letter-spacing:3px;color:#ffba88}.overlay{position:absolute;inset:0;background:linear-gradient(#123f4840,#123f4810 35%,#123f4870);display:flex;align-items:center;justify-content:center}.start-card{text-align:center;width:280px;background:#f5efdaeF;box-shadow:5px 5px 0 #143f4859;padding:25px 22px 19px;margin-top:26px;border:1px solid #fff4d9}.pill{font-size:8px;letter-spacing:1.6px;font-weight:700}.start-card h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:76px;font-weight:900;letter-spacing:-1px;line-height:.82;margin:25px 0 18px}.start-card h2 em{font-style:normal;color:#e87543}.start-card>p{font-size:12px;line-height:1.7;color:#53675f;margin:0 0 20px}.primary{background:#e87543;color:#fff9e7;border:0;box-shadow:0 4px 0 #b35330;width:100%;padding:15px 17px;font-size:11px;font-weight:800;letter-spacing:2px;cursor:pointer;display:flex;justify-content:space-between}.primary:hover{background:#da6334}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #b35330}.instructions{display:flex;align-items:center;justify-content:center;gap:11px;margin-top:21px}.instructions>span{font-size:28px}.instructions p{font-size:9px;line-height:1.6;text-align:left;margin:0}.instructions b{font-weight:400;color:#788477;font-size:8px}.overlay-footer{position:absolute;bottom:29px;color:#fff1d3;font-size:8px;font-weight:700;letter-spacing:1.8px}.field-guide h3{font-family:'Barlow Condensed',Impact,sans-serif;font-size:44px;line-height:1;margin:16px 0 30px}.guide-item{display:flex;gap:15px;align-items:center;margin:24px 0}.guide-item h4{font-size:9px;letter-spacing:1px;margin:0 0 6px}.guide-item p{font-size:11px;line-height:1.6;color:#728073;margin:0}.boat-icon{display:flex;justify-content:center;align-items:center;width:33px;height:49px;background:#e8e0c8;color:#e9d9a9;font-size:32px;flex-shrink:0;box-shadow:inset 5px 0 #c1c1a9,inset -5px 0 #c1c1a9;border-radius:3px 3px 9px 9px}.taxi{height:37px;width:25px;margin:0 4px;color:#b46e40;background:#dba65b;box-shadow:inset 5px 0 #c18b4c,inset -5px 0 #c18b4c}.topo{height:41px;width:29px;margin:0 2px;color:#9aaa91;background:#6b8d7b;box-shadow:inset 5px 0 #345e55,inset -5px 0 #345e55}.tip{border-top:1px solid #173f452b;margin-top:30px;padding-top:22px}.tip>span{font-size:7px;font-weight:700;letter-spacing:1px}.tip p{font-family:Georgia,serif;font-size:14px;font-style:italic;line-height:1.7}.sound{border:0;background:transparent;padding:13px 0 0;color:#738175;font:700 8px 'DM Sans',sans-serif;letter-spacing:1px;cursor:pointer}.page-footer{display:flex;justify-content:space-between;padding-top:17px;border-top:1px solid #173f452b;font-size:8px;letter-spacing:1.2px;color:#7d8677}#toast{position:absolute;top:113px;left:20px;right:20px;text-align:center;color:#fff2ce;text-shadow:1px 2px #16444a;font-size:12px;font-weight:bold;letter-spacing:1px;opacity:0;transition:opacity .25s;pointer-events:none}.touch-hint{position:absolute;bottom:62px;left:0;right:0;text-align:center;font-size:9px;color:#fff3d5;letter-spacing:1px;display:none;pointer-events:none}[hidden]{display:none!important}@media(min-width:1100px) and (min-height:850px){.cabinet{padding-top:45px}.game-layout{padding:48px 0}.game-frame{width:396px;height:704px}.game-layout{grid-template-columns:1fr 396px 1fr}}@media(max-width:1000px){.cabinet{padding:25px 30px}.game-layout{gap:35px}.intro-copy h1{font-size:78px}.field-guide{display:none}.game-layout{grid-template-columns:1fr 360px;max-width:700px;margin:auto}}@media(max-width:600px){body{background:#123f48;overflow:hidden}.cabinet{padding:0}.masthead,.intro-copy,.field-guide,.page-footer{display:none}.game-layout{display:block;padding:0;margin:0}.game-frame{width:100vw;height:100vh;height:100dvh;border-radius:0;box-shadow:none}.hud{padding-top:max(19px,env(safe-area-inset-top))}.balance{bottom:max(21px,env(safe-area-inset-bottom))}.start-card{width:280px}.overlay-footer{bottom:max(29px,env(safe-area-inset-bottom))}}

/* Special manoeuvres remain reachable above the steering and health strip. */
.special-button{position:absolute;right:12px;bottom:77px;max-width:230px;min-height:44px;padding:11px 14px;border:2px solid #f4d69e;background:linear-gradient(90deg,#e87543 var(--charge,100%),#234e55 var(--charge,100%));color:#fff5db;font:800 11px 'DM Sans',sans-serif;box-shadow:0 3px 0 #173e47;cursor:pointer;touch-action:manipulation;border-radius:3px}.special-button:disabled{color:#d3dbcc;border-color:#87a59b;cursor:default}#level-status{position:absolute;top:134px;left:12px;color:#fff1ce;background:#173f48d9;padding:5px 8px;font:700 8px 'DM Sans',sans-serif;letter-spacing:.6px;pointer-events:none}.touch-hint{bottom:133px}#toast{top:162px}

/* Desktop play fills the available height while preserving the portrait canal. */
@media(min-width:601px){
  body{background:#123f48;overflow:hidden}
  .cabinet{max-width:none;margin:0;padding:0}
  .masthead,.intro-copy,.field-guide,.page-footer{display:none}
  .game-layout{display:flex;align-items:center;justify-content:center;gap:0;max-width:none;width:100vw;height:100vh;height:100dvh;margin:0;padding:0}
  .game-frame{flex:none;width:min(100vw,56.25vh);width:min(100vw,56.25dvh);height:100vh;height:100dvh;max-height:177.7778vw;border-radius:0;box-shadow:0 0 70px #071f2980}
}
