/* Patience Parlour: a Victorian parlour in CSS. Bottle-green damask walls, mahogany,
   brass fittings, cream paper and green baize. Mobile first. */
:root{
  --wall:#10251b; --wall-2:#0a1912; --wood:#3a1a0f; --wood-2:#220e08; --wood-hi:#5b2a17;
  --brass:#c79c4f; --brass-hi:#e8cb8a; --brass-lo:#8b672b; --paper:#f7efdc; --paper-2:#ede0c2;
  --ink:#2a1a12; --ink-2:#5f4737; --claret:#8c1d2a; --baize:#1e5c3c; --baize-2:#0e3322;
  --f-display:"Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",P052,"Noto Serif",Georgia,serif;
  --f-text:Charter,"Bitstream Charter","Sitka Text",Cambria,"Noto Serif",Georgia,serif;
  --mantel:54px; --gut:16px;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; text-size-adjust:100%}
body{margin:0; min-height:100vh; font:16px/1.62 var(--f-text); color:var(--paper);
  background-color:var(--wall);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='72' viewBox='0 0 56 72'%3E%3Cg fill='none' stroke='%23c79c4f' stroke-opacity='.09' stroke-width='1.2'%3E%3Cpath d='M28 4c7 9 16 14 16 32S35 61 28 68C21 61 12 54 12 36S21 13 28 4z'/%3E%3Cpath d='M28 20c3 5 7 8 7 16s-4 12-7 15c-3-3-7-7-7-15s4-11 7-16z'/%3E%3Cpath d='M0 0l6 8M56 0l-6 8M0 72l6-8M56 72l-6-8'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(180deg,var(--wall),var(--wall-2));
  background-attachment:scroll}
