:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f1f5ef;background:#101820;font-synthesis:none;--accent:#b7f188;--ink:#11251c}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,input{font:inherit}button{color:inherit;background:#1d2b35;border:1px solid #ffffff17;border-radius:14px;padding:14px 16px;font-size:14px;font-weight:650;cursor:pointer;touch-action:manipulation;min-height:44px}button:active{transform:scale(.97)}button:disabled{opacity:.38;cursor:default}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.primary{background:var(--accent);color:var(--ink);border:0;font-size:16px}.wide{display:flex;justify-content:space-between;width:100%}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--accent)}.icon{padding:8px 12px;font-size:21px;line-height:1;border-radius:12px;min-width:44px}#menu{max-width:660px;margin:auto;padding:22px}header{display:flex;justify-content:space-between;align-items:center;gap:12px}.hero{margin:16px 0;position:relative;border-radius:22px;overflow:hidden;min-height:290px;background:#20313c}.hero img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.85}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 20%,#101820ed)}.hero-text{position:relative;z-index:1;padding:145px 24px 24px}h1{font-size:42px;line-height:.95;letter-spacing:-1.5px;margin:12px 0}p{color:#9fb1bb;line-height:1.5;font-size:14px}h2{font-size:23px;letter-spacing:-.6px}.hero p{margin:12px 0 0;max-width:390px}.wallet{display:flex;justify-content:space-between;font-size:13px;padding:8px 0 18px;color:#9fb1bb}.wallet b{color:#ffe296}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.menu-grid button{font-size:12px;padding:16px 5px}.menu-grid b{display:block;font-size:24px;margin-bottom:6px;color:var(--accent)}.feature{border:1px solid #ffffff13;border-radius:18px;margin-top:22px;padding:18px}.feature h2{margin:9px 0}.feature p{margin:0}.footnote{font-size:11px;text-align:center;margin-top:25px}#arena{height:100dvh;display:flex;flex-direction:column;align-items:stretch;max-width:660px;margin:auto;padding:8px 10px 10px;overflow:hidden}[hidden]{display:none!important}.game-header{flex-shrink:0;height:50px;padding:0 2px 7px}.game-header small{display:block;color:#92a4af;font-size:10px;letter-spacing:1px}.game-header strong{display:block;font-size:14px;margin-top:5px;font-variant-numeric:tabular-nums}#field{min-height:80px;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}canvas{display:block;touch-action:none;border-radius:15px;max-height:100%;max-width:100%;aspect-ratio:3/4;object-fit:contain}#hint{font-size:11px;text-align:center;min-height:17px;margin:6px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#controls{flex-shrink:0;display:grid;gap:6px}.row{display:flex;gap:6px}.row>*{flex:1}.compact{padding:8px 6px;font-size:11px;border-radius:10px}.compact small{display:block;font-size:10px;font-weight:400;opacity:.65;margin-top:4px}.selected{border-color:var(--accent);color:var(--accent)}.drift-pad{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px}.drift-pad button{height:63px;font-size:23px;touch-action:none;user-select:none}.drift-pad button small{font-size:9px;display:block}.pressed{background:var(--accent);color:var(--ink)}dialog{background:#14212c;color:#eff6f4;border:1px solid #ffffff20;border-radius:24px;width:min(92%,480px);max-height:88dvh;padding:22px;box-shadow:0 20px 80px #0009}dialog::backdrop{background:#030b11b8;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}dialog h2{margin:15px 0 20px}.stack{display:grid;gap:9px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.level{text-align:left;padding:14px 10px;min-height:99px}.level b{display:block;font-size:23px}.level small{display:block;font-size:10px;margin:5px 0;line-height:1.2}.stars{color:#ffdd81;letter-spacing:4px;font-size:24px}.level .stars{font-size:12px;letter-spacing:2px}.skin{padding:15px 5px}.swatch{width:46px;height:46px;border-radius:50%;margin:0 auto 12px;box-shadow:inset -8px -9px 0 #0002;border:4px solid #ffffff30}.skin small{display:block;margin-top:8px;font-size:11px}.result{text-align:center}.result .score{font-size:52px;font-weight:800;letter-spacing:-2px;margin:18px 0 8px}.result .reward{padding:12px;border-radius:12px;background:#23362c;color:#ddf4a1;margin:18px 0}.toggle{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #ffffff14;font-size:14px}.toggle input{width:23px;height:23px;accent-color:var(--accent)}#toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);pointer-events:none;background:#f1f6eb;color:#15212b;padding:13px 20px;border-radius:14px;opacity:0;font-size:13px;transition:.2s;z-index:8;max-width:90%;text-align:center}#toast.on{opacity:1;transform:translate(-50%,0)}@media(min-aspect-ratio:6/5) and (max-height:600px){#arena{max-width:none;display:grid;grid-template-columns:1fr minmax(180px,55vh) 1fr;grid-template-rows:1fr 38px;gap:12px;padding:12px}.game-header{height:auto;flex-direction:column;justify-content:center;align-items:stretch}.game-header strong{font-size:14px;line-height:1.8}#field{grid-column:2;grid-row:1/3}#controls{grid-column:3;grid-row:1/3;justify-content:center;align-content:center}.row{flex-wrap:wrap}.row>*{min-width:43%}#hint{grid-column:1;grid-row:2;white-space:normal;font-size:10px}.drift-pad{grid-template-columns:1fr 1fr}.hero{min-height:220px}.hero-text{padding-top:80px}}

