:root{
  --bg:#F3F7FD; --surface:#fff; --tint:#EFF6FF; --tint-2:#DBEAFE;
  --text:#0F172A; --muted:#475569; --line:#D6E0EE; --field:#64748B;
  --primary:#1D4ED8; --primary-hover:#1E40AF; --on-primary:#fff; --link:#1D4ED8;
  --navy:#0B2545; --on-navy:#fff; --on-navy-muted:#C7D7F0; --credit:#FDBA74;
  --accent:#C2410C; --focus:#1D4ED8; --focus-on-dark:#93C5FD;
  --edit-bg:#F8FBFF; --shadow:0 1px 2px rgba(15,23,42,.06),0 4px 14px rgba(15,23,42,.06);
  --radius:14px;
  --font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
html.contrast{--bg:#fff;--surface:#fff;--tint:#fff;--tint-2:#fff;--text:#000;--muted:#000;--line:#000;--field:#000;--primary:#000;--primary-hover:#000;--on-primary:#fff;--link:#000;--navy:#fff;--on-navy:#000;--on-navy-muted:#000;--credit:#000;--accent:#000;--focus:#000;--focus-on-dark:#000;--edit-bg:#fff;--shadow:none}
html.yob{--bg:#000;--surface:#000;--tint:#000;--tint-2:#000;--text:#FFFF00;--muted:#FFFF00;--line:#FFFF00;--field:#FFFF00;--primary:#FFFF00;--primary-hover:#FFFF00;--on-primary:#000;--link:#FFFF00;--navy:#000;--on-navy:#FFFF00;--on-navy-muted:#FFFF00;--credit:#FFFF00;--accent:#FFFF00;--focus:#fff;--focus-on-dark:#fff;--edit-bg:#000;--shadow:none}
*{box-sizing:border-box}
[hidden]{display:none !important}
html{font-size:100%;scroll-padding-top:90px}
html.large{font-size:118.75%}
html.xlarge{font-size:137.5%}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.55;padding-bottom:92px;-webkit-text-size-adjust:100%}
html.easy body{font-family:Verdana,Tahoma,"Atkinson Hyperlegible",Arial,sans-serif;letter-spacing:.02em;word-spacing:.08em;line-height:1.7}
html.reduce *,html.reduce *::before,html.reduce *::after{transition:none !important;animation:none !important;scroll-behavior:auto !important}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:0;background:var(--surface);color:var(--text);padding:.6rem 1rem;z-index:60;font-weight:700;border:2px solid var(--text);border-radius:8px}
.skip:focus{left:.5rem;top:.5rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Banner + header */
.proto-banner{display:flex;align-items:center;justify-content:center;gap:.45rem;background:var(--tint-2);color:#1E3A8A;font-size:.78rem;font-weight:600;padding:.3rem .75rem;letter-spacing:.01em}
.proto-banner .dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}
html.contrast .proto-banner,html.yob .proto-banner{color:var(--text);border-bottom:1px solid var(--line)}
.topbar{background:var(--navy);color:var(--on-navy);position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(11,37,69,.18)}
html.contrast .topbar,html.yob .topbar{box-shadow:none;border-bottom:3px solid var(--text)}
.topbar-in{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.6rem 1rem;min-height:60px}
.brand-words strong,.topnav button span,.display-btn span{white-space:nowrap}
html.xlarge .brand-words small{display:none}
.topbar :focus-visible{outline-color:var(--focus-on-dark)}
.brand{display:flex;align-items:center;gap:.65rem;color:inherit;text-decoration:none;margin-right:auto;border-radius:10px}
.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#3B82F6,#1D4ED8);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.15rem;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
html.contrast .logo{background:#000;color:#fff;box-shadow:none}
html.yob .logo{background:#FFFF00;color:#000;box-shadow:none}
.brand-words strong{display:block;font-size:1.08rem;line-height:1.15;letter-spacing:-.01em}
.brand-words small{display:block;font-size:.74rem;color:var(--credit);font-weight:600}
.topnav{display:none}
.display-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:var(--on-navy);border:2px solid var(--on-navy-muted);border-radius:999px;padding:.35rem .8rem;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;min-height:44px}
.display-btn:hover{background:rgba(255,255,255,.1)}

/* Layout */
main{max-width:1200px;margin:0 auto;padding:1.25rem 1rem 1.5rem}
main:focus{outline:none}
.narrow{max-width:820px;margin:0 auto}
h1{font-size:1.85rem;line-height:1.15;margin:.1rem 0 .5rem;letter-spacing:-.02em;color:var(--text)}
h1:focus,h2:focus{outline:none}
h2{font-size:1.2rem;margin:1.6rem 0 .6rem;letter-spacing:-.01em}
.who{margin:0;color:var(--primary);font-size:.95rem;font-weight:700}
.lead{margin:0 0 1.25rem;color:var(--muted);font-size:1.02rem;max-width:60em}
.label{display:block;font-weight:700;margin:0 0 .35rem}

/* Quick actions */
.quick{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:0 0 1.25rem}
.qcard{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem;cursor:pointer;box-shadow:var(--shadow);position:relative;min-height:44px}
.qcard:hover{border-color:var(--primary)}
.qcard .qico{width:42px;height:42px;border-radius:12px;background:var(--tint-2);color:var(--primary);display:grid;place-items:center;flex:0 0 auto}
.qcard strong{display:block;font-size:1rem;line-height:1.3}
.qcard small{display:block;color:var(--muted);font-size:.86rem;margin-top:.15rem;line-height:1.4}
.qarrow{display:none}
.q-add{grid-column:1/-1;flex-direction:row;align-items:center;background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.q-add:hover{background:var(--primary-hover)}
.q-add .qico{background:rgba(255,255,255,.16);color:var(--on-primary)}
.q-add small{color:var(--on-primary);opacity:1}
.q-add .qarrow{display:block;margin-left:auto;font-size:2rem;line-height:1}
.q-add:focus-visible{outline-color:var(--focus);outline-offset:3px}
html.contrast .qcard,html.yob .qcard{border-width:2px}
html.contrast .qcard .qico,html.yob .qcard .qico{background:transparent;border:2px solid currentColor}
html.contrast .q-add .qico{color:#fff;border-color:#fff}
html.yob .q-add .qico{color:#000;border-color:#000}

/* Home grid */
.home-grid{display:flex;flex-direction:column;gap:1rem}
.filters{display:contents}
.profile-prompt{order:1}
.filter-box{order:2}
.results{order:3}
.reminder{order:4}
.filter-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}
.search-wrap{position:relative}
.search-wrap svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--muted);width:20px;height:20px;pointer-events:none}
.search-wrap input{padding-left:2.5rem}
.chips-label{margin-top:.9rem}
input,select,textarea{font:inherit;color:var(--text);width:100%;padding:.65rem .8rem;border:1.5px solid var(--field);border-radius:10px;background:var(--surface);min-height:46px}
textarea{min-height:96px;resize:vertical;line-height:1.5}
input::placeholder,textarea::placeholder{color:#64748B;opacity:1}
html.contrast input::placeholder,html.contrast textarea::placeholder{color:#333}
html.yob input::placeholder,html.yob textarea::placeholder{color:#E6E600}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px;border-color:var(--focus)}
input[type=radio],input[type=checkbox]{width:auto;min-height:0;accent-color:var(--primary);transform:scale(1.3);margin:0 .6rem 0 .15rem}
.chips{display:flex;gap:.45rem;overflow-x:auto;padding:.1rem .1rem .4rem;scrollbar-width:thin}
.chip{flex:0 0 auto;font:inherit;font-size:.9rem;font-weight:600;border:1.5px solid var(--field);background:var(--surface);color:var(--text);border-radius:999px;padding:.35rem .9rem;min-height:40px;cursor:pointer}
.chip:hover{border-color:var(--primary);color:var(--primary)}
html.yob .chip:hover,html.contrast .chip:hover{color:var(--text)}
.chip[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.profile-prompt{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;font:inherit;color:var(--text);background:var(--tint);border:1.5px dashed #93A9CC;border-radius:var(--radius);padding:.8rem .9rem;cursor:pointer;min-height:44px}
.profile-prompt:hover{border-color:var(--primary)}
.profile-prompt strong{display:block;color:var(--primary);font-size:1rem}
.profile-prompt small{display:block;color:var(--muted);font-size:.86rem;line-height:1.4}
.pp-ico{width:40px;height:40px;border-radius:50%;background:var(--surface);color:var(--primary);display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--line);overflow:hidden}
.pp-ico img{width:100%;height:100%;object-fit:cover}
html.contrast .profile-prompt,html.yob .profile-prompt{border:2px dashed var(--text)}
.reminder{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--radius);padding:.75rem .9rem}
html.contrast .reminder,html.yob .reminder{border:2px solid var(--text);border-left-width:6px}
.reminder p{margin:0;font-size:.95rem}
.count{margin:0 0 .6rem;color:var(--muted);font-size:.92rem;font-weight:600}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.card{width:100%;height:100%;text-align:left;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.95rem 1rem;cursor:pointer;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--primary);transform:translateY(-1px)}
html.contrast .card,html.yob .card{border-width:2px}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem}
.type{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--primary)}
.year{font-size:.86rem;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.card h3{font-size:1.04rem;margin:0 0 .5rem;line-height:1.35}
.meta{display:flex;flex-wrap:wrap;gap:.35rem .55rem;font-size:.86rem;color:var(--muted);margin-top:auto;align-items:center}
.ip{display:inline-block;border-radius:6px;padding:.08rem .5rem;font-weight:700;font-size:.78rem}
.ip-me{background:#DCFCE7;color:#14532D}
.ip-co{background:#E0E7FF;color:#312E81}
.ip-pub{background:#E2E8F0;color:#1E293B}
.ip-ns{background:#FFEDD5;color:#7C2D12}
.ip-na{background:#F1F5F9;color:#334155}
html.contrast .ip,html.yob .ip{background:transparent;color:var(--text);border:1.5px solid var(--text)}
.new-badge{background:var(--accent);color:#fff;font-size:.7rem;font-weight:800;border-radius:6px;padding:.05rem .4rem;margin-left:.45rem;letter-spacing:.03em}
html.contrast .new-badge{background:#000;color:#fff}
html.yob .new-badge{background:#FFFF00;color:#000}
.empty{background:var(--surface);border:1.5px dashed var(--field);border-radius:var(--radius);padding:1.25rem;text-align:center;grid-column:1/-1}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:700;background:var(--primary);color:var(--on-primary);border:2px solid var(--primary);border-radius:12px;padding:.6rem 1.15rem;min-height:46px;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.btn.secondary{background:var(--surface);color:var(--primary);border-color:var(--primary)}
.btn.secondary:hover{background:var(--tint)}
.btn.ghost{background:transparent;color:var(--primary);border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.btn.secondary[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}
html.yob .btn.secondary:hover,html.contrast .btn.secondary:hover{background:var(--surface)}
.btn.small{padding:.4rem .9rem;min-height:44px;font-size:.92rem;white-space:nowrap}
.btn.wide{width:100%;margin-top:.75rem}
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--link);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.back{display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;font:inherit;color:var(--link);font-weight:700;padding:.4rem 0;cursor:pointer;min-height:44px;text-decoration:underline;text-underline-offset:3px}

/* Panels and forms */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;margin-top:1rem;box-shadow:var(--shadow)}
html.contrast .panel,html.yob .panel{border-width:2px}
.field{margin:0 0 .95rem;border:0;padding:0;min-width:0}
.field label,.field legend{display:block;font-weight:700;margin-bottom:.35rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.radio,.check{display:flex;align-items:center;font-weight:500 !important;padding:.5rem 0;cursor:pointer;min-height:44px}
.ip-q{background:var(--tint);border-radius:12px;padding:.8rem .9rem !important}
html.contrast .ip-q,html.yob .ip-q{border:2px solid var(--text)}
.ip-q legend{float:left;width:100%;margin-bottom:.2rem}
.actions{display:flex;gap:.6rem;flex-wrap:wrap}
.hint{font-weight:500;color:var(--muted);font-size:.9rem}

/* Add */
.add-options{display:grid;gap:.75rem}
.add-opt{display:flex;align-items:center;gap:1rem;text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;min-height:80px;cursor:pointer;box-shadow:var(--shadow)}
.add-opt:hover{border-color:var(--primary)}
html.contrast .add-opt,html.yob .add-opt{border-width:2px}
.add-opt strong{display:block;font-size:1.08rem}
.add-opt small{display:block;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}
.ico{width:52px;height:52px;border-radius:14px;background:var(--tint-2);color:var(--primary);display:grid;place-items:center;flex:0 0 auto}
html.contrast .ico,html.yob .ico{background:transparent;border:2px solid currentColor}
.working{margin:1rem 0;padding:.85rem 1rem;border-radius:12px;background:var(--tint);border:1.5px dashed var(--field);font-weight:600}
.filed{background:var(--tint);border-left:4px solid var(--primary);border-radius:10px;padding:.75rem .9rem;margin:0 0 1rem;font-size:.98rem}
html.contrast .filed,html.yob .filed{border:2px solid var(--text)}

/* Make */
#makeForm{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow)}
html.contrast #makeForm,html.yob #makeForm{border-width:2px}
.doc-choices{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.doc-choice{position:relative}
.doc-choice input{position:absolute;opacity:0;inset:0;margin:0}
.doc-choice span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:64px;padding:.5rem;border:1.5px solid var(--field);border-radius:12px;background:var(--surface);font-weight:700;cursor:pointer}
.doc-choice input:checked+span{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.doc-choice input:focus-visible+span{outline:3px solid var(--focus);outline-offset:3px}
.topic-ticks{display:grid;gap:0}
.preview{margin-top:.25rem}
.pv-head{margin:.25rem 0 .75rem}
.pv-head h2{margin:0;font-size:1.4rem}
.pv-sub{margin:.2rem 0 0;color:var(--muted)}
.pv-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:.75rem;background:var(--tint);border-radius:var(--radius);border:1px solid var(--line)}
html.contrast .pv-actions,html.yob .pv-actions{border:2px solid var(--text)}
.edit-tip{background:var(--tint-2);border-radius:10px;padding:.55rem .8rem;margin:0 0 .75rem;font-size:1rem;color:var(--text)}
html.contrast .edit-tip,html.yob .edit-tip{border:2px solid var(--text)}
.save-state{font-size:.88rem;color:var(--muted);margin:.5rem 0 0;min-height:1.2em}
.pv-note{font-size:.9rem;color:var(--muted);margin:.8rem 0 0;border-top:1px solid var(--line);padding-top:.7rem}

/* Detail */
.type-tag{margin:.5rem 0 .1rem;font-size:.8rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--primary)}
.facts{display:grid;gap:.6rem;margin:1rem 0 0;grid-template-columns:1fr 1fr}
.facts div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;box-shadow:var(--shadow)}
.facts dt{font-size:.82rem;color:var(--muted);font-weight:700}
.facts dd{margin:.1rem 0 0;font-weight:700}
html.contrast .facts div,html.yob .facts div,html.contrast .files li,html.yob .files li,html.contrast .notes,html.yob .notes,html.contrast .switch-row,html.yob .switch-row{border-width:2px;border-color:var(--text)}
.files{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.files li{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;display:flex;gap:.6rem;align-items:center;overflow-wrap:anywhere}
.files a{color:var(--link);font-weight:700}
.notes{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;margin:0}
.switch-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.4rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;font-weight:700}
.switch{width:60px;height:34px;border-radius:999px;border:2px solid var(--field);background:#E2E8F0;position:relative;cursor:pointer;padding:0;flex:0 0 auto}
.switch span{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#475569;transition:left .15s}
.switch[aria-checked=true]{background:var(--primary);border-color:var(--primary)}
.switch[aria-checked=true] span{left:29px;background:var(--on-primary)}
html.contrast .switch,html.yob .switch{background:var(--surface);border-color:var(--text)}
html.contrast .switch span,html.yob .switch span{background:var(--text)}
html.contrast .switch[aria-checked=true],html.yob .switch[aria-checked=true]{background:var(--text)}
html.contrast .switch[aria-checked=true] span,html.yob .switch[aria-checked=true] span{background:var(--surface)}

/* Profile */
.pf-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.1rem .4rem;margin:0 0 1rem;box-shadow:var(--shadow);min-width:0}
html.contrast .pf-group,html.yob .pf-group{border-width:2px}
.pf-group legend{font-size:1.1rem;font-weight:800;padding:0 .3rem;margin-left:-.3rem;float:left;width:100%;margin-bottom:.8rem}
.pf-grid{clear:both;display:grid;gap:0 1rem}
.pf-field{margin:0 0 1rem;min-width:0}
.pf-field>label{display:block;font-weight:700;margin-bottom:.3rem}
.pf-hint{display:block;font-weight:500;color:var(--muted);font-size:.86rem;margin:-.15rem 0 .35rem}
.pf-inc{display:inline-flex;align-items:center;font-size:.88rem;font-weight:600;color:var(--muted);margin-top:.25rem;min-height:36px;cursor:pointer}
.pf-inc input{transform:scale(1.15)}
.pf-img{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.pf-thumb{width:84px;height:84px;border-radius:50%;background:var(--tint);border:1.5px dashed var(--field);display:grid;place-items:center;color:var(--muted);overflow:hidden;flex:0 0 auto;font-size:.78rem;text-align:center;line-height:1.2;padding:.3rem}
.pf-thumb.logo-thumb{border-radius:12px;width:120px}
.pf-thumb img{width:100%;height:100%;object-fit:cover}
.pf-thumb.logo-thumb img{object-fit:contain}
.pf-img-btns{display:flex;gap:.5rem;flex-wrap:wrap}
.pf-file{position:absolute;width:1px;height:1px;opacity:0}
.pf-img-btns label.btn{margin:0}
.pf-file:focus-visible+label{outline:3px solid var(--focus);outline-offset:3px}
.profile-foot{padding:.5rem 0 1rem}

/* Tab bar (phone) */
.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--surface);display:grid;grid-template-columns:repeat(4,1fr);z-index:20;padding:0 .25rem env(safe-area-inset-bottom);border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(15,23,42,.08)}
html.contrast .tabbar,html.yob .tabbar{border-top:3px solid var(--text);box-shadow:none}
.tabbar button{background:none;border:0;color:var(--muted);font:inherit;font-size:.74rem;font-weight:700;padding:.45rem .1rem .55rem;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;cursor:pointer;line-height:1.15;text-align:center}
.tabbar button svg{width:40px;height:30px;padding:3px 8px;border-radius:999px;box-sizing:border-box}
.tabbar button[aria-current=page]{color:var(--primary)}
.tabbar button[aria-current=page] svg{background:var(--tint-2)}
html.contrast .tabbar button[aria-current=page] svg,html.yob .tabbar button[aria-current=page] svg{background:var(--text);color:var(--surface)}
html.contrast .tabbar button[aria-current=page] span,html.yob .tabbar button[aria-current=page] span{text-decoration:underline;text-underline-offset:3px}
.tabbar button:focus-visible{outline-offset:-3px}

/* Dialog */
dialog{border:0;border-radius:18px;padding:1.4rem;max-width:460px;width:calc(100% - 1.5rem);background:var(--surface);color:var(--text);box-shadow:0 20px 50px rgba(11,37,69,.35);max-height:calc(100vh - 2rem);overflow:auto}
html.contrast dialog,html.yob dialog{border:3px solid var(--text)}
dialog::backdrop{background:rgba(11,37,69,.55)}
dialog h2{margin:0 0 .25rem;font-size:1.35rem}
.dlg-lead{margin:0 0 1rem;color:var(--muted);font-size:.95rem}
.opt-group{border:0;padding:0;margin:0 0 1.1rem;min-width:0}
.opt-group legend{font-weight:800;margin-bottom:.45rem;padding:0}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.seg label{position:relative;display:block;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;margin:0}
.seg span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:74px;border:2px solid var(--field);border-radius:12px;padding:.4rem;font-size:.82rem;font-weight:700;text-align:center;line-height:1.2}
.seg input:checked+span{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.seg input:focus-visible+span{outline:3px solid var(--focus);outline-offset:3px}
.seg i{font-style:normal;font-size:1.25rem;font-weight:800}
.sw-std span{background:#fff;color:#0F172A}.sw-std i{color:#1D4ED8}
.sw-hc span{background:#fff;color:#000}
.sw-yob span{background:#000;color:#FFFF00}
.seg-size span{background:var(--surface);color:var(--text)}
.seg-size small{font-size:.75rem;font-weight:600}
.s1{font-size:1rem !important}.s2{font-size:1.25rem !important}.s3{font-size:1.5rem !important}
.seg-size .s1,.seg-size .s2,.seg-size .s3{line-height:1}
.dlg-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:var(--navy);color:var(--on-navy);padding:.65rem 1.1rem;border-radius:12px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90%;text-align:center;z-index:40;box-shadow:var(--shadow)}
html.contrast .toast{background:#000;color:#fff}
html.yob .toast{border:2px solid #FFFF00}
.toast.show{opacity:1}

/* Tablet and desktop */
@media (min-width:768px){
  body{padding-bottom:0}
  .tabbar{display:none}
  .toast{bottom:28px}
  .topbar-in{padding:.55rem 1.5rem;gap:1.25rem}
  .topnav{display:flex;flex-wrap:wrap;gap:.25rem;margin-left:auto}
  html.large .topnav button svg,html.xlarge .topnav button svg{display:none}
  .brand{margin-right:0}
  .topnav button{display:inline-flex;align-items:center;gap:.45rem;background:transparent;border:0;color:var(--on-navy-muted);font:inherit;font-size:.93rem;font-weight:700;padding:.5rem .8rem;border-radius:10px;cursor:pointer;min-height:44px;position:relative}
  .topnav button svg{width:20px;height:20px}
  .topnav button:hover{color:var(--on-navy);background:rgba(255,255,255,.08)}
  .topnav button[aria-current=page]{color:var(--on-navy);background:rgba(255,255,255,.14)}
  .topnav button[aria-current=page]::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:-.58rem;height:3px;border-radius:3px;background:#60A5FA}
  html.contrast .topnav button[aria-current=page],html.yob .topnav button[aria-current=page]{background:var(--text);color:var(--surface)}
  html.contrast .topnav button[aria-current=page]::after,html.yob .topnav button[aria-current=page]::after{display:none}
  html.contrast .topnav button:hover,html.yob .topnav button:hover{background:transparent;text-decoration:underline}
  main{padding:2rem 1.5rem 3rem}
  h1{font-size:2.2rem}
  .quick{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.75rem}
  .q-add{grid-column:auto;flex-direction:column;align-items:flex-start}
  .q-add .qarrow{display:none}
  .qcard{padding:1.15rem 1.2rem;gap:.7rem}
  .qcard strong{font-size:1.08rem}
  .add-options{grid-template-columns:repeat(3,1fr)}
  .add-opt{flex-direction:column;align-items:flex-start;min-height:170px;padding:1.25rem}
  .doc-choices{grid-template-columns:repeat(4,1fr)}
  .topic-ticks{grid-template-columns:1fr 1fr;column-gap:1rem}
  .pf-grid{grid-template-columns:1fr 1fr}
  .pf-grid .pf-wide{grid-column:1/-1}
  #makeForm{padding:1.4rem}
}
@media (min-width:768px) and (max-width:1099px){
  .brand-words small{display:none}
  .display-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .display-btn{padding:.35rem .6rem}
  .topnav button{padding:.5rem .55rem;font-size:.88rem}
}
@media (min-width:768px) and (max-width:899px){.topnav button svg{display:none}}
@media (min-width:1000px){
  .home-grid{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;align-items:start}
  .filters{display:flex;flex-direction:column;gap:1rem;position:sticky;top:96px}
  .chips{flex-wrap:wrap;overflow:visible}
  .cards{grid-template-columns:repeat(2,1fr);gap:1rem}
  .cards li{display:flex}
}
@media (min-width:1300px){.home-grid{grid-template-columns:320px 1fr}}

/* CV document */
.cv{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:1.5rem 1.25rem 1.25rem;font-size:1rem;line-height:1.6;max-width:50rem}
html.contrast .cv,html.yob .cv{border:2px solid var(--text);box-shadow:none}
.cv .ed{border:0;background:none;padding:0;margin:0;border-radius:6px}
.cv.editing .ed{outline:2px dashed var(--field);outline-offset:4px;background:var(--edit-bg)}
.cv.editing .ed:focus{outline:3px solid var(--focus);background:var(--surface)}
.cv-head{display:flex;gap:1rem;align-items:flex-start;padding-bottom:1rem;border-bottom:3px solid var(--primary);margin-bottom:.25rem}
.cv-head-main{flex:1;min-width:0}
.cv-logo{display:block;max-height:52px;max-width:180px;object-fit:contain;margin:0 0 .75rem}
.cv-photo{width:92px;height:92px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:3px solid var(--tint-2)}
html.contrast .cv-photo,html.yob .cv-photo{border-color:var(--text)}
.cv .cv-name{font-size:1.875rem;line-height:1.15;margin:0 0 .4rem;font-weight:800;letter-spacing:-.01em;color:var(--text)}
.cv-post{font-weight:600;color:var(--muted);font-size:.6em;letter-spacing:.02em;margin-left:.3rem;white-space:nowrap}
.cv-role{font-size:1.0625rem;font-weight:600;margin:0 0 .4rem;color:var(--primary)}
.cv .cv-contact{margin:0;color:var(--muted);font-size:.9375rem;line-height:1.6;display:flex;flex-wrap:wrap;column-gap:.4rem;row-gap:0}
.cv-contact span{white-space:nowrap}
.cv-sec{margin-top:1.5rem}
.cv .cv-sec h4{font-size:.8125rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--primary);margin:0 0 .75rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}
html.contrast .cv .cv-sec h4,html.yob .cv .cv-sec h4{color:var(--text);border-bottom-color:var(--text)}
.cv .cv-sec p,.cv .cv-head p{margin:0;max-width:40em}
.cv .cv-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.cv .cv-tags li{margin:0;border:1px solid #93A9CC;background:var(--tint);border-radius:999px;padding:.2rem .75rem;font-size:.9375rem;line-height:1.5}
html.contrast .cv .cv-tags li,html.yob .cv .cv-tags li{border-color:var(--text);background:transparent}
.cv-list{display:flex;flex-direction:column;gap:.9rem}
.cv-row{display:grid;grid-template-columns:3.1rem 1fr;gap:.75rem;align-items:baseline}
.cv-row-role{grid-template-columns:1fr auto}
.cv-yr{font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted);font-size:.9375rem}
.cv-yr-r{text-align:right;white-space:nowrap}
.cv-main{min-width:0}
.cv-t{display:block;font-weight:700;line-height:1.45}
.cv-w{display:block;color:var(--muted);font-size:.9375rem;line-height:1.5;margin-top:.1rem}
.cv-plain{margin:0;padding-left:1.15rem}
.cv-plain li{margin:.15rem 0}
.cv-more{display:none}
.cv-sec.open .cv-more,.cv.editing .cv-more{display:grid}
.cv-showall{margin-top:.75rem;background:none;border:0;padding:.5rem 0;min-height:44px;font:inherit;font-weight:700;color:var(--link);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cv.editing .cv-showall{display:none}
html.large .cv-row,html.xlarge .cv-row{grid-template-columns:3.6rem 1fr}
html.large .cv-row-role,html.xlarge .cv-row-role{grid-template-columns:1fr auto}
.docx h3{font-size:1.5rem;margin:0 0 .6rem;line-height:1.2}
.docx h4{font-size:.8125rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--primary);margin:1.25rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}
html.contrast .docx h4,html.yob .docx h4{color:var(--text)}
.docx p{margin:.3rem 0 .6rem;max-width:40em}
.docx ul{margin:.2rem 0 .6rem;padding-left:1.2rem}
.docx li{margin:.2rem 0}
@media (min-width:600px){.cv{padding:2.25rem 2.5rem}.cv .cv-name{font-size:2.1rem}.cv-photo{width:110px;height:110px}}
@media (max-width:420px){.cv-photo{width:72px;height:72px}}

@media print{
  @page{size:A4;margin:16mm 17mm}
  html,html.contrast,html.yob,html.large,html.xlarge{font-size:10.5pt;--bg:#fff;--surface:#fff;--tint:#fff;--tint-2:#fff;--text:#000;--muted:#333;--line:#999;--field:#999;--primary:#000;--link:#000;--edit-bg:#fff;--shadow:none}
  html,body{background:#fff !important;color:#000}
  body{padding:0}
  .proto-banner,.topbar,.tabbar,.toast,.skip,#makeForm,#screen-make>h1,#screen-make>.lead,#screen-make .page-head,.pv-actions,.pv-note,.pv-head,.edit-tip,.save-state,#pvBack,.cv-showall,dialog{display:none !important}
  .screen{display:none !important}
  #screen-make{display:block !important;max-width:none}
  main{max-width:none;padding:0}
  .preview{margin:0}
  .cv{border:0 !important;box-shadow:none;padding:0;max-width:none;border-radius:0;font-size:1rem;line-height:1.45}
  .cv .ed{outline:0 !important;background:none !important}
  .cv .cv-name{font-size:2.1rem}
  .cv-role{color:#000}
  .cv-head{border-bottom:2px solid #000}
  .cv-photo{border:0;width:28mm;height:28mm}
  .cv-sec{margin-top:1.1rem}
  .cv .cv-sec h4{font-size:.85rem;color:#000;border-bottom-color:#999;break-after:avoid;page-break-after:avoid}
  .cv-row{break-inside:avoid;page-break-inside:avoid;grid-template-columns:3rem 1fr}
  .cv-row-role{grid-template-columns:1fr auto}
  .cv-list{gap:.55rem}
  .cv .cv-tags li{border-color:#999;background:none;padding:.05rem .6rem}
  .cv-sec.open .cv-more{display:grid}
}

#screen-make:has(#preview:not([hidden]))>.lead,#screen-make:has(#preview:not([hidden])) .page-head .lead{display:none}
.cv-kind{margin:0 0 .3rem !important;font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.app-only{margin-top:1.5rem;background:var(--tint);border:1.5px dashed var(--field);border-radius:10px;padding:.7rem .9rem;font-size:.92rem}
html.contrast .app-only,html.yob .app-only{border-color:var(--text)}
@media print{
  @page{size:A4;margin:18mm 19mm}
  html,html.contrast,html.yob,html.large,html.xlarge{font-size:11pt}
  .cv{font-size:1rem;line-height:1.4}
  .app-only{display:none !important}
  .cv .cv-name{font-size:1.9rem}
  .cv-yr,.cv-w,.cv .cv-contact{font-size:.93rem}
  .cv-kind{color:#333}
}

/* v3: profile accordion */
.tick-hint{display:flex;gap:.6rem;align-items:flex-start;background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;margin:-.4rem 0 1rem;font-weight:600}
.tick-ico{flex:0 0 auto;display:inline-grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:5px;background:var(--primary);color:var(--on-primary);font-size:.85rem;line-height:1}
html.contrast .tick-hint,html.yob .tick-hint{border-width:2px}
.acc-tools{display:flex;justify-content:flex-end;margin:0 0 .5rem}
.acc-tools .linkish{min-height:44px;padding:0 .2rem}
.acc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 .7rem;box-shadow:var(--shadow);overflow:hidden}
html.contrast .acc,html.yob .acc{border-width:2px}
.acc-h{margin:0;font-size:1rem}
.acc-btn{all:unset;box-sizing:border-box;display:grid;grid-template-columns:1fr auto;grid-template-areas:"t ico" "c ico" "p ico";column-gap:.75rem;width:100%;padding:.85rem 1rem;cursor:pointer;min-height:56px;color:var(--text);font-family:inherit}
.acc-btn:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:var(--radius)}
.acc-btn:hover{background:var(--tint)}
html.contrast .acc-btn:hover,html.yob .acc-btn:hover{background:transparent;text-decoration:underline}
.acc-t{grid-area:t;font-size:1.1rem;font-weight:800;line-height:1.3}
.acc-count{grid-area:c;font-size:.88rem;font-weight:700;color:var(--primary);margin-top:.1rem}
.acc-peek{grid-area:p;font-size:.86rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.acc-btn[aria-expanded=true] .acc-peek{display:none}
.acc-ico{grid-area:ico;align-self:center;width:12px;height:12px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:rotate(45deg);margin:0 .4rem .3rem;transition:transform .2s}
[aria-expanded=true]>.acc-ico{transform:rotate(-135deg);margin-bottom:-.3rem}
.acc-p{padding:.2rem 1rem .6rem;border-top:1px solid var(--line)}
.acc-p .pf-grid{padding-top:.8rem}
/* referees */
.ref-mode{border:0;padding:.6rem 0 0;margin:0}
.ref-mode legend{font-weight:800;padding:0;margin-bottom:.1rem}
.ref-mode .check{padding:.25rem 0}
.ref-list{list-style:none;margin:.4rem 0 .8rem;padding:0;display:grid;gap:.6rem}
.ref-card{border:1.5px solid var(--line);border-radius:12px;padding:.75rem .9rem;display:grid;gap:.35rem;background:var(--surface)}
.ref-card.editing{border-color:var(--primary);margin:.4rem 0 .8rem}
.ref-info{display:flex;flex-direction:column;gap:.05rem}
.ref-info strong{font-size:1.02rem}
.ref-ct,.ref-rel{color:var(--muted);font-size:.9rem}
.ref-rel{font-style:italic}
.ref-btns{display:flex;gap:.5rem;flex-wrap:wrap}
.ref-empty{color:var(--muted);margin:.4rem 0 .8rem}
.ref-err{color:#B91C1C;font-weight:700;margin:0 0 .4rem;min-height:0}
html.yob .ref-err{color:#FFFF00}html.contrast .ref-err{color:#000}
.req{font-weight:500;color:var(--muted);font-size:.86rem}
.ref-form .actions{display:flex;gap:.5rem;flex-wrap:wrap}
/* make: more types, options */
.doc-choice span{flex-direction:column;gap:.15rem;line-height:1.25}
.doc-choice small{font-weight:500;font-size:.8rem;opacity:.85}
.more-btn{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:.6rem;margin:.75rem 0 .2rem;padding:.5rem .2rem;min-height:44px;font-weight:800;color:var(--link);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-family:inherit}
.more-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.more-btn .acc-ico{width:9px;height:9px;margin:0 .2rem .2rem}
.more-docs{margin-top:.4rem}
.opt-box{background:var(--surface);border:1px solid var(--line)!important;border-radius:var(--radius);padding:.9rem 1rem .6rem!important}
html.contrast .opt-box,html.yob .opt-box{border-width:2px!important}
.opt-box legend{float:left;width:100%;font-size:1.02rem;margin-bottom:.4rem}
.opt-box>*:not(legend){clear:both}
.wc-label{display:block;font-weight:700;margin:.2rem 0 .2rem}
.wc-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.3rem 0 .6rem}
.wc-row input{width:7.5rem;flex:0 0 auto}
.wc-quick{display:flex;flex-wrap:wrap;gap:.4rem}
.wc-quick button{font:inherit;font-weight:700;min-width:52px;min-height:44px;border-radius:10px;border:1.5px solid var(--primary);background:var(--surface);color:var(--primary);cursor:pointer}
.wc-quick button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}
.wc-quick button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.voice-row{margin-top:.3rem}
.ref-mode-row .check,.ref-pick .check{padding:.25rem 0}
.ref-pick{margin-top:.3rem;padding-top:.3rem;border-top:1px dashed var(--line)}
/* preview counter + social */
.wc{display:inline-block;font-weight:800;font-size:.95rem;background:var(--tint-2);color:var(--text);border-radius:999px;padding:.3rem .85rem;margin:0 0 .75rem}
.wc.over{background:#FEE2E2;color:#7F1D1D}
html.contrast .wc,html.yob .wc{background:transparent;border:2px solid var(--text)}
html.contrast .wc.over,html.yob .wc.over{background:transparent;color:var(--text)}
.bio-text{font-size:1.05rem;line-height:1.65}
.cv-refs{display:grid;gap:.6rem}
.cv-ref{margin:0}
.soc-opts{border:0;padding:0;margin:.5rem 0 0;display:grid;gap:.6rem}
.soc-opt{display:grid;gap:.55rem;border:1.5px solid var(--line);border-radius:12px;padding:.75rem .85rem}
.soc-pick{display:grid;grid-template-columns:auto 1fr;gap:.2rem .6rem;align-items:start;cursor:pointer}
.soc-opt:has(input:checked){border-color:var(--primary);background:var(--tint)}
.soc-opt input{margin-top:.35rem}
.soc-txt{font-size:1.05rem;font-weight:600;word-break:break-word}
.soc-n{font-size:.85rem;color:var(--muted);font-weight:700}
.soc-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding-left:1.9rem}
.copy-one{min-width:6.5rem}
.copy-one.copied{background:var(--primary);color:var(--on-primary)}
html.contrast .soc-opt,html.yob .soc-opt{border-width:2px}
.bio-copy{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:0 0 1rem}
.bio-copy .hint{margin:0}
@media (min-width:600px){.cv-refs{grid-template-columns:1fr 1fr}}
@media (min-width:768px){.acc-btn{grid-template-columns:minmax(12rem,auto) 1fr auto;grid-template-areas:"t c ico" "p p ico"}.acc-count{align-self:center;margin:0}}
@media print{.wc,.tick-hint,.soc-opt input,.soc-foot,.no-print,.copy-one{display:none!important}.soc-opt{border:0;padding:0 0 6pt}.cv-refs{grid-template-columns:1fr 1fr}}

/* v3c: print fix. The document carries its own margins (padding cloned onto every page),
   so it prints right whether Chrome's Margins is Default, Minimum or None. */
@media print{
  @page{size:A4;margin:8mm 6mm}
  html,body{width:auto !important;height:auto !important;min-height:0 !important;max-height:none !important;overflow:visible !important;margin:0 !important;padding:0 !important;background:#fff !important;transform:none !important}
  .proto-banner,.topbar,header.topbar,.topnav,nav,.tabbar,.toast,.skip,dialog,#displayDialog,.display-btn,button,.btn,.copy-one,.bio-copy,.pv-actions,.pv-head,.pv-note,.edit-tip,.save-state,#pvBack,#makeForm,.cv-showall,.app-only,.page-head,.no-print,.wc,.soc-foot,.tick-hint,[aria-live]{display:none !important}
  .screen{display:none !important}
  main,#main,#screen-make,.preview,#preview,#pvBody,.pv-body{display:block !important;position:static !important;left:auto !important;top:auto !important;transform:none !important;float:none !important;margin:0 !important;padding:0 !important;width:auto !important;max-width:none !important;min-width:0 !important;height:auto !important;max-height:none !important;overflow:visible !important;border:0 !important;box-shadow:none !important;background:none !important}
  #pvBody .cv,.cv{display:block !important;position:static !important;transform:none !important;float:none !important;box-sizing:border-box !important;width:100% !important;max-width:100% !important;min-width:0 !important;height:auto !important;max-height:none !important;overflow:visible !important;margin:0 !important;padding:10mm 12mm !important;-webkit-box-decoration-break:clone;box-decoration-break:clone;border:0 !important;border-radius:0 !important;box-shadow:none !important;background:#fff !important}
  .cv,.cv *{overflow-wrap:break-word;word-wrap:break-word;min-width:0}
  .cv img{max-width:100%}
  .cv-head{break-inside:avoid;page-break-inside:avoid}
  .cv-head-main{min-width:0}
  .cv .cv-contact{flex-wrap:wrap}
  .cv .cv-sec{break-inside:auto}
  .cv .cv-sec h4,.cv h3,.cv h4,.cv-kind{break-after:avoid;page-break-after:avoid}
  .cv-row,.cv-ref,.soc-opt,.cv .cv-plain li,.cv .cv-tags,.cv p{break-inside:avoid;page-break-inside:avoid}
  .cv-row{grid-template-columns:3rem minmax(0,1fr) !important}
  .cv-row-role{grid-template-columns:minmax(0,1fr) auto !important}
  .cv-refs{grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;gap:4mm 6mm}
  .cv>:last-child,.cv .ed>:last-child,.cv-sec:last-child{margin-bottom:0 !important;padding-bottom:0 !important}
  .cv-sec:last-child>:last-child{margin-bottom:0 !important}
}

@media print{
  html,html.contrast,html.yob,html.large,html.xlarge{font-size:10pt !important}
  .cv{line-height:1.38 !important}
  .cv-head{padding-bottom:3mm !important}
  .cv .cv-sec{margin-top:4.2mm !important}
  .cv .cv-sec h4{margin:0 0 2.2mm !important;padding-bottom:1.2mm !important}
  .cv-list{gap:1.6mm !important}
  .cv .cv-tags{gap:1.5mm !important}
  .cv-refs{gap:3mm 6mm !important}
}
@media print{
  /* one-page documents: a little tighter so they fit one sheet */
  #pvBody[data-doc="One-page CV"] .cv,#pvBody[data-doc="Board or trustee profile"] .cv,#pvBody[data-doc="Funding or experience profile"] .cv,#pvBody[data-doc="Media kit"] .cv{font-size:.9rem !important;line-height:1.3 !important}
  #pvBody[data-doc="One-page CV"] .cv .cv-sec,#pvBody[data-doc="Board or trustee profile"] .cv .cv-sec,#pvBody[data-doc="Funding or experience profile"] .cv .cv-sec{margin-top:3mm !important}
  #pvBody[data-doc="One-page CV"] .cv-list,#pvBody[data-doc="Board or trustee profile"] .cv-list,#pvBody[data-doc="Funding or experience profile"] .cv-list{gap:1.1mm !important}
  #pvBody[data-doc="One-page CV"] .cv-photo,#pvBody[data-doc="Board or trustee profile"] .cv-photo{width:24mm !important;height:24mm !important}
  #pvBody[data-doc="One-page CV"] .cv .cv-name,#pvBody[data-doc="Board or trustee profile"] .cv .cv-name,#pvBody[data-doc="Funding or experience profile"] .cv .cv-name{font-size:1.65rem !important;margin-bottom:.2rem !important}
  #pvBody[data-doc="One-page CV"] .cv .cv-sec h4,#pvBody[data-doc="Board or trustee profile"] .cv .cv-sec h4,#pvBody[data-doc="Funding or experience profile"] .cv .cv-sec h4{margin-bottom:1.6mm !important}
  #pvBody[data-doc="One-page CV"] .cv-head,#pvBody[data-doc="Board or trustee profile"] .cv-head{padding-bottom:2.2mm !important}
  #pvBody[data-doc="One-page CV"] .cv .cv-tags li,#pvBody[data-doc="Board or trustee profile"] .cv .cv-tags li{padding:0 .5rem !important}
}

/* v3c: calmer home page */
#screen-home{max-width:960px;margin:0 auto}
#screen-home .hello{margin-bottom:1.25rem}
#screen-home .lead{margin:0}
#screen-home .quick{display:block;margin:0 0 1rem}
#screen-home .q-add{width:100%;box-shadow:none;padding:.85rem 1rem}
.pp-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:.45rem .9rem;margin:0 0 1rem}
.pp-banner p{margin:0;flex:1 1 16rem;font-size:.93rem}
.pp-banner p span{color:var(--muted)}
.pp-banner .pp-ico{width:30px;height:30px;border:0;background:var(--surface)}
.pp-banner .linkish{min-height:44px;padding:0 .2rem}
.pp-dismiss{color:var(--muted) !important;font-weight:600 !important}
html.contrast .pp-banner,html.yob .pp-banner{border:2px solid var(--text)}
html.contrast .pp-dismiss,html.yob .pp-dismiss{color:var(--text) !important}
.list-tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1.5rem 0 .4rem}
.list-tools .search-wrap{flex:1 1 18rem}
.type-filter{display:flex;align-items:center;gap:.5rem;flex:0 1 auto}
.type-filter label{font-weight:700;font-size:.93rem;color:var(--muted)}
.type-filter select{width:auto;min-width:11rem}
html.contrast .type-filter label,html.yob .type-filter label{color:var(--text)}
#screen-home .count{margin:.6rem 0 .2rem;font-weight:500;font-size:.88rem}
#screen-home .cards{display:block;gap:0;border-top:1px solid var(--line)}
#screen-home .cards li{display:block}
#screen-home .card{display:flex;flex-direction:column;gap:.2rem;height:auto;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:.95rem .5rem;transition:background-color .15s}
#screen-home .card:hover{background:var(--tint);border-color:var(--line);transform:none}
#screen-home .card:focus-visible{outline-offset:-3px}
.card-title{font-size:1.05rem;font-weight:700;line-height:1.35;color:var(--text)}
.card-sub{font-size:.88rem;color:var(--muted);line-height:1.45}
html.contrast #screen-home .cards,html.yob #screen-home .cards,html.contrast #screen-home .card,html.yob #screen-home .card{border-color:var(--text);border-width:0 0 1px}
html.contrast #screen-home .cards,html.yob #screen-home .cards{border-top-width:1px}
html.contrast #screen-home .card:hover,html.yob #screen-home .card:hover{background:transparent}
html.contrast #screen-home .card:hover .card-title,html.yob #screen-home .card:hover .card-title{text-decoration:underline}
#screen-home .empty{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
@media (min-width:768px){
  #screen-home .q-add{width:auto;display:inline-flex;flex-direction:row;align-items:center;gap:.85rem;min-width:28rem;padding:.8rem 1.1rem}
  #screen-home .q-add .qarrow{display:block;margin-left:auto;font-size:1.8rem;line-height:1}
  #screen-home .card{flex-direction:row;align-items:baseline;justify-content:space-between;gap:1.5rem;padding:1rem .75rem}
  #screen-home .card-sub{text-align:right;flex:0 1 45%}
}

/* ===== v3d Roadmap: "Your story so far" ===== */
.story-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin:2.2rem 0 1.4rem}
.story-head h2{margin:0;font-size:1.3rem;font-weight:700;color:var(--navy);letter-spacing:-.01em}
html.contrast .story-head h2,html.yob .story-head h2{color:var(--text)}
#screen-home .story-head .count{margin:0;font-weight:500;font-size:.92rem;color:var(--muted)}
.road{position:relative;--cols:4}
.road-svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:0}
.road-base{fill:none;stroke:#D3E2FB;stroke-width:16;stroke-linecap:round;stroke-linejoin:round}
.road-mid{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:9 11;stroke-linecap:round}
.road-end{fill:var(--navy);stroke:#fff;stroke-width:3}
.road-now{font:600 13px var(--font);fill:var(--muted)}
html.contrast .road-base{stroke:#000;stroke-width:5}
html.yob .road-base{stroke:#FFFF00;stroke-width:5}
html.contrast .road-mid,html.yob .road-mid{display:none}
html.contrast .road-end,html.yob .road-end{stroke:var(--text);fill:var(--text)}
html.contrast .road-now,html.yob .road-now{fill:var(--text)}
.roadmap{list-style:none;margin:0;padding:0;position:relative;z-index:1}
.roadmap .stops{list-style:none;margin:0;padding:0}
.roadmap .empty{padding:1.5rem 0;color:var(--muted)}
.sign{margin:0;display:flex;flex-direction:column;align-items:center;gap:.35rem}
.sign-y{display:inline-block;height:40px;line-height:40px;padding:0 1.05rem;border-radius:999px;background:var(--navy);color:#fff;font-size:1.15rem;font-weight:800;letter-spacing:.01em;box-shadow:0 2px 8px rgba(11,37,69,.18)}
.sign-n{font-size:.8rem;font-weight:500;color:var(--muted)}
html.contrast .sign-y{background:#000;color:#fff;box-shadow:none}
html.yob .sign-y{background:#FFFF00;color:#000;box-shadow:none}
.stop{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;text-decoration:none;color:var(--text);border-radius:12px;padding:0 .6rem .5rem}
.stop .dot{display:block;flex:none;width:18px;height:18px;margin:11px 0 .35rem;border-radius:50%;background:var(--surface);border:3px solid var(--primary);box-sizing:border-box;transition:background-color .15s,transform .15s}
.stop-title{order:3;font-size:.97rem;font-weight:600;line-height:1.35;max-width:15rem}
.stop-type{order:2;display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.05em}
.stop:hover .stop-title{text-decoration:underline;text-underline-offset:3px}
.stop:hover .dot{background:var(--primary);transform:scale(1.15)}
.stop:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.stop .new-badge{vertical-align:middle}
html.contrast .stop .dot,html.yob .stop .dot{border-color:var(--text)}
html.contrast .stop-type,html.yob .stop-type{color:var(--text)}
html.contrast .stop:hover .dot,html.yob .stop:hover .dot{background:var(--text)}
.yr-more{font:inherit;font-size:.88rem;font-weight:600;color:var(--primary);background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:.45rem 1rem;cursor:pointer;min-height:44px}
.yr-more:hover{border-color:var(--primary);background:var(--tint)}
.yr-more:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
html.contrast .yr-more,html.yob .yr-more{color:var(--text);border:2px solid var(--text)}
html.contrast .yr-more:hover,html.yob .yr-more:hover{background:var(--surface);text-decoration:underline}
/* winding (desktop/tablet) */
.road.w .yr{position:relative;padding-bottom:2.6rem}
.road.w .sign{position:absolute;top:0}
.road.w .stops{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));row-gap:2.6rem;align-items:start}
.road.w .yr-more{display:block;margin:.4rem auto 0}
.road.w{padding:0 4.5rem 3rem;margin:0 -2.5rem}
@media (max-width:1099px){.road.w{padding:0 3.5rem 3rem;margin:0}}
/* vertical (phone, large text) */
.road.v .road-svg{display:none}
.road.v .roadmap::before{content:"";position:absolute;left:19px;top:12px;bottom:12px;width:4px;border-radius:2px;background:#D3E2FB}
html.contrast .road.v .roadmap::before,html.yob .road.v .roadmap::before{background:var(--text)}
.road.v .yr{position:relative;padding:0 0 1.6rem}
.road.v .sign{flex-direction:row;align-items:center;gap:.7rem;margin-bottom:.4rem}
.road.v .sign-y{height:36px;line-height:36px;font-size:1.05rem;padding:0 .8rem}
.road.v .stops > li{position:relative}
.road.v .stop{flex-direction:column;align-items:flex-start;text-align:left;padding:.55rem .5rem .55rem 3.2rem;gap:.15rem}
.road.v .stop .dot{position:absolute;left:12px;top:.85rem;margin:0}
.road.v .stop-title{max-width:none}
.road.v .yr-more{margin:.3rem 0 0 3.2rem}
@media (prefers-reduced-motion:reduce){.stop .dot,.yr-more{transition:none!important}.stop:hover .dot{transform:none}}
html.reduce .stop .dot,html.reduce .yr-more{transition:none!important}
html.reduce .stop:hover .dot{transform:none}
@media print{.road-svg{display:none}}

/* ===== v3e View switcher: Roadmap / Cards / List + Order ===== */
.list-tools{row-gap:.75rem;column-gap:1.25rem}
.list-tools .search-wrap{flex:1 1 100%}
.view-switch{display:flex;align-items:center;gap:.5rem;flex:0 1 auto}
.vs-label{font-weight:700;font-size:.93rem;color:var(--muted)}
html.contrast .vs-label,html.yob .vs-label{color:var(--text)}
.vs-group{display:inline-flex;background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:3px;gap:2px}
.vs-group [role=radio]{display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.92rem;font-weight:600;color:var(--muted);background:transparent;border:0;border-radius:999px;padding:.4rem .9rem;min-height:40px;cursor:pointer;white-space:nowrap}
.vs-group [role=radio]:hover{color:var(--primary);background:var(--tint)}
.vs-group [role=radio][aria-checked=true]{background:var(--primary);color:var(--on-primary)}
.vs-group [role=radio]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.order-switch .vs-group [role=radio][aria-checked=true]{background:var(--navy);color:#fff}
html.contrast .vs-group,html.yob .vs-group{border:2px solid var(--text)}
html.contrast .vs-group [role=radio],html.yob .vs-group [role=radio]{color:var(--text)}
html.contrast .vs-group [role=radio]:hover,html.yob .vs-group [role=radio]:hover{background:transparent;text-decoration:underline}
html.contrast .vs-group [role=radio][aria-checked=true],html.yob .vs-group [role=radio][aria-checked=true],html.contrast .order-switch .vs-group [role=radio][aria-checked=true],html.yob .order-switch .vs-group [role=radio][aria-checked=true]{background:var(--text);color:var(--bg);text-decoration:none}
@media (min-width:1000px){.list-tools .search-wrap{flex:1 1 20rem}}
@media (max-width:640px){
  .view-switch{flex:1 1 100%}
  .vs-label{min-width:3.4rem}
  .vs-group{flex:1}
  .vs-group [role=radio]{flex:1;justify-content:center;padding:.4rem .45rem;gap:.3rem}
  .type-filter{flex:1 1 100%}.type-filter label{min-width:3.4rem}.type-filter select{flex:1}
}
/* type colour chip (Cards and List) */
.tchip{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--tcl);color:var(--tc);flex:none}
.tchip svg{width:15px;height:15px}
.card-sub .tchip{width:22px;height:22px;vertical-align:middle;margin:-2px .4rem 0 0}
.card-sub .tchip svg{width:13px;height:13px}
html.contrast .tchip,html.yob .tchip{background:transparent;color:var(--text);border:1.5px solid var(--text)}
/* Cards view */
.vgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:640px){.vgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:960px){.vgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}}
html.large .vgrid{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr))}
html.xlarge .vgrid{grid-template-columns:1fr}
.vgrid li{display:flex}
.vgrid .empty{padding:1.5rem 0;color:var(--muted)}
.vcard{flex:1;display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1rem 1.15rem 1rem;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .15s,box-shadow .15s}
.vcard:hover{border-color:var(--primary);box-shadow:0 4px 14px rgba(29,78,216,.10)}
.vcard:hover .vcard-title{text-decoration:underline;text-underline-offset:3px}
.vcard:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.vcard-type{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.vcard-title{font-size:1.02rem;font-weight:600;line-height:1.4;flex:1}
.vcard-year{font-size:.88rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
html.contrast .vcard,html.yob .vcard{border:2px solid var(--text);box-shadow:none}
html.contrast .vcard-type,html.yob .vcard-type,html.contrast .vcard-year,html.yob .vcard-year{color:var(--text)}
#listView .empty{padding:1.5rem .5rem;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.vcard{transition:none!important}}
html.reduce .vcard{transition:none!important}

/* ===== v3e Illustrated roadmap ===== */
.road.w{background:radial-gradient(55% 30% at 12% 8%,rgba(250,204,21,.10),transparent 70%),radial-gradient(50% 35% at 88% 55%,rgba(14,159,154,.06),transparent 70%),radial-gradient(60% 40% at 20% 85%,rgba(124,58,237,.05),transparent 70%),linear-gradient(180deg,#FAFCFF,#F1F6FE);border:1px solid #E3ECF9;border-radius:28px;padding-top:2.2rem}
.road.w .road-shadow{fill:none;stroke:rgba(11,37,69,.08);stroke-width:34;stroke-linecap:round;stroke-linejoin:round}
.road.w .road-edge{fill:none;stroke-width:30;stroke-linecap:round;stroke-linejoin:round}
.road.w .road-base{stroke-width:24}
.road.w .road-mid{stroke-width:2.5;stroke-dasharray:10 12;stroke:#fff}
.scenery .sc-hill{fill:var(--hill)}
.scenery .sc-hill.h2{fill:var(--hill2);opacity:.8}
.scenery .crown{fill:var(--tree)}
.scenery .t2 .crown{opacity:.8}
.scenery .shine{fill:#fff;opacity:.35}
.scenery .trunk{fill:var(--trunk)}
.scenery .sc-cloud{fill:#fff;stroke:#DCE7F8;stroke-width:1.2}
.scenery .sc-sun .glow{fill:url(#sunGrad)}
.scenery .sc-sun .disc{fill:#FACC15}
.scenery .sc-sun .rays path{stroke:#FACC15;stroke-width:2.5;stroke-linecap:round}
.road-end{fill:var(--navy)}
.reveal{fill:none;stroke:#fff;stroke-width:48;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:1;animation:roadDraw 1.6s ease-out forwards}
@keyframes roadDraw{to{stroke-dashoffset:0}}
.scenery.fade{animation:sceneFade 1.2s ease-out .3s both}
@keyframes sceneFade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.reveal,.scenery.fade{animation:none!important;stroke-dashoffset:0;opacity:1}}
html.reduce .reveal,html.reduce .scenery.fade{animation:none!important;stroke-dashoffset:0;opacity:1}
/* signposts */
.sign-y{background:var(--yc,var(--navy))}
.road.w .sign{gap:0;filter:drop-shadow(0 2px 4px rgba(11,37,69,.18))}
.road.w .sign-y{border-radius:6px;box-shadow:none;padding:0 1.3rem 0 .95rem;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%)}
.road.w .yr[data-start=r] .sign-y{padding:0 .95rem 0 1.3rem;clip-path:polygon(13px 0,100% 0,100% 100%,13px 100%,0 50%)}
.road.w .sign-n{position:relative;padding-top:15px;font-weight:600}
.road.w .sign-n::before{content:"";position:absolute;top:0;left:50%;width:4px;height:13px;margin-left:-2px;border-radius:0 0 2px 2px;background:#5B6B82}
/* milestone pins */
.road.w .stop .dot{display:grid;place-items:center;width:36px;height:36px;margin:2px 0 .4rem;border:2.5px solid var(--tc,var(--primary));background:var(--tcl,#fff);color:var(--tc,var(--primary));box-shadow:0 0 0 4px rgba(255,255,255,.85),0 3px 8px rgba(11,37,69,.16)}
.road.w .stop .dot svg{width:17px;height:17px}
.road.w .stop:hover .dot{background:var(--tc);color:#fff;transform:scale(1.08)}
.road.w .stop-type svg{display:none}
.stop .dot svg{display:none}
.road.w .stop .dot svg{display:block}
.road.w .stop-card{order:3;display:flex;flex-direction:column;align-items:center;gap:.25rem;background:rgba(255,255,255,.92);border:1px solid #E3ECF9;border-radius:12px;padding:.5rem .75rem .6rem;box-shadow:0 2px 6px rgba(11,37,69,.05);max-width:15.5rem}
.road.w .stop-type{color:var(--muted)}
.road.v .stop-card{display:contents}
.road.v .stop .dot{border-color:var(--tc,var(--primary))}
.road.v .stop:hover .dot{background:var(--tc,var(--primary))}
html.contrast .road.w,html.yob .road.w{background:var(--bg);border:2px solid var(--text)}
html.contrast .road.w .sign,html.yob .road.w .sign{filter:none}
html.contrast .sign-y{background:#000!important}
html.yob .sign-y{background:#FFFF00!important}
html.contrast .road.w .sign-n::before,html.yob .road.w .sign-n::before{background:var(--text)}
html.contrast .road.w .stop .dot,html.yob .road.w .stop .dot{border-color:var(--text);background:var(--surface);color:var(--text);box-shadow:none}
html.contrast .road.w .stop:hover .dot,html.yob .road.w .stop:hover .dot{background:var(--text);color:var(--bg)}
html.contrast .road.v .stop .dot,html.yob .road.v .stop .dot{border-color:var(--text)}
html.contrast .road.w .stop-card,html.yob .road.w .stop-card{background:var(--surface);border:2px solid var(--text);box-shadow:none}
html.contrast .road.w .stop-type,html.yob .road.w .stop-type{color:var(--text)}
html.contrast .road-end,html.yob .road-end{fill:var(--text)}

.road.w{padding-bottom:6.5rem}
.scenery .sc-band{opacity:.9}
@media (min-width:1000px){.list-tools .search-wrap{flex:1 1 32rem}}
html.contrast .road.w .road-base,html.yob .road.w .road-base{stroke-width:6}

/* v3f: Photo and logo side by side */
.pf-grid.pf-imgs{grid-template-columns:1fr;gap:.75rem 1rem}
.pf-imgfield{background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem .5rem;margin:0 0 .75rem}
.pf-imgfield .pf-hint{margin-bottom:.5rem}
.pf-imgfield .pf-img{gap:.75rem;flex-wrap:nowrap}
.pf-imgfield .pf-thumb{width:68px;height:68px;font-size:.72rem}
.pf-imgfield .pf-thumb.logo-thumb{width:96px}
.pf-imgfield .pf-img-btns{flex-direction:column;align-items:flex-start;gap:.25rem}
html.contrast .pf-imgfield,html.yob .pf-imgfield{border:2px solid var(--text)}
@media (min-width:600px){.pf-grid.pf-imgs{grid-template-columns:1fr 1fr}.pf-grid.pf-imgs .pf-wide{grid-column:auto}}
html.xlarge .pf-imgfield .pf-img{flex-wrap:wrap}

/* v3f: Share strip (My work, My profile) */
.share-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:12px;padding:.7rem .9rem;margin:0 0 1rem;box-shadow:var(--shadow)}
.share-ico{width:40px;height:40px;border-radius:12px;background:var(--tint-2);color:var(--primary);display:grid;place-items:center;flex:0 0 auto}
.share-txt{flex:1 1 19rem;min-width:0}
.share-h{margin:0;font-weight:800;font-size:1rem;line-height:1.3}
.share-sub{margin:.1rem 0 0;font-size:.9rem;color:var(--muted);overflow-wrap:anywhere}
.share-addr{display:inline-block;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;font-weight:700;color:var(--navy);background:var(--tint);border-radius:6px;padding:.05rem .4rem}
.share-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.share-btns .btn{gap:.4rem}
#screen-profile .share-strip{margin:.25rem 0 1.1rem}
html.contrast .share-strip,html.yob .share-strip{border:2px solid var(--text);border-left-width:6px}
html.contrast .share-ico,html.yob .share-ico{background:transparent;border:2px solid currentColor}
html.contrast .share-addr,html.yob .share-addr{color:var(--text);background:transparent;border:1px solid var(--text)}
@media (max-width:599px){.share-btns{width:100%}.share-btns .btn{flex:1 1 100%}}
.pub-links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:.2rem 0 0}
.pub-links .linkish{min-height:44px;display:inline-flex;align-items:center}
.add-switch{margin-top:.4rem}
#addPubHint{margin:.4rem 0 1rem}

/* v3f: Website code panel */
dialog.embed-dlg{max-width:820px;padding:1.3rem 1.4rem}
.emb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.emb-x{flex:0 0 auto;width:44px;height:44px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);font-size:1.6rem;line-height:1;cursor:pointer;margin:-.3rem -.3rem 0 0}
.emb-x:hover{background:var(--tint)}
.emb-auto{display:flex;gap:.6rem;align-items:flex-start;background:#ECFDF5;border:1px solid #A7F3D0;color:#065F46;border-radius:12px;padding:.6rem .8rem;margin:0 0 1rem;font-size:.93rem}
.emb-tick{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#047857;color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:800}
.emb-lbl{display:block;font-weight:800;margin:0 0 .35rem}
.emb-code-row{display:flex;gap:.6rem;align-items:stretch}
#embCode{flex:1;min-width:0;font:600 .84rem/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text);background:var(--tint);border:1.5px solid var(--field);border-radius:10px;padding:.55rem .7rem;resize:none}
#embCopy{min-width:7.5rem}
.emb-h3{font-size:1.05rem;margin:1.25rem 0 .45rem}
.emb-cap{margin:.4rem 0 0;color:var(--muted);font-size:.88rem}
.emb-preview{border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.emb-bar{display:flex;align-items:center;gap:.35rem;background:#E2E8F0;padding:.45rem .7rem}
.emb-bar i{width:10px;height:10px;border-radius:50%;background:#94A3B8;display:block}
.emb-url{margin-left:.5rem;background:#fff;border-radius:999px;padding:.12rem .7rem;font-size:.78rem;color:#334155;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.emb-site{padding:.8rem .9rem 0;background:#FAFAF9}
.emb-site-name{margin:0 0 .6rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;font:700 1.05rem Georgia,"Times New Roman",serif;color:#292524;border-bottom:1px solid #E7E5E4;padding-bottom:.5rem}
.emb-site-name small{font:500 .78rem var(--font);color:#57534E;align-self:center}
#embFrame{display:block;width:100%;height:380px;border:0;background:#fff}
.emb-steps{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem}
.emb-step{background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:.65rem .85rem}
.emb-step h4{margin:0 0 .25rem;font-size:1rem;color:var(--navy)}
.emb-step ol{margin:0;padding-left:1.2rem;font-size:.9rem}
.emb-step li{margin:.15rem 0}
.emb-proto{display:flex;align-items:center;gap:.45rem;margin:1rem 0 0;background:var(--tint-2);color:#1E3A8A;font-weight:700;font-size:.88rem;border-radius:10px;padding:.5rem .75rem}
.emb-proto .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.embed-dlg .dlg-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-top:1rem}
html.contrast .emb-auto,html.yob .emb-auto{background:transparent;color:var(--text);border:2px solid var(--text)}
html.contrast .emb-tick{background:#000;color:#fff}
html.yob .emb-tick{background:#FFFF00;color:#000}
html.contrast .emb-step,html.yob .emb-step,html.contrast .emb-preview,html.yob .emb-preview{border:2px solid var(--text)}
html.contrast .emb-step h4,html.yob .emb-step h4{color:var(--text)}
html.contrast .emb-proto,html.yob .emb-proto{color:var(--text);border:2px solid var(--text)}
html.contrast .emb-x,html.yob .emb-x{border:2px solid var(--text)}
html.contrast #embCode,html.yob #embCode{background:var(--surface)}
@media (max-width:640px){dialog.embed-dlg{padding:1rem;width:calc(100% - 1rem);max-height:calc(100vh - 1rem)}.emb-steps{grid-template-columns:1fr}.emb-code-row{flex-direction:column}#embCopy{width:100%}#embCode{min-height:8.2em}#embFrame{height:420px}.emb-site{padding:.6rem .6rem 0}.embed-dlg .dlg-actions .btn{flex:1 1 100%}}

/* v3f: Public page (/public/) */
.pub-body{padding-bottom:0;background:var(--bg)}
.pub-owner{background:var(--tint-2);color:#1E3A8A;font-size:.85rem;font-weight:600}
.pub-owner-in{max-width:900px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;padding:.45rem 1rem}
.pub-owner-txt{margin:0;display:flex;align-items:center;gap:.4rem}
.pub-owner .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.pub-addr{margin:0;display:inline-flex;align-items:center;gap:.35rem;background:#fff;color:var(--navy);border:1px solid #BFDBFE;border-radius:999px;padding:.15rem .75rem;font-weight:700}
.pub-back{gap:.3rem;margin-left:auto;color:#1E3A8A;font-weight:700;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:3px}
.pub-hero{background:var(--navy);color:var(--on-navy)}
.pub-hero-in{max-width:900px;margin:0 auto;display:flex;align-items:center;gap:1.25rem;padding:2.25rem 1rem 2rem}
.pub-avatar{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#3B82F6,#1D4ED8);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.9rem;flex:0 0 auto;overflow:hidden;box-shadow:0 0 0 4px rgba(255,255,255,.18)}
.pub-avatar img{width:100%;height:100%;object-fit:cover}
.pub-id{min-width:0}
.pub-id h1{color:var(--on-navy);margin:0;font-size:2rem;line-height:1.2;letter-spacing:-.01em}
.pub-title{margin:.3rem 0 0;color:var(--on-navy-muted);font-size:1.08rem}
.pub-contact{margin:.5rem 0 0;font-size:.95rem;color:var(--on-navy-muted)}
.pub-contact a{color:#fff;font-weight:700;text-underline-offset:3px}
.pub-hero :focus-visible{outline-color:var(--focus-on-dark)}
.pub-main{max-width:900px;margin:0 auto;padding:1.5rem 1rem 2rem}
.pub-main:focus{outline:none}
.pub-tools{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1rem;margin-bottom:1rem}
.pub-work-h{margin:0;font-size:1.5rem}
.pub-count{margin:.1rem 0 0;color:var(--muted)}
.pub-group{display:flex;align-items:center;gap:.5rem}
.pub-grp{margin:0 0 1.4rem}
.pub-grp h3{display:flex;align-items:center;gap:.6rem;margin:0 0 .6rem;font-size:1.15rem;color:var(--navy)}
.pub-grp h3::after{content:"";flex:1;height:2px;background:var(--line);border-radius:2px}
.pub-grp h3 small{order:2;font-size:.78rem;font-weight:700;color:var(--primary);background:var(--tint-2);border-radius:999px;padding:.05rem .55rem}
.pub-grp ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.pub-item{display:flex;gap:.85rem;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.8rem .95rem;box-shadow:var(--shadow)}
.pub-ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:var(--tint-2);color:var(--primary)}
.pub-ico.tone-violet{background:#EDE9FE;color:#6D28D9}.pub-ico.tone-teal{background:#CCFBF1;color:#0F766E}.pub-ico.tone-coral{background:#FFE4E0;color:#C2410C}
.pub-ico.tone-green{background:#DCFCE7;color:#15803D}.pub-ico.tone-amber{background:#FEF3C7;color:#B45309}
.pub-it{min-width:0}
.pub-type{margin:0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pub-ttl{margin:.1rem 0 0;font-size:1.02rem;line-height:1.35;overflow-wrap:anywhere}
.pub-ttl a{color:var(--link);text-underline-offset:3px}
.pub-meta{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}
.pub-empty{background:var(--surface);border:1.5px dashed var(--field);border-radius:12px;padding:1.25rem;text-align:center}
.pub-foot{border-top:1px solid var(--line);background:var(--surface)}
.pub-foot p{max-width:900px;margin:0 auto;padding:1rem;color:var(--muted);font-size:.88rem}
.pub-foot a{color:var(--link);font-weight:700}
html.contrast .pub-owner,html.yob .pub-owner{color:var(--text);border-bottom:2px solid var(--text)}
html.contrast .pub-back,html.yob .pub-back{color:var(--text)}
html.contrast .pub-addr,html.yob .pub-addr{background:transparent;color:var(--text);border:2px solid var(--text)}
html.contrast .pub-hero,html.yob .pub-hero{border-bottom:3px solid var(--text)}
html.contrast .pub-contact a,html.yob .pub-contact a{color:var(--on-navy)}
html.contrast .pub-avatar,html.yob .pub-avatar{background:var(--surface);color:var(--text);border:3px solid var(--text);box-shadow:none}
html.contrast .pub-item,html.yob .pub-item{border:2px solid var(--text)}
html.contrast .pub-ico,html.yob .pub-ico{background:transparent !important;color:var(--text) !important;border:2px solid var(--text)}
html.contrast .pub-grp h3,html.yob .pub-grp h3{color:var(--text)}
html.contrast .pub-grp h3 small,html.yob .pub-grp h3 small{background:transparent;color:var(--text);border:1px solid var(--text)}
html.contrast .pub-grp h3::after,html.yob .pub-grp h3::after{background:var(--text)}
@media (max-width:599px){
  .pub-hero-in{padding:1.4rem 1rem 1.3rem;gap:.9rem}
  .pub-avatar{width:64px;height:64px;font-size:1.4rem}
  .pub-id h1{font-size:1.5rem}
  .pub-title{font-size:.98rem}
  .pub-back{margin-left:0}
  .pub-group{width:100%}.pub-group .vs-group{flex:1}.pub-group [role=radio]{flex:1;justify-content:center}
}
/* Embedded on someone's website */
html.embed .pub-body,html.embed body{background:#fff}
html.embed .pub-owner,html.embed .pub-hero,html.embed .skip{display:none}
html.embed .pub-main{padding:.4rem .6rem 1rem;max-width:none}
html.embed .pub-work-h{font-size:1.25rem}
html.embed .pub-item{box-shadow:none}
html.embed .pub-foot{border:0;background:transparent}
html.embed .pub-foot p{padding:.2rem .6rem 1rem;max-width:none}
html.embed.yob body{background:#000}
@media print{.share-strip,.pub-links,#embedDialog,.pub-owner{display:none !important}}

/* v3f: Navy & Gold roadmap */
.road.w .sign-y,.sign-y{background:#0B2545 !important;color:#E9D8A6;box-shadow:inset 0 -3px 0 #C9A227}
.road.w .sign-n::before{background:#C9A227}
.road.w .stop .dot{background:var(--tc,var(--primary));color:var(--ti,#fff);border-color:var(--tb,var(--navy))}
.road.w .stop:hover .dot{background:var(--tc);color:var(--ti,#fff);box-shadow:0 0 0 4px rgba(201,162,39,.45)}
.road.v .stop .dot{background:var(--tc,var(--primary));border-color:var(--tb,var(--navy));border-width:2.5px}
.road.v .stop:hover .dot{background:var(--tc,var(--primary));box-shadow:0 0 0 3px rgba(201,162,39,.5)}
.tchip{background:var(--tc);color:var(--ti,#fff);box-shadow:inset 0 0 0 1.5px var(--tb,transparent)}
.scenery .sc-sun .glow{fill:url(#sunGrad)}
.scenery .sc-sun .disc{fill:#C9A227}
.scenery .sc-sun .rays path{stroke:#C9A227}
.scenery .sc-cloud{fill:#fff;stroke:#DCE3EC}
.scenery .shine{opacity:.25}
.road.w .road-mid{stroke:rgba(255,255,255,.85)}
html.contrast .sign-y,html.yob .sign-y{box-shadow:none}
html.contrast .sign-y{background:#000 !important;color:#fff}
html.yob .sign-y{background:#FFFF00 !important;color:#000}
html.contrast .tchip,html.yob .tchip{background:transparent;color:var(--text);box-shadow:none}
html.contrast .road.v .stop .dot,html.yob .road.v .stop .dot{background:var(--surface);border-color:var(--text)}
html.contrast .road.w .stop .dot,html.yob .road.w .stop .dot{background:var(--surface);color:var(--text);border-color:var(--text)}
/* public page type icons use the same palette */
.pub-ico{background:var(--tc,#1D4ED8);color:var(--ti,#fff);box-shadow:inset 0 0 0 1.5px var(--tb,transparent)}
html.contrast .pub-ico,html.yob .pub-ico{box-shadow:none}

/* ===================================================================
   v3g: Navy & Gold, premium finish (header, title band, type, buttons)
   =================================================================== */
@font-face{font-family:"BOW Display";src:url(fonts/playfair-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"BOW Display";src:url(fonts/playfair-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"BOW Display";src:url(fonts/playfair-700.woff2) format("woff2");font-weight:700 900;font-style:normal;font-display:swap}
@font-face{font-family:"BOW Display";src:url(fonts/playfair-500i.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"BOW Sans";src:url(fonts/inter-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"BOW Sans";src:url(fonts/inter-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"BOW Sans";src:url(fonts/inter-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"BOW Sans";src:url(fonts/inter-700.woff2) format("woff2");font-weight:700 900;font-display:swap}
:root{
  --font:"BOW Sans",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --serif:"BOW Display","Playfair Display",Georgia,"Times New Roman",serif;
  --navy:#0B2545; --navy-2:#13315C; --blue:#1D4ED8; --dusty:#8DA9C4; --gold:#C9A227; --gold-pale:#E9D8A6; --gold-line:#A8861C; --gold-deep:#7A6114;
  --bg:#F7F5EF; --surface:#fff; --tint:#F4F0E4; --tint-2:#E7EDF4;
  --text:#0F172A; --muted:#4A5466; --line:#E3DDCF; --field:#6B7280;
  --primary:#0B2545; --primary-hover:#13315C; --on-primary:#fff; --link:#13315C;
  --on-navy:#fff; --on-navy-muted:#C9D6E5; --credit:#E9D8A6;
  --accent:#A8861C; --focus:#0B2545; --focus-on-dark:#E9D8A6;
  --edit-bg:#FBFAF6; --shadow:0 1px 2px rgba(11,37,69,.04);
  --radius:10px;
  --band:#13315C; --band-text:#fff; --band-muted:#C9D6E5; --band-eyebrow:#E9D8A6; --band-rule:#C9A227;
}
html.contrast{--navy-2:#fff;--gold:#000;--gold-pale:#000;--gold-line:#000;--gold-deep:#000;--dusty:#000;--band:#fff;--band-text:#000;--band-muted:#000;--band-eyebrow:#000;--band-rule:#000;--bg:#fff;--line:#000;--tint:#fff;--tint-2:#fff;--muted:#000;--primary:#000;--primary-hover:#000;--link:#000;--accent:#000;--focus:#000;--focus-on-dark:#000;--credit:#000;--on-navy-muted:#000;--field:#000}
html.yob{--navy-2:#000;--gold:#FFFF00;--gold-pale:#FFFF00;--gold-line:#FFFF00;--gold-deep:#FFFF00;--dusty:#FFFF00;--band:#000;--band-text:#FFFF00;--band-muted:#FFFF00;--band-eyebrow:#FFFF00;--band-rule:#FFFF00;--bg:#000;--line:#FFFF00;--tint:#000;--tint-2:#000;--muted:#FFFF00;--primary:#FFFF00;--primary-hover:#FFFF00;--link:#FFFF00;--accent:#FFFF00;--focus:#fff;--focus-on-dark:#fff;--credit:#FFFF00;--on-navy-muted:#FFFF00;--field:#FFFF00}
html,body{overflow-x:clip}
body{background:var(--bg)}
html.easy{--serif:Verdana,Tahoma,"Atkinson Hyperlegible",Arial,sans-serif}

/* prototype strip: pale gold, quiet */
.proto-banner{background:#F3EBD3;color:#3A3220;font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.32rem .75rem}
.proto-banner .dot{background:var(--gold-line);width:6px;height:6px}
html.contrast .proto-banner,html.yob .proto-banner{background:var(--surface);color:var(--text);text-transform:none;letter-spacing:.01em}
html.contrast .proto-banner .dot,html.yob .proto-banner .dot{background:var(--text)}

/* top bar: navy with a fine gold hairline */
.topbar{background:var(--navy);box-shadow:inset 0 -1px 0 var(--gold),0 6px 18px rgba(11,37,69,.10)}
html.contrast .topbar,html.yob .topbar{box-shadow:none}
.topbar-in{min-height:64px}
.logo{width:40px;height:40px;border-radius:9px;background:var(--navy);color:var(--gold-pale);font-family:var(--serif);font-weight:600;font-size:1.45rem;line-height:1;box-shadow:inset 0 0 0 1px var(--gold),inset 0 0 0 3px var(--navy),inset 0 0 0 4px rgba(201,162,39,.45);padding-bottom:2px;box-sizing:border-box}
html.contrast .logo{background:#000;color:#fff;box-shadow:none}
html.yob .logo{background:#FFFF00;color:#000;box-shadow:none}
.brand-words strong{font-family:var(--serif);font-weight:500;font-size:1.28rem;letter-spacing:.005em}
.brand-words small{color:var(--credit);font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-top:.12rem}
.display-btn{border:1px solid rgba(233,216,166,.65);color:var(--on-navy);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:.35rem .95rem}
.display-btn:hover{background:rgba(233,216,166,.10);border-color:var(--gold-pale)}
html.contrast .display-btn,html.yob .display-btn{border:2px solid var(--on-navy);text-transform:none;letter-spacing:0;font-size:.85rem}
@media (min-width:768px){
  .topnav{gap:.15rem}
  .topnav button{text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:600;color:var(--on-navy-muted);padding:.5rem .85rem}
  .topnav button svg{width:17px;height:17px;stroke-width:1.75}
  .topnav button:hover{background:transparent;color:#fff}
  .topnav button[aria-current=page]{background:transparent;color:#fff}
  .topnav button[aria-current=page]::after{left:.85rem;right:.85rem;bottom:-.62rem;height:2px;border-radius:0;background:var(--gold)}
  .topnav button:hover:not([aria-current=page])::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:-.62rem;height:1px;background:rgba(233,216,166,.5)}
  html.contrast .topnav button,html.yob .topnav button{text-transform:none;letter-spacing:0;font-size:.93rem;color:var(--on-navy)}
  html.contrast .topnav button[aria-current=page],html.yob .topnav button[aria-current=page]{background:var(--text);color:var(--surface)}
  html.contrast .topnav button:hover::after,html.yob .topnav button:hover::after{display:none}
  html.large .topnav button,html.xlarge .topnav button{letter-spacing:.04em}
}
@media (min-width:768px) and (max-width:1023px){.topnav button{letter-spacing:.05em;padding:.5rem .55rem}}

/* the branded title band under the header, on every screen */
.page-head{position:relative;isolation:isolate;color:var(--band-text);margin:-1.25rem 0 2rem;padding:2.6rem 0 2.4rem}
.page-head::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;background-color:var(--band);background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='360' viewBox='0 0 720 360' fill='none'%3E%3Ccircle cx='720' cy='360' r='40' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='58' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='76' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='94' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='112' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='130' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='148' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='166' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='184' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='202' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='220' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='238' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='256' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='274' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='292' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='310' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='328' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='346' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='364' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='382' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='400' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='418' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='436' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='454' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='472' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='490' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='508' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='526' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='544' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='562' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='580' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='598' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='616' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='634' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='652' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='670' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='688' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='706' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='724' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='742' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='292' stroke='%23C9A227' stroke-opacity='.45' stroke-width='1'/%3E%3C/svg%3E"),linear-gradient(180deg,rgba(11,37,69,.55),rgba(11,37,69,0) 38%);background-repeat:no-repeat;background-position:right -40px center,0 0;background-size:auto 150%,100% 100%}
.page-head::after{content:"";position:absolute;z-index:-1;bottom:0;left:calc(50% - 50vw);width:100vw;height:1px;background:linear-gradient(90deg,rgba(201,162,39,0),rgba(201,162,39,.55) 30%,rgba(201,162,39,.55) 70%,rgba(201,162,39,0))}
.page-head h1{font-family:var(--serif);font-weight:500;color:var(--band-text);font-size:2.6rem;line-height:1.12;letter-spacing:0;margin:.15rem 0 0}
.page-head h1::after{content:"";display:block;width:44px;height:2px;background:var(--band-rule);margin:1rem 0 0}
.page-head .lead{color:var(--band-muted);font-size:1.05rem;margin:.95rem 0 0;max-width:42em}
.page-head .eyebrow,.page-head .who,.page-head .type-tag{margin:0 0 .35rem;color:var(--band-eyebrow);font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.page-head .type-tag:empty{display:none}
.page-head .back{color:var(--band-text);font-weight:600;font-size:.9rem;margin:-.9rem 0 .8rem;text-decoration-color:rgba(233,216,166,.7);text-underline-offset:4px}
.page-head .back:hover{text-decoration-color:var(--gold)}
.page-head :focus-visible{outline-color:var(--focus-on-dark)}
#screen-home .page-head{margin-bottom:2rem}
#screen-home .page-head .lead{margin-top:.95rem}
html.contrast .page-head::before,html.yob .page-head::before{background-image:none;border-bottom:3px solid var(--text)}
html.contrast .page-head::after,html.yob .page-head::after{display:none}
html.large .page-head::before,html.xlarge .page-head::before{background-image:none}
html.large .page-head::after,html.xlarge .page-head::after{display:none}
html.contrast .page-head :focus-visible,html.yob .page-head :focus-visible{outline-color:var(--focus)}
@media (max-width:767px){
  .page-head{padding:1.7rem 0 1.6rem;margin-bottom:1.5rem}
  .page-head h1{font-size:2rem}
  .page-head h1::after{margin-top:.75rem;width:36px}
  .page-head .lead{font-size:.98rem;margin-top:.7rem}
  .page-head::before{background-size:auto 130%,100% 100%;background-position:right -160px center,0 0}
  .page-head .back{margin:-.5rem 0 .5rem}
}
html.large .page-head h1{font-size:2.9rem}
html.xlarge .page-head h1{font-size:3.1rem}
@media (max-width:767px){html.large .page-head h1,html.xlarge .page-head h1{font-size:2.3rem}}

/* headings and section titles: the display serif */
h1{font-family:var(--serif);font-weight:500;letter-spacing:0}
h2,.story-head h2,.pv-head h2,dialog h2,.pub-work-h{font-family:var(--serif);font-weight:500;letter-spacing:0;color:var(--navy)}
.story-head h2{font-size:1.55rem;font-weight:500}
html.contrast h2,html.yob h2,html.contrast .story-head h2,html.yob .story-head h2{color:var(--text)}
dialog h2{font-size:1.5rem}

/* buttons: navy solid; secondary with a gold hairline */
.btn{border-radius:8px;font-weight:600;letter-spacing:.02em;border-width:1px}
.btn:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.btn.secondary{background:var(--surface);color:var(--navy);border:1px solid var(--gold-line)}
.btn.secondary:hover{background:#FBF7EA;border-color:var(--gold-deep)}
.btn.secondary[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
html.contrast .btn.secondary,html.yob .btn.secondary{color:var(--text);border:2px solid var(--text)}
html.contrast .btn.secondary[aria-pressed=true],html.yob .btn.secondary[aria-pressed=true]{background:var(--text);color:var(--surface)}
html.contrast .btn,html.yob .btn{border-width:2px}
.q-add{background:var(--primary);border-color:var(--primary);border-radius:var(--radius)}
.q-add:hover{background:var(--primary-hover)}
.q-add .qico{background:transparent;color:var(--gold-pale);box-shadow:inset 0 0 0 1px rgba(233,216,166,.6);border-radius:50%}
.q-add strong{font-family:var(--serif);font-weight:500;font-size:1.15rem;letter-spacing:.005em}
.q-add small{color:#D6DFEA}
html.contrast .q-add .qico,html.yob .q-add .qico{color:var(--on-primary);box-shadow:inset 0 0 0 2px currentColor}
html.contrast .q-add small,html.yob .q-add small{color:var(--on-primary)}

/* cards and panels: fine hairlines instead of heavy shadows */
.card,.qcard,.filter-box,.share-strip,.vcard,.pub-item,.reminder,.acc,.cv{box-shadow:none}
.card:hover,.qcard:hover{border-color:var(--gold-line);transform:none}
.type{color:var(--navy-2);letter-spacing:.12em;font-weight:700}
.type-tag{letter-spacing:.14em}
.share-strip{border-left:3px solid var(--gold)}
.share-ico{background:var(--navy);color:var(--gold-pale);border-radius:50%}
html.contrast .share-ico,html.yob .share-ico{color:var(--text)}
.reminder{border-left:3px solid var(--gold)}
.new-badge{background:var(--navy);color:var(--gold-pale);letter-spacing:.08em}
html.contrast .new-badge{background:#000;color:#fff}
html.yob .new-badge{background:#FFFF00;color:#000}
.chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary)}
.vs-group{border:1px solid var(--line)}
.vs-group [role=radio]:hover{color:var(--navy);background:var(--tint)}
.vs-group [role=radio][aria-checked=true]{background:var(--primary);color:var(--on-primary);box-shadow:inset 0 -2px 0 var(--gold)}
html.contrast .vs-group [role=radio][aria-checked=true],html.yob .vs-group [role=radio][aria-checked=true]{box-shadow:none}
.profile-prompt{border:1px dashed var(--gold-line);background:#FBF8EE}
.profile-prompt strong{color:var(--navy)}
.pp-banner{background:#FBF8EE;border-color:var(--line)}
html.contrast .profile-prompt,html.yob .profile-prompt{background:var(--surface);border:2px dashed var(--text)}
html.contrast .pp-banner,html.yob .pp-banner{background:var(--surface)}
input[type=radio],input[type=checkbox]{accent-color:var(--navy)}
html.yob input[type=radio],html.yob input[type=checkbox]{accent-color:#FFFF00}
.tabbar button[aria-current=page]{color:var(--navy)}
.tabbar button[aria-current=page] svg{background:#F3EBD3;box-shadow:inset 0 -2px 0 var(--gold)}
html.contrast .tabbar button[aria-current=page],html.yob .tabbar button[aria-current=page]{color:var(--text)}
html.contrast .tabbar button[aria-current=page] svg,html.yob .tabbar button[aria-current=page] svg{box-shadow:none}

/* public page: same finish */
.pub-owner{background:#F3EBD3;color:#3A3220}
.pub-addr{border-color:var(--gold-line);color:var(--navy)}
.pub-back{color:var(--navy)}
.pub-hero{position:relative;isolation:isolate;background-color:var(--band);background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='360' viewBox='0 0 720 360' fill='none'%3E%3Ccircle cx='720' cy='360' r='40' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='58' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='76' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='94' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='112' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='130' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='148' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='166' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='184' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='202' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='220' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='238' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='256' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='274' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='292' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='310' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='328' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='346' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='364' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='382' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='400' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='418' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='436' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='454' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='472' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='490' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='508' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='526' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='544' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='562' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='580' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='598' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='616' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='634' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='652' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='670' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='688' stroke='%238DA9C4' stroke-opacity='0.26' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='706' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='724' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='742' stroke='%238DA9C4' stroke-opacity='0.16' stroke-width='1'/%3E%3Ccircle cx='720' cy='360' r='292' stroke='%23C9A227' stroke-opacity='.45' stroke-width='1'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right -40px center;background-size:auto 160%;box-shadow:inset 0 1px 0 var(--gold),inset 0 -1px 0 rgba(201,162,39,.55)}
.pub-id h1{font-family:var(--serif);font-weight:500;font-size:2.5rem;letter-spacing:0;color:var(--band-text)}
.pub-id h1::after{content:"";display:block;width:44px;height:2px;background:var(--band-rule);margin:.8rem 0 .2rem}
.pub-title{color:var(--band-muted)}
.pub-avatar{background:var(--navy);color:var(--gold-pale);font-family:var(--serif);font-weight:500;box-shadow:0 0 0 1px var(--gold),0 0 0 5px rgba(201,162,39,.18)}
.pub-grp h3{font-family:var(--serif);font-weight:500;font-size:1.3rem}
.pub-grp h3::after{height:1px;background:linear-gradient(90deg,var(--gold-line),rgba(168,134,28,.15))}
.pub-grp h3 small{color:var(--navy);background:#F3EBD3;font-family:var(--font)}
html.contrast .pub-hero,html.yob .pub-hero{background-image:none;box-shadow:none}
html.large .pub-hero,html.xlarge .pub-hero{background-image:none}
html.contrast .pub-owner,html.yob .pub-owner{background:var(--surface)}
html.contrast .pub-grp h3 small,html.yob .pub-grp h3 small{background:transparent;color:var(--text);border:1px solid var(--text)}
html.contrast .pub-grp h3::after,html.yob .pub-grp h3::after{background:var(--text)}
@media (max-width:640px){.pub-id h1{font-size:1.85rem}.pub-hero{background-size:auto 130%;background-position:right -170px center}}
html.embed .pub-hero{box-shadow:none}

main{padding-top:1.5rem}
.page-head{margin-top:-1.5rem}
.cv .cv-name{font-family:var(--serif);font-weight:500;letter-spacing:0}
.pv-head h2{font-size:1.6rem}
.acc-count,.acc-peek{font-family:var(--font)}
.display-btn span{white-space:nowrap}
@media (max-width:599px){
  .d-opt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .topbar-in{flex-wrap:nowrap;gap:.5rem}
  .display-btn{padding:.35rem .7rem;font-size:.72rem;letter-spacing:.06em;flex:0 0 auto}
  .brand{min-width:0}
  .page-head .who{letter-spacing:.12em}
}
@media (max-width:599px){html.large .topbar-in,html.xlarge .topbar-in{flex-wrap:wrap}}
@media (max-width:599px){.proto-banner{text-transform:none;letter-spacing:.01em;font-size:.76rem}}
html.contrast .road.w .sign-y,html.contrast .road .sign-y{background:#000 !important;color:#fff;box-shadow:none}
html.yob .road.w .sign-y,html.yob .road .sign-y{background:#FFFF00 !important;color:#000;box-shadow:none}
@media print{.page-head{display:none !important}}

/* v3h: My work order. Slim share strip below the work list */
#screen-home .share-slim{flex-wrap:nowrap;gap:.75rem;padding:.45rem .55rem .45rem .9rem;margin:1.75rem 0 .5rem;border-radius:10px}
#screen-home .share-slim .share-ico{width:30px;height:30px}
#screen-home .share-slim .share-h{flex:1 1 auto;min-width:0;font-size:.95rem;font-weight:600}
#screen-home .share-slim .share-count{font-weight:400;font-size:.85rem;color:var(--muted);white-space:nowrap}
#screen-home .share-slim .share-btns{flex:0 0 auto;flex-wrap:nowrap}
@media (max-width:899px){#screen-home .share-slim .share-count{display:none}}
@media (max-width:767px){#screen-home .share-slim{flex-wrap:wrap;padding:.6rem .7rem}#screen-home .share-slim .share-h{flex:1 1 12rem}#screen-home .share-slim .share-btns{width:100%;flex-wrap:wrap}#screen-home .share-slim .share-btns .btn{flex:1 1 10rem}}
#screen-home .pp-banner{margin-top:.25rem}

/* v3i: tailor to an event */
.ev-two{display:grid;grid-template-columns:1fr;gap:0 1rem}
#evTheme{min-height:72px}
@media (min-width:640px){#evName{max-width:32rem}}
#eventBox .pf-field{margin-bottom:.8rem}
#eventBox .pf-field>label{display:block;font-weight:700;margin-bottom:.3rem}
.ev-theme-hint{margin:.3rem 0 0}
.ev-example{margin-top:.25rem}
.ev-read:empty{display:none}
.ev-read{margin:.3rem 0 0;color:var(--text);font-weight:600}
.ev-foot{margin:.1rem 0 .4rem}
.ev-note{background:var(--tint);border:1.5px solid var(--field);border-radius:10px;padding:.7rem .9rem;margin:0 0 1rem;font-size:.95rem}
.ev-note p{margin:0}
.ev-note p+p{margin-top:.3rem}
html.contrast .ev-note,html.yob .ev-note{border-color:var(--text)}
.email-subj{margin:.2rem 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}

/* v3j: short paragraphs with real spacing in bios and long text */
.cv p.bio-text,.cv .cv-sec p.bio-text,.cv p.txt-p,.cv .cv-sec p.txt-p{margin:0 0 .85em}
.cv p.bio-text:last-child,.cv .cv-sec p.bio-text:last-child,.cv p.txt-p:last-child,.cv .cv-sec p.txt-p:last-child{margin-bottom:0}
