:root{
  --ink:#0B0B0C;
  --ink2:#131316;
  --ink3:#1A1A1E;
  --paper:#F3F0EA;
  --dim:#8A8A8F;
  --dimmer:#5A5A60;
  --line:#26262B;
  --red:#E8341C;
  --red-dark:#B32612;
  --green:#3FBF6A;
  --display:'Anton','Haettenschweiler','Arial Narrow Bold',Impact,sans-serif;
  --cond:'Barlow Condensed','Arial Narrow',sans-serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--ink);color:var(--paper);font-family:var(--body);-webkit-font-smoothing:antialiased}
body{min-height:100vh;padding-bottom:112px}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea{font-family:inherit}
::selection{background:var(--red);color:#fff}

/* ---------- layout ---------- */
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.screen{display:none;animation:fade .18s ease-out}
.screen.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(11,11,12,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hbar{display:flex;align-items:center;gap:18px;height:64px}
.logo{display:flex;align-items:center;gap:11px;cursor:pointer;line-height:0;flex-shrink:0}
.logo .lg-mark{height:28px;width:28px;flex-shrink:0}
.logo .lg-word{height:16px;width:auto}
.logo:hover{opacity:.82}
.tagline{font-family:var(--cond);font-size:12px;letter-spacing:.28em;color:var(--dimmer);text-transform:uppercase;border-left:1px solid var(--line);padding-left:18px}
.hspace{flex:1}
.nav{display:flex;gap:2px}
.nav button{font-family:var(--cond);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:8px 14px;border-bottom:2px solid transparent}
.nav button:hover{color:var(--paper)}
.nav button.on{color:var(--paper);border-bottom-color:var(--red)}
.avatar{width:34px;height:34px;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--display);font-size:14px;color:var(--dim)}

/* ---------- type ---------- */
.eyebrow{font-family:var(--cond);font-size:12px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--red)}
.eyebrow.mute{color:var(--dimmer)}
h1.big{font-family:var(--display);font-size:clamp(38px,7vw,76px);line-height:.92;letter-spacing:-.01em;text-transform:uppercase}
h2.sec{font-family:var(--display);font-size:26px;letter-spacing:.01em;text-transform:uppercase}
.lede{color:var(--dim);font-size:15px;line-height:1.6;max-width:62ch}
.mono{font-family:var(--cond);letter-spacing:.14em;text-transform:uppercase;font-weight:600}

/* ---------- library hero ---------- */
.hero{padding:54px 0 26px;border-bottom:1px solid var(--line)}
.hero h1{margin:14px 0 16px}
.creed{display:flex;flex-wrap:wrap;gap:0;margin-top:22px;border:1px solid var(--line)}
.creed div{flex:1 1 160px;padding:14px 16px;border-right:1px solid var(--line);font-family:var(--display);font-size:15px;text-transform:uppercase;letter-spacing:.02em}
.creed div:last-child{border-right:none}
.creed div i{display:block;font-style:normal;font-family:var(--cond);font-size:11px;letter-spacing:.3em;color:var(--red);margin-bottom:6px}

/* ---------- filters ---------- */
.filters{display:flex;gap:8px;flex-wrap:wrap;padding:22px 0}
.chip{font-family:var(--cond);font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--line);color:var(--dim)}
.chip:hover{border-color:var(--dim);color:var(--paper)}
.chip.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* ---------- cards ---------- */
/* min() so the 288px floor can collapse on a 320px phone instead of forcing
   the grid wider than the screen */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(288px,100%),1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:40px}
.card{background:var(--ink);padding:22px 20px 20px;display:flex;flex-direction:column;gap:12px;text-align:left;transition:background .12s}
.card:hover{background:var(--ink2)}
.card .cat{font-family:var(--cond);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--red)}
.card h3{font-family:var(--display);font-size:26px;line-height:1;text-transform:uppercase}
.card .goal{font-size:13px;color:var(--dim);line-height:1.5;flex:1}
.card .meta{display:flex;align-items:center;gap:12px;white-space:nowrap;overflow:hidden;font-family:var(--cond);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer);border-top:1px solid var(--line);padding-top:12px}
.card .meta span:last-child{overflow:hidden;text-overflow:ellipsis;min-width:0}
.dots{display:inline-flex;gap:3px}
.dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--dimmer)}
.dot.f{background:var(--red);border-color:var(--red)}
.tag-active{font-family:var(--cond);font-size:11px;letter-spacing:.2em;color:var(--green)}

