/* Team Build page — one structure, two skins (gold / fresh).
 * Colours, fonts and button style arrive as CSS custom properties on
 * .tb (set by includes/teambuild.php from a bounded preset, never raw
 * user text colours), so a leader's choices can't produce unreadable text. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.tb-body{margin:0;font-size:16px;line-height:1.55;min-height:100vh;overflow-x:hidden}
.tb{position:relative;min-height:100vh;color:var(--tb-ink);font-family:var(--tb-font-body);font-size:16px;line-height:1.55}
.tb a:not(.tb-btn):not(.tb-prog-btn){color:inherit}
.tb img{max-width:100%;display:block}
.tb button{font:inherit}
.tb button:not(.tb-btn){color:inherit}
.tb :focus-visible{outline:2px solid var(--tb-focus);outline-offset:3px;border-radius:10px}
.tb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- backdrop: page colour field + optional spotlight ---------- */
.tb-sky{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--tb-sky)}
.tb-sky::after{content:"";position:absolute;inset:0;background:var(--tb-sky-veil)}
.tb-spot{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .9s ease}
.tb-spot.is-on{opacity:1}
.tb-spot-layer{position:absolute;inset:-10%;opacity:0;transition:opacity 1.1s ease;background:radial-gradient(60% 50% at 50% 30%,var(--c) 0%,transparent 70%),radial-gradient(40% 40% at 15% 85%,var(--c) 0%,transparent 70%);filter:blur(10px) saturate(1.15)}
.tb-spot-layer.is-active{opacity:var(--tb-spot-strength)}
.tb-spot-mark{position:absolute;right:-4vw;bottom:-6vh;font-family:var(--tb-font-head);font-weight:700;font-size:38vw;line-height:.8;color:var(--c);opacity:.10;filter:blur(3px);letter-spacing:-.04em}
.tb-spot-logo{position:absolute;right:4vw;bottom:6vh;width:30vw;max-width:420px;opacity:.10;filter:blur(2px) grayscale(.2)}
@media (max-width:760px){.tb-spot-mark{font-size:60vw}.tb-spot-logo{width:60vw}}
.tb-dust{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:var(--tb-dust,0)}
.tb-dust i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--tb-dust-color);box-shadow:0 0 8px var(--tb-dust-color);animation:tb-float 18s linear infinite;opacity:0}
@keyframes tb-float{0%{transform:translateY(20px);opacity:0}15%{opacity:.8}85%{opacity:.6}100%{transform:translateY(-140px);opacity:0}}
.tb-blob{position:fixed;z-index:0;pointer-events:none;border-radius:50%;filter:blur(60px);opacity:var(--tb-blob-op,.0);animation:tb-drift 26s ease-in-out infinite alternate}
@keyframes tb-drift{0%{transform:translate(0,0) scale(1)}100%{transform:translate(6vw,-5vh) scale(1.12)}}

/* ---------- ribbon ---------- */
.tb-ribbon{position:relative;z-index:2;display:flex;justify-content:center;gap:.5em;align-items:center;padding:.5rem 1rem;font-size:.82rem;letter-spacing:.01em;color:var(--tb-ribbon-ink);background:var(--tb-ribbon-bg);border-bottom:1px solid var(--tb-line);text-align:center}
.tb-ribbon b{font-weight:600}
.tb-ownerbar{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:.5rem .9rem;justify-content:center;align-items:center;padding:.55rem 1rem;font-size:.85rem;background:#111;color:#fff}
.tb-ownerbar a{color:#fff;font-weight:600;text-decoration:underline}

/* ---------- column ---------- */
.tb-wrap{position:relative;z-index:1;width:100%;max-width:600px;margin:0 auto;padding:22px 16px 56px}
.tb-col{display:flex;flex-direction:column;gap:18px}

/* ---------- hero ---------- */
.tb-hero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:4px}
.tb-photo{position:relative;width:var(--tb-photo-w,148px);height:var(--tb-photo-h,148px);border-radius:var(--tb-photo-r,50%);padding:3px;background:var(--tb-photo-ring);box-shadow:var(--tb-photo-glow)}
.tb-photo img,.tb-photo .tb-initial{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--tb-photo-r,50%) - 2px);background:var(--tb-surface-solid)}
.tb-photo .tb-initial{display:flex;align-items:center;justify-content:center;font-family:var(--tb-font-head);font-size:3.4rem;color:var(--tb-accent-text)}
.tb[data-shape="circle"]{--tb-photo-r:50%}
.tb[data-shape="rounded"]{--tb-photo-r:26px;--tb-photo-w:168px;--tb-photo-h:168px}
.tb[data-shape="portrait"]{--tb-photo-r:22px;--tb-photo-w:176px;--tb-photo-h:216px}

