@import url(‘https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap’);
#fwn-june-cal{
–coral:#E26D5C;
–teal:#2A6F6B;
–gold:#E9C46A;
–sage:#9BB18F;
–cream:#FAF3E8;
–ink:#1F2A37;
–paper:#FCF8F1;
–white:#FFFFFF;
–muted:#7A7468;
–line:rgba(31,42,55,.10);
–shadow:0 1px 2px rgba(31,42,55,.04), 0 8px 24px rgba(31,42,55,.06);
–shadow-lift:0 2px 6px rgba(31,42,55,.08), 0 18px 40px rgba(31,42,55,.14);
–radius:14px;
–maxw:1240px;
–lead:var(–coral);
/* per-type accents */
–c-push:#E26D5C;
–c-pull:#2A6F6B;
–c-legs:#D9A93F;
–c-core:#7F9A72;
–c-full:#1F2A37;
–c-cardio:#9BB18F;
–c-rest:#B9B2A4;
–c-reset:#C99A4E;
}
#fwn-june-cal *{box-sizing:border-box}
#fwn-june-cal{ -webkit-text-size-adjust:100%; }
#fwn-june-cal{
margin:0;
font-family:’Inter’,system-ui,sans-serif;
color:var(–ink);
background:var(–cream);
background-image:radial-gradient(circle at 12% -5%, rgba(233,196,106,.16), transparent 42%),
radial-gradient(circle at 100% 0%, rgba(42,111,107,.08), transparent 40%);
background-attachment:fixed;
line-height:1.45;
-webkit-font-smoothing:antialiased;
}
#fwn-june-cal h1, #fwn-june-cal h2, #fwn-june-cal h3, #fwn-june-cal h4{font-family:’Poppins’,sans-serif;margin:0;color:var(–ink);font-weight:600;}
#fwn-june-cal .wrap{max-width:var(–maxw);margin:0 auto;padding:0 24px;}
#fwn-june-cal /* ———- Top bar ———- */
.topbar{
display:flex;align-items:center;justify-content:space-between;gap:16px;
padding:18px 24px;max-width:var(–maxw);margin:0 auto;
}
#fwn-june-cal .brand{display:flex;align-items:center;gap:11px;}
#fwn-june-cal .mark{
width:38px;height:38px;border-radius:11px;background:var(–coral);
display:grid;place-items:center;flex:none;box-shadow:0 4px 12px rgba(226,109,92,.35);
}
#fwn-june-cal .mark svg{width:22px;height:22px;display:block;}
#fwn-june-cal .brand .name{font-family:’Poppins’;font-weight:600;font-size:17px;letter-spacing:-.01em;line-height:1;}
#fwn-june-cal .brand .name b{color:var(–coral);font-weight:700;}
#fwn-june-cal .brand .name span{display:block;font-family:’Inter’;font-weight:500;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(–muted);margin-top:4px;}
#fwn-june-cal .topbar .links{display:flex;align-items:center;gap:20px;font-size:13px;font-weight:500;}
#fwn-june-cal .topbar .links a{color:var(–ink);text-decoration:none;opacity:.78;transition:opacity .15s,color .15s;display:inline-flex;align-items:center;gap:7px;}
#fwn-june-cal .topbar .links a:hover{opacity:1;color:var(–coral);}
#fwn-june-cal .topbar .links svg{width:15px;height:15px;}
@media(max-width:680px){ #fwn-june-cal .topbar .links .lbl{display:none;}
}
#fwn-june-cal /* ———- Hero ———- */
.hero{position:relative;padding:30px 0 26px;}
#fwn-june-cal .hero-inner{display:grid;grid-template-columns:1.4fr .9fr;gap:40px;align-items:end;}
#fwn-june-cal .eyebrow{font-family:’Poppins’;font-weight:600;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(–lead);margin-bottom:14px;}
#fwn-june-cal .hero h1{font-size:clamp(58px,9vw,116px);line-height:.86;letter-spacing:-.03em;font-weight:700;}
#fwn-june-cal .hero h1 .yr{font-weight:400;color:var(–teal);}
#fwn-june-cal .hero .lede{font-size:17px;line-height:1.55;color:#43505c;max-width:46ch;margin:20px 0 0;}
#fwn-june-cal .hero .lede b{color:var(–ink);font-weight:600;}
#fwn-june-cal .stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
#fwn-june-cal .stat{background:var(–white);border:1px solid var(–line);border-radius:999px;padding:9px 16px 9px 13px;display:flex;align-items:center;gap:9px;box-shadow:var(–shadow);}
#fwn-june-cal .stat .dot{width:9px;height:9px;border-radius:50%;background:var(–coral);flex:none;}
#fwn-june-cal .stat b{font-family:’Poppins’;font-weight:600;font-size:15px;}
#fwn-june-cal .stat span{font-size:12.5px;color:var(–muted);}
#fwn-june-cal .tagcard{
background:linear-gradient(150deg,var(–teal),#235a57);color:#fff;border-radius:18px;padding:26px 26px 24px;
box-shadow:var(–shadow-lift);position:relative;overflow:hidden;
}
#fwn-june-cal .tagcard::after{content:””;position:absolute;right:-40px;bottom:-50px;width:160px;height:160px;border-radius:50%;background:rgba(233,196,106,.18);}
#fwn-june-cal .tagcard .k{font-family:’Poppins’;font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(–gold);margin-bottom:14px;}
#fwn-june-cal .tagcard .q{font-family:’Poppins’;font-weight:600;font-size:25px;line-height:1.18;letter-spacing:-.01em;position:relative;}
#fwn-june-cal .tagcard .sig{margin-top:16px;font-size:13.5px;color:rgba(255,255,255,.82);position:relative;}
#fwn-june-cal .tagcard .sig b{color:#fff;font-weight:600;}
@media(max-width:840px){ #fwn-june-cal .hero-inner{grid-template-columns:1fr;gap:26px;}
#fwn-june-cal .tagcard{order:2;}
}
#fwn-june-cal /* ———- Legend ———- */
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:30px 0 6px;}
#fwn-june-cal .legend .lab{font-family:’Poppins’;font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(–muted);margin-right:4px;}
#fwn-june-cal .lg{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;background:var(–white);border:1px solid var(–line);padding:6px 12px 6px 9px;border-radius:999px;}
#fwn-june-cal .lg .sw{width:12px;height:12px;border-radius:4px;flex:none;}
#fwn-june-cal /* ———- Calendar ———- */
.cal{margin:18px 0 10px;}
#fwn-june-cal .dow{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:10px;padding:0 2px;}
#fwn-june-cal .dow span{font-family:’Poppins’;font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(–muted);text-align:left;padding-left:2px;}
#fwn-june-cal .dow span.we{color:var(–coral);}
#fwn-june-cal .weekblock{margin-bottom:14px;}
#fwn-june-cal .weekbar{
display:flex;align-items:center;gap:16px;flex-wrap:wrap;
background:var(–white);border:1px solid var(–line);border-left:5px solid var(–lead);
border-radius:12px;padding:12px 18px;margin-bottom:10px;box-shadow:var(–shadow);
}
#fwn-june-cal .weekbar .wk{font-family:’Poppins’;font-weight:700;font-size:15px;letter-spacing:.02em;color:var(–ink);white-space:nowrap;}
#fwn-june-cal .weekbar .wk small{display:block;font-family:’Inter’;font-weight:500;font-size:11.5px;letter-spacing:.04em;color:var(–muted);text-transform:uppercase;margin-top:2px;}
#fwn-june-cal .weekbar .chal{display:flex;align-items:center;gap:11px;background:color-mix(in srgb,var(–lead) 13%,var(–white));border:1px solid color-mix(in srgb,var(–lead) 26%,transparent);border-radius:10px;padding:8px 14px;}
#fwn-june-cal .weekbar .chal .ico{width:26px;height:26px;border-radius:8px;background:var(–lead);display:grid;place-items:center;flex:none;}
#fwn-june-cal .weekbar .chal .ico svg{width:15px;height:15px;}
#fwn-june-cal .weekbar .chal .tx b{font-family:’Poppins’;font-weight:600;font-size:13.5px;display:block;line-height:1.15;}
#fwn-june-cal .weekbar .chal .tx span{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(–lead);font-weight:600;}
#fwn-june-cal .weekbar .spacer{flex:1;}
#fwn-june-cal .weekbar .talkmini{display:flex;align-items:center;gap:9px;color:var(–teal);font-size:12.5px;font-weight:500;}
#fwn-june-cal .weekbar .talkmini b{font-family:’Poppins’;font-weight:600;}
#fwn-june-cal .weekbar .talkmini .tt{width:24px;height:24px;border-radius:7px;background:rgba(42,111,107,.12);display:grid;place-items:center;flex:none;}
#fwn-june-cal .weekbar .talkmini svg{width:14px;height:14px;}
#fwn-june-cal .daygrid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;}
#fwn-june-cal .day{
position:relative;background:var(–white);border:1px solid var(–line);border-radius:var(–radius);
padding:13px 13px 14px;min-height:158px;cursor:pointer;overflow:hidden;
box-shadow:var(–shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
display:flex;flex-direction:column;
border-top:4px solid var(–accent,var(–line));
}
#fwn-june-cal .day:hover{transform:translateY(-3px);box-shadow:var(–shadow-lift);border-color:var(–accent);}
#fwn-june-cal .day:focus-visible{outline:3px solid var(–accent);outline-offset:2px;}
#fwn-june-cal .day .dnum{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px;}
#fwn-june-cal .day .dnum b{font-family:’Poppins’;font-weight:700;font-size:21px;line-height:1;}
#fwn-june-cal .day .dnum .wd{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(–muted);}
#fwn-june-cal .chip{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;padding:4px 10px 4px 8px;border-radius:999px;font-size:11px;font-weight:600;font-family:’Poppins’;letter-spacing:.02em;margin-bottom:8px;}
#fwn-june-cal .chip .pd{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none;}
#fwn-june-cal .day h4{font-family:’Poppins’;font-weight:600;font-size:15.5px;line-height:1.16;letter-spacing:-.01em;margin-bottom:3px;}
#fwn-june-cal .day .sub{font-size:11.5px;color:var(–muted);line-height:1.3;}
#fwn-june-cal .day .meta{margin-top:auto;padding-top:10px;display:flex;align-items:center;gap:6px;font-size:11.5px;color:#5a6470;font-weight:500;flex-wrap:wrap;}
#fwn-june-cal .day .meta .pill{background:var(–cream);border-radius:6px;padding:2px 7px;white-space:nowrap;}
#fwn-june-cal .day .talk{margin-top:9px;display:flex;align-items:flex-start;gap:8px;background:rgba(42,111,107,.08);border:1px solid rgba(42,111,107,.16);border-radius:9px;padding:8px 9px;}
#fwn-june-cal .day .talk .tt{width:22px;height:22px;border-radius:6px;background:var(–teal);display:grid;place-items:center;flex:none;margin-top:1px;}
#fwn-june-cal .day .talk .tt svg{width:13px;height:13px;}
#fwn-june-cal .day .talk .ttx b{font-family:’Poppins’;font-weight:600;font-size:11.5px;color:var(–teal);display:block;line-height:1.15;}
#fwn-june-cal .day .talk .ttx span{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(–teal);font-weight:600;opacity:.8;}
#fwn-june-cal .day.is-rest, #fwn-june-cal .day.is-cardio{background:#FBF7EF;}
#fwn-june-cal .day.is-rest h4, #fwn-june-cal .day.is-cardio .sub{color:var(–ink);}
#fwn-june-cal .day.is-rest .restmark{margin-top:auto;font-size:11.5px;color:var(–muted);font-weight:500;display:flex;align-items:center;gap:6px;}
#fwn-june-cal /* tail days (Jun 29-30) */
.tailgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:10px;}
#fwn-june-cal .day.is-reset{background:linear-gradient(160deg,#fff,rgba(233,196,106,.12));border-style:solid;cursor:default;border-top-color:var(–c-reset);}
#fwn-june-cal .day.is-reset:hover{transform:none;box-shadow:var(–shadow);}
#fwn-june-cal .day.is-reset .note{font-size:12px;color:#5a6470;line-height:1.35;margin-top:6px;}
#fwn-june-cal .tail-empty{border:1px dashed var(–line);border-radius:var(–radius);background:rgba(255,255,255,.35);min-height:158px;}
#fwn-june-cal /* ———- Mobile calendar ———- */
@media(max-width:860px){
.dow{display:none;}
#fwn-june-cal .daygrid, #fwn-june-cal .tailgrid{grid-template-columns:repeat(2,1fr);}
#fwn-june-cal .day{min-height:auto;}
#fwn-june-cal }
@media(max-width:540px){
.daygrid,.tailgrid{grid-template-columns:1fr;}
#fwn-june-cal .weekbar{border-radius:10px;}
#fwn-june-cal }
/* ———- CTA ———- */
.cta{
margin:34px 0 10px;background:linear-gradient(135deg,var(–coral),#d05642);color:#fff;
border-radius:22px;padding:38px 40px;display:grid;grid-template-columns:1.5fr auto;gap:30px;align-items:center;
box-shadow:var(–shadow-lift);position:relative;overflow:hidden;
}
#fwn-june-cal .cta::before{content:””;position:absolute;left:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.08);}
#fwn-june-cal .cta::after{content:””;position:absolute;right:6%;bottom:-80px;width:220px;height:220px;border-radius:50%;background:rgba(31,42,55,.10);}
#fwn-june-cal .cta .ct-k{font-family:’Poppins’;font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.82);margin-bottom:12px;position:relative;}
#fwn-june-cal .cta h2{color:#fff;font-size:clamp(26px,3.4vw,36px);line-height:1.08;letter-spacing:-.02em;position:relative;}
#fwn-june-cal .cta p{position:relative;margin:14px 0 0;font-size:15.5px;line-height:1.55;color:rgba(255,255,255,.9);max-width:50ch;}
#fwn-june-cal .cta .actions{position:relative;display:flex;flex-direction:column;gap:11px;}
#fwn-june-cal .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:’Poppins’;font-weight:600;font-size:15px;border-radius:12px;padding:14px 24px;text-decoration:none;cursor:pointer;border:none;transition:transform .14s,box-shadow .14s;white-space:nowrap;}
#fwn-june-cal .btn-light{background:#fff;color:var(–coral);box-shadow:0 8px 20px rgba(31,42,55,.18);}
#fwn-june-cal .btn-light:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(31,42,55,.24);}
#fwn-june-cal .btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.55);}
#fwn-june-cal .btn-ghost:hover{background:rgba(255,255,255,.2);}
#fwn-june-cal .btn svg{width:17px;height:17px;}
@media(max-width:760px){ #fwn-june-cal .cta{grid-template-columns:1fr;padding:30px 26px;}
}
#fwn-june-cal /* ———- Footer ———- */
.foot{margin:30px 0 60px;border-top:1px solid var(–line);padding-top:26px;display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start;}
#fwn-june-cal .foot .fbrand{display:flex;align-items:center;gap:11px;margin-bottom:14px;}
#fwn-june-cal .foot .fbrand .name{font-family:’Poppins’;font-weight:600;font-size:16px;}
#fwn-june-cal .foot .fbrand .name b{color:var(–coral);}
#fwn-june-cal .foot p{font-size:13px;color:var(–muted);line-height:1.6;margin:0 0 4px;max-width:52ch;}
#fwn-june-cal .foot .contact{display:flex;flex-direction:column;gap:10px;}
#fwn-june-cal .foot .contact a{display:inline-flex;align-items:center;gap:10px;color:var(–ink);text-decoration:none;font-size:13.5px;font-weight:500;}
#fwn-june-cal .foot .contact a:hover{color:var(–coral);}
#fwn-june-cal .foot .contact .ci{width:30px;height:30px;border-radius:8px;background:var(–white);border:1px solid var(–line);display:grid;place-items:center;flex:none;}
#fwn-june-cal .foot .contact svg{width:15px;height:15px;}
#fwn-june-cal .disclaimer{grid-column:1/-1;font-size:11px;color:#9a948a;line-height:1.55;border-top:1px solid var(–line);padding-top:16px;margin-top:6px;}
@media(max-width:680px){ #fwn-june-cal .foot{grid-template-columns:1fr;}
}
#fwn-june-cal /* ———- Modal ———- */
.overlay{position:fixed;inset:0;background:rgba(31,42,55,.5);backdrop-filter:blur(4px);z-index:80;opacity:0;pointer-events:none;transition:opacity .22s;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;}
#fwn-june-cal .overlay.open{opacity:1;pointer-events:auto;}
#fwn-june-cal .modal{background:var(–paper);width:100%;max-width:600px;border-radius:20px;box-shadow:0 30px 80px rgba(31,42,55,.4);overflow:hidden;transform:translateY(16px) scale(.985);transition:transform .24s cubic-bezier(.2,.8,.2,1);margin:auto 0;}
#fwn-june-cal .overlay.open .modal{transform:none;}
#fwn-june-cal .mhead{position:relative;padding:24px 26px 22px;color:#fff;overflow:hidden;}
#fwn-june-cal .mhead::after{content:””;position:absolute;right:-30px;top:-40px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.12);}
#fwn-june-cal .mhead .mdate{font-family:’Poppins’;font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.9;margin-bottom:8px;position:relative;}
#fwn-june-cal .mhead h3{color:#fff;font-size:28px;line-height:1.05;letter-spacing:-.02em;position:relative;}
#fwn-june-cal .mhead .msub{font-size:13.5px;opacity:.92;margin-top:6px;position:relative;font-weight:500;}
#fwn-june-cal .mhead .close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.2);border:none;color:#fff;cursor:pointer;display:grid;place-items:center;z-index:2;transition:background .15s;}
#fwn-june-cal .mhead .close:hover{background:rgba(255,255,255,.34);}
#fwn-june-cal .mhead .close svg{width:16px;height:16px;}
#fwn-june-cal .mbody{padding:22px 26px 26px;}
#fwn-june-cal .mtag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;font-family:’Poppins’;padding:5px 12px;border-radius:999px;margin-bottom:18px;}
#fwn-june-cal .block{margin-bottom:16px;}
#fwn-june-cal .block .blab{font-family:’Poppins’;font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(–coral);margin-bottom:9px;display:flex;align-items:center;gap:9px;}
#fwn-june-cal .block .blab::after{content:””;height:1px;flex:1;background:var(–line);}
#fwn-june-cal .ex{display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(–line);}
#fwn-june-cal .ex:last-child{border-bottom:none;}
#fwn-june-cal .ex .en{font-weight:600;font-size:14.5px;color:var(–ink);}
#fwn-june-cal .ex .em{font-size:12px;color:var(–muted);margin-top:2px;}
#fwn-june-cal .ex .em b{color:var(–sage);font-weight:600;}
#fwn-june-cal .ex .es{font-family:’Poppins’;font-weight:600;font-size:13.5px;color:var(–teal);white-space:nowrap;text-align:right;}
#fwn-june-cal .cardio-row{display:flex;align-items:center;gap:12px;background:rgba(155,177,143,.14);border:1px solid rgba(155,177,143,.3);border-radius:11px;padding:12px 14px;margin-top:6px;}
#fwn-june-cal .cardio-row .ci{width:30px;height:30px;border-radius:8px;background:var(–sage);display:grid;place-items:center;flex:none;}
#fwn-june-cal .cardio-row .ci svg{width:17px;height:17px;}
#fwn-june-cal .cardio-row b{font-family:’Poppins’;font-weight:600;font-size:14px;}
#fwn-june-cal .cardio-row span{font-size:12.5px;color:var(–muted);}
#fwn-june-cal .cardio-row .dur{margin-left:auto;font-family:’Poppins’;font-weight:600;color:var(–teal);font-size:14px;}
#fwn-june-cal .coachnote{margin-top:18px;background:var(–cream);border-radius:12px;padding:14px 16px;display:flex;gap:12px;}
#fwn-june-cal .coachnote .qm{font-family:’Poppins’;font-weight:700;font-size:34px;line-height:.7;color:var(–coral);}
#fwn-june-cal .coachnote p{margin:0;font-size:13.5px;line-height:1.5;color:#43505c;}
#fwn-june-cal .coachnote p b{color:var(–ink);}
#fwn-june-cal .restbig{text-align:center;padding:18px 10px 6px;}
#fwn-june-cal .restbig .ico{width:60px;height:60px;border-radius:16px;background:var(–cream);display:grid;place-items:center;margin:0 auto 14px;}
#fwn-june-cal .restbig .ico svg{width:30px;height:30px;}
#fwn-june-cal .restbig h4{font-size:20px;margin-bottom:8px;}
#fwn-june-cal .restbig p{font-size:14px;color:var(–muted);max-width:38ch;margin:0 auto;line-height:1.5;}
#fwn-june-cal .print-hint{display:none;}
/* Fit with Nikki — June Accountability Group
Program data parsed from “June Accountability Group – weeks 1 to 4.csv”
Each workout day: { type, title, sub, blocks:[{label, items:[{ex, mod, sets}]}], cardio:{label, dur} }
Types: push | pull | legs | core | full | cardio | rest
*/
window.__FWN_PROGRAM = {
weeks: [
{
week: 1, range: “June 1 – 7”,
challenge: { title: “Log 3–5 workouts”, note: “Get on the board. Aim for three to five logged sessions this week — consistency over perfection.” },
talk: { title: “Cardio after strength training”, note: “Why we lift first and add cardio after — and what it does for your results.” },
days: [
{ type:”push”, title:”Push Day”, sub:”Chest, Shoulders & Triceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Chest Press”, mod:”Floor press”, sets:”3 × 12″},
{ex:”DB Overhead Shoulder Press”, mod:”Seated DB press”, sets:”3 × 12″}]},
{label:”Superset B”, items:[
{ex:”DB Incline Chest Fly”, mod:”Low incline fly”, sets:”3 × 12″},
{ex:”DB Lateral Raises”, mod:”Light DB”, sets:”3 × 15″}]},
{label:”Superset C”, items:[
{ex:”DB Overhead Tricep Extension”, mod:”Light DB”, sets:”3 × 12″},
{ex:”Push-Ups”, mod:”Knee push-ups”, sets:”3 × 10–12″}]}],
cardio:{label:”Steady pace”, dur:”10 min”} },
{ type:”pull”, title:”Pull Day”, sub:”Back & Biceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Bent Over Row”, mod:”Supported row”, sets:”3 × 12 / side”},
{ex:”DB Bicep Curl”, mod:”Alternating curl”, sets:”3 × 12″}]},
{label:”Superset B”, items:[
{ex:”DB Rear Delt Fly”, mod:”Light DB”, sets:”3 × 15″},
{ex:”Hammer Curl”, mod:”Light DB”, sets:”3 × 12″}]},
{label:”Superset C”, items:[
{ex:”DB Pullover”, mod:”Two-hand DB”, sets:”3 × 12″},
{ex:”Renegade Row”, mod:”Knees supported row”, sets:”3 × 10 / side”}]}],
cardio:{label:”Incline walk”, dur:”12 min”} },
{ type:”legs”, title:”Legs & Glutes”, sub:”Lower Body”, blocks:[
{label:”Superset A”, items:[
{ex:”Goblet Squat”, mod:”Bodyweight squat”, sets:”3 × 12″},
{ex:”DB Romanian Deadlift”, mod:”Light hinge”, sets:”3 × 12″}]},
{label:”Superset B”, items:[
{ex:”DB Hip Thrust”, mod:”Floor glute bridge”, sets:”3 × 12″},
{ex:”Reverse Lunge”, mod:”Static lunge”, sets:”3 × 10 / side”}]},
{label:”Superset C”, items:[
{ex:”Lateral Step-Ups”, mod:”Low step”, sets:”3 × 12 / side”},
{ex:”Curtsy Lunge”, mod:”Bodyweight lunge”, sets:”3 × 12 / side”}]}],
cardio:{label:”Incline walk”, dur:”12 min”} },
{ type:”core”, title:”Core & Cardio”, sub:”Midline & Conditioning”, blocks:[
{label:”Core circuit”, items:[
{ex:”Forearm Plank Hold”, mod:”Knee plank”, sets:”3 × 30–45 sec”},
{ex:”Dead Bug”, mod:”Modified dead bug”, sets:”3 × 10 / side”},
{ex:”Bicycle Crunches”, mod:”Slow bicycle”, sets:”3 × 20″},
{ex:”DB Russian Twists”, mod:”Bodyweight twist”, sets:”3 × 15 / side”},
{ex:”Leg Raises”, mod:”Bent knee raises”, sets:”3 × 15″}]}],
cardio:{label:”Intervals”, dur:”15–20 min”} },
{ type:”full”, title:”Full Body Power”, sub:”Circuit”, blocks:[
{label:”Circuit · 3 rounds”, items:[
{ex:”DB Thrusters”, mod:”Squat to press”, sets:”3 × 15″},
{ex:”Push-Ups”, mod:”Incline push-ups”, sets:”3 × 10–12″},
{ex:”DB Deadlifts”, mod:”Light hinge”, sets:”3 × 15″},
{ex:”Bent Over Row”, mod:”Supported row”, sets:”3 × 12 / side”},
{ex:”Jump Squats”, mod:”Squat to stand”, sets:”3 × 20″},
{ex:”Mountain Climbers”, mod:”Slow climbers”, sets:”3 × 30 sec”}]}],
cardio:{label:”Intervals”, dur:”5–8 min”} },
{ type:”cardio”, title:”Optional Cardio”, sub:”Your choice”, blocks:[
{label:”Move how you like”, items:[
{ex:”Cardio of choice”, mod:”Walk, cycle, swim, dance”, sets:”25–35 min”}]}],
cardio:null },
{ type:”rest”, title:”Rest Day”, sub:”Full recovery”, blocks:[], cardio:null },
]
},
{
week: 2, range: “June 8 – 14”,
challenge: { title: “Hydration challenge”, note: “Hit your daily water goal every day this week. Bring a bottle everywhere — small habit, big payoff.” },
talk: { title: “Healthy food swaps”, note: “Simple swaps that keep the foods you love while supporting your goals.” },
days: [
{ type:”push”, title:”Push Day”, sub:”Chest, Shoulders & Triceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Chest Press”, mod:”Floor press”, sets:”3 × 12–15″},
{ex:”DB Overhead Shoulder Press”, mod:”Seated DB press”, sets:”3 × 12″}]},
{label:”Superset B”, items:[
{ex:”DB Incline Chest Fly”, mod:”Low incline fly”, sets:”3 × 15″},
{ex:”DB Lateral Raises”, mod:”Light DB”, sets:”3 × 15″}]},
{label:”Superset C”, items:[
{ex:”DB Overhead Tricep Extension”, mod:”Light DB”, sets:”3 × 15″},
{ex:”Push-Ups”, mod:”Knee push-ups”, sets:”3 × 12–15″}]}],
cardio:{label:”Steady pace”, dur:”12 min”} },
{ type:”pull”, title:”Pull Day”, sub:”Back & Biceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Bent Over Row”, mod:”Supported row”, sets:”3 × 12–15 / side”},
{ex:”DB Bicep Curl”, mod:”Alternating curl”, sets:”3 × 12–15″}]},
{label:”Superset B”, items:[
{ex:”DB Rear Delt Fly”, mod:”Light DB”, sets:”3 × 15″},
{ex:”Hammer Curl”, mod:”Light DB”, sets:”3 × 12–15″}]},
{label:”Superset C”, items:[
{ex:”DB Pullover”, mod:”Two-hand DB”, sets:”3 × 12″},
{ex:”Renegade Row”, mod:”Knees supported row”, sets:”3 × 10 / side”}]}],
cardio:{label:”Incline walk”, dur:”14 min”} },
{ type:”legs”, title:”Legs & Glutes”, sub:”Lower Body”, blocks:[
{label:”Superset A”, items:[
{ex:”Goblet Squat”, mod:”Bodyweight squat”, sets:”3 × 15″},
{ex:”DB Romanian Deadlift”, mod:”Light hinge”, sets:”3 × 12–15″}]},
{label:”Superset B”, items:[
{ex:”DB Hip Thrust”, mod:”Floor glute bridge”, sets:”3 × 15″},
{ex:”Reverse Lunge”, mod:”Static lunge”, sets:”3 × 12 / side”}]},
{label:”Superset C”, items:[
{ex:”Lateral Step-Ups”, mod:”Low step”, sets:”3 × 12 / side”},
{ex:”Curtsy Lunge”, mod:”Bodyweight lunge”, sets:”3 × 15 / side”}]}],
cardio:{label:”Incline walk”, dur:”14 min”} },
{ type:”core”, title:”Core & Cardio”, sub:”Midline & Conditioning”, blocks:[
{label:”Core circuit”, items:[
{ex:”Forearm Plank Hold”, mod:”Knee plank”, sets:”3 × 45 sec”},
{ex:”Dead Bug”, mod:”Modified dead bug”, sets:”3 × 12 / side”},
{ex:”Bicycle Crunches”, mod:”Slow bicycle”, sets:”3 × 24″},
{ex:”DB Russian Twists”, mod:”Bodyweight twist”, sets:”3 × 18 / side”},
{ex:”Leg Raises”, mod:”Bent knee raises”, sets:”3 × 18″}]}],
cardio:{label:”Intervals”, dur:”18–20 min”} },
{ type:”full”, title:”Full Body Power”, sub:”Circuit”, blocks:[
{label:”Circuit · 3 rounds”, items:[
{ex:”DB Thrusters”, mod:”Squat to press”, sets:”3 × 15″},
{ex:”Push-Ups”, mod:”Incline push-ups”, sets:”3 × 12″},
{ex:”DB Deadlifts”, mod:”Light hinge”, sets:”3 × 15″},
{ex:”Bent Over Row”, mod:”Supported row”, sets:”3 × 12 / side”},
{ex:”Jump Squats”, mod:”Squat to stand”, sets:”3 × 20″},
{ex:”Mountain Climbers”, mod:”Slow climbers”, sets:”3 × 40 sec”}]}],
cardio:{label:”Intervals”, dur:”8 min”} },
{ type:”cardio”, title:”Optional Cardio”, sub:”Your choice”, blocks:[
{label:”Move how you like”, items:[
{ex:”Cardio of choice”, mod:”Walk, cycle, swim, dance”, sets:”30–35 min”}]}],
cardio:null },
{ type:”rest”, title:”Rest Day”, sub:”Full recovery”, blocks:[], cardio:null },
]
},
{
week: 3, range: “June 15 – 21”,
challenge: { title: “Step / cardio goal”, note: “Set a daily step or cardio target and chase it all week. Movement adds up — let’s see it climb.” },
talk: { title: “Tracking progress”, note: “The metrics that actually matter — and how to read them without obsessing over the scale.” },
days: [
{ type:”push”, title:”Push Day”, sub:”Chest, Shoulders & Triceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Chest Press”, mod:”Floor press”, sets:”4 × 10–12″},
{ex:”DB Overhead Shoulder Press”, mod:”Seated DB press”, sets:”4 × 10″}]},
{label:”Superset B”, items:[
{ex:”DB Incline Chest Fly”, mod:”Low incline fly”, sets:”4 × 12″},
{ex:”DB Lateral Raises”, mod:”Light DB”, sets:”4 × 15″}]},
{label:”Superset C”, items:[
{ex:”DB Overhead Tricep Extension”, mod:”Light DB”, sets:”4 × 12″},
{ex:”Diamond Push-Ups”, mod:”Knee push-ups”, sets:”4 × 10–12″}]}],
cardio:{label:”Steady pace”, dur:”12 min”} },
{ type:”pull”, title:”Pull Day”, sub:”Back & Biceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Bent Over Row”, mod:”Supported row”, sets:”4 × 10–12 / side”},
{ex:”DB Bicep Curl”, mod:”Alternating curl”, sets:”4 × 12″}]},
{label:”Superset B”, items:[
{ex:”DB Rear Delt Fly”, mod:”Light DB”, sets:”4 × 15″},
{ex:”Hammer Curl”, mod:”Light DB”, sets:”4 × 12″}]},
{label:”Superset C”, items:[
{ex:”DB Pullover”, mod:”Two-hand DB”, sets:”4 × 10″},
{ex:”Renegade Row”, mod:”Knees supported row”, sets:”4 × 10 / side”}]}],
cardio:{label:”Incline walk”, dur:”15 min”} },
{ type:”legs”, title:”Legs & Glutes”, sub:”Lower Body”, blocks:[
{label:”Superset A”, items:[
{ex:”Goblet Squat”, mod:”Bodyweight squat”, sets:”4 × 12″},
{ex:”DB Romanian Deadlift”, mod:”Light hinge”, sets:”4 × 12″}]},
{label:”Superset B”, items:[
{ex:”DB Hip Thrust”, mod:”Floor glute bridge”, sets:”4 × 15″},
{ex:”Bulgarian Split Squat”, mod:”Reverse lunge”, sets:”4 × 10 / side”}]},
{label:”Superset C”, items:[
{ex:”Step-Ups with Knee Drive”, mod:”Low step”, sets:”4 × 12 / side”},
{ex:”Banded Clamshells”, mod:”Bodyweight clamshell”, sets:”4 × 20 / side”}]}],
cardio:{label:”Incline walk”, dur:”15 min”} },
{ type:”core”, title:”Core & Cardio”, sub:”Midline & Conditioning”, blocks:[
{label:”Core circuit”, items:[
{ex:”Forearm Plank Hold”, mod:”Knee plank”, sets:”4 × 45–60 sec”},
{ex:”Dead Bug”, mod:”Modified dead bug”, sets:”4 × 12 / side”},
{ex:”Bicycle Crunches”, mod:”Slow bicycle”, sets:”4 × 25″},
{ex:”DB Russian Twists”, mod:”Bodyweight twist”, sets:”4 × 20 / side”},
{ex:”V-Ups”, mod:”Knee tucks”, sets:”4 × 12″}]}],
cardio:{label:”Intervals”, dur:”20 min”} },
{ type:”full”, title:”Full Body Power”, sub:”Circuit”, blocks:[
{label:”Circuit · 4 rounds”, items:[
{ex:”DB Thrusters”, mod:”Squat to press”, sets:”4 × 15″},
{ex:”Push-Ups”, mod:”Incline push-ups”, sets:”4 × 12″},
{ex:”DB Deadlifts”, mod:”Light hinge”, sets:”4 × 15″},
{ex:”Bent Over Row”, mod:”Supported row”, sets:”4 × 12 / side”},
{ex:”Jump Squats”, mod:”Squat to stand”, sets:”4 × 20″},
{ex:”Mountain Climbers”, mod:”Slow climbers”, sets:”4 × 40 sec”}]}],
cardio:{label:”Intervals”, dur:”8–10 min”} },
{ type:”cardio”, title:”Optional Cardio”, sub:”Your choice”, blocks:[
{label:”Move how you like”, items:[
{ex:”Cardio of choice”, mod:”Walk, cycle, swim, dance”, sets:”30–40 min”}]}],
cardio:null },
{ type:”rest”, title:”Rest Day”, sub:”Full recovery”, blocks:[], cardio:null },
]
},
{
week: 4, range: “June 22 – 28”,
challenge: { title: “Share a favorite meal / snack”, note: “Post one meal or snack you love every day. Real food, real life — inspire the crew.” },
talk: { title: “Healthy habits vs. quick fixes”, note: “Why the boring, repeatable habits beat the 6-week miracle every single time.” },
days: [
{ type:”push”, title:”Push Day”, sub:”Chest, Shoulders & Triceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Chest Press”, mod:”Floor press”, sets:”4 × 12–15″},
{ex:”DB Overhead Shoulder Press”, mod:”Seated DB press”, sets:”4 × 12″}]},
{label:”Superset B”, items:[
{ex:”DB Incline Chest Fly”, mod:”Low incline fly”, sets:”4 × 15″},
{ex:”DB Lateral Raises”, mod:”Light DB”, sets:”4 × 15–20″}]},
{label:”Superset C”, items:[
{ex:”DB Overhead Tricep Extension”, mod:”Light DB”, sets:”4 × 15″},
{ex:”Diamond Push-Ups”, mod:”Knee push-ups”, sets:”4 × 12–15″}]}],
cardio:{label:”Steady pace”, dur:”15 min”} },
{ type:”pull”, title:”Pull Day”, sub:”Back & Biceps”, blocks:[
{label:”Superset A”, items:[
{ex:”DB Bent Over Row”, mod:”Supported row”, sets:”4 × 12 / side”},
{ex:”DB Bicep Curl”, mod:”Alternating curl”, sets:”4 × 12–15″}]},
{label:”Superset B”, items:[
{ex:”DB Rear Delt Fly”, mod:”Light DB”, sets:”4 × 15–20″},
{ex:”Hammer Curl”, mod:”Light DB”, sets:”4 × 12–15″}]},
{label:”Superset C”, items:[
{ex:”DB Pullover”, mod:”Two-hand DB”, sets:”4 × 12″},
{ex:”Renegade Row”, mod:”Knees supported row”, sets:”4 × 12 / side”}]}],
cardio:{label:”Incline walk”, dur:”15 min”} },
{ type:”legs”, title:”Legs & Glutes”, sub:”Lower Body”, blocks:[
{label:”Superset A”, items:[
{ex:”Goblet Squat”, mod:”Bodyweight squat”, sets:”4 × 15″},
{ex:”DB Romanian Deadlift”, mod:”Light hinge”, sets:”4 × 15″}]},
{label:”Superset B”, items:[
{ex:”DB Hip Thrust”, mod:”Floor glute bridge”, sets:”4 × 15–20″},
{ex:”Bulgarian Split Squat”, mod:”Reverse lunge”, sets:”4 × 12 / side”}]},
{label:”Superset C”, items:[
{ex:”Step-Ups with Knee Drive”, mod:”Low step”, sets:”4 × 12 / side”},
{ex:”Curtsy Lunge”, mod:”Bodyweight lunge”, sets:”4 × 15 / side”}]}],
cardio:{label:”Incline walk”, dur:”15–18 min”} },
{ type:”core”, title:”Core & Cardio”, sub:”Midline & Conditioning”, blocks:[
{label:”Core circuit”, items:[
{ex:”Forearm Plank Hold”, mod:”Knee plank”, sets:”4 × 60 sec”},
{ex:”Dead Bug”, mod:”Modified dead bug”, sets:”4 × 15 / side”},
{ex:”Bicycle Crunches”, mod:”Slow bicycle”, sets:”4 × 30″},
{ex:”DB Russian Twists”, mod:”Bodyweight twist”, sets:”4 × 20 / side”},
{ex:”V-Ups”, mod:”Knee tucks”, sets:”4 × 15″}]}],
cardio:{label:”Intervals”, dur:”20–25 min”} },
{ type:”full”, title:”Full Body Power”, sub:”Circuit”, blocks:[
{label:”Circuit · 4 rounds”, items:[
{ex:”DB Thrusters”, mod:”Squat to press”, sets:”4 × 15″},
{ex:”Push-Ups”, mod:”Incline push-ups”, sets:”4 × 15″},
{ex:”DB Deadlifts”, mod:”Light hinge”, sets:”4 × 15″},
{ex:”Bent Over Row”, mod:”Supported row”, sets:”4 × 12 / side”},
{ex:”Jump Squats”, mod:”Squat to stand”, sets:”4 × 25″},
{ex:”Mountain Climbers”, mod:”Slow climbers”, sets:”4 × 45 sec”}]}],
cardio:{label:”Intervals”, dur:”10 min”} },
{ type:”cardio”, title:”Optional Cardio”, sub:”Your choice”, blocks:[
{label:”Move how you like”, items:[
{ex:”Cardio of choice”, mod:”Walk, cycle, swim, dance”, sets:”30–40 min”}]}],
cardio:null },
{ type:”rest”, title:”Rest Day”, sub:”Full recovery”, blocks:[], cardio:null },
]
}
],
// June 29–30 fall outside the 4-week block
tail: [
{ date: 29, wd:”Mon”, type:”reset”, title:”Reset & Reflect”, note:”Look back at four weeks of work. What got easier?” },
{ date: 30, wd:”Tue”, type:”reset”, title:”New Cycle Loading”, note:”July program drops soon — DM to claim your spot.” }
],
meta: {
push: { name:”Push”, tag:”Chest · Shoulders · Triceps” },
pull: { name:”Pull”, tag:”Back · Biceps” },
legs: { name:”Legs”, tag:”Glutes · Lower Body” },
core: { name:”Core”, tag:”Midline · Cardio” },
full: { name:”Full Body”, tag:”Power Circuit” },
cardio: { name:”Cardio”, tag:”Optional · Your Choice” },
rest: { name:”Rest”, tag:”Recovery” },
reset: { name:”Reset”, tag:”Between Cycles” }
}
};
/* Fit with Nikki — June calendar renderer */
(function(){
const P = window.__FWN_PROGRAM;
const M = P.meta;
const accent = {
push:’var(–c-push)’, pull:’var(–c-pull)’, legs:’var(–c-legs)’, core:’var(–c-core)’,
full:’var(–c-full)’, cardio:’var(–c-cardio)’, rest:’var(–c-rest)’, reset:’var(–c-reset)’
};
const tint = {
push:’rgba(226,109,92,.13)’, pull:’rgba(42,111,107,.13)’, legs:’rgba(217,169,63,.16)’,
core:’rgba(127,154,114,.16)’, full:’rgba(31,42,55,.10)’, cardio:’rgba(155,177,143,.14)’,
rest:’rgba(185,178,164,.14)’, reset:’rgba(201,154,78,.14)’
};
// small inline icons
const I = {
push:”,
pull:”,
legs:”,
core:”,
full:”,
cardio:”,
rest:”,
fire:”,
water:”,
steps:”,
meal:”,
talk:”,
clock:”,
reset:”
};
const challengeIcon = [‘fire’,’water’,’steps’,’meal’];
function svg(p, opt){
opt = opt||{};
return ”+p+”;
}
/* —- Legend —- */
const legend = document.getElementById(‘fwnLegend’);
[‘push’,’pull’,’legs’,’core’,’full’,’cardio’,’rest’].forEach(t=>{
const el = document.createElement(‘span’);
el.className=’lg’;
el.innerHTML = ‘‘+M[t].name;
legend.appendChild(el);
});
/* —- Weeks —- */
const cal = document.getElementById(‘fwnCal’);
P.weeks.forEach((wk, wi)=>{
const block = document.createElement(‘div’);
block.className=’weekblock’;
const startDate = 1 + wi*7;
const endDate = startDate + 6;
const cIco = challengeIcon[wi];
const bar = document.createElement(‘div’);
bar.className=’weekbar’;
bar.innerHTML =
‘
June 2026 · Accountability Group
June ’26
Four weeks of progressive strength, smart cardio, and a crew in your corner. Five workouts a week, every level welcome — tap any day to see the full plan, modifications included.
4weeks
5workouts / week
Alllevels & equipment
Workout key
MonTueWedThuFriSatSun
Not in the group yet?
Your spot in the July crew is open.
This is the calendar my accountability group follows — personalized coaching, daily check-ins, and a community that shows up. Same energy, built around your body and your schedule.
Week ‘+wk.week+’June ‘+startDate+’–’+endDate+’
‘+
‘‘+svg(I[cIco])+’‘+
‘Week Challenge‘+wk.challenge.title+’
‘+
‘‘+
‘‘+svg(I.talk,{stroke:’var(–teal)’})+’‘+
‘Tuesday Talk · ‘+wk.talk.title+’
‘;
block.appendChild(bar);
const grid = document.createElement(‘div’);
grid.className=’daygrid’;
wk.days.forEach((d, di)=>{
const date = startDate + di;
const wdName = [‘Mon’,’Tue’,’Wed’,’Thu’,’Fri’,’Sat’,’Sun’][di];
const cell = document.createElement(‘div’);
cell.className=’day is-‘+d.type;
cell.style.setProperty(‘–accent’, accent[d.type]);
cell.tabIndex = 0;
cell.setAttribute(‘data-screen-label’,’June ‘+date);
let inner = ‘‘+date+’‘+wdName+’
‘;
if(d.type===’rest’){
inner += ‘Rest‘;
inner += ‘Rest Day
Full recovery
‘;
inner += ‘‘+svg(I.rest,{stroke:’var(–muted)’,w:1.7})+’ Recharge & repair
‘;
} else if(d.type===’cardio’){
inner += ‘Cardio‘;
inner += ‘‘+d.title+’
‘+d.sub+’
‘;
inner += ‘‘;
} else {
const moves = d.blocks.reduce((s,b)=>s+b.items.length,0);
inner += ‘‘+M[d.type].name+’‘;
inner += ‘‘+d.title+’
‘+d.sub+’
‘;
inner += ‘‘;
}
// Tuesday talk badge (index 1 = Tuesday)
if(di===1){
inner += ‘‘+svg(I.talk)+’‘+
‘Tuesday Talk‘+wk.talk.title+’
‘;
}
cell.innerHTML = inner;
cell.addEventListener(‘click’, ()=>openModal(wi, di, date, wdName));
cell.addEventListener(‘keydown’, e=>{ if(e.key===’Enter’||e.key===’ ‘){e.preventDefault();openModal(wi,di,date,wdName);} });
grid.appendChild(cell);
});
block.appendChild(grid);
cal.appendChild(block);
});
/* —- Tail (Jun 29–30) —- */
const tailWrap = document.createElement(‘div’);
tailWrap.className=’weekblock’;
const tbar = document.createElement(‘div’);
tbar.className=’weekbar’;
tbar.style.borderLeftColor=’var(–c-reset)’;
tbar.innerHTML=’Wrap-upJune 29–30
‘+
‘‘+
‘‘+svg(I.reset)+’‘+
‘Between CyclesReset before July
‘+
‘‘+
‘‘+svg(I.talk,{stroke:’var(–c-reset)’})+’July program · drops soon
‘;
tailWrap.appendChild(tbar);
const tgrid = document.createElement(‘div’);
tgrid.className=’tailgrid’;
P.tail.forEach(t=>{
const cell=document.createElement(‘div’);
cell.className=’day is-reset’;
cell.style.setProperty(‘–accent’,’var(–c-reset)’);
cell.setAttribute(‘data-screen-label’,’June ‘+t.date);
cell.innerHTML=’‘+t.date+’‘+t.wd+’
‘+
‘Reset‘+
‘‘+t.title+’
‘+t.note+’
‘;
tgrid.appendChild(cell);
});
// fill remaining 5 cells of the week visually
for(let i=0;i<5;i++){ const e=document.createElement('div'); e.className='tail-empty'; tgrid.appendChild(e); }
tailWrap.appendChild(tgrid);
cal.appendChild(tailWrap);
/* —- Modal —- */
const overlay=document.getElementById('fwnOverlay');
const modal=document.getElementById('fwnModal');
const coachNotes={
push:'Lead with control — squeeze at the top, lower slow. Floor press anytime your shoulders want a break.',
pull:'Think “elbows back,” not “arms.” Brace your core on every row and let your back do the work.',
legs:'Drive through your heels and own the bottom of each rep. Glutes power the show today.',
core:'Quality beats speed. Keep your low back glued down and breathe through every hold.',
full:'Move steady through the circuit, rest as needed between rounds. Finished and consistent beats rushed.',
cardio:'Pick something you genuinely enjoy. Easy, conversational pace — this is active recovery, not a race.'
};
function openModal(wi, di, date, wdName){
const wk=P.weeks[wi];
const d=wk.days[di];
const ac=accent[d.type];
const fullDate=wdName+', June '+date;
let head='‘+
‘‘+
‘
‘;
let body=’Week ‘+wk.week+’ · ‘+fullDate+’
‘+
‘‘+d.title+’
‘+ (d.sub?’‘+d.sub+’
‘:”)+’‘;
body+=’‘+M[d.type].name+’ · ‘+M[d.type].tag+’‘;
if(d.type===’rest’){
body+=’‘;
} else {
d.blocks.forEach(b=>{
body+=’‘+
‘‘;
});
body+=’‘;
});
if(d.cardio){
body+=’
‘;
modal.innerHTML=head+body;
overlay.classList.add(‘open’);
document.body.style.overflow=’hidden’;
document.getElementById(‘mClose’).addEventListener(‘click’, closeModal);
}
function shade(t){
const map={push:’#c8533f’,pull:’#1d5450′,legs:’#bf8e2c’,core:’#5f7a52′,full:’#2c3a4a’,cardio:’#7f9a72′};
return map[t]||’#1d5450′;
}
function I_x(){return ”;}
function closeModal(){ overlay.classList.remove(‘open’); document.body.style.overflow=”; }
overlay.addEventListener(‘click’, e=>{ if(e.target===overlay) closeModal(); });
document.addEventListener(‘keydown’, e=>{ if(e.key===’Escape’) closeModal(); });
})();
‘+svg(I.rest,{stroke:’var(–muted)’,w:1.6})+’
‘+
‘Take the day, fully.
‘+ ‘Recovery is where the work pays off. Hydrate, sleep, stretch if you like — and come back ready. Every body needs rest to grow stronger.
‘+b.label+’
‘;
b.items.forEach(it=>{
body+=’‘+it.ex+’
‘+
(it.mod?’Modify · ‘+it.mod+’
‘:”)+’‘+it.sets+’
‘+svg(I.cardio)+’‘+
‘
‘;
}
if(coachNotes[d.type]){
body+=’Cardio · ‘+d.cardio.label+’
Finish strong, steady effort
‘+
‘‘+d.cardio.dur+’Finish strong, steady effort
“
‘;
}
}
// Tuesday talk in modal
if(di===1){
body+=’Coach’s note. ‘+coachNotes[d.type]+’
★‘+
‘
‘;
}
body+=’Tuesday Talk · ‘+wk.talk.title+’. ‘+wk.talk.note+’