/*
Theme Name: Time to File
Theme URI: https://time-to-file.example/
Author: WE Web Design
Author URI: https://example.org/
Description: Wrongful death law in the 50 states, filed by the time a family has to file. The front page is a deadline board: the states grouped under the general deadline that the at-a-glance table of each guide gives (1, 2 or 3 years, or set out in the guide), with every state reachable by its two-letter code, then the guides most recently published. A guide opens as its state file: the state code, the deadline dial that points to the row of the table it is read from, the sections of the guide, the guide, then the note and the other states with the same deadline. STIX Two Text and Bebas Neue; mourning plum and deep teal on stone. Categories, tags and author archives are never shown or linked.
Version: 1.0.1
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: time-to-file
Tags: blog, two-columns, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, block-patterns, full-site-editing-optional
*/

/* ========================================================================
   1. TOKENS - mourning plum + deep teal on stone; Bebas Neue for the numerals and codes (32/32 pairs AA, worst 4.94:1)
   ======================================================================== */
:root{
  --paper:#f4f3ef;
  --paper-2:#e9e8e2;
  --ink:#16181b;
  --ink-2:#3a3e44;
  --ink-3:#5d636b;
  --rule:#d9d8d1;
  --card:#fdfcf9;
  --accent:#66474f;
  --accent-2:#045060;
  --display:'Bebas Neue',Impact,'Arial Narrow',sans-serif;
  --warn:#9a4708;
  --warn-soft:#fef3c7;
  --safe:#1f6350;
  --safe-soft:#e0f2fe;
  --link:var(--accent-2);
  --focus:#16181b;

  --sans:'STIX Two Text',Georgia,'Times New Roman',serif;
  --serif:'STIX Two Text',Georgia,'Times New Roman',serif;
  --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;

  --measure:42rem;
  --measure-wide:64rem;
  --shell:84rem;

  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.5rem;
  --space-6:2rem;
  --space-7:3rem;
  --space-8:4rem;
  --space-9:6rem;

  --radius-1:.25rem;
  --radius-2:.5rem;
  --radius-3:.75rem;

  --shadow-1:0 1px 2px rgba(26,36,33,.06),0 1px 1px rgba(26,36,33,.04);
  --shadow-2:0 4px 12px rgba(26,36,33,.08),0 2px 4px rgba(26,36,33,.04);

  --z-base:0;
  --z-sticky:10;
  --z-rail:20;
  --z-progress:30;
  --z-topbar:40;
  --z-drawer:50;
  --z-skip:999;

  color-scheme:light;
}
[data-theme="dark"]{
  --paper:#121417;
  --paper-2:#1a1d21;
  --ink:#eceef0;
  --ink-2:#c4c9cf;
  --ink-3:#959ca5;
  --rule:#2c3036;
  --card:#16191c;
  --accent:#bfa2b8;
  --accent-2:#8eb2af;
  --warn:#fbbf24;
  --warn-soft:#1c1410;
  --safe:#8ccbb6;
  --safe-soft:#0c1f2e;
  --link:var(--accent-2);
  --focus:#e9e8e2;
  --shadow-1:0 1px 2px rgba(0,0,0,.4),0 1px 1px rgba(0,0,0,.3);
  --shadow-2:0 4px 12px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.4);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#121417;
    --paper-2:#1a1d21;
    --ink:#eceef0;
    --ink-2:#c4c9cf;
    --ink-3:#959ca5;
    --rule:#2c3036;
    --card:#16191c;
    --accent:#bfa2b8;
    --accent-2:#8eb2af;
    --warn:#fbbf24;
    --warn-soft:#1c1410;
    --safe:#8ccbb6;
    --safe-soft:#0c1f2e;
    --link:var(--accent-2);
    --focus:#e9e8e2;
    --shadow-1:0 1px 2px rgba(0,0,0,.4),0 1px 1px rgba(0,0,0,.3);
    --shadow-2:0 4px 12px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.4);
    color-scheme:dark;
  }
}

/* ========================================================================
   2. RESET + BASE
   ======================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.7;
  font-feature-settings:'ss01','kern','liga';
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
img{aspect-ratio:attr(width)/attr(height)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:.06em}
a:hover{text-decoration-thickness:.12em}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--focus);
  outline-offset:2px;
  border-radius:var(--radius-1);
}
hr{border:0;border-top:1px solid var(--rule);margin:var(--space-6) 0}
::selection{background:var(--accent);color:var(--paper)}

/* ========================================================================
   3. SKIP LINK (WD-9 — focus override mandatory)
   ======================================================================== */
.skip-link{
  position:absolute;
  left:-9999px;top:-9999px;
  width:auto;height:auto;
  clip:auto;clip-path:none;overflow:visible;
  background:var(--ink);
  color:var(--paper);
  padding:.75rem 1.25rem;
  border-radius:var(--radius-2);
  font-weight:600;
  z-index:var(--z-skip);
  text-decoration:none;
}
.skip-link:focus{left:1rem;top:1rem}

/* ========================================================================
   4. TYPOGRAPHY (WD-10, WD-14)
   ======================================================================== */