.tb-name{margin:6px 0 0;font-family:var(--tb-font-head);font-weight:var(--tb-head-weight);font-size:clamp(2.4rem,9vw,3.2rem);line-height:1.04;letter-spacing:var(--tb-head-track);color:var(--tb-name-ink)}
.tb-promise{margin:0;max-width:30em;font-size:1.06rem;line-height:1.5;color:var(--tb-ink-soft)}
.tb-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:2px 0 0;padding:0;list-style:none}
.tb-chips li{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.82rem;background:var(--tb-chip-bg);border:1px solid var(--tb-chip-line);color:var(--tb-chip-ink)}
.tb-chips li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--tb-accent)}

/* ---------- cards ---------- */
.tb-card{position:relative;border-radius:var(--tb-radius);background:var(--tb-surface);border:1px solid var(--tb-line);box-shadow:var(--tb-card-shadow);padding:18px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.tb-card h2{margin:0 0 4px;font-family:var(--tb-font-head);font-weight:var(--tb-head-weight);font-size:1.45rem;line-height:1.15;color:var(--tb-name-ink)}
.tb-card p{margin:0}
.tb-muted{color:var(--tb-muted)}
.tb-small{font-size:.86rem}

/* step 1 */
.tb-step1 .tb-lead{margin:2px 0 12px;color:var(--tb-ink-soft);font-size:.95rem}
.tb-form{display:flex;gap:8px;flex-wrap:wrap}
.tb-form .tb-btn{flex:1 0 auto}
.tb-input{flex:999 1 220px;min-width:0;height:52px;padding:0 16px;border-radius:calc(var(--tb-radius) - 6px);border:1px solid var(--tb-input-line);background:var(--tb-input-bg);color:var(--tb-ink);font:inherit;font-size:16px}
.tb-input::placeholder{color:var(--tb-muted)}
.tb-input:focus{outline:none;border-color:var(--tb-accent);box-shadow:0 0 0 3px var(--tb-ring)}
.tb-meta{margin:10px 0 0;font-size:.82rem;line-height:1.5;color:var(--tb-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:480px){.tb-meta{font-size:.72rem;letter-spacing:-.005em}}
@media (max-width:359px){.tb-meta{white-space:normal}}
.tb-meta a{color:inherit}
.tb-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;border:1px solid var(--tb-chip-line);background:var(--tb-chip-bg);color:var(--tb-chip-ink);font-size:.78rem;white-space:nowrap}
.tb-msg{margin-top:10px;font-size:.9rem;min-height:0}
.tb-msg.is-err{color:var(--tb-err)}
.tb-msg.is-ok{color:var(--tb-ok)}
.tb-saved{display:flex;align-items:center;gap:10px;font-size:1rem}
.tb-saved .tb-tick{flex:0 0 auto}
.tb-codebox{margin-top:12px;display:none}
.tb-codebox.is-open{display:block}

/* ---------- buttons ---------- */
.tb .tb-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border:0;border-radius:calc(var(--tb-radius) - 6px);cursor:pointer;font-weight:700;font-size:1rem;letter-spacing:.005em;text-decoration:none;color:var(--tb-on-accent);background:var(--tb-btn-bg);box-shadow:var(--tb-btn-shadow);transition:transform .15s ease,filter .15s ease}
.tb-btn:hover{filter:brightness(1.06)}
.tb-btn:active{transform:translateY(1px)}
.tb-btn[disabled]{opacity:.6;cursor:wait}
.tb-btn-wide{width:100%}
.tb .tb-btn-ghost{background:transparent;color:var(--tb-accent-text);border:1px solid var(--tb-chip-line);box-shadow:none}
.tb-link{background:none;border:0;padding:0;cursor:pointer;color:var(--tb-accent-text);text-decoration:underline;text-underline-offset:3px;font-size:.88rem}
/* sheen: one band of light that passes over primary buttons now and then */
.tb[data-sheen="1"] .tb-btn:not(.tb-btn-ghost)::after,.tb[data-sheen="1"] .tb-prog-btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-18deg);animation:tb-sheen 6.5s ease-in-out infinite;pointer-events:none}
@keyframes tb-sheen{0%,72%{left:-60%}100%{left:130%}}

