/* ═══════════════════════════════════════════════════════════════════════
   THE LABORATORY · v2 (9 Sep 2026)
   The premium wing of the same building. Platform header, fonts and
   tokens; its own warmth. Depth from lightness steps, never glow.
   Loaded only on /laboratory/ pages, after components.css.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── tokens: dark first, light second, both complete ── */
.lab-body{
  --ink:#0b0812; --s1:#140f1c; --s2:#1b1525; --s3:#241c30;
  --bone:#f1eadf; --bone-2:#cfc4b6; --mute:#958a9c; --line:rgba(241,234,223,.09); --line-2:rgba(241,234,223,.17);
  --acc:#e2b46a; --acc-ink:#0b0812;
  --std:#e2b46a; --bop:#f07a58; --stu:#9cc3dc; --live:#d9a765; --bench:#7fd1bd;
  --display:'Suwannaphum',Georgia,serif; --sans:var(--font-body); --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --t1:clamp(48px,6.4vw,88px); --t2:clamp(32px,4.2vw,56px); --t3:clamp(24px,2.6vw,32px);
  --ease:cubic-bezier(.2,.8,.2,1); --fast:180ms; --mid:420ms; --slow:720ms; --gutter:clamp(20px,4vw,64px); --r:6px; --r2:12px;
}
[data-theme="light"] .lab-body{
  --ink:#f6f2ea; --s1:#fbf8f2; --s2:#f1ebe0; --s3:#e8e0d2;
  --bone:#1d1626; --bone-2:#463d52; --mute:#6a5f75; --line:rgba(29,22,38,.10); --line-2:rgba(29,22,38,.18);
  --acc:#7d5916; --acc-ink:#ffffff;
  --std:#7d5916; --bop:#a93b1e; --stu:#2f6580; --live:#7d5916; --bench:#1f6b5b;
}
.lab-body{background:var(--ink)}
.lab-body .bg-canvas{opacity:.35}
.lab-body .main{padding-top:var(--header-height)}
.lab-body .lab-main{margin-left:0;margin-top:0}
.lab-main{color:var(--bone);font-family:var(--sans);font-size:17px;line-height:1.5}
.lab-hub{position:relative;max-width:1400px;margin:0 auto}
.lab-hub h1,.lab-hub h2,.lab-hub h3,.lab-hub p{margin:0}
.lab-hub button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
.lab-hub a:not(.lab-btn):not(.lab-chip){color:inherit}
/* 13 Sep 2026: the bare rule above used to win over .lab-btn-primary on specificity, so the gold
   buy button inherited pale body text on a gold ground and was unreadable. Buttons and chips carry
   their own colour; never let a broad inherit rule reach them. */
.lab-hub :focus-visible{outline:2px solid var(--acc);outline-offset:4px;border-radius:2px}
.lab-hub .hidden{display:none!important}
.lab-eyebrow{font-size:13.5px;color:var(--mute)}
.lab-eyebrow b{color:var(--acc);font-weight:600}
.lab-lede{color:var(--bone-2);max-width:56ch;margin-top:12px}
.lab-t1{font-family:var(--display);font-weight:700;font-size:var(--t1);line-height:.98;letter-spacing:-.02em;text-wrap:balance;width:min-content;min-width:5.6em}
.lab-t1 em{font-style:normal;font-weight:400;color:var(--acc)}
.lab-t2{font-family:var(--display);font-weight:400;font-size:var(--t2);line-height:.98;letter-spacing:-.02em;text-wrap:balance;margin-top:12px}
.lab-t2 em{font-style:normal;color:var(--acc)}
.lab-t3{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.8vw,36px);line-height:1.05;margin:10px 0 8px}
.lab-mono{font-family:var(--mono);font-size:13px;color:var(--mute)}

/* header chips (platform header, our chips) */
.lab-chip{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 13px;border:1px solid var(--line-2);border-radius:999px;font-size:13.5px;color:var(--bone-2);text-decoration:none;white-space:nowrap;transition:all var(--fast) var(--ease)}
.lab-chip:hover{border-color:var(--acc);color:var(--bone)}
.lab-chip-acc{background:var(--acc);color:var(--acc-ink);border-color:transparent;font-weight:600}
.lab-chip .lab-dot{width:7px;height:7px;border-radius:50%;background:var(--acc)}
.lab-btn{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;transition:all var(--fast) var(--ease);white-space:nowrap}
.lab-btn-primary{background:var(--acc);color:var(--acc-ink)} .lab-btn-primary:hover{filter:brightness(1.06)}
.lab-btn-ghost{border:1px solid var(--line-2);color:var(--bone-2)} .lab-btn-ghost:hover{border-color:var(--acc);color:var(--bone)}