/* ---------- detail ---------- */
.back{font-family:var(--cond);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);padding:26px 0 0}
.back:hover{color:var(--red)}
.dhead{padding:24px 0 30px;border-bottom:1px solid var(--line)}
.dhead h1{margin:12px 0 18px}
.spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--line);margin:26px 0}
.spec div{padding:16px;border-right:1px solid var(--line)}
.spec div:last-child{border-right:none}
.spec i{display:block;font-style:normal;font-family:var(--cond);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--dimmer);margin-bottom:8px}
.spec b{font-family:var(--display);font-size:20px;text-transform:uppercase;font-weight:400}
.cols{display:grid;grid-template-columns:1.4fr 1fr;gap:44px;padding:32px 0}
.rules{list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.rules li{padding:13px 0 13px 30px;border-bottom:1px solid var(--line);font-size:14px;color:var(--paper);position:relative;line-height:1.5}
.rules li:before{content:"";position:absolute;left:0;top:16px;width:12px;height:12px;border:1px solid var(--red)}
.preview{border:1px solid var(--line)}
.preview .prow{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:13px}
.preview .prow:last-child{border-bottom:none}
.preview .prow span:first-child{font-family:var(--cond);letter-spacing:.16em;text-transform:uppercase;color:var(--dimmer);min-width:0;flex:1 1 auto}
.preview .prow span:last-child{text-align:right;color:var(--paper);flex:0 1 auto;min-width:0}
/* long challenge names must be allowed to wrap on narrow screens, or the
   nowrap label sets a min-content width wider than the phone viewport */
@media(max-width:560px){
  .preview .prow{flex-wrap:wrap;gap:2px 12px}
  .preview .prow span:first-child{white-space:normal}
  .preview .prow span:last-child{text-align:left;white-space:normal}
}
.morebtn{width:100%;padding:11px;font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);border-top:1px solid var(--line)}
.morebtn:hover{color:var(--red)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--display);font-size:19px;letter-spacing:.06em;text-transform:uppercase;padding:19px 34px;background:var(--red);color:#fff;border:1px solid var(--red);transition:transform .08s,background .12s;width:100%}
.btn:hover{background:var(--red-dark);border-color:var(--red-dark)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--paper);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--paper);background:transparent}
.btn.done{background:var(--green);border-color:var(--green);color:#06210f}
.btn.sm{font-size:14px;padding:12px 20px}
.btn:disabled{opacity:.35;cursor:not-allowed}

/* ---------- today ---------- */
.today{padding:38px 0}
.tday{font-family:var(--cond);font-size:14px;font-weight:700;letter-spacing:.4em;text-transform:uppercase;color:var(--red)}
.tmain{font-family:var(--display);font-size:clamp(46px,10vw,110px);line-height:.88;text-transform:uppercase;margin:14px 0}
.tsub{font-family:var(--cond);font-size:19px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);max-width:56ch;line-height:1.35}
.checkrow{display:flex;align-items:center;gap:16px;margin:34px 0 8px;padding:18px;border:1px solid var(--line);cursor:pointer;width:100%;text-align:left}
.checkrow:hover{border-color:var(--dim)}
.box{width:30px;height:30px;border:2px solid var(--paper);flex-shrink:0;display:grid;place-items:center;font-size:19px;line-height:1}
.checkrow.on .box{background:var(--green);border-color:var(--green);color:#06210f}
.checkrow span{font-family:var(--display);font-size:19px;text-transform:uppercase}
.feel{display:flex;gap:8px;margin:20px 0 8px}
.feel button{flex:1;padding:15px;border:1px solid var(--line);font-family:var(--cond);font-size:14px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.feel button:hover{color:var(--paper);border-color:var(--dim)}
.feel button.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.lbl{font-family:var(--cond);font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--dimmer);margin:26px 0 10px;display:block}
textarea.notes{width:100%;background:var(--ink2);border:1px solid var(--line);color:var(--paper);padding:14px;font-size:14px;min-height:84px;resize:vertical}
textarea.notes:focus{outline:none;border-color:var(--dim)}
.tfoot{margin-top:26px}
.restday{border:1px solid var(--line);border-left:3px solid var(--dim);padding:18px;margin:28px 0;color:var(--dim);font-size:14px;line-height:1.6}

/* ---------- dashboard ---------- */
.dashcard{border:1px solid var(--line);padding:26px;margin:22px 0}
.dnum{font-family:var(--display);font-size:clamp(44px,9vw,86px);line-height:.9;text-transform:uppercase}
.dnum small{color:var(--dimmer);font-size:.42em}
.bar{height:16px;background:var(--ink3);border:1px solid var(--line);margin:18px 0 10px;display:flex}
.bar i{background:var(--red);display:block;transition:width .4s}
.barmeta{display:flex;justify-content:space-between;font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.stats div{background:var(--ink);padding:18px}
.stats i{display:block;font-style:normal;font-family:var(--cond);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--dimmer);margin-bottom:8px}
.stats b{font-family:var(--display);font-size:30px;font-weight:400}
.daygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px;margin-top:18px}
.daygrid button{aspect-ratio:1;border:1px solid var(--line);font-family:var(--cond);font-size:12px;font-weight:600;color:var(--dimmer);display:grid;place-items:center}
.daygrid button.done{background:var(--red);border-color:var(--red);color:#fff}
.daygrid button.cur{border-color:var(--paper);color:var(--paper);font-weight:700}
.daygrid button.miss{background:var(--ink3);color:#3a3a40}
.daygrid button:hover{border-color:var(--paper)}
.empty{text-align:center;padding:70px 20px;border:1px dashed var(--line);margin:30px 0}
.empty p{color:var(--dim);margin:14px 0 24px}

/* ---------- crew ---------- */
.crew{border:1px solid var(--line);margin:20px 0}
.crewhead{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--ink2)}
.crewhead b{font-family:var(--display);font-size:18px;text-transform:uppercase;font-weight:400}
.crewhead em{font-style:normal;font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.member{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}
.member:last-child{border-bottom:none}
.mrank{font-family:var(--display);font-size:15px;color:var(--dimmer);width:22px}
.mname{font-family:var(--display);font-size:18px;text-transform:uppercase;font-weight:400;flex:1}
.mname u{text-decoration:none;color:var(--red)}
.mbar{width:34%;height:8px;background:var(--ink3);min-width:70px}
.mbar i{display:block;height:100%;background:var(--paper)}
.member.me .mbar i{background:var(--red)}
.mday{font-family:var(--cond);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);width:76px;text-align:right}
.mday b{color:var(--paper);font-weight:600}

/* ---------- toast / modal ---------- */
.toast{position:fixed;left:50%;bottom:104px;transform:translateX(-50%) translateY(20px);background:var(--paper);color:var(--ink);font-family:var(--display);font-size:15px;text-transform:uppercase;letter-spacing:.04em;padding:14px 24px;opacity:0;pointer-events:none;transition:.22s;z-index:200;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.86);display:none;place-items:center;z-index:150;padding:20px}
.modal.on{display:grid}
.mbox{background:var(--ink);border:1px solid var(--line);max-width:460px;width:100%;padding:32px}
.mbox h3{font-family:var(--display);font-size:30px;text-transform:uppercase;line-height:1;margin-bottom:14px}
.mbox p{color:var(--dim);font-size:14px;line-height:1.6;margin-bottom:20px}
.mbox input{width:100%;background:var(--ink2);border:1px solid var(--line);color:var(--paper);padding:14px;font-size:15px;margin-bottom:12px}
.mbox input:focus{outline:none;border-color:var(--red)}
.finish{text-align:center;padding:30px 0}
.finish .stamp{font-family:var(--display);font-size:clamp(40px,9vw,80px);line-height:.9;text-transform:uppercase;color:var(--red)}

