:root{color-scheme:light;--ink:#263247;--muted:#526078;--navy:#192c42;--paper:#f7f4ed;--panel:#fffdfa;--line:#e5dfd2;--gold:#755324;--gold-light:#f0e5ce;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.5 var(--sans)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.4}
a{color:var(--gold)}
:focus-visible{outline:3px solid #9a682a;outline-offset:3px}
[hidden]{display:none!important}
.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{position:fixed;z-index:3;left:1rem;top:.5rem;background:#fff;padding:.6rem}
.top{background:var(--navy);color:white;border-bottom:3px solid #ad8651}
.top-inner{max-width:1120px;margin:auto;padding:.7rem 1.5rem;display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;align-items:center;gap:.55rem;color:#fff;text-decoration:none;font:700 1.45rem var(--serif)}
.brand-icon{color:#e8c590;font-size:1.1rem}
.top-nav{display:flex;align-items:center;gap:.7rem}
.top-nav a{color:white;padding:.35rem .2rem;text-underline-offset:4px}
main{max-width:1120px;margin:auto;padding:0 1.5rem 3rem;min-height:78vh}
#load-status{padding:2rem 0}
.hero{text-align:center;padding:2.4rem 0 1.7rem}
.day-caption{margin:0;color:var(--gold);font-weight:650}
h1,h2{font-family:var(--serif);color:var(--navy);line-height:1.18}
h1{margin:.25rem 0 1.05rem;font-size:clamp(2.05rem,5vw,3.55rem);letter-spacing:-.035em}
h2{margin:0 0 .9rem;font-size:1.52rem}
.date-nav{display:flex;justify-content:center;gap:.5rem}
.date-nav button,.date-field input,.month-select select,#name-search{border:1px solid #d1c7b6;background:#fffdfa;border-radius:6px;min-height:42px}
.date-nav button{min-width:43px;font-size:1.45rem;line-height:1}
.date-field input{padding:0 .65rem;width:160px}
.layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:1.35rem;align-items:start}
.daily,.sidebar{display:grid;gap:1.1rem;min-width:0}
.panel{padding:1.25rem 1.35rem;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.name-panel{border-top:3px solid #ad8651}
.name-list{display:flex;gap:.55rem;flex-wrap:wrap}
.pill{border:1px solid #e2d2b6;background:var(--gold-light);color:#5a401e;border-radius:20px;padding:.3rem .78rem}
.pill:hover{background:#e8d8b9}
.name-variants{margin-top:.9rem}
.name-variants summary{color:var(--gold);cursor:pointer;font-weight:600}
.name-variants .name-list{margin-top:.65rem}
.muted{color:var(--muted);margin:0}
.entries{list-style:none;margin:0;padding:0}
.entries li{padding:.65rem 0;border-top:1px solid var(--line)}
.entries li:first-child{border-top:0;padding-top:0}
.entries li:last-child{padding-bottom:0}
.feast-meta{display:flex;gap:.75rem;align-items:baseline;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-top:.22rem}
.feast-note{font-size:.9rem;color:var(--muted);margin:.4rem 0 0}
.month-select{display:grid;grid-template-columns:1fr 84px;gap:.5rem;margin-bottom:.8rem}
.month-select select{width:100%;padding:0 .4rem}
.week,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;text-align:center}
.week{font-size:.82rem;color:var(--muted);margin-bottom:.35rem}
.month-grid button{background:transparent;border:1px solid transparent;border-radius:6px;min-height:34px;padding:0}
.month-grid button:hover,.date-nav button:not(:disabled):hover{background:var(--gold-light)}
.month-grid button[aria-pressed=true]{color:white;background:var(--navy)}
.month-grid button[aria-current=date]:not([aria-pressed=true]){border-color:#b18950;color:#644819}
.month-grid button.holiday-date{box-shadow:inset 0 -3px #b18549}
.calendar-key{margin:.7rem 0 0;color:var(--muted);font-size:.82rem}
.calendar-key span{display:inline-block;width:.8rem;border-bottom:3px solid #b18549;margin-right:.35rem;vertical-align:.2rem}
#name-search{width:100%;padding:.4rem .65rem}
#search-status{color:var(--muted);font-size:.87rem;margin:.65rem 0 .55rem}
.search-results{max-height:360px;overflow:auto;padding:0 4px}
.result-button{display:block;width:100%;text-align:left;background:transparent;border:0;padding:.2rem;color:var(--ink)}
.result-button:hover{background:var(--gold-light)}
.result-button span{display:block;color:var(--muted);font-size:.85rem}
footer{border-top:1px solid var(--line);padding:1.2rem 1.5rem;text-align:center;color:var(--muted);font-size:.85rem}
.holiday-section{margin-top:1.35rem;scroll-margin-top:1rem}
.holiday-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.holiday-header h2{margin:0}
.holiday-controls{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.holiday-controls select{border:1px solid #d1c7b6;background:#fffdfa;border-radius:6px;padding:.35rem .4rem;min-height:40px}
.scope-note{margin:.85rem 0 1rem;font-size:.9rem}
.annual-holidays li{display:grid;grid-template-columns:minmax(140px,185px) 1fr;gap:1rem}
.holiday-date-link{border:0;background:none;color:var(--gold);text-align:left;text-decoration:underline;text-underline-offset:3px;padding:0}
.holiday-panel{border-left:3px solid #ad8651}
.observance-panel{border-left:3px solid #608577}
.observance-panel .feast-note{max-width:68ch}
.history-panel{border-left:3px solid #86709a;scroll-margin-top:1rem}
.history-highlight{background:#f1edf4;padding:1rem;border-radius:7px;margin:0 0 1rem}
.history-highlight h3{margin:0 0 .4rem;font-size:.95rem}
.history-highlight p{margin:.35rem 0 0}
.history-panel details{border-top:1px solid var(--line);padding:.65rem 0}
.history-panel summary{cursor:pointer;color:var(--navy);font-weight:650}
.history-panel details .entries{margin:.65rem 0 0}
.history-row{display:grid;grid-template-columns:4.3rem minmax(0,1fr);gap:.45rem}
.history-row > strong{color:var(--gold)}
@media(max-width:720px){.layout .daily{display:contents}.layout .sidebar{display:contents}.layout .name-panel{order:0}.layout #daily-holidays{order:1}.layout #daily-observances{order:2}.layout .search-panel{order:3}.layout #calendar-panel{order:4}.layout .history-panel{order:5}.layout #daily-feasts{order:6}}
.top-nav{flex-wrap:wrap;justify-content:flex-end}
#observance-status:empty{display:none}
.observance-search{display:grid;gap:.3rem;max-width:28rem;margin-bottom:1rem}
.observance-search input{border:1px solid #d1c7b6;border-radius:6px;background:#fffdfa;min-height:42px;padding:.4rem .65rem;min-width:0}
@media(max-width:540px){.annual-holidays li{grid-template-columns:1fr;gap:.2rem}.holiday-header{gap:.7rem}.top-nav{gap:.4rem}}
@media(max-width:720px){main{padding:0 1rem 2rem}.top-inner{padding-inline:1rem}.layout{grid-template-columns:1fr}.hero{padding:1.7rem 0 1.35rem}.panel{padding:1rem}.calendar,.search-panel{min-width:0}}


body:not(.archive) [data-archive-only]{display:none}
body:not(.archive) .layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.top-nav [aria-current=page]{font-weight:700}
a.pill{text-decoration:none}

.info-page{max-width:860px;padding-top:2rem}
.info-page .panel h2{margin:1.45rem 0 .55rem;font-size:1.3rem}
.info-page .panel h2:first-child,.info-page .panel p:first-child{margin-top:0}
.info-page .panel p:last-child{margin-bottom:0}
.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;margin-top:.45rem}
.site-footer [aria-current=page]{font-weight:700}

.guide-link{display:inline-block;margin-top:.35rem;font-size:.875rem;text-underline-offset:.16em}

.table-scroll{overflow:auto}.guide-table{width:100%;border-collapse:collapse}.guide-table th,.guide-table td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line)}


#oria{scroll-margin-top:1.25rem}
.ring-map{margin:1rem 0 1.3rem}
.ring-map-image{display:block;overflow:hidden;border:1px solid #bac9cb;border-radius:10px}
.ring-map-image img{display:block;width:100%;height:auto}
.ring-map figcaption{margin-top:.65rem;font-size:.875rem}
.ring-map-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.3rem;margin:0 0 .45rem;padding:0;list-style:none}
.ring-map-legend li{display:flex;align-items:center;gap:.45rem}
.ring-map-fill{width:1.2rem;height:.85rem;border:1px solid #164969;background:#c1dce3;border-radius:3px;flex:none}
.ring-map-outline{width:1.2rem;border-top:3px solid #164969;flex:none}
.ring-street-list{columns:2;column-gap:2rem;padding-left:1.7rem;line-height:1.45}
.ring-street-list li{padding:.25rem .25rem;break-inside:avoid}
.ring-street-list li::marker{font-weight:700;color:#164969}
.ring-map-credit{font-size:.82rem}
@media(max-width:560px){.ring-street-list{columns:1}}

body.archive [data-today-only]{display:none}
.weather-panel{border-left:3px solid #61869e}
.weather-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .65rem;margin:0 0 .7rem}
.weather-summary strong{font-size:1.16rem;color:var(--navy)}
.weather-panel summary{cursor:pointer;color:var(--gold);font-weight:650}
.weather-days{margin-top:.55rem}
.weather-days li{display:flex;flex-wrap:wrap;gap:.15rem .7rem}
.weather-days time{font-weight:650}
.weather-source{color:var(--muted);font-size:.8rem;margin:.6rem 0 0}
@media(max-width:720px){
  body:not(.archive) .layout{grid-template-columns:minmax(0,1fr)}
  .layout .utility-sidebar{display:grid;order:7}
  .layout .ring-panel{order:8}
}

.ring-hours{white-space:nowrap}
.ring-parity{display:block;width:fit-content;margin-top:.6rem;padding:.18rem .7rem;border-radius:6px;background:var(--navy);color:#fff;font-size:1.55rem;font-weight:800;letter-spacing:.04em}

@media(max-width:720px){
  .top-inner{
    flex-direction:column;
    gap:.25rem;
    padding:.45rem .75rem .4rem;
  }
  .brand{min-height:44px;font-size:1.25rem}
  .top-nav{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:min(100%,30rem);
    gap:.125rem .25rem;
  }
  .top-nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:.25rem .125rem;
    border-radius:6px;
    font-size:.875rem;
    line-height:1.2;
    text-align:center;
    text-decoration:none;
  }
  .top-nav a[aria-current=page]{background:var(--gold-light);color:var(--navy)}
  .nav-search-label{display:none}
  .top-nav a:focus-visible{outline-color:var(--gold-light)}
  .date-nav button,.date-field input,.month-select select,.month-grid button{min-height:44px}
  .weather-panel summary,.history-panel summary,.name-variants summary{min-height:44px;padding-block:.6rem}
}
