/* Πραξεολογία — polished long-form template (REVIEW SAMPLE). Colours only via the site's CSS variables, so dark + light both work.
   Loaded only on sample pages (after fresh.css / fresh-light.css). Adds chrome around the article; never touches the words. */
html.pl-on{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html.pl-on{scroll-behavior:auto}}
.pl-ui-ico{width:1em;height:1em;flex:none}

/* ---------- header: series chip + quiet brass rule ---------- */
.ph .gm .pl-chip{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;border:1px solid color-mix(in srgb,var(--gold) 60%,transparent);border-radius:999px;padding:2px 10px}

/* ---------- metadata block ---------- */
.pl-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 1.6rem;margin:0 0 1.5rem;padding:1.15rem 0 1.2rem;border-top:1px solid var(--gb);border-bottom:1px solid var(--gb);font-family:var(--ui);position:relative}
.pl-meta::before{content:"";position:absolute;top:-1px;left:0;width:56px;height:1px;background:var(--gold)}
.pl-meta>div{min-width:0}.pl-meta .w2{grid-column:span 2}.pl-meta .w4{grid-column:1/-1}
.pl-meta dt{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin:0 0 .3rem}
.pl-meta dd{margin:0;font-size:.92rem;line-height:1.42;color:var(--ink);overflow-wrap:anywhere}.pl-meta dd i,.pl-meta dd small{color:var(--m);font-size:inherit}
.pl-meta dd small{display:block;font-size:.8rem;margin-top:.1rem}

/* ---------- actions ---------- */
.pl-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 1.6rem}
.pl-btn{display:inline-flex;align-items:center;gap:.5em;padding:.72rem 1.35rem;border-radius:999px;background:var(--gold);color:var(--deep)!important;font:700 .88rem/1 var(--ui);letter-spacing:.04em;text-decoration:none!important;border:1px solid var(--gold);cursor:pointer;transition:filter .2s,border-color .2s,color .2s,background .2s}
.pl-btn:hover{filter:brightness(1.08)}
.pl-btn.ghost{background:none;color:var(--ink)!important;border-color:var(--gb);font-weight:500;padding:.62rem 1.05rem;letter-spacing:.02em}.pl-btn.ghost:hover{border-color:var(--gold);color:var(--gold)!important;filter:none}
.pl-actions .pl-note-s{color:var(--m);font:400 .82rem/1.4 var(--ui);flex:1 1 100%;margin:-.1rem 0 0}
.pl-actions .pl-note-s a{color:var(--gold)}

/* ---------- series stepper (top) ---------- */
.pl-series{margin:0 0 1.5rem;padding:.95rem 1.15rem 1.05rem;border:1px solid var(--gb);border-radius:14px;background:var(--glass);font-family:var(--ui)}
.pl-series .lab{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}
.pl-series .nm{font-family:var(--disp);font-weight:700;font-size:1.04rem;line-height:1.3;margin:.25rem 0 .75rem;color:var(--ink)}
.pl-steps{display:flex;gap:6px;flex-wrap:wrap}
.pl-steps a{min-width:2.5rem;height:2.1rem;padding:0 .6rem;border:1px solid var(--gb);border-radius:999px;display:inline-grid;place-items:center;font:600 .82rem var(--disp);color:var(--ink);text-decoration:none!important;transition:border-color .2s,background .2s,color .2s}
.pl-steps a:hover{border-color:var(--gold);color:var(--gold)}
.pl-steps a[aria-current]{background:var(--gold);border-color:var(--gold);color:var(--deep);pointer-events:none}

