/* Knowley Liquid Glass layer: translucent depth, gold light, and calm motion. */
:root {
  --glass-tint: rgba(255,255,255,.045);
  --glass-tint-strong: rgba(255,255,255,.075);
  --glass-edge: rgba(255,255,255,.14);
  --glass-edge-hot: rgba(242,201,30,.38);
  --glass-shadow: 0 24px 72px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.075);
  --glass-blur: 22px;
  --glass-ease: cubic-bezier(.16,1,.3,1);
}

body.custom-cursor-enabled,
body.custom-cursor-enabled * { cursor: none !important; }
body.custom-cursor-enabled :is(input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="color"]), textarea, [contenteditable="true"], [role="textbox"]) { cursor: text !important; }
.custom-cursor {
  position: fixed;
  z-index: 10000;
  top: 0;
  left: 0;
  width: 30px;
  height: 30px;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(var(--cursor-x, -50px), var(--cursor-y, -50px), 0) translate(-50%, -50%);
  transition: opacity .18s ease;
  will-change: transform;
}
.custom-cursor.is-visible { opacity: 1; }
.custom-cursor.is-suspended { opacity: 0; }
.custom-cursor__ring {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255,226,89,.82);
  border-radius: 50%;
  background: rgba(242,201,30,.045);
  box-shadow: 0 0 20px rgba(242,201,30,.16), inset 0 0 12px rgba(242,201,30,.045);
  transition: transform .28s cubic-bezier(.16,1,.3,1), background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.custom-cursor__dot {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #ffe259;
  box-shadow: 0 0 9px rgba(255,226,89,.7);
  transform: translate(-50%, -50%);
  transition: transform .2s ease, opacity .2s ease;
}
.custom-cursor.is-hovering .custom-cursor__ring {
  border-color: rgba(255,226,89,.98);
  background: rgba(242,201,30,.17);
  box-shadow: 0 0 28px rgba(242,201,30,.27), inset 0 0 14px rgba(242,201,30,.08);
  transform: scale(1.42);
}
.custom-cursor.is-hovering .custom-cursor__dot { opacity: 0; transform: translate(-50%, -50%) scale(.3); }
.custom-cursor.is-pressed .custom-cursor__ring { transform: scale(.78); }
.custom-cursor.is-pressed.is-hovering .custom-cursor__ring { transform: scale(1.12); }

@supports (backdrop-filter: blur(1px)) {
  .home-page .site-header,
  .document-page .navbar,
  .admin-page .admin-navbar,
  .home-page .quiz-preview,
  .home-page .feature-card,
  .home-page .stat-block,
  .home-page .category-list li,
  .home-page .download-card,
  .home-page .store-card,
  .document-page .policy-header,
  .document-page .policy-content,
  .document-page .support-card,
  .document-page .deletion-box,
  .document-page .policy-table-wrapper,
  .document-page .compliance-badge,
  .document-page .lang-switch,
  .document-page .mobile-nav.open,
  .error-page .not-found__art::before,
  .profile-page .card,
  .profile-page .stat-item,
  .profile-page .store-btn,
  .admin-page .login-card,
  .admin-page .stat-card,
  .admin-page .analysis-panel,
  .admin-page .pagination-bar,
  .admin-page .modal-card,
  .admin-page .empty-state,
  .admin-page .btn-action,
  .admin-page .btn-sm-action {
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(145%);
    backdrop-filter: blur(var(--glass-blur)) saturate(145%);
  }
}