h1,h2,h3,h4,h5,h6{
  font-family:var(--serif);
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.01em;
  margin:2.4rem 0 .8rem;
  color:var(--ink);
  text-wrap:balance;
}
h1{font-size:clamp(2rem,4.2vw,2.75rem);line-height:1.15;letter-spacing:-.02em;margin-top:0}
h2{font-size:clamp(1.5rem,2.6vw,1.875rem)}
h3{font-size:clamp(1.25rem,2vw,1.4rem)}
h4{font-size:1.125rem}
h5,h6{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
p{margin:0 0 1.1rem;text-wrap:pretty}
strong,b{font-weight:600;color:var(--ink)}
em,i{font-style:italic}
small{font-size:.8125rem;color:var(--ink-2)}
blockquote{
  border-left:3px solid var(--accent);
  margin:1.6rem 0;
  padding:.4rem 0 .4rem 1.2rem;
  font-family:var(--serif);
  font-size:1.125rem;
  font-style:italic;
  color:var(--ink-2);
}
blockquote cite{display:block;font-style:normal;font-size:.875rem;color:var(--ink-3);margin-top:.4rem}
code,kbd,pre,samp{font-family:ui-monospace,'SF Mono','Menlo','Consolas',monospace;font-size:.9em}
:not(pre)>code{background:var(--paper-2);padding:.15em .4em;border-radius:var(--radius-1);color:var(--ink)}
pre{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-2);
  padding:1rem 1.2rem;
  overflow-x:auto;
  font-size:.875rem;
  line-height:1.55;
  margin:1.5rem 0;
}
ul,ol{margin:0 0 1.2rem;padding-left:1.4rem}
li{margin:.4rem 0}
ul li::marker{color:var(--accent)}
dl{margin:1.2rem 0}
dt{font-weight:600;margin-top:.8rem}
dd{margin:0 0 .4rem 1.2rem;color:var(--ink-2)}
table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.95rem}
th,td{padding:.6rem .8rem;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-weight:600;color:var(--ink);background:var(--paper-2)}
tbody tr:hover{background:var(--paper-2)}
figure{margin:1.6rem 0}
figcaption{font-size:.875rem;color:var(--ink-3);text-align:center;margin-top:.5rem;font-style:italic}

/* ========================================================================
   5. LAYOUT — page shell
   ======================================================================== */
.page-shell{min-height:100vh;display:flex;flex-direction:column}
.site-main{flex:1 0 auto}
.wrap{max-width:var(--shell);margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}

/* ========================================================================
   6. TOPBAR (WD-7 touch 44+)
   ======================================================================== */
.topbar{
  position:sticky;top:0;z-index:var(--z-topbar);
  background:color-mix(in oklab,var(--paper) 92%,transparent);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--rule);
}
.topbar__inner{
  max-width:var(--shell);
  margin:0 auto;
  padding:.6rem clamp(1rem,4vw,2rem);
  display:flex;align-items:center;gap:1rem;
  min-height:60px;
}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand__mark{
  width:34px;height:34px;border-radius:50%;
  background:var(--accent);
  color:var(--paper);
  font-family:var(--serif);
  font-weight:600;
  font-size:1.05rem;
  display:grid;place-items:center;
  letter-spacing:-.02em;
}
.brand__name{font-family:var(--serif);font-weight:600;font-size:1.125rem;letter-spacing:-.01em}
.topbar__inner{flex-wrap:wrap;row-gap:.35rem}
.brand{flex:1 1 auto;min-width:0;min-height:44px}
.brand__mark{flex:0 0 auto}
.brand__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar__nav{display:flex;order:4;flex:1 1 100%;flex-wrap:wrap;gap:0 1.2rem;font-size:.95rem;align-items:center}
.topbar__nav a{color:var(--ink-2);text-decoration:none;padding:.6rem 0;min-height:44px;display:inline-flex;align-items:center}
.topbar__nav a:hover,.topbar__nav a[aria-current="page"]{color:var(--ink)}
.topbar__search{order:3;flex:1 1 100%;min-width:0}
.theme-toggle{order:2;flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--ink-2)}
.theme-toggle:hover{color:var(--ink);background:var(--paper-2)}
.theme-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.theme-toggle .sun{display:none}
[data-theme="dark"] .theme-toggle .moon{display:none}
[data-theme="dark"] .theme-toggle .sun{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme-toggle .moon{display:none}
  :root:not([data-theme="light"]) .theme-toggle .sun{display:block}
}
@media (min-width:48rem){
  .topbar__inner{flex-wrap:nowrap}
  .brand{flex:0 0 auto}
  .topbar__nav{order:0;flex:0 1 auto;margin-left:auto;flex-wrap:nowrap}
  .topbar__search{order:0;flex:0 1 20rem;margin-left:auto}
  .topbar__nav + .topbar__search{margin-left:0}
  .theme-toggle{order:0}
}

/* ========================================================================
   7. SEARCH INPUT
   ======================================================================== */
.search-form{position:relative;width:100%}
.search-form__input{
  width:100%;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:999px;
  padding:.55rem 3rem .55rem 2.4rem;
  font-size:1rem;
  min-height:44px;
  color:var(--ink);
}
.search-form__input::placeholder{color:var(--ink-3)}
.search-form__icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}
.search-form__submit{position:absolute;right:.05rem;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2);background:transparent}
.search-form__submit:hover{color:var(--ink);background:var(--paper)}

/* ========================================================================
   8. READING PROGRESS BAR (WD-16 reduced-motion respect)
   ======================================================================== */
.reading-progress{
  position:fixed;top:0;left:0;right:0;height:3px;
  z-index:var(--z-progress);
  background:transparent;
  pointer-events:none;
}
.reading-progress__bar{
  display:block;height:100%;width:0;
  background:var(--accent);
  transition:width .12s linear;
  transform-origin:left;
}
@media (prefers-reduced-motion:reduce){
  .reading-progress__bar{transition:none}
}

/* ========================================================================
   9-10. (front-page hero + magazine grid removed)
   The front page is the deadline board (section 28).
   ======================================================================== */

