/* THE TWO FACES, and one radius.
   --ui-font (Inter) is the APPARATUS: counts, chips, labels, buttons, nav.
   --ui-display (Newsreader) is what a reader came to READ: the h1, the
   story headlines, the wordmark. Measured 2026-09-10: the front door was
   setting all 1,826 rendered elements in Inter, so a newspaper of sixty
   headlines was typeset as a settings screen.
   Every border-radius on the public surface is 2px (303 declarations,
   28 sheets, 2026-09-10). It was fifteen different values. A genuine
   circle keeps 50%; nothing else rounds. */
/* Canonical site palette. Page-specific sheets consume these shared aliases. */
/* Inter 4.001, the weight axis only. The full variable file was 352KB, the
   largest thing on every page and 58% of the front door's transfer on a phone;
   the optical-size axis is pinned at text size, the Greek and Cyrillic glyphs
   ride a second face the browser fetches only when one renders. 107KB. */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter-variable-latin.woff2') format('woff2');unicode-range:U+0000-024F,U+0259,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20C0,U+2113,U+2122,U+2190-21FF,U+2212,U+2215,U+25B2,U+25BC,U+25BE,U+2713,U+2C60-2C7F,U+A720-A7FF,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter-variable-greek-cyrillic.woff2') format('woff2');unicode-range:U+0370-03FF,U+0400-052F,U+1C80-1C8A,U+1F00-1FFF,U+2DE0-2DFF,U+A640-A69F}