#resumeSaved{margin-top:9px;border-color:#b8ef8960}.daily{margin-top:10px;background:#233432;color:#d5edba}.feature .medals{display:flex;gap:6px;margin-top:14px}.medals span{padding:6px 9px;border:1px solid #ffffff25;border-radius:8px;font-size:11px;color:#e6d99b}

#controls .row{flex-wrap:wrap}#controls .compact{min-width:62px}#controls .row>button{flex:1 1 62px}.toggle select{font:inherit;border:1px solid #617b79;border-radius:8px;background:#142c35;color:#eef3df;padding:7px} .toggle input[type=range]{max-width:45%}

.toggle input[type=range]{width:145px;height:35px}

.row{flex-wrap:wrap}.row .compact{flex:1 1 75px;min-height:42px}.drift-pad{grid-template-columns:repeat(5,1fr)!important}.grid .level small{overflow-wrap:anywhere}.skin .swatch{box-shadow:inset 0 4px 10px #fff5,inset 0 -6px 14px #0004}.skin.selected{box-shadow:0 0 0 2px var(--accent)}

/* World Games 1.0: keep every control readable on small phones. */
.drift-pad{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px!important}
.drift-pad button{min-width:0!important;min-height:64px!important;padding:10px 3px!important;font-size:12px!important;line-height:1.25!important;overflow-wrap:normal!important;word-break:normal!important}
.drift-pad button small{font-size:10px!important;line-height:1.25!important;white-space:normal!important}
#controls .row{flex-wrap:wrap}#controls .compact{min-width:74px;flex:1 1 21%;min-height:48px}
@media(max-width:360px){.drift-pad button{font-size:10px!important}.drift-pad button small{font-size:9px!important}}
/* Compact tower toolbar reserves a playable field even at 360 × 640. */
html[data-game=tower] #controls .row:first-child{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:4px}
html[data-game=tower] #controls .row:first-child .compact{flex:0 0 78px;min-width:78px;scroll-snap-align:start;min-height:46px;padding:7px 4px;font-size:11px}
html[data-game=tower] #controls .row:nth-child(2){display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
html[data-game=tower] #controls .row:nth-child(2) .compact{min-width:0;min-height:43px;padding:6px 2px;font-size:10px}
html[data-game=tower] #field{min-height:205px}
@media(max-height:580px){html[data-game=tower] #controls{max-height:45vh;overflow-y:auto}html[data-game=tower] #field{min-height:160px}}
/* Citadel: illustrated choices and readable compact controls. */
.tower-expansion{padding:20px;margin-top:16px;border:1px solid #8caea84a;border-radius:20px;background:linear-gradient(135deg,#283e45,#1b2538)}.tower-expansion h2{margin:10px 0}.tower-menu-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.tower-menu-actions button{padding:12px 4px;font-size:12px}.tower-catalog,.tower-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tower-catalog article{min-width:0;display:flex;flex-direction:column;align-items:stretch;padding:12px;background:#203745;border:1px solid #94bcb83b;border-radius:15px}.tower-catalog canvas{width:100%;height:auto;aspect-ratio:auto;border-radius:10px;max-height:none}.tower-catalog h3{font-size:15px;margin:12px 0 4px}.tower-catalog p{font-size:12px;line-height:1.55;margin:6px 0 12px}.tower-catalog small{font-size:11px;color:#efd9a1;margin:auto 0 10px}.tower-catalog button{margin-top:auto;padding:10px 4px}.tower-filters{display:flex;flex-wrap:wrap;gap:6px}.tower-filters button{font-size:11px;min-height:40px;padding:8px 10px}.tower-map{padding:10px;text-align:left;min-width:0}.tower-map canvas{width:100%;aspect-ratio:1;max-height:none;border-radius:10px;margin-bottom:10px}.tower-map b,.tower-map small{display:block;line-height:1.4;overflow-wrap:anywhere}.tower-map b{font-size:12px}.tower-map small{font-size:10px;margin-top:5px;color:#b5c6c5}.tower-map .stars{font-size:14px}.tower-forecast article{padding:12px 0;border-bottom:1px solid #8aafb631}.tower-forecast p{margin:6px 0;font-size:12px}.tower-return{margin-top:18px}.tower-item-mark{font-size:36px;line-height:1.5;text-align:center}.tower-catalog article:focus-within{border-color:#b8e6cd}
html[data-game=tower] #controls .row:first-child{display:grid;grid-template-columns:1.5fr 1fr 1fr;overflow:visible}html[data-game=tower] #controls .row:first-child .compact{min-width:0;width:auto;font-size:11px}html[data-game=tower] #hint{white-space:normal;line-height:1.35;max-height:32px}
@media(max-width:340px){.tower-catalog{grid-template-columns:1fr}.tower-map-grid{gap:7px}}
/* Jardins 1.0.2: equipment art has its own frame, separated from the controls. */
.golf-expansion{padding:20px;margin-top:16px;border:1px solid #b9d4aa55;border-radius:20px;background:linear-gradient(135deg,#334e46,#233b4a)}.golf-expansion h2{margin:10px 0}.golf-menu-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.golf-menu-actions button{padding:12px 4px;font-size:12px}.golf-equipment,.golf-maps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.golf-equipment article{min-width:0;display:flex;flex-direction:column;align-items:stretch;padding:12px;background:#203745;border:1px solid #94bcb83b;border-radius:15px}.golf-equipment canvas{width:100%;height:auto;aspect-ratio:auto;border-radius:10px;max-height:none}.golf-equipment h3{font-size:15px;margin:12px 0 4px}.golf-equipment p{font-size:12px;line-height:1.55;margin:6px 0 12px}.golf-equipment small{font-size:11px;color:#e1cda1;margin:auto 0 10px}.golf-equipment button{margin-top:auto;padding:10px 4px}.golf-filters{display:flex;flex-wrap:wrap;gap:6px}.golf-filters button{font-size:11px;min-height:42px;padding:8px 10px}.golf-maps button{padding:10px;text-align:left;min-width:0}.golf-maps canvas{width:100%;aspect-ratio:3/4;max-height:none;border-radius:10px;margin-bottom:10px}.golf-maps b,.golf-maps small{display:block;line-height:1.4;overflow-wrap:anywhere}.golf-maps b{font-size:12px}.golf-maps small{font-size:10px;margin-top:5px;color:#bbcabc}.golf-maps .stars{font-size:14px}.golf-return{margin-top:18px}.golf-rival{display:grid;place-items:center;width:55px;height:55px;border-radius:50%;background:var(--rival);color:#24434a;font-size:24px;font-weight:800;margin:8px auto}#golfPlan{margin:auto;max-height:40vh;width:auto;height:auto}html[data-game=golf] #controls .row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}html[data-game=golf] #controls #golfButtons{grid-template-columns:repeat(5,minmax(0,1fr))}html[data-game=golf] #controls .compact{min-width:0;min-height:44px;font-size:11px;padding:8px 3px}html[data-game=golf] #hint{white-space:normal;line-height:1.35;max-height:32px}
@media(max-width:340px){.golf-equipment{grid-template-columns:1fr}.golf-maps{gap:7px}}@media(min-aspect-ratio:6/5) and (max-height:600px){html[data-game=golf] #controls .row{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-game=golf] #controls #golfButtons{grid-template-columns:repeat(5,minmax(0,1fr))}html[data-game=golf] #controls{overflow-y:auto;max-height:100%;justify-content:stretch}html[data-game=golf] #controls .compact{min-width:0;font-size:10px}}
/* Grand Tour: illustrated garage, real route atlas and explicit event rules. */
html[data-game=drift]{--accent:#efc17f;--ink:#172d39}html[data-game=drift] #menu{max-width:780px}.drift-tour-panel{margin:16px 0;padding:22px;border:1px solid #7398a63b;border-radius:22px;background:linear-gradient(125deg,#213b49,#152737)}.tour-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.tour-heading h2{margin:9px 0 0;font-size:26px}.tour-badge{border:1px solid #d7bb8355;color:#e7c78f;border-radius:7px;padding:8px;font-size:9px;font-weight:750;white-space:nowrap}.tour-loadout{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:center;margin:20px 0}.tour-loadout canvas{width:100%;height:auto;aspect-ratio:auto;max-height:none;border-radius:15px}.tour-loadout small{font-size:10px;letter-spacing:1.6px;color:#9cbdc7}.tour-loadout h3{font-size:23px;margin:8px 0}.tour-loadout p{margin:6px 0 12px}.tour-loadout button{font-size:12px;padding:11px}.tour-menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.tour-menu-actions button{text-align:left;background:#0e2432b3;font-size:11px;color:#9db8c4}.tour-menu-actions strong{display:block;font-size:16px;color:#f0e7d5;margin-top:7px}.tour-garage,.tour-maps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tour-garage article{min-width:0;padding:12px;border:1px solid #75949b40;border-radius:15px;background:#1b3242;display:flex;flex-direction:column}.tour-garage canvas,.tour-maps canvas{width:100%;height:auto;aspect-ratio:auto;max-height:none}.tour-garage small,.tour-maps small{color:#abbfc9;font-size:10px;display:block;margin-top:10px}.tour-garage h3{font-size:16px;margin:7px 0}.tour-garage p{font-size:12px;line-height:1.5;flex:1;margin:3px 0 12px}.tour-garage button{margin-top:12px;font-size:12px}.tour-stats label{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:8px;color:#c0d3d7;margin:5px 0}.tour-stats meter{width:48%;height:8px;accent-color:#ebc887}.tour-events{display:grid;gap:9px;margin-bottom:16px}.tour-events button{display:flex;text-align:left;gap:16px;padding:16px}.tour-events small{font-size:9px;letter-spacing:1.4px;color:#acc9ce}.tour-events b{display:block;font-size:18px;margin-top:5px}.tour-events p{margin:7px 0 0;font-size:12px}.tour-event-number{font-size:23px;font-weight:400;color:#d4bd91;min-width:30px}.tour-filters{display:flex;gap:6px;flex-wrap:wrap}.tour-filters button{font-size:11px;padding:10px;min-height:42px}.tour-maps button{text-align:left;padding:10px;min-width:0}.tour-maps b{display:block;font-size:13px;margin:7px 0;overflow-wrap:anywhere}.tour-maps .stars{font-size:15px;letter-spacing:2px}html[data-game=drift] #hint{white-space:normal;line-height:1.35;max-height:34px;min-height:18px}html[data-game=drift] #controls{grid-template-columns:1fr 1fr}html[data-game=drift] .drift-pad{grid-column:1/-1}html[data-game=drift] #controls>#reset:only-of-type{grid-column:1/-1}html[data-game=drift] #controls>.compact{min-width:0;min-height:43px}html[data-game=drift] dialog{width:min(94%,650px)}
@media(max-width:420px){.drift-tour-panel{padding:15px}.tour-heading h2{font-size:21px}.tour-badge{font-size:8px;white-space:normal;max-width:72px;text-align:center}.tour-loadout{gap:12px;grid-template-columns:1fr 1fr}.tour-loadout h3{font-size:19px}.tour-loadout button{font-size:10px;padding:9px}.tour-garage{gap:8px}.tour-garage article{padding:9px}.tour-garage h3{font-size:14px}.tour-stats label{font-size:7px}.tour-menu-actions strong{font-size:14px}html[data-game=drift] .game-header strong{font-size:12px}}
@media(min-aspect-ratio:6/5) and (max-height:600px){html[data-game=drift] #controls{display:flex;flex-direction:column;justify-content:center;overflow-y:auto}html[data-game=drift] .drift-pad{grid-template-columns:repeat(2,minmax(0,1fr))!important}html[data-game=drift] .drift-pad button{min-height:44px!important;height:44px}html[data-game=drift] .game-header strong{font-size:12px}}
@media(max-width:720px) and (orientation:portrait){html[data-game=drift] .game-header{padding-right:54px}html[data-game=drift] #stage{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html[data-game=drift] .game-header strong{font-size:11px}}
/* Motor Club: showroom cards use the same spacing and white surfaces as the shop. */
html[data-game=drift] .tour-garage{gap:16px}html[data-game=drift] .tour-garage article{border-radius:18px;padding:16px;overflow:hidden}html[data-game=drift] .tour-garage canvas{border-radius:12px;margin-bottom:8px}html[data-game=drift] .tour-stats label{font-size:10px;gap:8px;line-height:1.8}html[data-game=drift] .tour-garage h3{font-size:18px}html[data-game=drift] .tour-garage button{min-height:44px}html[data-game=drift] .tour-balance{font-size:18px;font-weight:750}html[data-game=drift] .tour-events button[aria-pressed=true],html[data-game=drift] .tour-filters button[aria-pressed=true]{outline:2px solid #176bbb;outline-offset:-2px}html[data-game=drift] .tour-loadout canvas{border:1px solid #cbd8e5}html[data-game=drift] .tour-maps canvas{border-radius:12px}@media(max-width:440px){html[data-game=drift] .tour-loadout{grid-template-columns:1fr}html[data-game=drift] .tour-loadout canvas{max-height:230px;object-fit:contain}html[data-game=drift] .tour-garage{grid-template-columns:1fr}html[data-game=drift] .tour-garage canvas{max-height:210px;object-fit:contain}}

/* Frontiers: white shop-like cards, readable on every Tower menu. */
html[data-game=tower] .tower-expansion,html[data-game=tower] .tower-catalog article,html[data-game=tower] .tower-modes button{background:#fff!important;color:#203c49!important;border:1px solid #ccd9df;border-radius:18px;box-shadow:0 5px 18px #244b6410}
html[data-game=tower] .tower-catalog small,html[data-game=tower] .tower-map small{color:#4b636f!important}.tower-menu-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.tower-modes{display:grid;gap:10px}.tower-modes button{text-align:left;padding:17px}.tower-modes button[aria-pressed=true]{outline:2px solid #367e98}.tower-modes b{font-size:19px}.tower-modes p{font-size:13px;margin:7px 0 0}.tower-camera{display:grid;grid-template-columns:1.5fr repeat(4,1fr) 1.8fr;gap:4px}.tower-camera[hidden]{display:none}.tower-camera button{padding:4px 2px;min-width:0;min-height:36px;font-size:10px}.tower-map canvas{aspect-ratio:3/4}

html[data-game=tower] .game-header>div{flex:1;min-width:0}html[data-game=tower] .game-header>.icon{flex:0 0 42px;width:42px;height:42px;margin-left:4px}html[data-game=tower] .game-header strong{white-space:normal}

/* World Tour: legible scorecards and touch controls on light surfaces. */
.golf-scorecard{background:#fff!important;color:#172b39!important;border:1px solid #cbd6dc;border-radius:16px;padding:16px;overflow-x:auto}.golf-scorecard table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.golf-scorecard th,.golf-scorecard td{padding:10px 6px;text-align:left;border-bottom:1px solid #dae3e8;color:#172b39}.golf-scorecard .you{background:#e4f3eb}.golf-equipment article{min-width:0}.golf-equipment [aria-pressed=true]{border:2px solid #236c55;background:#e4f3eb;color:#153e32}.golf-menu-actions{display:flex;flex-wrap:wrap;gap:8px}.golf-menu-actions>button{flex:1 1 100px}#golfNextHole[hidden]{display:none!important}

html[data-game=golf] .game-header>div{flex:1;min-width:0}html[data-game=golf] .game-header>.icon{position:static!important;flex:0 0 44px;width:44px;height:44px}html[data-game=golf] .game-header{gap:6px}html[data-game=golf] .game-header strong{font-size:12px;line-height:1.3}html[data-game=golf] #stage{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Six large pedals wrap on narrow phones; all preserve independent pointer ownership. */
.drift-pad.manual-throttle{grid-template-columns:repeat(6,minmax(0,1fr))}
.drift-pad #throttle{background:#297563;color:#fff}
@media(max-width:520px){.drift-pad.manual-throttle{grid-template-columns:repeat(3,minmax(0,1fr))}.drift-pad.manual-throttle button{min-height:48px}}
