/* AM-DEMO-A1 — coque, vues, BD, coffres, Pitiplouf. Zones tactiles ≥ 44 px CSS. */
:root{--nav:78px;--gold:#efce72;--navy:#061b32;--ink:#111}
body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}
.controls{display:none}body.dev-mode .controls{display:block}
body:not([data-view="labo"]) .viewport{position:fixed;left:-300vw;top:0;visibility:hidden;pointer-events:none}
body[data-view="labo"] .viewport{padding-bottom:0}
#v-loading{position:fixed;inset:0;z-index:2000;background:#061b32 url(assets/v2/ui/accueil.webp) center/cover no-repeat;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 24px calc(48px + env(safe-area-inset-bottom));transition:opacity .6s}
#v-loading::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,27,50,0) 55%,rgba(6,27,50,.75));pointer-events:none}
#v-loading>*{position:relative;z-index:1}#v-loading.gone{opacity:0;pointer-events:none}
#v-loading .bar{width:min(320px,80%);height:10px;border-radius:6px;background:rgba(6,27,50,.7);border:2px solid var(--gold);overflow:hidden}#v-loading .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f6d57a,#fff3b0);transition:width .25s}
#v-loading .msg{margin:10px 0 0;color:#fff;font:600 14px system-ui;text-shadow:0 1px 3px #000}
#v-loading .go{min-width:230px;min-height:56px;font:700 18px system-ui;color:var(--navy);background:var(--gold);border:0;border-radius:999px;padding:0 28px;box-shadow:0 0 24px rgba(239,206,114,.7);animation:glow 1.6s ease-in-out infinite alternate}
@keyframes glow{from{transform:scale(.98)}to{transform:scale(1.03)}}
#v2{position:fixed;inset:0;pointer-events:none;z-index:50}#v2>*{pointer-events:auto}
.v{position:absolute;left:0;right:0;top:0;bottom:calc(var(--nav) + env(safe-area-inset-bottom));overflow:hidden;background:var(--navy)}.v[hidden]{display:none}
.hud2{position:absolute;top:max(8px,env(safe-area-inset-top));left:8px;right:8px;display:flex;gap:6px;align-items:center;z-index:60;pointer-events:none}.hud2[hidden]{display:none}
.hud2 .chip{pointer-events:none;background:rgba(6,27,50,.82);border:2px solid #c9a84d;color:#fff;border-radius:16px;padding:3px 10px;font:700 15px system-ui}.hud2 button{margin-left:auto;pointer-events:auto;width:44px;height:44px;border-radius:50%;border:2px solid #c9a84d;background:rgba(6,27,50,.82);font-size:19px;color:#fff}
.nav2{position:absolute;left:0;right:0;bottom:0;height:calc(var(--nav) + env(safe-area-inset-bottom));padding:6px 6px env(safe-area-inset-bottom);display:flex;justify-content:space-around;align-items:center;background:linear-gradient(180deg,rgba(6,27,50,.0),#061b32 30%);z-index:80}
.nb{position:relative;width:66px;height:66px;padding:0;border:0;background:none;touch-action:manipulation;transition:transform .2s,filter .2s;filter:saturate(.85) brightness(.9)}.nb img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.nb.on{transform:translateY(-6px) scale(1.1);filter:none}.nb.dim{opacity:.55}.nb.more{width:44px;height:44px;border-radius:50%;border:2px solid #c9a84d;background:rgba(6,27,50,.85);color:#fff;font-size:22px}
.nb.blink{animation:blink 1s ease-in-out infinite alternate}@keyframes blink{from{transform:scale(1);filter:drop-shadow(0 0 0 #fff)}to{transform:scale(1.18);filter:drop-shadow(0 0 12px #ffe27a) brightness(1.25)}}
/* île & salle */
.pan{position:absolute;inset:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}.pan::-webkit-scrollbar{display:none}
.stage{position:relative;height:100%}.stage .base,.stage .foam{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}
#v-ile .sea{position:absolute;inset:0;width:100%;height:100%}#v-ile .pan{inset:0 0 0 0}#v-ile .stage{margin:10px 0}
#v-ile .foam{animation:foam 3.2s ease-in-out infinite alternate;mix-blend-mode:screen}@keyframes foam{from{opacity:.35;transform:scale(1)}to{opacity:.95;transform:scale(1.006)}}
.flash{position:absolute;inset:0;background:radial-gradient(circle,#fff 0,#fff8d0 40%,transparent 75%);opacity:0;pointer-events:none}.flash.go{animation:flash 1.1s ease-out}@keyframes flash{0%{opacity:0}35%{opacity:1}100%{opacity:0}}
.hot{position:absolute;transform:translate(-50%,-50%);aspect-ratio:1;border-radius:50%;border:0;background:transparent;padding:0;touch-action:manipulation;min-width:44px;min-height:44px}
.hot .lab{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;background:rgba(6,27,50,.85);border:1.5px solid #c9a84d;border-radius:12px;padding:2px 9px;font:700 12px system-ui;color:#fff;pointer-events:none}
.hot:not(.locked)::after{content:"";position:absolute;inset:18%;border-radius:50%;border:3px solid rgba(255,236,150,.85);animation:ring 1.8s ease-out infinite}@keyframes ring{from{transform:scale(.7);opacity:1}to{transform:scale(1.25);opacity:0}}
.hot.locked .lab{opacity:.8;background:rgba(40,40,60,.85)}
.back{position:absolute;left:8px;bottom:10px;min-height:44px;padding:0 16px;border-radius:22px;border:2px solid #c9a84d;background:rgba(6,27,50,.88);color:#fff;font:700 15px system-ui;z-index:5}
#v-dome .back{top:calc(max(8px,env(safe-area-inset-top)) + 50px);bottom:auto}
/* aquarium A1 */
.a1top{position:relative;padding-top:calc(max(8px,env(safe-area-inset-top)) + 48px);background:#030f1d}.a1img{position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden}.a1img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.a1img .b1{opacity:0;transition:opacity .9s}.a1img .b1.show{opacity:1}.a1img .b0{z-index:0}.a1img .b1{z-index:1}.fish-far,.fish-near{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.fish-far{z-index:2;filter:saturate(.75) brightness(.88) blur(.5px);opacity:.9}.fish-near{z-index:3}
.a1img .b1.show~.fish-far{opacity:.9}.a1card{padding:12px 16px;color:#fff;background:linear-gradient(#030f1d,#061b32)}.a1card h2{margin:0 0 6px;font:700 20px system-ui}.a1card h2 small{color:var(--gold);font-weight:600;font-size:13px;margin-left:6px}
.a1list{list-style:none;margin:6px 0;padding:0;font:15px system-ui;display:grid;gap:4px}.a1list li{opacity:.75}.a1list li.ok{opacity:1;color:#bff0c8}.a1pop{margin:8px 0 52px;font:14px system-ui;color:#cfe6f5}
#v-a1 .back{position:absolute;left:16px;bottom:10px}
/* objectifs / évents / plus */
#v-goals,#v-more,#v-events{padding:calc(max(8px,env(safe-area-inset-top)) + 54px) 14px 14px;overflow:auto;color:#fff;background:radial-gradient(circle at 50% 0,#0f4c7a,#061b32 70%)}
#v-goals h1,#v-more h1{margin:0 0 12px;font:700 24px system-ui}.goal{position:relative;background:rgba(6,27,50,.8);border:2px solid #315f84;border-radius:16px;padding:10px 12px;margin-bottom:10px}.goal.cur{border-color:var(--gold);box-shadow:0 0 16px rgba(239,206,114,.35)}.goal.later{opacity:.55}.goal.done{opacity:.8;border-color:#3d8f5c}
.goal .gt{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.goal .gt b{color:var(--gold);min-width:30px}.goal .gt span{flex:1;font:600 15px system-ui}.goal .cost{font:700 13px system-ui;color:#ffe08a}.goal .cost.gold{color:#ffd24a}
.prog{height:9px;background:#0b2a45;border-radius:6px;margin:8px 0 2px;overflow:hidden}.prog i{display:block;height:100%;background:linear-gradient(90deg,#f6d57a,#fff3b0)}.pv{font:13px system-ui;color:#cfe6f5}.pv.ok{color:#9be3b0}
.check{position:absolute;right:10px;bottom:10px;width:54px;height:54px;border-radius:50%;border:3px solid #fff;background:#1f9d4d;color:#fff;font-size:28px;font-weight:700;box-shadow:0 0 14px rgba(70,220,120,.6);touch-action:manipulation}.check:disabled{background:#4a5a64;border-color:#8a98a2;box-shadow:none;opacity:.7}
.soon{text-align:center;margin-top:30vh;color:#fff}.soon h1{font:700 26px system-ui}.soon p{font:600 18px system-ui;color:var(--gold)}.soon small{opacity:.6}
.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mg{display:flex;flex-direction:column;align-items:center;gap:4px;background:rgba(6,27,50,.8);border:2px solid #315f84;border-radius:16px;padding:10px;color:#fff;font:700 14px system-ui;min-height:96px}.mg img{width:72px;height:72px;object-fit:contain}
.opts{margin-top:16px;display:grid;gap:12px;font:600 15px system-ui}.opts label{display:grid;gap:4px}.opts button{min-height:44px;border-radius:12px;border:2px solid #c9a84d;background:#0b2a45;color:#fff;font:700 15px system-ui}
/* commande spéciale dorée */
.spcard{position:fixed;left:8px;right:8px;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 4px);z-index:70;display:none;align-items:center;gap:10px;padding:8px 12px;border-radius:16px;background:linear-gradient(135deg,#7a5a10,#f0c63c 45%,#fff0a0 55%,#c9961c);border:3px solid #fff3b0;color:#3b2800;box-shadow:0 0 20px rgba(255,214,80,.75)}
.spcard.on{display:flex}.spcard .st{font:800 12px system-ui;text-transform:uppercase;writing-mode:horizontal-tb;letter-spacing:.04em;width:70px}.spcard .sd{flex:1;font:700 14px system-ui;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.spcard .sd img{height:30px}.spcard .sb{min-width:76px;min-height:44px;border-radius:12px;border:2px solid #3b2800;background:#1f9d4d;color:#fff;font:800 15px system-ui}.spcard .sb:disabled{background:#8a7a50;color:#e8dcae}
#board .cell.sp-glow{outline:3px solid #ffd24a;outline-offset:-3px;border-radius:14px;box-shadow:0 0 16px 4px rgba(255,210,74,.85) inset,0 0 14px rgba(255,210,74,.8)}
/* BD */
.bd{position:fixed;inset:0;z-index:900;background:#d9cdb0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);touch-action:manipulation;user-select:none;-webkit-user-select:none;font-family:"Chalkboard SE","Marker Felt","Bradley Hand",ui-rounded,system-ui,sans-serif}.bd[hidden]{display:none}
.bd .page{position:absolute;inset:10px;background:#f6efdc;border-radius:6px;box-shadow:0 0 0 2px #bfae86,0 8px 24px rgba(0,0,0,.35);display:flex;flex-direction:column;padding:10px 12px 8px;background-image:radial-gradient(rgba(0,0,0,.05) 1px,transparent 1px);background-size:7px 7px}
.bd .page.turn{animation:turn .45s cubic-bezier(.2,.8,.2,1)}@keyframes turn{from{transform:translateX(22px) rotate(.6deg);opacity:.2}to{transform:none;opacity:1}}
.pg-top{height:22px;text-align:right;font:700 12px system-ui;color:#7b6a45}.panel{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;border:5px solid var(--ink);background:#0a1c2c;box-shadow:5px 5px 0 rgba(0,0,0,.28);overflow:hidden}
.panel .pimg{max-width:100%;max-height:100%;object-fit:contain;display:block}
.cart{position:absolute;left:8px;top:8px;max-width:78%;background:#ffe9a8;border:3px solid var(--ink);padding:5px 9px;font:700 14px/1.25 "Chalkboard SE","Marker Felt",system-ui;color:var(--ink);box-shadow:3px 3px 0 rgba(0,0,0,.35);z-index:4}
.plq{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);max-width:88%;background:linear-gradient(#e8c870,#b8913a);border:3px solid #5b4310;padding:8px 14px;text-align:center;font:800 18px/1.25 Georgia,serif;color:#2f2208;box-shadow:0 0 18px rgba(255,220,120,.7);z-index:4}.plq small{display:block;font:700 11px system-ui;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.margin{min-height:158px;padding-top:12px;display:flex;align-items:center;justify-content:center;position:relative}.hint{font:600 13px system-ui;color:#8b7b55}
.bubble{position:relative;display:flex;gap:10px;align-items:center;width:100%;background:#fff;border:4px solid var(--ink);border-radius:26px;padding:12px 16px;box-shadow:3px 4px 0 rgba(0,0,0,.25);animation:pop .25s}.bubble[hidden]{display:none}@keyframes pop{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}
.bubble::before{content:"";position:absolute;top:-22px;width:26px;height:26px;background:#fff;border-left:4px solid var(--ink);border-top:4px solid var(--ink);transform:rotate(45deg) skew(10deg,10deg);border-radius:4px 0 0 0}.bubble.left::before{left:46px}.bubble.right::before{right:46px}
.bubble .bp{width:62px;height:62px;border-radius:50%;object-fit:cover;object-position:top;border:3px solid var(--ink);background:#bde3f4;flex:none}.bubble b{display:block;font:800 13px system-ui;color:#a8480b;text-transform:uppercase;letter-spacing:.04em}.bubble p{margin:2px 0 0;font-size:18px;line-height:1.3;color:var(--ink);font-weight:700}
.bd.cin .panel{flex:0 0 auto;aspect-ratio:1672/941;width:100%}
.bdnav{display:flex;justify-content:space-between;height:60px;align-items:center}.bdnav button{position:relative;width:56px;height:56px;border-radius:50%;border:3px solid var(--ink);background:#ffe9a8;box-shadow:2px 3px 0 rgba(0,0,0,.3)}.bdnav button::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;border-top:4px solid var(--ink);border-right:4px solid var(--ink)}.bdnav .next::after{transform:translate(-65%,-50%) rotate(45deg)}.bdnav .prev::after{transform:translate(-35%,-50%) rotate(-135deg)}
/* niveaux / coffres / Pitiplouf */
.ov{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px;background:radial-gradient(circle at 50% 35%,rgba(20,90,150,.94),rgba(3,15,29,.97));color:#fff;opacity:0;transition:opacity .4s;overflow:auto}.ov.on{opacity:1}
.lvbig{text-align:center;animation:zoom .7s cubic-bezier(.2,1.4,.4,1)}.lvbig small{display:block;font:700 22px system-ui;color:#cfe6f5;letter-spacing:.2em;text-transform:uppercase}.lvbig b{display:block;font:900 120px/1 system-ui;color:var(--gold);text-shadow:0 0 30px rgba(255,214,80,.9)}@keyframes zoom{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}
.pbub{display:flex;gap:10px;align-items:center;background:rgba(6,27,50,.92);border:3px solid var(--gold);border-radius:18px;padding:10px 14px;max-width:420px}.pbub img{width:74px;height:auto;flex:none;animation:bob 2.2s ease-in-out infinite}.pbub p{margin:0;font:600 17px/1.3 system-ui}@keyframes bob{50%{transform:translateY(-5px) rotate(2deg)}}
.okb{min-width:150px;min-height:50px;border-radius:26px;border:3px solid #fff;background:#1f9d4d;color:#fff;font:800 17px system-ui;padding:0 22px;box-shadow:0 0 16px rgba(70,220,120,.55)}.okb[hidden]{display:none}
.chests h2{margin:0;font:800 22px system-ui}.cc{display:flex;flex-direction:column;gap:12px;width:100%;max-width:420px}.chest{position:relative;border:3px solid #5b4310;border-radius:16px;overflow:hidden;background:#06203a;padding:0;min-height:150px;touch-action:manipulation}.chest img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.chest em{position:absolute;bottom:8px;left:0;right:0;text-align:center;font:700 14px system-ui;text-shadow:0 1px 4px #000;animation:glow 1.2s infinite alternate}.chest.burst{animation:burst .7s}@keyframes burst{30%{transform:scale(1.06);filter:brightness(1.6)}100%{transform:none}}
.chest .rw{position:absolute;left:8px;right:8px;bottom:8px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chest .rw i{font:800 15px system-ui;font-style:normal;background:rgba(6,27,50,.88);border:2px solid var(--gold);border-radius:14px;padding:3px 10px;animation:pop .35s}
.vialmsg[hidden]{display:none}
.end h1{font:800 32px system-ui;color:var(--gold);margin:0}.end p{text-align:center;font:600 17px/1.4 system-ui;margin:0}
/* Pitiplouf guide */
.blk{position:fixed;inset:0;z-index:1200;display:none;background:rgba(0,10,25,.28)}
.pit{position:fixed;left:0;top:0;z-index:1300;width:96px;transition:transform .9s cubic-bezier(.3,.9,.3,1);pointer-events:none}.pit .pf{animation:fly 1.8s ease-in-out infinite}.pit img{width:96px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}@keyframes fly{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}
.pitb{position:fixed;left:10px;right:10px;z-index:1310;display:flex;gap:10px;align-items:center;background:rgba(6,27,50,.95);border:3px solid var(--gold);border-radius:18px;padding:10px 14px;box-shadow:0 6px 20px rgba(0,0,0,.5)}.pitb img{width:56px;flex:none}.pitb b{color:var(--gold);font:800 13px system-ui}.pitb p{margin:2px 0 6px;font:600 16px/1.3 system-ui;color:#fff}.pitb .okb{pointer-events:auto;min-height:44px}
#v2-toast{position:fixed;left:50%;bottom:calc(var(--nav) + 30px);transform:translateX(-50%) translateY(20px);max-width:86%;z-index:2100;background:rgba(6,27,50,.95);border:2px solid var(--gold);color:#fff;border-radius:14px;padding:8px 14px;font:600 14px system-ui;opacity:0;pointer-events:none;transition:.3s;text-align:center}#v2-toast.on{opacity:1;transform:translateX(-50%)}
body.bd-on #nav2,body.bd-on #hud2{visibility:hidden}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}

#dev-toggle{display:none!important}body.dev #dev-toggle{display:block!important}
.hl{position:fixed;z-index:1250;pointer-events:none;border:5px solid #fff3b0;outline:3px solid #c98a00;border-radius:20px;box-shadow:0 0 28px 10px rgba(255,236,140,.85);animation:hlp 1.1s ease-in-out infinite alternate}@keyframes hlp{from{opacity:.75;transform:scale(.985)}to{opacity:1;transform:scale(1.02)}}
.chest em{background:rgba(6,27,50,.82);border:2px solid var(--gold);border-radius:14px;left:50%;right:auto;transform:translateX(-50%);padding:3px 12px;white-space:nowrap}
