:root{font-family:Arial,Helvetica,sans-serif;color:#102335;background:#f4f5f6}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #1d7ae8;outline-offset:4px}header{height:78px;background:#fff;border-bottom:1px solid #dfe5e9;padding:18px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px;min-width:0}.brand img{flex-shrink:0}.brand b{font-size:17px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:500px}.brand span{display:block;font-size:10px;color:#798691;margin-top:6px}.header-actions{display:flex;align-items:center;gap:18px}.header-actions>button{border:1px solid #dce3e9;border-radius:50%;width:30px;height:30px;background:#fff;font-family:Georgia,serif}.header-actions>a,#info-link{background:var(--cta,#d96832);color:#fff;border-radius:4px;padding:13px 18px;font-size:11px;font-weight:600}main{height:calc(100dvh - 78px);min-height:430px;padding:20px 24px 16px;display:flex;flex-direction:column;gap:14px}.viewer{position:relative;flex:1;min-height:300px;border-radius:8px;overflow:hidden;background:#102335;touch-action:none;cursor:grab;isolation:isolate}.viewer:active{cursor:grabbing}.viewer>canvas{position:absolute;inset:0;width:100%;height:100%}.view-title{position:absolute;top:20px;left:20px;background:#102335bb;color:#fff;padding:11px 15px;font-size:12px;z-index:2;border-radius:4px;max-width:calc(100% - 40px);backdrop-filter:blur(4px)}.pins{position:absolute;inset:0;pointer-events:none}.pin{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:#d96832;color:#fff;border:2px solid #fff;width:40px;height:40px;font-size:25px;display:grid;place-items:center;box-shadow:0 0 0 6px #fff3,0 3px 20px #0003;pointer-events:auto;padding:0;touch-action:manipulation}.pin.link{background:var(--accent,#1d7ae8);font-size:20px}.pin span{position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%);font-size:11px;background:#fff;color:#102335;white-space:nowrap;border-radius:3px;padding:10px 13px;opacity:0;pointer-events:none;max-width:250px;overflow:hidden;text-overflow:ellipsis}.pin:hover span,.pin:focus-visible span{opacity:1}.viewer-hud{position:absolute;bottom:20px;left:20px;right:20px;display:flex;align-items:end;justify-content:space-between;gap:20px;pointer-events:none}.viewer-hud>span{background:#102335bb;color:#e0eaf1;padding:10px 13px;border-radius:4px;font-size:10px;line-height:1.6}.controls{display:flex;gap:3px;padding:4px;background:#fffffff0;border-radius:5px;pointer-events:auto}.controls button{width:38px;height:36px;background:transparent;border:0;font-size:23px;border-radius:3px}.controls button:hover,.controls button[aria-pressed=true]{background:#e5ebf0}#scene-tabs{display:flex;align-items:center;justify-content:center;gap:10px;overflow:auto;padding:3px;min-height:50px;flex-shrink:0}#scene-tabs button{display:flex;align-items:center;gap:10px;border:1px solid #d5dde4;border-radius:5px;background:#fff;padding:5px 15px 5px 5px;font-size:11px;white-space:nowrap;min-height:46px}#scene-tabs button.active{border-color:var(--accent,#1d7ae8);box-shadow:inset 0 0 0 1px var(--accent,#1d7ae8)}#scene-tabs img{width:54px;height:35px;object-fit:cover;border-radius:3px}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:14px;background:#10233577;color:#fff;font-size:12px;pointer-events:none;z-index:3}.loading>span{width:22px;height:22px;border:2px solid #fff3;border-top-color:#d96832;border-radius:50%;animation:spin .8s linear infinite}.error{position:absolute;left:20px;right:20px;bottom:110px;background:#fff0e5;color:#7d3c27;padding:15px;border-radius:4px;font-size:12px;line-height:1.7;z-index:5}dialog{border:0;border-radius:8px;padding:0;width:490px;max-width:calc(100% - 28px);max-height:calc(100dvh - 36px);overflow:auto;color:#102335;box-shadow:0 15px 70px #0003;background:#fff}dialog::backdrop{background:#081b2d99;backdrop-filter:blur(4px)}.close{position:absolute;top:12px;right:12px;width:35px;height:35px;background:#fff;border:0;border-radius:4px;font-size:27px;z-index:2}dialog>img{width:100%;max-height:270px;object-fit:cover}.info-body{padding:35px}.eyebrow{font-size:9px;color:#798691;letter-spacing:1.5px}.info-body h1{font-size:29px;font-weight:500;letter-spacing:-.8px;line-height:1.2;margin:18px 0}.info-body p{font-size:13px;color:#657585;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.info-body small{font-size:10px;line-height:1.7;color:#798691;display:block;margin-top:25px}#info-link{display:inline-block;margin-top:10px}body.expanded main{position:fixed;inset:0;height:100dvh;z-index:1000;background:#102335;padding:15px}body.expanded #scene-tabs button{background:#173149;color:#fff;border-color:#fff3}body.expanded #scene-tabs button.active{border-color:#1d7ae8;background:#1b4164}noscript{position:fixed;inset:0;background:#fff;z-index:5000;padding:60px;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:650px){header{height:68px;padding:13px 15px;gap:12px}.brand{gap:9px}.brand img{width:30px;height:30px}.brand b{font-size:13px;max-width:calc(100vw - 160px)}.brand span{font-size:8px;margin-top:5px}.header-actions{gap:10px}.header-actions>button{width:27px;height:27px;font-size:12px}.header-actions>a{font-size:9px;padding:11px;max-width:115px;line-height:1.6}.brand:has(+.header-actions>a) b{max-width:calc(100vw - 190px)}main{height:calc(100dvh - 68px);padding:12px;gap:11px;min-height:420px}.viewer{border-radius:6px;min-height:300px}.view-title{top:13px;left:13px;padding:10px 12px;font-size:11px;max-width:calc(100% - 26px)}.viewer-hud{bottom:13px;left:13px;right:13px;gap:10px;flex-wrap:wrap}.viewer-hud>span{font-size:8px;padding:8px 10px}.controls{margin-left:auto}.controls button{width:35px;height:35px;font-size:23px}#scene-tabs{justify-content:start;gap:8px;min-height:47px}#scene-tabs button{font-size:10px;padding-right:11px;gap:8px;min-height:43px}#scene-tabs img{width:43px;height:32px}.pin span{display:none}.pin{width:42px;height:42px}.info-body{padding:30px 25px}.info-body h1{font-size:26px}.info-body p{font-size:13px}.error{left:13px;right:13px;bottom:112px;font-size:11px}.loading{font-size:10px;gap:10px}body.expanded main{padding:10px}.header-actions>a{font-size:8px}#info-link{font-size:11px}}
@media(prefers-reduced-motion:reduce){.loading>span{animation:none}}

/* ── Ajouts : fondu entre les pièces, flèches au sol, plan, fiches enrichies, marque ── */
.viewer>canvas{transition:opacity .22s ease}.viewer.switching>canvas{opacity:0}
.pin i{font-style:normal;line-height:1}
.pin.link.floor{width:62px;height:62px;background:#ffffffe6;color:var(--accent,#1d7ae8);border:3px solid var(--accent,#1d7ae8);font-size:26px;font-weight:700;transform:translate(-50%,-50%) perspective(260px) rotateX(58deg);box-shadow:0 0 0 10px #ffffff40,0 10px 26px #0006}
.pin.link.floor::after{content:"";position:absolute;inset:-12px;border-radius:50%;border:2px solid #fff;opacity:0;animation:pulse 2.4s ease-out infinite}
.pin.link.floor span{transform:translateY(-50%) rotateX(-58deg)}
@keyframes pulse{0%{transform:scale(.8);opacity:.7}100%{transform:scale(1.35);opacity:0}}
.brand img.partner{width:auto;max-width:120px;height:36px;object-fit:contain}
.monogram{flex-shrink:0;width:36px;height:36px;border-radius:9px;background:var(--accent,#1d7ae8);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:700;text-transform:uppercase}
.plan-panel{position:absolute;left:20px;bottom:74px;z-index:4;width:min(260px,46%);background:#fffffff2;border-radius:8px;padding:8px;box-shadow:0 8px 30px #0005;backdrop-filter:blur(4px);cursor:default}
.plan-box{position:relative;line-height:0}.plan-box img{width:100%;height:auto;max-height:230px;object-fit:contain;display:block;border-radius:4px}
#plan-markers{position:absolute;inset:0}
#plan-markers button{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:#102335;color:#fff;font-size:10px;font-weight:700;line-height:1;display:grid;place-items:center;padding:0;box-shadow:0 1px 6px #0006}
#plan-markers button.active{background:var(--accent,#1d7ae8);width:28px;height:28px;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent,#1d7ae8) 30%,transparent),0 1px 6px #0006}
.plan-close{position:absolute;top:-10px;right:-10px;width:26px;height:26px;border-radius:50%;border:0;background:#102335;color:#fff;font-size:16px;line-height:1;z-index:1}
.controls #plan-toggle{font-size:18px}
.gallery{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 0 0;font-size:11px;color:#798691}
.gallery button{width:32px;height:32px;border-radius:50%;border:1px solid #dce3e9;background:#fff;font-size:19px;line-height:1}
.info-video{margin:16px 0 4px}.info-video:empty{display:none}
.info-video iframe,.info-video video{width:100%;aspect-ratio:16/9;border:0;border-radius:6px;background:#000;display:block}
.info-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.info-actions #info-link{margin-top:0}
a.secondary,button.secondary{display:inline-block;border:1px solid #cfd8df;border-radius:4px;padding:12px 16px;font-size:11px;font-weight:600;color:#102335;background:#fff}
#info-description[hidden]{display:none}
@media(max-width:650px){.plan-panel{left:13px;bottom:66px;width:min(210px,60%)}.pin.link.floor{width:58px;height:58px}}
@media(prefers-reduced-motion:reduce){.viewer>canvas{transition:none}.pin.link.floor::after{animation:none}}

/* ── Avant / après : rideau à faire glisser ── */
.split{position:absolute;inset:0;z-index:3;pointer-events:none;--split:50%}
.split::before{content:"";position:absolute;top:0;bottom:0;left:var(--split);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px #0003}
.split-handle{position:absolute;top:50%;left:var(--split);transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;border:2px solid #fff;background:#102335;color:#fff;font-size:15px;font-weight:700;letter-spacing:-1px;line-height:1;display:grid;place-items:center;padding:0;cursor:ew-resize;pointer-events:auto;touch-action:none;box-shadow:0 4px 18px #0006}
.split-a,.split-b{position:absolute;top:18px;background:#102335cc;color:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:4px;white-space:nowrap}
.split-a{right:calc(100% - var(--split) + 12px)}.split-b{left:calc(var(--split) + 12px)}
/* ── Cotes ── */
.measures{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.measures .halo{fill:none;stroke:#0b1620;stroke-opacity:.55;stroke-width:5;stroke-linecap:round}
.measures .line{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-dasharray:1 0}
.measures .end{fill:#fff;stroke:#0b1620;stroke-width:1.5}
.pin.measure{width:auto;min-width:0;height:auto;border-radius:5px;border:0;background:#102335;color:#fff;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:7px 9px;white-space:nowrap;box-shadow:0 2px 10px #0006;display:block}

/* ── Lecture automatique, partage, intégration ── */
.controls #autoplay,.controls #measure-toggle{font-size:15px}
.controls #autoplay[aria-pressed=true]{background:var(--accent,#1d7ae8);color:#fff}
.header-actions>#share-button{font-family:inherit;font-size:14px}
.share-body input[type=text],.share-body #share-url{width:100%;border:1px solid #dce3e9;border-radius:4px;padding:11px 12px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:#102335;background:#f6f8fa}
.share-row{display:flex;gap:8px;align-items:center;font-size:12px;color:#657585;margin:4px 0 12px}
button.primary{background:var(--cta,#d96832);color:#fff;border:0;border-radius:4px;padding:12px 16px;font-size:11px;font-weight:600}
button.secondary{font-family:inherit;cursor:pointer}
#share-qr{display:block;width:200px;height:200px;margin:20px auto 12px;image-rendering:pixelated;border:1px solid #e3e8ed;border-radius:6px}
#share-qr[hidden]{display:none}
#share-download{display:block;margin:0 auto}
body.embedded header{display:none}body.embedded main{height:100dvh;padding:0;gap:0}body.embedded .viewer{border-radius:0}body.embedded #scene-tabs{padding:8px}
@media(max-width:650px){.split-handle{width:42px;height:42px}}

/* Plans d'étage multiples */
.plan-floors{display:flex;flex-wrap:wrap;gap:4px;margin:0 22px 6px 0;line-height:1.2}.plan-floors button{border:0;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700;background:#10233514;color:#102335;cursor:pointer}.plan-floors button[aria-pressed=true]{background:var(--accent,#1d7ae8);color:#fff}

.alt-choix{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:6;background:rgba(14,16,19,.55);padding:5px;border-radius:999px;backdrop-filter:blur(6px);max-width:calc(100% - 32px);overflow-x:auto}.alt-choix[hidden]{display:none}.alt-choix button{border:0;background:none;color:#fff;font:600 12.5px/1 system-ui,-apple-system,sans-serif;padding:8px 13px;border-radius:999px;cursor:pointer;white-space:nowrap}.alt-choix button[aria-pressed=true]{background:#fff;color:#0E1013}.alt-choix button:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:700px){.alt-choix{bottom:auto;top:52px}}

/* ── Passages : ronds posés au sol (vraie perspective) et « sauts » (point en hauteur) ── */
.pin.link.sol{transform:none;background:none;border:0;border-radius:0;box-shadow:none;padding:0;min-width:0;pointer-events:none}
.pin.link.sol svg{display:block;overflow:visible}
.pin.link.sol path{pointer-events:visiblePainted;cursor:pointer}
.pin.link.sol .fond{fill:rgba(255,255,255,.16);transition:fill .2s}
.pin.link.sol .ombre{fill:none;stroke:rgba(0,0,0,.28)}
.pin.link.sol .anneau{fill:none;stroke:#fff;stroke-opacity:.92}
.pin.link.sol:hover .fond,.pin.link.sol:focus-visible .fond{fill:rgba(255,255,255,.42)}
.pin.link.sol:focus-visible{outline:none}.pin.link.sol:focus-visible .anneau{stroke:var(--accent,#1d7ae8)}
.pin.link.saut{width:46px;height:46px;background:rgba(255,255,255,.16);border:3px solid rgba(255,255,255,.92);box-shadow:0 0 0 1px rgba(0,0,0,.28),0 2px 12px rgba(0,0,0,.25);transition:background .2s}
.pin.link.saut:hover,.pin.link.saut:focus-visible{background:rgba(255,255,255,.42)}
.pin.link.sol span,.pin.link.saut span{display:block;left:50%;top:-8px;transform:translate(-50%,-100%);font-size:13px;font-weight:600;border-radius:6px;padding:8px 12px;box-shadow:0 6px 20px #0004;transition:opacity .15s}
.pin.link.sol:hover span,.pin.link.sol:focus-visible span,.pin.link.saut:hover span,.pin.link.saut:focus-visible span{opacity:1}
@media(hover:none){.pin.link.sol span,.pin.link.saut span{display:none}}

/* Interrupteur des visuels (après travaux, pièce vide…) : barré quand ils sont masqués */
.alt-toggle{font-size:17px;position:relative}
.alt-toggle[aria-pressed=false]{opacity:.6}
.alt-toggle[aria-pressed=false]::after{content:"";position:absolute;left:22%;right:22%;top:50%;height:2px;background:currentColor;transform:rotate(-45deg);border-radius:1px}

/* Visuel sans étiquette (version rangée) : pas de pastille sur le rideau */
.split-a:empty,.split-b:empty{display:none}

/* Curseur au sol : rond qui suit la souris sur le sol ; éclairé quand il vise un passage */
.sol-curseur{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:0;transition:opacity .15s}
.sol-curseur.on{opacity:1}
.sol-curseur path{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.55);stroke-width:2}
.sol-curseur.cible path{fill:rgba(255,255,255,.3);stroke:#fff;stroke-width:2.5}
.viewer:has(.sol-curseur.cible){cursor:pointer}
/* Plan : cône du regard sur la pièce en cours */
.plan-cone{position:absolute;width:84px;height:84px;pointer-events:none;border-radius:50%;--ouv:90deg;
 background:conic-gradient(from calc(var(--ouv) / -2),color-mix(in srgb,var(--accent,#1d7ae8) 80%,transparent) 0 var(--ouv),transparent var(--ouv));
 -webkit-mask:radial-gradient(circle,#000 35%,transparent 71%);mask:radial-gradient(circle,#000 35%,transparent 71%)}
@media(hover:none){.sol-curseur{display:none}}

.gyro-toggle{font-size:17px!important}

/* Lien nominatif : information du visiteur */
.lien-info{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:7;width:min(560px,calc(100% - 28px));background:#fff;color:#102335;border-radius:12px;padding:12px 14px;box-shadow:0 10px 30px #0005;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:13px;line-height:1.45}
.lien-info p{margin:0;flex:1 1 100%}
.lien-info button{border:0;border-radius:8px;padding:8px 12px;font:600 13px Arial,sans-serif;cursor:pointer;background:var(--accent,#1d7ae8);color:#fff}
.lien-info button.sans{background:none;color:#5a6b7d;text-decoration:underline;padding:8px 4px}

/* Outil Mesurer */
.mesure-toggle{font-size:17px!important}
.viewer.mesurant canvas{cursor:crosshair}
.measures .m-halo{fill:none;stroke:rgba(7,26,61,.55);stroke-width:7;stroke-linecap:round}
.measures .m-ligne{fill:none;stroke:#FFD43B;stroke-width:3;stroke-linecap:round}
.measures .m-ligne.provisoire{stroke-dasharray:7 6}
.measures .m-point{fill:#FFD43B;stroke:#071A3D;stroke-width:2}
.measures .m-etiquette{fill:#071A3D;stroke:#FFD43B;stroke-width:1.5}
.measures .m-texte{fill:#fff;font:700 15px Arial,sans-serif;text-anchor:middle;dominant-baseline:central}
.mesure-aide{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:6;background:rgba(7,26,61,.85);color:#fff;font-size:13px;padding:9px 14px;border-radius:999px;pointer-events:none;max-width:calc(100% - 28px);text-align:center}

/* ───────── Page d'accueil (experience.js) ───────── */
body.has-cover{overflow:hidden}
.cover{position:fixed;inset:0;z-index:50;display:grid;grid-template-rows:auto 1fr auto;padding:clamp(18px,4vw,44px);color:#fff;overflow:hidden;background:#071a3d;opacity:0;transition:opacity .5s ease}
.cover.in{opacity:1}.cover.out{opacity:0;pointer-events:none;transition:opacity .6s ease}
.cover-bg{position:absolute;inset:-4%;background-size:cover;background-position:center;transform:scale(1.08);transition:transform 18s ease-out}
.cover.in .cover-bg{transform:scale(1)}
.cover-veil{position:absolute;inset:0;background:linear-gradient(105deg,rgba(7,26,61,.94) 0%,rgba(7,26,61,.78) 38%,rgba(7,26,61,.25) 72%,rgba(7,26,61,.55) 100%),linear-gradient(0deg,rgba(7,26,61,.7),transparent 40%)}
.cover-top,.cover-body,.cover-foot{position:relative;z-index:1}
.cover-brand{display:inline-flex;align-items:center;gap:12px;font-weight:600;font-size:15px;letter-spacing:.01em}
.cover-brand img{height:44px;width:auto;max-width:180px;object-fit:contain;background:#fff;border-radius:10px;padding:5px}
.cover-mono{width:44px;height:44px;border-radius:12px;background:var(--accent,#2457ff);display:grid;place-items:center;font-weight:700;font-size:16px}
.cover-body{align-self:center;max-width:640px;display:grid;gap:16px}
.cover-eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#4fd8ff}
.cover h1{margin:0;font-size:clamp(30px,5.2vw,58px);line-height:1.04;letter-spacing:-.02em;font-weight:700;text-wrap:balance}
.cover-desc{margin:0;font-size:clamp(15px,1.5vw,18px);line-height:1.55;color:rgba(255,255,255,.82);max-width:560px}
.cover-chips{display:flex;flex-wrap:wrap;gap:8px}
.cover-chips span{font-size:12.5px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px)}
.cover-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.cover-go{background:var(--cta,#2457ff);color:#fff;border:0;border-radius:999px;padding:16px 30px;font-size:16px;font-weight:700;box-shadow:0 12px 30px rgba(0,0,0,.35);transition:transform .15s}
.cover-go:hover{transform:translateY(-1px)}
.cover-alt{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:15px 24px;font-size:15px;font-weight:600;backdrop-filter:blur(6px)}
.cover-rooms{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.cover-rooms button{background:none;border:0;border-bottom:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.85);padding:4px 2px;margin-right:10px;font-size:13px}
.cover-rooms button:hover{color:#fff;border-color:#4fd8ff}
.cover-foot{font-size:12px;color:rgba(255,255,255,.6)}
.cover-body>*{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.cover.in .cover-body>*{opacity:1;transform:none}
.cover.in .cover-body>:nth-child(2){transition-delay:.08s}.cover.in .cover-body>:nth-child(3){transition-delay:.16s}.cover.in .cover-body>:nth-child(4){transition-delay:.24s}.cover.in .cover-body>:nth-child(5){transition-delay:.32s}.cover.in .cover-body>:nth-child(6){transition-delay:.4s}
@media (max-width:640px){.cover-veil{background:linear-gradient(0deg,rgba(7,26,61,.95) 30%,rgba(7,26,61,.55) 75%,rgba(7,26,61,.35))}.cover-body{align-self:end;padding-bottom:10px}.cover-go,.cover-alt{flex:1;text-align:center}}

/* ───────── Mode présentation ───────── */
body.presentation header,body.presentation #scene-tabs,body.presentation .viewer-hud,body.presentation .pins,body.presentation .plan-panel{display:none!important}
body.presentation main{height:100dvh;padding:0}
body.presentation .viewer{border-radius:0;cursor:default}
body.presentation.pres-touche .viewer-hud{display:flex!important}
.pres-band{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:end;justify-content:space-between;gap:24px;padding:28px 34px;background:linear-gradient(0deg,rgba(7,26,61,.85),transparent);color:#fff;pointer-events:none}
.pres-title{display:grid;gap:4px}.pres-title span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#4fd8ff;font-weight:700}
.pres-title strong{font-size:clamp(22px,2.6vw,36px);line-height:1.1}.pres-room{font-size:clamp(16px,1.6vw,22px);font-weight:500;color:rgba(255,255,255,.85)}
.pres-qr{display:grid;justify-items:center;gap:8px;background:#fff;color:#071a3d;border-radius:14px;padding:12px 12px 10px;font-size:12px;font-weight:700;text-align:center;max-width:170px}
.pres-qr canvas{width:140px;height:140px;image-rendering:pixelated}
.pres-full{position:fixed;top:18px;right:18px;z-index:21;background:rgba(7,26,61,.75);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:10px 16px;font-size:13px;transition:opacity .6s}
.pres-full.discret{opacity:.25}.pres-full.discret:hover{opacity:1}
.share-pres{display:grid;gap:6px;margin-top:14px;padding-top:14px;border-top:1px solid #e3e8ec}.share-pres small{color:#6b7883}

/* ───────── Visite accompagnée ───────── */
.header-actions>.live-start{width:auto;height:auto;font-family:inherit;border:1px solid #dce3e9;border-radius:999px;background:#fff;padding:7px 14px;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.live-start::before{content:"";width:8px;height:8px;border-radius:50%;background:#e5484d;box-shadow:0 0 0 3px rgba(229,72,77,.18)}
.live-dialog .live-intro{color:#56636e;font-size:14px;line-height:1.55;margin:0 0 14px}
.live-field{display:grid;gap:6px;font-size:13px;color:#56636e;margin-bottom:12px}.live-field input,.live-url{font:inherit;font-size:14px;padding:10px 12px;border:1px solid #d5dde3;border-radius:8px;width:100%}
.live-code{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}.live-code small{color:#6b7883}.live-code b{font-size:28px;letter-spacing:.2em;color:#071a3d}
.live-nb{font-size:13.5px;color:#56636e;margin:14px 0 10px}.live-err{color:#b42318;font-size:13.5px}
.live-badge{position:absolute;top:14px;left:14px;z-index:8;display:inline-flex;align-items:center;gap:8px;background:rgba(7,26,61,.85);color:#fff;border:0;border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:600;backdrop-filter:blur(6px)}
.live-badge i,.live-banner i{width:8px;height:8px;border-radius:50%;background:#e5484d;animation:live-pulse 1.6s infinite}
.live-banner{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100% - 28px);background:rgba(7,26,61,.88);color:#fff;border-radius:999px;padding:8px 8px 8px 16px;font-size:13px;backdrop-filter:blur(6px)}
.live-banner button{background:#fff;color:#071a3d;border:0;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700}
.live-banner.libre i{background:#9aa6b2;animation:none}
.live-ptr{position:absolute;z-index:6;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:3px solid #fff;background:rgba(229,72,77,.85);box-shadow:0 0 0 6px rgba(229,72,77,.25),0 4px 14px rgba(0,0,0,.4);pointer-events:none;transition:left .25s linear,top .25s linear}
@keyframes live-pulse{0%,100%{box-shadow:0 0 0 0 rgba(229,72,77,.6)}50%{box-shadow:0 0 0 7px rgba(229,72,77,0)}}
@media (max-width:640px){.header-actions>.live-start{padding:0;width:30px;height:30px;justify-content:center;font-size:0;gap:0}.live-banner{border-radius:14px;top:10px}}
@media (prefers-reduced-motion:reduce){.cover,.cover-bg,.cover-body>*,.live-ptr,.pres-full{transition:none!important}.live-badge i,.live-banner i{animation:none}}