/* Home and 404: soft gold light behind transparent black glass. */
.home-page::after {
  position: fixed;
  z-index: 0;
  inset: -18vh -10vw;
  background:
    radial-gradient(ellipse at 77% 17%, rgba(242,201,30,.075), transparent 31%),
    radial-gradient(ellipse at 17% 78%, rgba(242,201,30,.045), transparent 34%);
  content: '';
  opacity: .9;
  pointer-events: none;
  animation: glass-light-drift 26s ease-in-out infinite alternate;
}
.home-page .site-header {
  border-bottom-color: rgba(255,255,255,.13);
  background: linear-gradient(110deg, rgba(16,16,16,.78), rgba(8,8,8,.56));
  box-shadow: 0 10px 42px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.06);
}
.home-page .quiz-preview {
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(145deg, rgba(35,35,35,.76), rgba(13,13,13,.66));
  box-shadow: 0 34px 96px rgba(0,0,0,.47), inset 0 1px 0 rgba(255,255,255,.09);
}
.home-page .feature-card,
.home-page .stat-block,
.home-page .category-list li,
.home-page .store-card {
  border-color: rgba(255,255,255,.13);
  background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.025));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045);
}
.home-page .feature-card--dark {
  border-color: rgba(255,225,93,.72);
  color: #111;
  background: linear-gradient(145deg, rgba(255,224,77,.94), rgba(210,166,12,.78));
  box-shadow: 0 20px 54px rgba(242,201,30,.12), inset 0 1px 0 rgba(255,255,255,.5);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .home-page .feature-card:not(.feature-card--dark):hover,
  .home-page .category-list li:hover,
  .home-page .stat-block:hover,
  .home-page .store-card:hover { background: linear-gradient(145deg, rgba(242,201,30,.105), rgba(255,255,255,.035)); }
  .home-page .feature-card--dark:hover { background: linear-gradient(145deg, rgba(255,229,105,.98), rgba(222,180,23,.86)); }
}
.home-page .feature-card--dark p { color: rgba(12,11,7,.76); }
.home-page .stat-block { background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); }
.home-page .download-card {
  border-color: rgba(255,255,255,.15);
  background: radial-gradient(ellipse at 85% 5%, rgba(242,201,30,.14), transparent 38%), linear-gradient(145deg, rgba(31,31,31,.79), rgba(12,12,12,.69));
  box-shadow: var(--glass-shadow);
}
.home-page .store-card { box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
.home-page .site-footer { background: linear-gradient(180deg, rgba(12,12,12,.87), rgba(6,6,6,.96)); }
.home-page .feature-card,
.home-page .stat-block,
.home-page .category-list li,
.home-page .store-card,
.home-page .quiz-preview,
.home-page .site-header { transition-timing-function: var(--glass-ease); }

/* Policy and support pages. */
.document-page::after {
  position: fixed;
  z-index: -1;
  inset: 0;
  background: radial-gradient(ellipse at 92% 42%, rgba(242,201,30,.035), transparent 32%);
  content: '';
  pointer-events: none;
}
.document-page .navbar {
  border-bottom-color: rgba(255,255,255,.13);
  background: linear-gradient(110deg, rgba(18,18,18,.75), rgba(8,8,8,.58));
  box-shadow: 0 12px 40px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.055);
}
.document-page .policy-header,
.document-page .policy-content,
.document-page .support-card,
.document-page .deletion-box,
.document-page .policy-table-wrapper {
  border-color: rgba(255,255,255,.14);
  background-color: rgba(22,22,22,.54);
  box-shadow: var(--glass-shadow);
}
.document-page .policy-header {
  background-image: radial-gradient(ellipse at 100% 0, rgba(242,201,30,.12), transparent 46%), linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.018));
}
.document-page .policy-header::before { background: linear-gradient(90deg, #f2c91e, #fff0a0, transparent); }
.document-page .policy-content { background-image: linear-gradient(150deg, rgba(255,255,255,.045), transparent 36%); }
.document-page .support-card,
.document-page .deletion-box { background-image: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.018)); }
.document-page .faq-item {
  border-color: rgba(255,255,255,.13);
  background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.02));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045);
  transition: transform .4s var(--glass-ease), border-color .3s ease, background .3s ease, box-shadow .4s var(--glass-ease);
}
.document-page .faq-item:hover { border-color: rgba(242,201,30,.38); }
.document-page .faq-answer {
  display: block;
  max-height: 0;
  overflow: hidden;
  padding-bottom: 0;
  opacity: 0;
  transition: max-height .42s var(--glass-ease), padding .32s ease, opacity .3s ease;
}
.document-page .faq-item.open .faq-answer { max-height: 320px; padding-bottom: 16px; opacity: 1; }
.document-page .policy-table-wrapper { background: rgba(14,14,14,.52); }
.document-page .policy-table th { background: rgba(255,255,255,.07); }
.document-page .compliance-badge { background: rgba(255,255,255,.055); }
.document-page .compliance-badge.gold { background: rgba(242,201,30,.1); }
.document-page .lang-switch { background: rgba(4,4,4,.48); box-shadow: inset 0 1px 0 rgba(255,255,255,.07); }
.document-page .mobile-nav.open { background: rgba(12,12,12,.82); }
.document-page .footer { background: linear-gradient(180deg, rgba(12,12,12,.7), rgba(7,7,7,.95)); }
.document-page .navbar__link { position: relative; }
.document-page .navbar__link::after {
  position: absolute;
  right: 0;
  bottom: -7px;
  left: 0;
  height: 1px;
  transform: scaleX(0);
  transform-origin: left center;
  background: linear-gradient(90deg, #f2c91e, transparent);
  content: '';
  transition: transform .3s var(--glass-ease);
}
.document-page .navbar__link:hover::after { transform: scaleX(1); }

/* Error, profile, and admin surfaces share the same glass material. */
.error-page .not-found__art::before {
  border-color: rgba(255,255,255,.18);
  background: radial-gradient(circle at 42% 38%, rgba(242,201,30,.16), rgba(255,255,255,.025) 46%, transparent 72%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 22px 80px rgba(0,0,0,.22);
  animation: glass-orbit 30s linear infinite;
}
.profile-page::after,
.admin-page::after {
  position: fixed;
  z-index: -1;
  inset: -20vh -12vw;
  background: radial-gradient(ellipse at 50% 0, rgba(242,201,30,.105), transparent 37%), radial-gradient(ellipse at 100% 100%, rgba(255,255,255,.035), transparent 35%);
  content: '';
  pointer-events: none;
  animation: glass-light-drift 24s ease-in-out infinite alternate;
}
.profile-page .card,
.admin-page .login-card,
.admin-page .analysis-panel,
.admin-page .stat-card,
.admin-page .pagination-bar,
.admin-page .modal-card,
.admin-page .empty-state {
  border-color: rgba(255,255,255,.15);
  background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  box-shadow: var(--glass-shadow);
}
.profile-page .card { border-color: rgba(242,201,30,.28); }
.profile-page .stat-item,
.profile-page .store-btn { border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.045); }
.profile-page .avatar { box-shadow: 0 0 0 6px rgba(242,201,30,.08), 0 12px 38px rgba(242,201,30,.16); }
.admin-page .admin-navbar { border-bottom: 1px solid rgba(255,255,255,.13); background: rgba(10,10,10,.72); box-shadow: 0 12px 40px rgba(0,0,0,.24); }
.admin-page .stat-card { border-color: rgba(255,255,255,.13); }
.admin-page .modal-overlay { background: rgba(0,0,0,.58); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.admin-page .modal-card { background-color: rgba(17,17,19,.82); }
.admin-page input,
.admin-page select,
.admin-page textarea { border-color: rgba(255,255,255,.13); background-color: rgba(255,255,255,.045); transition: border-color .25s ease, background-color .25s ease, box-shadow .25s ease; }
.admin-page input:focus,
.admin-page select:focus,
.admin-page textarea:focus { border-color: rgba(242,201,30,.58); box-shadow: 0 0 0 4px rgba(242,201,30,.09); }
.admin-page table tbody tr { transition: background-color .24s ease; }
.admin-page table tbody tr:hover { background: rgba(255,255,255,.035); }

/* Shared interaction and reveal language for every non-landing page. */
.document-page .support-card,
.document-page .deletion-box,
.profile-page .card,
.profile-page .stat-item,
.admin-page .login-card,
.admin-page .stat-card,
.admin-page .analysis-panel,
.admin-page .btn-action,
.admin-page .btn-sm-action,
.admin-page .pagination-bar,
.admin-page .store-btn {
  transition: transform .44s var(--glass-ease), border-color .32s ease, background-color .32s ease, box-shadow .44s var(--glass-ease);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .document-page .support-card:hover,
  .document-page .deletion-box:hover,
  .document-page .faq-item:hover,
  .profile-page .stat-item:hover,
  .admin-page .stat-card:hover,
  .admin-page .btn-action:hover,
  .admin-page .btn-sm-action:hover,
  .admin-page .store-btn:not(.store-btn--disabled):hover {
    transform: translateY(-4px) scale(1.012);
    border-color: var(--glass-edge-hot);
    box-shadow: 0 20px 48px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.11);
  }
  .document-page .policy-content a:not(.btn),
  .home-page .desktop-nav a,
  .home-page .footer-group a { transition: color .22s ease, text-shadow .22s ease; }
  .home-page .desktop-nav a:hover,
  .home-page .footer-group a:hover { text-shadow: 0 0 18px rgba(242,201,30,.36); }
}
.button,
.document-page button,
.profile-page button,
.admin-page button,
.store-btn { -webkit-tap-highlight-color: transparent; }
.document-page :focus-visible,
.profile-page :focus-visible,
.admin-page :focus-visible { outline-color: #f2c91e; outline-offset: 3px; }

/* Keep the landing page's animated canvas from forcing glass layers to repaint while scrolling. */
.home-page .site-header,
.home-page .feature-card,
.home-page .stat-block,
.home-page .category-list li,
.home-page .download-card,
.home-page .store-card {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.home-page .site-header {
  background: linear-gradient(110deg, rgba(16,16,16,.94), rgba(8,8,8,.9));
}
.home-page .feature-card:not(.feature-card--dark),
.home-page .stat-block,
.home-page .category-list li,
.home-page .store-card {
  background: linear-gradient(145deg, rgba(32,32,30,.94), rgba(15,15,14,.9));
}

.site-motion-ready .site-motion-reveal {
  opacity: 0;
  transform: translate3d(0,22px,0) scale(.988);
  filter: blur(4px);
  transition: opacity .76s var(--glass-ease), transform .76s var(--glass-ease), filter .76s var(--glass-ease);
  transition-delay: var(--motion-delay, 0ms);
  will-change: opacity, transform, filter;
}
.site-motion-ready .site-motion-reveal.site-motion-visible { opacity: 1; transform: none; filter: none; will-change: auto; }
.site-motion-ready.document-page .support-card.site-motion-visible:hover,
.site-motion-ready.document-page .deletion-box.site-motion-visible:hover,
.site-motion-ready.document-page .faq-item.site-motion-visible:hover,
.site-motion-ready.profile-page .stat-item.site-motion-visible:hover,
.site-motion-ready.admin-page .stat-card.site-motion-visible:hover,
.site-motion-ready.admin-page .btn-action.site-motion-visible:hover,
.site-motion-ready.admin-page .btn-sm-action.site-motion-visible:hover {
  transform: translate3d(0,-4px,0) scale(1.012);
}

@keyframes glass-light-drift {
  from { transform: translate3d(-1.2%,0,0) scale(.98); }
  to { transform: translate3d(1.2%,1.5%,0) scale(1.03); }
}
@keyframes glass-orbit { to { transform: rotate(360deg); } }
@media (max-width: 700px) {
  :root { --glass-blur: 15px; }
  .site-motion-ready .site-motion-reveal { transform: translate3d(0,15px,0) scale(.994); filter: blur(2px); }
}
@media (prefers-reduced-motion: reduce) {
  .custom-cursor,
  .custom-cursor__ring,
  .custom-cursor__dot { transition: none !important; }
  .home-page::after,
  .error-page .not-found__art::before,
  .profile-page::after,
  .admin-page::after { animation: none !important; }
  .site-motion-ready .site-motion-reveal,
  .site-motion-ready .site-motion-reveal.site-motion-visible { opacity: 1; transform: none; filter: none; transition: none; will-change: auto; }
  .document-page .support-card,
  .document-page .deletion-box,
  .document-page .faq-item,
  .profile-page .card,
  .profile-page .stat-item,
  .admin-page .login-card,
  .admin-page .stat-card,
  .admin-page .analysis-panel,
  .admin-page .btn-action,
  .admin-page .btn-sm-action,
  .admin-page .pagination-bar,
  .admin-page .store-btn { transition: none !important; }
  .document-page .support-card:hover,
  .document-page .deletion-box:hover,
  .document-page .faq-item:hover,
  .profile-page .stat-item:hover,
  .admin-page .stat-card:hover,
  .admin-page .btn-action:hover,
  .admin-page .btn-sm-action:hover,
  .admin-page .store-btn:not(.store-btn--disabled):hover { transform: none !important; }
  .document-page .faq-answer { transition: none; }
  .document-page .faq-item.open .faq-answer { max-height: 320px; padding-bottom: 16px; opacity: 1; }
}