/* ---------- bottom bar ---------- */
.stickybar{position:fixed;left:0;right:0;bottom:0;background:var(--ink);border-top:1px solid var(--line);padding:12px 20px;z-index:60;display:none}
.stickybar.on{display:block}
.stickyinner{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:16px}
.stickyinner .txt{flex:1;min-width:0}
.stickyinner .txt b{display:block;font-family:var(--display);font-size:16px;text-transform:uppercase;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stickyinner .txt span{font-family:var(--cond);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.stickyinner .btn{width:auto;flex-shrink:0}

footer{border-top:1px solid var(--line);margin-top:50px;padding:26px 0 10px;color:var(--dimmer);font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- public: photo placeholders ---------- */
.photo{border:1px solid var(--line);background:repeating-linear-gradient(45deg,#0E0E11,#0E0E11 12px,#131317 12px,#131317 24px);display:grid;place-items:center;text-align:center;padding:34px 24px}
.photo b{font-family:var(--cond);font-size:12px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);display:block}
.photo em{font-style:normal;font-family:var(--cond);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:10px}
.photo span{font-size:12px;color:#55555C;display:block;margin-top:10px;max-width:38ch;line-height:1.6}
.photo.tall{min-height:420px}
.photo.wide{min-height:280px}
.photo.strip{min-height:170px}

/* ---------- public: home ---------- */
.pagehero{padding:70px 0 40px}
.hero2{display:grid;grid-template-columns:1.25fr 1fr;gap:44px;align-items:center}
.kicker{font-family:var(--display);font-size:clamp(30px,5.4vw,58px);line-height:.95;text-transform:uppercase}
.heroctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.heroctas .btn{width:auto}
.notlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 4px}
.notlist div{background:var(--ink);padding:18px 16px}
.notlist s{text-decoration:line-through;text-decoration-color:var(--red);text-decoration-thickness:2px;font-family:var(--display);font-size:17px;text-transform:uppercase;color:var(--dimmer)}
.notlist.yes div{background:var(--paper)}
.notlist.yes b{font-family:var(--display);font-size:19px;text-transform:uppercase;color:var(--ink);font-weight:400}
.band{border-top:1px solid var(--line);padding:56px 0}
.band h2{font-family:var(--display);font-size:clamp(28px,4.4vw,44px);line-height:1;text-transform:uppercase;margin-bottom:10px}
.band .lede{margin-bottom:26px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.steps div{background:var(--ink);padding:24px 20px}
.steps i{font-style:normal;font-family:var(--cond);font-size:12px;letter-spacing:.3em;color:var(--red);display:block;margin-bottom:12px}
.steps b{font-family:var(--display);font-size:23px;text-transform:uppercase;font-weight:400;display:block;margin-bottom:10px}
.steps p{color:var(--dim);font-size:13.5px;line-height:1.6}
.demo{border:1px solid var(--line);padding:38px 32px;background:var(--ink2)}
.demo .tday{font-size:12px}
.demo .tmain{font-size:clamp(36px,7vw,64px);margin:10px 0}
.demo .tsub{font-size:16px}
.demo .fake{display:flex;align-items:center;gap:14px;margin-top:24px;padding:16px;border:1px solid var(--line)}
.demo .fake .box{width:26px;height:26px}
.demo .fake span{font-family:var(--display);font-size:17px;text-transform:uppercase}
.split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.split>*{min-width:0}  /* grid items default to min-width:auto and would otherwise widen the track */
/* wider-left variant; declared here (not inline) so the mobile
   single-column rule below can still override it */
.split.split-115{grid-template-columns:1.15fr 1fr}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.quotes div{background:var(--ink);padding:26px 22px}
.quotes p{font-family:var(--display);font-size:19px;line-height:1.2;text-transform:uppercase;margin-bottom:14px}
.quotes small{font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.bigcta{border:1px solid var(--line);padding:52px 34px;text-align:center;margin:0 0 10px;background:var(--ink2)}
.bigcta h2{font-family:var(--display);font-size:clamp(32px,6vw,62px);line-height:.95;text-transform:uppercase;margin-bottom:16px}
.bigcta .btn{width:auto;margin-top:22px}

/* ---------- public: the code ---------- */
.creedlist{border-top:1px solid var(--line)}
.creedlist>div{display:grid;grid-template-columns:78px 1fr;gap:20px;padding:26px 0;border-bottom:1px solid var(--line);align-items:start}
.creedlist i{font-style:normal;font-family:var(--display);font-size:32px;color:var(--red);line-height:1}
.creedlist b{font-family:var(--display);font-size:clamp(21px,3vw,30px);text-transform:uppercase;font-weight:400;display:block;margin-bottom:10px;line-height:1.05}
.creedlist p{color:var(--dim);font-size:14.5px;line-height:1.65;max-width:64ch}

/* ---------- public: pricing ---------- */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.tier{background:var(--ink);padding:30px 24px;display:flex;flex-direction:column}
.tier.best{background:var(--ink2);border-top:3px solid var(--red)}
.tier .tag{font-family:var(--cond);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--red);min-height:16px}
.tier h3{font-family:var(--display);font-size:29px;text-transform:uppercase;margin:10px 0 4px;line-height:1.05;min-height:2.1em}
.tier .price{font-family:var(--display);font-size:52px;line-height:1;margin:16px 0 4px}
.tier .price small{font-size:15px;color:var(--dim)}
.tier .yr{font-family:var(--cond);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:22px}
.tier ul{list-style:none;flex:1;margin-bottom:24px}
.tier li{font-size:13.5px;color:var(--paper);padding:9px 0 9px 24px;border-bottom:1px solid var(--line);position:relative;line-height:1.45}
.tier li:before{content:"";position:absolute;left:0;top:14px;width:9px;height:9px;background:var(--red)}
.tier li.off{color:var(--dimmer)}
.tier li.off:before{background:none;border:1px solid var(--dimmer)}
.faq{border-top:1px solid var(--line);margin-top:14px}
.faq div{border-bottom:1px solid var(--line);padding:22px 0}
.faq b{font-family:var(--display);font-size:19px;text-transform:uppercase;font-weight:400;display:block;margin-bottom:9px}
.faq p{color:var(--dim);font-size:14px;line-height:1.65;max-width:70ch}

/* ---------- public: invite ---------- */
.invitecard{border:1px solid var(--line);max-width:520px;margin:0 auto;padding:0}
.invitecard .top{background:var(--red);padding:22px 26px;font-family:var(--display);font-size:19px;text-transform:uppercase;line-height:1.15}
.invitecard .body{padding:28px 26px}
.invitecard .body h2{font-family:var(--display);font-size:38px;text-transform:uppercase;line-height:1;margin:8px 0 14px}

footer nav{display:flex;gap:20px;flex-wrap:wrap}
footer nav button{font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dimmer)}
footer nav button:hover{color:var(--red)}

@media(max-width:820px){
  .hero2,.split,.split.split-115{grid-template-columns:1fr;gap:26px}
  .photo.tall{min-height:260px}
  .creedlist>div{grid-template-columns:52px 1fr;gap:12px}
  .creedlist i{font-size:24px}
  .band{padding:40px 0}
  .demo{padding:26px 20px}
}

/* ---------- legal pages ---------- */
.legal{max-width:74ch}
.legal h3{font-family:var(--display);font-size:clamp(19px,2.6vw,25px);text-transform:uppercase;font-weight:400;
  line-height:1.1;margin:38px 0 14px;padding-top:22px;border-top:1px solid var(--line)}
.legal h3:first-child{margin-top:0;border-top:none;padding-top:0}
.legal p{color:var(--dim);font-size:14.5px;line-height:1.75;margin-bottom:14px}
.legal p.capsblock{color:var(--paper);text-transform:uppercase;font-weight:700;font-size:13px;letter-spacing:.02em;
  line-height:1.7;border-left:3px solid var(--red);padding:14px 0 14px 18px;background:var(--ink2);margin:18px 0}
.legal .callout{border:1px solid var(--line);border-left:3px solid var(--red);background:var(--ink2);
  padding:18px 20px;color:var(--paper);font-size:14px;line-height:1.7;margin:18px 0}
.legal ul.lglist{list-style:none;margin:6px 0 18px}
.legal ul.lglist li{color:var(--dim);font-size:14.5px;line-height:1.7;padding:11px 0 11px 26px;
  border-bottom:1px solid var(--line);position:relative}
.legal ul.lglist li:before{content:"";position:absolute;left:0;top:19px;width:9px;height:9px;border:1px solid var(--red)}
.legal ul.lglist li b{color:var(--paper)}
.ph{color:var(--red);font-family:var(--cond);font-weight:700;letter-spacing:.08em;white-space:nowrap}
.lgmeta{font-family:var(--cond);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--dimmer);margin-top:16px}
.lgnav{display:flex;flex-wrap:wrap;gap:10px;margin:40px 0 50px;padding-top:26px;border-top:1px solid var(--line)}
.lgnav button{font-family:var(--cond);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:9px 14px;border:1px solid var(--line);color:var(--dim)}
.lgnav button:hover{border-color:var(--paper);color:var(--paper)}
.lgnav button.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* ---------- signup / waiver gate ---------- */
.signbox{max-width:620px}
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--cond);font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--dimmer);margin-bottom:8px}
.field input{width:100%;background:var(--ink2);border:1px solid var(--line);color:var(--paper);padding:14px;font-size:15px}
.field input:focus{outline:none;border-color:var(--red)}
.field input.sig{font-family:var(--display);font-size:24px;letter-spacing:.02em;padding:16px 14px}
.scrollbox{border:1px solid var(--line);background:var(--ink2);max-height:230px;overflow-y:auto;padding:20px;margin:8px 0 22px}
.scrollbox p{color:var(--dim);font-size:13.5px;line-height:1.7;margin-bottom:12px}
.scrollbox p.capsblock{color:var(--paper);text-transform:uppercase;font-weight:700;font-size:12px;line-height:1.65;
  border-left:3px solid var(--red);padding-left:14px;margin:14px 0}
