/* Hallmark · genre: editorial · macrostructure: Index-First · theme: Almanac
 * nav: N6 · footer: Ft4 · design-system: design.md · designed-as-app
 * pre-emit critique: P5 H5 E4 S5 R5 V4 */
:root{
  color-scheme:light dark;
  --color-paper:light-dark(oklch(98% .005 310),oklch(19% .005 310));
  --color-surface:light-dark(oklch(99% .005 310),oklch(24% .006 310));
  --color-ink:light-dark(oklch(26% .012 310),oklch(96% .005 310));
  --color-muted:light-dark(oklch(47% .012 310),oklch(76% .012 310));
  --color-rule:light-dark(oklch(86% .009 310),oklch(36% .012 310));
  --color-accent:light-dark(oklch(42% .14 310),oklch(77% .12 310));
  --color-selection:light-dark(oklch(94% .024 310),oklch(31% .034 310));
  --color-error:light-dark(oklch(43% .17 25),oklch(80% .09 25));
  --color-map-route:oklch(47% .14 310);
  --color-map-outline:oklch(99% .005 310);
  --font-body:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --text-small:12px;--text-body:14px;--text-heading:24px;
  --space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;
  --radius-control:8px;--radius-map:12px;
}

/* Hallmark · macrostructure: Map / Diagram · tone: restrained utilitarian · anchor hue: purple
 * genre: editorial · theme: existing restrained · nav: N9 · footer: Ft2
 * audience: Carnival visitors · use: choose a parade and plan around its route
 * pre-emit critique: P4 H4 E4 S5 R5 V3 (browser gates pending) */
:root{
 --color-paper:light-dark(oklch(98% .005 310),oklch(19% .005 310));
 --color-surface:light-dark(oklch(99% .005 310),oklch(24% .006 310));
 --color-ink:light-dark(oklch(26% .012 310),oklch(96% .005 310));
 --color-muted:light-dark(oklch(47% .012 310),oklch(76% .012 310));
 --color-rule:light-dark(oklch(86% .009 310),oklch(36% .012 310));
 --color-accent:light-dark(oklch(42% .14 310),oklch(77% .12 310));
 --color-accent-ink:light-dark(oklch(99% .005 310),oklch(19% .005 310));
 --color-selection:light-dark(oklch(94% .024 310),oklch(31% .034 310));
 --color-control-rule:light-dark(oklch(64% .012 310),oklch(60% .012 310));
 --color-focus:light-dark(oklch(56% .16 310),oklch(62% .14 310));
 --color-error:light-dark(oklch(43% .17 25),oklch(80% .09 25));
 --color-map-route:oklch(47% .14 310);--color-map-outline:oklch(99% .005 310);
 --font-display:var(--font-body);--font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;
 --text-display:clamp(24px,3vw,36px);--text-caption:11px;--text-label:13px;
 --space-compact:12px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;
 --radius-small:4px;--rule-thin:1px;--control-height:44px;
 --ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);--ease-in-out:cubic-bezier(.65,0,.35,1);
 --dur-micro:120ms;--dur-short:180ms;--dur-long:300ms;
}

/* Compact orientation headings; approved system fonts and palette retained. */
:root{--text-masthead:20px;}

/* Hallmark · genre: editorial · macrostructure: Index-First · theme: Almanac
 * nav: N6 · footer: Ft4 · design-system: design.md · designed-as-app
 * pre-emit critique: P5 H5 E4 S5 R5 V4 */
:root{
 --color-paper:light-dark(oklch(97% .014 80),oklch(20% .012 310));
 --color-surface:light-dark(oklch(99% .008 80),oklch(24% .014 310));
 --color-ink:light-dark(oklch(27% .025 310),oklch(94% .012 80));
 --color-muted:light-dark(oklch(47% .018 310),oklch(75% .018 80));
 --color-rule:light-dark(oklch(84% .018 80),oklch(38% .02 310));
 --color-selection:light-dark(oklch(93% .032 310),oklch(31% .042 310));
 --color-control-rule:light-dark(oklch(62% .023 80),oklch(62% .024 310));
 --font-display:"Mardi Display",Baskerville,Georgia,serif;
 --text-body:16px;--text-small:13px;--text-label:13px;
 --text-heading:28px;--text-display:clamp(32px,5vw,60px);
 --page-gutter:clamp(16px,4vw,48px);--control-height:44px;
 --radius-control:4px;--radius-map:4px;
}

/* Hallmark · genre: editorial · macrostructure: Index-First · design-system: design.md · designed-as-app
 * pre-emit critique: P5 H5 E4 S5 R5 V4 */
