/* =========================================================================
   Threshold + sign-in pages — ported from TLCBase_2026/css/style.css so this
   site's front door and login match TLC Base exactly. Used by index.php and
   the auth pages (login, register, forgot, reset) via inc/auth_head.php.
   ========================================================================= */
:root{
  --navy:#29445F; --navy-2:#223c52; --navy-3:#16242f;
  --sage:#83C097; --sage-soft:#a0d2b1; --blue:#3085C6;
  --cream:#F6F1E8; --cream-dim:#E7E1D4;
  --fog:#B4C2CE; --fog-2:#8a9aa8;
  --hair:rgba(255,255,255,.10); --hair-2:rgba(255,255,255,.20);
  --field-line:rgba(255,255,255,.46);   /* form field borders: 3:1 against the page */
  --font:'Inter',ui-sans-serif,system-ui,-apple-system,Helvetica,Arial,sans-serif;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --mark:url("../img/TLC-Logo-2026.svg");
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font);color:#fff;min-height:100vh;overflow:hidden;position:relative;
  background:
    radial-gradient(880px 660px at 16% 12%, rgba(246,241,232,.10), transparent 58%),
    radial-gradient(960px 760px at 86% 86%, rgba(131,192,151,.13), transparent 60%),
    radial-gradient(1080px 800px at 50% 34%, rgba(48,133,198,.09), transparent 62%),
    radial-gradient(720px 520px at 50% 110%, rgba(246,241,232,.05), transparent 60%),
    linear-gradient(180deg,#2e4d68 0%, var(--navy-2) 52%, var(--navy-3) 100%);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
em{font-family:var(--serif);font-style:italic;font-weight:500;}

/* ---------- ATMOSPHERE ---------- */
.grain{position:fixed;inset:0;z-index:6;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:140px 140px;}
.vignette{position:fixed;inset:0;z-index:4;pointer-events:none;
  box-shadow:inset 0 0 260px 50px rgba(10,18,26,.55);}

/* ---------- VIEW SYSTEM ---------- */
.view{position:fixed;inset:0;display:flex;flex-direction:column;
  transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1), visibility .9s;}
.view-enter{opacity:1;align-items:center;justify-content:center;text-align:center;padding:64px 32px;}

/* ---------- LUMINOUS MARK: slow colour drift, no movement ---------- */
.mark-wrap{position:relative;display:inline-block;line-height:0;isolation:isolate;}
.mark-wrap .mark-img{display:block;width:100%;aspect-ratio:1/1;position:relative;z-index:1;
  background:var(--mark) center/contain no-repeat;
  filter:drop-shadow(0 2px 11px rgba(8,16,24,.30));transition:filter 2.8s ease;}
body.lit .mark-wrap .mark-img{filter:drop-shadow(0 0 15px rgba(131,192,151,.34)) drop-shadow(0 2px 11px rgba(8,16,24,.28));}
.glowlayer{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity 2.8s ease;}
body.lit .glowlayer{opacity:1;}
.aura{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:205%;height:205%;border-radius:50%;pointer-events:none;filter:blur(24px);}
.aura.s{background:radial-gradient(circle,rgba(131,192,151,.55) 0%,transparent 68%);animation:driftS 20s ease-in-out infinite;}
.aura.c{background:radial-gradient(circle,rgba(246,241,232,.50) 0%,transparent 68%);animation:driftC 20s ease-in-out infinite;}
.aura.b{background:radial-gradient(circle,rgba(48,133,198,.46) 0%,transparent 68%);animation:driftB 20s ease-in-out infinite;}
@keyframes driftS{0%,100%{opacity:.55}33%{opacity:.14}66%{opacity:.20}}
@keyframes driftC{0%,100%{opacity:.16}33%{opacity:.50}66%{opacity:.18}}
@keyframes driftB{0%,100%{opacity:.18}33%{opacity:.16}66%{opacity:.48}}

/* ---------- THRESHOLD ---------- */
.threshold{display:flex;flex-direction:column;align-items:center;}
.orb-stage{position:relative;width:min(92vw,740px);height:clamp(300px,58vh,600px);
  display:flex;align-items:center;justify-content:center;cursor:pointer;margin-bottom:8px;}
#sphere{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1;}
.globe-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:clamp(260px,38vw,480px);height:clamp(260px,38vw,480px);border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(circle,rgba(131,192,151,.18) 0%,rgba(48,133,198,.06) 46%,transparent 70%);}
.orb-stage .mark-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:clamp(112px,14vw,186px);z-index:2;}

.eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.42em;text-transform:uppercase;color:var(--sage);margin-bottom:18px;}
.statement{font-family:var(--serif);font-weight:400;font-size:clamp(30px,5.4vw,58px);line-height:1.04;
  color:var(--cream);letter-spacing:.005em;max-width:14ch;}
.statement em{font-style:italic;color:var(--sage-soft);font-weight:500;}

.enter-btn{margin-top:38px;display:inline-flex;align-items:center;gap:15px;cursor:pointer;
  font-family:var(--font);font-size:11px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;
  color:var(--cream);background:transparent;border:1px solid var(--hair-2);border-radius:999px;padding:17px 36px;
  transition:color .5s ease, background .5s ease, border-color .5s ease, letter-spacing .5s ease;}
