/* Stars & Spells: identity tokens (sites decision 2026-10-17) */
:root{--bg:#F6F1E7;--surface:#FFFCF6;--ink:#1A1C33;--muted:#5A5770;--line:#E3D9C5;--link:#7A4E08;--accent:#8A5A0B;--onaccent:#FFFFFF;
--display:"Cormorant Garamond",Georgia,serif;--body:"Source Sans 3",system-ui,sans-serif;--serif:"EB Garamond",Georgia,serif;--read-size:20px;
--head-weight:700;--head-tracking:0;--head-transform:none;--wordmark-size:31px;
--kicker-font:700 12.5px/1 "Source Sans 3",system-ui,sans-serif;--kicker-bg:transparent;--kicker-ink:#8A5A0B;--kicker-pad:0;
--mast-bg:#141A3A;--mast-ink:#F6F1E7;--mast-accent:#E8C27A;--nav-hover:rgba(232,194,122,.14);
--hero-bg:#141A3A;--hero-ink:#F6F1E7;--hero-muted:#C9C6DA;--hero-kicker:#E8C27A;
--today-bg:#E8C27A;--today-ink:#141A3A;--today-accent:#6E4506;
--radius:10px;--card-border:1px solid var(--line);--hover-shadow:0 12px 30px rgba(20,26,58,.14);
--rule:#C8922B;--rule-w:2px;--foot-bg:#141A3A;--foot-ink:#C9C6DA;
--motif:linear-gradient(#C8922B,#C8922B) 0 0/100% 1px no-repeat,linear-gradient(#C8922B,#C8922B) 0 100%/100% 1px no-repeat,#141A3A}
@media (prefers-color-scheme:dark){:root{--bg:#0E1229;--surface:#171C3A;--ink:#ECE8F7;--muted:#A6A9C6;--line:#283060;--link:#F2C46B;--accent:#F2B84B;--kicker-ink:#F2B84B;--hover-shadow:0 12px 30px rgba(0,0,0,.45);color-scheme:dark}}
header.site .wordmark span{font-style:italic}
.hero{background:radial-gradient(1.4px 1.4px at 12% 22%,#E8C27A 50%,transparent 51%),radial-gradient(1px 1px at 33% 68%,#F6F1E7 50%,transparent 51%),radial-gradient(1.2px 1.2px at 58% 18%,#F6F1E7 50%,transparent 51%),radial-gradient(1.6px 1.6px at 81% 44%,#E8C27A 50%,transparent 51%),radial-gradient(1px 1px at 91% 12%,#F6F1E7 50%,transparent 51%),radial-gradient(1px 1px at 70% 82%,#E8C27A 50%,transparent 51%),#141A3A}
.hero .kicker::before{content:"\2726\00a0\00a0"}
.hero h1{font-weight:600;font-size:clamp(42px,6.6vw,80px)}
.hero h1 em{color:#E8C27A}
.kicker::before{content:"\2726\00a0"}
.article-body .meta .tag::before{content:none}
/* Ink Horses fan sites: shared magazine layout. Site identity lives in the tokens above this block. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto}
a{color:var(--link)}
a:hover{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--surface);color:var(--ink);padding:8px 12px;z-index:60}
.skip:focus{left:12px}
h1,h2,h3{font-family:var(--display);font-weight:var(--head-weight);letter-spacing:var(--head-tracking);text-transform:var(--head-transform);line-height:1.04;margin:0 0 .45em;text-wrap:balance}

/* masthead */
header.site{background:var(--mast-bg);color:var(--mast-ink)}
@media (min-width:761px){header.site{position:sticky;top:0;z-index:40}}
.mast-row{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:64px}
header.site .wordmark{font-family:var(--wordmark-font,var(--display));font-size:var(--wordmark-size,28px);font-weight:var(--wordmark-weight,var(--head-weight));letter-spacing:var(--wordmark-tracking,var(--head-tracking));text-transform:var(--wordmark-transform,var(--head-transform));color:var(--mast-ink);text-decoration:none;white-space:nowrap;line-height:1}
header.site .wordmark span{color:var(--mast-accent)}
nav.main{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
nav.main::-webkit-scrollbar{display:none}
nav.main a{color:var(--mast-ink);text-decoration:none;font:600 15px/1 var(--body);padding:10px 13px;border-radius:var(--nav-radius,999px);white-space:nowrap;opacity:.86}
nav.main a:hover,nav.main a[aria-current]{opacity:1;background:var(--nav-hover);color:var(--mast-ink)}
nav.main a[aria-current]{box-shadow:inset 0 -2px 0 var(--mast-accent)}
.motif{height:6px;background:var(--motif)}
@media (max-width:760px){
  .mast-row{flex-direction:column;align-items:flex-start;gap:2px;padding:12px 20px 4px;min-height:0}
  header.site .wordmark{font-size:calc(var(--wordmark-size,28px)*.85)}
  nav.main{align-self:stretch;width:auto;margin:0 -20px;padding:0 7px}
}

/* section bar: the categories (decision 127) */
nav.sections{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;padding:0 0 8px;margin:-4px 0 0}
nav.sections::-webkit-scrollbar{display:none}
nav.sections a{color:var(--mast-ink);text-decoration:none;font:700 15px/1 var(--body);padding:9px 14px;border-radius:var(--nav-radius,999px);white-space:nowrap;opacity:.85;border:1px solid transparent}
nav.sections a:hover{opacity:1;border-color:var(--mast-accent);color:var(--mast-ink)}
nav.sections a[aria-current]{opacity:1;background:var(--mast-accent);border-color:var(--mast-accent);color:var(--mast-bg)}
@media (max-width:760px){nav.sections{margin:0 -20px;padding:0 20px 8px}}

/* kickers, buttons */
.kicker{display:inline-block;font:var(--kicker-font);letter-spacing:.09em;text-transform:uppercase;color:var(--kicker-ink);background:var(--kicker-bg);padding:var(--kicker-pad);margin:0 0 14px;transform:var(--kicker-tilt,none)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--btn-radius,999px);background:var(--accent);color:var(--onaccent);font:700 15px/1 var(--body);text-decoration:none;border:2px solid var(--accent)}
.btn:hover{color:var(--onaccent);filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}

/* home: cover */
.hero{background:var(--hero-bg);color:var(--hero-ink);padding:52px 0 40px}
.hero h1{font-size:clamp(38px,6.4vw,74px);max-width:17ch;color:var(--hero-ink)}
.hero .kicker{color:var(--hero-kicker,var(--kicker-ink))}
.hero .lede{font-size:clamp(17px,1.9vw,20px);color:var(--hero-muted);max-width:64ch;margin:0 0 30px}
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.door{display:flex;flex-direction:column;gap:5px;padding:18px 20px 20px;background:var(--surface);color:var(--ink);border:var(--card-border);border-radius:var(--radius);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}
.door:hover{transform:translateY(-2px);box-shadow:var(--hover-shadow);color:var(--ink)}
.door .door-k{font:var(--kicker-font);text-transform:uppercase;letter-spacing:.09em;color:var(--accent)}
.door strong{font-family:var(--display);font-weight:var(--head-weight);font-size:24px;line-height:1.08;text-transform:var(--head-transform);letter-spacing:var(--head-tracking)}
.door span:last-child{color:var(--muted);font-size:15px;line-height:1.45}
.door.door-today{background:var(--today-bg);color:var(--today-ink);border-color:var(--today-bg)}
.door.door-today .door-k{color:var(--today-accent)}
.door.door-today span:last-child{color:var(--today-ink);opacity:.82}
@media (max-width:760px){.doors{grid-template-columns:1fr}.hero{padding:34px 0 28px}}

/* sections */
.block{padding:52px 0}
.block+.block{border-top:1px solid var(--line)}
.block h2{font-size:clamp(30px,4.2vw,44px)}
.section-head{margin-bottom:24px}
.section-head h2{margin-bottom:8px}
.section-head p:not(.kicker){color:var(--muted);margin:0;max-width:62ch}
.home-articles h2,.related h2{display:flex;align-items:center;gap:16px}
.home-articles h2::after,.related h2::after{content:"";flex:1;height:var(--rule-w);background:var(--rule)}

/* home: latest stories (the dashboard rewrites this grid, decision 112) */
.feat-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px}
.feat-grid>.card-big{grid-row:span 3}
.feat-card{display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:var(--card-border);border-radius:var(--radius);overflow:hidden;text-decoration:none;height:100%;transition:box-shadow .15s ease}
.feat-card:hover{box-shadow:var(--hover-shadow);color:var(--ink)}
.fthumb,.thumb,.rthumb{aspect-ratio:16/9;overflow:hidden;background:var(--line)}
.fthumb img,.thumb img,.rthumb img{width:100%;height:100%;object-fit:cover;display:block;filter:var(--photo-filter,none);transition:filter .25s ease,transform .4s ease}
.feat-card:hover img,.article-card:hover img,.related-card:hover img{filter:none;transform:scale(1.03)}
.fbody{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px}
.feat-card .tag,.article-card .meta,.related-card .rbody::before{font:var(--kicker-font);text-transform:uppercase;letter-spacing:.09em;color:var(--accent)}
.feat-card h3{font-size:22px;margin:0}
.feat-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}
.feat-card .meta{font-size:13px;color:var(--muted)}
.feat-card.card-big .fthumb{aspect-ratio:3/2}
.feat-card.card-big h3{font-size:clamp(28px,3.4vw,42px)}
.feat-card.card-big p{font-size:17px}
.feat-card.card-small{flex-direction:row}
.feat-card.card-small .fthumb{flex:0 0 36%;aspect-ratio:auto;min-height:120px}
.feat-card.card-small h3{font-size:19px}
.feat-card.card-small p{display:none}
@media (max-width:860px){.feat-grid{grid-template-columns:1fr}.feat-grid>.card-big{grid-row:auto}}

/* home: play */
.play-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.play-card{display:flex;flex-direction:column;gap:7px;padding:22px 22px 20px;background:var(--surface);color:var(--ink);border:var(--card-border);border-radius:var(--radius);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}
.play-card:hover{transform:translateY(-2px);box-shadow:var(--hover-shadow);color:var(--ink)}
.play-card .play-k{font:var(--kicker-font);text-transform:uppercase;letter-spacing:.09em;color:var(--accent)}
.play-card h3{font-size:25px;margin:0}
.play-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.5;flex:1}
.play-card .go{font-weight:700;color:var(--accent);font-size:15px;margin-top:6px}
.play-card .go::after{content:" \2192"}

/* home: about strip, generic cards */
.cols3,.cards,.contact-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.contact-list{grid-template-columns:repeat(2,minmax(0,1fr));margin:20px 0}
.cols3>div,.cards>.card,.contact-list>.card{background:var(--surface);border:var(--card-border);border-radius:var(--radius);padding:20px 22px}
.cols3 h3,.card h3{font-size:22px;margin:0 0 6px}
.cols3 p,.card p{margin:0;color:var(--muted);font-size:15px}
.about-links{margin:22px 0 0;font-weight:600}
@media (max-width:760px){.cols3,.cards,.contact-list{grid-template-columns:1fr}}
.fact{background:var(--surface);border:var(--card-border);border-radius:var(--radius);padding:24px 26px;position:relative;max-width:860px}
.fact .claim{font-family:var(--serif);font-size:clamp(20px,2.6vw,26px);line-height:1.35;margin:0 0 14px}
.stamp{display:inline-block;font:var(--kicker-font);font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);border:2px solid var(--accent);padding:6px 12px;transform:rotate(-4deg);margin:0 0 12px}
.fact p:last-child{margin:0;color:var(--muted)}

/* home Featured row (decision 129) */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}

/* category chips and pages (decision 127) */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 26px}
.chips a{display:inline-block;padding:7px 13px;border:var(--card-border);border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;font-weight:600}
.chips a:hover,.chips a[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--onaccent)}
.category-cta{margin:16px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.category-empty{color:var(--muted);padding:0 0 60px}

/* articles index */
.articles-header{padding:46px 0 18px;margin-bottom:28px;border-bottom:var(--rule-w) solid var(--rule)}
.articles-header h1{font-size:clamp(44px,7vw,84px);margin:0 0 6px}
.articles-header p{color:var(--muted);margin:0;font-size:18px}
.writers-link{margin:10px 0 0;font-size:15px}
.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px;padding-bottom:64px}
.article-card{display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:var(--card-border);border-radius:var(--radius);overflow:hidden;text-decoration:none;transition:box-shadow .15s ease}
.article-card:hover{box-shadow:var(--hover-shadow);color:var(--ink)}
.article-card .body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.article-card h3{font-size:22px;margin:0;order:1}
.article-card .meta{order:0}
.article-card .desc{margin:0;color:var(--muted);font-size:15px;line-height:1.5;order:2}
@media (min-width:900px){
  .article-grid>.article-card:first-child{grid-column:1/-1;flex-direction:row}
  .article-grid>.article-card:first-child .thumb{flex:0 0 58%;aspect-ratio:16/9}
  .article-grid>.article-card:first-child .body{justify-content:center;padding:28px 32px}
  .article-grid>.article-card:first-child h3{font-size:clamp(30px,3.4vw,44px)}
  .article-grid>.article-card:first-child .desc{font-size:18px}
}

