
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0a0d12;color:#f7f4ee;font:16px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}.w{width:min(1120px,calc(100% - 36px));margin:auto}nav{position:sticky;top:0;z-index:20;background:#0a0d12e8;backdrop-filter:blur(14px);border-bottom:1px solid #ffffff14}.n{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:900;letter-spacing:.09em;font-size:.92rem}.links{display:flex;align-items:center;gap:20px;color:#c9ced8;font-size:.95rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border-radius:999px;background:#f2dfc5;color:#10141a;font-weight:850;border:0;cursor:pointer}.ghost{background:transparent;color:#f7f4ee;border:1px solid #ffffff2b}.tag{display:inline-flex;padding:7px 10px;border-radius:999px;background:#7dd8ff;color:#08121a;font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.hero{padding:96px 0 76px;background:radial-gradient(circle at 80% 10%,#13284c 0,transparent 38%),radial-gradient(circle at 20% 90%,#2b183b 0,transparent 35%)}h1,h2,h3{margin:0 0 14px;line-height:1.05}h1{font-size:clamp(3.1rem,8vw,6.5rem);max-width:980px;letter-spacing:-.055em}h2{font-size:clamp(2rem,5vw,4rem);letter-spacing:-.04em}h3{font-size:1.35rem}.lede{font-size:clamp(1.08rem,2vw,1.3rem);max-width:760px;color:#c4cad4}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.sec{padding:78px 0}.soft{background:#111721}.muted{color:#aab1bd}.g2{display:grid;grid-template-columns:1fr 1fr;gap:28px}.kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.11em;font-weight:850;color:#78d8ff;margin-bottom:16px}.schedule{border-top:1px solid #ffffff20}.row{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid #ffffff20}.row b{color:#f3dfc5}.classesPhoto{margin:0 0 48px;border-radius:28px;overflow:hidden;border:1px solid #ffffff18;background:#111721;box-shadow:0 28px 70px #0005}.classesPhoto img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:center;display:block}.card{display:block;border:1px solid #ffffff18;border-radius:22px;padding:24px;background:#10151d;min-height:165px}.card p{margin:8px 0 0;color:#aeb6c2}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}footer{padding:42px 0;color:#aeb5c1;border-top:1px solid #ffffff16}@media(max-width:820px){.links a:not(.btn){display:none}.grid,.g2{grid-template-columns:1fr}.hero{padding-top:74px}.row{grid-template-columns:1fr;gap:6px}.sec{padding:58px 0}}
.waFloat{position:fixed;right:18px;bottom:18px;z-index:40;display:inline-flex;align-items:center;gap:9px;padding:12px 16px;border-radius:999px;background:#f2dfc5;color:#10141a;font-weight:850;box-shadow:0 12px 30px #0007;border:1px solid #ffffff2b}.waFloat:hover{transform:translateY(-1px)}@media(max-width:820px){.waFloat{right:12px;bottom:12px;padding:11px 14px;font-size:.92rem}}
.portalShell{width:min(1120px,calc(100% - 36px));margin:40px auto 80px}
.authCard,.dashCard{border:1px solid #ffffff18;border-radius:24px;padding:24px;background:#10151d}
.authCard{max-width:520px;margin:60px auto}
.portalGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.portalGrid.two{grid-template-columns:1fr 1fr}
.portalTop{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}
.badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:#1e2c3d;color:#9edfff;font-size:.78rem;font-weight:850}
.item{padding:14px 0;border-bottom:1px solid #ffffff14}.item:last-child{border-bottom:0}
.item h3{margin-bottom:6px}.item p{margin:0;color:#aeb6c2}
.empty{color:#8e97a5;font-style:italic}
.hidden{display:none!important}
.logoutBtn{background:transparent;color:#fff;border:1px solid #ffffff2b}
.reviewDue{font-weight:900;font-size:2rem}
.adminOnly{display:none}
body.isAdmin .adminOnly{display:block}
.coachModeTabs{display:none;gap:10px;flex-wrap:wrap;margin:0 0 22px}
body.isAdmin .coachModeTabs{display:flex}
.coachModeTabs button{padding:10px 14px;border-radius:999px;border:1px solid #ffffff24;background:transparent;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.coachModeTabs button.active{background:#f2dfc5;color:#10141a;border-color:#f2dfc5}
.onboardSteps{display:grid;gap:10px;margin-top:14px}
.onboardStep{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #ffffff14}
.onboardStep:last-child{border-bottom:0}
.onboardDot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff2b;font-weight:900;flex:0 0 28px}
.onboardStep.done .onboardDot{background:#f2dfc5;color:#10141a;border-color:#f2dfc5}

body.coachView .studentArea{display:none!important}
body.studentView .adminOnly{display:none!important}
@media(max-width:820px){.portalGrid,.portalGrid.two{grid-template-columns:1fr}.portalTop{align-items:flex-start;flex-direction:column}}

.coachOverviewGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0 26px}
.coachOverviewCard{border:1px solid #ffffff18;border-radius:18px;padding:16px;background:#0d1219;cursor:pointer}
.coachOverviewCard:hover{border-color:#7dd8ff}
.coachOverviewCard .counts{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;color:#aeb6c2;font-size:.9rem}
.spaceCard{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 16%,#16324a88 0,transparent 28%),radial-gradient(circle at 82% 18%,#402b6088 0,transparent 25%),linear-gradient(145deg,#111b2b,#0d1219 68%);border-color:#7dd8ff45!important}
.spaceCard:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.8;background-image:radial-gradient(circle at 8% 18%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 22% 68%,#fff9 0 1px,transparent 1.5px),radial-gradient(circle at 48% 12%,#fff8 0 1px,transparent 1.5px),radial-gradient(circle at 70% 58%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 88% 28%,#fff9 0 1px,transparent 1.5px),radial-gradient(circle at 91% 82%,#fff7 0 1px,transparent 1.5px)}
.spaceCard>*{position:relative;z-index:1}.missionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.rocketOrb{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-size:2.3rem;background:#ffffff0d;border:1px solid #ffffff22;box-shadow:inset 0 0 30px #7dd8ff18,0 12px 40px #0005}.rocketOrb{position:relative}.rocketOrb:after{content:"";position:absolute;width:102px;height:32px;border:1px solid #7dd8ff30;border-radius:50%;transform:rotate(-17deg);box-shadow:0 0 24px #7dd8ff14}.nextAction{margin-top:16px;padding:14px 16px;border-radius:18px;background:#ffffff08;border:1px solid #ffffff18}.nextAction strong{display:block;margin-bottom:4px}.rewardTop{display:flex;align-items:center;justify-content:space-between;gap:10px}.tinyLock{font-size:.82rem;color:#8e97a5}.starterCTA{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.starterCTA a{padding:9px 12px;border-radius:999px;border:1px solid #ffffff24;background:#ffffff08;font-weight:800}.starterCTA a:hover{border-color:#7dd8ff}.xpNumber{font-size:clamp(2.7rem,8vw,5rem);font-weight:950;letter-spacing:-.05em;line-height:.95;margin:10px 0 4px}.xpBar{height:14px;border-radius:999px;background:#ffffff10;border:1px solid #ffffff20;overflow:hidden;margin-top:10px}.xpFill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#7dd8ff,#d5b6ff,#f2dfc5)}.xpMeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.xpMeta span{padding:7px 10px;border-radius:999px;background:#ffffff08;border:1px solid #ffffff1d;color:#cbd4df;font-size:.9rem}.missionNote{font-size:.92rem;color:#9edfff;margin-top:8px}.rewardGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.rewardBadge{border:1px solid #ffffff1a;border-radius:18px;padding:15px;background:#0d1219}.rewardBadge.locked{opacity:.36;filter:grayscale(.45)}.rewardIcon{font-size:1.65rem}.rewardBadge h4{margin:8px 0 3px}.rewardBadge p{margin:0;color:#9ea7b5;font-size:.9rem}.rewardState{font-size:.77rem;text-transform:uppercase;letter-spacing:.08em;color:#9edfff;margin-top:9px;font-weight:850}

.coachOverviewCard strong{display:block}
.coachLayout{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
.studentPicker{display:grid;gap:8px}
.studentBtn{width:100%;text-align:left;padding:13px 14px;border-radius:14px;border:1px solid #ffffff18;background:#0d1219;color:#fff;cursor:pointer;font:inherit}
.studentBtn:hover,.studentBtn.active{border-color:#7dd8ff;background:#142131}
.studentBtn strong{display:block}.studentBtn small{display:block;color:#8e97a5;margin-top:2px}
.editorPanel{display:grid;gap:18px}
.editorSection{border:1px solid #ffffff18;border-radius:20px;padding:20px;background:#0d1219}
.editorSection h3{margin-bottom:4px}
.editorForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.editorForm .full{grid-column:1/-1}
.editorForm input,.editorForm select,.editorForm textarea{width:100%;padding:12px 13px;border-radius:12px;border:1px solid #ffffff22;background:#090e15;color:#fff;font:inherit}
.editorForm textarea{min-height:90px;resize:vertical}
.editorActions{display:flex;gap:8px;flex-wrap:wrap}
.smallBtn{padding:8px 11px;border-radius:999px;border:1px solid #ffffff24;background:transparent;color:#fff;font:inherit;font-weight:750;cursor:pointer}
.smallBtn.danger{color:#ffb5b5;border-color:#ff777744}
.reviewActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.reviewActions button{padding:8px 11px;border-radius:999px;border:1px solid #ffffff24;background:#0d1219;color:#fff;font:inherit;font-weight:750;cursor:pointer}
.reviewActions button:hover{border-color:#7dd8ff;background:#142131}
.reviewStatus{font-size:.9rem;color:#9edfff;margin-top:8px}
.manageItem{padding:14px 0;border-top:1px solid #ffffff12}
.manageItem:first-child{border-top:0}
.manageItemTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.manageItem p{margin:5px 0 0;color:#aeb6c2}
.coachStatus{min-height:24px;color:#9edfff}
@media(max-width:820px){
  .coachLayout{grid-template-columns:1fr}
  .editorForm{grid-template-columns:1fr}
  .editorForm .full{grid-column:auto}
  .portalShell{width:min(100% - 24px,1120px);margin-top:22px}
  .authCard,.dashCard,.editorSection{padding:18px;border-radius:18px}
  .portalGrid{gap:12px}
  .portalTop{gap:12px;margin-bottom:18px}
  .btn{min-height:44px;padding:11px 15px}
  .smallBtn,.reviewActions button{min-height:42px}
  .manageItemTop{flex-direction:column}
  .manageItemTop>.editorActions,.manageItemTop>button{width:100%}
  .manageItemTop>button{min-height:44px}
  .actions{gap:8px}
  .sec{padding-top:38px}
}
.weeklyForm{display:grid;gap:12px;margin-top:16px}
.weeklyForm textarea{width:100%;min-height:88px;padding:12px 13px;border-radius:12px;border:1px solid #ffffff22;background:#090e15;color:#fff;font:inherit;resize:vertical}
.weeklySaved{color:#9edfff;min-height:24px;margin-top:10px}
.accountPanel{border:1px solid #ffffff18;border-radius:22px;padding:22px;background:#10151d}
.accountForm{display:grid;gap:10px;max-width:520px;margin-top:14px}
.accountForm input{width:100%;padding:12px 13px;border-radius:12px;border:1px solid #ffffff22;background:#090e15;color:#fff;font:inherit}
.linkBtn{background:none;border:0;padding:0;color:#9edfff;text-decoration:underline;cursor:pointer;font:inherit}



/* Official Gab Lacarriere brand lockup */
.brand.brand-logo{display:flex;align-items:center;gap:10px;flex:0 0 auto;line-height:0;letter-spacing:0;font-size:inherit}
.brand.brand-logo img{display:block;width:auto;height:56px;max-width:min(360px,44vw);object-fit:contain}
.brand-context{font-size:.68rem;line-height:1;letter-spacing:.12em;font-weight:850;color:#c9ced8;white-space:nowrap}
@media(max-width:920px){.brand.brand-logo img{height:50px;max-width:245px}.brand-context{font-size:.62rem}}
@media(max-width:520px){.brand.brand-logo img{height:44px;max-width:205px}.brand-context{display:none}}

