/* article.css for the WordPress staging site (10 Oct 2026). Built from the preview pages, nothing new invented.
   Wrap the single-post output in <main class="art"> and the post content in <div class="body"> (see README.md).
   Sections: 1) shared/base.css reset + article skeleton lines  2) look-c/style.css (verbatim)  3) shared/article.css (verbatim)
   4) inline template styles from the preview pages (Finally Friday callout, ol.paren lists, top featured image, colour var). */

/* 1) shared/base.css (lines 2-6, 54-59, 62-65, 81) */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;line-height:1.55}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit}
/* article page skeleton (Decision 4 order) */
.art{width:min(100% - 32px,680px);margin-inline:auto}
.art h1{margin:.2em 0 .3em}
.art .byline{font:14px/1.4 system-ui,sans-serif;opacity:.8;margin:0 0 18px}
.art figure{margin:0 0 20px}
.art figcaption{font:12px/1.4 system-ui,sans-serif;opacity:.75;margin-top:6px}
.body{font-size:18px}
.body h2{margin:1.6em 0 .4em;line-height:1.2}
.body h3{margin:1.2em 0 .3em}
.body .soft{font-style:italic}
.art figure img{width:100%;max-height:340px;object-fit:cover}

/* 2) look-c/style.css */
/* Direction C: Colour Blocks. Big bold type, warm colour blocks, mixed picture sizes, pill buttons. Per-site tweak: */
:root{--ink:#1d1c1a;--paper:#fbf7ee;--mustard:#e2b13c;--teal:#2b7a74;--orange:#d2602e;--cream:#f1e6cf}
body{background:var(--paper);color:var(--ink);font:17px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif}
h1,h2,h3{line-height:1.05;font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(30px,6vw,52px);margin:0 0 10px}
.kick{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px}
.goat-lane{background:var(--mustard);height:62px}
.topbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;padding:14px 0;font-size:15px;font-weight:600}
.topbar .socials{font-weight:400;opacity:.75}
.giant{display:block;text-decoration:none;font-weight:900;font-size:clamp(46px,11.6vw,150px);line-height:.88;letter-spacing:-.045em;margin-top:6px}
.giant.small{font-size:clamp(34px,7vw,64px)}
.sub{display:inline-block;margin:12px 0 0;padding:4px 12px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
section{padding:52px 0}
/* opener: mixed sizes */
.opener{padding-top:26px}
.op-grid{display:grid;gap:18px}
.op-main{margin:0}
.op-main img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px}
.op-side{display:grid;gap:14px;align-content:start}
.op-line{margin:0;background:var(--mustard);border-radius:22px;padding:22px;font-size:clamp(24px,3.6vw,34px);font-weight:800;line-height:1.1}
.op-ff{display:block;text-decoration:none;background:var(--teal);color:#fff;border-radius:22px;overflow:hidden}
.op-ff img{width:100%}
.op-ff span{display:block;padding:12px 16px;font-weight:700}
@media (min-width:900px){.op-grid{grid-template-columns:2fr 1fr}}
/* intro: two coloured cards, not the same size */
.intro-grid{display:grid;gap:18px}
.who{border-radius:22px;padding:26px}
.who-john{background:var(--teal);color:#fff}
.who-mel{background:var(--orange);color:#fff}
.who .pic{color:#fff}
.who-john .pic svg{width:min(260px,70%)}
.who-john .pic .note{color:#fff}
.who-mel .pic svg{width:100px}
.who blockquote{margin:0 0 12px;font-size:clamp(20px,2.8vw,26px);font-weight:700;line-height:1.25}
.who blockquote p{margin:0 0 8px}
.who cite{font-size:13px;font-weight:400;opacity:.9}
.mel-line{font-size:24px;font-weight:800;line-height:1.15;margin:0 0 14px}
.who a{display:inline-block;background:#fff;color:var(--ink);text-decoration:none;font-weight:700;font-size:14px;padding:9px 16px;border-radius:999px}
@media (min-width:820px){.intro-grid{grid-template-columns:1.7fr 1fr;align-items:stretch}}
/* Creative Life: Colossal-style spotlight row, mixed sizes */
.sec-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:22px}
.sec-head h2{margin:0}
.sec-head p{margin:0;flex:1 1 220px}
.pill{background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px}
.four{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}
.four li:first-child{grid-column:1/-1}
.four a{text-decoration:none;display:block}
.four img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:16px;margin-bottom:10px}
.four li:first-child img{aspect-ratio:16/9}
.four .kick{display:block;color:var(--orange)}
.four .h{display:block;font-size:19px;font-weight:800;line-height:1.15}
.four li:first-child .h{font-size:clamp(24px,3vw,32px)}
.four p{margin:6px 0 0;font-size:14px;opacity:.85}
@media (min-width:900px){.four{grid-template-columns:2fr 1fr 1fr 1fr;align-items:start}.four li:first-child{grid-column:auto}.four li:first-child img{aspect-ratio:4/3}.four li:nth-child(3) img{aspect-ratio:3/4}}
.more a{font-weight:700}
/* Finally Friday: big black block with pill buttons */
.ff{background:var(--ink);color:var(--paper)}
.ff .kick{color:var(--mustard)}
.ff h2{font-size:clamp(36px,7vw,70px)}
.ff .lede{font-size:24px;font-weight:700;color:var(--mustard);margin:0 0 12px}
.ff-grid{display:grid;gap:28px}
@media (min-width:900px){.ff-grid{grid-template-columns:1.2fr 1fr;align-items:center}}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.pills a{text-decoration:none;font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px;background:var(--paper);color:var(--ink)}
.pills a:nth-child(2){background:var(--mustard)}
.pills a:nth-child(3){background:var(--teal);color:#fff}
.ff-latest{display:block;text-decoration:none;background:#2c2a27;border-radius:22px;overflow:hidden}
.ff-latest img{width:100%}
.ff-latest span{display:block;padding:14px 18px;font-size:14px}
.ff-latest b{display:block;font-size:19px}
.reels-h{margin:40px 0 0;font-size:24px}
.reels{list-style:none;margin:0 -16px}
.reel{display:block;position:relative;width:160px;text-decoration:none}
.reel img{width:160px;height:256px;object-fit:cover;border-radius:16px}
.play{position:absolute;top:106px;left:58px;width:44px;height:44px;border-radius:50%;background:var(--mustard);color:var(--ink);display:flex;align-items:center;justify-content:center}
.rt{display:block;font-size:13px;font-weight:600;margin-top:6px}
/* paintings carousel */
.paintings{background:var(--cream)}
.rail{margin-top:18px}
.slide{width:min(78vw,280px);margin:0}
.slide.paint img{width:100%;height:280px;object-fit:cover;border-radius:16px}
.slide figcaption{display:grid;gap:2px;font-size:14px;padding-top:10px}
.slide figcaption b{font-size:20px;font-weight:800}
.slide .story{opacity:.85}
.slide figcaption a{font-weight:700;color:var(--orange)}
.slide.quote{align-self:start;height:280px;display:flex;flex-direction:column;justify-content:center;padding:22px;border-radius:16px;background:var(--teal);color:#fff}
.slide.quote:nth-of-type(4n){background:var(--orange)}
.slide.quote p{font-size:20px;font-weight:700;line-height:1.25;margin:0 0 10px}
.slide.quote cite{font-size:12px;font-style:normal;opacity:.9}
.endcard{align-self:start;height:280px;width:200px;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;border-radius:16px;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:800;font-size:19px}
.band{background:var(--mustard);padding:40px 0}
.signup h2{font-size:clamp(24px,4vw,36px)}
.signup button{background:var(--ink);color:var(--paper);border-radius:999px}
.signup input{border-radius:999px;border-color:var(--ink)}
/* library */
.library ol{list-style:none;margin:16px 0;padding:0;display:grid;gap:10px}
.library li{background:#fff;border-radius:14px;padding:14px 18px;display:grid;gap:2px}
.library li a{text-decoration:none;font-weight:800;font-size:18px;line-height:1.25}
.library li span{font-size:13px;opacity:.7}
@media (min-width:820px){.library ol{grid-template-columns:1fr 1fr}}
/* cities: tiles in our colours (not Creative Boom's) */
.lang{margin-top:22px}
.lang h3{font-size:20px;margin:0 0 10px}
.lang h3 small{font-weight:500;font-size:14px;opacity:.7;margin-left:8px}
.lang ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.lang a{display:flex;flex-direction:column;justify-content:flex-end;min-height:92px;padding:12px 14px;border-radius:14px;text-decoration:none;background:var(--teal);color:#fff}
.lang a b{font-size:19px;font-weight:800;line-height:1.1}
.lang a span{font-size:12px;opacity:.85}
.lang li:nth-child(3n+2) a{background:var(--mustard);color:var(--ink)}
.lang li:nth-child(3n) a{background:var(--orange)}
/* footer */
.foot{background:var(--ink);color:var(--paper);padding:46px 0 24px}
.foot-grid{display:grid;gap:30px}
@media (min-width:820px){.foot-grid{grid-template-columns:1.3fr 1fr}}
.foot .signup button{background:var(--mustard);color:var(--ink)}
.fname{font-size:30px;font-weight:900;letter-spacing:-.03em;margin:0}
.res{font-size:14px}
/* article page */
.is-article .crumb{font-size:13px;opacity:.7;margin-top:24px}
.is-article h1{font-size:clamp(32px,6.6vw,54px)}
.textpic{background:var(--mustard);border-radius:22px}
.textpic span{font-weight:800}
.answer{background:var(--cream);border-radius:16px}
.answer b{color:var(--orange)}
.body{font-family:Georgia,"Noto Serif",serif}
.body h2,.body h3{font-family:system-ui,sans-serif;font-weight:800}
.body h2{font-size:26px}
.author{border-color:#d8cfbd}
.cta{background:var(--teal);color:#fff;border-radius:22px}
.cta .kick{color:var(--mustard)}
.cta .btn{background:var(--mustard);color:var(--ink)}
.cta-book{display:grid;grid-template-columns:110px 1fr;gap:18px}
.cta-book img{width:110px;border-radius:8px}
.related a{background:#fff;border-radius:14px;padding:14px;font-weight:800}
@media (min-width:900px){.cities .wrap{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.cities h2,.cities .wrap>.note,.lang-en{grid-column:1/-1}}
.reel-empty{border-radius:16px;min-height:256px}
/* Melissa's goat, Direction C only (2 Oct, John): walks slowly, stops and blinks twice, walks to the grass
   in the right corner, bends its head and nibbles. CSS only; animates transform only.
   Reduced motion: standing still at the grass, head down. */
.cg-lane{position:relative}
.cg-move{position:absolute;left:-62px;right:12px;bottom:0;height:60px;transform:translateX(0)}
.cg-goat{position:absolute;right:0;bottom:0;width:62px;height:60px}
.cg-bob,.cg-head,.cg-nib{position:absolute;inset:0}
.cg-bob img,.cg-nib img{position:absolute;left:0;top:0;width:62px;height:auto;max-width:none}
.cg-leg-0{transform-origin:16.7% 76%}.cg-leg-1{transform-origin:26.6% 76%}
.cg-leg-2{transform-origin:56.3% 76%}.cg-leg-3{transform-origin:65.6% 76%}
.cg-head,.cg-nib{transform-origin:73% 25%}
.cg-head{transform:translate(1px,4px) rotate(20deg)}
.cg-lid{position:absolute;border-radius:50%;background:#b51c35;box-shadow:inset 0 -.8px 0 rgba(60,8,20,.7);transform:scaleY(0);transform-origin:50% 0}
.cg-lid-l{left:70%;top:29.6%;width:12%;height:8.2%}
.cg-lid-r{left:89.6%;top:29%;width:9.4%;height:9.2%}
.cg-grass{position:absolute;right:15px;bottom:0;z-index:3;display:block}
@media (prefers-reduced-motion:no-preference){
  .cg-move{animation:cg-walk 24s .3s 1 both}
  .cg-leg-0,.cg-leg-3{animation:cg-step .88s ease-in-out .3s 6,cg-step .92s ease-in-out 8.22s 6,cg-step .89s ease-in-out 16.38s 7}
  .cg-leg-1,.cg-leg-2{animation:cg-step2 .88s ease-in-out .3s 6,cg-step2 .92s ease-in-out 8.22s 6,cg-step2 .89s ease-in-out 16.38s 7}
  .cg-bob{animation:cg-bob .88s ease-in-out .3s 6,cg-bob .92s ease-in-out 8.22s 6,cg-bob .89s ease-in-out 16.38s 7}
  .cg-lid{animation:cg-blink 24s ease-in-out .3s 1 both,cg-blink-idle 7s ease-in-out 27s infinite}
  .cg-head{animation:cg-bend 1.8s ease-in-out 23s both}
  .cg-nib{animation:cg-nib 2.6s ease-in-out 24.9s infinite}
}
@keyframes cg-walk{
  0%{transform:translateX(-100%);animation-timing-function:cubic-bezier(.35,0,.65,1)}
  22%{transform:translateX(-64%)}
  33%{transform:translateX(-64%);animation-timing-function:cubic-bezier(.35,0,.65,1)}
  56%{transform:translateX(-30%)}
  67%{transform:translateX(-30%);animation-timing-function:cubic-bezier(.35,0,.65,1)}
  93%,100%{transform:translateX(0)}}
@keyframes cg-step{0%,100%{transform:rotate(0)}25%{transform:rotate(9deg)}75%{transform:rotate(-9deg)}}
@keyframes cg-step2{0%,100%{transform:rotate(0)}25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}
@keyframes cg-bob{0%,50%,100%{transform:translateY(0)}25%,75%{transform:translateY(-1.5px)}}
@keyframes cg-blink{0%,26.6%,27.9%,61%,62.3%,100%{transform:scaleY(0)}27.1%,61.5%{transform:scaleY(1)}}
@keyframes cg-blink-idle{0%,94%,100%{transform:scaleY(0)}96%{transform:scaleY(1)}}
@keyframes cg-bend{from{transform:translate(0,0) rotate(0)}to{transform:translate(1px,4px) rotate(20deg)}}
@keyframes cg-nib{0%,100%{transform:rotate(0)}30%{transform:rotate(4deg)}45%{transform:rotate(1.5deg)}60%{transform:rotate(4deg)}80%{transform:rotate(0)}}
/* 3 Oct: keep the top menu above the big title link so menu clicks land on the menu */
.topbar{position:relative;z-index:1}


/* 3) shared/article.css (feature image + figcaption + figure.video) */
/* Article CSS (3 Oct 2026). Feature image rules copied verbatim from studio-round-3/article-preview/article-feature.css (approved layout).
   Loaded after look-c/style.css by john_articles.page_head(). look-c/style.css is copied from round-3 by the build, so these live here. */
.art .feature{margin:4px 0 18px;padding:0}
.art .feature img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:cover;border-radius:22px;background:var(--cream,#f1e6cf)}
.art .feature figcaption{font:12px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;opacity:.8;margin-top:6px}
.art .feature figcaption a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media (min-width:640px){
  .art .feature{width:40%}
  .art .feature--right{float:right;margin:6px 0 14px 26px}
  .art .feature--left{float:left;margin:6px 26px 14px 0}
}
/* keep later blocks (h2 with rules, callouts, footer bits) from wrapping awkwardly round the float */
.art .body h2{clear:both}
.art .body::after{content:"";display:table;clear:both}
/* John 01 video (3 Oct) */ .art figure.video{margin:24px 0}.art figure.video iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:12px}.art figure.video figcaption{font-size:14px;opacity:.8;margin-top:6px}


/* 4) inline template styles */
:root{--orange:#9a6a36}
/* top featured image (was an inline style on figure.feature--top) */
.art .feature.feature--top,.art .feature--top{width:100%;max-width:600px;float:none;margin:4px 0 22px}
/* Finally Friday callout (was the inline style attribute on div#finally-friday.ff-callout; the div keeps it too) */
.ff-callout{background:var(--ink);color:var(--paper);border-radius:22px;padding:4px 22px 22px;font-family:system-ui,sans-serif}
/* Finally Friday icons (also kept inline inside the callout) */
.ffs{margin-top:22px}.ffs p{margin:0 0 8px;font-weight:700}.ffs ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.ffs a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--paper);color:var(--ink)}.ffs a:hover,.ffs a:focus-visible{background:var(--mustard)}.ffs svg{width:22px;height:22px;fill:currentColor}
/* md '1) 2) 3)' lists (1231, 1258, 1315) */
ol.paren{list-style:none;counter-reset:p}ol.paren>li{counter-increment:p}ol.paren>li::before{content:counter(p) ") "}
/* video at the top */
.art .top-video{margin:0 0 24px}.art .top-video iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:12px}
.art .top-video figcaption{font-size:14px;opacity:.8;margin-top:6px}
/* Amazon small print in the FOOTER (book reviews that link to the Amazon storefront only; was .foot .amz on the He Died page) */
.amz-note{margin-top:14px}.amz-note p{margin:0;font-size:.85em}.amz-note p.small-print{font-size:.78em}
/* byline under the title */
.art .byline{font:14px/1.4 system-ui,sans-serif;opacity:.8;margin:0 0 18px}


/* 5) v0.1.23 (18 Oct 2026, Content Check 18 Oct F1): article content never wider than the column.
   Scoped to the article body (.art .body). Fixes the 1080px <video> on 1671 and the unbreakable bare link on 414.
   Iframes already in a 16:9 box (.collab-vid, figure.video, .wp-block-embed__wrapper, .top-video .vid) and the
   click-to-load YouTube picture embeds (.lv, .ffp-box, [data-yt]) keep their own sizing: they are excluded below. */
.art .body video,
.art .body .wp-video-shortcode{max-width:100%!important;height:auto!important}
.art .body embed,
.art .body object,
.art .body iframe,
.art .body figure,
.art .body .wp-video,
.art .body .wp-block-video,
.art .body .wp-block-embed{max-width:100%}
.art .body .wp-video{width:auto!important}
/* YouTube/Vimeo players dropped straight into the text (not in a 16:9 box) and iframes with no height of their own: fill the column at 16:9 */
.art .body iframe:is([src*="youtube.com/embed/"],[src*="youtube-nocookie.com/embed/"],[src*="player.vimeo.com/video/"]):not(.collab-vid iframe,figure.video iframe,.wp-block-embed__wrapper iframe,.top-video iframe,.lv iframe,.ffp-box iframe,[data-yt] iframe){width:100%;height:auto;aspect-ratio:16/9}
.art .body iframe:not([height]):not([style*="height"]):not(.collab-vid iframe,figure.video iframe,.wp-block-embed__wrapper iframe,.top-video iframe,.lv iframe,.ffp-box iframe,[data-yt] iframe){height:auto;aspect-ratio:16/9}
/* long links and words wrap instead of widening the page */
.art .body a{overflow-wrap:anywhere}

/* 0.1.29: top featured photo full width of the article column (GAP 1), never floated */
.art .feature.feature--top{width:100%;max-width:none;float:none;margin:4px 0 24px}
.art .feature.feature--top img{width:100%;height:auto;aspect-ratio:auto;border-radius:12px}
.art .feature.feature--top figcaption{font-size:13px;margin-top:8px}

/* 0.1.38 (Content Check): long unbroken strings (e.g. a "#ptsd,#cptsd,#drjohnaking,..." hashtag line) wrap instead of
   pushing single articles sideways at 390px. Only breaks a word that would overflow; normal text is unchanged. */
.art :is(h1,h2,h3,h4,h5,h6,p,li,a,figcaption){overflow-wrap:anywhere}
@supports not (overflow-wrap:anywhere){.art :is(h1,h2,h3,h4,h5,h6,p,li,a,figcaption){word-wrap:break-word;word-break:break-word}}