/* article */
.article-body{max-width:760px;margin:0 auto;padding:36px 20px 64px}
.article-body h1{font-size:clamp(36px,5.6vw,62px);margin:8px 0 16px}
.article-body .meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;color:var(--muted);font-size:14px;margin:0 0 30px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.article-body .meta .tag{font:var(--kicker-font);text-transform:uppercase;letter-spacing:.09em;color:var(--kicker-ink);background:var(--kicker-bg);padding:var(--kicker-pad);border-radius:0}
.article-body .meta a{color:inherit}
.article-photo-hero{margin:0 0 6px}
.article-photo-hero img{width:100%;border-radius:var(--radius);display:block;filter:var(--photo-filter,none)}
.article-body .photo-credit{color:var(--muted);font-size:13px;margin:0 0 22px}
.article-body p,.article-body li{font-family:var(--serif);font-size:var(--read-size,19px);line-height:1.72}
.article-body p{margin:0 0 20px}
.article-body .meta,.article-body .photo-credit,.article-body .ai-note,.article-body .trademark-note,.article-body .byline{font-family:var(--body)}
.article-text>p:first-child::first-letter{float:left;font-family:var(--display);font-weight:var(--head-weight);font-size:4.1em;line-height:.82;padding:6px 12px 0 0;color:var(--accent)}
.article-body h2{font-size:clamp(26px,3.2vw,34px);margin:44px 0 14px}
.article-body h3{font-size:22px;margin:30px 0 10px}
.article-body ul,.article-body ol{padding-left:24px}
.article-body li{margin:0 0 10px}
.article-body blockquote{margin:28px 0;padding:4px 0 4px 22px;border-left:4px solid var(--accent);font-family:var(--display);font-size:24px;line-height:1.35}
.article-figure{margin:30px 0}
.article-figure img{border-radius:var(--radius)}
.article-body .ai-note,.article-body .trademark-note{font-size:14px!important;color:var(--muted)}
.article-body .horse-cta,.article-body .proto-banner{background:var(--today-bg);color:var(--today-ink);border:0;border-radius:var(--radius);padding:24px 26px;margin:44px 0;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.article-body .horse-cta h3,.article-body .proto-banner h3{color:var(--today-accent);margin:0 0 4px;font-size:24px}
.article-body .horse-cta p,.article-body .proto-banner p{color:var(--today-ink);opacity:.85;margin:0;font-family:var(--body);font-size:16px}
.related{margin-top:52px}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.related-card{display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:var(--card-border);border-radius:var(--radius);overflow:hidden;text-decoration:none}
.related-card:hover{box-shadow:var(--hover-shadow);color:var(--ink)}
.rbody{padding:12px 14px 14px}
.rbody h3{font-size:18px;margin:0 0 6px}
.rbody p{font-family:var(--body)!important;font-size:14px!important;line-height:1.45!important;color:var(--muted);margin:0!important}
@media (max-width:760px){.related-grid{grid-template-columns:1fr}.article-body{padding-top:22px}}

/* weekly editions (decision 124): tables, the at-a-glance strip, dividers */
.table-wrap{overflow-x:auto;margin:18px 0 26px;-webkit-overflow-scrolling:touch}
.data-table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.4;font-family:var(--body)}
.data-table th{text-align:left;font-weight:700;padding:9px 10px;border-bottom:2px solid var(--accent);white-space:nowrap}
.data-table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.data-table tbody tr:nth-child(odd){background:var(--surface)}
.glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:24px 0 30px}
.glance-item{border:var(--card-border);border-top:4px solid var(--accent);padding:12px 14px;background:var(--surface);border-radius:var(--radius)}
.glance-value{display:block;font-family:var(--display);font-weight:var(--head-weight);font-size:28px;line-height:1.1;color:var(--accent)}
.glance-label{display:block;font-size:13px;color:var(--muted);margin-top:4px;font-family:var(--body)}
.divider{border:0;height:1px;background:var(--line);margin:40px 0 8px}

