/* Frontend visual system: one semantic theme language across login, content and user pages. */
:where(.auth-page,.template-subpage,.user-dashboard){
  --ft-bg:#070b14;--ft-card:#101827;--ft-primary:#4f8cff;--ft-secondary:#40d7b3;
  --ft-text:#f5f7fb;--ft-sec:#8290a7;--ft-border:rgba(148,163,184,.16);
  --ft-accent:rgba(79,140,255,.13);--ft-radius:14px;
  background:var(--ft-bg);color:var(--ft-text);position:relative;isolation:isolate;
}
:where(.auth-page,.template-subpage,.user-dashboard)::before{
  content:"";position:fixed;z-index:-2;inset:0;pointer-events:none;opacity:.7;
  background:radial-gradient(circle at 14% 12%,color-mix(in srgb,var(--ft-primary) 15%,transparent),transparent 28%),radial-gradient(circle at 88% 84%,color-mix(in srgb,var(--ft-secondary) 12%,transparent),transparent 30%);
}
:where(.auth-page,.template-subpage,.user-dashboard)::after{
  content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;opacity:.28;
}

/* Login: intentionally asymmetrical and editorial instead of a generic centered card. */
.auth-page{display:block;padding:0;overflow-x:hidden;min-height:100vh}
.auth-shell{width:min(1180px,calc(100% - 48px));min-height:100vh;margin:auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);align-items:center;gap:clamp(36px,8vw,120px);padding:56px 0}
.auth-story{min-height:620px;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:12px 0}
.auth-brand{display:inline-flex;align-items:center;gap:12px;width:max-content;color:inherit;text-decoration:none;font-size:15px;font-weight:750;letter-spacing:.08em}
.auth-brand img{width:36px;height:36px;filter:drop-shadow(0 8px 20px color-mix(in srgb,var(--ft-primary) 32%,transparent))}
.auth-story-copy{position:relative;z-index:2;max-width:680px;padding:70px 0 110px}
.theme-kicker,.auth-mobile-kicker{display:block;color:var(--ft-primary);font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px}
.auth-story h1{font-size:clamp(48px,6.1vw,92px);line-height:.98;letter-spacing:-.065em;font-weight:850;margin:0;max-width:780px}
.auth-story h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--ft-primary) 82%,var(--ft-text));text-stroke:1.5px color-mix(in srgb,var(--ft-primary) 82%,var(--ft-text))}
.auth-story-copy p{font-size:16px;line-height:1.9;color:var(--ft-sec);max-width:480px;margin:26px 0 0}
.auth-points{display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:2}
.auth-points span{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ft-border);background:color-mix(in srgb,var(--ft-card) 72%,transparent);padding:9px 13px;border-radius:999px;color:var(--ft-sec);font-size:12px;backdrop-filter:blur(12px)}
.auth-points span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ft-secondary);box-shadow:0 0 10px var(--ft-secondary)}
.auth-card.login-box{max-width:none;width:100%;padding:46px 42px;border-color:var(--ft-border);border-radius:var(--ft-radius);background:color-mix(in srgb,var(--ft-card) 92%,transparent);box-shadow:0 36px 100px rgba(0,0,0,.23);backdrop-filter:blur(24px)}
.auth-card.login-box::before{height:2px;background:linear-gradient(90deg,transparent,var(--ft-primary),var(--ft-secondary),transparent)}
.auth-card .login-header{text-align:left;margin-bottom:32px}
.auth-card .login-header h1{font-size:30px;letter-spacing:-.045em;margin-bottom:10px;color:var(--ft-text)}
.auth-card .login-header p{color:var(--ft-sec);line-height:1.6}
.auth-mobile-kicker{display:none}
.auth-card .form-label{color:var(--ft-sec);letter-spacing:.02em}
.auth-card .form-label small{float:right;color:var(--ft-sec);font-weight:400;opacity:.72}
.auth-card .form-input{background:color-mix(in srgb,var(--ft-bg) 72%,transparent);border-color:var(--ft-border);border-radius:var(--ft-radius);color:var(--ft-text);min-height:50px}
.auth-card .form-input:focus{border-color:var(--ft-primary);box-shadow:0 0 0 3px var(--ft-accent)}
.auth-card .btn-primary{min-height:52px;border-radius:var(--ft-radius);background:linear-gradient(120deg,var(--ft-primary),var(--ft-secondary));box-shadow:0 14px 34px color-mix(in srgb,var(--ft-primary) 25%,transparent)}
.auth-card .login-footer{border-color:var(--ft-border)}
.auth-card .login-footer a{color:var(--ft-sec)}
.auth-visual{position:absolute;right:4%;top:22%;width:min(34vw,420px);aspect-ratio:1;opacity:.62;pointer-events:none}
.auth-visual::before,.auth-visual::after{content:"";position:absolute;border:1px solid var(--ft-border);border-radius:50%;inset:8%;transform:rotate(-18deg)}
.auth-visual::after{inset:25%;border-color:color-mix(in srgb,var(--ft-primary) 54%,transparent);box-shadow:0 0 70px color-mix(in srgb,var(--ft-primary) 16%,transparent)}
.auth-visual i{position:absolute;display:block;width:9px;height:9px;background:var(--ft-secondary);border-radius:50%;box-shadow:0 0 18px var(--ft-secondary)}
.auth-visual i:nth-child(1){top:8%;left:46%}.auth-visual i:nth-child(2){top:40%;right:2%}.auth-visual i:nth-child(3){bottom:11%;left:31%}.auth-visual i:nth-child(4){top:45%;left:16%}.auth-visual i:nth-child(5){right:25%;bottom:27%;background:var(--ft-primary)}

