:root{--paper:#f3f0e9;--card:#fff;--ink:#1c2430;--muted:#66707d;--line:#ddd8cc;--navy:#1f2c3b;--navy-2:#2b3b4e;--yellow:#f7d33f;--link:#1d5fa8;--link-h:#0f3f78;
--logo:"Patrick Hand","Comic Sans MS",cursive;--serif:"Source Serif 4",Georgia,serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--col:42rem}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.7 var(--serif);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--link);text-underline-offset:3px}a:hover{color:var(--link-h)}
.wrap{width:min(100% - 2rem,64rem);margin-inline:auto}
.read{width:min(100% - 2rem,var(--col));margin-inline:auto}
.wrap-post{width:min(100% - 1.5rem,var(--col));margin:1.5rem auto 2.5rem;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1.4rem clamp(1rem,4vw,2rem) 2rem;box-shadow:0 1px 0 rgba(0,0,0,.03)}
.skip{position:absolute;left:-999px;top:0;background:var(--yellow);color:#000;padding:.5rem 1rem;z-index:100}.skip:focus{left:0}
h1,h2,h3{font-family:var(--logo);font-weight:400;line-height:1.15;color:var(--navy);text-wrap:balance}
h1{font-size:clamp(1.9rem,4.5vw,2.6rem);margin:0 0 .3em}
h2{font-size:1.6rem;margin:1.6em 0 .5em}
p{margin:0 0 1.1em;text-wrap:pretty}
/* header */
.site-header{background:var(--navy);border-bottom:4px solid var(--yellow);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:60px}
.logo{font:400 1.9rem/1 var(--logo);letter-spacing:.06em;color:#fff;text-decoration:none;white-space:nowrap}.logo span{color:var(--yellow)}.logo:hover{color:#fff}
.nav-list{display:flex;gap:.2rem 1.4rem;list-style:none;margin:0;padding:0;align-items:center;flex-wrap:wrap}
.nav-list a{font:500 .82rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#dfe6ee;text-decoration:none;padding:.7rem 0;display:inline-block;border-bottom:2px solid transparent}
.nav-list a:hover,.nav-list a[aria-current]{color:#fff;border-color:var(--yellow)}
.nav-list .ext a{color:#9fb0c3}
.nav-toggle{display:none;background:none;border:1px solid #4b5d72;color:#fff;font:500 .8rem var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:.5rem .8rem;border-radius:4px;cursor:pointer}
@media (max-width:820px){.nav-toggle{display:block}.site-header nav{position:absolute;left:0;right:0;top:100%;background:var(--navy);border-bottom:4px solid var(--yellow)}
.nav-list{display:none;flex-direction:column;align-items:flex-start;padding:.4rem 1rem 1rem;gap:0}.nav-list.open{display:flex}.nav-list a{padding:.8rem 0;width:100%}}
/* intro */
.intro{text-align:center;color:var(--muted);font:400 .95rem/1.5 var(--sans);padding:1.1rem 0 0;max-width:40rem}
/* post */
.post-head{text-align:center;margin-bottom:.4rem}
.post-head h1 a{color:inherit;text-decoration:none}
.kicker{font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem}
.date{font:400 .88rem var(--sans);color:var(--muted);margin:0}
.pager{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap;margin:1rem 0}
.pager a,.pager span{font:500 .8rem/1 var(--sans);letter-spacing:.04em;padding:.7rem .95rem;border-radius:4px;background:var(--navy);color:#fff;text-decoration:none;min-width:5.2rem;text-align:center}
.pager a:hover{background:var(--navy-2);color:#fff}
.pager .rand{background:var(--yellow);color:#111}.pager .rand:hover{background:#ffe066;color:#111}
.pager .off{background:#e7e3d9;color:#a7a293}
.entry{overflow-wrap:break-word}
.entry img{display:block;margin:1rem auto;border-radius:2px}
.entry a img{margin-inline:auto}
.entry blockquote{margin:1.2rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--yellow);color:#333}
.entry ul,.entry ol{padding-left:1.3rem}
.entry .cap{text-align:center;font:400 .9rem/1.5 var(--sans);color:var(--muted);margin:1rem auto}
.entry table{max-width:100%}
.video{position:relative;aspect-ratio:16/9;margin:1.3rem 0;background:#000}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.entry strong a[href$="/themes/"]{font-family:var(--sans)}
/* home extras */
.more{padding:1rem 0 3rem}
.more-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem}
.more-head h2{margin:0}
.more-head a{font:500 .85rem var(--sans)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.9rem}
.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--ink)}
.tile img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.tile .noimg{display:grid;place-items:center;aspect-ratio:1;background:var(--navy);color:var(--yellow);font:400 2.2rem var(--logo)}
.tile span:last-child{display:block;padding:.55rem .7rem .7rem;font:500 .85rem/1.3 var(--sans)}
.tile:hover{border-color:var(--navy)}
/* pages */
.page{padding:2rem 0 3rem;background:transparent}
.page.center{text-align:center}
.lead{font-size:1.15rem;color:var(--muted)}
.crumbs{font:500 .8rem var(--sans);margin:0 0 .5rem}
.plist{list-style:none;margin:1rem 0 2rem;padding:0}
.plist li{padding:.3rem 0;border-bottom:1px solid var(--line);line-height:1.4}
.plist .d{display:inline-block;min-width:3.3rem;font:400 .82rem var(--sans);color:var(--muted)}
.plist a{text-decoration:none}.plist a:hover{text-decoration:underline}
h2 small{font:400 .85rem var(--sans);color:var(--muted);margin-left:.4rem}
#main section[id]{scroll-margin-top:5rem}
.chips{list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-wrap:wrap;gap:.5rem}
.chips a{display:inline-block;padding:.45rem .85rem;background:var(--card);border:1px solid var(--line);border-radius:999px;font:500 .9rem var(--sans);text-decoration:none;color:var(--navy)}
.chips a:hover{background:var(--navy);color:#fff}
.chips.small a{font-size:.82rem;padding:.3rem .7rem}.chips span{font:400 .75rem var(--sans);color:var(--muted);margin-left:.2rem}
.btn{display:inline-block;padding:.8rem 1.2rem;background:var(--navy);color:#fff;border-radius:4px;font:500 .85rem var(--sans);text-decoration:none;margin:.2rem}
.btn:hover{background:var(--navy-2);color:#fff}
/* footer */
.site-footer{background:var(--navy);color:#b9c6d4;padding:2rem 0 2.5rem;margin-top:2rem;font:400 .9rem/1.6 var(--sans)}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.2rem}.foot p{margin:0}.foot a{color:#fff}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.filter{width:100%;padding:.8rem 1rem;font:400 1rem var(--sans);border:1px solid var(--line);border-radius:6px;background:#fff}
.filter:focus{outline:2px solid var(--yellow);border-color:var(--navy)}
.count{font:400 .85rem var(--sans);color:var(--muted);margin:-.4rem 0 .6rem}
.tagline{margin:0;background:#fff8d6;border-bottom:1px solid #eadf9b;text-align:center;padding:.55rem 1rem;font:400 .92rem/1.4 var(--sans);color:#4a4523}
.tagline a{color:#4a4523;font-weight:600}
.plist a,.tile span:last-child,.entry a{overflow-wrap:anywhere}
.plist li{overflow-wrap:anywhere}
.entry img.portrait{float:right;width:min(15rem,42%);aspect-ratio:1/1;object-fit:cover;margin:.3rem 0 1rem 1.6rem;border-radius:50%;shape-outside:circle(50%)}
@media (max-width:520px){.entry img.portrait{width:min(11rem,50%);margin-left:1rem}}
.page .entry::after{content:"";display:block;clear:both}
.entry .missing-img{text-wrap:balance;text-align:center;font:400 1.05rem/1.5 var(--hand,var(--sans));color:var(--muted);border:2px dashed #cfc9b8;border-radius:8px;padding:1.6rem 1rem;margin:1.2rem auto;max-width:34rem}
.entry img.alignright{float:right;max-width:42%;height:auto;margin:.3rem 0 1rem 1.6rem}
.entry img.alignleft{float:left;max-width:42%;height:auto;margin:.3rem 1.6rem 1rem 0}
.entry img.aligncenter{max-width:100%;height:auto}
@media (max-width:520px){.entry img.alignright{max-width:50%;margin-left:1rem}.entry img.alignleft{max-width:50%;margin-right:1rem}}
.entry .missing-img{display:none}

.series{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:center;margin:1rem 0;padding:.6rem .8rem;border:2px solid var(--navy);border-radius:6px;background:var(--card)}
.series .slabel{flex:1 0 100%;text-align:center;font-family:"Patrick Hand","Comic Sans MS",cursive;font-weight:400;font-size:1.25rem;line-height:1.1;color:var(--navy)}
.series a,.series .off{padding:.45rem .8rem;border-radius:4px;text-decoration:none;font-size:.95rem}
.series a.sprev,.series a.snext{background:var(--navy);color:#fff}
.series a.sall{border:1px solid var(--navy);color:var(--navy)}
.series .off{color:var(--muted);background:var(--line)}
.series a:hover,.series a:focus-visible{opacity:.85}

/* enlarge cue (set by site.js on linked images that open bigger than shown) */
.entry a.zoom{display:block;width:fit-content;max-width:100%;margin:1rem auto;position:relative;cursor:zoom-in}
.entry a.zoom img{margin:0;transition:opacity .2s ease,transform .2s ease}
.entry a.zoom:hover img,.entry a.zoom:focus-visible img{opacity:.92;transform:translateY(-3px)}
.entry a.zoom::after{content:"";position:absolute;right:.55rem;bottom:.55rem;width:2rem;height:2rem;border-radius:50%;background:rgba(31,44,59,.82) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='5.5'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center/70% no-repeat;opacity:0;transition:opacity .2s ease;pointer-events:none}
.entry a.zoom:hover::after,.entry a.zoom:focus-visible::after{opacity:1}
.entry a.alignright{float:right;display:block;max-width:42%;margin:.3rem 0 1rem 1.6rem;position:relative;cursor:zoom-in}
.entry a.alignleft{float:left;display:block;max-width:42%;margin:.3rem 1.6rem 1rem 0;position:relative;cursor:zoom-in}
.entry a.alignright img,.entry a.alignleft img{float:none;max-width:100%;height:auto;margin:0;display:block}
@media (max-width:520px){.entry a.alignright,.entry a.alignleft{max-width:50%}.entry a.alignright{margin-left:1rem}.entry a.alignleft{margin-right:1rem}}

@media (hover:none){.entry a.zoom::after{opacity:.9}}
@media (prefers-reduced-motion:reduce){.entry a.zoom img,.entry a.zoom::after{transition:none}.entry a.zoom:hover img,.entry a.zoom:focus-visible img{transform:none}}

/* lightbox */
html.lb-open{overflow:hidden}
.lb{position:fixed;inset:0;z-index:200;background:rgba(10,15,22,.93);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem 1rem 0;animation:lbin .15s ease}
.lb[hidden]{display:none}
.lb-img{max-width:96vw;max-height:calc(100vh - 6.5rem);width:auto;height:auto;object-fit:contain;background:#fff;box-shadow:0 8px 40px rgba(0,0,0,.5);touch-action:pan-y pinch-zoom;margin:0}
.lb-x{position:absolute;top:.6rem;right:.8rem;width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font:400 1.8rem/1 var(--sans);cursor:pointer}
.lb-x:hover,.lb-x:focus-visible{background:rgba(255,255,255,.3)}
.lb-bar{display:flex;gap:.6rem;align-items:center;justify-content:center;flex-wrap:wrap;padding:1rem 0;min-height:5rem}
.lb-bar a,.lb-bar button{font:600 .95rem/1 var(--sans);padding:.7rem 1rem;border-radius:5px;border:0;background:var(--navy);color:#fff;text-decoration:none;cursor:pointer}
.lb-bar .lb-c{background:var(--yellow);color:var(--navy)}
.lb-bar a:hover,.lb-bar a:focus-visible,.lb-bar button:hover,.lb-bar button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.lb-bar a.off{background:rgba(255,255,255,.12);color:rgba(255,255,255,.45);cursor:default;pointer-events:none}
.lb-stage{position:relative;display:inline-block;max-width:96vw;line-height:0}
.lb-stage .lb-img{display:block}
.lb-card{position:absolute;left:.6rem;right:.6rem;bottom:.6rem;max-height:min(33vh,60%);overflow:auto;box-sizing:border-box;padding:.8rem 1rem;background:rgba(255,253,243,.98);color:#3a372c;border:2px dotted #9a937c;border-radius:6px;font:400 .95rem/1.5 var(--sans);text-align:left;line-height:1.5;box-shadow:0 4px 18px rgba(0,0,0,.35)}
.lb-card[hidden]{display:none}
.lb-card .lb-h{display:block;font-weight:600;margin-bottom:.15rem}
.lb-card a{color:var(--navy);text-decoration:underline}
.lb-bar [hidden]{display:none!important}
.lb-bar .lb-i{width:2.7rem;height:2.7rem;padding:0;border-radius:50%;background:#fff;color:var(--navy);font:italic 700 1.25rem/1 Georgia,"Times New Roman",serif}
.lb-bar .lb-i[aria-expanded="true"]{background:var(--yellow)}
.lb-bar .lb-ar{font-size:1.1em}
.lb-bar .lb-p .lb-ar{margin-right:.4em}
.lb-bar .lb-n .lb-ar{margin-left:.4em}
@media (pointer:coarse){
  .lb-bar{width:100%;max-width:34rem;flex-wrap:nowrap;gap:.5rem;padding:.7rem 0}
  .lb-bar .lb-p,.lb-bar .lb-n{flex:1 1 0;min-height:3.6rem;display:flex;align-items:center;justify-content:center}
  .lb-bar .lb-t{display:none}
  .lb-bar .lb-ar{font-size:2.4rem;line-height:1}
  .lb-bar .lb-c{min-height:3.6rem}
  .lb-bar .lb-i{width:3.6rem;height:3.6rem}
}
.lb-bar .lb-i{transition:transform .15s ease,background .15s ease}
.lb-bar .lb-i:hover,.lb-bar .lb-i:focus-visible{transform:scale(1.12)}
.lb-bar .lb-i.lb-nudge{animation:lbnudge .75s ease-out 3}
@keyframes lbnudge{0%{box-shadow:0 0 0 0 rgba(247,211,63,.95);transform:scale(1)}40%{transform:scale(1.2)}100%{box-shadow:0 0 0 1rem rgba(247,211,63,0);transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.lb-bar .lb-i,.lb-bar .lb-i:hover{transition:none;transform:none}.lb-bar .lb-i.lb-nudge{animation:none;box-shadow:0 0 0 3px var(--yellow)}}
@keyframes lbin{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.lb{animation:none}}

/* themes page: alphabetical multi-column lists */
.cols{list-style:none;margin:.5rem 0 2rem;padding:0;columns:3 14rem;column-gap:2rem}
.cols li{break-inside:avoid;padding:.3rem 0;line-height:1.35}
.cols span{color:var(--muted);font-size:.85em;margin-left:.2rem}

.tiles .tile.x{display:none}

/* welcome box (welcome, news, announcements) */
.welcome-boxes{width:min(100% - 2rem,64rem);margin:1.5rem auto 0;display:grid;grid-template-columns:1fr 1fr;gap:.9rem;align-items:stretch}
@media(max-width:40rem){.welcome-boxes{grid-template-columns:1fr}}
.welcome-box{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:10px;padding:.9rem clamp(1rem,4vw,1.6rem);font:400 .98rem/1.6 var(--sans);color:var(--ink);box-sizing:border-box}
.welcome-box p{margin:.45rem 0}
.welcome-box a{color:var(--link)}
.welcome-box h2{margin:0 0 .35rem;font-size:1.6rem}
.welcome-box h2:not(:first-child){margin-top:1.1rem}
/* featured theme block on the Themes page */
.featured-theme{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:10px;padding:.9rem clamp(1rem,4vw,1.6rem);margin:1rem 0 1.4rem}
.featured-theme h2{margin:0 0 .35rem;font-size:1.6rem}
.featured-theme p{margin:.4rem 0}
.more-themes{text-align:center;font:400 .95rem/1.6 var(--sans);color:var(--muted);margin:1.4rem auto 0;max-width:40rem}.more-themes span{font-weight:600;color:var(--ink)}
.post-note{text-wrap:balance;text-align:center;font:italic 400 .9rem/1.5 var(--sans);color:var(--muted);position:relative;margin:2.8rem auto 0;max-width:36rem;border:2px dotted #9a937c;border-radius:6px;padding:1.6rem 1rem .7rem}
.post-note::before{content:"i";position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:1.7rem;height:1.7rem;border-radius:50%;background:var(--navy);color:var(--yellow);font:italic 700 1rem/1.7rem Georgia,"Times New Roman",serif;text-align:center;box-shadow:0 0 0 6px var(--paper)}
.list-cols .plist{column-count:2;column-gap:2.2rem}.list-cols .plist li{break-inside:avoid}@media (max-width:700px){.list-cols .plist{column-count:1}}


.entry .missing-img.show{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;min-height:9.5rem;font-style:normal}
.entry .mi-label{display:inline-flex;align-items:center;gap:.4rem;font:600 .72rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#918b78}
.entry .mi-label::before{content:"";width:1.05rem;height:1.05rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23918b78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2.5'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='M21 16l-5-5-8 8'/%3E%3C/svg%3E") center/contain no-repeat}
.entry .mi-text{max-width:26rem}
.entry .stars{display:block;width:max-content;font-size:1.15rem;line-height:1;letter-spacing:2px;margin:.9rem 0 .3rem;background:linear-gradient(90deg,#e47911 var(--p),#d9d4c4 var(--p));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

.more-themes,.entry .cap,.intro,.tagline,.page.center{text-wrap:balance}
.more-themes a{white-space:nowrap}

.series .salso{flex:1 0 100%;font-size:.85rem;color:var(--muted);text-align:center;text-wrap:balance;line-height:1.5}
.series .salso a{padding:0;border-radius:0;font-size:inherit;color:var(--navy);text-decoration:underline}
.more-themes a.on{font-weight:600;text-decoration:none;color:var(--navy)}

.explainer{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:10px;padding:.9rem clamp(1rem,4vw,1.6rem);margin:1.4rem 0}
.explainer .entry p:first-child{margin-top:.2rem}
.explainer .entry p:last-child{margin-bottom:.2rem}
h2.browse{margin-top:2rem}
.series .sbit{display:inline-block;max-width:100%;margin:0 .7rem}
.explainer h2{margin:0 0 .35rem;font-size:1.6rem}
.explainer>p:first-child{margin-top:.2rem}
.explainer>p:last-child{margin-bottom:.2rem}
.explainer .skipnote{margin:.1rem 0 .8rem;font-size:.95rem}
#start{scroll-margin-top:1.2rem}
.featured-theme p+p{margin-top:.9rem}

/* one nav bar at a time */
[data-nav=theme] article nav.series:not([data-tbar]),[data-nav=all] nav.series{display:none}
.browse-row{flex:1 0 100%;margin:.4rem 0 1.2rem;font:400 .85rem/1.5 var(--sans);color:var(--muted);text-align:center}.browse-row a{color:var(--navy);text-decoration:underline}

hr.brk{margin:2.4rem 0;height:0;border:0;border-top:1px solid #cfc9b6}
h2.rc{margin:2.4rem 0 .6rem;padding-top:1.2rem;border-top:1px solid #cfc9b6}

.crumbs{margin:1rem 0 .6rem}.crumbs a.btn-themes{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font:500 .85rem/1 var(--sans);letter-spacing:.04em;padding:.7rem 1rem;border-radius:4px}.crumbs a.btn-themes:hover{background:var(--navy-2);color:#fff}

/* email signup (Follow page) */
.signup{margin:1rem 0 1.6rem;position:relative}
.signup label{display:block;font:500 .85rem var(--sans);margin-bottom:.35rem}
.signup-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:stretch}
.signup input[type=email]{flex:1 1 14rem;min-width:0;padding:.75rem .9rem;border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--ink);font:1rem var(--sans)}
.signup input[type=email]:focus{outline:2px solid var(--yellow);outline-offset:1px;border-color:var(--navy)}
.signup .btn{margin:0;border:0;cursor:pointer}
.signup-note{font:.8rem var(--sans);color:var(--muted);margin:.5rem 0 0}

.entry p.photo-row{text-align:center;margin:.2rem 0 .9rem}
.entry p.photo-row img{display:inline-block;vertical-align:bottom;margin:0}

.totop{position:fixed;right:1rem;bottom:1rem;z-index:40;width:2.8rem;height:2.8rem;border-radius:50%;border:2px solid var(--yellow);background:var(--navy);color:var(--yellow);font:700 1.4rem/1 var(--sans);cursor:pointer;display:grid;place-items:center;padding:0;opacity:0;transform:translateY(.6rem);transition:opacity .25s,transform .25s,background .15s;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.totop[hidden]{display:none}
.totop.on{opacity:1;transform:none}
.totop:hover,.totop:focus-visible{background:var(--navy-2)}
.totop:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
@media print{.totop{display:none}}
/* Standing rule (Zero, 2026-10-07): centred text is always balanced (even line lengths, no lone short last line) */
.intro,.post-head,.entry .cap,.page.center,.page.center p,.tagline,.series .slabel,.more-themes,.browse-row{text-wrap:balance}

/* Zero 2026-10-07: buttons end in an arrow that slides right on hover, same on every site (arrow added by the generator, _tools\btn_arrows.py; shared look with 3dpro.org) */
.btn{transition:background .12s}
.btn span{display:inline-block;margin-left:.35rem;transition:transform .12s}
.btn:hover span{transform:translateX(4px)}
@media (prefers-reduced-motion:reduce){.btn,.btn span{transition:none}.btn:hover span{transform:none}}
/* Zero 2026-10-07: the phone menu button shows the same "☰ Menu" on every site (symbol is decorative, added here so no page changes) */
.nav-toggle{white-space:nowrap}
.nav-toggle::before{content:"\2630\00a0";content:"\2630\00a0" / ""}

/* Zero 2026-10-07: keyboard focus ring on every link and button, same 3px outline and 3px offset as the other sites (site colour; yellow on the dark header and footer) */
:focus-visible{outline:3px solid var(--link);outline-offset:3px}
.site-header :focus-visible,.site-footer :focus-visible{outline-color:var(--yellow)}

/* Site name hover (Zero, 2026-10-07): the name grows 5% from its left edge and glows in the site accent; also on keyboard focus. Reduced motion: glow only. */
.logo{display:inline-block;transform-origin:left center;transition:transform .2s,text-shadow .2s}
.logo:hover,.logo:focus-visible{transform:scale(1.05);text-shadow:0 0 14px rgba(247,211,63,.6)}
@media (prefers-reduced-motion:reduce){.logo:hover,.logo:focus-visible{transform:none}}
