/* type scale (audit M7, 10 Oct 2026): eight steps, nothing below 12 px. Display (big numerals only), page title,
   person name, hook / row name, button / row title, body and inputs, secondary, section label. */
:root{--t-display:44px;--t-title:36px;--t-name:26px;--t-hook:21px;--t-ui:17px;--t-body:16px;--t-meta:14px;--t-label:12px}
/* resonate.css is shared with the live /app, so its sizes are mapped onto the scale here (same selectors, loaded later) */
html[data-theme] .h1{font-size:var(--t-title)}
html[data-theme] .h2{font-size:var(--t-name);overflow-wrap:break-word}
html[data-theme] .h1{overflow-wrap:break-word}
html[data-theme] .sechead h2{font-size:var(--t-body)}
html[data-theme] .label{font-size:var(--t-label)}
html[data-theme] .rz-eyebrow{font-size:var(--t-meta)}
html[data-theme] .rz-greeting{font-size:var(--t-title)}
html[data-theme] .rz-wordmark{font-size:var(--t-name)}
html[data-theme] .rz-hero{font-size:var(--t-display)}
html[data-theme] .rz-quote{font-size:var(--t-name)}
html[data-theme] .pill.lg{font-size:var(--t-ui)}
html[data-theme] .chip{font-size:var(--t-meta)}
html[data-theme] .seg button{font-size:var(--t-meta)}
html[data-theme] #tabs button{font-size:var(--t-label)}
.rz-me{font-size:var(--t-meta)}
.rz-cool .nm{font-size:var(--t-meta)}
.rz-cool .meta{font-size:var(--t-meta)}
html[data-theme] .ob-foot .pill.primary{font-size:var(--t-ui)}
.rz-phead h1{font-size:var(--t-title)}
.rz-wm{font-size:var(--t-hook)}
.rz-closechip{font-size:var(--t-label)}
.rz-swstate{font-size:var(--t-meta)}
.cm-title{font-size:var(--t-name)}
.cm-hm .ct{font-size:var(--t-label)}
.cm-hm .cd b{font-size:var(--t-label)}
.cm-hm .cd i{font-size:var(--t-label)}
.cm-hm .cl{font-size:var(--t-label)}
/* ==========================================================================
   Resonate, new look (v2). Loaded by /app-v2 after resonate.css, so it wins on equal
   specificity. It carries the Design-canvas mockups ("Resonate, mix board"): peach ground
   with two soft discs at the top, frosted-glass cards and nav, ink buttons, Instrument Serif
   titles, small indigo accents. Same markup as the live app; nothing here changes behaviour.
   Tokens first, then components, then the nav.
   ========================================================================== */

html:root[data-theme="light"]{
  --void:#FFE3CC; --surface:#FFF8F0; --surface2:#FFF8F0; --surface3:#FFEBDA;
  --sheet:#FCFAF7; --glass:rgba(255,255,255,.62); --glassLine:rgba(27,24,48,.08);
  --ink:#1B1830; --onInk:#FFF8F0;
  --ov:27,24,48; --line:rgba(27,24,48,.09); --line2:rgba(27,24,48,.16); --voidRGB:255,227,204;
  --glow:#1B1830; --dim:#4A4663; --faint:#5F5C7A;
  --bronze:#4A3BD6; --bronzeRGB:74,59,214; --bronzeText:#3B2CC4; --onBronze:#FFFFFF; --bronzeDim:rgba(74,59,214,.1);
  --echo:rgba(74,59,214,.1); --echoDeep:rgba(27,24,48,.16); --track:rgba(27,24,48,.15);
  --tabbar:rgba(255,255,255,.62); --shadow:rgba(27,24,48,.12); --scrim:rgba(27,24,48,.32);
  --raise:0 2px 14px rgba(27,24,48,.05);
  --outer:#FFD9BF;
  --ground:#FFE3CC;
}
html:root[data-theme="dark"]{
  --void:#14122A; --surface:#1E1A3C; --surface2:#262150; --surface3:#2E2A55;
  --sheet:#1E1A3C; --glass:rgba(255,255,255,.08); --glassLine:rgba(255,255,255,.1);
  --ink:#F3EEE6; --onInk:#14122A;
  --glow:#F3EEE6; --dim:#B3AEC6; --faint:#9A97B8;
  --bronze:#8E80FF; --bronzeRGB:142,128,255; --bronzeText:#B4ABFF; --onBronze:#14122A;
  --tabbar:rgba(255,255,255,.08); --outer:#0C0A1E;
  --ground:#14122A;
}

/* ---- ground: the discs live in the page background so they scroll away with the content ---- */
html[data-theme] .screen,html[data-theme] .page,html[data-theme] #search,html[data-theme] #onboard,
html[data-theme] #community,html[data-theme] #eroom,html[data-theme] #invite{background:var(--ground);background-attachment:local;background-repeat:no-repeat}
html[data-theme] #app{background:var(--void)}
html[data-theme] .fade{background:linear-gradient(to top,var(--void) 30%,rgba(var(--voidRGB),0))}

/* ---- type ---- */
html[data-theme] .h1{font-family:var(--serif);font-weight:400;font-size:var(--t-title);line-height:1;letter-spacing:-.015em}
html[data-theme] .rz-greeting{font-size:var(--t-title);line-height:1.02;letter-spacing:-.015em}
html[data-theme] .rz-eyebrow,html[data-theme] .label{font-size:var(--t-label);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
html[data-theme] .rz-hero em,html[data-theme] .ital{color:var(--dim)}
html[data-theme] .rz-hero{font-size:var(--t-display)}
html[data-theme] .sub{color:var(--dim)}
html[data-theme] .sechead h2{font-family:var(--serif);font-size:var(--t-name);font-weight:400;letter-spacing:-.01em}

/* ---- glass cards ---- */
html[data-theme] .card,html[data-theme] .who,html[data-theme] .opt,html[data-theme] .pcard,html[data-theme] .bubble,html[data-theme] .stats{
  background:var(--glass);border-radius:30px;box-shadow:none}
html[data-theme] .stats{border-radius:26px}
html[data-theme] .who,html[data-theme] .opt{border-radius:24px}
html[data-theme] .who.warn{box-shadow:inset 0 0 0 1.5px rgba(var(--bronzeRGB),.6)}
html[data-theme] .pcard{box-shadow:inset 0 0 0 1.5px rgba(var(--bronzeRGB),.3)}
html[data-theme] .opt[aria-pressed="true"]{background:var(--glass);box-shadow:inset 0 0 0 2px var(--ink)}
html[data-theme] .opt[aria-pressed="true"] .radio{box-shadow:inset 0 0 0 2px var(--ink)}
html[data-theme] .opt[aria-pressed="true"] .radio::after{background:var(--ink)}
html[data-theme] .opt[aria-pressed="true"] .check,html[data-theme] .chk[aria-pressed="true"] .check{background:var(--ink);color:var(--onInk)}
html[data-theme] .listrow,html[data-theme] .kv{border-top-color:var(--line)}
html[data-theme] .empty{background:transparent;border-color:rgba(var(--ov),.22)}

/* ---- buttons: ink pills; the indigo is kept for rings, dots and links ---- */
html[data-theme] .pill{min-height:50px;font-weight:600}
html[data-theme] .pill.primary{background:var(--ink);color:var(--onInk);box-shadow:none}
html[data-theme] .pill.light{background:var(--ink);color:var(--onInk);box-shadow:none}
html[data-theme] .pill.ghost{background:transparent;color:var(--glow);box-shadow:inset 0 0 0 1px var(--line2)}
html[data-theme] .cbtn,html[data-theme] .cbtn.fill,html[data-theme] .cbtn.call{background:var(--glass);color:var(--glow);box-shadow:none}
html[data-theme] .cbtn.addbtn{background:var(--ink);color:var(--onInk);box-shadow:none}
html[data-theme] .link{color:var(--bronzeText)}

/* ---- chips, tags, segmented control ---- */
html[data-theme] .chip{background:rgba(255,255,255,.5);box-shadow:inset 0 0 0 1px var(--line2);color:var(--glow);font-weight:600;min-height:40px;padding:0 16px}
html[data-theme="dark"] .chip{background:rgba(255,255,255,.06)}
html[data-theme] .chip.on,html[data-theme] .chip.sel{background:var(--ink);color:var(--onInk);box-shadow:none}
html[data-theme] .chip.bronze,html[data-theme] .chip.teal{background:rgba(var(--ov),.07);color:var(--glow)}
html[data-theme] .tag{background:rgba(var(--bronzeRGB),.1);color:var(--bronzeText)}
html[data-theme] .tag.teal{background:rgba(var(--ov),.07);color:var(--glow)}
html[data-theme] .seg{background:var(--glass);border-radius:28px;padding:4px}
html[data-theme] .seg button{border-radius:24px;color:var(--dim)}
html[data-theme] .seg button[aria-pressed="true"]{background:var(--surface);color:var(--glow);box-shadow:0 2px 8px rgba(27,24,48,.1)}
html[data-theme="dark"] .seg button[aria-pressed="true"]{background:var(--surface2)}

/* ---- toggles: ink track, cream knob ---- */
html[data-theme] .switch{background:rgba(var(--ov),.25)}
html[data-theme] .switch[aria-checked="true"]{background:var(--ink)}
html[data-theme] .switch::after{background:var(--surface)}
html[data-theme] .switch[aria-checked="true"]::after{background:var(--surface)}
html[data-theme="dark"] .switch[aria-checked="true"]::after{background:var(--void)}
html[data-theme] .meter i,html[data-theme] .obar i.on,html[data-theme] .dots i.on{background:var(--ink)}

/* ---- fields, sheets, search ---- */
html[data-theme] .field{background:var(--glass);border-radius:26px;box-shadow:inset 0 0 0 1px var(--glassLine);min-height:52px;padding:0 20px}
html[data-theme] textarea.field{padding:14px 20px;border-radius:24px}
html[data-theme] .searchbar{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glassLine)}
html[data-theme] #sheet{background:var(--sheet);border-radius:36px 36px 0 0;box-shadow:0 -10px 30px rgba(27,24,48,.08)}
html[data-theme] .grip{background:rgba(var(--ov),.15)}
html[data-theme] #toast{background:var(--ink);color:var(--onInk)}
html[data-theme] .webbar{background:var(--sheet)}

/* ---- the frosted nav with a sliding lens ---- */
html[data-theme] #tabs{left:16px;right:16px;bottom:22px;height:68px;padding:6px;border-radius:34px;background:var(--tabbar);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 10px 32px rgba(27,24,48,.12)}
html[data-theme] #tabs .lens{position:absolute;left:6px;top:6px;bottom:6px;width:calc((100% - 12px)/5);border-radius:28px;background:rgba(var(--ov),.07);
  box-shadow:0 3px 12px rgba(27,24,48,.12);transform:translateX(calc(var(--i,0) * 100%));transition:transform .45s cubic-bezier(.3,.9,.3,1),opacity .2s;pointer-events:none;z-index:0}
html[data-theme] #tabs .lens.off{opacity:0}
html[data-theme] #tabs button{position:relative;z-index:1;color:var(--dim);font-size:var(--t-label);font-weight:500;gap:3px;border-radius:28px}
html[data-theme] #tabs button[aria-selected="true"]{color:var(--glow);font-weight:600}
html[data-theme] #tabs button i{display:none}
html[data-theme] #tabs button.raised{background:var(--ink);color:var(--onInk);margin:0 1px}
html[data-theme] #tabs button.raised .bub{width:12px;height:12px;margin:0;background:var(--void);border-radius:50%;box-shadow:none;color:transparent}
html[data-theme] #tabs button.raised .bub svg{display:none}
html[data-theme] #tabs button.raised .tl{display:none}
html[data-theme] #tabs button.raised[aria-selected="true"]{box-shadow:0 0 0 3px rgba(var(--bronzeRGB),.4)}
html[data-theme] #tabs button.raised[aria-selected="true"] .bub{background:var(--void)}
html[data-theme] #tabs .me{width:24px;height:24px;border-radius:50%;color:#1B1830;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:var(--t-label);line-height:1;box-sizing:border-box}
html[data-theme] #tabs button[aria-selected="true"] .me{box-shadow:0 0 0 2px var(--void),0 0 0 3.5px var(--ink)}

@media (prefers-reduced-motion:reduce){html[data-theme] #tabs .lens{transition:none}}

/* ==========================================================================
   v2 components: the rebuilt layouts (Today, People, Discover, Log, You, Person, sheets)
   ========================================================================== */
html:root[data-theme="light"]{--avbg:#FFE3CC;--disc0:#FFE9D6;--paper:#FFF8F0;--disc1:#FFD3B0;--disc2:#FFBF92;--disc3:#F9A878;--late:#9C4209;--hair:rgba(27,24,48,.1)}
html:root[data-theme="dark"]{--avbg:#3A3270;--disc0:#221E47;--paper:#262150;--disc1:#2A2552;--disc2:#3A3270;--disc3:#4B418C;--late:#F2A072;--hair:rgba(255,255,255,.1)}
/* cream screens: Discover, Log, You, and the sub-pages. Today, People and Person keep the peach ground. */
html[data-theme] #s-signal,html[data-theme] #s-discover,html[data-theme] #s-log,html[data-theme] #s-you,html[data-theme] #page.v2cream{background:var(--paper);background-image:none}
html[data-theme="dark"] #s-signal,html[data-theme="dark"] #s-discover,html[data-theme="dark"] #s-log,html[data-theme="dark"] #s-you{background:var(--void)}
html[data-theme] .screen{padding-top:12px}

.v2-top{display:flex;justify-content:space-between;align-items:center;margin-top:26px;min-height:44px}
.v2-when{font-size:var(--t-label);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:10px}
.v2-greet{font:400 var(--t-title)/1.05 var(--serif);letter-spacing:-.01em;margin-top:12px}
.v2-title{font:400 var(--t-title)/1.02 var(--serif);letter-spacing:-.015em;margin-top:14px;overflow-wrap:break-word;hyphens:auto}
.v2-ital{font:italic 400 var(--t-hook)/1.25 var(--serif);color:var(--bronzeText);margin-top:10px}
.v2-ital.sm{font-size:var(--t-hook);margin-top:6px}
.v2-ital.dim{color:var(--dim)}
.v2-label{font-size:var(--t-label);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.v2-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;min-height:36px}
.v2-link{appearance:none;border:0;background:transparent;cursor:pointer;color:var(--bronzeText);font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);min-height:44px;padding:0;display:inline-flex;align-items:center;gap:4px}
.v2-stack{display:flex;flex-direction:column;gap:8px}
.v2-row{display:flex;align-items:center;gap:10px;min-height:72px;padding:10px 12px 10px 18px;border-radius:30px;box-sizing:border-box;width:100%;text-align:left;
  background:var(--glass);border:1px solid rgba(255,255,255,.75);color:var(--glow);position:relative}
html[data-theme="dark"] .v2-row{border-color:rgba(255,255,255,.08)}
.v2-row.v2-plain{padding-right:18px;cursor:pointer}
.v2-rowmain{appearance:none;border:0;background:transparent;display:flex;align-items:center;gap:14px;flex:1;min-width:0;text-align:left;padding:0;cursor:pointer;color:inherit;font:inherit}
.v2-rowtxt{display:flex;flex-direction:column;min-width:0;flex:1}
.v2-nm{font:400 var(--t-hook)/1.1 var(--serif);color:var(--glow);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-sb{font-size:var(--t-meta);color:var(--dim);margin-top:2px;line-height:1.35}
.v2-chev{color:var(--dim);flex:none;display:flex}
.v2-empty{border:1.5px dashed rgba(var(--ov),.25);border-radius:28px;padding:20px;text-align:left}
.v2-empty>.row{flex-wrap:wrap}
.v2-empty .v2-btn{max-width:100%;min-width:0;white-space:normal;line-height:1.2;text-align:center}
.v2-btn{appearance:none;border:0;cursor:pointer;font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);min-height:44px;padding:0 18px;border-radius:22px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:var(--onInk);flex:none;white-space:nowrap}
.v2-btn.lg{min-height:48px;padding:0 26px;border-radius:24px;font-size:var(--t-meta)}
.v2-btn.ghost{background:transparent;color:var(--glow);box-shadow:inset 0 0 0 1px var(--line2)}
.v2-btn.soft{background:rgba(var(--ov),.08);color:var(--glow)}
.v2-btn.block{width:100%;min-height:52px;border-radius:26px;font-size:var(--t-meta)}
.v2-textbtn{appearance:none;border:0;background:transparent;cursor:pointer;color:var(--glow);font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);min-height:48px;padding:0 12px;text-decoration:underline;text-underline-offset:4px}
.v2-ib{appearance:none;border:0;cursor:pointer;width:44px;height:44px;border-radius:22px;display:flex;align-items:center;justify-content:center;color:var(--glow);background:var(--glass);flex:none;padding:0}
.v2-ib.plain{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;margin-right:-10px}
.v2-ib.dk{background:var(--ink);color:var(--onInk)}
.v2-row .sig-more{padding:6px}
.v2-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.v2-chips::-webkit-scrollbar{display:none}
.v2-chip{appearance:none;border:1px solid rgba(var(--ov),.18);background:rgba(255,255,255,.5);color:var(--glow);font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);min-height:44px;padding:0 18px;border-radius:22px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;flex:none}
html[data-theme="dark"] .v2-chip{background:rgba(255,255,255,.06)}
html[data-theme="dark"] .v2-chip.on{background:var(--ink);color:var(--onInk);border-color:var(--ink)}
.v2-chip.on{background:var(--ink);color:var(--onInk);border-color:var(--ink)}
.v2-chip.dashed{border-style:dashed}

