/* Scientific Studio — visual finish and motion (loaded after studio-ux.css). */
body.coractive-refonte-light .cr-lab.studio-motion { --m-green:#00a98f; --m-mint:#69ddc6; --m-amber:#ffcf85; --m-ink:#00205b; --m-ease:cubic-bezier(.2,.7,.2,1); }

/* ---------- Hero: a fiber carrying light ---------- */
body.coractive-refonte-light .cr-lab.studio-motion .studio-page-hero { position:relative; overflow:hidden; isolation:isolate; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-page-hero > :not(.studio-hero-fiber) { position:relative; z-index:1; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-hero-fiber { position:absolute; right:-20px; top:50%; width:min(46%,560px); height:auto; transform:translateY(-50%); z-index:0; pointer-events:none; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-hero-clad { fill:none; stroke:#cfe6df; stroke-width:22; stroke-linecap:round; opacity:.55; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-hero-clad-2 { stroke-width:12; opacity:.35; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-hero-core { fill:none; stroke:url(#studio-hero-core); stroke-width:4; stroke-linecap:round; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-hero-spark { mix-blend-mode:multiply; }
@media (max-width:760px) { body.coractive-refonte-light .cr-lab.studio-motion .studio-hero-fiber { width:90%; right:-35%; opacity:.45; } }

/* ---------- Reveal on scroll ---------- */
body.coractive-refonte-light .cr-lab.studio-reveal-ready .studio-reveal { opacity:0; transform:translateY(14px); transition:opacity .55s var(--m-ease), transform .55s var(--m-ease); transition-delay:calc(var(--i, 0) * 80ms); }
body.coractive-refonte-light .cr-lab.studio-reveal-ready .studio-reveal.is-revealed { opacity:1; transform:none; }

/* ---------- Catalogue cards ---------- */
body.coractive-refonte-light .cr-lab.studio-motion a.studio-tool-card { position:relative; transition:border-color .25s, box-shadow .25s, transform .25s var(--m-ease), opacity .55s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion a.studio-tool-card::after { content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), rgba(0,169,143,.10), transparent 45%); opacity:0; transition:opacity .3s; }
body.coractive-refonte-light .cr-lab.studio-motion a.studio-tool-card:hover::after { opacity:1; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-tool-card svg path[pathLength] { stroke-dasharray:1; stroke-dashoffset:0; }
body.coractive-refonte-light .cr-lab.studio-motion a.studio-tool-card:hover svg path[pathLength] { animation:studio-card-draw 1.1s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion a.studio-tool-card:hover svg { background:linear-gradient(135deg,#e3f5ef,#fff); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-card-link span { transition:background .2s, color .2s, transform .25s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion a.studio-tool-card:hover .studio-card-link span { transform:translateX(3px); }
@keyframes studio-card-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }

/* ---------- Tabs ---------- */
body.coractive-refonte-light .cr-lab.studio-motion.has-lab-tabs .lab-intro nav a { transition:background .2s, color .2s, border-color .2s, box-shadow .25s, transform .2s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion.has-lab-tabs .lab-intro nav a:active { transform:scale(.97); }
body.coractive-refonte-light .cr-lab.studio-motion.has-lab-tabs .lab-intro nav a[aria-selected=true] { box-shadow:0 4px 14px rgba(0,117,102,.14), inset 0 -3px 0 var(--m-green); }

/* ---------- Tool panel entrance ---------- */
body.coractive-refonte-light .cr-lab.studio-motion [role=tabpanel]:not([hidden]) { animation:studio-panel-in .45s var(--m-ease); }
@keyframes studio-panel-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }

/* ---------- Dark instrument panel ---------- */
body.coractive-refonte-light .cr-lab.studio-motion .lab-visual { position:relative; background:radial-gradient(900px 420px at 15% -10%, rgba(0,169,143,.16), transparent 60%), radial-gradient(700px 400px at 110% 110%, rgba(255,207,133,.07), transparent 60%), #0b2030; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-live { display:flex; justify-content:flex-end; align-items:center; gap:7px; margin:-6px 0 6px; color:#8fd9c9; font:700 10.5px/1.4 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-live::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--m-mint); box-shadow:0 0 0 0 rgba(105,221,198,.6); animation:studio-live 2.4s ease-out infinite; }
body.coractive-refonte-light .cr-lab.studio-motion .is-invalid .studio-live { color:#ffb58a; }
body.coractive-refonte-light .cr-lab.studio-motion .is-invalid .studio-live::before { background:#ff9d66; animation:none; }
@keyframes studio-live { 0% { box-shadow:0 0 0 0 rgba(105,221,198,.55); } 70% { box-shadow:0 0 0 8px rgba(105,221,198,0); } 100% { box-shadow:0 0 0 0 rgba(105,221,198,0); } }

/* Curves: luminous strokes; markers glide. */
body.coractive-refonte-light .cr-lab.studio-motion :is([data-tool-curve],[data-advanced-curve],[data-curve]) { filter:drop-shadow(0 0 5px rgba(105,221,198,.55)); stroke-linecap:round; stroke-linejoin:round; }
body.coractive-refonte-light .cr-lab.studio-motion :is([data-tool-reference],[data-advanced-reference]) { filter:drop-shadow(0 0 4px rgba(255,207,133,.35)); }
body.coractive-refonte-light .cr-lab.studio-motion :is([data-tool-marker],[data-advanced-marker],[data-end]) { transition:cx .22s var(--m-ease), cy .22s var(--m-ease); filter:drop-shadow(0 0 6px rgba(255,255,255,.8)); }
body.coractive-refonte-light .cr-lab.studio-motion .lab-probe-halo { animation:studio-halo 2.2s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
@keyframes studio-halo { 50% { transform:scale(1.35); opacity:.12; } }

/* Result tiles. */
body.coractive-refonte-light .cr-lab.studio-motion .lab-metrics { gap:1px; background:rgba(105,221,198,.14); border-color:rgba(105,221,198,.2); border-radius:12px; }
body.coractive-refonte-light .cr-lab.studio-motion .lab-metrics > div { position:relative; background:linear-gradient(160deg,#12334a,#0f2839); transition:background .35s; }
body.coractive-refonte-light .cr-lab.studio-motion .lab-metrics > div::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--m-mint); transform:scaleY(0); transform-origin:bottom; transition:transform .3s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion .lab-metrics > div.is-changed { background:linear-gradient(160deg,#154a55,#10313f); }
body.coractive-refonte-light .cr-lab.studio-motion .lab-metrics > div.is-changed::before { transform:scaleY(1); }
body.coractive-refonte-light .cr-lab.studio-motion .lab-metrics > div.is-changed strong { color:#bdf5e8; }
body.coractive-refonte-light .cr-lab.studio-motion .lab-metrics strong { transition:color .35s; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-delta { position:absolute; right:12px; top:12px; font:700 11px/1 Arial,sans-serif; font-style:normal; opacity:0; transform:translateY(4px); transition:opacity .25s, transform .25s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-delta.is-visible { opacity:1; transform:none; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-delta.is-up { color:var(--m-mint); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-delta.is-down { color:var(--m-amber); }

/* Observation card. */
body.coractive-refonte-light .cr-lab.studio-motion .studio-insight { background:linear-gradient(115deg,rgba(0,169,143,.16),rgba(16,43,59,.6)); border-color:rgba(105,221,198,.3); }

/* ---------- Sliders ---------- */
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range { -webkit-appearance:none; appearance:none; height:28px; background:transparent; cursor:pointer; --track:#dbe8e4; --fill:var(--m-green); }
body.coractive-refonte-light .cr-lab.studio-motion .lab-visual input.studio-range { --track:rgba(185,209,223,.22); --fill:var(--m-mint); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range::-webkit-slider-runnable-track { height:6px; border-radius:6px; background:linear-gradient(90deg,var(--fill) 0 var(--p,50%),var(--track) var(--p,50%) 100%); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range::-moz-range-track { height:6px; border-radius:6px; background:var(--track); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range::-moz-range-progress { height:6px; border-radius:6px; background:var(--fill); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range::-webkit-slider-thumb { -webkit-appearance:none; width:20px; height:20px; margin-top:-7px; border-radius:50%; background:#fff; border:3px solid var(--fill); box-shadow:0 2px 6px rgba(0,32,91,.25); transition:transform .15s var(--m-ease), box-shadow .2s; }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range::-moz-range-thumb { width:14px; height:14px; border-radius:50%; background:#fff; border:3px solid var(--fill); box-shadow:0 2px 6px rgba(0,32,91,.25); transition:transform .15s var(--m-ease), box-shadow .2s; }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range:hover::-webkit-slider-thumb { transform:scale(1.12); box-shadow:0 0 0 6px rgba(0,169,143,.15), 0 2px 6px rgba(0,32,91,.25); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range:active::-webkit-slider-thumb { transform:scale(1.2); box-shadow:0 0 0 9px rgba(0,169,143,.2), 0 2px 6px rgba(0,32,91,.25); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range:hover::-moz-range-thumb { transform:scale(1.12); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range:focus-visible { outline:none; }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range:focus-visible::-webkit-slider-thumb { box-shadow:0 0 0 4px #fff, 0 0 0 7px var(--m-green); }
body.coractive-refonte-light .cr-lab.studio-motion input.studio-range:focus-visible::-moz-range-thumb { box-shadow:0 0 0 4px #fff, 0 0 0 7px var(--m-green); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-has-bubble { position:relative; }
body.coractive-refonte-light .cr-lab.studio-motion .studio-bubble { position:absolute; z-index:3; transform:translate(-50%,0) scale(.85); transform-origin:50% 0; padding:4px 8px; border-radius:6px; background:var(--m-ink); color:#fff; font:700 12px/1.3 Arial,sans-serif; white-space:nowrap; font-variant-numeric:tabular-nums; pointer-events:none; opacity:0; transition:opacity .15s, transform .15s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-bubble::after { content:''; position:absolute; left:50%; top:-4px; width:8px; height:8px; background:inherit; transform:translateX(-50%) rotate(45deg); border-radius:1px; }
body.coractive-refonte-light .cr-lab.studio-motion .is-sliding > .studio-bubble { opacity:1; transform:translate(-50%,0) scale(1); }

/* ---------- Fields and buttons ---------- */
body.coractive-refonte-light .cr-lab.studio-motion .lab-controls :is(input[type=number],select) { transition:border-color .2s, box-shadow .2s, background .2s; }
body.coractive-refonte-light .cr-lab.studio-motion .lab-controls :is(input[type=number],select):hover { border-color:#7fb6a8; }
body.coractive-refonte-light .cr-lab.studio-motion .lab-controls :is(input[type=number],select):focus { border-color:var(--m-green); box-shadow:0 0 0 4px rgba(0,169,143,.16); background:#fff; outline:none; }
body.coractive-refonte-light .cr-lab.studio-motion .lab-controls input.is-stepped { animation:studio-step .35s var(--m-ease); }
@keyframes studio-step { 40% { background:#e3f6f0; } }
body.coractive-refonte-light .cr-lab.studio-motion button { transition:background .2s, border-color .2s, color .2s, box-shadow .2s, transform .15s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion button:not(:disabled):active { transform:scale(.97); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-actions .lab-pdf-export { box-shadow:0 6px 16px rgba(0,169,143,.25); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-actions .lab-pdf-export:hover { box-shadow:0 8px 22px rgba(0,169,143,.35); transform:translateY(-1px); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-scenarios button[aria-pressed=true] { background:var(--m-green); border-color:#008875; color:#00205b; box-shadow:0 4px 12px rgba(0,169,143,.3); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-scenarios button:hover { transform:translateY(-1px); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-try button:hover::before { display:inline-block; animation:studio-spin .6s var(--m-ease); }
@keyframes studio-spin { to { transform:rotate(360deg); } }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-pager button { transition:border-color .2s, background .2s, transform .25s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-pager .studio-ux-pager-next:hover { transform:translateX(3px); }
body.coractive-refonte-light .cr-lab.studio-motion .studio-ux-pager .studio-ux-pager-prev:hover { transform:translateX(-3px); }

/* Disclosure bodies open softly. */
body.coractive-refonte-light .cr-lab.studio-motion :is(.studio-ux-notes, .lab-method)[open] > :not(summary) { animation:studio-panel-in .35s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion :is(.studio-ux-notes, details.lab-module .lab-method) > summary::after { transition:transform .25s var(--m-ease); }
body.coractive-refonte-light .cr-lab.studio-motion :is(.studio-ux-notes, details.lab-module .lab-method)[open] > summary::after { transform:rotate(180deg); }

/* ---------- Reduced motion: keep the finish, drop the movement ---------- */
@media (prefers-reduced-motion:reduce) {
 body.coractive-refonte-light .cr-lab.studio-motion *, body.coractive-refonte-light .cr-lab.studio-motion *::before, body.coractive-refonte-light .cr-lab.studio-motion *::after { animation:none !important; transition:none !important; }
 body.coractive-refonte-light .cr-lab.studio-reveal-ready .studio-reveal { opacity:1; transform:none; }
}