/* ---------- steps strip ---------- */
.tb-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:12px 10px;list-style:none;text-align:center;border-radius:var(--tb-radius);border:1px solid var(--tb-line);background:var(--tb-surface)}
.tb-strip li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.82rem;line-height:1.25;color:var(--tb-ink-soft)}
.tb-strip b{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:.85rem;color:var(--tb-on-accent);background:var(--tb-btn-bg)}
.tb-strip li.is-done b{background:var(--tb-ok)}
.tb-powered{margin:-8px 0 0;text-align:center;font-size:.8rem;color:var(--tb-muted)}

/* ---------- trust ---------- */
.tb-badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none}
.tb-badges li{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:.78rem;border:1px solid var(--tb-chip-line);background:var(--tb-chip-bg);color:var(--tb-chip-ink)}
.tb-badges svg{width:13px;height:13px;color:var(--tb-ok)}
.tb-video{position:relative;width:100%;aspect-ratio:16/9;border-radius:calc(var(--tb-radius) - 6px);overflow:hidden;background:var(--tb-video-bg);border:1px solid var(--tb-line);margin-bottom:12px}
.tb-video button{position:absolute;inset:0;width:100%;border:0;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--tb-ink)}
.tb-video .tb-play{width:66px;height:66px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tb-btn-bg);color:var(--tb-on-accent);box-shadow:var(--tb-btn-shadow)}
.tb-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tb-trust-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.tb-socials{display:flex;gap:8px;flex-wrap:wrap}
.tb-socials a{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--tb-chip-line);background:var(--tb-chip-bg);color:var(--tb-chip-ink)}
.tb-socials svg{width:17px;height:17px}

/* ticker */
.tb-ticker{display:flex;align-items:center;gap:10px;justify-content:center;font-size:.86rem;color:var(--tb-ink-soft);min-height:22px;text-align:center}
.tb-ticker .tb-dot{width:8px;height:8px;border-radius:50%;background:var(--tb-ok);box-shadow:0 0 0 0 var(--tb-ok);animation:tb-pulse 2.4s ease-out infinite;flex:0 0 auto}
@keyframes tb-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--tb-ok) 60%,transparent)}100%{box-shadow:0 0 0 10px transparent}}