/* ── threshold ── */
.lab-threshold{padding:clamp(28px,4vh,56px) var(--gutter) 0}
.lab-title-block{display:grid;grid-template-columns:auto minmax(24ch,1fr) auto;gap:clamp(24px,4vw,56px);align-items:end;margin-bottom:clamp(20px,3vh,36px)}
.lab-intro{max-width:44ch;color:var(--bone-2);font-size:clamp(16px,1.3vw,19px);line-height:1.5}
.lab-intro strong{color:var(--bone);font-weight:600}
.lab-portrait{width:clamp(120px,11vw,160px);aspect-ratio:4/5;border-radius:var(--r2);overflow:hidden;border:1px solid var(--line-2);align-self:end}
.lab-portrait img{width:100%;height:100%;object-fit:cover;display:block}
.lab-price[hidden]{display:none!important}
.lab-price{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:16px 20px;margin-bottom:14px;border:1px solid var(--line-2);border-radius:var(--r2);background:var(--s1);font-size:15px;color:var(--bone-2)}
.lab-price strong{color:var(--bone)}
.lab-price a:not(.lab-btn){color:var(--acc)}
.lab-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--line);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.lab-door{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:0;padding:clamp(168px,23vh,212px) 28px 24px;background:var(--s1);text-align:left;overflow:hidden;transition:background var(--mid) var(--ease);text-decoration:none}
.lab-door:hover,.lab-door:focus-visible{background:var(--s2)}
.lab-door .sig{position:absolute;left:0;right:0;top:50px;height:clamp(104px,17vh,150px);pointer-events:none;transition:transform var(--slow) var(--ease)}
.lab-door .sig>div{position:absolute!important;inset:0!important;height:auto!important;top:0!important}
.lab-door:hover .sig{transform:scale(1.03)}
.lab-door .k{position:absolute;top:22px;left:28px;font-family:var(--display);font-size:15px;color:var(--bone-2)}
.lab-door .n{font-family:var(--display);font-weight:400;font-size:clamp(36px,3.6vw,50px);line-height:.98;letter-spacing:-.02em;color:var(--bone);margin-bottom:10px}
.lab-door .after{margin-top:12px;font-size:13.5px;color:var(--door-acc);font-style:italic;font-family:var(--display)}
[data-theme="light"] .lab-door .after{color:var(--bone-2)}
.lab-door .d{max-width:34ch;color:var(--bone-2);font-size:15.5px;line-height:1.45}
.lab-door .m{margin-top:16px;padding-right:64px;font-size:13.5px;color:var(--mute);display:flex;gap:14px;flex-wrap:wrap}
.lab-door .go{position:absolute;right:24px;bottom:26px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;color:var(--bone-2);transition:all var(--fast) var(--ease)}
.lab-door:hover .go{background:var(--door-acc);color:var(--ink);border-color:transparent;transform:translateX(3px)}
.lab-strip{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:2px;margin-top:2px;background:var(--line);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r2) var(--r2);overflow:hidden}
.lab-strip>*{background:var(--s1);padding:18px 24px;display:flex;align-items:center;gap:16px;text-align:left;min-height:84px;text-decoration:none;transition:background var(--fast) var(--ease)}
.lab-strip>*:hover{background:var(--s2)}
.lab-strip .lbl{font-size:12.5px;color:var(--mute)}
.lab-strip .v{font-size:16px;color:var(--bone);font-weight:500;margin-top:2px;line-height:1.3}
.lab-strip .s{font-size:13.5px;color:var(--bone-2);margin-top:2px}
.lab-strip .s em{color:var(--bone);font-style:italic;font-family:var(--display);font-size:15px}
.lab-play{width:40px;height:40px;border-radius:50%;background:var(--acc);color:var(--acc-ink);display:grid;place-items:center;flex-shrink:0}
.lab-tape{width:40px;height:40px;border-radius:4px;border:1px solid var(--live);display:grid;place-items:center;color:var(--live);flex-shrink:0;font-family:var(--mono);font-size:11px}
.lab-ten{width:40px;height:40px;border-radius:50%;border:1px solid var(--bench);color:var(--bench);display:grid;place-items:center;font-family:var(--mono);font-size:12px;flex-shrink:0}