/* ========================================================================
   11. ARTICLE — two-column long-form
   ======================================================================== */
.article-shell{
  max-width:var(--measure-wide);
  margin:0 auto;
  padding:clamp(2rem,4vw,3rem) clamp(1rem,4vw,2rem);
}
.article-main{min-width:0;max-width:46rem;margin-inline:auto}
.article-main--page{margin-inline:auto;padding-block:clamp(2.5rem,5vw,4rem)}

/* ========================================================================
   11b. COLLAPSIBLE SUMMARY CARD (optional — sits at top of article)
   ======================================================================== */
.tldr-card{
  background:var(--card);
  border:1px solid var(--rule);
  border-left:4px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1.2rem 1.4rem;
  margin:0 0 2rem;
  box-shadow:var(--shadow-1);
}
.tldr-card[open] summary{margin-bottom:.8rem}
.tldr-card summary{
  cursor:pointer;
  display:flex;align-items:center;gap:.6rem;
  list-style:none;
  font-family:var(--serif);
  font-size:1rem;
  font-weight:600;
  color:var(--accent-2);
  letter-spacing:-.005em;
  min-height:32px;
}
.tldr-card summary::-webkit-details-marker{display:none}
.tldr-card summary::before{
  content:'';
  width:0;height:0;
  border-left:5px solid currentColor;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  transition:transform .15s ease;
  flex-shrink:0;
}
.tldr-card[open] summary::before{transform:rotate(90deg)}
.tldr-card__label{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--accent);
  margin-right:auto;
}
.tldr-card p,.tldr-card ul,.tldr-card ol{
  font-size:.985rem;
  line-height:1.65;
  color:var(--ink-2);
  margin:0 0 .8rem;
}
.tldr-card p:last-child,.tldr-card ul:last-child,.tldr-card ol:last-child{margin-bottom:0}
@media (prefers-reduced-motion:reduce){
  .tldr-card summary::before{transition:none}
}

/* ========================================================================
   11c. FOOTNOTE-STYLE REFERENCES (sourced citations, bottom of article)
   ======================================================================== */
.article-refs{
  margin:3rem 0 0;
  padding:1.6rem 0 0;
  border-top:2px solid var(--accent);
}
.article-refs__heading{
  font-family:var(--serif);
  font-size:1.05rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin:0 0 1rem;
  color:var(--ink);
}
.article-refs__list{
  list-style:none;
  margin:0;padding:0;
  counter-reset:refs;
  font-size:.9rem;
  line-height:1.55;
}
.article-refs__list li{
  counter-increment:refs;
  display:flex;
  gap:.6rem;
  margin:.6rem 0;
  color:var(--ink-2);
}
.article-refs__list li::before{
  content:counter(refs);
  font-family:var(--mono);
  font-size:.8rem;
  font-weight:600;
  color:var(--accent-2);
  min-width:1.6rem;
  text-align:right;
  flex-shrink:0;
}
.article-refs__list a{color:var(--link);text-underline-offset:.16em;word-break:break-word}
.article-refs__source{font-style:italic;color:var(--ink-3)}

/* In-prose footnote callout */
.prose sup.fn-ref{
  font-family:var(--mono);
  font-size:.72em;
  font-weight:600;
  vertical-align:super;
  line-height:0;
}
.prose sup.fn-ref a{
  color:var(--accent-2);
  text-decoration:none;
  padding:0 .15em;
  background:var(--paper-2);
  border-radius:.2em;
}
.prose sup.fn-ref a:hover{background:var(--accent);color:var(--paper)}

/* ========================================================================
   11d. INLINE RELATED CARD (in-flow related card)
   ======================================================================== */
.inline-related-card{
  background:var(--card);
  border:1px solid var(--rule);
  border-left:3px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1.1rem 1.3rem;
  margin:2rem 0;
  display:flex;flex-direction:column;gap:.4rem;
}
.inline-related-card__label{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--ink-3);
}
.inline-related-card__title{font-family:var(--serif);font-size:1.05rem;line-height:1.3;margin:0;letter-spacing:-.01em}
.inline-related-card__title a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}
.inline-related-card__title a:hover{color:var(--accent-2);border-bottom-color:var(--accent)}
.inline-related-card__why{font-size:.95rem;color:var(--ink-2);margin:.2rem 0 0;line-height:1.55}

/* Decision/comparison card — two options side by side */
.diy-vs-pro{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  overflow:hidden;
  margin:2rem 0;
}
@media (min-width:720px){.diy-vs-pro{grid-template-columns:1fr 1fr}}
.diy-vs-pro__col{padding:1.2rem 1.4rem;display:flex;flex-direction:column;gap:.5rem}
.diy-vs-pro__col--safe{background:var(--safe-soft);border-bottom:1px solid var(--rule)}
.diy-vs-pro__col--pro{background:var(--warn-soft)}
@media (min-width:720px){
  .diy-vs-pro__col--safe{border-bottom:0;border-right:1px solid var(--rule)}
}
.diy-vs-pro__label{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
  font-weight:700;
}
.diy-vs-pro__col--safe .diy-vs-pro__label{color:var(--safe)}
.diy-vs-pro__col--pro .diy-vs-pro__label{color:var(--warn)}
.diy-vs-pro__title{font-family:var(--serif);font-size:1.05rem;font-weight:600;margin:0;color:var(--ink)}
.diy-vs-pro__body{font-size:.925rem;color:var(--ink-2);line-height:1.55;margin:0}
.diy-vs-pro__body ul{margin:.4rem 0 0;padding-left:1.2rem}
.diy-vs-pro__body li{margin:.2rem 0}

