/* Shaadi Vaala Ghar — the new look (views/preview/, named for how it began as the
   redesign preview; the house wears it with HQ_LOOK=new since 27 September,
   and HQ_PREVIEW shows it as a draft). Nothing else loads this file, and
   everything in it is under body.pv.

   The direction (27 September, evening; his third brief, with apple.com beside it):
   one thing at a time, at scale, and everything else lower in voice.
   - A white page. Ivory ("paper") only where the wedding itself speaks: the foot
     of their photograph on the home, a day's head, the four cards' table, an
     album still waiting for its day, the word from the two of them.
   - Their identity in type: Akshita & Mohit in Newsreader, the ampersand in the
     gold of their cards; the titles of what is theirs (an album, a day, a card, a
     story) in the same face. Everything that is work in the device's own type.
   - Photographs lead; chrome recedes. No icon where a picture, a face or a word
     will do. Dark ink; wine for the one thing to do and what is chosen; gold for
     the lotus, the ampersand, a pin, a star.
   - One geometry: controls 8px (buttons, fields, filters, menus' rows 6 inside
     12), posts and cards 12px, pictures 8px (a mosaic 4px), dialogs 16px, faces
     and icon-only buttons round. One height for buttons (40, small 34), fields 44.
   - Each kind of page is a bounded column centred beside the rooms; the rooms are
     a column of their own, divided from the page by one hairline. */

@font-face{font-family:"Newsreader Display"; src:url(/preview-fonts/newsreader-display.woff2) format("woff2"); font-weight:400; font-style:normal; font-display:swap}
@font-face{font-family:"Newsreader Title"; src:url(/preview-fonts/newsreader-title.woff2) format("woff2"); font-weight:500; font-style:normal; font-display:swap}
@font-face{font-family:"Newsreader Text"; src:url(/preview-fonts/newsreader-text.woff2) format("woff2"); font-weight:400; font-style:normal; font-display:swap}

