/* PromptLens redesign 20 Oct 2026 — World A "the lit stage". One shared header, footer, dock (Book a call + Ask Eloise),
   type scale and section system for every own page. Fonts: Instrument Serif + Host Grotesk only, per the 19 Oct type + spacing spec.
   Two families + one mono label; h1 > h2 > h3 by a clear step; 60-70 character lines (zachex-01). */
@font-face{font-family:Inst;src:url(/websites/svc/fonts/InstrumentSerif-400-latin.woff2) format("woff2");font-display:swap}
@font-face{font-family:Inst;src:url(/websites/svc/fonts/InstrumentSerif-400i-latin.woff2) format("woff2");font-style:italic;font-display:swap}
@font-face{font-family:Host;src:url(/websites/svc/fonts/HostGrotesk-var-latin.woff2) format("woff2");font-weight:300 800;font-display:swap}
/* the type + spacing spec (research/type-spacing-2026-10-19, 19 Oct) */
:root {
  --font-display: "Inst", "Instrument Serif", Georgia, serif;
  --font-text: "Host", "Host Grotesk", system-ui, sans-serif;

  /* type scale: role -> step */
  --step--2: clamp(0.7813rem, 0.7736rem + 0.03409vw, 0.8rem);   /* 12.5-12.8  fine print only, never body */
  --step--1: clamp(0.9375rem, 0.9119rem + 0.1136vw, 1rem);      /* 15-16      labels, captions, buttons */
  --step-0:  clamp(1.125rem, 1.074rem + 0.2273vw, 1.25rem);     /* 18-20      BODY */
  --step-1:  clamp(1.35rem, 1.263rem + 0.3864vw, 1.562rem);     /* 21.6-25    lead / intro paragraph */
  --step-2:  clamp(1.62rem, 1.484rem + 0.6057vw, 1.953rem);     /* 26-31      h3 */
  --step-3:  clamp(1.944rem, 1.741rem + 0.9044vw, 2.441rem);    /* 31-39      price figures, card titles */
  --step-4:  clamp(2.333rem, 2.039rem + 1.307vw, 3.052rem);     /* 37-49      h2 (section head) */
  --step-5:  clamp(2.799rem, 2.384rem + 1.846vw, 3.815rem);     /* 45-61      h1 on inner pages */
  --display: clamp(3rem, 0.1364rem + 12.73vw, 10rem);            /* 48-160     ONE hero line per page */

  /* line height by role */
  --lh-display: 1.0; --lh-heading: 1.12; --lh-sub: 1.3; --lh-body: 1.5;

  /* measure */
  --measure: 30em;        /* body: 66 characters a line in Host Grotesk (0.454 em/char, measured 19 Oct); 'ch' is a ZERO's width and overshoots (60ch = 81-83 chars) */
  --measure-col: 21em;    /* cards / 2+ columns: ~45 characters */
  --measure-head: 20ch;   /* headings wrap early, 2-3 lines max */

  /* space scale (s = one body line of type) */
  --space-3xs: clamp(0.2812rem, 0.2685rem + 0.05682vw, 0.3125rem);  /* 4.5-5 */
  --space-2xs: clamp(0.5625rem, 0.5369rem + 0.1136vw, 0.625rem);    /* 9-10 */
  --space-xs:  clamp(0.8438rem, 0.8054rem + 0.1705vw, 0.9375rem);   /* 13.5-15 */
  --space-s:   clamp(1.125rem, 1.074rem + 0.2273vw, 1.25rem);       /* 18-20 */
  --space-m:   clamp(1.688rem, 1.611rem + 0.3409vw, 1.875rem);      /* 27-30 */
  --space-l:   clamp(2.25rem, 2.148rem + 0.4545vw, 2.5rem);         /* 36-40 */
  --space-xl:  clamp(3.375rem, 3.222rem + 0.6818vw, 3.75rem);       /* 54-60 */
  --space-2xl: clamp(4.5rem, 4.295rem + 0.9091vw, 5rem);            /* 72-80 */
  --space-3xl: clamp(6.75rem, 6.443rem + 1.364vw, 7.5rem);          /* 108-120 */
  /* one-to-many pairs: grow faster than type on wide screens */
  --space-gutter:  clamp(1.125rem, 0.5625rem + 2.5vw, 2.5rem);      /* s->l 18-40: page side padding */
  --space-card:    clamp(1.688rem, 0.8438rem + 3.75vw, 3.75rem);    /* m->xl 27-60: card padding, grid gap */
  --space-section: clamp(4.5rem, 3.273rem + 5.455vw, 7.5rem);       /* 2xl->3xl 72-120: between sections */
}
:root{--rd-bg:var(--rd-on-ink);--rd-bg2:#121417;--rd-panel:#16181C;--rd-panel2:#1C1F24;--rd-line:rgba(237,232,224,.12);--rd-line2:rgba(237,232,224,.22);
 --rd-ink:#EDE8E0;--rd-mute:#A8A399;--rd-acc:#7CE0A3;--rd-on-ink:#0D0E10;
 --rd-d:var(--font-display);--rd-t:var(--font-text);--rd-m:var(--font-text);
 --rd-wrap:1240px;--rd-pad:var(--space-gutter)}