/* daily page (decision 113) */
.daily-list{list-style:none;padding:0!important;margin:0 0 26px}
.daily-list li{font-family:var(--body)!important;font-size:17px!important;padding:14px 0;margin:0!important;border-bottom:1px solid var(--line)}
.daily-list li strong{font-family:var(--display);font-weight:var(--head-weight);font-size:20px}
.daily-list .meta{display:inline!important;border:0!important;padding:0!important;margin:0 0 0 8px!important;font:var(--kicker-font)!important;color:var(--accent)!important}
.daily-list a{font-weight:700;font-size:14px}

/* policy and plain pages */
.prose{max-width:760px;margin:0 auto;padding:44px 0 64px}
.prose h1{font-size:clamp(38px,5.6vw,60px)}
.prose h2{font-size:28px;margin:38px 0 10px}
.prose p,.prose li{font-size:18px;line-height:1.7}
.prose .meta{color:var(--muted);font-size:15px}

/* footer */
footer.site{background:var(--foot-bg);color:var(--foot-ink);padding:40px 0 44px;font-size:14px;border-top:var(--rule-w) solid var(--rule)}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:22px;justify-content:space-between;align-items:flex-start}
footer.site a{color:inherit}
footer.site nav{display:flex;flex-wrap:wrap;gap:8px 18px}