/* ========================================================================
   12. ARTICLE HEAD
   ======================================================================== */
.post__header{margin-bottom:2rem}
.post__kicker{
  display:inline-block;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
  font-weight:600;
  color:var(--accent-2);
  text-decoration:none;
  margin-bottom:.8rem;
}
.post__kicker:hover{color:var(--accent)}
.post__title{
  font-family:var(--serif);
  font-size:clamp(2rem,4vw,2.75rem);
  line-height:1.12;
  letter-spacing:-.02em;
  margin:0 0 1rem;
  text-wrap:balance;
}
.post__byline{
  display:flex;flex-wrap:wrap;gap:1rem 1.4rem;
  font-size:.875rem;color:var(--ink-3);
  margin:0 0 1.4rem;
  padding:0;
}
.post__byline > span{display:inline-flex;align-items:baseline;gap:.4rem}
.post__byline .label{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.7rem;
  font-weight:600;
  color:var(--ink-3);
}
.post__byline time{color:var(--ink-2)}
.post__featured-img{margin:0 0 2rem;border-radius:var(--radius-3);overflow:hidden;border:1px solid var(--rule)}
.post__featured-img img{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}

/* ========================================================================
   13. PROSE — body content (long-form readability)
   ======================================================================== */
.prose{font-size:1.0625rem;line-height:1.75}
/* A raw URL or a long unbroken string in the content must wrap instead of
   widening the page on a phone (tema 53: a references list of raw URLs pushed
   the page to 473px at 320). Tables are excluded - they scroll in their region. */
.prose :is(p,li,dd,dt,blockquote,figcaption,h2,h3,h4){overflow-wrap:anywhere}
.prose > * + *{margin-top:0}
.prose p{margin:0 0 1.2rem}
.prose h2{margin:2.6rem 0 .9rem;scroll-margin-top:5rem;font-size:clamp(1.4rem,2.4vw,1.75rem)}
.prose h3{margin:2rem 0 .7rem;scroll-margin-top:5rem;font-size:clamp(1.15rem,1.8vw,1.3rem)}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose ul,.prose ol{margin:0 0 1.2rem;padding-left:1.6rem}
.prose li{margin:.5rem 0}
.prose img{border-radius:var(--radius-2);border:1px solid var(--rule);margin:1.6rem 0}
.prose a{color:var(--link)}
.prose a:hover{color:var(--accent)}

/* ========================================================================
   14. TL;DR CARD (block pattern)
   ======================================================================== */
.tldr{
  background:var(--card);
  border:1px solid var(--rule);
  border-left:3px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1.2rem 1.4rem;
  margin:0 0 2rem;
}
.tldr__label{
  display:block;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--accent-2);
  margin-bottom:.5rem;
}
.tldr p{margin:0 0 .6rem;font-size:.985rem;line-height:1.6;color:var(--ink-2)}
.tldr p:last-child{margin-bottom:0}
.tldr ul,.tldr ol{margin:.4rem 0 0;padding-left:1.2rem;font-size:.975rem;color:var(--ink-2)}

/* ========================================================================
   15. LEGAL DISCLAIMER CALLOUT
   ======================================================================== */
.legal-disclaimer{
  background:var(--warn-soft);
  border:1px solid color-mix(in oklab,var(--warn) 35%,var(--rule));
  border-radius:var(--radius-3);
  padding:1.1rem 1.3rem;
  margin:0 0 2rem;
  font-size:.925rem;
  line-height:1.55;
  color:var(--ink-2);
}
.legal-disclaimer__label{
  display:flex;align-items:center;gap:.5rem;
  font-weight:700;
  color:var(--warn);
  margin-bottom:.4rem;
  font-size:.85rem;
  letter-spacing:.04em;
}
.legal-disclaimer__label::before{
  content:'';
  display:inline-block;
  width:14px;height:14px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2L1 21h22L12 2zm0 6l7.5 13h-15L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z'/></svg>") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2L1 21h22L12 2zm0 6l7.5 13h-15L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z'/></svg>") no-repeat center / contain;
  flex-shrink:0;
}
.legal-disclaimer p{margin:0 0 .5rem}
.legal-disclaimer p:last-child{margin-bottom:0}

/* ========================================================================
   16. CALLOUT (general block pattern, info/warning)
   ======================================================================== */
.callout{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-left:3px solid var(--accent);
  border-radius:var(--radius-3);
  padding:1rem 1.2rem;
  margin:1.6rem 0;
  font-size:.975rem;
}
.callout.is-style-warning{
  border-left-color:var(--warn);
  background:var(--warn-soft);
}
.callout p{margin:0 0 .6rem}
.callout p:last-child{margin-bottom:0}

/* ========================================================================
   17. META RAIL (right column on article)
   ======================================================================== */
.meta-rail__group{margin-bottom:1.4rem;padding-bottom:1.4rem;border-bottom:1px solid var(--rule)}
.meta-rail__group:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.meta-rail__label{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  color:var(--ink-3);
  margin:0 0 .55rem;
}
.meta-rail__value{font-size:.925rem;color:var(--ink-2);margin:0;line-height:1.5}
.meta-rail__value strong{color:var(--ink);font-weight:600}

/* ========================================================================
   18. TOC (table of contents — scrollspy)
   ======================================================================== */
