/* Revista cultural: shared identity. Future palettes only replace these tokens;
   reader preferences and layout remain independent. Fonts are hosted locally. */
@font-face{font-family:Newsreader;src:url('fonts/Newsreader.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:Newsreader;src:url('fonts/Newsreader-Italic.woff2') format('woff2');font-weight:400 600;font-style:italic;font-display:swap}
@font-face{font-family:Commissioner;src:url('fonts/Commissioner.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
:root{
  --paper:#fcfaf8;--surface:#fff;--ink:#33252f;--muted:#6f5d68;
  --line:#d9ced4;--accent:#883f67;--wash:#f4e7ee;--warm:#a74232;
  --warm-wash:#fbece5;--highlight:#e8aaa0;--on-highlight:#33252f;
  --on-accent:#fff;--deep:#33252f;--deep-text:#f5ebf1;
  --deep-muted:#d7c5cf;--deep-line:#76616e;--deep-accent:#e4adc9;
  --deep-hover:#41303c;--shadow:0 14px 42px #33252f10;
  --backdrop:#251f24d0;--sage:var(--highlight);
  --serif:Newsreader,Charis,Georgia,serif;
  --sans:Commissioner,Charis,Arial,sans-serif;
  --mono:Commissioner,Charis,Arial,sans-serif;
  --code:'SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --header:136px;color-scheme:light;
}
html[data-theme=dark]{
  --paper:#251f24;--surface:#302630;--ink:#f5ebf1;--muted:#cdbbc7;
  --line:#655461;--accent:#e4adc9;--wash:#402a38;--warm:#f0b1a1;
  --warm-wash:#493029;--highlight:#764f47;--on-highlight:#f5ebf1;
  --on-accent:#251f24;--deep:#1e181d;--deep-text:#f5ebf1;
  --deep-muted:#d7c5cf;--deep-line:#655461;--deep-accent:#e4adc9;
  --deep-hover:#302630;color-scheme:dark;
}
body{font-optical-sizing:auto}
h1,h2{font-weight:500;letter-spacing:-.025em}
::selection{background:var(--highlight);color:var(--on-highlight)}
:focus-visible{outline-color:var(--warm)}
.btn{border-radius:2px;font-weight:600}
.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn-primary:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-sage,.btn-sage:hover{color:var(--on-highlight)}
.eyebrow,.card-meta,.filter-label,.view-label{font-weight:600;letter-spacing:.09em}
.dot{background:var(--warm)}

/* Centered masthead, with a separate row of explicit destinations. */
.header-inner{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:88px 47px;gap:0 20px}
.site-header .brand{grid-column:2;grid-row:1;justify-self:center;gap:0}
.site-header .brand-mark{display:none}
.site-header .brand-text{font:500 39px/1.1 var(--serif);letter-spacing:-.035em;white-space:nowrap}
.site-header .brand-text span{display:inline;font-weight:500;font-style:italic;color:var(--accent)}
.main-nav{grid-column:1/-1;grid-row:2;justify-content:center;align-self:stretch;margin:0;gap:36px;border-top:1px solid var(--line)}
.main-nav a{font-size:14px;font-weight:500;padding-block:12px}
.main-nav a:hover:after,.main-nav a[aria-current=page]:after{background:var(--warm);bottom:0}
.header-tools{grid-column:3;grid-row:1;justify-self:end;margin:0;gap:7px}
.search-trigger{border:0;background:transparent;font-size:13px;color:var(--ink)}
.search-trigger kbd{display:none}
.search-trigger:hover{background:var(--wash)}
.footer-about .brand-text{font-size:22px;font-weight:500}
.footer-about .brand-text span{font-style:italic;color:var(--accent)}
.brand-mark{background:var(--accent);color:var(--on-accent)}

/* The opening example stays interactive, with the same quiet reading surface. */
.hero{grid-template-columns:1.1fr 1fr;gap:72px;padding-block:58px 62px}
.hero h1{font-size:clamp(48px,5vw,68px);line-height:1.04;max-width:15ch;margin:23px 0}
.hero h1 em{display:inline;font-size:1em;margin:0;font-weight:500}
.hero .lede{max-width:490px;font-size:17px;line-height:1.75}
.hero-actions{margin-top:27px}
.hero-note{font-size:11px;letter-spacing:.02em;line-height:1.6}
.hero-lab{background:transparent;color:var(--ink);padding:5px 0 5px 36px;border-left:1px solid var(--line);border-radius:0;min-height:0;overflow:visible}
.hero-lab:before,.sentence-art .qmark,.status-light{display:none}
.lab-caption{color:var(--warm);font-size:11px;font-weight:600;letter-spacing:.08em}
.sentence-art{padding:29px 0 17px;text-align:left}
.utterance{font:500 clamp(34px,3.2vw,44px)/1.16 var(--serif);letter-spacing:-.025em}
.utterance em{color:var(--accent);border:0;padding:0;font-weight:500}
.sentence-path{display:none}
.demo-controls{gap:0;border-bottom:1px solid var(--line)}
.demo-controls button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:13px 4px;color:var(--muted);font-size:13px;font-weight:500}
.demo-controls button[aria-pressed=true]{background:transparent;color:var(--accent);border-color:var(--accent)}
.demo-controls button:hover{background:var(--wash)}
.demo-result{background:transparent;border:0;border-radius:0;padding:19px 0 0;margin:0;min-height:124px}
.demo-result strong{color:var(--ink);font-size:15px;font-weight:600}
.demo-result p{font-size:14px;color:var(--muted);line-height:1.7;max-width:49ch}
.demo-foot{border-top:1px solid var(--line);padding-top:16px;margin-top:16px;gap:15px;align-items:baseline;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.demo-foot a{color:var(--accent);border-color:var(--line)}

.section{padding-block:68px}
.section-heading h2{font-size:42px}
.section-heading p{font-size:15px}
.available-band{background:var(--surface);border-block:1px solid var(--line)}
.feature-card{border:0;border-radius:0;background:transparent;box-shadow:none}
.feature-card:hover{transform:none;box-shadow:none}
.feature-art{background:var(--wash);border:0;height:146px}
.feature-card:nth-child(2) .feature-art{background:var(--warm-wash)}
.feature-card:nth-child(3) .feature-art{background:var(--paper)}
.feature-copy{padding:24px 0 0}
.feature-copy h3{font-size:28px;font-weight:500}
.feature-copy p{font-size:14px}
.feature-card:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.area-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.area-card{min-height:222px;padding:26px}
.area-card h3{font-size:17px;font-weight:600;letter-spacing:-.01em}
.area-card p{font-size:14px}
.area-bottom{font-size:12px}
.area-num{font-variant-numeric:tabular-nums}
.route-card h3{font-weight:500;font-size:28px}
.route-card .card-meta{color:var(--deep-accent)}
.route-card .route-bottom{font-size:12px}
.row-body strong{font-size:16px;font-weight:500}
.row-body small{font-size:12px}
.row-code{font-variant-numeric:tabular-nums}
.area-filter-list button{font-size:13px}
.page-intro h1{font-size:56px}
.page-intro .lede{font-size:17px}

/* Comfortable text measure; Charis supplies linguistic glyphs not in Newsreader. */
.prose,.intro-summary,.guided-card .excerpt,.term-example{font-family:var(--serif)}
.prose{line-height:1.78}
.prose pre,.prose code{font-family:var(--code)}
.prose strong,.prose b{font-weight:600}
.prose h2{font-size:32px;font-weight:500}
.prose h3{font-size:20px;letter-spacing:0}
.intro-summary{font-size:23px;line-height:1.7}
.intro-summary>p:first-child:first-letter{float:none;font:inherit;color:inherit;padding:0;margin:0}
.guided-card .excerpt{font-size:20px;line-height:1.75}
.article-heading h1{font-weight:500;line-height:1.08;max-width:23ch}
.article-meta,.reader-sidebar,.toc-list,.reader-prior{font-size:12px}
.reader-sidebar{max-height:calc(100dvh - var(--header) - 48px)}
.reader-tabs button{font-size:14px}
.reader-focus .header-inner{display:flex;justify-content:center}
.term-card h2{font-size:30px;font-weight:500}
.term-card p{font-size:15px}
.term-example{font-size:18px}
.term-card>a{font-size:11px}
.lab-explanation p,.route-overview p,.about-text p{font-size:16px}
.lab-warning{font-size:12px}
.footer-desc,.footer-col a{font-size:13px}
.search-result{font-size:15px}
.search-result small{font-size:12px}
.search-hint{font-size:11px}

@media(max-width:1100px){
  :root{--header:122px}
  .header-inner{grid-template-rows:76px 45px}
  .site-header .brand-text{font-size:34px}
  .search-trigger span{display:none}
  .hero{gap:40px}
  .hero-lab{padding-left:26px}
  .hero .lede{font-size:16px}
}
@media(max-width:960px){
  :root{--header:78px}
  .header-inner{display:flex;gap:15px}
  .site-header .brand{margin-right:auto}
  .site-header .brand-text{font-size:30px}
  .header-tools{margin-left:auto}
  .hero{padding-top:44px;gap:32px}
  .hero h1{font-size:54px}
  .hero-lab{padding-left:24px}
  .demo-result{min-height:155px}
  .area-card:last-child{display:flex;grid-column:auto;gap:0}
  .area-card:last-child .area-top{margin-bottom:20px}
  .area-card:last-child h3{margin-bottom:10px}
  .area-card:last-child .area-bottom{margin-top:auto;padding-top:20px}
  .area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .area-card{padding:24px}
}
@media(max-width:740px){
  :root{--header:80px}
  .site-header .brand-text{font-size:25px;line-height:1.02;white-space:normal}
  .site-header .brand-text span{display:block}
  .header-tools{gap:2px}
  .header-inner{gap:12px}
  .hero{grid-template-columns:1fr;padding-block:37px 42px;gap:34px}
  .hero h1{font-size:50px;max-width:16ch;line-height:1.05}
  .hero .lede{font-size:16px}
  .hero-actions{gap:12px}
  .hero-lab{border-left:0;border-top:1px solid var(--line);padding:27px 0 0;min-height:0}
  .utterance{font-size:38px}
  .sentence-art{padding-block:25px 16px}
  .demo-result{min-height:128px}
  .section{padding-block:44px}
  .section-heading h2{font-size:36px}
  .feature-card{grid-template-columns:100px minmax(0,1fr);gap:20px;padding-block:22px;border-top:1px solid var(--line)}
  .featured-grid{gap:0}
  .feature-art{height:100%;min-height:170px;padding:10px}
  .feature-copy{padding:0;min-width:0}
  .feature-copy h3{font-size:25px}
  .feature-copy p{font-size:13px}
  .sign-art svg{width:95px}
  .area-card{padding:22px 17px;min-height:240px}
  .area-card h3{font-size:16px}
  .area-card p{font-size:13px}
  .area-bottom{font-size:11px}
  .page-intro h1{font-size:42px}
  .page-intro .lede{font-size:16px}
  .row-body strong{font-size:15px}
  .row-body small{font-size:11px}
  .reader-tabs button{font-size:12px}
  .article-heading h1{font-size:38px}
  .article-meta{font-size:11px}
  .prose h2{font-size:29px}
  .prose h3{font-size:19px}
  .intro-summary{font-size:22px}
  .intro-summary>p:first-child:first-letter{font:inherit}
  .footer-about .brand-text{font-size:22px}
}
@media(max-width:380px){
  .container{width:calc(100% - 32px)}
  .site-header .brand-text{font-size:23px}
  .hero h1{font-size:44px}
  .hero-actions .btn{padding:12px 14px}
  .header-tools .icon-btn{width:32px}
  .search-trigger{padding:8px}
  .feature-card{grid-template-columns:80px minmax(0,1fr);gap:16px}
  .area-card{padding:20px 13px}
  .area-card h3{font-size:15px}
  .article-heading h1{font-size:34px}
}
@media print{
  .prose{font-size:11pt;line-height:1.5}
  .prose h2{font-size:17pt}.prose h3{font-size:13pt}
  .article-heading h1{font-size:25pt}.article-meta{font-size:8pt}
}