/* Shared content pages. The family controls composition, typography and surface treatment. */
.template-subpage{--bg:var(--ft-bg);--text:var(--ft-text);--primary:var(--ft-primary);--secondary:var(--ft-secondary);font-family:inherit}
.template-subpage .t-nav{background:color-mix(in srgb,var(--ft-bg) 82%,transparent);border-color:var(--ft-border)}
.template-subpage .t-nav-logo{font-family:inherit;text-transform:none}
.template-subpage .t-nav-logo svg{color:var(--ft-primary)}
.template-subpage .t-page-header{max-width:1280px;margin:0 auto;text-align:left;padding:158px 7vw 86px}
.template-subpage .t-page-header h1{max-width:780px;font-size:clamp(42px,6vw,82px);letter-spacing:-.055em;line-height:1.02}
.template-subpage .t-page-header p{margin:20px 0 0;max-width:580px;font-size:17px}
.template-subpage .t-breadcrumbs{justify-content:flex-start}
.template-subpage .t-grid{max-width:1280px}
.template-subpage .t-card{border-color:var(--ft-border);border-radius:var(--ft-radius);background:color-mix(in srgb,var(--ft-card) 88%,transparent)}
.template-subpage .t-card-icon{border-radius:var(--ft-radius);color:var(--ft-primary);background:var(--ft-accent)}
.template-subpage .t-btn{border-radius:var(--ft-radius)}
.template-subpage .t-footer{border-color:var(--ft-border);background:color-mix(in srgb,var(--ft-card) 36%,transparent)}

