/* ═══════════════════════════════════════════════════════════════════════
   LET THE PHOTOGRAPHS THROUGH — the deep pages
   (every rule here is guarded by :has(... img) — a band with no photograph
    keeps its ink, because light words on a cream band are no words at all.
    Six pages have a photoless hero: workshop, start-here, diagnostic, and
    the ja / lt / india homepages.)
   Tony: "you added too much white."

   interiors-daylight.css lays a near-opaque card (.90 to .94 white) over
   every photographic band, washes each hero with a .90 white gradient, and
   brightens every photo by 1.1 on top of that. Ten assessors found the same
   thing on Human Resilience, Healing, Circle, Contact, Keynotes, Teaching,
   Teams and both Journal heroes: faces and blankets ghosting through white
   paper, heroes reduced to flat grey with a hard seam down the middle.

   The law: the photograph IS the background. The veil goes ON the picture,
   never a sheet of paper over it, and the words read light on top.

   :not(#_) lifts these to ID weight, because v2.css and interiors-daylight
   both style these bands by #id and would otherwise win.
   ═══════════════════════════════════════════════════════════════════════ */

/* 1. stop bleaching his photographs */
html.courage .photo-bg img:not(#_),
html.courage .hero__bg img:not(#_),
html.courage .state__bg img:not(#_){
  filter:saturate(1.04) contrast(1.02) !important}

/* 2. the hero: no white wash, a veil on the picture instead */
html.courage .hero:has(.hero__bg img):not(#_)::before{background:none !important}
html.courage .hero:has(.hero__bg img):not(#_) .hero__scrim{background:none !important}
html.courage .hero:has(.hero__bg img):not(#_) .hero__bg::after{
  content:"" !important;position:absolute !important;inset:0 !important;z-index:1 !important;
  background:linear-gradient(100deg,rgba(9,22,15,.74),rgba(9,22,15,.50) 56%,rgba(9,22,15,.68)) !important}
html.courage .hero:has(.hero__bg img):not(#_) .hero__in{
  position:relative;z-index:3;background:none !important;box-shadow:none !important}
html.courage .hero:has(.hero__bg img):not(#_) :is(h1,h2,.head){
  color:#FFFFFF !important;text-shadow:0 2px 24px rgba(5,14,9,.8) !important}
html.courage .hero:has(.hero__bg img):not(#_) :is(p,li,span,b,strong,em,i,div,small){
  color:#FBF6EA !important;text-shadow:0 1px 16px rgba(5,14,9,.75) !important}
html.courage .hero:has(.hero__bg img):not(#_) .eyebrow{
  color:#FFD75E !important;text-shadow:0 1px 16px rgba(5,14,9,.8) !important}

/* 3. the photographic bands: paper off, veil onto the picture */
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_),
html.courage .state:has(.state__bg img):not(#_),
html.courage .sec.close:has(.close__bg img):not(#_){
  background:transparent !important;background-image:none !important;
  position:relative;isolation:isolate}
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) .photo-bg,
html.courage .state:has(.state__bg img):not(#_) .state__bg,
html.courage .sec.close:has(.close__bg img):not(#_) .close__bg{
  z-index:0 !important;position:absolute !important;inset:0 !important;overflow:hidden !important}
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) .photo-bg img,
html.courage .state:has(.state__bg img):not(#_) .state__bg img,
html.courage .sec.close:has(.close__bg img):not(#_) .close__bg img{
  width:100% !important;height:100% !important;object-fit:cover !important;opacity:1 !important}
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) .photo-bg::after,
html.courage .state:has(.state__bg img):not(#_) .state__bg::after,
html.courage .sec.close:has(.close__bg img):not(#_) .close__bg::after{
  content:"" !important;position:absolute !important;inset:0 !important;z-index:1 !important;
  opacity:1 !important;
  background:linear-gradient(100deg,rgba(9,22,15,.74),rgba(9,22,15,.54) 54%,rgba(9,22,15,.70)) !important}

/* 4. the reading sits above it, on no paper at all */
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) :is(.wrap,.wrap--tight,.wrap--mid,.vwrap,.tex__i,.playlist,.essay,.sec__intro,.loom),
html.courage .state:has(.state__bg img):not(#_) .wrap,
html.courage .sec.close:has(.close__bg img):not(#_) .wrap{
  position:relative;z-index:2;
  background:none !important;background-color:transparent !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  box-shadow:none !important;border-radius:0 !important}

/* 5. every word in those bands reads light */
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) :is(p,li,span,b,strong,em,i,div,summary,figcaption,small,blockquote,td,th,dd,dt),
html.courage .state:has(.state__bg img):not(#_) :is(p,li,span,b,strong,em,i,div,small),
html.courage .sec.close:has(.close__bg img):not(#_) :is(p,li,span,b,strong,em,i,div,small){
  color:#FBF6EA !important;text-shadow:0 1px 16px rgba(5,14,9,.75) !important}
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) :is(h1,h2,h3,h4,.head,.step),
html.courage .state:has(.state__bg img):not(#_) :is(h1,h2,h3),
html.courage .sec.close:has(.close__bg img):not(#_) :is(h1,h2,h3){
  color:#FFFFFF !important;text-shadow:0 2px 24px rgba(5,14,9,.8) !important}
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) :is(.eyebrow,.trad__n,.gloss,.gloss em),
html.courage .state:has(.state__bg img):not(#_) .eyebrow,
html.courage .sec.close:has(.close__bg img):not(#_) .eyebrow{
  color:#FFD75E !important;text-shadow:0 1px 16px rgba(5,14,9,.8) !important}
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) :is(.say,.pull,.lead em,.num){color:#FFD75E !important}
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) a:not(.btn),
html.courage .hero:has(.hero__bg img):not(#_) a:not(.btn),
html.courage .state:has(.state__bg img):not(#_) a:not(.btn){color:#FFD75E !important}
/* a form or table on a photograph keeps its own paper, or it cannot be used */
html.courage .hasphoto:not(.hero):has(.photo-bg img):not(#_) :is(input,textarea,select),
html.courage .hero:has(.hero__bg img):not(#_) :is(input,textarea,select),
html.courage .state:has(.state__bg img):not(#_) :is(input,textarea,select){
  color:#1C2418 !important;background:#FFFFFF !important;text-shadow:none !important}

/* the ghost button on a photograph — every assessor found these vanishing:
   "Why this is a hopeful page", "See the retreat", "Read the argument",
   "The questions, in order". Mid-blue text in a mid-blue hairline box on a
   mid-tone picture is not a button. On a photograph it reads in cream. */
html.courage .hero:has(.hero__bg img):not(#_) .btn--ghost,
html.courage .hasphoto:has(.photo-bg img):not(#_) .btn--ghost,
html.courage .state:has(.state__bg img):not(#_) .btn--ghost,
html.courage .sec.close:has(.close__bg img):not(#_) .btn--ghost{
  color:#FFF6EA !important;border-color:rgba(255,246,234,.72) !important;
  background:rgba(9,22,15,.78) !important;
  text-shadow:0 1px 10px rgba(5,14,9,.7) !important}

/* cards that keep their own pale background inside a photographic band
   (.tile uses var(--bg-3), which is cream) would take the light text above
   and hand it a cream card -- cream on cream, measured 1.02:1 on the teams
   page. Inside a picture they become dark glass, so the photograph still
   shows and the words still read. */
html.courage .hasphoto:has(.photo-bg img):not(#_) :is(.tile,.card),
html.courage .state:has(.state__bg img):not(#_) :is(.tile,.card),
html.courage .sec.close:has(.close__bg img):not(#_) :is(.tile,.card){
  background:rgba(9,22,15,.70) !important;
  border-color:rgba(255,246,234,.26) !important;
  box-shadow:none !important;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
html.courage .hasphoto:has(.photo-bg img):not(#_) :is(.tile,.card) :is(h3,h4),
html.courage .state:has(.state__bg img):not(#_) :is(.tile,.card) :is(h3,h4){
  color:#FFFFFF !important}
html.courage .hasphoto:has(.photo-bg img):not(#_) :is(.tile,.card) :is(p,li,span),
html.courage .state:has(.state__bg img):not(#_) :is(.tile,.card) :is(p,li,span){
  color:#F2EADA !important}

/* ═══ CONTENT MUST NEVER DEPEND ON AN ANIMATION TO EXIST ═══════════════
   .rv starts at opacity:0 and is revealed when motion.js adds .rv-on to
   <html>. The fail-safe that shows it anyway lives in scrims.css -- which
   only the HOMEPAGE loads. On the other 161 pages, if motion.js throws, is
   blocked, or simply never runs, every .rv block stays invisible forever.
   That is whole sections of his deep pages, and the missing footers the
   assessors reported. The fail-safe belongs on every page. */
html:not(.rv-on) .rv{opacity:1 !important;transform:none !important}

/* ═══ THE PALE LABELS ══════════════════════════════════════════════════
   Measured across the site at 1.5 to 2.2 to 1: article datelines, "SHARE
   IT", "LAST REVIEWED", the journal stream years, the .gloss side captions
   and the sidebar labels. Pale sand on cream. They are small and
   letterspaced, which is exactly where contrast matters most. */
html.courage :is(.date,.dateline,.meta,.reads,.share-label,.reviewed,.years,.range,.gloss,.sidenote,.side-label,.stream__yr,.idx__lbl){
  color:#7A6224 !important}
html.courage .gloss em{color:#6E5A2C !important}

/* ═══ THE FOOTER ═══════════════════════════════════════════════════════
   I got this wrong earlier today and the page checker caught it. Both
   footers carry class .ftr, but they are not the same colour: the homepage
   footer is navy rgb(17,35,87) and every interior footer is cream
   rgb(238,244,233). I set the legal line to white for all of them, which
   put it at 1.12 to 1 on the cream ones -- invisible, the exact fault I
   spent the day removing. On these pages it reads dark. */
html.courage .ftr .brand__txt,html.courage footer .brand__txt{color:#17235C !important}
html.courage .ftr__legal,html.courage .ftr__legal *{color:#4A4740 !important}

/* ═══ THE TRANSLATION LINKS ════════════════════════════════════════════
   They sat flush against the left window edge with the first letter
   clipped, while the article column starts well inside. */
html.courage .xlang,html.courage .translations,html.courage .lang-links{
  max-width:min(var(--max,1280px),72ch);margin-inline:auto;
  padding-inline:clamp(1rem,4vw,3rem)}

/* ═══ TABLES WERE LOSING THEIR LAST COLUMN ════════════════════════════════
   Six reference tables -- the ownership audit and the four-capitals
   scorecard on tourism, three on business, one on healing -- overflow the
   panel they sit in. mobile-fix.css caps them at max-width:100%, so instead
   of scrolling they squeeze and the right-hand column is cut off mid-word:
   "Food is the highest-margin, lowest ___". Content was being lost, not
   just cramped. Let the table keep its own width and scroll inside its
   panel. */
html.courage :is(.wrap,.wrap--mid,.essay,.loom,.sec,.reg) table{
  display:block;max-width:100% !important;width:max-content;min-width:100%;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  border-collapse:collapse}
html.courage :is(.wrap,.wrap--mid,.essay,.loom,.sec,.reg) table td,
html.courage :is(.wrap,.wrap--mid,.essay,.loom,.sec,.reg) table th{
  white-space:normal;vertical-align:top;padding:.55rem .8rem}
html.courage table caption{
  text-align:left;font-size:.68rem;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:#7A6224;margin-bottom:.6rem}

/* ═══ HIS NAME ════════════════════════════════════════════════════════════
   In the big display face the macron on the u detaches and floats, so
   "Skrelūnas" reads as "Skreluñas" in headings while the body text is fine.
   Supplying Latin Extended from a face that has a proper precomposed ū,
   and only that range, leaves every other letter in the display font. */
@font-face{font-family:"LatExtFix";
  src:local("Palatino"),local("Palatino Linotype"),local("Georgia"),local("Times New Roman");
  unicode-range:U+0100-017F;font-display:swap}
html.courage :is(h1,h2,h3,h4,.head,.stage__title,.step,.scene__t,.amm__c b,.amm__f b){
  font-family:"LatExtFix",var(--display),Georgia,serif}

/* Japanese is never set in italic; the browser was slanting it by hand */
html[lang="ja"] :is(em,i,.say,.pull,blockquote),
:is([lang="ja"]) :is(em,i,.say,.pull,blockquote){font-style:normal !important}

/* ═══ THE MAGAZINE'S SUBSCRIBE BAND ════════════════════════════════════
   magazine-horse.css sets .mag-sub h2 to white on the deep blue band, and
   interiors-daylight.css loads after it with a stronger html.courage h2
   rule that paints every heading that same blue. Blue on blue: the page
   checker measured "Subscribe to the magazine." at 1.00 to 1 -- the
   heading of the magazine's only signup, invisible. :not(#_) gives this
   the weight to win. */
html.courage .mag-sub:not(#_) h2{color:#FFFFFF !important}
html.courage .mag-sub:not(#_) .mag-sub__k{color:#FFD75E !important}
html.courage .mag-sub:not(#_) .mag-sub__p{color:#D8E3F3 !important}
html.courage .mag-sub:not(#_) .mag-sub__fine{color:#B7C7DF !important}
html.courage .mag-sub:not(#_) .btn--primary{color:#15233C !important;background:#E0A400 !important}

/* ═══ THE BOOK BAND ════════════════════════════════════════════════════
   The page checker found "The Council Fire" and its whole description at
   1.01 to 1 on /community-resilience/ -- cream words on a cream band. The
   bookband carries a photograph in .bookband__bg, and it was the one
   photographic band my earlier pass did not cover, so the picture stayed
   buried and the light text had nothing dark to sit on. Same law as the
   rest: the photograph is the background. */
html.courage .bookband:has(.bookband__bg img):not(#_){
  background:transparent !important;background-image:none !important;
  position:relative;isolation:isolate}
html.courage .bookband:has(.bookband__bg img):not(#_) .bookband__bg{
  z-index:0 !important;position:absolute !important;inset:0 !important;overflow:hidden !important}
html.courage .bookband:has(.bookband__bg img):not(#_) .bookband__bg img{
  width:100% !important;height:100% !important;object-fit:cover !important;opacity:1 !important}
html.courage .bookband:has(.bookband__bg img):not(#_) .bookband__bg::after{
  content:"" !important;position:absolute !important;inset:0 !important;z-index:1 !important;
  background:linear-gradient(100deg,rgba(9,22,15,.76),rgba(9,22,15,.58) 54%,rgba(9,22,15,.72)) !important}
html.courage .bookband:has(.bookband__bg img):not(#_) .bookband__in{
  position:relative;z-index:2;background:none !important;box-shadow:none !important}
html.courage .bookband:has(.bookband__bg img):not(#_) :is(h2,h3,.head){
  color:#FFFFFF !important;text-shadow:0 2px 24px rgba(5,14,9,.8) !important}
html.courage .bookband:has(.bookband__bg img):not(#_) :is(p,li,span,b,strong,em,i,div){
  color:#FBF6EA !important;text-shadow:0 1px 16px rgba(5,14,9,.75) !important}
html.courage .bookband:has(.bookband__bg img):not(#_) :is(.eyebrow,.bookband__k){
  color:#FFD75E !important;text-shadow:0 1px 16px rgba(5,14,9,.8) !important}

/* ═══ THE GOLD ACCENT ══════════════════════════════════════════════════
   #E0A400 on the cream page measures 2.10 to 1, and it is used for the
   italic emphasis inside body copy -- "gratitude", "we need them both",
   "the set list is the map" -- where it bites hardest, as well as the
   stage numerals. A deeper gold keeps the colour and gains the contrast. */
html.courage :is(.say,.lead,p,li) i,
html.courage :is(.say,.lead,p,li) em,
html.courage .stage__num{color:#8A5A12 !important}

/* "中文 soon" is meant to read as not-yet, but it did not read at all. It
   appears in two places on two different backgrounds, and I darkened both
   at once -- which fixed the cream one and broke the green one, 1.71:1.
   The checker caught it in the same minute. They are separate now. */
html.courage .globebar .soon,
html.courage .globebar__ls .soon{color:rgba(255,246,234,.72) !important}   /* on the dark green bar */
html.courage .ftr .soon,
html.courage footer .soon{color:#6E6A5E !important}                        /* on the cream footer */

/* The footer's language row ends with a bare <span>中文 soon</span> -- no
   class at all -- inheriting a 40 percent wash that measured 1.48:1 on the
   cream footer. The .soon rule above never reached it. */
html.courage .ftr__langs span,
html.courage .ftr .ftr__langs span,
html.courage footer [class*="lang"] span{color:#6E6A5E !important}

/* ═══ THE GOLD IN HIS ARTICLES ═════════════════════════════════════════
   The page checker read all 67 journal articles. 59 were clean; the eight
   that were not all failed the same way, at 2.10:1 -- #E0A400 on the cream
   page. It lands on the two things a reader most needs to see: his pull
   quotes, and his links.

     "The chances of me and you sitting at this table are..."   one-in-a-trillion
     "Walk in beauty. Live long. Die wise."                     living-to-100
     books2read.com/u/4AEDdd                                    stone-breath, twice

   That last one is the buy link for the book. A deeper gold, the same one
   used for emphasis elsewhere, keeps the colour and gains the contrast.
   Gold on a photograph is handled above and is not touched by this. */
html.courage blockquote,
html.courage blockquote :is(p,span,b,strong,em,i,cite),
html.courage :is(article,.post,.essay,main) a:not(.btn):not([class*="button"]){
  color:#8A5A12 !important}
html.courage :is(article,.post,.essay,main) a:not(.btn):hover{color:#6E4710 !important}
