/* Portal identity. Existing portal component tokens retain backwards compatibility. */
:root{--red:#6d32cc;--red-deep:#5423a4;--red-soft:#f1ebfc;--navy:#201638;--canvas:#f7f6fb;--line:#e7e3ef}
.brand.fit-brand{flex-direction:row;align-items:center;gap:10px;padding:0;text-decoration:none}.brand.fit-brand .fit-mark{width:39px;height:39px;flex-shrink:0}.brand.fit-brand .fit-wordmark{display:block;letter-spacing:0;color:inherit}.fit-wordmark strong{font-size:17px;line-height:1.3;display:block;letter-spacing:-.4px}.fit-wordmark strong span{font-size:8px;letter-spacing:.8px;vertical-align:middle;margin-left:3px}.fit-wordmark small{display:block;font-size:8px;letter-spacing:2px;font-weight:600;margin-top:3px}.sidebar .fit-brand{padding:0 9px}.sidebar .fit-wordmark strong span{display:block;margin:2px 0}.sidebar .fit-wordmark strong{font-size:18px}.sidebar .fit-mark{width:36px!important;height:36px!important}.avatar{color:#5e28b7;background:#efe8fa}.badge .icon{width:12px;height:12px}.module-back{display:inline-block;font-size:12px;margin-bottom:22px}.module-heading{display:flex;gap:14px;align-items:center;margin-bottom:24px}.module-heading .eyebrow{margin:0}
/* Auth is the same identity as the public front door, without external fonts or assets. */
.auth-layout{background:#06170d}.auth-layout a{color:#004d25;text-decoration:none}.auth-layout a:hover{color:#0b6838;text-decoration:underline}.auth-story{color:#fff;background:radial-gradient(ellipse at 0 100%,rgba(245,179,36,0.22),transparent 70%),linear-gradient(130deg,#061e13,#113f27);isolation:isolate}.auth-story:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(245,179,36,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(245,179,36,0.04) 1px,transparent 1px);background-size:42px 42px}.auth-story h1{color:#fff;font-weight:650}.auth-story h1>span{color:#f5b324}.auth-story .brand{color:#fff!important;text-decoration:none!important}.auth-story .brand strong{color:#fff!important}.auth-story .brand strong span{color:#f5b324!important}.auth-story .brand small{color:#a4c0af!important}.auth-story .eyebrow{color:#f5b324}.auth-story .auth-description{color:#a4c0af}.auth-story .small,.auth-footnote{color:#7b9c88}.auth-rule{background:#f5b324}.auth-form-panel{background:#fff}.auth-grid{background:#fff;box-shadow:0 20px 100px rgba(6,30,19,0.08)}.auth-form-panel .button.primary,.auth-form-panel button.primary,.button.primary.full{background-color:#f5b324!important;background-image:linear-gradient(135deg,#f5b324,#d99616)!important;border:1px solid #f7be40!important;border-color:#f7be40!important;color:#062013!important;font-weight:650!important;box-shadow:0 4px 18px rgba(245,179,36,0.3)!important;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,border-color .15s ease!important}.auth-form-panel .button.primary:hover,.auth-form-panel button.primary:hover,.button.primary.full:hover{background-color:#ffbe33!important;background-image:linear-gradient(135deg,#ffca47,#e5a21d)!important;border-color:#ffc94d!important;color:#04160c!important;box-shadow:0 6px 24px rgba(245,179,36,0.45)!important}.auth-form-panel input:not([type=checkbox]):not([type=radio]):focus,.auth-form-panel textarea:focus,.auth-form-panel select:focus{border-color:#f5b324!important;box-shadow:0 0 0 3px rgba(245,179,36,0.25)!important}.auth-form-panel a,.auth-switch a,.form-end{color:#004d25!important}.auth-form-panel a:hover,.auth-switch a:hover,.form-end:hover{color:#0b6838!important}
/* Public landing — Green & Gold Identity */
.auth-main:has(.fit-landing){padding:0;max-width:none}.fit-landing{background:#05170d;color:#f7faf8;min-height:100vh}.landing-nav,.landing-hero,.landing-programs,.landing-footer{max-width:1320px;margin:auto;padding-left:64px;padding-right:64px}.landing-nav{height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(245,179,36,0.12)}.landing-nav .fit-brand{color:#fff}.fit-landing .fit-brand strong span{color:#f5b324}.landing-nav nav{display:flex;align-items:center;gap:32px}.landing-nav nav>a{font-size:12px;color:#b4ccbe;transition:color .15s ease}.landing-nav nav>a:hover{color:#f5b324}.landing-nav .landing-signin{background:rgba(245,179,36,0.06);border-color:rgba(245,179,36,0.3);color:#fdfbf5;padding:10px 20px;transition:all .15s ease}.landing-nav .landing-signin:hover{background:rgba(245,179,36,0.14);border-color:#f5b324;color:#f5b324}.landing-hero{min-height:545px;display:grid;grid-template-columns:1.12fr 1fr;gap:20px;align-items:center;position:relative;background:radial-gradient(ellipse at 70% 45%,rgba(14,75,41,0.48),rgba(245,179,36,0.08) 45%,transparent 68%)}.hero-copy{padding:45px 0;position:relative;z-index:1}.signal-label{font-size:9px;font-weight:600;letter-spacing:1.7px;color:#d4be88;display:flex;align-items:center;gap:10px;margin-bottom:25px}.signal-label>span,.hub-signal>span{width:6px;height:6px;background:#f5b324;box-shadow:0 0 14px rgba(245,179,36,0.9),0 0 4px #22c55e;border-radius:50%;flex-shrink:0}.landing-hero h1{font-size:clamp(46px,5.2vw,72px);letter-spacing:-3.7px;font-weight:620;line-height:1.08;color:#fdfcf9}.landing-hero h1>span{color:#f5b324;text-shadow:0 0 35px rgba(245,179,36,0.22)}.hero-description{color:#9cb5a6;font-size:15px;line-height:1.9;margin-top:26px}.hero-actions{display:flex;align-items:center;gap:25px;margin-top:33px}.hero-actions .primary{background:linear-gradient(135deg,#f5b324,#d99616);border-color:#f7be40;color:#062013!important;font-weight:650;padding:13px 22px;box-shadow:0 6px 25px rgba(245,179,36,0.3);transition:all .15s ease}.hero-actions .primary:hover{background:#ffbe33;box-shadow:0 8px 30px rgba(245,179,36,0.45);transform:translateY(-1px)}.hero-secondary{color:#d1be8f;font-size:12px;transition:color .15s ease}.hero-secondary:hover{color:#ffe28a}.hero-secondary span{margin-left:10px}.hero-note{color:#728f7e;font-size:10px;margin-top:22px}
.cyber-map{height:460px;position:relative;min-width:0;isolation:isolate;font-family:"SFMono-Regular",Consolas,monospace}.map-grid{position:absolute;inset:22px 0;background:linear-gradient(rgba(245,179,36,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(245,179,36,0.035) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse,#000,transparent 74%)}.map-lines{position:absolute;width:100%;height:100%;inset:0;fill:none;stroke:rgba(46,139,87,0.32);stroke-width:1}.map-lines circle{stroke-dasharray:3 8;stroke:rgba(245,179,36,0.2)}.map-coordinate{position:absolute;top:28px;left:20px;color:#769684;font-size:8px;letter-spacing:2px}.network-core{position:absolute;left:44%;top:40%;width:76px;height:76px;border:1px solid rgba(245,179,36,0.65);border-radius:20px;background:linear-gradient(140deg,#13462a,#072415);box-shadow:0 0 65px rgba(245,179,36,0.25),0 0 30px rgba(16,75,42,0.4);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;transform:rotate(-5deg)}.network-core .icon{height:29px;width:29px;color:#f5b324}.network-core>span{font-size:9px;letter-spacing:2px;color:#ffe28a;font-weight:700}.map-node{position:absolute;background:#092115;border:1px solid #1a492e;border-radius:9px;padding:17px 20px;width:207px;box-shadow:0 16px 35px rgba(0,0,0,0.35)}.map-node strong{display:block;font-size:15px;letter-spacing:-.4px;color:#eaf3ed;margin:7px 0 2px}.map-node small{font-size:8px;color:#7f9f8c}.node-state{font-size:7px;letter-spacing:1.3px;color:#71917e}.node-topcit{top:48px;left:8%;border-color:#f5b324;background:linear-gradient(120deg,#13492c,#0a2919);box-shadow:0 0 25px rgba(245,179,36,0.18)}.node-topcit .node-state{color:#f5b324;font-weight:650}.node-topcit .node-state:before{content:"";display:inline-block;background:#f5b324;box-shadow:0 0 8px #f5b324;width:4px;height:4px;border-radius:50%;margin-right:8px}.node-ctf{left:0;bottom:51px}.node-cisco{right:-10px;top:206px;width:190px}.map-caption{position:absolute;bottom:9px;left:20px;color:#728f7e;font-size:7px;letter-spacing:1.3px}.map-caption i{display:inline-block;width:20px;border-top:1px solid #f5b324;margin-right:9px;vertical-align:middle}
.landing-programs{padding-top:35px;padding-bottom:56px;border-top:1px solid rgba(245,179,36,0.12)}.programs-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:26px}.fit-landing .eyebrow{color:#f5b324;font-size:8px;font-weight:700;letter-spacing:1.5px}.programs-heading h2{font-size:23px;font-weight:500;letter-spacing:-.6px;color:#fcfbf7}.programs-heading>p{font-size:11px;line-height:1.8;color:#9cb5a6}.program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.program-card{padding:25px;border:1px solid #18422a;border-radius:11px;background:#082114;display:flex;flex-direction:column;min-height:243px;box-shadow:0 8px 24px rgba(0,0,0,0.25)}.program-card.available{border-color:#f5b324;background:linear-gradient(130deg,#123d26,#092416);box-shadow:0 10px 35px rgba(0,0,0,0.35),0 0 25px rgba(245,179,36,0.08)}.program-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.8px;color:#7f9f8c}.availability{color:#ffe28a;background:rgba(245,179,36,0.16);border:1px solid rgba(245,179,36,0.45);font-weight:650;border-radius:20px;padding:3px 8px;font-size:8px;letter-spacing:0}.locked-label{display:flex;align-items:center;gap:4px;font-size:9px;color:#71917e;letter-spacing:0}.locked-label .icon{height:11px;width:11px}.program-card h3{font-size:22px;letter-spacing:-.6px;font-weight:550;margin:22px 0 9px;color:#fff}.program-card>p{font-size:11px;color:#a4beae;line-height:1.9;max-width:310px;margin-bottom:22px}.program-card>a,.program-bottom{margin-top:auto;color:#f5b324;font-size:10px;font-weight:650;display:flex;align-items:center;justify-content:space-between;transition:color .15s ease}.program-card>a:hover{color:#ffe28a}.program-card>a .icon{width:16px}.program-bottom{color:#6a8876;justify-content:flex-start;gap:10px}.program-bottom span{color:#1c452c}.landing-footer{padding-top:20px;padding-bottom:25px;display:flex;justify-content:space-between;gap:15px;border-top:1px solid rgba(245,179,36,0.1);color:#6a8876;font-size:9px}
/* Authenticated category directory */
.hub-welcome{position:relative;overflow:hidden;isolation:isolate;padding:38px 40px;background:radial-gradient(ellipse at 95% 20%,#6f38b55c,transparent 60%),#201232;color:#fff;border:1px solid #57357b;border-radius:14px}.hub-welcome:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#b698e808 1px,transparent 1px),linear-gradient(#b698e808 1px,transparent 1px);background-size:36px 36px}.hub-welcome .eyebrow{color:#bc98ec}.hub-welcome h1{font-size:37px}.hub-welcome>p:not(.eyebrow){color:#b5a0ca;font-size:13px;margin-top:13px}.hub-signal{display:flex;align-items:center;gap:9px;font-size:8px;letter-spacing:1.5px;color:#aa8dc7;margin-top:28px}.hub-programs{margin-top:35px}.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.hub-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:26px;display:flex;flex-direction:column;gap:26px;min-width:0}.hub-active{border-color:#b38bdd;box-shadow:0 4px 30px #6831ac08}.hub-symbol{display:grid;place-items:center;width:43px;height:43px;background:#f0e8fc;color:#7435cb;border-radius:12px}.hub-card .eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:9px}.hub-card h2{font-size:28px;margin-bottom:12px}.hub-card p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.9}.hub-features{list-style:none;margin:0 0 4px;padding:0;color:#80748e;font-size:11px}.hub-features li{padding:7px 0;border-bottom:1px solid #f0ecf5}.hub-features li:before{content:"/";color:#baa2d3;margin-right:10px}.hub-card>.button,.hub-card>.hub-locked-note{margin-top:auto;justify-content:space-between}.hub-locked{background:#faf9fc}.hub-locked .hub-symbol{background:#edeaf1;color:#95889e}.hub-locked .eyebrow{color:#91849e}.hub-locked h2{color:#72617e}.hub-locked-note{padding:11px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}.hub-locked-note .icon{width:14px;height:14px}.hub-help{display:flex;align-items:flex-start;gap:12px;margin-top:27px;color:#8a7d97;font-size:11px}.hub-help .icon{width:17px;margin-top:2px}
@media(min-width:1600px){.landing-hero{min-height:600px}}
@media(max-width:1100px){.landing-nav,.landing-hero,.landing-programs,.landing-footer{padding-left:36px;padding-right:36px}.landing-hero h1{font-size:57px}.cyber-map{transform:scale(.9);transform-origin:center}.node-cisco{right:-20px}.hub-card{padding:20px;gap:22px}.hub-card .badge{font-size:9px}.hero-actions{gap:16px}.hero-actions .primary{padding:12px 16px}}
@media(max-width:800px){.landing-hero{grid-template-columns:1fr;gap:0}.hero-copy{padding:60px 0 10px}.landing-hero h1{font-size:64px}.cyber-map{width:100%;max-width:510px;justify-self:center;height:410px;transform:none}.node-cisco{right:0}.program-grid,.hub-grid{grid-template-columns:1fr}.program-card{min-height:220px}.programs-heading{align-items:flex-start}.hub-welcome{padding:30px}.hub-card{gap:20px}.hub-features{margin:0}.hub-card>.button{align-self:flex-start;gap:30px}.hub-card{padding:26px}.landing-nav .nav-programs{display:none}.programs-heading>p{display:none}}
@media(max-width:480px){.landing-nav,.landing-hero,.landing-programs,.landing-footer{padding-left:23px;padding-right:23px}.landing-nav{height:88px;gap:12px}.landing-nav .fit-mark{width:33px!important;height:33px!important}.landing-nav .fit-wordmark strong{font-size:17px}.landing-nav .fit-wordmark strong span{display:block;font-size:7px;margin:1px 0}.landing-nav .fit-wordmark small{font-size:6px;letter-spacing:1.6px}.landing-nav .landing-signin{padding:8px 11px;font-size:11px;gap:8px}.landing-signin .icon{width:15px}.signal-label{font-size:7px;letter-spacing:1.1px;gap:7px}.landing-hero h1{font-size:49px;letter-spacing:-2.6px}.hero-description{font-size:12px}.hero-actions{gap:19px}.hero-actions .primary{font-size:11px;padding:12px 13px;gap:12px}.hero-secondary{font-size:10px}.hero-secondary span{margin-left:3px}.hero-note{font-size:9px}.cyber-map{height:355px;margin-top:10px}.map-node{width:162px;padding:13px}.map-node strong{font-size:12px}.map-node small{font-size:7px}.node-topcit{top:40px;left:3%}.node-ctf{bottom:40px;left:0}.node-cisco{top:176px;width:154px;right:0}.network-core{width:60px;height:60px;top:40%;left:42%}.map-coordinate{font-size:6px;top:15px;left:0}.map-caption{font-size:6px;left:0}.programs-heading h2{font-size:22px;max-width:260px}.landing-programs{padding-top:28px;padding-bottom:35px}.landing-footer{flex-direction:column;gap:5px}.hub-welcome{padding:26px 24px}.hub-welcome h1{font-size:30px}.hub-signal{font-size:6px;letter-spacing:1.1px}.hub-programs .section-heading{gap:10px}.hub-card{padding:24px}.auth-story .brand>span{color:#fff}.auth-story h1{font-size:36px}.auth-story{min-height:330px}}
