
:root{
  --ink:#0b0b0a; --ink-2:#161614; --ink-3:#22221f; --paper:#f3f1ea; --paper-2:#e9e6dc;
  --lime:#e2ff3d; --lime-ink:#141a00; --muted:#9a978c; --muted-2:#5d5b54; --line:rgba(255,255,255,.12); --line-dark:rgba(11,11,10,.14);
  --mt:#e2ff3d; --sc:#ff6a3d; --yt:#7cc4ff; --sp:#ffffff;
  --display:'Anton',Impact,'Arial Narrow',sans-serif; --serif:'Instrument Serif',Georgia,serif; --sans:'Inter Tight',system-ui,-apple-system,sans-serif;
  --wrap:min(1240px,100% - 40px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--ink);color:#fff;font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{width:var(--wrap);margin:0 auto}
.eyebrow{font:700 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.display{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:.88}
.serif{font-family:var(--serif);font-weight:400}
.btn{display:inline-flex;align-items:center;gap:10px;font:700 15px/1 var(--sans);text-decoration:none;padding:17px 24px;border-radius:999px;transition:transform .15s ease, background .15s ease}
.btn:hover{transform:translateY(-2px)}
.btn-lime{background:var(--lime);color:var(--lime-ink)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.4);color:#fff}
.btn-ghost:hover{border-color:#fff}
.btn-dark{background:var(--ink);color:#fff}

/* concept bar */
.concept{background:var(--lime);color:var(--lime-ink);font:600 13px/1.3 var(--sans);text-align:center;padding:9px 16px}
.concept a{font-weight:800}

/* nav */
nav.top{position:sticky;top:0;z-index:50;background:rgba(11,11,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;height:70px;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:40px;height:40px;border-radius:50%}
.brand b{font:800 16px/1 var(--sans);letter-spacing:-.01em}
.brand small{display:block;font:500 11px/1 var(--sans);color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-top:4px}
.links{display:flex;gap:26px;align-items:center}
.links a{font:600 14px/1 var(--sans);text-decoration:none;color:#d8d6cd}
.links a:hover{color:var(--lime)}
.links .btn{padding:12px 18px;font-size:14px;color:var(--lime-ink)}
@media(max-width:900px){.links a:not(.btn){display:none}}

/* hero */
.hero{position:relative;min-height:calc(100svh - 106px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;z-index:-2;transform:scale(1.04);animation:slow 18s ease-out forwards}
@keyframes slow{to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,11,10,.25) 0%,rgba(11,11,10,.15) 35%,rgba(11,11,10,.85) 78%,var(--ink) 100%)}
.hero .wrap{padding:0 0 64px}
.hero .eyebrow{color:var(--lime);margin-bottom:22px;display:flex;gap:12px;align-items:center}
.hero .eyebrow::before{content:"";width:34px;height:2px;background:var(--lime)}
.hero h1{font-size:clamp(64px,13.5vw,212px);max-width:12ch}
.hero h1 em{font-family:var(--serif);font-style:italic;text-transform:none;font-size:.62em;letter-spacing:-.01em;color:var(--lime);display:block;line-height:1;margin-top:.08em}
.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:34px;flex-wrap:wrap}
.hero p.lede{max-width:520px;font-size:clamp(17px,1.6vw,20px);color:#e8e6de}
.hero p.lede b{color:#fff}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.rating{display:flex;align-items:center;gap:10px;margin-top:22px;font:600 14px/1 var(--sans);color:#d8d6cd}
.stars{color:var(--lime);letter-spacing:2px;font-size:15px}

/* marquee */
.marquee{background:var(--lime);color:var(--lime-ink);overflow:hidden;border-block:1px solid #000}
/* Two identical groups on one GPU layer, moved exactly one group-width per loop, so the seam never jumps
   and words never blink in (no inline-block reflow, no repaint while scrolling). */
.marquee .track{display:flex;width:max-content;animation:mq 40s linear infinite;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden}
.marquee .grp{display:flex;flex-shrink:0;align-items:center;white-space:nowrap;padding:16px 0}
.marquee span,.marquee i{font:400 30px/1 var(--display);text-transform:uppercase;letter-spacing:.02em;padding-right:52px}
.marquee i{font-style:normal;font-family:var(--sans);font-size:24px}
@keyframes mq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.marquee .track{animation:none}}

/* sections */
section{position:relative}
.pad{padding:clamp(80px,11vw,150px) 0}
.light{background:var(--paper);color:var(--ink)}
.light .muted{color:var(--muted-2)}
.muted{color:var(--muted)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:56px}
.sec-head h2{font-size:clamp(52px,7vw,108px)}
.sec-head p{max-width:460px;justify-self:end;font-size:18px}
@media(max-width:860px){.sec-head{grid-template-columns:1fr}.sec-head p{justify-self:start}}

/* manifesto */
.manifesto{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,90px);align-items:center}
.manifesto blockquote{font:400 clamp(34px,4.4vw,62px)/1.04 var(--serif);letter-spacing:-.015em}
.manifesto blockquote em{color:var(--muted-2)}
.manifesto .body{margin-top:34px;display:grid;gap:16px;max-width:560px;font-size:18px}
.manifesto .sig{margin-top:30px;display:flex;align-items:center;gap:14px;font-weight:700}
.manifesto .sig img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.stack{position:relative;aspect-ratio:4/5}
.stack img{position:absolute;object-fit:cover;border-radius:6px;box-shadow:0 30px 60px -20px rgba(0,0,0,.45)}
.stack .a{inset:0 18% 22% 0;width:82%;height:78%}
.stack .b{right:0;bottom:0;width:56%;height:46%;border:6px solid var(--paper)}
.stack .tag{position:absolute;left:-14px;bottom:14%;background:var(--ink);color:var(--lime);font:400 22px/1 var(--display);padding:12px 16px;text-transform:uppercase;transform:rotate(-3deg)}
@media(max-width:860px){.manifesto{grid-template-columns:1fr}.stack{max-width:520px}}

/* programs */
.programs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.prog{background:var(--ink-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.prog .ph{position:relative;aspect-ratio:4/3;overflow:hidden}
.prog .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.prog:hover .ph img{transform:scale(1.05)}
.prog .ph .age{position:absolute;top:14px;left:14px;background:var(--ink);color:#fff;font:700 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:9px 12px;border-radius:999px}
.prog .in{padding:26px 26px 28px;display:flex;flex-direction:column;gap:14px;flex:1}
.prog h3{font:400 40px/.92 var(--display);text-transform:uppercase}
.prog .hook{font:italic 400 23px/1.15 var(--serif);color:var(--lime)}
.prog p{color:#cfccc2;font-size:16px}
.quick{margin-top:auto;border-top:1px dashed var(--line);padding-top:18px;display:grid;gap:12px}
.quick .price{display:flex;align-items:baseline;gap:10px}
.quick .price b{font:400 54px/.9 var(--display);color:#fff}
.quick .price s{color:var(--muted);font-size:15px}
.quick .price span{font:600 13px/1.3 var(--sans);color:var(--muted)}
.quick ul{list-style:none;display:grid;gap:6px;font-size:14.5px;color:#d8d6cd}
.quick li::before{content:"→ ";color:var(--lime)}
.quick .intro{font-size:13.5px;color:var(--muted)}
.quick .intro b{color:#fff;font-weight:600}
.quick .btn{justify-content:center;margin-top:6px}
.monthly{font:600 13px/1 var(--sans);color:var(--muted);text-align:center;margin-top:2px}
.note{margin-top:22px;display:flex;gap:14px;align-items:flex-start;background:rgba(255,106,61,.1);border:1px solid rgba(255,106,61,.35);color:#ffd2c2;padding:16px 18px;border-radius:8px;font-size:15px}
.note b{color:#fff}
@media(max-width:980px){.programs{grid-template-columns:1fr;max-width:560px;margin:0 auto}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink)}
.step{padding:30px 26px 10px 0;border-right:1px solid var(--line-dark)}
.step:last-child{border-right:0}
.step+.step{padding-left:26px}
.step .n{font:400 88px/.8 var(--display);color:var(--ink);opacity:.12}
.step h4{font:800 20px/1.2 var(--sans);margin:18px 0 8px;letter-spacing:-.01em}
.step p{font-size:15.5px;color:var(--muted-2)}
.warn{margin-top:54px;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;background:var(--ink);color:#fff;border-radius:10px;padding:28px 32px}
.warn .big{font:400 46px/.9 var(--display);color:var(--lime);text-transform:uppercase}
.warn p{font-size:18px;color:#e2e0d8}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}.step:nth-child(2){border-right:0}.step:nth-child(3){padding-left:0}.warn{grid-template-columns:1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}.step,.step+.step{padding:24px 0 6px;border-right:0;border-bottom:1px solid var(--line-dark)}}

/* schedule */
.legend{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:22px;font:600 13px/1 var(--sans);color:#d8d6cd}
.legend span{display:flex;align-items:center;gap:8px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.sched{width:100%;border-collapse:separate;border-spacing:6px;table-layout:fixed}
.sched th{font:700 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 6px}
.sched td.t{font:400 22px/1 var(--display);color:#fff;white-space:nowrap;width:86px;vertical-align:top;padding-top:10px}
.sched td{vertical-align:top}
.cls{display:block;border-radius:6px;padding:10px 10px 11px;font:700 13px/1.2 var(--sans);color:var(--ink);margin-bottom:5px;position:relative}
.cls small{display:block;font:500 11.5px/1.25 var(--sans);opacity:.75;margin-top:3px}
.cls.mt{background:var(--mt)}.cls.sc{background:var(--sc)}.cls.yt{background:var(--yt)}.cls.sp{background:#fff}
.days{display:none}
@media(max-width:900px){
  .sched{display:none}
  .days{display:grid;gap:12px}
  .day{background:var(--ink-2);border:1px solid var(--line);border-radius:10px;padding:16px}
  .day h4{font:400 26px/1 var(--display);text-transform:uppercase;margin-bottom:12px}
  .day .row{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:start}
  .day .row b{font:400 18px/1 var(--display);padding-top:10px}
}

/* wall */
.wall{display:grid;grid-auto-flow:dense;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(90px,10vw,150px);gap:8px}
.wall img{width:100%;height:100%;object-fit:cover;border-radius:4px;filter:saturate(1.05)}
.w1{grid-column:span 5;grid-row:span 3}.w2{grid-column:span 4;grid-row:span 2}.w3{grid-column:span 3;grid-row:span 2}
.w4{grid-column:span 3;grid-row:span 2}.w5{grid-column:span 4;grid-row:span 2}.w6{grid-column:span 5;grid-row:span 2}
.w7{grid-column:span 4;grid-row:span 2}.w8{grid-column:span 3;grid-row:span 2}
.wall .cap{grid-column:span 3;grid-row:span 1;background:var(--lime);color:var(--lime-ink);border-radius:4px;display:flex;flex-direction:column;justify-content:center;padding:18px;text-decoration:none}
.wall .cap b{font:400 28px/.95 var(--display);text-transform:uppercase}
.wall .cap span{font:600 13px/1.3 var(--sans);margin-top:6px}
@media(max-width:760px){.wall{grid-template-columns:repeat(6,1fr);grid-auto-rows:110px}.w1,.w2,.w3,.w4,.w5,.w6,.w7,.w8{grid-column:span 3;grid-row:span 2}.w1{grid-column:span 6}.wall .cap{grid-column:span 6}}

/* coaches */
.owners{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.owner{position:relative;border-radius:10px;overflow:hidden;min-height:560px;display:flex;align-items:flex-end;isolation:isolate}
.owner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.owner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 30%,rgba(11,11,10,.92) 82%)}
.owner .in{padding:30px}
.owner .role{color:var(--lime)}
.owner h3{font:400 clamp(54px,6vw,84px)/.88 var(--display);text-transform:uppercase;margin:12px 0 14px}
.owner .q{font:italic 400 26px/1.15 var(--serif);margin-bottom:14px}
.owner p{color:#d8d6cd;font-size:15.5px;max-width:520px}
.crew{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.mate{background:var(--ink-2);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mate img{width:100%;aspect-ratio:4/5;object-fit:cover}
.mate .in{padding:16px}
.mate h4{font:400 26px/1 var(--display);text-transform:uppercase}
.mate .role{font:700 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--lime);margin:6px 0 8px}
.mate p{font-size:14px;color:#bdbab0}
@media(max-width:1000px){.owners{grid-template-columns:1fr}.owner{min-height:500px}.crew{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.crew{grid-template-columns:1fr 1fr;gap:10px}}

/* gym */
.gym{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);border-radius:10px;overflow:hidden;margin-top:34px}
.fact{background:var(--paper);padding:22px}
.fact b{display:block;font:400 48px/.9 var(--display)}
.fact span{font-size:14.5px;color:var(--muted-2)}
.gym-ph{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gym-ph img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.gym-ph .tall{grid-row:span 2}
@media(max-width:860px){.gym{grid-template-columns:1fr}}

/* fight team */
.fight{position:relative;overflow:hidden;isolation:isolate}
.fight>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.55}
.fight::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--ink) 15%,rgba(11,11,10,.55) 60%,rgba(11,11,10,.2))}
.fight h2{font-size:clamp(56px,7.4vw,116px);max-width:15ch}
.fight p{max-width:520px;font-size:19px;color:#e2e0d8;margin-top:24px}
.fight .serif{font-style:italic;color:var(--lime);font-size:clamp(28px,3vw,40px);line-height:1.1;margin-top:30px;max-width:620px}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rev{background:#fff;border:1px solid var(--line-dark);border-radius:10px;padding:26px;display:flex;flex-direction:column;gap:16px}
.rev .stars{color:#111}
.rev p{font:400 22px/1.22 var(--serif)}
.rev b{margin-top:auto;font:700 14px/1 var(--sans)}
.rev.big{grid-column:span 2;background:var(--ink);color:#fff}
.rev.big p{font-size:clamp(28px,3vw,38px)}
.rev.big .stars{color:var(--lime)}
.gscore{display:flex;align-items:center;gap:16px;margin-bottom:28px}
.gscore b{font:400 76px/.85 var(--display)}
@media(max-width:900px){.reviews{grid-template-columns:1fr}.rev.big{grid-column:auto}}

/* contact */
.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,70px)}
.contact h2{font-size:clamp(64px,10vw,150px)}
.ways{display:grid;gap:12px;margin-top:34px}
.way{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;border:1px solid var(--line);border-radius:10px;text-decoration:none;background:var(--ink-2);transition:border-color .2s}
.way:hover{border-color:var(--lime)}
.way small{display:block;font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.way b{font:700 22px/1.1 var(--sans);letter-spacing:-.01em}
.way .go{font:400 30px/1 var(--display);color:var(--lime)}
.way.best{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}
.way.best small{color:var(--lime-ink);opacity:.7}.way.best .go{color:var(--lime-ink)}
.visit{background:var(--ink-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;align-self:start}
.visit img{width:100%;aspect-ratio:16/10;object-fit:cover}
.visit .in{padding:26px}
.visit h3{font:400 34px/1 var(--display);text-transform:uppercase;margin-bottom:10px}
.visit p{color:#cfccc2}
.visit .dont{margin-top:18px;padding-top:18px;border-top:1px dashed var(--line);font:italic 400 22px/1.2 var(--serif);color:#fff}
@media(max-width:860px){.contact{grid-template-columns:minmax(0,1fr)}}
.way>div{min-width:0}@media(max-width:520px){.way{padding:18px}.way b{font-size:18px;overflow-wrap:anywhere}}
html{overflow-x:hidden}

/* footer */
footer{border-top:1px solid var(--line);padding:70px 0 40px;overflow:hidden}
footer .big{font:400 clamp(56px,10.6vw,190px)/.95 var(--display);text-wrap:balance;text-transform:uppercase;color:var(--lime);letter-spacing:-.01em;overflow-wrap:break-word}
footer .top{--fs:clamp(56px,10.6vw,190px);display:flex;align-items:center;gap:clamp(14px,2.4vw,40px)}
footer .top .big{font-size:var(--fs)}
footer .marks{display:flex;flex-direction:column;align-items:center;gap:calc(var(--fs)*.095);flex:none}
footer .marks img{display:block;height:calc(var(--fs)*.53);width:auto;filter:brightness(1.1) contrast(1.6);mix-blend-mode:lighten}
footer .row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:40px;font-size:14px;color:var(--muted)}
footer .row a{color:#d8d6cd}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* legend swatches (the colors were inline styles in the preview) */
.legend i.mt{background:var(--mt)}.legend i.sc{background:var(--sc)}.legend i.yt{background:var(--yt)}.legend i.sp{background:#fff}
/* photos past the wall's eight */
.wall-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px;margin-top:8px}
.wall-more img,.wall-more>div{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}

/* site-kit: the EDIT SITE tab and the split editor (editor-tab.js). A site can set
   --kit-accent, --kit-accent-dk, --kit-on-accent (tab text), --kit-bg and --kit-tab-font. The assistant takes
   --kit-panel of the width; the page gets the rest, never covered. */
:root { --kit-panel: clamp(320px, 32vw, 420px); }
/* Built ahead of time and hidden; .kit-on shows it at full page width (lined up with the
   page underneath), then .ed-open slides the assistant in as the page makes room. */
.ed-shell { position: fixed; inset: 0; z-index: 2147483000; display: grid; grid-template-columns: 0px minmax(0, 1fr); grid-template-rows: 100%; background: var(--kit-bg, #fff); visibility: hidden; pointer-events: none; transition: grid-template-columns .36s cubic-bezier(.22, .8, .24, 1); }
.ed-shell.kit-on { visibility: visible; pointer-events: auto; }
.ed-open .ed-shell { grid-template-columns: var(--kit-panel) minmax(0, 1fr); }
.ed-open, .ed-open body { overflow: hidden; }
.ed-panel { min-width: 0; min-height: 0; overflow: hidden; border-right: 1px solid rgba(0, 0, 0, .14); }
.ed-panel iframe { display: block; width: var(--kit-panel); height: 100%; border: 0; transform: translateX(-30px); opacity: .4; transition: transform .36s cubic-bezier(.22, .8, .24, 1), opacity .3s; }
.ed-open .ed-panel iframe { transform: none; opacity: 1; }
.ed-page { min-width: 0; min-height: 0; background: #fff; }
.ed-page iframe { display: block; width: 100%; height: 100%; border: 0; }
.ed-instant .ed-shell, .ed-instant .ed-panel iframe { transition: none !important; }
.ed-tab { position: fixed; left: 0; top: 50%; z-index: 2147483001; transition: left .36s cubic-bezier(.22, .8, .24, 1), background .2s; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 7px 16px 5px; border: 0; border-radius: 0 12px 12px 0; background: var(--kit-accent, #2f6fde); color: var(--kit-on-accent, #fff); box-shadow: 4px 6px 20px rgba(0, 0, 0, .25); transform: translateY(-50%); cursor: pointer; }
.ed-tab:hover, .ed-tab:focus-visible { background: var(--kit-accent-dk, #2257b5); }
.ed-tab:focus-visible { outline: 2px solid var(--kit-on-accent, #fff); outline-offset: -4px; }
.ed-tab svg { width: 18px; height: 18px; }
.ed-tab span { writing-mode: vertical-rl; transform: rotate(180deg); font: 700 12px/1 var(--kit-tab-font, system-ui, sans-serif); letter-spacing: .12em; text-transform: uppercase; }
.ed-open .ed-tab { left: var(--kit-panel); }
.ed-open .ed-tab svg { transform: rotate(180deg); }
/* phones: the page on top, the assistant rising from below (it has its own × to close) */
@media (max-width: 760px) {
  .ed-shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: 100% 0%; transition: grid-template-rows .36s cubic-bezier(.22, .8, .24, 1); }
  .ed-open .ed-shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: 42% 58%; }
  .ed-page { order: -1; border-bottom: 1px solid rgba(0, 0, 0, .14); }
  .ed-panel { border-right: 0; }
  .ed-panel iframe { width: 100%; height: 58vh; height: 58dvh; transform: translateY(30px); }
  .ed-open .ed-tab { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ed-shell, .ed-panel iframe, .ed-tab { transition: none !important; } }
@media print { .ed-tab, .ed-shell { display: none !important; } }
/* the sign-in box: a small card over the page, in the site's own fonts */
.kit-login { position: fixed; inset: 0; z-index: 2147483002; display: grid; place-items: center; padding: 16px; background: rgba(10, 14, 20, .55); animation: kit-fade .18s ease-out; }
.kit-login-open, .kit-login-open body { overflow: hidden; }
.kit-login-card { position: relative; width: 100%; max-width: 360px; background: #fff; color: #17191c; border-radius: 14px; padding: 28px 24px 20px; box-shadow: 0 24px 70px rgba(0, 0, 0, .35); font-size: 16px; line-height: 1.45; text-align: left; }
.kit-login-card h2 { margin: 0 0 6px; font-size: 24px; line-height: 1.2; color: inherit; }
.kit-login-msg { margin: 0 0 16px; color: #5d636b; font-size: 15px; }
.kit-login-card form { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.kit-login-card form[hidden] { display: none; }
.kit-login-card label { font-size: 14px; font-weight: 600; }
.kit-login-card input { width: 100%; box-sizing: border-box; border: 1px solid #c9ced6; border-radius: 8px; padding: 11px 12px; font: inherit; font-size: 16px; background: #fff; color: inherit; }
.kit-login-card input:focus { outline: 2px solid var(--kit-accent, #2f6fde); outline-offset: 0; border-color: transparent; }
.kit-login-card #kit-cd { font-family: ui-monospace, monospace; font-size: 22px; letter-spacing: .3em; text-align: center; }
.kit-login-card #kit-cd::placeholder { font: 400 16px system-ui, -apple-system, sans-serif; letter-spacing: 0; }
.kit-login-card form > button { margin-top: 6px; border: 0; border-radius: 8px; padding: 12px 14px; font: inherit; font-weight: 700; background: var(--kit-accent, #2f6fde); color: #fff; cursor: pointer; }
.kit-login-card form > button:hover { background: var(--kit-accent-dk, #2257b5); }
.kit-login-links { display: flex; justify-content: space-between; gap: 8px; margin-top: 4px; }
.kit-login-links button { border: 0; background: none; padding: 4px 0; font: inherit; font-size: 13px; color: #5d636b; text-decoration: underline; cursor: pointer; }
.kit-login-bad { margin: 10px 0 0; min-height: 1.2em; font-size: 14px; color: #b3261e; }
.kit-login-x { position: absolute; top: 8px; right: 8px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: none; font-size: 24px; line-height: 1; color: #5d636b; cursor: pointer; }
.kit-login-x:hover { background: #f0f2f5; }
@keyframes kit-fade { from { opacity: 0; } }
/* a one-time welcome note, then a bubble pointing at the tab */
.kit-welcome-card { max-width: 520px; padding: 32px 30px 26px; }
.kit-welcome-card p { margin: 0 0 12px; font-size: 16px; line-height: 1.55; color: #33373d; }
.kit-welcome-card .kit-welcome-sign { margin-top: 4px; font-weight: 600; color: #17191c; }
.kit-welcome-go { display: block; width: 100%; margin-top: 18px; border: 0; border-radius: 8px; padding: 13px 16px; font: inherit; font-weight: 700; background: var(--kit-accent, #2f6fde); color: #fff; cursor: pointer; }
.kit-welcome-go:hover { background: var(--kit-accent-dk, #2257b5); }
.kit-coach { position: fixed; z-index: 2147483002; transform: translateY(-50%); width: min(300px, calc(100vw - 80px)); background: #fff; color: #17191c; border-radius: 12px; padding: 14px 34px 14px 16px; box-shadow: 0 14px 40px rgba(0, 0, 0, .3); font-size: 15px; line-height: 1.45; animation: kit-fade .25s ease-out; }
.kit-coach::before { content: ''; position: absolute; left: -8px; top: 50%; margin-top: -8px; border: 8px solid transparent; border-left: 0; border-right-color: #fff; }
.kit-coach p { margin: 0; }
.kit-coach-x { position: absolute; top: 4px; right: 4px; width: 28px; height: 28px; border: 0; border-radius: 50%; background: none; font-size: 20px; line-height: 1; color: #6b6f75; cursor: pointer; }
.ed-tab.kit-pulse { animation: kit-pulse 1.6s ease-in-out infinite; }
@keyframes kit-pulse { 0%, 100% { box-shadow: 4px 6px 20px rgba(0, 0, 0, .25), 0 0 0 0 color-mix(in srgb, var(--kit-accent, #2f6fde) 55%, transparent); } 50% { box-shadow: 4px 6px 20px rgba(0, 0, 0, .25), 0 0 0 12px transparent; } }
@media (prefers-reduced-motion: reduce) { .ed-tab.kit-pulse { animation: none; } }
