/* Extracted from living-record-orbit-polished-v4-logo-nucleus.
 * Visual declarations and keyframes retained; selectors and variables scoped. */

.hero3d{
  --hero3d-ink:#3B376F; --hero3d-ink-2:#555087; --hero3d-violet:#9692BC; --hero3d-violet-soft:#DDDCE9;
  --hero3d-mist:#F0EFF5; --hero3d-paper:#FBFAFD; --hero3d-cyan:#8BE1D8; --hero3d-cyan-deep:#43BFB4;
  --hero3d-blue:#7FAAF8; --hero3d-orange:#F6A158; --hero3d-citrine:#DDE68A;
  --hero3d-mx:0; --hero3d-my:0; --hero3d-gx:50%; --hero3d-gy:50%;
  --hero3d-ease:cubic-bezier(.22,1,.36,1); --hero3d-spring:cubic-bezier(.34,1.35,.64,1);
  --hero3d-squircle:polygon(100.000% 50.000%,99.895% 68.214%,99.580% 74.568%,99.052% 79.202%,98.308% 82.930%,97.342% 86.055%,96.145% 88.725%,94.705% 91.024%,93.006% 93.006%,91.024% 94.705%,88.725% 96.145%,86.055% 97.342%,82.930% 98.308%,79.202% 99.052%,74.568% 99.580%,68.214% 99.895%,50.000% 100.000%,31.786% 99.895%,25.432% 99.580%,20.798% 99.052%,17.070% 98.308%,13.945% 97.342%,11.275% 96.145%,8.976% 94.705%,6.994% 93.006%,5.295% 91.024%,3.855% 88.725%,2.658% 86.055%,1.692% 82.930%,0.948% 79.202%,0.420% 74.568%,0.105% 68.214%,0.000% 50.000%,0.105% 31.786%,0.420% 25.432%,0.948% 20.798%,1.692% 17.070%,2.658% 13.945%,3.855% 11.275%,5.295% 8.976%,6.994% 6.994%,8.976% 5.295%,11.275% 3.855%,13.945% 2.658%,17.070% 1.692%,20.798% 0.948%,25.432% 0.420%,31.786% 0.105%,50.000% 0.000%,68.214% 0.105%,74.568% 0.420%,79.202% 0.948%,82.930% 1.692%,86.055% 2.658%,88.725% 3.855%,91.024% 5.295%,93.006% 6.994%,94.705% 8.976%,96.145% 11.275%,97.342% 13.945%,98.308% 17.070%,99.052% 20.798%,99.580% 25.432%,99.895% 31.786%);
}
.hero3d *{box-sizing:border-box}
.hero3d .hero3d-stage{
  font-family:"Alexandria",system-ui,sans-serif;
  /* Share the Hero backdrop; only the soft haze and object shadows add light. */
  background:transparent;
  color:#262344;
}
.hero3d .hero3d-canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}
.hero3d .hero3d-scene{
  position:absolute;left:50%;top:52%;
  width:1320px;height:790px;
  transform:translate(-50%,-50%);z-index:5;perspective:1500px;transform-style:preserve-3d;
}
.hero3d .hero3d-soft-haze{
  position:absolute;left:50%;top:52%;width:820px;height:520px;transform:translate(-50%,-50%);
  background:radial-gradient(ellipse at center,rgba(188,183,236,.21) 0%,rgba(215,212,247,.13) 30%,rgba(255,255,255,0) 72%);
  filter:blur(20px);pointer-events:none;
}
.hero3d .hero3d-center-stack{
  position:absolute;left:50%;top:49%;width:520px;height:320px;
  transform:translate(-50%,-50%) translate(calc(var(--hero3d-mx)*7px),calc(var(--hero3d-my)*4px));
  transition:transform 110ms linear;z-index:8;cursor:pointer;
  filter:drop-shadow(0 32px 32px rgba(59,55,111,.08));
}
.hero3d .hero3d-stack-layer{
  position:absolute;inset:0;border-radius:92px;
  clip-path:var(--hero3d-squircle);
  -webkit-clip-path:var(--hero3d-squircle);transform-origin:58% 58%;
  transition:transform 260ms var(--hero3d-ease),filter 260ms var(--hero3d-ease),opacity 260ms var(--hero3d-ease);
}
.hero3d .hero3d-layer-back-3{
  transform:translate(75px,-48px) rotate(11deg) scale(.91);
  background:linear-gradient(145deg,rgba(149,144,226,.86),rgba(104,95,201,.74));
  box-shadow:0 20px 44px rgba(97,87,189,.18);border:1px solid rgba(255,255,255,.44);z-index:1;
}
.hero3d .hero3d-layer-back-2{
  transform:translate(53px,-28px) rotate(7deg) scale(.94);
  background:linear-gradient(145deg,rgba(183,179,239,.91),rgba(132,122,219,.75));
  box-shadow:0 24px 50px rgba(109,98,196,.16);border:1px solid rgba(255,255,255,.55);z-index:2;
}
.hero3d .hero3d-layer-back-1{
  transform:translate(28px,-9px) rotate(3.5deg) scale(.97);
  background:linear-gradient(145deg,rgba(231,230,250,.96),rgba(185,179,237,.86));
  box-shadow:0 28px 56px rgba(96,87,180,.13);border:1px solid rgba(255,255,255,.78);z-index:3;
}
.hero3d .hero3d-layer-front{
  transform:translate(0,15px);z-index:5;overflow:hidden;
  background:
    radial-gradient(420px 220px at 72% 14%,rgba(255,255,255,.98),transparent 43%),
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(245,245,252,.92));
  border:1px solid rgba(255,255,255,.98);
  box-shadow:0 38px 80px rgba(66,58,132,.16),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(59,55,111,.04);
}
.hero3d .hero3d-layer-front::before{
  content:"";position:absolute;inset:25px 28px;border-radius:66px;
  clip-path:var(--hero3d-squircle);
  -webkit-clip-path:var(--hero3d-squircle);
  background:linear-gradient(145deg,rgba(239,240,255,.70),rgba(255,255,255,.18));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 18px 48px rgba(89,80,160,.06);opacity:.82;
}
.hero3d .hero3d-layer-front::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(260px circle at var(--hero3d-gx) var(--hero3d-gy),rgba(255,255,255,.85),transparent 48%);
  mix-blend-mode:screen;opacity:.7;pointer-events:none;
}
.hero3d .hero3d-center-copy{
  position:absolute;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;
  transform:translateY(12px);pointer-events:none;
}
.hero3d .hero3d-center-copy h1{margin:0;font-size:56px;line-height:1;color:#251F93;letter-spacing:-.045em;text-shadow:0 3px 16px rgba(75,66,161,.10)}
.hero3d .hero3d-logo-space{
  position:relative;
  width:405px;
  height:164px;
  max-width:86%;
  display:grid;
  place-items:center;
  isolation:isolate;
  transform:
    perspective(900px)
    rotateX(calc(var(--hero3d-my) * -1.1deg))
    rotateY(calc(var(--hero3d-mx) * 1.5deg));
  transition:
    transform 520ms var(--hero3d-ease),
    filter 320ms var(--hero3d-ease);
}
.hero3d .hero3d-logo-lens{
  position:absolute;
  inset:14px 20px;
  z-index:0;
  clip-path:var(--hero3d-squircle);
  -webkit-clip-path:var(--hero3d-squircle);
  background:
    radial-gradient(220px circle at var(--hero3d-gx) var(--hero3d-gy),
      rgba(255,255,255,.88),transparent 46%),
    linear-gradient(145deg,
      rgba(255,255,255,.42),
      rgba(221,220,243,.16));
  border:1px solid rgba(255,255,255,.58);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.82),
    0 18px 36px rgba(59,55,111,.035);
  backdrop-filter:blur(8px) saturate(120%);
  opacity:.52;
  transition:
    opacity 320ms var(--hero3d-ease),
    transform 520ms var(--hero3d-ease),
    box-shadow 320ms var(--hero3d-ease);
}
.hero3d .hero3d-logo-orbit{
  position:absolute;
  left:50%;top:50%;
  border-radius:50%;
  pointer-events:none;
  opacity:.45;
  transition:
    opacity 300ms var(--hero3d-ease),
    transform 720ms var(--hero3d-ease);
}
.hero3d .hero3d-logo-orbit-a{
  width:362px;height:112px;
  border:1px solid rgba(113,107,160,.20);
  transform:translate(-50%,-50%) rotate(-5deg);
}
.hero3d .hero3d-logo-orbit-b{
  width:312px;height:86px;
  border:1px solid rgba(67,191,180,.16);
  transform:translate(-50%,-50%) rotate(7deg);
}
.hero3d .hero3d-logo-node{
  position:absolute;
  z-index:2;
  display:block;
  border-radius:50%;
  box-shadow:
    0 5px 12px rgba(59,55,111,.12),
    inset 0 1px 2px rgba(255,255,255,.85);
  transition:
    transform 520ms var(--hero3d-spring),
    opacity 260ms var(--hero3d-ease);
}
.hero3d .hero3d-node-a{
  width:10px;height:10px;
  left:34px;top:53px;
  background:radial-gradient(circle at 32% 28%,#fff,#9D92F0 48%,#6C60D1 82%);
}
.hero3d .hero3d-node-b{
  width:8px;height:8px;
  right:45px;top:39px;
  background:radial-gradient(circle at 32% 28%,#fff,#86E5DA 48%,#3EBEB1 82%);
}
.hero3d .hero3d-node-c{
  width:7px;height:7px;
  right:63px;bottom:39px;
  background:radial-gradient(circle at 32% 28%,#fff,#D6CCFF 48%,#8B79E3 82%);
}
.hero3d .hero3d-logo-sweep{
  position:absolute;
  z-index:4;
  inset:8px 14px;
  overflow:hidden;
  clip-path:var(--hero3d-squircle);
  -webkit-clip-path:var(--hero3d-squircle);
  pointer-events:none;
}
.hero3d .hero3d-logo-sweep::after{
  content:"";
  position:absolute;
  top:-30%;bottom:-30%;
  width:92px;
  left:-130px;
  background:linear-gradient(90deg,
    transparent,
    rgba(255,255,255,.72) 46%,
    rgba(255,255,255,.18) 66%,
    transparent);
  transform:skewX(-16deg);
  opacity:0;
}
.hero3d .hero3d-center-logo{
  position:relative;
  z-index:3;
  display:block;
  width:332px;
  max-width:88%;
  height:auto;
  margin:0 auto;
  transform:translateY(-1px);
  filter:drop-shadow(0 6px 17px rgba(59,55,111,.10));
  transition:
    transform 420ms var(--hero3d-ease),
    filter 320ms var(--hero3d-ease),
    opacity 240ms var(--hero3d-ease);
}
.hero3d .hero3d-center-copy p{
  margin:8px 0 0;
  font-size:14px;
  color:#7F7C8E;
  font-weight:500;
  letter-spacing:.01em;
  opacity:.84;
  transition:
    transform 380ms var(--hero3d-ease),
    opacity 260ms var(--hero3d-ease);
}

/* Logo as the nucleus of the system */
.hero3d .hero3d-center-stack:hover .hero3d-logo-space{
  transform:
    perspective(900px)
    translateY(-2px)
    scale(1.024)
    rotateX(calc(var(--hero3d-my) * -1.35deg))
    rotateY(calc(var(--hero3d-mx) * 1.8deg));
  filter:drop-shadow(0 12px 22px rgba(59,55,111,.05));
}
.hero3d .hero3d-center-stack:hover .hero3d-logo-lens{
  opacity:.70;
  transform:scale(1.018);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.90),
    0 22px 44px rgba(59,55,111,.05);
}
.hero3d .hero3d-center-stack:hover .hero3d-center-logo{
  transform:translateY(-3px) scale(1.025);
  filter:drop-shadow(0 9px 20px rgba(59,55,111,.13));
}
.hero3d .hero3d-center-stack:hover .hero3d-logo-orbit-a{
  opacity:.66;
  transform:translate(-50%,-50%) rotate(-8deg) scale(1.018);
}
.hero3d .hero3d-center-stack:hover .hero3d-logo-orbit-b{
  opacity:.56;
  transform:translate(-50%,-50%) rotate(10deg) scale(1.025);
}
.hero3d .hero3d-center-stack:hover .hero3d-node-a{transform:translate(-4px,-2px) scale(1.18)}
.hero3d .hero3d-center-stack:hover .hero3d-node-b{transform:translate(4px,-3px) scale(1.14)}
.hero3d .hero3d-center-stack:hover .hero3d-node-c{transform:translate(4px,3px) scale(1.12)}
.hero3d .hero3d-center-stack:hover .hero3d-center-copy p{
  transform:translateY(2px);
  opacity:.72;
}

/* Click choreography: logo stays central while the world orbits around it */
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-logo-space{
  animation:hero3d-logoNucleusStage 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-center-logo{
  animation:hero3d-logoNucleusMark 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-logo-lens{
  animation:hero3d-logoLensPulse 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-logo-orbit-a{
  animation:hero3d-logoOrbitA 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-logo-orbit-b{
  animation:hero3d-logoOrbitB 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-node-a{
  animation:hero3d-nodePulseA 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-node-b{
  animation:hero3d-nodePulseB 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-node-c{
  animation:hero3d-nodePulseC 1080ms var(--hero3d-ease) both;
}
.hero3d .hero3d-center-stack.hero3d-choreo .hero3d-logo-sweep::after{
  animation:hero3d-logoLightSweep 720ms var(--hero3d-ease) 125ms both;
}

@keyframes hero3d-logoNucleusStage{
  0%{transform:perspective(900px) scale(1)}
  10%{transform:perspective(900px) scale(.975)}
  30%{transform:perspective(900px) scale(1.045)}
  64%{transform:perspective(900px) scale(1.012)}
  100%{transform:perspective(900px) scale(1)}
}
@keyframes hero3d-logoNucleusMark{
  0%{transform:translateY(-1px) scale(1);filter:blur(0) drop-shadow(0 6px 17px rgba(59,55,111,.10))}
  10%{transform:translateY(1px) scale(.972);filter:blur(1.6px) drop-shadow(0 3px 10px rgba(59,55,111,.07))}
  29%{transform:translateY(-4px) scale(1.065);filter:blur(0) drop-shadow(0 12px 26px rgba(59,55,111,.16))}
  67%{transform:translateY(-2px) scale(1.018);filter:blur(0) drop-shadow(0 9px 20px rgba(59,55,111,.12))}
  100%{transform:translateY(-1px) scale(1);filter:blur(0) drop-shadow(0 6px 17px rgba(59,55,111,.10))}
}
@keyframes hero3d-logoLensPulse{
  0%{opacity:.52;transform:scale(1)}
  14%{opacity:.40;transform:scale(.97)}
  34%{opacity:.82;transform:scale(1.055)}
  72%{opacity:.60;transform:scale(1.015)}
  100%{opacity:.52;transform:scale(1)}
}
@keyframes hero3d-logoOrbitA{
  0%{transform:translate(-50%,-50%) rotate(-5deg) scale(1)}
  100%{transform:translate(-50%,-50%) rotate(25deg) scale(1)}
}
@keyframes hero3d-logoOrbitB{
  0%{transform:translate(-50%,-50%) rotate(7deg) scale(1)}
  100%{transform:translate(-50%,-50%) rotate(-20deg) scale(1)}
}
@keyframes hero3d-nodePulseA{
  0%,100%{transform:scale(1)}
  30%{transform:translate(-9px,-3px) scale(1.35)}
  66%{transform:translate(-3px,-1px) scale(1.10)}
}
@keyframes hero3d-nodePulseB{
  0%,100%{transform:scale(1)}
  30%{transform:translate(10px,-5px) scale(1.28)}
  66%{transform:translate(3px,-1px) scale(1.08)}
}
@keyframes hero3d-nodePulseC{
  0%,100%{transform:scale(1)}
  30%{transform:translate(8px,5px) scale(1.24)}
  66%{transform:translate(2px,2px) scale(1.07)}
}
@keyframes hero3d-logoLightSweep{
  0%{left:-130px;opacity:0}
  12%{opacity:.85}
  82%{opacity:.50}
  100%{left:440px;opacity:0}
}


.hero3d .hero3d-center-stack.hero3d-pulse .hero3d-layer-back-1{animation:hero3d-fan1 .34s both}
.hero3d .hero3d-center-stack.hero3d-pulse .hero3d-layer-back-2{animation:hero3d-fan2 .34s both}
.hero3d .hero3d-center-stack.hero3d-pulse .hero3d-layer-back-3{animation:hero3d-fan3 .34s both}
@keyframes hero3d-fan1{0%,100%{transform:translate(28px,-9px) rotate(3.5deg) scale(.97)}56%{transform:translate(45px,-16px) rotate(5deg) scale(.965)}}
@keyframes hero3d-fan2{0%,100%{transform:translate(53px,-28px) rotate(7deg) scale(.94)}56%{transform:translate(80px,-40px) rotate(9.5deg) scale(.93)}}
@keyframes hero3d-fan3{0%,100%{transform:translate(75px,-48px) rotate(11deg) scale(.91)}56%{transform:translate(112px,-64px) rotate(14deg) scale(.895)}}

.hero3d .hero3d-feature{
  position:absolute;width:188px;height:170px;z-index:9;transform-style:preserve-3d;cursor:pointer;
  transition:transform 140ms linear,filter 220ms var(--hero3d-ease);
  filter:drop-shadow(0 22px 24px rgba(59,55,111,.08));
}
.hero3d .hero3d-feature .hero3d-echo,.hero3d .hero3d-feature .hero3d-surface{position:absolute;inset:0;border-radius:44px;clip-path:var(--hero3d-squircle);-webkit-clip-path:var(--hero3d-squircle)}
.hero3d .hero3d-feature .hero3d-echo{
  transform:translate(9px,5px);background:rgba(255,255,255,.22);
  border:1px solid rgba(255,255,255,.74);box-shadow:0 18px 38px rgba(70,63,134,.07);
  opacity:.72;transition:transform 230ms var(--hero3d-spring),opacity 200ms var(--hero3d-ease);
}
.hero3d .hero3d-feature .hero3d-surface{
  overflow:hidden;
  background:radial-gradient(180px circle at var(--hero3d-gx) var(--hero3d-gy),rgba(255,255,255,.98),transparent 48%),linear-gradient(145deg,rgba(255,255,255,.96),rgba(249,248,253,.89));
  border:1px solid rgba(255,255,255,.98);box-shadow:0 24px 48px rgba(59,55,111,.12),inset 0 1px 0 #fff;
  transition:transform 650ms var(--hero3d-ease),box-shadow 220ms var(--hero3d-ease),filter 220ms var(--hero3d-ease);
}
.hero3d .hero3d-feature .hero3d-surface::before{content:"";position:absolute;inset:0;background:linear-gradient(140deg,rgba(255,255,255,.92),transparent 37%);opacity:.55;pointer-events:none}
.hero3d .hero3d-feature .hero3d-content{
  position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;
}
.hero3d .hero3d-feature .hero3d-ico{
  width:68px;height:68px;margin-bottom:13px;display:grid;place-items:center;border-radius:22px 30px 22px 22px;
  font-size:33px;font-weight:700;filter:drop-shadow(0 7px 9px rgba(59,55,111,.12));clip-path:var(--hero3d-squircle);-webkit-clip-path:var(--hero3d-squircle);
}
.hero3d .hero3d-feature b{font-size:22px;color:#2D3155;font-weight:600;line-height:1}
.hero3d .hero3d-feature:hover .hero3d-surface{
  transform:translateY(-7px) scale(1.035) rotateX(calc(var(--hero3d-my)*-2deg)) rotateY(calc(var(--hero3d-mx)*2deg));
  box-shadow:0 34px 58px rgba(59,55,111,.16),inset 0 1px 0 #fff;
}
.hero3d .hero3d-feature:hover .hero3d-echo{transform:translate(17px,7px);opacity:.95}

.hero3d .hero3d-attendance{left:12%;top:11%;transform:translate(calc(var(--hero3d-mx)*-10px),calc(var(--hero3d-my)*-5px)) rotate(-7deg)}
.hero3d .hero3d-student{right:13%;top:7%;transform:translate(calc(var(--hero3d-mx)*10px),calc(var(--hero3d-my)*-5px)) rotate(7deg)}
.hero3d .hero3d-reports{right:5.5%;top:38%;width:178px;height:174px;transform:translate(calc(var(--hero3d-mx)*12px),calc(var(--hero3d-my)*2px)) rotate(2deg)}
.hero3d .hero3d-schedule{right:18%;bottom:5%;width:190px;height:180px;transform:translate(calc(var(--hero3d-mx)*8px),calc(var(--hero3d-my)*10px)) rotate(4deg)}
.hero3d .hero3d-communication{left:34%;bottom:-1%;width:196px;height:186px;transform:translate(calc(var(--hero3d-mx)*-5px),calc(var(--hero3d-my)*11px)) rotate(-3deg)}
.hero3d .hero3d-fees{left:6%;bottom:14%;width:186px;height:178px;transform:translate(calc(var(--hero3d-mx)*-11px),calc(var(--hero3d-my)*8px)) rotate(7deg)}

.hero3d .hero3d-attendance .hero3d-surface{box-shadow:0 24px 50px rgba(67,191,180,.15), inset 0 1px 0 #fff}
.hero3d .hero3d-attendance .hero3d-echo{background:rgba(126,231,220,.22)}
.hero3d .hero3d-attendance .hero3d-ico{background:#DFF9F4;color:#2ABEA9}
.hero3d .hero3d-student .hero3d-echo{background:rgba(163,144,245,.21)} .hero3d .hero3d-student .hero3d-ico{background:#EEE8FF;color:#8A4FE9}
.hero3d .hero3d-reports .hero3d-echo{background:rgba(145,126,238,.20)} .hero3d .hero3d-reports .hero3d-ico{background:#EEE9FF;color:#7A5CEA}
.hero3d .hero3d-schedule .hero3d-echo{background:rgba(102,188,251,.20)} .hero3d .hero3d-schedule .hero3d-ico{background:#EAF7FF;color:#28A9E7}
.hero3d .hero3d-communication .hero3d-echo{background:rgba(142,121,236,.19)} .hero3d .hero3d-communication .hero3d-ico{background:#EEE9FF;color:#6E56D9}
.hero3d .hero3d-fees .hero3d-echo{background:rgba(247,167,92,.17)} .hero3d .hero3d-fees .hero3d-ico{background:#FFF0E1;color:#F08B39}

.hero3d .hero3d-person{position:relative;width:42px;height:42px}
.hero3d .hero3d-person::before{content:"";position:absolute;left:50%;top:1px;transform:translateX(-50%);width:18px;height:18px;border-radius:50%;background:currentColor}
.hero3d .hero3d-person::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:38px;height:20px;border-radius:20px 20px 10px 10px;background:currentColor}
.hero3d .hero3d-bars{display:flex;align-items:flex-end;gap:5px;height:42px}
.hero3d .hero3d-bars i{display:block;width:10px;border-radius:6px 6px 3px 3px;background:currentColor}
.hero3d .hero3d-bars i:nth-child(1){height:18px}.hero3d .hero3d-bars i:nth-child(2){height:30px}.hero3d .hero3d-bars i:nth-child(3){height:42px}
.hero3d .hero3d-coins{display:grid;gap:3px}
.hero3d .hero3d-coins i{display:block;width:48px;height:13px;border-radius:50%;background:linear-gradient(#FFB36C,#F18A37);box-shadow:inset 0 2px 0 rgba(255,255,255,.45),0 3px 5px rgba(220,119,38,.15)}
.hero3d .hero3d-chat{position:relative;width:44px;height:34px;border-radius:11px;background:currentColor}
.hero3d .hero3d-chat::after{content:"";position:absolute;left:8px;bottom:-8px;border:8px solid transparent;border-top-color:currentColor;border-left:0}
.hero3d .hero3d-chat span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:4px}
.hero3d .hero3d-chat span i{width:4px;height:4px;background:white;border-radius:50%}
.hero3d .hero3d-calendar{position:relative;width:45px;height:45px;border-radius:10px;background:currentColor}
.hero3d .hero3d-calendar::before{content:"";position:absolute;left:6px;right:6px;top:9px;height:4px;background:rgba(255,255,255,.9);border-radius:5px}
.hero3d .hero3d-calendar::after{content:"✓";position:absolute;inset:14px 0 0;display:grid;place-items:center;color:white;font-size:26px;font-weight:700}
.hero3d .hero3d-calendar.hero3d-grid::after{content:"";inset:17px 8px 8px;background:radial-gradient(circle,#fff 0 2.6px,transparent 3px) 0 0/13px 13px}

.hero3d .hero3d-glowball{position:absolute;border-radius:50%;z-index:11;pointer-events:none;box-shadow:0 10px 24px rgba(68,62,150,.18),inset 0 3px 5px rgba(255,255,255,.75)}
.hero3d .hero3d-gb1{left:8%;top:36%;width:48px;height:48px;background:radial-gradient(circle at 35% 30%,#fff,#8DAAFF 42%,#6676E4 76%)}
.hero3d .hero3d-gb2{right:11%;top:29%;width:27px;height:27px;background:radial-gradient(circle at 35% 30%,#fff,#FFD8BA 44%,#F5A76F 78%)}
.hero3d .hero3d-gb3{right:10%;bottom:28%;width:34px;height:34px;background:radial-gradient(circle at 35% 30%,#fff,#AFA2FF 44%,#7667E9 78%)}
.hero3d .hero3d-gb4{left:25%;bottom:17%;width:28px;height:28px;background:radial-gradient(circle at 35% 30%,#fff,#C8B7FF 44%,#8A78E9 78%)}

@keyframes hero3d-floatA{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes hero3d-floatB{0%,100%{translate:0 0}50%{translate:4px 6px}}
.hero3d .hero3d-attendance{animation:hero3d-floatA 8s ease-in-out infinite}
.hero3d .hero3d-student{animation:hero3d-floatB 9s ease-in-out infinite}
.hero3d .hero3d-reports{animation:hero3d-floatA 10s ease-in-out infinite reverse}
.hero3d .hero3d-schedule{animation:hero3d-floatB 9.5s ease-in-out infinite reverse}
.hero3d .hero3d-communication{animation:hero3d-floatA 11s ease-in-out infinite}
.hero3d .hero3d-fees{animation:hero3d-floatB 8.5s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.hero3d .hero3d-feature{animation:none!important}}

/* ===== Signature choreography polish ===== */
.hero3d .hero3d-center-stack{
  will-change: transform, filter;
}
.hero3d .hero3d-center-stack::after{
  content:"";
  position:absolute;
  inset:-28px;
  border-radius:120px;
  pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(126,116,232,.16),rgba(126,116,232,0) 68%);
  opacity:0;
  transform:scale(.84);
  filter:blur(12px);
  transition:
    opacity 220ms var(--hero3d-ease),
    transform 420ms var(--hero3d-spring);
  z-index:-1;
}
.hero3d .hero3d-center-stack:hover::after{
  opacity:.55;
  transform:scale(1);
}
.hero3d .hero3d-center-stack:hover{
  filter:drop-shadow(0 38px 38px rgba(69,60,145,.11));
}
.hero3d .hero3d-center-stack.hero3d-choreo{
  animation:hero3d-centerMagneticPulse 1280ms var(--hero3d-ease) both;
}
@keyframes hero3d-centerMagneticPulse{
  0%   {scale:1; filter:drop-shadow(0 32px 32px rgba(59,55,111,.08))}
  8%   {scale:.982; filter:drop-shadow(0 22px 28px rgba(59,55,111,.07))}
  25%  {scale:1.022; filter:drop-shadow(0 44px 42px rgba(91,80,190,.14))}
  72%  {scale:1.008; filter:drop-shadow(0 38px 36px rgba(59,55,111,.11))}
  100% {scale:1; filter:drop-shadow(0 32px 32px rgba(59,55,111,.08))}
}
.hero3d .hero3d-center-stack.hero3d-choreo::after{
  animation:hero3d-centerAura 1280ms var(--hero3d-ease) both;
}
@keyframes hero3d-centerAura{
  0%{opacity:0;transform:scale(.78)}
  16%{opacity:.72;transform:scale(1.08)}
  58%{opacity:.34;transform:scale(1.22)}
  100%{opacity:0;transform:scale(1.34)}
}

/* During the global orbit, JS temporarily disables the idle bob.
   The card itself keeps its original hover/material behavior. */
.hero3d .hero3d-feature.hero3d-orbiting{
  animation:none!important;
  will-change:translate,transform,filter;
  z-index:16;
}
.hero3d .hero3d-feature.hero3d-orbiting .hero3d-surface{
  box-shadow:
    0 32px 58px rgba(59,55,111,.15),
    inset 0 1px 0 #fff;
}

/* Brief luminous travel sheen while orbiting */
.hero3d .hero3d-feature.hero3d-orbiting .hero3d-surface::after{
  content:"";
  position:absolute;
  inset:-35%;
  background:linear-gradient(115deg,
    transparent 38%,
    rgba(255,255,255,.72) 48%,
    rgba(255,255,255,.18) 54%,
    transparent 64%);
  transform:translateX(-90%) rotate(8deg);
  animation:hero3d-travelSheen 720ms var(--hero3d-ease) 120ms both;
  pointer-events:none;
}
@keyframes hero3d-travelSheen{
  from{transform:translateX(-90%) rotate(8deg)}
  to{transform:translateX(90%) rotate(8deg)}
}

/* Central front face gets a very subtle press/light response */
.hero3d .hero3d-layer-front{
  transition:
    transform 260ms var(--hero3d-ease),
    box-shadow 320ms var(--hero3d-ease),
    filter 260ms var(--hero3d-ease);
}
.hero3d .hero3d-center-stack:hover .hero3d-layer-front{
  box-shadow:
    0 44px 86px rgba(66,58,132,.18),
    inset 0 1px 0 #fff,
    inset 0 -1px 0 rgba(59,55,111,.04);
}


/* Laravel integration only. Layout coordinates stay in the reference artboard. */
.heroSceneWrapper { display:flex; align-items:center; min-width:0; }
.hero3d { position:relative; width:100%; min-width:0; aspect-ratio:1440 / 940; isolation:isolate; overflow:hidden; container-type:inline-size; direction:rtl; font-family:Alexandria,system-ui,sans-serif; }
.hero3d .hero3d-stage { position:absolute; left:0; top:0; width:1440px; height:940px; overflow:hidden; transform-origin:0 0; transform:scale(var(--hero3d-scale,.4)); }
@supports (transform:scale(calc(100cqw / 1440px))) { .hero3d .hero3d-stage { transform:scale(var(--hero3d-scale,calc(100cqw / 1440px))); } }
.hero3d .hero3d-center-logo { aspect-ratio:912 / 348; overflow:hidden; }
.hero3d .hero3d-scene .hero3d-center-stack:focus-visible { outline:3px solid #716ba0; outline-offset:12px; border-radius:92px; }
.hero3d .hero3d-logo-fallback { display:none; fill:#3B376F; font:700 250px Alexandria,sans-serif; }
.hero3d.has-logo-error .hero3d-logo-fallback { display:block; }
.hero3d.has-logo-error .hero3d-center-logo image { display:none; }
.hero3d.is-paused *, .hero3d.is-paused *::before, .hero3d.is-paused *::after { animation-play-state:paused!important; }
.hero3d.has-webgl-error .hero3d-canvas { visibility:hidden; }
@media (max-width:1199px) { .heroSceneWrapper { justify-content:center; margin-top:24px; } .hero3d { max-width:760px; } }
@media (max-width:575px) {
  .hero3d { aspect-ratio:1260 / 940; }
  .hero3d .hero3d-stage { left:calc(-90px * var(--hero3d-scale,.28)); }
  .hero3d .hero3d-feature b { font-size:36px; }
  .hero3d .hero3d-center-copy p { font-size:24px; }
}
@media (prefers-reduced-motion:reduce) { .hero3d *, .hero3d *::before, .hero3d *::after { animation:none!important; transition:none!important; } }