.scrollbox p:last-child{margin-bottom:0}
.ck{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line);margin-bottom:10px;
  width:100%;text-align:left;cursor:pointer}
.ck:hover{border-color:var(--dim)}
.ck .box{width:24px;height:24px;border:2px solid var(--paper);flex-shrink:0;display:grid;place-items:center;
  font-size:15px;line-height:1;margin-top:1px}
.ck.on{border-color:var(--red)}
.ck.on .box{background:var(--red);border-color:var(--red);color:#fff}
.ck span{font-size:13.5px;line-height:1.6;color:var(--paper)}
.ck span u{text-decoration:none;color:var(--red);border-bottom:1px solid var(--red)}
.ck.opt span{color:var(--dim)}
.signed{border:1px solid var(--line);border-left:3px solid var(--green);background:var(--ink2);padding:16px 18px;
  margin:26px 0 40px;font-size:13px;color:var(--dim);line-height:1.6}
.signed b{color:var(--paper);font-family:var(--display);font-weight:400;font-size:15px;text-transform:uppercase;display:block;margin-bottom:5px}
.freebadge{display:inline-block;font-family:var(--cond);font-size:12px;font-weight:700;letter-spacing:.26em;
  text-transform:uppercase;background:var(--red);color:#fff;padding:6px 12px;margin-bottom:18px}
.getlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.getlist div{background:var(--ink);padding:20px}
.getlist b{font-family:var(--display);font-size:19px;text-transform:uppercase;font-weight:400;display:block;margin-bottom:8px}
.getlist p{color:var(--dim);font-size:13.5px;line-height:1.6}
footer .legalrow{display:flex;gap:16px;flex-wrap:wrap;width:100%;border-top:1px solid var(--line);
  margin-top:16px;padding-top:16px}

@media(max-width:600px){
  .hbar{flex-wrap:wrap;height:auto;padding:10px 20px 0;gap:8px}
  .logo .lg-mark{height:24px;width:24px}
  .logo .lg-word{height:14px}
  .hspace{display:none}
  .nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line);margin-top:4px}
  .nav button{flex:1;text-align:center;padding:11px 4px;font-size:12px;letter-spacing:.1em}
  h1.big{font-size:40px}
  .bigcta{padding:34px 20px}
  .heroctas .btn{width:100%}
  .tiers{border:none}
}
@media(max-width:820px){
  .cols{grid-template-columns:1fr;gap:30px}
  .tagline{display:none}
  .hbar{height:58px;gap:10px}
  .nav button{padding:8px 9px;font-size:12px;letter-spacing:.08em}
  .logo{font-size:20px}
  .avatar{display:none}
}

/* =======================================================================
   MULTI-PAGE ADDITIONS
   ======================================================================= */
a{color:inherit;text-decoration:none}
.nav a{font-family:var(--cond);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);padding:8px 14px;border-bottom:2px solid transparent;display:inline-block}
.nav a:hover{color:var(--paper)}
.nav a.on{color:var(--paper);border-bottom-color:var(--red)}
a.avatar{text-decoration:none}
a.btn.hbtn{width:auto;padding:9px 16px;font-size:13px}
a.chip.hlink{border:none;padding:8px 4px}
/* the sign-in chip is a real (secondary) button, so it needs to outrank the
   border:none above — hence the extra .signin on the selector */
.btn.hbtn.join{font-weight:700;letter-spacing:.14em}
a.chip.hlink.signin{border:1px solid var(--line);padding:8px 14px;color:var(--paper)}
a.chip.hlink.signin:hover{border-color:var(--red);color:var(--red)}
.card{text-decoration:none}
a.card{display:flex}
.ctanote{margin-top:12px;font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dimmer)}
.libcount{font-family:var(--cond);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--dimmer);
  padding-bottom:18px}
footer{display:block}
footer .frow{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer nav a{font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dimmer)}
footer nav a:hover{color:var(--red)}
footer .smallprint{padding-top:16px;color:#4A4A50;font-family:var(--body);font-size:11.5px;letter-spacing:0;
  text-transform:none;line-height:1.7;max-width:88ch}
footer .smallprint a{color:#6A6A72;border-bottom:1px solid #33333A}
footer .smallprint a:hover{color:var(--red)}
.signed a{color:var(--red);border-bottom:1px solid var(--red)}
.legal a{color:var(--red);border-bottom:1px solid rgba(232,52,28,.4)}
.legal a:hover{border-bottom-color:var(--red)}
.mbox a.btn{display:flex}
.notfound{padding:100px 0 80px;text-align:center}
.notfound .stamp{font-family:var(--display);font-size:clamp(60px,16vw,150px);line-height:.85;color:var(--red);
  text-transform:uppercase}
.skip{position:absolute;left:-9999px;top:0;background:var(--paper);color:var(--ink);padding:12px 18px;z-index:999;
  font-family:var(--cond);letter-spacing:.2em;text-transform:uppercase}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
@media(max-width:600px){
  .nav a{flex:1;text-align:center;padding:11px 4px;font-size:12px;letter-spacing:.1em}
}
@media print{
  header,.stickybar,footer nav,.toast,.modal{display:none!important}
  body{background:#fff;color:#000;padding:0}
  .legal p,.legal li{color:#222}
}

/* grid cells: draw borders on the cards so a partly-filled row has no grey filler */
.grid{gap:0;background:transparent;border-width:1px 0 0 1px}
.grid .card{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.getlist,.steps,.notlist,.quotes,.stats,.spec,.tiers{background:transparent}
.getlist{border-width:1px 0 0 1px}
.getlist>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{border-width:1px 0 0 1px}
.steps>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.quotes{border-width:1px 0 0 1px}
.quotes>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.notlist{border-width:1px 0 0 1px}
.notlist>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats{border-width:1px 0 0 1px}
.stats>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}

/* ---------- forms ---------- */
.field select{width:100%;background:var(--ink2);border:1px solid var(--line);color:var(--paper);padding:14px;
  font-size:15px;font-family:var(--body);appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(50% + 2px),calc(100% - 14px) calc(50% + 2px);
  background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.field select:focus{outline:none;border-color:var(--red)}
.field textarea.notes{margin:0}
.ilink{color:var(--red);border-bottom:1px solid rgba(232,52,28,.45)}
.ilink:hover{border-bottom-color:var(--red)}
.legal code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em;background:var(--ink3);
  padding:2px 6px;color:var(--paper)}
.lgnav a{font-family:var(--cond);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:9px 14px;border:1px solid var(--line);color:var(--dim)}
.lgnav a:hover{border-color:var(--paper);color:var(--paper)}
.lgnav a.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* global callout (was previously scoped to .legal only) */
.callout{border:1px solid var(--line);border-left:3px solid var(--red);background:var(--ink2);
  padding:18px 20px;color:var(--paper);font-size:14px;line-height:1.7;margin:18px 0}
.callout a{color:var(--red);border-bottom:1px solid rgba(232,52,28,.45)}

/* header fits a longer nav without wrapping */
.hbar{gap:14px}
.nav a{padding:8px 11px;letter-spacing:.1em;white-space:nowrap}
@media(max-width:1180px){ .tagline{display:none} }
@media(max-width:1020px){ .nav a{padding:8px 8px;font-size:13px;letter-spacing:.06em} .logo .lg-word{height:14px} }
@media(max-width:860px){
  .hbar{flex-wrap:wrap;height:auto;padding:10px 20px 0;gap:8px}
  .hspace{display:none}
  .nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line);margin-top:4px}
  .nav a{flex:1;text-align:center;padding:11px 4px;font-size:12px;letter-spacing:.08em}
}
.tagline{white-space:nowrap}
a.chip.hlink{white-space:nowrap}
a.btn.hbtn{white-space:nowrap}
@media(max-width:1320px){ .tagline{display:none} }

/* ---------- the vault: workouts & meal plans ---------- */
.filterset{margin-bottom:2px}
.filterset .flab{font-family:var(--cond);font-size:11px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--dimmer);margin:16px 0 8px}
.filterset .filters{padding:0 0 6px}
.wblock{border-top:1px solid var(--line);padding:26px 0}
.wblock:first-child{border-top:none;padding-top:0}
.wblock h3{font-family:var(--display);font-size:clamp(19px,2.6vw,25px);text-transform:uppercase;font-weight:400;
  line-height:1.1;margin-bottom:14px}