.pv{
  --canvas:#FFFFFF; --surface:#FFFFFF; --paper:#FAF6EF; --paper-2:#F3EDE3; --sunk:#F4F1EC; --sunk-2:#EBE6DE; --hover:#F6F3EE;
  --line:#E1DAD0; --line-soft:#EEE8E0; --line-strong:#CBC1B4;
  --ink:#282220; --ink-2:#625A54; --ink-3:#71675F; --ink-4:#978D84;
  --wine:#69253A; --wine-2:#561D30; --wine-tint:#F5ECEE; --wine-line:#E3CAD2;
  --gold:#A8812F; --gold-deep:#8C6A22; --gold-tint:#F6EEDD;
  --yes:#2F6B43; --yes-tint:#E8F2EB; --warn:#8A5A12; --warn-tint:#FBF1DF; --danger:#A1283F; --danger-tint:#FBEDEF;
  --r-ctl:8px; --r-sm:6px; --r-post:12px; --r-media:8px; --r-tile:4px; --r-pop:12px; --r-dialog:16px;
  --nav-w:236px; --tabbar-h:60px; --page:1060px;
  --pop:0 18px 44px -18px rgba(40,28,18,.36), 0 2px 6px rgba(40,28,18,.06);
  --ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:"Newsreader Display","Newsreader Title",Georgia,"Times New Roman",serif;
  --title:"Newsreader Title",Georgia,"Times New Roman",serif;
  --serif:"Newsreader Text","Newsreader Title",Georgia,"Times New Roman",serif;
  /* the day and people tones, as the house has them (app.css); marigold and peach are for dots and rules, never words */
  --c-rose:#C05C7E; --c-peach:#C77A4A; --c-marigold:#C9931C; --c-leaf:#4F7A5A; --c-teal:#2F7F86; --c-slate:#5B7391;
  --c-plum:#7B4B8E; --c-red:#B03A48; --c-wine:#7A1F3D; --c-gold:#A8812F; --c-sky:#4C82A8; --c-terracotta:#B5573B;
}
.pv *,.pv *::before,.pv *::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; background:#FFFFFF}
body.pv{margin:0; min-height:100vh; background:var(--canvas); color:var(--ink); font:400 16px/1.5 var(--ui); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden; font-feature-settings:"kern"}
/* the resets weigh nothing (:where), so every component's own rule wins */
:where(.pv) a{color:inherit; text-decoration:none}
:where(.pv) img,:where(.pv) video{display:block; max-width:100%}
:where(.pv) :is(button, input, select, textarea){font:inherit; color:inherit}
:where(.pv) :is(b, strong){font-weight:600}
:where(.pv) :is(p, h1, h2, h3, dl, dd, figure, fieldset, blockquote){margin:0}
:where(.pv) :is(h1, h2, h3){font-weight:600}
:where(.pv) fieldset{border:0; padding:0; min-width:0}
:where(.pv) :is(ul, ol){margin:0; padding:0; list-style:none}
.pv [hidden]{display:none !important}
.pv [id]{scroll-margin-top:16px}
@media (max-width:767px){ .pv [id]{scroll-margin-top:72px} }
.pv :focus-visible{outline:2px solid var(--wine); outline-offset:2px; border-radius:4px}
.pv-vh{position:absolute !important; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0}
.pv-skip{position:absolute; left:12px; top:-80px; z-index:100; padding:10px 14px; border-radius:var(--r-ctl); background:var(--ink); color:#fff !important; font-weight:600}
.pv-skip:focus{top:12px}
.pv-tnum{font-variant-numeric:tabular-nums}

/* ---- the preview's own note: plainly not part of the design ---------------- */
.pv-banner{display:flex; align-items:center; gap:12px; min-height:34px; padding:4px 6px 4px 20px; background:#2B2624; color:#E9E2DA; font:400 12.5px/1.4 var(--ui)}
.pv-banner p{flex:1; min-width:0}
.pv-banner b{color:#fff; font-weight:600}
.pv-banner a{color:#fff; font-weight:600; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; padding:6px 0}
/* the same strip at the house's own addresses, when the head is trying the look everyone else is not on */
.pv-banner-f{display:contents}
.pv-banner-go{flex:none; border:0; background:none; padding:6px 14px 6px 0; color:#fff; font:600 12.5px/1.4 var(--ui); text-decoration:underline; text-underline-offset:3px; white-space:nowrap; cursor:pointer}
.pv-banner-x{display:grid; place-items:center; width:32px; height:32px; flex:none; border:0; border-radius:var(--r-ctl); background:none; color:#CFC6BC; cursor:pointer}
.pv-banner-x:hover{background:rgba(255,255,255,.1); color:#fff}
.pv-banner-short{display:none}
@media (max-width:1099px){ .pv-banner-long{display:none} .pv-banner-short{display:inline} }

/* ---- the lights along the front of the house --------------------------------- */
.pv-lights{position:absolute; left:0; right:0; top:6px; height:24px; overflow:hidden; pointer-events:none}
.pv-lights svg{position:absolute; left:50%; top:0; display:block; transform:translateX(-50%)}
.pv-lights .w{fill:none; stroke:#3A322D; stroke-width:.8; opacity:.28}
.pv-bulb .s{stroke:#3A322D; stroke-width:.7; opacity:.28}
.pv-bulb .g{fill:url(#pv-lg); opacity:.45}
.pv-bulb .b{fill:url(#pv-lb); stroke:rgba(110,80,30,.38); stroke-width:.45}
.pv-shell{position:relative; padding-top:30px}
@media (max-width:767px){ .pv-shell{padding-top:26px} .pv-lights{top:4px} }

/* ---- the rooms' marks: paper, a line of ink, one gold seal ---------------------------- */
.pv-head-mark{flex:none; width:112px; height:90px; margin-top:-2px; align-self:start}
.pv-head-mark svg{display:block; width:100%; height:100%; overflow:visible}
.pv-mark .k{fill:none; stroke:#3A322D; stroke-width:1.3; stroke-linejoin:round; stroke-linecap:round; opacity:.8}
.pv-mark .pk{fill:#FBF7F1; stroke:#3A322D; stroke-width:1.3; stroke-linejoin:round; stroke-linecap:round; stroke-opacity:.8}
.pv-mark .wk{fill:#FFFFFF; stroke:#3A322D; stroke-width:1.1; stroke-linejoin:round; stroke-opacity:.55}
.pv-mark .sk{fill:#EDE7DE}
.pv-mark .f{fill:none; stroke:#3A322D; stroke-width:1.1; stroke-linecap:round; opacity:.3}
.pv-mark .d{fill:#3A322D; opacity:.25}
.pv-mark .hd{stroke:#3A322D; stroke-width:7; stroke-linecap:round; opacity:.8}
.pv-mark .hd2{stroke:#FBF7F1; stroke-width:4.4; stroke-linecap:round}
.pv-mark .g{fill:#B8902F}
.pv-mark .g2{fill:none; stroke:#B8902F; stroke-width:1.6; stroke-linecap:round}
.pv-mark .w{fill:#69253A}
.pv-mark .t{font:600 11px var(--ui); fill:#625A54; text-anchor:middle}
.pv-mark .sh{filter:drop-shadow(0 1px 1.4px rgba(40,28,18,.18))}
.pv-thread-mark{width:120px; height:96px; margin:0 auto 6px}
.pv-thread-mark svg{width:100%; height:100%}
@media (max-width:767px){ .pv-head-mark{width:72px; height:58px; margin-top:10px} .pv-head-row:not(:has(.pv-eyebrow)) .pv-head-mark{margin-top:-8px} }

/* ---- their mark, their names, faces ----------------------------------------- */
.pv .mark.img{display:inline-block; flex:none; aspect-ratio:var(--mark-ratio, 96/46); background:var(--gold);
  -webkit-mask:var(--mark) center/contain no-repeat; mask:var(--mark) center/contain no-repeat}
.pv .mark.letters{display:inline-flex; align-items:center; gap:.3em; flex:none; color:var(--gold); font-size:18px}
.pv .mark.letters b{font-weight:400}
.pv .mark.letters i{display:block; width:1px; height:.8em; background:currentColor; opacity:.45}
.pv-names{font-family:var(--title); font-weight:500; letter-spacing:-.005em; color:var(--ink)}
.pv-amp{color:var(--gold)}
.pv .avatar{display:inline-grid; place-items:center; flex:none; width:40px; height:40px; border-radius:50%; overflow:hidden; object-fit:cover;
  background:var(--sunk-2); color:var(--ink-2); font-size:15px; font-weight:600; line-height:1; letter-spacing:0}
.pv .avatar.sm{width:32px; height:32px; font-size:13px}
.pv .avatar.xs{width:22px; height:22px; font-size:10px}
.pv .avatar.big{width:96px; height:96px; font-size:32px}
.pv img.avatar{box-shadow:0 0 0 1px rgba(40,28,18,.08)}
.pv span.avatar[data-tone]{--t:var(--c-gold); background:color-mix(in srgb, var(--t) 14%, #fff); color:color-mix(in srgb, var(--t) 80%, #000)}
.pv span.avatar[data-tone="teal"]{--t:var(--c-teal)} .pv span.avatar[data-tone="marigold"]{--t:var(--c-marigold)}
.pv span.avatar[data-tone="rose"]{--t:var(--c-rose)} .pv span.avatar[data-tone="slate"]{--t:var(--c-slate)}
.pv span.avatar[data-tone="leaf"]{--t:var(--c-leaf)} .pv span.avatar[data-tone="peach"]{--t:var(--c-peach)}
.pv span.avatar[data-tone="plum"]{--t:var(--c-plum)} .pv span.avatar[data-tone="red"]{--t:var(--c-red)}
.pv span.avatar[data-tone="sky"]{--t:var(--c-sky)} .pv span.avatar[data-tone="terracotta"]{--t:var(--c-terracotta)}
.pv-gdisc{background:var(--wine-tint) !important; color:var(--wine) !important; font-weight:600}

/* ---- the shell: the phone first ------------------------------------------- */
.pv-shell{display:block}
.pv-nav{display:none}
.pv-main{display:block; width:100%; min-width:0; margin-inline:auto; padding:14px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 28px); outline:none; container-type:inline-size}
.pv-top{position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:4px; min-height:56px;
  padding:env(safe-area-inset-top) max(6px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left)); background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(1.4) blur(10px); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line-soft)}
.pv-top-id{display:flex; align-items:center; gap:10px; flex:1; min-width:0; padding:6px 0}
.pv-top-id .mark.img{width:36px; height:17px !important}
.pv-top-tx{display:flex; flex-direction:column; min-width:0; line-height:1.2}
.pv-top-names{font-size:18.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-top-tx em{font-style:normal; font-size:12.5px; color:var(--ink-3)}
.pv-top-acts{display:flex; align-items:center}
.pv-top-acts .pv-icon-btn{width:44px; height:44px}
.pv-top-me{display:grid; place-items:center; width:44px; height:44px}
.pv-top-acts .pv-badge,.pv-tabbar-ic .pv-badge{position:absolute; top:3px; right:1px; min-width:18px; height:18px; padding:0 5px; font-size:11px; box-shadow:0 0 0 2px #fff}
.pv-tabbar{position:fixed; left:0; right:0; bottom:0; z-index:25; display:flex; background:rgba(255,255,255,.96); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-top:1px solid var(--line-soft); padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.pv-tabbar a{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; height:var(--tabbar-h); font-size:11.5px; font-weight:500; color:var(--ink-3)}
.pv-tabbar a[aria-current="page"]{color:var(--wine); font-weight:600}
.pv-tabbar-ic{position:relative; display:grid; place-items:center}
.pv-tabbar-ic .pv-badge{top:-6px; right:auto; left:calc(100% - 8px)}
body.pv.is-typing .pv-tabbar{display:none}

/* the nav: whose house, your page, home, the rooms (a tablet: a narrow rail) */
.pv-nav-in{position:sticky; top:0; display:flex; flex-direction:column; height:100vh; overflow-y:auto; padding:18px 0 18px;
  scrollbar-width:thin; scrollbar-color:var(--line) transparent}
.pv-id{display:flex; align-items:center; gap:12px; margin:0 0 8px; padding:6px 10px 16px; border-bottom:1px solid var(--line-soft)}
.pv-id .mark.img{width:44px; height:21px !important}
.pv-id-tx{display:flex; flex-direction:column; min-width:0}
.pv-id-names{font-size:19px; line-height:1.15}
.pv-id-when{margin-top:3px; font-size:12.5px; line-height:1.3; color:var(--ink-3)}
.pv-me{display:flex; align-items:center; gap:10px; margin:0 0 2px; padding:6px 10px; border-radius:var(--r-ctl)}
.pv-me:hover{background:var(--hover)}
.pv-me[aria-current="page"]{background:var(--wine-tint)}
.pv-me-tx{min-width:0}
.pv-me-tx b{display:block; font-size:15px; font-weight:600; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-me-tx em{display:block; font-style:normal; font-size:12.5px; color:var(--ink-3)}
.pv-list a,.pv-more summary{display:flex; align-items:center; gap:12px; min-height:38px; padding:0 10px; border-radius:var(--r-ctl); font-size:15px; font-weight:500; color:var(--ink); cursor:pointer}
.pv-list a:hover,.pv-more summary:hover{background:var(--hover)}
.pv-list a svg,.pv-more summary svg{flex:none; color:var(--ink-2)}
.pv-list a[aria-current="page"]{background:var(--wine-tint); color:var(--wine); font-weight:600}
.pv-list a[aria-current="page"] svg{color:var(--wine)}
.pv-l{flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-nav-h{display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin:14px 10px 4px; padding-top:14px; border-top:1px solid var(--line-soft); font-size:12px; font-weight:600; letter-spacing:.02em; color:var(--ink-3)}
.pv-nav-h h2{font:inherit; color:inherit}
.pv-nav-all{font-size:12px; font-weight:500; letter-spacing:0; color:var(--wine)}
.pv-nav-all:hover{text-decoration:underline; text-underline-offset:3px}
.pv-nav-all[aria-current="page"]{font-weight:600}
.pv-more summary{list-style:none}
.pv-more summary::-webkit-details-marker{display:none}
.pv-more > summary{gap:5px; min-height:34px; margin-top:4px; font-size:13.5px; font-weight:500; color:var(--ink-3)}
.pv-more > summary:hover{background:none; color:var(--ink)}
.pv-more-open{display:none}
.pv-more[open] > summary .pv-more-open{display:inline}
.pv-more[open] > summary .pv-more-closed{display:none}
.pv-chev{display:grid; color:currentColor; transition:transform .15s ease}
.pv-more[open] .pv-chev{transform:rotate(180deg)}
.pv-nav-foot{margin-top:auto; padding-top:12px; border-top:1px solid var(--line-soft)}
.pv-railonly{display:none}
@media (min-width:768px) and (max-width:1023px){ .pv .pv-railonly{display:block} }
.pv-nav-note{margin:8px 10px 0; font-size:12px; line-height:1.45; color:var(--ink-3)}
@media (min-width:768px){
  .pv-top,.pv-tabbar{display:none}
  .pv-shell{display:grid; grid-template-columns:76px minmax(0, 1fr); column-gap:24px; padding:30px 22px 0 8px}
  .pv-nav{display:block; border-right:1px solid var(--line-soft)}
  .pv-main{padding:8px 0 64px}
  .pv-nav-in{padding:6px 8px 12px 0; align-items:stretch}
  .pv-id{justify-content:center; padding:8px 0 12px}
  .pv-id-tx,.pv-me-tx,.pv-nav-h,.pv-more,.pv-nav-note{display:none}
  .pv-me{justify-content:center; padding:6px 0}
  .pv-list a{flex-direction:column; justify-content:center; gap:3px; min-height:58px; padding:6px 2px; font-size:11px; font-weight:500; text-align:center; position:relative}
  .pv-list a .pv-l{flex:none; max-width:100%; white-space:normal; line-height:1.15}
  .pv-list a .pv-badge{position:absolute; top:4px; right:10px; min-width:18px; height:18px; font-size:11px}
  .pv-nav-foot{padding-top:8px}
}
@media (min-width:1024px){
  .pv-shell{grid-template-columns:var(--nav-w) minmax(0, 1fr); column-gap:40px; padding:30px 24px 0 20px}
  .pv-nav-in{padding:10px 14px 18px 0}
  .pv-id{justify-content:flex-start; padding:6px 10px 16px}
  .pv-id-tx,.pv-me-tx,.pv-nav-h,.pv-nav-note{display:flex}
  .pv-id-tx,.pv-me-tx{flex-direction:column}
  .pv-nav-h{display:flex} .pv-nav-note{display:block}
  .pv-more{display:block}
  .pv-me{justify-content:flex-start; padding:6px 10px}
  .pv-list a{flex-direction:row; justify-content:flex-start; gap:12px; min-height:38px; padding:0 10px; font-size:15px; font-weight:500; text-align:left}
  .pv-list a[aria-current="page"]{font-weight:600}
  .pv-list a .pv-l{flex:1; white-space:nowrap}
  .pv-list a .pv-badge{position:static}
  .pv-main{padding-top:10px}
}
/* each kind of page a bounded column, every one starting at the same line beside the nav */
.pv-k-feed{--page:1040px}
.pv-k-gallery{--page:1100px}
.pv-k-work{--page:1180px}
.pv-k-read{--page:1100px}
.pv-k-narrow{--page:760px}
.pv-k-convo{--page:1160px}
.pv-k-form{--page:700px}
.pv-main{max-width:var(--page)}
@media (min-width:768px){ .pv-main{margin-inline:0} }

/* ---- type ------------------------------------------------------------------- */
.pv-head{margin:0 0 28px}
/* a rule under every head: the tabs draw their own; a head without tabs draws one of its own */
.pv-head:not(:has(.pv-tabs)){padding-bottom:20px; border-bottom:1px solid var(--line)}
.pv-back{display:inline-flex; align-items:center; gap:4px; margin:0 0 10px -6px; padding:5px 10px 5px 4px; border-radius:var(--r-ctl); font-size:14px; font-weight:500; color:var(--ink-2)}
.pv-back:hover{background:var(--hover); color:var(--ink)}
/* the head: the words, then the actions, then the room's mark as a stamp in the corner — the same corner on every page */
.pv-head-row{display:grid; grid-template-columns:minmax(0, 1fr) auto; grid-template-areas:"tx mark" "acts acts"; align-items:start; gap:10px 20px}
.pv-head-tx{grid-area:tx; min-width:0}
.pv-head-mark{grid-area:mark}
.pv-head-acts{grid-area:acts}
.pv-head-row:not(:has(.pv-head-mark)){grid-template-areas:"tx tx" "acts acts"}
.pv-head-row:not(:has(.pv-head-acts)){grid-template-areas:"tx mark"}
.pv-head-row:not(:has(.pv-head-mark)):not(:has(.pv-head-acts)){grid-template-columns:minmax(0, 1fr); grid-template-areas:"tx"}
@container (min-width:760px){
  .pv-head-row{grid-template-columns:minmax(0, 1fr) auto auto; grid-template-areas:"tx acts mark"; column-gap:24px}
  .pv-head-row:not(:has(.pv-head-mark)){grid-template-columns:minmax(0, 1fr) auto; grid-template-areas:"tx acts"}
  .pv-head-row:not(:has(.pv-head-acts)){grid-template-columns:minmax(0, 1fr) auto; grid-template-areas:"tx mark"}
  .pv-head-row:not(:has(.pv-head-mark)):not(:has(.pv-head-acts)){grid-template-columns:minmax(0, 1fr); grid-template-areas:"tx"}
  .pv-head-acts{justify-content:flex-end; align-self:start; margin-top:-1px}
  .pv-head-row:has(.pv-eyebrow) .pv-head-acts{margin-top:24px}
}
.pv-head h1{font-size:34px; font-weight:600; line-height:1.12; letter-spacing:-.024em; color:var(--ink); overflow-wrap:anywhere}
.pv-head.is-serif h1{font-family:var(--title); font-weight:500; font-size:38px; line-height:1.08; letter-spacing:-.01em}
.pv-head-sub{display:flex; flex-wrap:wrap; align-items:center; gap:0 6px; margin-top:8px; max-width:66ch; font-size:16px; line-height:1.5; color:var(--ink-2); text-wrap:pretty}
.pv-head-sub .pv-dot{margin:0 1px}
.pv-head-acts{display:flex; flex-wrap:wrap; align-items:center; gap:8px}
.pv-eyebrow{margin-bottom:5px; font-size:13px; font-weight:500; color:var(--ink-3); letter-spacing:.01em}
.pv-dateline{display:flex; flex-wrap:wrap; align-items:center; gap:2px 0; font-size:12.5px; font-weight:500; line-height:1.5; letter-spacing:.075em; text-transform:uppercase; color:var(--ink-2)}
.pv .pv-dateline .pv-dot{margin:0 .5em; color:var(--gold)}
.pv-h2{margin:36px 0 14px; font-size:20px; font-weight:600; letter-spacing:-.018em; line-height:1.3; color:var(--ink)}
.pv-h2 .pv-h-n,.pv-h3 .pv-h-n{margin-left:6px; font-weight:400; color:var(--ink-3)}
.pv-h3{margin:0 0 10px; font-size:15px; font-weight:600; color:var(--ink)}
.pv-serif{font-family:var(--serif)}
.pv-small{font-size:13.5px; line-height:1.45; color:var(--ink-3)}
.pv-quiet{font-size:15px; line-height:1.55; color:var(--ink-2)}
.pv-hint{margin-top:6px; font-size:13px; line-height:1.45; color:var(--ink-3)}
.pv-hint a,.pv-small a,.pv-quiet a{color:var(--wine); font-weight:500; text-decoration:underline; text-decoration-color:var(--wine-line); text-underline-offset:3px}
.pv-late{color:var(--danger); font-weight:600}
.pv-mt{margin-top:14px}
.pv-mb{margin-bottom:18px}
.pv-prewrap{white-space:pre-wrap}
.pv-big{font-size:28px; font-weight:600; letter-spacing:-.02em; line-height:1.15; color:var(--ink); font-variant-numeric:tabular-nums}
.pv-big span{font-size:14px; font-weight:400; letter-spacing:0; color:var(--ink-3)}
.pv-error{margin:0 0 14px; padding:12px 14px; border-radius:var(--r-ctl); background:var(--danger-tint); color:#8A1F33; font-size:14.5px}
.pv-warn{margin:0 0 12px; padding:10px 12px; border-radius:var(--r-ctl); background:var(--warn-tint); color:var(--warn); font-size:14px}
.pv-due{font-size:13px; font-weight:500; color:var(--ink-2); white-space:nowrap}
.pv-due.is-soon{color:var(--warn)}
.pv-due.is-late{color:var(--danger); font-weight:600}
.pv-tone{display:inline-block; flex:none; width:8px; height:8px; border-radius:50%; background:var(--e, var(--gold))}
.pv-tone-lg{width:10px; height:10px}
.pv-daytag{display:inline-flex; align-items:center; gap:6px; font-weight:500; color:var(--ink-2)}
.pv-dot{margin:0 .32em; color:var(--ink-4)}
:is(.pv-head-sub, .pv-meta, .pv-album-tx em, .pv-thread-who em, .pv-daycard-when, .pv-invcard-tx em, .pv-task-meta, .pv-vendor-main > span, .pv-c-meta) .pv-dot{margin:0}
.is-now{color:var(--yes)}

/* ---- controls --------------------------------------------------------------- */
.pv-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:0 16px; border:1px solid transparent; border-radius:var(--r-ctl);
  font:600 14.5px/1.2 var(--ui); letter-spacing:-.005em; white-space:nowrap; cursor:pointer; text-align:center; transition:background-color .12s ease, border-color .12s ease, color .12s ease}
.pv-btn.pv-sm{min-height:34px; padding:0 12px; font-size:13.5px; gap:6px}
.pv-btn svg{flex:none}
.pv-btn-primary{background:var(--wine); color:#fff}
.pv-btn-primary:hover{background:var(--wine-2)}
.pv-btn-primary:active{background:#4A1828}
.pv-btn-secondary{background:var(--surface); border-color:var(--line); color:var(--ink)}
.pv-btn-secondary:hover{background:#FBF8F4; border-color:var(--line-strong)}
.pv-btn-secondary:active{background:var(--sunk)}
.pv-btn-secondary[aria-pressed="true"]{background:var(--wine-tint); border-color:var(--wine-line); color:var(--wine)}
.pv-btn-quiet{background:transparent; color:var(--ink-2)}
.pv-btn-quiet:hover{background:var(--hover); color:var(--ink)}
.pv-btn-danger{background:transparent; color:var(--danger)}
.pv-btn-danger:hover{background:var(--danger-tint)}
.pv-btn:disabled,.pv-btn[aria-disabled="true"]{opacity:.45; cursor:not-allowed}
.pv-btn.is-busy{cursor:progress; opacity:.75}
.pv-icon-btn{position:relative; display:inline-grid; place-items:center; flex:none; width:36px; height:36px; border:0; border-radius:50%;
  background:transparent; color:var(--ink-2); cursor:pointer}
.pv-icon-btn:hover{background:var(--hover); color:var(--ink)}
.pv-badge{display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 6px; border-radius:10px; background:var(--wine);
  color:#fff; font-size:12px; font-weight:600; line-height:1; letter-spacing:0; font-variant-numeric:tabular-nums}
.pv-link-btn{border:0; background:none; padding:6px 0; font-size:14px; font-weight:600; color:var(--wine); cursor:pointer}
.pv-link-btn:hover{text-decoration:underline; text-underline-offset:3px}
.pv-actions{display:flex; flex-wrap:wrap; align-items:center; gap:8px}
.pv-actions-col{flex-direction:column; align-items:stretch}
.pv-actions-col > *{width:100%}
.pv-actions-col .pv-btn{justify-content:flex-start}
.pv-actions form{display:inline-flex}
.pv-chip{display:inline-flex; align-items:center; gap:5px; flex:none; min-height:22px; padding:1px 8px; border-radius:var(--r-sm); background:var(--sunk);
  font-size:12.5px; font-weight:600; color:var(--ink-2); white-space:nowrap; line-height:1.4}
.pv-chip.is-yes{background:var(--yes-tint); color:var(--yes)}
.pv-chip.is-no{background:var(--danger-tint); color:var(--danger)}
.pv-chip.is-wait{background:var(--warn-tint); color:var(--warn)}
.pv-chip.is-gold{background:var(--gold-tint); color:var(--gold-deep)}
.pv-more-link{display:inline-flex; align-items:center; gap:4px; padding:3px 0; font-size:13.5px; font-weight:600; color:var(--wine); white-space:nowrap}
.pv-more-link:hover{text-decoration:underline; text-underline-offset:3px}

/* views of one room, and filters within a view */
.pv-tabs{display:flex; gap:24px; margin:20px 0 0; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none}
.pv-tabs::-webkit-scrollbar{display:none}
.pv-tabs a{display:inline-flex; align-items:center; gap:7px; flex:none; min-height:40px; padding:0 1px; margin-bottom:-1px; border-bottom:2px solid transparent;
  font-size:14.5px; font-weight:500; color:var(--ink-2); white-space:nowrap}
.pv-tabs a:hover{color:var(--ink)}
.pv-tabs a[aria-current="page"]{border-bottom-color:var(--wine); color:var(--ink); font-weight:600}
.pv-tabs-n{min-width:20px; padding:0 6px; border-radius:10px; background:var(--sunk); font-size:12px; font-weight:500; line-height:20px; text-align:center; color:var(--ink-2)}
.pv-chips{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 14px}
.pv-chips a{display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:0 12px; border:1px solid var(--line); border-radius:var(--r-ctl); background:var(--surface);
  font-size:13.5px; font-weight:500; color:var(--ink-2); white-space:nowrap}
.pv-chips a:hover{border-color:var(--line-strong); color:var(--ink)}
.pv-chips a[aria-current="true"]{border-color:var(--wine-line); background:var(--wine-tint); color:var(--wine); font-weight:600}
.pv-chips-n{font-weight:400; color:var(--ink-3)}
.pv-chips a[aria-current="true"] .pv-chips-n{color:inherit; opacity:.8}
.pv-toolbar{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 14px; margin:0 0 14px}
.pv-toolbar .pv-chips{margin:0}
.pv-filtered{display:flex; align-items:center; gap:6px; margin:0 0 12px; font-size:14px; color:var(--ink-2)}
.pv-filtered a{font-weight:600; color:var(--wine)}
.pv-pager{display:flex; justify-content:center; gap:8px; margin:22px 0}
.pv-end{margin:22px 0; font-size:13.5px; text-align:center; color:var(--ink-3)}
.pv-end a{color:var(--wine); font-weight:600}

/* the note an action leaves */
.pv-note{display:flex; align-items:center; gap:10px; margin:0 0 16px; padding:10px 8px 10px 14px; border-radius:var(--r-post); background:var(--yes-tint); color:var(--yes); font-size:14.5px}
.pv-note > svg{flex:none}
.pv-note p{flex:1; min-width:0}
.pv-note.is-sim{background:#EFEBF4; color:#40305A}
.pv-note .pv-icon-btn{color:inherit}
.pv-note-act{display:inline-flex}

/* ---- forms ------------------------------------------------------------------- */
.pv-form{display:grid; gap:16px}
.pv-field{display:grid; gap:6px; min-width:0}
.pv-field > label:not(.pv-choice):not(.pv-file),.pv-fs > .pv-field > label:not(.pv-choice):not(.pv-file){font-size:13.5px; font-weight:600; color:var(--ink-2)}
:where(.pv) :is(input[type=text], input[type=search], input[type=url], input[type=tel], input[type=email], input[type=number], input[type=date], input[type=time], input[type=datetime-local], input:not([type]), select, textarea){
  width:100%; min-height:44px; padding:9px 12px; border:1px solid var(--line); border-radius:var(--r-ctl); background:var(--surface); font-size:16px; line-height:1.35; color:var(--ink);
  transition:border-color .12s ease, box-shadow .12s ease}
.pv :is(input, select, textarea):hover{border-color:var(--line-strong)}
.pv textarea{min-height:92px; resize:vertical; line-height:1.5}
.pv select{padding-right:34px; -webkit-appearance:none; appearance:none; background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='%2371675F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6.5 9.5 5.5 5.5 5.5-5.5'/%3E%3C/svg%3E") no-repeat right 11px center}
.pv :is(input, select, textarea):focus{outline:none; border-color:var(--wine); box-shadow:0 0 0 3px var(--wine-tint)}
.pv ::placeholder{color:var(--ink-4)}
.pv-grid2{display:grid; gap:16px}
.pv-grid3{display:grid; gap:16px}
@container (min-width:560px){ .pv-grid2{grid-template-columns:1fr 1fr} .pv-grid3{grid-template-columns:2fr 1fr 1fr} }
.pv-grid2.pv-tight{gap:8px}
.pv-field-wide,.pv-grid2 > .pv-field-wide{grid-column:1 / -1}
.pv-buzz{margin-top:12px; padding-top:12px; border-top:1px solid var(--line-soft)}
/* a choice in a form: its box, then its words and what they mean */
.pv-choice{display:flex; align-items:flex-start; gap:12px; min-width:0; padding:8px 0; cursor:pointer}
.pv-choice > input{flex:none; width:20px; height:20px; margin:1px 0 0; accent-color:var(--wine); cursor:pointer}
.pv-choice-tx{display:block; flex:1; min-width:0}
.pv-choice-tx b{display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:15px; font-weight:500; line-height:1.35; color:var(--ink)}
.pv-choice-tx em{display:block; margin-top:2px; font-style:normal; font-size:13px; line-height:1.45; color:var(--ink-3)}
.pv-choice:has(input:disabled){cursor:not-allowed; opacity:.55}
.pv-checks{display:grid; gap:0}
.pv-checks > .pv-choice + .pv-choice{border-top:1px solid var(--line-soft)}
.pv-file{position:relative; display:inline-flex; max-width:100%; cursor:pointer}
.pv-file input{position:absolute; inset:0; opacity:0; cursor:pointer; width:100%}
.pv-file-l{display:inline-flex; align-items:center; gap:8px; max-width:100%; min-height:40px; padding:0 14px; border:1px dashed var(--line-strong); border-radius:var(--r-ctl); background:var(--surface); font-size:14px; font-weight:500; color:var(--ink-2)}
.pv-file-l [data-file-label]{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-file:hover .pv-file-l{border-color:var(--wine); color:var(--wine)}
.pv-file:focus-within .pv-file-l{outline:2px solid var(--wine); outline-offset:2px}
.pv-inline{display:flex; flex-wrap:wrap; align-items:center; gap:8px}
.pv-inline > input:not([type=checkbox]):not([type=hidden]),.pv-inline > select{flex:1 1 180px; width:auto; min-width:0}
.pv-inline-wrap > input[type=date]{flex:0 1 170px}
.pv-inline-h{flex:1 0 100%; font-size:14.5px; font-weight:600}
.pv-timepick{display:flex; flex-wrap:wrap; align-items:center; gap:8px}
.pv-timepick > select,.pv-timepick > input{flex:1 1 140px; width:auto}
.pv-seg2{display:inline-flex; gap:3px; padding:3px; border-radius:var(--r-ctl); background:var(--sunk)}
.pv-seg2 label{position:relative; cursor:pointer}
.pv-seg2 input{position:absolute; opacity:0}
.pv-seg2 span{display:block; padding:7px 14px; border-radius:5px; font-size:14px; font-weight:500; color:var(--ink-2)}
.pv-seg2 input:checked + span{background:var(--surface); color:var(--ink); font-weight:600; box-shadow:0 1px 2px rgba(40,28,18,.12)}
.pv-seg2 input:focus-visible + span{outline:2px solid var(--wine)}
.pv-seg3{display:flex; flex-wrap:wrap; gap:6px}
.pv-dayticks{display:flex; flex-wrap:wrap; gap:6px}
.pv-dayt{position:relative; display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:0 12px; border:1px solid var(--line); border-radius:var(--r-ctl); background:var(--surface); font-size:13.5px; font-weight:500; color:var(--ink-2); cursor:pointer}
.pv-dayt input{position:absolute; opacity:0; inset:0; cursor:pointer}
.pv-dayt:has(input:checked),.pv-dayt.is-on{border-color:var(--wine-line); background:var(--wine-tint); color:var(--wine)}
.pv-dayt:has(input:focus-visible){outline:2px solid var(--wine); outline-offset:2px}
.pv-dayticks.is-static .pv-dayt{cursor:default; opacity:.55}
.pv-dayticks.is-static .pv-dayt.is-on{opacity:1}
.pv-facepick{display:flex; flex-wrap:wrap; gap:6px}
.pv-facename{position:relative; display:inline-flex; align-items:center; gap:8px; padding:4px 12px 4px 4px; border:1px solid var(--line); border-radius:var(--r-ctl); background:var(--surface); font-size:14px; cursor:pointer}
.pv-facename input{position:absolute; opacity:0; inset:0; cursor:pointer}
.pv-facename:has(input:checked){border-color:var(--wine); background:var(--wine-tint); color:var(--wine)}
.pv-facename:has(input:focus-visible){outline:2px solid var(--wine); outline-offset:2px}
.pv-facepick-one{display:flex; align-items:center; gap:18px}
.pv-crows{display:grid; gap:8px}
.pv-crow{display:grid; gap:6px}
@container (min-width:560px){ .pv-crow{grid-template-columns:1fr 1fr 1.3fr} }
.pv-fs{display:grid; gap:16px}

/* a section that opens in place */
.pv-fold{margin:12px 0 0}
.pv-fold > summary{display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:0 2px; list-style:none; font-size:14.5px; font-weight:600; color:var(--wine); cursor:pointer}
.pv-fold > summary::-webkit-details-marker{display:none}
.pv-fold > summary > svg:last-child{transition:transform .15s ease}
.pv-fold[open] > summary > svg:last-child{transform:rotate(180deg)}
.pv-fold-in{padding:10px 0 4px}
.pv-card.pv-fold,.pv-taskfold{padding:0 18px}
.pv-card.pv-fold > summary,.pv-taskfold > summary{display:flex; min-height:52px; color:var(--ink); font-size:15px}
.pv-earlierfold > summary{color:var(--ink-2)}

/* a dialog: a form kept out of the way until it is wanted */
.pv-dialog{width:min(560px, calc(100vw - 24px)); max-height:min(88vh, 900px); padding:0; border:0; border-radius:var(--r-dialog); background:var(--surface); color:var(--ink); box-shadow:0 30px 80px -30px rgba(20,12,8,.55)}
.pv-dialog-wide{width:min(760px, calc(100vw - 24px))}
.pv-dialog::backdrop{background:rgba(28,22,20,.42)}
.pv-dialog-head{position:sticky; top:0; z-index:1; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:18px 14px 14px 22px; background:var(--surface); border-bottom:1px solid var(--line-soft)}
.pv-dialog-head h2{font-size:18px; font-weight:600; letter-spacing:-.015em; line-height:1.3}
.pv-dialog-head p{margin-top:2px; font-size:13.5px; color:var(--ink-3)}
.pv-dialog-body{padding:18px 22px 22px; container-type:inline-size}
@media (max-width:767px){ .pv-dialog{width:100vw; max-width:100vw; max-height:92vh; margin:auto 0 0; border-radius:16px 16px 0 0} }

/* a menu of less frequent actions */
.pv-menu{position:relative; display:inline-block; flex:none}
.pv-menu > summary{list-style:none}
.pv-menu > summary::-webkit-details-marker{display:none}
.pv-menu[open] > summary.pv-icon-btn{background:var(--hover); color:var(--ink)}
.pv-menu-pop{position:absolute; z-index:40; top:calc(100% + 6px); right:0; min-width:240px; max-width:min(320px, 92vw); padding:6px; background:var(--surface);
  border:1px solid var(--line-soft); border-radius:var(--r-pop); box-shadow:var(--pop)}
.pv-menu-left .pv-menu-pop{right:auto; left:0}
.pv-menu-pop > a,.pv-menu-pop button,.pv-menu-form button{display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:8px 10px; border:0; border-radius:6px; background:none;
  text-align:left; font-size:14.5px; font-weight:500; color:var(--ink); cursor:pointer}
.pv-menu-pop svg{flex:none; color:var(--ink-3)}
.pv-menu-pop > a:hover,.pv-menu-pop button:hover{background:var(--hover)}
.pv-menu-pop .is-danger,.pv-menu-pop .is-danger svg{color:var(--danger)}
.pv-menu-form{display:block}
.pv-menu-sep{margin:6px 10px 2px; padding-top:8px; border-top:1px solid var(--line-soft); font-size:12px; font-weight:600; color:var(--ink-3)}
.pv-menu-sep:first-child{margin-top:2px; padding-top:2px; border-top:0}
.pv-menu-named{gap:6px}

/* who something is for: the whole panel of both sides */
.pv-aud{position:relative; display:inline-block; min-width:0; max-width:100%}
.pv-aud > summary{display:inline-flex; align-items:center; gap:8px; max-width:100%; min-height:34px; padding:4px 10px; border:1px solid var(--line); border-radius:var(--r-ctl); background:var(--surface);
  list-style:none; font-size:13.5px; font-weight:500; color:var(--ink); cursor:pointer}
.pv-aud > summary:hover{border-color:var(--line-strong)}
.pv-aud > summary::-webkit-details-marker{display:none}
.pv-aud-k{color:var(--ink-3)}
.pv-aud-v{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-aud-v i{font-style:normal; color:var(--ink-3)}
.pv-aud.is-must > summary{border-color:#E9D6B2; background:var(--warn-tint); color:var(--warn)}
.pv-aud-pop{position:absolute; z-index:40; top:calc(100% + 6px); left:0; width:min(560px, calc(100vw - 32px)); padding:14px; background:var(--surface);
  border:1px solid var(--line-soft); border-radius:var(--r-pop); box-shadow:var(--pop); display:grid; gap:10px}
@media (min-width:640px){ .pv-aud-pop{grid-template-columns:1fr 1fr 1fr} .pv-aud-foot{grid-column:1 / -1} }
.pv-aud-g legend{margin-bottom:4px; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-aud-o{display:flex; align-items:center; gap:8px; min-height:34px; padding:2px 6px; border-radius:6px; font-size:14px; cursor:pointer}
.pv-aud-o:hover{background:var(--hover)}
.pv-aud-o input{width:18px; height:18px; accent-color:var(--wine)}
.pv-aud-foot{display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:10px; border-top:1px solid var(--line-soft)}
.pv-aud-foot p{font-size:12.5px; color:var(--ink-3)}
.pv-aud-meta{display:inline-flex; align-items:center; gap:4px}

/* ---- surfaces: cards, sections, rows ---------------------------------------- */
.pv-card{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r-post); margin:0 0 16px}
.pv-pad{padding:20px}
.pv-panel{padding:18px}
.pv-sect{margin:0 0 28px; padding-top:20px; border-top:1px solid var(--line)}
.pv-sect:first-child,.pv-head + .pv-sect,.pv-col-side > .pv-sect:first-child,.pv-sidecol > .pv-sect:first-child{padding-top:0; border-top:0}
.pv-panel-top{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 0 10px}
.pv-panel-h{display:flex; align-items:center; gap:8px; min-width:0; font-size:16px; font-weight:600; letter-spacing:-.012em; line-height:1.3; color:var(--ink)}
.pv-panel-h em{font-size:13.5px; font-weight:400; font-style:normal; color:var(--ink-3); font-variant-numeric:tabular-nums}
.pv-panel[data-event]{box-shadow:inset 3px 0 0 var(--e, transparent)}
.pv-listcard{padding:4px 0; overflow:hidden}
.pv-listpanel{padding:0}
.pv-card.pv-listpanel{padding:14px 0 4px}
.pv-card.pv-listpanel > .pv-panel-top{padding:0 18px}
.pv-listcount{padding:12px 18px 4px; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-rows{margin:0}
.pv-row{display:flex; align-items:center; gap:10px}
.pv-rows > .pv-row + .pv-row{border-top:1px solid var(--line-soft)}
.pv-row-main{display:flex; align-items:center; gap:12px; flex:1; min-width:0; padding:11px 0}
.pv-card .pv-rows > .pv-row{padding:0 18px}
.pv-card .pv-rows > .pv-row:has(a.pv-row-main:hover){background:var(--hover)}
.pv-card.pv-panel .pv-rows > .pv-row{padding:0}
.pv-card.pv-panel .pv-rows > .pv-row:has(a.pv-row-main:hover){background:none}
.pv-card.pv-listpanel .pv-rows > .pv-row{padding:0 18px}
.pv-card.pv-listpanel .pv-rows > .pv-row:has(a.pv-row-main:hover){background:var(--hover)}
.pv-card.pv-listpanel > .pv-fold{padding:0 18px 6px}
.pv i[data-part]{font-style:normal}
a.pv-row-main:hover .pv-row-t{color:var(--wine)}
.pv-row-ic{display:grid; place-items:center; flex:none; width:34px; height:34px; color:var(--ink-4)}
.pv-row-img{flex:none; width:44px; height:44px; border-radius:var(--r-media); object-fit:cover}
.pv-row-tx{display:flex; flex-direction:column; flex:1; min-width:0}
.pv-row-t{font-size:15px; font-weight:500; line-height:1.4; color:var(--ink); overflow-wrap:anywhere}
.pv-row-m{margin-top:2px; font-size:13.5px; line-height:1.45; color:var(--ink-3); overflow-wrap:anywhere}
.pv-row-m .pv-daytag{font-weight:500}
.pv-row-r{display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:6px; flex:none; max-width:60%}
.pv-row.is-done .pv-row-t{color:var(--ink-3); text-decoration:line-through}
.pv-rows-loose .pv-row-main{padding:13px 0}
.pv-kv{display:grid; gap:10px 18px; margin:4px 0}
.pv-kv > div{display:grid; grid-template-columns:minmax(120px, 30%) minmax(0, 1fr); gap:14px; align-items:baseline}
.pv-kv dt{font-size:13.5px; color:var(--ink-3)}
.pv-kv dd{font-size:15px; line-height:1.5; color:var(--ink); overflow-wrap:anywhere}
.pv-kv dd .avatar{vertical-align:-5px; margin-right:4px}
.pv-kv dd a{color:var(--wine); font-weight:500}
@container (max-width:520px){ .pv-kv > div{grid-template-columns:1fr; gap:1px} }
.pv-mini{display:grid; gap:12px}
.pv-mini li{min-width:0}
.pv-mini a,.pv-mini b{display:block; font-size:14.5px; font-weight:500; line-height:1.4; color:var(--ink); overflow-wrap:anywhere}
.pv-mini a:hover{color:var(--wine)}
.pv-mini em{display:block; margin-top:1px; font-size:13px; font-style:normal; color:var(--ink-3)}
.pv-mini li.is-done a{color:var(--ink-3); text-decoration:line-through}
.pv-bullets{margin:4px 0 10px 18px; list-style:disc}
.pv-bullets li{margin:2px 0}
.pv-empty{margin:0 0 16px; padding:14px 0 6px}
.pv-empty-sm{padding:8px 0 4px}
.pv-empty-h{font-size:15.5px; font-weight:600; line-height:1.4; color:var(--ink)}
.pv-empty-t{margin-top:4px; max-width:60ch; font-size:14.5px; line-height:1.5; color:var(--ink-2)}
.pv-empty-acts{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.pv-strip{display:flex; align-items:center; gap:10px; padding:12px 16px; font-size:14.5px; color:var(--ink-2)}
.pv-strip b{color:var(--wine); font-size:16px; font-variant-numeric:tabular-nums}
.pv-strip > svg:last-child{margin-left:auto; color:var(--ink-3)}
.pv-strip:hover{border-color:var(--line)}
.pv-linkline{margin:8px 0; padding:8px 10px; border-radius:var(--r-ctl); background:var(--sunk); font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--ink-2); overflow-wrap:anywhere}
.pv-code{font-size:16px; letter-spacing:.14em; color:var(--ink); font-variant-numeric:tabular-nums}
/* one thing and what goes with it: a readable main column, its supporting notes beside it */
.pv-cols{display:grid; gap:0 40px}
.pv-col-main,.pv-col-side{min-width:0}
@container (min-width:880px){
  .pv-cols{grid-template-columns:minmax(0, 1fr) 300px; align-items:start}
  .pv-col-side{position:sticky; top:20px}
}
@container (min-width:880px){ .pv-cols-money{grid-template-columns:minmax(0, 1fr) 340px} }
@container (min-width:880px){ .pv-cols-plan{grid-template-columns:minmax(0, 1fr) 272px} }
@container (max-width:879px){ .pv-col-side{margin-top:12px; padding-top:20px; border-top:1px solid var(--line)} }

/* ---- a post -------------------------------------------------------------------- */
.pv-post{padding-top:16px; overflow:hidden}
.pv-post.is-pinned{border-color:#E4D4AE}
.pv-pinrow{display:flex; align-items:center; gap:6px; margin:0 18px 10px; font-size:13px; font-weight:600; color:var(--ink-2)}
.pv-pinrow svg{color:var(--gold)}
.pv-post-head{display:flex; align-items:flex-start; gap:11px; padding:0 10px 0 18px}
.pv-av{flex:none}
.pv-av-album{display:block; width:40px; height:40px; border-radius:var(--r-media); overflow:hidden; background:var(--sunk)}
.pv-av-album img{width:100%; height:100%; object-fit:cover}
.pv-post-who{flex:1; min-width:0; padding-top:1px}
.pv-post-l1{font-size:15px; line-height:1.35; overflow-wrap:anywhere}
.pv-name{font-weight:600; color:var(--ink)}
a.pv-name:hover{text-decoration:underline; text-underline-offset:2px}
.pv-verb{color:var(--ink-2)}
.pv-meta{display:flex; flex-wrap:wrap; align-items:center; gap:0 5px; margin-top:2px; font-size:13px; line-height:1.45; color:var(--ink-3)}
.pv-meta a:hover{text-decoration:underline}
.pv-post-tx{padding:12px 18px 14px; font-size:16px; line-height:1.55; color:var(--ink); overflow-wrap:anywhere}
.pv-post-tx a.tag,.pv-post-tx a.mention,.pv-c-tx a.tag,.pv-c-tx a.mention,.pv-prose a.tag,.pv-msg-tx a{color:var(--wine); font-weight:500}
.pv-pills{display:flex; flex-wrap:wrap; gap:6px; padding:0 18px 12px}
.pv-answer{margin:0 18px 14px; padding:10px 14px; border-left:3px solid var(--yes); border-radius:0 8px 8px 0; background:var(--yes-tint)}
.pv-answer-k{font-size:12.5px; font-weight:600; color:var(--yes)}
.pv-made{display:flex; flex-wrap:wrap; gap:6px; padding:0 18px 12px}
.pv-madechip{display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:5px 10px; border:1px solid var(--line-soft); border-radius:var(--r-ctl); background:var(--paper); font-size:13px}
.pv-madechip b{font-weight:600; color:var(--wine)}
.pv-madechip span{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-madechip em{font-style:normal; color:var(--ink-3); white-space:nowrap}
.pv-media{display:grid; gap:2px; container-type:inline-size; background:var(--surface)}
.pv-post-head + .pv-media,.pv-pills + .pv-media{margin-top:12px}
.pv-ph{position:relative; display:block; overflow:hidden; background:var(--sunk)}
.pv-ph img{width:100%; height:100%; object-fit:cover; object-position:var(--focus, 50% 38%)}
.pv-n1 .pv-ph{width:100%; height:min(calc(100cqw / var(--r, 1)), 560px)}
.pv-n2{grid-template-columns:1fr 1fr}
.pv-n2 .pv-ph{aspect-ratio:4/5}
.pv-n3{grid-template-columns:3fr 2fr; grid-template-rows:1fr 1fr; aspect-ratio:5/4}
.pv-n3 .pv-ph-big{grid-row:span 2}
.pv-ph-n{position:absolute; inset:0; display:grid; place-items:center; background:rgba(28,22,20,.44); color:#fff; font-size:26px; font-weight:600}
.pv-ph:hover img{filter:brightness(.97)}
.pv-files{display:flex; flex-wrap:wrap; gap:6px; padding:0 18px 12px}
.pv-filechip{display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:6px 10px; border:1px solid var(--line); border-radius:var(--r-ctl); font-size:13.5px; color:var(--ink-2)}
.pv-filechip span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-filechip:hover{border-color:var(--wine); color:var(--wine)}
.pv-poll{display:grid; gap:8px; padding:2px 18px 14px}
.pv-opt{position:relative; display:flex; align-items:center; gap:10px; width:100%; min-height:48px; padding:0 14px; overflow:hidden;
  border:1px solid var(--line); border-radius:8px; background:var(--surface); font-size:15px; font-weight:500; color:var(--ink); text-align:left; cursor:pointer}
.pv-opt:hover{border-color:var(--line-strong)}
.pv-opt:disabled{cursor:default}
.pv-opt-fill{position:absolute; inset:0 auto 0 0; background:var(--sunk)}
.pv-opt[aria-pressed="true"]{border-color:var(--wine)}
.pv-opt[aria-pressed="true"] .pv-opt-fill{background:var(--wine-tint)}
.pv-opt-tick{position:relative; display:grid; place-items:center; flex:none; width:20px; height:20px; border:1.5px solid var(--line-strong); border-radius:50%; color:transparent}
.pv-opt[aria-pressed="true"] .pv-opt-tick{border-color:var(--wine); background:var(--wine); color:#fff}
.pv-opt-l{position:relative; flex:1; min-width:0; padding:12px 0; line-height:1.3}
.pv-opt-n{position:relative; font-size:14px; font-weight:600; color:var(--ink-2); font-variant-numeric:tabular-nums}
.pv-opt-who{margin:-4px 0 2px 14px; font-size:12.5px; color:var(--ink-3)}
.pv-poll-note{font-size:13px; color:var(--ink-3)}
.pv-sum{display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 18px; padding:11px 0; font-size:13.5px; color:var(--ink-3)}
.pv-photoside .pv-sum{margin:6px 0}
.pv-rx{display:inline-flex; align-items:center; gap:6px; min-width:0}
.pv-rx-marks{display:inline-flex; padding-left:4px}
.pv-rx-marks i{display:grid; place-items:center; width:20px; height:20px; margin-left:-4px; border-radius:50%; background:var(--surface); box-shadow:0 0 0 2px var(--surface); font-size:13px; font-style:normal; line-height:1}
.pv-sum-c{margin-left:auto; padding:0; border:0; background:none; font-size:13.5px; color:var(--ink-3); cursor:pointer}
.pv-sum-c:hover{text-decoration:underline}
.pv-acts{display:flex; gap:4px; margin:0 10px; padding:4px 0; border-top:1px solid var(--line-soft)}
.pv-acts > *{flex:1; min-width:0}
.pv-acts-one > *{flex:0 1 auto}
.pv-acts-wrap{flex-wrap:wrap; margin:12px 0 0; padding:6px 0; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft)}
.pv-acts-wrap > *{flex:1 1 auto}
.pv-act{display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:40px; padding:0 10px; border:0; border-radius:8px;
  background:transparent; font-size:14.5px; font-weight:600; color:var(--ink-2); cursor:pointer; white-space:nowrap}
.pv-act:hover{background:var(--hover); color:var(--ink)}
.pv-act[aria-pressed="true"],.pv-act.is-on{color:var(--wine)}
.pv-act-ic{display:grid; place-items:center}
.pv-mk{font-size:18px; font-style:normal; line-height:1}
.pv-react{position:relative; display:flex; align-items:center}
.pv-react .pv-act{flex:1}
.pv-react-more{display:grid; place-items:center; flex:none; width:28px; height:40px; border:0; border-radius:8px; background:none; color:var(--ink-3); cursor:pointer}
.pv-react-more:hover{background:var(--hover)}
.pv-rpanel{position:absolute; z-index:30; bottom:calc(100% + 6px); left:0; display:flex; gap:2px; padding:4px; border:1px solid var(--line-soft);
  border-radius:28px; background:var(--surface); box-shadow:var(--pop)}
.pv-rpanel button{display:grid; place-items:center; width:42px; height:42px; border:0; border-radius:50%; background:none; font-size:22px; line-height:1; cursor:pointer; transition:transform .12s ease}
.pv-rpanel button:hover,.pv-rpanel button:focus-visible{transform:scale(1.15); background:var(--hover)}
.pv-rpanel button[aria-pressed="true"]{background:var(--wine-tint)}
.pv-rpanel-all{color:var(--ink-2)}
.pv-egrid{position:absolute; z-index:45; left:0; bottom:calc(100% + 56px); display:grid; grid-template-columns:repeat(10, 36px); gap:2px; max-height:260px; overflow-y:auto;
  padding:8px; border:1px solid var(--line-soft); border-radius:var(--r-pop); background:var(--surface); box-shadow:var(--pop)}
.pv-egrid button{width:36px; height:36px; border:0; border-radius:8px; background:none; font-size:20px; cursor:pointer}
.pv-egrid button:hover{background:var(--hover)}
@media (max-width:519px){ .pv-egrid{grid-template-columns:repeat(8, 36px)} }
.pv-comments{padding:4px 18px 14px; border-top:1px solid var(--line-soft)}
.pv-earlier{padding:10px 0 0; border:0; background:none; font-size:13.5px; font-weight:600; color:var(--ink-2); cursor:pointer}
.pv-earlier:hover{text-decoration:underline}
.pv-c{display:flex; gap:8px; margin-top:12px}
.pv-c-av{flex:none}
.pv-c-main{flex:1; min-width:0}
.pv-bub{display:inline-block; max-width:100%; padding:8px 13px 9px; border-radius:14px; background:var(--sunk)}
.pv-c-name{margin-right:6px; font-size:13.5px; font-weight:600; color:var(--ink)}
a.pv-c-name:hover{text-decoration:underline}
.pv-c-tx{margin-top:1px; font-size:15px; line-height:1.45; color:var(--ink); overflow-wrap:anywhere}
.pv-c-pics{display:flex; gap:6px; margin-top:6px}
.pv-c-pics img{max-width:160px; max-height:160px; border-radius:8px; object-fit:cover}
.pv-c-meta{display:flex; align-items:center; gap:4px; padding:2px 0 0 13px; font-size:12.5px; color:var(--ink-3)}
.pv-c-meta .pv-icon-btn{width:28px; height:28px}
.pv-cbox{display:flex; align-items:center; gap:6px; margin-top:14px}
.pv .pv-cbox input[type=text],.pv .pv-cbox input:not([type]){flex:1; min-width:0; min-height:40px; padding:0 14px; border:1px solid transparent; border-radius:var(--r-ctl); background:var(--sunk); font-size:16px}
.pv .pv-cbox input:focus{background:var(--surface); border-color:var(--wine-line); box-shadow:0 0 0 3px var(--wine-tint)}
.pv-cpic{cursor:pointer}
.pv-cpic:has(input:focus-visible){outline:2px solid var(--wine)}
.pv-cpic.has-file{color:var(--wine); background:var(--wine-tint)}
.pv-send{color:var(--wine)}

/* ---- the feed, without boxes: the composer as a field, posts one under another with a hairline between ---- */
.pv-feedcol > .pv-compose{border:0; border-radius:var(--r-post); margin:0; padding:0}
.pv-feedcol > .pv-compose .pv-prompt{border-color:var(--line); background:var(--surface)}
.pv-feedcol > .pv-compose .pv-prompt:hover{border-color:var(--line-strong); background:var(--surface)}
.pv-feedcol > .pv-compose .pv-compose-ways{justify-content:flex-start; gap:4px; margin:8px 0 0 44px; padding-top:0; border-top:0}
.pv-feedcol > .pv-compose .pv-way{flex:none; min-height:36px; padding:0 10px; font-size:13.5px}
.pv-feedcol > .pv-compose.is-open{padding:16px 18px 14px; background:var(--paper)}
.pv-feedbar{margin:22px 0 0; padding-top:16px; border-top:1px solid var(--line)}
.pv-feed > .pv-card{border:0; border-radius:0; margin:0; padding:22px 0 8px}
.pv-feed > .pv-card + .pv-card{border-top:1px solid var(--line)}
.pv-feed .pv-post-head{padding:0}
.pv-feed .pv-pinrow{margin:0 0 10px}
.pv-feed .pv-post-tx,.pv-feed .pv-pills,.pv-feed .pv-made,.pv-feed .pv-files,.pv-feed .pv-poll{padding-left:0; padding-right:0}
.pv-feed .pv-answer{margin-left:0; margin-right:0}
.pv-feed .pv-media{border-radius:var(--r-media); overflow:hidden}
.pv-feed .pv-sum{margin:0}
.pv-feed .pv-acts{margin:0; gap:6px}
.pv-feed .pv-acts > *{flex:0 0 auto}
.pv-feed .pv-act{width:auto; padding:0 12px 0 8px}
.pv-feed .pv-react .pv-act{flex:none}
.pv-feed .pv-comments{padding-left:0; padding-right:0}
.pv-feed .pv-digest{padding:22px 0 8px}
.pv-feed .pv-digest-h{padding:0 0 8px}
.pv-feed .pv-digest-row{padding:10px 0; border-radius:0}
.pv-feed .pv-digest-row:hover{background:none}
.pv-feed .pv-digest-list > li + li{border-top:1px solid var(--line-soft)}
.pv-feed .pv-post.is-pinned{padding-left:16px; border-left:3px solid #E4D4AE}

/* ---- the composer ------------------------------------------------------------------ */
.pv-compose{padding:14px 18px 8px}
.pv-compose-rest{display:flex; align-items:center; gap:12px}
.pv-prompt{flex:1; min-width:0; min-height:44px; padding:0 16px; border:1px solid transparent; border-radius:var(--r-ctl); background:var(--sunk); color:var(--ink-3);
  font-size:16px; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:text}
.pv-prompt:hover{background:var(--sunk-2)}
.pv-compose-ways{display:flex; gap:2px; margin:12px -8px 0; padding-top:6px; border-top:1px solid var(--line-soft)}
.pv-way{flex:1; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:40px; padding:0 6px; border:0; border-radius:8px;
  background:transparent; font-size:14px; font-weight:600; color:var(--ink-2); cursor:pointer; white-space:nowrap}
.pv-way:hover{background:var(--hover); color:var(--ink)}
.pv-way svg{color:var(--ink-3)}
.pv-compose.is-open .pv-compose-rest,.pv-compose.is-open .pv-compose-ways{display:none}
.pv-compose-forms{padding:2px 0 10px}
.pv-intents{display:flex; align-items:center; gap:4px; margin:0 -6px 12px; overflow-x:auto; scrollbar-width:none}
.pv-intents button[role=tab]{display:inline-flex; align-items:center; gap:6px; flex:none; min-height:34px; padding:0 12px; border:0; border-radius:var(--r-ctl); background:none;
  font-size:13.5px; font-weight:600; color:var(--ink-2); cursor:pointer}
.pv-intents button[role=tab]:hover{background:var(--hover)}
.pv-intents button[aria-selected="true"]{background:var(--wine-tint); color:var(--wine)}
.pv-compose-x{margin-left:auto}
.pv-cform{display:grid; gap:12px}
.pv-compose-who{display:flex; align-items:center; gap:8px; font-size:14.5px}
.pv-cform textarea{min-height:96px}
.pv-cform-row{display:flex; flex-wrap:wrap; align-items:center; gap:8px}
.pv-pollins{display:grid; gap:6px}
.pv-compose-open{padding:18px}

/* ---- the home ------------------------------------------------------------------------ */
/* the wedding at the door: their photograph across the page, then a paper foot with
   their names, when and where, how long, and the two clocks; the four days beside it in
   the supporting column, then what waits on you and the rest; the feed under the photograph */
.pv-home{display:grid; gap:0; grid-template-columns:minmax(0, 1fr); grid-template-areas:"hero" "days" "feed" "side"; max-width:720px; margin-inline:auto}
.pv-hero{grid-area:hero}
.pv-days-nav{grid-area:days}
.pv-feedcol{grid-area:feed; min-width:0}
.pv-sidecol{grid-area:side; min-width:0}
@container (min-width:940px){
  .pv-home{max-width:none; grid-template-columns:minmax(0, 1fr) 300px; grid-template-rows:auto auto 1fr; grid-template-areas:"hero hero" "feed days" "feed side"; column-gap:40px; align-items:start}
}
@container (max-width:939px){
  .pv-sidecol{margin-top:12px; padding-top:22px; border-top:1px solid var(--line)}
}
.pv-hero{margin:0 0 26px; overflow:hidden; background:var(--surface); border-radius:16px}
@container (min-width:640px){ .pv-hero{margin-bottom:44px} }
.pv-hero-ph{position:relative; margin:0; aspect-ratio:16/10; background:var(--sunk)}
.pv-hero-ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:var(--focus, 50% 30%)}
.pv-hero-foot{display:grid; gap:18px; padding:20px 18px 22px; background:var(--paper)}
.pv-hero-tx{min-width:0}
.pv-hero-tx h1{margin:0}
.pv-hero .pv-names{display:block; font-family:var(--display); font-weight:400; font-size:36px; line-height:1.02; letter-spacing:-.012em}
.pv-hero .pv-dateline{margin-top:12px}
.pv-hero .pv-dateline + .pv-dateline{margin-top:2px}
.pv-hero-facts{display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px 28px}
.pv-togo{display:flex; flex-direction:column; color:var(--ink)}
a.pv-togo:hover b{color:var(--wine)}
.pv-togo b{font-size:34px; font-weight:600; letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums}
.pv-togo span{margin-top:4px; font-size:13px; font-weight:500; line-height:1.25; color:var(--ink-3)}
@container (min-width:640px){
  .pv-hero-ph{aspect-ratio:2.5/1}
  .pv-hero-foot{padding:24px 28px 26px}
  .pv-hero .pv-names{font-size:44px}
  .pv-hero-facts{gap:0 28px}
  .pv-togo b{font-size:38px}
}
@container (min-width:940px){
  .pv-hero-ph{aspect-ratio:2.85/1}
  .pv-hero-foot{grid-template-columns:minmax(0, 1fr) auto; align-items:start; gap:24px 32px; padding:22px 30px 24px}
  .pv-hero .pv-names{font-size:48px}
  .pv-hero-facts{flex-wrap:nowrap; gap:0 26px; min-width:268px; margin-left:auto; padding-left:28px; border-left:1px solid var(--line)}
  .pv-togo b{font-size:40px}
}
/* the two clocks */
.pv-clocks{display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px}
.pv-clock{display:flex; align-items:center; gap:9px; min-width:0}
.pv-clock-face{flex:none; width:32px; height:32px}
.pv-clock-face .f{fill:#FFFDF9; stroke:var(--line-strong); stroke-width:1}
.pv-clock-face .k{stroke:var(--ink-4); stroke-width:1.2; stroke-linecap:round}
.pv-clock-face .hh{stroke:var(--ink); stroke-width:2; stroke-linecap:round}
.pv-clock-face .mh{stroke:var(--ink); stroke-width:1.3; stroke-linecap:round}
.pv-clock-face .pin{fill:var(--gold)}
.pv-clock.is-night .pv-clock-face .f{fill:#2E2A33; stroke:#2E2A33}
.pv-clock.is-night .pv-clock-face .k{stroke:#8B8494}
.pv-clock.is-night .pv-clock-face :is(.hh, .mh){stroke:#F2EDE6}
.pv-clock-tx{display:grid; grid-template-columns:auto; line-height:1.2}
.pv-clock-tx .t{font-size:16px; font-weight:600; letter-spacing:-.01em; font-variant-numeric:tabular-nums; color:var(--ink)}
.pv-clock-where{font-size:12.5px; font-weight:500; color:var(--ink-2); white-space:nowrap}
.pv-clock-part{font-size:12px; color:var(--ink-3)}
.pv-clock-part i{font-style:normal}
.pv-clocks-gap{flex-basis:100%; font-size:12.5px; color:var(--ink-3)}
.pv-hero .pv-clock-part{display:none}
@container (min-width:940px){ .pv-hero .pv-clocks{flex-direction:column; align-items:flex-start; gap:8px} .pv-hero .pv-clocks-gap{margin-top:2px} }
/* the four days, in the supporting column (a 2×2 on a phone) */
.pv-days-nav{margin:0 0 22px}
.pv-days{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.pv-day{display:flex; flex-direction:column; min-width:0; margin:0; overflow:hidden; border:1px solid var(--line-soft); border-radius:var(--r-post); background:var(--surface); color:var(--ink)}
.pv-day:hover{border-color:var(--line)}
.pv-day img{width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--sunk); border-bottom:3px solid var(--e, var(--line-soft))}
.pv-day > span{display:flex; flex-direction:column; min-width:0; padding:8px 10px 10px}
.pv-day b{display:flex; align-items:baseline; gap:8px; font-family:var(--title); font-weight:500; font-size:17px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-day:hover b{color:var(--wine)}
.pv-day em{font-style:normal; margin-top:1px; font-size:12px; color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-day > svg{display:none}
/* what is waiting on you, in one line on a phone, open to see */
.pv-glance{margin:0 0 14px}
.pv-glance > summary{display:flex; align-items:center; gap:10px; min-height:48px; padding:0 14px; border:1px solid var(--line-soft); border-radius:var(--r-post); background:var(--surface);
  list-style:none; font-size:14.5px; color:var(--ink-2); cursor:pointer}
.pv-glance > summary::-webkit-details-marker{display:none}
.pv-glance > summary b{color:var(--ink); font-weight:600}
.pv-glance > summary .pv-glance-n{display:inline-grid; place-items:center; min-width:24px; height:24px; padding:0 7px; border-radius:12px; background:var(--wine); color:#fff; font-size:13px; font-weight:600}
.pv-glance > summary > svg:last-child{margin-left:auto; flex:none; color:var(--ink-3); transition:transform .15s ease}
.pv-glance[open] > summary{border-radius:var(--r-post) var(--r-post) 0 0}
.pv-glance[open] > summary > svg:last-child{transform:rotate(180deg)}
.pv-glance-in{padding:14px 16px 16px; border:1px solid var(--line-soft); border-top:0; border-radius:0 0 var(--r-post) var(--r-post); background:var(--surface)}
.pv-glance-in > .pv-sect{margin-bottom:14px}
.pv-glance-in > .pv-sect:last-child{margin-bottom:0}
@container (min-width:940px){ .pv-glance{display:none} }
@container (max-width:939px){ .pv-sidecol .pv-foryou,.pv-sidecol .pv-mood{display:none} }
.pv-feedbar{display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px}
.pv-feedbar .pv-chips{margin:0}
/* the supporting column: lower in voice than the feed */
.pv-sidecol .pv-sect{margin-bottom:26px}
.pv-sidecol .pv-panel-h{font-size:15.5px}
.pv-todo-tx{display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin:0 0 6px; font-size:15px; font-weight:500; line-height:1.45; color:var(--ink)}
.pv-todo-tx:hover{color:var(--wine)}
.pv-todo .pv-actions{margin:10px 0 2px}
.pv-todo + .pv-mini{margin-top:14px; padding-top:12px; border-top:1px solid var(--line-soft)}
.pv-mood .pv-quiet{margin-top:8px; font-size:14px}
.pv-folks{margin:0}
.pv-folks li{display:flex; align-items:center; gap:4px; border-radius:8px}
.pv-folk{display:flex; align-items:center; gap:10px; flex:1; min-width:0; padding:5px 0}
.pv-folk > span{min-width:0}
.pv-folk:hover b{color:var(--wine)}
.pv-folk b{display:flex; align-items:center; gap:6px; font-size:14.5px; font-weight:500; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-folk em{display:block; font-style:normal; font-size:12.5px; color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-folk em.is-unread{color:var(--ink); font-weight:600}
/* the family, as faces */
.pv-facegrid{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px 6px; margin:4px 0 0}
.pv-face{position:relative; display:flex; flex-direction:column; align-items:center; gap:0; min-width:0; padding:6px 2px; border-radius:var(--r-ctl); text-align:center; color:var(--ink)}
.pv-face .pv-badge{position:absolute; top:2px; left:calc(50% + 12px); box-shadow:0 0 0 2px #fff}
.pv-around-sect{margin-top:4px}
.pv-face:hover{background:var(--hover)}
.pv-face .avatar{width:48px; height:48px; margin-bottom:6px; font-size:17px}
.pv-face b{font-size:13px; font-weight:600; line-height:1.25; overflow-wrap:anywhere}
.pv-face em{max-width:100%; margin-top:1px; font-style:normal; font-size:11.5px; line-height:1.3; color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-shots{display:grid; grid-template-columns:repeat(3, 1fr); gap:4px; margin-bottom:8px}
.pv-shots img{width:100%; aspect-ratio:1; object-fit:cover; object-position:50% 38%; border-radius:var(--r-tile)}
.pv-bar{display:block; height:6px; margin:8px 0; border-radius:3px; background:var(--sunk-2); overflow:hidden}
.pv-bar i{display:block; height:100%; background:var(--wine)}
.pv-bar-lg{height:8px; margin:14px 0 10px}
.pv-around{display:grid; gap:0}
.pv-around > li + li{border-top:1px solid var(--line-soft)}
.pv-around-row{display:flex; align-items:center; gap:10px; min-height:46px; padding:6px 0}
.pv-around-row > span{display:flex; flex-direction:column; flex:1; min-width:0}
.pv-around-row b{font-size:14.5px; font-weight:500; line-height:1.3}
.pv-around-row em{font-style:normal; font-size:12.5px; color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-around-row > svg{flex:none; color:var(--ink-4)}
a.pv-around-row:hover b{color:var(--wine)}
.pv-askhq{display:flex; gap:6px; margin-top:4px}
.pv-askhq input{flex:1; min-height:38px !important; font-size:15px !important}
.pv-fromus{display:flex; align-items:center; gap:14px; padding:14px 18px; background:var(--paper)}
.pv-fromus:hover{border-color:var(--line)}
.pv-fromus-mark,.pv-usmark{display:grid; place-items:center; flex:none; width:44px; height:44px; border-radius:50%; background:var(--gold-tint); color:var(--gold-deep); font-family:var(--title); font-size:17px; font-weight:500; letter-spacing:.02em}
.pv-usmark{display:inline-grid; width:34px; height:34px; font-size:14px}
.pv-fromus-tx{display:flex; flex-direction:column; flex:1; min-width:0}
.pv-fromus-tx em{font-style:normal; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-fromus-tx b{font-family:var(--title); font-weight:500; font-size:18px; line-height:1.3}
.pv-fromus-tx span{font-size:14px; color:var(--ink-2); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.pv-fromus > svg{flex:none; color:var(--ink-3)}
.pv-confirm{display:flex; align-items:center; gap:10px; padding:12px 16px; background:var(--warn-tint); border-color:#EAD9B3; color:var(--warn); font-size:14.5px}
.pv-confirm p{flex:1; min-width:0}
.pv-confirm a{font-weight:600; text-decoration:underline}
.pv-invite{display:flex; align-items:center; gap:14px; padding:14px 18px; color:var(--ink)}
.pv-invite > svg{flex:none; color:var(--wine)}
.pv-invite > span:nth-child(2){display:flex; flex-direction:column; flex:1; min-width:0}
.pv-invite em{font-style:normal; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-invite span span{font-size:14px; color:var(--ink-2)}
.pv-ask{padding:16px 18px; border-color:#E6D6B2; background:var(--paper)}
.pv-ask-t{margin:4px 0 6px; font-size:16.5px; font-weight:600; line-height:1.4; letter-spacing:-.01em}
.pv-askpanel{padding:16px 18px}
.pv-todaycard{display:block; padding:14px 18px; border-color:var(--wine-line); background:var(--wine-tint)}
.pv-todaycard p{margin-top:4px; font-size:15px}
.pv-todaycard em{font-style:normal; font-weight:600; color:var(--wine)}
.pv-storm{padding:20px}
.pv-storm h2{font-size:18px; font-weight:600; margin-bottom:8px}
/* new photographs, in proportion: several albums as one note, one album as a small strip */
.pv-digest{padding:14px 0 6px}
.pv-digest-h{display:flex; align-items:center; gap:10px; padding:0 18px 8px}
.pv-digest-h > span:first-child{display:grid; place-items:center; flex:none; width:40px; height:40px; border-radius:50%; background:var(--gold-tint); color:var(--gold-deep)}
.pv-digest-h p{flex:1; min-width:0; font-size:15px; line-height:1.35}
.pv-digest-h .pv-meta{margin-top:1px}
.pv-digest-list > li + li{border-top:1px solid var(--line-soft)}
.pv-digest-row{display:flex; align-items:center; gap:14px; padding:10px 18px}
.pv-digest-row:hover{background:var(--hover)}
.pv-digest-row:hover b{color:var(--wine)}
.pv-digest-thumbs{display:flex; flex:none; gap:3px; width:217px}
.pv-digest-thumbs img{width:52px; height:52px; border-radius:var(--r-tile); object-fit:cover; object-position:50% 38%; background:var(--sunk)}
.pv-digest-row > span:last-child{display:flex; flex-direction:column; min-width:0}
.pv-digest-row b{font-family:var(--title); font-weight:500; font-size:17px; line-height:1.25}
.pv-digest-row em{font-style:normal; font-size:13px; color:var(--ink-3)}
.pv-strip4{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:2px; margin-top:12px}
.pv-strip4 a{position:relative; display:block; aspect-ratio:1; overflow:hidden; background:var(--sunk)}
.pv-strip4 img{width:100%; height:100%; object-fit:cover; object-position:50% 38%}
@container (max-width:520px){ .pv-digest-thumbs{width:99px} .pv-digest-thumbs img:nth-child(n+3){display:none} .pv-digest-thumbs img{width:48px; height:48px} }
.pv-nw{white-space:nowrap}

/* ---- photos ---------------------------------------------------------------------------- */
.pv-sec{margin-top:28px}
.pv-sec:first-child{margin-top:0}
.pv-sec-h{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 0 14px}
.pv-sec-h h2{font-size:16px; font-weight:600; letter-spacing:-.01em}
.pv-sec-h p{font-size:13.5px; color:var(--ink-3)}
/* albums: chosen columns, not as many as fit — three across for a handful, four for a big collection */
.pv-albums{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:24px 14px}
@container (min-width:720px){ .pv-albums{grid-template-columns:repeat(3, minmax(0, 1fr)); gap:34px 24px} }
@container (min-width:1000px){ .pv-albums.is-many{grid-template-columns:repeat(4, minmax(0, 1fr)); gap:32px 20px} }
.pv-album{display:block; min-width:0}
.pv-album-cover{position:relative; display:grid; place-items:center; aspect-ratio:1; overflow:hidden; border-radius:var(--r-media); background:var(--sunk); color:var(--gold)}
.pv-album-cover img{width:100%; height:100%; object-fit:cover; object-position:var(--focus, 50% 40%); transition:transform .3s ease}
.pv-album:hover .pv-album-cover img{transform:scale(1.015)}
.pv-album-tx{display:block; padding:12px 1px 0}
.pv-album-tx b{display:block; font-family:var(--title); font-weight:500; font-size:20px; line-height:1.2; letter-spacing:-.005em; color:var(--ink)}
.pv-album:hover .pv-album-tx b{color:var(--wine)}
.pv-album-tx em{display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; margin-top:4px; font-size:13.5px; font-style:normal; color:var(--ink-3)}
.pv-album-tx em svg{vertical-align:-2px}
.pv-album-tx .pv-chip{min-height:20px; font-size:12px; font-weight:600}
.pv-waitlist{display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:10px}
.pv-waiting{display:flex; align-items:center; gap:12px; min-width:0; padding:8px 12px 8px 8px; border:1px solid var(--line-soft); border-radius:var(--r-post); background:var(--paper)}
.pv-waiting:hover{border-color:var(--line)}
.pv-waiting-art{position:relative; display:grid; place-items:center; flex:none; width:44px; height:44px; overflow:hidden; border-radius:var(--r-media); background:var(--sunk)}
.pv-waiting-art img{width:100%; height:100%; object-fit:cover}
.pv-waiting > span:last-child{display:flex; flex-direction:column; min-width:0}
.pv-waiting b{font-family:var(--title); font-weight:500; font-size:16px; line-height:1.25}
.pv-waiting em{font-size:12.5px; font-style:normal; color:var(--ink-3)}
/* a photograph keeps its own shape: each row grows to the width at one height (the house's own grid) */
.pv-grid{display:flex; flex-wrap:wrap; gap:6px; --row:170px}
.pv-grid-lg{--row:210px}
.pv-grid::after{content:''; flex:99999 1 0; min-width:0}
.pv-tile{--r:1; position:relative; display:block; min-width:0; flex:calc(var(--r) * 100) 1 calc(var(--r) * var(--row));
  max-width:calc(var(--r) * var(--row) * 1.9); aspect-ratio:var(--r); overflow:hidden; border-radius:var(--r-tile); background:var(--sunk)}
.pv-tile img{width:100%; height:100%; object-fit:cover}
.pv-tile:hover img{filter:brightness(.96)}
.pv-tile-from,.pv-tile-n{position:absolute; bottom:6px; padding:2px 7px; border-radius:8px; background:rgba(28,22,20,.62); color:#fff; font-size:11.5px; font-weight:600}
.pv-tile-from{left:6px}
.pv-tile-n{right:6px}
.pv-tick{position:absolute; top:6px; left:6px; display:none}
.pv-tick input{position:absolute; opacity:0}
.pv-tick i{display:grid; place-items:center; width:26px; height:26px; border:2px solid #fff; border-radius:50%; background:rgba(28,22,20,.3); color:transparent; box-shadow:0 1px 4px rgba(0,0,0,.25)}
.pv-tick input:checked + i{background:var(--wine); color:#fff}
.pv-tick input:focus-visible + i{outline:2px solid var(--wine); outline-offset:2px}
.is-selecting .pv-tick{display:block}
.is-selecting .pv-tile:has(input:checked){outline:3px solid var(--wine); outline-offset:-3px}
.pv-selbar{position:sticky; top:8px; z-index:15; display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; padding:8px 10px; border-radius:var(--r-post); background:var(--ink); color:#fff}
.pv-selbar .pv-btn-quiet{color:#E8E2DA}
.pv-selbar .pv-btn-quiet:hover{background:rgba(255,255,255,.1)}
.pv-selbar .pv-btn-danger{color:#FFC9D2}
.pv-selbar .pv-btn-danger:hover{background:rgba(255,255,255,.08)}
.pv-selbar .pv-btn-secondary{background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.2); color:#fff}
.pv-selbar select{min-height:34px; width:auto; padding-top:4px; padding-bottom:4px; font-size:14px}
.pv-selbar-n{margin-right:auto; font-size:14px}
.pv-pickinto{display:inline-flex; align-items:center; gap:6px}
.pv-outlink{display:flex; align-items:center; gap:14px; padding:10px 14px}
.pv-outlink img{flex:none; width:64px; height:48px; object-fit:cover; border-radius:var(--r-media)}
.pv-outlink-ic{display:grid; place-items:center; flex:none; width:44px; height:44px; border-radius:var(--r-media); background:var(--sunk); color:var(--ink-2)}
.pv-outlink-tx{display:flex; flex-direction:column; flex:1; min-width:0}
.pv-outlink-tx b{font-weight:600}
.pv-outlink-tx em{font-style:normal; font-size:13px; color:var(--ink-3)}
.pv-emptyart{display:grid; align-items:center; gap:18px; padding:18px; background:var(--paper)}
.pv-emptyart figure{display:grid; gap:6px}
.pv-emptyart img{width:100%; aspect-ratio:2/1; object-fit:cover; border-radius:var(--r-media)}
.pv-emptyart figcaption{font-size:12.5px; color:var(--ink-3)}
@container (min-width:720px){ .pv-emptyart{grid-template-columns:minmax(0, 340px) 1fr} }
.pv-remote{display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 80px; --row:150px}
.pv-remote::after{content:''; flex:99999 1 0; min-width:0}
.pv-rtile{--r:1; position:relative; display:block; min-width:0; flex:calc(var(--r) * 100) 1 calc(var(--r) * var(--row)); max-width:calc(var(--r) * var(--row) * 1.9);
  aspect-ratio:var(--r); overflow:hidden; border-radius:var(--r-tile); background:var(--sunk); cursor:pointer}
.pv-rtile img{width:100%; height:100%; object-fit:cover}
.pv-rtile input{position:absolute; opacity:0}
.pv-rtile i{position:absolute; top:6px; left:6px; display:grid; place-items:center; width:24px; height:24px; border:2px solid #fff; border-radius:50%; background:rgba(0,0,0,.25); color:transparent}
.pv-rtile input:checked ~ i{background:var(--wine); color:#fff}
.pv-rtile:has(input:checked){outline:3px solid var(--wine); outline-offset:-3px}
.pv-rtile.is-here{opacity:.55; cursor:default}
.pv-rtile.is-here i{background:var(--yes); color:#fff}
.pv-stickybar{position:sticky; bottom:12px; z-index:10; display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px 12px; border-radius:var(--r-pop); background:var(--surface); border:1px solid var(--line-soft); box-shadow:var(--pop)}
/* one photograph: the picture first, what it is and what was said beside it; the rest behind Manage */
.pv-photoview{display:grid; gap:18px}
.pv-stage{position:relative; display:grid; place-items:center; min-height:300px; border-radius:var(--r-post); overflow:hidden; background:#1F1B19}
.pv-stage img{max-width:100%; max-height:calc(100vh - 170px); object-fit:contain}
.pv-stage-nav{position:absolute; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.9); color:var(--ink); box-shadow:0 2px 10px rgba(0,0,0,.2)}
.pv-stage-nav:hover{background:#fff}
.pv-stage-nav.is-prev{left:12px}
.pv-stage-nav.is-next{right:12px}
.pv-stage-count{position:absolute; left:12px; bottom:12px; padding:3px 9px; border-radius:10px; background:rgba(28,22,20,.6); color:#fff; font-size:12.5px; font-weight:600; font-variant-numeric:tabular-nums}
.pv-photoside{display:grid; gap:14px; align-content:start; min-width:0}
.pv-photoside-top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px}
.pv-photo-cap{font-family:var(--serif); font-size:20px; line-height:1.4; color:var(--ink)}
.pv-photo-cap.is-empty{font-family:var(--ui); font-size:15px; color:var(--ink-3)}
.pv-photo-by{font-size:13.5px; color:var(--ink-3)}
.pv-photo-by a{color:var(--ink-2); font-weight:500}
.pv-photo-by a:hover{color:var(--wine)}
.pv-inpic{display:grid; gap:8px}
.pv-tagrow{display:flex; flex-wrap:wrap; gap:6px}
.pv-ptag{display:inline-flex; align-items:center; gap:2px; border:1px solid var(--line-soft); border-radius:var(--r-ctl); background:var(--surface)}
.pv-ptag > a,a.pv-ptag{display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 4px; font-size:13.5px; font-weight:500}
a.pv-ptag:hover,.pv-ptag > a:hover{color:var(--wine)}
.pv-ptag form{display:inline-flex}
.pv-ptag-x{display:grid; place-items:center; width:24px; height:24px; margin-right:3px; border:0; border-radius:50%; background:none; color:var(--ink-3); cursor:pointer}
.pv-ptag-x:hover{background:var(--hover); color:var(--danger)}
.pv-photo-comments{padding-top:14px; border-top:1px solid var(--line-soft)}
.pv-photoside .pv-acts-wrap{flex-wrap:nowrap; gap:2px}
.pv-photoside .pv-acts-wrap > *{flex:1 1 0}
.pv-photoside .pv-act{padding:0 6px; gap:6px}
@container (min-width:900px){ .pv-photoview{grid-template-columns:minmax(0, 1fr) 340px; align-items:start} .pv-stage{min-height:560px; position:sticky; top:14px} }

/* ---- the invitations ---------------------------------------------------------------- */
.pv-film{display:grid; gap:18px; margin:36px 0 8px; padding-top:32px; border-top:1px solid var(--line-soft)}
.pv-film-frame{justify-self:center; width:min(100%, 340px); overflow:hidden; border-radius:var(--r-media); background:#1F1B19; box-shadow:0 18px 40px -26px rgba(40,28,18,.6)}
.pv-film-frame video{width:100%; aspect-ratio:2/3; object-fit:contain; background:#1F1B19}
.pv-film-tx{align-self:center; max-width:46ch}
.pv-film-tx h2{margin-top:2px; font-family:var(--title); font-weight:500; font-size:26px; line-height:1.2}
.pv-film-tx p.pv-film-b{margin-top:8px; font-size:15.5px; line-height:1.55; color:var(--ink-2)}
.pv-film-tx .pv-acts{justify-content:flex-start; gap:6px; margin:16px 0 0; padding:6px 0}
.pv-film-tx .pv-acts > *{flex:none}
.pv-film-tx .pv-react .pv-act,.pv-film-tx .pv-act{width:auto; padding:0 12px}
@container (min-width:720px){ .pv-film{grid-template-columns:auto minmax(0, 1fr); gap:34px} .pv-film-frame{width:300px} }
.pv-hashnote{margin:10px 0 0; font-size:14px; color:var(--ink-2)}
.pv-hashline b,.pv-hashnote b{color:var(--wine); font-weight:600; margin-right:6px}
/* the four cards, as a set, on a paper table */
.pv-paperband{padding:22px; background:var(--paper); border:1px solid var(--line-soft); border-radius:var(--r-post)}
@container (max-width:759px){ .pv-paperband{padding:14px} }
.pv-invcards{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:22px 14px}
@container (min-width:760px){ .pv-invcards{grid-template-columns:repeat(4, minmax(0, 1fr)); gap:22px} }
.pv-invcards.is-extra{grid-template-columns:repeat(2, minmax(0, 1fr))}
@container (min-width:760px){ .pv-invcards.is-extra{grid-template-columns:repeat(4, minmax(0, 1fr))} }
.pv-invcard{position:relative; display:flex; flex-direction:column; min-width:0; margin:0}
.pv-invcard-art{position:relative; display:block; overflow:hidden; border-radius:4px; background:var(--sunk); box-shadow:0 1px 2px rgba(40,28,18,.08), 0 14px 30px -24px rgba(40,28,18,.55)}
.pv-invcard img{width:100%; aspect-ratio:5/7.5; object-fit:cover; object-position:50% 0; transition:transform .3s ease}
.pv-invcard:hover img{transform:scale(1.012)}
.pv-invcard-tx{display:block; padding:12px 1px 0}
.pv-invcard-tx b{display:block; font-family:var(--title); font-weight:500; font-size:19px; line-height:1.2; color:var(--ink)}
.pv-invcard:hover .pv-invcard-tx b{color:var(--wine)}
.pv-invcard-tx .pv-dateline{margin-top:4px; font-size:11.5px}
.pv-invcard-tx em{display:flex; flex-wrap:wrap; align-items:center; gap:0 5px; margin-top:5px; font-size:13px; font-style:normal; color:var(--ink-3)}
.pv-invcard-tx em i{font-style:normal}
.pv-invcard[data-event] .pv-invcard-art::after{content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--e)}
.pv-phonebox{display:grid; place-items:center; aspect-ratio:5/7.5; padding:14px; background:var(--sunk)}
.pv-phonebox .live{height:100%; width:auto; border-radius:12px; box-shadow:0 10px 24px -14px rgba(40,32,20,.5)}
.pv-over{position:absolute; inset:0; z-index:2}
.live{position:relative; display:block; overflow:hidden; background:#1C1917 top center / cover no-repeat; background-image:var(--still, none)}
.live iframe{position:absolute; left:0; top:0; border:0; display:block; background:transparent;
  width:calc(var(--lw) * 1px); height:calc(var(--lh) * 1px); transform-origin:0 0; transform:scale(var(--k, .3))}
.live:not(.touch) iframe{pointer-events:none}
.live.phone{aspect-ratio:390/844}
.live.desk{aspect-ratio:16/10; width:100%}
.live.fluid{width:100%; height:min(76vh, 760px)}
.live.fluid iframe{width:100%; height:100%; transform:none}
@media (max-width:640px){ .live.fluid{background-image:var(--still-phone, var(--still, none))} }
@media (hover:none){ .live.touch iframe{pointer-events:none} }
.pv-piece{display:grid; gap:22px}
.pv-piece-art{justify-self:center; width:min(100%, 520px)}
.pv-piece-art > img{width:100%; border-radius:4px; background:var(--sunk); box-shadow:0 1px 2px rgba(40,28,18,.08), 0 20px 44px -30px rgba(40,28,18,.6)}
.pv-piece-art > img.is-phone{max-width:380px; margin:0 auto; border-radius:18px}
.pv-piece-art > video{width:100%; max-height:76vh; border-radius:var(--r-media); background:#1F1B19}
.pv-piece-art .live.fluid{border-radius:var(--r-media)}
.pv-piece-tx{min-width:0}
.pv-piece-tx p{font-size:15.5px; line-height:1.55; color:var(--ink-2)}
.pv-piece.is-wide .pv-piece-art{width:100%}
@container (min-width:860px){ .pv-piece:not(.is-wide){grid-template-columns:minmax(0, 1fr) 320px; align-items:start} .pv-piece:not(.is-wide) .pv-piece-art{justify-self:stretch; width:auto} }

/* ---- planning -------------------------------------------------------------------------------- */
.pv-whopick{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:500; color:var(--ink-2); white-space:nowrap}
.pv-whopick select{width:auto; min-height:34px; padding-top:4px; padding-bottom:4px; font-size:14.5px}
.pv-taskgroup{padding:4px 0 4px}
.pv-taskgroup-h{display:flex; align-items:center; gap:8px; padding:14px 18px 6px; font-size:15px; font-weight:600}
.pv-taskgroup-h span{padding:1px 8px; border-radius:10px; background:var(--sunk); font-size:12.5px; font-weight:500; color:var(--ink-3); font-variant-numeric:tabular-nums}
.pv-taskgroup.is-late .pv-taskgroup-h{color:var(--danger)}
.pv-tasks{margin:0}
.pv-task{display:flex; align-items:flex-start; gap:12px; padding:12px 18px}
.pv-tasks > .pv-task + .pv-task{border-top:1px solid var(--line-soft)}
.pv-sect .pv-tasks .pv-task,.pv-card.pv-panel .pv-tasks .pv-task{padding:11px 0}
.pv-tickform{display:inline-flex; flex:none}
/* the round tick of something to do (its own class: form choices are .pv-choice) */
.pv-taskbox{display:grid; place-items:center; flex:none; width:24px; height:24px; margin-top:1px; padding:0; border:1.5px solid var(--line-strong); border-radius:50%;
  background:var(--surface); color:transparent; cursor:pointer}
button.pv-taskbox:hover{border-color:var(--wine); color:var(--wine-line)}
.pv-taskbox.is-on{border-color:var(--wine); background:var(--wine); color:#fff}
.pv-taskbox.is-still{cursor:default; border-style:dashed}
.pv-taskbox.is-q{color:var(--c-slate); border-style:dashed}
.pv-task-tx{flex:1; min-width:0}
.pv-task-t{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:15px; font-weight:500; line-height:1.4; color:var(--ink); overflow-wrap:anywhere}
.pv-task-t:hover{color:var(--wine)}
.pv-task-rest{display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; margin-top:1px; font-size:13.5px; line-height:1.45; color:var(--ink-3)}
.pv-task.is-done .pv-task-t{color:var(--ink-3); text-decoration:line-through}
.pv-task-meta{display:flex; flex-wrap:wrap; align-items:center; gap:2px 6px; margin-top:5px; font-size:13px; color:var(--ink-3)}
.pv-task-who{display:inline-flex; align-items:center; gap:6px}
.pv-tagchip{display:inline-flex; align-items:center; min-height:20px; padding:0 7px; border-radius:6px; background:var(--sunk); font-size:12px; font-weight:500; color:var(--ink-2)}
.pv-tagchip:hover{color:var(--wine)}
.pv-tagchips{display:inline-flex; flex-wrap:wrap; gap:4px}
.pv-counts{margin:0}
.pv-counts a{display:flex; align-items:center; gap:10px; min-height:36px; padding:4px 8px; margin:0 -8px; border-radius:var(--r-ctl); font-size:14.5px}
.pv-counts a:hover{background:var(--hover)}
.pv-counts a[aria-current="page"]{background:var(--wine-tint); color:var(--wine)}
.pv-counts span{flex:1; min-width:0}
.pv-counts b{font-size:14px; font-weight:500; color:var(--ink-2); font-variant-numeric:tabular-nums}
.pv-nextdate{display:flex; align-items:center; gap:12px; padding:14px 16px; background:var(--paper); color:var(--ink)}
.pv-nextdate > svg{flex:none; color:var(--wine)}
.pv-nextdate span:nth-child(2){display:flex; flex-direction:column; flex:1; min-width:0}
.pv-nextdate em{font-style:normal; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-nextdate b{font-weight:600; line-height:1.35}
.pv-nextdate-n{font-size:13.5px; font-weight:600; color:var(--wine); white-space:nowrap}
.pv-cal{padding:16px}
.pv-cal-head{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px}
.pv-cal-head h2{font-size:19px; font-weight:600}
.pv-cal-grid{display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); border-top:1px solid var(--line-soft); border-left:1px solid var(--line-soft)}
.pv-cal-dow{padding:6px 8px; font-size:12px; font-weight:600; color:var(--ink-3); border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); background:var(--paper)}
.pv-cal-cell{min-height:108px; padding:5px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); display:flex; flex-direction:column; gap:3px; min-width:0}
.pv-cal-cell.is-out{background:var(--hover)}
.pv-cal-cell.is-past .pv-cal-d{color:var(--ink-4)}
.pv-cal-cell.is-today{background:var(--wine-tint)}
.pv-cal-cell[data-event]{box-shadow:inset 0 3px 0 var(--e)}
.pv-cal-d{font-size:12.5px; font-weight:600; color:var(--ink-2); font-variant-numeric:tabular-nums}
.pv-cal-d em{margin-left:4px; font-style:normal; font-weight:600; color:var(--wine)}
.pv-cal-ev{display:block; padding:2px 6px; border-radius:4px; background:color-mix(in srgb, var(--e, var(--gold)) 16%, #fff); font-size:12px; font-weight:600; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-cal-ev em{margin-left:4px; font-style:normal; font-weight:400; color:var(--ink-3)}
.pv-cal-date,.pv-cal-item{display:flex; align-items:center; gap:4px; min-width:0; font-size:12px; color:var(--ink-2)}
.pv-cal-date i{font-style:normal; color:var(--gold)}
.pv-cal-item span,.pv-cal-date{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-cal-item:hover span{text-decoration:underline}
.pv-cal-item.is-done span{text-decoration:line-through; color:var(--ink-3)}
.pv-cal-item.is-late span{color:var(--danger)}
.pv-cal-sw{flex:none; width:8px; height:8px; border-radius:50%; background:var(--gold)}
.pv-cal-more{font-size:11.5px; font-weight:600; color:var(--wine)}
.pv-legend{display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; margin-top:12px}
.pv-legend a{display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:500; color:var(--ink-2)}
.pv-legend i{width:8px; height:8px; border-radius:50%; background:var(--gold)}
@media (max-width:767px){ .pv-cal-cell{min-height:64px} .pv-cal-ev em,.pv-cal-item span{display:none} .pv-cal-date{font-size:0} .pv-cal-date i{font-size:12px} }
/* the timeline: each thread of work towards the wedding; months labelled only where there is room */
.pv-gantt{padding:16px 18px; overflow-x:auto}
.pv-g-row{display:grid; grid-template-columns:200px minmax(520px, 1fr); gap:12px; align-items:center; min-height:36px}
.pv-g-head{min-height:28px; border-bottom:1px solid var(--line-soft); margin-bottom:6px}
.pv-g-lab{display:flex; align-items:baseline; gap:6px; min-width:0; font-size:13px}
.pv-g-lab b{font-weight:600}
.pv-g-lab em{font-style:normal; color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-g-lab i{flex:none; width:8px; height:8px; border-radius:50%; background:var(--gold)}
.pv-g-lab:hover b{color:var(--wine)}
.pv-g-track{position:relative; height:26px}
.pv-g-month{position:absolute; top:5px; overflow:hidden; font-size:11.5px; font-weight:600; color:var(--ink-3); border-left:1px solid var(--line); padding-left:4px; white-space:nowrap}
.pv-g-month.is-short{color:transparent}
.pv-g-wed{position:absolute; top:0; bottom:0; background:var(--wine-tint); border-radius:4px}
.pv-g-bar{position:absolute; top:11px; height:4px; border-radius:2px; background:var(--line)}
.pv-g-dot{position:absolute; top:6px; width:14px; height:14px; margin-left:-7px; border:2px solid var(--gold); border-radius:50%; background:var(--surface)}
.pv-g-dot:hover{transform:scale(1.25)}
.pv-g-dot.is-done{background:var(--gold)}
.pv-g-dot.is-late{border-color:var(--danger)}
.pv-g-today{position:absolute; top:-2px; bottom:-2px; width:2px; background:var(--wine)}
.pv-g-row.is-done{opacity:.55}
[data-tone="rose"]{--tn:var(--c-rose)} [data-tone="peach"]{--tn:var(--c-peach)} [data-tone="marigold"]{--tn:var(--c-marigold)} [data-tone="leaf"]{--tn:var(--c-leaf)}
[data-tone="teal"]{--tn:var(--c-teal)} [data-tone="slate"]{--tn:var(--c-slate)} [data-tone="plum"]{--tn:var(--c-plum)} [data-tone="red"]{--tn:var(--c-red)}
[data-tone="wine"]{--tn:var(--c-wine)} [data-tone="gold"]{--tn:var(--c-gold)} [data-tone="sky"]{--tn:var(--c-sky)} [data-tone="terracotta"]{--tn:var(--c-terracotta)}
.pv-legend a[data-tone] i,.pv-g-lab[data-tone] i,.pv-cal-item[data-tone] .pv-cal-sw{background:var(--tn, var(--gold))}
.pv-g-bar[data-tone]{background:color-mix(in srgb, var(--tn, var(--gold)) 45%, #fff)}
.pv-g-dot[data-tone]{border-color:var(--tn, var(--gold))}
.pv-g-dot[data-tone].is-done{background:var(--tn, var(--gold))}
.pv-cal-date[data-tone] i{color:var(--tn, var(--gold))}
/* a thing to do, on its own page */
.pv-task-head{margin:0 0 22px}
.pv-task-head h1{font-size:26px; font-weight:600; line-height:1.3; letter-spacing:-.018em; color:var(--ink); overflow-wrap:anywhere}
.pv-task-head .pv-task-more{margin-top:8px; font-size:15.5px; line-height:1.55; color:var(--ink-2)}
.pv-task-head .pv-eyebrow{display:flex; align-items:center; gap:8px}
.pv-status .pv-actions{margin-top:16px}
.pv-answerform{margin-top:18px; padding-top:16px; border-top:1px solid var(--line-soft)}
.pv-convo-h{margin:28px 0 12px; font-size:16px; font-weight:600}

/* ---- messages -------------------------------------------------------------------------------- */
.pv-msgs{display:grid; gap:0; margin:0; overflow:hidden}
.pv-msglist{padding:8px 0 10px; margin:0; overflow:hidden}
.pv-msglist-h{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 14px 4px 18px}
.pv-msglist-h h1{font-size:24px; font-weight:600; letter-spacing:-.02em}
.pv-msglist-sub{margin:14px 18px 4px; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-msglist ul{padding:0 8px}
.pv-convo{display:flex; align-items:center; gap:11px; padding:8px 10px; border-radius:8px}
.pv-convo:hover{background:var(--hover)}
.pv-convo[aria-current="page"]{background:var(--wine-tint)}
.pv-convo .avatar{width:44px; height:44px}
.pv-convo-tx{flex:1; min-width:0}
.pv-convo-top{display:flex; justify-content:space-between; gap:8px}
.pv-convo-top b{font-size:15px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-convo-top em{font-size:12px; font-style:normal; color:var(--ink-3); white-space:nowrap}
.pv-convo-last{display:block; font-size:13.5px; color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-convo-last.is-unread{font-weight:600; color:var(--ink)}
.pv-thread{display:flex; flex-direction:column; min-height:540px; margin:0; overflow:hidden}
.pv-thread-h{display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid var(--line-soft)}
.pv-thread-back{display:none}
.pv-thread-who{flex:1; min-width:0}
.pv-thread-who b{display:block; font-size:15.5px; font-weight:600}
.pv-thread-who b a:hover{text-decoration:underline}
.pv-thread-who em{display:flex; flex-wrap:wrap; align-items:center; gap:0 5px; font-size:12.5px; font-style:normal; color:var(--ink-3)}
.pv-faces{display:inline-flex; align-items:center}
.pv-faces .avatar{margin-right:-5px; box-shadow:0 0 0 2px var(--surface)}
.pv-faces em{margin-left:10px; font-style:normal; font-size:12.5px; color:var(--ink-3)}
.pv-pinstrip{display:flex; flex-direction:column; gap:2px; padding:6px 14px; border-bottom:1px solid var(--line-soft); background:var(--paper)}
.pv-pinstrip a{display:flex; align-items:center; gap:6px; min-width:0; font-size:13px; color:var(--ink-2)}
.pv-pinstrip svg{flex:none; color:var(--gold)}
.pv-pinstrip b{flex:none}
.pv-pinstrip span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-teamhead{padding:10px 14px; border-bottom:1px solid var(--line-soft); background:var(--paper); font-size:14px}
.pv-teampin{margin:6px 0; white-space:pre-line; color:var(--ink-2)}
.pv-bubbles{display:flex; flex-direction:column; gap:6px; flex:1; padding:14px 16px; overflow-y:auto; background:var(--surface)}
.pv-bubbles-static{max-height:420px; padding:0 0 10px; background:none}
.pv-daysep{margin:12px 0 4px; font-size:12px; font-weight:600; text-align:center; color:var(--ink-3)}
.pv-msg{position:relative; display:flex; align-items:flex-end; gap:6px; max-width:80%}
.pv-msg.is-mine{flex-direction:row-reverse; align-self:flex-end}
.pv-msg-av .avatar{width:28px; height:28px}
.pv-msg-b{min-width:0; padding:8px 12px 6px; border-radius:14px; background:var(--sunk)}
.pv-msg.is-mine .pv-msg-b{background:var(--wine); color:#fff}
.pv-msg.is-pinned .pv-msg-b{box-shadow:0 0 0 2px #E4D4AE}
.pv-msg-from{display:block; margin-bottom:1px; font-size:12.5px; font-weight:600; color:var(--ink-2)}
.pv-msg.is-mine .pv-msg-from{color:rgba(255,255,255,.85)}
.pv-msg-quote{display:block; margin:2px 0 6px; padding:5px 9px; border-left:3px solid var(--line-strong); border-radius:6px; background:rgba(0,0,0,.05); font-size:13px}
.pv-msg.is-mine .pv-msg-quote{border-left-color:rgba(255,255,255,.6); background:rgba(255,255,255,.14)}
.pv-msg-quote b{display:block; font-size:12px}
.pv-msg-quote span{display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-msg-pic img{max-width:260px; max-height:260px; margin:2px 0 4px; border-radius:12px; object-fit:cover}
.pv-msg-tx{font-size:15px; line-height:1.45; overflow-wrap:anywhere}
.pv-msg.is-mine .pv-msg-tx a{color:#fff; text-decoration:underline}
.pv-msg-link{display:flex; align-items:center; gap:6px; margin:6px 0 2px; padding:6px 9px; border-radius:9px; background:rgba(0,0,0,.05); font-size:13px}
.pv-msg.is-mine .pv-msg-link{background:rgba(255,255,255,.16)}
.pv-msg-link i{font-style:normal; font-weight:600}
.pv-msg-link em{margin-left:auto; font-style:normal; opacity:.8}
.pv-msg-time{display:block; margin-top:2px; font-size:11px; text-align:right; color:var(--ink-3)}
.pv-msg.is-mine .pv-msg-time{color:rgba(255,255,255,.8)}
.pv-msg .pv-menu{align-self:center; opacity:0; transition:opacity .12s}
.pv-msg:hover .pv-menu,.pv-msg:focus-within .pv-menu,.pv-msg .pv-menu[open]{opacity:1}
@media (hover:none){ .pv-msg .pv-menu{opacity:1} }
.pv-msg .pv-menu .pv-icon-btn{width:30px; height:30px}
.pv-msg .pv-made{padding:4px 0 0}
.pv-thread-empty{margin:auto; max-width:40ch; font-size:14.5px; text-align:center; color:var(--ink-3)}
.pv-msgbox{padding:10px 12px; border-top:1px solid var(--line-soft); display:grid; gap:6px; background:var(--surface)}
.pv-msgbox-row{display:flex; align-items:center; gap:4px}
.pv .pv-msgbox-row input[type=text]{flex:1; min-width:0; min-height:44px; padding:0 14px; border:1px solid transparent; border-radius:var(--r-ctl); background:var(--sunk)}
.pv .pv-msgbox-row input[type=text]:focus{background:var(--surface); border-color:var(--wine-line)}
.pv-attached{display:flex; align-items:center; gap:10px; padding:6px; border-radius:10px; background:var(--sunk); font-size:13.5px}
.pv-attached img{width:48px; height:48px; border-radius:8px; object-fit:cover}
.pv-attached span{flex:1; min-width:0}
.pv-replying{display:flex; align-items:center; gap:6px; padding:6px 6px 6px 12px; border-left:3px solid var(--wine); border-radius:6px; background:var(--wine-tint); font-size:13px}
.pv-replying-tx{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-linkpick > summary{display:inline-flex; align-items:center; gap:6px; min-height:30px; padding:0 4px; list-style:none; font-size:13px; font-weight:500; color:var(--ink-3); cursor:pointer}
.pv-linkpick > summary::-webkit-details-marker{display:none}
.pv-linkpick > summary:hover{color:var(--wine)}
.pv-linkpick[open] > summary{color:var(--wine)}
.pv-linkpick select{min-height:36px; margin-top:4px; padding-top:4px; padding-bottom:4px; font-size:14px; color:var(--ink-2)}
.pv-thread-none{display:grid; place-content:center; padding:24px}
.pv-thread-none .pv-empty{border:0; text-align:center}
.pv-thread-none .pv-empty-t{margin-inline:auto}
@container (min-width:860px){
  .pv-msgs{grid-template-columns:320px minmax(0, 1fr); align-items:stretch; height:calc(100vh - 112px); min-height:520px}
  .pv-msglist{height:100%; overflow-y:auto; border-right:1px solid var(--line-soft)}
  .pv-thread{height:100%; min-height:0}
}
@container (min-width:1080px){ .pv-msgs{grid-template-columns:340px minmax(0, 1fr)} }
@container (max-width:859px){
  .pv-msgs.has-thread .pv-msglist{display:none}
  .pv-msgs:not(.has-thread) .pv-thread{display:none}
  .pv-thread-back{display:inline-grid}
  .pv-thread{min-height:calc(100vh - 200px)}
}

/* ---- notifications, search ------------------------------------------------------------------ */
.pv-notice.is-new .pv-row-t{font-weight:600}
.pv-newdot{flex:none; width:9px; height:9px; border-radius:50%; background:var(--wine)}
.pv-search{display:flex; align-items:center; gap:8px; margin:0 0 14px; padding:4px 4px 4px 14px; border:1px solid var(--line); border-radius:var(--r-post); background:var(--surface)}
.pv-search:focus-within{border-color:var(--wine); box-shadow:0 0 0 3px var(--wine-tint)}
.pv-search-ic{display:grid; color:var(--ink-3)}
.pv .pv-search input{flex:1; min-width:0; min-height:42px; border:0; padding:0; background:none; box-shadow:none}
.pv-search-sm{margin:0; flex:1 1 280px; max-width:420px; padding:2px 4px 2px 12px}
.pv .pv-search-sm input{min-height:38px; font-size:15px}
.pv-needs .pv-row-t{font-weight:500}
.pv-results{max-width:820px}
.pv-results .pv-row-m{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}

/* ---- family, people ------------------------------------------------------------------------ */
.pv-sides{display:grid; gap:0 28px}
@container (min-width:760px){ .pv-sides{grid-template-columns:1fr 1fr; align-items:start} }
.pv-side{padding:0 0 8px; overflow:hidden}
.pv-side-head{display:flex; align-items:center; gap:12px; padding:16px 18px; background:var(--paper); border-bottom:1px solid var(--line-soft)}
.pv-side-head span{display:flex; flex-direction:column; flex:1; min-width:0}
.pv-side-head b{font-family:var(--title); font-weight:500; font-size:24px; line-height:1.15}
.pv-side-head em{font-size:13px; font-style:normal; color:var(--ink-3)}
.pv-circle{padding:14px 18px 2px}
.pv-circle-h{margin:0 0 4px; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-circle-h em{font-style:normal; font-weight:400}
.pv-circle .pv-rows{margin:0}
.pv-circle .pv-row-main{padding:8px 0}
.pv-circles-empty{margin:12px 18px 8px; padding-top:12px; border-top:1px solid var(--line-soft); font-size:13px; line-height:1.5; color:var(--ink-3)}
/* each person a face */
.pv-people{display:grid; grid-template-columns:repeat(auto-fill, minmax(118px, 1fr)); gap:8px 6px; margin:0 -6px; padding:2px 0 6px}
.pv-people-one{grid-template-columns:repeat(auto-fill, 150px); padding:0 12px 8px}
.pv-person{display:flex; flex-direction:column; align-items:center; min-width:0; padding:12px 6px 10px; border-radius:var(--r-ctl); text-align:center; color:var(--ink)}
.pv-person:hover{background:var(--hover)}
.pv-person:hover b{color:var(--wine)}
.pv-person .avatar{width:64px; height:64px; margin-bottom:8px; font-size:22px}
.pv-person b{font-size:14.5px; font-weight:600; line-height:1.25; overflow-wrap:anywhere}
.pv-person em{margin-top:2px; font-style:normal; font-size:12.5px; line-height:1.35; color:var(--ink-3)}
.pv-person em + em{margin-top:0}
.pv-person-cell{position:relative}
.pv-person-msg{position:absolute; top:6px; right:6px; width:30px; height:30px; opacity:0; background:var(--surface); box-shadow:0 0 0 1px var(--line-soft)}
.pv-person-cell:hover .pv-person-msg,.pv-person-msg:focus-visible,.pv-person-cell:focus-within .pv-person-msg{opacity:1}
@media (hover:none){ .pv-person-msg{opacity:1} }
.pv-circles-empty b{font-weight:500; color:var(--ink-2)}
.pv-profile{display:grid; grid-template-columns:auto minmax(0, 1fr); align-items:center; gap:16px 22px; margin-bottom:26px}
.pv-profile-tx h1{font-family:var(--title); font-weight:500; font-size:34px; letter-spacing:-.01em; line-height:1.1}
.pv-profile-tx .pv-quiet{margin-top:6px}
.pv-profile-acts{grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:8px}
.pv-profile-stats{grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:13.5px; color:var(--ink-3)}
.pv-profile-stats b{font-weight:600; color:var(--ink-2); font-variant-numeric:tabular-nums}
@container (min-width:760px){ .pv-profile{grid-template-columns:auto minmax(0, 1fr) auto} .pv-profile-acts{grid-column:auto; justify-content:flex-end} }
.pv-linkbox{padding:12px 0; border-top:1px solid var(--line-soft)}
.pv-linkbox:first-of-type{margin-top:8px}
/* vendors: one directory, grouped by what they do */
.pv-vhead,.pv-vrow{display:grid; grid-template-columns:minmax(0, 1.5fr) 118px minmax(0, 1fr) 80px; align-items:center; gap:8px 16px; padding:10px 18px}
.pv-vhead{padding-top:12px; padding-bottom:8px; border-bottom:1px solid var(--line-soft); font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-vlist > li + li .pv-vrow{border-top:1px solid var(--line-soft)}
.pv-vrow-st{display:flex}
.pv-vrow:hover{background:var(--hover)}
.pv-vrow-main{min-width:0}
.pv-vrow-main b{display:block; font-size:15px; font-weight:500; line-height:1.35}
.pv-vrow-main a:hover b{color:var(--wine)}
.pv-vrow-main em{display:flex; flex-wrap:wrap; align-items:center; gap:2px 6px; margin-top:2px; font-size:13px; font-style:normal; color:var(--ink-3)}
.pv-vrow-who{min-width:0; font-size:13.5px; color:var(--ink-2)}
.pv-vrow-who span{display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-vrow-acts{display:flex; align-items:center; gap:2px}
@container (max-width:720px){ .pv-vhead{display:none} .pv-vrow{grid-template-columns:minmax(0, 1fr) auto} .pv-vrow-st{grid-column:2; grid-row:1} .pv-vrow-who{grid-column:1; grid-row:2} .pv-vrow-acts{grid-column:2; grid-row:2} }
.pv-keys .pv-keyrow{align-items:flex-start; padding-top:4px; padding-bottom:4px}
.pv-keys .pv-row-main{align-items:flex-start}
.pv-keys .pv-row-r{padding-top:10px}
.pv-keys .pv-linkline{margin:6px 0 2px}
.pv-tablewrap{position:relative; overflow-x:auto}
.pv-table{width:100%; border-collapse:collapse; font-size:14.5px}
.pv-table th,.pv-table td{padding:10px 14px; border-bottom:1px solid var(--line-soft); text-align:left; vertical-align:top}
.pv-table thead th{font-size:12.5px; font-weight:600; color:var(--ink-3); white-space:nowrap; background:var(--paper)}
.pv-table tbody th{font-weight:600}
.pv-table th em,.pv-table td em{display:block; font-style:normal; font-weight:400; font-size:12.5px; color:var(--ink-3)}
.pv-num td{text-align:right; font-variant-numeric:tabular-nums}
.pv-num thead th:not(:first-child){text-align:right}
.pv-matrix th span{display:inline-block; font-size:12px}
.pv-matrix td{text-align:center}
.pv-matrix input{width:20px; height:20px; accent-color:var(--wine)}
.pv-matrix tbody th{position:sticky; left:0; z-index:1; min-width:170px; background:var(--surface); box-shadow:1px 0 0 var(--line-soft)}
.pv-matrix thead th:first-child{position:sticky; left:0; z-index:2; background:var(--paper)}
.pv-scrollcue{display:none; align-items:center; gap:4px; margin:0 0 8px; font-size:12.5px; color:var(--ink-3)}
.is-scrolls .pv-scrollcue{display:flex}
.pv-access{overflow:hidden}

/* ---- guests --------------------------------------------------------------------------------- */
.pv-stats{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 22px; margin:0 0 6px}
.pv-stat{display:inline-flex; align-items:baseline; gap:6px; font-size:14px; color:var(--ink-2)}
a.pv-stat:hover span{color:var(--wine)}
.pv-stat b{font-size:22px; font-weight:600; letter-spacing:-.02em; color:var(--ink); font-variant-numeric:tabular-nums}
.pv-stat i{align-self:center; width:8px; height:8px; border-radius:50%; background:var(--ink-4)}
.pv-stat.is-yes i{background:var(--yes)} .pv-stat.is-wait i{background:#C9931C} .pv-stat.is-no i{background:var(--danger)}
.pv-evline{display:flex; flex-wrap:wrap; gap:4px 18px; margin:0 0 18px; font-size:13.5px; color:var(--ink-3)}
.pv-evline span{display:inline-flex; align-items:center; gap:6px}
.pv-evline b{font-weight:600; color:var(--ink-2)}
.pv-findbar{display:grid; gap:10px; margin:0 0 14px}
.pv-findbar .pv-search{margin:0}
.pv-findbar .pv-chips{margin:0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:2px}
.pv-findbar .pv-chips::-webkit-scrollbar{display:none}
@container (min-width:900px){ .pv-findbar{grid-template-columns:minmax(260px, 340px) minmax(0, 1fr); align-items:center} .pv-findbar .pv-chips{flex-wrap:wrap} }
.pv-toolbar-wrap{align-items:flex-start}
.pv-hh{display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:center; gap:4px 14px; padding:11px 18px}
.pv-hh:hover{background:var(--hover)}
.pv-hh:hover .pv-hh-name{color:var(--wine)}
.pv-hh-name{font-size:15px; font-weight:500; line-height:1.35; color:var(--ink); overflow-wrap:anywhere}
.pv-hh-meta{grid-column:1; font-size:13px; line-height:1.4; color:var(--ink-3)}
.pv-hh-state{grid-column:2; grid-row:1 / span 2; display:flex; align-items:center; gap:8px}
.pv-hhs > li + li .pv-hh{border-top:1px solid var(--line-soft)}
@container (min-width:900px){
  .pv-hhs-head,.pv-hh{grid-template-columns:minmax(0, 2.2fr) minmax(0, 1.6fr) 90px 70px 150px}
  .pv-hh-meta{grid-column:auto; font-size:13.5px}
  .pv-hh-inv,.pv-hh-exp{font-size:13.5px; color:var(--ink-2)}
  .pv-hh-exp{text-align:right; font-variant-numeric:tabular-nums}
  .pv-hh-state{grid-column:auto; grid-row:auto; justify-content:flex-end}
  .pv-hhs-head{display:grid; gap:14px; padding:10px 18px 8px; border-bottom:1px solid var(--line-soft); font-size:12.5px; font-weight:600; color:var(--ink-3)}
  .pv-hhs-head span:nth-child(4){text-align:right} .pv-hhs-head span:nth-child(5){text-align:right}
}
@container (max-width:899px){ .pv-hhs-head,.pv-hh-inv,.pv-hh-exp{display:none} }
@container (min-width:900px){ .pv-hh-m2{display:none} }
.pv-hh-m2 .pv-dot{margin:0 .32em}
.pv-households .pv-row-r{max-width:50%}
.pv-finals{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:12px}
.pv-fin{display:grid; gap:6px; font-size:13.5px}
.pv-daycounts{display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:10px}
.pv-dc{display:grid; gap:6px; font-size:13.5px}
.pv-dc.is-not{opacity:.5}
.pv-whogrid td{text-align:center}
.pv-whogrid input{width:20px; height:20px; accent-color:var(--wine)}
.pv-bynames{display:grid; gap:2px; margin-top:6px; font-size:13.5px; color:var(--ink-2)}
.pv-daygrid{display:grid; gap:0 22px}
@container (min-width:760px){ .pv-daygrid{grid-template-columns:1fr 1fr} }
.pv-numcell{font-variant-numeric:tabular-nums}
/* a phone number stays together; its buttons sit under it on a narrow column */
.pv-phone{display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; padding:10px 0}
.pv-phone + .pv-phone{border-top:1px solid var(--line-soft)}
.pv-phone b{flex:1 1 auto; min-width:0; font-size:15.5px; font-weight:500; white-space:nowrap; font-variant-numeric:tabular-nums}
.pv-phone .pv-actions{flex:none}
.pv-figure{display:block; padding:4px 0}
.pv-figure b{display:block; font-size:22px; font-weight:600; letter-spacing:-.02em; line-height:1.15; font-variant-numeric:tabular-nums}
.pv-figure span{display:block; font-size:13px; color:var(--ink-3)}

/* ---- money --------------------------------------------------------------------------------- */
.pv-ledger{display:grid; gap:14px; margin-bottom:22px}
.pv-ledger-main{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px}
.pv-ledger-main .pv-bigsum{font-size:36px; color:var(--ink)}
.pv-ledger-main p{font-size:15px; color:var(--ink-2)}
.pv-ledger-sub{display:flex; flex-wrap:wrap; gap:6px 22px; font-size:14px; color:var(--ink-2)}
.pv-ledger-sub b{font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums}
.pv-ledgerhead{margin-bottom:18px}
.pv-moneyline{display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:10px; margin:14px 0 4px; padding-top:12px; border-top:1px solid var(--line-soft)}
.pv-moneyline dt{font-size:12.5px; color:var(--ink-3)}
.pv-moneyline dd{font-size:16px; font-weight:600; font-variant-numeric:tabular-nums}
.pv-amt{flex:none; margin-left:auto; padding-left:12px; font-size:15px; font-weight:600; font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; color:var(--ink)}
.pv-amt.is-est{color:var(--ink-3); font-weight:500}
.pv-amt.is-est::after{content:' est.'; font-size:12px; font-weight:400}
.pv-moneygroup{padding:2px 0 4px}
.pv-moneygroup-h{display:flex; align-items:baseline; gap:8px; padding:14px 18px 6px; font-size:15px; font-weight:600}
.pv-moneygroup-h > span:first-child{flex:1}
.pv-lines .pv-row-main{padding:10px 0}
.pv-bigsum{font-size:34px; font-weight:600; letter-spacing:-.025em; line-height:1.1; font-variant-numeric:tabular-nums}
.pv-inline-wrap{padding:0}
.pv-card.pv-inline-wrap{padding:16px 18px}
.pv-split{display:grid; gap:4px 14px; grid-template-columns:auto minmax(0, 1fr); font-size:14px}
.pv-split dt{color:var(--ink-3)}
.pv-split dd{text-align:right; font-weight:600; font-variant-numeric:tabular-nums}

/* ---- the days ------------------------------------------------------------------------------ */
.pv-daycards{display:grid; gap:22px}
@container (min-width:760px){ .pv-daycards{grid-template-columns:1fr 1fr; gap:26px 24px} }
.pv-daycard{display:flex; flex-direction:column; min-width:0; margin:0; overflow:hidden}
.pv-daycard:hover{border-color:var(--line)}
.pv-daycard img{width:100%; aspect-ratio:2.2/1; object-fit:cover}
.pv-daycard-tx{display:flex; flex-direction:column; gap:4px; padding:16px 18px 18px}
.pv-daycard-when{display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px}
.pv-daycard b{margin-top:4px; font-family:var(--title); font-weight:500; font-size:26px; letter-spacing:-.005em; line-height:1.15}
.pv-daycard:hover b{color:var(--wine)}
.pv-daycard em{font-size:14.5px; font-style:normal; color:var(--ink-2)}
.pv-daycard-line{display:flex; align-items:center; gap:6px; margin-top:2px; font-size:14px; color:var(--ink-2)}
.pv-daycard-line svg{flex:none; color:var(--ink-3)}
.pv-daycard-n{margin-top:10px; padding-top:10px; border-top:1px solid var(--line-soft); font-size:13.5px; color:var(--ink-3)}
.pv-week{padding:4px 18px}
.pv-weekday{display:grid; grid-template-columns:110px minmax(0,1fr); gap:14px; padding:16px 0; border-top:1px solid var(--line-soft)}
.pv-weekday:first-child{border-top:0}
.pv-weekday h3{font-size:14.5px; font-weight:600}
.pv-weekday ol,.pv-hours{display:grid; gap:10px}
.pv-weekday li,.pv-hours li{display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px; align-items:baseline}
.pv-time{font-size:13.5px; font-weight:600; color:var(--ink-2); font-variant-numeric:tabular-nums}
.pv-weekday li b,.pv-hours li b{display:block; font-size:14.5px; font-weight:500; line-height:1.35}
.pv-weekday li em,.pv-hours li em{display:block; font-size:13px; font-style:normal; color:var(--ink-3)}
.pv-hours li:not(.is-mine) b{color:var(--ink-2)}
@media (max-width:519px){ .pv-weekday{grid-template-columns:1fr; gap:8px} }
.pv-dayhero{display:grid; overflow:hidden; margin-bottom:26px}
.pv-dayhero-art{width:100%; aspect-ratio:2.2/1; object-fit:cover}
.pv-dayhero-tx{padding:20px 22px 22px; background:color-mix(in srgb, var(--e, var(--gold)) 9%, var(--paper))}
.pv-dayhero-tx h1{margin:0 0 8px; font-family:var(--title); font-weight:500; font-size:40px; line-height:1.06; letter-spacing:-.012em}
.pv-dayhero-line{margin-top:6px; font-family:var(--serif); font-size:18px; color:var(--ink-2)}
.pv-dayhero-where{display:flex; align-items:center; gap:6px; margin-top:12px; font-size:15px; color:var(--ink-2)}
.pv-dayhero-where svg{color:var(--ink-3)}
.pv-dayhero .pv-actions{margin-top:18px}
@container (min-width:860px){ .pv-dayhero{grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr)} .pv-dayhero-art{height:100%; aspect-ratio:auto; min-height:300px} .pv-dayhero-tx{align-self:center; padding:28px 30px} }
.pv-daystrip{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:10px; margin-bottom:16px}
.pv-daymini{display:flex; align-items:center; gap:12px; margin:0; padding:8px; color:var(--ink)}
.pv-daymini img{flex:none; width:80px; height:54px; border-radius:var(--r-media); object-fit:cover}
.pv-daymini span{display:flex; flex-direction:column; min-width:0}
.pv-daymini b{font-family:var(--title); font-weight:500; font-size:17px}
.pv-daymini em{font-style:normal; font-size:13px; color:var(--ink-3)}
.pv-nownext{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:12px; margin-bottom:16px}
.pv-nn{margin:0; padding:14px 18px}
.pv-nn > span{display:block; font-size:12.5px; font-weight:600; color:var(--ink-3)}
.pv-nn b{display:block; margin-top:2px; font-size:16px; line-height:1.35}
.pv-nn em{display:block; font-size:13.5px; font-style:normal; color:var(--ink-2)}
.pv-nn.is-now{border-color:var(--wine-line); background:var(--wine-tint)}
.pv-nn.is-now > span{color:var(--wine)}
.pv-slots{display:grid}
.pv-slot{display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; padding:14px 0; border-top:1px solid var(--line-soft)}
.pv-slot:first-child{border-top:0; padding-top:4px}
.pv-slot.is-now b{color:var(--wine)}
.pv-slot.is-done b{color:var(--ink-3); text-decoration:line-through}
.pv-slot-tx{display:grid; gap:4px; min-width:0}
.pv-slot-tx b{font-size:15.5px; font-weight:600}
.pv-slot-tx em{font-size:13px; font-style:normal; color:var(--ink-3)}
.pv-slot-tx em a{color:var(--wine)}
.pv-slot-state{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13.5px}
.pv-slot-edit > summary{display:inline-flex; align-items:center; gap:6px; min-height:32px; margin-top:2px; list-style:none; font-size:13.5px; font-weight:600; color:var(--wine); cursor:pointer}
.pv-slot-edit > summary::-webkit-details-marker{display:none}
.pv-slot-edit[open] > summary svg{transform:rotate(180deg)}
.pv-stateform{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:6px}
.pv-stateform input{flex:0 1 140px; min-height:34px !important; padding:4px 10px !important; font-size:14px !important}
.pv-meeting{padding:16px 18px}
.pv-meeting.is-off{opacity:.7}
.pv-meeting-h{display:flex; align-items:center; gap:12px}
.pv-datebox{display:grid; place-items:center; flex:none; width:48px; height:52px; border-radius:8px; background:var(--wine-tint); color:var(--wine); line-height:1}
.pv-datebox b{font-size:20px; font-variant-numeric:tabular-nums}
.pv-datebox em{font-size:11.5px; font-style:normal; font-weight:600}
.pv-meeting-tx{display:flex; flex-direction:column; flex:1; min-width:0}
.pv-meeting-tx b{font-size:16px; font-weight:600}
.pv-meeting-tx em{font-size:13px; font-style:normal; color:var(--ink-3)}
.pv-meeting .pv-post-tx{padding:10px 0 0}
.pv-meeting-b{display:grid; gap:14px; margin-top:14px}
@container (min-width:760px){ .pv-meeting-b.has-map{grid-template-columns:minmax(0, 1fr) 280px} }
.pv-opts{display:grid; gap:6px}
.pv-optrow{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:9px 12px; border:1px solid var(--line-soft); border-radius:8px}
.pv-optrow.is-chosen{border-color:var(--yes); background:var(--yes-tint)}
.pv-optrow.is-dim{opacity:.55}
.pv-optick{position:relative; display:grid; place-items:center; flex:none; cursor:pointer}
.pv-optick input{position:absolute; opacity:0}
.pv-optick i{display:grid; place-items:center; width:24px; height:24px; border:1.5px solid var(--line-strong); border-radius:6px; color:transparent}
.pv-optick input:checked + i,.pv-optick.is-on i{border-color:var(--wine); background:var(--wine); color:#fff}
.pv-optick input:focus-visible + i{outline:2px solid var(--wine); outline-offset:2px}
.pv-optick.is-still{cursor:default}
.pv-opt-when{display:flex; flex-direction:column; flex:1 1 200px; min-width:0}
.pv-opt-when b{font-size:14.5px; font-weight:600}
.pv-opt-when em{font-size:12.5px; font-style:normal; color:var(--ink-3)}
.pv-opt-who{display:inline-flex; flex-wrap:wrap; align-items:center; gap:3px; font-size:12.5px; color:var(--ink-3)}
.pv-opt-who em{font-style:normal; margin-left:4px}
.pv-xpick{padding:1px 6px; border-radius:8px; background:var(--sunk)}
.pv-mplace{display:grid; gap:8px; align-content:start}
.pv-mplace iframe{width:100%; height:180px; border:0; border-radius:8px}
.pv-mplace.is-call{padding:12px; border-radius:8px; background:var(--sunk)}
.pv-meeting-f{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px}
.pv-meetchips{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.pv-meetchips .chip{display:inline-flex; align-items:center; gap:6px; padding:4px 6px 4px 12px; border-radius:var(--r-ctl); background:var(--wine-tint); color:var(--wine); font-size:13.5px}
.pv-meetchips .chip em{font-style:normal; color:var(--ink-3); font-size:12.5px}
.pv-meetchips .chip button{display:grid; place-items:center; width:24px; height:24px; border:0; border-radius:50%; background:none; color:inherit; cursor:pointer}
.pv-feature{display:grid; gap:12px; max-width:640px; margin-bottom:28px}
.pv-k-narrow .pv-feature{max-width:none}
.pv-feature p{font-size:15px; line-height:1.55; color:var(--ink-2)}
ol.pv-acts{display:block; margin:0; padding:0; border:0}
ol.pv-acts li a{display:flex; align-items:center; gap:12px; padding:11px 0}
ol.pv-acts li a:hover .pv-row-t{color:var(--wine)}
ol.pv-acts li + li{border-top:1px solid var(--line-soft)}
.pv-actnum{display:grid; place-items:center; flex:none; width:30px; height:30px; border-radius:50%; background:var(--sunk); font-size:13px; font-weight:600; color:var(--ink-2); font-variant-numeric:tabular-nums}
.pv-rehearsal .pv-row-main{align-items:flex-start}
.pv-clips{display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:10px}
.pv-clip{display:block}
.pv-clip img,.pv-clip video{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r-media); background:var(--sunk)}
.pv-clip span{display:block; margin-top:4px; font-size:13px; color:var(--ink-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pv-cuesheet td:nth-child(2),.pv-cuesheet td:nth-child(4){white-space:nowrap; font-variant-numeric:tabular-nums}
.pv-map{margin-bottom:18px; overflow:hidden}
.pv-map svg{display:block; width:100%; height:auto; max-height:600px}
.pv-ocean{fill:#DCE6EC}
.pv-grat{fill:none; stroke:rgba(255,255,255,.55); stroke-width:.5}
.pv-land{fill:#F6F2EA; stroke:#CBC3B6; stroke-width:.5}
.pv-lake{fill:#DCE6EC; stroke:#CBC3B6; stroke-width:.3}
.pv-border{fill:none; stroke:#D8D0C3; stroke-width:.35}
.pv-night{fill:#1D2B4A; opacity:.22}
.pv-sunglow{fill:#FFE7A3; opacity:.55}
.pv-sundot{fill:#E8A33A}
.pv-arc{fill:none; stroke:var(--wine); stroke-width:1.2; stroke-dasharray:4 3; opacity:.8}
.pv-arclab{font:600 9px var(--ui); fill:var(--wine); text-anchor:middle; paint-order:stroke; stroke:#fff; stroke-width:2.5px}
.pv-venue circle{fill:var(--gold); stroke:#fff; stroke-width:1.5}
.pv-venue text{font:600 9px var(--ui); fill:var(--ink); text-anchor:middle; paint-order:stroke; stroke:#fff; stroke-width:2.5px}
.pv-ring{fill:#fff; stroke:rgba(40,28,18,.18); stroke-width:.8}
.pv-ini-bg{fill:#EDE7E0}
.pv-ini{font:600 9px var(--ui); fill:var(--ink-2); text-anchor:middle}
.pv-maplbl{font:600 9.5px var(--ui); fill:var(--ink); text-anchor:middle; paint-order:stroke; stroke:#fff; stroke-width:3px}
.pv-talk .pv-talk-now{margin-bottom:10px; font-size:15px}
.pv-talk ul{display:grid; gap:6px; margin:0 0 12px}
.pv-talk li{font-size:14px; color:var(--ink-2)}
.pv-talk li.is-next b{color:var(--wine)}
.pv-strip-grid{display:grid; gap:3px; margin-top:6px; overflow-x:auto}
.pv-srow{display:grid; grid-template-columns:120px repeat(48, minmax(8px, 1fr)); gap:1px; align-items:center; min-width:560px}
.pv-srow .lab{font-size:12px; color:var(--ink-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pv-srow .lab em{display:block; font-style:normal; color:var(--ink-3); font-size:11px}
.pv-srow .h{height:18px; background:#E9E4DC; border-radius:2px}
.pv-srow .h.sleep{background:#C9D0DC}
.pv-srow .h.good{background:#9BC4A5}
.pv-srow .h.now{outline:2px solid var(--wine)}
.pv-srow.hours .h{height:auto; background:none; font-size:10px; color:var(--ink-3); white-space:nowrap}
.pv-key{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:8px; font-size:12px; color:var(--ink-3)}
.pv-key i{display:inline-block; width:10px; height:10px; margin-right:4px; border-radius:2px; background:#E9E4DC; vertical-align:-1px}
.pv-key i.g{background:#9BC4A5} .pv-key i.s{background:#C9D0DC}

/* ---- the word from the two of them, documents, talks, pages, after ------------------- */
.pv-us-intro{display:flex; align-items:center; gap:16px; margin:0 0 24px}
.pv-us-faces{display:flex; flex:none}
.pv-us-faces img{width:56px; height:56px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 3px var(--canvas), 0 0 0 4px var(--line-soft)}
.pv-us-faces img + img{margin-left:-14px}
.pv-us-intro p{font-family:var(--serif); font-size:18px; line-height:1.5; color:var(--ink-2)}
.pv-update{padding:18px 0 14px}
.pv-update .pv-post-head{padding:0 12px 0 20px}
.pv-update-t{margin:14px 20px 0; font-family:var(--title); font-weight:500; font-size:24px; line-height:1.25; letter-spacing:-.005em}
.pv-update-b{padding:8px 20px 12px}
.pv-update-b.pv-prose p{font-family:var(--serif); font-size:18px; line-height:1.6}
.pv-ackline{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:8px 20px 0; padding-top:12px; border-top:1px solid var(--line-soft)}
.pv-stand{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.pv-stand dt{font-size:12.5px; color:var(--ink-3)}
.pv-stand dd{font-size:20px; font-weight:600; letter-spacing:-.015em; font-variant-numeric:tabular-nums}
.pv-folders{column-gap:28px}
.pv-folders > *{break-inside:avoid}
@container (min-width:880px){ .pv-folders{columns:2} }
.pv-prose h3{margin:22px 0 8px; font-size:16px; font-weight:600}
.pv-prose h3:first-child{margin-top:0}
.pv-prose p{margin:0 0 14px; font-size:16px; line-height:1.65; color:var(--ink)}
.pv-prose p:last-child{margin-bottom:0}
.pv-page-prose{max-width:680px}
.pv-page-prose.is-story p{font-family:var(--serif); font-size:19px; line-height:1.65}
.pv-page-prose.is-story h3{font-family:var(--title); font-weight:500; font-size:22px; margin-top:30px}
.pv-note-kept{padding:20px 22px}
.pv-note-kept .pv-panel-h{font-size:17px}
.pv-note-kept .pv-small{margin:2px 0 10px}
.pv-wishes{display:grid; gap:12px; margin-top:14px}
.pv-wish{padding:14px 16px; border:1px solid var(--line-soft); border-radius:var(--r-post); background:var(--surface)}
.pv-wish-who{display:flex; align-items:center; gap:10px}
.pv-wish-who span{display:flex; flex-direction:column}
.pv-wish-who em{font-style:normal; font-size:12.5px; color:var(--ink-3)}
.pv-wish-t{margin:10px 0; font-family:var(--serif); font-size:18px; line-height:1.55}
.pv-wish img{max-width:260px; border-radius:var(--r-media); margin-bottom:8px}
.pv-wishbox{margin-bottom:8px}
/* the rooms, grouped by what they are for */
.pv-roomgroup{margin:0 0 30px}
.pv-roomgroup h2{margin:0; padding-bottom:8px; border-bottom:1px solid var(--line); font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--ink-3)}
.pv-roomlist{display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:0 40px}
.pv-roomrow{display:flex; align-items:center; gap:12px; min-height:58px; padding:10px 0; border-bottom:1px solid var(--line-soft); color:var(--ink)}
.pv-roomrow > span{display:flex; flex-direction:column; flex:1; min-width:0}
.pv-roomrow b{font-size:16px; font-weight:600; line-height:1.3}
.pv-roomrow:hover b{color:var(--wine)}
.pv-roomrow em{font-style:normal; margin-top:1px; font-size:13.5px; line-height:1.35; color:var(--ink-3)}
.pv-roomrow > svg{flex:none; color:var(--ink-4)}
.pv-roomrow:hover > svg{color:var(--wine)}
.pv-spark rect{fill:var(--wine)} .pv-spark rect.nil{fill:var(--line)}
.pv-source{display:flex; align-items:center; gap:10px; padding:12px 16px; font-size:14.5px; color:var(--ink-2)}
.pv-source > svg{flex:none; color:var(--ink-3)}
.pv-source span{flex:1; min-width:0}
.pv-source-quote{display:block; padding:14px 18px; background:var(--paper)}
.pv-source-quote p + p{margin-top:6px}
.pv-answerbox{padding:18px; border-color:var(--wine-line)}
.pv-suggest{padding:14px 18px; border-color:var(--wine-line); background:#FFFAFB}
.pv-fchips{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.pv-fchips img{width:72px; height:72px; object-fit:cover; border-radius:var(--r-media)}
.pv-drow{margin-bottom:10px}
.pv-narrowfeed{max-width:680px}
.pv-aidraft{margin:-4px 0 16px}
.pv-docfile{display:flex; align-items:center; gap:14px; padding:14px 16px}
.pv-docfile-ic{display:grid; place-items:center; flex:none; width:48px; height:56px; border-radius:6px; background:var(--sunk); color:var(--ink-2); font-size:11px; font-weight:600; letter-spacing:.04em}
.pv-docfile > span:nth-child(2){display:flex; flex-direction:column; flex:1; min-width:0}
.pv-docfile b{font-weight:500; overflow-wrap:anywhere}
.pv-docfile em{font-style:normal; font-size:13px; color:var(--ink-3)}
.pv-thx .pv-row-r{max-width:none}
.pv-thx-edit > summary{display:inline-flex; align-items:center; gap:6px; min-height:32px; list-style:none; font-size:13.5px; font-weight:600; color:var(--wine); cursor:pointer}
.pv-thx-edit > summary::-webkit-details-marker{display:none}
.pv-thx-edit[open]{flex-basis:100%}
.pv-thx-edit .pv-inline{margin-top:6px}

/* ---- the toast, uploads ----------------------------------------------------------------- */
.pv-toast{position:fixed; z-index:50; left:50%; bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 14px); transform:translateX(-50%);
  width:max-content; max-width:min(92vw, 460px); padding:12px 16px; border-radius:var(--r-post); background:#2B2624; color:#fff; font-size:14px; line-height:1.4; box-shadow:0 12px 30px -14px rgba(0,0,0,.5)}
@media (min-width:768px){ .pv-toast{bottom:24px} }
.pv-upbar{display:flex; flex-direction:column; gap:6px; margin-top:8px; font-size:13.5px; color:var(--ink-2)}
.pv-upbar .track{display:block; height:6px; border-radius:3px; background:var(--sunk-2); overflow:hidden}
.pv-upbar .track i{display:block; height:100%; width:0; background:var(--wine); transition:width .2s}
.pv-upbar.failed{color:var(--danger)}

/* ---- the doors: the pages before the house (views/preview/doors.js, kit.js doorShell) ---------------
   Their names on paper, as on the home; one card beneath; the words of both on one line
   (the head's inset 20/30, the card's 19/29 and its 1px edge). */
.pv-doorwrap{position:relative; padding:30px 16px 64px}
.pv-door{max-width:600px; margin:0 auto; padding-top:18px; outline:none; container-type:inline-size}
.pv-doorhead{display:grid; gap:18px; margin:0 0 16px; padding:22px 20px 20px; border-radius:var(--r-dialog); background:var(--paper)}
.pv-doorhead-tx{min-width:0}
.pv-doorhead-mark{display:flex; align-items:center; min-height:30px; margin-bottom:12px}
.pv-doorfaces{display:flex}
.pv-doorfaces img{width:42px; height:42px; border:2px solid var(--paper); border-radius:50%; object-fit:cover; background:var(--sunk)}
.pv-doorfaces img + img{margin-left:-10px}
.pv-doorhead h1{margin:0}
.pv-doorhead .pv-names{display:block; font-family:var(--display); font-weight:400; font-size:34px; line-height:1.04; letter-spacing:-.012em}
.pv-doorhead .pv-dateline{margin-top:10px}
.pv-doorhead .pv-dateline + .pv-dateline{margin-top:2px}
.pv-doorhead-facts{display:flex; flex-wrap:wrap; align-items:flex-start; gap:14px 28px; padding-top:16px; border-top:1px solid var(--line)}
.pv-doorhead .pv-clock-part{display:none}
.pv-doorcard{display:grid; gap:12px; margin:0; padding:22px 19px 24px}
.pv-doorform{gap:18px}
.pv-doorcard p{margin:0}
.pv-doorcard h2{margin:0; font-size:22px; font-weight:600; line-height:1.25; letter-spacing:-.02em; color:var(--ink)}
.pv-doorcard div > h2 + p{margin-top:6px}
.pv-doorlead{font-family:var(--serif); font-size:18px; line-height:1.45; color:var(--ink)}
.pv-doorcard .pv-doorask{margin-top:6px}
.pv-doorfoot{display:grid; gap:10px; margin-top:4px}
.pv-doorlater{display:grid; gap:8px; margin-top:6px; padding-top:14px; border-top:1px solid var(--line-soft)}
.pv-doorcard .pv-linkline{margin:0}
.pv-who{display:grid; gap:10px; min-width:0; margin:0; padding:0; border:0}
.pv-who-k{margin:0; padding:0; font-size:13.5px; font-weight:600; color:var(--ink-2)}
.pv-who-list{display:flex; flex-wrap:wrap; gap:8px}
.pv-whoname{position:relative; display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border:1px solid var(--line); border-radius:var(--r-ctl); background:var(--surface); font-size:15px; font-weight:500; color:var(--ink); cursor:pointer}
.pv-whoname i{margin-left:5px; font-style:normal; font-weight:400; color:var(--ink-3)}
.pv-whoname:hover{border-color:var(--line-strong); background:var(--hover)}
.pv-whoname input{position:absolute; inset:0; margin:0; opacity:0; cursor:pointer}
.pv-whoname:has(input:checked){border-color:var(--wine); background:var(--wine-tint); color:var(--wine)}
.pv-whoname:has(input:checked) i{color:var(--wine)}
.pv-whoname:has(input:focus-visible){outline:2px solid var(--wine); outline-offset:2px}
.pv-whofind{max-width:320px}
/* the box's own "clear" ×, in the page's grey rather than the browser's blue (it still clears, and un-chooses: §33) */
.pv-whofind::-webkit-search-cancel-button{-webkit-appearance:none; appearance:none; width:18px; height:18px; margin:0 0 0 8px; cursor:pointer;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23978D84' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7 7 17'/%3E%3C/svg%3E") center / 15px no-repeat}
.pv-codefield input{max-width:220px; font-size:20px; letter-spacing:.18em; font-variant-numeric:tabular-nums}
.pv-four input{max-width:140px}
.pv-fieldk{font-size:13.5px; font-weight:600; color:var(--ink-2)}
.pv .hp{display:none}
.pv-upfiles{display:grid; gap:8px; margin:0; padding:0; list-style:none}
.pv-upfile{display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:center; gap:6px 12px; padding:10px 12px; border:1px solid var(--line-soft); border-radius:var(--r-ctl); background:var(--surface); font-size:14px}
.pv-upfile .nm{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink)}
.pv-upfile .say{font-size:13px; color:var(--ink-3); text-align:right}
.pv-upfile .say button{margin-left:6px}
.pv-upfile .track{grid-column:1 / -1; display:block; height:4px; border-radius:2px; background:var(--sunk-2); overflow:hidden}
.pv-upfile .track i{display:block; width:0; height:100%; background:var(--wine); transition:width .2s}
.pv-upfile[data-state="done"] .say{color:var(--yes)}
.pv-upfile[data-state="done"] .track i{background:var(--yes)}
.pv-upfile[data-state="failed"] .say{color:var(--danger)}
.pv-upfile[data-state="failed"] .track{display:none}
.pv-upfile.more{display:block; color:var(--ink-3)}
@container (min-width:480px){ .pv-doorhead-facts{display:grid; grid-template-columns:auto minmax(0, 1fr); gap:0 36px} }
@container (max-width:479px){ .pv-doorhead .pv-clocks-gap{display:none} }   /* as on the home, a phone keeps the two clocks and not the sentence */
@container (min-width:540px){
  .pv-doorhead{padding:26px 30px 24px}
  .pv-doorhead .pv-names{font-size:44px}
  .pv-doorcard{padding:26px 29px 28px}
}
@media (max-width:767px){ .pv-doorwrap{padding:26px 12px 40px} .pv-door{padding-top:10px} }
/* every door centred (28 September): one axis, the middle of the card, as on their cards */
.pv-door.is-centered :is(.pv-doorhead, .pv-doorcard){text-align:center}
.pv-door.is-centered .pv-doorcard :is(h2, p){text-wrap:balance}                                       /* centred lines break evenly: no word left alone */
.pv-door.is-centered .pv-doorhead-mark{justify-content:center}
.pv-door.is-centered .pv-dateline{justify-content:center}
.pv-door.is-centered .pv-doorhead-facts{display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start; gap:14px 36px}
.pv-door.is-centered .pv-clocks{justify-content:center}
.pv-door.is-centered .pv-clocks-gap{text-align:center}
.pv-door.is-centered :is(.pv-who-list, .pv-actions){justify-content:center}
.pv-door.is-centered .pv-who{justify-items:center}
.pv-door.is-centered .pv-field{justify-items:center}
.pv-door.is-centered .pv-field > :is(input, select){width:320px; max-width:100%; text-align:center}   /* a name, "You are…", who photographs are from */
.pv-door.is-centered .pv-codefield input{width:220px}
.pv-door.is-centered .pv-four input{width:140px}
.pv-door.is-centered .pv-keyfield input{width:100%}                                                    /* a whole link may be pasted */
.pv-door.is-centered .pv-field > textarea{justify-self:stretch; text-align:left}                      /* a wish is written left to right */
.pv-door.is-centered .pv-upfile{text-align:left}
.pv-door.is-centered .pv-doorfoot{justify-items:center}
.pv-whopick{display:grid; gap:14px}
@media (min-width:768px){ .pv-door.is-centered .pv-togo{align-items:center} }
@media (max-width:767px){ .pv-door.is-centered .pv-togo{justify-content:center} }

/* ---- the sign-in page on paper (28 September: his "go with option 1" of three painted mock-ups) ----
   No boxes and no lights: their mark, names and place on the paper, a rule with the mark small in it,
   "Welcome" in their type, and the form one column under it — the names that match hanging from the
   box you type in, each with its first letter and its side. */
html:has(.pv-doorwrap.is-paper),body.pv:has(.pv-doorwrap.is-paper){background:var(--paper)}
.pv-doorwrap.is-paper{min-height:100vh; min-height:100svh; padding:64px 16px 72px}
.pv-doorwrap.is-paper .pv-door{max-width:520px; padding-top:0}
.pv-doorwrap.is-paper .pv-doorhead{display:block; margin:0; padding:0; border-radius:0; background:none}
.pv-doorwrap.is-paper .pv-doorhead-mark{min-height:0; margin-bottom:16px}
.pv-doorwrap.is-paper .pv-doorhead .pv-names{font-size:40px; line-height:1.04}
.pv-doorwrap.is-paper .pv-doorhead .pv-dateline{margin-top:14px; font-size:11.5px; letter-spacing:.14em}
.pv-doorwrap.is-paper .pv-doorhead .pv-dateline + .pv-dateline{margin-top:6px}
.pv-doorrule{display:flex; align-items:center; justify-content:center; gap:12px; margin-top:22px}
.pv-doorrule i{display:block; width:min(150px, 30%); height:1px; background:var(--gold); opacity:.42}
.pv-welcome{margin:30px 0 0; font:400 36px/1.08 var(--display); letter-spacing:-.012em; color:var(--ink)}
.pv-doorlede{max-width:480px; margin:8px auto 0; font-size:16px; line-height:1.45; color:var(--ink-2); text-wrap:balance}
.pv-doorwrap.is-paper .pv-doorform{display:grid; max-width:480px; margin:0 auto; text-align:center}
.pv-doorwrap.is-paper .pv-doorform.pv-signin{gap:0}
.pv-doorwrap.is-paper .pv-whopick{display:block; margin-top:28px}
.pv-doorwrap.is-paper .pv-door .pv-iconfield{display:block}
.pv-iconfield{position:relative}
.pv-iconfield > svg{position:absolute; left:17px; top:27px; margin-top:-10px; color:var(--ink-3); pointer-events:none}
.pv-doorwrap.is-paper .pv-door .pv-iconfield > input{display:block; width:100%; max-width:none; min-height:54px; padding:12px 16px 12px 50px;
  background:rgba(255,255,255,.64); font-size:17px; letter-spacing:0; text-align:left}
.pv-doorwrap.is-paper .pv-door .pv-iconfield > input:focus{background:#fff}
.pv-doorwrap.is-paper .pv-signin .pv-codefield{margin-top:14px}
.pv-doorwrap.is-paper .pv-door .pv-iconfield.pv-codefield > input{padding-right:118px; font-variant-numeric:tabular-nums}
.pv-doorwrap.is-paper .pv-door .pv-iconfield.pv-codefield > input:not(:placeholder-shown){letter-spacing:.16em}
/* a code's six rings, one filled for each figure typed (public/preview-home.js §37) */
.pv-pindots{position:absolute; right:18px; top:27px; display:flex; gap:7px; margin-top:-4px; pointer-events:none}
.pv-pindots i{display:block; width:8px; height:8px; border:1px solid var(--ink-4); border-radius:50%; transition:background-color .15s ease, border-color .15s ease}
.pv-pindots[data-n="1"] i:nth-child(-n+1),.pv-pindots[data-n="2"] i:nth-child(-n+2),.pv-pindots[data-n="3"] i:nth-child(-n+3),
.pv-pindots[data-n="4"] i:nth-child(-n+4),.pv-pindots[data-n="5"] i:nth-child(-n+5),.pv-pindots[data-n="6"] i{border-color:var(--gold); background:var(--gold)}
.pv-whopanel{max-height:272px; margin-top:6px; overflow:hidden auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:var(--r-ctl); background:rgba(255,255,255,.82);
  box-shadow:0 12px 30px -18px rgba(60,40,20,.3); text-align:left}   /* five names and a half: more scroll inside it, and the code stays near */
.pv-whopanel:not(:has(.pv-whoname:not([hidden]))){display:none}
.pv-doorwrap.is-paper .pv-whopanel .pv-who{display:block; justify-items:stretch}   /* (the centred door centres a block by its content here: the rows keep the width of the list) */
.pv-doorwrap.is-paper .pv-whopanel .pv-who-k{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap}   /* said once on each name instead */
.pv-doorwrap.is-paper .pv-whopanel .pv-who-list{display:block}
.pv-doorwrap.is-paper .pv-whopanel .pv-whoname{display:flex; align-items:center; gap:12px; min-height:50px; margin-top:-1px; padding:8px 14px;
  border:0; border-top:1px solid var(--line-soft); border-radius:0; background:none; font-size:16px; font-weight:400; color:var(--ink)}
.pv-doorwrap.is-paper .pv-whopanel .pv-whoname:hover{background:var(--hover)}
.pv-doorwrap.is-paper .pv-whopanel .pv-whoname:has(input:checked){background:var(--wine-tint); color:var(--wine)}
.pv-doorwrap.is-paper .pv-whopanel .pv-whoname:has(input:focus-visible){outline:2px solid var(--wine); outline-offset:-2px}
.pv-whoini{display:grid; place-items:center; flex:none; width:30px; height:30px; border-radius:50%; background:#F1E6E1; font-size:13.5px; font-weight:500; color:var(--ink-2)}
.pv-whoname > span{flex:1; min-width:0}
.pv-whoside{display:none; flex:none; font-size:13px; font-style:normal; color:var(--ink-4)}
.pv-whopanel.is-mixed .pv-whoside{display:block}   /* a side is said only when the names found are from more than one */
.pv-whomore{margin:0; padding:11px 14px; border-top:1px solid var(--line-soft); font-size:13px; color:var(--ink-3)}
.pv-doorwrap.is-paper :is([data-whonone], [data-whomust]){margin-top:10px}
.pv-doorwrap.is-paper .pv-error{margin:14px 0 0}
.pv-doorwrap.is-paper .pv-doorfoot{display:grid; justify-items:center; gap:0; margin-top:28px}
.pv-comein{min-width:min(300px, 100%); min-height:52px; padding:0 28px; gap:10px; font-size:16px; font-weight:500}
.pv-or{display:flex; align-items:center; justify-content:center; gap:14px; width:100%; margin-top:30px; font-size:14px; color:var(--ink-3)}
.pv-or::before,.pv-or::after{content:""; width:min(150px, 30%); height:1px; background:var(--line)}
.pv-doorwrap.is-paper .pv-doorfoot .pv-hint{margin-top:12px; font-size:14.5px; color:var(--ink-2); text-wrap:balance}
/* every other door on paper too (28 September, his "do the other doors on paper too"): the card's box gone — its
   title in their type, its words and its form one column on the paper under the head, the fields and the one button
   as on the sign-in page */
.pv-doorwrap.is-paper .pv-door .pv-doorcard{display:grid; gap:16px; max-width:480px; margin:30px auto 0; padding:0; border:0; border-radius:0; background:none; box-shadow:none}
.pv-doorwrap.is-paper .pv-door .pv-doorcard h2{font:400 30px/1.12 var(--display); letter-spacing:-.01em; color:var(--ink)}
.pv-doorwrap.is-paper .pv-door .pv-doorcard div > h2 + p{margin-top:10px}
.pv-doorwrap.is-paper .pv-door .pv-doorcard :is(.pv-quiet, .pv-doorlead){font-family:var(--ui); font-size:16px; line-height:1.45; color:var(--ink-2); text-wrap:balance}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-field:not(.pv-iconfield){gap:8px}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-field > label:not(.pv-vh),.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-fieldk{font-size:14px; font-weight:500; color:var(--ink-2)}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-field > :is(input[type=text], textarea){width:100%; max-width:none; min-height:52px; background:rgba(255,255,255,.64); font-size:17px}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-four input{min-height:52px; background:rgba(255,255,255,.64)}
.pv-doorwrap.is-paper .pv-door .pv-doorcard :is(input, textarea):focus{background:#fff}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-file-l{min-height:52px; padding:0 18px; background:rgba(255,255,255,.64); font-size:15px}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-linkline{margin:0; padding:12px 14px; border:1px solid var(--line); background:rgba(255,255,255,.64)}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-doorfoot{margin-top:12px}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-doorfoot .pv-btn{min-height:50px}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-doorfoot .pv-btn-primary{min-width:300px; max-width:100%; padding:0 28px; font-size:16px; font-weight:500}   /* (a width of its own: inside a row of one, a share of the row is its own width) */
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-doorlater{margin-top:14px; padding-top:18px; border-top:1px solid var(--line)}
.pv-doorwrap.is-paper .pv-door .pv-doorcard .pv-whopick{margin-top:12px}
@container (min-width:480px){
  .pv-doorwrap.is-paper .pv-door .pv-doorcard h2{font-size:36px}
  .pv-doorwrap.is-paper .pv-door .pv-doorcard :is(.pv-quiet, .pv-doorlead){font-size:17px}
  .pv-doorwrap.is-paper .pv-doorhead .pv-names{font-size:56px}
  .pv-doorwrap.is-paper .pv-doorhead .pv-dateline{font-size:13px; letter-spacing:.22em}
  .pv-welcome{font-size:46px}
  .pv-doorlede{font-size:17px}
}
@media (max-width:767px){
  .pv-doorwrap.is-paper{padding:40px 16px 48px}
  .pv-doorwrap.is-paper:has([data-whopanel][data-open="1"]){padding-bottom:70vh}   /* room for the box to go to the top above the keyboard (§33) */
}
/* the painting at its edges, when the house has one (its dress: lib/wedding.js doorArt), and never under a word.
   On a computer the wide one fills the window behind the column (its middle is empty paper); on a phone, or any
   window taller than wide, the tall one in two pieces: its top across the top of the page, its garden at the foot
   under the last line. The page takes the painting's own paper; a soft glow of it behind the words keeps them on
   paper however narrow the window. */
html:has(.pv-doorwrap.has-art),body.pv:has(.pv-doorwrap.has-art){background:var(--door-paper, var(--paper))}
.pv-doorart{position:fixed; inset:0; z-index:0; pointer-events:none; background:var(--door-wide) center / cover no-repeat}
.pv-doorart i{display:none}
.pv-doorwrap.has-art{overflow-x:clip}   /* (the glow reaches past the column: never past the screen, or a phone zooms the page out) */
.pv-doorwrap.has-art > .pv-door{position:relative; z-index:1}
.pv-doorwrap.has-art > .pv-door::before{content:""; position:absolute; inset:-48px -96px; z-index:-1; pointer-events:none;
  background:radial-gradient(closest-side, var(--door-paper, var(--paper)) 74%, transparent)}
@media (orientation:portrait){
  .pv-doorart{position:absolute; background:none}
  .pv-doorart i{position:absolute; left:0; right:0; display:block}
  /* its blossoms (its top quarter), drawn smaller in the two top corners so they frame the names and never touch them,
     and its garden (its lower half) at full width; each fades into the paper between */
  .pv-doorart-top{--s:calc(100vw * .66); top:0; height:calc(var(--s) * var(--door-tall-r, 1.5) * .24)}
  .pv-doorart-top::before,.pv-doorart-top::after{content:""; position:absolute; top:0; bottom:0; width:calc(var(--s) * .42);   /* (a corner's branch, never the other's tip) */
    background:var(--door-tall) no-repeat; background-size:var(--s) auto; -webkit-mask:linear-gradient(#000 60%, transparent); mask:linear-gradient(#000 60%, transparent)}
  .pv-doorart-top::before{left:0; background-position:left top}
  .pv-doorart-top::after{right:0; background-position:right top}
  .pv-doorart-foot{bottom:0; height:calc(100vw * var(--door-tall-r, 1.5) * .54); background:var(--door-tall) no-repeat bottom center / 100% auto;
    -webkit-mask:linear-gradient(transparent, #000 16%); mask:linear-gradient(transparent, #000 16%)}
  .pv-doorwrap.is-paper.has-art{padding-bottom:calc(100vw * var(--door-tall-r, 1.5) * .5)}   /* the garden, under the last line */
}

/* ---- a row whose right side holds buttons, on a narrow page (28 September: "the links in the settings are
   stretching too much"): the buttons go under the words, starting on the words' line (a 32 px face + 12), so the
   words keep the row's width — Settings' links and codes, Today's who to call ---- */
@container (max-width:599px){
  .pv-row:has(> .pv-row-r .pv-btn){flex-wrap:wrap}
  .pv-row:has(> .pv-row-r .pv-btn) > .pv-row-main{flex-basis:100%}
  .pv-row:has(> .pv-row-r .pv-btn) > .pv-row-r{flex-basis:100%; max-width:none; justify-content:flex-start; padding:0 0 12px 44px}
  .pv-row:has(> .pv-row-main > .pv-row-ic) > .pv-row-r{padding-left:46px}
  .pv-row:has(> .pv-row-main > .pv-row-tx:first-child) > .pv-row-r{padding-left:0}
  .pv-keys .pv-row-r{padding-top:0}
}

/* ---- the home's head on a phone (28 September: "the clocks and the day counter are looking weird on mobile…
   spacing is less between them, too left aligned?"): measured, 6 px between the count and the clocks, 14 between
   the clocks, and 101 px empty to their right. Now as the doors' head on a phone: on the middle axis, a rule
   above the count, the count on its line and the two clocks under it with room between ---- */
@media (max-width:767px){
  .pv-hero .pv-hero-foot{gap:14px; padding:16px 16px 16px; text-align:center}
  .pv-hero .pv-dateline{justify-content:center}
  .pv-hero .pv-hero-facts{justify-content:center; gap:12px 28px; padding-top:14px; border-top:1px solid var(--line)}
  .pv-hero .pv-togo{justify-content:center}
  .pv-hero .pv-clocks{justify-content:center; gap:8px 28px}
}

/* ---- the phone ---------------------------------------------------------------------------- */
@media (max-width:767px){
  .pv-lede{display:none}
  .pv-tabs{gap:18px; margin-top:16px; margin-right:-16px; padding-right:24px; -webkit-mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent)}
  .pv-tabs a{font-size:14px}
  .pv-toolbar .pv-chips,.pv-findbar .pv-chips{-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image:linear-gradient(to right, #000 calc(100% - 28px), transparent)}
  .pv-moneygroup-h{flex-wrap:wrap}
  .pv-moneygroup-h .pv-small{order:3; flex-basis:100%}
  .pv-stats{gap:4px 16px}
  .pv-stat b{font-size:18px}
  .pv-stat{font-size:13.5px}
  .pv-k-work .pv-evline.is-register{display:none}
  .pv-toolbar .pv-chips,.pv-findbar .pv-chips{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin-right:-16px; padding-right:16px}
  .pv-toolbar .pv-chips::-webkit-scrollbar{display:none}
  .pv-hero{margin-bottom:12px}
  .pv-hero-ph{aspect-ratio:16/10}
  .pv-hero-foot{padding:14px 16px 14px; gap:10px}
  .pv-hero .pv-names{font-size:31px}
  .pv-hero .pv-dateline{margin-top:6px; font-size:11px; letter-spacing:.06em}
  .pv-hero .pv-dateline + .pv-dateline{margin-top:0}
  .pv-hero-facts{align-items:center; gap:6px 18px}
  .pv-togo{flex-direction:row; align-items:baseline; gap:6px}
  .pv-togo b{font-size:24px}
  .pv-togo span{margin-top:0; font-size:12.5px}
  .pv-clock-part,.pv-hero .pv-clocks-gap{display:none}
  .pv-clock-face{width:24px; height:24px}
  .pv-clock-tx .t{font-size:14px}
  .pv-clock-where{font-size:11.5px}
  .pv-clocks{gap:6px 14px}
  .pv-days-nav{margin-bottom:10px; padding-top:0; border-top:0}
  .pv-days-nav .pv-panel-top{display:none}
  .pv-days{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px}
  .pv-day{border:0; border-radius:0; background:none; overflow:visible}
  .pv-day img{aspect-ratio:1; border-radius:var(--r-media); border-bottom:3px solid var(--e, var(--line-soft))}
  .pv-day > span{padding:5px 0 0; align-items:center; text-align:center}
  .pv-day b{font-size:14px}
  .pv-day em{display:none}
  .pv-film-frame{width:min(100%, 250px)}
  .pv-head{margin-bottom:18px}
  .pv-head h1{font-size:26px}
  .pv-head.is-serif h1{font-size:30px}
  .pv-head-acts{width:100%}
  .pv-act{min-height:44px}
  .pv .pv-cbox input[type=text]{min-height:44px}
  .pv-post-head .pv-icon-btn,.pv-cbox .pv-icon-btn{width:44px; height:44px}
  .pv-card .pv-rows > .pv-row{padding:0 16px}
  .pv-row{flex-wrap:wrap}
  .pv-row-r{max-width:100%; padding:0 0 10px 46px; justify-content:flex-start}
  .pv-rows > .pv-row:not(:has(.pv-row-ic)):not(:has(.avatar)):not(:has(.pv-row-img)) .pv-row-r{padding-left:0}
  .pv-grid{--row:112px; gap:4px}
  .pv-grid-lg{--row:140px}
  .pv-remote{--row:110px}
  .pv-tabs{gap:20px}
  .pv-search-sm{flex:1 1 100%; max-width:none}
  .pv-pad{padding:16px}
  .pv-panel{padding:16px}
  .pv-post-head{padding-left:16px}
  .pv-post-tx,.pv-pills,.pv-made,.pv-files,.pv-poll{padding-left:16px; padding-right:16px}
  .pv-sum{margin:0 16px}
  .pv-comments{padding-left:16px; padding-right:16px}
  .pv-compose{padding:12px 14px 6px}
  .pv-way{gap:5px; font-size:13.5px}
}
/* on a phone the composer's five ways stay options (28 September: "random floating text"): each keeps its
   icon, over its word, in five equal columns under the box, edge to edge with it (avatar 40 + gap 12) */
@media (max-width:520px){
  .pv-feedcol > .pv-compose .pv-compose-ways{gap:4px; margin:8px 0 0 52px}
  .pv-feedcol > .pv-compose .pv-way{flex:1 1 0; flex-direction:column; gap:4px; min-height:54px; padding:7px 2px 6px; font-size:12.5px; font-weight:600}
  .pv-feedcol > .pv-compose .pv-way svg{display:block}
}
@media (prefers-reduced-motion:reduce){ .pv *{transition:none !important; animation:none !important} }
@media print{
  .pv-nav,.pv-top,.pv-tabbar,.pv-banner,.pv-noprint,.pv-head-acts,.pv-note,.pv-lights{display:none !important}
  .pv-shell{display:block; padding:0} .pv-main{max-width:none; padding:0}
  body.pv{background:#fff} .pv-card{border-color:#ccc}
}
