/* Digital Education v11 — animation du mot de passe piège : la page se détruit, puis écran cassé (barres néon, verre brisé), puis écran noir « You played / You Lost » et un bouton de redémarrage. */

html.doom{overflow:hidden!important}

html.doom,html.doom *{cursor:none!important}

html.doom #app,html.doom #app *,html.doom #foot,html.doom #top,html.doom #hh,html.doom #hz,html.doom #gate,html.doom #gtoasts{animation:none!important}

html.doom #app,html.doom #foot,html.doom #top,html.doom #hh,html.doom #hz,html.doom #gate,html.doom dialog{pointer-events:none!important;user-select:none!important}

html.doom #fxbg,html.doom #fxtop,html.doom #fxconf,html.doom #gconf{display:none!important}

html.doom.doom-over #app,html.doom.doom-over #foot,html.doom.doom-over #top,html.doom.doom-over #hh,html.doom.doom-over #hz,html.doom.doom-over #gate{visibility:hidden!important}

#doom{position:fixed;inset:0;z-index:2147483000;overflow:hidden;pointer-events:auto;background:transparent;touch-action:none;-webkit-user-select:none;user-select:none}

#doom .dm-bars{background:#08080f}

#doom canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}

#doom .dm-noise{image-rendering:pixelated;opacity:0;mix-blend-mode:screen}

#doom .dm-bars{opacity:0}

#doom .dm-vig{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 50%,transparent 32%,rgba(120,0,0,.55) 68%,rgba(25,0,0,.96) 100%)}

#doom .dm-tear{position:absolute;left:0;right:0;height:10px;opacity:0;pointer-events:none;backdrop-filter:invert(1) hue-rotate(160deg) saturate(2.4);-webkit-backdrop-filter:invert(1) hue-rotate(160deg) saturate(2.4)}

#doom .dm-flash{position:absolute;width:60vmax;height:60vmax;margin:-30vmax 0 0 -30vmax;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(255,230,200,.35) 28%,transparent 62%)}

#doom .dm-black{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}

#doom .dm-end{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.04em;background:#000;opacity:0;text-align:center;visibility:hidden;font-size:clamp(3.2rem,15vw,13rem)}

#doom .dm-end.on{visibility:visible;opacity:1}

#doom .dm-end p{margin:0;font:900 1em/.96 Impact,"Haettenschweiler","Arial Narrow Bold","Arial Black","Segoe UI Black",system-ui,sans-serif;letter-spacing:.06em;white-space:nowrap}

#doom .dm-end .l1,#doom .dm-end .l2{color:#f4f4f4}

#doom .dm-end .lost{position:relative;display:inline-block;color:#e3000f}

#doom .dm-end.on p{animation:dmIn 1.5s cubic-bezier(.2,.9,.2,1) both}

#doom .dm-end.on .l2{animation:dmIn 1.5s cubic-bezier(.2,.9,.2,1) .28s both}

#doom .dm-end.on .lost{animation:dmPulse 3.4s ease-in-out 2s infinite}

#doom .dm-restart{margin-top:1.6rem;padding:.7rem 1.5rem;font:600 clamp(.95rem,2.4vw,1.2rem)/1.2 ui-monospace,Consolas,"Courier New",monospace;letter-spacing:.04em;color:#ddd;background:transparent;border:1px solid #666;border-radius:4px;opacity:0;visibility:hidden}

#doom .dm-restart.on{visibility:visible;animation:dmFade 1.4s ease both;cursor:pointer!important}

#doom .dm-restart:hover,#doom .dm-restart:focus-visible{color:#fff;border-color:#e3000f;outline:none}

html.doom.doom-over,html.doom.doom-over #doom,html.doom.doom-over #doom .dm-restart{cursor:auto!important}

html.doom.doom-over #doom .dm-restart.on{cursor:pointer!important}

#doom .dm-end.on::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px);animation:dmScan 6s linear infinite}

@keyframes dmIn{
 0%{opacity:0;transform:scale(1.5) skewX(14deg);filter:blur(18px);text-shadow:-.08em 0 #0ff,.08em 0 #f0f}
 22%{opacity:1;transform:scale(1.04) skewX(-6deg);filter:blur(2px);text-shadow:.06em 0 #0ff,-.06em 0 #f0f}
 34%{transform:translateX(-.04em) skewX(4deg);filter:blur(0);text-shadow:-.04em 0 #0ff,.04em 0 #f0f}
 46%{transform:translateX(.03em);text-shadow:none}
 58%{transform:translateX(-.02em);text-shadow:.03em 0 #0ff,-.03em 0 #f0f}
 72%,100%{opacity:1;transform:none;filter:none;text-shadow:none}}

@keyframes dmPulse{0%,100%{text-shadow:0 0 .12em rgba(227,0,15,.15)}50%{text-shadow:0 0 .22em rgba(227,0,15,.75),0 0 .5em rgba(227,0,15,.35)}}

@keyframes dmScan{from{background-position:0 0}to{background-position:0 60px}}

html.doom-rm #doom .dm-end.on p,html.doom-rm #doom .dm-end.on .l2,html.doom-rm #doom .dm-end.on .lost{animation:dmFade 1.6s ease both}

html.doom-rm #doom .dm-end.on::after{animation:none}

@keyframes dmFade{from{opacity:0}to{opacity:1}}

/* v15 : journal système pendant la chute, bilan sur l'écran final */

#doom .dm-term{position:absolute;left:1rem;bottom:1rem;max-width:min(92vw,46rem);font:600 clamp(.7rem,1.7vw,.95rem)/1.5 ui-monospace,Consolas,"Courier New",monospace;color:#9aa;text-shadow:0 0 6px #000;pointer-events:none;z-index:3}

#doom .dm-term div{white-space:pre-wrap;opacity:.92}

#doom .dm-sub{margin:.5rem 0 0;font:600 clamp(.75rem,1.8vw,1rem)/1.4 ui-monospace,Consolas,"Courier New",monospace;letter-spacing:.05em;color:#b33;text-transform:uppercase;max-width:90vw;white-space:normal}

#doom .dm-end.on .dm-sub{animation:dmFade 2s ease .9s both}
