/* ---------- programs ---------- */
.tb-progress{display:flex;flex-direction:column;gap:6px}
.tb-progress-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:.88rem;color:var(--tb-ink-soft)}
.tb-progress-top strong{font-family:var(--tb-font-head);font-weight:var(--tb-head-weight);font-size:1.3rem;color:var(--tb-name-ink)}
.tb-bar{height:8px;border-radius:99px;background:var(--tb-bar-bg);overflow:hidden}
.tb-bar span{display:block;height:100%;width:0;border-radius:inherit;background:var(--tb-btn-bg);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.tb-progs{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.tb-prog{position:relative;scroll-margin-top:80px}
.tb-ribbon-tag{position:absolute;z-index:2;top:-9px;right:14px;padding:2px 10px;border-radius:999px;font-size:.72rem;font-weight:700;color:var(--tb-on-accent);background:var(--tb-btn-bg);box-shadow:var(--tb-btn-shadow)}
.tb-prog-btn{position:relative;overflow:hidden;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:76px;padding:12px 14px 12px 12px;border-radius:var(--tb-radius);text-decoration:none;color:var(--tb-pbtn-ink);background:var(--tb-pbtn-bg);border:1px solid var(--tb-pbtn-line);box-shadow:var(--tb-pbtn-shadow);transition:transform .15s ease,filter .15s ease}
.tb-prog-btn:hover{filter:brightness(1.05)}
.tb-prog-btn:active{transform:translateY(1px)}
.tb-prog.is-joined .tb-prog-btn{background:var(--tb-pbtn-done-bg);color:var(--tb-pbtn-done-ink);border-color:var(--tb-line);box-shadow:none}
.tb-prog-icon{width:52px;height:52px;border-radius:calc(var(--tb-radius) - 8px);display:flex;align-items:center;justify-content:center;background:var(--tb-icon-bg);overflow:hidden}
.tb-prog-icon img{width:100%;height:100%;object-fit:contain;padding:7px}
.tb-prog-icon svg{width:26px;height:26px;color:var(--tb-icon-ink)}
.tb-prog-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.tb-prog-title{font-weight:700;font-size:1.04rem;line-height:1.2}
.tb-prog-why{font-size:.86rem;line-height:1.35;opacity:.86}
.tb-prog-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}
.tb-tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.02em;background:var(--tb-tag-bg);color:var(--tb-tag-ink)}
.tb-gift{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:700;background:var(--tb-gift-bg);color:var(--tb-gift-ink)}
.tb-prog-end{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tb-end-bg);color:var(--tb-end-ink)}
.tb-prog-end svg{width:16px;height:16px}
.tb-prog.is-joined .tb-prog-end{background:var(--tb-ok);color:#fff}
.tb-prog-under{padding:8px 4px 0 6px;display:flex;flex-direction:column;gap:8px}
.tb-joined{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.9rem;color:var(--tb-ink-soft)}
.tb-joined b{color:var(--tb-ok)}
.tb-save{display:none;padding:14px;border-radius:calc(var(--tb-radius) - 4px);background:var(--tb-surface);border:1px solid var(--tb-line)}
.tb-prog.is-open .tb-save{display:block;animation:tb-in .35s ease}
@keyframes tb-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.tb-save label{display:block;font-size:.9rem;margin-bottom:8px;color:var(--tb-ink-soft)}
.tb-save .tb-input{height:48px}
.tb-save .tb-btn{min-height:48px}
.tb-save-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 14px;margin-top:10px}
.tb-sponsor{font-size:.84rem;color:var(--tb-muted)}
.tb-sponsor b{color:var(--tb-ink)}
.tb-more{display:flex;flex-wrap:wrap;gap:4px 16px}
.tb-more details{font-size:.86rem}
.tb-more summary{cursor:pointer;color:var(--tb-accent-text);list-style:none}
.tb-more summary::-webkit-details-marker{display:none}
.tb-more summary::after{content:" +"}
.tb-more details[open] summary::after{content:" –"}
.tb-more details > div{margin-top:6px;padding:10px 12px;border-radius:12px;background:var(--tb-surface);border:1px solid var(--tb-line);color:var(--tb-ink-soft);line-height:1.5}
.tb-more ol{margin:0;padding-left:1.2em}
.tb-more li+li{margin-top:4px}
.tb-more details[open]{flex-basis:100%}
.tb-check{display:inline-block;animation:tb-pop .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes tb-pop{0%{transform:scale(.3);opacity:0}100%{transform:scale(1);opacity:1}}

/* ---------- finish ---------- */
.tb-next{text-align:center;font-size:.92rem;color:var(--tb-ink-soft)}
.tb-gate{display:block;text-align:center;font-size:.84rem;color:var(--tb-muted);margin:0 0 8px}
/* Phones open popups at the TOP, as in frames (Sheridan 2026-10-21): a bottom sheet put the
   email box and its button where the keyboard comes up. Wider screens centre it (below). */
.tb-modal{position:fixed;inset:0;z-index:50;display:none;align-items:flex-start;justify-content:center;padding:16px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.tb-modal.is-open{display:flex}
/* Framed (frame-visible.js sets data-atb-framed and --atb-vis-top/-h): a frame taller than
   the window (topdogsrotator's 1000px slot) put the popup's lower half below the screen.
   Keep the popup inside the band of the frame the visitor can actually see. */
html[data-atb-framed] .tb-modal{top:var(--atb-vis-top,0px);bottom:auto;height:var(--atb-vis-h,100%)}
html[data-atb-framed] .tb-sheet{max-height:calc(var(--atb-vis-h,100vh) - 32px)}
@media (min-width:640px){.tb-modal{align-items:center}}
/* Framed: pin the popup to the TOP of the visible band, so its headline is the first thing seen (2026-10-20, Sheridan). */
html[data-atb-framed] .tb-modal{align-items:flex-start}
.tb-sheet{position:relative;width:100%;max-width:440px;max-height:calc(100vh - 32px);overflow:auto;border-radius:var(--tb-radius);padding:24px 20px 20px;background:var(--tb-sheet-bg);color:var(--tb-ink);border:1px solid var(--tb-line);box-shadow:0 30px 80px rgba(0,0,0,.45);animation:tb-in .3s ease}
.tb-sheet h2{margin:0 0 6px;font-family:var(--tb-font-head);font-weight:var(--tb-head-weight);font-size:1.6rem;line-height:1.12;color:var(--tb-name-ink)}
.tb-x{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:1px solid var(--tb-line);background:transparent;cursor:pointer;color:var(--tb-ink-soft);font-size:20px;line-height:1}
.tb-sheet-prog{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;background:var(--tb-chip-bg);border:1px solid var(--tb-chip-line);font-size:.85rem;margin-bottom:12px}
.tb-sheet-prog img{width:24px;height:24px;border-radius:50%;object-fit:contain;background:#fff}
/* "No thanks, just take me to <Program>" under the popup's email box (2026-10-21). */
.tb-gate-skip{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--tb-line);text-align:center}
.tb-gate-skip[hidden]{display:none}
.tb-gate-skip .tb-link{display:inline-block;padding:6px 4px;line-height:1.35}
.tb-finish-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.tb-finish-list .tb-btn{width:100%}

/* ---------- footer ---------- */
.tb-foot{margin-top:18px;text-align:center;font-size:.78rem;line-height:1.55;color:var(--tb-muted)}
/* Framed: some exchanges clip the bottom of their frame (topdogsrotator hides ~80px), which
   hid the earnings disclosure and Terms/Privacy. Room at the end keeps them reachable. */
html.atb-framed .tb-foot{padding-bottom:110px}
.tb-foot p{margin:0 0 8px}
.tb-foot a{color:var(--tb-muted)}
.tb-foot nav{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}

/* desktop: same column, a touch wider and more air */
@media (min-width:900px){.tb-wrap{max-width:640px;padding-top:40px}.tb-col{gap:22px}}

@media (prefers-reduced-motion:reduce){
  .tb *,.tb *::before,.tb *::after{animation:none!important;transition:none!important}
  .tb-dust,.tb-blob{display:none}
}
.tb[data-motion="0"] .tb-dust,.tb[data-motion="0"] .tb-blob{display:none}
.tb[data-motion="0"] *{animation:none!important}

/* ---------- utilities ---------- */
.tb [hidden]{display:none!important}

/* ================= GOLD — gilded luxury ================= */
.tb[data-theme="gold"] .tb-name{background:var(--tb-foil);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em}
.tb[data-theme="gold"] .tb-photo{padding:4px}
.tb[data-theme="gold"] .tb-card{border-color:var(--tb-line)}
.tb[data-theme="gold"] .tb-card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,236,190,.07),transparent 40%)}
.tb[data-theme="gold"][data-mode="light"] .tb-card::before{display:none}
.tb[data-theme="gold"] .tb-prog-title{font-family:var(--tb-font-body);letter-spacing:.005em}
.tb[data-theme="gold"][data-btn="glass"] .tb-prog-btn,.tb[data-theme="gold"][data-btn="outline"] .tb-prog-btn{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.tb[data-theme="gold"][data-btn="glass"] .tb-prog-icon,.tb[data-theme="gold"][data-btn="outline"] .tb-prog-icon{border:1px solid var(--tb-chip-line)}
.tb[data-theme="gold"] .tb-strip b{font-family:var(--tb-font-head);font-size:.95rem}

/* ================= FRESH — light and colourful ================= */
.tb[data-theme="fresh"] .tb-name{letter-spacing:var(--tb-head-track)}
.tb[data-theme="fresh"] .tb-photo{padding:5px}
.tb[data-theme="fresh"] .tb-chips li::before{background:var(--tb-accent)}
.tb[data-theme="fresh"] .tb-chips li:nth-child(2)::before{background:#f59e0b}
.tb[data-theme="fresh"] .tb-chips li:nth-child(3)::before{background:#0ea5e9}
/* Shine / Solid: every program wears its own colour, white text (palette is contrast-checked). */
.tb[data-theme="fresh"][data-btn="sheen"] .tb-prog-btn,.tb[data-theme="fresh"][data-btn="solid"] .tb-prog-btn{background:linear-gradient(135deg,var(--pc) 0%,color-mix(in srgb,var(--pc) 80%,#000) 100%);color:#fff;border-color:transparent;box-shadow:0 16px 30px -18px var(--pc)}
.tb[data-theme="fresh"][data-btn="solid"] .tb-prog-btn{background:var(--pc)}
.tb[data-theme="fresh"][data-btn="sheen"] .tb-prog-icon,.tb[data-theme="fresh"][data-btn="solid"] .tb-prog-icon{background:rgba(255,255,255,.95)}
.tb[data-theme="fresh"][data-btn="sheen"] .tb-prog-icon svg,.tb[data-theme="fresh"][data-btn="solid"] .tb-prog-icon svg{color:var(--pc)}
.tb[data-theme="fresh"][data-btn="sheen"] .tb-tag,.tb[data-theme="fresh"][data-btn="solid"] .tb-tag,
.tb[data-theme="fresh"][data-btn="sheen"] .tb-prog-end,.tb[data-theme="fresh"][data-btn="solid"] .tb-prog-end{background:rgba(255,255,255,.2);color:#fff}
.tb[data-theme="fresh"][data-btn="sheen"] .tb-prog-why,.tb[data-theme="fresh"][data-btn="solid"] .tb-prog-why{opacity:.92}
/* Glass / Outline: light card, the colour moves to the icon tile and the edge. */
.tb[data-theme="fresh"][data-btn="glass"] .tb-prog-icon{background:var(--pc)}
.tb[data-theme="fresh"][data-btn="glass"] .tb-prog-icon svg{color:#fff}
.tb[data-theme="fresh"][data-btn="glass"] .tb-tag,.tb[data-theme="fresh"][data-btn="outline"] .tb-tag{background:color-mix(in srgb,var(--pc) 12%,#fff);color:var(--pc)}
.tb[data-theme="fresh"][data-mode="dark"][data-btn="glass"] .tb-tag,.tb[data-theme="fresh"][data-mode="dark"][data-btn="outline"] .tb-tag{background:rgba(255,255,255,.12);color:#fff}
.tb[data-theme="fresh"][data-btn="outline"] .tb-prog-btn{background:transparent;border:2px solid var(--pc)}
.tb[data-theme="fresh"][data-btn="outline"] .tb-prog-icon{background:color-mix(in srgb,var(--pc) 12%,#fff)}
.tb[data-theme="fresh"][data-btn="outline"] .tb-prog-icon svg{color:var(--pc)}
.tb[data-theme="fresh"] .tb-prog-end{color:inherit}
/* Joined rows calm down in every style. */
.tb .tb-prog.is-joined .tb-prog-btn{background:var(--tb-pbtn-done-bg)!important;color:var(--tb-pbtn-done-ink)!important;border:1px solid var(--tb-line)!important;box-shadow:none!important}
.tb .tb-prog.is-joined .tb-prog-btn::after{display:none}
.tb .tb-prog.is-joined .tb-tag{background:var(--tb-chip-bg)!important;color:var(--tb-chip-ink)!important}
.tb .tb-prog.is-joined .tb-prog-end{background:var(--tb-ok)!important;color:#fff!important}
.tb[data-theme="fresh"] .tb-prog.is-joined .tb-prog-icon{background:#fff!important}
.tb[data-theme="fresh"] .tb-prog.is-joined .tb-prog-icon svg{color:var(--pc)!important}
.tb-ticker span[data-tick]{transition:opacity .25s ease}
.tb-prog-icon:has(img){background:#fff!important}

/* Phones: the photo, name, promise and the "Save my spot" button all fit on the
   first screen (CLAUDE.md lander rule 7) — measured on a 393x659 iPhone view. */
@media (max-width:480px){
  .tb-wrap{padding-top:12px}
  .tb-col{gap:14px}
  .tb[data-shape="circle"]{--tb-photo-w:112px;--tb-photo-h:112px}
  .tb[data-shape="rounded"]{--tb-photo-w:120px;--tb-photo-h:120px}
  .tb[data-shape="portrait"]{--tb-photo-w:118px;--tb-photo-h:146px}
  .tb-photo .tb-initial{font-size:2.6rem}
  .tb-hero{gap:6px}
  .tb-name{font-size:2.25rem;margin-top:2px}
  .tb-promise{font-size:.97rem;line-height:1.42}
  .tb-chips li{font-size:.76rem;padding:3px 9px}
  .tb-card{padding:15px}
  .tb-card h2{font-size:1.28rem}
  .tb-step1 .tb-lead{font-size:.88rem;line-height:1.4;margin:0 0 10px}
  .tb .tb-btn{min-height:48px}
  .tb-input{height:48px}
}
/* Rotation: whose link this program uses (0466) */
.tb .tb-under{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;font-size:.84rem;line-height:1.4;color:var(--tb-muted)}
.tb .tb-under img{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--tb-line,rgba(127,127,127,.3))}
.tb .tb-under b{color:var(--tb-ink)}
.tb-finish-list [data-rot-ask][disabled]{opacity:.7;cursor:default}
.tb .tb-prog.is-joined .tb-under{display:none}
/* Strip labels stay on one line on phones (Sheridan 2026-10-18) */
.tb .tb-short{display:none}
.tb .tb-strip{container-type:inline-size}
.tb .tb-strip li{white-space:nowrap}
@container (max-width:680px){.tb .tb-strip .tb-long{display:none}.tb .tb-strip .tb-short{display:inline}}
/* Wide-look wrappers are invisible to the column looks */
.tb-top{display:contents}
.tb-who{display:none}
@container (max-width:340px){.tb .tb-strip li{white-space:normal}}
/* What every member gets, free (2026-10-18) */
.tb-yours h2{margin:0 0 6px}
.tb .tb-yours-lead{margin:0 0 18px}
.tb-yours-list{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px;text-align:left}
.tb-yours-list li{display:flex;gap:12px;align-items:flex-start;min-width:0}
.tb-yours-ic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--tb-accent-soft,color-mix(in srgb,var(--tb-accent) 14%,transparent));color:var(--tb-accent-text)}
.tb-yours-ic svg{width:22px;height:22px}
.tb-yours-list li>div{min-width:0}
.tb-yours-list b{display:block;font-weight:700;line-height:1.3}
.tb-yours-list li>div>span{display:block;margin-top:2px;font-size:.92rem;line-height:1.45;color:var(--tb-muted)}
/* Message box (2026-10-18) */
.tb .tb-textarea{display:block;width:100%;height:auto;min-height:92px;padding-top:12px;padding-bottom:12px;margin:0 0 10px;resize:vertical;line-height:1.45}
.tb-msgform .tb-form{margin:0}
.tb [data-msg-to]{overflow-wrap:anywhere}

/* One line on phones (Sheridan 2026-10-18): the opt-in and the terms line under
   Save my spot shrink to fit instead of wrapping; teambuild.js sets the size
   (fitOneLine). Below the smallest readable size they wrap as before. */
.tb label > .tb-fit1{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden}
.tb .tb-meta.tb-fit1{white-space:nowrap;overflow:hidden;text-overflow:clip}
.tb .tb-fit1.is-wrap{white-space:normal}
.tb .tb-signup label.tb-small input,.tb .tb-msgform label.tb-small input{margin:0!important;flex:none}
/* Tag + gift pills stay pills (Sheridan 2026-10-18: the gift pill wrapped to three lines
   inside a round shape). One line, ellipsis if a card is ever too narrow. */
.tb .tb-tag,.tb .tb-gift{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;line-height:1.35;vertical-align:middle}

/* ---------- traffic-exchange frames: sign-up box on the first screen (2026-10-19) ----------
   Browser lab, every exchange frame shape: in short slots (1250x500, 1000x250) and narrow
   ones (350x1000) the full hero (148px photo, intro, chips) pushed the email box below the
   frame, so a surfer saw no way to sign up. Sheridan's frame rule: hero higher, the CTA
   in the frame without scrolling, no duplicate button. Only when framed (html.atb-framed,
   set by atb_frame_fit_head) and only when the frame is short or narrow; media queries
   follow the frame, so an exchange that resizes its slot later still gets the right one. */
@media (max-height:600px),(max-width:520px){
  html.atb-framed .tb .tb-wrap{padding-top:10px}
  html.atb-framed .tb .tb-col{gap:12px}
  html.atb-framed .tb .tb-top{padding:12px 0 14px}
  html.atb-framed .tb .tb-hero{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px 12px;padding-top:0}
  html.atb-framed .tb .tb-photo{--tb-photo-w:56px;--tb-photo-h:56px;--tbw-photo-w:64px;--tbw-photo-h:64px;padding:2px}
  html.atb-framed .tb[data-shape="portrait"] .tb-photo{--tb-photo-w:52px;--tb-photo-h:68px;--tbw-photo-w:56px;--tbw-photo-h:74px}
  html.atb-framed .tb .tb-photo .tb-initial{font-size:1.5rem}
  html.atb-framed .tb .tb-name{font-size:clamp(1.6rem,5vw,2.1rem);margin:0;align-self:center}
  html.atb-framed .tb .tb-promise{flex-basis:100%;margin:0;font-size:.92rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  html.atb-framed .tb .tb-chips{display:none}
}
@media (max-height:560px){
  html.atb-framed .tb .tb-promise,
  html.atb-framed .tb .tb-step1 .tb-lead{display:none}
  html.atb-framed .tb .tb-step1{padding:14px 16px}
  html.atb-framed .tb .tb-step1 h2{font-size:1.2rem;line-height:1.2;margin:0 0 10px}
}
@media (max-height:360px){
  html.atb-framed .tb .tb-wrap{padding-top:6px}
  html.atb-framed .tb .tb-top{padding:6px 0 8px}
  html.atb-framed .tb .tb-photo{--tb-photo-w:40px;--tb-photo-h:40px;--tbw-photo-w:44px;--tbw-photo-h:44px}
  html.atb-framed .tb .tb-name{font-size:1.35rem}
  html.atb-framed .tb .tb-step1{padding:10px 14px}
}

/* Clickable "how it works" steps (2026-10-21): each step scrolls to its part
   of the page (teambuild.js goStep). Looks the same at rest; shows it is
   tappable on hover/focus, and the target flashes briefly on arrival. */
.tb-strip [data-go]{cursor:pointer;border-radius:12px;transition:background .15s ease;-webkit-tap-highlight-color:transparent}
.tb-strip [data-go]:hover{background:color-mix(in srgb,var(--tb-ink) 6%,transparent)}
.tb-strip [data-go]:active{background:color-mix(in srgb,var(--tb-ink) 10%,transparent)}
.tb-strip [data-go]:focus-visible{outline:2px solid var(--tb-btn-bg);outline-offset:2px}
#tb-step1,#tb-programs,#tb-yours,.tb-prog{scroll-margin-top:16px}
@keyframes tbFlash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--tb-btn-bg) 55%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.tb-flash{animation:tbFlash 1.4s ease-out 1}
@media (prefers-reduced-motion:reduce){.tb-flash{animation:none;outline:2px solid var(--tb-btn-bg)}}