.skip-link{position:absolute;inset:var(--space-sm) auto auto var(--space-sm);transform:translateY(-200%);z-index:10;background:var(--color-surface);padding:var(--space-compact);color:var(--color-ink)}
.skip-link:focus{transform:none}
.mast-links{display:none}
#share-fallback{margin-top:var(--space-md)}
#event-name:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
.section-label{font:600 var(--text-small)/1.5 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin:0 0 var(--space-sm)}
body[data-public=true]{max-width:1440px;font-size:var(--text-body);line-height:1.6}
body[data-public=true] header{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:var(--space-lg) var(--page-gutter) var(--space-md);border-bottom:3px double var(--color-rule);align-items:center}
body[data-public=true] header h1{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4vw,48px);letter-spacing:-.055em;line-height:1.15}
body[data-public=true] header p{font-size:var(--text-small);margin-top:var(--space-sm);letter-spacing:.025em}
body[data-public=true] #browse{display:none}
body[data-public=true] .mast-links{display:flex;grid-column:1/-1;gap:var(--space-lg);border-top:var(--rule-thin) solid var(--color-rule);margin-top:var(--space-md)}
.mast-links a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;font-size:var(--text-small);text-decoration:none}
body[data-public=true] .public-intro{display:grid;gap:var(--space-sm);padding:var(--space-lg) var(--page-gutter)}
body[data-public=true] .public-intro h2{font:400 clamp(26px,3.5vw,40px)/1.25 var(--font-display);letter-spacing:-.045em}
body[data-public=true] .public-intro p{margin:0;font-size:var(--text-body);max-width:65ch}
body[data-public=true] #calendar,body[data-public=true] #detail,body[data-public=true] #empty{padding:var(--space-lg) var(--page-gutter)}
body[data-public=true] #calendar{background:var(--color-surface);border-block:var(--rule-thin) solid var(--color-rule)}

body[data-public=true] label{font-weight:600}
body[data-public=true] button,body[data-public=true] input,body[data-public=true] select,body[data-public=true] a.button{min-height:48px}
body[data-public=true] input,body[data-public=true] select{height:48px}


body[data-public=true] #results-summary{margin-top:var(--space-lg);border-top:var(--rule-thin) solid var(--color-rule);padding-top:var(--space-md);color:var(--color-ink);font-weight:600}
body[data-public=true] .day-heading{margin:var(--space-lg) 0 var(--space-sm);font:600 var(--text-small)/1.5 var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted)}
body[data-public=true] .event-row{grid-template-columns:minmax(0,1fr);gap:var(--space-xs);padding:var(--space-compact) var(--space-lg) var(--space-compact) var(--space-sm);min-height:64px}
body[data-public=true] .event-name{font-size:var(--text-body);font-weight:600}
body[data-public=true] .event-date{text-align:left;font-size:var(--text-small)}
body[data-public=true] .event-row[aria-pressed=true]{border-radius:var(--radius-control)}
body[data-public=true] #status:not(:empty){padding:var(--space-md) var(--page-gutter)}
body[data-public=true] .route-intro h2{font:400 clamp(28px,3.6vw,44px)/1.25 var(--font-display);letter-spacing:-.04em}
body[data-public=true] .route-intro{grid-template-columns:minmax(0,1fr)}

body[data-public=true] #event-meta{gap:var(--space-xs) var(--space-md);margin-bottom:var(--space-lg);font-size:var(--text-small)}
body[data-public=true] #map{height:clamp(320px,50dvh,540px)}


body[data-public=true] #nearby{gap:var(--space-sm);margin-block:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr))}


