/* KURSEGEOGE.COM · Halloween Library 2026 · public page only.
   This sheet replaces materials-calm.css. It does NOT style admin.php. */
:root {
  --night:#100918;
  --night-purple:#21132c;
  --halloween-orange:#ff963c;
  --halloween-gold:#ffd184;
  --halloween-lilac:#c9a3ff;
  --halloween-ice:#e6f5ff;
  --halloween-ink:#213a55;
}
html { background:var(--night); }
body {
  isolation:isolate;
  min-height:100vh;
  background:
    radial-gradient(ellipse 54% 43% at 97% 12%,rgba(255,129,39,.15),transparent 75%),
    radial-gradient(ellipse 56% 38% at 4% 9%,rgba(149,71,225,.20),transparent 80%),
    radial-gradient(ellipse 66% 54% at 52% 65%,rgba(59,22,94,.45),transparent 75%),
    linear-gradient(165deg,#13091b 0%,#1a0d26 43%,#0b0913 100%) fixed;
  color:#f7eeff;
}
body::before {
  position:fixed;inset:0;z-index:-1;
  background-image:
    linear-gradient(rgba(255,150,60,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(201,163,255,.045) 1px,transparent 1px);
  background-size:54px 54px;
  opacity:.85;
  pointer-events:none;
}
body::after {
  content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;
  background:linear-gradient(transparent 45%,rgba(8,5,15,.33));
}
.halloween-scene {position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;user-select:none;}
.halloween-scene .moon {
  position:absolute;right:8%;top:10%;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#fff8df,#ffcf85 65%,#de875f 100%);
  box-shadow:0 0 32px rgba(254,199,116,.17),0 0 100px rgba(255,145,50,.10);
  opacity:.18;
}
.halloween-scene .bat {position:absolute;font-size:clamp(22px,2.6vw,40px);filter:drop-shadow(0 4px 9px #0008);opacity:.24;will-change:transform;}
.halloween-scene .bat-a {right:11%;top:27%;animation:batFloat 10s ease-in-out infinite;}
.halloween-scene .bat-b {left:8%;top:36%;font-size:27px;animation:batFloat 12s ease-in-out infinite reverse;}
.halloween-scene .bat-c {right:27%;top:63%;font-size:22px;animation:batFloat 13s ease-in-out infinite 1.3s;}
.halloween-scene .pumpkin {position:absolute;bottom:2%;opacity:.36;filter:drop-shadow(0 11px 24px rgba(255,131,41,.30));}
.halloween-scene .pumpkin-a {left:1.6%;font-size:clamp(55px,7vw,98px);transform:rotate(-11deg);}
.halloween-scene .pumpkin-b {right:2%;font-size:clamp(45px,5.3vw,76px);transform:rotate(13deg);}
@keyframes batFloat {0%,100%{transform:translate3d(0,0,0) rotate(-7deg)}50%{transform:translate3d(24px,-22px,0) rotate(13deg)}}
header {background:rgba(11,7,18,.88);border-bottom:1px solid rgba(229,163,110,.22);box-shadow:0 12px 32px rgba(0,0,0,.18);}
.nav .brand {color:#fff4ed;}
.nav .brand b {color:#ffa35b;}
.nav .back {color:#ffdfbd;border-color:rgba(255,156,73,.36);background:rgba(255,141,56,.06);transition:background .2s,color .2s;}
.nav .back:hover,.nav .back:focus-visible {background:rgba(255,141,56,.19);color:#fff;}
main,footer {position:relative;z-index:1;}
main {padding-top:42px;}
.tag {background:rgba(255,141,56,.08);border:1px solid rgba(255,149,54,.48);color:#ffbc7c;border-radius:7px;box-shadow:inset 0 0 14px rgba(255,122,24,.05);}
.hero {background:linear-gradient(118deg,rgba(34,17,48,.96),rgba(47,20,58,.95) 60%,rgba(35,18,39,.97));border:1px solid rgba(204,139,255,.43);box-shadow:0 25px 65px rgba(0,0,0,.37),inset 0 1px rgba(255,255,255,.07);}
.hero::before {filter:drop-shadow(0 0 24px rgba(255,117,33,.43)) drop-shadow(0 18px 14px rgba(0,0,0,.45));opacity:.96;transform:rotate(11deg) perspective(300px) rotateY(-10deg);}
.hero::after {content:"🦇";position:absolute;right:12%;top:6%;font-size:40px;opacity:.6;transform:rotate(18deg);filter:drop-shadow(0 8px 13px #0009);pointer-events:none;}
.hero h1 {color:#fff8fa;text-shadow:0 3px 18px rgba(0,0,0,.27);}
.hero h1 em {color:#ffad61;}
.hero p {color:#e3d6e9;}
.small {color:#e0badc;}
section h2,.section-heading h2 {color:#fcf4ff;}
.exam-btn {border:1px solid rgba(176,120,211,.44);color:#e5d4ef;background:#261730;box-shadow:0 4px 0 rgba(0,0,0,.27);transition:transform .18s,border-color .18s,background .18s;}
.exam-btn:hover {border-color:#e6acff;transform:translateY(-2px);}
.exam-btn[aria-pressed=true] {color:#271107;border-color:#ffba7b;background:linear-gradient(155deg,#ffd28c,#ff983b 55%,#f77829);box-shadow:0 5px 0 #8c431f,0 13px 27px rgba(255,135,37,.25);}
.input {background:#25182e;border:1px solid #744d83;color:#faf2ff;}
.input::placeholder {color:#c3b2ca;}
.input:focus-visible {outline:2px solid #ffb75d;outline-offset:2px;}
.input option {background:#25182e;color:#fff;}
.subject {background:linear-gradient(135deg,rgba(40,23,56,.96),rgba(26,17,39,.98));color:#f5e9ff;border:1px solid rgba(165,104,205,.38);box-shadow:0 10px 27px rgba(0,0,0,.15);border-radius:14px;}
.subject:hover,.subject:focus-visible {background:linear-gradient(135deg,#3a2147,#241732);box-shadow:0 9px 29px rgba(209,109,255,.22);border-color:rgba(255,171,87,.7);}
.subject.active {color:#fff;background:linear-gradient(130deg,#56305a,#372145);border:1px solid #ffae5e;box-shadow:inset 0 1px rgba(255,255,255,.08),0 8px 25px rgba(255,135,36,.15);}
.selection {border-color:rgba(172,114,197,.38);}
.cards {gap:19px;}
.card {position:relative;overflow:hidden;padding:22px;gap:12px;border:1px solid rgba(185,213,237,.88);border-radius:16px;background:linear-gradient(165deg,#fcfdff,#eef6ff);color:var(--halloween-ink);box-shadow:0 10px 24px rgba(0,0,0,.22),0 0 0 1px rgba(255,255,255,.5) inset;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.card::before {content:"";height:4px;position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,#ffb361 0%,#a47cff 48%,#74cff4 100%);}
.card:hover {transform:translateY(-4px);border-color:#f8ba82;box-shadow:0 19px 39px rgba(0,0,0,.3),0 0 30px rgba(255,141,47,.15);}
.card h3 {color:#203c5c;font-size:18px;font-weight:800;}
.card p {color:#526b86;line-height:1.58;}
/* Material type label: deliberately blue, never the old black/burgundy background. */
.card .chip {display:inline-flex;align-items:center;width:max-content;padding:6px 12px;border-radius:8px;letter-spacing:.025em;background:linear-gradient(170deg,#d8f0ff,#b9dffc);border:1px solid #8ac3e8;color:#194c76;font:800 11px 'JetBrains Mono',monospace;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 3px 9px rgba(48,143,209,.15);}
.card .meta {color:#597895;font-size:12px;}
.card .links {gap:10px;margin-top:9px;}
.card .links a {display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:43px;padding:11px 13px;line-height:1.2;border-radius:10px;background:linear-gradient(180deg,#e4f4ff,#cde9ff);color:#1d5279;border:1px solid #a1cceb;text-decoration:none;box-shadow:0 4px 0 #a4c4db,0 8px 12px rgba(35,100,148,.08);transition:transform .14s,box-shadow .14s,filter .16s;}
.card .links a:last-child {background:linear-gradient(180deg,#ffcd8a,#ff9d51);color:#542602;border-color:#f49e60;box-shadow:0 4px 0 #af6430,0 8px 17px rgba(218,104,39,.14);}
.card .links a:hover {transform:translateY(-2px);filter:brightness(1.03);}
.card .links a:active {transform:translateY(3px);box-shadow:0 1px 0 #a4c4db;}
.card .links a:last-child:active {box-shadow:0 1px 0 #af6430;}
.card .links a:focus-visible,.exam-btn:focus-visible,.subject:focus-visible {outline:3px solid #f79b4b;outline-offset:3px;}
.empty {background:rgba(39,22,51,.85);color:#e0cce9;border:1px dashed rgba(183,121,218,.59);border-radius:14px;}
.promo {background:linear-gradient(110deg,#301a3d,#241630);border-color:rgba(255,152,70,.6);box-shadow:0 14px 37px rgba(0,0,0,.22);}
.promo h2 {color:#fff9fd;}
.promo p {color:#e3d2ea;}
.promo a {background:linear-gradient(155deg,#ffd18a,#ff963b);color:#291301;box-shadow:0 5px 0 #863f21;transition:transform .15s;}
.promo a:hover {transform:translateY(-2px);}
footer {border-color:rgba(155,111,175,.33);color:#cdbdd8;}
.api-alert {margin:14px 0 18px;background:#fff2f0;color:#873a43;border:1px solid #f5b3a4;padding:14px;border-radius:12px;}
/* Download flourish: decorative only; actual download remains native browser behavior. */
.download-flight-layer {position:fixed;inset:0;z-index:9999;pointer-events:none;overflow:hidden;}
.download-flyer {position:fixed;display:block;left:0;top:0;line-height:1;transform:translate(-50%,-50%);filter:drop-shadow(0 0 15px rgba(255,125,34,.65)) drop-shadow(0 8px 10px rgba(0,0,0,.3));will-change:transform,opacity;}
.download-flyer.pumpkin {font-size:43px;}
.download-flyer.bat {font-size:27px;}
.download-flyer.sparkle {font-size:23px;}
.download-toast {position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9999;min-width:205px;max-width:min(92vw,420px);padding:12px 20px;background:#261536;border:1px solid #ffb161;color:#fff4d9;border-radius:13px;box-shadow:0 14px 35px rgba(0,0,0,.4);text-align:center;font-weight:700;pointer-events:none;animation:toastIn .22s ease-out;}
@keyframes toastIn {from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:700px) {
  main{padding-top:26px;}
  .hero::after{font-size:26px;right:5%;opacity:.25;}
  .hero::before{opacity:.37;font-size:92px;right:-4%;top:5%;}
  .card{padding:18px;}
  .cards{grid-template-columns:1fr;}
  .card .links a{min-height:46px;}
  .halloween-scene .moon{width:88px;height:88px;}
  .halloween-scene .pumpkin{opacity:.16;}
  .halloween-scene .bat{opacity:.17;}
}
@media(prefers-reduced-motion:reduce){
  .halloween-scene .bat{animation:none!important;will-change:auto;}
  .card,.subject,.exam-btn,.card .links a,.promo a{transition:none!important;}
  .card:hover,.subject:hover,.exam-btn:hover,.card .links a:hover{transform:none!important;}
  .download-toast{animation:none;}
}