img,svg{max-width:100%}
a{color:var(--brass-hi); text-underline-offset:.18em; text-decoration-thickness:1px}
a:hover{color:#fff4d6}
:focus-visible{outline:2px solid var(--brass-hi); outline-offset:2px}
h1,h2,h3{font-family:var(--f-display); font-weight:600; line-height:1.2; letter-spacing:.005em}
.plr-skip{position:absolute; left:-999px; top:8px; z-index:99; background:var(--paper); color:var(--ink); padding:8px 14px; border-radius:6px}
.plr-skip:focus{left:8px}

/* ---- mantel (header) ---- */
.plr-mantel{position:sticky; top:0; z-index:50; background:linear-gradient(180deg,var(--wood-hi) 0,var(--wood) 38%,var(--wood-2) 100%);
  border-bottom:2px solid var(--brass-lo); box-shadow:0 1px 0 var(--brass-hi) inset,0 3px 10px rgba(0,0,0,.45)}
.plr-mantel-in{max-width:1200px; margin:0 auto; height:var(--mantel); display:flex; align-items:center; gap:10px; padding:0 var(--gut)}
.plr-crest{display:flex; align-items:center; gap:9px; color:var(--brass-hi); text-decoration:none; min-width:0; flex:1 1 auto}
.plr-crest svg{width:34px; height:34px; flex:0 0 auto}
.plr-crest-name{font:600 18px/1 var(--f-display); letter-spacing:.06em; font-variant:small-caps; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.plr-crest-name i{font-style:italic; font-variant:normal; letter-spacing:.01em; color:var(--paper)}
.plr-rooms-toggle{appearance:none; border:1px solid var(--brass-lo); background:rgba(0,0,0,.25); color:var(--brass-hi); border-radius:6px;
  height:38px; padding:0 10px; display:flex; align-items:center; gap:6px; font:600 14px var(--f-display); cursor:pointer; flex:0 0 auto}
.plr-rooms-toggle svg{width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round}
.plr-rooms{display:none; position:absolute; left:0; right:0; top:100%; background:var(--wood-2); border-bottom:2px solid var(--brass-lo); box-shadow:0 10px 24px rgba(0,0,0,.5)}
.plr-mantel[data-open] .plr-rooms{display:block}
.plr-doors{list-style:none; margin:0; padding:6px var(--gut) 10px; display:grid; gap:2px}
.plr-door{display:grid; grid-template-columns:26px 1fr; column-gap:10px; align-items:center; padding:9px 8px; border-radius:6px; text-decoration:none; color:var(--paper)}
.plr-door:hover{background:rgba(199,156,79,.12); color:#fff}
.plr-door[aria-current]{background:rgba(199,156,79,.16); box-shadow:inset 3px 0 0 var(--brass)}
.plr-ico{width:22px; height:22px; fill:none; stroke:var(--brass); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; grid-row:span 2}
.plr-door-name{font:600 16px/1.2 var(--f-display)}
.plr-door-sub{font-size:13px; color:#cdb991; line-height:1.2}
.plr-tongue{position:relative; flex:0 0 auto}
@media (max-width:400px){.plr-rooms-toggle span{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%)} .plr-rooms-toggle{padding:0 9px} .plr-crest-name{font-size:17px}}
.plr-tongue summary{list-style:none; cursor:pointer; height:38px; min-width:44px; padding:0 8px; display:flex; align-items:center; justify-content:center; gap:4px;
  border:1px solid var(--brass-lo); border-radius:6px; color:var(--brass-hi); font:600 13px var(--f-display); letter-spacing:.08em; background:rgba(0,0,0,.25)}
.plr-tongue summary::-webkit-details-marker{display:none}
.plr-tongues{position:absolute; right:0; top:44px; margin:0; padding:6px; list-style:none; background:var(--paper); border:1px solid var(--brass); border-radius:8px;
  box-shadow:0 10px 24px rgba(0,0,0,.45); min-width:150px; z-index:60}
.plr-tongues a{display:block; padding:8px 10px; color:var(--ink); text-decoration:none; border-radius:5px; font:15px var(--f-display)}
.plr-tongues a:hover,.plr-tongues a[aria-current]{background:var(--paper-2)}
@media (min-width:960px){
  :root{--mantel:64px}
  .plr-crest{flex:0 0 auto}
  .plr-crest-name{font-size:21px}
  .plr-rooms-toggle{display:none}
  .plr-rooms{display:block; position:static; background:none; border:0; box-shadow:none; flex:1 1 auto}
  .plr-doors{display:flex; justify-content:center; gap:2px; padding:0}
  .plr-door{grid-template-columns:auto; text-align:center; padding:6px 12px; justify-items:center}
  .plr-door .plr-ico{display:none}
  .plr-door-name{font-size:15.5px; color:var(--brass-hi)}
  .plr-door-sub{font-size:11.5px; letter-spacing:.03em}
  .plr-door[aria-current]{box-shadow:inset 0 -2px 0 var(--brass); background:none}
}

/* ---- chamber (main) ---- */
.plr-chamber{display:block; max-width:1200px; margin:0 auto; padding:0 0 40px}
.plr-trail{padding:10px var(--gut) 0; font-size:13.5px; color:#cdb991}
.plr-trail ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 6px}
.plr-trail li+li::before{content:"\203A"; margin-right:6px; color:var(--brass)}
.plr-trail a{color:#e9d8ae}

/* table head + card table */
.plr-tablehead{display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; padding:8px var(--gut) 8px}
.plr-tablename{margin:0; font-size:21px; color:var(--brass-hi); flex:1 1 auto; min-width:0}
.plr-tablename small{font-size:.72em; color:#e6d5ad; font-weight:400}
.plr-variants{display:flex; flex-wrap:wrap; gap:4px}
.plr-variant,.plr-pick{appearance:none; cursor:pointer; border:1px solid var(--brass-lo); background:rgba(0,0,0,.28); color:#ecdcb5; border-radius:999px;
  padding:5px 12px; min-height:34px; font:600 13.5px var(--f-display)}
.plr-variant[aria-pressed="true"],.plr-pick[aria-pressed="true"]{background:linear-gradient(#e2c27e,#b98d43); color:#2a170b; border-color:#f0d9a2}
.plr-table{position:relative; height:calc(100vh - var(--lift,110px)); height:calc(100svh - var(--lift,110px)); min-height:440px; max-height:900px;
  margin:0; background:var(--baize-2); border-block:3px solid var(--wood); box-shadow:0 0 0 1px var(--brass-lo)}
.plr-noscript{margin:0; padding:40px 20px; text-align:center; color:var(--paper)}
@media (min-width:760px){
  .plr-table{margin:0 var(--gut); border:10px solid var(--wood); border-radius:14px; box-shadow:0 0 0 1px var(--brass-lo),inset 0 0 0 1px var(--brass),0 18px 40px rgba(0,0,0,.5);
    height:min(calc(100vh - var(--lift,150px) - 18px),820px)}
  .plr-tablename{font-size:26px}
}

/* engine skin: same classes the engine creates (prefix plr), raised specificity */
.plr-table .plr{border-radius:4px}
.plr .plr-hud{background:linear-gradient(rgba(16,6,2,.45),rgba(16,6,2,0))}
.plr .plr-title{font-family:var(--f-display); letter-spacing:.02em; color:#f3e4bd}
.plr .plr-chip{border:1px solid rgba(217,174,85,.4); background:rgba(14,5,2,.42)}
.plr .plr-bar{background:linear-gradient(180deg,#43200f,#1f0d06); box-shadow:inset 0 1px 0 var(--brass-lo),inset 0 2px 0 rgba(232,203,138,.25)}
.plr .plr-btn{font-family:var(--f-display); letter-spacing:.02em}
.plr .plr-sheet{border:1px solid var(--brass); box-shadow:0 0 0 4px rgba(42,26,18,.6),0 18px 44px rgba(0,0,0,.5);
  background:linear-gradient(180deg,#fbf5e6,#f1e5c9)}
.plr .plr-sheet h2{font-family:var(--f-display); color:#4a1d12}
.plr .plr-sheet h3{font-family:var(--f-display)}
.plr[data-back="parlour"]{--cards-back-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 80'%3E%3Cellipse cx='30' cy='40' rx='26' ry='35' fill='%236a1b21' stroke='%23e3c47f' stroke-width='2.4'/%3E%3Cellipse cx='30' cy='40' rx='20.5' ry='29' fill='none' stroke='%23d8b064' stroke-width='.9'/%3E%3Cg fill='%23e3c47f'%3E%3Ccircle cx='30' cy='27' r='6'/%3E%3Ccircle cx='30' cy='53' r='6'/%3E%3Ccircle cx='18' cy='40' r='6'/%3E%3Ccircle cx='42' cy='40' r='6'/%3E%3C/g%3E%3Cpath d='M30 32l8 8-8 8-8-8z' fill='%236a1b21' stroke='%23e3c47f' stroke-width='1.1'/%3E%3C/svg%3E") center/58% auto no-repeat,repeating-linear-gradient(45deg,rgba(222,184,106,.42) 0 1px,transparent 1px 6px),repeating-linear-gradient(-45deg,rgba(222,184,106,.42) 0 1px,transparent 1px 6px),#6a1b21}

/* ---- folio: cream paper for reading ---- */
.plr-folio{background:linear-gradient(180deg,var(--paper),#f3e8cf); color:var(--ink); margin:14px 0 0; padding:22px var(--gut) 28px;
  border-top:3px double var(--brass); box-shadow:0 10px 30px rgba(0,0,0,.35)}
.plr-folio a{color:var(--claret)}
.plr-folio a:hover{color:#5a0f19}
.plr-folio h2{font-size:24px; color:#4a1d12; margin:30px 0 10px; padding-bottom:6px; border-bottom:1px solid #d9c49a}
.plr-folio h2:first-child{margin-top:4px}
.plr-folio h3{font-size:19px; color:#5b2516; margin:22px 0 6px}
.plr-folio p,.plr-folio li{max-width:68ch}
.plr-folio ul{padding-left:1.25em}
.plr-folio li{margin:4px 0}
.plr-folio li::marker{color:var(--brass-lo)}
.plr-lede{font-size:18px; line-height:1.55; color:#3b2619; margin-top:0}
.plr-pagehead{padding:18px var(--gut) 4px}
.plr-pagehead h1{margin:0 0 6px; font-size:30px; color:var(--brass-hi)}
.plr-pagehead p{margin:0; max-width:62ch; color:#eadcb8; font-size:17px}
@media (min-width:760px){
  :root{--gut:28px}
  body{font-size:17px}
  .plr-folio{margin:22px var(--gut) 0; border-radius:4px; padding:30px 44px 36px; border:1px solid var(--brass-lo); border-top:3px double var(--brass)}
  .plr-pagehead h1{font-size:40px}
}
.plr-split{display:grid; gap:4px 34px}
@media (min-width:1000px){.plr-split{grid-template-columns:minmax(0,1fr) 300px} .plr-split > aside{position:sticky; top:84px; align-self:start}}

/* ledger tables */
.plr-ledger{background:#fbf6ea; border:1px solid #d6c091; border-radius:6px; padding:12px 14px 6px; margin:18px 0}
.plr-ledger h2,.plr-ledger h3{margin:0 0 6px; border:0; padding:0; font-size:18px}
.plr-ledger table,.plr-roll{width:100%; border-collapse:collapse; font-size:15px}
.plr-ledger th,.plr-ledger td{text-align:left; padding:6px 4px; border-top:1px dotted #cdb68a; vertical-align:top}
.plr-ledger th{font-weight:400; color:var(--ink-2); width:52%}
.plr-ledger td{font-weight:600; font-variant-numeric:tabular-nums}
.plr-rollwrap{overflow-x:auto; margin:10px 0 18px; border:1px solid #d6c091; border-radius:6px; background:#fbf6ea}
.plr-roll th,.plr-roll td{padding:7px 10px; border-bottom:1px solid #e5d5b2; text-align:left; white-space:nowrap; font-variant-numeric:tabular-nums}
.plr-roll thead th{font:600 13px var(--f-display); text-transform:uppercase; letter-spacing:.05em; color:var(--ink-2); background:#f2e6c9}
.plr-roll tbody tr:hover{background:#f6ecd4}
.plr-red{color:#a01b28}
.plr-blk{color:#1d1a17}
.plr-mark{color:#1f6b3f; font-weight:700}

/* tiers */
.plr-tier{display:inline-block; padding:2px 10px; border-radius:999px; font:600 13px/1.6 var(--f-display); letter-spacing:.03em; border:1px solid}
.plr-tier-1{color:#d5efd8; border-color:#6fae84; background:rgba(40,110,70,.35)}
.plr-tier-2{color:#f2e5bf; border-color:#c7a85a; background:rgba(150,115,40,.3)}
.plr-tier-3{color:#f6d9bd; border-color:#c9824a; background:rgba(150,80,30,.35)}
.plr-tier-4{color:#f6cfd2; border-color:#c25866; background:rgba(140,29,42,.45)}
.plr-folio .plr-tier-1{color:#1d5a33; background:#e2f1e3} .plr-folio .plr-tier-2{color:#6b4e10; background:#f6ebc8}
.plr-folio .plr-tier-3{color:#7c3b0c; background:#f8e1cd} .plr-folio .plr-tier-4{color:#7e1622; background:#f7dadd}

/* hall */
.plr-hero{padding:26px var(--gut) 8px; display:grid; gap:18px; align-items:center}
.plr-hero h1{margin:0; font-size:34px; color:var(--brass-hi); line-height:1.12}
.plr-hero p{margin:10px 0 0; font-size:17.5px; max-width:58ch; color:#efe2c2}
.plr-cta{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px}
.plr-cta a{display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 18px; border-radius:6px; text-decoration:none;
  font:600 16px var(--f-display); letter-spacing:.02em}
.plr-cta .plr-go{background:linear-gradient(#e8cb8a,#b8893d); color:#2a160a; box-shadow:0 2px 0 #6e4f1d,0 6px 16px rgba(0,0,0,.35)}
.plr-cta .plr-go-alt{border:1px solid var(--brass); color:var(--brass-hi); background:rgba(0,0,0,.25)}
.plr-cta svg{width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2}
.plr-heroart{display:none}
@media (min-width:860px){.plr-hero{grid-template-columns:1.25fr 1fr; padding-top:42px} .plr-hero h1{font-size:48px} .plr-heroart{display:block}}
.plr-heroart svg{width:100%; height:auto; filter:drop-shadow(0 16px 26px rgba(0,0,0,.45))}

.plr-nook{margin:18px var(--gut) 0; display:flex; flex-wrap:wrap; gap:14px}
.plr-nook > *{flex:1 1 300px}
.plr-plaque{border:1px solid var(--brass-lo); border-radius:8px; padding:16px 18px; background:linear-gradient(180deg,rgba(58,26,15,.9),rgba(34,14,8,.92));
  box-shadow:inset 0 1px 0 rgba(232,203,138,.25),0 8px 20px rgba(0,0,0,.35)}
.plr-plaque h2{margin:0 0 6px; font-size:20px; color:var(--brass-hi)}
.plr-plaque p{margin:4px 0}
.plr-featured{font:600 22px/1.25 var(--f-display); color:#fff1cf}
.plr-plaque-go{display:inline-block; margin-top:8px; font:600 15px var(--f-display)}
.plr-streak{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:8px 0 0; max-width:420px}
.plr-streak b{display:block; font:600 28px/1.1 var(--f-display); color:var(--brass-hi)}
.plr-streak span{font-size:13px; color:#d8c69e}

.plr-section{padding:8px var(--gut) 0}
.plr-section > h2{font-size:26px; color:var(--brass-hi); margin:30px 0 4px}
.plr-section > p{margin:0 0 14px; color:#e6d7b2; max-width:64ch}
.plr-portraits{list-style:none; margin:0; padding:0; display:grid; gap:18px; grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}
.plr-portrait{display:flex; flex-direction:column; text-decoration:none; color:inherit; height:100%}
.plr-frame{display:block; padding:9px; border-radius:6px; background:linear-gradient(135deg,#f0d390,#a77a33 30%,#e5c47c 55%,#8b6326 80%,#d9b469);
  box-shadow:0 10px 22px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.3)}
.plr-frame img{display:block; width:100%; height:auto; border-radius:2px; border:2px solid #3a1a0f; background:#1d5a3b}
.plr-nameplate{align-self:center; margin:-12px 0 0; position:relative; padding:4px 16px; border-radius:3px; background:linear-gradient(#e8cb8a,#b38641);
  color:#2b1709; font:600 16px var(--f-display); letter-spacing:.06em; font-variant:small-caps; box-shadow:0 2px 4px rgba(0,0,0,.5)}
.plr-blurb{margin:10px 2px 0; font-size:15px; color:#e3d4ad; line-height:1.5}
.plr-blurb em{display:block; font-style:normal; color:var(--brass); font-size:13px; margin-top:4px; letter-spacing:.02em}
.plr-portrait:hover .plr-nameplate{background:linear-gradient(#f4dca4,#c99a4e)}

.plr-shelves{list-style:none; padding:0; margin:12px 0; display:grid; gap:12px; grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
.plr-shelf{border:1px solid #d6c091; border-radius:6px; padding:12px 14px; background:#fbf6ea}
.plr-shelf h3{margin:0 0 4px; font-size:18px}
.plr-shelf p{margin:2px 0; font-size:14.5px; color:var(--ink-2)}
.plr-shelf .plr-tiers{display:flex; gap:4px; flex-wrap:wrap; margin-top:6px}
.plr-dealist{list-style:none; padding:0; margin:8px 0 0; display:grid; gap:8px; grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
.plr-dealist a{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 12px; border-radius:6px; text-decoration:none;
  border:1px solid var(--brass-lo); background:rgba(0,0,0,.25); color:var(--paper)}
.plr-folio .plr-dealist a{background:#fbf6ea; color:var(--ink); border-color:#d6c091}
.plr-dealist a:hover{border-color:var(--brass)}

/* deal page */
.plr-pager{display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin:0 0 14px; font:600 15px var(--f-display)}
.plr-pager a{text-decoration:none}
.plr-tips{padding-left:1.2em}
.plr-spoiler{margin:18px 0; border:1px solid #d6c091; border-radius:6px; background:#fbf6ea; padding:0 14px}
.plr-spoiler summary{cursor:pointer; padding:12px 0; font:600 17px var(--f-display); color:#5b2516}
.plr-spoiler[open]{padding-bottom:12px}
.plr-spoiler .plr-roll td{white-space:normal}

/* daily */
.plr-picks{display:flex; flex-wrap:wrap; gap:6px; padding:10px var(--gut) 0}
.plr-pick[data-featured]::after{content:" \2605"; color:#b98d43}
.plr-pick[aria-pressed="true"][data-featured]::after{color:#5a3a0e}
.plr-calendar{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; max-width:360px; margin:12px 0 0; padding:0; list-style:none}
.plr-calendar li{aspect-ratio:1; border-radius:5px; border:1px solid #d6c091; background:#fbf6ea; display:flex; align-items:center; justify-content:center;
  font-size:12px; color:var(--ink-2)}
.plr-calendar li[data-done]{background:#1e5c3c; color:#f3e7c7; border-color:#174a30}
.plr-calendar li[data-today]{outline:2px solid var(--brass); outline-offset:1px}
.plr-folio .plr-streak b{color:#5b2516}
.plr-folio .plr-streak span{color:var(--ink-2)}

/* compare table + terms */
.plr-terms{display:grid; gap:2px 18px; margin:10px 0}
.plr-terms dt{font:600 17px var(--f-display); color:#4a1d12; margin-top:10px}
.plr-terms dd{margin:0; max-width:64ch}
@media (min-width:760px){.plr-terms{grid-template-columns:200px 1fr} .plr-terms dt{margin-top:8px} .plr-terms dd{margin-top:8px}}
.plr-pips{letter-spacing:2px; color:#a01b28}
.plr-pips i{font-style:normal; color:#d4c3a0}
.plr-guides{list-style:none; padding:0; display:grid; gap:10px}
.plr-guides a{font:600 18px var(--f-display)}
.plr-guides span{display:block; color:var(--ink-2); font-size:15px}
.plr-qa h3{font-size:18px}
.plr-continue:empty{display:none}

/* skirting (footer) */
.plr-skirting{margin-top:36px; background:linear-gradient(180deg,var(--wood),var(--wood-2)); border-top:2px solid var(--brass-lo); color:#dccba3; font-size:15px}
.plr-skirting-in{max-width:1200px; margin:0 auto; padding:26px var(--gut) 18px; display:grid; gap:22px}
@media (min-width:760px){.plr-skirting-in{grid-template-columns:1.4fr 1fr 1fr}}
.plr-skirting h2{font-size:15px; letter-spacing:.12em; text-transform:uppercase; color:var(--brass); margin:0 0 8px}
.plr-skirting ul{list-style:none; margin:0; padding:0; display:grid; gap:4px}
.plr-skirting a{color:#ead9b1; text-decoration:none}
.plr-skirting a:hover{text-decoration:underline}
.plr-colophon p{margin:8px 0 0; max-width:42ch}
.plr-fineprint{grid-column:1/-1; margin:0; padding-top:12px; border-top:1px solid rgba(199,156,79,.3); font-size:13.5px; color:#bfa983}
.plr-notfound{text-align:center; padding:60px var(--gut)}
.plr-notfound h1{font-size:34px; color:var(--brass-hi)}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