.wblock p{color:var(--dim);font-size:14.5px;line-height:1.7}
.wblock .rules{border-top:1px solid var(--line)}
.mealrow{border-bottom:1px solid var(--line);padding:14px 0}
.mealrow:last-child{border-bottom:none}
.mealrow b{font-family:var(--cond);font-size:12px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;
  color:var(--red);display:block;margin-bottom:8px}
.mealrow ul{list-style:none}
.mealrow li{color:var(--paper);font-size:14px;line-height:1.6;padding:6px 0 6px 22px;position:relative}
.mealrow li:before{content:"";position:absolute;left:0;top:14px;width:8px;height:1px;background:var(--red)}
.grocery{display:flex;flex-wrap:wrap;gap:8px}
.grocery span{font-family:var(--cond);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--line);padding:8px 12px;color:var(--paper)}
.levelkey{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border:1px solid var(--line);
  border-width:1px 0 0 1px;margin-top:20px}
.levelkey>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px}
.levelkey b{font-family:var(--display);font-size:20px;text-transform:uppercase;font-weight:400;display:block;margin:10px 0 8px}
.levelkey p{color:var(--dim);font-size:13.5px;line-height:1.6}
.ladder{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));border:1px solid var(--line);
  border-width:1px 0 0 1px;margin-top:22px}
.ladder>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 20px}
.ladder i{font-style:normal;font-family:var(--cond);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--red);display:block;margin-bottom:10px}
.ladder b{font-family:var(--display);font-size:22px;text-transform:uppercase;font-weight:400;display:block;margin-bottom:10px}
.ladder p{color:var(--dim);font-size:13.5px;line-height:1.6;margin-bottom:14px}
.ladder a{font-family:var(--cond);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);
  border-bottom:1px solid var(--red);display:inline-block}
.bignum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--line);
  border-width:1px 0 0 1px;margin:22px 0}
.bignum>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 18px}
.bignum b{font-family:var(--display);font-size:40px;line-height:1;display:block;margin-bottom:8px}
.bignum span{font-family:var(--cond);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}

/* mobile nav wraps into a tidy grid instead of clipping the last item */
@media(max-width:700px){
  .nav{flex-wrap:wrap}
  .nav a,.nav button{flex:1 1 30%;min-width:0;padding:11px 2px;font-size:11.5px;letter-spacing:.06em}
}
@media(max-width:420px){
  .nav a,.nav button{flex:1 1 30%;font-size:11px;letter-spacing:.04em}
}
@media(max-width:700px){ .nav .opt{display:none} }

/* ---------- challenge pulse ---------- */
.pulsebox{border:1px solid var(--line);background:var(--ink2);padding:22px}
.pulsehead{margin-bottom:16px}
.pulsehead b{font-family:var(--display);font-size:20px;text-transform:uppercase;font-weight:400;display:block}
.pulsehead em{font-style:normal;font-family:var(--cond);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--dimmer);display:block;margin-top:6px}
.pulsetabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.pulsetabs .chip{font-size:11.5px;padding:7px 11px;letter-spacing:.1em}
.pulsemsgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin-bottom:18px}
.pmsgbtn{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);padding:11px 12px;
  font-size:13.5px;color:var(--paper);line-height:1.35}
.pmsgbtn:hover{border-color:var(--dim);background:var(--ink3)}
.pmsgbtn.on{border-color:var(--red);background:rgba(232,52,28,.10)}
.pmsgbtn .pe{font-size:17px;flex-shrink:0;line-height:1}
.pulsestatus{margin-bottom:16px}
.pulsestatus .flab{font-family:var(--cond);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--dimmer);display:block;margin-bottom:8px}
.statusrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px}
.statusbtn{border:1px solid var(--line);padding:12px 8px;font-family:var(--cond);font-size:12px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--dim);display:flex;flex-direction:column;align-items:center;gap:6px}
.statusbtn span{font-size:20px;line-height:1}
.statusbtn:hover{color:var(--paper);border-color:var(--dim)}
.statusbtn.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.pulsefine{font-family:var(--cond);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dimmer);
  margin-top:12px;line-height:1.6}
.pulsedone{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--line);
  border-left:3px solid var(--green);background:var(--ink);padding:16px}
