/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
.launch-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,rgba(14,14,26,0.95) 0%,rgba(0,0,0,0.98) 100%);display:flex;justify-content:center;align-items:center;z-index:1000;transition:all 0.5s cubic-bezier(0.4,0,0.2,1);border-radius:1.5rem;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.1);}.launch-overlay.hidden{opacity:0;pointer-events:none;transform:scale(0.95);}.launch-button{font-size:1.2rem;padding:1rem 2rem;border:2px solid var(--current-color,var(--color-accent));background:rgba(255,255,255,0.1);color:var(--color-text);cursor:pointer;border-radius:0.5rem;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);font-weight:bold;font-family:'Arial',sans-serif;backdrop-filter:blur(4px);box-shadow:0 4px 15px rgba(0,0,0,0.3);position:relative;overflow:hidden;}.launch-button::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);transition:left 0.6s ease;}.launch-button:hover{background:rgba(255,255,255,0.2);border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,0.4);}.launch-button:hover::before{left:100%;}.launch-button:active{transform:translateY(0);box-shadow:0 4px 15px rgba(0,0,0,0.3);}.launch-overlay .launch-button{border-color:var(--current-color);color:var(--current-color);}@keyframes pulse{0%,100%{box-shadow:0 4px 15px rgba(0,0,0,0.3);}50%{box-shadow:0 4px 25px var(--current-color,var(--color-accent));}}.launch-button{animation:pulse 2s ease-in-out infinite;}.launch-button:hover{animation:none;}.animation-container:has(.launch-overlay:not(.hidden)) .electron,.animation-container:has(.launch-overlay:not(.hidden)) .nucleus{animation-play-state:paused !important;-webkit-animation-play-state:paused !important;}.animation-container:has(.launch-overlay[style*="display: block"],.launch-overlay[style*="opacity: 1"]) .electron,.animation-container:has(.launch-overlay[style*="display: block"],.launch-overlay[style*="opacity: 1"]) .nucleus{animation-play-state:paused !important;-webkit-animation-play-state:paused !important;}.launch-overlay:not(.hidden) ~ *{pointer-events:none;opacity:0.3;transition:opacity 0.3s ease;}.animation-active *{pointer-events:auto !important;opacity:1 !important;}@media (max-width:768px){.launch-button{font-size:1rem;padding:0.8rem 1.5rem;}}
#svg-ombre{cursor:pointer;display:block;width:100%;height:auto;}#svg-em{cursor:default;display:block;width:100%;height:auto;}.rayon-clip{overflow:hidden;border-radius:12px;position:relative;width:100%;border:1px solid rgba(136,192,208,0.2);}.rayon-iframe{width:1280px;height:720px;border:none;display:block;transform-origin:top left;}.rayon-mobile-msg{display:none;text-align:center;padding:2rem 1rem;color:#88c0d0;font-size:0.9rem;background:rgba(20,30,50,0.9);border-radius:12px;border:1px solid rgba(136,192,208,0.2);}@media (max-width:500px){.rayon-clip{display:none;}.rayon-mobile-msg{display:block;}}.rayon-controls{display:flex;gap:12px;justify-content:center;margin-bottom:14px;}.rayon-btn{background:rgba(20,30,50,0.9);border:1px solid rgba(136,192,208,0.35);color:#88c0d0;border-radius:8px;padding:7px 18px;cursor:pointer;font-size:0.82rem;font-family:inherit;transition:all 0.2s;}.rayon-btn:hover{background:rgba(136,192,208,0.12);}.rayon-btn.mode-torch{border-color:rgba(240,192,80,0.55);color:#f0c060;}.rayon-btn.power-on{border-color:rgba(126,227,181,0.65);color:#7ee3b5;background:rgba(126,227,181,0.1);}#svg-rayon{width:100%;display:block;}.phenomenes-optiques{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px;margin:20px 0;list-style:none;padding:0;}.phenomenes-optiques .card{position:relative;min-height:220px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--current-color) 35%,black) 0%,color-mix(in srgb,var(--current-color) 12%,black) 55%,black 100%);border:1px solid var(--current-color);color:var(--color-text);text-align:center;cursor:pointer;transform-style:preserve-3d;transition:transform 0.5s ease;}.phenomenes-optiques .card-front,.phenomenes-optiques .card-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;backface-visibility:hidden;border-radius:12px;}.phenomenes-optiques .card-front{overflow:hidden;}.phenomenes-optiques .card-front drupal-media,.phenomenes-optiques .card-front img,.phenomenes-optiques .card-front svg{max-width:90%;object-fit:contain;flex-shrink:0;}.phenomenes-optiques .card-front::before{content:'';position:absolute;inset:0;left:-120%;width:60%;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,0.18) 50%,transparent 80%);transform:skewX(-15deg);pointer-events:none;}.phenomenes-optiques .card:not(.flipped):hover .card-front::before{animation:card-shimmer 0.65s ease forwards;}@keyframes card-shimmer{from{left:-120%;}to{left:160%;}}.phenomenes-optiques .card:not(.flipped):hover{border-color:var(--current-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--current-color) 50%,transparent),0 0 20px color-mix(in srgb,var(--current-color) 30%,transparent),inset 0 0 16px color-mix(in srgb,var(--current-color) 10%,transparent);}.phenomenes-optiques .card-back{background:linear-gradient(135deg,color-mix(in srgb,var(--current-color) 25%,black) 0%,color-mix(in srgb,var(--current-color) 8%,black) 60%,black 100%);color:var(--color-accent);font-weight:bold;transform:rotateY(180deg);}.phenomenes-optiques .card-back .definition{font-size:0.88rem;line-height:1.5;font-weight:normal;color:var(--color-text);margin:0;}.phenomenes-optiques .card-back .exemples{font-size:0.78rem;font-style:italic;font-weight:normal;color:var(--color-accent);margin:0;opacity:0.8;}.phenomenes-optiques .card.flipped{transform:rotateY(180deg);}.phenomenes-optiques drupal-media{max-width:200px;}@media (max-width:768px){.phenomenes-optiques{grid-template-columns:1fr 1fr;}}@media (max-width:480px){.phenomenes-optiques{grid-template-columns:1fr;}}#Rayons{opacity:0;}#Ombre{opacity:0;}#Lumiere{opacity:0;}#Rayons,#Ombre,#Lumiere,#LegSource,#LegObjet,#LegZOmbre,#LegOmbreP{transition:opacity 0.6s ease,filter 0.3s ease;}#Rayons.scene-on{opacity:1;}#Ombre.scene-on{opacity:1;}#Lumiere.scene-on{opacity:1;}@keyframes tracerRayon{to{stroke-dashoffset:0;}}#Rayon-bas,#Rayon-haut{stroke-dasharray:600;stroke-dashoffset:600;}#Rayon-bas.rayon-actif,#Rayon-haut.rayon-actif{animation:tracerRayon 0.9s ease forwards;}#LegSource.leg-on,#LegObjet.leg-on,#LegZOmbre.leg-on,#LegOmbreP.leg-on{opacity:1 !important;filter:drop-shadow(0 0 4px rgba(255,230,80,0.7));}#Source,#Objet,#Ecran,#Ombre{cursor:pointer;transition:filter 0.25s ease;}#Source.el-on{filter:drop-shadow(0 0 5px rgba(255,240,100,1));}#Objet.el-on{filter:drop-shadow(0 0 5px rgba(255,220,80,0.9));}#Ecran.el-on{filter:drop-shadow(0 0 5px rgba(255,220,80,0.9));}#Ombre.el-on{filter:drop-shadow(0 0 6px rgba(20,20,60,0.9));}.ombre-hint{text-align:center;font-size:0.8rem;color:#777;margin-top:4px;font-style:italic;}#Radio,#Micro,#IR,#Visible,#UV,#rX,#Gamma{cursor:pointer;transition:opacity 0.25s ease,filter 0.25s ease;}#svg-em.has-active #Radio,#svg-em.has-active #Micro,#svg-em.has-active #IR,#svg-em.has-active #Visible,#svg-em.has-active #UV,#svg-em.has-active #rX,#svg-em.has-active #Gamma{opacity:0.12;}#svg-em.has-active .em-actif{opacity:1 !important;filter:drop-shadow(0 0 14px rgba(255,255,180,0.45));}#em-tooltip{display:none;position:fixed;z-index:9999;max-width:310px;min-width:220px;background:rgba(8,8,22,0.97);border:2px solid #fff;border-radius:12px;padding:14px 18px;pointer-events:none;box-shadow:0 8px 32px rgba(0,0,0,0.6);animation:tooltipAppear 0.18s ease;}@keyframes tooltipAppear{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}#em-tooltip h2{font-size:1rem;color:#fff;margin:0 0 3px;font-family:Arial,sans-serif;}#em-tooltip .em-freq{font-size:0.7rem;color:#aaa;font-style:italic;margin-bottom:10px;}#em-tooltip ul{list-style:none;margin:0;padding:0;}#em-tooltip ul li{display:flex;align-items:flex-start;gap:8px;font-size:0.83rem;color:#e0e0ff;margin-bottom:5px;line-height:1.3;font-family:Arial,sans-serif;}#em-tooltip ul li .em-ic{font-size:1rem;flex-shrink:0;}#svg-em *{pointer-events:none;}#svg-em #Radio    > rect,#svg-em #Micro    > rect,#svg-em #IR       > rect,#svg-em #Visible  > rect,#svg-em #UV       > rect,#svg-em #rX       > rect,#svg-em #Gamma    > rect{pointer-events:all;cursor:pointer;}