:root:root{color-scheme:light;--ui-bg:#f6f8fc;--ui-panel:#ffffff;--ui-ink:#17263d;--ui-muted:#52637a;--ui-rule:#dce4ef;--ui-accent:#2458a6;--ui-wash:#eaf0fa;--ui-on-accent:#ffffff;--ui-font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ui-display:Newsreader,"EB Garamond",Georgia,serif}
@media(prefers-color-scheme:dark){:root:root:not([data-theme="light"]){color-scheme:dark;--ui-bg:#0b1422;--ui-panel:#111e30;--ui-ink:#edf3ff;--ui-muted:#aebed2;--ui-rule:#2b3c54;--ui-accent:#a4c7ff;--ui-wash:#1a2d48;--ui-on-accent:#10213b}}
:root:root[data-theme="dark"]{color-scheme:dark;--ui-bg:#0b1422;--ui-panel:#111e30;--ui-ink:#edf3ff;--ui-muted:#aebed2;--ui-rule:#2b3c54;--ui-accent:#a4c7ff;--ui-wash:#1a2d48;--ui-on-accent:#10213b}
:root:root,html body{--bg:var(--ui-bg);--paper:var(--ui-bg);--parchment:var(--ui-bg);--panel:var(--ui-panel);--card:var(--ui-panel);--card-warm:var(--ui-wash);--wash:var(--ui-wash);--ink:var(--ui-ink);--text:var(--ui-ink);--muted:var(--ui-muted);--ink-muted:var(--ui-muted);--text-muted:var(--ui-muted);--faint:var(--ui-muted);--ink-subtle:var(--ui-muted);--text-subtle:var(--ui-muted);--rule:var(--ui-rule);--accent:var(--ui-accent);--marian:var(--ui-accent);--marian-deep:var(--ui-accent);--lapis:var(--ui-accent);--gold:var(--ui-accent);--gold-deep:var(--ui-accent);--sans:var(--ui-font)}
html body{background:var(--ui-bg);color:var(--ui-ink);font-family:var(--ui-font);-webkit-font-smoothing:antialiased}
html body :is(h1,h2,h3,button,input,select,textarea){font-family:var(--ui-font)}
html body :is(h1,h2,h3){letter-spacing:-.025em}
[hidden]{display:none!important}::selection{background:var(--ui-accent);color:var(--ui-on-accent)}
body.find-page,body.workspace-page{margin:0;background:var(--ui-bg);color:var(--ui-ink);font:16px/1.5 var(--ui-font);-webkit-font-smoothing:antialiased}body.find-page *,body.workspace-page *{box-sizing:border-box}body.find-page button,body.find-page input,body.find-page select,body.workspace-page button,body.workspace-page input,body.workspace-page select{font:inherit}body.find-page a,body.workspace-page a{color:var(--ui-accent)}button{cursor:pointer}:focus-visible{outline:3px solid var(--ui-accent);outline-offset:4px}
/* Parish detail pages keep their semantic sections and source receipts. */
body:has(.p-wrap){background:var(--ui-bg);color:var(--ui-ink);font-family:var(--ui-font);--bg:var(--ui-bg);--card:var(--ui-panel);--card-warm:var(--ui-wash);--ink:var(--ui-ink);--ink-muted:var(--ui-muted);--rule:var(--ui-rule);--marian:var(--ui-accent)}
.p-wrap .p-head h1{font:650 clamp(32px,4vw,54px)/1.08 var(--ui-font);letter-spacing:-.04em}.p-wrap .p-eyebrow,.p-wrap .p-action,.p-wrap h2,.p-wrap h3,.p-wrap .p-day-h{font-family:var(--ui-font);letter-spacing:0;text-transform:none}.p-wrap .p-place{font-style:normal;font-size:16px;color:var(--ui-muted)}.p-wrap .p-lede{font-size:16px}.p-wrap .p-action{border-radius:2px;font-size:14px}.p-wrap .p-head{padding:40px 0 30px}.p-wrap .p-section,.p-wrap .p-contact{border-radius:2px}.p-wrap .p-week{border-radius:2px}.p-wrap .p-day-h{font-size:13px}.p-wrap .p-mtime{font-family:var(--ui-font);font-size:16px}.p-wrap .p-rail{font-size:15px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Map controls use the same visual language as the directory. */
body.world-map-page{--bg:var(--ui-bg);--card:var(--ui-panel);--ink:var(--ui-ink);--ink-muted:var(--ui-muted);--rule:var(--ui-rule);--gold:var(--ui-accent);--gold-deep:var(--ui-accent);--marian:var(--ui-accent);font-family:var(--ui-font)}
.world-map-page .shell{border-bottom:1px solid var(--ui-rule);box-shadow:0 2px 15px #172a3d0a}.world-map-page .brand-word{font:700 15px var(--ui-font);letter-spacing:-.025em;text-transform:none}.world-map-page .brand-rose{width:25px;height:25px;color:var(--ui-accent)}.world-map-page :is(button,input,select,summary,.instat,.mi-label,.menu-head,.intel-title,.leg-hint,.open-cta,.badge){font-family:var(--ui-font);letter-spacing:0;text-transform:none}.world-map-page :is(.chip-btn,.shell-menu>summary,.open-cta){border-radius:2px}.world-map-page .search-wrap input{border-radius:2px;font-size:14px}
body:has(#atlas-frame){font-family:var(--ui-font)}#atlas-frame :is(input,button,summary,h2,h3,.a-key-note,.a-line,.a-found,.a-hint,.a-status){font-family:var(--ui-font);letter-spacing:0;font-style:normal}.a-key{max-width:min(380px,calc(100vw - 32px))}.a-key-body{max-height:50dvh;overflow:auto}.a-key-note{font-size:12px;line-height:1.6}.a-bar,.a-panel,.a-key{border-radius:2px!important}.a-panel h2{font-size:26px!important}
body.signin-page{background:var(--ui-bg);color:var(--ui-ink);font-family:var(--ui-font)}.signin-page .card{background:var(--ui-panel);border:1px solid var(--ui-rule);border-radius:2px;box-shadow:0 16px 60px #172a3d0b}.signin-page .wordmark{font:700 25px/1.2 var(--ui-font);letter-spacing:-.04em;text-transform:none}.signin-page .wordmark-sub{font:15px/1.5 var(--ui-font);letter-spacing:0;text-transform:none;color:var(--ui-muted)}.signin-page .rose{width:48px;height:48px;color:var(--ui-accent)}.signin-page .rule{height:1px;background:var(--ui-rule);border:0}.signin-page .btn{font:600 15px var(--ui-font);border-radius:2px;letter-spacing:0;text-transform:none;min-height:48px}.signin-page .btn-primary{background:var(--ui-accent);color:var(--ui-panel);border-color:var(--ui-accent)}.signin-page .btn-secondary{color:var(--ui-ink);border-color:var(--ui-rule)}.signin-page .foot,.signin-page .or,.signin-page .status{font-family:var(--ui-font);font-style:normal;color:var(--ui-muted)}

body:has(#atlas-frame){--a-serif:var(--ui-font);--a-display:var(--ui-font);--bg:var(--ui-bg);--card:var(--ui-panel);--ink:var(--ui-ink);--ink-muted:var(--ui-muted);--gold-deep:var(--ui-accent);--rule:var(--ui-rule)}
#atlas-frame .a-bar{display:grid;grid-template-columns:minmax(0,340px) 44px auto;gap:8px}#atlas-frame .a-search{min-width:0}#atlas-frame .a-search input{background:var(--ui-panel);border-color:var(--ui-rule);border-radius:2px}#atlas-frame .a-search input::placeholder{font-family:var(--ui-font);font-style:normal;font-size:14px}#atlas-frame .a-act{border-radius:2px;letter-spacing:0;text-transform:none;font:600 13px var(--ui-font);background:var(--ui-accent);color:var(--ui-panel);border-color:var(--ui-accent)}#atlas-frame .a-side{margin:0}#atlas-frame .a-key{background:var(--ui-panel);border-color:var(--ui-rule)}#atlas-frame .a-key summary{letter-spacing:0;text-transform:none;font:600 13px var(--ui-font)}#atlas-frame .a-key li{font:13px/1.7 var(--ui-font)}
@media(max-width:640px){#atlas-frame .a-bar{grid-template-columns:minmax(0,1fr) 44px auto}#atlas-frame .a-act{padding:0 10px;font-size:12px}#atlas-frame .a-key{right:10px}#atlas-frame .a-search input{padding-left:12px;padding-right:8px}#atlas-frame .a-search-ico{display:none}}
/* News and shared stories use the same interface as search and the directory. */
body.news-story-page main{width:min(744px,100%);padding:40px 24px 48px}
.news-story-page h1{font-size:clamp(28px,4vw,42px);font-weight:700;line-height:1.15;text-wrap:balance;letter-spacing:-.04em}
.news-story-page .brief p{font-size:17px;line-height:1.8}
.news-story-page :is(.kicker,.brief h2,.coverage h2,.cites h2,#comments h2,.c-label,.read-source,.open-wire,.sources>span){font-family:var(--ui-font);letter-spacing:0;text-transform:none}
.news-story-page :is(.kicker,.brief h2){font-size:12px;font-weight:650}
.news-story-page :is(.reporting-sources,.story-byline){font-family:var(--ui-font)}
.news-story-page :is(.read-source,.open-wire,.vote-btn){border-radius:2px;font-family:var(--ui-font);font-size:13px}
.news-story-page .read-source{color:var(--ui-on-accent)}
.news-story-page .reporting-sources li{padding:14px 18px}
.news-story-page .footnote{font-size:13px}
/* The wire's APPARATUS is sans: the dateline, the editions strip, the rail
   labels. .day-head h2 was in this list and is not apparatus -- it is "Acts
   of the Holy See", the name of the section, and it is set as a head in
   news-wire.css. Leaving it here made that rule a silent no-op: this
   selector out-specifies it, so the head kept the size the wire asked for
   and the face this rule gave it. */
html body:has(.story-stream) :is(.dateline,.editions,.rail-label){font-family:var(--ui-font);letter-spacing:0;text-transform:none}
/* The front door's masthead of the day. It must be set HERE: the rule above
   forces --ui-font on every h1/h2/h3 at a specificity news-wire.css cannot
   reach, so an h1 rule written in the wire's own sheet is a silent no-op.
   Serif at display size wants looser tracking than the sans did; -.04em was
   drawn for Inter. */
html body:has(.story-stream) h1{font-family:var(--ui-display);font-size:clamp(30px,4.2vw,44px);font-weight:600;line-height:1.08;letter-spacing:-.012em;text-wrap:balance}
html body:has(.story-stream) .lede{font-size:15px}
.world-map-page .shell::after{display:none}
.world-map-page .shell{background:var(--ui-panel)}
.signin-page .btn-primary,#atlas-frame .a-act{color:var(--ui-on-accent)}
html body.signin-page{display:block;padding:0;min-height:100dvh}
.signin-page .wrap{width:min(100%,480px);margin:48px auto;padding:0 20px 32px}
.signin-page .jmj,.signin-page .card-rose{display:none!important}
.signin-page .card{width:100%;padding:32px 28px}
@media(max-width:640px){body.news-story-page main{padding:28px 20px 40px}.news-story-page h1{text-wrap:pretty}.signin-page .wrap{margin:28px auto}}
html body:has(.story-stream) .day-head h2 a{display:inline-flex;align-items:center;min-height:44px}
html body.news-story-page :is(#join-form button,#comment-form button){font:600 13px var(--ui-font);letter-spacing:0;text-transform:none;border-radius:2px;color:var(--ui-on-accent)}

/* Shared editorial face, including pages without the news stylesheet. */
@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url("/assets/fonts/newsreader-v26-latin.woff2") format("woff2")}
