/* Warm details are shared by both themes. Dense plans keep quiet backgrounds. */
html[data-theme] body{--warm-illustration:url('/assets/festival-welcome.png?art=1.3.3');--welcome-shade:linear-gradient(90deg,#f5f3ed 0%,#f5f3edf5 24%,#f5f3ed55 54%,transparent 75%);--welcome-tint:linear-gradient(transparent,transparent)}
html[data-theme=dark] body{--welcome-shade:linear-gradient(90deg,#0d1011 0%,#0d1011f5 28%,#0d1011aa 52%,#0d10111a 80%);--welcome-tint:linear-gradient(#09201950,#09161180)}
html[data-theme][data-theme][data-theme] body .warm-welcome{position:relative;isolation:isolate;min-height:158px;padding:23px 28px!important;border-radius:14px;margin:0 0 14px;background-image:var(--welcome-shade),var(--welcome-tint),var(--warm-illustration);background-size:cover;background-position:center;border:1px solid var(--line);overflow:hidden}
.warm-welcome h1{max-width:62%;overflow-wrap:anywhere;line-height:1.12!important;font-size:clamp(24px,3vw,36px)!important;font-weight:650!important;margin:4px 0 10px!important}
.warm-welcome p{color:var(--text)!important;max-width:50%;font-size:14px!important;line-height:1.45}
.warm-welcome .festival-eyebrow{color:var(--text)!important;font-size:12px!important;letter-spacing:.02em!important;text-transform:none!important;max-width:60%}
html[data-theme] body .festival-brandbar{border-radius:0}
html[data-theme] body .btn{border-radius:10px!important}
html[data-theme] body :is(.ro-panel,.festival-opportunity,.home-metric,.ro205-news-card){border-radius:13px!important}
html[data-theme] body .festival-news-preview{background:transparent!important;border:0!important}
html[data-theme] body .festival-news-preview>.ro-panel-head{border:0!important;padding:4px 0 10px!important}
.festival-home-messages{gap:10px!important;background:transparent!important}
html[data-theme][data-theme][data-theme] body .festival-notice{background:var(--warn-bg)!important;border:1px solid var(--warn-line)!important;border-radius:12px!important;color:var(--text)!important}
html[data-theme][data-theme][data-theme] body .festival-notice.is-important{background:var(--bad-bg)!important;border-color:var(--bad-line)!important;border-left-width:4px!important}
html[data-theme][data-theme][data-theme] body .festival-notice.is-hidden{background:var(--neutral-bg)!important;border-color:var(--line2)!important}
html[data-theme][data-theme][data-theme] body .festival-notice :is(h2,h3,strong,p){color:var(--text)!important}
html[data-theme][data-theme][data-theme] body .festival-notice :is(small,time,.ro205-news-date){color:var(--muted)!important}
html[data-theme] .festival-home-message{padding:14px 16px!important}
.festival-notice h2,.festival-notice h3,.notice-list-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.notice-symbol{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;color:var(--warn);border-radius:50%;background:var(--bg3)}
.notice-symbol svg{width:22px!important;height:22px!important;pointer-events:none}
.is-important .notice-symbol{color:var(--bad)}
.notice-priority{font-size:11px!important;margin:0!important}
.notice-tabs{display:flex;flex-wrap:wrap;gap:6px}
html[data-theme] .festival-news-list>[aria-pressed=true]{outline:2px solid var(--gold2);outline-offset:-2px}
.notice-picker{border:0;padding:0;margin:12px 0}.notice-picker legend{font-weight:650;font-size:13px;margin-bottom:8px}.notice-picker>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.notice-picker label{position:relative;margin:0!important;cursor:pointer}.notice-picker input{position:absolute;opacity:0;width:1px!important;height:1px!important}
.notice-picker label>span{display:flex;align-items:center;gap:6px;padding:9px 7px;border:1px solid var(--line2);border-radius:9px;font-size:12px;min-height:43px}
.notice-picker svg{width:20px;height:20px;flex-shrink:0}
.notice-picker input:checked+span{background:var(--gold-soft);border-color:var(--gold2);outline:1px solid var(--gold2)}
.notice-picker input:focus-visible+span{outline:3px solid var(--info)}
.notice-important{display:flex;align-items:center;gap:8px!important;padding:10px;border:1px solid var(--bad-line);border-radius:9px;color:var(--text);background:var(--bad-bg)}
.notice-important input{flex-shrink:0}
.crew-capacity-ring{display:grid;place-items:center;width:62px;height:62px;flex-shrink:0;border-radius:50%;background:conic-gradient(var(--ok) calc(var(--remaining)*1%),var(--line) 0);margin:0 0 4px}
.crew-capacity-ring>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--bg3);font-size:14px;font-weight:650;color:var(--text)}
.crew-capacity-ring.is-empty{background:var(--line)}
html[data-theme] .home-metric .capacity-symbol{display:none!important}
.warm-hours-bar{height:10px;background:var(--line);border-radius:8px;overflow:hidden;margin:12px 0 6px}
.warm-hours-bar>span{display:block;height:100%;background:var(--ok);border-radius:8px}
.festival-my-hours small{display:block;color:var(--muted);line-height:1.4;margin-bottom:10px}
html[data-theme][data-theme] body .festival-personal-event[data-update-tone=ok]{border-color:var(--ok-line)!important;background:var(--ok-bg)!important;border-radius:10px;padding:12px}
html[data-theme] .warm-empty{border-radius:12px!important;background:var(--bg2)!important;padding:18px!important;text-align:left!important;color:var(--muted)!important}
.warm-empty::before{content:'';display:block;width:25px;height:25px;margin-bottom:8px;background:var(--ok);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 3C8 2 3 8 5 15c8 4 15-1 15-12ZM4 21 17 7' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E") center/contain no-repeat}
html[data-theme] .ro-face-row .face{border:2px solid var(--bg3);box-shadow:0 0 0 1px var(--line2)}
html[data-theme] .login-card{border-top:4px solid var(--gold2)}
html[data-theme] .reg-hero{border-top:3px solid var(--gold2);border-radius:14px}
html[data-theme] .festival-home .ro-panel-head h3::before{vertical-align:-2px}
@media(max-width:700px){
 html[data-theme] body{--welcome-shade:linear-gradient(90deg,#f5f3ed 0%,#f5f3edfa 28%,#f5f3eddd 60%,#f5f3ed33 83%,transparent)}
 html[data-theme=dark] body{--welcome-shade:linear-gradient(90deg,#0d1011 0%,#0d1011fa 28%,#0d1011dd 60%,#0d101166 83%,transparent)}
 html[data-theme][data-theme][data-theme] body .warm-welcome{padding:16px!important;min-height:155px;background-size:auto 100%;background-position:center}
 .warm-welcome h1{max-width:70%;font-size:25px!important}.warm-welcome p{max-width:68%;font-size:12px!important}.warm-welcome .festival-eyebrow{max-width:75%;font-size:11px!important}
 .notice-picker>div{grid-template-columns:repeat(3,minmax(0,1fr))}.notice-picker label>span{flex-direction:column;text-align:center;font-size:11px;padding:6px;gap:4px}
 .notice-tabs .btn{font-size:12px!important}.notice-symbol{width:27px;height:27px}.crew-capacity-ring{width:50px;height:50px}.crew-capacity-ring>span{width:38px;height:38px;font-size:12px}
}
@media print{.warm-welcome{background:none!important}.notice-tabs,.notice-picker{display:none!important}}
html[data-theme] body #newsEditor .notice-important{display:flex!important;flex-direction:row!important;align-items:center!important;text-align:left;min-height:44px;cursor:pointer}
html[data-theme] body #newsEditor .notice-important input[type=checkbox]{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;margin:0!important;flex:0 0 20px!important}

/* 1.2.31: shared composition, with wide canvases only where plans need them. */
html[data-theme][data-theme][data-theme] body.festival-layout .main{max-width:none!important;padding:0 24px 40px!important}
html[data-theme][data-theme][data-theme] body.festival-layout:is([data-view=plan],[data-view=shifts],[data-view=crew],[data-view=hours],[data-view=build]) .main{max-width:none!important}
html[data-theme][data-theme][data-theme] body.festival-layout[data-view=dashboard] .main{max-width:none!important}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-brandbar{padding:10px 0!important;gap:10px;min-height:64px}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions{gap:6px;flex-shrink:1}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .btn{padding:8px 11px!important;font-size:12px!important;min-height:40px}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-brand{font-size:18px;gap:8px}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-tabs{gap:24px}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-tabs button{padding:7px 0;min-height:40px}
html[data-theme][data-theme][data-theme] body .theme-control{min-height:38px;padding:0 6px;margin:0}
html[data-theme][data-theme][data-theme] body .theme-control select{width:96px;min-height:36px;box-shadow:none!important}
html[data-theme][data-theme][data-theme] body.festival-layout #festivalChrome{margin-bottom:12px}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-home-return{min-height:44px;padding:2px 0;border-bottom:0}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-home-return .btn{min-height:40px;background:transparent!important;border-color:transparent!important}
html[data-theme][data-theme][data-theme] body .warm-welcome{min-height:196px!important;padding:30px!important;background-color:#f5f3ed!important;background-image:linear-gradient(90deg,#f5f3ed 0%,#f5f3ed 36%,#f5f3edcc 47%,transparent 66%),url('/assets/festival-welcome.png?art=1.3.3')!important;background-size:100% 100%,contain!important;background-position:center,right center!important;background-repeat:no-repeat!important;display:flex!important;flex-direction:column;justify-content:center}
html[data-theme=dark][data-theme][data-theme] body .warm-welcome{background-color:#071719!important;background-image:linear-gradient(90deg,#071719 0%,#071719 36%,#071719dd 47%,transparent 66%),url('/assets/festival-night.png?art=1.3.3')!important}
html[data-theme][data-theme][data-theme] body .warm-welcome h1{max-width:52%;font-size:32px!important;letter-spacing:-.025em}
html[data-theme][data-theme][data-theme] body .warm-welcome p{max-width:45%;line-height:1.4;font-size:14px!important}
html[data-theme][data-theme][data-theme] body .warm-welcome .festival-eyebrow{max-width:46%;margin-bottom:6px}
html[data-theme][data-theme][data-theme] body .home-phase-metrics{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:10px;margin:10px 0 16px}
html[data-theme][data-theme][data-theme] body .home-metric{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:12px;row-gap:3px;padding:16px;min-height:108px;position:relative;align-content:center;background:var(--bg3)!important;box-shadow:0 2px 5px #00000004}
html[data-theme][data-theme][data-theme] body .home-metric .metric-icon{grid-column:1;grid-row:1/4;width:50px;height:50px;border-radius:50%;align-self:center;margin:0}
html[data-theme][data-theme][data-theme] body .home-metric .metric-icon svg{width:27px!important;height:27px!important}
html[data-theme][data-theme][data-theme] body .home-metric strong{grid-column:2;grid-row:1;font-size:23px;line-height:1.15;padding-right:8px}
html[data-theme][data-theme][data-theme] body .home-metric .metric-label{grid-column:2;grid-row:2;font-size:13px;line-height:1.3}
html[data-theme][data-theme][data-theme] body .home-metric small{grid-column:2;grid-row:3;font-size:11px;line-height:1.3}
html[data-theme][data-theme][data-theme] body .home-metric .crew-capacity-ring{grid-column:1;grid-row:1/4;width:50px;height:50px;align-self:center;margin:0}
html[data-theme][data-theme][data-theme] body .crew-capacity-ring>span{width:39px;height:39px;font-size:12px}
html[data-theme][data-theme][data-theme] body .festival-admin-phases{gap:8px;margin:10px 0 6px}
html[data-theme][data-theme][data-theme] body .festival-admin-phases>span{display:none}
html[data-theme][data-theme][data-theme] body .festival-admin-phases nav{gap:4px}
html[data-theme][data-theme][data-theme] body .festival-admin-phases .btn{border-radius:22px!important;min-height:38px;padding:7px 15px!important;font-size:12px;border-color:transparent!important}
html[data-theme][data-theme][data-theme] body .festival-admin-phases .btn:not(.primary){background:transparent!important}
html[data-theme][data-theme][data-theme] body .festival-news-preview{background:transparent!important;border:0!important;box-shadow:none!important;margin:12px 0 16px!important}
html[data-theme][data-theme][data-theme] body .festival-news-preview>.ro-panel-head{padding:0 0 8px!important;background:transparent!important}
html[data-theme][data-theme][data-theme] body .festival-news-preview>.hint{margin:0;padding:4px 0!important}
html[data-theme][data-theme][data-theme] body .festival-home-message{position:relative;padding:16px 18px 14px 80px!important;min-height:125px}
html[data-theme][data-theme][data-theme] body .festival-home-message header{display:block!important}
html[data-theme][data-theme][data-theme] body .festival-home-message h3{font-size:16px!important;gap:5px;margin:0 0 5px!important}
html[data-theme][data-theme][data-theme] body .festival-home-message .notice-symbol{position:absolute;left:16px;top:18px;width:49px;height:49px;background:var(--gold-soft)}
html[data-theme][data-theme][data-theme] body .festival-home-message .notice-symbol svg{width:30px!important;height:30px!important}
html[data-theme][data-theme][data-theme] body .festival-home-message.is-important .notice-symbol{background:var(--bad-bg)}
html[data-theme][data-theme][data-theme] body .festival-home-message time{font-size:11px}
html[data-theme][data-theme][data-theme] body .festival-home-message p{font-size:14px;line-height:1.45;margin:7px 0 3px!important;white-space:pre-wrap;overflow-wrap:anywhere}
html[data-theme][data-theme][data-theme] body .festival-home-message footer{justify-content:flex-end;margin:0}
html[data-theme][data-theme][data-theme] body .festival-home-message [data-broadcast-read]{min-height:36px;padding:6px 0!important;border:0!important;background:transparent!important;text-decoration:underline;text-underline-offset:3px;font-size:12px!important}
html[data-theme][data-theme][data-theme] body .notice-priority{display:inline-flex;gap:4px;align-items:center;color:var(--bad);font-size:11px;font-weight:600}
html[data-theme][data-theme][data-theme] body .notice-priority svg{width:14px!important;height:14px!important}
html[data-theme][data-theme][data-theme] body .home-absence-alerts{background:var(--bg3)!important;border:1px solid var(--line)!important;border-left:3px solid var(--bad-line)!important;padding:14px 16px!important}
html[data-theme][data-theme][data-theme] body .home-absence-alerts h2{font-size:18px!important;color:var(--bad)!important;margin:0}
html[data-theme][data-theme][data-theme] body .home-absence-event{padding:9px 0!important;border-color:var(--line)!important;gap:10px}
html[data-theme][data-theme][data-theme] body .home-absence-event:last-child{padding-bottom:0!important}
html[data-theme][data-theme][data-theme] body .home-absence-alerts .ro-panel-head{margin-bottom:8px!important;padding-bottom:4px!important}
html[data-theme][data-theme][data-theme] body .festival-home .ro-panel{padding:16px}
html[data-theme][data-theme][data-theme] body :is(.festival-opportunity,.festival-for-you,.ro205-news-card){padding:16px!important}
html[data-theme][data-theme][data-theme] body :is(.festival-opportunity,.ro-panel) h2{font-size:20px;line-height:1.3}
html[data-theme][data-theme][data-theme] body .festival-opportunity h2 svg{width:26px;height:26px;color:var(--gold2);vertical-align:-5px;margin-right:6px}
html[data-theme][data-theme][data-theme] body .festival-home-messages{align-items:start}
html[data-theme][data-theme][data-theme] body .festival-home-messages:empty{display:none}
html[data-theme][data-theme][data-theme] body .festival-feature-grid button{border-radius:12px;padding:14px;gap:12px}
html[data-theme][data-theme][data-theme] body .festival-feature-grid button>svg:first-child{width:30px!important;height:30px!important;color:var(--gold2)}
html[data-theme][data-theme][data-theme] body .festival-news-list .notice-symbol{width:36px;height:36px}
@media(max-width:900px){
 html[data-theme][data-theme][data-theme] body.festival-layout .main{padding:0 14px 90px!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-brandbar{gap:8px;min-height:0;padding:8px 0!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions{display:flex!important;flex-wrap:wrap!important;width:100%;gap:6px!important;justify-content:flex-start}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions>[data-festival-view=overview]{display:none!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header{width:100%;justify-content:space-between}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .btn{min-height:40px;font-size:11px!important;padding:7px 9px!important}
 html[data-theme][data-theme][data-theme] body .theme-control select{width:90px}
 html[data-theme][data-theme][data-theme] body .warm-welcome{min-height:172px!important;padding:18px!important;background-size:100% 100%,contain!important}
 html[data-theme][data-theme][data-theme] body .warm-welcome h1{font-size:25px!important;max-width:62%}
 html[data-theme][data-theme][data-theme] body .warm-welcome p{font-size:12px!important;max-width:57%}
 html[data-theme][data-theme][data-theme] body .warm-welcome .festival-eyebrow{font-size:11px!important;max-width:60%}
 html[data-theme][data-theme][data-theme] body .home-phase-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 html[data-theme][data-theme][data-theme] body .home-metric{grid-template-columns:35px minmax(0,1fr);gap:4px 7px;padding:12px 10px;min-height:102px}
 html[data-theme][data-theme][data-theme] body .home-metric .metric-icon{width:34px;height:34px}
 html[data-theme][data-theme][data-theme] body .home-metric .metric-icon svg{width:23px!important;height:23px!important}
 html[data-theme][data-theme][data-theme] body .home-metric strong{font-size:20px}
 html[data-theme][data-theme][data-theme] body .home-metric .metric-label{font-size:12px}
 html[data-theme][data-theme][data-theme] body .home-metric small{font-size:11px}
 html[data-theme][data-theme][data-theme] body .home-metric .crew-capacity-ring{width:34px;height:34px}
 html[data-theme][data-theme][data-theme] body .crew-capacity-ring>span{width:26px;height:26px;font-size:9px}
 html[data-theme][data-theme][data-theme] body .festival-home-message{padding:14px 12px 10px 63px!important}
 html[data-theme][data-theme][data-theme] body .festival-home-message .notice-symbol{width:37px;height:37px;left:12px;top:16px}
 html[data-theme][data-theme][data-theme] body .festival-home-message .notice-symbol svg{width:25px!important;height:25px!important}
 html[data-theme][data-theme][data-theme] body .home-absence-event{align-items:stretch}
 html[data-theme][data-theme][data-theme] body .home-alert-actions{justify-content:flex-end}
}
@media print{html[data-theme][data-theme][data-theme] body .warm-welcome{background:none!important}}

@media(max-width:600px){
 html[data-theme][data-theme][data-theme] body .warm-welcome{min-height:190px!important;background-position:center,right bottom!important;justify-content:flex-start!important}
 html[data-theme][data-theme][data-theme] body .warm-welcome h1{max-width:62%;font-size:24px!important}
 html[data-theme][data-theme][data-theme] body .warm-welcome p{max-width:55%;font-size:12px!important}
}
/* Override the older ID-scoped panel rules on the actual notice detail page. */
html[data-theme][data-theme][data-theme] body #content .festival-notice{background:var(--warn-bg)!important;border-color:var(--warn-line)!important}
html[data-theme][data-theme][data-theme] body #content .festival-notice.is-important{background:var(--bad-bg)!important;border-color:var(--bad-line)!important}
html[data-theme][data-theme][data-theme] body #content .festival-notice.is-hidden{background:var(--neutral-bg)!important;border-color:var(--line2)!important}
html[data-theme][data-theme][data-theme] body #content .ro205-news-card .notice-symbol{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;background:var(--gold-soft);border-radius:50%}
html[data-theme][data-theme][data-theme] body #content .ro205-news-card .notice-symbol svg{width:26px!important;height:26px!important}
html[data-theme][data-theme][data-theme] body #content .festival-news-list{display:flex;flex-direction:column;gap:6px}
html[data-theme][data-theme][data-theme] body #content .festival-news-list>button{padding:12px!important;flex-shrink:0}

/* Complete day/night artwork. Actions remain outside the illustration. */
html[data-theme][data-theme][data-theme] body .topbar.warm-area-banner{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;padding:0!important;background:transparent!important;border:0!important;overflow:visible!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{position:relative;isolation:isolate;min-height:144px;width:100%;box-sizing:border-box;padding:18px!important;border:1px solid var(--line)!important;border-radius:18px;background:#f5ebd6!important;overflow:hidden;gap:10px}
html[data-theme=dark][data-theme][data-theme] body .warm-area-banner>.row:first-child{background:#102522!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{content:"";position:absolute;z-index:-1;inset:0 0 0 auto;width:min(100%,432px);pointer-events:none;background-image:var(--area-light);background-repeat:no-repeat;background-position:right center;background-size:contain;mask-image:linear-gradient(to right,transparent,#000 18%)}
html[data-theme=dark][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{background-image:var(--area-dark)}
html[data-theme][data-theme][data-theme] body .warm-area-banner .title-block{width:52%;max-width:560px;min-width:0;flex:none!important;padding:8px 12px;border-radius:12px;background:rgba(245,235,214,.94)}
html[data-theme=dark][data-theme][data-theme] body .warm-area-banner .title-block{background:rgba(16,37,34,.94)}
html[data-theme][data-theme][data-theme] body .warm-area-banner #title{font-size:clamp(22px,2.2vw,30px)!important;line-height:1.18;overflow-wrap:anywhere}
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:last-child{margin:0!important;justify-content:flex-end;width:100%}
html[data-theme][data-theme][data-theme] body .warm-area-banner #actions{margin:0!important;flex-wrap:wrap}
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:last-child:has(#actions:empty){display:none!important}
html[data-theme][data-theme][data-theme] body #content .warm-empty{border-radius:16px;border-style:dashed;background:linear-gradient(135deg,var(--bg3),var(--gold-soft))!important}
html[data-theme][data-theme][data-theme] body #content :is(.ro-panel,.card)>h3:first-child{border-left:3px solid var(--gold2);padding-left:10px}
@media(max-width:700px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{align-items:flex-start!important;min-height:0;padding:10px 12px calc((100vw - 30px)/3 + 8px)!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{top:auto;width:100%;height:calc((100vw - 30px)/3);background-position:right bottom;mask-image:none}
 html[data-theme][data-theme][data-theme] body .warm-area-banner .title-block{width:auto;max-width:none;flex:1!important;padding:2px;background:transparent!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #title{font-size:23px!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #actions{justify-content:flex-start}
}
@media print{
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{min-height:0;padding:0!important;background:none!important;border:0!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{display:none}
 html[data-theme][data-theme][data-theme] body .warm-area-banner .title-block{width:100%;background:none!important}
}
/* The same welcome reaches the public sign-in and registration pages. */
html[data-theme][data-theme][data-theme] body .warm-public-art{width:100%;height:120px;background:var(--area-light) right center/contain no-repeat #f5ebd6;border-radius:12px;margin:10px 0;pointer-events:none}
html[data-theme=dark][data-theme][data-theme] body .warm-public-art{background-image:var(--area-dark);background-color:#102522}
html[data-theme][data-theme][data-theme] body .reg-hero{position:relative;isolation:isolate;padding-right:46%;min-height:170px;box-sizing:border-box;overflow:hidden}
html[data-theme][data-theme][data-theme] body .reg-hero .warm-public-art{position:absolute;z-index:-1;right:0;top:0;width:45%;height:100%;margin:0;mask-image:linear-gradient(to right,transparent,#000 20%)}
html[data-theme][data-theme][data-theme] body[data-view=scoring] #content .ro176-advanced>summary:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=scoring] #content .ro176-advanced>summary{display:flex;align-items:center;justify-content:space-between;padding:14px;list-style:none;gap:12px}
html[data-theme][data-theme][data-theme] body[data-view=scoring] #content .ro176-advanced>summary span>span:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body[data-view=scoring] #content .ro176-advanced>summary b:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=scoring] #content .ro176-advanced>summary span>span,html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=scoring] #content .ro176-advanced>summary b{display:block;margin:0 0 4px}
html[data-theme][data-theme][data-theme] body[data-view=scoring] #content .ro176-advanced-body:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=scoring] #content .ro176-advanced-body{padding:0 14px 14px;display:grid;grid-template-columns:1fr;gap:14px}
html[data-theme][data-theme][data-theme] body[data-view=scoring] #content .ro176-score-grid:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=scoring] #content .ro176-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
@media(max-width:700px){
 html[data-theme][data-theme][data-theme] body .reg-hero{padding:16px!important;min-height:0}
 html[data-theme][data-theme][data-theme] body .reg-hero .warm-public-art{position:static;width:100%;height:auto;aspect-ratio:3/1;margin:12px 0 0;mask-image:none}
 html[data-theme][data-theme][data-theme] body .login-card .warm-public-art{height:auto;aspect-ratio:3/1}
}
/* Compact shared composition: title and complete artwork stay together. */
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{min-height:96px;padding:10px 16px!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{inset:0 0 0 auto;width:360px;max-width:100%;height:100%;mask-image:linear-gradient(to right,transparent,#000 18%)}
html[data-theme][data-theme][data-theme] body .warm-area-banner .title-block{width:60%;max-width:none;padding:3px 0;background:transparent!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner #title{display:flex;align-items:center;gap:8px;font-size:24px!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner #title>svg{width:24px;height:24px;flex-shrink:0}
html[data-theme][data-theme][data-theme] body .warm-area-banner .title-block>.row{flex-wrap:nowrap!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner #helpBtn{min-width:32px;width:32px;height:32px;min-height:32px;padding:4px!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner .ro-page-info{font-size:11px;margin:4px 0 0}
html[data-theme][data-theme][data-theme] body .warm-area-banner .ro-page-info[open]{background:var(--bg);border-radius:8px;padding:6px;position:relative;z-index:2}
html[data-theme][data-theme][data-theme] body.festival-layout #festivalHomeReturn{display:none!important}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-brandbar{padding:6px 0!important;min-height:54px}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-tabs{min-height:36px;margin:0;padding:0;gap:18px}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-tabs button{padding:8px 0!important}
html[data-theme][data-theme][data-theme] body.festival-layout #festivalChrome{margin-bottom:10px!important}
html[data-theme][data-theme][data-theme] body .festival-context-nav{margin:0 0 8px!important;padding:0!important;gap:12px;min-height:0}
html[data-theme][data-theme][data-theme] body .festival-context-nav:empty{display:none!important}
html[data-theme][data-theme][data-theme] body .festival-context-nav button{padding:7px 0!important;min-height:36px}
html[data-theme][data-theme][data-theme] body .topbar.warm-area-banner{margin-bottom:8px!important;gap:5px!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner #actions .btn{min-height:34px;padding:6px 10px!important}
html[data-theme][data-theme][data-theme] body .warm-welcome{min-height:140px!important;padding:18px 22px!important;margin-bottom:10px}
html[data-theme][data-theme][data-theme] body .warm-welcome h1{font-size:28px!important;margin:4px 0 6px!important}
html[data-theme][data-theme][data-theme] body .warm-welcome p{margin:0;font-size:13px!important}
@media(max-width:900px){
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-brandbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;padding:6px 0!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-brand{grid-column:1;grid-row:1;min-width:0;gap:6px;font-size:17px}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-brand small{font-size:11px;white-space:normal;overflow-wrap:anywhere}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-brand img{width:28px;height:28px;object-fit:contain}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:2px;width:auto!important;padding:0!important;margin:0!important;border:0!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header .presence-state{font-size:11px;padding:1px 5px;min-height:0;line-height:18px;border:0;background:transparent}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header .btn{font-size:11px;min-height:32px;padding:4px 9px!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions{grid-column:1/-1;grid-row:2;display:flex!important;flex-wrap:wrap!important;gap:4px!important;width:100%;justify-content:flex-start}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .btn{min-height:36px;font-size:11px!important;padding:5px 7px!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .theme-control{padding:3px 5px;gap:3px;min-height:36px;margin:0}
 html[data-theme][data-theme][data-theme] body .theme-control select{width:67px;font-size:11px;min-height:28px;padding:2px!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-mobile-news{display:none!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{min-height:100px;padding:10px 12px!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{inset:0 0 0 auto;width:300px;max-width:100%;height:100%;mask-image:linear-gradient(to right,transparent,#000 28%)}
 html[data-theme][data-theme][data-theme] body .warm-area-banner .title-block{width:58%;flex:none!important;max-width:none;padding:3px 0!important;background:transparent!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #title{font-size:20px!important;gap:5px;line-height:1.15}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #title>svg{width:20px;height:20px}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #helpBtn{display:inline-flex!important;position:absolute;right:8px;top:8px;background:var(--bg)!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner .ro-page-info summary{min-height:24px;line-height:24px}
 html[data-theme][data-theme][data-theme] body .warm-welcome{min-height:130px!important;padding:14px!important}
 html[data-theme][data-theme][data-theme] body .warm-welcome h1{font-size:23px!important;max-width:62%}
 html[data-theme][data-theme][data-theme] body .warm-welcome p{font-size:11px!important;max-width:54%}
}

/* Shared quiet detail for forms, lists and section cards. No extra spacing. */
html[data-theme][data-theme][data-theme] body #content .warm-surface{
 border:1px solid var(--line2)!important;border-radius:14px!important;
 background-color:var(--bg3)!important;
 background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22100%22%20height%3D%2280%22%20viewBox%3D%220%200%20100%2080%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%237c8963%22%20stroke-width%3D%221.5%22%20opacity%3D%22.22%22%3E%3Cpath%20d%3D%22M100%202C67%2015%2075%2050%2043%2072M88%209C72%202%2065%205%2064%2017C75%2021%2081%2018%2088%209ZM78%2025C96%2015%2098%2026%2087%2037C79%2036%2077%2032%2078%2025ZM69%2042C51%2024%2044%2031%2048%2043C57%2051%2063%2047%2069%2042ZM59%2056C76%2040%2085%2050%2073%2061C65%2064%2062%2062%2059%2056Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),linear-gradient(115deg,var(--gold-soft),transparent 42%)!important;
 background-repeat:no-repeat!important;background-position:right top,left top!important;
 background-size:90px 72px,100% 44px!important;
 box-shadow:0 2px 5px #00000006!important;
}
html[data-theme][data-theme][data-theme] body #content .warm-surface .warm-surface{background-image:none!important;box-shadow:none!important}
html[data-theme][data-theme][data-theme] body #content .warm-surface :is(h2,h3,h4){color:var(--text)}
html[data-theme][data-theme][data-theme] body #content .warm-surface>summary{border-radius:13px;color:var(--text)}
html[data-theme][data-theme][data-theme] body #content .warm-surface.table-wrap{background-image:none!important}
html[data-theme][data-theme][data-theme] body #content .warm-surface.table-wrap thead th{background:var(--gold-soft)!important;color:var(--text)!important}
html[data-theme][data-theme][data-theme] body #content .warm-empty{background:linear-gradient(125deg,var(--bg3),var(--gold-soft))!important;border-color:var(--line2)!important}
html[data-theme][data-theme][data-theme] body :is(input,textarea,select):focus-visible{outline:2px solid var(--gold2)!important;outline-offset:2px}
html[data-theme][data-theme][data-theme] body .login-lang{position:static!important;display:flex!important;justify-content:flex-end;gap:6px;margin:0 0 6px}
html[data-theme][data-theme][data-theme] body .login-lang .btn{width:auto!important;min-height:36px!important;margin:0!important}
html[data-theme][data-theme][data-theme] body .brand-login{flex-direction:row;justify-content:center;gap:10px;text-align:left;margin:8px 0 10px!important}
html[data-theme][data-theme][data-theme] body .brand-login .brand-logo.lg{width:40px!important;height:40px!important;object-fit:contain}
html[data-theme][data-theme][data-theme] body .brand-login h1{font-size:21px!important}
html[data-theme][data-theme][data-theme] body .login-card .warm-public-art{height:90px;aspect-ratio:auto;margin:6px 0;background-size:contain}
html[data-theme][data-theme][data-theme] body .reg-hero{min-height:120px;padding-top:14px!important;padding-bottom:14px!important}
@media print{
 html[data-theme][data-theme][data-theme] body #content .warm-surface{background-image:none!important;box-shadow:none!important}
}

html[data-theme][data-theme][data-theme] body .login-card .warm-public-art{mask-image:linear-gradient(to right,transparent,#000 25%)}

/* Account actions remain visible without opening a menu. */
html[data-theme][data-theme][data-theme] body .festival-account-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
html[data-theme][data-theme][data-theme] body .festival-language{display:flex;align-items:center;gap:5px;border:1px solid var(--line2);border-radius:10px;background:var(--bg3);padding:4px 7px;font-size:11px;margin:0;box-sizing:border-box}
html[data-theme][data-theme][data-theme] body .festival-language select{width:80px;min-height:28px;padding:2px!important;border:0!important;background:transparent!important;font-size:12px;margin:0}
html[data-theme][data-theme][data-theme] body [data-header-logout]{display:inline-flex!important;align-items:center;gap:5px;white-space:nowrap}
html[data-theme][data-theme][data-theme] body [data-header-logout] svg{width:16px;height:16px}
@media(max-width:900px){
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-account-actions{display:contents}
 html[data-theme][data-theme][data-theme] body .festival-language{flex-direction:column;align-items:flex-start;gap:0;padding:2px 5px;min-height:36px}
 html[data-theme][data-theme][data-theme] body .festival-language>span{font-size:9px;line-height:11px}
 html[data-theme][data-theme][data-theme] body .festival-language select{width:72px;min-height:18px;height:18px;font-size:11px}
}

html[data-theme][data-theme][data-theme] body .festival-language select{font-family:inherit!important;color:var(--text)!important;min-width:0}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions{flex-shrink:1;flex-wrap:wrap}
html[data-theme][data-theme][data-theme] body:not(.festival-layout) .main>.festival-account-actions{justify-content:flex-end;margin-bottom:8px}
@media(max-width:900px){
 html[data-theme][data-theme][data-theme] body .festival-language select{width:84px;height:22px;min-height:22px;font-size:16px!important}
}

@media(max-width:900px){
 html[data-theme][data-theme][data-theme] body[data-view=plan] .ro-plan-tools-v13:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=plan] .ro-plan-tools-v13{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:"day day" "area suggest"!important;gap:8px!important;padding:10px!important;margin-bottom:8px!important}
 html[data-theme][data-theme][data-theme] body[data-view=plan] .ro-plan-suggest:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=plan] .ro-plan-suggest{align-self:end;min-height:44px!important;font-size:12px!important;padding:6px!important}
 html[data-theme][data-theme][data-theme] body[data-view=plan] .ro-plan-secondary-tools:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=plan] .ro-plan-secondary-tools{margin:0 0 8px!important;gap:6px!important;padding:0!important}
 html[data-theme][data-theme][data-theme] body[data-view=plan] .ro-plan-secondary-tools .ro-conflict-switch:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=plan] .ro-plan-secondary-tools .ro-conflict-switch{margin:0!important;min-height:36px}
}

/* Independent profile columns avoid tall, shared grid rows around linked people. */
html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-grid:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-grid{align-items:start;gap:10px!important}
html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column{display:flex;flex-direction:column;gap:10px;min-width:0}
html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column>.ro-panel:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column>.ro-panel{margin:0!important;min-width:0;padding:14px!important}
html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column .ro-panel-head:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column .ro-panel-head{padding:0 0 10px!important;margin:0!important}
html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column .ro-separation h3:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column .ro-separation h3{margin:0 0 8px!important}
html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column .ro-form-grid:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column .ro-form-grid{gap:10px!important}
html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column .ro-profile-face:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column .ro-profile-face{margin-bottom:8px!important}
@media(max-width:1000px){
 html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column{display:contents}
 html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-id:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-id{order:1}
 html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-form:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-form{order:2}
 html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-prefs:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-prefs{order:3}
 html[data-theme][data-theme][data-theme] body[data-view=profil] #myFriends:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] #myFriends{order:4}
 html[data-theme][data-theme][data-theme] body[data-view=profil] #mySeparation:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] #mySeparation{order:5}
}
/* Keep tools close to the content; optional page hints remain available. */
html[data-theme][data-theme][data-theme] body #content>:first-child{margin-top:0!important}
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{min-height:88px}
html[data-theme][data-theme][data-theme] body .topbar.warm-area-banner{gap:4px!important;margin-bottom:6px!important}
html[data-theme][data-theme][data-theme] body .festival-context-nav{gap:6px 12px!important;margin-bottom:6px!important}
html[data-theme][data-theme][data-theme] body[data-view=plan] .ro-plan-secondary-tools:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=plan] .ro-plan-secondary-tools{margin:8px 0 0!important;padding:8px 0 0!important;border-top:1px solid var(--line)}

html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-id:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-id{position:static!important}
@media(max-width:1000px){html[data-theme][data-theme][data-theme] body[data-view=profil] .ro-profile-column>.ro-panel:not(.ro-page-context, .ro-page-context *),html[data-theme][data-theme][data-theme] body .ro-page-context[data-view=profil] .ro-profile-column>.ro-panel{grid-column:1/-1!important;grid-row:auto!important}}
/* Fade at the real image edge, including wide screens with a flat banner. */
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{width:auto!important;aspect-ratio:3/1;max-width:100%;height:100%}
@media(min-width:901px){
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-brandbar{display:grid!important;grid-template-columns:minmax(155px,.6fr) minmax(0,3fr) 132px;gap:8px;padding:4px 0!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-brand{font-size:17px}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions{justify-content:flex-end;gap:5px}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .btn{min-height:36px;padding:6px 9px!important;font-size:12px!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header{width:132px!important;min-height:54px;display:flex;flex-direction:column;justify-content:center;gap:2px;flex-wrap:nowrap;padding:0!important;border:0!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header .presence-state{font-size:11px;padding:0;line-height:18px;background:transparent;border:0}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header .btn{min-height:32px;padding:5px 10px!important;font-size:12px!important}
}
/* Wide screens get an independent panoramic composition. The area-specific art
   stays fully visible on the right; mobile retains the original banner. */
@media(min-width:901px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{min-height:112px}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child{min-height:clamp(154px,12vw,208px)}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::after{display:none!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-context-nav{display:none!important}
}
@media(min-width:901px){
 html[data-theme][data-theme][data-theme] body .topbar.warm-area-banner{position:relative}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:last-child:not(:has(#actions:empty)){position:absolute;right:29%;top:4px;height:calc(100% - 8px);max-width:38%;display:flex;align-items:center;justify-content:flex-end;margin:0!important;z-index:3;pointer-events:none}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #actions{pointer-events:auto;justify-content:flex-end}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #actions .btn{background:var(--bg3)!important;border-color:var(--line2)!important}
}
@media(min-width:901px){html[data-theme][data-theme][data-theme] body .topbar.warm-area-banner{position:relative!important}}
/* Desktop: the area illustration occupies the center-right of the panorama. */
@media(min-width:901px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{right:18%;mask-image:linear-gradient(to right,transparent,#000 18%,#000 94%,transparent)}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #actions .btn:not(.primary){background:var(--bg3)!important;border-color:var(--line2)!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner #actions .btn.primary{background:var(--gold2)!important;color:var(--sand-ink)!important;border-color:var(--gold2)!important}
}
/* On wider desktops page actions share the navigation row above the image. */
@media(min-width:1200px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:last-child:not(:has(#actions:empty)){top:-49px;right:0;height:38px;max-width:44%;align-items:center}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-tabs{padding-right:300px}
}
@media(min-width:1200px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner #actions .btn{height:36px!important;min-height:36px!important;padding:6px 10px!important;line-height:1.1!important}
}
/* The page's own illustration owns the desktop header. A shared panorama
   obscured the subject and made every section look like the same page. */
@media(min-width:901px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::after{display:none!important}
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before{
  inset:0 0 0 auto!important;transform:none!important;width:clamp(462px,36vw,624px)!important;
  height:100%!important;max-width:65%!important;aspect-ratio:3/1!important;
  background-size:contain!important;background-position:right center!important;
  /* The source scenes have foliage on their far left. Keep that edge open. */
  mask-image:linear-gradient(to right,transparent 0%,transparent 23%,#000 53%)!important
 }
}
/* The common left frame remains open toward each page's right illustration.
   Both sit on one continuous banner surface, with the real heading on top. */
html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::after{
 content:"";display:block!important;position:absolute;z-index:-2;inset:0 auto 0 0;
 width:70%;pointer-events:none;
 background:url('/assets/banners/title-frame-light.webp?art=1.3.5') left center / auto 100% no-repeat;
 mask-image:linear-gradient(to right,#000 0%,#000 30%,transparent 100%)
}
html[data-theme=dark][data-theme][data-theme] body .warm-area-banner>.row:first-child::after{background-image:url('/assets/banners/title-frame-dark.webp?art=1.3.5')}
@media(min-width:901px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::after{
  mask-image:linear-gradient(to right,#000 0,#000 clamp(205px,17vw,290px),transparent clamp(440px,27vw,520px))
 }
 html[data-theme][data-theme][data-theme] body .warm-area-banner .title-block{
  position:relative;z-index:1;width:min(54%,760px);max-width:760px;
  padding:8px 14px 8px clamp(32px,4vw,70px)!important;background:transparent!important
 }
}
@media(max-width:700px){
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::after{width:62%;mask-image:linear-gradient(to right,#000 0%,#000 65%,transparent 100%)}
}
/* The start page has its own hero; its heading gets the same left frame. */
html[data-theme][data-theme][data-theme] body .warm-welcome{
 background-color:#f5ebd6!important;
 background-image:none!important;
 padding-left:clamp(56px,4vw,80px)!important
}
html[data-theme][data-theme][data-theme] body .warm-welcome::after{
 content:"";position:absolute;z-index:-2;inset:0 auto 0 0;
 width:70%;pointer-events:none;
 background:url('/assets/banners/title-frame-light.webp?art=1.3.5') left center / auto 100% no-repeat;
 mask-image:linear-gradient(to right,#000 0,#000 clamp(155px,15vw,225px),transparent clamp(330px,24vw,420px))
}
html[data-theme][data-theme][data-theme] body .warm-welcome::before{
 content:"";position:absolute;z-index:-1;inset:0 0 0 auto;
 width:auto;height:100%;aspect-ratio:3/1;max-width:65%;pointer-events:none;
 background:url('/assets/festival-welcome.png?art=1.3.3') right center / contain no-repeat;
 mask-image:linear-gradient(to right,transparent 0%,transparent 27%,#000 62%)
}
html[data-theme=dark][data-theme][data-theme] body .warm-welcome{
 background-color:#102522!important
}
html[data-theme=dark][data-theme][data-theme] body .warm-welcome::after{background-image:url('/assets/banners/title-frame-dark.webp?art=1.3.5')}
html[data-theme=dark][data-theme][data-theme] body .warm-welcome::before{background-image:url('/assets/festival-night.png?art=1.3.3')}
/* Public sign-in and crew registration use the same open left frame. */
html[data-theme][data-theme][data-theme] body .login-card .login-banner{
 position:relative;isolation:isolate;display:flex;align-items:center;overflow:hidden;
 padding:0 12px 0 55px;box-sizing:border-box;background:#f5ebd6!important;
 mask-image:none!important
}
html[data-theme=dark][data-theme][data-theme] body .login-card .login-banner{background:#102522!important}
html[data-theme][data-theme][data-theme] body .login-card .login-banner::before{
 content:"";position:absolute;z-index:-2;inset:0 auto 0 0;width:78%;
 background:url('/assets/banners/title-frame-light.webp?art=1.3.5') left center / auto 100% no-repeat;
 mask-image:linear-gradient(to right,#000 0%,#000 35%,transparent 90%)
}
html[data-theme=dark][data-theme][data-theme] body .login-card .login-banner::before{background-image:url('/assets/banners/title-frame-dark.webp?art=1.3.5')}
html[data-theme][data-theme][data-theme] body .login-card .login-banner::after{
 content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
 background:var(--area-light) right center / contain no-repeat;
 mask-image:linear-gradient(to right,transparent 33%,#000 68%)
}
html[data-theme=dark][data-theme][data-theme] body .login-card .login-banner::after{background-image:var(--area-dark)}
html[data-theme][data-theme][data-theme] body .login-card .login-banner h2{
 position:relative;margin:0!important;font-size:21px!important;line-height:1.15;color:var(--text)
}
html[data-theme][data-theme][data-theme] body .reg-hero{
 background-color:#f5ebd6!important;
 background-image:none!important;
 padding-left:clamp(48px,5vw,76px)!important
}
html[data-theme][data-theme][data-theme] body .reg-hero::before{
 content:"";position:absolute;z-index:-2;left:0;top:0;width:70%;height:100%;pointer-events:none;
 background:url('/assets/banners/title-frame-light.webp?art=1.3.5') left center / auto 100% no-repeat;
 mask-image:linear-gradient(to right,#000 0,#000 clamp(210px,18vw,300px),transparent clamp(360px,32vw,580px))
}
html[data-theme=dark][data-theme][data-theme] body .reg-hero{background-color:#102522!important}
html[data-theme=dark][data-theme][data-theme] body .reg-hero::before{background-image:url('/assets/banners/title-frame-dark.webp?art=1.3.5')}
@media(max-width:700px){
 html[data-theme][data-theme][data-theme] body .warm-welcome{padding-left:clamp(54px,14vw,70px)!important}
 html[data-theme][data-theme][data-theme] body .warm-welcome::before{
  width:65%;height:100%;aspect-ratio:auto;background-size:auto 100%;
  mask-image:linear-gradient(to right,transparent 0%,transparent 25%,#000 67%)
 }
 html[data-theme][data-theme][data-theme] body .warm-welcome::after{
  width:100%;mask-image:linear-gradient(to right,#000 0%,#000 38%,transparent 77%)
 }
 html[data-theme][data-theme][data-theme] body .reg-hero{padding-left:44px!important;background-image:none!important}
 html[data-theme][data-theme][data-theme] body .reg-hero::before{
  z-index:-1;width:min(100%,260px);height:140px;
  background-position:left top;background-size:auto 140px;
  mask-image:linear-gradient(to bottom,#000 0,#000 20px,transparent 80px)
 }
 html[data-theme=dark][data-theme][data-theme] body .reg-hero::before{background-image:url('/assets/banners/title-frame-dark.webp?art=1.3.5')}
}
@media print{
 html[data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::after{display:none!important}
 html[data-theme][data-theme][data-theme] body .warm-welcome{background:none!important}
 html[data-theme][data-theme][data-theme] body .warm-welcome::before{display:none!important}
 html[data-theme][data-theme][data-theme] body .reg-hero,html[data-theme][data-theme][data-theme] body .login-card .login-banner{background:none!important}
}

/* Compact account controls keep their native selectors and accessible names. */
html[data-theme][data-theme][data-theme] body .festival-language,
html[data-theme][data-theme][data-theme] body .theme-control{
 position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;
 width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;
 box-sizing:border-box;padding:0!important;margin:0!important;border:1px solid var(--line2);
 border-radius:9px;background:var(--bg3);cursor:pointer
}
html[data-theme][data-theme][data-theme] body :is(.festival-language,.theme-control) select{
 position:absolute;inset:0;z-index:2;width:100%!important;height:100%!important;
 min-width:0!important;min-height:0!important;opacity:0!important;
 margin:0!important;padding:0!important;cursor:pointer;appearance:none
}
html[data-theme][data-theme][data-theme] body :is(.festival-language,.theme-control):focus-within{
 outline:2px solid var(--gold2);outline-offset:2px
}
html[data-theme][data-theme][data-theme] body .festival-language .festival-flag{
 width:23px;height:17px;display:block;border-radius:2px;box-shadow:0 0 0 1px #8887
}
html[data-theme][data-theme][data-theme] body .theme-control svg{width:22px;height:22px;display:block;flex:none}
html[data-theme][data-theme][data-theme] body .theme-control[data-resolved=light] .theme-sun-core{fill:currentColor}
html[data-theme][data-theme][data-theme] body .theme-control[data-resolved=dark] .theme-sun-core{fill:none}
html[data-theme][data-theme][data-theme] body .theme-control[data-preference=auto]::after{
 content:'A';position:absolute;right:1px;bottom:0;font-size:9px;font-weight:700;
 line-height:12px;color:var(--text);pointer-events:none
}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-account-actions{display:contents!important}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .festival-language{order:10}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .theme-control{order:11}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions [data-header-logout]{
 order:12;display:inline-flex!important;align-items:center;justify-content:center;
 width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;
 flex:0 0 38px;padding:0!important;margin:0 0 0 auto!important
}
html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions [data-header-logout] svg{width:21px;height:21px}
@media(max-width:900px){
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .festival-language,
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .theme-control,
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions [data-header-logout]{
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;flex-basis:36px
 }
 html[data-theme][data-theme][data-theme] body #festivalChrome .festival-header-actions [data-header-logout]{min-height:36px!important;height:36px!important}
}
@media(max-width:600px){
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions::before{
  content:"";order:9;flex:0 0 100%;width:100%;height:0
 }
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions .festival-language{margin-left:auto!important}
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-header-actions [data-header-logout]{margin-left:0!important}
}

/* During a view change the previous banner owns the layout until the new
   page is ready. Override the desktop rule that otherwise keeps both in flow. */

/* Reserve a stable place for the first view; keep unfinished panels out of paint. */
html[data-theme][data-theme][data-theme] body .home-critical-bar [data-home-conflict-count],
html[data-theme][data-theme][data-theme] body .home-phase-metrics [data-home-conflict-count]{
 display:inline-block;min-width:2ch;text-align:center;font-variant-numeric:tabular-nums;
}
@media(max-width:900px){
}

/* Late counters update in place without widening the shared navigation. */
html[data-theme][data-theme][data-theme] body #festivalChrome .festival-tabs [data-festival-view=conflicts],
html[data-theme][data-theme][data-theme] body #festivalChrome .festival-tabs [data-festival-view=swap],
html[data-theme][data-theme][data-theme] body #festivalChrome .festival-header-actions [data-festival-view=updates]{
 position:relative;padding-right:38px!important;
}
html[data-theme][data-theme][data-theme] body #festivalChrome :is(.festival-tabs,.festival-header-actions) .nav-badge{
 position:absolute;right:5px;top:50%;transform:translateY(-50%);
}
html[data-theme][data-theme][data-theme] body #mobilePager [data-direct-view]{position:relative}
html[data-theme][data-theme][data-theme] body #mobilePager .nav-badge{position:absolute;top:2px;right:2px}

/* Presence arrives asynchronously; its row keeps the same height before and after. */
@media(max-width:900px){
 html[data-theme][data-theme][data-theme] body.festival-layout .festival-presence-header{min-height:54px;box-sizing:border-box}
}

/* 1.4.2: Scene and decorative frame always share the full banner height.
   contain can shrink only the scene when text makes a banner taller. */
@media screen {
 html[data-theme][data-theme][data-theme][data-theme] body .warm-area-banner>.row:first-child::before,
 html[data-theme][data-theme][data-theme][data-theme] body .warm-welcome::before,
 html[data-theme][data-theme][data-theme][data-theme] body .login-card .login-banner::after {
  background-size:auto 100%!important;
  background-position:right center!important;
 }
}
@media screen and (min-width:701px) {
 html[data-theme][data-theme][data-theme][data-theme] body .reg-hero .warm-public-art {
  background-size:auto 100%!important;
  background-position:right center!important;
 }
}