.toc__list{list-style:none;margin:0;padding:0;font-size:.9rem;line-height:1.4}
.toc__list li{margin:.35rem 0}
.toc__list a{
  color:var(--ink-2);
  text-decoration:none;
  display:block;
  padding:.2rem .55rem;
  border-left:2px solid transparent;
  border-radius:0 var(--radius-1) var(--radius-1) 0;
  transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.toc__list a:hover{color:var(--ink);background:var(--paper-2)}
.toc__list a.is-active{
  color:var(--accent-2);
  border-left-color:var(--accent);
  background:var(--paper-2);
  font-weight:600;
}
@media (prefers-reduced-motion:reduce){
  .toc__list a{transition:none}
}
.toc__list .toc-h3{padding-left:.9rem;font-size:.85rem;color:var(--ink-3)}
.toc__list .toc-h3 a{padding-left:.9rem}

/* ========================================================================
   19. MOBILE TOC DRAWER
   ======================================================================== */
.inline-toc{
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  padding:.8rem 1.2rem;
  margin:0 0 2rem;
}
.inline-toc summary{
  cursor:pointer;
  font-weight:600;
  font-size:.95rem;
  color:var(--ink);
  list-style:none;
  display:flex;align-items:center;gap:.5rem;
  padding:.3rem 0;
  min-height:32px;
}
.inline-toc summary::-webkit-details-marker{display:none}
.inline-toc summary::before{
  content:'';
  display:inline-block;
  width:0;height:0;
  border-left:5px solid currentColor;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  transition:transform .15s ease;
  flex-shrink:0;
}
.inline-toc[open] summary::before{transform:rotate(90deg)}
.inline-toc .toc__list{margin-top:.6rem;padding-left:.4rem}
@media (prefers-reduced-motion:reduce){
  .inline-toc summary::before{transition:none}
}

.toc-drawer-toggle{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:999px;
  padding:.5rem 1rem;
  font-size:.9rem;
  color:var(--ink-2);
  margin:0 0 1rem;
  min-height:44px;
}
.toc-drawer-toggle:hover{color:var(--ink);background:var(--card)}
@media (min-width:1080px){
  .toc-drawer-toggle{display:none}
}
.toc-drawer{
  position:fixed;
  inset:0;
  z-index:var(--z-drawer);
  background:rgba(26,36,33,.5);
  display:none;
  padding:5rem 1rem 1rem;
}
.toc-drawer[data-open="true"]{display:block}
.toc-drawer__panel{
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  padding:1.4rem;
  max-width:32rem;
  margin:0 auto;
  max-height:80vh;
  overflow:auto;
}
.toc-drawer__close{
  float:right;
  width:36px;height:36px;
  display:grid;place-items:center;
  border-radius:var(--radius-2);
  color:var(--ink-2);
}
.toc-drawer__close:hover{color:var(--ink);background:var(--paper-2)}

/* ========================================================================
   20. PAGINATION
   ======================================================================== */
.pagination{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;
  margin:3rem 0 2rem;
  padding-top:1.5rem;
  border-top:1px solid var(--rule);
}
.pagination a,.pagination span{
  display:inline-grid;place-items:center;
  min-width:44px;height:44px;
  padding:0 .8rem;
  border-radius:var(--radius-2);
  font-size:.95rem;
  color:var(--ink-2);
  text-decoration:none;
  border:1px solid var(--rule);
}
.pagination a:hover{color:var(--ink);background:var(--paper-2);border-color:var(--ink-3)}
.pagination .current{background:var(--accent);color:var(--paper);border-color:var(--accent);font-weight:600}
.pagination .dots{border:0;background:transparent}

/* ========================================================================
   21. POST NAV (prev / next)
   ======================================================================== */
.post-nav{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  margin:3rem 0 0;
  padding-top:1.6rem;
  border-top:1px solid var(--rule);
}
@media (min-width:640px){.post-nav{grid-template-columns:1fr 1fr}}
.post-nav a{
  display:block;
  padding:1rem 1.2rem;
  background:var(--card);
  border:1px solid var(--rule);
  border-radius:var(--radius-3);
  text-decoration:none;
  color:var(--ink);
  transition:border-color .15s ease;
}
.post-nav a:hover{border-color:var(--accent)}
.post-nav__label{
  display:block;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
  font-weight:600;
  color:var(--ink-3);
  margin-bottom:.3rem;
}
.post-nav__title{font-family:var(--serif);font-size:1.025rem;line-height:1.3;color:var(--ink)}
.post-nav__next{text-align:right}

/* ========================================================================
   22. FOOTER
   ======================================================================== */
.site-footer{
  border-top:1px solid var(--rule);
  padding:clamp(2.5rem,5vw,4rem) 0 clamp(1.5rem,3vw,2.5rem);
  margin-top:clamp(3rem,6vw,5rem);
  font-size:.925rem;
  color:var(--ink-2);
}
.site-footer__top{
  display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.6rem;
  margin-bottom:2rem;
  padding-bottom:1.6rem;
  border-bottom:1px solid var(--rule);
}
.site-footer__brand{display:flex;flex-direction:column;gap:.4rem;max-width:24rem}
.site-footer__name{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--ink)}
.site-footer__tag{color:var(--ink-3);font-size:.9rem;line-height:1.5;margin:0}
.site-footer__links{display:flex;flex-wrap:wrap;gap:1.4rem;font-size:.9rem}
.site-footer__links a{color:var(--ink-2);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.site-footer__links a:hover{color:var(--ink)}
.site-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.825rem;color:var(--ink-3)}
.site-footer__disclaimer{max-width:50rem;line-height:1.55;color:var(--ink-3);font-size:.825rem;margin:1rem 0 0}

/* ========================================================================
   23. COMMENTS
   ======================================================================== */