/* the opening flow */
#v2open{position:absolute;inset:0;z-index:15;background:var(--void);overflow:hidden;display:flex;flex-direction:column;padding-bottom:112px}
#v2open .v2-top{padding:0 24px;margin-top:0}
.v2-dots{display:flex;gap:6px;padding:10px 24px 0;min-height:18px}
.v2-dots i{width:8px;height:8px;border-radius:4px;background:rgba(var(--ov),.2)}
.v2-dots i.on{width:22px;background:var(--ink)}
.v2-ripple{position:relative;flex:1;min-height:250px}
.v2-ripple i{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);animation:v2pulse 5s ease-in-out infinite}
.v2-ripple .r1{width:min(400px,104vw);height:min(400px,104vw);background:var(--disc1)}
.v2-ripple .r2{width:276px;height:276px;background:var(--disc2);animation-delay:.3s}
.v2-ripple .r3{width:156px;height:156px;background:var(--disc3);animation-delay:.6s}
.v2-big{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:96px;height:96px;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;font:400 var(--t-title) var(--serif)}
.v2-sat{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y)));border-radius:50%;box-sizing:border-box;background:var(--paper);border:2px solid var(--bronze);display:flex;align-items:center;justify-content:center;font:400 var(--t-meta) var(--serif)}
.v2-sat.late{border:2px dashed var(--late)}
.v2-flowtxt{min-height:126px;padding:0 24px;display:flex;flex-direction:column;gap:6px}
.v2-bigname{font:400 var(--t-title)/1 var(--serif);letter-spacing:-.015em}
.v2-flowbtns{display:flex;gap:10px;align-items:center;padding:0 24px}
@keyframes v2pulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.035)}}
@media (prefers-reduced-motion:reduce){.v2-ripple i{animation:none}}
.v2-due .v2-nm{white-space:normal;font-size:var(--t-hook)}
.v2-due .sig-more{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;flex:none;margin-right:-4px}

/* People */
.v2-od{color:var(--bronzeText);font-weight:600}
.v2-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.v2-ocard{display:block;width:100%;text-align:left;border-radius:30px;background:var(--sheet);box-shadow:var(--raise);border:0;color:var(--glow);cursor:pointer;overflow:hidden}
html[data-theme="dark"] .v2-ocard{background:var(--surface)}
.v2-oname{font:400 var(--t-name)/1.05 var(--serif)}
.v2-orbtop{display:flex;justify-content:space-between;align-items:center;margin-top:28px}
.v2-orbhead{margin-top:10px}
.v2-pane{position:relative;margin:10px -20px -132px;padding:26px 16px 150px;border-radius:36px 36px 0 0;background:var(--sheet);box-shadow:0 -10px 30px rgba(27,24,48,.08);min-height:360px}
html[data-theme="dark"] .v2-pane{background:var(--surface)}
.v2-grab{width:40px;height:4px;border-radius:2px;background:rgba(var(--ov),.15);margin:-12px auto 14px}
.v2-lines{display:flex;flex-direction:column}
.v2-line{appearance:none;border:0;background:transparent;display:flex;align-items:center;gap:14px;min-height:68px;padding:8px 4px;text-align:left;color:var(--glow);border-top:1px solid var(--hair);cursor:pointer;width:100%}
.v2-line:first-child{border-top:0}
.v2-float{position:sticky;bottom:20px;margin:-100px -4px 0;display:flex;gap:10px;z-index:19;padding:6px;border-radius:34px;background:var(--tabbar);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 10px 32px rgba(27,24,48,.12)}
.v2-float .grow{flex:1}
#s-orbit .seg{margin-top:14px}

/* Discover */
html[data-theme] .row.between + .sub{font:italic 400 var(--t-hook)/1.25 var(--serif);color:var(--dim);margin-top:8px}
.v2-pcard{background:var(--sheet);border-radius:30px;padding:16px 16px 14px;box-shadow:var(--raise);display:flex;flex-direction:column;gap:10px}
html[data-theme="dark"] .v2-pcard{background:var(--surface)}
.v2-pmain{appearance:none;border:0;background:transparent;display:flex;align-items:center;gap:14px;text-align:left;padding:0;color:inherit;font:inherit;cursor:pointer;width:100%}
.v2-pmain .v2-nm{white-space:normal}
.v2-both{font-size:var(--t-meta);color:var(--glow);padding-left:62px;margin-top:-4px}
.v2-pact{display:flex;gap:8px;align-items:center}
.v2-pact .grow{flex:1}
.v2-pact .actions{display:flex;gap:8px;margin-left:auto}
.v2-pcard .v2-pact:has(.actions){padding-left:62px}
.v2-tag{font:600 var(--t-label) var(--sans,'Figtree',sans-serif);letter-spacing:0;background:rgba(var(--bronzeRGB),.12);color:var(--bronzeText);padding:3px 8px;border-radius:10px;vertical-align:3px;margin-left:4px;white-space:nowrap}
.v2-chip.sm{min-height:34px;padding:0 14px;font-size:var(--t-meta)}
.v2-sub .v2-chip:not(.on){background:transparent}
.v2-btn[disabled]{opacity:.5;cursor:default}
.v2-prow{display:flex;align-items:center;gap:10px}
.v2-prow .actions{display:flex;gap:8px;flex:none}
.v2-prow .v2-pmain{flex:1;min-width:0}

/* Log */
html[data-theme] #s-log .row.between + .sub{font:italic 400 var(--t-hook)/1.25 var(--serif);color:var(--bronzeText);margin-top:8px}
html[data-theme] #s-log .mic{width:300px;height:300px;margin:6px auto 0;border-radius:50%;position:relative;display:block;padding:0;background:none;box-shadow:none}
#s-log .mic .mark,#s-log .mic .icon{display:none}
#s-log .mic i{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
#s-log .mic .dot{position:absolute;left:50%;top:50%;width:96px;height:96px;transform:translate(-50%,-50%);border-radius:50%;background:var(--ink);box-shadow:0 14px 30px rgba(27,24,48,.25);display:flex;align-items:center;justify-content:center}
#s-log .mic .mc{width:22px;height:22px;border-radius:50%;background:var(--void)}
#s-log .mic .sq{width:22px;height:22px;border-radius:6px;background:var(--void)}
#s-log .listening .mic i{animation:v2pulse 1.6s ease-in-out infinite}
#s-log .listening .mic .r2{animation-delay:.2s}
#s-log .listening .mic .r3{animation-delay:.4s}
/* You */
.v2-me{display:flex;align-items:center;gap:16px;margin-top:18px}
.v2-meav{width:76px;height:76px;border-radius:50%;flex:none;display:flex}
.v2-mename{font:400 var(--t-title)/1 var(--serif);letter-spacing:-.01em}
.v2-bio{display:block;width:100%;text-align:left;margin-top:14px;padding:14px 16px;border-radius:24px;background:var(--glass);border:0;font:inherit;line-height:1.5;color:var(--glow);cursor:pointer}
.v2-card{background:var(--sheet);border-radius:28px;padding:16px 18px;box-shadow:var(--raise)}
html[data-theme="dark"] .v2-card{background:var(--surface)}
.v2-card.flush{padding:4px 18px}
.v2-pills{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px}
.v2-pill{font-size:var(--t-meta);font-weight:500;padding:6px 12px;border-radius:16px;background:rgba(var(--ov),.06);color:var(--glow)}
.v2-pill.outline{background:transparent;box-shadow:inset 0 0 0 1px rgba(var(--ov),.28)}
.v2-set{display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 4px;border-top:1px solid var(--hair);cursor:default}
.v2-set:first-child{border-top:0}
.v2-set[role=button]{cursor:pointer}
.v2-setn{font-size:var(--t-body);font-weight:600;color:var(--glow)}

