/* generated from design/yiorti-tokens.json by tools/build_site.py: do not edit */
:root{--c-bg:#fbf6ee;--c-surface:#fffdf9;--c-surface-alt:#f4ece0;--c-line:#eadfce;--c-ink:#2a2620;--c-ink-muted:#6f675c;--c-brand:#1f5c99;--c-brand-tint:#e7f0f8;--c-olive:#5f7136;--c-olive-tint:#eef1e2;--c-gold:#d9a441;--c-on-gold:#2a1d05;--c-warn:#9a5200;--c-on-brand:#ffffff;--c-on-olive:#ffffff;--c-olive-deep:#5f7136;--font:"Century Gothic", CenturyGothic, "Didact Gothic", Futura, "Avenir Next", Avenir, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--t-caption:15px;--t-small:17px;--t-body:19px;--t-lead:21px;--t-name:22px;--t-title:25px;--t-heading:38px;--t-display:44px;--s-xs:4px;--s-sm:8px;--s-md:12px;--s-lg:16px;--s-xl:24px;--s-xxl:32px;--r-sm:10px;--r-md:16px;--r-lg:22px;--r-pill:999px;--z-tap-min:48px;--z-logo-tile:56px;--z-swatch:26px;--z-max-width:980px;--shadow-card:0 4px 18px rgba(74,52,20,.07);--shadow-button:0 3px 10px rgba(217,164,65,.30);--lh-body:1.45;--lh-tight:1.15;--band:radial-gradient(120% 140% at 0% 0%,#2f79bf 0%,#1f5c99 45%,#17457a 100%);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--c-bg:#17150f;--c-surface:#211e17;--c-surface-alt:#2b261d;--c-line:#3a342a;--c-ink:#f3ede3;--c-ink-muted:#b9ae9e;--c-brand:#8ab8ea;--c-brand-tint:#1b2633;--c-olive:#b5c486;--c-olive-tint:#262a1b;--c-gold:#e6b65a;--c-on-gold:#221703;--c-warn:#ffb866;--c-on-brand:#ffffff;--c-on-olive:#1a1f0d;--c-olive-deep:#4a5a29;--shadow-card:0 4px 18px rgba(0,0,0,.35);color-scheme:dark}}
:root[data-theme=dark]{--c-bg:#17150f;--c-surface:#211e17;--c-surface-alt:#2b261d;--c-line:#3a342a;--c-ink:#f3ede3;--c-ink-muted:#b9ae9e;--c-brand:#8ab8ea;--c-brand-tint:#1b2633;--c-olive:#b5c486;--c-olive-tint:#262a1b;--c-gold:#e6b65a;--c-on-gold:#221703;--c-warn:#ffb866;--c-on-brand:#ffffff;--c-on-olive:#1a1f0d;--c-olive-deep:#4a5a29;--shadow-card:0 4px 18px rgba(0,0,0,.35);color-scheme:dark}
:root[data-pal=sun]{--band:radial-gradient(120% 140% at 0% 0%,#f2c14e 0%,#e0a526 45%,#b97f0e 100%);--c-brand:#8a5d00;--c-brand-tint:#fbf0d4}
:root[data-pal=pom]{--band:radial-gradient(120% 140% at 0% 0%,#d65a5f 0%,#b3343a 45%,#7f1f27 100%);--c-brand:#a52a32;--c-brand-tint:#fbe6e4}
:root[data-pal=olive]{--band:radial-gradient(120% 140% at 0% 0%,#8a9b55 0%,#5f7136 45%,#3f4d22 100%);--c-brand:#4f6129;--c-brand-tint:#eef1e2}
:root[data-pal=night]{--band:radial-gradient(120% 140% at 0% 0%,#3a3a46 0%,#1c1c22 45%,#0c0c10 100%);--c-brand:#2f5d94;--c-brand-tint:#ececf0}
@media (prefers-color-scheme:dark){:root[data-pal]:not([data-theme=light]){--c-brand:#8ab8ea;--c-brand-tint:#1b2633}}
@media (max-width:560px){:root{--t-caption:15px;--t-small:16px;--t-body:18px;--t-lead:20px;--t-name:21px;--t-title:23px;--t-heading:32px;--t-display:34px;}}
*{box-sizing:border-box}
html{background:var(--c-bg)}
body{margin:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--font);font-size:var(--t-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
a{color:var(--c-brand);font-weight:700;text-decoration:none}
a:hover{text-decoration:underline}
p{margin:0 0 var(--s-sm)}
p:last-child{margin-bottom:0}
h1,h2,h3{line-height:var(--lh-tight);font-weight:700;overflow-wrap:anywhere}
h1{font-size:var(--t-heading);margin:var(--s-sm) 0 var(--s-xs)}
h2{font-size:var(--t-title);margin:var(--s-xl) 0 var(--s-sm)}
.muted,.hint{color:var(--c-ink-muted);font-weight:400;font-size:var(--t-small)}
.lead{font-size:var(--t-lead)}
.caption{font-size:var(--t-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-muted)}
.unchk{color:var(--c-ink-muted);font-size:.7em;margin-left:2px;font-weight:400}
.empty{color:var(--c-ink-muted)}
.more-link{margin-top:var(--s-sm)}
.warn{color:var(--c-warn);font-weight:700}

/* header */
.band{background:var(--band);color:var(--c-on-brand);position:relative}
.top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s-sm);padding:var(--s-md) var(--s-lg) var(--s-sm);max-width:var(--z-max-width);margin:0 auto}
.brand{display:flex;align-items:center;gap:var(--s-sm);font-size:var(--t-title);font-weight:700;color:var(--c-on-brand);letter-spacing:.04em}
.brand:hover{text-decoration:none}
.brand img{width:40px;height:40px}
nav{display:flex;align-items:center;gap:var(--s-xs);flex-wrap:wrap}
nav a{color:var(--c-on-brand);padding:var(--s-sm) var(--s-md);border-radius:var(--r-pill)}
nav a:hover,nav a[aria-current]{background:rgba(255,255,255,.16);text-decoration:none}
#lang{font:inherit;font-size:var(--t-small);color:var(--c-on-brand);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);border-radius:var(--r-pill);padding:var(--s-xs) var(--s-md);min-height:40px}
#lang option{color:#222}
.swatches{display:inline-flex;gap:var(--s-sm);align-items:center;padding-left:var(--s-xs)}
.sw{width:var(--z-swatch);height:var(--z-swatch);border-radius:50%;border:2px solid rgba(255,255,255,.75);cursor:pointer;padding:0}
.sw[aria-pressed=true]{outline:3px solid #fff;outline-offset:2px}
.hero{max-width:var(--z-max-width);margin:0 auto;padding:0 var(--s-lg) var(--s-sm)}
.hero h1{font-size:var(--t-display);margin:0 0 var(--s-xs);color:var(--c-on-brand)}
.hero .when{color:rgba(255,255,255,.9);font-size:var(--t-lead);margin:0}
.hero .greet{color:#ffe1a1;font-weight:700;margin:var(--s-xs) 0 0}
.wave{display:block;width:100%;height:24px;margin-bottom:-1px}
.wave path{fill:var(--c-bg)}

main{max-width:var(--z-max-width);margin:0 auto;padding:0 var(--s-lg) var(--s-lg)}

/* card */
.card,.cal{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--s-md) var(--s-lg);margin:var(--s-sm) 0;box-shadow:var(--shadow-card)}
.cal h2,.card h2{font-size:var(--t-lead);margin:0 0 var(--s-sm)}
.cal h2 .hint{display:block;margin-top:2px}

/* name chip */
.names{display:flex;flex-wrap:wrap;gap:var(--s-sm);margin:0}
.names a{display:inline-flex;align-items:center;min-height:var(--z-tap-min);background:var(--c-brand-tint);color:var(--c-ink);font-size:var(--t-name);font-weight:700;padding:0 var(--s-lg);border-radius:var(--r-pill);border:1px solid transparent}
.names a:hover{border-color:var(--c-brand);text-decoration:none}
.minor{margin:var(--s-sm) 0 0;color:var(--c-ink-muted)}
.minor a{color:var(--c-ink-muted);font-weight:400}

/* calendar toggle */
.calpick{display:flex;flex-wrap:wrap;gap:var(--s-sm);border:0;padding:0;margin:var(--s-lg) 0 0}
.calpick legend{font-weight:700;padding:0;margin-bottom:var(--s-sm)}
.calpick label{position:relative;cursor:pointer}
.calpick input{position:absolute;opacity:0;width:1px;height:1px}
.calpick label>span{display:inline-flex;align-items:center;min-height:var(--z-tap-min);padding:0 var(--s-lg);border-radius:var(--r-pill);border:2px solid var(--c-line);background:var(--c-surface);font-weight:700}
.calpick input:checked+span{background:var(--c-olive);border-color:var(--c-olive);color:var(--c-on-olive)}
.calpick input:focus-visible+span{outline:3px solid var(--c-gold);outline-offset:2px}

/* list rows */
.week a.day{display:grid;grid-template-columns:7.5em 1fr;gap:var(--s-md);padding:var(--s-sm) 0;border-bottom:1px dashed var(--c-line);color:var(--c-ink);font-weight:400}
.week a.day:last-child{border-bottom:0}
.week a.day:hover{text-decoration:none;background:var(--c-surface-alt)}
.week .d{font-weight:700;color:var(--c-olive)}
.week .n{overflow-wrap:anywhere}
table.dates{border-collapse:collapse;width:100%}
table.dates th,table.dates td{text-align:left;vertical-align:top;padding:var(--s-sm) var(--s-xs);border-bottom:1px dashed var(--c-line)}
table.dates tr:last-child th,table.dates tr:last-child td{border-bottom:0}
table.dates th{width:34%;font-weight:700;color:var(--c-olive)}
table.dates td a{font-weight:700}
.daynav{display:flex;justify-content:space-between;gap:var(--s-sm);margin:var(--s-lg) 0}
.daynav a{display:inline-flex;align-items:center;min-height:var(--z-tap-min);background:var(--c-surface-alt);padding:0 var(--s-lg);border-radius:var(--r-pill)}
.spell{overflow-wrap:anywhere;color:var(--c-ink-muted);font-size:var(--t-small)}

/* main button */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-sm);min-height:var(--z-tap-min);padding:0 var(--s-xl);background:var(--c-gold);color:var(--c-on-gold);font:inherit;font-weight:700;border:0;border-radius:var(--r-pill);cursor:pointer;box-shadow:var(--shadow-button)}
.btn:hover{filter:brightness(1.05);text-decoration:none}

/* inputs */
input[type=date],input[type=search]{font:inherit;padding:0 var(--s-lg);min-height:var(--z-tap-min);border:2px solid var(--c-line);border-radius:var(--r-pill);background:var(--c-surface);color:var(--c-ink);max-width:100%}
input[type=search]{width:100%}
input:focus{outline:none;border-color:var(--c-brand)}
.row{display:flex;flex-wrap:wrap;gap:var(--s-md);align-items:center;margin:var(--s-md) 0}
.hits a{display:flex;align-items:center;min-height:var(--z-tap-min);border-bottom:1px dashed var(--c-line);font-size:var(--t-name)}
.person{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--s-md) var(--s-lg);margin:var(--s-sm) 0}
.person b{font-size:var(--t-name)}
.link-btn{background:none;border:0;padding:0 var(--s-xs);min-height:var(--z-tap-min);display:inline-flex;align-items:center;font:inherit;font-weight:700;color:var(--c-brand);cursor:pointer}
.link-btn:hover{text-decoration:underline}
.chip-btn{display:inline-flex;align-items:center;min-height:var(--z-tap-min);background:var(--c-brand-tint);color:var(--c-ink);font:inherit;font-size:var(--t-name);font-weight:700;padding:0 var(--s-lg);border-radius:var(--r-pill);border:1px solid transparent;cursor:pointer}
.chip-btn:hover{border-color:var(--c-brand)}
.review{border:2px solid var(--c-brand)}
.review .rv-top{display:flex;justify-content:space-between;align-items:center}
.review .rv-name{font-size:var(--t-heading);font-weight:700;line-height:var(--lh-tight);margin:var(--s-xs) 0 var(--s-sm);overflow-wrap:anywhere}
.review label{display:block;margin:var(--s-md) 0 var(--s-xs)}
.review #rvhits{margin-top:var(--s-sm)}

/* feature panel */
.cta{position:relative;overflow:hidden;background:var(--c-olive-deep);color:#fff;border-radius:var(--r-lg);padding:var(--s-lg) var(--s-xl);margin:var(--s-xl) 0 var(--s-sm)}
.cta h2{color:#fff;margin:0 0 var(--s-sm)}
.cta p{color:rgba(255,255,255,.94);font-size:var(--t-lead);max-width:36em}
.cta .btn{margin-top:var(--s-md)}
.cta .leaf{position:absolute;right:-18px;bottom:-26px;width:150px;opacity:.16}

/* sponsor slot: one anatomy for us and for sponsors (design/DESIGN.md) */
.sponsor{background:var(--c-olive-tint);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--s-md) var(--s-lg) var(--s-lg);margin:var(--s-lg) 0 var(--s-sm)}
.sponsor .caption{display:block;margin:0 0 var(--s-sm)}
.sponsor .sp-row{display:grid;grid-template-columns:var(--z-logo-tile) 1fr;gap:var(--s-md);align-items:start}
.sponsor .sp-logo{width:var(--z-logo-tile);height:var(--z-logo-tile);border-radius:var(--r-sm);background:var(--c-surface);border:1px solid var(--c-line);display:grid;place-items:center;overflow:hidden}
.sponsor .sp-logo img{width:78%;height:78%;object-fit:contain}
.sponsor .sp-title{display:block;font-size:var(--t-lead);font-weight:700;line-height:var(--lh-tight);margin:2px 0 var(--s-xs)}
.sponsor .sp-text{margin:0 0 var(--s-sm)}


/* contacts app */
h3.sub{font-size:var(--t-lead);margin:var(--s-lg) 0 var(--s-xs)}
.p-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-sm);margin-bottom:var(--s-xs)}
.tag{display:inline-flex;align-items:center;background:var(--c-brand-tint);border-radius:var(--r-pill);padding:2px var(--s-md);font-size:var(--t-small);font-weight:700}
.tag.gold{background:var(--c-gold);color:var(--c-on-gold)}
.pill-btn{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s-md);border-radius:var(--r-pill);border:2px solid var(--c-line);background:var(--c-surface);color:var(--c-ink);font:inherit;font-size:var(--t-small);font-weight:700;cursor:pointer}
.pill-btn[aria-pressed=true]{background:var(--c-olive);border-color:var(--c-olive);color:var(--c-on-olive)}
.chip-btn.on{border-color:var(--c-brand);box-shadow:inset 0 0 0 1px var(--c-brand)}
.composer{display:grid;gap:var(--s-sm);margin-top:var(--s-sm)}
.composer textarea,.composer input[type=text],input[type=time]{font:inherit;padding:var(--s-sm) var(--s-md);border:2px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-ink);width:100%}
input[type=time]{width:auto;min-height:var(--z-tap-min)}
.sub-box{border-top:1px dashed var(--c-line);margin-top:var(--s-md);padding-top:var(--s-md)}
.tick{display:inline-flex;align-items:center;gap:var(--s-sm);min-height:var(--z-tap-min);padding:0 var(--s-md);border:2px solid var(--c-line);border-radius:var(--r-pill);background:var(--c-surface);cursor:pointer}
.tick input{width:20px;height:20px}
.duprow{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-sm);padding:var(--s-sm) 0;border-top:1px dashed var(--c-line)}
.month .m-top{display:flex;justify-content:space-between;align-items:center}
.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s-xs);margin-top:var(--s-sm)}
.mh{text-align:center;color:var(--c-ink-muted);font-size:var(--t-small);font-weight:700}
.md{position:relative;min-height:44px;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-ink);font:inherit;font-size:var(--t-small);cursor:pointer;padding:2px}
.md.today{border:2px solid var(--c-brand)}
.md.sel{background:var(--c-olive);color:var(--c-on-olive);border-color:var(--c-olive)}
.md .dot{position:absolute;top:2px;right:3px;background:var(--c-gold);color:var(--c-on-gold);border-radius:var(--r-pill);font-size:12px;font-weight:700;min-width:18px;line-height:18px}
.saints .saint{border-top:1px dashed var(--c-line);padding-top:var(--s-sm);margin-top:var(--s-sm)}
/* shop, sponsor, forms, calendar page */
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s-md);margin-top:var(--s-sm)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-md);margin-top:var(--s-sm)}
.product,.package{display:flex;flex-direction:column;gap:var(--s-xs);margin:0}
.product h2,.package h2{font-size:var(--t-title);margin:0}
.product p{margin:0}
.p-art svg{width:100%;height:110px}
.price{font-size:var(--t-title);font-weight:700;margin:var(--s-xs) 0}
.price .muted{font-size:var(--t-small)}
.product .form,.product .btn{margin-top:auto}
.form{display:grid;gap:var(--s-sm)}
.fl{display:grid;gap:var(--s-xs);font-weight:700}
.fl input,.fl select{font:inherit;font-weight:400;min-height:var(--z-tap-min);padding:0 var(--s-md);border:2px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-ink)}
.form .btn{justify-self:start}
.big-month .m-top h2{margin:0;font-size:var(--t-title)}
.big-month .mgrid{gap:2px}
.mcell{display:flex;flex-direction:column;gap:2px;min-height:96px;padding:var(--s-xs);border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-ink);font-weight:400;overflow:hidden}
.mcell:hover{text-decoration:none;border-color:var(--c-brand)}
.mcell.today{border:2px solid var(--c-brand)}
.mcell .num{font-weight:700;color:var(--c-olive)}
.mcell .nm{font-size:var(--t-small);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcell .more{font-size:var(--t-small);color:var(--c-ink-muted)}
.month-sponsor{margin-top:var(--s-md);padding:var(--s-md);border-radius:var(--r-sm);background:var(--c-olive-tint);text-align:center}
@media (max-width:560px){.mcell{min-height:64px}.mcell .nm:nth-of-type(n+3){display:none}}
@media print{.band,.wave,footer,.calpick,.noprint,.sponsor{display:none}body{background:#fff;font-size:12pt}.card{box-shadow:none;border:0}.mcell{min-height:110px;border-color:#bbb}main{max-width:none}}
details{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--s-sm) var(--s-lg);margin:var(--s-sm) 0}
summary{font-weight:700;cursor:pointer;min-height:var(--z-tap-min);display:flex;align-items:center}
footer{max-width:var(--z-max-width);margin:var(--s-xl) auto 0;padding:var(--s-md) var(--s-lg) var(--s-xl);border-top:1px dashed var(--c-line);color:var(--c-ink-muted);font-size:var(--t-small)}
footer a{color:var(--c-ink-muted)}
@media (max-width:560px){table.dates th{width:40%}.week a.day{grid-template-columns:6.4em 1fr}.hero h1{margin-top:var(--s-xs)}}
