/* Login WOW v277 — student login only */
body[data-page="login"]{
  min-height:100dvh;
  overflow-x:hidden;
  background:#59c8ef;
}
body[data-page="login"] .student-login-page{
  isolation:isolate;
}
body[data-page="login"] .student-login-page::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 76% 44%,rgba(255,247,172,.36),transparent 30%),
    linear-gradient(90deg,rgba(20,75,71,.03) 0 42%,rgba(52,32,4,.12) 100%);
}
body[data-page="login"] .student-login-grid,
body[data-page="login"] .student-login-brand{
  position:relative;
  z-index:1;
}
body[data-page="login"] .student-login-card{
  position:relative;
  isolation:isolate;
  overflow:visible;
  width:min(455px,100%);
  padding:88px 38px 31px;
  border:4px solid #f4ad16;
  border-radius:35px;
  background:
    radial-gradient(circle at 50% 0,rgba(255,255,255,.98) 0 10%,rgba(255,255,255,0) 35%),
    linear-gradient(150deg,rgba(255,254,241,.98) 0%,rgba(255,246,199,.98) 57%,rgba(255,224,119,.97) 100%);
  box-shadow:
    0 9px 0 #ad6208,
    0 25px 58px rgba(73,43,4,.34),
    0 0 0 7px rgba(255,255,255,.28),
    inset 0 0 0 3px rgba(255,255,255,.82),
    inset 0 -18px 32px rgba(231,151,9,.10);
  backdrop-filter:blur(13px) saturate(1.08);
  animation:beeLoginCardArrive .72s cubic-bezier(.2,.88,.25,1.14) both;
}
body[data-page="login"] .student-login-card::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:7px;
  right:7px;
  top:5px;
  height:55px;
  border-radius:27px 27px 45% 45%;
  background:
    radial-gradient(circle at 10% 54%,#ffc52f 0 13px,transparent 14px),
    radial-gradient(circle at 22% 42%,#ffd455 0 18px,transparent 19px),
    radial-gradient(circle at 80% 38%,#ffd455 0 16px,transparent 17px),
    radial-gradient(circle at 91% 58%,#ffbd20 0 12px,transparent 13px),
    linear-gradient(180deg,#ffe26d 0%,#ffbd23 70%,#eda10d 100%);
  box-shadow:inset 0 4px 0 rgba(255,255,255,.55),0 3px 0 rgba(177,94,4,.38);
  clip-path:polygon(0 0,100% 0,100% 63%,94% 63%,92% 92%,88% 64%,80% 65%,77% 100%,73% 65%,60% 65%,57% 85%,54% 65%,38% 65%,35% 95%,31% 65%,17% 65%,14% 87%,10% 65%,0 65%);
  opacity:.92;
}
body[data-page="login"] .student-login-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:17px;
  right:17px;
  bottom:12px;
  height:112px;
  border-radius:0 0 24px 24px;
  pointer-events:none;
  opacity:.19;
  background:
    linear-gradient(30deg,#d49310 12%,transparent 12.5%,transparent 87%,#d49310 87.5%,#d49310),
    linear-gradient(150deg,#d49310 12%,transparent 12.5%,transparent 87%,#d49310 87.5%,#d49310),
    linear-gradient(30deg,#d49310 12%,transparent 12.5%,transparent 87%,#d49310 87.5%,#d49310),
    linear-gradient(150deg,#d49310 12%,transparent 12.5%,transparent 87%,#d49310 87.5%,#d49310),
    linear-gradient(60deg,#f2bd39 25%,transparent 25.5%,transparent 75%,#f2bd39 75%,#f2bd39);
  background-size:34px 59px;
  background-position:0 0,0 0,17px 30px,17px 30px,0 0;
  mask-image:linear-gradient(to bottom,transparent,#000 42%,#000);
}
body[data-page="login"] .student-login-card>*{
  position:relative;
  z-index:1;
}
body[data-page="login"] .student-honey-icon{
  position:absolute;
  z-index:4;
  left:50%;
  top:-88px;
  width:165px;
  height:155px;
  margin:0;
  border:0;
  border-radius:0;
  background:url("../assets/characters/bee-idle.png") center/contain no-repeat;
  box-shadow:none;
  color:transparent;
  font-size:0;
  filter:drop-shadow(0 12px 8px rgba(87,48,4,.27));
  transform:translateX(-50%);
  animation:beeLoginFloat 2.4s ease-in-out infinite;
}
body[data-page="login"] .student-honey-icon::before,
body[data-page="login"] .student-honey-icon::after{
  content:"✦";
  position:absolute;
  color:#fff6a1;
  font-size:22px;
  line-height:1;
  text-shadow:0 0 8px #f2a900;
  animation:beeLoginSpark 1.8s ease-in-out infinite;
}
body[data-page="login"] .student-honey-icon::before{left:4px;top:36px}
body[data-page="login"] .student-honey-icon::after{right:4px;top:17px;animation-delay:.8s}
body[data-page="login"] .student-login-card h2{
  margin:3px 0 5px;
  color:#57310a;
  font-size:clamp(26px,2.4vw,32px);
  font-weight:1000;
  line-height:1.25;
  text-shadow:0 2px 0 rgba(255,255,255,.85);
}
body[data-page="login"] .student-login-card h2::before{
  content:"🍯";
  display:block;
  width:54px;
  height:54px;
  margin:0 auto 9px;
  padding-top:10px;
  border:2px solid #f5ca55;
  border-radius:18px;
  background:linear-gradient(145deg,#fff9d8,#ffe38a);
  box-shadow:inset 0 3px 0 #fff,0 4px 0 #c88412;
  font-size:27px;
  line-height:1;
}
body[data-page="login"] .student-login-card>p:not(.feedback){
  margin:7px 0 22px;
  color:#7f6c4d;
  font-size:14px;
  line-height:1.6;
}
body[data-page="login"] .student-login-card .field{
  margin:14px 0;
}
body[data-page="login"] .student-login-card .field label{
  color:#634311;
  font-size:14px;
  font-weight:1000;
}
body[data-page="login"] .student-login-card .field input{
  width:100%;
  height:58px;
  padding:0 17px;
  border:3px solid #ead69a;
  border-radius:17px;
  background:rgba(255,255,255,.94);
  color:#39495c;
  box-shadow:inset 0 2px 5px rgba(90,64,18,.07),0 4px 0 rgba(176,125,31,.18);
  transition:.2s border-color,.2s box-shadow,.2s transform;
}
body[data-page="login"] .student-login-card .field input::placeholder{color:#9b9b9b}
body[data-page="login"] .student-login-card .field input:focus{
  border-color:#f2ae18;
  outline:0;
  box-shadow:0 0 0 5px rgba(255,195,47,.24),0 5px 0 rgba(176,104,12,.2);
  transform:translateY(-1px);
}
body[data-page="login"] .student-start-button{
  position:relative;
  overflow:hidden;
  width:100%;
  min-height:62px;
  margin-top:18px;
  border:3px solid #fff0a4;
  border-radius:19px;
  background:linear-gradient(180deg,#ffe26b 0%,#ffc32e 38%,#f49a08 100%);
  color:#643700;
  box-shadow:inset 0 4px 0 rgba(255,255,255,.62),0 7px 0 #ad5f05,0 13px 22px rgba(131,72,6,.25);
  font-size:18px;
  font-weight:1000;
  text-shadow:0 1px 0 rgba(255,255,255,.55);
  animation:beeLoginButtonGlow 1.9s ease-in-out infinite;
}
body[data-page="login"] .student-start-button::before{
  content:"";
  position:absolute;
  left:-45%;
  top:-35%;
  width:36%;
  height:170%;
  transform:rotate(22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);
  animation:beeLoginShine 2.8s ease-in-out infinite;
}
body[data-page="login"] .student-start-button:hover{
  filter:brightness(1.05) saturate(1.05);
  transform:translateY(-3px);
  box-shadow:inset 0 4px 0 rgba(255,255,255,.66),0 10px 0 #ad5f05,0 17px 28px rgba(131,72,6,.29);
}
body[data-page="login"] .student-start-button:active{
  transform:translateY(5px);
  box-shadow:inset 0 3px 0 rgba(255,255,255,.55),0 2px 0 #ad5f05,0 6px 12px rgba(131,72,6,.2);
}
body[data-page="login"] .student-teacher-link{
  width:max-content;
  max-width:100%;
  margin:24px auto 0;
  padding:9px 18px;
  border:2px solid #d7b75f;
  border-radius:999px;
  background:rgba(255,255,255,.67);
  color:#6f5a35;
  box-shadow:0 3px 0 rgba(154,101,15,.18);
  font-size:14px;
  font-weight:900;
}
body[data-page="login"] .student-teacher-link:hover{
  border-color:#eca81e;
  background:#fff8da;
  color:#744300;
  transform:translateY(-1px);
}
body[data-page="login"] .student-login-brand{
  border:2px solid rgba(255,218,102,.86);
  background:rgba(255,253,238,.92);
  box-shadow:0 7px 0 rgba(161,102,9,.16),0 16px 28px rgba(43,82,104,.16);
}
body[data-page="login"] .student-login-brand span{
  background:linear-gradient(145deg,#fff9d6,#ffd95d);
  box-shadow:inset 0 2px 0 #fff,0 3px 0 #c98810;
}
body[data-page="login"] .student-login-card .feedback{
  border:2px solid #e9c35c;
  background:#fff8d7;
  color:#6f4a0c;
  box-shadow:0 3px 0 rgba(159,102,12,.18);
}
@keyframes beeLoginCardArrive{
  0%{opacity:0;transform:translateY(30px) scale(.94)}
  72%{opacity:1;transform:translateY(-5px) scale(1.012)}
  100%{opacity:1;transform:none}
}
@keyframes beeLoginFloat{
  0%,100%{transform:translateX(-50%) translateY(0) rotate(-2deg)}
  50%{transform:translateX(-50%) translateY(-9px) rotate(2deg)}
}
@keyframes beeLoginSpark{
  0%,100%{opacity:.25;transform:scale(.65) rotate(0)}
  50%{opacity:1;transform:scale(1.18) rotate(85deg)}
}
@keyframes beeLoginButtonGlow{
  0%,100%{filter:drop-shadow(0 0 2px rgba(255,183,24,.25))}
  50%{filter:drop-shadow(0 0 11px rgba(255,177,13,.62))}
}
@keyframes beeLoginShine{
  0%,42%{left:-45%;opacity:0}
  52%{opacity:.9}
  68%,100%{left:120%;opacity:0}
}
@media(max-width:900px){
  body[data-page="login"] .student-login-grid{padding-top:135px}
  body[data-page="login"] .student-login-card{justify-self:center;margin-right:0}
}
@media(max-width:620px){
  body[data-page="login"] .student-login-page::before{
    background:linear-gradient(rgba(239,250,255,.1),rgba(42,56,31,.10));
  }
  body[data-page="login"] .student-login-grid{padding:130px 12px 30px}
  body[data-page="login"] .student-login-card{
    width:min(100%,430px);
    padding:72px 20px 25px;
    border-width:3px;
    border-radius:29px;
    box-shadow:0 7px 0 #ad6208,0 20px 40px rgba(73,43,4,.30),0 0 0 4px rgba(255,255,255,.23),inset 0 0 0 2px rgba(255,255,255,.78);
  }
  body[data-page="login"] .student-honey-icon{top:-75px;width:142px;height:135px}
  body[data-page="login"] .student-login-card h2{font-size:25px}
  body[data-page="login"] .student-login-card h2::before{width:48px;height:48px;padding-top:9px;font-size:24px}
  body[data-page="login"] .student-login-card>p:not(.feedback){font-size:13px;margin-bottom:17px}
  body[data-page="login"] .student-login-card .field input{height:55px}
  body[data-page="login"] .student-start-button{min-height:58px}
}
@media(max-width:380px){
  body[data-page="login"] .student-login-grid{padding-left:7px;padding-right:7px}
  body[data-page="login"] .student-login-card{padding-left:15px;padding-right:15px}
  body[data-page="login"] .student-login-card h2{font-size:22px}
  body[data-page="login"] .student-teacher-link{font-size:13px;padding-inline:13px}
}
@media(prefers-reduced-motion:reduce){
  body[data-page="login"] .student-login-card,
  body[data-page="login"] .student-honey-icon,
  body[data-page="login"] .student-honey-icon::before,
  body[data-page="login"] .student-honey-icon::after,
  body[data-page="login"] .student-start-button,
  body[data-page="login"] .student-start-button::before{animation:none!important}
}
