:root{--ink:#071321;--navy:#0d2138;--blue:#174565;--gold:#efbd62;--cream:#fff3d5;--red:#bc4050;--mint:#58d5b1;--line:#ffffff22;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--ink);color-scheme:dark}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 50% -20%,#315a78,var(--ink) 48%);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overscroll-behavior:none}button,input{font:inherit}button,a{touch-action:manipulation}.safe-top{padding-top:var(--safe-top)!important}.safe-bottom{padding-bottom:max(14px,var(--safe-bottom))!important}
[hidden]{display:none!important}
#boot{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(circle,#193c59,#06101d);letter-spacing:2px}.boot-mark{display:grid;place-items:center;width:78px;height:78px;border:2px solid var(--gold);border-radius:24px;color:var(--gold);font-size:42px;animation:pulse 1.4s infinite}.boot-mark+ b{font-family:Georgia,serif}.boot-mark~small{color:#ffffff88}@keyframes pulse{50%{transform:scale(1.06);box-shadow:0 0 30px #efbd6244}}
.launcher{min-height:100dvh}.nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;min-height:70px;padding:10px max(20px,calc((100vw - 1440px)/2));border-bottom:1px solid var(--line);background:#071321e9;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;line-height:.86;font-size:13px;letter-spacing:1px}.brand span{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--gold);border-radius:12px;color:var(--gold);font-size:26px}.nav-actions{display:flex;gap:7px}.nav-btn{min-width:44px;height:44px;padding:0 12px;border:1px solid #ffffff35;border-radius:12px;background:#ffffff0c;color:#fff;font-weight:900}.nav-btn.install{background:var(--gold);color:var(--ink)}
.hero-panel{position:relative;max-width:1440px;min-height:440px;margin:auto;padding:70px 5vw;overflow:hidden}.hero-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#071321 7%,#071321a5 47%,transparent 78%),url('assets/valletta.webp') center/cover;opacity:.82;mask-image:linear-gradient(#000 85%,transparent)}.hero-copy{position:relative;z-index:2;max-width:680px}.hero-copy>small,.catalogue-head small,.sheet-card>small{color:var(--gold);font-size:11px;font-weight:900;letter-spacing:3px}.hero-copy h1{margin:10px 0 18px;font:700 clamp(48px,7vw,92px)/.87 Georgia,serif;letter-spacing:-3px}.hero-copy h1 em{color:var(--gold);font-weight:400}.hero-copy p{max-width:600px;color:#e0e5ea;font-size:17px;line-height:1.5}.hero-buttons{display:flex;gap:10px;margin-top:26px}.primary,.secondary{min-height:50px;border-radius:11px;padding:0 19px;font-size:12px;font-weight:900;letter-spacing:.7px}.primary{border:0;border-bottom:4px solid #68232d;background:var(--red);color:#fff}.secondary{border:1px solid #ffffff55;background:#071321aa;color:#fff}.island-mark{position:absolute;right:7%;top:112px;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:190px;height:190px;border:1px solid #ffffff44;border-radius:50%;background:#07132188;box-shadow:0 0 70px #efbd6225;backdrop-filter:blur(10px)}.island-mark span{color:var(--gold);font-size:38px}.island-mark b{font:58px/.8 Georgia}.island-mark small{margin-top:8px;letter-spacing:3px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1300px;margin:-35px auto 38px;border:1px solid var(--line);border-radius:16px;background:#0e2137e8;box-shadow:0 18px 50px #0008;position:relative;z-index:4}.stats div{padding:21px;text-align:center;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats span{display:block;color:var(--gold);font:34px Georgia}.stats small{font-size:8px;letter-spacing:1.5px;color:#bac4ce}
.catalogue{max-width:1440px;margin:auto;padding:30px 28px 65px}.catalogue-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.catalogue h2{font:38px Georgia;margin:4px 0}.search{display:flex;align-items:center;min-width:290px;border:1px solid #ffffff33;border-radius:11px;background:#ffffff0b;padding:0 13px}.search input{width:100%;height:44px;border:0;outline:0;background:transparent;color:#fff;padding:0 8px}.filters{display:flex;gap:7px;margin:20px 0;overflow:auto;scrollbar-width:none}.filter{white-space:nowrap;min-height:40px;border:1px solid #ffffff2c;border-radius:20px;background:#ffffff08;color:#dce2e7;padding:0 15px;font-size:10px;font-weight:900}.filter.active{background:var(--gold);color:var(--ink);border-color:var(--gold)}.world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.world-card{position:relative;min-height:275px;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#0b1b2f;color:#fff;cursor:pointer;box-shadow:0 12px 35px #0007;transition:.2s}.world-card:hover,.world-card:focus-visible{transform:translateY(-4px);border-color:var(--accent)}.world-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.card-shade{position:absolute;inset:0;background:linear-gradient(18deg,#06101df7 8%,#06101d88 58%,transparent)}.card-num{position:absolute;top:13px;right:15px;color:#ffffff88;font:30px Georgia}.card-progress{position:absolute;top:15px;left:15px;padding:5px 8px;border-radius:12px;background:#071321cc;font-size:9px}.card-copy{position:absolute;left:18px;right:18px;bottom:17px}.card-copy small{color:var(--gold);font-size:8px;font-weight:900;letter-spacing:1.2px}.card-copy h3{margin:5px 0;font:23px Georgia}.card-copy p{margin:0 0 12px;color:#d4dce5;font-size:11px}.card-copy b{display:inline-block;background:var(--accent);border-radius:7px;padding:8px 10px;font-size:9px}.site-footer{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap;padding:28px;border-top:1px solid var(--line);color:#ffffff77;font-size:10px}.site-footer nav{display:flex;gap:14px}.site-footer a{color:var(--gold)}
.game-view{height:100dvh;overflow:hidden;display:flex!important;flex-direction:column;background:#06101d;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.game-view[hidden]{display:none!important}.game-top{height:68px;flex:none;display:grid;grid-template-columns:120px 1fr auto;align-items:center;padding:7px 14px;border-bottom:2px solid var(--gold);background:linear-gradient(100deg,#0b1729,#213c59)}.game-back,.game-actions button{height:44px;border:1px solid #ffffff38;border-radius:11px;background:#ffffff0d;color:#fff;font-weight:900}.game-back{justify-self:start;padding:0 13px}.game-back:first-letter{font-size:22px}.game-brand{text-align:center;min-width:0}.game-brand small{display:block;color:var(--gold);font-size:7px;letter-spacing:2px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-brand h1{margin:2px 0;font:21px Georgia;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-actions{display:flex;gap:6px}.game-actions button{width:44px}.game-hud{height:49px;flex:none;display:grid;grid-template-columns:.6fr 1fr .7fr 1fr 1fr;padding:5px 6px;background:var(--cream);color:var(--ink)}.game-hud div{text-align:center;border-right:1px solid #d8c694}.game-hud div:last-child{border:0}.game-hud small{display:block;color:#766a50;font-size:6px;font-weight:900;letter-spacing:1px}.game-hud b{font-size:15px}.stage{position:relative;flex:1;min-height:150px;overflow:hidden;background:#1e3a56}.stage>canvas:first-child{display:block;width:100%;height:100%}.mission-chip{position:absolute;z-index:4;left:max(9px,var(--safe-left,0px));top:9px;max-width:64%;padding:7px 11px;border:1px solid #ffffff44;border-radius:14px;background:#071321e8;font-size:10px}.mission-chip strong{color:var(--gold);margin-right:5px}.mini-map{position:absolute;z-index:4;right:9px;bottom:9px;width:90px;height:60px;border:2px solid #fff8;border-radius:8px;background:#071321dd}.toast{position:absolute;z-index:30;left:50%;top:15%;transform:translate(-50%,-8px);opacity:0;pointer-events:none;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis;padding:9px 14px;border:2px solid var(--gold);border-radius:20px;background:#071321f2;font-size:10px;font-weight:900;transition:.18s}.toast.on{opacity:1;transform:translate(-50%,0)}
.touch-deck{height:138px;flex:none;display:grid;grid-template-columns:minmax(170px,1fr) 150px 100px;align-items:center;gap:12px;padding:8px 22px 10px;background:linear-gradient(#f5e7c3,#d5b873);color:var(--ink);border-top:3px solid #a9874e}.objective small{display:block;color:#9b3541;font-size:7px;letter-spacing:1.4px;font-weight:900}.objective b{display:block;font-size:12px;margin:4px 0}.objective span{display:block;color:#6a5c45;font-size:9px}.joystick{position:relative;width:112px;height:112px;margin:auto;border:2px solid #0b2036;border-radius:50%;background:#102c4688;box-shadow:inset 0 0 22px #0005;touch-action:none}.joystick span{position:absolute;left:50%;top:50%;width:48px;height:48px;transform:translate(-50%,-50%);border:2px solid #ffffff55;border-radius:50%;background:#0a1c31;box-shadow:0 6px 13px #0007}.joystick i{position:absolute;left:50%;bottom:7px;transform:translateX(-50%);font-style:normal;color:#ffffff77;font-size:6px;letter-spacing:1px;pointer-events:none}.fire-btn{justify-self:center;width:82px;height:82px;border:0;border-bottom:6px solid #762630;border-radius:50%;background:var(--red);color:#fff;font-size:28px;font-weight:900;touch-action:none}.fire-btn:active,.fire-btn.active{transform:translateY(3px);border-bottom-width:3px}.fire-btn small{display:block;font-size:7px;letter-spacing:1px}
.mission-overlay{position:absolute;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(#071321f8,#18334ffb);overflow:auto}.mission-overlay.hidden{display:none}.overlay-scroll{width:min(760px,100%);padding:18px;text-align:center}.overlay-scroll>small{color:var(--gold);font-size:8px;letter-spacing:2px;font-weight:900}.hero-icon{font-size:42px;filter:drop-shadow(0 5px 7px #000)}.overlay-scroll h2{margin:2px 0 5px;font:30px Georgia}.overlay-scroll>p{margin:0 auto 9px;max-width:560px;color:#dfe4e7;font-size:11px}.overlay-tools{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin-bottom:8px}.overlay-tools button{min-height:36px;border:1px solid #ffffff30;border-radius:8px;background:#ffffff0c;color:#fff;padding:0 9px;font-size:8px;font-weight:900}.difficulty-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:0 auto 8px;max-width:620px}.diff-btn,.level-btn{border:1px solid #ffffff2c;border-radius:9px;background:#ffffff0b;color:#fff;font-size:8px;font-weight:900}.diff-btn{min-height:50px}.diff-btn b,.level-btn b{display:block;font-size:17px}.diff-btn small{display:block;color:#ffffff99;font-size:6px}.diff-btn.selected{background:var(--red);border-color:#ffc5c8}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 auto 8px;max-width:620px}.level-btn{min-height:48px;padding:4px}.level-btn.selected{border-color:var(--gold);background:#efbd6225}.level-btn.locked{opacity:.3}.feature-row{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin-bottom:8px}.feature-row span{border:1px solid #ffffff22;border-radius:7px;padding:5px;font-size:7px}.play-btn{min-width:240px;min-height:47px;border:0;border-bottom:5px solid #71252e;border-radius:10px;background:var(--red);color:#fff;font-weight:900;letter-spacing:.8px}.result-score{color:var(--gold);font:34px Georgia;margin-bottom:7px}.dialog{position:absolute;z-index:35;inset:6%;border:2px solid var(--gold);border-radius:15px;background:#071321fb;padding:18px;overflow:auto;box-shadow:0 20px 80px #000}.dialog-close{float:right;width:42px;height:42px;border:0;border-radius:50%;background:var(--red);color:#fff;font-size:20px}.dialog h3{font:28px Georgia}.dialog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;clear:both}.dialog-card{border:1px solid #ffffff24;border-radius:10px;padding:12px;background:#ffffff08;font-size:11px}.dialog-card button{min-height:38px;border:0;border-radius:7px;background:var(--gold);color:var(--ink);font-weight:900}.orientation-hint{position:absolute;z-index:50;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:#071321f6}.orientation-hint span{font-size:55px;color:var(--gold)}.orientation-hint button{min-height:44px;border:1px solid #ffffff44;border-radius:8px;background:#ffffff10;color:#fff}
.sheet{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:16px;background:#020810dd;backdrop-filter:blur(10px)}.sheet-card{width:min(720px,100%);max-height:90dvh;overflow:auto;border:2px solid var(--gold);border-radius:19px;background:#0b1d31;padding:24px;box-shadow:0 30px 100px #000}.sheet-card h2{font:38px Georgia;margin:6px 0 15px}.passport-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.passport-stats div,.badge{border:1px solid #ffffff22;border-radius:11px;padding:13px;background:#ffffff07;text-align:center}.passport-stats b{display:block;color:var(--gold);font:28px Georgia}.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.badge.locked{opacity:.35}.badge span{display:block;font-size:30px}.badge b{font-size:11px}.badge small{display:block;color:#ffffff88;font-size:8px;margin-top:4px}.danger-btn{min-height:42px;border:1px solid #d45b65;border-radius:8px;background:transparent;color:#f19aa2}.legal{overflow:auto;user-select:text}.legal main{max-width:780px;margin:auto;padding:60px 24px;color:#dbe2e7;line-height:1.65}.legal h1,.legal h2{color:#fff;font-family:Georgia}.legal a{color:var(--gold)}
.high-contrast{--gold:#ffd900;--red:#ec2441;--mint:#2effbd}.high-contrast .world-card,.high-contrast button{border-color:#ffffff88}.reduced-motion *{animation:none!important;transition:none!important}
@media(min-width:1000px){.game-view{max-width:1440px;margin:auto;box-shadow:0 0 70px #000}.touch-deck{height:126px}.stage{min-height:360px}}
@media(min-width:1000px) and (hover:hover) and (pointer:fine){.joystick,.fire-btn{display:none}.touch-deck{grid-template-columns:1fr}.objective{text-align:center}}
@media(max-width:900px){.world-grid{grid-template-columns:repeat(2,1fr)}.hero-panel{min-height:380px}.island-mark{opacity:.35;right:-30px}.stats{margin:-15px 16px 25px}.game-top{grid-template-columns:88px 1fr auto}.game-back span{display:none}.game-actions button{width:40px}.game-actions #fullBtn{display:none}}
@media(max-width:600px){.nav{padding-left:12px;padding-right:12px}.brand b{display:none}.nav-btn{min-width:42px;padding:0 8px}.hero-panel{min-height:410px;padding:58px 20px}.hero-panel:before{background:linear-gradient(#07132177,#071321 92%),url('assets/valletta.webp') center/cover}.hero-copy h1{font-size:51px;letter-spacing:-2px}.hero-copy p{font-size:14px}.hero-buttons{flex-direction:column;align-items:stretch}.island-mark{display:none}.stats{grid-template-columns:repeat(2,1fr)}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}.catalogue{padding:24px 14px 55px}.catalogue-head{display:block}.search{min-width:0;margin-top:12px}.world-grid{grid-template-columns:1fr}.world-card{min-height:245px}.game-top{height:60px;padding-left:8px;padding-right:8px}.game-brand h1{font-size:16px}.game-actions{gap:3px}.game-actions button{width:37px;height:40px}.game-back{height:40px;padding:0 11px}.game-hud{height:44px}.game-hud b{font-size:12px}.touch-deck{height:144px;grid-template-columns:1fr 104px 78px;gap:6px;padding:6px 8px max(8px,var(--safe-bottom))}.objective{min-width:0}.objective b{font-size:10px}.objective span{font-size:7px}.joystick{width:96px;height:96px}.joystick span{width:42px;height:42px}.fire-btn{width:70px;height:70px}.mini-map{width:72px;height:48px}.overlay-scroll{padding:10px}.overlay-scroll h2{font-size:24px}.difficulty-grid{gap:3px}.diff-btn{font-size:6px;padding:2px}.level-grid{gap:3px}.level-btn{font-size:6px;min-height:44px}.feature-row{display:none}.overlay-tools button{min-height:34px;padding:0 6px}.passport-stats,.badges{grid-template-columns:1fr 1fr}}
@media(max-height:620px) and (orientation:landscape){.game-top{height:52px}.game-hud{height:38px}.touch-deck{height:98px;grid-template-columns:1fr 94px 76px}.joystick{width:82px;height:82px}.joystick span{width:38px;height:38px}.fire-btn{width:66px;height:66px}.objective span{display:none}.overlay-scroll{padding:6px}.hero-icon{font-size:28px}.overlay-scroll h2{font-size:20px}.overlay-tools{margin-bottom:4px}.difficulty-grid,.level-grid{margin-bottom:4px}.diff-btn{min-height:40px}.level-btn{min-height:37px}.feature-row{display:none}.play-btn{min-height:40px}.mission-overlay{align-items:flex-start}.game-brand h1{font-size:15px}}
.game-top{height:calc(68px + var(--safe-top));padding-left:max(14px,var(--safe-left));padding-right:max(14px,var(--safe-right))}@media(max-width:600px){.game-top{height:calc(60px + var(--safe-top));padding-left:max(8px,var(--safe-left));padding-right:max(8px,var(--safe-right))}}@media(max-height:620px) and (orientation:landscape){.game-top{height:calc(52px + var(--safe-top))}}
.game-view.menu-open .touch-deck{display:none}
.developer-credit{color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.08em;text-decoration:none;text-transform:lowercase}.legal footer{margin-top:36px;padding-top:18px;border-top:1px solid #ffffff22}