/* ---------- in-page contents (collapsible, like the glossary) ---------- */
.pl-toc{border:1px solid var(--gb);border-radius:14px;background:var(--glass);margin:0 0 2.6rem;padding:0 1.25rem .8rem;font-family:var(--ui)}
.pl-toc>summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:.7rem;padding:.95rem 0 .6rem;font-family:var(--disp);font-size:1.12rem;font-weight:700;color:var(--ink)}
.pl-toc>summary::-webkit-details-marker{display:none}
.pl-toc>summary small{font:400 .8rem var(--ui);color:var(--m)}
.pl-toc>summary::after{content:"−";margin-left:auto;color:var(--gold);font-size:1.3rem;line-height:1;padding-left:1rem;align-self:center}.pl-toc:not([open])>summary::after{content:"+"}
.pl-toc:not([open]){padding-bottom:0}.pl-toc:not([open])>summary{padding-bottom:.95rem}
.pl-toc ol{list-style:none;margin:0;padding:0;counter-reset:plc}
.pl-toc li{counter-increment:plc;break-inside:avoid}
.pl-toc li a{display:grid;grid-template-columns:1fr auto;column-gap:1rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid var(--gb);color:var(--ink);text-decoration:none!important;font-size:.93rem;line-height:1.38;transition:color .2s}
.pl-toc li:last-child a{border-bottom:0}
.pl-toc li a small{color:var(--m);font-size:.74rem;white-space:nowrap}
.pl-toc li a:hover{color:var(--gold)}.pl-toc li a span{position:relative;padding-left:.95rem}.pl-toc li a span::before{content:"";position:absolute;left:0;top:.62em;width:.45rem;height:1px;background:var(--gold)}
.pl-toc.cols ol{columns:2 15rem;column-gap:2rem}

.pl-toc li.l3 a span{padding-left:1.9rem;font-size:.9em;color:var(--m)}.pl-toc li.l3 a span::before{left:.95rem;width:.3rem}.pl-toc li.l3 a:hover span{color:var(--gold)}
.pl-rail li.l3 a{padding-left:1.7rem;font-size:.76rem}.pl-sheet li.l3 a{padding-left:1.7rem;font-size:.86rem;color:var(--m)}
/* ---------- headings: anchors, copy-link, highlighted jump target ---------- */
.prose h2[id],.prose h3[id]{scroll-margin-top:88px;position:relative;border-radius:3px}
.pl-anchor{display:inline-flex;vertical-align:.1em;margin-left:.45em;width:1.15rem;height:1.15rem;align-items:center;justify-content:center;color:var(--gold)!important;opacity:0;border:0;background:none;padding:0;cursor:pointer;text-decoration:none!important;transition:opacity .2s;font-size:1rem}
.pl-anchor svg{width:100%;height:100%}
.prose h2:hover .pl-anchor,.prose h3:hover .pl-anchor,.pl-anchor:focus-visible{opacity:.85}
@media(hover:none){.pl-anchor{opacity:.5}}
.prose h2[id]:target,.prose h3[id]:target{animation:plflash 2.4s ease-out 1}
@keyframes plflash{0%,35%{box-shadow:-.45em 0 0 color-mix(in srgb,var(--gold) 20%,transparent),.45em 0 0 color-mix(in srgb,var(--gold) 20%,transparent);background:color-mix(in srgb,var(--gold) 20%,transparent)}100%{box-shadow:none;background:transparent}}
.prose a.pl-cl{text-decoration:none;color:inherit;border-bottom:1px solid color-mix(in srgb,var(--gold) 45%,transparent);transition:color .2s,border-color .2s}
.prose a.pl-cl:hover{color:var(--gold);border-color:var(--gold)}

/* ---------- footnotes: markers, notes, previews ---------- */
.prose a.pl-fnl{color:var(--gold);text-decoration:none;font-weight:600;font-size:.78em;vertical-align:super;line-height:0;padding:0 .08em;scroll-margin-top:110px;border-radius:2px}
.prose a.pl-fnl:hover{text-decoration:underline}
.prose p.pl-note{font-size:.88em;line-height:1.65;margin:0 0 .85em;padding-left:2.5em;text-indent:-2.5em;scroll-margin-top:96px;border-radius:3px;transition:background .4s}
.prose p.pl-note .pl-nn{color:var(--gold);font-weight:600;font-variant-numeric:tabular-nums}
.prose p.pl-note:target,.prose a.pl-fnl:target{background:color-mix(in srgb,var(--gold) 16%,transparent)}
.prose .fn:target,.prose sup.fn-ref a:target{background:color-mix(in srgb,var(--gold) 16%,transparent)}
.prose h2.pl-notes-h+p.pl-note{margin-top:0}
.pl-pop{position:absolute;z-index:80;width:min(420px,calc(100vw - 24px));padding:.95rem 1.1rem 1rem;border:1px solid var(--gb);border-top:2px solid var(--gold);border-radius:6px;background:var(--deep);color:var(--ink);box-shadow:0 22px 50px -22px rgba(0,0,0,.65);font:400 .88rem/1.6 var(--ui);opacity:0;transform:translateY(4px);transition:opacity .18s,transform .18s;pointer-events:none}
.pl-pop.on{opacity:1;transform:none;pointer-events:auto}
.pl-pop .ph-h{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin:0 0 .45rem;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}
.pl-pop .ph-b{max-height:11.5em;overflow:auto;overflow-wrap:anywhere}.pl-pop .ph-b p{margin:0 0 .5em}.pl-pop .ph-b p:last-child{margin:0}
.pl-pop .ph-f{margin-top:.6rem}.pl-pop .ph-f a{color:var(--gold);text-decoration:none;font-size:.8rem;font-weight:600}.pl-pop .ph-f a:hover{text-decoration:underline}
.pl-pop .ph-x{display:none;border:0;background:none;color:var(--m);font-size:1.2rem;line-height:1;cursor:pointer;padding:0 .2rem}
@media(hover:none),(max-width:720px){
 .pl-pop{position:fixed;left:10px!important;right:10px;bottom:10px;top:auto!important;width:auto;transform:translateY(14px)}.pl-pop.on{transform:none}.pl-pop .ph-x{display:block}
}

