/* AM-A12 — correctifs de stabilisation, carnet de restauration (AM-ART-035 V3), signalisation de grille, jauge du Corail, outils QA. */
/* INC-06 : pas de menu natif de sélection/copie/recherche sur les SURFACES DE JEU. Le zoom d'accessibilité (pincer), le focus clavier, les libellés ARIA et la sélection de texte
   des fenêtres d'assistance / QA restent actifs. */
#scene,#board,#board .cell,#coral-produce,#order-carousel,#order-card,#v2,.bd,.ov,.pitb,.pit,.chest,.nb,.hot,.drag-ghost,.spcard,#coral-gauge,.carnet,.hud2,#hud-values{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
img{-webkit-touch-callout:none;-webkit-user-drag:none}
.abox,.abox *,#qa-root,#qa-root *,input,textarea,.selectable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
/* INC-01 : scènes. Centrage SÛR (jamais de contenu coupé en haut), bouton toujours atteignable, une seule couche, hauteur dynamique iOS. */
.ov{height:100vh;height:100dvh;justify-content:flex-start;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));overscroll-behavior:contain;transition:none;opacity:1;-webkit-overflow-scrolling:touch}
.ov::before,.ov::after{content:"";flex:1 0 0}
.ov .okb{position:sticky;bottom:6px;flex:none}
.ov .pbub{flex:none}.ov .lvbig{flex:none}
.scene-err{flex:none;width:100%;max-width:420px;background:#4a1d17;border:3px solid #e07a5f;border-radius:14px;padding:10px 12px;font:600 14px/1.35 system-ui;color:#fff;display:flex;flex-direction:column;gap:6px}.scene-err[hidden]{display:none}.scene-err small{opacity:.85;font-weight:500}.scene-err .ab{min-height:44px}
.tipstat{display:block;max-width:420px;text-align:center;font:700 11px system-ui;letter-spacing:.05em;text-transform:uppercase;color:#ffd08a;opacity:.9}
.okb[aria-busy=true]{opacity:.6}
/* INC-04 : jauge du Corail (coordonnées de la scène 1024×1536) */
#coral-produce.worn{filter:grayscale(.85) brightness(.8)}
/* Signalisation de la grille : vert = commande ordinaire, or + paillettes = objectif prioritaire (l'or l'emporte) */
#board .cell.sig-green{border-radius:16px;box-shadow:0 0 0 4px rgba(120,255,150,.95) inset,0 0 22px 6px rgba(80,255,130,.85)!important}
#board .cell.sig-green::after{content:"✓";position:absolute;top:2px;right:4px;font:900 26px/1 system-ui;color:#eaffee;text-shadow:0 0 6px #0a6b2d,0 0 3px #0a6b2d;pointer-events:none}
#board .cell.sig-gold{border-radius:16px;box-shadow:0 0 0 5px #ffd24a inset,0 0 26px 8px rgba(255,205,60,.95)!important;outline:none}
#board .cell.sig-gold::after{content:"✦";position:absolute;top:0;right:3px;font:900 30px/1 system-ui;color:#fff6c2;text-shadow:0 0 8px #c98a00,0 0 3px #7a5200;pointer-events:none;animation:sg-tw 1.2s ease-in-out infinite alternate}
#board .cell.sig-gold::before{content:"✦  ✧  ✦";position:absolute;left:0;right:0;bottom:2px;text-align:center;font:700 22px/1 system-ui;letter-spacing:.2em;color:#fff1a8;text-shadow:0 0 6px #d9a000;pointer-events:none;animation:sg-tw 1.6s ease-in-out infinite alternate-reverse}
#board .cell.sig-both.sig-gold::after{content:"✦"}
#board .cell.sig-both{background-image:radial-gradient(circle at 12% 88%,rgba(90,255,140,.95) 0 9px,transparent 10px)!important}
@keyframes sg-tw{from{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){#board .cell.sig-gold::after,#board .cell.sig-gold::before{animation:none!important}}
#board .cell.deliverable.sig-gold,#board .cell.sp-glow{outline:none}
/* Carnet de restauration (page Objectifs) */
#v-goals{padding:calc(max(8px,env(safe-area-inset-top)) + 8px) 8px 8px;display:flex;align-items:center;justify-content:center;overflow:hidden}#v-goals[hidden]{display:none}
.carnet{position:relative;height:100%;max-height:min(100%,calc((100vw - 16px)*1.5));aspect-ratio:2/3;max-width:100%}
.carnet .cv{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:3;opacity:0;transform:scale(.92);pointer-events:none;transition:opacity .5s,transform .6s}
.carnet.opening .cv{opacity:1;transform:none;pointer-events:auto}.carnet.opened .cv{opacity:0;transform:scale(1.06);pointer-events:none}
.carnet .pg{position:absolute;inset:0;opacity:0;transition:opacity .5s .25s}.carnet.opened .pg{opacity:1}.carnet:not(.opening):not(.opened) .pg{opacity:1}
.carnet .paper{position:absolute;inset:8% 7.3% 9% 7.3%;background:radial-gradient(ellipse at 50% 40%,#f5e6bd,#e8d3a2 75%,#d9bf86);border-radius:18px}
.carnet .frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.carnet .inner{position:absolute;left:10.5%;right:10.5%;top:15%;bottom:12.5%;display:flex;flex-direction:column;color:#3b2a10;overflow:auto;-webkit-overflow-scrolling:touch}
#v-goals .carnet .ctitle{margin:0 0 6px;font:800 clamp(13px,3.6vw,16px)/1.1 Georgia,serif;text-align:center;color:#4a3410;letter-spacing:.02em}
.carnet .gclose{position:absolute;right:-1%;top:-1%;width:max(48px,13%);height:auto;aspect-ratio:1;padding:0;border:0;background:none;z-index:5;touch-action:manipulation}.carnet .gclose img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.carnet .goals-list{display:flex;flex-direction:column;gap:8px;flex:1}
.carnet .goal{background:rgba(255,248,226,.55);border:2px solid #b8913a;border-radius:14px;padding:8px 10px;margin:0;color:#3b2a10;box-shadow:none}
.carnet .goal.cur{padding:8px 10px 10px;border-width:2px}
.carnet .goal .gk{font:800 11px system-ui;letter-spacing:.09em;text-transform:uppercase;color:#8a5a00;margin-bottom:3px}
.carnet .goal h2{margin:0 0 4px;font:800 clamp(14px,3.9vw,17px)/1.2 Georgia,serif;color:#3b2a10}
.carnet .goal .cost{display:flex;align-items:center;gap:8px;font:900 22px system-ui;color:#7a4a00}.carnet .goal .cost img{width:30px;height:30px;object-fit:contain}.carnet .goal .cost.sp img{height:40px;width:auto}
.carnet .pv{margin-left:auto;font:700 13px system-ui;color:#6b4a14}
.carnet .gnote{margin-top:4px;font:600 12.5px/1.3 system-ui;color:#5a4318}.carnet .scene-wait{background:rgba(255,230,170,.7);border:2px dashed #b8913a;border-radius:12px;padding:8px 10px}
.cbar{position:relative;width:100%;aspect-ratio:3/1;margin:-14px 0 -14px}.cbar img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.grew{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.grew small{font:800 11px system-ui;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00}
.rchip{display:inline-flex;align-items:center;gap:4px;background:#3b2a10;color:#ffe9a8;border-radius:12px;padding:3px 10px;font:800 13px system-ui}.rchip img{width:18px;height:18px}
.cbtn{position:relative;display:block;width:min(100%,210px);margin:2px auto 0;aspect-ratio:3/1;padding:0;border:0;background:none;touch-action:manipulation;min-height:48px}
.cbtn img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.cbtn span{position:relative;z-index:1;display:block;font:900 clamp(14px,4.2vw,18px)/1 system-ui;color:#fff;text-shadow:0 2px 3px rgba(0,0,0,.65);padding:0 18%}.cbtn.grey span{color:#e6e6e6}
.cbtn:disabled{cursor:default}.cbtn:disabled.grey{filter:none}.cbtn:active:not(:disabled){transform:scale(.97)}
.carnet .ghist{margin-top:auto;min-height:46px;border-radius:12px;border:2px solid #b8913a;background:rgba(255,248,226,.5);color:#4a3410;font:800 14px system-ui}.carnet .ghist:disabled{opacity:.45}
.gbook{position:relative;width:100%;margin-top:4px}.gbook img{display:block;width:100%;height:auto}.gbook .gdone{position:absolute;left:9%;top:14%;width:36%;bottom:14%;margin:0;padding:0;list-style:none;overflow:auto;font:700 clamp(10px,2.7vw,13px)/1.25 Georgia,serif;color:#3b2a10;display:grid;align-content:start;gap:5px}
/* Assistance / QA */
.abox.wide{max-width:560px}.abox pre,.abox textarea{width:100%;max-height:260px;overflow:auto;background:#06131f;color:#cfe6f5;border:1px solid #315f84;border-radius:8px;padding:8px;font:12px/1.35 ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
.abox .tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.abox .tabs .ab{flex:0 1 auto;min-height:44px;padding:0 12px}.abox .tabs .ab.on{background:#c9a84d;color:#061b32}
.abox .row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #1d3d5a;font-size:13px}.abox .pass{color:#7be0a0;font-weight:800}.abox .fail{color:#ff9d8a;font-weight:800}.abox .skip{color:#ffd27a;font-weight:800}
.abox table{width:100%;border-collapse:collapse;font-size:12px}.abox td,.abox th{border-bottom:1px solid #1d3d5a;padding:4px 6px;text-align:left;vertical-align:top}
.qa-frame{position:fixed;left:-9999px;top:0;width:414px;height:896px;border:0}

/* A12 (INC-01) : les boîtes de dialogue ne doivent JAMAIS hériter des règles du sprite de guidage « .pit » (96 px, pointer-events:none) — filet de sécurité en plus du renommage en « pitdlg » */
.ov{pointer-events:auto;width:auto}

/* Jauge d'usure verticale (AM-REV-FINAL-001) — coordonnées en unités de scène (1024×1536) */
#coral-gauge{position:absolute;left:846px;top:628px;width:170px;height:657px;pointer-events:none;z-index:5}
#coral-gauge img{position:absolute;left:0;top:0;width:100%;height:100%;user-select:none;-webkit-user-drag:none}
#coral-gauge .cg-full{transition:clip-path .35s ease-out}
#coral-gauge .cg-num{position:absolute;left:0;right:0;top:25%;transform:translateY(-50%);text-align:center;font:900 37px/1 Georgia,'Times New Roman',serif;color:#ffd24a;text-shadow:0 2px 0 #7a4a00,0 0 8px rgba(255,200,60,.55);letter-spacing:-1px;white-space:nowrap}
#coral-gauge .cg-sub{position:absolute;left:-40px;right:-6px;white-space:nowrap;top:100%;margin-top:6px;text-align:center;font:800 22px/1.1 system-ui;color:#ffe9a8;text-shadow:0 2px 4px #001;background:rgba(3,15,29,.72);border-radius:12px;padding:3px 4px}
#coral-gauge .cg-sub:empty{display:none}
#coral-gauge[data-status=low] .cg-num{color:#ffb347}#coral-gauge[data-status=exhausted] .cg-num{color:#ff9d8a;text-shadow:0 2px 0 #5a1a10}#coral-gauge[data-status=exhausted] .cg-sub{color:#ffb3a0}
/* Décor de remplissage : copie floutée du décor officiel, jamais une bande unie (AM-REV-FINAL-001) */
body[data-view="labo"] .viewport{position:relative;background:#061b32}
body[data-view="labo"] .viewport::before{content:"";position:absolute;inset:-30px;background:url(assets/canon_v2/fond.webp) center/cover no-repeat;filter:blur(16px) brightness(.62) saturate(1.1);pointer-events:none}
.viewport>.scene{z-index:1}
.nav2::before{content:"";position:absolute;left:0;right:0;bottom:0;top:-10px;background:linear-gradient(180deg,rgba(6,27,50,0),rgba(6,27,50,.28));pointer-events:none;z-index:-1}
/* AM-REV-FINAL-001 : vues « plein décor » (île, salle, aquarium) s'étendent derrière la barre de navigation (pas de bande opaque) ; les commandes basses restent au-dessus. */
#v-ile,#v-dome,#v-a1{bottom:0}
#v-a1 .back{bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 10px)}
#v-dome .back{bottom:auto}
.nav2::before{top:-24px;background:linear-gradient(180deg,rgba(6,27,50,0),rgba(6,27,50,.42))}

/* ───── AM-REV-FINAL-001 : interface de commande — panneaux officiels or / bleu / cristal (assets/v2/ui/order-panel-1|2.webp) ───── */
#order-carousel{left:256px;top:212px;width:488px;height:414px}
#order-card .official-frame{z-index:2}
#order-card .order-plate{left:13.29%;top:16.45%;width:72.91%;height:42.86%;z-index:1;border-radius:26px;background:radial-gradient(ellipse at 50% 40%,rgba(18,58,98,.80),rgba(6,24,46,.90));box-shadow:inset 0 0 22px rgba(0,0,0,.45)}
#order-card .order-portrait-zone,#order-card .order-slot,#order-card .order-deliver,#order-card .order-reward{z-index:3}
#order-card .order-portrait-zone{border:5px solid #d9aa3a;box-shadow:0 0 0 3px #7a5314,0 0 14px rgba(0,0,0,.6);background:#0a2038}
#order-card .order-slot{flex-direction:column;overflow:visible;gap:2px;justify-content:flex-start}
#order-card .order-slot .os-pic{position:relative;flex:none;width:100%;height:calc(100% - 62px);display:flex;align-items:center;justify-content:center;border-radius:16px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 3px rgba(217,170,58,.55)}
#order-card .order-slot img{width:88%;height:88%}
#order-card .order-slot .os-count{position:static;flex:none;margin-top:6px;min-width:96px;text-align:center;font:900 40px/1 system-ui;padding:4px 14px;border-radius:999px;background:#0b2a4a;border:3px solid #d7b66e;color:#ffd2a0;text-shadow:0 2px 2px #000}
#order-card .order-slot.done .os-count{color:#9cffb0;border-color:#5ed07a}
#order-card .order-slot.missing img{opacity:.62}
#order-card .order-deliver{border:4px solid #c9a24a;border-radius:20px;font:900 36px/1 system-ui;color:#d6dde6;background:linear-gradient(#41566b,#25384b);text-shadow:0 2px 2px #000;box-shadow:0 4px 0 #101c28}
#order-card .order-deliver.ready{color:#fff;background:linear-gradient(#58d86a,#1f9d3c);border-color:#f5e08a;box-shadow:0 4px 0 #0e5a22,0 0 22px 6px rgba(128,255,131,.6);animation:deliver-pulse 1.4s ease-in-out infinite alternate}
#order-card .order-deliver.working{color:#fff;background:linear-gradient(#58d86a,#1f9d3c);border-color:#f5e08a;opacity:.9}
@keyframes deliver-pulse{from{transform:scale(1)}to{transform:scale(1.04)}}
#order-card .order-reward{justify-content:center;font:900 44px/1 system-ui;color:#ffe9a8;text-shadow:0 2px 3px #001;white-space:nowrap}
#order-card .order-reward.rw-energy{color:#aef0ff}
#order-card[data-state=incomplete] .order-portrait-zone{filter:saturate(.8)}
#order-prev,#order-next{top:calc(207px - 22px * var(--inv,2.47))}
#order-position{top:calc(414px - 46px * var(--inv,2.47));z-index:4}
@media (prefers-reduced-motion:reduce){#order-card .order-deliver.ready{animation:none}}
#order-card[data-count="1"] .order-deliver{font-size:30px}
#order-card[data-count="2"] .order-deliver,#order-card[data-count="3"] .order-deliver{font-size:46px;border-width:3px}
#order-card[data-count="3"] .order-slot .os-count{min-width:0;padding:4px 8px;font-size:30px}
#order-card[data-count="2"] .order-slot .os-count{min-width:0;padding:4px 10px;font-size:34px}
#order-card .order-deliver{overflow:hidden;white-space:nowrap}

/* ───── Commande spéciale dorée : prend la place des commandes classiques (AM-REV-FINAL-001) ───── */
#scene.sp-on #order-carousel{visibility:hidden;pointer-events:none}
.spcard{position:absolute;left:256px;top:212px;right:auto;bottom:auto;width:488px;height:414px;padding:0;gap:0;display:none;z-index:4;background:none;border:0;box-shadow:none;border-radius:0}
.spcard.on{display:block}
.spcard>*{position:absolute}
.spcard .official-frame{inset:0;width:100%;height:100%;z-index:2;pointer-events:none;filter:drop-shadow(0 0 14px rgba(255,214,80,.95)) saturate(1.15)}
.spcard .sp-plate{left:13.29%;top:16.45%;width:72.91%;height:42.86%;z-index:1;border-radius:26px;background:radial-gradient(ellipse at 50% 40%,rgba(120,84,10,.88),rgba(52,34,4,.94));box-shadow:inset 0 0 22px rgba(0,0,0,.5),inset 0 0 0 3px rgba(255,214,80,.55)}
.spcard .sp-badge{left:14.7%;top:24.7%;width:19.8%;height:23.4%;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;border:5px solid #ffd24a;background:radial-gradient(circle,#b8861a,#6d4a08);box-shadow:0 0 14px rgba(255,210,70,.8);text-align:center;color:#fff3b0;font:800 17px/1 system-ui}
.spcard .sp-badge b{font-size:54px;line-height:1}
.spcard .sp-badge span{font-size:15px;line-height:1.05;margin-top:2px;letter-spacing:.03em}
.spcard .sp-slot{left:36.7%;top:17.7%;width:22%;height:40.7%;z-index:3;display:flex;flex-direction:column;gap:2px;align-items:center}
.spcard .sp-slot .os-pic{width:100%;height:calc(100% - 62px);display:flex;align-items:center;justify-content:center;border-radius:16px;background:rgba(255,230,150,.12);box-shadow:inset 0 0 0 3px rgba(255,214,80,.8)}
.spcard .sp-slot img{width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 3px 3px #0007)}
.spcard .sp-slot .os-count{margin-top:6px;min-width:96px;text-align:center;font:900 40px/1 system-ui;padding:4px 14px;border-radius:999px;background:#3a2606;border:3px solid #ffd24a;color:#ffd2a0;text-shadow:0 2px 2px #000}
.spcard .sp-slot.done .os-count{color:#9cffb0;border-color:#5ed07a}
.spcard .sp-lab{left:13.5%;top:51%;width:73%;height:7%;z-index:3;text-align:center;font:800 22px/1 system-ui;color:#ffe9a8;text-shadow:0 2px 3px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none}
.spcard .sp-reward{left:29.4%;top:66.5%;width:18.7%;height:9.7%;z-index:3;display:flex;align-items:center;justify-content:center;font:900 44px/1 system-ui;color:#ffe9a8;text-shadow:0 2px 3px #001}
.spcard .sb{left:61.3%;top:32.9%;width:23.1%;height:10.4%;z-index:3;margin:0;border:4px solid #c9a24a;border-radius:20px;font:900 30px/1 system-ui;color:#d6dde6;background:linear-gradient(#41566b,#25384b);text-shadow:0 2px 2px #000;box-shadow:0 4px 0 #101c28;white-space:nowrap;overflow:hidden;padding:0}
.spcard .sb.ready{color:#fff;background:linear-gradient(#58d86a,#1f9d3c);border-color:#f5e08a;box-shadow:0 4px 0 #0e5a22,0 0 22px 6px rgba(128,255,131,.6);animation:deliver-pulse 1.4s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.spcard .sb.ready{animation:none}}
#order-card[data-count="1"] .order-deliver:not(.ready):not(.working),.spcard .sb:not(.ready){font-size:21px}

#coral-gauge .cg-regen{position:absolute;left:-20px;right:-4px;top:calc(100% + 56px);height:78px;pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;border:4px solid #f5e08a;border-radius:18px;background:linear-gradient(#58d86a,#1f9d3c);color:#fff;font:900 24px/1 system-ui;text-shadow:0 2px 2px #000;box-shadow:0 4px 0 #0e5a22;touch-action:manipulation;white-space:nowrap}
#coral-gauge .cg-regen::before{content:'Régénérer';font:900 24px/1 system-ui}
#coral-gauge .cg-regen.confirm::before{content:'Confirmer ?'}
#coral-gauge .cg-regen .rg-row{display:flex;align-items:center;gap:6px}
#coral-gauge .cg-regen[hidden]{display:none}
#coral-gauge .cg-regen img{position:static;width:30px;height:30px;object-fit:contain;pointer-events:none}
#coral-gauge .cg-regen.poor{background:linear-gradient(#41566b,#25384b);border-color:#c9a24a;color:#d6dde6;box-shadow:0 4px 0 #101c28}
#coral-gauge .cg-regen.confirm{background:linear-gradient(#ffb24a,#d9741a);box-shadow:0 4px 0 #7a3a08,0 0 18px 4px rgba(255,190,80,.7)}

/* ───── AM-REV-FINAL-001 : trésors révélés un par un — scène sous-marine immersive (illustrations approuvées assets/v2/chest/*) ───── */
.ov.chests.immersive{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:max(12px,env(safe-area-inset-top)) 12px calc(14px + env(safe-area-inset-bottom));background:#02142a;overflow:hidden}
.chests.immersive .bgblur{position:absolute;inset:-40px;background:#02142a center/cover no-repeat;filter:blur(22px) brightness(.72) saturate(1.2);transition:background-image .5s;pointer-events:none}
.chests.immersive .rays{position:absolute;inset:0;background:conic-gradient(from 195deg at 50% -8%,rgba(160,235,255,0) 0deg,rgba(160,235,255,.22) 10deg,rgba(160,235,255,0) 22deg,rgba(160,235,255,.16) 34deg,rgba(160,235,255,0) 48deg,rgba(160,235,255,.2) 62deg,rgba(160,235,255,0) 80deg);opacity:.7;pointer-events:none;animation:rays-sway 7s ease-in-out infinite alternate}
@keyframes rays-sway{from{opacity:.45;transform:translateX(-14px)}to{opacity:.8;transform:translateX(14px)}}
.chests.immersive .bub{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.chests.immersive .bub span{position:absolute;left:var(--x);bottom:-24px;width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.95) 0 14%,rgba(255,255,255,.25) 36%,rgba(255,255,255,.05) 70%);border:1px solid rgba(255,255,255,.35);opacity:0;animation:bub-rise var(--d) linear var(--w) infinite}
@keyframes bub-rise{0%{transform:translate3d(0,0,0);opacity:0}12%{opacity:.8}100%{transform:translate3d(12px,-105vh,0);opacity:0}}
.chests.immersive h2{position:relative;z-index:2;margin:0;font:800 22px system-ui;text-align:center;color:#fff3c4;text-shadow:0 2px 6px #001}
.chests.immersive .cc{position:relative;z-index:2;width:100%;max-width:520px;flex:none}
.chests.immersive .chest{position:relative;display:block;width:100%;border:0;border-radius:0;background:none;padding:0;min-height:0;overflow:visible}
.chests.immersive .chest[hidden]{display:none!important}
.chests.immersive .chest .art{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:22px;border:3px solid rgba(239,206,114,.85);box-shadow:0 0 40px rgba(110,210,255,.55),0 10px 30px rgba(0,0,0,.6);-webkit-mask-image:none}
.chests.immersive .chest:not(.open) .art{animation:chest-bob 2.4s ease-in-out infinite alternate}
@keyframes chest-bob{from{transform:translateY(0)}to{transform:translateY(-6px)}}
.chests.immersive .chest .flash{position:absolute;inset:0;border-radius:22px;background:radial-gradient(circle,#fff,#fff6c0 40%,rgba(255,255,255,0) 72%);opacity:0;pointer-events:none}
.chests.immersive .chest.burst .flash{animation:chest-flash 1s ease-out}
@keyframes chest-flash{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
.chests.immersive .chest em{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);font:700 16px system-ui;padding:5px 16px;border-radius:16px;background:rgba(6,27,50,.85);border:2px solid #efce72;color:#fff;font-style:normal;animation:chest-hint 1.4s ease-in-out infinite alternate}
@keyframes chest-hint{from{opacity:.7}to{opacity:1}}
.chests.immersive .chest .rw{position:static;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px;left:auto;right:auto;bottom:auto}
.chests.immersive .rc{display:inline-flex;align-items:center;gap:6px;font-style:normal;padding:6px 14px 6px 8px;border-radius:999px;background:rgba(6,27,50,.9);border:2px solid #efce72;color:#fff;opacity:0;animation:rc-in .45s cubic-bezier(.2,1.4,.4,1) forwards;box-shadow:0 0 14px rgba(255,214,90,.5)}
.chests.immersive .rc b{font:900 22px/1 system-ui}.chests.immersive .rc img{width:34px;height:34px;object-fit:contain}.chests.immersive .rc small{font:700 12px system-ui;opacity:.85}
.chests.immersive .rc.rvial{padding:6px 16px;background:linear-gradient(#245c2a,#0f3a1c);border-color:#9cffb0}
@keyframes rc-in{from{opacity:0;transform:translateY(14px) scale(.7)}to{opacity:1;transform:none}}
.chests.immersive .vialmsg{position:relative;z-index:2;max-width:520px;width:100%}
.chests.immersive .cbar{position:relative;z-index:2;display:flex;gap:12px;justify-content:center;min-height:56px}
.chests.immersive .nextb,.chests.immersive .okb{flex:none;height:56px;min-width:210px;padding:0 26px;border:3px solid #f5e08a;border-radius:999px;background:linear-gradient(#58d86a,#1f9d3c);color:#fff;font:800 20px system-ui;box-shadow:0 4px 0 #0e5a22;touch-action:manipulation;position:static}
.chests.immersive .nextb[hidden],.chests.immersive .okb[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.chests.immersive .rays,.chests.immersive .bub span,.chests.immersive .chest:not(.open) .art,.chests.immersive .chest em{animation:none}.chests.immersive .bub{display:none}}

/* poissons vus dans la fenêtre de l'aquarium A1 depuis la salle : calque décoratif, jamais interactif */
#v-dome .stage canvas.fish-near,#v-dome .stage canvas.fish-far{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
#v-dome .stage .hot{z-index:3}

/* AM-REV-FINAL-001 (chantier 10) — dialogues devant l'aquarium : immersifs, plus de « page de BD ». Même texte, même ordre, mêmes animations (poissons, bulles) ; portraits officiels. */
.bd.cin{background:#04162a}
.bd.cin::before{content:"";position:absolute;inset:-30px;background:var(--cinbg) center/cover no-repeat;filter:blur(18px) saturate(1.2) brightness(.55);transform:scale(1.1)}
.bd.cin::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(20,110,170,.25),rgba(2,10,24,.75));pointer-events:none}
.bd.cin .page{background:none;box-shadow:none;border-radius:0;inset:0;padding:calc(env(safe-area-inset-top) + 56px) 0 calc(env(safe-area-inset-bottom) + 80px);justify-content:center;gap:0;z-index:1;background-image:none}
.bd.cin .pg-top{display:none}
.bd.cin .panel{margin:0 8px;width:auto;border:3px solid #d9b25a;border-radius:20px;box-shadow:0 0 0 2px rgba(60,35,5,.7),0 0 34px rgba(80,190,255,.45),0 12px 30px rgba(0,0,0,.55);background:#06203a}
.bd.cin .margin{flex:none;min-height:0;align-items:flex-end;padding:0 8px 4px;margin-top:70px;position:relative;z-index:3}
.bd.cin .hint{display:none}
.bd.cin .bubble{background:linear-gradient(180deg,rgba(10,40,72,.96),rgba(4,20,40,.97));border:3px solid #d9b25a;border-radius:22px;padding:14px 16px 14px 14px;box-shadow:0 0 22px rgba(80,190,255,.35),0 8px 22px rgba(0,0,0,.55);color:#fff;align-items:flex-end;gap:12px}
.bd.cin .bubble::before{display:none}
.bd.cin .bubble .bp{width:92px;height:92px;margin-top:-52px;border:3px solid #d9b25a;background:radial-gradient(circle at 50% 35%,#4cb5e6,#0b3c66);box-shadow:0 4px 12px rgba(0,0,0,.5)}
.bd.cin .bubble b{color:#ffd980;font:800 14px system-ui}
.bd.cin .bubble p{color:#fff;font:600 17px/1.35 system-ui}
.bd.cin .bubble.right{flex-direction:row-reverse}
.bd.cin .bdnav{position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 14px);top:auto;height:56px;z-index:4;pointer-events:none}
.bd.cin .bdnav button{pointer-events:auto;opacity:.92;width:52px;height:52px;background:rgba(10,40,72,.88);border-color:#d9b25a;box-shadow:0 0 14px rgba(80,190,255,.4)}
.bd.cin .bdnav button::after{border-color:#ffd980}
.bd.cin .page.turn{animation:cinIn .5s ease-out}@keyframes cinIn{from{opacity:.0;transform:scale(1.02)}to{opacity:1;transform:none}}

/* AM-REV-FINAL-001 (chantier 11) — introduction en carnet illustré (référence : carnet AM-ART-035 V3) : cuir, papier, cadre officiel, folio, page qui se tourne.
   Variante légère : retournement 3D CSS d'une seule page (pas de moteur 3D), désactivé si « réduire les animations ». Textes et ordre du prologue inchangés. */
.bd:not(.cin){background:radial-gradient(ellipse at 50% 40%,#5b3a1c,#2b1a0b 75%);perspective:1600px}
.bd:not(.cin) .page{inset:calc(env(safe-area-inset-top) + 6px) 8px calc(env(safe-area-inset-bottom) + 6px);border-radius:8px 14px 14px 8px;padding:6px 14px 8px 20px;transform-origin:left center;
  background:radial-gradient(ellipse at 50% 50%,rgba(255,250,230,.55),rgba(200,160,95,.0) 70%),linear-gradient(90deg,rgba(110,70,25,.38),rgba(110,70,25,0) 7%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .32  0 0 0 0 .15  0 0 0 .22 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),#f0dfb6;
  box-shadow:0 0 0 3px #a67a35,0 0 0 6px #3d2410,0 12px 30px rgba(0,0,0,.6),inset 0 0 40px rgba(120,80,30,.35)}
.bd:not(.cin) .pg-top{height:26px;text-align:center;font:italic 700 14px Georgia,serif;color:#7a5a25;letter-spacing:.1em}
.bd:not(.cin) .pg-n::before{content:"— "}.bd:not(.cin) .pg-n::after{content:" —"}
.bd:not(.cin) .panel{border:none;background:#0a1c2c;box-shadow:0 3px 10px rgba(60,35,5,.55);border-radius:6px;outline:2px solid #b88a3a;outline-offset:3px}
.bd:not(.cin) .panel::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 3px rgba(217,178,90,.75),inset 0 0 22px rgba(0,0,0,.45);border-radius:6px;z-index:5}
.bd:not(.cin) .bubble{background:#fff8e6;border-color:#6b4a1c;font-family:Georgia,"Times New Roman",serif}
.bd:not(.cin) .bubble::before{background:#fff8e6;border-color:#6b4a1c}
.bd:not(.cin) .bubble p{font-family:Georgia,"Times New Roman",serif}
.bd .page.flip{animation:bookFlip .7s cubic-bezier(.3,.7,.2,1);transform-origin:left center}
@keyframes bookFlip{0%{transform:rotateY(-78deg);filter:brightness(.55);opacity:.4}55%{filter:brightness(.85);opacity:1}100%{transform:none;filter:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.bd .page.flip,.bd .page.turn{animation:none}}
