/* Presentation scenes: evidence and object-linked annotations revealed on click. */
.visual-story{padding:0!important;overflow:auto;background:#080d15}
.v-canvas{position:relative;width:min(100%,1500px);height:100%;min-height:560px;margin:auto;isolation:isolate;overflow:hidden}
.v-heading{position:absolute;top:5%;left:4%;right:4%;margin:0!important;font-size:clamp(30px,3.7vw,54px)!important;line-height:1.1;z-index:4;max-width:90%;pointer-events:none}
.v-image{position:absolute;object-fit:contain;width:58%;height:65%;left:23%;top:23%;border-radius:0;opacity:.72}
.v-right{width:58%;height:85%;left:42%;top:15%;mask-image:linear-gradient(to right,transparent,#000 28%)}
.v-low{width:64%;height:56%;left:28%;top:43%;opacity:.9}
.v-center{left:27%;top:28%;width:48%;height:49%;opacity:.65}
.v-machine{left:11%;top:37%;width:42%;height:35%;opacity:.88}
.v-plan{left:25%;top:22%;width:58%;height:64%;opacity:.8;filter:brightness(.72)}
.v-app{left:21%;top:24%;width:62%;height:62%;opacity:.58}
.v-video{position:absolute;left:24%;top:24%;width:66%;height:60%;object-fit:contain;opacity:.85}
.v-call{position:absolute;left:var(--x);top:var(--y);max-width:33%;z-index:3;padding:10px 14px 10px 18px;border-left:2px solid #66e2ef;background:linear-gradient(90deg,rgba(8,13,21,.96),rgba(8,13,21,.78) 80%,transparent);opacity:0;transform:translateY(14px);transition:opacity .38s ease,transform .38s ease}
.v-call h3{font-size:clamp(23px,2.5vw,36px);line-height:1.12;margin:0;color:#81e7f2;font-weight:600}
.v-call p{font-size:clamp(16px,1.55vw,23px);line-height:1.3;margin:9px 0 0;color:#e3edf4}
.v-call.v-shown{opacity:.65;transform:none}.v-call.v-current{opacity:1;border-left-width:4px}.v-call.v-current h3{color:#a3f3fa}
.v-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.v-lines line{stroke:#64ddea;stroke-width:2;stroke-dasharray:6 5;opacity:0;transition:opacity .35s}.v-lines .v-shown{opacity:.65}
.v-cloud{position:absolute;left:62%;top:46%;width:29%;padding:24px 0;border-top:2px solid #6ab9d0;border-bottom:2px solid #6ab9d0;font-size:clamp(20px,2vw,30px);color:#a7e7ef;line-height:1.5}.v-cloud strong{font-weight:400;font-size:.55em;color:#a4b9c9}
.v-foot{position:absolute;bottom:3%;left:4%;right:14%;font-size:clamp(12px,1.05vw,15px)!important;color:#8fa6b9;margin:0;z-index:5;line-height:1.4}
.v-step{position:absolute;right:4%;bottom:3%;font-size:13px;color:#91b9c7}.v-cues{position:absolute;width:0;height:0;overflow:hidden}
.v-track{position:absolute;left:7%;right:7%;height:14%;display:flex;align-items:center;gap:25px;color:#cae9ef;font-size:clamp(20px,2vw,30px)}.track-top{top:20%}.track-bottom{top:54%}.v-track i{flex:1;border-top:2px solid #51828e}.v-track b{font-weight:400;color:#69dbea}
.v-loop{position:absolute;top:29%;left:10%;width:80%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:clamp(22px,3vw,42px);color:#9bb4c4}.v-loop strong{border:2px solid #6be0eb;border-radius:50%;width:220px;height:125px;display:grid;place-items:center;color:#8de9f2;font-weight:500}.v-loop i{font-style:normal;color:#6be0eb}.v-loop b{position:absolute;top:115%;left:27%;font-size:18px;font-weight:400}
/* Existing scenes already connect notes to a real image or mechanism. */
.hardware-note p,.lm-label p{font-size:clamp(17px,1.5vw,22px)!important;line-height:1.3!important;max-width:30ch}
.hardware-note h3,.lm-label h3{font-size:clamp(21px,2vw,29px)!important}
.model-hardware{height:90px;width:90%;object-fit:contain;margin-bottom:6px}.model-map article{padding-top:16px!important}.model-map h3{font-size:22px!important}.model-map p{font-size:17px!important;line-height:1.3!important}.model-map .memory-size{font-size:44px!important}
.market-tool{border-radius:0!important;background:transparent!important;box-shadow:none!important;max-width:64%!important;left:18%!important;right:auto!important;top:34%!important;width:64%!important;padding:28px 0!important;border:0!important;border-left:3px solid #6ae0ed!important;padding-left:28px!important}.market-tool h3{font-size:clamp(34px,4vw,58px)!important}.market-tool p{font-size:clamp(21px,2.5vw,32px)!important;max-width:32ch}.market-tool blockquote:empty{display:none}.market-conclusion{font-size:30px!important}
.residency-table tbody tr:not(.is-visible){display:none}.residency-table{top:32%!important}.residency-table td,.residency-table th{font-size:clamp(16px,1.6vw,23px)!important;line-height:1.5!important}.residency-table td span{opacity:1!important;transform:none!important;visibility:visible!important}.residency-story[data-step="5"] .residency-table{display:none}.residency-takeaway{font-size:23px!important}
[data-learning-copy],[data-rag-copy]{font-size:clamp(19px,1.8vw,26px)!important;line-height:1.35!important;max-width:36ch}
/* Speaker notes are separate from the projected canvas. */
.visual-notes-button{position:fixed;right:8px;bottom:73px;z-index:35;background:#111c27;color:#b8d8e5;border:1px solid #36505c;border-radius:5px;padding:7px 11px;font:12px inherit;cursor:pointer}
.visual-notes-dialog{width:min(780px,90vw);max-height:83vh;padding:30px;color:#e3eef5;background:#101a25;border:1px solid #4a6c7b;border-radius:12px;overflow:auto}.visual-notes-dialog::backdrop{background:#000b}.visual-notes-dialog h2{font-size:27px;margin:0 45px 22px 0}.visual-notes-dialog p{font-size:18px;line-height:1.6;margin:12px 0}.visual-notes-dialog a{color:#83e3f0;display:block;margin:9px 0}.visual-notes-close{position:absolute;right:14px;top:12px;background:none;color:#dfeef4;border:0;font-size:26px;cursor:pointer}.notes-heading{color:#84dce8;font-size:15px!important;margin-top:25px!important}
@media(max-width:700px){.v-canvas{min-height:760px}.v-heading{font-size:32px!important;top:4%;left:6%}.v-image{width:84%;height:45%;left:8%;top:26%;opacity:.45}.v-right{mask-image:none}.v-call{max-width:73%;left:9%!important;top:var(--y);background:#080d15dd}.v-call h3{font-size:24px}.v-call p{font-size:17px}.v-call.v-shown:not(.v-current){opacity:.24}.v-foot{bottom:3%;font-size:12px!important;right:15%;left:6%}.v-cloud{left:47%;width:45%;top:46%;font-size:18px}.v-track{font-size:17px;gap:8px}.v-loop{left:5%;width:90%;font-size:18px}.v-loop strong{width:120px;height:95px}.v-loop b{left:10%;font-size:15px}.model-hardware{height:65px}.market-tool{width:88%!important;max-width:88%!important;left:6%!important;top:30%!important}.market-tool h3{font-size:34px!important}.residency-table{top:25%!important}.visual-notes-button{bottom:75px}.visual-notes-dialog{padding:22px}}
@media(prefers-reduced-motion:reduce){.v-call,.v-lines line{transition:none}}
.memory-comparison{position:absolute;top:29%;left:4%;right:4%;display:flex;flex-direction:column;gap:23px}
.memory-row{display:grid;grid-template-columns:50% 1fr;gap:5%;align-items:center;min-height:92px}
.memory-track{height:54px;position:relative;border-bottom:1px solid #36556a}
.memory-track i{display:block;width:var(--capacity);height:100%;background:linear-gradient(90deg,#235363,#60dcea);transform-origin:left;transition:transform .5s ease}
.memory-track strong{position:absolute;top:4px;left:18px;font-size:36px;color:#f2fbff;text-shadow:0 2px 6px #000}
.memory-row.pending .memory-track i{transform:scaleX(0)}
.memory-row h3{font-size:23px;margin:0 0 5px}.memory-row p{font-size:21px;margin:0}.memory-row small{font-size:15px;color:#a3b8c7}
.v-machine{left:6%;top:40%;width:48%;height:37%;opacity:.9}.v-center{left:23%;top:30%;width:54%;height:45%;opacity:.7}
@media(max-width:700px){.memory-comparison{top:25%;gap:24px}.memory-row{grid-template-columns:1fr;gap:8px}.memory-track{height:36px}.memory-track strong{font-size:26px;top:0}.memory-row h3{font-size:19px}.memory-row p{font-size:17px}.memory-row small{font-size:13px}.v-machine,.v-center{left:5%;width:90%;height:36%;top:39%}}

.v-plan{opacity:.95;filter:none}.v-step{right:105px}.v-preview-label{position:absolute;left:23%;top:22%;font-size:13px;color:#99b7c9}.v-call h3{text-wrap:balance}

.residency-table tbody tr.appear.is-visible{display:table-row!important;position:static!important;transform:none!important}
.residency-story[data-step="4"] .residency-table{opacity:1;filter:none}
@media(max-width:700px){.residency-table{min-width:0!important;table-layout:auto;left:5%;width:90%}.residency-table thead{display:none}.residency-table tbody tr.appear.is-visible{display:grid!important;grid-template-columns:1fr}.residency-table th,.residency-table td{display:block;padding:9px!important;font-size:17px!important;border-bottom:1px solid #294653}.residency-table th:first-child{width:auto}.residency-table td:nth-child(2):before{content:"Stockage · ";color:#7be6ef}.residency-table td:nth-child(3):before{content:"Traitement · ";color:#7be6ef}.residency-table td:nth-child(4):before{content:"Hébergement · ";color:#7be6ef}}
@media(max-width:700px){.v-call.v-shown:not(.v-current){display:none}}

footer .visual-notes-button{position:static;inset:auto;margin-left:auto;margin-right:0;flex-shrink:0;font-size:13px;padding:8px 12px;z-index:auto}
@media(max-width:700px){footer{gap:12px}footer .visual-notes-button{padding:8px 10px}}
@media(max-width:700px){.v-canvas{min-height:0;height:calc(100svh - 128px)}.v-step{display:none}.v-foot{right:6%;font-size:11px!important}}