/* Dashboard finishing layer. Five layouts are mapped intentionally across twenty themes. */
.user-dashboard{--bg:var(--ft-bg);--card:var(--ft-card);--primary:var(--ft-primary);--secondary:var(--ft-secondary);--text:var(--ft-text);--sec:var(--ft-sec);overflow-x:hidden}
.user-dashboard .theme-atmosphere{position:fixed;z-index:-1;inset:0;pointer-events:none}
.dashboard-theme-label{position:fixed;z-index:89;right:22px;bottom:18px;display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--ft-border);border-radius:999px;background:color-mix(in srgb,var(--ft-card) 84%,transparent);backdrop-filter:blur(14px);pointer-events:none}
.dashboard-theme-label span{font-size:8px;letter-spacing:.16em;color:var(--ft-primary);font-weight:800}
.dashboard-theme-label strong{font-size:10px;color:var(--ft-sec);font-weight:600}
.user-dashboard :where(.sidebar,.topbar,.mobile-nav,.stat-card,.panel,.section-panel,.link-card,.dropdown-menu){border-color:var(--ft-border)!important}
.user-dashboard :where(.stat-card,.panel,.section-panel,.link-card,.dropdown-menu){background:color-mix(in srgb,var(--ft-card) 94%,transparent)!important}
.user-dashboard :where(.stat-card,.panel,.section-panel,.link-card){box-shadow:0 18px 54px rgba(0,0,0,.08)}
.user-dashboard .theme-kicker{font-size:9px;margin:3px 0 0;color:var(--ft-primary)}
.user-dashboard .stat-card{position:relative;overflow:hidden}
.user-dashboard .stat-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--ft-primary),transparent);opacity:.55}
.user-dashboard .topbar-brand{display:flex;align-items:center;gap:12px}
.user-dashboard .topbar-brand::before{content:"";width:9px;height:9px;background:var(--ft-primary);box-shadow:0 0 18px var(--ft-primary);transform:rotate(45deg)}

