@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./fonts/font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./fonts/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(./fonts/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(./fonts/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./fonts/font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./fonts/font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./fonts/font-6.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./fonts/font-7.ttf) format('truetype');
}

:root{font-family:'DM Sans',sans-serif;color:#f7f2d8;background:#358b8b;font-synthesis:none;--pine:#173c35;--gold:#ffc44d;--cream:#f7f2d8}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}button:disabled{cursor:not-allowed}#game{width:100%;height:100dvh;position:relative;overflow:hidden}#world{display:block;width:100%;height:100%;touch-action:none}.hud{position:absolute;top:max(28px,env(safe-area-inset-top));left:32px;right:32px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.brand,.resources{pointer-events:auto}.brand a{color:var(--pine);font-size:12px;font-weight:800;letter-spacing:2px;text-decoration:none}.brand h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:47px;font-weight:900;line-height:.84;letter-spacing:-1px;color:var(--cream);text-shadow:2px 3px 0 #173c35;margin:12px 0}.brand h1>span{display:block}.brand .dot{color:var(--gold);font-size:36px;padding-left:7px}.resources{display:flex;align-items:flex-start;gap:10px}.resource{display:flex;align-items:center;gap:14px;background:var(--pine);padding:13px 20px;border-radius:10px;min-width:134px;box-shadow:0 4px 0 #102e2a55}.resource .symbol{color:var(--gold);font-size:30px}.resource small{font-size:10px;font-weight:800;letter-spacing:1.8px;display:block;color:#b5c6ab}.resource strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;line-height:1.1;display:block}.resource strong span{font-size:20px;color:#b5c6ab}.cargo{min-width:165px}.bar,.progress{height:4px;background:#ffffff20;border-radius:3px;overflow:hidden;margin-top:5px}.bar i,.progress i{display:block;background:var(--gold);height:100%;width:0;transition:width .2s}.icon-button{height:48px;min-width:48px;border:1px solid #f7f2d833;color:var(--cream);background:var(--pine);border-radius:9px;font-size:22px}.objective{position:absolute;right:32px;top:128px;width:244px;background:#173c35e8;padding:19px 21px 17px;border-radius:10px;border:1px solid #ffffff14}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:800;color:#b9ceb8}.eyebrow i{display:inline-block;width:6px;height:6px;background:#a8de6c;border-radius:50%;margin-right:5px}h2{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800}.objective h2{font-size:24px;margin:8px 0}.objective p{font-size:13px;line-height:1.5;color:#dde6cf;margin:0 0 12px}.objective small{display:block;font-size:11px;color:#b9ceb8;margin-top:8px}.bottom{position:absolute;left:32px;right:32px;bottom:max(26px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;gap:20px;pointer-events:none}.map-wrap{background:#173c35;border:4px solid #173c35;border-radius:9px;overflow:hidden;box-shadow:0 3px 0 #102e2a40}.map-wrap canvas{width:140px;height:97px;display:block}.map-wrap span{display:block;font-size:10px;letter-spacing:1px;text-align:center;padding:6px 2px;color:#c4d5b6}.drive-hint{font-size:12px;background:#173c35d9;border:1px solid #ffffff18;border-radius:8px;padding:12px 18px;color:#d4dec8;align-self:flex-end;white-space:nowrap}.keys{color:var(--cream);font-weight:800;letter-spacing:2px}.drive-hint b{margin:0 9px}.actions{display:flex;gap:9px;pointer-events:auto}.shop-button,.primary{background:var(--gold);color:var(--pine);border:0;border-radius:8px;font-weight:900;letter-spacing:.5px;box-shadow:0 4px 0 #aa6d25;font-size:14px;padding:17px 23px}.shop-button span{font-size:20px;margin-right:7px}kbd{font:inherit;background:#173c3520;border:1px solid #173c3533;padding:2px 5px;margin-left:13px;border-radius:3px}.shop-button:hover,.primary:hover{background:#ffd578;transform:translateY(-1px)}#sound{position:relative;height:56px}.sound-off{position:absolute;right:5px;bottom:4px;font-size:14px}.world-label{position:absolute;left:0;top:0;pointer-events:none;white-space:nowrap;text-align:center;color:var(--pine);font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800;letter-spacing:1px;font-size:19px;background:var(--gold);padding:7px 13px;border-radius:5px;box-shadow:0 3px 0 #173c3533;transform:translate(-50%,-100%)}.world-label span{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:1px;margin-top:2px}.gate-label{background:var(--pine);color:var(--cream);font-size:16px}#toast{position:absolute;left:50%;top:22%;transform:translate(-50%,-12px);background:var(--pine);padding:12px 22px;border-radius:8px;border:1px solid #ffffff30;font-size:14px;font-weight:700;opacity:0;pointer-events:none;transition:.2s;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.intro{position:absolute;left:50%;bottom:13%;transform:translateX(-50%);width:365px;background:#173c35f5;border:1px solid #f7f2d82a;border-radius:13px;padding:27px 30px;box-shadow:0 15px 65px #173c3533}.intro h2{font-size:34px;letter-spacing:-.3px;margin:9px 0}.intro p{font-size:14px;line-height:1.6;color:#dce4ce;margin:0 0 22px}.primary{width:100%;display:flex;justify-content:space-between;align-items:center}.intro small{font-size:10px;text-align:center;display:block;margin-top:15px;color:#b9ceb8}dialog{color:var(--cream);background:var(--pine);border:1px solid #bed4b345;border-radius:16px;width:min(520px,calc(100% - 28px));max-height:85dvh;padding:28px;box-shadow:0 24px 100px #001c2c88}dialog::backdrop{background:#072d3b88;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;gap:14px;align-items:center}dialog h2{font-size:34px;line-height:1.05;margin:10px 0}dialog p{font-size:14px;line-height:1.6}.balance{display:flex;justify-content:space-between;align-items:center;color:#b9ceb8;border-bottom:1px solid #ffffff22;padding-bottom:14px}.balance strong{color:var(--gold);font-size:22px}.upgrade{display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:center;padding:16px 0;border-bottom:1px solid #ffffff18}.upgrade-icon{background:#2b5341;border-radius:8px;width:42px;height:46px;display:grid;place-items:center;font-size:23px;color:var(--gold)}.upgrade h3{font-size:16px;margin:0 0 4px}.upgrade p{font-size:12px;margin:0;color:#bfceba}.upgrade button{background:var(--gold);color:var(--pine);border:0;border-radius:6px;padding:10px 12px;font-weight:800;min-width:84px}.upgrade button:disabled{background:#315448;color:#94ae91}.shop-note{color:#b5c7b1;font-size:12px}.text-button{display:block;background:none;border:0;color:#b5c7b1;font-size:12px;margin:20px auto 0;text-decoration:underline}#resetConfirm button{padding:10px;border-radius:5px;border:0;margin:3px}#joystick{position:absolute;width:120px;height:120px;border-radius:50%;border:2px solid #fff7;background:#173c353d;left:28px;bottom:45px;touch-action:none;display:none}#stick{width:48px;height:48px;border-radius:50%;background:#f7f2d8bb;border:2px solid #fff8;position:absolute;left:34px;top:34px;pointer-events:none}#fatal{position:absolute;inset:20%;padding:30px;background:var(--pine);z-index:20}#fatal button{padding:14px}#game.playing .intro{display:none}#game:not(.playing) .drive-hint{visibility:hidden}
@media(max-width:1000px){.drive-hint{display:none}.objective{width:215px}.hud{left:22px;right:22px}.bottom{left:22px;right:22px}}
@media(pointer:coarse){#game.playing #joystick{display:block}.map-wrap{display:none}.bottom{justify-content:flex-end}.drive-hint{display:none}}
@media(max-width:600px){.hud{top:max(18px,env(safe-area-inset-top));left:16px;right:16px}.brand a{font-size:9px;letter-spacing:1px}.brand h1{font-size:34px;margin-top:9px}.brand .dot{font-size:24px}.resources{gap:6px}.resource{padding:9px 12px;min-width:70px;gap:6px}.resource .symbol{display:none}.resource small{font-size:8px;letter-spacing:.6px}.resource strong{font-size:25px}.cargo{min-width:94px}.resource strong span{font-size:16px}.resources .icon-button{min-width:35px;height:43px;font-size:18px}.objective{top:114px;right:16px;width:184px;padding:13px 15px}.objective h2{font-size:20px;margin:5px 0}.objective p{font-size:12px;margin-bottom:8px}.objective .eyebrow{font-size:9px}.objective small{font-size:10px}.bottom{left:16px;right:16px;bottom:max(25px,env(safe-area-inset-bottom))}.shop-button{padding:15px 13px;font-size:12px}.shop-button span{margin-right:3px}.shop-button kbd{display:none}#sound{height:50px;min-width:42px}.intro{width:calc(100% - 40px);max-width:350px;bottom:14%;padding:24px}.intro h2{font-size:31px}.map-wrap{display:none}.bottom{justify-content:flex-end}dialog{padding:22px}.upgrade{gap:9px;grid-template-columns:32px 1fr auto}.upgrade-icon{width:32px}.upgrade h3{font-size:14px}.upgrade p{font-size:11px}.upgrade button{font-size:12px;min-width:72px;padding:10px}.world-label{font-size:15px}.world-label span{font-size:8px}#toast{top:37%}}
@media(max-height:520px){.objective{display:none}.intro{bottom:18%;padding:18px 24px}.intro h2{font-size:28px}.intro p{margin-bottom:14px}.intro small{display:none}.map-wrap{display:none}.brand h1{font-size:32px}.bottom{bottom:18px}}
/* Island expedition */
.level-subtitle{font-size:12px;color:#c8d8be;margin:-2px 0 12px;font-style:italic}.objective{width:256px}.objective p{font-size:14px}#objectiveLevels{color:#ffce6b;display:block;width:100%;margin-top:13px;padding:11px 0 0;border:0;border-top:1px solid #dfe7ca22;background:none;text-align:left;font-size:11px;font-weight:800;letter-spacing:1px}.level-button{padding:12px 16px;border:1px solid #eadfb440;border-radius:8px;background:#21483e;color:#f7f2d8;font-size:14px;font-weight:800;box-shadow:0 4px 0 #15362e66}.level-button:hover{background:#315c4b}#levelDialog{width:min(810px,calc(100% - 28px))}#levelCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.level-card{padding:17px 13px;background:#234b40;border:1px solid #c7d9b329;border-top:4px solid var(--island);border-radius:8px;display:flex;flex-direction:column}.level-card.current{outline:2px solid #ffc44d;outline-offset:1px}.level-card.locked{background:#1b4038}.level-number{display:flex;align-items:center;justify-content:space-between;font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;font-weight:800;color:var(--island);margin-bottom:12px}.level-number span{font-size:23px}.level-card h3{font-family:'Barlow Condensed',Impact,sans-serif;font-size:23px;line-height:1.1;margin:0 0 7px}.level-card p{font-size:12px;color:#c7d3bb;line-height:1.4;margin:0 0 10px;min-height:34px}.level-card small{font-size:11px;color:#aabd9f;line-height:1.5;margin-top:auto}.level-card button{width:100%;margin-top:14px;padding:11px 5px;background:#ffc44d;color:#173c35;border:0;border-radius:5px;font-size:10px;font-weight:900;letter-spacing:.3px}.level-card button:disabled{background:#ffffff0b;color:#a9bda0}.drive-hint{padding:12px;font-size:11px}.shop-button{padding:17px 17px}.actions{gap:8px}
@media(max-width:1250px){.drive-hint{display:none}}
@media(max-width:700px){#levelCards{grid-template-columns:repeat(2,minmax(0,1fr))}.objective{width:195px}.objective p{font-size:12px}.level-subtitle{font-size:10px;margin-bottom:7px}#objectiveLevels{font-size:10px;padding-top:9px;margin-top:9px}.level-button{padding:10px 12px;font-size:12px}.level-button kbd{display:none}.shop-button{padding:15px 12px}.actions{gap:6px}.level-card{padding:14px}.intro h2{font-size:30px}}
@media(max-width:400px){.level-button span{display:none}.level-button{font-size:22px;width:43px;padding:8px}.shop-button span{display:none}.shop-button{font-size:11px}.objective{width:183px}}
@media(max-height:650px) and (min-width:701px){.objective{top:108px;padding:14px 17px}.objective .level-subtitle{display:none}}

/* The island assignment is accessible through Reviere, not over the play area. */
.objective{display:none!important}
