: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);
  --font:'Inter',ui-sans-serif,system-ui,-apple-system,Helvetica,Arial,sans-serif;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --mark:url("../imgs/brand/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);}
.frame{position:fixed;inset:22px;z-index:5;pointer-events:none;border:1px solid var(--hair);}
.frame::after{content:"";position:absolute;inset:5px;border:1px solid rgba(255,255,255,.045);}
.rail{position:fixed;z-index:5;top:36px;left:40px;font-size:10px;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;color:var(--cream-dim);}
.rail b{color:#fff;font-weight:700;}
.rail .dot{color:var(--sage);margin:0 6px;}
.corner{position:absolute;width:16px;height:16px;border:0 solid var(--sage);}
.corner.tl{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px;}
.corner.tr{top:-1px;right:-1px;border-top-width:1px;border-right-width:1px;}
.corner.bl{bottom:-1px;left:-1px;border-bottom-width:1px;border-left-width:1px;}
.corner.br{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px;}

/* ---------- 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;}
.view-atrium{opacity:0;visibility:hidden;transform:translateY(24px);pointer-events:none;overflow-y:auto;}
body.is-atrium{overflow:auto;}
body.is-atrium .view-enter{opacity:0;visibility:hidden;transform:scale(1.06);pointer-events:none;}
body.is-atrium .view-atrium{opacity:1;visibility:visible;transform:none;pointer-events:auto;}

/* ---------- 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}}

/* ---------- ATRIUM ---------- */
.atrium-inner{max-width:940px;margin:0 auto;width:100%;padding:clamp(86px,13vh,140px) 38px 64px;
  display:flex;flex-direction:column;min-height:100vh;}
.back{position:fixed;top:32px;left:40px;z-index:7;display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  background:transparent;border:none;color:var(--cream-dim);font-family:var(--font);
  font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;transition:color .4s ease;}
.back:hover,.back:focus-visible{color:var(--sage);outline:none;}
.back .arr{transition:transform .4s ease;}
.back:hover .arr{transform:translateX(-5px);}

.mast{display:flex;align-items:center;gap:18px;justify-content:center;margin-bottom:8px;}
.mast .mark-wrap{width:50px;}
.mast .name{font-size:13px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:#fff;}
.mast .name em{font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:0;
  font-size:1.5em;font-weight:500;color:var(--cream);margin-left:4px;vertical-align:-.02em;}

.hub-lead{margin:30px auto 8px;text-align:center;font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(30px,5.4vw,52px);line-height:1.06;color:var(--cream);letter-spacing:.005em;}
.hub-lead em{font-style:italic;color:var(--sage-soft);}
.hub-sub{text-align:center;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--fog-2);
  margin-bottom:clamp(34px,6vh,60px);}

.grid{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(40px,6vw,80px);}
.entry{position:relative;display:block;text-decoration:none;color:#fff;overflow:hidden;
  padding:28px 10px 26px 4px;border-top:1px solid var(--hair);
  opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
body.is-atrium .entry{opacity:1;transform:none;}
body.is-atrium .entry:nth-child(1){transition-delay:.34s;}
body.is-atrium .entry:nth-child(2){transition-delay:.42s;}
body.is-atrium .entry:nth-child(3){transition-delay:.50s;}
body.is-atrium .entry:nth-child(4){transition-delay:.58s;}
body.is-atrium .entry:nth-child(5){transition-delay:.66s;}
body.is-atrium .entry:nth-child(6){transition-delay:.74s;}
.entry::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--sage);
  transition:width .6s cubic-bezier(.2,.7,.2,1);}
.entry:hover::before,.entry:focus-visible::before{width:100%;}
.entry:focus-visible{outline:none;}
.entry .ttl{display:block;font-size:clamp(24px,3.3vw,33px);font-weight:600;letter-spacing:-.014em;color:#fff;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.entry .ttl em{color:var(--cream);font-weight:500;}
.entry:hover .ttl,.entry:focus-visible .ttl{transform:translateX(8px);}
.entry:hover .ttl em,.entry:focus-visible .ttl em{color:var(--sage-soft);}
.entry .desc{display:block;margin-top:10px;font-size:13px;line-height:1.5;color:var(--fog);max-width:32ch;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.entry:hover .desc,.entry:focus-visible .desc{transform:translateX(8px);}
.entry .arr{position:absolute;right:8px;top:32px;font-size:18px;color:var(--sage);
  opacity:0;transform:translateX(-10px);transition:opacity .5s ease, transform .5s ease;}
.entry:hover .arr,.entry:focus-visible .arr{opacity:1;transform:translateX(0);}

.hub-foot{margin-top:auto;padding-top:52px;text-align:center;}
.hub-foot .grp{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--fog-2);}

@media (max-width:640px){
  .grid{grid-template-columns:1fr;column-gap:0;}
  .frame{inset:13px;}
  .back{top:22px;left:24px;}
  .rail{top:24px;left:24px;}
  .entry .desc{max-width:none;}
}
@media (prefers-reduced-motion:reduce){
  .view,.enter-btn,.enter-btn .arr,.entry,.entry *,.back *{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}
  .entry{opacity:1;transform:none;}
}

/* ===================== LOGIN ===================== */
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 .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;}
.login-label{font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  color:var(--sage);margin:0 0 8px 2px;}
.login-input{font-family:var(--font);font-size:15px;color:var(--cream);background:rgba(8,16,24,.34);
  border:1px solid var(--hair-2);border-radius:10px;padding:13px 15px;margin-bottom:18px;width:100%;
  transition:border-color .35s ease, background .35s ease;}
.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-submit{justify-content:center;margin-top:8px;width:100%;}
.login-alert{font-size:12.5px;line-height:1.45;border-radius:10px;padding:12px 14px;margin-bottom:20px;}
.alert-bad{background:rgba(200,72,72,.16);border:1px solid rgba(214,108,108,.5);color:#f3cccc;}
.alert-info{background:rgba(48,133,198,.14);border:1px solid rgba(48,133,198,.45);color:#cfe4f3;}
.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);}
@media (max-width:520px){ .login-card{padding:32px 24px 30px;} }

/* hub sign-out (mirrors .back, pinned top-right) */
.signout{position:fixed;top:32px;right:40px;z-index:7;display:inline-flex;align-items:center;
  font-size:10.5px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--cream-dim);
  text-decoration:none;cursor:pointer;transition:color .4s ease;}
.signout:hover,.signout:focus-visible{color:var(--sage);outline:none;}
@media (max-width:640px){ .signout{top:22px;right:24px;} }