.enter-btn .arr{display:inline-block;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.enter-btn:hover,.enter-btn:focus-visible{background:var(--cream);border-color:var(--cream);color:var(--navy);letter-spacing:.36em;outline:none;}
.enter-btn:hover .arr,.enter-btn:focus-visible .arr{transform:translateX(7px);}

/* ---------- ARRIVAL SETTLE (load, one-shot) ---------- */
.reveal-orb{animation:revealOrb 1.7s cubic-bezier(.2,.7,.2,1) both;}
.reveal-1{animation:revealUp 1.1s ease both .95s;}
.reveal-2{animation:revealUp 1.1s ease both 1.2s;}
.reveal-3{animation:revealUp 1.1s ease both 1.5s;}
@keyframes revealOrb{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:none}}
@keyframes revealUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .view,.enter-btn,.enter-btn .arr{transition:none!important;}
  .reveal-orb,.reveal-1,.reveal-2,.reveal-3{animation:none!important;}
  .aura{animation:none!important;}
  .glowlayer{opacity:1!important;transition:none!important;}
  .mark-wrap .mark-img{transition:none!important;}
  .aura.s{opacity:.42}.aura.c{opacity:.26}.aura.b{opacity:.24}
}

/* ===================== LOGIN / AUTH CARDS ===================== */
body.login-body{overflow:auto;}
.login-wrap{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:64px 32px;gap:26px;}
.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:stretch;
  text-align:left;background:rgba(22,36,47,.42);border:1px solid var(--hair-2);border-radius:18px;
  padding:40px 34px 36px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 24px 60px rgba(8,16,24,.40);}
.login-card--wide{max-width:560px;}
.login-card .eyebrow{text-align:center;}
.login-mark{width:54px;align-self:center;margin-bottom:20px;}
.login-title{font-family:var(--serif);font-weight:400;font-size:clamp(30px,5vw,44px);line-height:1.05;
  color:var(--cream);text-align:center;margin-bottom:6px;}
.login-title em{font-style:italic;color:var(--sage-soft);font-weight:500;}
.login-sub{font-size:12px;letter-spacing:.04em;color:var(--cream-dim);text-align:center;margin-bottom:24px;line-height:1.5;}
.login-sub b{color:#fff;font-weight:600;}
.login-label{display:block;font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  color:var(--sage);margin:0 0 8px 2px;}
.login-label .req{color:var(--sage-soft);}
.login-input{font-family:var(--font);font-size:15px;color:var(--cream);background:rgba(8,16,24,.34);
  border:1px solid var(--field-line);border-radius:10px;padding:13px 15px;margin-bottom:18px;width:100%;
  transition:border-color .35s ease, background .35s ease;color-scheme:dark;}
.login-input:focus{outline:none;border-color:var(--sage);background:rgba(8,16,24,.5);}
.login-input::placeholder{color:rgba(231,225,212,.4);}
.login-input.is-error{border-color:rgba(214,108,108,.7);}
.login-static{color:var(--cream);background:rgba(8,16,24,.2);}
.login-err{display:block;font-size:12px;line-height:1.4;color:#f3cccc;margin:-12px 0 14px 2px;}
.login-hint{display:block;font-size:11.5px;line-height:1.4;color:var(--fog);margin:-12px 0 16px 2px;}
.login-hint code{font-family:ui-monospace,Consolas,monospace;color:var(--cream-dim);}
.login-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:14px;}
@media (max-width:520px){ .login-grid{grid-template-columns:1fr;} }
.login-full{grid-column:1 / -1;}
.login-pw{position:relative;}
.login-pw .login-input{padding-right:46px;}
.login-pw-toggle{position:absolute;right:10px;top:11px;background:none;border:none;color:var(--fog);cursor:pointer;font-size:18px;line-height:1;padding:3px;}
.login-pw-toggle:hover{color:var(--cream);}
.login-intro{font-size:13px;line-height:1.55;color:var(--cream-dim);margin-bottom:22px;padding:14px 16px;border:1px solid var(--hair);border-radius:12px;background:rgba(8,16,24,.2);}
.login-intro p{margin:0 0 8px;} .login-intro p:last-child{margin-bottom:0;}
.login-submit{justify-content:center;margin-top:8px;width:100%;}
.login-alert,.alert{font-size:12.5px;line-height:1.45;border-radius:10px;padding:12px 14px;margin-bottom:20px;text-align:left;}
[data-error-summary]:focus{outline:3px solid #83C097;outline-offset:3px;}   /* the sign-in error, focused on load (js/site.js) */
.alert-bad,.alert--error,.alert--danger{background:rgba(200,72,72,.16);border:1px solid rgba(214,108,108,.5);color:#f3cccc;}
.alert-info,.alert--info{background:rgba(48,133,198,.14);border:1px solid rgba(48,133,198,.45);color:#cfe4f3;}
.alert--success{background:rgba(131,192,151,.14);border:1px solid rgba(131,192,151,.45);color:#d9efe0;}
.alert--warning{background:rgba(245,185,50,.14);border:1px solid rgba(245,185,50,.45);color:#f6e7c0;}
.login-links{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 28px;}
.login-back{display:inline-flex;align-items:center;gap:9px;font-size:10.5px;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:var(--cream-dim);text-decoration:none;
  transition:color .4s ease;}
.login-back .arr{transition:transform .4s ease;}
.login-back:hover,.login-back:focus-visible{color:var(--sage);outline:none;}
.login-back:hover .arr{transform:translateX(-5px);}
.login-foot{font-size:11px;letter-spacing:.04em;color:var(--fog-2);max-width:420px;line-height:1.5;}
.login-foot a{color:var(--cream-dim);}
@media (max-width:520px){ .login-card{padding:32px 24px 30px;} }

/* Read by screen readers, not shown. */
.sr-only{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