/* Person */
html[data-theme] #page{--prog:0}
.v2-pbar{--prog:0;position:sticky;top:-22px;z-index:5;display:flex;justify-content:space-between;align-items:center;margin:-22px -20px 0;padding:28px 20px 6px}
.v2-pbar::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(var(--voidRGB),.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:var(--prog);pointer-events:none}
.v2-mini{display:flex;align-items:center;gap:10px;font:400 var(--t-hook) var(--serif);opacity:var(--prog);pointer-events:none;min-width:0}
.v2-mini span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-phero{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:-4px;transform-origin:50% 0;will-change:transform}
.v2-pripple{position:relative;width:100%}
.v2-pripple i{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
.v2-pface{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex}
.v2-bub{position:absolute;left:50%;top:50%;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y)));appearance:none;border:0;cursor:pointer;background:var(--paper);color:var(--glow);font:600 var(--t-label) var(--sans,'Figtree',sans-serif);padding:6px 12px;border-radius:14px;white-space:nowrap;box-shadow:0 2px 8px rgba(27,24,48,.08);max-width:150px;overflow:hidden;text-overflow:ellipsis}
.v2-pname{font:400 var(--t-display)/1 var(--serif);letter-spacing:-.015em}
.v2c{text-align:center;margin-bottom:6px}
.v2-psheet{position:relative;border-radius:36px 36px 0 0;background:var(--sheet);box-shadow:0 -10px 30px rgba(27,24,48,.08);min-height:520px}
html[data-theme="dark"] .v2-psheet{background:var(--surface)}
.v2-next{display:flex;gap:12px;align-items:flex-start}
.v2-next p{font-size:var(--t-body);line-height:1.4}
.v2-ndot{border-radius:50%;background:var(--bronze);flex:none}
.v2-ib.soft{background:rgba(var(--ov),.08);-webkit-backdrop-filter:none;backdrop-filter:none}
.v2-pfloat .v2-btn{padding:0 10px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.v2-pfloat .v2-btn.grow{flex:1 1 0}

/* Search */
html[data-theme] #search{background:var(--ground);background-repeat:no-repeat;padding:50px 16px 0;display:flex;flex-direction:column}
.v2-sbar{display:flex;align-items:center;gap:10px}
/* Regression pass (12 Oct): the field kept the input's built-in width (min-width:auto), so on a 320 px phone Cancel was pushed 6 px off the screen. */
.v2-sbar .v2-sfield{min-width:0}
.v2-sfield input{min-width:0;width:100%}
.v2-sbar>.v2-link{flex:none}
.v2-sfield{flex:1;height:52px;border-radius:26px;display:flex;align-items:center;gap:10px;padding:0 16px;box-sizing:border-box;background:var(--glass);box-shadow:0 0 0 2px var(--bronze);color:var(--glow)}
.v2-sfield input{flex:1;min-width:0;border:0;background:transparent;font:400 var(--t-ui) var(--sans,'Figtree',sans-serif);color:var(--glow);outline:0;padding:0}
.v2-spanel{margin:16px 0 0;flex:1;background:var(--sheet);border-radius:30px 30px 0 0;padding:20px 16px 130px;overflow-y:auto;box-shadow:0 -10px 30px rgba(27,24,48,.06)}
html[data-theme="dark"] .v2-spanel{background:var(--surface)}
.v2-spanel mark{background:rgba(var(--bronzeRGB),.14);color:inherit;border-radius:4px;padding:0 2px}
.v2-place{width:44px;height:44px;border-radius:50%;box-sizing:border-box;border:2px dashed var(--late);background:var(--void);display:flex;align-items:center;justify-content:center;font:400 var(--t-meta) var(--serif);flex:none}
.v2-plus{width:44px;height:44px;border-radius:50%;border:1.5px dashed rgba(var(--ov),.35);display:flex;align-items:center;justify-content:center;flex:none}
.v2-line.v2-addrow{border-top:1px solid var(--hair)}
/* Introduction + Travel alert sheets */
.v2-intro textarea.field{min-height:120px;margin-top:8px;border-radius:24px;padding:16px 18px;font-size:var(--t-ui);line-height:1.4}
.v2-chain{margin-top:14px;border-radius:26px;background:var(--glass);padding:16px 12px 14px}
.v2-link3{display:flex;align-items:center;justify-content:center;gap:6px}
.v2-link3 span{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:var(--t-label)}
.v2-link3 em{font-style:normal;color:var(--dim);font-weight:500}
.v2-link3 i{width:26px;height:1.5px;background:rgba(var(--ov),.3);margin-bottom:20px}
.v2-trip{position:relative}
.v2-tripart{position:relative;height:210px;margin:-10px -4px 6px}
.v2-tripart i{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
.v2-tripart .r1{width:210px;height:210px;background:var(--disc1)}
.v2-tripart .r2{width:146px;height:146px;background:var(--disc2)}
.v2-tripart .r3{width:84px;height:84px;background:var(--disc3)}

/* forms */
.v2-wrap{flex-wrap:wrap;overflow:visible}
/* Regression pass (12 Oct): a chip in a wrapping row could not wrap its own text (nowrap, flex:none), so a long talking point,
   name or 200% text ran off the screen and the sheet scrolled sideways. Now a chip longer than its row wraps inside itself. */
.v2-wrap>.v2-chip,.v2-kchips>.v2-chip,#s-log .v2-exr>.chip{flex:0 1 auto;max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:left;line-height:1.25;padding-top:6px;padding-bottom:6px}
.v2-addp .field{background:var(--paper);box-shadow:none}
.v2-addp{padding-bottom:40px}   /* the last field clears the floating Add bar (13 Oct walk-through) */
html[data-theme] #sheet.open{max-height:92%}
.v2-btn.block{display:flex}

/* ---- v2 onboarding ---- */
#onboard .v2-obdots{display:flex;gap:7px;justify-content:center;align-items:center;grid-template-columns:none}
#onboard .v2-obdots i{width:8px;height:8px;border-radius:50%;background:rgba(27,24,48,.16);flex:none;transition:width .25s,background .25s}
#onboard .v2-obdots i.on{background:#4A3BD6}
#onboard .v2-obdots i.cur{width:24px;border-radius:99px}
html[data-theme="dark"] #onboard .v2-obdots i{background:rgba(255,255,255,.2)}
html[data-theme="dark"] #onboard .v2-obdots i.on{background:#B7B0FF}
#onboard .v2-oblabel{margin:18px 0 6px}
#onboard .ob .h1{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:var(--t-title);line-height:1.05;letter-spacing:-.01em}
#onboard .ob .sub{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-size:var(--t-hook);color:#3B2CC4;line-height:1.3}
html[data-theme="dark"] #onboard .ob .sub{color:#B7B0FF}
#onboard .ob-foot .pill.primary{background:#1B1830;color:#FCFAF7;border-radius:99px}
html[data-theme="dark"] #onboard .ob-foot .pill.primary{background:#FCFAF7;color:#1B1830}

/* ---- v2 event room ---- */
html[data-theme] .v2-greet.rz-greeting{font-size:var(--t-title);line-height:1.05;letter-spacing:-.01em}
.v2-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- Today: brand row, event rooms, ring on the opening face (board stickies) ---- */
.v2-brand{display:flex;align-items:center;justify-content:space-between;margin-top:26px;min-height:44px}
.v2-brandl{display:flex;align-items:center;gap:10px;min-width:0}
.v2-wm{font:600 var(--t-name)/1 var(--sans,'Figtree',sans-serif);letter-spacing:-.02em;color:var(--glow)}
.v2-brandr{display:flex;align-items:center;gap:8px;flex:none}
.v2-ttop .v2-when{min-width:0}
.v2-ib.line{background:var(--glass);box-shadow:inset 0 0 0 1px var(--line2)}
.v2-ib.me{padding:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:hidden}
.v2-whenrow{margin-top:20px}
.v2-greet-sm{padding:0 24px;margin:12px 0 0;color:var(--glow)}
.v2-roomstack{margin-top:16px}
.v2-room{padding-right:14px}
.v2-room .v2-label{margin-bottom:2px}
.v2-room.live{box-shadow:inset 0 0 0 1.5px rgba(var(--bronzeRGB),.5)}
.v2-pulsedot{width:10px;height:10px;border-radius:50%;background:var(--bronze);flex:none;box-shadow:0 0 0 0 rgba(var(--bronzeRGB),.45);animation:v2live 2.4s ease-out infinite}
@keyframes v2live{0%{box-shadow:0 0 0 0 rgba(var(--bronzeRGB),.45)}70%,100%{box-shadow:0 0 0 12px rgba(var(--bronzeRGB),0)}}
@media (prefers-reduced-motion:reduce){.v2-pulsedot{animation:none}}
.v2-bigring{position:absolute;left:50%;top:50%;width:112px;height:112px;transform:translate(-50%,-50%) rotate(-90deg);pointer-events:none}

/* ---- Log: "Here's what I heard." ---- */
#s-log .v2-rv{display:flex;flex-direction:column}
.v2-rvsub{max-width:300px;line-height:1.5;margin-top:10px}
.v2-whoslot{margin-top:6px}
.v2-whoslot #reviewTop{margin-top:14px!important}
.v2-facts{margin-top:22px;border-top:1px solid var(--hair);display:flex;flex-direction:column}
.v2-fact{appearance:none;border:0;background:transparent;display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-bottom:1px solid var(--hair);text-align:left;width:100%;color:var(--glow);font:inherit;cursor:default}
button.v2-fact{cursor:pointer}
.v2-tick{width:24px;height:24px;border-radius:50%;flex:none;margin-top:2px;display:flex;align-items:center;justify-content:center;background:var(--ink);color:var(--onInk);box-sizing:border-box}
.v2-fact.off .v2-tick{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink)}
.v2-fact.off .v2-ftxt{color:var(--dim);text-decoration:line-through;text-decoration-color:rgba(var(--ov),.35)}
.v2-ftxt{font:400 var(--t-hook)/1.2 var(--serif)}
.v2-fkind{font-size:var(--t-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:5px}
.v2-fkind.pro{color:#8A4B1F}
html[data-theme="dark"] .v2-fkind.pro{color:#F2A072}
.v2-rvact{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:26px}
.v2-rvact .v2-save{width:100%;min-height:54px;font-size:var(--t-body);border-radius:999px}
.v2-editlink{appearance:none;border:0;background:transparent;cursor:pointer;font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);color:var(--bronzeText);text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:0 14px}
.v2-edit{margin-top:14px;border-top:1px solid var(--hair);padding-top:4px}
.v2-edit .v2-discard{width:100%;justify-content:center;margin-top:14px}

/* ---- Log: saved. The person's colours ripple out from their face, then keep breathing outward. ---- */
#v2saved{position:absolute;inset:0;z-index:19;background:var(--void);overflow:hidden;color:var(--glow)}
#v2saved .v2-sv-art{position:absolute;left:50%;top:41%;width:0;height:0}
#v2saved .v2-sv-art i{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:0}
#v2saved .d1{width:570px;height:570px;background:var(--disc0)}
#v2saved .d2{width:460px;height:460px;background:var(--disc1)}
#v2saved .d3{width:330px;height:330px;background:var(--disc2)}
#v2saved .d4{width:200px;height:200px;background:var(--disc3)}
#v2saved .w{width:200px;height:200px;background:var(--disc3)}
#v2saved .face{position:absolute;left:0;top:0;width:128px;height:128px;margin:-64px 0 0 -64px;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;font:400 var(--t-display) var(--serif);opacity:0;transform:scale(.7)}
#v2saved .ring{position:absolute;left:-75px;top:-75px;width:150px;height:150px;transform:rotate(-90deg);opacity:0}
#v2saved .v2-sv-txt{position:absolute;left:24px;right:24px;top:calc(41% + 195px);display:flex;flex-direction:column;gap:8px;text-align:center;opacity:0}
#v2saved .v2-sv-h{font:400 var(--t-display)/1 var(--serif);letter-spacing:-.015em}
#v2saved .v2-sv-s{font-size:var(--t-meta);color:var(--dim)}
#v2saved .v2-sv-i{margin-top:6px;padding:0 6px}
#v2saved .v2-sv-bar{position:absolute;left:16px;right:16px;bottom:104px;margin:0;opacity:0}
#v2saved.go{animation:v2reveal .9s cubic-bezier(.25,.7,.2,1) both}
#v2saved.go .d1,#v2saved.go .d2,#v2saved.go .d3,#v2saved.go .d4{animation:v2ripple 1.15s cubic-bezier(.2,.75,.2,1) both}
#v2saved.go .d1{animation-delay:.05s}#v2saved.go .d2{animation-delay:.3s}#v2saved.go .d3{animation-delay:.55s}#v2saved.go .d4{animation-delay:.8s}
#v2saved.go .w{animation:v2wave 3.4s ease-out infinite}
#v2saved.go .w1{animation-delay:2s}#v2saved.go .w2{animation-delay:3.7s}
#v2saved.go .face{animation:v2pop .6s cubic-bezier(.3,1.4,.4,1) .35s both}
#v2saved.go .ring{opacity:1;animation:v2fade .3s .4s both}
#v2saved.go .ring .draw{animation:v2draw 1.1s cubic-bezier(.3,.7,.2,1) .45s both}
#v2saved.go .v2-sv-txt,#v2saved.go .v2-sv-bar{animation:v2rise .7s cubic-bezier(.2,.7,.2,1) 1.05s both}
#v2saved.out{opacity:0;transition:opacity .2s}
@keyframes v2reveal{from{clip-path:circle(0 at 50% 92%)}to{clip-path:circle(160% at 50% 92%)}}
@keyframes v2ripple{from{transform:translate(-50%,-50%) scale(.2);opacity:0}25%{opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
@keyframes v2wave{0%{transform:translate(-50%,-50%) scale(1);opacity:0}8%{opacity:.4}100%{transform:translate(-50%,-50%) scale(3.4);opacity:0}}
@keyframes v2pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes v2fade{from{opacity:0}to{opacity:1}}
@keyframes v2draw{from{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}
@keyframes v2rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#v2saved.go,#v2saved.go *{animation:none!important}#v2saved .v2-sv-art i:not(.w),#v2saved .face,#v2saved .ring,#v2saved .v2-sv-txt,#v2saved .v2-sv-bar{opacity:1;transform:translate(-50%,-50%) scale(1)}#v2saved .face{transform:none}#v2saved .ring{transform:rotate(-90deg)}#v2saved .v2-sv-txt,#v2saved .v2-sv-bar{transform:none}#v2saved .w{display:none}}

/* an opened orbit draws its own discs; drop the page-ground ones so the two don't overlap */
html[data-theme] #s-orbit.v2-open{background:var(--void);background-image:none}

/* ---- avatars: cream disc, serif initials (the board's faces); the ring around them is drawn by avRz ---- */
html[data-theme] .av{background:var(--avbg)!important;color:var(--glow)!important;font-family:var(--serif);font-weight:400;letter-spacing:0}
html[data-theme] #tabs .me{background:#FFBF92}

/* svg text: resonate.css forces Figtree on every svg text; the faces and orbit letters are serif */
html[data-theme] svg text[font-family*="Instrument"]{font-family:'Instrument Serif',Georgia,serif}
/* opened orbit: the action bar takes the tab bar's place; discs sit behind the title */
#app:has(#s-orbit.v2-open:not([hidden])) #tabs{display:none}
.v2-orbtop,.v2-orbhead{position:relative;z-index:1}
.v2-open .v2-orbtop{margin:36px -8px 0}
.v2-open .v2-orbhead{padding-left:4px;margin-top:12px}
.v2-open .v2-orbhead .v2-sb{margin-top:6px}
.v2-open svg[role="img"]{width:calc(100% + 40px)!important;margin:0 -20px;position:relative;z-index:0}
.v2-open .v2-orbtop .v2-ib.plain{margin-right:0;background:var(--glass)}
.v2-open .v2-pane .v2-chips{margin-top:6px!important}
.v2-open .v2-pane .v2-grp:first-of-type{padding-top:12px}
#s-orbit.v2-open{padding-bottom:0!important}
.v2-open .v2-pane{margin:-2px -20px 0;flex:1 0 auto}
#s-orbit.v2-open:not([hidden]){display:flex;flex-direction:column}
#app:has(#s-orbit.v2-open:not([hidden])) .fade{display:none}
.v2-pane .v2-line{min-height:81px;box-sizing:border-box}
.v2-open .v2-float{bottom:22px;margin:-86px -4px 0;height:64px;box-sizing:border-box;padding:6px;border-radius:32px;gap:6px;align-items:stretch;flex:none}
.v2-open .v2-float .v2-btn{min-height:0;border-radius:26px;font-size:var(--t-meta)}
.v2-open .v2-float .v2-btn:first-child{flex:1.4}
.v2-open .v2-float .v2-btn:last-child{flex:1}
.v2-grp{padding:18px 4px 4px}
.v2-lines>.v2-grp:first-child{padding-top:6px}

/* ==== Person (board: built-person-scroll) ==== */
.v2-pripple .r1{width:440px;height:440px;background:var(--disc1)}
.v2-pripple .r2{width:320px;height:320px;background:var(--disc2)}
.v2-pripple .r3{width:200px;height:200px;background:var(--disc3)}
.v2-pname{font-size:var(--t-display);margin:0 0 6px}
.v2-bub.v2-pb{width:38px;height:38px;padding:0;border-radius:50%;box-sizing:border-box;background:var(--paper);border:2px solid var(--bronze);font:400 var(--t-meta) var(--serif);display:flex;align-items:center;justify-content:center;color:var(--glow)}
.v2-bub.v2-pb.late{border:2px dashed var(--late)}
.v2-psheet{margin:14px -20px -132px;padding:26px 16px 170px}
.v2-psheet>.v2-ital{color:var(--dim);font-size:var(--t-hook);padding:0 8px 18px;margin:0!important}
.v2-psheet .stats{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0!important;padding:16px 4px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.v2-psheet .stats>*{text-align:center;display:block;background:transparent;padding:0;border:0;color:var(--glow);font:inherit}
.v2-psheet .stats>*+*{border-left:1px solid rgba(var(--ov),.12)}
.v2-psheet .stats b{display:block;font:400 var(--t-name)/1 var(--serif)!important;letter-spacing:0}
.v2-psheet .stats span{display:block;font-size:var(--t-label);color:var(--dim);padding-top:4px}
.v2-psheet .stats button span{text-decoration:underline;text-underline-offset:3px}
.v2-next{background:rgba(var(--ov),.045);border-radius:24px;padding:16px 18px;margin-top:16px}
.v2-next p{font:400 var(--t-hook)/1.25 var(--serif)}
.v2-next p span{font-weight:400!important}
.v2-ndot{width:10px;height:10px;margin-top:8px}
.v2-pripple{height:312px}
.v2-phero .v2-pname{margin:-82px 0 6px;position:relative}
.v2-pfloat{height:64px;box-sizing:border-box;padding:6px;gap:6px;border-radius:32px;background:rgba(255,255,255,.7);bottom:22px}
.v2-pfloat .v2-btn{min-height:0;border-radius:26px;font-size:var(--t-meta)}
.v2-pfloat .v2-ib{width:52px;height:52px;border-radius:26px}
html[data-theme] .v2-psheet .stats{border-radius:0;background:transparent;box-shadow:none}
html[data-theme] .v2-psheet .card[data-readycard]{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;box-shadow:none;padding:0 4px 8px!important;margin-top:20px!important}
.v2-phero .v2-sb,.v2-phero .rz-closechip{position:relative}
.v2-psheet{margin-top:36px}
.v2-pfloat{align-items:stretch}
.v2-psheet [data-readycard] .chip{min-height:44px;padding:0 16px;background:transparent;box-shadow:none;border:1px solid rgba(var(--ov),.2)}
.v2-psheet [data-psum] p:not(.small){font:400 var(--t-hook)/1.25 var(--serif)!important;padding:10px 0 12px}

/* ---- polish pass (batch 1b): People overview matches new-people-map ---- */
html[data-theme="light"] #s-orbit:not(.v2-open){background:var(--paper);background-image:none}
#s-orbit .seg{display:flex;gap:2px;padding:4px;border-radius:28px;height:56px;box-sizing:border-box;min-height:0}
#s-orbit .seg button{flex:1;min-height:0;padding:0;border-radius:24px;font-weight:500;color:var(--dim)}
html[data-theme="light"] #s-orbit .seg button[aria-pressed="true"]{background:var(--avbg);color:var(--glow);font-weight:600}
#s-orbit .seg.v2-modeseg{display:flex;width:auto;height:auto;padding:3px;border-radius:22px;gap:2px}
#s-orbit .seg.v2-modeseg button{flex:none;width:40px;height:38px;min-height:0;border-radius:19px;display:flex;align-items:center;justify-content:center;color:var(--glow);font-weight:400}
html[data-theme="light"] #s-orbit .seg.v2-modeseg button[aria-pressed="true"]{background:var(--paper)}
.v2-ib svg,html[data-theme] #tabs button svg{stroke-width:1.5}
.v2-oname{font-size:var(--t-name)}
.v2-ocard{margin-top:10px;padding:18px 18px 12px}
html[data-theme="light"] #app:has(#s-orbit:not([hidden]):not(.v2-open)) .fade{background:linear-gradient(to top,var(--paper) 30%,rgba(255,248,240,0))}

/* ---- polish pass (batch 2): sub-pages start where the boards start (back button at y 48-50) ---- */
html[data-theme] .page:not(:has(.v2-phero)){padding-top:42px}

/* ---- polish pass (batch 3): Log a talk idle/listening match new-log-listen ---- */
html[data-theme] #s-log .row.between:first-child{margin-top:34px}
#s-log .mic .r1{width:300px;height:300px;background:var(--disc0)}
#s-log .mic .r2{width:216px;height:216px;background:var(--disc1)}
#s-log .mic .r3{width:140px;height:140px;background:var(--disc2)}
#s-log .listening .mic .r1{background:var(--disc1)}
#s-log .listening .mic .r2{background:var(--disc2)}
#s-log .listening .mic .r3{background:var(--disc3)}
#s-log .mic .mc,#s-log .mic .sq{width:36px;height:36px;border-radius:0;background:none;color:var(--paper);display:block}
html[data-theme] #s-log .bars rect{fill:rgba(var(--ov),.22);transform-box:fill-box;transform-origin:center;transform:scaleY(.3)}
html[data-theme] #s-log .listening .bars rect{fill:#4A3BD6;transform:none}
html[data-theme] #s-log .mic{margin-top:26px}
#s-log .bars{margin-top:12px}
#s-log .v2-ex{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:8px}
#s-log .v2-ex .tiny{font-size:var(--t-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
#s-log .v2-exr{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
/* review: warm ground and hairlines from built-log-save (the tab bar stays: leaving a review mid-way must keep working) */
html[data-theme="light"] #s-log:has(.v2-rv){background:#F6F2EA}
html[data-theme="light"] #s-log .v2-fact{border-bottom-color:#E6DFD2}
html[data-theme="light"] #s-log .v2-facts{border-top-color:#E6DFD2}
html[data-theme="light"] #s-log .v2-fkind:not(.pro){color:#5E5A53}

/* ---- polish pass (batch 4): Communities clubs as the board's cards ---- */
.v2-clubs{display:flex;flex-direction:column;gap:10px}
.v2-club{position:relative;display:block;width:100%;text-align:left;border:0;border-radius:30px;background:var(--sheet);box-shadow:var(--raise);padding:18px 20px;overflow:hidden;min-height:118px;color:var(--glow);cursor:pointer}
.v2-clubtx{position:relative;z-index:1;display:flex;flex-direction:column;max-width:70%}
.v2-clubnm{font:400 var(--t-name)/1.05 var(--serif);margin-top:6px}
.v2-clubsb{font-size:var(--t-meta);color:var(--dim);margin-top:4px}
.v2-clubnx{font-size:var(--t-meta);font-weight:500;margin-top:10px}
.v2-clubart{position:absolute;right:37px;top:50%;width:0;height:0}
.v2-clubart i{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%)}
.v2-clubart i:nth-child(1){width:120px;height:120px;background:var(--disc1)}
.v2-clubart i:nth-child(2){width:94px;height:94px;background:var(--disc2)}
.v2-clubart i:nth-child(3){width:70px;height:70px;background:var(--disc3)}
.v2-club.tan .v2-clubart i:nth-child(1){background:#E9DFD3}
.v2-club.tan .v2-clubart i:nth-child(2){background:#DCCDBB}
.v2-club.tan .v2-clubart i:nth-child(3){background:#CBB8A2}

/* ---- Event room (board: new-event-room) ---- */
html[data-theme="light"] #eroom{background:#FFE3CC;background-image:none}
#eroom .v2-er{padding:48px 0 0;min-height:100%;display:flex;flex-direction:column}
#eroom .v2-ertop{padding:0 24px;position:relative;z-index:1}
#eroom .v2-ertop .v2-ib{position:absolute;left:12px;top:0}
#eroom .v2-ertop .v2-label{display:block;padding-top:56px}
#eroom .v2-ertop h1{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:var(--t-title);line-height:1;letter-spacing:-.015em;margin:8px 0 0}
.v2-ervis{display:flex;align-items:center;gap:8px;padding-top:8px;font-size:var(--t-meta)}
.v2-ervis i{width:8px;height:8px;border-radius:50%;background:rgba(var(--ov),.3)}
.v2-ervis i.on{background:#4A3BD6}
.v2-ervis .link{margin-left:6px;min-height:44px}
/* Regression pass (12 Oct): the room orbit was a fixed 340 px, 20 px wider than a 320 px phone; it now fits the column (the people on it are placed in %) */
.v2-erorb{position:relative;width:min(340px,100%);height:auto;aspect-ratio:1;margin:-34px auto 14px;flex:none;pointer-events:none}
.v2-erorb i{position:absolute;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}
.v2-erorb .d1{width:100%;height:100%;background:#FFD3B0}
.v2-erorb .d2{width:69.4%;height:69.4%;background:#FFBF92}
.v2-erorb .d3{width:38.8%;height:38.8%;background:#F9A878}
.v2-erc{position:absolute;left:50%;top:50%;width:90px;height:90px;margin:-45px 0 0 -45px;border-radius:50%;background:#FFF8F0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.v2-erc b{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:var(--t-title);line-height:1}
.v2-erc em{font-style:normal;font-size:var(--t-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#4A4663}
.v2-erdot,.v2-erav{box-sizing:border-box;border-radius:50%;background:#FFF8F0;border:2px dashed #B84F10;display:flex;align-items:center;justify-content:center;font-family:'Instrument Serif',Georgia,serif;color:#1B1830}
.v2-erdot{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;font-size:var(--t-label)}
.v2-ersheet{position:relative;background:#FCFAF7;border-radius:36px 36px 0 0;box-shadow:0 -10px 30px rgba(27,24,48,.08);padding:26px 16px 130px;flex:1}
.v2-ersheet .v2-grab{display:block;margin:-10px auto 16px}
.v2-ernote{font-size:var(--t-meta);line-height:1.35;margin:0 4px 8px;color:#1B1830}
.v2-erlbl{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 2px}
.v2-errow{display:flex;align-items:center;gap:14px;min-height:64px;padding:8px 4px;border-top:1px solid rgba(27,24,48,.1)}
.v2-errow>button:first-child{display:flex;align-items:center;gap:14px;flex:1;min-width:0;text-align:left;background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
.v2-erav{width:44px;height:44px;flex:none;background:#FFE3CC;font-size:var(--t-meta)}
.v2-ertx{flex:1;min-width:0}
.v2-ertx b{display:block;font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:var(--t-hook);line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-ertx span{display:block;font-size:var(--t-meta);color:#4A4663;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-errow .pill.sm{min-height:44px;padding:0 16px;font-size:var(--t-meta)}
.v2-errow .pill.ghost{box-shadow:inset 0 0 0 1px rgba(27,24,48,.22);color:#1B1830}
.v2-erbar{position:sticky;bottom:22px;margin:-86px 16px 22px;height:64px;box-sizing:border-box;padding:6px;border-radius:32px;box-shadow:0 10px 32px rgba(27,24,48,.12);display:flex;gap:6px;align-items:stretch;z-index:2;background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.v2-erbar .pill{flex:1;min-height:0;border-radius:26px;gap:8px}
.v2-erbar .pill.primary{flex:1.4}
.v2-erbar .pill.soft{background:rgba(27,24,48,.08);color:#1B1830;box-shadow:none}

/* ---- Onboarding progress and subtitle colours (board: new-onboarding) ---- */
html[data-theme="light"] #onboard .v2-obdots i.on{background:rgba(27,24,48,.26)}
html[data-theme="light"] #onboard .v2-obdots i.cur{background:#1B1830}
html[data-theme="light"] #onboard .ob .sub{color:#4A4663;font-size:var(--t-hook);line-height:1.25}
html[data-theme="light"] #onboard [data-ob="skip"]{color:#4A4663}

/* ==========================================================================
   Feel (08 Oct): press feedback, real exits for sheets and pages, tab entry,
   the shared face on push, and the scroll edge. Live blur is kept only where
   content scrolls under glass (tab bar, floating bars); flat cards over a flat
   ground look the same without it and cost nothing to scroll on an iPhone.
   ========================================================================== */
button,a,[role=button],label{touch-action:manipulation}
.v2-btn,.v2-chip,.v2-ib,.v2-textbtn,.pill,.cbtn,.chip{transition:transform .16s cubic-bezier(.23,1,.32,1),background-color .2s,color .2s,box-shadow .2s}
.v2-btn:active,.v2-chip:active,.v2-ib:active,.cbtn:active,.chip:active,.v2-textbtn:active{transform:scale(.96)}
.v2-row,.v2-ocard,.v2-pcard,.v2-club,.v2-card[role=button]{transition:transform .2s cubic-bezier(.23,1,.32,1)}
.v2-row:active:not(:has(.v2-btn:active,.sig-more:active)),.v2-ocard:active,.v2-club:active{transform:scale(.985)}
.v2-line,.v2-set[role=button]{transition:background-color .15s}
.v2-line:active,.v2-set[role=button]:active{background:rgba(var(--ov),.045)}
@media (hover:hover) and (pointer:fine){.v2-line:hover{background:rgba(var(--ov),.03)}.v2-btn:hover{filter:brightness(1.08)}}

/* a tab's screen arrives with a short rise; `backwards` so it never pins a transform afterwards */
html[data-theme] .screen:not([hidden]){animation:v2screenin .26s cubic-bezier(.23,1,.32,1) backwards}
@keyframes v2screenin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* pages push in like iOS and, on Back, actually slide out (visibility used to flip off at once) */
html[data-theme] .page{transition:transform .44s cubic-bezier(.32,.72,0,1),visibility 0s linear .44s,box-shadow .44s}
html[data-theme] .page.open{transition:transform .44s cubic-bezier(.32,.72,0,1),visibility 0s,box-shadow .44s;box-shadow:-14px 0 36px rgba(27,24,48,.12)}
html[data-theme] .screen{transition:transform .44s cubic-bezier(.32,.72,0,1),filter .44s}
html[data-theme] #app:has(#page.open) .screen:not([hidden]){transform:translateX(-22%);filter:brightness(.96)}
/* sheets: the same curve up, a quicker exit down */
html[data-theme] #sheet{transition:transform .26s cubic-bezier(.4,0,.6,1),visibility 0s linear .26s}
html[data-theme] #sheet.open{transition:transform .44s cubic-bezier(.32,.72,0,1),visibility 0s}
html[data-theme] #sheet.v2-drag{transition:none}
html[data-theme] #scrim{transition:opacity .3s cubic-bezier(.32,.72,0,1)}

/* the shared face (View Transitions; Safari 18+, Chrome). Without it the CSS slide above runs. */
html.v2-vt .page,html.v2-vt .screen{transition:none!important}
::view-transition-group(v2face){animation-duration:.46s;animation-timing-function:cubic-bezier(.32,.72,0,1)}
::view-transition-old(root),::view-transition-new(root){animation-duration:.46s;animation-timing-function:cubic-bezier(.32,.72,0,1)}
html.v2-vt:not(.v2-vt-back)::view-transition-old(root){animation-name:v2vtoutl}
html.v2-vt:not(.v2-vt-back)::view-transition-new(root){animation-name:v2vtinr}
html.v2-vt-back::view-transition-old(root){animation-name:v2vtoutr}
html.v2-vt-back::view-transition-new(root){animation-name:v2vtinl}
@keyframes v2vtoutl{to{transform:translateX(-22%);opacity:.7}}
@keyframes v2vtinr{from{transform:translateX(40%);opacity:0}}
@keyframes v2vtoutr{to{transform:translateX(40%);opacity:0}}
@keyframes v2vtinl{from{transform:translateX(-22%);opacity:.7}}

/* scroll edge: a soft fade under the status bar once a screen has scrolled */
html[data-theme] .screen,html[data-theme] .page{--edgeRGB:var(--voidRGB)}
html[data-theme="light"] #s-signal,html[data-theme="light"] #s-discover,html[data-theme="light"] #s-log,html[data-theme="light"] #s-you,html[data-theme="light"] #s-orbit:not(.v2-open),html[data-theme="light"] #page.v2cream{--edgeRGB:255,248,240}
.screen.v2-edge::before,#page.v2-edge:not(:has(.v2-pbar))::before{content:"";position:sticky;top:0;display:block;height:46px;margin:0 -20px -46px;z-index:8;pointer-events:none;
  background:linear-gradient(to bottom,rgba(var(--edgeRGB),.94) 25%,rgba(var(--edgeRGB),0))}

/* glass that reads as glass: a bright top edge on the bars that float over content */
html[data-theme="light"] #tabs,html[data-theme="light"] .v2-float,html[data-theme="light"] .v2-erbar{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 0 0 1px rgba(255,255,255,.55),0 10px 32px rgba(27,24,48,.12)}

/* long lists: let the browser skip rows that are off screen */
.v2-lines>.v2-line{content-visibility:auto;contain-intrinsic-size:auto 76px}

@media (prefers-reduced-motion:reduce){
  html[data-theme] .screen:not([hidden]){animation:v2fadeonly .2s ease backwards}
  html[data-theme] #app:has(#page.open) .screen:not([hidden]){transform:none}
  .v2-btn:active,.v2-chip:active,.v2-ib:active,.cbtn:active,.chip:active,.v2-row:active,.v2-ocard:active,.v2-club:active{transform:none}
}
@keyframes v2fadeonly{from{opacity:0}to{opacity:1}}

/* ==========================================================================
   Full pages (08 Oct): Write, Add a person, Introduction, Travel and Learn are
   whole pages on the boards. They live in #sheet so every handler keeps working;
   .v2-full turns the sheet into a page that pushes in from the right.
   ========================================================================== */
html[data-theme] #sheet.v2-full{top:0;bottom:0;left:0;right:0;height:100%;max-height:none!important;border-radius:0;padding:0;
  transform:translateX(100%);background:var(--ground);background-repeat:no-repeat;background-attachment:local;
  overflow-y:auto;overscroll-behavior:contain;box-shadow:-14px 0 36px rgba(27,24,48,.12);
  transition:transform .26s cubic-bezier(.4,0,.6,1),visibility 0s linear .26s}
html[data-theme] #sheet.v2-full.open{transform:none;transition:transform .44s cubic-bezier(.32,.72,0,1),visibility 0s}
html[data-theme] #sheet.v2-full.cream{background:var(--paper)}
html[data-theme] #sheet.v2-full.trip{background:var(--void)}
html[data-theme="dark"] #sheet.v2-full.cream{background:var(--void)}
#sheet.v2-full>.grip{display:none}
.v2-fp{position:relative;min-height:100%;box-sizing:border-box;padding:48px 24px 0;display:flex;flex-direction:column;overflow-wrap:break-word}
.v2-fptop{display:flex;align-items:center;margin-left:-12px;position:relative;z-index:1}
.v2-fpbar{position:sticky;bottom:22px;z-index:3;margin:auto -8px 22px;display:flex;gap:6px;align-items:stretch;height:64px;box-sizing:border-box;padding:6px;border-radius:32px;
  background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 10px 32px rgba(27,24,48,.12)}
.v2-fp>.v2-fpbar,.v2-fp>div>.v2-fpbar{margin-top:24px}
.v2-fp>.v2-fpbar{margin-top:auto}
.v2-fp>:nth-last-child(2){margin-bottom:24px}
html[data-theme="dark"] .v2-fpbar{background:rgba(255,255,255,.08);box-shadow:0 10px 32px rgba(0,0,0,.3)}
.v2-fpbar .v2-btn{min-height:0;border-radius:26px;font-size:var(--t-meta)}
.v2-fpbar .v2-btn.grow{flex:1;min-width:0;white-space:normal;line-height:1.2;text-align:center}
.v2-fpbar .v2-btn.sq{width:52px;padding:0;flex:none}
.v2-fpbar.stack{height:auto;flex-direction:column;gap:10px;padding:26px 24px 34px;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;margin:auto -24px 0;bottom:0;
  background:linear-gradient(to top,var(--void) calc(100% - 26px),rgba(var(--voidRGB),0))}
.v2-fpbar.stack .v2-btn{min-height:52px;border-radius:26px}
.v2-fpbar.stack .v2-btn:last-child{min-height:54px;border-radius:27px}
.v2-fpbar.stack .v2-btn.ghost{background:rgba(255,248,240,.55)}
#page .v2-fpbar{margin:28px -4px 0;bottom:22px}
#page .v2-fpbar.col{height:auto;padding:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
#page .v2-fpbar.col .v2-btn{min-height:54px;border-radius:27px;width:100%}

/* fields and chips on the pages */
.v2-flab{display:block;padding:18px 6px 8px}
.v2-title+.v2-ital+.v2-flab{padding-top:16px}
.v2-field{display:block;width:100%;box-sizing:border-box;min-height:52px;border-radius:26px;padding:0 20px;border:1px solid rgba(var(--ov),.08);background:var(--glass);font:400 var(--t-body) var(--sans,'Figtree',sans-serif);color:var(--glow);outline:none;-webkit-appearance:none;appearance:none}
.v2-field:focus{border-color:var(--bronze);box-shadow:0 0 0 3px rgba(var(--bronzeRGB),.14)}
.v2-field:focus-visible,.v2-wtext:focus-visible{outline:none}
.v2-intro .v2-wtext{min-height:76px}
.v2-field::placeholder,.v2-wtext::placeholder{color:#8A8699}
select.v2-field{background-image:none}
.v2-chip.sm2{min-height:40px;padding:0 16px;font-size:var(--t-meta)}
.v2-chip.clear{background:transparent}
.v2-chip.sm{min-height:40px;padding:0 14px;font-size:var(--t-meta);font-weight:500}
.v2-chip.sm.on{font-weight:600}

/* Write */
.v2-wtop{display:flex;align-items:center;gap:12px;margin-left:-12px}
.v2-wname{font:400 var(--t-name)/1 var(--serif);letter-spacing:-.01em;overflow-wrap:anywhere}
.v2-wtop .v2-sb{margin-top:3px}
.v2-wcard{border-radius:28px;padding:16px 18px;box-sizing:border-box}
.v2-wcard.glassy{background:var(--glass);border:1px solid rgba(255,255,255,.75)}
html[data-theme="light"] #sheet.cream .v2-wcard.glassy{background:#fff;border-color:rgba(27,24,48,.05)}
.v2-wfrom{font-size:var(--t-label);font-weight:600;color:#8A4B1F;display:flex;align-items:center;gap:6px;overflow-wrap:anywhere}
html[data-theme="dark"] .v2-wfrom{color:#F2A072}
.v2-whead{font:400 var(--t-name)/1.2 var(--serif);padding-top:6px;color:var(--glow);overflow-wrap:anywhere}
.v2-wmsg{border-radius:28px;background:var(--sheet);padding:18px 18px 14px;box-shadow:0 2px 14px rgba(27,24,48,.06)}
html[data-theme="dark"] .v2-wmsg{background:var(--surface)}
.v2-wtext{display:block;width:100%;box-sizing:border-box;border:0;background:transparent;font:400 var(--t-ui)/1.5 var(--sans,'Figtree',sans-serif);color:var(--glow);resize:none;outline:none;padding:0;min-height:128px;field-sizing:content;caret-color:#4A3BD6}
.v2-whair{border-top:1px solid var(--hair);margin-top:14px;padding-top:12px}

/* Introduction */
.v2-intro{position:relative;display:flex;flex-direction:column;flex:1}
.v2-intro .v2-chain{margin:22px -8px 0;background:var(--glass);border-radius:30px;padding:22px 22px 16px}
.v2-intro .v2-link3{gap:6px}
.v2-intro .v2-link3 span{width:84px;font-size:var(--t-meta);font-weight:600}
.v2-intro .v2-link3 em{color:var(--glow);font-weight:600}
.v2-intro .v2-link3 i{flex:1;width:auto;height:2px;background:rgba(var(--ov),.35);margin-bottom:22px}
.v2-fpsheet{position:relative;margin:18px -8px 0;flex:1;border-radius:36px 36px 0 0;background:var(--sheet);box-shadow:0 -10px 30px rgba(27,24,48,.08);padding:24px 16px 120px}
html[data-theme="dark"] .v2-fpsheet{background:var(--surface)}
.v2-fpsheet .v2-grab{margin:-10px auto 16px}
.v2-fp:has(.v2-fpsheet)>.v2-fpbar{position:absolute;left:16px;right:16px;bottom:22px;margin:0}
.v2-fp:has(.v2-fpsheet){padding-bottom:0}
#sheet.v2-full:has(.v2-fpsheet) .v2-fp>.v2-fpbar{position:fixed}

/* Travel */
#sheet.trip .v2-fp{padding-bottom:0}
#sheet.trip .v2-tripart{position:absolute;left:0;right:0;top:198px;height:340px;margin:0;pointer-events:none}
#sheet.trip .v2-tripart .r1{width:340px;height:340px;background:var(--disc1)}
#sheet.trip .v2-tripart .r2{width:240px;height:240px;background:var(--disc2);margin-top:-2px}
#sheet.trip .v2-tripart .r3{width:140px;height:140px;background:var(--disc3);margin-top:-4px}
.v2-tripsheet{position:relative;margin:140px -24px 0;flex:1;border-radius:36px 36px 0 0;background:var(--sheet);box-shadow:0 -10px 30px rgba(27,24,48,.08);padding:26px 24px 60px}
html[data-theme="dark"] .v2-tripsheet{background:var(--surface)}
.v2-tripsheet .v2-grab{margin:-10px auto 16px}
.v2-tripsheet .v2-line{min-height:70px;border-top-color:var(--hair)}

/* Learn */
.v2-lqwho{display:flex;align-items:center;gap:12px;margin-top:16px;background:none;border:0;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer;width:100%}
.v2-lqcards{display:flex;flex-direction:column;gap:10px;margin:16px -8px 0}
.v2-lqcard{background:var(--glass);border-radius:28px;padding:16px 18px;box-sizing:border-box}
html[data-theme="light"] #page.v2cream .v2-lqcard{background:#fff;box-shadow:0 1px 2px rgba(27,24,48,.03)}
.v2-lqq,html[data-theme] .v2-lqcard .label{font-size:var(--t-body);line-height:1.35;font-weight:500;letter-spacing:0;text-transform:none;color:var(--glow)}
.v2-lqcard .col{gap:0!important}
.v2-lqcard .field{margin-top:12px;min-height:48px;border-radius:24px;background:var(--paper);box-shadow:inset 0 0 0 1px rgba(var(--ov),.1);padding:0 18px}
.v2-lqcard .row{margin-top:12px}
.v2-lqcard .chip{min-height:38px!important;padding:0 14px;font-size:var(--t-meta);font-weight:500;background:transparent;box-shadow:inset 0 0 0 1px rgba(var(--ov),.18);color:var(--glow)}
.v2-lqcard .chip[aria-pressed="true"]{background:var(--ink);color:var(--onInk);box-shadow:none}
.v2-lqcard select.field{-webkit-appearance:none;appearance:none}
.v2-lqskip{display:flex;justify-content:center;gap:4px;margin:6px 0 30px}
.v2-lqskip .v2-textbtn{font-size:var(--t-meta);color:var(--dim)}
.v2-lqdone{text-align:center;margin:18px 0 0}

/* Today: sections, the live room, faces, the moment after the opening */
.v2-sec{margin-top:26px}
.v2-head.v2-sec{margin-bottom:4px}
.v2-label.v2-sec:not(.v2-head){margin-bottom:10px}
.v2-liverow{min-height:76px}
.v2-liverow .v2-pulsedot{margin:0 4px 0 2px}
.v2-faces{display:flex;flex:none}
.v2-faces i{width:30px;height:30px;border-radius:50%;box-sizing:border-box;border:2px solid var(--disc1);background:var(--paper);display:flex;align-items:center;justify-content:center;font:400 var(--t-label) var(--serif);font-style:normal;color:var(--glow)}
.v2-faces i+i{margin-left:-10px;background:var(--disc2)}
.v2-faces i+i+i{background:var(--disc3)}
.v2-cheer{animation:v2cheer .7s cubic-bezier(.23,1,.32,1) .1s backwards}
@keyframes v2cheer{from{opacity:0;transform:translateY(10px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
#v2open.v2-leave{animation:v2leave .38s cubic-bezier(.4,0,.6,1) both}
@keyframes v2leave{to{opacity:0;transform:scale(1.03)}}
#v2open .v2-flowtxt,#v2open .v2-flowbtns,#v2open .v2-big,#v2open .v2-bigring{animation:v2rise .5s cubic-bezier(.2,.7,.2,1) backwards}
#v2open .v2-flowbtns{animation-delay:.08s}
@media (prefers-reduced-motion:reduce){.v2-cheer,#v2open.v2-leave,#v2open *{animation:none!important}}
#onboard .v2-obmark{width:48px;height:48px;display:flex;align-items:center}
#onboard .v2-flab{padding:18px 6px 8px}
#onboard .v2-field{background:rgba(255,255,255,.62)}
/* Communities (board: new-communities) */
.v2-startcomm{background:transparent;box-shadow:inset 0 0 0 1px rgba(var(--ov),.22);min-height:52px;border-radius:26px;font-size:var(--t-meta)}
.v2-club{border-radius:30px;min-height:112px;padding:16px 18px;background:var(--glass)}
html[data-theme="light"] #s-orbit:not(.v2-open) .v2-club{background:#fff}
.v2-clubnm{font-size:var(--t-name);margin-top:4px}
.v2-clubsb{font-size:var(--t-meta);margin-top:2px}
.v2-clubnx{font-size:var(--t-meta);margin-top:8px}
.v2-clubart{right:35px}
.v2-clubart i:nth-child(1){width:130px;height:130px}
.v2-clubart i:nth-child(2){width:100px;height:100px}
.v2-clubart i:nth-child(3){width:70px;height:70px}
.v2-hostroom{display:flex;align-items:center;gap:14px;margin-top:16px;padding:14px 18px;border-radius:26px;background:var(--glass)}
html[data-theme="light"] #sheet.cream .v2-hostroom,html[data-theme="light"] #sheet.cream .v2-field{background:#fff}
.v2-hostroom>div{flex:1;min-width:0}
.v2-hostroom b{display:block;font-size:var(--t-body);font-weight:600}
.v2-hostroom span{display:block;font-size:var(--t-meta);color:var(--dim);margin-top:2px;line-height:1.35}
.v2-hostroom svg{flex:none;color:var(--bronze)}
#sheet.cream .v2-fpbar.stack{background:linear-gradient(to top,var(--paper) calc(100% - 26px),rgba(255,248,240,0))}
html[data-theme="dark"] #sheet.cream .v2-fpbar.stack{background:linear-gradient(to top,var(--void) calc(100% - 26px),rgba(var(--voidRGB),0))}

/* Log review and saved (board: built-log-save). No tab bar on either; the review has a Close that
   keeps the draft. Saved: the person's colours spread like a stone dropped in water, then settle.
   The two after-ripples play once each instead of looping. */
#app:has(#s-log:not([hidden]) .v2-rv) #tabs,#app:has(#s-log:not([hidden]) .v2-rv) .fade{display:none}
#s-log:has(.v2-rv){padding-bottom:40px}
.v2-rvtop{display:flex;align-items:center;justify-content:space-between;margin-top:22px;min-height:44px}
html[data-theme="light"] #v2saved{background:#F6F2EA}
#v2saved{z-index:22}
#v2saved .v2-sv-art i.d0{width:1200px;height:1200px;background:var(--void)}
#v2saved.go{animation:v2fade .3s ease-out both}
#v2saved.go .d0,#v2saved.go .d1,#v2saved.go .d2,#v2saved.go .d3,#v2saved.go .d4{animation:v2water 1.15s cubic-bezier(.2,.75,.3,1) both}
#v2saved.go .d0{animation-delay:.25s}#v2saved.go .d1{animation-delay:.39s}#v2saved.go .d2{animation-delay:.53s}#v2saved.go .d3{animation-delay:.67s}#v2saved.go .d4{animation-delay:.81s}
#v2saved.go .w{animation:v2wave 2.6s cubic-bezier(.2,.75,.3,1) 1}
#v2saved.go .w1{animation-delay:1.9s}#v2saved.go .w2{animation-delay:3s}
#v2saved.go .face{animation:v2drop .6s cubic-bezier(.3,1.25,.4,1) .2s both}
#v2saved .v2-sv-bar{bottom:22px}
#v2saved.go .v2-sv-bar{animation-delay:1.2s}
@keyframes v2water{0%{transform:translate(-50%,-50%) scale(.04);opacity:1}58%{transform:translate(-50%,-50%) scale(1.05)}80%{transform:translate(-50%,-50%) scale(.99)}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}
@keyframes v2drop{0%{transform:scale(1.35) translateY(-22px);opacity:0}45%{opacity:1}100%{transform:none;opacity:1}}

/* ==========================================================================
   Home Screen app (08 Oct): opened from the Home Screen, Resonate runs full
   screen under the status bar and above the home indicator. The boards already
   leave ~50px at the top for the status bar; this only adds what a notch or
   Dynamic Island needs beyond that. In a Safari tab the insets are 0.
   ========================================================================== */
@supports (padding:max(0px)){
  html[data-theme] .screen{padding-top:max(12px,calc(env(safe-area-inset-top) - 16px))}
  html[data-theme] .page:not(:has(.v2-phero)){padding-top:max(42px,calc(env(safe-area-inset-top) + 6px))}
  html[data-theme] .page:has(.v2-phero){padding-top:max(22px,env(safe-area-inset-top))}
  .v2-fp{padding-top:max(48px,calc(env(safe-area-inset-top) + 8px))}
  #v2open .v2-top{padding-top:max(50px,calc(env(safe-area-inset-top) + 8px))!important}
  html[data-theme] #tabs{bottom:max(22px,calc(env(safe-area-inset-bottom) + 4px))}
  .v2-fpbar,.v2-float{bottom:max(22px,calc(env(safe-area-inset-bottom) + 4px))}
  html[data-theme] #search{padding-top:max(50px,calc(env(safe-area-inset-top) + 8px))}
  #onboard .ob{padding-top:max(14px,calc(env(safe-area-inset-top) - 10px))}
  #toast{top:max(14px,env(safe-area-inset-top))}
}
/* Increased contrast (Settings > Accessibility > Increase Contrast): darker secondary text, firmer lines */
@media (prefers-contrast:more){
  html:root[data-theme="light"]{--dim:#2E2A45;--faint:#4A4663;--hair:rgba(27,24,48,.22);--glass:rgba(255,255,255,.86)}
  html:root[data-theme="dark"]{--dim:#D6D2E6;--faint:#C2BEDA;--hair:rgba(255,255,255,.24)}
  .v2-chip,.v2-row,.v2-field{border-color:rgba(var(--ov),.4)!important}
  .v2-sb,.v2-label{color:var(--dim)}
}
@supports (padding:max(0px)){.v2-fpbar.stack{padding-bottom:max(34px,calc(env(safe-area-inset-bottom) + 12px))}}

/* ==========================================================================
   Swipe on reach-out rows (08 Oct, round 2): right to write, left for not today
   ========================================================================== */
.v2-swipe{position:relative;border-radius:30px;touch-action:pan-y}
.v2-swipe *{touch-action:pan-y}
.v2-swipe>.v2-row{position:relative;z-index:1}
.v2-swipe.on>.v2-row{will-change:transform}   /* a layer only while a row is being dragged (perf, 10 Oct) */
.v2-swipebg{position:absolute;inset:0;border-radius:30px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);opacity:0;transition:opacity .15s}
.v2-swipe.on .v2-swipebg{opacity:1}
.v2-swipebg span{display:flex;align-items:center;gap:8px;opacity:.55;transform:scale(.92);transition:opacity .15s,transform .2s cubic-bezier(.23,1,.32,1)}
.v2-swipe[data-dir="r"] .v2-swipebg{background:var(--ink);color:var(--onInk)}
.v2-swipe[data-dir="l"] .v2-swipebg{background:var(--disc3);color:var(--ink)}
.v2-swipe[data-dir="r"] .v2-swipebg .n,.v2-swipe[data-dir="l"] .v2-swipebg .w{visibility:hidden}
.v2-swipe.armed .v2-swipebg span{opacity:1;transform:none}
.v2-swipe.on>.v2-row{box-shadow:0 6px 20px rgba(27,24,48,.12)}
html[data-theme="light"] .v2-swipe>.v2-row{background:#FFF4EC}
#page .v2-swipe>.v2-row{background:var(--sheet)}
/* the undo bar: above the tab bar, one at a time */
#v2undo{position:absolute;left:16px;right:16px;bottom:calc(max(22px,env(safe-area-inset-bottom) + 4px) + 78px);z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:6px 6px 6px 20px;border-radius:26px;background:var(--ink);color:var(--onInk);font:500 var(--t-meta) var(--sans,'Figtree',sans-serif);box-shadow:0 10px 30px rgba(27,24,48,.25);opacity:0;transform:translateY(12px) scale(.98);pointer-events:none;transition:opacity .2s,transform .3s cubic-bezier(.23,1,.32,1)}
#v2undo.on{opacity:1;transform:none;pointer-events:auto}
#v2undo button{appearance:none;border:0;cursor:pointer;min-height:40px;padding:0 18px;border-radius:20px;background:rgba(255,255,255,.14);color:inherit;font:600 var(--t-meta) var(--sans,'Figtree',sans-serif)}
#app:has(#page.open) #v2undo{bottom:max(22px,calc(env(safe-area-inset-bottom) + 4px))}
@media (prefers-reduced-motion:reduce){#v2undo{transform:none}}

/* Your month in people */
html[data-theme] #page.v2recap{background:var(--ground);background-repeat:no-repeat;background-attachment:local}
.v2-rcart{position:relative;height:300px;margin:6px -20px 0}
.v2-rcart>i{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%)}
.v2-rcart .r1{width:290px;height:290px;background:var(--disc1)}
.v2-rcart .r2{width:200px;height:200px;background:var(--disc2)}
.v2-rcart .r3{width:120px;height:120px;background:var(--disc3)}
.v2-rcn{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center}
.v2-rcn b{font:400 var(--t-title)/1 var(--serif);font-variant-numeric:tabular-nums}
.v2-rcn em{font-style:normal;font-size:var(--t-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.v2-rcface{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;transform:translate(var(--x),var(--y));border:2px solid var(--bronze);border-radius:50%;background:var(--paper);color:var(--glow);font:400 var(--t-meta) var(--serif);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;animation:v2rcin .5s cubic-bezier(.23,1,.32,1) var(--d) backwards}
@keyframes v2rcin{from{opacity:0;transform:translate(calc(var(--x) * .6),calc(var(--y) * .6)) scale(.9)}}
.v2-rcstats{margin-top:4px}
.v2-rcstats b{font:400 var(--t-name)/1 var(--serif)!important;font-variant-numeric:tabular-nums}
html[data-theme] .v2-rcstats{background:var(--glass);border-radius:26px;padding:4px 0}
.v2-rccal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;justify-items:center;background:var(--glass);border-radius:26px;padding:14px 12px}
.v2-rccal b{font-size:var(--t-label);font-weight:600;color:var(--dim);padding-bottom:2px}
.v2-rccal i{width:26px;height:26px;border-radius:50%;background:rgba(var(--ov),.07)}
.v2-rccal i.on{background:var(--bronze);box-shadow:0 0 0 3px rgba(var(--bronzeRGB),.18)}
.v2-rccal i.pad{background:none}
#page.v2recap .v2-lines .v2-line{gap:12px}
#page.v2recap .v2-line .v2-rowmain{flex:1}
@media (prefers-reduced-motion:reduce){.v2-rcface{animation:none}}

/* Sky colours (You > Sky colours): Today and the opening flow follow the time of day, light mode only */
html[data-theme="light"][data-sky="morning"]{--sky0:#FFE3CC;--sky1:#FFD3B0;--sky2:#FFBF92;--sky3:#F9A878}
html[data-theme="light"][data-sky="day"]{--sky0:#FFEBD2;--sky1:#FFE0B5;--sky2:#FFD08E;--sky3:#F7BC6A}
html[data-theme="light"][data-sky="evening"]{--sky0:#FFDDD6;--sky1:#FFC9C0;--sky2:#FBB1A8;--sky3:#F2958E}
html[data-theme="light"][data-sky="night"]{--sky0:#ECE3F7;--sky1:#DED2F3;--sky2:#CDBDEE;--sky3:#B9A6E6}
html[data-theme="light"][data-sky] #s-signal,html[data-theme="light"][data-sky] #v2open{--void:var(--sky0);--voidRGB:255,240,235;--disc1:var(--sky1);--disc2:var(--sky2);--disc3:var(--sky3);
  --ground:var(--sky0)}
html[data-theme="light"][data-sky] #s-signal{background-color:var(--sky0)}
html[data-theme="light"][data-sky] .v2-swipe>.v2-row{background:color-mix(in srgb,#fff 62%,var(--sky0))}
html[data-theme="light"] .v2-swipe>.v2-row{background:color-mix(in srgb,#fff 62%,var(--void))}

/* How often dial */
.v2-dialwrap{padding:4px 4px 6px}
.v2-dial{position:relative;width:280px;height:280px;margin:14px auto 0}
.v2-dial svg{display:block}
.v2-dial .trk{fill:none;stroke:rgba(var(--ov),.12);stroke-width:14;stroke-linecap:round}
.v2-dial .val{fill:none;stroke:var(--bronze);stroke-width:14;stroke-linecap:round}
.v2-dial line{stroke:rgba(var(--ov),.25);stroke-width:2;stroke-linecap:round}
.v2-dial line.on{stroke:var(--bronze)}
.v2-dial .knob{fill:var(--paper);stroke:var(--ink);stroke-width:3;filter:drop-shadow(0 3px 8px rgba(27,24,48,.2))}
.v2-dial .endl{font:600 11px var(--sans,'Figtree',sans-serif);fill:var(--dim);letter-spacing:.04em}
.v2-dial svg{overflow:visible}
.v2-dialc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:0 70px}
.v2-dialc b{font:400 var(--t-name)/1.05 var(--serif)}
.v2-dialc span{font-size:var(--t-label);color:var(--dim);margin-top:6px}
.v2-dialhit{position:absolute;inset:0;border-radius:50%;cursor:grab;touch-action:none;outline:none}
.v2-dialhit:focus-visible{box-shadow:0 0 0 3px rgba(var(--bronzeRGB),.35)}
.v2-dialbtns{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}
.v2-dialbtns .v2-ib{font:500 var(--t-name)/1 var(--sans,'Figtree',sans-serif)}
.v2-dialbtns .v2-sb{text-align:center;margin:0}

/* Person page: the three discs are drawn by the hero itself; drop the app-wide ground circles so there is no half circle behind them (board: built-person-scroll) */
html[data-theme] #page:has(.v2-phero){background-image:none}
/* opened orbit: the big outer disc overflows the svg and was painting over the "Show people" / "Group by tie" link, clipping its text */
html[data-theme] .v2-open [data-density]{position:relative;z-index:2}

/* Event room: the same clean orbit in every state; early/hidden/closed say so in the centre */
.v2-erc b.sm{font-size:var(--t-name);letter-spacing:-.01em}
.v2-erc em{text-align:center;line-height:1.15;max-width:78px}
.v2-erorb.quiet .d1,.v2-erorb.quiet .d2,.v2-erorb.quiet .d3{opacity:.82}
.v2-ernote.early{background:rgba(var(--ov),.045);border-radius:18px;padding:12px 14px;margin:0 0 10px;font-size:var(--t-meta);line-height:1.35}
.v2-ernote.early b{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:var(--t-hook);display:block;margin-bottom:2px}

/* Opening flow ("Due a note"): the discs are sized to the space they have and sit under the text; long summaries wrap
   and clamp so the Write button always keeps a gap above it */
#v2open{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
#v2open .v2-top,#v2open .v2-greet,#v2open .v2-dots,#v2open .v2-flowtxt,#v2open .v2-flowbtns{position:relative;z-index:2;flex:none}
#v2open .v2-ripple{flex:1 1 auto;min-height:190px;container-type:size;overflow:visible;z-index:0}
#v2open .v2-ripple .r1{width:min(400px,104vw,100cqh);height:min(400px,104vw,100cqh)}
#v2open .v2-ripple .r2{width:calc(min(400px,104vw,100cqh)*.69);height:calc(min(400px,104vw,100cqh)*.69)}
#v2open .v2-ripple .r3{width:calc(min(400px,104vw,100cqh)*.39);height:calc(min(400px,104vw,100cqh)*.39)}
#v2open .v2-flowtxt{min-height:0;margin-top:14px}
#v2open .v2-bigname{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-size:clamp(34px,11.5vw,46px)}
#v2open .v2-flowtxt .v2-ital{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:clamp(18px,5.4vw,21px)}
#v2open .v2-flowbtns{margin-top:20px}
#v2open .v2-sat{left:calc(50% + var(--xp));top:calc(50% + var(--yp));transform:translate(-50%,-50%)}

/* Club page: same room layout as an event room */
#community .v2-er{padding:48px 0 0;min-height:100%;display:flex;flex-direction:column}
#community .v2-ertop{padding:0 24px;position:relative;z-index:1}
#community .v2-ertop .v2-ib{position:absolute;left:12px;top:0}
#community .v2-ertop .v2-label{display:block;padding-top:56px}
#community .v2-ertop h1{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:var(--t-title);line-height:1;letter-spacing:-.015em;margin:8px 0 0}
.v2-erdot.anon{background:rgba(255,248,240,.7);border-style:solid;border-width:1.5px;border-color:rgba(184,79,16,.35)}
.v2-clmeta{font-size:var(--t-meta);color:var(--dim);padding-top:8px}
.v2-clblurb{font:400 var(--t-hook)/1.25 var(--serif);font-style:italic;color:var(--dim);margin:8px 0 0}
.v2-clwait{display:flex;align-items:center;gap:6px;width:100%;appearance:none;border:0;background:rgba(var(--ov),.045);border-radius:18px;padding:12px 14px;margin:0 0 12px;font:inherit;font-size:var(--t-meta);color:var(--glow);cursor:pointer;text-align:left}
.v2-clwait b{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:var(--t-hook)}
.v2-clwait span{margin-left:auto;color:#3B2CC4;font-weight:600}
#community .v2-erbar{position:sticky;bottom:22px}
@media (max-height:680px){#v2open .v2-ripple{min-height:130px}#v2open .v2-flowtxt{margin-top:8px}#v2open .v2-flowtxt .v2-ital{-webkit-line-clamp:2}}

/* ================================================================ audit build, Phase 0 (10 Oct 2026) */
/* keeping close = an accent ring around the avatar (was a sparkle badge; the sparkle now means AI text only) */
.rz-avw.rz-close{position:relative}
.rz-closering{position:absolute;inset:-3px;border-radius:50%;box-shadow:0 0 0 2px var(--bronze);pointer-events:none}
.rz-closechip{background:rgba(var(--bronzeRGB),.12);color:var(--glow)}
.rz-closechip svg{color:var(--bronze)}
/* one bottom-padding rule for every scroller that sits under a floating bar (WCAG 2.4.11): the bar's height + the safe area + 16 px */
:root{--v2bar:90px;--v2barpad:calc(var(--v2bar) + env(safe-area-inset-bottom,0px) + 16px)}
html[data-theme] .screen:not(.v2-open),html[data-theme] #page{padding-bottom:max(132px,calc(var(--v2barpad) + 24px))}
html[data-theme] .screen,html[data-theme] #page,html[data-theme] #sheet,html[data-theme] #search,html[data-theme] .v2-spanel,html[data-theme] #onboard,#v2open{scroll-padding-bottom:var(--v2barpad);scroll-padding-top:72px}
html[data-theme] #sheet.v2-full .v2-fp{padding-bottom:16px}
/* 44 px hit areas */
html[data-theme] .sig-more,html[data-theme] .v2-ib{min-width:44px;min-height:44px}
html[data-theme] .v2-link{min-height:44px;min-width:44px;justify-content:center}
html[data-theme] .v2-chip,html[data-theme] .chip,html[data-theme] .pill{min-height:44px}
html[data-theme] .proto.protobtn{min-height:44px}
html[data-theme] .switch{height:44px;background:none!important;box-shadow:none!important}
html[data-theme] .switch::before{content:"";position:absolute;left:0;right:0;top:6px;height:32px;border-radius:999px;background:rgba(var(--ov),.25);transition:background-color .2s}
html[data-theme] .switch[aria-checked="true"]::before{background:var(--ink)}
html[data-theme] .switch::after{top:11px}
html[data-theme] .seg>button,html[data-theme] .v2-modeseg>button{min-height:44px;min-width:44px}
html[data-theme] .v2-modeseg{height:auto}
html[data-theme] #s-log .chip,html[data-theme] #s-log .v2-ex button{min-height:44px}
.v2-sfield input{align-self:stretch;min-height:44px}
html[data-theme] .listrow{min-height:44px}
html[data-theme] #s-orbit .seg.v2-modeseg button{width:44px;height:44px;border-radius:22px}
html[data-theme] #sheet,html[data-theme] #onboard{scroll-padding-bottom:calc(150px + env(safe-area-inset-bottom,0px) + 16px)}
html[data-theme] #s-discover .row,html[data-theme] #s-discover .pill,html[data-theme] .v2-bub{min-height:44px}
html[data-theme] .v2-bub.v2-pb{width:44px;height:44px}
html[data-theme] #s-discover .pill{min-height:44px!important}

/* ================================================================ audit build, Phase 1 · Today (M1) */
.v2-ttop{display:flex;justify-content:space-between;align-items:center;margin-top:34px;min-height:44px}
.v2-ttop .v2-when{letter-spacing:.09em;font-size:var(--t-label)}
.v2-ttop .v2-brandr{display:flex;gap:8px;align-items:center}
#s-signal .v2-greet{margin-top:6px}
#s-signal .v2-ital.dim{font-size:var(--t-hook);margin-top:4px}
.v2-today{margin-top:18px;gap:10px}
.v2-row.v2-hero{flex-direction:column;align-items:stretch;gap:0;padding:18px;border-radius:28px;min-height:0}
.v2-hwho{display:flex;align-items:center;gap:12px;text-align:left;min-height:58px;width:100%}
.v2-hname{display:block;font:400 var(--t-name)/1.05 var(--serif);color:var(--glow);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-hook{font:400 var(--t-name)/1.18 var(--serif);color:var(--glow);margin:14px 0 6px;text-wrap:pretty;overflow-wrap:anywhere}
.v2-prov{font-size:var(--t-meta);color:var(--dim);margin:0 0 2px;line-height:1.4}
.v2-hacts{display:flex;gap:8px;margin-top:14px}
.v2-hacts .grow{flex:1;min-width:0;white-space:normal;line-height:1.2;text-align:center}
.v2-hacts .v2-ib.soft{width:48px;height:48px;background:rgba(var(--ov),.07);border-radius:50%}
.v2-btn.lg{min-height:48px;font-size:var(--t-body);border-radius:24px}
.v2-nottoday{align-self:center;margin-top:6px;color:var(--dim);font-weight:500;font-size:var(--t-meta)}
.v2-row.v2-quiet{padding:12px 10px 12px 14px;min-height:72px}
.v2-row.v2-quiet .v2-sb{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v2-row.v2-quiet .v2-btn.ghost{flex:none}
.v2-seeall{margin-top:8px;align-self:flex-start;gap:4px;display:inline-flex;align-items:center;padding:0 4px}
.v2-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.v2-day{appearance:none;border:0;border-radius:18px;background:var(--glass);min-height:78px;padding:8px 2px 10px;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--glow);cursor:pointer;min-width:0}
.v2-day.off{opacity:.55;cursor:default}
.v2-day .v2-dwd{font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--dim)}
.v2-day b{font:400 var(--t-name)/1.1 var(--serif)}
.v2-dfaces{display:flex;position:relative}
.v2-dcake{position:absolute;right:-7px;bottom:-5px;width:16px;height:16px;border-radius:50%;background:var(--ink);color:var(--onInk);display:grid;place-items:center;font-style:normal;box-shadow:0 0 0 1.5px var(--paper)}
.v2-dfaces i{font-style:normal;width:24px;height:24px;border-radius:50%;background:var(--avbg,#FFE3CC);display:grid;place-items:center;font:400 var(--t-label) var(--serif);box-shadow:0 0 0 1.5px var(--paper)}
.v2-dwhat{font-size:var(--t-label);color:var(--dim);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}
html[data-theme="dark"] .v2-day{background:rgba(255,255,255,.06)}
/* centre tab: a mic glyph instead of a dot; tab labels 12 px */
html[data-theme] #tabs button{font-size:var(--t-label)}
html[data-theme] #tabs button.raised .bub{width:auto;height:auto;background:none;border-radius:0;color:var(--onInk);display:flex}
html[data-theme] #tabs button.raised .bub svg{display:block;width:26px;height:26px;stroke-width:1.8}
html[data-theme] #tabs button.raised[aria-selected="true"] .bub{background:none}
html[data-theme] #tabs .me{font-size:var(--t-label)}
/* Reach out (M2) */
.v2-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:rgba(var(--ov),.06);border-radius:22px;padding:3px;margin-top:16px;min-height:44px}
.v2-seg button{appearance:none;border:0;background:none;border-radius:19px;font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);color:var(--dim);min-height:44px;cursor:pointer}
.v2-seg button[aria-selected="true"]{background:var(--paper);color:var(--glow);box-shadow:0 1px 4px rgba(27,24,48,.1)}
html[data-theme="dark"] .v2-seg button[aria-selected="true"]{background:rgba(255,255,255,.14)}
.v2-hint{margin:14px 4px 8px}
.v2-row.v2-rrow .v2-sb{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v2-row.v2-rrow .v2-btn.ghost{flex:none}
.v2-tolater{margin-top:12px;width:100%}
/* Person (M3) */
.v2-phero.v2-phero2{display:flex;align-items:center;gap:16px;text-align:left;margin-top:8px;padding:0;transform-origin:left center}
.v2-phero2 .v2-pface{flex:none;position:static;transform:none}
.v2-phero2 .v2-pid{min-width:0;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.v2-phero2 .v2-pname{font:400 var(--t-title)/1 var(--serif);margin:0;text-align:left;overflow-wrap:anywhere}
.v2-pties{display:flex;flex-wrap:wrap;gap:6px}
.v2-pties span{font-size:var(--t-meta);font-weight:500;color:var(--glow);padding:4px 10px;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(var(--ov),.18);background:rgba(255,255,255,.45)}
html[data-theme="dark"] .v2-pties span{background:rgba(255,255,255,.06)}
.v2-pstatus{appearance:none;border:0;background:none;display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0;margin-top:6px;font:400 var(--t-meta) var(--sans,'Figtree',sans-serif);color:var(--dim);cursor:pointer;text-align:left}
.v2-pacts{display:flex;gap:8px;align-items:center;margin-top:6px}
.v2-pacts .grow{flex:1}
.v2-pacts .v2-ib.soft{width:48px;height:48px;border-radius:50%;background:rgba(var(--ov),.07);flex:none}
.v2-pacts .v2-btn.soft{flex:none;padding:0 16px}
#page .v2-psheet{background:none;box-shadow:none;margin:14px -4px 0;padding:0 4px;border-radius:0}
.v2-pnext{background:var(--glass);border-radius:22px;padding:16px;box-shadow:inset 3px 0 0 var(--bronze)}
.v2-pnext .v2-label{color:var(--bronzeText)}
.v2-pnt{font:400 var(--t-hook)/1.2 var(--serif);color:var(--glow);margin:6px 0 8px;overflow-wrap:anywhere}
.v2-lock{display:flex;align-items:center;gap:6px;font-size:var(--t-meta);color:var(--faint);margin:8px 0 0}
.v2-lock svg{flex:none}
.v2-know{margin-top:10px;padding:16px;border-radius:22px;background:var(--glass)}
.v2-ksum{appearance:none;border:0;background:none;text-align:left;padding:0;margin:8px 0 2px;font:400 var(--t-body)/1.45 var(--sans,'Figtree',sans-serif);color:var(--glow);min-height:44px;cursor:pointer;overflow-wrap:anywhere}
.v2-krows{display:flex;flex-direction:column;margin-top:6px}
.v2-krow{appearance:none;border:0;background:none;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:4px 0;border-bottom:1px solid var(--hair);text-align:left;cursor:pointer;color:var(--glow);font:inherit}
.v2-krows>:last-child{border-bottom:0}
.v2-kl{font-size:var(--t-meta);color:var(--dim);flex:none}
.v2-kv{font-size:var(--t-meta);text-align:right;min-width:0;overflow-wrap:anywhere;display:flex;align-items:center;gap:8px;justify-content:flex-end}
.v2-kv b{font-weight:600;color:var(--bronzeText)}
.v2-kv a{color:inherit;text-decoration:none}
.v2-kties{margin-top:10px}
.v2-kchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.v2-kmissing{margin-top:12px}
.v2-chip.v2-addchip{gap:6px;padding:0 14px;font-weight:500}
.v2-tiechip{display:inline-flex;align-items:center;border-radius:22px;background:var(--ink);color:var(--onInk);min-height:44px;padding-left:4px;max-width:100%}
.v2-tiechip button:first-child{min-width:0;overflow-wrap:anywhere;text-align:left}
.v2-tiechip button{appearance:none;border:0;background:none;color:inherit;font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);min-height:44px;padding:0 6px 0 12px;cursor:pointer}
.v2-tiechip button+button{min-width:44px;padding:0;display:grid;place-items:center;opacity:.8}
.v2-ksince{margin-top:10px}
.v2-shared{margin:2px 4px 10px}
.v2-inl{appearance:none;border:0;background:none;padding:0;font:inherit;color:var(--glow);text-decoration:underline;text-underline-offset:3px;min-height:44px;cursor:pointer}
.v2-talks{display:flex;flex-direction:column;gap:8px}
.v2-talk{background:var(--glass);border-radius:18px;padding:12px 16px}
.v2-talk p{margin:2px 0 0;font-size:var(--t-meta);line-height:1.45;overflow-wrap:anywhere}
.v2-seg button{display:flex;align-items:center;justify-content:center}
html[data-theme="light"] .v2-seg{background:rgba(27,24,48,.06)}
html[data-theme="light"] .v2-seg button[aria-selected="true"]{background:#fff}
.v2-phero.v2-phero2{flex-direction:row}
.v2-kmissing:not(.all)>.v2-addchip:nth-child(n+5):not(.v2-kmorebtn){display:none}
#page.v2cream .v2-pbar::before{background:rgba(255,248,240,.92)}
html[data-theme="dark"] #page.v2cream .v2-pbar::before{background:rgba(var(--voidRGB),.92)}
/* Log review (M6): Save pinned to the bottom */
#s-log .v2-rv .v2-rvact{position:sticky;bottom:0;z-index:4;margin:18px -20px -40px;padding:18px 20px calc(18px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,rgba(246,242,234,0),#F6F2EA 26%)}
html[data-theme="dark"] #s-log .v2-rv .v2-rvact{background:linear-gradient(to bottom,rgba(var(--voidRGB),0),var(--void) 26%)}
#s-log:has(.v2-rv){scroll-padding-bottom:130px}
/* 13 Oct walk-through fix 2: Save stays pinned while the details are open too (it used to drop to the foot of a 2,600px page) */
#s-log .v2-rv .v2-edit{padding-bottom:12px}
#s-log .v2-rv .v2-rvtop .v2-discard{flex:none;margin-left:auto;margin-right:4px;min-height:44px;padding:0 10px;font:600 var(--t-meta) var(--sans,'Figtree',sans-serif);color:var(--dim);text-decoration:underline;text-underline-offset:4px;background:transparent;border:0;cursor:pointer;width:auto}
#s-log .v2-rv .v2-rvtop .v2-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ================================================================ audit build, Phase 2 · Discover (M5) */
.v2-live{margin-top:16px;border-radius:24px;background:var(--void);padding:16px;box-shadow:inset 0 0 0 1px rgba(var(--ov),.08)}
.v2-livelbl{display:flex;align-items:center;gap:8px}
.v2-livelbl i{width:8px;height:8px;border-radius:50%;background:#1F7A4D;flex:none}
.v2-livelbl .v2-label{color:var(--glow)}
.v2-livename{font:400 var(--t-name)/1.05 var(--serif);margin-top:6px;overflow-wrap:anywhere}
.v2-liverow{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}
.v2-ans{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-radius:22px;background:var(--glass);padding:10px 12px 10px 16px}
.v2-ans .v2-rowtxt{flex:1 1 140px;min-width:0}
.v2-acc{color:var(--bronzeText)!important}
.v2-anst{display:block;font-weight:600;font-size:var(--t-meta);margin-top:2px;overflow-wrap:anywhere}
.v2-ansb{display:flex;gap:6px;flex:none;margin-left:auto}
.v2-ansb .v2-btn{padding:0 12px}
.v2-cstrip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:2px 20px 4px;scroll-padding-inline:20px}
.v2-cclub{appearance:none;border:0;flex:none;width:150px;text-align:left;border-radius:22px;background:var(--glass);padding:14px;display:flex;flex-direction:column;gap:4px;color:var(--glow);cursor:pointer;min-height:96px}
.v2-cname{font:400 var(--t-hook)/1.05 var(--serif);overflow-wrap:anywhere}
.v2-cnext{font-size:var(--t-meta);color:var(--glow);margin-top:auto}
.v2-allcomm{margin-top:10px;width:100%}
.v2-thru{padding:16px;border-radius:22px;background:var(--glass)}
.v2-slots{display:flex;align-items:center;gap:6px}
.v2-slot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none}
.v2-slot.empty{border:1.5px dashed rgba(var(--ov),.35)}
.v2-slots .v2-sb{margin:0 0 0 6px}
.v2-thrut{font-size:var(--t-meta);line-height:1.45;margin:10px 0 12px}
.v2-btn.block{width:100%}
html[data-theme="dark"] .v2-live{background:rgba(255,255,255,.06)}
/* Club page (Phase 2): real members as the hero, next event, Leave in ••• */
#community .v2-cl2 .v2-ertop .v2-cltopbar{position:absolute;left:12px;right:12px;top:0;display:flex;justify-content:space-between}
#community .v2-cl2 .v2-ertop .v2-cltopbar .v2-ib{position:static}
.v2-clfaces{display:flex;align-items:center;margin-top:14px;gap:0}
.v2-clface{width:36px;height:36px;border-radius:50%;background:var(--paper);display:grid;place-items:center;font:400 var(--t-meta) var(--serif);color:var(--glow);box-shadow:0 0 0 2px var(--void);margin-right:-8px;position:relative}
.v2-clfaces .v2-sb{margin:0 0 0 18px}
.v2-clfaces .v2-clface+.v2-sb{margin-left:18px}
.v2-clfaces>.v2-sb:first-child{margin-left:0}
.v2-clnext{margin-top:16px;border-radius:22px;background:var(--glass);padding:14px 16px}
.v2-clnextt{font:400 var(--t-name)/1.1 var(--serif);margin:4px 0 2px;overflow-wrap:anywhere}
.v2-clrsvp{display:flex;gap:8px;margin-top:10px}
.v2-clrsvp .v2-btn{flex:1;min-width:0;white-space:normal;line-height:1.2;text-align:center}
.v2-cl2 .v2-ersheet{margin-top:18px}
.v2-clev{border-radius:22px;background:var(--glass);padding:14px 16px}
.v2-clevt{font-size:var(--t-body);font-weight:600;margin:0}
/* club list cards: no decorative discs (orbit motif limited to the People map, the room count and Log listening) */
.v2-clubart{display:none}
.v2-clubtx{max-width:100%}
/* People (M4) */
.v2-oseg{margin-top:14px}
.v2-legend{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--t-label);color:var(--dim);margin:2px 0 4px}
.v2-legend i{width:8px;height:8px;border-radius:50%;background:var(--bronze);flex:none}
.v2-ocardw+.v2-ocardw{margin-top:14px}
.v2-tierows,.v2-emptyorb{border-radius:22px;background:var(--glass);padding:0 14px}
.v2-emptyorb{margin-top:10px;width:100%}
#s-orbit .v2-pane{padding-bottom:110px}
#community .v2-cl2 .v2-clnext .v2-label{padding-top:0}
/* one tie glyph everywhere (was a dashed orange circle in search) */
html[data-theme] .v2-place{border:0;background:var(--paper);box-shadow:inset 0 0 0 1px rgba(var(--ov),.16);color:var(--glow)}
/* Log (Phase 1/2): the waveform and the discs show only while listening (idle had a static waveform that read as loading) */
html[data-theme] #s-log .bars{visibility:hidden}
html[data-theme] #s-log .listening .bars{visibility:visible}
#s-log .mic i{transition:opacity .3s;opacity:0}
#s-log .listening .mic i{opacity:1}
#s-log [data-opensearch]{display:none}
.v2-clnext .v2-clev1{background:none;padding:0;margin-top:4px}
.v2-clnext .v2-clev1 .v2-clevt{font:400 var(--t-name)/1.1 var(--serif)}
/* Communities (in Discover): one heading style */
#s-discover .sechead h2{font:600 var(--t-meta)/1.3 var(--sans,'Figtree',sans-serif);color:var(--dim)}
.v2-seg button[aria-pressed="true"]{background:var(--paper);color:var(--glow);box-shadow:0 1px 4px rgba(27,24,48,.1)}
html[data-theme="light"] .v2-seg button[aria-pressed="true"]{background:#fff}
html[data-theme="dark"] .v2-seg button[aria-pressed="true"]{background:rgba(255,255,255,.14)}
.v2-hhead{display:flex;align-items:flex-start;gap:4px}
.v2-hhead .v2-hwho{flex:1;min-width:0}
.v2-hhead .v2-sb{overflow-wrap:anywhere}   /* a long tie name wraps instead of pushing Today sideways (regression-v2, 1,000 people at 320 px, 200% text) */
.v2-trip{margin-top:10px;width:100%}
.v2-lines .v2-line .v2-rowmain{flex:1;min-width:0;display:flex;align-items:center;gap:12px;text-align:left;background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
/* Phase 3: event follow-up, import filter, learned cadence */
.v2-fu{margin-top:14px;padding:14px 16px;border-radius:22px;background:var(--glass)}
.v2-fuhead{display:flex;justify-content:space-between;align-items:center;gap:10px}
.v2-fufaces{display:flex}
.v2-fufaces i{font-style:normal;width:30px;height:30px;border-radius:50%;background:var(--avbg,#FFE3CC);display:grid;place-items:center;font:400 var(--t-meta) var(--serif);box-shadow:0 0 0 2px var(--paper);margin-left:-8px}
.v2-fut{font-size:var(--t-body);line-height:1.4;margin:8px 0 10px}
.v2-fuacts{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.v2-fuacts .v2-textbtn{color:var(--dim);font-weight:500}
.v2-filterrow{margin-top:14px;width:100%;border-radius:22px;background:var(--glass);padding:0 14px}
.v2-pick{width:100%}
.v2-check{width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px rgba(var(--ov),.3);color:var(--onInk)}
.v2-pick[aria-checked="true"] .v2-check{background:var(--ink);box-shadow:none}
.v2-pick[aria-disabled="true"]{opacity:.55}
.v2-cadoffer{margin-top:8px;border-radius:18px;background:var(--glass);padding:12px 14px}
.v2-cadoffer p{margin:0 0 8px;font-size:var(--t-meta)}
.v2-already{margin:0 4px 8px}.v2-already summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.v2-obmore summary,#onboard .v2-obmore summary{min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--bronzeText);cursor:pointer}
.v2-lines .v2-line:has(> .v2-rowmain){flex-wrap:wrap}
.v2-lines .v2-line:has(> .v2-rowmain) > .v2-rowmain{flex:1 1 9em}
[data-simjoin]{max-width:100%;white-space:normal;height:auto;min-height:44px;padding-block:8px}   /* admin demo button wraps at large text */
html[data-theme] #tabs button .tl{font-size:clamp(12px,var(--t-label),15px);white-space:nowrap}   /* at 200% text the labels grow less than body text so five still fit */
/* shown only until the app's first paint replaces it (slow networks) */
.v2-boot{margin:120px 0 0;text-align:center;font:400 var(--t-hook)/1.3 var(--serif);color:var(--dim)}
@media (prefers-reduced-motion:no-preference){.v2-boot{animation:v2bootin .6s ease .4s backwards}@keyframes v2bootin{from{opacity:0}}}
/* M3: the person actions sit in the page; the old floating-bar look (.v2-pfloat) no longer applies */
.v2-pacts.v2-pfloat{position:static;height:auto;padding:0;background:none;box-shadow:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;margin-left:0;margin-right:0}
.v2-pacts.v2-pfloat .v2-btn{min-height:48px;border-radius:24px;font-size:var(--t-body)}
.v2-pacts.v2-pfloat .v2-ib{width:48px;height:48px;border-radius:50%}
.v2-inl{min-width:44px;display:inline-flex;align-items:center;justify-content:center}
/* Signal v2: the occasional "good pick?" question on Today's hero */
.v2-probe{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line, rgba(27,24,48,.08))}
.v2-probe .v2-textbtn{min-height:44px;font-weight:600}

/* ---- 11 Oct: onboarding on paper, like Discover (light only; dark keeps its ground) ---- */
html[data-theme="light"] #onboard{background:var(--paper);background-image:none}
html[data-theme="light"] #onboard .v2-field,html[data-theme="light"] #onboard .field{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
html[data-theme="light"] #onboard .opt,html[data-theme="light"] #onboard .card,html[data-theme="light"] #onboard .bubble{background:#fff;box-shadow:inset 0 0 0 1px var(--line);-webkit-backdrop-filter:none;backdrop-filter:none}
html[data-theme="light"] #onboard .opt[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--ink)}
html[data-theme="light"] #onboard .ob-foot{background:linear-gradient(to top,var(--paper) 72%,rgba(255,248,240,0))}
html[data-theme="light"] #onboard .v2-chip:not(.on){background:#fff}

/* ---- 11 Oct: person hero, v1's centred layout in the v2 style. Face on hairline rings, drift arc on the face,
   star badge + "Keeping close" chip for close, ties underneath. ---- */
.v2-phero.v2-phero3{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 0 0;margin-top:-4px;transform-origin:center top}
.v2-phero3 .v2-prings{position:absolute;left:50%;top:86px;width:0;height:0;pointer-events:none}
.v2-phero3 .v2-prings i{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px rgba(var(--bronzeRGB),.16)}
.v2-phero3 .v2-prings i:nth-child(1){width:164px;height:164px;box-shadow:inset 0 0 0 1px rgba(var(--bronzeRGB),.2)}
.v2-phero3 .v2-prings i:nth-child(2){width:236px;height:236px;box-shadow:inset 0 0 0 1px rgba(var(--bronzeRGB),.12)}
.v2-phero3 .v2-prings i:nth-child(3){width:316px;height:316px;box-shadow:inset 0 0 0 1px rgba(var(--bronzeRGB),.07)}
.v2-phero3 .v2-pface{position:relative;left:auto;top:auto;transform:none;display:flex;z-index:1}
.v2-phero.v2-phero3 .v2-pname{position:relative;margin:16px 0 8px;font:400 var(--t-title)/1.02 var(--serif);text-align:center;overflow-wrap:anywhere;max-width:100%}
.v2-phero3 .rz-closechip{position:relative;padding:6px 13px;font-size:var(--t-meta);background:var(--bronze);color:var(--onBronze,#fff)}
.v2-phero3 .rz-closechip svg{color:currentColor}
.v2-ptie{position:relative;margin:8px 0 0;font-size:var(--t-meta);color:var(--dim);overflow-wrap:anywhere}
.v2-pstatus.v2-pstatus3{display:flex;margin:6px auto 0;justify-content:center;text-align:center}
.v2-phero3 .rz-closebadge{right:-2px;bottom:-2px;box-shadow:0 0 0 3px var(--paper,#FFF8F0)}

/* ==========================================================================
   Laptop (12 Oct 2026). From 900px the phone column becomes a desktop app:
   left sidebar (#v2side + #tabs), #app as the stage in the middle with one
   readable centre column, a right rail (#v2rail) from 1200px, and bottom
   sheets as centred dialogs. Under 900px none of this applies.
   ========================================================================== */
#v2side,#v2rail{display:none}
@media (min-width:900px){
  /* 13 Oct walk-through: the hero card and its dark button don't stretch across the whole centre column */
  .v2-desk #s-signal .v2-hero{max-width:560px}
  :root{--sb:84px;--rail:0px;--col:700px}
  html[data-theme] body{background:var(--paper,var(--void))}
  html[data-theme] #app{max-width:none;margin:0 var(--rail) 0 var(--sb);box-shadow:none}

  /* the sidebar: brand on top, the tabs, then Search / Add someone / Settings */
  #v2side{display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:var(--sb);z-index:40;box-sizing:border-box;
    padding:26px 12px 18px;background:var(--paper,var(--void));border-right:1px solid var(--hair,var(--line))}
  .v2d-brand{display:flex;align-items:center;justify-content:center;height:44px;border-radius:14px;text-decoration:none}
  .v2d-brand .wm{display:none;height:23px;width:auto}
  html[data-theme="dark"] .v2d-brand .wm{filter:invert(1) hue-rotate(180deg) brightness(1.4)}
  .v2d-extra{margin-top:auto;display:flex;flex-direction:column;gap:2px}
  .v2d-row{display:flex;align-items:center;justify-content:center;gap:14px;height:48px;padding:0 12px;border-radius:14px;color:var(--dim);font-size:15px;font-weight:500;width:100%}
  .v2d-row span{display:none}

  html[data-theme] #tabs{position:fixed;left:12px;top:96px;right:auto;bottom:auto;width:calc(var(--sb) - 24px);height:auto;z-index:41;
    display:flex;flex-direction:column;gap:2px;padding:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  html[data-theme] #app:has(#s-orbit.v2-open:not([hidden])) #tabs,#app:has(#s-orbit.v2-open:not([hidden])) #tabs{display:flex}
  html[data-theme] #tabs .lens{display:none}
  html[data-theme] #tabs button{flex:none;flex-direction:row;justify-content:center;gap:14px;height:48px;padding:0 12px;border-radius:14px;
    font-size:15px;font-weight:500;color:var(--dim);transition:background .15s,color .15s}
  html[data-theme] #tabs button .tl{display:none;line-height:1}
  html[data-theme] #tabs button[aria-selected="true"]{background:rgba(var(--ov),.07);color:var(--glow);font-weight:600}
  html[data-theme] #tabs .me{width:26px;height:26px;flex:none}
  /* Log a talk: the one dark button, last in the list */
  html[data-theme] #tabs button.raised{order:9;margin:14px 0 0;height:50px;border-radius:25px;background:var(--ink);color:var(--onInk);box-shadow:0 4px 14px rgba(27,24,48,.16)}
  html[data-theme] #tabs button.raised .bub{width:auto;height:auto;margin:0;background:none;border-radius:0;box-shadow:none;color:inherit;display:flex}
  html[data-theme] #tabs button.raised .bub svg{display:block}
  html[data-theme] #tabs button.raised[aria-selected="true"]{box-shadow:0 0 0 3px rgba(var(--bronzeRGB),.35)}
  html[data-theme] #tabs button.raised[aria-selected="true"] .bub{background:none}
  @media (hover:hover) and (pointer:fine){
    html[data-theme] #tabs button:not(.raised):hover,.v2d-row:hover{background:rgba(var(--ov),.05);color:var(--glow)}
    html[data-theme] #tabs button.raised:hover{filter:brightness(1.15)}
    .v2-row:hover,.v2d-rrow:hover{background:rgba(var(--ov),.025)}
  }
  html[data-theme] .fade{display:none}
  html[data-theme] #tabs button .tl{font-size:15px}
  /* the sidebar already has Search and You, so Today's top row drops its copies */
  #s-signal .v2-brandr [data-opensearch],#s-signal .v2-brandr [data-gotab="you"]{display:none}
  /* the orbit map in a People card stays a comfortable size on a wide column */
  .v2-ocard>div>svg{max-width:420px;height:auto;margin-left:auto;margin-right:auto;display:block}
  html[data-theme] #search{background:var(--paper,var(--ground))}
  /* an open orbit: the map keeps its square shape at a sensible size instead of the column's full width */
  .v2-open svg[role="img"]{width:min(100%,560px)!important;height:auto;margin:0 auto}
  .v2-open .v2-pane{margin-left:0;margin-right:0}

  /* the stage: one centre column on every screen, page and full page */
  html[data-theme] .screen{padding:28px max(24px,calc((100% - var(--col))/2)) 64px}
  html[data-theme] #page{padding-left:max(24px,calc((100% - var(--col))/2));padding-right:max(24px,calc((100% - var(--col))/2))}
  html[data-theme] #app:has(#page.open) .screen:not([hidden]){transform:none;filter:none}
  .v2-fp{padding:40px max(28px,calc((100% - 640px)/2)) 0}
  html[data-theme] #search{padding:40px max(24px,calc((100% - var(--col))/2)) 0}
  html[data-theme] #community,html[data-theme] #eroom{padding-left:max(0px,calc((100% - var(--col))/2));padding-right:max(0px,calc((100% - var(--col))/2))}
  .screen.v2-edge::before,#page.v2-edge:not(:has(.v2-pbar))::before{margin-left:calc(-1 * max(24px,calc((100% - var(--col))/2)));margin-right:calc(-1 * max(24px,calc((100% - var(--col))/2)))}
  /* carousels on a wide column show more than one card */
  html[data-theme] .carousel>.card{flex-basis:calc(50% - 6px)}

  /* bottom sheets become centred dialogs */
  html[data-theme] #scrim{position:fixed;inset:0;z-index:63}
  html[data-theme] #sheet:not(.v2-full){position:fixed;left:50%;top:50%;right:auto;bottom:auto;width:min(560px,calc(100vw - 48px));max-height:min(86vh,860px)!important;
    border-radius:28px;padding:26px 28px 28px;opacity:0;transform:translate(-50%,-47%) scale(.98);box-shadow:0 24px 70px rgba(27,24,48,.22);
    transition:transform .18s cubic-bezier(.4,0,.6,1),opacity .18s,visibility 0s linear .18s}
  html[data-theme] #sheet:not(.v2-full).open{opacity:1;transform:translate(-50%,-50%);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .2s,visibility 0s}
  #sheet:not(.v2-full)>.grip{display:none}
  html[data-theme] #sheet.v2-full{box-shadow:none}

  /* onboarding and the invite view take the whole window, like the opener */
  html:has(#onboard:not([hidden])) #v2side,html:has(#onboard:not([hidden])) #v2rail,html:has(#onboard:not([hidden])) #tabs,
  html:has(#invite:not([hidden])) #v2side,html:has(#invite:not([hidden])) #v2rail,html:has(#invite:not([hidden])) #tabs{display:none!important}
  html[data-theme]:has(#onboard:not([hidden])) #app,html[data-theme]:has(#invite:not([hidden])) #app{margin:0}
  #onboard .ob,#invite>*{max-width:600px;margin-left:auto;margin-right:auto}

  /* the rail */
  #v2rail{position:fixed;right:0;top:0;bottom:0;width:var(--rail);z-index:40;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;
    background:var(--paper,var(--void));border-left:1px solid var(--hair,var(--line))}
  .v2d-rin{padding:30px 24px 24px;display:flex;flex-direction:column;min-height:100%;box-sizing:border-box}
  .v2d-rhead{display:flex;align-items:center;justify-content:space-between;min-height:36px;margin-bottom:4px}
  .v2d-rgap{height:22px}
  .v2d-rrow{display:flex;align-items:center;gap:8px;border-radius:16px;margin:0 -8px;padding:0 8px}
  .v2d-rmain{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:9px 0;text-align:left}
  .v2d-rtxt{display:flex;flex-direction:column;min-width:0;gap:2px}
  .v2d-rnm{font-family:var(--serif,"Instrument Serif",Georgia,serif);font-size:19px;line-height:1.1;color:var(--glow)}
  .v2d-rsb{font-size:13px;line-height:1.3;color:var(--dim);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .v2d-rbtn{flex:none;height:34px;padding:0 14px;border-radius:17px;font-size:13px;font-weight:600;color:var(--glow);box-shadow:inset 0 0 0 1px var(--line2);background:var(--glass)}
  .v2d-rnote{font-size:14px;line-height:1.45;color:var(--dim);margin:2px 0 8px}
  .v2d-rcta{display:flex;gap:8px}
  .v2d-rlog{margin-top:24px;display:flex;gap:12px;align-items:flex-start;text-align:left;padding:16px;border-radius:20px;background:var(--glass);box-shadow:inset 0 0 0 1px var(--line);color:var(--glow)}
  .v2d-rlog.first{margin-top:0}
  .v2d-rlog>span{display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.35;color:var(--dim)}
  .v2d-rlog b{font-size:15px;color:var(--glow);font-weight:600}
  .v2d-rfoot{margin-top:auto;padding-top:28px;font-size:12px;line-height:1.7;color:var(--faint)}
  .v2d-rfoot a{color:inherit;text-decoration:none}
  .v2d-rfoot a:hover{text-decoration:underline}
}
@media (min-width:1200px){
  :root{--sb:244px;--rail:340px}
  #v2side{padding:28px 16px 18px}
  #v2rail{display:block}
  .v2d-brand{justify-content:flex-start;padding-left:14px}
  .v2d-brand .wm{display:block}
  .v2d-brand .mk{display:none}
  .v2d-row{justify-content:flex-start}
  .v2d-row span{display:inline}
  html[data-theme] #tabs{left:16px;width:calc(var(--sb) - 32px)}
  html[data-theme] #tabs button{justify-content:flex-start}
  html[data-theme] #tabs button .tl{display:block}
  html[data-theme] #tabs button.raised{justify-content:center}
  html[data-theme] #tabs button.raised .tl{display:block;font-size:15px;font-weight:600;margin:0}
  html[data-theme] #tabs button.raised .tl::after{content:" a talk"}
}
@media (min-width:900px) and (prefers-reduced-motion:reduce){
  html[data-theme] #sheet:not(.v2-full),html[data-theme] #sheet:not(.v2-full).open{transform:translate(-50%,-50%);transition:opacity .2s,visibility 0s}
}

/* ---- Log a talk (12 Oct): listening grows out of the button; Claude's reading shows a loading state, then the final review ---- */
@keyframes v2discIn{from{opacity:0;transform:translate(-50%,-50%) scale(.45)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes v2dotIn{from{transform:translate(-50%,-50%) scale(.92)}to{transform:translate(-50%,-50%) scale(1)}}
@keyframes v2arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes v2skel{from{opacity:.45}to{opacity:1}}
#s-log .listening.v2-in .mic i{animation:v2discIn .52s cubic-bezier(.23,1,.32,1) both,v2pulse 1.6s ease-in-out .52s infinite}
#s-log .listening.v2-in .mic .r2{animation-delay:.06s,.72s}
#s-log .listening.v2-in .mic .r1{animation-delay:.12s,.92s}
#s-log .listening.v2-in .mic .dot{animation:v2dotIn .36s cubic-bezier(.23,1,.32,1) both}
#s-log .listening.v2-in .bars{animation:v2fade .4s .18s both}
.v2-reading .v2-skel{display:grid;gap:14px;margin-top:6px}
.v2-reading .v2-skel i{display:block;height:16px;border-radius:8px;background:rgba(var(--ov),.08);animation:v2skel 1.1s ease-in-out infinite alternate}
.v2-reading .v2-skel i:nth-child(1){width:92%}
.v2-reading .v2-skel i:nth-child(2){width:76%;animation-delay:.15s}
.v2-reading .v2-skel i:nth-child(3){width:58%;animation-delay:.3s}
.v2-rv.v2-arrive{animation:v2arrive .42s cubic-bezier(.23,1,.32,1) both}
/* 12 Oct: the progress screen from stop to review (parts/42-talk-flow.js): where it is, your words, each person as
   Claude finishes them. */
.v2-steps{list-style:none;margin:16px 0 2px;padding:0;display:grid;gap:10px}
.v2-steps li{display:flex;align-items:center;gap:10px;font-size:var(--t-meta);font-weight:600;color:var(--dim)}
.v2-steps li.done,.v2-steps li.now{color:var(--glow)}
.v2-stepdot{width:20px;height:20px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1.5px rgba(var(--ov),.28)}
.v2-steps li.done .v2-stepdot{background:var(--ink);color:var(--onInk);box-shadow:none}
.v2-steps li.now .v2-stepdot{box-shadow:inset 0 0 0 2px var(--bronze);animation:v2steppulse 1.4s ease-in-out infinite}
@keyframes v2steppulse{0%,100%{opacity:1}50%{opacity:.4}}
.v2-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.v2-rdtext{margin-top:18px;padding:16px 18px;border-radius:20px;background:rgba(var(--ov),.045)}
.v2-rdtext p{margin:6px 0 0;font-size:var(--t-body);line-height:1.5;color:var(--glow);white-space:pre-wrap;overflow-wrap:anywhere}
.v2-rdtext p.v2-rough{color:var(--dim)}
.v2-rdtext .v2-skel{margin-top:10px}
.v2-rdp{margin-top:18px}
.v2-rdph{display:flex;align-items:center;gap:12px;padding-bottom:4px}
.v2-rdnew{width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;background:rgba(var(--ov),.08);color:var(--glow)}
.v2-rdp .v2-fact{padding:12px 0}
.v2-reading #rdSkel{margin-top:18px}
.v2-in-card{animation:v2arrive .36s cubic-bezier(.23,1,.32,1) both}
.v2-rdfoot{margin-top:24px;display:grid;gap:10px}
#tab-log.rz-ready{position:relative}
#tab-log.rz-ready::after{content:'';position:absolute;top:10px;right:calc(50% - 20px);width:9px;height:9px;border-radius:50%;background:var(--bronze);box-shadow:0 0 0 2px var(--tabbar,#fff)}
@media (prefers-reduced-motion:reduce){
  #s-log .listening.v2-in .mic i,#s-log .listening.v2-in .mic .dot{animation:v2fade .3s both}
  .v2-reading .v2-skel i{animation:none;opacity:.7}
  .v2-rv.v2-arrive{animation:v2fade .3s both}
  .v2-steps li.now .v2-stepdot{animation:none}
  .v2-in-card{animation:v2fade .2s both}
}

/* 13 Oct walk-through fix 6: the multi-pick sheet keeps its Add button in view */
#sheet .pickmulti .pickfoot{position:sticky;bottom:-26px;z-index:3;margin:4px -20px -26px;padding:12px 20px 26px;background:var(--sheet)}
#sheet .pickmulti .pickfoot .pill{width:100%}

/* ==========================================================================
   iPhone polish (15 Oct 2026; docs/ui-review/2026-10-iphone-audit.md). Opened from the Home Screen, Resonate runs
   under the status bar and over the home indicator: every top bar adds the real status-bar inset (iOS takes taps in
   the status bar, so a Back button there cannot be pressed), and every fixed bottom action clears the home indicator.
   In a Safari tab the insets are 0 and the old values win.
   ========================================================================== */
@supports (padding:max(0px)){
  /* F03: Manage club, Members, Find a time, Events, Plans, the clubs list (cmShell) */
  html[data-theme] .cm{padding-top:max(14px,calc(env(safe-area-inset-top) + 8px))}
  /* F05: the club page, Host an event room and the event room itself */
  html[data-theme] #community .v2-er,html[data-theme] #eroom .v2-er{padding-top:max(48px,calc(env(safe-area-inset-top) + 8px))}
  /* F05: Settings' Back sits on the first row of the You screen, which only allows inset − 16px */
  .v2-settop{margin-top:max(0px,calc(env(safe-area-inset-top) - 36px))}
  /* F05: onboarding's Back and Skip */
  #onboard .ob{padding-top:max(14px,calc(env(safe-area-inset-top) + 4px))}
  /* F16: fixed bottom actions clear the home indicator */
  html[data-theme] #onboard .ob-foot{padding-bottom:max(24px,calc(env(safe-area-inset-bottom) + 10px))}
  html[data-theme] #sheet:not(.v2-full){padding-bottom:max(26px,calc(env(safe-area-inset-bottom) + 12px))}
  html[data-theme] .v2-erbar{bottom:max(22px,calc(env(safe-area-inset-bottom) + 4px))}
  /* F05: scrolled content fades out before it reaches the clock: the fade covers the whole status bar, not 46px of it */
  .screen.v2-edge::before,#page.v2-edge:not(:has(.v2-pbar))::before{height:max(46px,calc(env(safe-area-inset-top) + 18px));margin-bottom:calc(-1 * max(46px,calc(env(safe-area-inset-top) + 18px)));
    background:linear-gradient(to bottom,rgba(var(--edgeRGB),.96) 0,rgba(var(--edgeRGB),.96) max(20px,env(safe-area-inset-top)),rgba(var(--edgeRGB),0))}
  /* F05 (follow-up): a sticky box sticks at its scroller's padding edge, not at the top of the screen, so the fade sat
     43 pt down on a scrolled Today and rows showed under the clock. It is pulled up by the scroller's own top padding */
  .screen.v2-edge::before{top:calc(-1 * max(12px,calc(env(safe-area-inset-top) - 16px)))}
  #page.v2-edge:not(:has(.v2-pbar)):not(:has(.v2-phero))::before{top:calc(-1 * max(42px,calc(env(safe-area-inset-top) + 6px)))}
  #page.v2-edge:not(:has(.v2-pbar)):has(.v2-phero)::before{top:calc(-1 * max(22px,env(safe-area-inset-top)))}
}
/* F06: on a phone the body is the colour of the screen showing, so a layout that stops short of the bottom of the
   screen (seen on a Home Screen install: the bottom ~55 pt showed the laptop margin colour) leaves no seam */
@media (max-width:599px){
  html[data-theme="light"] body{background:var(--paper)}
  html[data-theme="dark"] body{background:var(--void)}
  html[data-theme] body:has(#community:not([hidden])),html[data-theme] body:has(#eroom:not([hidden])),html[data-theme] body:has(#onboard:not([hidden])){background:var(--ground)}
  html[data-theme] #app{height:var(--rz-app-h,100%)}
}

/* F12: press feedback on touch-down. .v2-press (05-feel.js, set on pointerdown) mirrors the :active looks above, so a
   tap answers in the same frame instead of when iOS gets round to :active */
.v2-btn.v2-press,.v2-chip.v2-press,.v2-ib.v2-press,.cbtn.v2-press,.chip.v2-press,.v2-textbtn.v2-press,.pill.v2-press{transform:scale(.96)}
.v2-row.v2-press:not(:has(.v2-press)),.v2-ocard.v2-press,.v2-club.v2-press{transform:scale(.985)}
.v2-line.v2-press,.v2-set[role=button].v2-press{background:rgba(var(--ov),.045)}
@media (prefers-reduced-motion:reduce){
  .v2-btn.v2-press,.v2-chip.v2-press,.v2-ib.v2-press,.cbtn.v2-press,.chip.v2-press,.v2-textbtn.v2-press,.pill.v2-press,.v2-row.v2-press,.v2-ocard.v2-press,.v2-club.v2-press{transform:none;opacity:.72}
}
/* F08: pushed pages and full pages leave horizontal pans to the edge back-swipe (vertical scrolling and pinch stay
   the browser's), so the swipe is not cancelled after a few pixels */
html[data-theme] #page,html[data-theme] #sheet.v2-full{touch-action:pan-y pinch-zoom}

/* F17: a long unbreakable first name ("Write to Wolfeschlegel…") made the hero's and the person page's main button
   wider than the screen, and Today scrolled sideways (regression-v2's 1,000-person run, the one failing suite on main).
   A growing button may now shrink; the name inside it gives way (below). */
.v2-btn.grow{min-width:0}
.v2-btn:has(.v2-bname){white-space:nowrap}
/* the name in "Write to <name>" shrinks with an ellipsis, so the label reads from its start ("Write to Wolfesch…")
   instead of showing the middle of a centred word cut on both sides */
.v2-btn .v2-bname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* and a word too long for its line breaks rather than running off the screen (person options' "Keep close", the
   Write sheet, any paragraph that quotes a name). break-word only acts on a word that cannot fit, so no layout that
   fits today changes */
html[data-theme] #app{overflow-wrap:break-word}
/* F17 (follow-up 3): a text column beside a control (style="flex:1") kept its min-content width, so one long word
   pushed the control off the screen: person options' Keep close switch was unreachable for a long name. A flex item
   that may shrink lets the word break instead */
html[data-theme] #app [style="flex:1"]{min-width:0}
/* F05: a scrolled person page showed its content in the status-bar band above the sticky header (the header sticks
   below the page's top padding, and nothing covered the band above it): the header's material reaches up over it */
@supports (padding:max(0px)){#page .v2-pbar::before{top:calc(-1 * max(0px,calc(env(safe-area-inset-top) - 22px)))}}
/* F18: an empty day in This week is a disabled button faded to .55 as a whole, which took its weekday letter to
   2.7:1 (12 px needs 4.5). The letter still says which day it is: the fade now applies to the day's ground and number,
   and the letter keeps --dim at full strength */
html[data-theme] .v2-day.off{opacity:1}
html[data-theme] .v2-day.off>:not(.v2-dwd){opacity:.55}
html[data-theme="light"] .v2-day.off{background:rgba(255,255,255,.34)}
html[data-theme="dark"] .v2-day.off{background:rgba(255,255,255,.033)}
/* F21: 44 pt hit areas for the small text buttons the rig measured (padding outside, nothing moves) */
#s-log .link[data-exopen],#community .link[data-cm="calhow"],#s-you .v2-link[data-signalset]{position:relative}
#s-log .link[data-exopen]::after,#community .link[data-cm="calhow"]::after,#s-you .v2-link[data-signalset]::after{content:"";position:absolute;inset:-12px -10px}
.v2-rcface::after{content:"";position:absolute;inset:-4px;border-radius:50%}
/* F32: in dark mode the club page's and the event room's lower sheet stayed cream while its text turned light (1.1:1:
   event names, Going / Not going and the people in the room were unreadable) */
html[data-theme="dark"] .v2-ersheet{background:var(--sheet);box-shadow:0 -10px 30px rgba(0,0,0,.35)}
/* F22: Reduce Transparency turns the glass bars solid */
@media (prefers-reduced-transparency:reduce){
  html[data-theme] #tabs,html[data-theme] .v2-float,html[data-theme] .v2-erbar,html[data-theme] .v2-fpbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface)}
  html[data-theme] .v2-pbar::before{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--paper)}
  html[data-theme="dark"] #tabs,html[data-theme="dark"] .v2-float,html[data-theme="dark"] .v2-erbar,html[data-theme="dark"] .v2-fpbar{background:var(--surface2)}
}
/* F35: at 320 pt with large text, Manage club's Members / Invite link pair was 32px wider than the screen: it wraps */
html[data-theme] .cm .row.gap10{flex-wrap:wrap}
html[data-theme] .cm .row.gap10>.grow{min-width:min(100%,140px)}