.pulsedone .pmsg{font-size:16px;color:var(--paper);flex:1;min-width:200px}
.pulsedone .pstatus{font-family:var(--cond);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

.pulsestats{border:1px solid var(--line);padding:22px;background:var(--ink2)}
.psthead{display:flex;align-items:baseline;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.psthead b{font-family:var(--display);font-size:38px;line-height:1}
.psthead span{font-family:var(--cond);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.mixrow{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.mixlab{font-family:var(--cond);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);
  width:130px;flex-shrink:0}
.mixbar{flex:1;height:10px;background:var(--ink3);display:block;min-width:60px}
.mixbar i{display:block;height:100%;background:var(--dim)}
.mixbar i.k-locked{background:var(--red)}
.mixbar i.k-good{background:#C9C6BF}
.mixbar i.k-hanging{background:#7A7A80}
.mixbar i.k-strugg{background:#4E4E55}
.mixbar i.k-loving{background:var(--green)}
.mixpct{font-family:var(--cond);font-size:12px;letter-spacing:.08em;color:var(--paper);width:38px;text-align:right}
.trending{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.trending .flab{font-family:var(--cond);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--red);display:block;margin-bottom:8px}
.trending b{font-size:17px;font-weight:400;color:var(--paper)}

.pulserow{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.pulserow:last-child{border-bottom:none}
.pulserow.me{background:linear-gradient(90deg,rgba(232,52,28,.07),transparent 60%);
  padding-left:12px;margin-left:-12px}
.pav{width:34px;height:34px;border:1px solid var(--line);display:grid;place-items:center;flex-shrink:0;
  font-family:var(--display);font-size:12px;color:var(--dim)}
.pulserow.me .pav{border-color:var(--red);color:var(--red)}
.pbody{flex:1;min-width:0}
.pmeta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:5px}
.pmeta b{font-family:var(--display);font-size:14px;text-transform:uppercase;font-weight:400}
.pmeta a{font-family:var(--cond);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.pmeta span{font-family:var(--cond);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer)}
.pbody .pmsg{font-size:15px;color:var(--paper);line-height:1.4}
.pulserow .pstatus{display:flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0;padding-left:10px}
.pulserow .pstatus span{font-family:var(--cond);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dimmer)}
.potd{border:1px solid var(--line);border-left:3px solid var(--red);background:var(--ink2);padding:24px}
.potd .flab{font-family:var(--cond);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--red);
  display:block;margin-bottom:12px}
.potd .big{font-family:var(--display);font-size:clamp(22px,3.4vw,34px);line-height:1.15;text-transform:none;
  font-weight:400;margin-bottom:12px}
.potd .who{font-family:var(--cond);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
@media(max-width:600px){
  .mixlab{width:112px;font-size:11px}
  .pulsemsgs{grid-template-columns:1fr}
}

/* ---------- support page ---------- */
.amounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px}
.amt{border:1px solid var(--line);padding:18px 10px;font-family:var(--display);font-size:22px;color:var(--paper)}
.amt:hover{border-color:var(--dim)}
.amt.on{background:var(--red);border-color:var(--red);color:#fff}
.mbox code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em;background:var(--ink3);
  padding:2px 6px;color:var(--paper)}

/* ---------- the meal plan page ---------- */
.pullquote{font-family:var(--display);font-size:clamp(20px,3vw,30px);line-height:1.2;text-transform:none;
  color:var(--paper);border-left:3px solid var(--red);padding:16px 0 16px 22px;margin:22px 0}
.mpsub{font-family:var(--display);font-size:clamp(18px,2.4vw,23px);text-transform:uppercase;font-weight:400;
  margin:32px 0 12px;color:var(--paper)}
.twocol{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-width:1px 0 0 1px}
.twocol>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px}
.twocol i{font-style:normal;font-family:var(--display);font-size:21px;text-transform:uppercase;color:var(--red);
  display:block;margin-bottom:12px}
.twocol p{color:var(--dim);font-size:14px;line-height:1.7}
.plate{display:grid;grid-template-columns:260px 1fr;gap:30px;align-items:center;border:1px solid var(--line);
  background:var(--ink2);padding:28px;margin:26px 0}
.platediag{position:relative;width:220px;height:220px;border-radius:50%;overflow:hidden;border:3px solid var(--paper);
  display:block;margin:0 auto}
.platediag span{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--display);font-size:26px;color:var(--ink);text-align:center;line-height:1;overflow:hidden}
.platediag em{font-style:normal;font-family:var(--cond);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;
  margin-top:5px;line-height:1.25;padding:0 6px}
.platediag .pv{left:0;top:0;width:50%;height:100%;background:var(--paper)}
.platediag .pp{right:0;top:0;width:50%;height:50%;background:var(--red);color:#fff}
.platediag .pc{right:0;bottom:0;width:50%;height:50%;background:#8A8A8F;color:var(--ink)}
.platetext b{font-family:var(--display);font-size:23px;text-transform:uppercase;font-weight:400;display:block;margin-bottom:12px}
.platetext p{color:var(--dim);font-size:14.5px;line-height:1.7;margin-bottom:12px}
.platetext .fine{font-size:12.5px;color:var(--dimmer)}
.methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border:1px solid var(--line);
  border-width:1px 0 0 1px;margin:8px 0 18px}
.methods>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px}
.methods b{font-family:var(--display);font-size:17px;text-transform:uppercase;font-weight:400;display:block;margin-bottom:7px}
.methods span{color:var(--dim);font-size:13.5px;line-height:1.6}
.lvltable{border:1px solid var(--line)}
.lvlhead,.lvlrow{display:grid;grid-template-columns:1.1fr 1.4fr 1.5fr;gap:0}
.lvlhead{background:var(--ink);border-bottom:1px solid var(--line)}
.lvlhead span{font-family:var(--cond);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--red);padding:14px 16px}
.lvlrow{border-bottom:1px solid var(--line)}
.lvlrow:last-child{border-bottom:none}
.lvlrow span{padding:16px;font-size:14px;color:var(--dim);line-height:1.5;border-right:1px solid var(--line)}
.lvlrow span:last-child{border-right:none}
.lvlrow b{font-family:var(--display);font-size:17px;text-transform:uppercase;font-weight:400;color:var(--paper)}
.daykey{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));border:1px solid var(--line);
  border-width:1px 0 0 1px;margin-top:20px}
.daykey>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px}
.daykey b{font-family:var(--display);font-size:16px;text-transform:uppercase;font-weight:400;display:block;margin-bottom:7px;color:var(--red)}
.daykey p{color:var(--dim);font-size:13.5px;line-height:1.6}
a.prow{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line);font-size:13px}
a.prow:last-child{border-bottom:none}
a.prow:hover{background:var(--ink2)}
a.prow span:first-child{font-family:var(--display);font-size:15px;text-transform:uppercase;font-weight:400}
a.prow span:last-child{font-family:var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
@media(max-width:820px){
  .plate{grid-template-columns:1fr;gap:22px}
  .twocol{grid-template-columns:1fr}
  .lvlhead{display:none}
  .lvlrow{grid-template-columns:1fr}
  .lvlrow span{border-right:none;border-bottom:1px solid var(--line)}
  .lvlrow span:last-child{border-bottom:none}
}

/* ---------- site-wide support band ----------
   Sits high on the page, right after the first section, rather than buried
   above the footer. Quieter than a full-width banner, harder to miss than
   a footer link. */
.supportband{display:flex;align-items:center;gap:34px;flex-wrap:wrap;justify-content:space-between;
  border:1px solid var(--line);border-left:3px solid var(--red);
  background:linear-gradient(135deg,#17151A 0%,var(--ink2) 55%);
  padding:26px 30px;margin:34px 0}
.supportband .sbtxt{flex:1 1 340px;min-width:0}
.sbeyebrow{font-family:var(--cond);font-size:10.5px;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--red);margin-bottom:9px}
.supportband b{font-family:var(--display);font-size:21px;text-transform:uppercase;font-weight:400;
  display:block;margin-bottom:8px;line-height:1.15}
.supportband p{color:var(--dim);font-size:13.5px;line-height:1.6;max-width:62ch;margin:0}
.supportband .sbgive{flex:0 1 auto;display:flex;flex-direction:column;gap:14px;min-width:0}
.sbtiers{display:flex;gap:8px}
.sbtier{flex:1 1 0;min-width:0;border:1px solid var(--line);background:var(--ink);padding:11px 12px;
  text-align:center;text-decoration:none;transition:border-color .12s,background .12s}
.sbtier:hover{border-color:var(--red);background:var(--ink3)}
.sbtier b{font-family:var(--display);font-size:19px;margin:0 0 3px;color:var(--paper);text-transform:none}
.sbtier span{display:block;font-family:var(--cond);font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--dimmer);line-height:1.35}
.supportband .sbact{display:flex;align-items:center;gap:14px}
.supportband .btn{width:auto;padding:11px 26px;font-size:14px;white-space:nowrap;flex:1}
.supportband .sbwhy{font-family:var(--cond);font-size:11.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);white-space:nowrap}
.supportband .sbwhy:hover{color:var(--paper)}
@media(max-width:860px){
  .supportband{padding:22px;gap:20px}
  .supportband .sbgive{flex:1 1 100%}
}
@media(max-width:400px){
  .supportband .sbtxt{min-width:0;flex:1 1 100%}
  .sbtiers{flex-wrap:wrap}
  .sbtier{flex:1 1 calc(33% - 6px)}
  .supportband .sbwhy{white-space:normal}
}
@media print{ .supportband{display:none} }