/* ---------- header ---------- */
html body header.rd-hdr{position:sticky;top:0;left:0;right:0;z-index:50;display:block;margin:0;padding:0;background:color-mix(in srgb,var(--rd-bg) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rd-line)}
.rd-hdr .rd-in{max-width:var(--rd-wrap);margin:0 auto;padding:0 var(--rd-pad);height:68px;display:flex;align-items:center;gap:28px}
.rd-wm{font:600 19px/1 var(--rd-t)!important;letter-spacing:-.01em;color:var(--rd-ink)!important;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.rd-wm span{color:var(--rd-mute);font-weight:400;margin-left:6px}
.rd-nav{display:flex;gap:6px;margin-left:auto}
.rd-nav a{font:500 15px/1 var(--rd-t);color:var(--rd-mute)!important;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding:0 10px;border-radius:10px}
.rd-nav a:hover,.rd-nav a[aria-current=page]{color:var(--rd-ink)!important}
.rd-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;background:var(--rd-ink);color:var(--rd-on-ink)!important;-webkit-text-fill-color:var(--rd-on-ink);font:600 17px/1 var(--rd-t);text-decoration:none;white-space:nowrap;border:0;cursor:pointer;transition:transform .14s cubic-bezier(.23,1,.32,1)}
.rd-btn:active{transform:scale(.97)}
.rd-hdr .rd-btn{min-height:44px;font-size:15px;padding:0 18px}
.rd-menu{display:none;margin-left:auto;min-height:44px;min-width:44px;padding:0 12px;border-radius:12px;border:1px solid var(--rd-line2);background:none;color:var(--rd-ink);font:500 15px/1 var(--rd-t);cursor:pointer}
.rd-sheetnav{display:none}
@media (max-width:899.98px){
 .rd-nav,.rd-hdr .rd-btn{display:none}.rd-menu{display:inline-flex;align-items:center}
 .rd-hdr .rd-in{height:60px}
 .rd-sheetnav{display:block;position:fixed;inset:60px 0 auto 0;z-index:49;background:var(--rd-on-ink);border-bottom:1px solid var(--rd-line);padding:8px var(--rd-pad) 22px}
 .rd-sheetnav[hidden]{display:none}
 .rd-sheetnav a{display:flex;align-items:center;min-height:52px;font:600 22px/1 var(--rd-t);color:var(--rd-ink)!important;text-decoration:none;border-bottom:1px solid var(--rd-line)}
 .rd-sheetnav .rd-btn{margin-top:16px;width:100%;font-size:17px;border-bottom:0}
}
/* ---------- type ---------- */
.rd-lab{font:600 var(--step--1)/1.4 var(--rd-m)!important;letter-spacing:.06em;text-transform:uppercase;color:var(--rd-mute)!important;margin:0}
.rd-lab b{color:var(--rd-acc);font-weight:400}
.rd-d1{font:400 var(--display)/1 var(--rd-d)!important;letter-spacing:-.01em!important;color:var(--rd-ink)!important;margin:0;text-wrap:balance}
.rd-d1.pg{font-size:var(--step-5)!important}
.rd-h2{font:400 var(--step-4)/1.12 var(--rd-d)!important;max-width:20ch;letter-spacing:-.01em!important;color:var(--rd-ink)!important;margin:18px 0 0;text-wrap:balance}
.rd-h3{font:400 var(--step-2)/1.12 var(--rd-d)!important;letter-spacing:-.01em;color:var(--rd-ink)!important;margin:0}
.rd-lead{font:400 var(--step-1)/1.3 var(--rd-t);color:var(--rd-ink);max-width:var(--measure);margin:0}
.rd-p{font:400 var(--step-0)/1.5 var(--rd-t);color:var(--rd-mute);max-width:var(--measure);margin:0}
.rd-p a,.rd-lead a{color:var(--rd-ink)}
.rd-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.rd-tlink{font:500 16px/1 var(--rd-t);color:var(--rd-ink)!important;text-decoration:none;border-bottom:1px solid var(--rd-line2);padding:14px 0 4px;display:inline-flex}
.rd-dot{width:8px;height:8px;border-radius:50%;background:var(--rd-acc);display:inline-block;box-shadow:0 0 0 4px color-mix(in srgb,var(--rd-acc) 20%,transparent);vertical-align:middle}
@media (prefers-reduced-motion:no-preference){html:not(.rm) .rd-dot{animation:rdpulse 2.4s linear infinite}}
@keyframes rdpulse{0%,100%{box-shadow:0 0 0 2px color-mix(in srgb,var(--rd-acc) 25%,transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--rd-acc) 6%,transparent)}}
/* ---------- sections ---------- */
.rd{background:var(--rd-bg);color:var(--rd-ink);font:400 18px/1.55 var(--rd-t);position:relative;z-index:3}
.rd *{box-sizing:border-box}
.rd-wrap{max-width:var(--rd-wrap);margin:0 auto;padding:0 var(--rd-pad)}
.rd-sec{position:relative;padding:var(--space-section) 0;border-top:1px solid var(--rd-line);overflow:hidden}
.rd-sec::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:var(--rd-sec-glow,none)}
.rd-sec>*{position:relative;z-index:1}
.rd-head{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:56px}
@media (max-width:899.98px){.rd-head{grid-template-columns:1fr;gap:18px;margin-bottom:32px}}
/* cards, grids */
.rd-card{background:var(--rd-panel);border:1px solid var(--rd-line);border-radius:22px;padding:var(--space-card);display:flex;flex-direction:column;gap:12px}
.rd-card.hi{border-color:color-mix(in srgb,var(--rd-acc) 55%,transparent);background:linear-gradient(180deg,var(--rd-panel2),var(--rd-panel))}
.rd-tag{align-self:flex-start;font:600 var(--step--1)/1 var(--rd-m);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:color-mix(in srgb,var(--rd-acc) 16%,transparent);color:var(--rd-acc)}
.rd-price{font:400 var(--step-5)/1 var(--rd-d);letter-spacing:-.01em;color:var(--rd-ink)}
.rd-price small{font:500 16px/1 var(--rd-t);color:var(--rd-mute);letter-spacing:0;margin-left:6px}
.rd-g2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.rd-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rd-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width:1099.98px){.rd-g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:899.98px){.rd-g2,.rd-g3,.rd-g4{grid-template-columns:1fr}}
.rd-list{list-style:none;margin:6px 0 0;padding:0}.rd-list li{padding:10px 0;border-top:1px solid var(--rd-line);font-size:16px;line-height:1.45;color:var(--rd-ink)}
.rd-list li span{display:block;color:var(--rd-mute);font-size:15px}
/* grouped toggles (LONG-A) */
.rd-grp{background:var(--rd-panel);border:1px solid var(--rd-line);border-radius:20px;padding:0}
.rd-grp summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;padding:24px 26px;min-height:44px}
.rd-grp summary::-webkit-details-marker{display:none}
.rd-grp summary::after{content:"+";font:400 26px/1 var(--rd-t);color:var(--rd-mute)}
.rd-grp[open] summary::after{content:"\2212"}
.rd-grp .rd-list{padding:0 26px 22px}
.rd-cnt{font:600 var(--step--1)/1 var(--rd-m);letter-spacing:.06em;color:var(--rd-mute);margin-left:auto}
/* faq */
.rd-faq details{border-top:1px solid var(--rd-line)}.rd-faq details:last-child{border-bottom:1px solid var(--rd-line)}
.rd-faq summary{list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:22px 0;font:600 20px/1.3 var(--rd-t);cursor:pointer;min-height:44px}
.rd-faq summary::-webkit-details-marker{display:none}
.rd-faq summary::after{content:"+";font-weight:400;color:var(--rd-mute)}.rd-faq details[open] summary::after{content:"\2212"}
.rd-faq .rd-p{padding:0 0 22px}
/* steps rail */
.rd-rail{display:grid;grid-template-columns:repeat(var(--n,8),1fr);border-top:1px solid var(--rd-line2)}
.rd-rail div{padding:22px 14px 0 0;position:relative}.rd-rail div::before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--rd-bg);border:1.5px solid var(--rd-line2)}
.rd-rail div.on::before{background:var(--rd-acc);border-color:var(--rd-acc)}
.rd-rail .n{font:600 var(--step--1)/1 var(--rd-m);color:var(--rd-mute);letter-spacing:.06em}.rd-rail b{display:block;margin:10px 0 6px;font:600 17px/1.2 var(--rd-t)}.rd-rail span{font-size:14px;color:var(--rd-mute);line-height:1.4;display:block}
@media (max-width:899.98px){.rd-rail{grid-template-columns:1fr;border-top:0;border-left:1px solid var(--rd-line2);margin-left:6px}.rd-rail div{padding:0 0 22px 22px}.rd-rail div::before{top:2px;left:-6px}}
/* comparison table */
.rd-cmpwrap{overflow-x:auto}
table.rd-cmp{width:100%;border-collapse:collapse;font-size:15px;min-width:640px}
.rd-cmp th{font:600 var(--step--1)/1 var(--rd-m);letter-spacing:.06em;text-transform:uppercase;color:var(--rd-mute);text-align:center;padding:16px 8px;border-bottom:1px solid var(--rd-line2)}
.rd-cmp th:first-child,.rd-cmp td:first-child{text-align:left}.rd-cmp td{padding:14px 8px;border-bottom:1px solid var(--rd-line);text-align:center;color:var(--rd-ink)}
.rd-cmp tr.g td{font:600 var(--step--1)/1 var(--rd-m);letter-spacing:.06em;text-transform:uppercase;color:var(--rd-acc);padding-top:28px}
.rd-ck{color:var(--rd-acc);font-weight:700}.rd-no{color:var(--rd-mute)}
/* the six (pinned story) */
.rd-six{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:start}
.rd-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--rd-line)}
.rd-steps li{display:grid;grid-template-columns:56px 1fr;gap:8px;padding:22px 0;border-bottom:1px solid var(--rd-line);color:var(--rd-mute);transition:color .3s}
.rd-steps .n{font:600 var(--step--1)/1.9 var(--rd-m);letter-spacing:.06em}
.rd-steps .rd-h3{font-size:var(--step-2)!important;color:var(--rd-mute)!important;transition:color .3s}
.rd-steps p{margin:8px 0 0;max-width:44ch;color:var(--rd-mute);font-size:16px;line-height:1.5}
.rd-steps li.on .rd-h3{color:var(--rd-ink)!important}.rd-steps li.on .n{color:var(--rd-acc)}
.rd-stage{position:sticky;top:96px;background:var(--rd-panel);border:1px solid var(--rd-line2);border-radius:24px;padding:26px;min-height:520px;box-shadow:0 50px 80px -40px rgba(0,0,0,.7)}
.rd-scene{display:none}.rd-scene.on{display:block;animation:rdin .45s cubic-bezier(.23,1,.32,1)}
@keyframes rdin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rd-bar{height:4px;background:var(--rd-line);border-radius:4px;margin-top:22px;overflow:hidden}.rd-bar i{display:block;height:100%;width:16.6%;background:var(--rd-acc);transition:width .4s}
.rd-phonecard{max-width:320px;margin:24px auto 0;background:var(--rd-bg);border:1px solid var(--rd-line2);border-radius:34px;padding:20px 18px 26px}
.rd-msg{background:var(--rd-panel2);border-radius:16px 16px 16px 4px;padding:10px 13px;font-size:14px;line-height:1.4;margin:8px 0;max-width:86%;color:var(--rd-ink)}
.rd-msg.out{margin-left:auto;background:color-mix(in srgb,var(--rd-acc) 16%,transparent);border-radius:16px 16px 4px 16px}
.rd-msg small{display:block;font:600 var(--step--1)/1.6 var(--rd-m);color:var(--rd-mute);letter-spacing:.06em}
.rd-ex{font:600 var(--step--1)/1.4 var(--rd-m);color:var(--rd-mute);letter-spacing:.06em;margin-top:14px;text-align:center}
@media (max-width:899.98px){.rd-six{grid-template-columns:1fr;gap:24px}.rd-stage{position:relative;top:0;min-height:0;padding:20px}.rd-steps p{display:block}}
@media (min-width:900px){.rd-steps li:not(.on) p{display:none}}
/* closing card */
.rd-closer{background:var(--rd-panel);border:1px solid var(--rd-line2);border-radius:28px;padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;box-shadow:0 60px 90px -40px rgba(0,0,0,.7)}
@media (max-width:899.98px){.rd-closer{grid-template-columns:1fr;gap:22px}}
/* glass event cards */
.rd-glass{border-radius:18px;padding:14px 16px;background:color-mix(in srgb,var(--rd-panel) 66%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 60px -20px rgba(0,0,0,.6);color:var(--rd-ink);font:400 15px/1.4 var(--rd-t);width:280px}
.rd-glass .rd-lab{display:flex;gap:8px;align-items:center;margin-bottom:6px;font-size:11px!important}
@media (prefers-reduced-motion:no-preference){html:not(.rm) .rd-float{animation:rdfloat 7s linear infinite}html:not(.rm) .rd-float.b{animation-duration:9s;animation-direction:reverse}}
@keyframes rdfloat{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(5px,-7px,0)}50%{transform:translate3d(0,-12px,0)}75%{transform:translate3d(-5px,-5px,0)}}
/* ---------- footer ---------- */
html body footer.rd-ftr{position:relative;z-index:3;display:block;margin:0;padding:clamp(64px,8vw,96px) 0 calc(120px + env(safe-area-inset-bottom));background:var(--rd-bg);border-top:1px solid var(--rd-line);color:var(--rd-mute);font:400 15px/1.5 var(--rd-t);overflow:hidden;text-align:left}
.rd-ftr .rd-cols{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px;margin-bottom:56px}
.rd-ftr h2{font:600 var(--step--1)/1 var(--rd-m)!important;letter-spacing:.06em;text-transform:uppercase;color:var(--rd-mute)!important;margin:0 0 14px}
.rd-ftr .rd-cols a{display:flex;align-items:center;min-height:36px;text-decoration:none;color:var(--rd-ink)!important;font-size:16px}
.rd-ftr .rd-giant{font:400 min(17vw,260px)/.85 var(--rd-d);letter-spacing:-.01em;color:var(--rd-ink);margin:0;white-space:nowrap}
.rd-ftr .rd-meta{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:32px;font-size:14px}
.rd-ftr .rd-meta a{color:var(--rd-ink);display:inline-flex;align-items:center;min-height:44px}
.rd-ftr .rd-disc{max-width:70ch;font-size:13px;margin:16px 0 0}
@media (max-width:899.98px){.rd-ftr .rd-cols{grid-template-columns:1fr 1fr;gap:24px}.rd-ftr .rd-cols>div:first-child{grid-column:1/-1}}
/* ---------- dock: Book a call + Ask Eloise, on every page ---------- */
.rd-dock{position:fixed;left:auto;right:max(24px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:60;display:flex;box-sizing:border-box;max-width:calc(100vw - 48px);flex-wrap:nowrap;gap:6px;padding:6px;border-radius:999px;background:color-mix(in srgb,var(--rd-panel2) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--rd-line2);box-shadow:0 20px 40px -12px rgba(0,0,0,.55)}
.rd-dock .rd-btn{min-height:46px;font-size:15px;padding:0 18px}
html body .rd-dock .askava{position:static;box-shadow:none;background:transparent;color:var(--rd-ink)!important;-webkit-text-fill-color:currentColor;min-height:46px;padding:0 16px 0 12px;border:0;border-radius:999px;font:600 15px/1 var(--rd-t);display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.rd-dock .askava svg{color:var(--rd-acc)}
.rd-dock .askava[hidden]{display:inline-flex}
.rd-dock .askava.away{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
html.ava-on .rd-dock,html.chat-on .rd-dock,html.ask-open .rd-dock{opacity:0;visibility:hidden;pointer-events:none}
@media (max-width:759.98px){.rd-dock{left:12px;right:12px;justify-content:space-between}.rd-dock .rd-btn{flex:1}
 html body .rd-dock .askava{width:auto;height:46px;border-radius:999px;padding:0 16px}html body .rd-dock .askava span{display:inline}}
/* the Eloise sheet (from the home page's ask-ava, one style everywhere) */
.avadim{position:fixed;inset:0;z-index:61;background:rgba(0,0,0,.45);opacity:0}
.avasheet{position:fixed;left:12px;right:12px;bottom:max(16px,env(safe-area-inset-bottom));z-index:62;max-width:400px;margin-left:auto;padding:18px;border-radius:18px;background:var(--rd-panel);border:1px solid var(--rd-line2);box-shadow:0 18px 50px rgba(0,0,0,.55);opacity:0;transform:translateY(12px);font-family:var(--rd-t)}
.avasheet:focus{outline:none}.avadim[hidden],.avasheet[hidden]{display:none}.avasheet.in{opacity:1;transform:none}.avadim.in{opacity:1}
.avasheet .avat{font-size:17px;font-weight:700;padding-right:44px;color:var(--rd-ink);margin:0}
.avasheet p.avad{margin:6px 0 0;font-size:14px;line-height:1.45;color:var(--rd-mute)}
.avad a{display:inline-flex;align-items:center;min-height:24px;color:var(--rd-ink)}
html body .avago{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin-top:14px;border:0;border-radius:12px;background:var(--rd-ink);color:var(--rd-on-ink)!important;-webkit-text-fill-color:currentColor;font:700 16px/1 var(--rd-t);cursor:pointer}
.ava[aria-busy=true],.avatext[aria-busy=true]{opacity:.7;cursor:progress}
.avatext{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin-top:4px;border:0;background:none;color:var(--rd-mute);font:500 14px/1 var(--rd-t);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.avax{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:12px;background:none;color:var(--rd-ink);cursor:pointer}
.avax:hover{background:rgba(255,255,255,.08)}
@media (min-width:760px){.avasheet{left:auto;right:max(16px,env(safe-area-inset-right));width:400px}}
html[data-askava] chat-widget:not([data-ava]):not([data-active=true]){display:none!important}
@media (prefers-reduced-motion:no-preference){html:not(.rm) .avasheet{transition:opacity .2s ease,transform .24s cubic-bezier(.2,.8,.2,1)}html:not(.rm) .avadim{transition:opacity .2s ease}html:not(.rm) .rd-dock{transition:opacity .2s ease}}
/* skip link */
.rd-skip{position:absolute;left:-9999px}.rd-skip:focus{left:12px;top:12px;z-index:100;background:var(--rd-ink);color:var(--rd-on-ink);padding:10px 14px;border-radius:10px}
/* pause (header button): every CSS animation stops, page scripts are told */
html.rdp *,html.rdp *::before,html.rdp *::after,html.paused *,html.paused *::before,html.paused *::after{animation-play-state:paused!important}
.rd-pause{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;border:0;background:none;color:var(--rd-mute);font:600 var(--step--1)/1 var(--rd-m);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.rd-pause:hover{color:var(--rd-ink)}
@media (max-width:899.98px){.rd-hdr .rd-pause{margin-left:auto}.rd-hdr .rd-menu{margin-left:4px}}
/* legal pages: a contents rail and a reading line */
.rd-prog{position:fixed;left:0;right:0;top:68px;height:2px;z-index:49;background:transparent}.rd-prog i{display:block;height:100%;width:0;background:var(--rd-acc)}
#rd-toc{position:fixed;left:max(16px,calc((100vw - 1240px)/2 - 220px));top:120px;width:200px;display:none;flex-direction:column;gap:2px;z-index:4}
#rd-toc a{font:400 13px/1.35 var(--rd-t);color:var(--rd-mute);text-decoration:none;padding:6px 10px;border-left:1px solid var(--rd-line2);min-height:24px}
#rd-toc a.on{color:var(--rd-ink);border-left-color:var(--rd-acc)}
@media (min-width:1500px){#rd-toc{display:flex}}
@media (max-width:419.98px){.rd-wm span{display:none}}
.rd-glass>*{display:block}.rd-glass>.rd-lab{display:flex}
/* /privacy and /terms keep the text chat own button (A2P): it sits above the dock */
html:not([data-askava]) .plchat{bottom:calc(84px + env(safe-area-inset-bottom))!important}
/* THE SIGNATURE MOMENT (home): a business's site and lead system assemble themselves as you scroll. Placeholder layers from the
   Flattop concept build until the generated film is approved (the board's priced shot list); a thin step rail on the left, as KODO. */
.rd-asm{position:relative;height:640vh;background:var(--rd-bg);z-index:3;border-top:1px solid var(--rd-line)}
.rd-asm-pin{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr minmax(0,.4fr);grid-template-rows:auto 1fr;gap:0 var(--space-l);padding:calc(68px + var(--space-l)) var(--space-gutter) var(--space-l);max-width:1440px;margin:0 auto}
.rd-asm-pin::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--rd-stage-glow,none)}
.rd-asm-head{grid-column:1/-1}.rd-asm-head .rd-h2{max-width:24ch}
.rd-asm-rail{grid-column:1;align-self:center;list-style:none;margin:0;padding:0 0 0 18px;border-left:1px solid var(--rd-line2)}
.rd-asm-rail li{position:relative;padding:9px 0;color:var(--rd-mute);transition:color .3s}
.rd-asm-rail li::before{content:"";position:absolute;left:-22px;top:18px;width:7px;height:7px;border-radius:50%;background:var(--rd-bg);border:1px solid var(--rd-line2);transition:all .3s}
.rd-asm-rail b{display:block;font:400 var(--step-1)/1.15 var(--rd-d);color:var(--rd-mute);transition:font-size .35s cubic-bezier(.23,1,.32,1),color .3s}
.rd-asm-rail span{display:block;max-height:0;overflow:hidden;font-size:var(--step--1);line-height:1.4;max-width:24em;transition:max-height .4s,opacity .3s;opacity:0}
.rd-asm-rail li.on b{font-size:var(--step-3);color:var(--rd-ink)}.rd-asm-rail li.on span{max-height:4em;opacity:1;margin-top:6px}
.rd-asm-rail li.on::before{background:var(--rd-acc);border-color:var(--rd-acc);box-shadow:0 0 0 4px color-mix(in srgb,var(--rd-acc) 18%,transparent)}
.rd-asm-rail li.done b{color:var(--rd-mute)}
.rd-asm-stage{grid-column:2;align-self:center;justify-self:center;text-align:center}
.rd-asm-phone{position:relative;width:min(300px,60vw);aspect-ratio:9/18.6;border-radius:40px;padding:9px;background:linear-gradient(140deg,#34373c,#111215 45%,#26292e);box-shadow:0 70px 90px -40px rgba(0,0,0,.9),inset 0 0 0 1.5px rgba(255,255,255,.12);overflow:hidden;margin:0 auto}
.rd-asm-phone::after{content:"";position:absolute;inset:9px;border-radius:32px;background:#151414;z-index:0}
.rd-asm-phone .L{position:absolute;z-index:1;opacity:0;transition:opacity .5s cubic-bezier(.23,1,.32,1),transform .6s cubic-bezier(.23,1,.32,1)}
.rd-asm-phone .l0{inset:9px 9px 38% 9px;width:calc(100% - 18px);height:62%;object-fit:cover;border-radius:32px 32px 0 0;transform:scale(1.08)}
.rd-asm-phone .l1{left:24px;right:24px;top:58%;text-align:left;transform:translateY(16px)}
.rd-asm-phone .l1 span{display:block;font:400 46px/1 var(--rd-d);color:#F2E2C8;letter-spacing:-.01em}
.rd-asm-phone .l1 small{display:block;margin-top:6px;font:600 12px/1.3 var(--rd-t);letter-spacing:.06em;text-transform:uppercase;color:#bfb6a8}
.rd-asm-phone .l2{inset:9px 9px 38% 9px;width:calc(100% - 18px);height:62%;object-fit:cover;border-radius:32px 32px 0 0}
.rd-asm-phone .l3{left:22px;right:22px;bottom:30px;display:grid;grid-template-columns:1.4fr 1fr;gap:8px;transform:translateY(24px)}
.rd-asm-phone .l3 i{font-style:normal;display:flex;align-items:center;justify-content:center;height:46px;border-radius:12px;background:#E2622F;color:#160b05;font:700 14px/1 var(--rd-t);letter-spacing:.04em;text-transform:uppercase}
.rd-asm-phone .l3 i.o{background:transparent;border:1px solid #6e655b;color:#F2E2C8}
.rd-asm[data-s] .rd-asm-phone .l0,.rd-asm .rd-asm-phone .l0{opacity:1;transform:none}
.rd-asm[data-s="1"] .l1,.rd-asm[data-s="2"] .l1,.rd-asm[data-s="3"] .l1,.rd-asm[data-s="4"] .l1,.rd-asm[data-s="5"] .l1{opacity:1;transform:none}
.rd-asm[data-s="2"] .l2,.rd-asm[data-s="3"] .l2,.rd-asm[data-s="4"] .l2,.rd-asm[data-s="5"] .l2{opacity:1}
.rd-asm[data-s="3"] .l3,.rd-asm[data-s="4"] .l3,.rd-asm[data-s="5"] .l3{opacity:1;transform:none}
.rd-asm[data-s="0"] .rd-asm-phone .l0{transform:scale(1.04)}
@media (prefers-reduced-motion:no-preference){html:not(.rm):not(.rdp) .rd-asm[data-s="0"] .l0{animation:rdkb 9s linear infinite}html:not(.rm):not(.rdp) .rd-asm[data-s="1"] .l1 span{animation:rdbreath 5s linear infinite}}
@keyframes rdkb{0%,100%{transform:scale(1.04) translate(0,0)}25%{transform:scale(1.08) translate(-2%,1%)}50%{transform:scale(1.1) translate(0,2%)}75%{transform:scale(1.07) translate(2%,1%)}}
@keyframes rdbreath{0%,100%{letter-spacing:-.01em}50%{letter-spacing:.02em}}
.rd-asm-bar{position:absolute;left:var(--space-gutter);right:var(--space-gutter);bottom:18px;height:2px;background:var(--rd-line)}.rd-asm-bar i{display:block;height:100%;width:0;background:var(--rd-acc)}
@media (max-width:899.98px){.rd-asm{height:560vh}.rd-asm-pin{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;padding-top:calc(60px + var(--space-s))}
 .rd-asm-head .rd-h2{font-size:var(--step-3)!important}.rd-asm-rail{display:flex;gap:6px;border-left:0;padding:10px 0 0;overflow:hidden}
 .rd-asm-rail li{flex:none;padding:0}.rd-asm-rail li::before{display:none}.rd-asm-rail li:not(.on){display:none}.rd-asm-rail li.on b{font-size:var(--step-2)}
 .rd-asm-stage{grid-column:1;align-self:start;margin-top:10px}.rd-asm-phone{width:min(230px,58vw)}.rd-asm-phone .l1 span{font-size:36px}}
@media (prefers-reduced-motion:reduce){.rd-asm{height:auto}.rd-asm-pin{position:relative;height:auto}.rd-asm-rail span{max-height:none;opacity:1}.rd-asm-phone .L{opacity:1!important;transform:none!important}}
/* two-tone headings: the second phrase in Instrument Serif italic, quieter (TMV's two-tone, ours in the serif) */
.rd-h2 em,.rd-d1 em{font-style:italic;color:var(--rd-mute)}
/* tinted tiles on the one dark ground: navy, plum, teal, olive (variety without a second accent) */
.rd-g4>.rd-card:nth-child(4n+1),.rd-g3>.rd-card:nth-child(3n+1){background:var(--rd-tile1,var(--rd-panel))}
.rd-g4>.rd-card:nth-child(4n+2),.rd-g3>.rd-card:nth-child(3n+3){background:var(--rd-tile2,var(--rd-panel))}
.rd-g4>.rd-card:nth-child(4n+3){background:var(--rd-tile3,var(--rd-panel))}
.rd-g4>.rd-card:nth-child(4n+4){background:var(--rd-tile4,var(--rd-panel))}
/* phone: the dock becomes one flat two-part bar, Eloise left, Book a call right */
@media (max-width:759.98px){
 .rd-dock{left:0;right:0;bottom:0;border-radius:0;padding:0;gap:0;border:0;border-top:1px solid var(--rd-line2);background:color-mix(in srgb,var(--rd-bg) 94%,transparent);padding-bottom:env(safe-area-inset-bottom)}
 .rd-dock .rd-btn{order:2;flex:1;min-height:56px;border-radius:0;font:600 var(--step--1)/1 var(--rd-t);letter-spacing:.06em;text-transform:uppercase}
 .rd-dock .rd-btn::after{content:"\2192";margin-left:8px}
 html body .rd-dock .askava{order:1;flex:1;justify-content:center;min-height:56px;height:56px;border-radius:0;font:600 var(--step--1)/1 var(--rd-t)!important;letter-spacing:.06em;text-transform:uppercase}
}
.rd-asm-phone .l1{z-index:3;top:63.5%}.rd-asm-phone .l3{z-index:3}
/* 21 Oct 2026, his critique: the moving clip ran ~30 px into the QUIEBRE label. The picture layers now END above the label, and the
   label is an opaque panel (the phone's own screen colour) from there to the bottom, so nothing can show through it in any world
   (D's iOS poster pan scales the video; the panel covers that too). The moving layer is a product-only crop (rd/media/quiebre_pod). */
.rd-asm-phone .l0,.rd-asm-phone .l2{height:calc(63.5% - 13px)}
.rd-asm-phone .l1{left:9px;right:9px;bottom:9px;padding:14px 15px 0;background:#151414;border-radius:0 0 32px 32px}
/* the phone's insides scale with its width (container units; equal to the old pixel sizes at 300 px), so a world may size the
   phone to the screen without the label and the buttons colliding */
.rd-asm-phone{container-type:inline-size}
.rd-asm-phone .l1{padding:5cqw 5.3cqw 0}
.rd-asm-phone .l1 span{font-size:16.3cqw!important}
.rd-asm-phone .l1 small{font-size:max(10px,4.25cqw);margin-top:2.1cqw}
.rd-asm-phone .l3{left:7.8cqw;right:7.8cqw;bottom:10.6cqw;gap:2.8cqw}
.rd-asm-phone .l3 i{height:16.3cqw;font-size:max(11px,5cqw);border-radius:4.2cqw}
/* the page's search phrase, kept as a small line directly under each page's own headline (rd_pages.py, 21 Oct 2026) */
.rd-kw{font:500 12px/1.45 var(--rd-m,ui-monospace),ui-monospace,monospace!important;letter-spacing:.12em!important;text-transform:uppercase;color:var(--rd-mute,#A8A399)!important;margin:10px 0 18px!important;max-width:64ch;opacity:.9}
/* the scrubbed home sections (data-rd-scrub, --p) and every scroll reveal are each world's own since CONTRACT v2 (20 Oct 2026):
 World A's "stack" and "fan" live in /rd/worlds/a/world.css */
/* the assembly, shorter (his note: the runway was far too long): 300 svh on a computer, 260 on a phone */
.rd-asm{height:300vh}@media (max-width:899.98px){.rd-asm{height:260vh}}
/* the assembly's last two steps happen ON the mock site's own buttons (20 Oct: notifications removed, his words
   "the notifications remove them, i feel like its too much"): step 4 the Call button reads "Texted back", step 5 the order button
   reads "Booked". */
.rd-asm-phone .l3 i{position:relative;overflow:hidden}
.rd-asm-phone .l3 i span{display:block;transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .3s}
.rd-asm-phone .l3 i .k4,.rd-asm-phone .l3 i .k5{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform:translateY(110%);opacity:0;text-align:center;line-height:1.1;padding:0 6px}
.rd-asm[data-s="4"] .l3 i.o .k0,.rd-asm[data-s="5"] .l3 i.o .k0,.rd-asm[data-s="5"] .l3 i:not(.o) .k0{transform:translateY(-110%);opacity:0}
.rd-asm[data-s="4"] .l3 i.o .k4,.rd-asm[data-s="5"] .l3 i.o .k4,.rd-asm[data-s="5"] .l3 i:not(.o) .k5{transform:none;opacity:1}
.rd-asm[data-s="4"] .l3 i.o,.rd-asm[data-s="5"] .l3 i.o{border-color:var(--rd-acc);color:var(--rd-acc)}
@media (prefers-reduced-motion:reduce){.rd-asm-phone .l3 i .k4,.rd-asm-phone .l3 i .k5{display:none}}
/* ---------- THE WORLD SWITCH (20 Oct 2026, his "actually all 4"): four dots in the header, one per world.
   Buttons (24 x 44 hit area, WCAG 2.5.8), labelled, aria-pressed; hidden without script because they need it. ---------- */
.rd-worlds{display:inline-flex;align-items:center;gap:0;margin-left:2px}
html:not(.rd-js) .rd-worlds{display:none}
.rd-worlds button{display:inline-grid;place-items:center;width:24px;min-height:44px;padding:0;border:0;background:none;cursor:pointer;color:var(--rd-mute)}
.rd-worlds button i{display:block;width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor;transition:transform .2s cubic-bezier(.23,1,.32,1),background-color .2s}
.rd-worlds button:hover{color:var(--rd-ink)}.rd-worlds button:hover i{transform:scale(1.25)}
.rd-worlds button[aria-pressed=true]{color:var(--rd-acc)}.rd-worlds button[aria-pressed=true] i{background:currentColor}
.rd-worlds button:focus-visible{outline:2px solid var(--rd-acc);outline-offset:-2px;border-radius:6px}
.rd-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media (max-width:899.98px){.rd-hdr .rd-worlds{margin-left:auto}.rd-hdr .rd-pause{margin-left:0}}
@media (max-width:419.98px){.rd-hdr .rd-pause span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.rd-hdr .rd-in{gap:6px}}
/* THE DOCK STAYS INSIDE THE SCREEN (20 Oct 2026, his screenshot: "Ask Elois" cut at the right edge): a 24 px gutter, never
   wider than the screen less both gutters; its two controls never shrink below their own text. */
.rd-dock>*{flex:none}
html body .rd-dock .askava{transform:none!important;white-space:nowrap;overflow:visible}
@media (max-width:759.98px){.rd-dock{max-width:none;right:0}.rd-dock>*{flex:1 1 0}}
.rd-g3>.rd-card .rd-tlink,.rd-g4>.rd-card .rd-tlink{margin-top:auto}

/* ---------- CONTRACT v2 layouts (20 Oct 2026): a world switches a [data-rv-set] group with ctx.layout(el, variant).
   native = as built (no attribute). Each variant keeps the cards' own look; only the arrangement changes. ---------- */
[data-rv-set][data-rv-layout="grid"]{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--rv-min,260px)),1fr))!important;gap:var(--rv-gap,20px)!important;overflow:visible!important}
[data-rv-set][data-rv-layout="list"]{display:flex!important;flex-direction:column!important;gap:var(--rv-gap,14px)!important;overflow:visible!important}
[data-rv-set][data-rv-layout="list"]>*{width:auto!important;max-width:none!important;flex:none!important}
[data-rv-set][data-rv-layout="stacked"]{display:block!important;overflow:visible!important}
[data-rv-set][data-rv-layout="stacked"]>*{position:sticky!important;top:calc(var(--rv-top,96px) + var(--rv-i,0) * var(--rv-step,14px));margin-bottom:var(--rv-gap,28px)!important;width:auto!important;max-width:none!important}
[data-rv-set][data-rv-layout="row"]{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:var(--rv-gap,16px)!important;overflow-x:auto!important;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:8px}
[data-rv-set][data-rv-layout="row"]>*{flex:0 0 min(82vw,var(--rv-card,360px))!important;scroll-snap-align:start}
/* ---------- THE WORK SHOWN (20 Oct 2026, /rd/work.js): work media is dark and still until it is scrolled into view, then
   lights with the scroll (--wk 0 -> 1) and a video plays only while it is on screen. A world that presents the work its own
   way sets html[data-work-own] and styles it itself. ---------- */
html.wk-js:not([data-work-own]) [data-work-media]{filter:brightness(calc(.2 + .8 * var(--wk,0))) saturate(calc(.3 + .7 * var(--wk,0)));transition:filter .2s linear}
.ph:has(> video[data-work-media]){position:relative}
.ph>video[data-work-media]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* /check, 21 Oct 2026: its new headline is two sentences, so the display size is capped and the red half may wrap */
html body h1.hero#h1{font-size:clamp(44px,6vw,88px)!important;line-height:.94!important}
html body h1.hero#h1 em{white-space:normal!important}
html body h1.hero#h1+.rd-kw{margin-top:16px!important}
@media (max-width:699.98px){.rd-kw{font-size:11px!important;letter-spacing:.05em!important}}
/* /check: the form is the hero subject, so it breathes in every look from the first frame (21 Oct 2026, predeploy) */
@keyframes rdbreathe{0%,100%{box-shadow:0 0 0 1px color-mix(in srgb,var(--rd-acc,#c33) 22%,transparent),0 0 16px 0 color-mix(in srgb,var(--rd-acc,#c33) 8%,transparent)}50%{box-shadow:0 0 0 2px color-mix(in srgb,var(--rd-acc,#c33) 55%,transparent),0 0 44px 6px color-mix(in srgb,var(--rd-acc,#c33) 22%,transparent)}}
@keyframes rdring{0%{outline-offset:2px;outline-color:color-mix(in srgb,var(--rd-acc,#c33) 45%,transparent)}100%{outline-offset:16px;outline-color:color-mix(in srgb,var(--rd-acc,#c33) 0%,transparent)}}
html[data-tpl=check] form#form[data-hero-subject]{outline:2px solid transparent;animation:rdbreathe 2.2s linear infinite,rdring 3.3s linear infinite}
@media (prefers-reduced-motion:reduce){html[data-tpl=check] form#form[data-hero-subject]{animation:none}}
