/* ================================================================
   portal-landing.css  —  StudyPath Brutalist Landing Page
   Custom styles only. Tailwind handles layout/spacing/typography.
   ================================================================ */

/* --- Scrollbar Hiding --- */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* --- Outlined Text (Black Stroke) --- */
.text-outline-thick {
  -webkit-text-stroke: 2px black;
  color: transparent;
  transition: color 0.4s ease, -webkit-text-stroke-color 0.4s ease;
}

/* Neural Path hover fill: outline fills with color on group hover */
.group:hover > .text-outline-thick,
.group:hover .text-outline-thick {
  color: #FF5722;
  -webkit-text-stroke-color: #FF5722;
}

/* --- Outlined Text (White Stroke — for dark sections) --- */
.text-outline-thick-white {
  -webkit-text-stroke: 2px white;
  color: transparent;
}

/* --- Seamless Grid Background --- */
.bg-seamless-grid {
  background-size: 40px 40px;
  background-image:
    linear-gradient(to right, rgba(0, 0, 0, 0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 1px, transparent 1px);
  background-color: #F4F4F0;
}

/* --- Keyframes --- */
@keyframes buildPath {
  0%   { opacity: 0; transform: scale(0.5); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes chargeBattery {
  0%   { height: 0%;   background-color: #FF5722; }
  50%  { height: 50%;  background-color: #FFC900; }
  100% { height: 100%; background-color: #23A094; }
}

/* --- Reveal Animation Base --- */
[data-reveal] {
  transition: all 1000ms cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
}

/* Rise (default) */
[data-reveal="rise"] {
  opacity: 0;
  transform: translateY(3rem);
}
[data-reveal="rise"].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Pop */
[data-reveal="pop"] {
  opacity: 0;
  transform: scale(0.95) translateY(2rem);
}
[data-reveal="pop"].is-visible {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* Slide Right */
[data-reveal="slide-right"] {
  opacity: 0;
  transform: translateX(-3rem);
}
[data-reveal="slide-right"].is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* --- LogicModal Slide Transitions --- */
.modal-list-view {
  transition: all 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
.modal-list-view.is-hidden {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}

.modal-detail-view {
  transition: all 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
.modal-detail-view.is-hidden {
  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
}

/* --- Conic Gradient Stats (can't do inline with Tailwind) --- */
.conic-70 {
  background: conic-gradient(#FF5722 0% 70%, #F4F4F0 70% 100%);
}
.conic-50 {
  background: conic-gradient(black 0% 50%, #F4F4F0 50% 100%);
}

/* --- Landing visibility integration (used by SM_Landing.sync + portal-landing.js) --- */
.sm-landing[aria-hidden="true"] {
  display: none;
}

/* Hide landing instantly when a session token was found at page load */
html.sm-has-session-preload body:not(.sm-public-landing) #publicLanding {
  display: none;
}

/* Hide landing when JS toggles it off */
body.sm-landing-hidden #publicLanding {
  display: none;
}

/* Prevent background scroll when landing is visible */
body.sm-public-landing {
  overflow: hidden;
}

/* Hide the app workspace behind the landing */
body.sm-public-landing .sm-app {
  opacity: 0;
  pointer-events: none;
}