/* the Support item in the main nav gets a red dot so it reads as the
   one non-navigational action up there */
.nav a.sup, .nav button.sup{color:var(--red)}
.nav a.sup:hover, .nav button.sup:hover{color:#FF6A52}
/* on mobile Support wraps to its own line — let it own that line on purpose
   instead of sitting orphaned and centred */
@media(max-width:700px){
  .nav a.sup{flex:1 1 100%;text-align:center;border-top:1px solid var(--line);
    margin-top:2px;padding-top:10px}
}

/* ---------- full programs & tests ---------- */
.proggrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:0;
  border:1px solid var(--line);border-width:1px 0 0 1px}
.progcard{background:var(--ink);padding:26px 24px;display:flex;flex-direction:column;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.progcard:hover{background:var(--ink2)}
.progmeta{display:flex;justify-content:space-between;gap:12px;font-family:var(--cond);font-size:11px;
  font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.progmeta span:last-child{color:var(--dimmer)}
.progcard h3{font-family:var(--display);font-size:26px;line-height:1.05;text-transform:uppercase;margin-bottom:12px}
.proghook{color:var(--dim);font-size:14px;line-height:1.65;margin-bottom:18px}
.progspec{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));border:1px solid var(--line);
  border-width:1px 0 0 1px;margin-bottom:18px}
.progspec>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px}
.progspec i{display:block;font-style:normal;font-family:var(--cond);font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--dimmer);margin-bottom:6px}
.progspec b{font-family:var(--body);font-size:12.5px;font-weight:600;color:var(--paper);line-height:1.4}
.progcard .flab{font-family:var(--cond);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--dimmer);display:block;margin-bottom:6px}
.progcard .rules{border-top:1px solid var(--line);margin-bottom:16px}
.progcard .rules li{font-size:13.5px;padding:10px 0 10px 24px}
.progcard .rules li:before{top:17px;width:8px;height:8px}
.progwho{color:var(--dim);font-size:13px;line-height:1.6;font-style:italic;margin-bottom:20px;flex:1}
.progcard .btn{margin-top:auto}
@media(max-width:600px){ .proggrid{grid-template-columns:1fr} }

/* difficulty filter row — sits under the category chips */
.dfilters{padding:0 0 18px;margin-top:-10px}
.dfilters .chip{opacity:.92}
.dfilters .chip .dots{margin-right:2px;vertical-align:middle}
.dfilters .chip .dot{width:5px;height:5px}

/* ---- real photography in the slots (was: placeholder swatches) ---- */
.photo.shot{padding:0;overflow:hidden;display:block;line-height:0;background:#000;position:relative}
/* each photo keeps its own crop — the width/height attributes reserve the space
   so nothing jumps while they load */
.photo.shot img{width:100%;height:auto;display:block}
.photo.shot.tall,.photo.shot.wide,.photo.shot.strip{min-height:0}
/* a hair of red in the corner so the photos sit inside the brand, not beside it */
.photo.shot::after{content:'';position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 90px 10px rgba(0,0,0,.55)}


/* ---------- header sizing ----------
   The nav outgrew the 1080 wrap when Support was added, which pushed the
   Log In link off the right edge between roughly 960px and 1200px, and the
   tagline reappearing above 1320px did the same thing at desktop widths.
   The header legitimately needs more horizontal room than body copy, so it
   gets its own wider wrap and sheds optional items earlier. */
header .wrap{max-width:1280px}
@media(max-width:1520px){ .tagline{display:none} }
@media(max-width:1260px){
  .nav a,.nav button{padding:8px 9px;font-size:13px;letter-spacing:.09em}
}
@media(max-width:1150px){
  .nav .opt{display:none}
  .nav a,.nav button{padding:8px 12px;font-size:13.5px;letter-spacing:.12em}
}

.modalnote{border-left:3px solid var(--red);background:var(--ink3);padding:14px 16px;margin:16px 0 4px;text-align:left}
.modalnote b{display:block;font-family:var(--cond);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:7px;word-break:break-word}
.modalnote p{color:var(--dim);font-size:13px;line-height:1.6;margin:0}

.fieldhint{color:var(--dimmer);font-size:12.5px;line-height:1.55;margin:7px 0 0}
.fnumchip{font-family:var(--display);font-size:15px;letter-spacing:.04em;color:var(--red);
  border:1px solid var(--red);padding:5px 10px;margin-right:10px;line-height:1;white-space:nowrap;
  text-decoration:none;display:inline-block}
.fnumchip:hover{background:var(--red);color:var(--ink)}
@media(max-width:700px){ .fnumchip{display:none} }
.signupwarn{border-left:3px solid var(--red);background:rgba(232,52,28,.10);padding:14px 16px;
  margin:16px 0 4px;text-align:left}
.signupwarn b{display:block;font-family:var(--cond);font-size:12.5px;letter-spacing:.12em;
  text-transform:uppercase;margin-bottom:7px}
.signupwarn p{color:var(--dim);font-size:13px;line-height:1.6;margin:0}

.rememberrow{display:flex;gap:12px;align-items:flex-start;margin-top:20px;cursor:pointer}
.rememberrow input{width:18px;height:18px;flex-shrink:0;margin-top:2px;accent-color:var(--red)}
.rememberrow span{font-size:13.5px;line-height:1.55;color:var(--dim)}
.rememberrow b{display:block;color:var(--paper);font-size:14px;margin-bottom:3px}
.chip.signout{border:1px solid var(--line);color:var(--dim);margin-left:10px;padding:8px 12px}
.chip.signout:hover{border-color:var(--red);color:var(--red)}
@media(max-width:760px){ .chip.signout{display:none} }
a.prow{text-decoration:none}
a.prow:hover span:last-child{color:var(--red)}
.gwbox{border:1px solid var(--red);background:linear-gradient(180deg,#1B1114,#120E10);padding:28px 30px}
.gwsteps{display:grid;gap:10px;margin-top:20px}
.gwsteps>div{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:13px 16px;
  background:var(--ink)}
.gwsteps i{width:26px;height:26px;flex-shrink:0;display:grid;place-items:center;font-style:normal;
  font-family:var(--cond);font-size:13px;font-weight:700;border:1px solid var(--line);color:var(--dim)}
.gwsteps b{flex:1;min-width:0;font-family:var(--cond);font-size:14.5px;letter-spacing:.06em;
  text-transform:uppercase;font-weight:600}
.gwsteps span{font-family:var(--cond);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dimmer);flex-shrink:0}
.gwsteps .done i{border-color:var(--red);color:var(--red)}
.gwsteps .done b{color:var(--dim)}
@media(max-width:560px){
  .gwbox{padding:20px}
  .gwsteps>div{flex-wrap:wrap;gap:8px 12px}
  .gwsteps b{flex:1 1 100%;order:2}
  .gwsteps span{order:3}
}
.tablewrap{overflow-x:auto}
.prizetable{width:100%;border-collapse:collapse;font-size:14.5px}
.prizetable th{font-family:var(--cond);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dimmer);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);font-weight:600}
.prizetable td{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--dim)}
.prizetable td:first-child{color:var(--paper)}
.prizetable tfoot td{border-bottom:none;border-top:2px solid var(--red);color:var(--paper);font-size:16px}
.prizetable th:last-child,.prizetable td:last-child{text-align:right}