/* ── worlds ── */
.lab-body[data-world="bebop"] .lab-hub{--acc:var(--bop)} .lab-body[data-world="studies"] .lab-hub{--acc:var(--stu)} .lab-body[data-world="standards"] .lab-hub{--acc:var(--std)}
.lab-world{padding:0 var(--gutter) 40px}
.lab-rail{position:sticky;top:var(--header-height);z-index:15;display:flex;gap:6px;flex-wrap:wrap;padding:14px 0 18px;background:linear-gradient(180deg,var(--ink) 70%,transparent)}
.lab-rail a,.lab-rail button{padding:10px 16px;border-radius:999px;border:1px solid var(--line);color:var(--mute);font-size:14px;text-decoration:none;transition:all var(--fast) var(--ease);display:flex;gap:10px;align-items:center}
.lab-rail [aria-current="true"]{color:var(--bone);border-color:var(--acc)}
.lab-rail .sw{width:8px;height:8px;border-radius:50%;background:var(--sw)}
.lab-rail .sep{width:1px;height:22px;background:var(--line-2);align-self:center;margin:0 4px}
.lab-rail .back{margin-left:auto;color:var(--bone-2)}
.lab-wh{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;padding:clamp(20px,4vh,48px) 0 28px}
.lab-wh p{color:var(--bone-2);max-width:48ch}
.lab-dests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.lab-dest{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:26px;border:1px solid var(--line);border-radius:var(--r2);background:var(--s1);text-align:left;position:relative;text-decoration:none;color:inherit;transition:transform var(--mid) var(--ease),border-color var(--fast) var(--ease),background var(--fast) var(--ease)}
.lab-dest:hover{background:var(--s2);border-color:var(--line-2);transform:translateY(-3px)}
.lab-dest .n{font-family:var(--display);font-weight:400;font-size:clamp(38px,4vw,58px);line-height:.95;letter-spacing:-.02em}
.lab-dest .n small{display:block;font-family:var(--sans);font-size:13.5px;letter-spacing:0;color:var(--acc);margin-bottom:8px;font-weight:600}
.lab-dest .why{color:var(--bone-2);font-size:15px;margin:12px 0 16px;max-width:40ch}
.lab-facts{font-family:var(--mono);font-size:12.5px;color:var(--mute);margin-top:14px}
.lab-dest .fp{display:grid;grid-template-columns:repeat(3,auto);gap:14px 26px;justify-content:start;font-size:13px;color:var(--mute)}
.lab-dest .fp b{display:block;color:var(--bone);font-weight:600;font-size:15px;margin-top:2px}
.lab-dest .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--bone-2);flex-wrap:wrap}
.lab-dest .foot .days{color:var(--acc);font-family:var(--mono);font-size:12.5px}
.lab-open{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--acc);color:var(--acc-ink);margin-left:8px;vertical-align:middle}
.lab-sheet{margin-top:10px}
.lab-sheet summary{cursor:pointer;font-size:14px;color:var(--bone-2);padding:8px 0;list-style:none;display:flex;gap:8px;align-items:center}
.lab-sheet summary::-webkit-details-marker{display:none}
.lab-sheet summary::before{content:'';width:8px;height:8px;border-right:1.5px solid var(--acc);border-bottom:1.5px solid var(--acc);transform:rotate(-45deg);transition:transform var(--fast) var(--ease)}
.lab-sheet[open] summary::before{transform:rotate(45deg)}
.lab-form{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:2px;margin-top:10px}
.lab-form .bar{position:relative;min-height:38px;padding:8px 6px 6px 8px;border:1px solid var(--line);font-family:var(--mono);font-size:11.5px;color:var(--bone-2);line-height:1.25}
.lab-form .bar.bridge{background:color-mix(in srgb,var(--acc) 10%,transparent)}
.lab-form .bar i{position:absolute;top:2px;right:5px;font-style:normal;font-size:9.5px;color:var(--acc)}
.lab-form .bar b{font-weight:400;color:var(--mute);margin:0 3px}
.lab-phrases{display:grid;gap:12px}
.lab-phrase{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:center;padding:22px 26px;border:1px solid var(--line);border-radius:var(--r2);background:var(--s1);text-align:left;overflow:hidden;text-decoration:none;color:inherit;transition:all var(--fast) var(--ease)}
.lab-phrase:hover{background:var(--s2);border-color:var(--line-2)}
.lab-phrase .n{font-family:var(--display);font-weight:400;font-size:clamp(32px,3.4vw,48px);line-height:.98;letter-spacing:-.02em}
.lab-phrase .n small{display:block;font-family:var(--sans);font-size:13.5px;color:var(--acc);margin-bottom:8px;font-weight:600}
.lab-phrase .why{color:var(--bone-2);font-size:15px;margin-top:10px;max-width:42ch}
.lab-phrase .cells{position:relative;height:96px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.lab-phrase .track{position:absolute;top:0;left:0;display:flex;gap:10px;align-items:center;height:100%;white-space:nowrap;animation:labrun 22s linear infinite}
.lab-phrase:hover .track{animation-duration:9s}
.lab-cell{font-family:var(--mono);font-size:15px;padding:10px 14px;border:1px solid var(--line-2);border-radius:var(--r);color:var(--bone)}
.lab-cell.dom{border-color:var(--acc);color:var(--acc)}
.lab-cell.pass{opacity:.45;font-size:12px;padding:6px 8px}
@keyframes labrun{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.lab-phrase .lessons{grid-column:1/-1;display:flex;gap:18px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:var(--bone-2)}
.lab-phrase .lessons span b{color:var(--bone);font-weight:500}
.lab-studies{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:64px}
.lab-study{display:grid;grid-template-columns:72px minmax(0,1fr);gap:24px;padding:34px 0;border-top:1px solid var(--line);text-align:left;text-decoration:none;color:inherit}
.lab-study:last-of-type{border-bottom:1px solid var(--line)}
.lab-study .num{font-family:var(--display);font-size:44px;color:var(--mute);line-height:1}
.lab-study .n{font-family:var(--display);font-weight:400;font-size:var(--t3);line-height:1.05;letter-spacing:-.015em}
.lab-study:hover .n{color:var(--acc)}
.lab-study .why{color:var(--bone-2);margin-top:10px;max-width:56ch}
.lab-study .m{margin-top:14px;display:flex;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--mute)}
.lab-aside{position:sticky;top:calc(var(--header-height) + 60px);align-self:start;display:grid;gap:14px}
.lab-aside .box{padding:22px;border:1px solid var(--line);border-radius:var(--r2);background:var(--s1)}
.lab-aside h4{font-family:var(--display);font-size:18px;color:var(--bone);margin:0 0 10px;font-weight:400}
.lab-aside p{color:var(--bone-2);font-size:14.5px}
.lab-lineup{display:grid;gap:8px;margin-top:12px}
.lab-lineup a{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--r);border:1px solid var(--line);text-decoration:none;font-size:14px;color:var(--bone-2)}
.lab-lineup a:hover{border-color:var(--acc);color:var(--bone)}
.lab-lineup a i{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--mute)}