.comments-area{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--rule)}
.comments-title{font-family:var(--serif);font-size:1.4rem;margin:0 0 1.4rem}
.comment-list{list-style:none;margin:0;padding:0}
.comment-list li{margin:0 0 1.4rem;padding:1rem 1.2rem;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius-3)}
.comment-meta{font-size:.875rem;color:var(--ink-3);margin-bottom:.5rem}
.comment-meta cite{font-style:normal;color:var(--ink);font-weight:600}
.comment-form label{display:block;font-size:.875rem;margin:.8rem 0 .3rem;color:var(--ink-2);font-weight:500}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{
  width:100%;
  background:var(--paper-2);
  border:1px solid var(--rule);
  border-radius:var(--radius-2);
  padding:.6rem .8rem;
  font:inherit;
  color:var(--ink);
  min-height:44px;
}
.comment-form textarea{min-height:8rem;resize:vertical}
.form-submit input[type="submit"],.button{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent);
  color:var(--paper);
  border:0;
  padding:.7rem 1.4rem;
  border-radius:var(--radius-2);
  font:inherit;
  font-weight:600;
  cursor:pointer;
  min-height:44px;
  min-width:44px;
  transition:background .15s ease;
}
.form-submit input[type="submit"]:hover,.button:hover{background:var(--accent-2)}
@media (prefers-reduced-motion:reduce){
  .form-submit input[type="submit"],.button{transition:none}
}

/* ========================================================================
   24. 404 / SEARCH
   ======================================================================== */
.error-404,.search-results-head{padding:clamp(3rem,6vw,5rem) 0;text-align:center}
.error-404__code{font-family:var(--serif);font-size:clamp(4rem,12vw,7rem);line-height:1;color:var(--accent);letter-spacing:-.04em;margin:0}
.error-404__title{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2rem);margin:.6rem 0 1rem}
.error-404__lede{color:var(--ink-2);max-width:36rem;margin:0 auto 1.4rem;line-height:1.6}
.error-404__suggest{max-width:34rem;margin:1.6rem auto 0;text-align:left}

/* ========================================================================
   25. WP HELPERS
   ======================================================================== */
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;padding:0;margin:-1px;border:0;word-wrap:normal!important}
.alignleft{float:left;margin:.5rem 1.4rem 1rem 0}
.alignright{float:right;margin:.5rem 0 1rem 1.4rem}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.alignwide{max-width:min(var(--measure-wide),100%);margin-left:auto;margin-right:auto}
.alignfull{max-width:100%;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw}
.wp-block-image img{border-radius:var(--radius-2)}
.wp-block-quote{border-left:3px solid var(--accent);padding:.4rem 0 .4rem 1.2rem;margin:1.6rem 0;font-family:var(--serif);font-style:italic;color:var(--ink-2)}
.wp-block-pullquote{border:0;padding:1.5rem 1.5rem;text-align:left;font-family:var(--serif);font-size:1.3rem;line-height:1.4}
.wp-block-table{margin:1.5rem 0}
.wp-block-table table{border:1px solid var(--rule)}

/* ========================================================================
   28. THE DEADLINE BOARD - every state by its code, the states under the general deadline of their guide, the guides most recently published
   ======================================================================== */
:root{--band:#ebe9e3}
[data-theme="dark"]{--band:#1d2025}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--band:#1d2025}}
/* an anchor lands below the sticky header: theme.js sets --tfi-pad to its height (taller where it wraps, or with a menu);
   without the script, a margin that fits the header without a menu */
html{scroll-padding-top:var(--tfi-pad,5rem)}
@media (max-width:47.99rem){html{scroll-padding-top:var(--tfi-pad,11.5rem)}}

/* page head of archive, search, 404 and pages */
.guide-head{padding:clamp(2.2rem,5vw,3.4rem) 0 clamp(1.4rem,3vw,2rem);border-bottom:1px solid var(--rule)}
.guide-head__eyebrow{margin:0 0 .5rem;font-family:var(--display);font-size:1.15rem;letter-spacing:.08em;color:var(--accent)}
.guide-head__title{margin:0 0 .8rem;max-width:26ch;font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,4.4vw,2.8rem);line-height:1.1;overflow-wrap:anywhere}
.guide-head__lede{margin:0 0 .5rem;max-width:60ch;color:var(--ink-2);overflow-wrap:anywhere}

.tfi-section-title{margin:0 0 .5rem;font-family:var(--serif);font-weight:600;font-size:clamp(1.6rem,3.6vw,2.2rem);line-height:1.15}

/* hero: the title, then every state by its two-letter code */
.tfi-hero{padding:clamp(2rem,5vw,3.4rem) 0 clamp(1.8rem,4vw,2.8rem);border-bottom:1px solid var(--rule)}
.tfi-hero__eyebrow{margin:0 0 .6rem;font-family:var(--display);font-size:1.25rem;letter-spacing:.1em;color:var(--accent)}
.tfi-hero__title{margin:0 0 1rem;max-width:22ch;font-family:var(--serif);font-weight:600;font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.06;letter-spacing:-.01em;text-wrap:balance;overflow-wrap:anywhere}
.tfi-hero__lede{margin:0 0 1rem;max-width:62ch;font-size:1.1rem;color:var(--ink-2)}
.tfi-hero__tally{margin:0 0 1.6rem;font-family:var(--display);font-size:1.3rem;letter-spacing:.06em;color:var(--ink-2)}
.tfi-hero__tally strong{font-weight:400;font-size:1.9rem;color:var(--ink)}
.tfi-codes__title{margin:0 0 .7rem;font-family:var(--display);font-weight:400;font-size:1.5rem;letter-spacing:.08em;color:var(--ink)}
.tfi-codes__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.4rem,1fr));gap:.4rem;margin:0;padding:0;list-style:none}
.tfi-codes__list li{margin:0}
.tfi-code{display:flex;flex-direction:column;justify-content:center;min-height:4rem;height:100%;padding:.35rem .6rem;border:1px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink);text-decoration:none}
.tfi-code__c{font-family:var(--display);font-size:1.9rem;line-height:1;letter-spacing:.04em;color:var(--accent)}
.tfi-code__n{font-size:.82rem;line-height:1.25;color:var(--ink-2);overflow-wrap:anywhere}
.tfi-code:hover{border-color:var(--accent);background:var(--paper-2)}
.tfi-code:hover .tfi-code__n{color:var(--ink)}
.tfi-code:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

