/* Aldona visual system: one yellow-to-brown palette and one type pairing. */
:root{
 --font-body:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
 --font-display:'Aldona Cormorant','Palatino Linotype',Palatino,serif;
 --paper:#fffef7;--surface:#fffdf2;--wash:#fff8d6;--yellow:#f5d64e;
 --gold:#bd8a24;--ink:#48280f;--muted:#76502e;--forest:#734314;--deep:#48280f;
 --line:#ead79b;--lime:#f5d64e;--white:#fffef7;
 --brand-gradient:linear-gradient(125deg,#f5d64e 0%,#e3b937 58%,#a66a20 100%);
 --action-gradient:linear-gradient(125deg,#f5d64e 0%,#e3b937 65%,#c5922f 100%);
 --soft-gradient:linear-gradient(135deg,#fffdf2 0%,#fff8d6 100%);
 --radius:12px;
 font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper)
}
html,body,.app-shell{background:var(--paper);color:var(--ink)}
body{font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font-family:var(--font-body)}
::selection{background:var(--yellow);color:var(--ink)}
:focus-visible{outline-color:var(--gold)!important}
/* All editorial headings share the same family; UI labels stay in the body family. */
h1,h2,h3,h4,h5,h6,.serif,.brand,.mobile-brand,.dialog-title,.festival-contact-banner strong{
 font-family:var(--font-display)!important;font-weight:600;letter-spacing:0;line-height:1.2;color:var(--ink)
}
#view .page-heading h1{font-size:34px;line-height:1.15;font-weight:600;letter-spacing:0}
#view .page-heading p{font-size:16px;color:var(--muted);line-height:1.65}
#view h2{font-size:28px}#view h3{font-size:24px}#view h4{font-size:23px}#view h5{font-size:21px}
#view :is(.event-info h3,.festival-org-name h3,.participant-card h2,.person-body h2,.guide-place h3,.festival-team-card h3,.venue-body h2){font-family:var(--font-display);font-size:24px;font-weight:600;line-height:1.22;color:var(--ink)}
#view .participant-repertoire h3{font-family:var(--font-body)!important;font-size:16px;line-height:1.6;font-weight:600}
#view :is(.rules-full,.rules-teasers,.festival-story p,.guide-description,.community-intro p,.participant-repertoire p,.account-card p,.privacy-content p,.install-card p,.install-qr-card p,.news-card p,.push-card p,.conference-copy p){font-size:16px;line-height:1.75;color:var(--muted)}
#view :is(.event-place,.participant-location,.participant-details dd,.festival-meta,.festival-org-name p,.festival-country,.org-address,.org-contact-links a,.festival-section-intro,.guide-address,.guide-type,.guide-source,.guide-updated,.mini-note,.support-note,.programme-note,.programme-note .text-link,.agenda-hint,.rules-translation-note,.verification-note p,.consent,.form-field,.guide-map p,.guide-map-footer,.rules-full .rules-contact,.rules-full .rules-official){font-size:14px;line-height:1.65;color:var(--muted)}
#view :is(.eyebrow,.event-kind,.result-info,.org-contact-source,.person-country,.participant-details dt,.news-card time){font-family:var(--font-body);font-size:13px;line-height:1.5;color:var(--muted);letter-spacing:.04em}
#view .search-result-text strong{font-family:var(--font-display);font-size:24px;line-height:1.25;color:var(--ink)}
#view .search-result-text>span,#view .search-result-text small,#view .site-search-count{color:var(--muted);font-family:var(--font-body);font-size:14px;line-height:1.65}
/* Branded surfaces repeat the same gradient, rather than separate beige panels. */
.sidebar{background:var(--brand-gradient);border-color:var(--gold);color:var(--ink)}
.sidebar :is(.brand,.brand-caption,.edition,.edition small,.nav-link,.sidebar-bottom p,.sidebar-bottom small){color:var(--ink)}
.brand,.mobile-brand{font-weight:500}.brand-caption{font-family:var(--font-body)}
.sidebar .edition-line,.sidebar .tiny-keys i{background:var(--forest)}
.sidebar .side-nav .nav-link{font-size:15px;min-height:48px}
.sidebar .side-nav .nav-link.active{background:var(--wash);color:var(--ink);box-shadow:none}
.sidebar .nav-link:hover{background:#fff8d655;color:var(--ink)}
.topbar,.mobile-nav{background:var(--paper);border-color:var(--line)}
.top-location,.top-location>span,.top-actions .icon-btn,.top-actions .account-link,.language-switch button{color:var(--muted)}
.language-switch [aria-pressed=true]{color:var(--ink)}
.top-search:hover,.top-search[aria-expanded=true],.icon-btn:hover{background:var(--wash)}
.section-nav{border-color:var(--line)}
.section-nav a,.programme-types a,.mobile-nav a{font-family:var(--font-body);font-size:14px;color:var(--muted)}
.section-nav a[aria-current],.programme-types a[aria-current],.mobile-nav a.active{background:var(--action-gradient);color:var(--ink);font-weight:600}
.section-nav a:hover,.programme-types a:hover{background:var(--wash);color:var(--ink)}
.tab-count,.nav-count{background:var(--paper);color:var(--ink)}
#view .compact-hero{background:var(--brand-gradient);border:0;box-shadow:none;border-radius:var(--radius)}
#view .compact-hero:after{background:linear-gradient(90deg,#f5d64e 0%,#f5d64e 42%,#f5d64e99 67%,transparent 100%)}
#view .compact-hero .hero-festival-title{font-family:var(--font-display);font-size:clamp(28px,2.5vw,36px);font-weight:600;line-height:1.17;letter-spacing:.01em;color:var(--ink)}
#view .compact-hero .hero-meta,#view .compact-hero .hero-meta svg{color:var(--ink);font-family:var(--font-body)}
#view .compact-hero .hero-portrait{opacity:.9}
#view :is(.festival-hero,.guide-hero,.conference-header,.festival-contact-banner){background:var(--brand-gradient);color:var(--ink);border:0;box-shadow:none;border-radius:var(--radius)}
#view :is(.festival-hero h2,.guide-hero h2,.conference-header h2){font-size:34px;color:var(--ink)}
#view :is(.festival-hero p,.festival-hero .eyebrow,.guide-hero p,.guide-hero .eyebrow,.conference-header .eyebrow,.festival-contact-banner small,.festival-contact-banner strong,.festival-meta,.guide-hero-icon){color:var(--ink)}
#view .guide-hero-icon{border-color:#73431455}
#view .festival-portrait{background:var(--surface);box-shadow:none}
#view .festival-portrait figcaption,#view .festival-portrait figcaption span{color:var(--ink)}
/* Reusable cards, notes, fields and actions across all sections. */
#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),.festival-paths>a{
 background:var(--surface);border-color:var(--line);border-radius:var(--radius);box-shadow:0 3px 14px #73431405
}
#view :is(.event-card,.festival-org-card,.guide-place,.site-search-result):hover,.festival-paths>a:hover{border-color:var(--gold);box-shadow:0 5px 18px #7343140a}
#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),.account-tools a{
 background:var(--soft-gradient);color:var(--muted);border-color:var(--line);box-shadow:none;border-radius:var(--radius)
}
#view .festival-principal .principal-code,#view .festival-principal p,#view .guide-support p,#view .guide-support a{color:var(--muted)}
#view .festival-org-card .festival-logo{background:var(--paper);border-color:var(--line);border-radius:8px}
#view .festival-org-name h3{font-family:var(--font-display);font-size:24px}
#view .festival-contact-banner strong{font-size:28px}
#view .festival-team-card a,.org-contact-links a,.org-contact-source,#view .festival-paths strong{color:var(--forest)}
#view :is(.participant-photo,.person-image,.participant-photo-editor img,.venue-art,.guide-map-stage){background:var(--wash)}
.person-fallback,.participant-placeholder{background:var(--wash);color:var(--forest)}
#view .person-image img{filter:none}.person-card:hover .person-image img{transform:none}
#view .guide-map-placeholder{background:var(--soft-gradient)}
#view .guide-map-placeholder>svg,.venue-art svg{color:var(--forest)}
#view .venue-art:before,#view .venue-art:after{background:var(--paper)}
#view .venue-art span{background:var(--yellow);color:var(--ink);box-shadow:none}
#view .guide-map-footer{background:var(--surface);color:var(--muted)}
#view :is(.participant-tags>span,.status-pill,.users-count,.feature-emblem,.push-symbol),.search-result-icon{background:var(--wash);border-color:var(--line);color:var(--forest)}
#view .status-pill.open{background:var(--yellow);color:var(--ink)}
#view .rules-table-scroll{background:var(--surface);border-color:var(--line)}
#view .rules-table thead{background:var(--wash);color:var(--ink)}
#view .rules-table th,#view .rules-table td,.users-table th,.users-table td{border-color:var(--line);color:var(--muted);font-family:var(--font-body);font-size:14px}
#view .day{color:var(--muted)}#view .day:hover{background:var(--wash)}
#view .day.active{background:var(--action-gradient);color:var(--ink)}
#view .day .day-number{font-family:var(--font-display);font-size:30px;color:var(--ink)}
#view .day .weekday,#view .day .month{color:var(--muted);font-family:var(--font-body)}
#view .day.active:after{background:var(--forest)}
#view .event-kind{color:var(--muted)}
#view .event-time{border-color:var(--line)}
#view .event-time.date-only strong{font-family:var(--font-display);color:var(--forest);font-size:30px}
#view .event-time.date-only small,#view .event-save{color:var(--muted)}
#view .event-save.is-saved{background:var(--yellow);color:var(--ink)}
#view .guide-filters button,.search-suggestions button,.festival-jumps button{background:var(--surface);border-color:var(--line);color:var(--muted);font-size:14px;border-radius:8px}
#view .guide-filters button[aria-pressed=true]{background:var(--action-gradient);border-color:var(--gold);color:var(--ink)}
.site-search-bar{background:var(--paper);border-color:var(--line)}
.site-search-field,#view .search,#view .category-select,#view .form-field input,#view .form-field textarea{background:var(--paper);border-color:var(--line);color:var(--ink);border-radius:8px}
.site-search-field input,#view .search input{color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--muted)}
.site-search-field>svg,#view .search svg{color:var(--muted)}
#view .button,.dialog-actions .button,.site-search-field button{background:var(--action-gradient);color:var(--ink);border:1px solid var(--gold);font-family:var(--font-body);font-size:15px;font-weight:600;min-height:46px;border-radius:8px;box-shadow:none}
#view .button:hover,.dialog-actions .button:hover,.site-search-field button:hover{background:linear-gradient(125deg,#f8df6c,#e3b937 65%,#bd8a24);color:var(--ink)}
#view .button.secondary,.dialog-actions .button.secondary{background:transparent;border-color:var(--gold);color:var(--forest)}
#view .button.secondary:hover,.dialog-actions .button.secondary:hover{background:var(--wash)}
#view .text-link,#view .rules-full a,#view .person-body button,#view .biography-details summary,#view .participant-repertoire summary,#view .rules-details>summary,#view .guide-actions a,#view .guide-phones a{color:var(--forest)}
#view .agenda-overview h2{font-size:30px;color:var(--ink)}
#view .agenda-list li{color:var(--muted);border-color:var(--line)}
#view .agenda-list strong{font-family:var(--font-body);font-size:18px;color:var(--ink)}
#view .agenda-list li::marker{color:var(--forest)}
#view .community-intro{background:transparent}
#view .admin-stats>div{background:var(--soft-gradient);border-color:var(--line);color:var(--ink)}
#view .admin-stats strong{font-family:var(--font-display);color:var(--ink)}
#view .admin-stats span,.admin-controls label{color:var(--muted)}
#detail-dialog{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:var(--radius)}
#detail-dialog h2{font-family:var(--font-display);font-size:30px;font-weight:600;color:var(--ink)}
.detail-description,.detail-meta p,.dialog-kicker,.photo-credit{font-family:var(--font-body);color:var(--muted)}
.detail-description{font-size:16px;line-height:1.75}.detail-meta p{font-size:14px}
.live-note,.live-note .live-status,.live-note a:hover{color:var(--forest);border-color:var(--line)}
.live-note .live-badge,.live-note .live-badge.is-live{color:#b42318}
.live-note .live-badge.is-live{font-weight:800;text-decoration:underline;text-underline-offset:3px}
.footer,.footer a,.footer button{color:var(--muted);border-color:var(--line);font-family:var(--font-body);font-size:13px}
.toast{background:var(--deep);color:var(--paper);font-family:var(--font-body)}
@media(max-width:760px){
 #view .page-heading h1{font-size:30px}
 #view :is(.festival-hero h2,.guide-hero h2,.conference-header h2){font-size:30px}
 #view .compact-hero .hero-festival-title{font-size:clamp(24px,4.5vw,29px);line-height:1.13}
 .topbar,.mobile-nav{background:var(--paper)}
 .mobile-nav a{font-size:12px}
 #view :is(.event-info h3,.festival-org-name h3,.participant-card h2,.person-body h2,.guide-place h3,.festival-team-card h3,.venue-body h2){font-size:23px}
}
@media(max-width:380px){#view .compact-hero .hero-festival-title{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Compact organiser directory with readable contact details. */
#view .festival-org-grid,#view .festival-patrons-grid,#view .festival-partner-grid{
 grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch
}
#view .festival-org-card{padding:18px;border-radius:10px}
#view .festival-org-card .festival-logo{height:82px;padding:7px;margin-bottom:14px}
#view .festival-org-card .festival-logo img{max-width:100%;max-height:100%;object-fit:contain}
#view .festival-org-name h3{font-size:25px;line-height:1.2;margin-bottom:8px}
#view .festival-org-name p,#view .festival-country{font-size:15px;line-height:1.5}
#view .festival-country{margin-top:10px}
#view .festival-org-card .org-contact-links{gap:2px;margin:12px 0 9px}
#view .festival-org-card .org-contact-links a{font-size:16px;line-height:1.5;min-height:38px;padding:7px 0;gap:8px}
#view .festival-org-card .org-contact-links svg{width:16px;height:16px;margin-top:4px}
#view .festival-org-card .org-address{font-size:15px;line-height:1.55;gap:8px;margin-bottom:10px}
#view .festival-org-card .org-contact-source{font-size:14px;line-height:1.5;min-height:34px;padding-top:6px}
#view .festival-patrons-grid .festival-org-card:last-child{grid-column:auto}
#view .festival-patrons-grid .festival-org-card:last-child .festival-logo{height:82px}
#view .festival-principal{padding:18px}
#view .festival-principal .festival-org-card{padding:17px;grid-template-columns:145px minmax(0,1fr);column-gap:22px}
#view .festival-principal .festival-logo{height:120px;margin:0}
#view .festival-principal .org-contact-links{margin-top:4px}
@media(max-width:1179px) and (min-width:761px){
 #view .festival-org-grid,#view .festival-patrons-grid,#view .festival-partner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 #view .festival-org-grid,#view .festival-patrons-grid,#view .festival-partner-grid{grid-template-columns:1fr;gap:14px}
 #view .festival-org-card{padding:18px}
 #view .festival-org-name h3{font-size:25px}
 #view .festival-principal{padding:14px}
 #view .festival-principal .festival-org-card{display:flex;padding:17px}
 #view .festival-principal .festival-logo{height:94px;width:100%;margin-bottom:14px}
}
/* Circular logo holders preserve every original mark's aspect ratio. */
#view .festival-org-card .festival-logo,
#view .festival-patrons-grid .festival-org-card:last-child .festival-logo{
 width:100px;height:100px;min-width:100px;flex:none;border-radius:50%;
 padding:16px;margin:0 auto 16px;background:var(--paper);
 border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden
}
#view .festival-org-card .festival-logo img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
#view .festival-principal .festival-logo{width:116px;height:116px;min-width:116px;padding:18px;margin:0;align-self:start;justify-self:center}
@media(max-width:760px){#view .festival-principal .festival-logo{width:100px;height:100px;min-width:100px;padding:16px;margin:0 auto 16px;align-self:center}}

/* The supplied Natos image includes wide white margins around the mark. */
#view .festival-org-card[data-org="natos"] .festival-logo img{transform:scale(1.6)}

#view .guide-logo{width:100px;height:100px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;padding:16px;margin:0 auto 18px;overflow:hidden}
#view .guide-logo img{width:100%;height:100%;object-fit:contain;object-position:center}

#view .guide-logo-dark{background:var(--forest);border-color:var(--forest)}

#view .guide-logo{width:112px;height:112px;padding:17px}
#view .guide-logo-placeholder{color:var(--forest);background:var(--wash)}
#view .guide-logo-placeholder svg{width:38px;height:38px;stroke-width:1.3}
#view .guide-photo{margin:0 0 18px;min-width:0}
#view .guide-photo img{width:100%;height:145px;object-fit:contain;border-radius:8px;background:var(--paper)}
#view .guide-photo figcaption{font-size:12px;line-height:1.5;color:var(--muted);padding-top:5px;text-align:right}
#view .guide-photo figcaption a{text-decoration:underline;text-underline-offset:2px}

#view .guide-media{height:174px;margin-bottom:18px;display:flex;flex-direction:column;justify-content:center;flex:none}
#view .guide-media .guide-logo{margin:0 auto}
#view .guide-media .guide-photo{margin:0}

/* Calm, readable controls for the organiser's participant import. */
#view .participant-import{margin:24px 0;padding:24px;max-width:100%}
#view .participant-import .form-field{margin:18px 0}
#view .participant-import input[type=file]{width:100%;max-width:100%;padding:12px;background:var(--paper);font:inherit;border:1px solid var(--line);border-radius:8px}
#view .participant-import ol{padding-left:24px;max-height:320px;overflow:auto;line-height:1.7}
#view .participant-import li{padding:6px 0;border-bottom:1px solid var(--line)}
#view .participant-import li small{display:block;font-size:14px;color:var(--muted)}
#view .participant-demo{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}
#view .participant-demo summary{cursor:pointer;font-weight:600;font-size:18px}
#view .participant-import-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:16px}
#view .participant-import .consent{margin:20px 0;align-items:flex-start}
@media(max-width:600px){#view .participant-import{padding:18px}#view .participant-import .button{width:100%}}

/* Organiser cards: logo beside a single, compact content column. */
#view .festival-org-card,
#view .festival-principal .festival-org-card{
 display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;
 padding:18px;align-items:start;align-content:start
}
#view .festival-org-card .festival-logo,
#view .festival-principal .festival-org-card .festival-logo,
#view .festival-patrons-grid .festival-org-card:last-child .festival-logo{
 grid-row:auto;width:72px;height:72px;min-width:72px;
 padding:11px;margin:0;align-self:start;justify-self:start
}
#view .festival-org-content{min-width:0}
#view .festival-org-name h3{font-size:20px;line-height:1.25;margin:0 0 6px;overflow-wrap:anywhere}
#view .festival-org-name p{margin:0 0 6px}
#view .festival-country{margin-top:2px;font-size:14px}
#view .festival-org-card .org-contact-links{margin:8px 0 4px;gap:0}
#view .festival-org-card .org-contact-links:empty{display:none}
#view .festival-org-card .org-contact-links a{padding:5px 0;min-height:34px;line-height:1.4}
#view .festival-org-card .org-address{margin:4px 0 2px;font-size:14px;line-height:1.5}
#view .festival-org-card .org-contact-source{margin:0;padding:6px 0 0;min-height:30px;font-size:13px}
#view .festival-org-grid,#view .festival-patrons-grid,#view .festival-partner-grid{align-items:start}
@media(max-width:1400px) and (min-width:1180px){
 #view .festival-org-card{grid-template-columns:60px minmax(0,1fr);gap:12px;padding:15px}
 #view .festival-org-card .festival-logo{width:60px;height:60px;min-width:60px;padding:9px}
}
@media(max-width:400px){
 #view .festival-org-card,#view .festival-principal .festival-org-card{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:14px}
 #view .festival-org-card .festival-logo,#view .festival-principal .festival-org-card .festival-logo{width:58px;height:58px;min-width:58px;padding:9px}
 #view .festival-org-name h3{font-size:19px}
}
#view .festival-principal .org-contact-links{flex-direction:row;flex-wrap:wrap;column-gap:20px;row-gap:0}
/* Keep Aldona's portrait beside the introduction on phones as well. */
#view .festival-hero{grid-template-columns:minmax(0,1fr) minmax(150px,215px);gap:28px;align-items:start}
#view .festival-hero-copy{min-width:0}
#view .festival-portrait{width:100%;max-width:215px;margin:0;align-self:start}
#view .festival-portrait img{width:100%;height:auto;object-fit:contain}
@media(max-width:760px){
 #view .festival-hero{grid-template-columns:minmax(0,1fr) minmax(100px,34%);gap:16px;padding:20px;align-items:start}
 #view .festival-portrait{width:100%;max-width:180px;padding:7px 7px 0;margin:0}
 #view .festival-portrait figcaption{font-size:17px;line-height:1.2;padding:10px 1px}
 #view .festival-portrait figcaption span{font-size:12px;letter-spacing:1px;margin-top:5px}
 #view .festival-hero h2{font-size:clamp(25px,5.2vw,30px);line-height:1.12;margin:16px 0 14px;letter-spacing:0}
 #view .festival-hero-copy>.eyebrow{font-size:11px;letter-spacing:1px;line-height:1.5}
 #view .festival-hero-copy>p{font-size:16px;line-height:1.55;margin:0}
 #view .festival-meta{font-size:14px;gap:8px;margin-top:16px}
}
@media(max-width:380px){#view .festival-hero{padding:16px;gap:12px;grid-template-columns:minmax(0,1fr) 100px}#view .festival-portrait figcaption{font-size:15px}}
/* A clearly labelled, browser-only rehearsal of audience voting. */
#view .demo-invite,#view .demo-notice{background:var(--wash);border:1px solid var(--line);border-radius:12px;padding:20px;margin:0 0 24px}
#view .demo-invite p,#view .demo-notice p{font-size:15px;line-height:1.6;margin:8px 0 14px}
#view .demo-heart{width:100%;margin-top:18px;justify-content:center;background:var(--paper);border:1px solid var(--line);color:var(--ink)}
#view .demo-heart>span{font-size:28px;line-height:1}
#view .demo-heart.chosen{background:var(--brand-gradient);border-color:#a17417;color:#35200e}
.demo-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:18px}
#view .demo-controls{margin-top:28px}
.demo-dialog{width:min(520px,calc(100vw - 32px));max-height:85dvh;overflow:auto;border:1px solid #d6b96a;border-radius:16px;background:#fffdf5;color:#432b17;padding:28px}
.demo-dialog::backdrop{background:#2b1a0b88}
.demo-dialog h2{font-family:'Aldona Cormorant',Georgia,serif;font-size:30px;line-height:1.2;margin:0 0 18px}
.demo-dialog p{font-size:16px;line-height:1.6}
.demo-dialog .mini-note{font-size:14px}
.demo-dialog .button{min-height:44px}
#view .demo-winner{padding:26px;background:var(--brand-gradient);border-radius:16px;margin:0 0 26px;color:#38220e}
#view .demo-winner h2{font-size:30px;line-height:1.2;margin:12px 0}
#view .demo-winners{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:22px 0}
#view .demo-winners article{display:flex;gap:20px;align-items:center}
#view .demo-winners img{width:100px;height:120px;object-fit:contain;flex:none;background:#fffdf5;border-radius:10px}
#view .demo-winners h3{font-size:24px;margin:0 0 8px}
#view .demo-winners p{font-size:16px;line-height:1.5;margin:8px 0}
@media(max-width:400px){.demo-dialog{padding:20px}#view .demo-winner{padding:20px}#view .demo-winners{grid-template-columns:1fr}#view .demo-winners article{gap:14px}#view .demo-winners img{width:80px;height:100px}.demo-actions>.button{width:100%}}
.auth-providers{display:grid;gap:12px;max-width:420px;margin:24px 0 16px}
.auth-providers .button{width:100%;justify-content:center;min-height:48px}
.google-mark{font-family:Arial,sans-serif;font-weight:700;font-size:22px;line-height:1;color:inherit}
[data-auth-error]:empty{display:none}
[data-auth-error]{color:#963f22;font-size:15px;line-height:1.5}

.email-login{margin-top:16px;border-top:1px solid #d5bb83;padding-top:16px;font-size:16px}
.email-login summary{cursor:pointer;font-weight:600;padding:8px 0;color:#57360e}
.email-login p{font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.email-login form{display:grid;gap:14px}.email-login-actions{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px}
.email-login-error{color:#963f22}.email-login-error:empty{display:none}

.registration-check{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--yellow);color:var(--ink);font-size:28px;margin-bottom:18px}
.registration-success h2{margin:10px 0}.registration-next{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
#view .registration-next h3{font-size:20px;margin:0 0 8px}.registration-next .button{margin:8px 0}
.profile-edit{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.profile-edit summary{cursor:pointer;font-size:16px;font-weight:600;padding:8px 0}.profile-edit form{margin-top:18px}
.account-signout{margin-top:22px}

/* Visitor guide: small side images with text wrapping into the available space. */
#view .guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
#view .guide-place{display:flow-root;padding:18px;min-width:0}
#view .guide-media{float:left;display:block;width:108px;height:auto;margin:2px 16px 8px 0}
#view .guide-media .guide-logo{width:96px;height:96px;padding:14px;margin:0 auto}
#view .guide-media .guide-photo{margin:0}
#view .guide-photo img{display:block;width:100%;height:100px;object-fit:contain;object-position:center}
#view .guide-photo figcaption{font-size:11px;line-height:1.4;text-align:left;padding-top:4px;overflow-wrap:anywhere}
#view .guide-type{font-size:13px;line-height:1.4;gap:5px;margin:0 0 7px}
#view .guide-type svg{width:14px;height:14px;flex:none}
#view .guide-place h3{font-size:21px;line-height:1.25;margin:0 0 8px}
#view .guide-address{font-size:14px;line-height:1.5;margin:0 0 8px}
#view .guide-description{font-size:16px;line-height:1.6;margin:0 0 10px}
#view .guide-phones{clear:both;flex-direction:row;flex-wrap:wrap;gap:0 16px;margin-top:4px}
#view .guide-actions{clear:both;margin-top:5px;padding-top:4px;gap:0 16px}
#view .guide-phones a,#view .guide-actions a{min-height:44px;font-size:15px}
#view .guide-source{clear:both;min-height:32px;margin-top:2px}
@media(max-width:900px){#view .guide-grid{grid-template-columns:1fr}}
@media(max-width:480px){
 #view .guide-place{padding:16px}
 #view .guide-media{width:82px;margin-right:12px;margin-bottom:6px}
 #view .guide-media .guide-logo{width:80px;height:80px;padding:11px}
 #view .guide-photo img{height:82px}
 #view .guide-place h3{font-size:20px}
}

/* Programme cover: a softly blended portrait and a translucent title panel. */
#view .compact-hero{
 isolation:isolate;min-height:340px;padding:30px;margin-bottom:28px;
 border-radius:26px;background:linear-gradient(118deg,#f9eaa2 0%,#f0d66b 52%,#b98636 100%);
 box-shadow:0 16px 42px -26px #79501b70;
}
#view .compact-hero .hero-portrait{
 z-index:0;top:-35px;bottom:auto;right:0;width:auto;height:calc(100% + 100px);aspect-ratio:188 / 268;
 object-fit:contain;object-position:center;opacity:.95;mix-blend-mode:multiply;
 -webkit-mask-image:radial-gradient(ellipse at 53% 46%,#000 35%,#000c 53%,transparent 76%);
 mask-image:radial-gradient(ellipse at 53% 46%,#000 35%,#000c 53%,transparent 76%);
}
#view .compact-hero:after{
 z-index:1;pointer-events:none;
 background:linear-gradient(100deg,#fff1ad55 0%,#fff1ad18 50%,transparent 76%);
}
#view .compact-hero .hero-content{
 z-index:2;flex:none;width:66%;max-width:650px;padding:28px 30px;
 border:1px solid #fffdf0b3;border-radius:24px;
 background:linear-gradient(125deg,#fffcE8eb,#fff7d7c2);
 -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
 box-shadow:0 16px 38px -18px #69421455,inset 0 1px 0 #ffffffb3;
}
#view .compact-hero .hero-festival-title{
 font-family:var(--font-display);font-size:clamp(27px,2.8vw,38px);font-weight:600;
 line-height:1.16;letter-spacing:.015em;max-width:none;margin:0 0 22px;color:#4c2e15;
 text-wrap:balance;overflow-wrap:normal;
}
#view .compact-hero .hero-meta{font-size:14px;line-height:1.5;gap:8px 18px;flex-wrap:wrap}
#view .compact-hero .hero-meta span{display:inline-flex;align-items:center;gap:7px}
@media(max-width:760px){
 #view .compact-hero{min-height:310px;padding:22px;border-radius:23px}
 #view .compact-hero .hero-portrait{width:auto;right:-12px;top:-20px;height:calc(100% + 50px)}
 #view .compact-hero .hero-content{width:72%;padding:23px 24px;border-radius:21px}
 #view .compact-hero .hero-festival-title{font-size:clamp(24px,4.1vw,30px);margin-bottom:18px;line-height:1.16}
 #view .compact-hero .hero-meta{font-size:13px;gap:7px 14px}
}
@media(max-width:480px){
 #view .compact-hero{display:block;min-height:0;padding:18px;border-radius:23px}
 #view .compact-hero .hero-portrait{width:auto;height:300px;top:-10px;right:0;object-position:center top;
  -webkit-mask-image:radial-gradient(ellipse at 53% 41%,#000 31%,#000c 48%,transparent 74%);
  mask-image:radial-gradient(ellipse at 53% 41%,#000 31%,#000c 48%,transparent 74%)}
 #view .compact-hero .hero-content{width:100%;margin-top:185px;padding:21px 20px;border-radius:20px;background:linear-gradient(125deg,#fffce8ed,#fff7d7d9)}
 #view .compact-hero .hero-festival-title{font-size:clamp(23px,6.2vw,28px);line-height:1.15;margin-bottom:18px}
 #view .compact-hero .hero-meta{font-size:13px}
}