/* Family motifs */
.family-data::after,.family-finance::after,.family-blueprint::after{background-image:linear-gradient(var(--ft-border) 1px,transparent 1px),linear-gradient(90deg,var(--ft-border) 1px,transparent 1px);background-size:42px 42px}
.family-cyber::after{background:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,var(--ft-primary) 5%,transparent) 4px);opacity:.42}
.family-cyber :where(.auth-card,.t-card,.stat-card,.section-panel){clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px))}
.family-cyber .auth-story h1,.family-esports .auth-story h1{text-transform:uppercase;letter-spacing:-.035em}
.family-cyber .auth-visual{border:1px solid var(--ft-primary);transform:rotate(45deg);border-radius:0}
.family-organic::after{background:radial-gradient(ellipse at 10% 30%,color-mix(in srgb,var(--ft-primary) 18%,transparent) 0 9%,transparent 9.5%),radial-gradient(ellipse at 90% 74%,color-mix(in srgb,var(--ft-secondary) 13%,transparent) 0 12%,transparent 12.5%)}
.family-organic :where(.auth-card,.t-card,.stat-card,.section-panel){border-radius:32px 10px 32px 10px!important}
.family-oriental::after{background-image:linear-gradient(90deg,transparent 49.8%,color-mix(in srgb,var(--ft-secondary) 18%,transparent) 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,color-mix(in srgb,var(--ft-secondary) 10%,transparent) 50%,transparent 50.2%);background-size:180px 180px}
.family-oriental .auth-story h1{letter-spacing:.02em;writing-mode:vertical-rl;max-height:430px;font-size:72px}
.family-oriental .auth-visual{border:1px solid var(--ft-secondary);border-radius:50%;width:330px;right:8%}
.family-hologram::after{background:repeating-radial-gradient(ellipse at 50% 110%,transparent 0 32px,color-mix(in srgb,var(--ft-primary) 12%,transparent) 33px 34px)}
.family-hologram .auth-visual{transform:perspective(500px) rotateX(64deg);border:1px solid var(--ft-primary);border-radius:50%;box-shadow:0 0 80px var(--ft-accent)}
.family-minimal::before{display:none}.family-minimal::after{background:linear-gradient(90deg,transparent 49.9%,rgba(0,0,0,.055) 50%,transparent 50.1%);opacity:1}
.family-minimal .auth-card{box-shadow:none!important;border-width:1px!important}.family-minimal .auth-story h1{font-weight:450}.family-minimal .auth-story h1 em{-webkit-text-stroke:1px var(--ft-text)}
.family-ocean::after{background:repeating-radial-gradient(ellipse at 15% 85%,transparent 0 36px,color-mix(in srgb,var(--ft-primary) 11%,transparent) 37px 38px);opacity:.55}
.family-ocean .auth-visual::before,.family-ocean .auth-visual::after{border-radius:44% 56% 62% 38%/53% 40% 60% 47%}
.family-luxury::after{inset:18px;border:1px solid color-mix(in srgb,var(--ft-primary) 22%,transparent);opacity:1}
.family-luxury .auth-card,.family-luxury .t-card{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ft-primary) 12%,transparent),0 30px 90px rgba(0,0,0,.3)!important}
.family-luxury .auth-story h1{font-weight:450;letter-spacing:-.02em}
.family-sport::after{background:linear-gradient(116deg,transparent 0 54%,color-mix(in srgb,var(--ft-primary) 10%,transparent) 54% 63%,transparent 63%),linear-gradient(116deg,transparent 0 68%,color-mix(in srgb,var(--ft-secondary) 8%,transparent) 68% 73%,transparent 73%)}
.family-sport :where(.auth-card,.t-card,.stat-card){transform:skewX(-1.5deg)}
.family-sport .auth-story h1{font-style:italic;text-transform:uppercase}
.family-journal::after{background-image:radial-gradient(color-mix(in srgb,var(--ft-primary) 24%,transparent) .8px,transparent .8px);background-size:18px 18px}
.family-journal .auth-card,.family-journal .t-card{box-shadow:6px 8px 0 color-mix(in srgb,var(--ft-primary) 10%,transparent)!important;transform:rotate(.25deg)}
.family-steam::after{background:repeating-radial-gradient(circle at 18% 48%,transparent 0 34px,color-mix(in srgb,var(--ft-primary) 10%,transparent) 35px 37px,transparent 38px 53px);opacity:.5}
.family-steam :where(.auth-card,.t-card,.stat-card){box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--ft-bg) 75%,transparent),0 20px 50px rgba(0,0,0,.2)!important}
.family-space::after{background-image:radial-gradient(#fff 0 1px,transparent 1.5px),radial-gradient(var(--ft-primary) 0 1px,transparent 1.5px);background-position:0 0,17px 23px;background-size:68px 68px,91px 91px;opacity:.35}
.family-space .auth-visual{border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--ft-secondary),var(--ft-primary) 35%,transparent 66%);filter:blur(.2px)}
.family-culinary::after{background:linear-gradient(90deg,color-mix(in srgb,var(--ft-primary) 9%,transparent) 0 24%,transparent 24% 76%,color-mix(in srgb,var(--ft-secondary) 7%,transparent) 76%)}
.family-culinary .auth-story h1{font-weight:500}.family-culinary .auth-card{border-radius:28px 4px 28px 4px!important}
.family-clinical::after{background-image:linear-gradient(color-mix(in srgb,var(--ft-primary) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ft-primary) 7%,transparent) 1px,transparent 1px);background-size:64px 64px}
.family-clinical .auth-card,.family-clinical .t-card{box-shadow:0 24px 70px rgba(7,142,180,.1)!important}
.family-academy::after{background:repeating-linear-gradient(0deg,transparent 0 34px,color-mix(in srgb,var(--ft-primary) 10%,transparent) 35px)}
.family-academy .auth-story h1{font-weight:500;letter-spacing:-.025em}.family-academy .auth-card{border-top:4px solid var(--ft-primary)!important}
.family-finance .auth-story h1{font-variant-numeric:tabular-nums}.family-finance .auth-visual{border-radius:0;clip-path:polygon(0 84%,19% 64%,35% 72%,52% 36%,68% 47%,100% 5%,100% 100%,0 100%);background:linear-gradient(180deg,var(--ft-accent),transparent)}
.family-esports::after{background:linear-gradient(135deg,transparent 0 58%,color-mix(in srgb,var(--ft-primary) 12%,transparent) 58% 59%,transparent 59% 65%,color-mix(in srgb,var(--ft-secondary) 8%,transparent) 65% 66%,transparent 66%)}
.family-esports :where(.auth-card,.t-card,.stat-card){clip-path:polygon(0 0,92% 0,100% 12%,100% 100%,8% 100%,0 88%)}
.family-blueprint::after{opacity:.6;background-size:28px 28px}
.family-blueprint .auth-story h1{font-weight:500;letter-spacing:-.035em}.family-blueprint :where(.auth-card,.t-card,.stat-card){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ft-primary) 18%,transparent)!important}
.family-audio::after{background:repeating-linear-gradient(90deg,transparent 0 14px,color-mix(in srgb,var(--ft-primary) 7%,transparent) 15px 17px);mask-image:linear-gradient(to bottom,transparent 15%,#000 50%,transparent 85%)}
.family-audio .auth-visual{border-radius:50%;border:22px solid color-mix(in srgb,var(--ft-primary) 55%,transparent);box-shadow:inset 0 0 0 28px var(--ft-bg)}
.family-future::after{background-image:linear-gradient(color-mix(in srgb,var(--ft-primary) 9%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ft-secondary) 8%,transparent) 1px,transparent 1px);background-size:54px 54px;transform:perspective(500px) rotateX(55deg) scale(1.7);transform-origin:center bottom;top:45%}
.family-future .auth-visual{border-radius:0;clip-path:polygon(12% 0,88% 0,100% 12%,100% 88%,88% 100%,12% 100%,0 88%,0 12%);background:linear-gradient(135deg,var(--ft-accent),transparent)}

/* Family-specific navigation and page composition */
:where(.family-oriental,.family-luxury,.family-journal,.family-academy) .t-page-header{text-align:center}
:where(.family-oriental,.family-luxury,.family-journal,.family-academy) .t-page-header p{margin-left:auto;margin-right:auto}
:where(.family-oriental,.family-luxury,.family-journal,.family-academy) .t-breadcrumbs{justify-content:center}
:where(.family-cyber,.family-blueprint,.family-future) .t-nav-link{border-radius:0;text-transform:uppercase;letter-spacing:.08em}
:where(.family-minimal,.family-luxury) .t-nav-logo svg{display:none}
:where(.family-minimal,.family-luxury) .t-nav{height:76px;background:transparent}
:where(.family-sport,.family-esports) .t-card-icon{transform:rotate(-6deg)}

@media(max-width:840px){
  .auth-shell{width:min(100% - 28px,560px);display:block;padding:28px 0 36px}
  .auth-story{min-height:auto;padding:0 4px 28px}
  .auth-story-copy,.auth-visual,.auth-points{display:none}
  .auth-brand{margin-bottom:34px}
  .auth-card.login-box{padding:36px 26px}
  .auth-mobile-kicker{display:block}
  .family-oriental .auth-story h1{writing-mode:horizontal-tb}
  .template-subpage .t-page-header{text-align:left;padding:122px 24px 56px}
  .template-subpage .t-page-header h1{font-size:40px}
  .template-subpage .t-breadcrumbs{justify-content:flex-start}
  .dashboard-theme-label{display:none}
}
@media(max-width:520px){
  .auth-page{padding:0!important;align-items:initial!important}
  .auth-shell{width:100%;padding:20px 14px 28px}
  .auth-brand{margin:2px 8px 24px}
  .auth-card.login-box{margin:0;padding:32px 22px!important;border-radius:max(14px,var(--ft-radius))}
  .auth-card .login-header h1{font-size:27px}
  .captcha-img{width:94px!important}
  .user-dashboard .stat-row,.user-dashboard .hero-stats{gap:10px!important}
  .user-dashboard .stat-card{padding:17px 14px!important}
  .user-dashboard .stat-card-value{font-size:23px!important}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