/* the board: one band per deadline, the number of years large on the left, the states on the right */
.tfi-board{padding:clamp(2.2rem,5vw,3.4rem) 0;border-bottom:1px solid var(--rule)}
.tfi-board__note{margin:0 0 1.6rem;max-width:66ch;color:var(--ink-2)}
.tfi-board__cols{display:grid;gap:.6rem}
.tfi-col{display:grid;gap:.4rem 1.6rem;align-items:start;padding:1rem clamp(.9rem,2.5vw,1.4rem);border-radius:4px;background:var(--band)}
@media (min-width:40rem){.tfi-col{grid-template-columns:9.5rem minmax(0,1fr)}}
.tfi-col__head{display:flex;align-items:baseline;gap:.5rem;margin:0;font-weight:400;line-height:1}
.tfi-col__num{font-family:var(--display);font-size:clamp(4.4rem,9vw,6.2rem);line-height:.82;color:var(--ink)}
.tfi-col__unit{font-family:var(--display);font-size:1.6rem;letter-spacing:.08em;color:var(--accent)}
.tfi-col__unit--guide{font-size:1.75rem;line-height:1.05;color:var(--accent-2)}
.tfi-col__count{margin:0;font-size:.95rem;color:var(--ink-3)}
@media (min-width:40rem){.tfi-col__count{grid-column:1;grid-row:2}.tfi-col__list{grid-column:2;grid-row:1 / span 2}}
.tfi-col__list{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}
.tfi-col__list li{margin:0}
.tfi-col__list a{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 .75rem 0 .5rem;border:1px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink);text-decoration:none;font-size:1rem}
.tfi-col__code{font-family:var(--display);font-size:1.2rem;letter-spacing:.05em;color:var(--accent)}
/* + : the deadline row of this guide names another period for some deaths */
.tfi-col__more{font-family:var(--display);font-size:1.35rem;line-height:1;color:var(--accent-2)}
.tfi-col__list a:hover{border-color:var(--accent)}
.tfi-col__list a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

/* recently published: rows with the code of the state */
.tfi-recent{padding:clamp(2.2rem,5vw,3.4rem) 0 clamp(2.4rem,6vw,3.6rem)}
.tfi-rows{display:grid;gap:0 2rem;margin:1rem 0 0;padding:0;list-style:none}
@media (min-width:56rem){.tfi-rows{grid-template-columns:1fr 1fr}}
.tfi-row{display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:0 .9rem;align-items:start;margin:0;padding:.9rem 0;border-bottom:1px solid var(--rule)}
.tfi-row__code{grid-row:1 / span 2;font-family:var(--display);font-size:2.2rem;line-height:1;color:var(--accent)}
.tfi-row__title{margin:0;font-family:var(--serif);font-weight:600;font-size:1.12rem;line-height:1.3}
.tfi-row__title a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.tfi-row__title a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.tfi-row__title a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.tfi-row__deadline{grid-column:2;margin:0;font-size:.92rem;color:var(--ink-3)}
.tfi-empty{color:var(--ink-2)}

/* ========================================================================
   29. THE STATE FILE - the trail, the file (code, title, deadline dial, sections), the guide and its at-a-glance table, the same deadline, every state
   ======================================================================== */
.tfi-trail{padding-top:1.1rem}
.tfi-trail__list{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem;margin:0;padding:0;list-style:none;font-size:.95rem;color:var(--ink-3)}
.tfi-trail__list li{margin:0}
.tfi-trail__list li + li::before{content:'\203A';content:'\203A' / '';margin-right:.5rem;color:var(--ink-3)}
.tfi-trail__list a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2)}
.tfi-trail__list [aria-current]{color:var(--ink);overflow-wrap:anywhere}