body[data-public=true] #empty{min-height:280px;justify-content:center;border-bottom:var(--rule-thin) solid var(--color-rule)}
body[data-public=true] #empty h2{font:400 var(--text-heading)/1.4 var(--font-display);max-width:20ch}
.empty-step{margin:0 0 var(--space-md);font:400 40px/1 var(--font-display);color:var(--color-accent)}
body[data-public=true] #local-guide{padding:var(--space-xl) var(--page-gutter)}
body[data-public=true] #local-guide{background:var(--color-surface)}
body[data-public=true] #local-guide h2{font:400 clamp(28px,3vw,36px)/1.3 var(--font-display);letter-spacing:-.04em}
body[data-public=true] #guide-query{margin-top:var(--space-sm)}
body[data-public=true] .guide-item summary{font-size:var(--text-body)}
body[data-public=true] .guide-item p{font-size:var(--text-body);line-height:1.75}
body[data-public=true] footer{padding:var(--space-lg) var(--page-gutter);gap:var(--space-sm) var(--space-lg);font-size:var(--text-small)}
footer a{min-width:44px}
body[data-public=true] footer .footer-note{font-family:var(--font-mono);flex-basis:100%;font-size:var(--text-small)}
body[data-display-mode=inline] h1,body[data-display-mode=inline] h2{font-family:var(--font-body)}
body[data-display-mode=inline] .section-label,body[data-display-mode=inline] .skip-link{display:none}
.site-document{margin:0;background:var(--color-paper);color:var(--color-ink);font:var(--text-body)/1.75 var(--font-body);overflow-x:clip}
.site-document header,.site-document main,.site-document footer{max-width:800px;margin-inline:auto;padding-inline:var(--page-gutter)}
.site-document header{padding-block:var(--space-lg);border-bottom:3px double var(--color-rule)}
.site-document header a{font:400 28px/1.4 var(--font-display);text-decoration:none;color:var(--color-ink);display:inline-flex;min-height:44px;align-items:center;white-space:nowrap}
.site-document main{padding-block:var(--space-xl);min-height:60vh}
.site-document h1{font:400 var(--text-display)/1.2 var(--font-display);letter-spacing:-.045em;margin:0 0 var(--space-lg);overflow-wrap:anywhere}
.site-document p{max-width:65ch;margin:0 0 var(--space-md)}
.site-document a{color:var(--color-accent);text-underline-offset:4px}
.site-document a:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
.site-document footer{display:flex;flex-wrap:wrap;gap:var(--space-lg);border-top:var(--rule-thin) solid var(--color-rule);padding-block:var(--space-lg)}
.site-document footer a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
@media(min-width:40rem){
 body[data-public=true] .public-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;padding-block:var(--space-xl)}
 body[data-public=true] .route-intro{grid-template-columns:minmax(0,1fr) auto}

 body[data-public=true] #nearby{grid-template-columns:repeat(4,minmax(0,1fr))}

}
@media(min-width:60rem){
 body[data-public=true] header{grid-template-columns:minmax(0,1fr) auto}
 body[data-public=true] .mast-links{grid-column:2;grid-row:1;border:0;margin:0;align-self:end;gap:var(--space-lg)}
 body[data-public=true] #browse{display:none}
 body[data-public=true] #workspace{grid-template-columns:380px minmax(0,1fr);border-block:var(--rule-thin) solid var(--color-rule)}
 body[data-public=true] #calendar{padding:var(--space-lg);border-block:0;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;position:sticky;top:var(--space-md);scrollbar-gutter:stable}
 body[data-public=true] #detail{position:static;padding:var(--space-lg) var(--space-xl)}
 body[data-public=true] #empty{min-height:600px;border:0;align-items:start;padding:var(--space-2xl)}
 body[data-public=true] #empty span{max-width:40ch}
 body[data-public=true] #guides-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:var(--space-2xl)}
 body[data-public=true] #guides-grid>div:first-child{position:sticky;top:var(--space-lg)}
}
@media(max-width:59.99rem){body[data-public=true][data-selected=true] .public-intro{display:none}}
@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}