/* ── the live room ── */
.lab-liveroom{padding:clamp(56px,9vh,120px) var(--gutter);background:linear-gradient(180deg,transparent,rgba(217,167,101,.05) 30%,rgba(217,167,101,.05) 70%,transparent)}
.lab-liveroom{--acc:var(--live)}
.lab-lr-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:end;margin-bottom:40px}
.lab-lr-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.lab-lr-filters button{padding:9px 14px;border-radius:999px;border:1px solid var(--line-2);color:var(--bone-2);font-size:14px;transition:all var(--fast) var(--ease)}
.lab-lr-filters button[aria-pressed="true"]{background:var(--live);color:var(--acc-ink);border-color:transparent;font-weight:600}
.lab-lr-search{display:flex;gap:10px;align-items:center;padding:12px 14px;border:1px dashed var(--line-2);border-radius:var(--r2);color:var(--mute);font-size:14px}
.lab-lr-search input{flex:1;background:none;border:0;color:var(--bone);font:inherit;outline:none;min-width:0}
.lab-lr-search input::placeholder{color:var(--mute)}
.lab-timeline{position:relative}
.lab-timeline::before{content:"";position:absolute;left:118px;top:0;bottom:0;width:1px;background:var(--line-2)}
.lab-session{display:grid;grid-template-columns:96px 44px minmax(0,1fr) auto;gap:0 20px;align-items:center;padding:14px 0;text-align:left;border-top:1px solid var(--line);text-decoration:none;color:inherit;transition:background var(--fast) var(--ease)}
.lab-session:hover{background:rgba(217,167,101,.06)}
.lab-session .date{font-family:var(--mono);font-size:12.5px;color:var(--mute);line-height:1.5}
.lab-session .date b{display:block;color:var(--bone-2);font-weight:500}
.lab-session .mark{width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid var(--live);margin:0 0 0 16px}
.lab-session .n{font-family:var(--display);font-weight:400;font-size:clamp(21px,2vw,26px);line-height:1.1;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lab-session .sub{color:var(--bone-2);margin-top:3px;font-size:14.5px}
.lab-session .ch{margin-top:6px;display:flex;gap:8px;flex-wrap:wrap}
.lab-session .ch span{font-size:12.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--mute)}
.lab-session .dur{font-size:13px;color:var(--mute);text-align:right;min-width:72px}
.lab-session .dur b{display:block;color:var(--bone);font-weight:500;font-size:14px}
.lab-session .sit{display:none}
.lab-session .dur::after{content:'Sit in \2192';display:block;margin-top:4px;font-size:12.5px;color:var(--live);opacity:0;transition:opacity var(--fast) var(--ease)}
.lab-session:hover .dur::after,.lab-session:focus-visible .dur::after{opacity:1}
.lab-session .mark{transition:transform var(--fast) var(--ease)}
.lab-session:hover .mark{transform:scale(1.25);background:var(--live)}
.lab-new{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--live);color:var(--acc-ink);vertical-align:middle}
.lab-next[hidden],.lab-side-mentorship[hidden]{display:none!important}
.lab-next{margin-top:34px;padding:30px 32px;border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);border-radius:var(--r2);background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 9%,var(--s1)),var(--s1) 60%);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 10%,transparent) inset}
.lab-checks{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;color:var(--bone)}
.lab-checks li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.4}
.lab-checks li::before{content:'';flex-shrink:0;width:18px;height:18px;margin-top:2px;border-radius:50%;background:var(--acc);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat,linear-gradient(#000,#000);mask-composite:exclude}
.lab-next .lab-t3{font-size:clamp(22px,2.3vw,30px);margin:8px 0 10px}
.lab-next-cta{display:grid;gap:10px;justify-items:start;max-width:260px}
.lab-next-cta .lab-mono{font-size:12.5px;line-height:1.5}
.lab-side-mentorship .sidebar-mentorship-title{font-weight:700}
.lab-side-checks{list-style:none;margin:8px 0 10px;padding:0;display:grid;gap:5px;font-size:12.5px;color:var(--text-secondary)}
.lab-side-checks li{display:flex;gap:7px;align-items:flex-start}
.lab-side-checks li::before{content:'\2713';color:var(--phase-color,var(--purple));font-weight:700;flex-shrink:0}
.lab-live-btn{border-color:var(--live);color:var(--live)}

/* ── the workbench ── */
.lab-workbench{padding:clamp(56px,9vh,120px) var(--gutter) 140px;--acc:var(--bench)}
.lab-wb-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:48px}
.lab-builder{margin-top:24px;padding:22px;border:1px solid var(--line-2);border-radius:var(--r2);background:var(--s1)}
.lab-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lab-set{margin-top:16px;display:grid;gap:8px}
.lab-set .it{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--r);background:var(--s2);font-size:14.5px}
.lab-set .it i{font-style:normal;font-family:var(--mono);font-size:12.5px;color:var(--mute)}
.lab-timer{margin-top:16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lab-timer-t{font-family:var(--mono);font-size:34px;color:var(--bone);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.lab-drills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-content:start}
.lab-drill{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:var(--r2);background:var(--s1);text-align:left;min-height:150px;text-decoration:none;color:inherit;transition:all var(--fast) var(--ease)}
.lab-drill:hover{background:var(--s2);border-color:var(--bench)}
.lab-drill .n{font-weight:600;font-size:15.5px;line-height:1.25}
.lab-drill .set{display:grid;gap:5px;flex:1;font-size:13px;color:var(--bone-2)}
.lab-drill .set span{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:baseline}
.lab-drill .set i{font-style:normal;font-size:11.5px;color:var(--mute)}
.lab-drill .m{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--mute)}
.lab-drill .m b{color:var(--bench);font-weight:500}
.lab-drill.recent{border-color:color-mix(in srgb,var(--bench) 45%,transparent)}
.lab-stuck{margin:34px 0 0;font-size:14px;color:var(--mute)}
.lab-stuck a{color:var(--bone-2);text-decoration:underline;text-underline-offset:3px}