.tfi-file{padding-top:.6rem;padding-bottom:clamp(1.4rem,3vw,2rem);border-bottom:1px solid var(--rule)}
.tfi-file__grid{display:grid;gap:1rem 1.6rem;align-items:start}
@media (min-width:44rem){.tfi-file__grid{grid-template-columns:auto minmax(0,1fr)}}
@media (min-width:68rem){.tfi-file__grid{grid-template-columns:auto minmax(0,1fr) 15rem}}
.tfi-file__code{display:grid;place-items:center;width:6.6rem;height:6.6rem;margin:0;border:2px solid var(--accent);border-radius:4px;font-family:var(--display);font-size:3.8rem;line-height:1;letter-spacing:.03em;color:var(--accent)}
.tfi-file__kicker{margin:0 0 .4rem;font-family:var(--display);font-size:1.2rem;letter-spacing:.1em;color:var(--accent-2)}
.tfi-file__title{margin:0 0 .6rem;font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,4.2vw,2.9rem);line-height:1.1;text-wrap:balance;overflow-wrap:anywhere}
.tfi-file__meta{margin:0;font-size:.95rem;color:var(--ink-3)}
/* the deadline dial */
.tfi-dial{min-width:0}
@media (min-width:44rem) and (max-width:67.99rem){.tfi-dial{grid-column:1 / -1}}
.tfi-dial__link,.tfi-dial__guide{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 .8rem;align-items:center;margin:0;padding:.9rem 1rem;border-radius:4px;background:var(--band);color:var(--ink);text-decoration:none}
.tfi-dial__link:hover{outline:2px solid var(--accent)}
.tfi-dial__link--more{box-shadow:inset 4px 0 0 var(--accent-2)}
.tfi-dial__link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.tfi-dial__num{grid-row:1 / span 2;font-family:var(--display);font-size:5rem;line-height:.82;color:var(--ink)}
.tfi-dial__unit{font-family:var(--display);font-size:1.6rem;letter-spacing:.08em;color:var(--accent)}
.tfi-dial__unit--guide{grid-row:1 / span 2;font-size:1.9rem;color:var(--accent-2)}
.tfi-dial__note{font-size:.9rem;line-height:1.35;color:var(--ink-2)}
a.tfi-dial__note{display:inline-flex;align-items:center;min-height:44px;color:var(--link)}
.tfi-file__sections{margin-top:1.3rem}
.tfi-file__toc{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}
.tfi-file__toc li{margin:0}
.tfi-file__toc a{display:inline-flex;align-items:center;min-height:44px;padding:0 .8rem;border:1px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink-2);font-size:.95rem;text-decoration:none}
.tfi-file__toc a:hover,.tfi-file__toc a.is-active{border-color:var(--accent);color:var(--ink)}
.tfi-file__toc a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

.tfi-guide-body{padding-top:clamp(1.6rem,4vw,2.4rem);padding-bottom:clamp(1.6rem,4vw,2.4rem)}
.tfi-guide-body .prose{max-width:44rem;margin:0 auto}
.prose h2{scroll-margin-top:5rem}
/* the guide's tables: the at-a-glance table and any other */
.prose table{width:100%;margin:1.2rem 0 1.6rem;border-collapse:collapse;font-size:.98rem;line-height:1.5}
.prose th,.prose td{padding:.6rem .7rem;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
.prose thead th{border-bottom:2px solid var(--ink);font-family:var(--display);font-weight:400;font-size:1.15rem;letter-spacing:.06em;color:var(--ink-2)}
.prose tbody td:first-child{width:34%;font-weight:600;color:var(--ink)}
/* the row the deadline dial points to */
.prose #tfi-deadline td{background:var(--band)}
.prose #tfi-deadline td:first-child{box-shadow:inset 4px 0 0 var(--accent)}
.prose iframe,.prose embed,.prose object{display:block;max-width:100%}
.prose hr{margin:1.6rem 0;border:0;border-top:1px solid var(--rule)}

.tfi-guide__end{padding-bottom:clamp(2.4rem,6vw,3.6rem)}
.tfi-guide__end .legal-disclaimer{max-width:44rem;margin:0 auto 2rem}
.tfi-same,.tfi-all{max-width:60rem;margin:0 auto 1.8rem}
.tfi-same__title,.tfi-all__title{margin:0 0 .7rem;font-family:var(--serif);font-weight:600;font-size:1.25rem;line-height:1.3}
.tfi-same__list,.tfi-all__list{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}
.tfi-same__list li,.tfi-all__list li{margin:0}
.tfi-same__link{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 .75rem 0 .5rem;border:1px solid var(--rule);border-radius:3px;background:var(--card);color:var(--ink);text-decoration:none}
.tfi-same__code{font-family:var(--display);font-size:1.2rem;letter-spacing:.05em;color:var(--accent)}
.tfi-all__link{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 .3rem;border:1px solid var(--rule);border-radius:3px;font-family:var(--display);font-size:1.25rem;letter-spacing:.05em;color:var(--accent);text-decoration:none}
.tfi-all__link[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.tfi-same__link:hover,.tfi-all__link:hover{border-color:var(--accent)}
.tfi-same__link:focus-visible,.tfi-all__link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.tfi-back{max-width:60rem;margin:0 auto}
.tfi-back a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

@media (forced-colors:active){
  .tfi-code,.tfi-col,.tfi-col__list a,.tfi-file__code,.tfi-dial__link,.tfi-dial__guide,.tfi-file__toc a,.tfi-same__link,.tfi-all__link{border:1px solid CanvasText}
  .prose #tfi-deadline td:first-child{border-left:4px solid Highlight}
}
@media print{
  .tfi-codes,.tfi-trail,.tfi-file__sections,.tfi-same,.tfi-all,.tfi-back{display:none}
  .tfi-col,.tfi-dial__link,.tfi-dial__guide{background:none;border:1px solid #999}
}

/* ========================================================================
   26. PRINT
   ======================================================================== */
@media print{
  .topbar,.site-footer,.meta-rail,.toc-drawer,.reading-progress,.post-nav,.comments-area,.skip-link{display:none!important}
  html:root:root{--paper:#fff;--paper-2:#fff;--card:#fff;--ink:#000;--ink-2:#222;--ink-3:#444;--rule:#999;--accent:#000;--accent-2:#000;--link:#000}
  body{background:#fff;color:#000}
  .article-shell{display:block;padding:0}
  .article-main{max-width:none}
  a{color:inherit;text-decoration:underline}
  .prose h2,.prose h3{break-after:avoid}
  .prose img{max-width:100%;break-inside:avoid}
}

/* ========================================================================
   27. GLOBAL REDUCED MOTION OVERRIDE (WD-16 safety net)
   ======================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}
