/* Kõik kujundused on piiratud täisekraanil kuvatava vealehega. */
.n404{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;min-height:65vh;padding:clamp(40px,7vw,90px) 20px;text-align:center;background:#090f24;color:#f5f7ff}
.n404-theme{background:var(--cms-bg,#fff);color:var(--cms-text,#172033)}
.n404::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 25% 65%,#623aa533,transparent 60%),radial-gradient(ellipse at 80% 20%,#20b9ff22,transparent 55%)}
.n404-content{position:relative;max-width:700px}
.n404-number{font:800 clamp(100px,22vw,210px)/1 ui-monospace,monospace;letter-spacing:-.08em;text-indent:-.08em;text-shadow:0 0 55px #7aa9ff44;margin-bottom:25px;font-variant-numeric:tabular-nums}
.n404 h1{font-size:clamp(25px,4vw,42px);margin:0 0 20px;color:inherit}
.n404-description{font-size:clamp(16px,2vw,19px);line-height:1.7;max-width:540px;margin:0 auto 28px;opacity:.8}
.n404-home{display:inline-flex;gap:24px;align-items:center;background:#f5f7ff;color:#111d35;text-decoration:none;padding:14px 25px;border-radius:50px;font-weight:700;transition:transform .2s}
.n404-home:hover{transform:translateY(-3px);color:#111d35}
.n404-theme .n404-home{background:var(--cms-text,#172033);color:var(--cms-bg,#fff)}
.n404-redirect{margin-top:24px;font-size:14px}
.n404-countdown{margin:0 0 6px;opacity:.8}
.n404-stop{font:inherit;color:inherit;background:transparent;border:0;padding:10px;text-decoration:underline;cursor:pointer}
.n404 :focus-visible{outline:3px solid currentColor;outline-offset:5px}
.n404-status{margin:10px 0 0;font-size:14px}
.n404-stars{position:absolute;inset:-40px;opacity:.45;pointer-events:none;background-image:radial-gradient(circle,#aecaff 1px,transparent 1.8px),radial-gradient(circle,#fff 1px,transparent 1.6px);background-size:93px 89px,157px 143px;background-position:10px 5px,51px 71px}
.n404-theme .n404-stars{opacity:.2;background-image:radial-gradient(circle,currentColor 1px,transparent 1.8px)}
.n404-orbit{position:absolute;pointer-events:none;width:min(80vw,650px);aspect-ratio:1;border:1px solid #92b8ff20;border-radius:50%;transform:rotate(-20deg) scaleY(.65)}
.n404-orbit::after{content:"";position:absolute;top:11%;left:13%;width:12px;height:12px;background:#b5d9ff;border-radius:50%;box-shadow:0 0 30px #70a7ff}
.n404[data-animate="1"] .n404-stars{animation:n404-drift 18s ease-in-out infinite alternate}
@keyframes n404-drift{to{transform:translate(15px,-20px)}}
/* Vana CMS-i vaikimisi veatekst peidetakse ainult uue veaploki olemasolul. */
#main > .n404 ~ .empty-page{display:none}
.n404 [hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.n404 *{animation:none!important;transition:none!important}}

/* Vealeht katab vaateava ka One Page kujunduse ja suure bänneri korral. */
html:has(.n404),body:has(.n404){overflow:hidden!important;transform:none!important;filter:none!important;perspective:none!important}
body:has(.n404) #main{transform:none!important;filter:none!important;perspective:none!important;contain:none!important}
body:has(.n404) > .site-nav,body:has(.n404) > .site-cover{display:none!important}
.n404{position:fixed!important;inset:0!important;z-index:2147483647!important;width:100%!important;height:100vh!important;height:100dvh!important;min-height:0!important;max-height:none!important;max-width:none!important;margin:0!important;box-sizing:border-box!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;padding:clamp(24px,5vh,64px) 20px}
@media(max-height:520px){.n404-number{font-size:90px;margin-bottom:12px}.n404 h1{font-size:24px}.n404-description{margin-bottom:15px}.n404-redirect{margin-top:12px}}

/* CodePeni näites kasutatud foto asub plugina enda varafailides. */
.n404-space{background:#090f24 url("starfield.jpg") center center/cover no-repeat}
.n404-space::before{background:rgba(3,7,20,.22)}
.n404-space .n404-stars,.n404-space .n404-orbit{display:none}

/* Ühine dekoratsioon ei võta hiireklõpse ega kata teksti. */
.n404-glitch .n404-stars,.n404-glitch .n404-orbit,
.n404-snow .n404-stars,.n404-snow .n404-orbit,
.n404-mist .n404-stars,.n404-mist .n404-orbit{display:none}
.n404-content{width:min(100%,700px);margin:auto;z-index:2;box-sizing:border-box}
.n404-landscape{position:absolute;inset:-5%;pointer-events:none;z-index:0;transform:translate(var(--n404-x,0px),var(--n404-y,0px));transition:transform .5s ease-out}
.n404-landscape svg{width:100%;height:100%;display:block}
/* Digitaalne tõrge: värvilised numbrivarjud ja harv nihkumine. */
.n404-glitch{background:#090e16;color:#ecf5ff;font-family:ui-monospace,monospace}
.n404-glitch::before{background:linear-gradient(transparent 49%,#ffffff04 50%);background-size:100% 6px;pointer-events:none}
.n404-glitch .n404-content{border:1px solid #344557;border-radius:16px;padding:clamp(22px,4vw,48px);background:#101721eb;box-shadow:0 25px 100px #00e8cc12}
.n404-terminal{display:flex;gap:7px;align-items:center;text-align:left;margin-bottom:30px;color:#77eecb;font-size:13px}
.n404-terminal i{width:8px;height:8px;background:#fc8077;border-radius:50%;flex-shrink:0}
.n404-terminal i:nth-child(2){background:#f0ca71}.n404-terminal i:nth-child(3){background:#76dba7}
.n404-terminal code{margin-left:9px;color:inherit;overflow-wrap:anywhere}
.n404-glitch .n404-number{text-shadow:-4px 0 #ff647e,4px 0 #54ecd8}
.n404-glitch[data-animate="1"] .n404-number{animation:n404-glitch 7s ease-in-out infinite}
.n404-glitch .n404-home{background:#78ebcd;color:#0a2320;border-radius:6px}
@keyframes n404-glitch{0%,85%,91%,100%{transform:none}87%{transform:skewX(-4deg) translateX(3px)}89%{transform:skewX(3deg) translateX(-3px)}}
/* Lumine maastik: kihilised mäed, kuused ja kaks aeglaselt langevat lumekihti. */
.n404-snow{background:linear-gradient(#b9d1e4,#e7f1f6 75%);color:#263f59}
.n404-snow::before{background:radial-gradient(ellipse at 50% 30%,#ffffffa8,transparent 65%)}
.n404-snow .n404-mountain-back{fill:#a5bfd0}.n404-snow .n404-mountain-front{fill:#cbdde8}
.n404-snow .n404-trees{fill:#8ba9bc}.n404-snow .n404-ground{fill:#f5f9fb}
.n404-snow .n404-content{padding:20px;border-radius:30px;background:radial-gradient(ellipse,#f4f9fce8 40%,#f4f9fc00 75%)}
.n404-snow .n404-number{color:#bc3b4c;text-shadow:0 4px #ffffff90}
.n404-snow .n404-home{background:#263f59;color:#fff}
.n404-snowfall{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.n404-snowfall::before,.n404-snowfall::after{content:"";position:absolute;inset:-200px 0;background-image:radial-gradient(circle,#fff 2px,transparent 3px),radial-gradient(circle,#ffffffa0 1px,transparent 2px);background-size:103px 139px,163px 197px;background-position:0 0,53px 71px}
.n404-snowfall::after{opacity:.6;transform:translateX(35px);background-size:211px 179px,127px 233px}
.n404-snow[data-animate="1"] .n404-snowfall::before{animation:n404-snowfall 20s linear infinite}
.n404-snow[data-animate="1"] .n404-snowfall::after{animation:n404-snowfall 28s linear infinite}
@keyframes n404-snowfall{to{translate:0 197px}}
/* Udune mägimaastik: originaalne vektortaust, mis töötab ilma välise fotota. */
.n404-mist{background:linear-gradient(#1b2539,#586781 65%,#303d52);color:#f5f8ff}
.n404-mist::before{background:radial-gradient(ellipse at 50% 30%,#12192a88,transparent 75%)}
.n404-mist .n404-mountain-back{fill:#39485f}.n404-mist .n404-mountain-front{fill:#243047}
.n404-mist .n404-trees{fill:#152337}.n404-mist .n404-ground{fill:#1b2a3d}
.n404-mist .n404-landscape::after{content:"";position:absolute;inset:40% -10% -5%;background:linear-gradient(transparent,#c4d1e03b 45%,#c4d1e01a);filter:blur(18px)}
.n404-mist[data-animate="1"] .n404-landscape::after{animation:n404-fog 16s ease-in-out infinite alternate}
.n404-mist .n404-number{color:#e2eaf7;text-shadow:0 10px 50px #050d1c80}
.n404-mist .n404-content{text-shadow:0 2px 14px #081224;padding:24px;border:1px solid #ffffff20;border-radius:24px;background:#15223750;backdrop-filter:blur(3px)}
.n404-mist .n404-home{text-shadow:none;background:transparent;border:1px solid #c7d6eb;color:#fff;border-radius:6px}
@keyframes n404-fog{to{transform:translateX(5%);opacity:.55}}
/* Madalal ekraanil saab kogu sisu vertikaalselt kerida. */
@media(max-height:600px){.n404-content{margin:0 auto}.n404-number{font-size:90px}.n404-terminal{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.n404 *,.n404 *::before,.n404 *::after{animation:none!important;transition:none!important}}