/* ── reveals, motion ── */
.lab-hub .rv{opacity:1;transform:none}
.lab-hub.animate .rv{animation:labrv var(--mid) var(--ease) both}
@keyframes labrv{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.lab-trace{stroke-dasharray:1;stroke-dashoffset:1;animation:labdraw 1.6s var(--ease) forwards}
@keyframes labdraw{to{stroke-dashoffset:0}}

/* ── phone bench (hub only) ── */
.lab-mbench{display:none}

/* ═══ LESSON PAGES (platform shell + these additions) ═══ */
.lab-group .module-header{display:flex;align-items:center;gap:8px}
.lab-group-meta{margin-left:auto;font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--text-muted);opacity:.85}
.lab-group .lesson-num .lab-dot{font-size:18px;line-height:1;color:var(--text-muted)}
.lab-group .lesson-item.completed .lab-dot{display:none}
.lab-mins{display:block;font-size:11px;color:var(--text-muted);margin-top:2px;font-weight:400}
.lab-places{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px 12px}
.lab-places a{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid var(--border-subtle);color:var(--text-secondary);text-decoration:none;display:flex;gap:6px;align-items:center}
.lab-places a[aria-current="true"]{color:var(--text-primary);border-color:var(--phase-color,var(--purple))}
.lab-places a .sw{width:7px;height:7px;border-radius:50%;background:var(--sw)}
.lab-warmup{margin:6px 16px 10px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:10px;font-size:12.5px;color:var(--text-secondary)}
.lab-warmup a{color:var(--text-primary);text-decoration:none;font-weight:600}
.lab-warmup span{display:block;font-size:11px;color:var(--text-muted);margin-bottom:2px}
.lab-crumb-link{color:inherit;text-decoration:none}
.lab-crumb-link:hover{color:var(--text-primary)}
.lab-crumb-sep{margin:0 8px;opacity:.5}
.lab-live{display:flex;gap:10px;align-items:flex-start;margin:-6px 0 14px;font-size:13px;line-height:1.5;color:var(--text-secondary)}
.lab-chipx{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid var(--glass-border);color:var(--text-muted);white-space:nowrap;vertical-align:middle}
.lab-live .lab-chipx{margin-top:2px}
.lab-needs{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin:-6px 0 18px;font-size:13px;color:var(--text-secondary)}
.lab-needs-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.lab-goal{font-size:15px;line-height:1.55;color:var(--text-secondary);margin:0 0 20px;padding-left:14px;border-left:2px solid var(--phase-color,var(--purple))}
.wg-lesson-page[data-course="laboratory"] .wg-practice-card{margin:20px 0 8px;padding:18px 20px 6px;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-md)}
.wg-lesson-page[data-course="laboratory"] .wg-practice-toggle{font-size:14px;font-weight:600;color:var(--text-primary);padding:0 0 8px}
.wg-lesson-page[data-course="laboratory"] .wg-practice-body.open{max-height:900px}
.wg-lesson-page[data-course="laboratory"] .wg-practice-section{padding-bottom:10px}
.lab-chapters{margin:18px 0 8px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--bg-card);overflow:hidden}
.lab-chapters-head{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:14px 18px 8px}
.lab-chapter{display:flex;gap:14px;align-items:baseline;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--glass-border);padding:11px 18px;cursor:pointer;font:inherit;color:var(--text-primary);font-size:14.5px;line-height:1.45}
.lab-chapter:hover{background:var(--bg-hover,rgba(255,255,255,.04))}
.lab-chapter time{flex-shrink:0;font-variant-numeric:tabular-nums;font-size:13px;color:var(--phase-color,var(--purple));min-width:52px}
.lab-action{margin:14px 0 22px;padding:18px 20px;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--bg-card)}
.lab-action-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.lab-action-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.lab-action-days{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.lab-action-task{font-size:15px;line-height:1.55;color:var(--text-primary);margin:10px 0 14px}
.lab-action-row{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.lab-action-check{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:10px;cursor:pointer;border:1px solid var(--glass-border);background:transparent;color:var(--text-primary);font:inherit;font-size:14px;font-weight:600;min-height:var(--tap-min,44px);transition:all .2s var(--ease-out)}
.lab-action-check:hover{border-color:var(--border-hover)}
.lab-action-check .lab-box{width:18px;height:18px;border-radius:5px;border:2px solid var(--text-muted);display:inline-block;position:relative;flex-shrink:0}
.lab-action-check.done{border-color:var(--green,#2fbf8a);color:var(--green-text,#2fbf8a)}
.lab-action-check.done .lab-box{background:var(--green,#2fbf8a);border-color:var(--green,#2fbf8a)}
.lab-action-check.done .lab-box::after{content:"";position:absolute;left:4px;top:0;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.lab-action-note{flex:1 1 220px;min-width:0;padding:10px 12px;border-radius:10px;font:inherit;font-size:14px;line-height:1.4;color:var(--text-primary);background:var(--field-bg,rgba(255,255,255,.04));border:1px solid var(--glass-border);resize:vertical;min-height:44px}
.lab-action-note::placeholder{color:var(--text-muted)}
.lab-action-note:focus{outline:none;border-color:var(--phase-color,var(--purple))}
.lab-action-saved{font-size:12px;color:var(--text-muted);margin-top:8px;min-height:16px}
.lab-action-log{margin-top:10px;font-size:12.5px;color:var(--text-secondary)}
.lab-action-log span{display:block;padding:3px 0;border-top:1px dashed var(--glass-border)}
.lab-action-log time{color:var(--text-muted);margin-right:8px;font-variant-numeric:tabular-nums}
.lab-action-log span{display:flex;align-items:center;gap:8px}
.lab-action-log span time{flex-shrink:0}
.lab-log-x{margin-left:auto;width:26px;height:26px;border-radius:50%;border:1px solid transparent;background:none;color:var(--text-muted);font:inherit;font-size:16px;line-height:1;cursor:pointer;opacity:.55;flex-shrink:0}
.lab-log-x:hover,.lab-log-x:focus-visible{opacity:1;border-color:var(--glass-border);color:var(--text-primary)}
.lab-action-note-wrap{position:relative;flex:1 1 220px;min-width:0;display:flex}
.lab-action-note-wrap .lab-action-note{flex:1}
.lab-note-x{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:50%;border:0;background:none;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;opacity:.55}
.lab-note-x:hover{opacity:1;color:var(--text-primary)}
.lab-note-x[hidden]{display:none}
.wg-lesson-page[data-course="laboratory"]:not([data-zone="foundation"]) .mark-complete-wrap{opacity:.8;transform:scale(.94);transform-origin:left center}
.wg-lesson-page[data-course="laboratory"] .coaching-hint{display:none!important}
.lab-nav .nav-related .nav-label{color:var(--text-muted)}
.lab-ref{color:var(--text-primary);text-decoration:underline;text-decoration-color:var(--glass-line,rgba(255,255,255,.25));text-underline-offset:3px}
.lab-ref:hover{text-decoration-color:currentColor}
.lab-side-map{padding:8px 16px 4px}
.lab-side-map .lab-mono{display:block;margin-top:6px}

/* ── responsive ── */
@media (max-width:1100px){.lab-studies{grid-template-columns:1fr}.lab-aside{position:static}.lab-wb-grid{grid-template-columns:1fr}}
@media (max-height:820px){.lab-body{--t1:clamp(44px,6vw,80px)}.lab-door{padding-top:clamp(160px,24vh,200px)}}
@media (max-width:860px){
  .lab-title-block{grid-template-columns:1fr;gap:16px}.lab-portrait{display:none}
  .lab-doors{grid-template-columns:1fr}.lab-door{padding:118px 22px 22px}.lab-threshold{padding-bottom:12px}.lab-door .n{font-size:40px}.lab-door .sig{opacity:.4;top:40px;height:70px}
  .lab-door .k{top:20px;left:22px}
  .lab-body .header-course{display:none}
  .lab-strip{grid-template-columns:1fr}
  .lab-wh,.lab-lr-head,.lab-next{grid-template-columns:1fr;gap:16px}.lab-next-cta{max-width:none}
  .lab-phrase{grid-template-columns:1fr}
  .lab-dests{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:86vw;padding-bottom:12px}
  .lab-dest-wrap{margin:0 calc(-1*var(--gutter));padding:0 var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .lab-dest-wrap::-webkit-scrollbar{display:none}.lab-dest{scroll-snap-align:start}
  .lab-rail{position:static;padding-top:10px}.lab-rail .back{margin-left:0;width:100%;justify-content:center}
  .lab-timeline::before{left:12px}
  .lab-session{grid-template-columns:24px minmax(0,1fr);gap:0 14px}
  .lab-session{align-items:start;padding:16px 0}.lab-session .date{grid-column:2;order:-1;padding:0 0 4px}.lab-session .dur::after{display:none}
  .lab-session .mark{grid-column:1;grid-row:1/4;margin:6px 0 0 0}
  .lab-session .n,.lab-session .sub,.lab-session .ch,.lab-session .dur{grid-column:2}
  .lab-session .dur{text-align:left;padding-top:10px}
  .lab-drills{grid-template-columns:1fr 1fr}
  .lab-chip-continue,.lab-chip-acc{display:none}
  .lab-mbench{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px;position:fixed;left:12px;right:12px;bottom:12px;z-index:25;background:var(--line);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;backdrop-filter:blur(12px)}
  .lab-mbench a{background:var(--s1);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:var(--bone-2);text-decoration:none}
  .lab-mbench a b{font-size:12px;color:var(--acc);font-weight:600}
  .lab-workbench{padding-bottom:160px}
}
@media (max-width:520px){.lab-drills{grid-template-columns:1fr}.lab-dest .fp{grid-template-columns:1fr 1fr}.lab-form{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.lab-hub *{animation:none!important;transition:none!important}.lab-trace{stroke-dashoffset:0}.lab-phrase .track{animation:none!important}}

/* Previews: the four teasers from the old Academy, for people who do not own the room yet. 2026-09-10 */
.lab-prev { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; font: 600 10.5px/1.5 var(--font-mono, monospace); letter-spacing: .02em; color: var(--acc, #e2b46a); border: 1px solid currentColor; opacity: .85; vertical-align: 1px; white-space: nowrap; }
.wg-locked-card.has-preview { max-width: 680px; width: calc(100% - 32px); }
.lab-preview { margin: 4px 0 18px; }
/* The locked lesson is the one place inside the room where price belongs: the visitor has just hit
   the wall and is asking the question. It sells instead of dead-ending. 13 Sep 2026. */
.wg-lock-lead { font-size: .95rem; line-height: 1.55; color: var(--text-secondary); margin: 0 0 14px; }
.wg-lock-list { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; text-align: left; max-width: 34em; margin-inline: auto; }
.wg-lock-list li { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; line-height: 1.45; color: var(--text-primary); }
.wg-lock-list li::before { content: ''; flex-shrink: 0; width: 16px; height: 16px; margin-top: 3px; border-radius: 50%; background: var(--purple); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat; }
.wg-lock-price { margin: 12px 0 4px; font-size: .88rem; font-weight: 600; color: var(--text-primary); line-height: 1.6; }
.wg-lock-price span { font-weight: 400; color: var(--text-muted); }
.lab-preview-v { position: relative; padding-top: 56.25%; border-radius: 12px; overflow: hidden; background: #000; }
.lab-preview-v iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lab-preview-l { margin-top: 8px; font-size: .78rem; color: var(--text-secondary); }


/* Moment counts on the Live Room list. 14 Sep 2026: 128 chapters exist across 9 sessions and
   nothing on the hub said so, which meant the one genuinely differentiated asset in the product
   looked like an undifferentiated list of long videos. */
.lab-moments{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font:600 10.5px/1.6 var(--mono);letter-spacing:.02em;color:var(--live,#d9a765);border:1px solid currentColor;opacity:.75;white-space:nowrap;vertical-align:1px}
@media (max-width:860px){.lab-moments{margin-left:0;margin-top:4px;display:inline-block}}