/* ---------- blockquotes & epigraphs ---------- */
.prose blockquote{position:relative;margin:2.3em 0;padding:1.05em 1.3em 1.05em 3.1em;border-left:0;border-radius:0 6px 6px 0;background:color-mix(in srgb,var(--gold) 6%,transparent);font-family:var(--disp);font-style:italic;font-size:.97em;line-height:1.7}
.prose blockquote::before{content:"“";position:absolute;left:.18em;top:-.08em;font:italic 700 3.6em/1 var(--disp);color:var(--gold);opacity:.9}
.prose blockquote::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold)}
.prose blockquote p{margin:0 0 .8em}.prose blockquote p:last-child{margin-bottom:0}
.prose blockquote cite,.prose blockquote footer{display:block;margin-top:.7em;font:400 .82rem var(--ui);font-style:normal;color:var(--m);letter-spacing:.03em}

/* ---------- end of article ---------- */
.pl-end{width:min(728px,92vw);margin:2.2rem auto 0;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;font-family:var(--ui)}
.pl-sbox,.pl-sn{width:min(728px,92vw);margin-left:auto;margin-right:auto}
.pl-sbox{margin-top:7vh;font-family:var(--ui)}
.pl-sbox .lab{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}
.pl-sbox h2{font-family:var(--disp);font-weight:700;font-size:1.45rem;line-height:1.25;margin:.3rem 0 .3rem;color:var(--ink)}
.pl-sbox>p{margin:0 0 1rem;color:var(--m);font-size:.88rem}
.pl-sbox ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--gb)}
.pl-sbox li a{display:grid;grid-template-columns:5.2rem 1fr auto;gap:.2rem 1rem;align-items:baseline;padding:.85rem .6rem .85rem 0;border-bottom:1px solid var(--gb);color:var(--ink);text-decoration:none;transition:color .2s,background .2s}
.pl-sbox li a:hover{color:var(--gold)}
.pl-sbox .pt{font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.pl-sbox .tt{font-family:var(--disp);font-weight:600;font-size:1.02rem;line-height:1.35}
.pl-sbox .mm{font-size:.76rem;color:var(--m);white-space:nowrap}
.pl-sbox li.cur a{background:color-mix(in srgb,var(--gold) 9%,transparent);padding-left:.8rem;margin-left:-.8rem;padding-right:.8rem;margin-right:-.8rem;box-shadow:inset 3px 0 0 var(--gold);pointer-events:none}
.pl-sbox li.cur .mm::after{content:" · εδώ"}
.pl-sn{margin-top:1.6rem}

/* ---------- side rail (wide screens) ---------- */
.pl-rail{display:none;position:fixed;top:104px;left:calc(50% - 364px - 270px);width:230px;max-height:calc(100vh - 140px);overflow:auto;scrollbar-width:thin;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;font-family:var(--ui);z-index:30}
@media(min-width:1330px){.pl-rail{display:block}}
.pl-rail.on{opacity:1;visibility:visible}
.pl-rail .rh{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin:0 0 .7rem}
.pl-rail ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--gb)}
.pl-rail a{display:block;padding:.36rem 0 .36rem .9rem;margin-left:-1px;border-left:2px solid transparent;font-size:.8rem;line-height:1.38;color:var(--m);text-decoration:none;transition:color .2s,border-color .2s}
.pl-rail a:hover{color:var(--ink)}.pl-rail a.on{color:var(--ink);border-left-color:var(--gold);font-weight:600}
.pl-rail .rp{margin:1.1rem 0 0;padding-top:.8rem;border-top:1px solid var(--gb);font-size:.76rem;color:var(--m);line-height:1.6}
.pl-rail .rp b{color:var(--ink);font-weight:600}
.pl-rail .rbar{height:2px;background:var(--gb);margin:.45rem 0 .6rem;position:relative}.pl-rail .rbar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--gold)}
.pl-rail .rp a{display:inline;border:0;padding:0;margin:0;color:var(--gold);font-size:.76rem}