/* ---------- login ---------- */
.logincard{border:1px solid var(--line);background:var(--ink2)}
.logincard .lc-head{background:var(--red);padding:16px 22px;font-family:var(--display);font-size:17px;
  text-transform:uppercase;line-height:1.15}
.logincard .lc-body{padding:24px 22px}
.lc-pending{border:1px solid var(--line);padding:16px 18px;background:var(--ink3)}
.lc-pending>b{display:block;font-family:var(--cond);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:8px}
.lc-pending p{color:var(--dim);font-size:13.5px;line-height:1.6;margin:0}
.localnote{border-left:3px solid var(--red);background:var(--ink2);padding:18px 20px;margin-top:22px}
.localnote>b{display:block;font-family:var(--cond);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:8px}
.localnote p b{color:var(--paper)}
.localnote p{color:var(--dim);font-size:13.5px;line-height:1.65;margin:0}
.numlist{margin:18px 0 0;padding-left:20px}
.numlist li{color:var(--dim);font-size:14.5px;line-height:1.7;margin-bottom:14px}
.numlist li b{color:var(--paper)}
.hardline{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;
  border:1px solid var(--line);padding:26px 28px;background:var(--ink2)}
.hardline>div:first-child{flex:1 1 320px;min-width:0}
@media(max-width:640px){ .hardline{padding:20px} .hardline .heroctas{width:100%} }

/* ---------- verified (post email-confirmation landing) ---------- */
.verifiedmark{width:74px;height:74px;border:2px solid var(--red);display:grid;place-items:center}
.verifiedmark span{font-family:var(--display);font-size:34px;line-height:1;color:var(--red)}
.foundnum{border:1px solid var(--red);background:linear-gradient(180deg,#1B1114,#120E10);
  padding:22px 26px;margin-top:26px;display:inline-block;min-width:260px}
.foundnum i{display:block;font-family:var(--cond);font-size:11px;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--red);font-style:normal;margin-bottom:8px}
.foundnum b{display:block;font-family:var(--display);font-size:52px;line-height:1;font-weight:400}
.foundnum span{display:block;font-family:var(--cond);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dimmer);margin-top:8px}
@media(max-width:560px){
  .foundnum{min-width:0;width:100%;padding:18px 20px}
  .foundnum b{font-size:42px}
}

/* ---------- Founding 500 campaign ---------- */
.foundband{display:flex;align-items:center;gap:26px;flex-wrap:wrap;justify-content:space-between;
  border:1px solid var(--red);background:linear-gradient(180deg,#1B1114,#120E10);
  padding:20px 24px;margin:34px 0}
.foundband .fbtxt{flex:1 1 300px;min-width:260px}
.fbeyebrow{font-family:var(--cond);font-size:11px;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--red);margin-bottom:6px}
.foundband b{font-family:var(--display);font-size:19px;text-transform:uppercase;font-weight:400;
  display:block;margin-bottom:5px}
.foundband p{color:var(--dim);font-size:13px;line-height:1.6;margin:0;max-width:60ch}
.foundband .fbact{display:flex;align-items:center;gap:14px;flex-shrink:0}
.foundband .btn{width:auto;padding:11px 24px;font-size:14px;white-space:nowrap}
.foundband .fbwhy{font-family:var(--cond);font-size:12px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--dim);white-space:nowrap}
.foundband .fbwhy:hover{color:var(--paper)}
/* narrow screens: the action pair must be allowed to wrap, or the
   "How it works" link pushes the page wider than the viewport */
@media(max-width:520px){
  .foundband{padding:18px 16px;gap:16px}
  .foundband .fbact{flex-wrap:wrap;gap:10px 14px;width:100%}
  .foundband .fbact .btn{flex:1 1 100%;text-align:center}
  .fcount{flex:1 1 100%;min-width:0}
  /* the 260px floor is wider than the content box on a 320px screen */
  .foundband .fbtxt{min-width:0;flex:1 1 100%}
}
@media(max-width:400px){
  .supportband .sbtxt{min-width:0;flex:1 1 100%}
}

.fcount{flex:0 1 260px;min-width:230px}
.fcount .fnums{display:flex;align-items:baseline;gap:8px}
.fcount .fnums b{font-family:var(--display);font-size:34px;color:var(--red);margin:0;line-height:1}
.fcount .fnums span{font-family:var(--cond);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim)}
.fcount .fbar{height:6px;background:#26262B;margin:10px 0 8px;overflow:hidden}
.fcount .fbar i{display:block;height:100%;background:var(--red);transition:width .4s ease}
.fcount .fmeta{font-family:var(--cond);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dimmer);line-height:1.5}
.fcount.compact .fnums b{font-size:28px}

.foundcard,.unlockcard{border:1px solid var(--line);background:var(--ink2);display:grid;place-items:center;
  padding:28px 26px;min-height:0}
.foundcard .fcard-in,.unlockcard .fcard-in{width:100%}
.foundcard .fcount .fnums b{font-size:52px}
.fdates{font-size:12.5px;color:var(--dimmer);line-height:1.6;margin-top:16px;
  border-top:1px solid var(--line);padding-top:14px}
.unlockcard .flock{font-family:var(--display);font-size:44px;color:var(--red);line-height:1}
.unlockcard .flabel{font-family:var(--cond);font-size:13px;font-weight:700;letter-spacing:.3em;
  text-transform:uppercase;color:var(--paper);margin-top:10px}

.prizegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  border:1px solid var(--line);border-width:1px 0 0 1px;margin-top:20px}
.prizegrid>div{background:var(--ink);padding:20px;border-right:1px solid var(--line);
  border-bottom:1px solid var(--line)}
.prizegrid i{font-style:normal;font-family:var(--cond);font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--red);display:block;margin-bottom:8px}
.prizegrid b{font-family:var(--display);font-size:34px;display:block;line-height:1}
.prizegrid span{font-family:var(--cond);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);display:block;margin-top:6px}

.lgtable{width:100%;border-collapse:collapse;margin:16px 0;font-size:13.5px}
.lgtable th{font-family:var(--cond);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--dimmer);text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}
.lgtable td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--paper)}

@media(max-width:760px){
  .foundband{padding:18px 20px;gap:16px}
  .foundband .fbact{width:100%}
  .foundband .btn{flex:1;text-align:center;justify-content:center}
  .fcount{flex:1 1 100%}
  .foundcard,.unlockcard{min-height:0;padding:24px 20px}
  .foundcard .fcount .fnums b{font-size:40px}
}
@media print{ .foundband{display:none} }