/* Mardi Gras FYI: a route emblem and restrained editorial wordmark. */
.wordmark{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--color-ink);text-decoration:none;white-space:nowrap;letter-spacing:-.045em;font-family:var(--font-display);font-weight:400}
.wordmark-mark{width:.85em;height:.85em;flex-shrink:0;color:var(--color-accent)}
.wordmark-fyi{font:700 max(12px,.34em)/1 var(--font-body);letter-spacing:.1em;color:var(--color-accent);align-self:center;margin-top:.3em}
body[data-public=true] header h1{font-size:clamp(26px,4vw,48px)}
.site-document header .wordmark{font-size:28px}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}
.calendar-heading .section-label{margin:0}
.year-control{flex:0 0 auto}
.year-control select{width:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body[data-public=true] #results-summary{margin-top:var(--space-md);border-top:0;padding-top:0}

.stay-comparison{margin-block:var(--space-md);border-top:1px solid var(--color-rule);padding-top:var(--space-md)}
.stay-comparison form{display:block;max-width:48rem}
.stay-comparison summary{cursor:pointer;min-height:44px}
.stay-comparison p{font-size:var(--text-small);line-height:1.6}
.stay-comparison fieldset{min-width:0;border:1px solid var(--color-rule);margin-block:var(--space-sm);display:grid;gap:var(--space-sm)}
.stay-comparison label{display:grid;gap:var(--space-xs)}
.stay-comparison input{min-width:0;width:100%}
.stay-comparison .stay-consent{display:flex;align-items:center;margin-block:var(--space-md)}
.stay-consent input{width:24px;min-height:24px;flex-shrink:0}
.stay-comparison form>button{margin:0 var(--space-xs) var(--space-sm) 0}
@media(min-width:40rem){.stay-comparison fieldset{grid-template-columns:repeat(3,minmax(0,1fr))}}

.google-maps-attribution{font-family:Arial,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:1.5;letter-spacing:normal;white-space:nowrap;color:var(--color-ink)}

.public-site{font-size:16px;line-height:1.7}
.public-site header,.public-site main,.public-site footer{max-width:1056px}
.public-site header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.public-site header nav,.public-site footer nav,.period-links,.year-links,.actions{display:flex;flex-wrap:wrap;gap:8px 24px}
.public-site header nav a{font:500 14px/1.5 var(--font-body)}
.public-site main{padding-block:32px 64px;min-height:65vh}
.public-site h1{font:400 clamp(32px,5vw,56px)/1.18 Georgia,serif;letter-spacing:-.035em;max-width:24ch;margin-block:12px 24px}
.public-site h2{font:400 clamp(24px,3vw,32px)/1.3 Georgia,serif;letter-spacing:-.025em;margin:0 0 16px}
.public-site h3{font:600 18px/1.4 var(--font-body)}
.public-site .lead{font-size:19px;line-height:1.7;max-width:64ch}
.public-site section{margin-top:40px;padding-top:24px;border-top:1px solid var(--color-rule)}
.public-site li{margin-bottom:12px;max-width:70ch}
.public-site a{overflow-wrap:anywhere}
.public-site a.button,.public-site button{font:600 15px/1.4 var(--font-body);padding:12px 18px;border:1px solid var(--color-control-rule);border-radius:4px;background:var(--color-surface);color:var(--color-ink);display:inline-flex;align-items:center;justify-content:center;min-height:48px;box-sizing:border-box;text-decoration:none;cursor:pointer}
.public-site .primary{background:var(--color-accent)!important;color:var(--color-accent-ink)!important;border-color:var(--color-accent)!important}
.public-site button:disabled{opacity:.6;cursor:wait}
.public-site button:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
.public-site .breadcrumbs{font-size:13px;color:var(--color-muted);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.public-site .topic-links{padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.public-site .topic-links a{display:block;border-bottom:1px solid var(--color-rule);padding:12px 0;min-height:24px}
.public-site .parade-list{list-style:none;margin:0;padding:0}
.public-site .parade-list li{max-width:none;margin:0}
.public-site .parade-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 8px;border-bottom:1px solid var(--color-rule);text-decoration:none}
.public-site .parade-list a:hover{background:var(--color-selection)}
.public-site .parade-list strong{font-size:18px;text-decoration:underline;text-underline-offset:4px}
.public-site .parade-list small{display:block;font-size:13px;color:var(--color-muted)}
.public-site .departure{font-size:15px;flex-shrink:0}
.public-site .season-dates{display:flex;flex-wrap:wrap;gap:24px 48px;margin-block:24px}
.public-site .season-dates dt{font-weight:600}.public-site .season-dates dd{margin:0}
.public-site #public-map{height:420px;background:var(--color-selection);display:grid;place-items:center;border-radius:8px;overflow:hidden;margin-top:24px}
.public-site #public-map>button{max-width:240px}
.public-site #public-map[data-loaded=true]{display:block}
.public-site #nearby-results article{padding-block:16px;border-bottom:1px solid var(--color-rule)}
.public-site #nearby-results p{margin:4px 0}.public-site #nearby-results small{display:block}
.public-site .review-date{font-size:13px;color:var(--color-muted);margin-top:24px}
.public-site footer{display:block}.public-site footer p{font-size:13px}
.public-site .year-links{margin-block:24px}.public-site [aria-current=page]{font-weight:600}
@media(max-width:40rem){.public-site .topic-links{grid-template-columns:1fr}.public-site .parade-list a{align-items:flex-start;flex-direction:column;gap:4px}.public-site main{padding-top:24px}.public-site #public-map{height:360px}}
@media(prefers-reduced-motion:reduce){.public-site *{scroll-behavior:auto}}

.google-maps-attribution{font-family:Arial,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:1.5;letter-spacing:normal;white-space:nowrap;color:var(--color-ink)}