/* ---------- floating buttons + contents sheet (mobile / narrow desktop) ---------- */
.pl-fab{position:fixed;z-index:55;display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--gb);background:color-mix(in srgb,var(--deep) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);box-shadow:0 8px 24px -12px rgba(0,0,0,.5);cursor:pointer;font:500 .82rem var(--ui);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s,border-color .2s}
.pl-fab.on{opacity:1;visibility:visible;transform:none}.pl-fab:hover{border-color:var(--gold);color:var(--gold)}
.pl-fab svg{width:16px;height:16px;color:var(--gold)}
.pl-fab-toc{left:14px;bottom:max(16px,env(safe-area-inset-bottom));height:44px;padding:0 16px 0 13px;border-radius:999px}
.pl-fab-top{right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;justify-content:center}
@media(min-width:1330px){.pl-fab-toc{display:none}}
@media(max-width:720px){.pl-fab-top{right:14px;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 58px);width:40px;height:40px}}
.pl-sheet{position:fixed;inset:0;z-index:90;visibility:hidden;font-family:var(--ui)}
.pl-sheet.on{visibility:visible}
.pl-sheet .bd{position:absolute;inset:0;background:rgba(0,0,0,.5);opacity:0;transition:opacity .25s}.pl-sheet.on .bd{opacity:1}
.pl-sheet .pn2{position:absolute;left:14px;bottom:14px;width:min(430px,calc(100vw - 28px));max-height:min(74vh,640px);overflow:auto;padding:1rem 1.2rem 1.1rem;border:1px solid var(--gb);border-top:2px solid var(--gold);border-radius:12px;background:var(--deep);box-shadow:0 30px 60px -24px rgba(0,0,0,.7);transform:translateY(16px);opacity:0;transition:transform .25s,opacity .25s}
.pl-sheet.on .pn2{transform:none;opacity:1}
.pl-sheet .sh2{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-family:var(--disp);font-weight:700;font-size:1.08rem;color:var(--ink)}
.pl-sheet .sh2 button{border:0;background:none;color:var(--m);font-size:1.5rem;line-height:1;cursor:pointer}
.pl-sheet ol{list-style:none;margin:0;padding:0}
.pl-sheet a{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0 .6rem .8rem;border-top:1px solid var(--gb);border-left:2px solid transparent;color:var(--ink);text-decoration:none;font-size:.92rem;line-height:1.38}
.pl-sheet li:first-child a{border-top:0}.pl-sheet a.on{border-left-color:var(--gold);font-weight:600}.pl-sheet a small{color:var(--m);white-space:nowrap;font-size:.74rem}
.pl-toast{position:fixed;left:50%;bottom:28px;z-index:100;transform:translate(-50%,12px);padding:.6rem 1.1rem;border-radius:999px;background:var(--gold);color:var(--deep);font:600 .84rem var(--ui);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.pl-toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- mobile ---------- */
@media(max-width:720px){
 .pl-meta{grid-template-columns:1fr 1fr;gap:.9rem 1.2rem}.pl-meta .w2{grid-column:1/-1}
 .pl-toc.cols ol{columns:1}
 .pl-toc{padding:0 1rem .6rem}
 .pl-btn{padding:.7rem 1.15rem}
 .pl-actions .pl-btn.main{flex:1 1 100%;justify-content:center}
 .pl-sbox li a{grid-template-columns:1fr auto;padding-right:0}.pl-sbox .pt{grid-column:1/-1}.pl-sbox .tt{grid-column:1/-1}.pl-sbox .mm{grid-column:1/-1}
 .pl-sbox li.cur a{margin-left:-.5rem;margin-right:-.5rem;padding-left:.8rem}
 .prose p.pl-note{padding-left:2.3em;text-indent:-2.3em}
}

/* ---------- print ---------- */
@media print{
 :root{--deep:#fff;--ink:#000;--rink:#000;--m:#444;--gold:#6b4e10;--gb:#c9c2b4;--glass:transparent;--card:transparent;--navbg:#fff}
 html,body{background:#fff!important;color:#000!important}body::before,.marble{display:none!important}
 .nav,.bar,.pl-rail,.pl-fab,.pl-sheet,.pl-pop,.pl-toast,.pl-actions,.pl-toc,.pl-series,.pl-end,.pl-anchor,.rtools,.pn,.pl-sbox,.pl-sn,.sec,.foot,.phbg,.ph .by,.ph .btn{display:none!important}
 .ph{min-height:0!important;margin:0!important;display:block}.phin{padding:0 0 .6cm!important;text-align:left;width:auto}.phin h1{font-size:22pt!important;color:#000!important;text-shadow:none!important}
 .phin .sub,.phin .gth,.ph .gm{color:#333!important}.phin .gm{justify-content:flex-start}
 .reader,.reader.light{width:auto!important;margin:0!important;padding:0!important;background:none!important}
 .pl-meta{border-color:#999;margin-bottom:.6cm;grid-template-columns:repeat(3,1fr)}.pl-meta .w2{grid-column:span 2}
 .prose{font-size:11pt!important;line-height:1.55!important;color:#000}
 .prose h2,.prose h3,.prose h4{color:#000!important;break-after:avoid;page-break-after:avoid}
 .prose p{orphans:3;widows:3}.prose p.dc::first-letter{color:#000}
 .prose a{color:#000!important;text-decoration:none!important}.prose a[href^="http"]:not(.pl-anchor)::after{content:" (" attr(href) ")";font-size:.78em;color:#444;word-break:break-all}
 .prose a.pl-fnl::after,.prose sup.fn-ref a::after{content:none!important}
 .prose p.pl-note,.prose .fn,.prose blockquote{break-inside:avoid;page-break-inside:avoid}
 .prose::after{display:none}.prose blockquote{background:none}
 .prose h2::before{background:#000}
}
@media(min-width:721px) and (max-width:900px){.rtools{margin-right:0!important}}

/* Substack <sup>N</sup> markers linked by polish.py: the sup already raises the number */
.prose sup a.pl-fnl{vertical-align:baseline;font-size:1em}
/* per-slug epigraph block (post-meta.json "epigraph"), styled after the private book's epigraph page */
.prose .pl-epi{position:relative;margin:3.2rem auto 3.4rem;padding:2.8rem clamp(1rem,5vw,3rem) 2.6rem;text-align:center;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--gold) 6%,transparent),transparent 68%)}
.prose .pl-epi::before,.prose .pl-epi::after{content:"\25C6";position:absolute;left:15%;right:15%;height:1rem;line-height:1rem;font-size:.55rem;color:var(--gold);text-align:center;background:linear-gradient(to right,transparent,color-mix(in srgb,var(--gold) 70%,transparent) 44%,transparent 46%,transparent 54%,color-mix(in srgb,var(--gold) 70%,transparent) 56%,transparent) center/100% 1px no-repeat}
.prose .pl-epi::before{top:-.5rem}.prose .pl-epi::after{bottom:-.5rem}
.prose .pl-epi h2.pl-epi-t{margin:0 0 1.5rem;font-size:clamp(1.75rem,4.6vw,2.35rem);font-weight:500;letter-spacing:.01em;line-height:1.15}
.prose .pl-epi h2.pl-epi-t::before{display:none}
.prose .pl-epi h2.pl-epi-t .pl-anchor{position:absolute;margin-left:.35em}
.prose .pl-epi p.pl-epi-q{max-width:31em;margin:0 auto 1.25rem;font-size:1.08em;line-height:1.7}
.prose .pl-epi p.pl-epi-q em{font-style:italic}.prose .pl-epi h2.pl-epi-t strong{font-weight:inherit}
.prose .pl-epi p.pl-epi-a{margin:0;font:600 .74rem/1.4 var(--ui);letter-spacing:.14em;color:var(--gold)}
@media (max-width:600px){.prose .pl-epi{margin:2.4rem 0 2.6rem;padding:2.3rem .4rem 2.1rem}.prose .pl-epi p.pl-epi-q{font-size:1em}}
@media print{.prose .pl-epi{background:none}}
