/* Aldona: luminous gold and deep brown, drawn from the festival artwork. */
:root{
 --paper:#fffef5;--surface:#fffde9;--wash:#fff0a1;--yellow:#f4d441;
 --ink:#3c2519;--deep:#3c2519;--muted:#69502a;--forest:#705027;
 --gold:#9b741f;--line:#ddcd8a;--lime:var(--yellow);--white:var(--paper);
 --page-gradient:linear-gradient(145deg,#fffef5 12%,#fff9d9 58%,#fff0a1 100%);
 --brand-gradient:linear-gradient(125deg,#fff09b 0%,#f4d441 48%,#ceba53 78%,#755031 100%);
 --action-gradient:linear-gradient(125deg,#fff09b 0%,#f4d441 58%,#d6bd51 100%);
 --action-hover:linear-gradient(125deg,#f9e680 0%,#e8c735 58%,#c6a941 100%);
 --soft-gradient:linear-gradient(125deg,#fffef5 0%,#fff9d9 58%,#fff0a1 100%);
 --card-gradient:linear-gradient(145deg,#fffef5 0%,#fffbe5 100%);
 --chrome-gradient:linear-gradient(110deg,#fffef5 0%,#fff8d1 100%);
 --banner-gradient:linear-gradient(125deg,#fff3a3 0%,#f3d653 58%,#d4be5a 100%);
 --amber-shadow:0 5px 20px -12px #87502b30;
}
html{background:var(--paper);color:var(--ink)}
body{background:var(--page-gradient);background-repeat:no-repeat;min-height:100dvh;color:var(--ink)}
.app-shell,main{background:transparent}
.sidebar{background:linear-gradient(165deg,#fff1a2 0%,#f4d441 56%,#ceba53 100%);border-color:var(--line)}
.sidebar :is(.brand,.brand-caption,.edition,.edition small,.nav-link,.sidebar-bottom p,.sidebar-bottom small,.sidebar-bottom>a){color:var(--ink)}
.sidebar .side-nav .nav-link.active{background:var(--card-gradient);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.sidebar .nav-link:hover{background:var(--wash);color:var(--ink)}
.topbar,.mobile-nav,.site-search-bar{background:var(--chrome-gradient);border-color:var(--line)}
.language-switch>span,.mobile-brand span,.top-location,.top-location>span{color:var(--muted)}
.section-nav{border-color:var(--line)}
.section-nav a[aria-current],.programme-types a[aria-current],.mobile-nav a.active{background:var(--action-gradient);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}
.section-nav a:hover,.programme-types a:hover{background:var(--wash);color:var(--ink)}
/* The original artwork flows across the cover; no isolated oval portrait. */
#view .compact-hero{display:block;position:relative;isolation:isolate;overflow:hidden;min-height:350px;padding:36px 30px;background:linear-gradient(110deg,#c8ad3f 0%,#f8dc52 46%,#ffe573 100%);border:1px solid #d8bd55;border-radius:18px;box-shadow:0 12px 30px -24px #75503166}
#view .compact-hero:after{display:none}
#view .compact-hero .hero-portrait{
 position:absolute;inset:0 auto 0 0;z-index:0;width:60%;max-width:none;height:100%;margin:0;aspect-ratio:auto;
 object-fit:cover;object-position:left center;filter:none;mix-blend-mode:normal;opacity:1;
 -webkit-mask-image:linear-gradient(90deg,#000 68%,transparent 100%);
 mask-image:linear-gradient(90deg,#000 68%,transparent 100%);
}
#view .compact-hero .hero-content{position:relative;z-index:1;width:56%;max-width:none;margin:0 0 0 44%;padding:22px 6px 22px 20px;background:none;border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
#view .compact-hero .hero-festival-title{color:var(--ink)}
@media(max-width:1024px) and (min-width:701px){
 #view .compact-hero{padding:30px 24px;min-height:330px}
 #view .compact-hero .hero-content{width:58%;margin-left:42%;padding-left:16px}
 #view .compact-hero .hero-festival-title{font-size:30px}
}
@media(max-width:700px){
 #view .compact-hero{padding:0;min-height:0;background:linear-gradient(125deg,#f8dc52,#ffe573)}
 #view .compact-hero .hero-portrait{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:500 / 338;margin:0;object-fit:contain;
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,#000 70%,transparent 100%)}
 #view .compact-hero .hero-content{width:100%;margin:0;padding:0 24px 26px}
 #view .compact-hero .hero-festival-title{font-size:clamp(24px,5vw,30px);line-height:1.17;margin-bottom:20px}
}
#view :is(.festival-hero,.guide-hero,.conference-header,.festival-contact-banner,.demo-winner){background:var(--banner-gradient);border:1px solid var(--line);color:var(--ink);box-shadow:var(--amber-shadow)}
#view :is(.festival-hero h2,.festival-hero p,.festival-hero .eyebrow,.festival-meta,.guide-hero h2,.guide-hero p,.guide-hero .eyebrow,.guide-hero-icon,.conference-header h2,.conference-header .eyebrow,.festival-contact-banner small,.festival-contact-banner strong){color:var(--ink)}
#view :is(.event-card,.participant-card,.person-card,.guide-place,.venue-card,.rules-card,.side-panel,.news-card,.account-card,.privacy-content,.vote-card,.festival-org-card,.festival-team-card,.install-card,.install-qr-card,.pending-feature,.site-search-result,.site-search-empty,.guide-map,.contact-lead,.master-card,.festival-day,.empty,.push-card,.participant-import),.festival-paths>a{
 background:var(--card-gradient);border:1px solid var(--line);box-shadow:var(--amber-shadow)
}
#view :is(.event-card,.participant-card,.person-card,.guide-place,.festival-org-card,.site-search-result):hover,.festival-paths>a:hover{border-color:var(--gold);box-shadow:0 8px 24px -16px #87502b55}
#view :is(.guide-notice,.programme-context,.programme-context-copy,.participant-application,.verification-note,.rules-source-note,.guide-support,.contact-small,.registration-panel,.festival-principal,.rules-repertoire>section,.master-banner,.demo-invite,.demo-notice),.account-tools a{
 background:var(--soft-gradient);border:1px solid var(--line);color:var(--muted);box-shadow:none
}
#view :is(.person-image,.person-image img,.participant-photo,.participant-photo-editor img,.dialog-portrait,.master-photo,.venue-art,.guide-map-stage){background:var(--soft-gradient)}
#view :is(.festival-portrait,.festival-logo,.guide-logo,.guide-photo img,.demo-winners img){background:var(--paper);border-color:var(--line)}
#view .guide-logo-dark{background:var(--deep);border-color:var(--deep)}
#view .guide-logo-placeholder,.person-fallback,.participant-placeholder{background:var(--soft-gradient);color:var(--forest)}
#view :is(.participant-tags>span,.status-pill,.feature-emblem,.push-symbol,.users-count),.search-result-icon{background:var(--soft-gradient);color:var(--forest);border-color:var(--line)}
#view .status-pill.open,#view .day.active,#view .event-save.is-saved{background:var(--action-gradient);color:var(--ink)}
#view :is(.day.active .weekday,.day.active .month,.day.active .day-number){color:var(--ink)}
#view .day:hover{background:var(--wash)}
#view .guide-filters button,.search-suggestions button,.festival-jumps button{background:var(--card-gradient);border-color:var(--line);color:var(--muted)}
#view .guide-filters button[aria-pressed=true],.session-tab.active{background:var(--action-gradient);border-color:var(--gold);color:var(--ink)}
#view .button,.dialog-actions .button,.demo-dialog .button,.site-search-field button{background:var(--action-gradient);border:1px solid var(--gold);color:var(--ink);box-shadow:none}
#view .button:hover,.dialog-actions .button:hover,.demo-dialog .button:hover,.site-search-field button:hover{background:var(--action-hover);color:var(--ink)}
#view .button.secondary,.dialog-actions .button.secondary,.demo-dialog .button.secondary{background:var(--card-gradient);border-color:var(--line);color:var(--forest)}
#view .button.secondary:hover,.dialog-actions .button.secondary:hover{background:var(--wash);border-color:var(--gold)}
#view .demo-heart.chosen,#view .vote-card.chosen,#view .vote-card:has(input:checked){background:var(--action-gradient);border-color:var(--gold);color:var(--ink)}
#view :is(.panel-copy,.mini-note,.support-note,.muted,.person-body p,.venue-body p,.empty p,.contact-small p,.festival-source,.festival-programme-note,.pending-feature p,.participant-vote-note,.admin-participant small,.admin-announcement small,.loading,.event-performer){color:var(--muted)}
#view :is(.org-contact-links a,.org-contact-source,.guide-map-footer a,.guide-support>a,.festival-paths strong,.festival-paths>a>svg,.coordinator a,.consent a,.selected-label,.result-row strong,.rules-number,.notification-teaser){color:var(--forest)}
.detail-programme,.detail-section-title,.dialog-performer,.detail-meta svg,.dialog-close,.photo-credit{color:var(--muted)}
#view :is(.search,.category-select,.form-field input,.form-field textarea,.form-field select),.site-search-field{background:var(--paper);border-color:var(--line);color:var(--ink)}
#view .participant-import input[type=file]{background:var(--paper);border-color:var(--line);color:var(--ink)}
.site-search-field input::placeholder{color:var(--muted)}
input,select,textarea{accent-color:var(--gold)}
#view .rules-table-scroll,#view .guide-map-footer{background:var(--surface);border-color:var(--line);color:var(--muted)}
#view .rules-table thead,.users-table thead{background:var(--soft-gradient);color:var(--ink)}
#view .rules-details,.email-login,.profile-edit,.registration-next{border-color:var(--line)}
.email-login summary{color:var(--forest)}
.demo-dialog,#detail-dialog{background:var(--card-gradient);border:1px solid var(--line);color:var(--ink)}
.demo-dialog::backdrop,#detail-dialog::backdrop{background:#5a382566}
.toast{background:var(--deep);color:var(--paper)}
.footer{border-color:var(--line);color:var(--muted)}
/* Red is reserved for live status and errors, not decorative accents. */
.live-note .live-badge,.live-note .live-badge.is-live{color:#b42318}
@media(forced-colors:active){
 #view .button,.section-nav a[aria-current],.mobile-nav a.active{border:1px solid ButtonText}
}

/* Three equal sign-in choices, with one accessible email disclosure. */
#view .auth-providers{display:grid;gap:12px;width:100%;max-width:480px;margin:26px 0 22px}
.auth-providers [data-external-options],.auth-providers [data-external-options]>div{display:contents}
#view .auth-provider{display:flex;align-items:center;justify-content:flex-start;gap:14px;width:100%;min-height:78px;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:var(--card-gradient);color:var(--ink);font-family:var(--font-body);text-align:left;text-decoration:none;box-shadow:0 4px 14px -10px #75503145;cursor:pointer;box-sizing:border-box;list-style:none}
#view .auth-provider:hover{border-color:var(--gold);background:var(--soft-gradient);color:var(--ink)}
#view .auth-provider:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
#view .auth-provider:disabled{opacity:.55;cursor:wait}
#view .auth-provider-mark{display:flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;border-radius:11px;background:var(--action-gradient);color:var(--ink);font:600 22px/1 var(--font-body)}
#view .auth-mark-chatgpt{font-size:14px;letter-spacing:-.5px}
#view .auth-provider-mark svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
#view .auth-provider-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
#view .auth-provider-copy strong{font:600 16px/1.4 var(--font-body);overflow-wrap:anywhere}
#view .auth-provider-copy small{font:400 13px/1.45 var(--font-body);color:var(--muted);overflow-wrap:anywhere}
#view .auth-provider-arrow{display:flex;flex:none;align-items:center;justify-content:center;width:22px;height:22px;color:var(--forest)}
#view .auth-provider-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6}
#view .email-login{margin:0;padding:0;border:0;font-size:16px}
#view .email-login summary::-webkit-details-marker{display:none}
#view .email-login summary::marker{content:''}
#view .email-login[open]>.auth-provider{background:var(--soft-gradient);border-color:var(--gold)}
#view .email-login[open] .auth-provider-arrow{transform:rotate(90deg)}
#view .email-login>p,#view .email-login>form,#view .email-login>.email-login-actions{margin:16px 4px 0}
#view .email-login form{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
#view .email-login-error:empty{display:none}
@media(max-width:380px){
 #view .auth-provider{gap:10px;padding:12px;min-height:80px}
 #view .auth-provider-mark{width:36px;height:36px;border-radius:9px}
 #view .auth-provider-copy strong{font-size:15px}
 #view .auth-provider-copy small{font-size:12px}
 #view .auth-provider-arrow{width:16px}
 #view .email-login form{padding:14px}
}
