:root{--bg:#0d1122;--panel:#171c33;--panel2:#202742;--text:#f7f8ff;--muted:#9ea7c4;--violet:#8b5cf6;--cyan:#58e7e1;--gold:#ffd166;--line:rgba(255,255,255,.09);--shadow:0 24px 70px rgba(0,0,0,.35)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 70% 0,#252453 0,transparent 31%),linear-gradient(140deg,#0c1020,#11162b 60%,#0d1120);color:var(--text);font-family:'DM Sans',sans-serif;min-height:100vh}.stars{position:fixed;inset:0;pointer-events:none;opacity:.3;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:65px 65px;mask-image:linear-gradient(to bottom,#000,transparent 75%)}button{font:inherit}.app-shell{display:grid;grid-template:78px 1fr/220px 1fr;min-height:100vh}.topbar{grid-column:1/-1;display:flex;align-items:center;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(10,14,29,.75);backdrop-filter:blur(20px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;width:192px;background:none;border:0;color:white;font:700 19px 'Space Grotesk';letter-spacing:1px;cursor:pointer}.brand>span:last-child span{color:var(--cyan)}.brand-cube{width:30px;height:30px;background:linear-gradient(135deg,var(--cyan),var(--violet));transform:rotate(30deg);border-radius:7px;box-shadow:0 0 22px #58e7e170}.brand-cube i{display:block;width:12px;height:12px;margin:9px;background:#10152a;border-radius:3px}.wallet{display:flex;align-items:center;gap:10px;margin-left:auto}.currency{height:46px;min-width:132px;padding:7px 14px;display:grid;grid-template-columns:26px 1fr;grid-template-rows:18px 14px;background:#151a30;border:1px solid var(--line);border-radius:13px}.currency>span{grid-row:1/3;align-self:center}.currency strong{font-size:15px}.currency small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.coin-icon{color:var(--gold);font-size:23px}.cubit-icon{color:var(--cyan);font-size:21px}.icon-button{border:0;background:var(--violet);color:white;border-radius:12px;width:42px;height:42px;font-size:23px;cursor:pointer}.profile{display:flex;align-items:center;gap:9px;margin-left:22px;padding-left:22px;border:0;border-left:1px solid var(--line);background:none;color:white;text-align:left;cursor:pointer}.profile span:last-child{display:flex;flex-direction:column}.profile small{color:var(--muted)}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#58e7e1,#7657ea);font-weight:800}.sidebar{padding:24px 16px;border-right:1px solid var(--line);background:rgba(12,16,32,.7);position:sticky;top:78px;height:calc(100vh - 78px);display:flex;flex-direction:column}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:var(--muted);height:48px;border-radius:12px;display:flex;align-items:center;gap:13px;padding:0 14px;cursor:pointer;font-weight:600}.nav-item span{font-style:normal;font-size:20px}.nav-item em{font-style:normal}.nav-item:hover,.nav-item.active{color:white;background:linear-gradient(90deg,rgba(139,92,246,.3),rgba(139,92,246,.06));box-shadow:inset 3px 0 var(--violet)}.daily-card{margin-top:auto;background:linear-gradient(145deg,#272052,#182b46);border:1px solid rgba(88,231,225,.18);padding:17px;border-radius:16px;display:grid;gap:7px}.daily-card span,.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--cyan);font-weight:800}.daily-card strong{font:600 18px 'Space Grotesk'}.small-button{margin-top:4px;border:0;background:#fff;color:#1a1e32;border-radius:8px;padding:8px;font-weight:700;cursor:pointer}.small-button:disabled{opacity:.5}.dev-badge{font-size:9px;color:#5f6885;text-align:center;margin:16px 0 0}main{min-width:0;padding:38px clamp(24px,4vw,62px) 70px;position:relative;z-index:1}.view{display:none;max-width:1320px;margin:auto}.view.active{display:block;animation:enter .35s ease}@keyframes enter{from{opacity:0;transform:translateY(8px)}}.view-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:28px}.view-heading h1{font:700 clamp(32px,4vw,52px)/1.05 'Space Grotesk';margin:8px 0 0;letter-spacing:-2px}.view-heading h1 span{color:transparent;background:linear-gradient(90deg,var(--cyan),#a48aff);background-clip:text}.subtitle{color:var(--muted);margin:10px 0 0}.mission{width:270px;background:rgba(29,36,65,.72);border:1px solid var(--line);padding:17px 20px;border-radius:15px}.mission>span{font-size:9px;color:var(--gold);letter-spacing:1.2px}.mission strong{display:block;margin-top:5px}.mission p{font-size:12px;color:var(--muted);margin:3px 0 10px}.mission-progress,.xp-track{height:6px;background:#0c1020;border-radius:8px;overflow:hidden}.mission-progress i,.xp-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--violet),var(--cyan));border-radius:inherit;transition:width .35s}.mission small{display:block;text-align:right;color:var(--muted);margin-top:5px}.world-layout{display:grid;grid-template-columns:minmax(600px,1fr) 260px;gap:20px}.game-panel,.glass-card{border:1px solid var(--line);background:rgba(24,29,52,.78);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.island{height:470px;position:relative;overflow:hidden;background:radial-gradient(circle at 68% 24%,rgba(88,231,225,.19),transparent 22%),radial-gradient(circle at 20% 30%,rgba(139,92,246,.25),transparent 25%),linear-gradient(#121936,#192140 58%,#10162d)}.island:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:49px 49px;opacity:.25}.planet{position:absolute;border-radius:50%}.planet-one{width:80px;height:80px;right:10%;top:11%;background:linear-gradient(135deg,#f2c75b,#ce735a);box-shadow:-18px -10px 40px #f4ae6860}.planet-two{width:18px;height:18px;left:16%;top:14%;background:#7e80fa;box-shadow:0 0 15px #8085ff}.floating-land{position:absolute;background:linear-gradient(155deg,#63d5a0,#267a6d 45%,#354467 46%,#171f3a);clip-path:polygon(12% 18%,65% 0,100% 25%,80% 66%,53% 100%,18% 75%,0 42%);filter:drop-shadow(0 30px 25px #0008)}.land-main{width:480px;height:230px;left:18%;top:38%;transform:rotate(-3deg)}.land-back{width:220px;height:110px;right:0;top:25%;opacity:.55}.portal{position:absolute;width:52px;height:70px;border:8px solid var(--violet);border-radius:50% 50% 12px 12px;left:55%;top:10%;box-shadow:inset 0 0 20px #58e7e1,0 0 25px #8b5cf6;background:#15213c}.tree{position:absolute;width:14px;height:50px;background:#7d5843}.tree:after{content:"";position:absolute;width:47px;height:60px;background:#58b785;clip-path:polygon(50% 0,100% 100%,0 100%);left:-17px;top:-35px}.t1{left:26%;top:16%}.t2{right:18%;top:23%;transform:scale(.8)}.resource{position:absolute;width:48px;height:48px;border:0;background:transparent;cursor:pointer;z-index:4;filter:drop-shadow(0 0 10px currentColor);transition:.2s}.resource:hover{transform:scale(1.18)}.resource:active{transform:scale(.8)}.resource i{display:block;width:32px;height:42px;margin:auto;clip-path:polygon(50% 0,90% 26%,76% 88%,48% 100%,13% 76%,8% 24%);background:linear-gradient(130deg,#e8ffff,currentColor 45%,#4059bc)}.crystal{color:#67ecf2}.wood{color:#b4744a}.wood i{clip-path:polygon(30% 0,70% 0,83% 100%,17% 100%);background:linear-gradient(90deg,#6e3e2b,#c18155,#6e3e2b)}.stone{color:#8991aa}.stone i{height:30px;clip-path:polygon(20% 5%,80% 0,100% 70%,70% 100%,4% 82%);background:linear-gradient(135deg,#c8cde0,#626b89)}.r1{left:32%;top:60%}.r2{left:66%;top:47%}.r3{left:45%;top:42%}.r4{left:72%;top:68%}.explorer{position:absolute;left:51%;top:57%;z-index:5;width:32px;height:50px;background:#e7e9f3;border-radius:10px 10px 6px 6px;box-shadow:0 8px 20px #000}.explorer:before{content:"";position:absolute;width:28px;height:28px;border-radius:50%;background:#76e2dd;top:-20px;left:2px;box-shadow:inset -8px 0 #5a55b5}.explorer i{position:absolute;width:20px;height:26px;background:#6b4ae5;left:6px;top:9px;border-radius:4px}.game-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:4;background:#0a0e1fc9;padding:8px 15px;border-radius:20px;color:#bdc5db;font-size:11px}.hotbar{min-height:86px;padding:13px 16px;display:flex;gap:10px;align-items:center}.tool,.resource-count{height:60px;min-width:78px;border:1px solid var(--line);background:#11162b;border-radius:12px;display:grid;grid-template-columns:30px 1fr;align-content:center;padding:7px 10px}.tool.active{border-color:var(--violet)}.tool>span{font-size:22px;grid-row:1/3}.tool small,.resource-count small{color:var(--muted);font-size:9px;text-transform:uppercase}.resource-count>span{grid-row:1/3;align-self:center;width:18px;height:22px;clip-path:polygon(50% 0,100% 35%,80% 100%,20% 100%,0 35%)}.gem-dot{background:var(--cyan)}.wood-dot{background:#b4744a}.stone-dot{background:#8d93a8}.primary-button,.secondary-button{border:0;border-radius:11px;padding:13px 17px;font-weight:700;cursor:pointer}.primary-button{background:linear-gradient(100deg,#7655e8,#9c62ef);color:#fff;box-shadow:0 8px 24px #7655e830}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{background:#252b46;color:#dce1f4;border:1px solid var(--line)}.hotbar>.primary-button{margin-left:auto}.side-stack{display:grid;gap:20px}.glass-card{padding:22px}.level-card{text-align:center}.level-ring{width:118px;height:118px;border-radius:50%;display:grid;place-content:center;margin:18px auto;background:radial-gradient(circle,#1b2140 56%,transparent 58%),conic-gradient(var(--cyan) 35%,#303754 0);box-shadow:0 0 32px #58e7e118}.level-ring strong{font:700 37px 'Space Grotesk'}.level-ring small{font-size:9px;color:var(--muted)}.level-card h3{font-size:15px}.xp-row{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:17px 0 7px}.activity-card{min-height:190px}.activity-card p{font-size:12px;color:var(--muted)}.activity-item{display:flex;gap:10px;margin:15px 0}.activity-item i{width:8px;height:8px;border-radius:50%;background:var(--gold);margin-top:5px}.activity-item div{display:grid;font-size:11px}.activity-item span{color:var(--muted)}.progress-hero{display:flex;align-items:center;padding:35px;gap:35px;background:linear-gradient(115deg,rgba(88,231,225,.1),rgba(139,92,246,.13))}.big-level{width:135px;height:135px;border-radius:28px;background:linear-gradient(145deg,var(--violet),#4f64bd);display:grid;place-content:center;text-align:center;box-shadow:0 15px 40px #7255e74a}.big-level span{font-size:10px;letter-spacing:2px}.big-level strong{font:700 58px 'Space Grotesk'}.progress-copy{flex:1}.progress-copy h2{font:600 28px 'Space Grotesk';margin:0}.progress-copy p,.progress-copy small{color:var(--muted)}.xp-track.large{height:10px;margin:17px 0 8px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0 38px}.stats-grid article{border:1px solid var(--line);background:#181d34;border-radius:15px;padding:20px;display:grid;grid-template-columns:35px 1fr}.stats-grid article>span{grid-row:1/3;color:var(--cyan);font-size:23px}.stats-grid strong{font-size:25px}.stats-grid small{color:var(--muted)}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.section-title h2{margin:7px 0 0}.secure-label,.dev-notice{color:#70dbb2;border:1px solid #70dbb24a;border-radius:8px;padding:8px 11px;font-size:10px;letter-spacing:1px}.transaction-list{padding:0}.transaction-row{display:grid;grid-template-columns:45px 1fr 120px 140px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.transaction-row:last-child{border:0}.tx-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#252b46}.transaction-row small{color:var(--muted)}.transaction-row .amount{text-align:right;font-weight:700}.amount.positive{color:#6fe0ae}.amount.negative{color:#ff8c9e}.transaction-row time{text-align:right;color:var(--muted);font-size:11px}.upgrade-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.upgrade-card{display:grid;grid-template-columns:180px 1fr;gap:25px}.upgrade-visual{min-height:240px;border-radius:15px;display:grid;place-items:center;font-size:90px;background:radial-gradient(circle,#594eb6,#242849 65%)}.bag-art{background:radial-gradient(circle,#2c978f,#242849 65%)}.upgrade-card h2{font:600 25px 'Space Grotesk';margin:7px 0}.upgrade-card p{color:var(--muted);min-height:42px}.level-pips{display:flex;gap:7px;margin:18px 0}.level-pips i{width:28px;height:6px;border-radius:5px;background:#343b58}.level-pips i.on{background:var(--cyan)}.upgrade-effect{padding:13px;background:#11162b;border-radius:10px;margin-bottom:15px;font-size:13px}.upgrade-card .primary-button{width:100%}.job-card{margin-bottom:20px;padding:19px 23px;border:1px solid #8b5cf67a;background:linear-gradient(100deg,#27244a,#172a3d);border-radius:15px;display:flex;align-items:center;gap:20px}.job-card>div:nth-child(2){flex:1}.job-card p{color:var(--muted);margin:4px 0}.job-card time{font:700 22px 'Space Grotesk';color:var(--cyan)}.fair-play{display:flex;gap:15px;margin-top:22px;padding:19px 24px;border:1px solid rgba(88,231,225,.2);background:rgba(88,231,225,.06);border-radius:15px}.fair-play>span{font-size:25px;color:var(--cyan)}.fair-play p{margin:4px 0;color:var(--muted)}.shop-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:22px}.shop-tabs button{border:0;background:transparent;color:var(--muted);padding:12px 17px;text-transform:capitalize;cursor:pointer;border-bottom:2px solid transparent}.shop-tabs button.active{color:white;border-color:var(--cyan)}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.product-card{border:1px solid var(--line);background:#181d34;border-radius:17px;overflow:hidden;position:relative}.product-art{height:145px;display:grid;place-items:center;font-size:58px;background:radial-gradient(circle,#4b4d9a,#202642 68%)}.product-card:nth-child(2n) .product-art{background:radial-gradient(circle,#277e80,#202642 68%)}.product-body{padding:18px}.product-body h3{font:600 19px 'Space Grotesk';margin:0}.product-body p{height:38px;color:var(--muted);font-size:12px}.product-buy{display:flex;justify-content:space-between;align-items:center}.product-buy strong{color:var(--gold)}.product-owned{color:#74deb2;font-size:12px}.dev-ribbon{position:absolute;right:8px;top:8px;background:#0e1326c9;border-radius:6px;padding:5px 8px;font-size:8px;color:var(--cyan)}.season-hero{min-height:290px;padding:45px;border-radius:22px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;background:radial-gradient(circle at 85% 30%,#7053df 0,transparent 25%),linear-gradient(115deg,#172a49,#292154);box-shadow:var(--shadow)}.season-hero h1{font:700 49px 'Space Grotesk';margin:5px 0}.season-hero p{color:#c5cbe0}.season-orb{font-size:130px;color:var(--cyan);text-shadow:0 0 50px var(--cyan);margin-right:8%}.season-progress{display:flex;gap:15px;align-items:center;margin-top:25px}.season-progress>div:first-child{display:grid;text-align:center;background:#10162f;padding:10px 18px;border-radius:10px}.season-progress>div:first-child strong{font-size:25px}.season-progress small{font-size:8px;color:var(--muted)}.season-progress>div:last-child{width:300px}.season-progress span{font-size:11px}.pass-labels,.season-reward{display:grid;grid-template-columns:100px 1fr 1fr;gap:15px}.pass-labels{padding:30px 20px 10px;color:var(--muted);font-size:10px;letter-spacing:1px}.season-track{display:grid;gap:10px}.season-reward>div{background:#181d34;border:1px solid var(--line);border-radius:12px;padding:17px}.season-reward .tier{display:grid;place-content:center;text-align:center;color:var(--cyan);font-size:22px}.season-reward .premium{border-color:#8b5cf66b;background:linear-gradient(90deg,#211e3e,#252148)}.premium-card{margin-top:25px;display:flex;justify-content:space-between;align-items:center}.premium-card h2{margin:7px 0}.premium-card p{color:var(--muted);margin:0}.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center}.modal.open{display:grid}.modal-backdrop{position:absolute;inset:0;background:#070a14d9;backdrop-filter:blur(6px)}.modal-card{position:relative;width:min(470px,calc(100vw - 30px));background:#1b2039;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow);animation:enter .25s}.modal-close{position:absolute;right:15px;top:15px;border:0;background:#2a304c;color:#fff;border-radius:50%;width:31px;height:31px;cursor:pointer}.modal-card h2{font:600 27px 'Space Grotesk';margin:10px 0}.modal-card>p{color:var(--muted)}.modal-summary{padding:15px;background:#11162b;border-radius:11px;display:flex;justify-content:space-between}.modal-card .parent-note{font-size:11px;color:#8e97b4}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.toast{position:fixed;z-index:200;right:25px;bottom:25px;max-width:360px;background:#f4f5fb;color:#171b2e;padding:14px 18px;border-radius:12px;box-shadow:var(--shadow);font-weight:600;transform:translateY(80px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}.toast.error{background:#ffbdc6}
@media(max-width:1050px){.app-shell{grid-template-columns:82px 1fr}.brand{width:54px}.brand>span:last-child{display:none}.sidebar{padding:20px 10px}.nav-item{justify-content:center}.nav-item em,.daily-card,.dev-badge{display:none}.world-layout{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr}.upgrade-card{grid-template-columns:120px 1fr}.catalog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.app-shell{display:block}.topbar{padding:0 13px;height:68px}.profile{display:none}.currency{min-width:auto;width:96px}.currency small{display:none}.sidebar{position:fixed;z-index:30;top:auto;bottom:0;left:0;right:0;width:auto;height:64px;border:0;border-top:1px solid var(--line);padding:7px;background:#10152a}.sidebar nav{display:flex;justify-content:space-around}.nav-item{height:50px;width:55px;padding:0;flex-direction:column;gap:0;font-size:10px}.nav-item em{display:block}.nav-item span{font-size:17px}.nav-item.active{box-shadow:inset 0 -2px var(--violet)}main{padding:25px 14px 90px}.view-heading{display:block}.mission{width:100%;margin-top:18px}.world-layout{display:block}.side-stack{grid-template-columns:1fr;margin-top:16px}.island{height:390px}.land-main{left:2%;transform:scale(.8)}.hotbar{flex-wrap:wrap}.hotbar>.primary-button{width:100%}.resource-count{flex:1}.tool{display:none}.stats-grid{grid-template-columns:1fr 1fr}.progress-hero{padding:20px;gap:18px}.big-level{width:95px;height:95px}.upgrade-grid,.catalog-grid{grid-template-columns:1fr}.upgrade-card{grid-template-columns:1fr}.upgrade-visual{min-height:150px}.transaction-row{grid-template-columns:38px 1fr 80px}.transaction-row time{display:none}.season-hero{padding:28px}.season-orb{display:none}.season-hero h1{font-size:36px}.season-progress>div:last-child{width:190px}.pass-labels,.season-reward{grid-template-columns:65px 1fr 1fr}.premium-card{display:block}.premium-card button{margin-top:18px}.dev-notice{display:block;margin-top:15px;width:max-content}.shop-tabs{overflow:auto}}

/* Monde voxel 3D */
.voxel-game{height:560px;background:#79b9e8;isolation:isolate}.voxel-game #voxel-canvas,.voxel-game #voxel-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.crosshair{position:absolute;z-index:6;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);pointer-events:none}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#fff;box-shadow:0 1px 2px #000}.crosshair:before{left:8px;top:0;width:2px;height:18px}.crosshair:after{left:0;top:8px;width:18px;height:2px}.game-start{position:absolute;z-index:8;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(#10162b3d,#0c1020ce);backdrop-filter:blur(3px);text-align:center;transition:.2s}.game-start.hidden{opacity:0;pointer-events:none}.game-start .brand-cube{display:block;margin-bottom:24px;width:48px;height:48px}.game-start .brand-cube i{width:18px;height:18px;margin:15px}.game-start h2{font:700 30px 'Space Grotesk';margin:0}.game-start p{color:#d8e2ec;margin:8px 0 22px}.controls-help{position:absolute;z-index:7;left:14px;top:14px;display:flex;gap:7px;pointer-events:none}.controls-help span,.selected-block{background:#0b1022bd;color:#e9eef7;border:1px solid #ffffff24;border-radius:7px;padding:7px 9px;font-size:9px;backdrop-filter:blur(6px)}kbd{font:700 9px 'DM Sans';color:var(--cyan)}.selected-block{position:absolute;z-index:7;right:14px;bottom:14px}.selected-block small{color:#9ea7c4;margin-left:7px}.mobile-controls{display:none}.voxel-game:focus-within{outline:2px solid var(--cyan)}
.fallback-help{position:absolute;z-index:7;left:50%;top:54px;transform:translate(-50%,-8px);opacity:0;pointer-events:none;background:#0b1022cf;border:1px solid #58e7e14a;border-radius:20px;padding:7px 13px;font-size:10px;color:#dceaf2;transition:.25s}.fallback-help.show{opacity:1;transform:translate(-50%,0);animation:compatibleHelp 4s forwards}@keyframes compatibleHelp{0%,70%{opacity:1}100%{opacity:0}}
.game-mode main{padding:14px 18px 24px}.game-mode #view-world{max-width:none}.game-mode .world-heading,.game-mode .side-stack{display:none}.game-mode .world-layout{display:block}.game-mode .game-panel{position:relative;border-radius:12px}.game-mode .voxel-game{height:calc(100vh - 193px);min-height:520px}.game-mode .hotbar{position:absolute;z-index:9;left:50%;bottom:18px;transform:translateX(-50%);min-height:70px;padding:6px;background:#101421d9;border:2px solid #687080;border-radius:5px;backdrop-filter:blur(5px)}.game-mode .hotbar>.primary-button{display:none}.game-mode .tool,.game-mode .resource-count{height:56px;border-radius:3px;border:2px solid #3e4554;background:#202635;min-width:70px}.game-mode .tool.active{border:3px solid #eef4ff;transform:translateY(-3px)}.survival-hud{position:absolute;z-index:7;left:50%;bottom:91px;transform:translateX(-50%);display:flex;width:380px;justify-content:space-between;font-size:17px;letter-spacing:1px;text-shadow:1px 2px #2c1010}.hearts{color:#f05058}.hunger{color:#d49a4b}.game-title{position:absolute;z-index:7;left:18px;bottom:18px;display:grid;text-shadow:0 2px 5px #000}.game-title strong{font:800 22px 'Space Grotesk';letter-spacing:2px}.game-title small{font-size:8px;letter-spacing:1.5px;color:#dce4ea}.game-mode .crosshair:before,.game-mode .crosshair:after{background:#fff;mix-blend-mode:difference}.game-mode .selected-block{bottom:auto;top:14px}.game-mode .controls-help{top:auto;bottom:16px;left:auto;right:14px}.game-mode .fallback-help{top:18px}
.world-status{position:absolute;z-index:7;left:18px;top:18px;background:#162119d9;border:1px solid #8dce78;color:#dfffd4;border-radius:4px;padding:7px 10px;font:700 9px 'DM Sans';letter-spacing:1px}
.world-clock{position:absolute;z-index:7;left:18px;top:52px;background:#11182bcf;border:1px solid #ffffff38;color:#fff6ce;border-radius:4px;padding:7px 11px;font:700 11px 'Space Grotesk';letter-spacing:1px}
.game-mode .topbar{height:64px;background:#17191d;border-bottom:2px solid #070809}.game-mode .brand{font-size:22px}.game-mode .brand-cube{border-radius:3px;transform:rotate(14deg);background:#fff;box-shadow:none}.game-mode .brand-cube i{background:#17191d;border-radius:1px}.game-mode .sidebar{top:64px;height:calc(100vh - 64px);background:#202226;border-right:2px solid #0e0f11}.game-mode .nav-item{border-radius:6px}.game-mode .nav-item:hover,.game-mode .nav-item.active{background:#34373d;box-shadow:inset 4px 0 #fff}.game-mode main{background:#111318}.game-mode .game-panel{border:2px solid #050608;box-shadow:0 8px 30px #0008}.social-menu{position:absolute;z-index:10;left:50%;top:14px;transform:translateX(-50%);display:flex;gap:7px}.social-menu button{height:38px;border:0;border-radius:7px;background:#17191ddd;color:#fff;padding:0 13px;font-weight:700;box-shadow:0 2px 8px #0007;cursor:pointer}.social-menu button:hover{background:#fff;color:#15171a}.social-menu span{margin-left:5px;font-size:11px}.players-panel{position:absolute;z-index:9;right:14px;top:60px;width:205px;background:#17191dd9;color:#fff;border-radius:7px;overflow:hidden;box-shadow:0 4px 15px #0007;backdrop-filter:blur(8px)}.players-panel header{display:flex;justify-content:space-between;padding:9px 12px;background:#292c31;font-size:10px;letter-spacing:1px}.players-panel header span{background:#51555d;padding:1px 6px;border-radius:8px}.players-panel>div{display:grid;grid-template-columns:35px 1fr;padding:10px;align-items:center}.mini-avatar{grid-row:1/3;display:grid;place-items:center;width:29px;height:29px;border-radius:5px;background:#35a7e8;color:#fff;font-weight:800}.players-panel b{font-size:11px}.players-panel small{font-size:7px;color:#6ce29b}.game-chat{position:absolute;z-index:11;left:16px;bottom:62px;width:330px;max-height:230px;padding:10px;background:#121418e8;border-radius:8px;display:none;overflow:auto;box-shadow:0 4px 18px #0008}.game-chat.open{display:block}.game-chat>div{display:grid;grid-template-columns:70px 1fr;font-size:11px;padding:5px}.game-chat>div b{color:#56b8f0}.game-chat>div span{color:#e5e7ea}.game-chat form{display:flex;margin-top:8px}.game-chat input{min-width:0;flex:1;border:1px solid #50545b;border-radius:5px 0 0 5px;background:#272a30;color:#fff;padding:9px}.game-chat form button{border:0;border-radius:0 5px 5px 0;background:#fff;color:#17191d;font-weight:700}.game-mode .hotbar{border:3px solid #090a0c;background:#23262be8;border-radius:7px}.game-mode .tool,.game-mode .resource-count{background:#383c43;border-color:#101114}.game-mode .tool.active{border-color:#fff;box-shadow:0 0 0 2px #111}.game-mode .world-status,.game-mode .world-clock{border:0;border-radius:6px;background:#17191de8;color:#fff}.game-mode .world-status{top:105px}.game-mode .world-clock{top:137px}
.storage-hud{position:absolute;z-index:9;right:14px;top:255px;width:205px;padding:11px;background:#17191de8;color:#fff;border-radius:7px;box-shadow:0 4px 15px #0007;backdrop-filter:blur(8px)}.storage-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.8px}.storage-heading>span{color:#bfc6d2}.storage-heading strong{font-size:13px}.storage-track{height:7px;margin:9px 0;background:#08090b;border-radius:5px;overflow:hidden}.storage-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#35a7e8,#72e0ad);transition:width .25s}.storage-hud button{width:100%;border:1px solid #ffffff35;border-radius:5px;background:#353940;color:#fff;padding:7px;font-size:10px;font-weight:800;cursor:pointer}.storage-hud button:hover:not(:disabled){background:#fff;color:#17191d}.storage-hud button:disabled{opacity:.55;cursor:not-allowed}
.build-palette{position:absolute;z-index:10;left:50%;bottom:103px;transform:translateX(-50%);display:flex;gap:4px;padding:5px;background:#17191de8;border:2px solid #090a0c;border-radius:7px}.build-palette button{position:relative;width:54px;height:49px;border:2px solid #3b3e44;border-radius:4px;background:#292c31;color:#fff;cursor:pointer}.build-palette button.active{border-color:#fff;transform:translateY(-3px);box-shadow:0 0 0 2px #111}.build-palette i{display:block;width:22px;height:22px;margin:auto;background:#8d623e;border-radius:2px}.build-palette button:nth-child(2) i{background:#92999e}.build-palette button:nth-child(3) i{background:#9a6538}.build-palette button:nth-child(4) i{background:#c99657}.build-palette button:nth-child(5) i{background:#b75845}.build-palette button:nth-child(6) i{background:#9fe5ef;opacity:.7}.build-palette button:nth-child(7) i{background:#4d5f83}.build-palette button:nth-child(8) i{background:#e8e8e2}.build-palette kbd{position:absolute;left:3px;top:2px;color:#c7ccd4}.build-palette span{display:block;font-size:7px;margin-top:2px;color:#cdd1d8}.game-mode .survival-hud{bottom:164px}
.build-palette>strong{writing-mode:vertical-rl;transform:rotate(180deg);font-size:7px;letter-spacing:1px;color:#aeb4bf;text-align:center;padding:3px}.build-palette button[data-block="dirt"] i{background:#806044}.build-palette button[data-block="stone"] i{background:#92999e}.build-palette button[data-block="wood"] i{background:#8b5c36}.build-palette button[data-block="plank"] i{background:#c99657}.build-palette button[data-block="brick"] i{background:#b75845}.build-palette button[data-block="glass"] i{background:#9fe5ef;opacity:.7}.build-palette button[data-block="roof"] i{background:#4d5f83}.build-palette button[data-block="white"] i{background:#e8e8e2}.build-palette button[data-block="door"] i{background:linear-gradient(90deg,#805438 82%,#d7b05b 83%)}.build-palette button[data-block="window"] i{background:linear-gradient(90deg,#594737 15%,#b7e2e8 16%,#b7e2e8 84%,#594737 85%)}.build-palette button[data-block="concrete"] i{background:#aaa9a3}.build-palette button[data-block="metal"] i{background:linear-gradient(135deg,#4c555c,#9ca5aa)}
.build-palette button[data-block="sapling"] i{background:radial-gradient(circle at 50% 28%,#74a866 0 42%,transparent 44%),linear-gradient(90deg,transparent 43%,#735139 44% 57%,transparent 58%)}
.build-palette button[data-block="farmland"] i{background:repeating-linear-gradient(90deg,#633d24 0 4px,#98643b 5px 8px)}.build-palette button[data-block="crop"] i{background:linear-gradient(90deg,transparent 15%,#65ac45 16% 34%,#e6c64f 35% 65%,#65ac45 66% 84%,transparent 85%)}.build-palette button[data-block="water"] i{background:#36aee8;box-shadow:inset 0 5px #8de8ff}.build-palette button[data-block="lava"] i{background:linear-gradient(#fff16a,#ff8a16,#d9330b);box-shadow:0 0 7px #ff681b}.build-palette button[data-block="fire"] i{background:linear-gradient(135deg,transparent 20%,#ffdb45 21% 48%,#ff5722 49% 78%,transparent 79%)}.build-palette button[data-block="moonstone"] i{background:linear-gradient(135deg,#c4f7ff,#8173e8);box-shadow:0 0 7px #9ceeff}
@media(max-width:720px){.voxel-game{height:470px}.controls-help{display:none}.selected-block{bottom:10px;right:10px}.game-start h2{font-size:24px}.mobile-controls{display:block;position:absolute;z-index:12;inset:0;pointer-events:none}.mobile-controls button{pointer-events:auto;border:1px solid #fff6;background:#11182bbd;color:#fff;width:48px;height:48px;border-radius:13px;font-weight:800}.mobile-pad{position:absolute;left:14px;bottom:88px;width:146px;height:104px}.mobile-pad button{position:absolute}.mobile-pad button:nth-child(1){left:49px;top:0}.mobile-pad button:nth-child(2){left:0;top:51px}.mobile-pad button:nth-child(3){left:49px;top:51px}.mobile-pad button:nth-child(4){left:98px;top:51px}#mobile-jump{position:absolute;right:18px;bottom:92px;border-radius:50%;font-size:22px}#mobile-break{position:absolute;right:75px;bottom:145px;border-radius:50%;font-size:20px}.game-mode .voxel-game{height:calc(100vh - 146px);min-height:440px}.game-mode .hotbar{bottom:10px}.survival-hud{bottom:148px;width:260px;font-size:12px}.game-title{display:none}.world-status{left:10px;top:10px}.build-palette{bottom:72px;max-width:calc(100% - 20px);overflow-x:auto}.build-palette button{min-width:48px}}

/* Une identité unique : le même cube K est utilisé sur le site, Ludopia et dans le monde 3D. */
.brand-cube,.game-mode .brand-cube{position:relative;display:block;flex:0 0 auto;width:38px;height:38px;border:0;border-radius:10px;transform:none;background:url('/medias/kublo-logo-v3.webp') center/cover no-repeat;box-shadow:0 7px 14px #0005,0 0 18px #58e7e14d;clip-path:none}
.brand-cube:before,.brand-cube:after,.brand-cube i,.game-mode .brand-cube i{display:none}
.brand>span:last-child{font-weight:800;letter-spacing:1.8px}.brand>span:last-child span{background:linear-gradient(90deg,#55dfd5,#9b7cf4);background-clip:text;color:transparent}
.game-start .brand-cube{width:82px;height:82px;margin-bottom:24px;border-radius:21px;filter:drop-shadow(0 12px 15px #0006)}
.boots-art{background:radial-gradient(circle,#c56b2e,#242849 65%)}.armor-art{background:radial-gradient(circle,#5374c9,#242849 65%)}
.product-art.item-image{background-image:url('/assets/shop-items-v2.jpg');background-size:400% 500%;background-position:var(--art-x) var(--art-y);background-repeat:no-repeat;font-size:0}.upgrade-visual.pickaxe-art,.upgrade-visual.bag-art,.upgrade-visual.boots-art,.upgrade-visual.armor-art{color:transparent;background-image:url('/assets/shop-items-v2.jpg');background-size:400% 500%;background-repeat:no-repeat}.upgrade-visual.pickaxe-art{background-position:100% 25%}.upgrade-visual.bag-art{background-position:66.666% 100%}.upgrade-visual.boots-art{background-position:0 25%}.upgrade-visual.armor-art{background-position:33.333% 25%}
.item-upgrade{display:grid;gap:5px;min-width:145px;text-align:right}.item-upgrade span{font-size:10px;color:#83e7d5;font-weight:800}.item-upgrade .small-button{margin:0;padding:7px 9px;font-size:9px;background:linear-gradient(100deg,#6654dc,#52bdb8);color:#fff}.item-upgrade b{font-size:10px;color:#ffd166}.product-card:has(.item-upgrade) .product-body p{height:30px}.product-card:has(.item-upgrade) .product-buy{align-items:end}
.item-upgrade .item-equip-button{background:#30384b}.item-upgrade .item-equip-button.equipped{background:#198a70}
.level-pips{flex-wrap:wrap}.level-pips i{flex:0 0 22px}
.survival-hud{display:grid!important;grid-template-columns:repeat(3,118px);gap:5px 8px;width:auto!important;padding:7px;background:#11151cbd;border-radius:8px;backdrop-filter:blur(5px);text-shadow:none!important}.survival-stat{display:grid;grid-template-columns:16px 1fr 25px;align-items:center;gap:4px;font-size:10px}.survival-stat>span{text-align:center}.survival-stat>i{height:6px;background:#050609;border-radius:5px;overflow:hidden}.survival-stat>i b{display:block;width:100%;height:100%;background:#64d69b;transition:width .25s,background .25s}.survival-stat small{text-align:right;color:#eef2f5;font-size:8px}.survival-stat.health>span{color:#ff6670}.survival-stat.health b{background:#ed5360}.survival-stat.hunger>span{color:#e6a94f}.survival-stat.hunger b{background:#cf8b37}.survival-stat.thirst>span{color:#58cbed}.survival-stat.thirst b{background:#35a8df}.survival-stat.stamina>span{color:#ffe36c}.survival-stat.stamina b{background:#e5cf49}.survival-stat.oxygen>span{color:#a9f3ff}.survival-stat.oxygen b{background:#7dddeb}.survival-stat.temperature>span{color:#ff8b55}.survival-stat.temperature b{background:linear-gradient(90deg,#55bfe8,#70d19a,#f07548)}
.game-panel:fullscreen{width:100vw;height:100vh;border:0!important;border-radius:0!important;background:#080a0d}.game-panel:fullscreen .voxel-game{height:100vh!important;min-height:100vh!important;border-radius:0}.game-panel:fullscreen .hotbar{position:absolute;z-index:15;left:50%;bottom:14px;transform:translateX(-50%);display:flex;background:#17191de8;border:3px solid #090a0c;border-radius:7px}.game-panel:fullscreen .hotbar>.primary-button{display:block}.game-panel:fullscreen .build-palette{bottom:96px}.game-panel:fullscreen .survival-hud{bottom:158px}.game-panel:fullscreen .game-title{bottom:24px}.game-panel:fullscreen .controls-help{bottom:20px}.game-panel:fullscreen .social-menu{max-width:calc(100vw - 28px);overflow-x:auto}.game-panel:fullscreen .storage-hud{top:255px}
.voxel-game.raining:not(.underwater) #world-clock:after{content:" · PLUIE";color:#9edfff}.voxel-game.raining:before{opacity:.08;background-image:linear-gradient(105deg,transparent 48%,#d8f5ff 49% 50%,transparent 51%);background-size:37px 70px;animation:rainGlass .45s linear infinite}@keyframes rainGlass{to{background-position:18px 70px}}
.toast{position:fixed;z-index:200;right:18px;bottom:18px;width:min(330px,calc(100vw - 36px));display:grid;gap:8px;pointer-events:none;transform:none;opacity:1;background:none;padding:0;box-shadow:none}.game-alert{pointer-events:auto;display:grid;grid-template-columns:28px 1fr 22px;align-items:center;gap:8px;padding:10px 11px;background:#f5f8fcf2;color:#172033;border-left:3px solid #45bcae;border-radius:9px;box-shadow:0 8px 25px #0005;opacity:0;transform:translateX(22px);transition:.22s}.game-alert.show{opacity:1;transform:none}.game-alert.error{background:#fff1f2f2;border-color:#ee5b68}.game-alert>span{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#d7f5ef;color:#168878;font-weight:900}.game-alert.error>span{background:#ffd8dd;color:#be3443}.game-alert p{margin:0;font-size:11px;font-weight:700;line-height:1.3}.game-alert button{border:0;background:none;color:#7b8493;font-size:17px;cursor:pointer;padding:0}
.voxel-game:after{content:"";position:absolute;z-index:5;inset:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 18% 24%,#d8ffff75 0 2px,transparent 3px),radial-gradient(circle at 76% 68%,#d8ffff55 0 3px,transparent 4px),linear-gradient(#087ba34d,#063c697d);background-size:90px 110px,130px 150px,100% 100%;transition:opacity .3s}.voxel-game.underwater:after{opacity:1;animation:underwaterDrift 5s linear infinite}.voxel-game.underwater #world-clock:after{content:" · SOUS L’EAU";color:#8deaff}@keyframes underwaterDrift{to{background-position:12px -45px,-18px -60px,0 0}}
.object-panel{position:absolute;z-index:18;left:50%;top:62px;width:min(610px,calc(100% - 28px));max-height:calc(100% - 150px);transform:translate(-50%,-12px);display:none;background:#15191fee;color:#fff;border:1px solid #ffffff24;border-radius:10px;box-shadow:0 15px 45px #0009;backdrop-filter:blur(12px);overflow:hidden}.object-panel.open{display:block;animation:objectOpen .2s ease forwards}@keyframes objectOpen{to{transform:translate(-50%,0)}}.object-panel header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:#292e36}.object-panel header div{display:grid}.object-panel header small,.object-panel h3{font-size:8px;letter-spacing:1.4px;color:#83e7d5}.object-panel header button{width:28px;height:28px;border:0;border-radius:6px;background:#444a54;color:#fff;font-size:18px;cursor:pointer}#object-panel-content{padding:13px;max-height:calc(100vh - 220px);overflow:auto}.object-panel h3{margin:4px 0 8px}.quick-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:14px}.quick-object{position:relative;min-width:0;height:67px;padding:5px;border:1px solid #3d444f;border-radius:6px;background:#242932;color:#fff;cursor:pointer;overflow:hidden}.quick-object:hover,.quick-object.equipped{border-color:#74e0cf;background:#303945}.quick-object i{display:block;width:31px;height:31px;margin:0 auto 4px;border-radius:4px;background:#806044}.quick-object span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}.quick-object b{position:absolute;right:3px;top:3px;color:#6ce0b1}.owned-object i{width:42px;height:42px;margin:-1px auto 1px;background-image:url('/assets/shop-items-v1.png');background-size:400% 400%;background-position:var(--art-x) var(--art-y)}.quick-object [data-block-art="stone"]{background:#92999e}.quick-object [data-block-art="wood"]{background:#8b5c36}.quick-object [data-block-art="plank"]{background:#c99657}.quick-object [data-block-art="brick"]{background:#b75845}.quick-object [data-block-art="glass"],.quick-object [data-block-art="water"]{background:#65cfea}.quick-object [data-block-art="lava"],.quick-object [data-block-art="fire"]{background:linear-gradient(#ffe765,#ef4b18)}.quick-object [data-block-art="crop"],.quick-object [data-block-art="sapling"]{background:#68a94f}.quick-object [data-block-art="moonstone"]{background:linear-gradient(135deg,#bcf6ff,#7766dc)}.empty-objects{grid-column:1/-1;color:#9ca6b7;font-size:10px}@media(max-width:720px){.quick-grid{grid-template-columns:repeat(4,1fr)}.object-panel{top:55px;max-height:calc(100% - 100px)}}
.home-panel{position:absolute;z-index:18;right:14px;top:62px;width:min(340px,calc(100% - 28px));display:none;background:#15191ff2;color:#fff;border:1px solid #ffffff24;border-radius:10px;box-shadow:0 15px 45px #0009;backdrop-filter:blur(12px);overflow:hidden}.home-panel.open{display:block}.home-panel header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:#292e36}.home-panel header div{display:grid}.home-panel header small,.home-panel h3{font-size:8px;letter-spacing:1.3px;color:#83e7d5}.home-panel header button{width:28px;height:28px;border:0;border-radius:6px;background:#444a54;color:#fff;font-size:18px}#home-panel-content{padding:15px}#home-panel-content>p{color:#adb6c3;font-size:11px;line-height:1.4}.home-panel .primary-button{width:100%;margin:8px 0 14px}.home-status{display:flex;align-items:center;gap:10px;padding:11px;background:#263238;border-radius:7px}.home-status.locked{background:#342b3c}.home-status>span{font-size:24px;color:#75dec5}.home-status div{display:grid}.home-status small,.access-request small{color:#aab4c1;font-size:8px}.access-request{display:grid;grid-template-columns:1fr auto auto;gap:5px;align-items:center;padding:8px 0;border-top:1px solid #ffffff12}.access-request span{display:grid}.access-request button{border:0;border-radius:5px;padding:6px;background:#3e4752;color:#fff;font-size:8px}.access-request button[data-access="allow"]{background:#23866e}
.game-mode .survival-hud,.game-panel:fullscreen .survival-hud{left:18px;right:auto;top:174px;bottom:auto;transform:none;grid-template-columns:repeat(2,118px);z-index:9}.game-panel:fullscreen .survival-hud{top:148px}@media(max-width:720px){.game-mode .survival-hud,.game-panel:fullscreen .survival-hud{left:10px;top:82px;grid-template-columns:repeat(2,102px);padding:5px}.survival-stat{grid-template-columns:14px 1fr 21px;gap:3px}.survival-stat small{font-size:7px}}
.farm-products{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:14px}.farm-product{display:grid;grid-template-columns:25px 1fr;align-items:center;padding:7px;background:#242932;border-radius:6px}.farm-product>span{grid-row:1/3;font-size:18px}.farm-product b{font-size:13px}.farm-product small{font-size:7px;color:#aab4c1}
#players-list{display:grid!important;grid-template-columns:35px 1fr!important;max-height:155px;overflow:auto}#players-list .mini-avatar{grid-row:auto/span 2}.mini-avatar.rival{background:linear-gradient(135deg,#d75565,#8552cc)}
.ludopia-auth{height:38px;padding:0 12px;border:1px solid #7c5cff77;border-radius:10px;background:#262044;color:#fff;font-size:10px;font-weight:800;cursor:pointer}.ludopia-auth.connected{border-color:#52d6b0;background:#183e39}.ludopia-wallet{min-width:118px}

/* Responsive global : interface jouable du petit mobile au grand écran. */
html{-webkit-text-size-adjust:100%;overflow-x:hidden}body{overflow-x:hidden}button,input{touch-action:manipulation}.game-panel,.voxel-game{max-width:100%}
@media(max-width:1050px){
  .topbar{padding-inline:18px}.ludopia-auth{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upgrade-grid{grid-template-columns:1fr}
  .social-menu{max-width:calc(100% - 28px);overflow-x:auto;scrollbar-width:none}.social-menu::-webkit-scrollbar{display:none}.social-menu button{flex:0 0 auto}
  .players-panel,.storage-hud{width:180px}.game-mode .survival-hud{grid-template-columns:repeat(2,minmax(88px,108px))}
}
@media(max-width:720px){
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.app-shell{min-height:100dvh}
  .topbar{height:60px;padding:env(safe-area-inset-top) 10px 0;gap:7px}.brand{width:42px}.brand-cube,.game-mode .brand-cube{width:30px;height:32px}.wallet{gap:6px;min-width:0}.currency{width:auto;min-width:76px;height:40px;padding:5px 8px;grid-template-columns:21px 1fr}.currency strong{font-size:13px}.coin-icon{font-size:18px}.ludopia-auth{max-width:96px;height:36px;padding:0 8px;font-size:8px}.icon-button{width:36px;height:36px;border-radius:9px}.profile{display:none}
  .sidebar{height:calc(58px + env(safe-area-inset-bottom));padding:5px 5px env(safe-area-inset-bottom);overflow-x:auto}.sidebar nav{min-width:330px;gap:2px}.nav-item{flex:1;min-width:58px;height:48px}.nav-item em{font-size:9px}
  main{padding:18px 10px calc(78px + env(safe-area-inset-bottom))}.view-heading h1{font-size:clamp(28px,10vw,42px);letter-spacing:-1.3px}.view-heading{margin-bottom:18px}.glass-card{padding:16px}
  .game-mode main{padding:0 0 calc(58px + env(safe-area-inset-bottom))}.game-mode .game-panel{border:0;border-radius:0}.game-mode .voxel-game{height:calc(100dvh - 118px - env(safe-area-inset-top));min-height:430px}
  .social-menu{left:8px;right:8px;top:8px;transform:none;max-width:none;padding-bottom:3px}.social-menu button{width:39px;height:36px;padding:0;font-size:16px}.social-menu button span{display:none}
  .players-panel{display:none}.storage-hud{right:8px;top:54px;width:145px;padding:8px}.storage-heading{font-size:8px}.storage-heading strong{font-size:10px}.storage-hud button{padding:6px 4px;font-size:8px}
  .game-mode .world-status{top:54px;left:8px;max-width:calc(100% - 170px);font-size:8px}.game-mode .world-clock{top:82px;left:8px;font-size:8px}
  .game-mode .survival-hud,.game-panel:fullscreen .survival-hud{top:108px;left:8px;grid-template-columns:repeat(2,88px);gap:3px;padding:4px}.survival-stat{grid-template-columns:12px 1fr 18px}.survival-stat small{font-size:6px}
  .build-palette{left:8px;right:8px;bottom:71px;transform:none;max-width:none;padding:4px;scroll-snap-type:x proximity}.build-palette>strong{display:none}.build-palette button{min-width:46px;width:46px;height:45px;scroll-snap-align:start}
  .game-mode .hotbar,.game-panel:fullscreen .hotbar{left:50%;bottom:6px;width:auto;max-width:calc(100% - 12px);min-height:58px;padding:4px;overflow-x:auto}.game-mode .tool,.game-mode .resource-count{min-width:58px;height:48px;padding:5px;font-size:11px}.game-mode .resource-count{grid-template-columns:20px 1fr}.game-mode .tool{display:grid}.hotbar>.primary-button{display:none!important}
  .mobile-pad{left:10px;bottom:132px;transform:scale(.9);transform-origin:left bottom}#mobile-jump{right:12px;bottom:132px}#mobile-break{right:66px;bottom:185px}
  .selected-block{display:none}.game-chat{left:8px;bottom:72px;width:calc(100% - 16px);max-height:45%}.home-panel{inset:52px 8px auto;width:auto;max-height:calc(100% - 120px);overflow:auto}.object-panel{top:50px;width:calc(100% - 16px);max-height:calc(100% - 115px)}#object-panel-content{max-height:calc(100dvh - 185px)}
  .quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.farm-products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-grid{gap:10px}.stats-grid article{padding:14px;grid-template-columns:28px 1fr}.stats-grid strong{font-size:20px}.progress-hero{align-items:flex-start}.progress-copy h2{font-size:21px}
  .section-title{align-items:flex-start;gap:10px}.secure-label{font-size:8px}.transaction-row{padding:13px 10px}.shop-tabs{margin-inline:-10px;padding-inline:10px;scrollbar-width:none}.shop-tabs button{white-space:nowrap}.catalog-grid{grid-template-columns:1fr}.product-card{min-width:0}.upgrade-card{gap:14px}.modal-card{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:24px 18px;overflow:auto}.modal-actions{display:grid;grid-template-columns:1fr 1fr}.toast{right:10px;bottom:calc(68px + env(safe-area-inset-bottom));width:calc(100vw - 20px)}
  .game-panel:fullscreen{height:100dvh}.game-panel:fullscreen .voxel-game{height:100dvh!important;min-height:100dvh!important}.game-panel:fullscreen .build-palette{bottom:70px}.game-panel:fullscreen .hotbar{bottom:5px}.game-panel:fullscreen .mobile-pad{bottom:132px}.game-panel:fullscreen #mobile-jump{bottom:132px}.game-panel:fullscreen #mobile-break{bottom:185px}
}
@media(max-width:390px){
  .ludopia-auth{max-width:76px}.currency{min-width:68px}.icon-button{width:33px}.stats-grid{grid-template-columns:1fr}.progress-hero{display:grid}.big-level{width:78px;height:78px}.big-level strong{font-size:40px}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .game-mode .survival-hud,.game-panel:fullscreen .survival-hud{grid-template-columns:repeat(2,80px)}.storage-hud{width:132px}.game-mode .world-status{max-width:calc(100% - 150px)}
}
@media(max-height:560px) and (orientation:landscape){
  body{padding-bottom:0}.topbar,.sidebar{display:none}.game-mode main{padding:0}.game-mode .voxel-game,.game-panel:fullscreen .voxel-game{height:100dvh!important;min-height:100dvh!important}.game-mode .survival-hud,.game-panel:fullscreen .survival-hud{top:50px}.storage-hud{top:50px}.game-mode .world-status{top:50px}.game-mode .world-clock{top:76px}.social-menu{top:6px}.mobile-pad{bottom:72px;transform:scale(.78)}#mobile-jump{bottom:76px}#mobile-break{bottom:126px}.build-palette{bottom:60px}.game-mode .hotbar,.game-panel:fullscreen .hotbar{bottom:3px}
}
.product-art.item-image,.product-card:nth-child(2n) .product-art.item-image,[data-shop-product^="defense_"] .product-art.item-image,[data-shop-product="explosive_charge"] .product-art.item-image{background-image:url('/assets/shop-items-v2.jpg')!important;background-size:400% 500%!important;background-position:var(--art-x) var(--art-y)!important;background-repeat:no-repeat!important}
.fullscreen-shop-list,.fullscreen-upgrade-list{display:grid;gap:6px}.fullscreen-shop-list article,.fullscreen-upgrade-list article{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;align-items:center;gap:6px;padding:9px;background:#242932;border-radius:7px}.fullscreen-shop-list span,.fullscreen-upgrade-list span{display:grid}.fullscreen-shop-list small,.fullscreen-upgrade-list small{color:#aab4c1;font-size:8px}.fullscreen-shop-list em{font-size:8px;color:#83e7d5}.fullscreen-shop-list button,.fullscreen-upgrade-list button{border:0;border-radius:6px;padding:8px;background:#5360c9;color:#fff;font-size:8px}.fullscreen-upgrade-list button:disabled{opacity:.35}@media(max-width:520px){.fullscreen-shop-list article,.fullscreen-upgrade-list article{grid-template-columns:1fr auto}.fullscreen-shop-list span,.fullscreen-upgrade-list span{grid-column:1/-1}}

/* Mode 100 % tactile, actif aussi sur les grandes tablettes. */
#voxel-canvas canvas{touch-action:none;-webkit-user-select:none;user-select:none}.mobile-actions,.touch-look-hint{display:none}
#voxel-canvas canvas{filter:saturate(1.13) contrast(1.035) brightness(1.015)}
@media(prefers-contrast:more){#voxel-canvas canvas{filter:saturate(1.08) contrast(1.08)}}
@media(pointer:coarse){
  .controls-help{display:none}.mobile-controls{display:block;position:absolute;z-index:14;inset:0;pointer-events:none;-webkit-user-select:none;user-select:none}.mobile-controls button{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;border:1px solid #ffffff70;background:#111827c7;color:#fff;box-shadow:0 4px 13px #0007;width:52px;height:52px;border-radius:16px;font-weight:800}.mobile-controls button:active{transform:scale(.9);background:#5b65d8dd}.mobile-controls button b,.mobile-controls button span{display:block}.mobile-controls button b{font-size:19px}.mobile-controls button span{font-size:7px;margin-top:1px}
  .mobile-pad{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:max(92px,calc(76px + env(safe-area-inset-bottom)));width:158px;height:112px}.mobile-pad button{position:absolute}.mobile-pad button:nth-child(1){left:53px;top:0}.mobile-pad button:nth-child(2){left:0;top:56px}.mobile-pad button:nth-child(3){left:53px;top:56px}.mobile-pad button:nth-child(4){left:106px;top:56px}
  .mobile-actions{display:grid;position:absolute;right:max(12px,env(safe-area-inset-right));bottom:max(88px,calc(72px + env(safe-area-inset-bottom)));grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,52px);gap:7px;align-items:end}.mobile-actions #mobile-jump{position:static;grid-column:3;grid-row:1/3;width:60px;height:60px;border-radius:50%;align-self:end}.mobile-actions #mobile-break{position:static;grid-column:2;grid-row:1;width:57px;height:57px;border-radius:50%}.mobile-actions #mobile-place{grid-column:1;grid-row:1}.mobile-actions #mobile-interact{grid-column:1;grid-row:2}.mobile-actions #mobile-descend{grid-column:2;grid-row:2}
  .touch-look-hint{display:block;position:absolute;pointer-events:none;right:15%;top:48%;padding:5px 8px;border-radius:12px;background:#10162280;color:#ffffff9c;font-size:7px;letter-spacing:.8px;animation:touchHint 5s forwards}@keyframes touchHint{0%,70%{opacity:1}100%{opacity:0}}
}
@media(pointer:coarse) and (max-width:720px){.mobile-pad{left:8px;bottom:130px;transform:scale(.82);transform-origin:left bottom}.mobile-actions{right:8px;bottom:128px;transform:scale(.88);transform-origin:right bottom}}
@media(pointer:coarse) and (max-height:560px) and (orientation:landscape){.mobile-pad{left:8px;bottom:64px;transform:scale(.7)}.mobile-actions{right:8px;bottom:64px;transform:scale(.74);transform-origin:right bottom}.touch-look-hint{display:none}}

/* Partie immersive et redimensionnement continu sur écran tactile. */
@media(pointer:coarse) and (max-width:720px){
  body.game-mode:has(#view-world.active){padding:0;overflow:hidden}.game-mode:has(#view-world.active) .topbar,.game-mode:has(#view-world.active) .sidebar{display:none}.game-mode:has(#view-world.active) main{padding:0;height:100dvh}.game-mode:has(#view-world.active) #view-world,.game-mode:has(#view-world.active) .world-layout,.game-mode:has(#view-world.active) .game-panel{height:100%;width:100%}.game-mode:has(#view-world.active) .voxel-game{height:100dvh;min-height:100dvh}.game-mode:has(#view-world.active) .hotbar{position:absolute;z-index:15}
  .mobile-controls button{width:clamp(44px,13vw,54px);height:clamp(44px,13vw,54px)}.mobile-pad{width:calc(clamp(44px,13vw,54px) * 3 + 4px);height:calc(clamp(44px,13vw,54px) * 2 + 4px)}.mobile-pad button:nth-child(1){left:calc(clamp(44px,13vw,54px) + 2px)}.mobile-pad button:nth-child(2){top:calc(clamp(44px,13vw,54px) + 2px)}.mobile-pad button:nth-child(3){left:calc(clamp(44px,13vw,54px) + 2px);top:calc(clamp(44px,13vw,54px) + 2px)}.mobile-pad button:nth-child(4){left:calc(clamp(44px,13vw,54px) * 2 + 4px);top:calc(clamp(44px,13vw,54px) + 2px)}
  .mobile-actions{grid-template-columns:repeat(3,clamp(44px,12vw,52px));grid-template-rows:repeat(2,clamp(44px,12vw,52px));gap:5px}.mobile-actions #mobile-jump,.mobile-actions #mobile-break{width:clamp(48px,14vw,58px);height:clamp(48px,14vw,58px)}
  .social-menu{max-width:calc(100vw - 16px)}.social-menu button{min-width:36px}.build-palette{max-width:calc(100vw - 16px)}
}
@media(pointer:coarse) and (max-width:430px){
  .game-mode .survival-hud,.game-panel:fullscreen .survival-hud{top:98px;grid-template-columns:repeat(2,minmax(70px,20vw));max-width:43vw}.survival-stat{grid-template-columns:10px 1fr 16px}.survival-stat>span{font-size:8px}.survival-stat>i{height:5px}
  .storage-hud{top:50px;right:6px;width:min(39vw,140px)}.storage-heading>span{font-size:7px}.game-mode .world-status{top:50px;left:6px;max-width:48vw}.game-mode .world-clock{top:76px;left:6px}
  .social-menu{gap:4px;left:6px;right:6px}.social-menu button{width:34px;min-width:34px;height:33px;font-size:14px}.mobile-pad{left:5px;bottom:80px;transform:scale(.82)}.mobile-actions{right:5px;bottom:78px;transform:scale(.82)}.build-palette{left:6px;right:6px;bottom:59px}.build-palette button{min-width:42px;width:42px;height:41px}.game-mode .hotbar,.game-panel:fullscreen .hotbar{bottom:3px;max-width:calc(100% - 8px);min-height:52px}.game-mode .tool,.game-mode .resource-count{min-width:51px;height:44px;padding:3px}.game-mode .tool small,.game-mode .resource-count small{font-size:7px}
}
.game-panel:fullscreen .world-clock,.game-mode:has(#view-world.active) .world-clock{position:fixed!important;display:flex!important;z-index:32!important;top:max(58px,calc(env(safe-area-inset-top) + 50px))!important;left:max(10px,env(safe-area-inset-left))!important;min-width:132px;min-height:34px;padding:7px 11px!important;border:1px solid #ffffff4a!important;background:#10151df2!important;color:#fff4b8!important;font-size:12px!important;letter-spacing:.6px;box-shadow:0 4px 16px #000a!important}
.game-panel:fullscreen .world-status,.game-mode:has(#view-world.active) .world-status{top:max(100px,calc(env(safe-area-inset-top) + 92px))!important}
.game-panel:fullscreen .survival-hud,.game-mode:has(#view-world.active) .survival-hud{top:max(132px,calc(env(safe-area-inset-top) + 124px))!important}
@media(max-width:430px){
  .game-panel:fullscreen .world-clock,.game-mode:has(#view-world.active) .world-clock{top:max(50px,calc(env(safe-area-inset-top) + 44px))!important;left:max(7px,env(safe-area-inset-left))!important;min-width:118px;min-height:32px;padding:6px 9px!important;font-size:11px!important}
  .game-panel:fullscreen .world-status,.game-mode:has(#view-world.active) .world-status{top:max(88px,calc(env(safe-area-inset-top) + 82px))!important}
  .game-panel:fullscreen .survival-hud,.game-mode:has(#view-world.active) .survival-hud{top:max(119px,calc(env(safe-area-inset-top) + 113px))!important}
  .game-panel:fullscreen #mobile-lamp{top:138px;right:8px}
  .game-panel:fullscreen .build-palette{left:8px;right:8px;bottom:165px!important;transform:none;max-width:none;overflow-x:auto}
  .game-panel:fullscreen .hotbar{bottom:224px!important;min-height:52px;flex-wrap:nowrap!important;width:max-content!important;max-width:calc(100% - 12px);overflow-x:auto}
  .game-panel:fullscreen .mobile-pad{left:5px;bottom:80px!important;transform:scale(.82)}
  .game-panel:fullscreen .mobile-actions{right:5px;bottom:78px!important;transform:scale(.82)}
}
@media(pointer:coarse) and (max-height:700px){.players-panel{display:none}.touch-look-hint{display:none}.game-mode .survival-hud,.game-panel:fullscreen .survival-hud{top:92px}.mobile-pad,.mobile-actions{bottom:72px}.build-palette{bottom:55px}}

/* Effets moins coûteux sur appareils tactiles, sans perdre la lisibilité. */
@media(pointer:coarse){.topbar,.storage-hud,.survival-hud,.social-menu button,.object-panel,.home-panel{backdrop-filter:none!important}.stars{display:none}.game-panel{box-shadow:none}.social-menu button,.mobile-controls button{box-shadow:0 2px 7px #0006}.game-alert{box-shadow:0 4px 14px #0005}}
.owned-object i{background-image:url('/assets/shop-items-v2.jpg');background-size:400% 500%}
#mobile-lamp{display:none}@media(pointer:coarse){#mobile-lamp{display:block;position:absolute;right:max(12px,env(safe-area-inset-right));top:max(52px,calc(42px + env(safe-area-inset-top)));width:48px;height:48px;border-radius:50%}#mobile-lamp.active{background:#d49b35dd;color:#fff4bd}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
@media(max-width:390px){.topbar{gap:4px}.wallet{gap:4px}.currency{min-width:58px;width:58px;padding-inline:5px;grid-template-columns:17px 1fr}.currency strong{font-size:11px}.ludopia-auth{width:34px;max-width:34px;padding:0;font-size:0}.ludopia-auth:before{content:'L';font-size:11px;font-weight:900}.icon-button{width:31px}.brand{width:34px}}

/* Responsive v3 : adaptation continue, y compris tablettes et petits portables. */
.app-shell,.view,.world-layout,.game-panel,.catalog-grid,.upgrade-grid{min-width:0}
img,canvas,svg{max-width:100%}
@media(max-width:1280px){
  main{padding:26px clamp(16px,2.4vw,34px) 54px}.world-layout{grid-template-columns:minmax(0,1fr) 220px}.glass-card{padding:18px}
  .topbar{padding-inline:18px}.profile{margin-left:12px;padding-left:12px}.currency{min-width:108px}.ludopia-wallet{min-width:104px}
  .game-mode .voxel-game{height:clamp(430px,calc(100dvh - 175px),760px);min-height:0}
}
@media(min-width:721px) and (max-width:1050px){
  .app-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding-inline:7px}.topbar{gap:8px}.wallet{gap:7px}.currency{min-width:94px;padding-inline:9px}.ludopia-auth{max-width:110px}
  .world-layout{display:block}.side-stack{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.game-mode .side-stack{display:none}
  .game-mode main{padding:10px}.game-mode .voxel-game{height:calc(100dvh - 118px);min-height:420px}.game-mode .hotbar{max-width:calc(100% - 24px);overflow-x:auto;scrollbar-width:none}
  .upgrade-card{grid-template-columns:minmax(100px,28%) minmax(0,1fr)}.upgrade-visual{font-size:clamp(52px,8vw,82px)}
}
@media(max-width:720px){
  :root{--mobile-nav-height:calc(58px + env(safe-area-inset-bottom))}
  body:not(.game-mode) main{padding-bottom:calc(var(--mobile-nav-height) + 18px)}
  .topbar{width:100%;min-width:0}.wallet{flex:1;justify-content:flex-end}.brand{flex:0 0 38px}.currency{flex:0 1 82px}.currency strong{overflow:hidden;text-overflow:ellipsis}
  .sidebar nav{width:100%;min-width:320px}.nav-item{min-width:56px}.view,.glass-card,.product-card,.upgrade-card{max-width:100%}
  .view-heading{gap:12px}.view-heading h1{overflow-wrap:anywhere}.subtitle{font-size:14px}.section-title{flex-wrap:wrap}.secure-label{max-width:100%}
  .product-buy{gap:10px;flex-wrap:wrap}.product-buy .primary-button{margin-left:auto}.product-body p{height:auto;min-height:38px}.item-upgrade{max-width:100%}
  .job-card{display:grid;grid-template-columns:auto 1fr;padding:15px;gap:10px}.job-card time,.job-card button{grid-column:1/-1;width:100%}.fair-play{padding:15px}
  .season-hero{min-height:0;padding:22px 18px}.season-hero h1{font-size:clamp(29px,10vw,38px);overflow-wrap:anywhere}.season-progress{align-items:stretch}.season-progress>div:last-child{min-width:0;flex:1;width:auto}
  .pass-labels,.season-reward{grid-template-columns:54px minmax(0,1fr) minmax(0,1fr);gap:6px}.season-reward>div{padding:11px 8px;overflow-wrap:anywhere}
  .transaction-row{grid-template-columns:32px minmax(0,1fr) auto}.transaction-row .amount{font-size:11px;overflow-wrap:anywhere}
  .game-mode:has(#view-world.active) .voxel-game{height:100dvh;min-height:0}.game-mode .hotbar,.game-panel:fullscreen .hotbar{scrollbar-width:none}.game-mode .hotbar::-webkit-scrollbar{display:none}
  .object-panel,.home-panel,.game-chat{overscroll-behavior:contain}.object-panel button,.home-panel button,.shop-tabs button,.nav-item{min-height:44px}
}
@media(max-width:430px){
  .topbar{padding-inline:6px}.wallet{gap:3px}.currency{flex-basis:62px;min-width:54px}.currency>span{font-size:16px}.currency strong{font-size:10px}.icon-button{flex:0 0 32px}
  .modal-actions{grid-template-columns:1fr}.progress-hero{grid-template-columns:72px minmax(0,1fr);padding:15px}.progress-copy{min-width:0}.progress-copy p{overflow-wrap:anywhere}
  .farm-products{grid-template-columns:1fr 1fr}.quick-object{height:64px}
}
@media(max-height:700px) and (orientation:landscape){
  .game-mode main{padding:0}.game-mode .voxel-game{height:100dvh!important;min-height:0!important}.game-mode .game-panel{border:0;border-radius:0}.players-panel{display:none}
  .game-mode .topbar,.game-mode .sidebar{display:none}.social-menu{top:5px}.storage-hud{top:47px}.game-mode .world-status{top:47px}.game-mode .world-clock{top:72px}
}
.quick-object [data-block-art="fence"],.quick-object [data-block-art="fenceGate"]{background:repeating-linear-gradient(90deg,#a56e3b 0 6px,#51301c 6px 9px)}
.build-palette button[data-block="fence"] i,.build-palette button[data-block="fenceGate"] i{background:repeating-linear-gradient(90deg,#a56e3b 0 5px,#51301c 5px 8px)!important}
.build-palette button[data-block="reinforcedStone"] i,.quick-object [data-block-art="reinforcedStone"]{background:repeating-linear-gradient(135deg,#53616b 0 5px,#97a5ad 5px 8px)!important}.build-palette button[data-block="steelWall"] i,.quick-object [data-block-art="steelWall"]{background:linear-gradient(135deg,#9daab1,#3e4b55 52%,#73828b)!important}.build-palette button[data-block="blastGlass"] i,.quick-object [data-block-art="blastGlass"]{background:linear-gradient(135deg,#d8fbff99,#5fc3daaa)!important;box-shadow:inset 0 0 0 2px #d5faff}.build-palette button[data-block="astralObsidian"] i,.quick-object [data-block-art="astralObsidian"]{background:linear-gradient(135deg,#171323,#443773 55%,#1d172c)!important;box-shadow:0 0 7px #7158bc}
[data-shop-product="defense_reinforced"] .product-art{background-image:repeating-linear-gradient(135deg,#35424b 0 18px,#7f8e97 18px 27px)!important}[data-shop-product="defense_steel"] .product-art{background-image:linear-gradient(135deg,#c3ced3,#34414c 48%,#71808a)!important}[data-shop-product="defense_glass"] .product-art{background-image:linear-gradient(135deg,#e8fdffcc,#4fbad0aa 55%,#d9fbffbb)!important;box-shadow:inset 0 0 0 4px #c9f7ff}[data-shop-product="defense_obsidian"] .product-art{background-image:radial-gradient(circle at 30% 25%,#7259bb,#30264f 28%,#15111e 70%)!important}
[data-shop-product="explosive_charge"] .product-art{background-image:radial-gradient(circle,#ffb224 0 7%,#3b4146 8% 42%,#181b1e 43% 66%,#f05a24 67% 72%,#25292d 73%)!important}.build-palette button[data-block="explosiveCharge"] i,.quick-object [data-block-art="explosiveCharge"]{background:radial-gradient(circle,#ffb224 0 15%,#292d31 16% 68%,#f05a24 69% 78%,#1a1d20 79%)!important}
.fps-badge{position:absolute;z-index:9;right:14px;bottom:14px;padding:5px 8px;border-radius:6px;background:#111820c9;color:#7df0b4;font:800 9px 'Space Grotesk';letter-spacing:.6px;pointer-events:none}.fps-badge.warning{color:#ffd06b}@media(max-width:720px),(max-height:700px){.fps-badge{right:6px;bottom:6px;font-size:7px;opacity:.78}}
.minimap{position:absolute;z-index:10;left:14px;bottom:14px;width:158px;padding:7px;border:1px solid #75f3df70;border-radius:9px;background:#0b111bee;box-shadow:0 7px 22px #0009;backdrop-filter:blur(7px);transition:width .22s,transform .22s;pointer-events:none}.minimap header{height:22px;display:grid;grid-template-columns:1fr auto 24px;gap:6px;align-items:center;color:#fff;font:700 8px 'Space Grotesk';letter-spacing:1px}.minimap header span{color:#70ead8;letter-spacing:0}.minimap header button{width:22px;height:22px;border:0;border-radius:5px;background:#ffffff1c;color:#fff;cursor:pointer;pointer-events:auto}.minimap canvas{display:block;width:142px;height:142px;border-radius:5px;background:#172d38}.minimap>small{display:block;margin-top:5px;color:#92aeb3;font:700 6px 'Space Grotesk';letter-spacing:1px;text-align:center}.minimap.expanded{z-index:30;left:50%;bottom:50%;width:min(520px,calc(100% - 28px));transform:translate(-50%,50%);padding:12px;border-color:#72f5df;background:#09111af5;pointer-events:auto}.minimap.expanded header{height:32px;font-size:11px}.minimap.expanded header button{width:30px;height:30px;font-size:20px}.minimap.expanded canvas{width:100%;height:auto;max-height:calc(100vh - 120px);aspect-ratio:1}.minimap.expanded>small{font-size:8px}.game-title{left:188px}
@media(max-width:720px),(max-height:700px){.minimap:not(.expanded){left:6px;bottom:202px;width:110px;padding:5px}.minimap:not(.expanded) header{height:18px;grid-template-columns:1fr 18px}.minimap:not(.expanded) header span,.minimap:not(.expanded)>small{display:none}.minimap:not(.expanded) header button{width:18px;height:18px}.minimap:not(.expanded) canvas{width:98px;height:98px}.minimap.expanded{width:min(430px,calc(100% - 16px))}.game-title{display:none}}
.social-menu #flight-toggle.active{background:#52cda8;color:#10251f;box-shadow:0 0 16px #52cda866}
.storage-heading,.storage-track{cursor:pointer}.bag-inventory,.trade-list{display:grid;gap:6px;margin-bottom:14px}.bag-row,.trade-offer{display:grid;grid-template-columns:minmax(105px,1fr) repeat(4,auto);gap:5px;align-items:center;padding:8px;background:#242932;border-radius:7px}.trade-offer{grid-template-columns:minmax(120px,1fr) auto auto}.bag-row span,.trade-offer span{display:grid}.bag-row small,.trade-offer small{color:#aab4c1;font-size:8px}.bag-row button,.trade-offer button{border:0;border-radius:5px;padding:7px;background:#3d4652;color:#fff;font-size:8px;cursor:pointer}.bag-row button[data-bag-action="consume"]{background:#337c3f}.bag-row button[data-bag-action="sell"],.trade-offer button[data-trade="accept"]{background:#247c68}.bag-row button:disabled{opacity:.35}@media(max-width:520px){.bag-row{grid-template-columns:1fr 1fr}.bag-row span{grid-column:1/-1}.trade-offer{grid-template-columns:1fr 1fr}.trade-offer span{grid-column:1/-1}}

/* HUD immersif : l'heure reste prioritaire et lisible à toutes les tailles. */
.game-panel:fullscreen .world-clock,
.game-mode:has(#view-world.active) .world-clock{display:flex!important;align-items:center;z-index:20;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));min-height:32px;padding:7px 12px;font-size:12px;white-space:nowrap;box-shadow:0 3px 12px #0008}
.game-panel:fullscreen .world-status,
.game-mode:has(#view-world.active) .world-status{top:max(52px,calc(env(safe-area-inset-top) + 42px));left:max(12px,env(safe-area-inset-left));max-width:min(420px,calc(100vw - 24px));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-panel:fullscreen .survival-hud,
.game-mode:has(#view-world.active) .survival-hud{top:max(88px,calc(env(safe-area-inset-top) + 78px));bottom:auto;max-width:calc(100vw - 24px)}
@media(max-width:1050px){
  .game-panel:fullscreen .world-clock,.game-mode:has(#view-world.active) .world-clock{top:max(52px,calc(env(safe-area-inset-top) + 44px))}
  .game-panel:fullscreen .world-status,.game-mode:has(#view-world.active) .world-status{top:max(88px,calc(env(safe-area-inset-top) + 80px));max-width:calc(100vw - 200px)}
  .game-panel:fullscreen .survival-hud,.game-mode:has(#view-world.active) .survival-hud{top:max(122px,calc(env(safe-area-inset-top) + 114px))}
}
@media(max-width:720px){
  .game-panel:fullscreen .world-clock,.game-mode:has(#view-world.active) .world-clock{top:max(45px,calc(env(safe-area-inset-top) + 39px));left:max(7px,env(safe-area-inset-left));min-height:27px;padding:5px 8px;font-size:9px}
  .game-panel:fullscreen .world-status,.game-mode:has(#view-world.active) .world-status{top:max(76px,calc(env(safe-area-inset-top) + 70px));left:max(7px,env(safe-area-inset-left));max-width:48vw;font-size:7px}
  .game-panel:fullscreen .survival-hud,.game-mode:has(#view-world.active) .survival-hud{top:max(105px,calc(env(safe-area-inset-top) + 99px));left:max(7px,env(safe-area-inset-left));max-width:48vw}
  .game-panel:fullscreen .social-menu,.game-mode:has(#view-world.active) .social-menu{padding-inline:env(safe-area-inset-left) env(safe-area-inset-right)}
}
@media(max-height:560px) and (orientation:landscape){
  .game-panel:fullscreen .world-clock,.game-mode:has(#view-world.active) .world-clock{top:max(42px,calc(env(safe-area-inset-top) + 36px))}
  .game-panel:fullscreen .world-status,.game-mode:has(#view-world.active) .world-status{top:max(70px,calc(env(safe-area-inset-top) + 64px))}
  .game-panel:fullscreen .survival-hud,.game-mode:has(#view-world.active) .survival-hud{top:max(96px,calc(env(safe-area-inset-top) + 90px));transform:scale(.9);transform-origin:left top}
}
@media(pointer:coarse) and (max-width:1024px){
  .game-mode .build-palette,.game-panel:fullscreen .build-palette{left:8px;right:8px;bottom:190px;transform:none;max-width:none;overflow-x:auto}
  .game-mode .hotbar,.game-panel:fullscreen .hotbar{bottom:250px;flex-wrap:nowrap;width:max-content;max-width:calc(100% - 12px);overflow-x:auto}
}
@media(pointer:coarse) and (max-width:430px){
  #mobile-lamp{top:138px;right:8px}
  .game-mode .build-palette,.game-panel:fullscreen .build-palette{bottom:165px}
  .game-mode .hotbar,.game-panel:fullscreen .hotbar{bottom:224px;min-height:52px;flex-wrap:nowrap;width:max-content}
}

/* Plein écran minimal : neuf blocs rapides et un accès au catalogue complet. */
.more-blocks{display:none}
.game-panel:fullscreen .hotbar,
.game-panel:fullscreen .survival-hud,
.game-panel:fullscreen .world-status,
.game-panel:fullscreen .world-clock,
.game-panel:fullscreen .storage-hud,
.game-panel:fullscreen .players-panel,
.game-panel:fullscreen .social-menu,
.game-panel:fullscreen .game-title,
.game-panel:fullscreen .controls-help,
.game-panel:fullscreen .selected-block,
.game-panel:fullscreen .fps-badge{display:none!important}
.game-panel:fullscreen .build-palette{left:50%!important;right:auto!important;bottom:max(14px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;display:grid;grid-template-columns:repeat(10,54px);gap:5px;max-width:calc(100vw - 20px);overflow-x:auto;padding:6px;border-radius:10px;scrollbar-width:none}
.game-panel:fullscreen .build-palette::-webkit-scrollbar{display:none}
.game-panel:fullscreen .build-palette>strong{display:none}
.game-panel:fullscreen .build-palette>button[data-block]{display:none}
.game-panel:fullscreen .build-palette>button[data-block="dirt"],
.game-panel:fullscreen .build-palette>button[data-block="stone"],
.game-panel:fullscreen .build-palette>button[data-block="wood"],
.game-panel:fullscreen .build-palette>button[data-block="plank"],
.game-panel:fullscreen .build-palette>button[data-block="brick"],
.game-panel:fullscreen .build-palette>button[data-block="glass"],
.game-panel:fullscreen .build-palette>button[data-block="roof"],
.game-panel:fullscreen .build-palette>button[data-block="white"],
.game-panel:fullscreen .build-palette>button[data-block="door"],
.game-panel:fullscreen .build-palette>.more-blocks{display:block;background:#5966d8;border-color:#8993ff}
.game-panel:fullscreen .more-blocks b{display:block;font-size:27px;line-height:22px}
.game-panel:fullscreen .more-blocks span{color:#fff;font-weight:800}
.game-panel:fullscreen .object-panel{top:50%;max-height:min(72vh,620px);transform:translate(-50%,-50%)}
.game-panel:fullscreen .object-panel.open{animation:none;transform:translate(-50%,-50%)}
.game-panel:fullscreen .block-picker .quick-grid{grid-template-columns:repeat(7,minmax(58px,1fr));margin-bottom:0}
@media(max-width:620px){
  .game-panel:fullscreen .build-palette{left:8px!important;right:8px!important;transform:none!important;grid-template-columns:repeat(10,46px);max-width:none}
  .game-panel:fullscreen .build-palette button{width:46px;min-width:46px;height:46px}
  .game-panel:fullscreen .block-picker .quick-grid{grid-template-columns:repeat(4,1fr)}
}

/* Icônes voxel isométriques pour la barre rapide et le tableau des blocs. */
.build-palette i,.quick-object [data-block-art]{--block-front:#806044;--block-top:#a47d58;--block-side:#503b2a;position:relative;display:block;width:25px!important;height:21px!important;margin:5px auto 7px!important;border:0!important;border-radius:1px!important;background:var(--block-front)!important;box-shadow:inset 2px 2px 0 #ffffff24,inset -2px -2px 0 #0003,0 4px 5px #0007!important;opacity:1!important;transform:translate(-2px,2px)}
.build-palette i:before,.quick-object [data-block-art]:before{content:"";position:absolute;left:0;top:-7px;width:25px;height:8px;background:var(--block-top);transform:skewX(-42deg);transform-origin:left bottom;box-shadow:inset 1px 1px 0 #ffffff30}
.build-palette i:after,.quick-object [data-block-art]:after{content:"";position:absolute;right:-7px;top:0;width:8px;height:21px;background:var(--block-side);transform:skewY(-48deg);transform-origin:left top;box-shadow:inset -1px 0 0 #0004}
.build-palette [data-block="stone"] i,.quick-object [data-block-art="stone"]{--block-front:linear-gradient(135deg,#92999e 0 45%,#7c858b 46%);--block-top:#b8bec2;--block-side:#616a70}
.build-palette [data-block="wood"] i,.quick-object [data-block-art="wood"]{--block-front:repeating-linear-gradient(90deg,#8b5c36 0 5px,#6e4429 5px 7px);--block-top:radial-gradient(circle,#6d452c 0 20%,#aa7547 22% 42%,#74472c 44%);--block-side:#56351f}
.build-palette [data-block="plank"] i,.quick-object [data-block-art="plank"]{--block-front:repeating-linear-gradient(#c99657 0 6px,#9e6e3e 6px 8px);--block-top:#e0b875;--block-side:#8f6035}
.build-palette [data-block="brick"] i,.quick-object [data-block-art="brick"]{--block-front:repeating-linear-gradient(0deg,#b75845 0 6px,#743b32 6px 7px);--block-top:#d67b64;--block-side:#7b392f}
.build-palette [data-block="glass"] i,.quick-object [data-block-art="glass"]{--block-front:linear-gradient(135deg,#e9fdff99 0 18%,#83dce766 19% 70%,#fff9 71% 77%,#75cbd766 78%);--block-top:#d9fbffbb;--block-side:#54aebc99}
.build-palette [data-block="roof"] i,.quick-object [data-block-art="roof"]{--block-front:repeating-linear-gradient(135deg,#4d5f83 0 5px,#34415e 5px 8px);--block-top:#7587aa;--block-side:#2c3650}
.build-palette [data-block="white"] i,.quick-object [data-block-art="white"]{--block-front:#e8e8e2;--block-top:#fff;--block-side:#aaaead}
.build-palette [data-block="door"] i,.quick-object [data-block-art="door"]{--block-front:linear-gradient(90deg,#805438 0 78%,#d7b05b 79% 86%,#805438 87%);--block-top:#a9784f;--block-side:#52331f}
.build-palette [data-block="window"] i,.quick-object [data-block-art="window"]{--block-front:linear-gradient(90deg,#594737 0 15%,#b7e2e8aa 16% 84%,#594737 85%);--block-top:#d7f5f7;--block-side:#506f73}
.build-palette [data-block="concrete"] i,.quick-object [data-block-art="concrete"]{--block-front:radial-gradient(circle at 25% 30%,#c6c5bf 0 2px,#aaa9a3 3px);--block-top:#cecdc7;--block-side:#777974}
.build-palette [data-block="metal"] i,.quick-object [data-block-art="metal"]{--block-front:linear-gradient(135deg,#4c555c,#b8c2c7 45%,#59636a 48%);--block-top:#d0d8db;--block-side:#3b444b}
.build-palette [data-block="sapling"] i,.quick-object [data-block-art="sapling"]{--block-front:radial-gradient(circle at 50% 28%,#74a866 0 42%,transparent 44%),linear-gradient(90deg,transparent 43%,#735139 44% 57%,transparent 58%);--block-top:#91c77d;--block-side:#426b3d}
.build-palette [data-block="farmland"] i,.quick-object [data-block-art="farmland"]{--block-front:repeating-linear-gradient(90deg,#633d24 0 4px,#98643b 5px 8px);--block-top:repeating-linear-gradient(90deg,#aa7044 0 4px,#714326 5px 8px);--block-side:#4d2e1c}
.build-palette [data-block="crop"] i,.quick-object [data-block-art="crop"]{--block-front:linear-gradient(90deg,#65ac45 0 22%,#e6c64f 23% 45%,#55963a 46% 68%,#d8b43e 69%);--block-top:#dbe86a;--block-side:#39702d}
.build-palette [data-block="water"] i,.quick-object [data-block-art="water"]{--block-front:linear-gradient(#39bce9,#187bb9);--block-top:repeating-linear-gradient(135deg,#a8f2ff 0 4px,#49cbea 5px 9px);--block-side:#135b91}
.build-palette [data-block="lava"] i,.quick-object [data-block-art="lava"]{--block-front:linear-gradient(#fff16a,#ff8a16 45%,#d9330b);--block-top:radial-gradient(circle,#fff8a0 0 16%,#ffb018 18% 50%,#ef4c0b 52%);--block-side:#9d200a}
.build-palette [data-block="fire"] i,.quick-object [data-block-art="fire"]{--block-front:linear-gradient(135deg,#ffdb45 0 35%,#ff5722 36% 70%,#981a0e 71%);--block-top:#fff28b;--block-side:#a82812}
.build-palette [data-block="moonstone"] i,.quick-object [data-block-art="moonstone"]{--block-front:linear-gradient(135deg,#d9fbff,#8173e8 62%,#473a9c);--block-top:#e9ffff;--block-side:#5145aa}
.build-palette [data-block="fence"] i,.build-palette [data-block="fenceGate"] i,.quick-object [data-block-art="fence"],.quick-object [data-block-art="fenceGate"]{--block-front:repeating-linear-gradient(90deg,#a56e3b 0 6px,#51301c 6px 9px);--block-top:#d19a5d;--block-side:#51301c}
.build-palette [data-block="reinforcedStone"] i,.quick-object [data-block-art="reinforcedStone"]{--block-front:repeating-linear-gradient(135deg,#53616b 0 5px,#97a5ad 5px 8px);--block-top:#bdc7cc;--block-side:#3e4a52}
.build-palette [data-block="steelWall"] i,.quick-object [data-block-art="steelWall"]{--block-front:linear-gradient(135deg,#9daab1,#3e4b55 52%,#73828b);--block-top:#cdd5d9;--block-side:#34414a}
.build-palette [data-block="blastGlass"] i,.quick-object [data-block-art="blastGlass"]{--block-front:linear-gradient(135deg,#eaffffcc,#5fc3daaa);--block-top:#ebffff;--block-side:#388fa3}
.build-palette [data-block="astralObsidian"] i,.quick-object [data-block-art="astralObsidian"]{--block-front:radial-gradient(circle at 30% 25%,#7259bb,#30264f 35%,#15111e 75%);--block-top:#59458c;--block-side:#100c18}
.build-palette [data-block="explosiveCharge"] i,.quick-object [data-block-art="explosiveCharge"]{--block-front:radial-gradient(circle,#ffb224 0 15%,#292d31 16% 68%,#f05a24 69% 78%,#1a1d20 79%);--block-top:#626b70;--block-side:#181b1e}
.build-palette [data-block="chair"] i,.quick-object [data-block-art="chair"],.build-palette [data-block="table"] i,.quick-object [data-block-art="table"]{--block-front:#9b6538;--block-top:#d09a60;--block-side:#5d3822}
.build-palette [data-block="bed"] i,.quick-object [data-block-art="bed"]{--block-front:#527cc9;--block-top:linear-gradient(90deg,#f5f1e8 0 30%,#6f9be2 31%);--block-side:#31538b}
.build-palette [data-block="sofa"] i,.quick-object [data-block-art="sofa"]{--block-front:#3f9e90;--block-top:#75c7bb;--block-side:#28665e}
.build-palette [data-block="wardrobe"] i,.quick-object [data-block-art="wardrobe"],.build-palette [data-block="bookshelf"] i,.quick-object [data-block-art="bookshelf"]{--block-front:repeating-linear-gradient(90deg,#795034 0 8px,#a87545 9px 12px);--block-top:#bd8c5a;--block-side:#52331f}
.build-palette [data-block="kitchen"] i,.quick-object [data-block-art="kitchen"],.build-palette [data-block="toilet"] i,.quick-object [data-block-art="toilet"]{--block-front:#e4e5e0;--block-top:#fff;--block-side:#9da5a5}
.build-palette [data-block="floorLamp"] i,.quick-object [data-block-art="floorLamp"]{--block-front:linear-gradient(#ffe98c,#c6922d);--block-top:#fff2a9;--block-side:#8c641f;filter:drop-shadow(0 0 5px #ffd75e)}

/* Menu transparent de la navette, utilisable dans le jeu intégré et en plein écran. */
.shuttle-panel{position:absolute;z-index:24;left:50%;top:50%;display:none;width:min(620px,calc(100% - 30px));max-height:calc(100% - 30px);overflow:hidden;color:#fff;background:#111824d4;border:1px solid #70ead24d;border-radius:18px;box-shadow:0 20px 65px #000a;backdrop-filter:blur(18px);transform:translate(-50%,-50%)}.shuttle-panel.open{display:block;animation:enter .22s ease}.shuttle-panel header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #ffffff20;background:linear-gradient(110deg,#5967d84d,#58e7e119)}.shuttle-panel header div{display:grid;gap:3px}.shuttle-panel header small{color:#75ead4;font-size:8px;letter-spacing:1.6px}.shuttle-panel header strong{font:700 20px 'Space Grotesk'}.shuttle-panel header span{color:#c4cddd;font-size:10px}.shuttle-panel header button{width:34px;height:34px;border:1px solid #ffffff30;border-radius:9px;background:#ffffff10;color:#fff;font-size:20px;cursor:pointer}.shuttle-destinations{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}.shuttle-destinations>button{min-width:0;min-height:145px;padding:15px;border:1px solid #ffffff20;border-radius:13px;background:linear-gradient(145deg,#28324bd9,#171d2cde);color:#fff;text-align:left;cursor:pointer;transition:.18s}.shuttle-destinations>button:hover{border-color:#75ead4;transform:translateY(-3px);box-shadow:0 9px 24px #0006}.shuttle-destinations>button>b{display:block;margin-bottom:12px;font-size:30px;color:#75ead4}.shuttle-destinations span{display:grid;gap:6px}.shuttle-destinations strong{font:700 14px 'Space Grotesk'}.shuttle-destinations small{color:#aeb9c9;font-size:9px;line-height:1.45}
@media(max-width:620px){.shuttle-panel{width:calc(100% - 18px);max-height:calc(100% - 18px);border-radius:14px}.shuttle-panel header{padding:13px 14px}.shuttle-panel header strong{font-size:16px}.shuttle-destinations{grid-template-columns:1fr;padding:10px;max-height:calc(100dvh - 120px);overflow-y:auto}.shuttle-destinations>button{display:grid;grid-template-columns:45px 1fr;align-items:center;min-height:82px;padding:11px}.shuttle-destinations>button>b{margin:0;font-size:25px}}
.game-info-toggle,.game-info-panel{display:none}
.game-panel:fullscreen .game-info-toggle{position:absolute;z-index:19;display:grid;place-items:center;right:0;top:50%;width:32px;height:92px;padding:0;border:1px solid #ffffff38;border-right:0;border-radius:12px 0 0 12px;background:#111824a8;color:#fff;transform:translateY(-50%);backdrop-filter:blur(10px);cursor:pointer;font-size:24px}
.game-panel:fullscreen .game-info-toggle span{font-size:8px;letter-spacing:1px;writing-mode:vertical-rl;text-transform:uppercase}
.game-panel:fullscreen .game-info-panel{position:absolute;z-index:20;display:block;visibility:hidden;right:0;top:0;width:min(390px,calc(100vw - 46px));height:100%;color:#fff;background:#111824c7;border-left:1px solid #ffffff35;box-shadow:-16px 0 42px #0007;backdrop-filter:blur(16px);transform:translateX(102%);transition:transform .22s ease,visibility .22s;overflow:hidden}
.game-panel:fullscreen .game-info-panel.open{visibility:visible;transform:translateX(0)}
.game-info-panel header{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid #ffffff24;background:#ffffff08}.game-info-panel header div{display:grid}.game-info-panel header small,.game-info-panel h3{color:#75ead4;font-size:8px;letter-spacing:1.5px}.game-info-panel header strong{font:700 18px 'Space Grotesk'}.game-info-panel header button{width:34px;height:34px;border:1px solid #ffffff30;border-radius:8px;background:#ffffff12;color:#fff;font-size:20px;cursor:pointer}
.game-info-content{height:calc(100% - 72px);padding:14px 18px calc(18px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}.game-info-content section{padding:12px 0;border-bottom:1px solid #ffffff18}.game-info-content h3{margin:0 0 9px}.game-info-content p{margin:0;color:#d6dce5;font-size:11px;line-height:1.8}.game-info-row{display:flex;justify-content:space-between;gap:14px;padding:4px 0;font-size:11px}.game-info-row span{color:#aeb8c5}.game-info-row b{text-align:right}.game-info-resources{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.game-info-resources span{display:grid;gap:3px;padding:8px;border-radius:7px;background:#ffffff0d;color:#aeb8c5;font-size:8px}.game-info-resources b{color:#fff;font-size:13px}.game-info-survival{display:grid;gap:7px}.game-info-survival>div{display:grid;grid-template-columns:70px 1fr 28px;align-items:center;gap:7px;font-size:9px}.game-info-survival i{height:6px;overflow:hidden;border-radius:5px;background:#ffffff18}.game-info-survival i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#50cda5,#75ead4)}.game-info-survival strong{text-align:right;font-size:9px}
.info-fullscreen-toggle{width:100%;padding:11px;border:1px solid #75ead45c;border-radius:9px;background:linear-gradient(100deg,#5867d8,#4cbfae);color:#fff;font-weight:800;cursor:pointer}
@media(max-width:620px){.game-panel:fullscreen .game-info-toggle{width:28px;height:78px}.game-panel:fullscreen .game-info-panel{width:min(340px,calc(100vw - 34px))}.game-info-panel header{padding:14px}.game-info-content{padding-inline:14px}}

/* La même interface épurée reste active dans le jeu intégré, sans plein écran. */
.game-mode:has(#view-world.active) .game-panel .hotbar,
.game-mode:has(#view-world.active) .game-panel .survival-hud,
.game-mode:has(#view-world.active) .game-panel .world-status,
.game-mode:has(#view-world.active) .game-panel .world-clock,
.game-mode:has(#view-world.active) .game-panel .storage-hud,
.game-mode:has(#view-world.active) .game-panel .players-panel,
.game-mode:has(#view-world.active) .game-panel .social-menu,
.game-mode:has(#view-world.active) .game-panel .game-title,
.game-mode:has(#view-world.active) .game-panel .controls-help,
.game-mode:has(#view-world.active) .game-panel .selected-block,
.game-mode:has(#view-world.active) .game-panel .fps-badge{display:none!important}
.game-mode:has(#view-world.active) .game-panel .build-palette{left:50%!important;right:auto!important;bottom:14px!important;transform:translateX(-50%)!important;display:grid;grid-template-columns:repeat(10,54px);gap:5px;max-width:calc(100% - 18px);overflow-x:auto;padding:6px;border-radius:10px;scrollbar-width:none}
.game-mode:has(#view-world.active) .game-panel .build-palette>strong{display:none}
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block]{display:none}
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="dirt"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="stone"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="wood"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="plank"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="brick"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="glass"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="roof"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="white"],
.game-mode:has(#view-world.active) .game-panel .build-palette>button[data-block="door"],
.game-mode:has(#view-world.active) .game-panel .build-palette>.more-blocks{display:block;background:#5966d8;border-color:#8993ff}
.game-mode:has(#view-world.active) .game-panel .game-info-toggle{position:absolute;z-index:19;display:grid;place-items:center;right:0;top:50%;width:32px;height:92px;padding:0;border:1px solid #ffffff38;border-right:0;border-radius:12px 0 0 12px;background:#111824a8;color:#fff;transform:translateY(-50%);backdrop-filter:blur(10px);cursor:pointer;font-size:24px}
.game-mode:has(#view-world.active) .game-panel .game-info-toggle span{font-size:8px;letter-spacing:1px;writing-mode:vertical-rl;text-transform:uppercase}
.game-mode:has(#view-world.active) .game-panel .game-info-panel{position:absolute;z-index:20;display:block;visibility:hidden;right:0;top:0;width:min(390px,calc(100% - 38px));height:100%;color:#fff;background:#111824c7;border-left:1px solid #ffffff35;box-shadow:-16px 0 42px #0007;backdrop-filter:blur(16px);transform:translateX(102%);transition:transform .22s ease,visibility .22s;overflow:hidden}
.game-mode:has(#view-world.active) .game-panel .game-info-panel.open{visibility:visible;transform:translateX(0)}
@media(max-width:620px){
  .game-mode:has(#view-world.active) .game-panel .build-palette{left:8px!important;right:8px!important;transform:none!important;grid-template-columns:repeat(10,46px);max-width:none}
  .game-mode:has(#view-world.active) .game-panel .build-palette button{width:46px;min-width:46px;height:46px}
  .game-mode:has(#view-world.active) .game-panel .game-info-toggle{width:28px;height:78px}
  .game-mode:has(#view-world.active) .game-panel .game-info-panel{width:min(340px,calc(100% - 34px))}
}

/* Adaptation finale du jeu : commandes fluides, zones sûres et aucun panneau hors écran. */
.voxel-game{container-type:size}
.object-panel,.home-panel,.game-info-panel,.shuttle-panel{max-width:calc(100% - 16px);overscroll-behavior:contain}
@media(pointer:coarse){
  .game-mode:has(#view-world.active) .game-panel .build-palette,
  .game-panel:fullscreen .build-palette{left:max(6px,env(safe-area-inset-left))!important;right:max(6px,env(safe-area-inset-right))!important;bottom:max(6px,env(safe-area-inset-bottom))!important;width:auto;max-width:none;transform:none!important;grid-template-columns:repeat(10,clamp(40px,11vw,50px));scroll-padding-inline:6px}
  .game-mode:has(#view-world.active) .game-panel .build-palette button,
  .game-panel:fullscreen .build-palette button{width:clamp(40px,11vw,50px);min-width:clamp(40px,11vw,50px);height:clamp(42px,12vw,52px)}
  .mobile-pad{left:max(6px,env(safe-area-inset-left));bottom:max(68px,calc(60px + env(safe-area-inset-bottom)));transform:scale(.88);transform-origin:left bottom}
  .mobile-actions{right:max(6px,env(safe-area-inset-right));bottom:max(68px,calc(60px + env(safe-area-inset-bottom)));transform:scale(.88);transform-origin:right bottom}
  #mobile-lamp{top:max(48px,calc(42px + env(safe-area-inset-top)));right:max(7px,env(safe-area-inset-right))}
  .minimap:not(.expanded){left:max(6px,env(safe-area-inset-left));bottom:clamp(178px,31dvh,245px);width:clamp(88px,24vw,112px)}
  .minimap:not(.expanded) canvas{width:100%;height:auto;aspect-ratio:1}
  .game-info-toggle{touch-action:manipulation}
  .game-panel:fullscreen .game-info-toggle,.game-mode:has(#view-world.active) .game-panel .game-info-toggle{right:max(0px,env(safe-area-inset-right));width:clamp(30px,9vw,40px);height:clamp(76px,18dvh,106px)}
  .game-panel:fullscreen .game-info-panel,.game-mode:has(#view-world.active) .game-panel .game-info-panel{width:min(92vw,390px);max-width:none;padding-bottom:env(safe-area-inset-bottom)}
}
@media(pointer:coarse) and (orientation:landscape){
  .mobile-pad,.mobile-actions{bottom:max(58px,calc(52px + env(safe-area-inset-bottom)));transform:scale(.72)}
  .minimap:not(.expanded){bottom:58px;width:clamp(72px,17dvh,96px)}
  .game-panel:fullscreen .build-palette,.game-mode:has(#view-world.active) .game-panel .build-palette{grid-template-columns:repeat(10,42px)}
  .game-panel:fullscreen .build-palette button,.game-mode:has(#view-world.active) .game-panel .build-palette button{width:42px;min-width:42px;height:42px}
  .shuttle-panel{width:min(720px,calc(100% - 80px));max-height:calc(100dvh - 12px)}
  .shuttle-destinations{grid-template-columns:repeat(3,minmax(0,1fr));padding:8px}.shuttle-destinations>button{min-height:76px;padding:9px}
}
@media(max-width:380px){
  .game-start{padding:18px}.game-start h2{font-size:21px}.game-start p{font-size:12px}
  .object-panel,.home-panel{inset-inline:5px;width:auto;max-width:none}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .shuttle-panel{width:calc(100% - 10px);max-width:none}.shuttle-panel header{padding:10px}.shuttle-destinations{padding:7px;gap:7px}.shuttle-destinations>button{min-height:70px}
  .minimap.expanded{width:calc(100% - 10px);padding:7px}
}

/* Accessibilité : commandes visibles au clavier et animations facultatives. */
button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #75ead4;outline-offset:3px}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .brand-cube,.product-card,.resource{transform:none!important}
}
@media(prefers-contrast:more){
  :root{--muted:#c8d0e3;--line:rgba(255,255,255,.28)}
  .game-info-panel,.object-panel,.home-panel,.shuttle-panel{background:#0b1018f5;border-color:#fff8}
  .build-palette button,.mobile-controls button{border-color:#fff}
}

/* Eau sur la caméra : gouttes uniques, réfractées et animées par le compositeur. */
.rain-lens{position:absolute;z-index:5;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .8s;contain:strict}
.rain-lens-drop{position:absolute;left:var(--drop-x);top:var(--drop-y);width:var(--drop-size);height:var(--drop-height);border-radius:48% 52% 58% 42%/38% 42% 58% 62%;opacity:0;background:radial-gradient(circle at 30% 22%,#fff 0 5%,#dff8ffb8 7% 12%,#8bc9df42 36%,#173e5526 70%,#eaffff94 82%,transparent 86%);box-shadow:inset -1px -2px 3px #17455d5c,inset 1px 1px 2px #fff9,0 2px 3px #0d334766;filter:blur(.15px);will-change:transform,opacity;animation:rainDropRun var(--drop-duration) cubic-bezier(.38,.05,.78,.58) var(--drop-delay) infinite}
.rain-lens-drop:after{content:"";position:absolute;left:42%;bottom:72%;width:18%;height:0;border-radius:50%;background:linear-gradient(to top,#b9e9f46b,transparent);opacity:0;transform-origin:bottom}
@keyframes rainDropRun{0%{opacity:0;transform:translate3d(0,-12px,0) scale(.72,.9)}8%{opacity:.2}18%{opacity:.72;transform:translate3d(0,0,0) scale(1)}38%{opacity:.68;transform:translate3d(calc(var(--drop-drift)*.18),12px,0) scale(.92,1.08)}39%{opacity:.72}85%{opacity:.48;transform:translate3d(var(--drop-drift),var(--drop-run),0) scale(.68,1.5)}100%{opacity:0;transform:translate3d(var(--drop-drift),calc(var(--drop-run) + 35px),0) scale(.45,1.8)}}
.rain-lens-drop:nth-child(3n):after,.rain-lens-drop:nth-child(5n):after{height:var(--drop-trail);opacity:.42}
@media(pointer:coarse){.rain-lens-drop{filter:none}.rain-lens-drop:nth-child(even){display:none}}
@media(prefers-reduced-motion:reduce){.rain-lens-drop{animation-duration:10s!important}}
.controller-help{display:none;position:absolute;z-index:18;left:50%;bottom:73px;transform:translateX(-50%);align-items:center;gap:12px;padding:8px 14px;border:1px solid #ffffff38;border-radius:12px;background:#08101dcc;color:#fff;backdrop-filter:blur(10px);font-size:11px;white-space:nowrap;pointer-events:none}.controller-help strong{color:#62eadf;letter-spacing:1px}.controller-mode .controller-help{display:flex}.controller-mode .mobile-controls{display:none!important}.controller-mode button:focus-visible{outline:4px solid #6ff7e9;outline-offset:3px}
@media(min-width:1280px) and (min-height:700px){.controller-mode .game-panel,.controller-mode .voxel-game{border-radius:0}.controller-mode .game-info-panel{font-size:clamp(15px,1.15vw,20px)}.controller-mode .build-palette button{min-width:64px;height:58px}.controller-mode .social-menu button{min-width:48px;height:46px}.controller-mode .controller-help{bottom:max(78px,env(safe-area-inset-bottom));font-size:clamp(11px,.9vw,15px);padding:10px 18px}}
@media(max-width:900px){.controller-help span:nth-of-type(n+5){display:none}.controller-help{gap:8px;font-size:9px}}
.tv-fullscreen-toggle{position:absolute;z-index:21;display:grid;grid-template-columns:auto auto;place-items:center;gap:5px;right:max(42px,calc(env(safe-area-inset-right) + 42px));top:max(10px,env(safe-area-inset-top));min-width:52px;height:38px;padding:0 10px;border:1px solid #ffffff55;border-radius:9px;background:#0b1421cf;color:#fff;box-shadow:0 5px 18px #0008;backdrop-filter:blur(8px);cursor:pointer;font-size:18px}.tv-fullscreen-toggle span{font:800 8px 'Space Grotesk';letter-spacing:1px}.game-panel:fullscreen .tv-fullscreen-toggle,.theater-fullscreen .tv-fullscreen-toggle{right:max(44px,calc(3vw + env(safe-area-inset-right)));top:max(14px,calc(2vh + env(safe-area-inset-top)))}
.mining-progress{position:absolute;z-index:16;left:50%;top:calc(50% + 34px);display:none;width:clamp(150px,18vw,230px);padding:8px 10px;border:1px solid #ffffff42;border-radius:9px;background:#09121dde;color:#fff;transform:translateX(-50%);box-shadow:0 7px 22px #0009;backdrop-filter:blur(8px);pointer-events:none}.mining-progress.show{display:grid;grid-template-columns:1fr auto;gap:5px 9px}.mining-progress span{font:800 9px 'Space Grotesk';letter-spacing:1px}.mining-progress span b{color:#72ead8}.mining-progress small{color:#b9c7d2;font-size:8px;text-transform:capitalize}.mining-progress i{grid-column:1/-1;height:7px;overflow:hidden;border-radius:7px;background:#ffffff1c}.mining-progress em{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e6a43e,#72ead8);transition:width .12s linear}
.game-panel.theater-fullscreen{position:fixed!important;z-index:1000!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;margin:0!important;border:0!important;border-radius:0!important;background:#0b111b!important}.game-panel.theater-fullscreen .voxel-game{width:100%!important;height:100%!important;min-height:0!important;border-radius:0!important}.game-panel.theater-fullscreen+.side-stack{display:none!important}body:has(.theater-fullscreen){overflow:hidden!important}
/* Mode télévision/console : interface à distance, marge d'overscan et panneaux lisibles. */
@media(min-width:1100px) and (min-height:600px){
  .controller-mode.game-mode main{padding:0}.controller-mode.game-mode .world-layout{display:block}.controller-mode.game-mode .game-panel{width:100%;height:100dvh;border:0}.controller-mode.game-mode .voxel-game{height:100dvh;min-height:0}
  .controller-mode .game-panel:fullscreen .build-palette,.controller-mode .theater-fullscreen .build-palette{left:3vw!important;right:3vw!important;bottom:max(2.5vh,env(safe-area-inset-bottom))!important;width:auto;max-width:none;transform:none!important;grid-template-columns:repeat(10,minmax(58px,1fr));gap:clamp(6px,.65vw,12px);padding:9px}
  .controller-mode .game-panel:fullscreen .build-palette button,.controller-mode .theater-fullscreen .build-palette button{width:auto;min-width:58px;height:clamp(58px,7vh,76px);font-size:clamp(10px,.8vw,14px)}
  .controller-mode .game-panel:fullscreen .game-info-toggle,.controller-mode .theater-fullscreen .game-info-toggle{right:max(0px,env(safe-area-inset-right));width:clamp(42px,3.2vw,58px);height:clamp(112px,16vh,150px);font-size:30px}
  .controller-mode .game-panel:fullscreen .game-info-panel,.controller-mode .theater-fullscreen .game-info-panel{width:min(31vw,520px);font-size:clamp(14px,1vw,18px)}
  .controller-mode .minimap:not(.expanded){left:max(3vw,env(safe-area-inset-left));bottom:clamp(108px,15vh,160px);width:clamp(150px,12vw,220px)}.controller-mode .minimap:not(.expanded) canvas{width:100%;height:auto}
  .controller-mode .controller-help{bottom:max(11vh,100px);max-width:88vw;overflow:hidden}
}
.family-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important;margin:6px 0!important}.family-actions button{border:1px solid #65e7db55;border-radius:7px;background:#24334c;color:#fff;padding:6px 4px;font-size:8px;font-weight:800;cursor:pointer}.family-actions button:last-child{background:#5263d5}
