:root{--indigo:#302b78;--raspberry:#b92562;--ink:#21233e;--muted:#626981;--line:#e6e8f1;--surface:#f7f8fc;--green:#19745b;--amber:#8b550e;--radius:16px}*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--ink);font:16px/1.55 Arial,system-ui,sans-serif}h1,h2,h3,.brand{font-family:Arial,system-ui,sans-serif}h1{font-size:clamp(30px,3.3vw,44px);line-height:1.18;letter-spacing:-1.6px;margin:0 0 10px;font-weight:800}h2{font-size:22px;line-height:1.3;margin:0 0 22px;letter-spacing:-.5px}h3{font-size:18px;margin:0 0 10px}p{margin:5px 0 12px;color:var(--muted)}small{font-size:14px}a{color:var(--indigo);text-decoration:none}button,input,textarea,select{font:inherit}button,.button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,.button{border:1px solid var(--line);border-radius:9px;padding:10px 17px;background:white;color:var(--indigo);font-weight:600;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:var(--raspberry);border-color:var(--raspberry);color:white}.quiet{border-color:transparent;background:transparent}.button:hover,button:hover{filter:brightness(.96)}:focus-visible{outline:3px solid #536bdb;outline-offset:3px}.skip{position:fixed;top:-100px;background:white;padding:15px;z-index:100}.skip:focus{top:0}#sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:var(--indigo);color:white;padding:32px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:9px;color:white;font-weight:800;font-size:26px;letter-spacing:-1px;padding:0 8px 40px}.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:0;color:#dddaf8}.brandmark{width:38px;height:38px;border:3px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:25px;font-style:italic}nav{display:flex;flex-direction:column;gap:6px}nav a{color:#e5e4f6;padding:12px 14px;border-radius:9px;font-size:15px;display:flex;align-items:center;gap:12px}nav a.active{background:#504ba0;color:white;font-weight:700}nav a:hover{background:#45408f}.nav-icon{font-size:19px;width:23px;display:inline-grid;place-items:center}.sidebar-foot{margin-top:auto;padding:32px 15px;color:#c0bde4;font-family:Arial;font-size:20px;font-weight:600}.shell{margin-left:238px}.top{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#ffffffbd}.topright{display:flex;align-items:center;gap:15px}.crumb{font-size:14px;color:var(--muted)}.avatar{height:39px;width:39px;border-radius:50%;background:#e6e5f5;color:var(--indigo);display:inline-grid;place-items:center;font-weight:700}.demo{font-size:12px;letter-spacing:.3px;background:#ecebf7;border-radius:20px;padding:5px 10px;color:var(--indigo)}main{max-width:1500px;margin:auto;padding:38px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:800;color:var(--raspberry);margin:0 0 10px}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.pagehead p{margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:26px}.stats article{padding:20px 24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.stats article:first-child{background:#fbf0f5}.stats article:nth-child(2){background:#fdf6ec}.stats article:nth-child(3){background:#eff7f4}.stats strong{display:block;font-size:35px;line-height:1.25;font-family:Arial}.stats span{font-size:14px;color:var(--muted)}.stats small{color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin-bottom:24px}.taskrow{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.taskrow p{font-size:14px;margin:4px 0 0}.columns{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-body{padding:22px}.card p{font-size:14px}.card-top{height:135px;background:var(--indigo);color:white;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;position:relative;overflow:hidden}.card-top strong{font:800 28px/1.2 Arial;letter-spacing:-1px}.card-top small{color:#e4e3fa}.card-top.rose{background:#9d2858}.card-top.teal{background:#1e655f}.card-top.blue{background:#375481}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;background:#efeff8;color:var(--indigo);padding:4px 10px;font-size:12px;font-weight:700}.badge.good{background:#e6f4ee;color:var(--green)}.badge.warn{background:#fff0d8;color:var(--amber)}.badge.rose{background:#f9e7ef;color:#9b2355}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.sectionhead{display:flex;justify-content:space-between;align-items:center;margin:26px 0 18px}.sectionhead h2{margin:0}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.toolbar input{flex:1;min-width:200px}input,select,textarea{border:1px solid #d9ddeb;border-radius:9px;padding:11px 12px;color:var(--ink);background:white;max-width:100%;min-height:44px}textarea{width:100%;resize:vertical;min-height:140px}label{display:block;font-size:14px;font-weight:700;margin:0 0 7px}.field{margin-bottom:18px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field input,.field select{width:100%}.muted{color:var(--muted)}.notice{padding:15px 18px;background:#f2f0fb;border:1px solid #dedaf2;border-radius:10px;margin:18px 0;font-size:14px}.notice.warn{background:#fff7e9;border-color:#efdcb8}.empty{padding:36px;text-align:center;border:1px dashed #ccd0e0;border-radius:12px;color:var(--muted)}footer{padding:20px 38px;color:var(--indigo);font-size:13px;border-top:1px solid var(--line);display:flex;justify-content:space-between}footer span{color:var(--muted)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--indigo);color:white;border-radius:10px;padding:12px 22px;z-index:100;box-shadow:0 8px 25px #2224;display:none;max-width:90vw}#toast.show{display:block}dialog{border:0;border-radius:18px;padding:30px;width:min(800px,92vw);max-height:88vh;box-shadow:0 24px 100px #10104044}dialog::backdrop{background:#17173188;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-head h2{margin:0}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--muted);font-weight:600}td,th{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#1e203b;color:#ecebf7;padding:20px;border-radius:12px;font-size:13px}code{font-family:ui-monospace,monospace;font-size:.88em}.mobile-menu{display:none}.portal-banner{background:var(--indigo);color:white;padding:35px;border-radius:18px;margin-bottom:25px}.portal-banner h1{font-size:38px}.portal-banner p{color:#e4e2ff}.steps{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.steps span{font-size:13px;padding:7px 12px;border-radius:30px;background:#eeedf7;color:var(--indigo)}.steps span.current{background:var(--raspberry);color:white}.message{background:#f2f1f9;padding:16px;border-radius:12px;margin:12px 0;max-width:85%}.message.mine{margin-left:auto;background:#faeaf2}.message small{display:block;color:var(--muted);font-size:12px}.message p{color:var(--ink);white-space:pre-wrap}.money{font-weight:800;font-family:Arial}.listline{padding:12px 0;border-bottom:1px solid var(--line)}.loader{padding:70px;text-align:center}.check{display:flex;align-items:center;gap:10px}.check input{width:20px;min-height:20px}.poster{aspect-ratio:3/4;background:var(--indigo);color:white;padding:22px;display:flex;flex-direction:column;justify-content:space-between;border-radius:10px}.poster h3{font-size:30px;line-height:1.1;color:white}.poster p{color:#f2accb}.poster small{color:white}.callout{border-left:4px solid var(--raspberry);padding:20px;background:#fbf0f5;border-radius:8px}.progress{height:7px;background:#eceaf7;border-radius:10px;overflow:hidden;margin:15px 0}.progress div{height:100%;background:var(--raspberry)}@media(max-width:1100px){#sidebar{width:205px}.shell{margin-left:205px}main{padding:25px}.top{padding:0 25px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.columns{grid-template-columns:1fr}.brand{font-size:22px}.crumb{display:none}}@media(max-width:720px){#sidebar{transform:translateX(-100%);transition:transform .2s}.menu-open #sidebar{transform:translateX(0);box-shadow:10px 0 40px #0003}.shell{margin-left:0}.mobile-menu{display:inline-flex}.top{height:66px;padding:0 16px}.demo{font-size:10px}.topright{gap:7px}#switch-role{font-size:12px;padding:6px}main{padding:24px 16px 80px}.pagehead{align-items:flex-start;flex-direction:column;gap:16px}.pagehead h1{font-size:32px}.stats{gap:8px}.stats article{padding:14px 10px}.stats strong{font-size:28px}.stats small{display:none}.stats span{font-size:12px}.grid,.grid.two,.formgrid{grid-template-columns:1fr}.panel{padding:20px 16px}.taskrow{gap:12px}.taskrow .button{padding:9px 11px;font-size:13px}.taskrow strong{font-size:15px}footer{padding:18px 16px;gap:16px}.portal-banner{padding:25px}.portal-banner h1{font-size:30px}.card-top{height:125px}dialog{padding:22px}.message{max-width:95%}}@media print{#sidebar,.top,footer,.actions,button,.toolbar{display:none!important}.shell{margin:0}main{padding:0}.panel,.card{break-inside:avoid;box-shadow:none}body{background:white}.grid{grid-template-columns:1fr 1fr}}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.stat{padding:20px 24px;border:1px solid var(--line);border-radius:var(--radius);background:white}.stat:first-child{background:#fbf0f5}.stat:nth-child(2){background:#fdf6ec}.stat:nth-child(3){background:#eff7f4}label>input:not([type=checkbox]),label>select{display:block;width:100%;margin:6px 0 16px}label>textarea{display:block;margin-top:6px}input[type=checkbox]{width:20px;height:20px;min-height:20px;vertical-align:middle;margin-right:8px;accent-color:var(--raspberry)}form>button:not(.secondary),.page-heading>.button{background:var(--raspberry);border-color:var(--raspberry);color:white}.taskrow small{display:block;color:var(--muted)}.taskrow>div{flex:1}.task-icon{background:#f1effb;border-radius:10px;padding:10px}.card-top h2{margin:8px 0 0;color:white}.card-top>span{font-size:11px;letter-spacing:1.5px}.listline{display:flex;justify-content:space-between;align-items:center;gap:15px}.callout{margin:15px 0}nav a[hidden]{display:none}.card-body>button{margin-top:15px}.panel+.panel{margin-top:20px}.portal-banner .eyebrow{color:#f6adc9}button:disabled{cursor:not-allowed}@media(max-width:720px){.page-heading{flex-direction:column;align-items:flex-start}.stat{padding:14px 10px}.stats span{display:block;line-height:1.35;margin-bottom:8px}.listline{flex-wrap:wrap}.topright .avatar{display:none}h1{letter-spacing:-1px}.page-heading .button{width:100%}.message{width:95%}}

.public-view #sidebar,.public-view .top,.public-view .shell>footer{display:none}.public-view .shell{margin:0}.public-view main{max-width:1400px;padding:24px 5vw 60px}.public-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0 28px;border-bottom:1px solid var(--line)}.public-brand{font:800 32px Arial;letter-spacing:-1px}.public-brand span{display:block;font:400 14px Arial;letter-spacing:0}.public-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:7%;padding:72px 0;align-items:center}.public-hero h1{font-size:clamp(38px,4.8vw,68px);line-height:1.08;letter-spacing:-2px}.public-hero h1 em{font-style:normal;color:var(--raspberry)}.public-hero p:not(.eyebrow){font-size:18px;max-width:580px;margin:24px 0}.public-hero .button{margin:8px 8px 0 0}.festival-type{background:var(--indigo);color:white;padding:40px;min-height:470px;display:flex;flex-direction:column;justify-content:space-between;border-radius:4px 70px 4px 4px}.festival-type strong{font:800 clamp(60px,7vw,100px)/.95 Arial;letter-spacing:-5px;color:#ffc2dc}.festival-type>span{letter-spacing:3px;font-size:14px}.festival-type p{color:white!important;font-size:15px!important}.public-services{border-top:1px solid var(--line);padding:50px 0}.public-services h2,.public-portal h2{font-size:34px}.public-services article{padding:22px 0}.service-number{font:800 42px Arial;color:var(--raspberry);display:block;margin-bottom:16px}.public-portal{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;background:white;border:1px solid var(--line);padding:40px;border-radius:20px}.portal-teaser{background:#f3f1fb;padding:28px;border-radius:12px}.portal-teaser ol{padding-left:22px}.portal-teaser li{padding:10px 0;border-bottom:1px solid var(--line)}.public-footer{padding:32px 0;margin-top:50px;align-items:center;gap:20px;flex-wrap:wrap}.municipal-heading{padding:32px;border-radius:18px;background:var(--indigo);color:white;margin-bottom:24px}.municipal-heading p{color:#ece9ff}.municipal-heading .eyebrow{color:#ffc2dc}.festival-stages{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);padding:0;gap:12px;margin:28px 0}.festival-stages li{padding:16px;border:1px solid var(--line);border-radius:12px;background:white}.festival-stages li>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#ecebf7;color:var(--indigo);margin-bottom:12px}.festival-stages li.complete>span{background:var(--green);color:white}.festival-stages strong,.festival-stages small{display:block}.festival-stages small{color:var(--muted)}.portal-next{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:26px;background:#fbf0f5;border-radius:16px;margin-bottom:26px}.portal-next>div{flex:1;min-width:240px}.portal-next h2{margin-bottom:8px}.portal-amount{font:800 38px Arial}progress{width:100%;height:14px;accent-color:var(--raspberry)}@media(max-width:800px){.public-hero,.public-portal{grid-template-columns:1fr}.public-hero{padding:36px 0;gap:30px}.festival-type{min-height:320px}.public-header{align-items:flex-start;flex-wrap:wrap}.public-portal{padding:24px;gap:24px}.festival-stages{grid-template-columns:repeat(2,1fr)}.festival-stages li:last-child{grid-column:1/-1}.public-view main{padding:20px}.municipal-heading{padding:24px}.public-hero h1{letter-spacing:-1px}}

.public-brand img{display:block;width:190px;height:125px;object-fit:contain;background:white;border-radius:10px}.brand img{width:170px;height:112px;object-fit:contain;background:white;border-radius:10px}.legal-page main{max-width:940px}.legal-page h1{margin:28px 0}.legal-page h2{margin-top:30px}.legal-links{font-size:14px;display:flex;gap:12px;flex-wrap:wrap}.cookie-notice{position:fixed;bottom:16px;left:16px;right:16px;z-index:90;background:white;border:2px solid var(--indigo);border-radius:16px;padding:20px;box-shadow:0 10px 40px #0003;max-width:720px}.cookie-notice p{font-size:15px}.cookie-notice .actions{gap:12px}.cookie-notice h2{margin-bottom:8px;font-size:20px}
/* Subirós: editorial headings, concert-poster display, readable working text. */
@font-face{font-family:'Subiros Text';src:url('/fonts/Onest.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Subiros Text';src:url('/fonts/Onest.ttf') format('truetype');font-style:normal;font-weight:600 900;font-display:swap}
@font-face{font-family:'Subiros Editorial';src:url('/fonts/Onest.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Subiros Cartell';src:url('/fonts/Onest.ttf') format('truetype');font-style:normal;font-weight:700 900;font-display:swap}
body{font-family:'Subiros Text',Arial,sans-serif;font-size:17px;line-height:1.55}
h1,h2{font-family:'Subiros Editorial',Georgia,serif;font-optical-sizing:auto;font-variation-settings:'SOFT' 30,'WONK' 1;font-weight:600;letter-spacing:-.025em;line-height:1.14}
h1{font-size:clamp(34px,3.7vw,48px)}h2{font-size:26px}h3{font-family:'Subiros Text',Arial,sans-serif;font-size:20px;font-weight:600;letter-spacing:0;line-height:1.25}
button,.button,input,select,textarea{font-family:'Subiros Text',Arial,sans-serif}nav a{font-size:16px}label{font-size:15px}.eyebrow{font-family:'Subiros Text',Arial,sans-serif;font-size:13px;letter-spacing:.13em;font-weight:600}
.public-hero h1{font-family:'Subiros Editorial',Georgia,serif;font-size:clamp(42px,4.8vw,68px);font-weight:600;line-height:1.08;letter-spacing:-.035em}.public-hero h1 em{font-weight:450;letter-spacing:-.025em}.public-hero p:not(.eyebrow){font-size:20px;line-height:1.5}.public-services h2,.public-portal h2{font-size:clamp(30px,3vw,42px);font-weight:550;line-height:1.15}
.festival-type strong{font-family:'Subiros Cartell','Arial Narrow',sans-serif;font-size:clamp(88px,10.5vw,146px);font-weight:700;line-height:.84;letter-spacing:-.015em}.festival-type>span{font-family:'Subiros Text',sans-serif;font-size:15px;letter-spacing:.15em}.festival-type p{font-family:'Subiros Text',sans-serif}
.service-number{font-family:'Subiros Cartell','Arial Narrow',sans-serif;font-size:52px;letter-spacing:0;font-weight:700}.stats strong,.money,.portal-amount{font-family:'Subiros Text',Arial,sans-serif;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.sidebar-foot{font-family:'Subiros Editorial',Georgia,serif;font-weight:500;line-height:1.3}.card-top h2{font-family:'Subiros Cartell','Arial Narrow',sans-serif;font-size:32px;font-weight:700;letter-spacing:0;line-height:1.05}.festival-stages strong{font-weight:600;font-size:17px}.legal-page h2{font-size:27px}.legal-page p,.legal-page li{line-height:1.65}
@media(max-width:720px){h1,.pagehead h1{font-size:34px;letter-spacing:-.025em}.public-hero h1{font-size:clamp(38px,9.5vw,56px);letter-spacing:-.03em;line-height:1.12}.public-hero p:not(.eyebrow){font-size:18px}.festival-type strong{font-size:110px}.festival-type{min-height:350px}.card-top h2{font-size:30px}.portal-banner h1{font-family:'Subiros Editorial',Georgia,serif;font-size:32px}.public-services h2,.public-portal h2{font-size:32px}}

/* Real imagery from the owner's Segueix la Festa website. */
.public-hero{grid-template-columns:1fr 1.1fr;gap:5%;padding:56px 0}.photo-slider{min-width:0;background:var(--indigo);border-radius:5px 48px 5px 5px;overflow:hidden;color:#fff}.photo-slides{position:relative}.photo-slide{margin:0;position:relative;height:440px}.photo-slide[hidden]{display:none}.photo-slide img{width:100%;height:100%;object-fit:cover;object-position:center}.photo-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,7,51,.8),transparent 70%);pointer-events:none}.photo-slide figcaption{position:absolute;bottom:30px;left:28px;right:24px;z-index:1}.photo-slide figcaption span{font-size:12px;letter-spacing:.15em}.photo-slide figcaption strong{display:block;font-family:'Subiros Cartell',sans-serif;font-size:clamp(36px,4.4vw,60px);line-height:1.02;margin-top:12px}.photo-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 20px}.photo-controls>span{font-size:12px;color:#e9e5ff}.photo-controls>div{display:flex;align-items:center;gap:12px;white-space:nowrap}.photo-controls button{background:transparent;color:white;border:1px solid #aaa2cb;border-radius:50%;width:44px;height:44px;padding:0;font-size:22px}.photo-controls button:hover{background:#fff2}.photo-controls button:focus-visible{outline:3px solid #ffc2dc;outline-offset:2px}.portal-teaser{overflow:hidden}.portal-teaser-photo{display:block;width:calc(100% + 56px);max-width:none;height:150px;object-fit:cover;margin:-28px -28px 24px}.municipal-photo{position:relative;isolation:isolate;overflow:hidden;min-height:285px;display:flex;flex-direction:column;justify-content:center;border-radius:18px}.municipal-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.municipal-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,10,62,.94),rgba(17,10,62,.7) 55%,rgba(17,10,62,.25));z-index:-1}.municipal-copy{max-width:75%}.municipal-photo h1{color:white}.photo-credit{margin-top:24px;color:#e9e5ff;font-size:11px}.municipal-photo .badge{background:white;color:var(--indigo)}
@media(max-width:800px){.public-hero{grid-template-columns:1fr;gap:28px;padding:32px 0}.photo-slide{height:320px}.photo-slide figcaption strong{font-size:44px}.photo-controls{padding:12px}.municipal-copy{max-width:100%}.municipal-photo{min-height:260px}.municipal-photo:after{background:rgba(17,10,62,.75)}}
@media(max-width:380px){.photo-controls{align-items:flex-start}.photo-controls>span{max-width:110px}.photo-slide{height:280px}}

body.auth-locked #sidebar,body.auth-locked .top,body.auth-locked .shell>footer{display:none!important}body.auth-locked .shell{margin:0}body.auth-locked #dialog::backdrop{background:#f7f8fc;backdrop-filter:none}.public-festival-photo img{width:100%;height:100%;min-height:240px;object-fit:cover;border-radius:12px}.login-background{padding:30px}

.public-brand img,.brand img{background:transparent;border-radius:0}.public-brand img{width:205px;height:145px;object-fit:contain}.brand img{filter:brightness(0) invert(1)}.photo-slide{height:auto!important}.photo-slide img{display:block;height:auto;aspect-ratio:3/2;object-fit:contain}.photo-slide:after{display:none}.photo-slide figcaption{position:static;padding:20px 24px}.photo-slide figcaption strong{font-size:36px;margin-top:7px}.photo-slide figcaption span{font-size:11px}.public-festival-photo img{height:auto;min-height:0;object-fit:contain}.municipal-background{object-position:center 45%}

@font-face{font-family:'Darker Grotesque';src:url('/fonts/Onest.ttf') format('truetype');font-weight:300 900;font-display:swap}body{font-family:'Darker Grotesque',Arial,sans-serif;font-size:20px;font-weight:500;line-height:1.4}h1,h2,h3,.public-hero h1,.public-services h2,.public-portal h2,.portal-banner h1,.card-top h2,.photo-slide figcaption strong,.sidebar-foot,.service-number,.stats strong,.money,.portal-amount{font-family:'Darker Grotesque',Arial,sans-serif;font-variation-settings:normal}h1,h2,h3{font-weight:700}.public-hero h1{font-size:clamp(46px,5.3vw,76px);font-weight:800;line-height:.98}.public-hero h1 em{font-weight:600}.public-hero p:not(.eyebrow){font-size:22px}button,.button,input,textarea,select{font-family:inherit;font-size:20px}nav a,label,.taskrow p,.card p,small,table{font-size:18px}.badge,.eyebrow,.demo,.crumb,footer,.notice{font-size:16px}.photo-controls>span,.photo-credit{font-size:14px}.access-logo{display:block;width:170px;height:115px;object-fit:contain;margin:0 0 18px}.top-logo{width:110px;height:64px;object-fit:contain;margin-right:auto}.municipal-logo{position:absolute;right:28px;top:22px;width:125px;height:90px;object-fit:contain;filter:brightness(0) invert(1)}.footer-logo{width:100px;height:70px;object-fit:contain}.legal-logo{width:180px;height:125px;object-fit:contain;display:block}.public-footer{align-items:center}.municipal-copy{max-width:75%}@media(max-width:720px){.public-hero h1{font-size:clamp(44px,11vw,62px)}.municipal-logo{position:static;width:95px;height:66px;margin-bottom:10px}.municipal-copy{max-width:100%}.top-logo{width:80px;height:50px}.top .crumb{display:none}.public-hero p:not(.eyebrow){font-size:21px}}

/* Subirós: contemporary typography with the clarity of the original Helvetica. */
@font-face{font-family:'Subiros Headline';src:url('/fonts/Manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:'Subiros Interface';src:url('/fonts/Onest.ttf') format('truetype');font-weight:100 900;font-display:swap}
body{font-family:'Subiros Interface',Helvetica,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.6}
h1,h2,h3,.public-hero h1,.public-services h2,.public-portal h2,.portal-banner h1,.card-top h2,.photo-slide figcaption strong,.sidebar-foot,.service-number{font-family:'Subiros Headline',Helvetica,Arial,sans-serif;font-variation-settings:normal;letter-spacing:-.025em;font-weight:700}
h1{font-size:40px;line-height:1.15}h2{font-size:25px;line-height:1.25}h3{font-size:19px;line-height:1.35}
.public-hero h1{font-size:clamp(40px,4.5vw,62px);font-weight:750;line-height:1.12;letter-spacing:-.045em}.public-hero h1 em{font-weight:600}.public-hero p:not(.eyebrow){font-size:18px;line-height:1.65}.public-services h2,.public-portal h2{font-size:34px;font-weight:650}.photo-slide figcaption strong{font-size:30px;line-height:1.2}
button,.button,input,textarea,select{font-family:'Subiros Interface',Helvetica,Arial,sans-serif;font-size:16px}button,.button{font-weight:600}nav a{font-size:14px;padding:10px 14px}label,.taskrow p,.card p,small,table{font-size:14px}.badge,.eyebrow,.demo,.crumb,footer,.notice{font-size:13px}.eyebrow{letter-spacing:.12em;font-weight:650}.photo-controls>span,.photo-credit{font-size:12px}.stats strong,.money,.portal-amount{font-family:'Subiros Interface',Helvetica,Arial,sans-serif;font-weight:650;font-variant-numeric:tabular-nums}.card-top h2{font-size:27px}.sidebar-foot{font-size:19px}#sidebar{overflow-y:auto}.legal-page p,.legal-page li{font-size:16px}
@media(max-width:720px){h1,.pagehead h1{font-size:30px}.public-hero h1{font-size:clamp(36px,8.7vw,49px);line-height:1.14;letter-spacing:-.035em}.public-hero p:not(.eyebrow){font-size:17px}.public-services h2,.public-portal h2{font-size:28px}.photo-slide figcaption strong{font-size:26px}.portal-banner h1{font-size:30px}.card-top h2{font-size:25px}}
/* Full-width photographic homepage hero. */
.public-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:650px;margin:24px calc(-1 * min(5vw,70px)) 0;padding:64px max(5vw,32px) 110px;overflow:hidden;background:#171333;border-radius:0;gap:0}.public-hero>div:first-child{position:relative;z-index:2;max-width:620px;pointer-events:none}.public-hero>div:first-child a{pointer-events:auto}.public-hero h1{color:white;text-shadow:0 2px 24px #0005}.public-hero h1 em{color:#ffc5df}.public-hero .eyebrow{color:#ffd6e7}.public-hero p:not(.eyebrow){color:#fff;max-width:510px;text-shadow:0 1px 8px #0008}.public-hero .primary{background:#b92562;border-color:#e85894}.public-hero .photo-slider{position:absolute;inset:0;z-index:0;border-radius:0;background:transparent;overflow:hidden}.public-hero .photo-slides{position:absolute;inset:0}.public-hero .photo-slide{position:absolute;inset:0;height:100%!important}.public-hero .photo-slide img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 42%}.public-hero .photo-slide:after{display:block;content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,10,40,.92) 0%,rgba(15,10,40,.74) 38%,rgba(15,10,40,.22) 78%),linear-gradient(0deg,rgba(15,10,40,.72),transparent 32%);pointer-events:none}.public-hero .photo-slide figcaption{position:absolute;bottom:90px;right:34px;left:auto;max-width:330px;padding:0;z-index:1;text-align:right}.public-hero .photo-slide figcaption strong{font-size:24px;color:white}.public-hero .photo-controls{position:absolute;bottom:22px;left:max(5vw,32px);right:max(5vw,32px);padding:12px 0 0;border-top:1px solid #ffffff45;z-index:3}.public-hero .photo-controls>span{color:white}.public-services{border-top:0}.public-header{padding-bottom:16px}
@media(max-width:800px){.public-hero{min-height:680px;margin:18px -20px 0;padding:40px 24px 170px;align-items:flex-start}.public-hero>div:first-child{max-width:100%}.public-hero h1{font-size:clamp(36px,8vw,52px)}.public-hero .photo-slide:after{background:linear-gradient(90deg,#100b2bdd,#100b2b80),linear-gradient(0deg,#100b2be6,transparent 55%)}.public-hero .photo-slide figcaption{bottom:100px;left:24px;right:24px;text-align:left;max-width:none}.public-hero .photo-slide figcaption strong{font-size:20px}.public-hero .photo-controls{left:24px;right:24px;bottom:20px}.public-hero p:not(.eyebrow){font-size:16px;line-height:1.6;max-width:450px}}
/* Header floats over the same photograph as the homepage hero. */
.public-view main:has(>.public-header){padding-top:0}.public-header{position:absolute;top:0;left:0;right:0;z-index:4;margin:0 auto;max-width:1400px;padding:20px 5vw;border:0;background:linear-gradient(180deg,#100b2b80,transparent)}.public-header .public-brand img{filter:brightness(0) invert(1);width:180px;height:120px}.public-header button,.public-header .button{background:#ffffff14;border-color:#ffffff80;color:white;backdrop-filter:blur(8px)}.public-header button:hover,.public-header .button:hover{background:#ffffff30}.public-hero{margin-top:0;min-height:810px;padding-top:210px}.public-header .actions{justify-content:flex-end}
@media(max-width:800px){.public-header{padding:12px 20px;align-items:center;flex-wrap:nowrap;gap:12px}.public-header .public-brand img{width:112px;height:90px}.public-header .actions{gap:8px}.public-header .actions .button{display:none}.public-header button{font-size:14px;padding:9px 12px}.public-hero{margin-top:0;min-height:770px;padding-top:145px}}

.logo-home{display:inline-block}.top-logo-link{margin-right:auto}.top-logo-link .top-logo{display:block;margin-right:0}.logo-home:has(.municipal-logo){display:contents}.logo-home:focus-visible img{outline:3px solid #e85894;outline-offset:4px}

/* Comparable proposal cards, with touch navigation on small screens. */
.proposal-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 16px;color:#595966;font-size:14px}.proposal-controls>div{display:flex;flex-shrink:0;gap:8px}.proposal-controls button{min-width:44px;min-height:44px}.proposal-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}.proposal-option{border:1px solid #dcdbe5;border-radius:20px;overflow:hidden;min-width:0;background:white;display:flex;flex-direction:column}.proposal-option.is-selected{border:2px solid #b90065;box-shadow:0 0 0 3px #b9006512}.option-art{position:relative;isolation:isolate;min-height:215px;padding:25px;color:white;background:#191263;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.option-art-1{background:#9b1456}.option-art-2{background:#0c5558}.option-art:after{content:'';position:absolute;width:180px;height:180px;border:35px solid #ffffff12;border-radius:50%;top:-60px;right:-45px;z-index:-1}.option-art .eyebrow{color:#ffffffcc;font-size:12px}.option-art h3{font-size:28px;line-height:1.12;margin:10px 0 18px;color:white;overflow-wrap:anywhere}.option-number{position:absolute;top:15px;right:24px;font-size:55px;font-weight:800;opacity:.18}.option-status{font-size:12px;font-weight:700;letter-spacing:.02em}.proposal-option .card-body{display:flex;flex-direction:column;flex:1;padding:24px}.option-price{display:flex;flex-direction:column;gap:4px}.option-price strong{font-size:32px;line-height:1.2;color:#21194c}.option-price span,.option-budget{font-size:13px;color:#63616c}.proposal-option h4{font-size:15px;margin:16px 0 0}.proposal-option ul{padding-left:20px;font-size:14px;line-height:1.6;flex:1}.proposal-option details{border-top:1px solid #e9e7ed;margin:8px 0 18px;padding-top:14px;font-size:14px}.proposal-option summary{cursor:pointer;min-height:34px;font-weight:650}.proposal-option button{width:100%;min-height:48px;white-space:normal}.proposal-option button:disabled{opacity:1;color:#8b004b;background:#fff0f7;border-color:#ecc2d8}.proposal-options:has(.proposal-option:only-child){grid-template-columns:minmax(0,420px)}
@media(max-width:1050px){.proposal-options{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:3px;padding:4px 4px 18px;overscroll-behavior-x:contain}.proposal-option{flex:0 0 310px;scroll-snap-align:start}.proposal-controls{align-items:flex-start}.proposal-controls>span{max-width:65%}}
@media(max-width:600px){.proposal-option{flex-basis:88%;min-width:0}.option-art{min-height:195px;padding:20px}.option-art h3{font-size:26px}.proposal-option .card-body{padding:20px}.proposal-controls{font-size:13px}.proposal-controls button{padding:8px 12px}}

/* Artist management */
.artist-photo{display:block;width:100%;height:210px;object-fit:cover;background:#ede8df}.detail-photo{height:auto;max-height:340px;object-fit:contain;border-radius:12px;margin:16px 0}.artist-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.artist-actions button{flex:1;font-size:.9rem;padding:10px}.toolbar{flex-wrap:wrap}dialog{max-height:90dvh;overflow-y:auto}dialog [hidden]{display:none}button:disabled{opacity:.55;cursor:wait}

.form-error{padding:12px;border:1px solid #a32536;border-radius:8px;background:#fff0f1;color:#7b1423;font-weight:600}

/* Visual artist catalogue */
.catalog-intro{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:36px 0 28px}.catalog-intro h1{font-size:clamp(32px,4vw,54px);letter-spacing:-.045em;line-height:1.08;margin:12px 0}.catalog-intro>div>p:not(.eyebrow){color:#696472;font-size:17px}.catalog-intro-actions{display:flex;gap:10px;flex-wrap:wrap}.catalog-metrics{display:flex;gap:24px;flex-wrap:wrap;color:#756e7e;font-size:13px;margin-top:24px}.catalog-metrics strong{color:#302b78;font-size:22px;margin-right:4px}.catalog-tools{display:flex;align-items:end;gap:16px;background:#fff;padding:18px;border:1px solid #e9e5ee;border-radius:16px;flex-wrap:wrap}.catalog-tools label{margin:0}.catalog-search{flex:1;min-width:220px}.catalog-tools select{min-width:170px}.catalog-tools .video-filter{display:flex;align-items:center;gap:8px;min-height:46px;white-space:nowrap}.catalog-result{font-size:13px;color:#746d7e;margin:22px 0 14px}.visual-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:24px}.visual-artist{overflow:hidden;min-width:0;background:#fff;border:1px solid #e7e2ec;border-radius:22px;box-shadow:0 8px 28px #302b7808;transition:transform .25s,box-shadow .25s;animation:card-arrive .5s both;animation-delay:calc(var(--card-index)*45ms)}.visual-artist:hover{transform:translateY(-4px);box-shadow:0 16px 35px #302b7818}.media-cover{display:block;width:100%;aspect-ratio:16/10;padding:0;border:0;border-radius:0;position:relative;isolation:isolate;overflow:hidden;text-align:left;color:white;background:#302b78}.cover-art{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 80% 0%,hsl(var(--artist-hue,250) 65% 49%),transparent 70%),linear-gradient(135deg,#181039,hsl(var(--artist-hue,250) 60% 26%))}.cover-orbit{position:absolute;width:260px;height:260px;border:1px solid #ffffff40;border-radius:50%;right:-50px;top:-90px;box-shadow:0 0 0 35px #ffffff08,0 0 0 70px #ffffff08}.cover-initials{position:absolute;left:24px;top:26%;font-size:80px;font-weight:800;letter-spacing:-.06em;color:#ffffff35}.cover-bars{position:absolute;display:flex;align-items:center;gap:9px;right:25px;bottom:55px;height:100px;transform:rotate(-15deg)}.cover-bars i{width:6px;height:35%;border-radius:4px;background:#ffffff35}.cover-bars i:nth-child(3n){height:90%}.cover-bars i:nth-child(2n){height:65%}.cover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s;z-index:1}.media-cover:after,.artist-profile-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#110b2820 20%,#110b28c9 100%);z-index:2;pointer-events:none}.media-cover:hover .cover-image{transform:scale(1.045)}.cover-category{position:absolute;top:18px;left:18px;z-index:3;background:#1c153b80;backdrop-filter:blur(10px);padding:7px 12px;border:1px solid #ffffff35;border-radius:30px;font-size:12px}.cover-bottom{position:absolute;bottom:20px;left:22px;right:22px;z-index:3;display:grid;gap:6px}.cover-bottom span{font-size:11px;color:#ffffffbc;font-weight:500}.cover-bottom strong{font-size:16px}.play-orb{position:absolute;z-index:3;left:50%;top:45%;transform:translate(-50%,-50%);width:58px;height:58px;display:grid;place-items:center;border:1px solid #ffffff8c;border-radius:50%;background:#ffffff29;backdrop-filter:blur(9px);padding-left:3px;transition:background .2s,scale .2s}.media-cover:hover .play-orb{background:#b92562;scale:1.1}.visual-artist-body{padding:24px}.artist-title-row h2{font-size:23px;letter-spacing:-.025em;margin:0}.artist-description{color:#736b7b;line-height:1.6;font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:45px}.audience-tags{display:flex;gap:6px;flex-wrap:wrap;min-height:25px}.audience-tags span{background:#f5f1f8;color:#685a78;border-radius:20px;padding:4px 9px;font-size:11px}.artist-price{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:22px 0 18px}.artist-price strong{font-size:23px;color:#302b78}.artist-price span{font-size:11px;color:#807687}.artist-detail-button{display:flex;justify-content:space-between;width:100%;background:#302b78;padding:13px 16px;border-radius:10px;font-size:13px}.visual-artist-actions{display:flex;gap:4px;margin-top:12px;flex-wrap:wrap}.visual-artist-actions button{flex:1;background:transparent;border:0;color:#706578;font-size:11px;padding:10px 5px;min-height:38px}.visual-artist-actions button:hover{background:#f4eff7;color:#302b78}.visual-artist-actions button:last-child{color:#a44360}.catalog-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:#807487}.catalog-empty>span{font-size:60px;color:#b92562}
.artist-profile-dialog{width:min(920px,94vw);padding:20px}.artist-profile-hero{height:320px;position:relative;isolation:isolate;border-radius:15px;overflow:hidden}.artist-profile-hero>div{position:absolute;bottom:28px;left:30px;right:30px;z-index:3;color:#fff}.artist-profile-hero h2{font-size:42px;color:white;margin:8px 0 18px;letter-spacing:-.04em}.artist-profile-hero .eyebrow{color:#fff}.artist-profile-body{padding:12px 16px}.profile-description{font-size:18px;line-height:1.7}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px 0;border-bottom:1px solid #e8e0ef}.profile-stats div{display:grid;gap:7px}.profile-stats strong{font-size:24px;color:#302b78}.profile-stats small{color:#76687f}.profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.profile-actions button{font-size:13px}.video-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.video-gallery-tile{display:grid;text-align:left;gap:6px;background:#f5f1f8;color:#302b78;padding:0 0 14px;overflow:hidden;border:1px solid #e5ddec;border-radius:12px}.video-gallery-tile>strong,.video-gallery-tile>small{padding:0 12px}.video-tile-cover{aspect-ratio:16/9;position:relative;display:grid;place-items:center;background:linear-gradient(130deg,#302b78,#9c3167);margin-bottom:7px;overflow:hidden}.video-tile-cover>span{z-index:2;border-radius:50%;background:#20143990;color:#fff;padding:10px 14px}.video-gallery-tile:hover .cover-image{transform:scale(1.05)}.profile-technical{padding:18px 0;border-bottom:1px solid #e6e1ec}.profile-technical summary{cursor:pointer;font-weight:650;color:#302b78}.media-empty{padding:25px;background:#f5f0f8;border-radius:14px;margin:24px 0}.media-empty p{margin-bottom:0}.media-dialog{width:min(1060px,95vw);padding:26px;background:#171326;color:#eee8f3}.media-dialog h2{color:white;font-size:32px;margin:6px 0}.media-dialog .eyebrow{color:#ed9fbe}.media-dialog-heading>p:last-child{color:#bcb1ca;max-width:760px;font-size:14px;line-height:1.6}.media-dialog #close-dialog{background:#ffffff15;color:white;border-color:#ffffff35}.video-stage{aspect-ratio:16/9;position:relative;background:#09070e;border-radius:12px;overflow:hidden;margin-top:20px}.video-stage iframe{border:0;width:100%;height:100%;display:block}.video-caption{display:flex;justify-content:space-between;gap:16px;font-size:13px;margin:16px 0}.video-caption a{color:#f3b1ce}.video-help{font-size:12px;color:#ada1ba}.video-playlist{display:flex;gap:10px;overflow-x:auto;margin:20px 0;padding-bottom:8px}.video-playlist button{display:flex;gap:14px;align-items:center;min-width:170px;background:#ffffff08;border:1px solid #ffffff20;text-align:left;color:#f4eafa}.video-playlist button[aria-pressed=true]{background:#b9256230;border-color:#dc719d}.video-playlist button div{display:grid;gap:4px}.video-playlist small{font-size:11px;color:#bfb1cc}.external-video{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;padding:20px;text-align:center}.external-video>span{font-size:40px;color:#e89bbd}.external-video h3{color:white;margin:0}.video-edit-list{display:grid;gap:10px}.video-edit-list label{background:#faf7fc;border:1px solid #ece5f1;border-radius:12px;padding:15px}.video-edit-list label>span{font-size:12px;color:#6f5c80}.video-url-status{font-size:11px;min-height:16px;color:#386c59}.video-url-status.invalid{color:#a32536}@keyframes card-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.catalog-intro{display:block;padding-top:20px}.catalog-intro-actions{margin-top:20px}.catalog-tools{gap:12px}.catalog-tools>label{flex:1;min-width:130px}.catalog-tools .catalog-search{flex-basis:100%}.catalog-tools>button{font-size:12px}.catalog-metrics{gap:16px}.visual-catalog{gap:18px}.artist-profile-hero{height:260px}.artist-profile-hero h2{font-size:32px}.artist-profile-body{padding:8px 0}.video-gallery{grid-template-columns:repeat(2,1fr)}.media-dialog{padding:16px}.video-caption{flex-direction:column;gap:8px}.profile-stats{gap:10px}.profile-stats strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.visual-artist{animation:none;transition:none}.cover-image,.play-orb{transition:none}.visual-artist:hover{transform:none}}
.artist-detail-button{color:#fff}.artist-profile-hero button{color:#fff}

.media-dialog #close-dialog,.artist-profile-dialog #close-dialog{position:sticky;top:0;z-index:5}.catalog-tools select{width:100%;min-width:0}

/* Homepage image and header span the viewport, including wide screens. */
.public-view main:has(>.public-header){max-width:none;padding:0 0 60px}
.public-view main>.public-header{max-width:none;width:100%;padding-inline:5vw}
.public-view main>.public-hero{width:100%;margin:0;padding-inline:5vw}
.public-view main:has(>.public-header)>:not(.public-header):not(.public-hero){max-width:1260px;margin-inline:auto;width:90%}
@media(max-width:800px){.public-view main>.public-header{padding-inline:20px}.public-view main>.public-hero{padding-inline:24px}.public-view main:has(>.public-header)>:not(.public-header):not(.public-hero){width:calc(100% - 40px)}}

/* Dedicated municipal entrance and dashboard. */
.public-view main:has(>.town-access){max-width:none;padding:0}.town-access{display:grid;grid-template-columns:1.15fr 1fr;min-height:100svh;background:white}.town-access-scene{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;padding:60px 8%;color:#fff;min-height:600px}.town-access-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.town-access-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#17103775,#171037ef);z-index:-1}.town-access-brand{position:absolute;left:8%;top:35px}.town-access-brand img{width:160px;filter:brightness(0) invert(1)}.town-access-scene h1{font-size:clamp(38px,4.4vw,65px);line-height:1.08;color:white;letter-spacing:-.04em}.town-access-scene p{color:#eee5f6;line-height:1.7}.town-access-scene .eyebrow{color:#ffc5df;font-size:11px}.town-access-form{align-self:center;padding:70px clamp(24px,6vw,100px);max-width:700px}.town-access-form h2{font-size:34px;line-height:1.15}.town-access-form form{margin:28px 0}.town-access-form input{font-size:25px;letter-spacing:.25em;min-height:60px}.town-access-form form>button{width:100%;margin-top:10px}.town-access-code{display:inline-block;padding:9px 14px;background:#f2edf6;border-radius:30px;color:#625072;font-size:12px;margin-top:12px}.town-access-form>p:last-child{font-size:12px;margin-top:25px}.town-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.town-shortcuts a{display:grid;gap:7px;padding:22px;background:white;border:1px solid #e6e0ee;border-radius:16px;transition:transform .2s,box-shadow .2s;color:#302b78;min-width:0}.town-shortcuts a:hover{transform:translateY(-3px);box-shadow:0 10px 25px #302b7815;background:#fff}.town-shortcuts a>span{display:grid;place-items:center;width:42px;height:42px;background:#f6edf4;border-radius:12px;font-size:24px;color:#b92562;margin-bottom:7px}.town-shortcuts strong{font-size:15px}.town-shortcuts small{font-size:12px;color:#7a6c85}.municipal-photo{min-height:340px}.municipal-photo h1{font-size:clamp(32px,4vw,55px);letter-spacing:-.04em}.festival-stages{gap:10px}.festival-stages li{border-radius:15px}.festival-stages li.complete{background:#f3f8f6;border-color:#cce1d8}.portal-next{background:linear-gradient(110deg,#fbedf3,#f2effb);padding:32px;border:1px solid #eadce7}
@media(max-width:900px){.town-access{grid-template-columns:1fr}.town-access-scene{min-height:340px;padding:140px 28px 32px}.town-access-brand{left:28px;top:20px}.town-access-brand img{width:110px}.town-access-scene h1{font-size:38px}.town-access-form{max-width:600px;width:100%;justify-self:center;padding:36px 28px}.town-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.town-shortcuts a{padding:18px}.town-access-form h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.town-shortcuts a{transition:none}.town-shortcuts a:hover{transform:none}}

/* Public visit, municipal intranet and office are separate audiences. */
#client-shell{display:none}.client-view:not(.public-view) #sidebar,.client-view:not(.public-view) .top{display:none}.client-view:not(.public-view) .shell{margin-left:0}.client-view:not(.public-view) #client-shell{display:block;background:#fff;border-bottom:1px solid #e9e3ec}.client-view:not(.public-view) main{max-width:1320px;padding:32px 5vw}.client-brandbar{display:flex;align-items:center;gap:24px;padding:16px 5vw}.client-brandbar img{width:105px;display:block}.client-brandbar>div:nth-child(2){display:grid;gap:4px;border-left:1px solid #e7e0eb;padding-left:24px}.client-brandbar small{font-size:10px;color:#91617a;letter-spacing:1.2px}.client-brandbar strong{font-size:22px}.client-session{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:13px}.client-nav,.tour-nav{display:flex;flex-direction:row;gap:5px;overflow-x:auto;padding:10px 5vw;white-space:nowrap}.client-nav a,.tour-nav a{color:#6f6079;font-size:14px;padding:12px 18px;border-radius:9px}.client-nav a:hover,.tour-nav a:hover{background:#f7eff4;color:#302b78}.client-nav a[aria-current=page],.tour-nav a[aria-current=page]{background:#302b78;color:#fff}.public-view #client-shell{display:none}.public-view main:has(>.town-tour){max-width:none;padding:0}.town-tour{background:#f6f3f6}.tour-header{display:flex;align-items:center;gap:26px;padding:18px 5vw;background:#fff}.tour-header img{width:125px;display:block}.tour-header>div{display:grid;gap:2px;border-left:1px solid #e8e1eb;padding-left:26px}.tour-header strong{font-size:20px}.tour-header small{font-size:12px;color:#8b7487}.tour-header button{margin-left:auto}.tour-hero{position:relative;isolation:isolate;min-height:420px;padding:65px 7vw;display:flex;align-items:center;justify-content:space-between;color:#fff;overflow:hidden}.tour-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.tour-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#1d1138ec,#22113b90 60%,#301744aa);z-index:-1}.tour-hero h1{font-size:clamp(44px,6vw,78px);letter-spacing:-.04em;color:#fff}.tour-hero h1 em{color:#f7acd1;font-style:normal}.tour-hero p{color:#f3e7f1}.tour-hero .eyebrow{font-size:10px;letter-spacing:2px;color:#f2c7df}.tour-hero>div>span{display:inline-block;font-size:13px;margin-top:15px;border:1px solid #ffffff40;border-radius:30px;padding:8px 14px}.tour-hero aside{border-left:1px solid #ffffff50;padding-left:30px}.tour-hero aside strong{font-size:28px;line-height:1.15}.tour-hero aside p{font-size:14px;margin-top:15px}.tour-nav{background:white;border-bottom:1px solid #e8e2ed;justify-content:center;padding-block:16px}.tour-content{max-width:1260px;margin:auto;padding:35px 5vw 55px}.tour-next{display:flex;align-items:center;justify-content:space-between;gap:25px;background:#f1e5ed;padding:28px;border:1px solid #e7d4e2;border-radius:20px}.tour-next h2{margin-bottom:8px}.tour-next p{font-size:14px}.tour-parts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:24px 0}.tour-parts a{display:grid;padding:24px;background:white;border:1px solid #e6dfe9;border-radius:17px;gap:7px;color:#302b78;transition:transform .2s}.tour-parts a:hover{background:#fff;transform:translateY(-4px)}.tour-parts span{font-size:30px;color:#b92562}.tour-parts small{font-size:12px;color:#806e83;white-space:normal}.tour-programme article{display:flex;align-items:center;gap:17px;border-bottom:1px solid #ebe4ed;padding:20px 0}.tour-programme time{font-size:20px;font-weight:700;color:#b92562}.tour-programme h3{font-size:17px;margin:0}.tour-programme p{font-size:12px;margin:5px 0}.tour-programme article>span{margin-left:auto;font-size:25px;color:#b59ab9}.tour-programme{margin-bottom:20px}.tour-overview ol{list-style:none;padding:0;display:grid;gap:15px;margin:30px 0;color:#74607d}.tour-end{margin:30px 0 25px;padding:28px 0;border-block:1px solid #e0d8e5;display:flex;gap:25px;align-items:center;justify-content:space-between}.tour-end h2{font-size:22px;margin-bottom:8px}.tour-end p{font-size:13px;max-width:640px}.tour-end button{flex-shrink:0}.tour-section-title{margin:10px 0 30px}.tour-artist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.tour-artist-grid article{background:white;border-radius:18px;overflow:hidden;border:1px solid #e4dbe8}.tour-artist-grid img{width:100%;height:210px;object-fit:cover}.tour-artist-grid article>div{padding:22px}.tour-artist-grid .eyebrow{font-size:10px}.tour-artist-grid button{font-size:12px;margin-top:14px}.tour-note{font-size:13px;padding:22px 0}.tour-materials{display:grid;grid-template-columns:340px 1fr;gap:40px;align-items:center}.tour-poster{aspect-ratio:3/4;background:radial-gradient(circle at 130% 20%,#ff7db3 0 30%,transparent 30.2%),#302b78;border-radius:12px;padding:35px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 20px 35px #302b7820;transform:rotate(-2deg)}.tour-poster>span{font-weight:700;font-size:14px;letter-spacing:2px}.tour-poster>strong{font-size:72px;line-height:.95;letter-spacing:-5px}.tour-poster em{color:#ff96c6;font-style:normal}.tour-poster p{color:white;font-size:14px}.tour-poster small{font-size:11px}.tour-format-tags{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.tour-format-tags span{padding:8px 14px;background:#f4edf7;border-radius:20px;font-size:12px}.tour-materials .panel>p{margin-top:20px}.tour-document{display:flex;align-items:center;gap:20px;background:#f6f1f7;padding:25px;border-radius:15px;margin:25px 0}.tour-document>span:first-child{padding:20px 12px;border:1px solid #bfa7c4;border-radius:8px;color:#9d3267}.tour-document p{font-size:13px}.tour-document h3{margin:0}.tour-document .badge{margin-left:auto;white-space:nowrap}.tour-conversation{max-width:800px;margin:auto}.tour-bubble{background:#f0edf6;padding:22px;border-radius:18px 18px 18px 0;margin:25px 50px 25px 0;font-size:14px}.tour-bubble strong{font-size:12px;color:#775684}.tour-bubble p{margin-top:9px}.tour-bubble.mine{margin:25px 0 25px 50px;background:#f9edf3;border-radius:18px 18px 0 18px}
@media(max-width:800px){.client-brandbar{padding:12px 20px;gap:15px}.client-brandbar img{width:75px}.client-brandbar>div:nth-child(2){padding-left:15px}.client-brandbar strong{font-size:17px}.client-session{gap:0}.client-session>a{display:none}.client-nav,.tour-nav{justify-content:flex-start;padding-inline:16px}.client-nav a,.tour-nav a{font-size:13px;padding:10px 13px;flex-shrink:0}.tour-header{padding:15px 20px;gap:15px}.tour-header img{width:80px}.tour-header>div{border:0;padding:0}.tour-header strong{font-size:16px}.tour-header small{font-size:10px}.tour-header button{font-size:12px;padding:9px 12px}.tour-hero{min-height:365px;padding:45px 25px}.tour-hero aside{display:none}.tour-hero h1{font-size:52px}.tour-content{padding:24px 20px 40px}.tour-next,.tour-end{align-items:flex-start;flex-direction:column;padding:22px}.tour-parts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tour-parts a{padding:18px}.tour-parts strong{font-size:14px}.tour-artist-grid{grid-template-columns:1fr}.tour-materials{grid-template-columns:1fr;gap:32px}.tour-poster{max-width:320px;width:90%;justify-self:center}.tour-document{flex-wrap:wrap;padding:20px}.tour-document .badge{margin:0}.tour-bubble{margin-right:20px}.tour-bubble.mine{margin-left:20px}}
@media(prefers-reduced-motion:reduce){.tour-parts a{transition:none}.tour-parts a:hover{transform:none}}
.municipal-material-preview{display:block;width:min(100%,270px);max-height:360px;object-fit:contain;object-position:left;margin:18px 0;border-radius:8px;background:#f4f0f7}.client-view:not(.public-view) .shell>footer{max-width:1320px;margin:auto}.public-hero .button.secondary{background:#ffffff12;border-color:#ffffff80;color:#fff}

/* Assistant studio: conversations, working documents and provider settings. */
.ai-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:5px 0 28px}.ai-heading h1{font-size:clamp(30px,3.4vw,46px);line-height:1.12;letter-spacing:-1.7px}.ai-heading h1 em{font-style:normal;color:#b92562}.ai-heading p:not(.eyebrow){font-size:14px;margin-top:15px}.ai-connection{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px solid #e2d9e8;background:#fff;border-radius:15px;flex-shrink:0}.ai-connection>span{width:9px;height:9px;border-radius:50%;background:#c7bfcf}.ai-connection>span.connected{background:#3b9a74;box-shadow:0 0 0 5px #e7f4ef}.ai-connection>div{display:grid;gap:5px}.ai-connection strong{font-size:14px}.ai-connection small{font-size:11px;color:#80708b}.ai-tabs{flex-direction:row;gap:8px;border-bottom:1px solid #dfd8e6;margin-bottom:24px;padding-bottom:14px;overflow:auto;white-space:nowrap}.ai-tabs a{color:#77687d;font-size:13px;padding:11px 16px}.ai-tabs a[aria-current=page],.ai-tabs a:hover{background:#302b78;color:#fff}.ai-workspace{display:grid;grid-template-columns:190px minmax(330px,1fr) minmax(260px,.72fr);gap:18px;align-items:start}.ai-conversations{min-width:0}.ai-conversations>.button{width:100%;font-size:12px}.ai-conversations h2{font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:#918298;margin:26px 0 15px}.ai-conversation-list{display:grid;gap:6px;max-height:750px;overflow:auto}.ai-conversation-list>a{display:flex;gap:10px;padding:13px 10px;border-radius:12px;border:1px solid transparent}.ai-conversation-list>a:hover,.ai-conversation-list>a[aria-current=page]{background:#fff;border-color:#e5dce9}.ai-conversation-list>a>span{font-size:20px;color:#a75885}.ai-conversation-list strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.ai-conversation-list small{display:block;font-size:10px;color:#918098;margin-top:6px}.ai-conversation-list>p{font-size:12px;padding:10px}.ai-chat{min-width:0;background:#fff;border:1px solid #e4ddea;border-radius:20px;overflow:hidden}.ai-chat-title{display:flex;align-items:center;gap:14px;padding:23px;border-bottom:1px solid #eee8f1;background:linear-gradient(130deg,#fff,#f8f2f7)}.ai-chat-title>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#eee6f5;color:#925882;font-size:24px;flex-shrink:0}.ai-chat-title h2{font-size:18px;margin:0;overflow-wrap:anywhere}.ai-chat-title p{font-size:11px;margin:5px 0 0}.ai-specialties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:18px}.ai-specialties button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:12px 10px;border:1px solid #eae2ee;background:#fff;color:#6e5c7b;border-radius:12px;min-width:0}.ai-specialties button[aria-pressed=true]{background:#f8edf4;border-color:#be6694;color:#962861}.ai-specialties span{font-size:21px}.ai-specialties strong{font-size:11px}.ai-specialties small{font-size:10px;line-height:1.4;font-weight:400}.ai-messages{padding:8px 22px 22px;max-height:650px;overflow:auto;scroll-behavior:smooth;overscroll-behavior:contain}.ai-welcome{text-align:center;padding:24px 12px 16px}.ai-welcome>span{font-size:40px;color:#a978a8}.ai-welcome h3{font-size:20px;margin:10px 0}.ai-welcome p{font-size:13px}.ai-welcome button{font-size:12px;margin-top:10px}.ai-user-message{margin:20px 0 18px 30px;background:#f4edf6;padding:18px;border-radius:15px 15px 0 15px}.ai-user-message p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:#493c56;margin:8px 0 0}.ai-user-message small,.ai-assistant-message>small{font-size:10px;color:#948199}.ai-assistant-message{margin:18px 0;padding:5px 0 18px;border-bottom:1px solid #eee8f1}.ai-response{font-size:13px;line-height:1.8;color:#4d4159;overflow-wrap:anywhere;margin:13px 0}.ai-response h3{font-size:16px;margin:16px 0 8px}.ai-assistant-message button{font-size:11px}.ai-created{font-size:11px;color:#9d5c84;margin-top:14px}.ai-thinking{font-size:13px;color:#9d648b;display:flex;align-items:center;gap:10px;padding:25px 0}.ai-thinking i{width:9px;height:9px;background:#b92562;border-radius:50%;animation:ai-pulse 1.3s infinite}.ai-composer{border-top:1px solid #eee8f1;padding:20px;background:#fcfafd}.ai-composer details{margin-bottom:18px}.ai-composer summary{cursor:pointer;font-size:12px;color:#8a7099}.ai-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.ai-context-grid label{margin:0;font-size:11px;min-width:0}.ai-context-grid select,.ai-context-grid input{font-size:12px;padding:9px;width:100%;min-width:0}.ai-context-grid label:last-child:nth-child(odd){grid-column:1/-1}.ai-context-grid[hidden]{display:none}.ai-prompt-label{font-size:12px;font-weight:650}.ai-composer textarea{font-size:14px;line-height:1.65;background:#fff;min-height:110px;border-color:#dfd3e6;resize:vertical}.ai-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.ai-compose-actions>button{font-size:12px}.ai-attach{cursor:pointer;font-size:11px;color:#8a7296;margin:0}.ai-note{font-size:11px!important;color:#918398!important;line-height:1.65;margin-top:16px!important}.ai-artifacts{border:1px solid #e0d7e8;border-radius:18px;background:#f2edf6;min-width:0;padding:18px;position:sticky;top:20px}.ai-artifacts-heading{display:flex;align-items:center;gap:9px}.ai-artifacts-heading>span{font-size:23px;color:#9472aa}.ai-artifacts-heading h2{font-size:14px;margin:0}.ai-artifact-empty{text-align:center;padding:42px 6px}.ai-artifact-empty>span{font-size:55px;color:#b0a0c2}.ai-artifact-empty h3{font-size:17px;margin:15px 0}.ai-artifact-empty p{font-size:12px;line-height:1.7}.ai-artifact-list{min-width:0}#ai-artifact-list{display:grid;gap:7px;max-height:200px;overflow:auto;margin-top:18px}#ai-artifact-list button{display:flex;align-items:flex-start;flex-direction:column;text-align:left;padding:12px;background:#ffffff80;min-width:0}#ai-artifact-list strong{font-size:12px;overflow-wrap:anywhere}#ai-artifact-list small{font-size:10px;font-weight:400;color:#95819e}#ai-artifact-list button[aria-pressed=true]{background:#fff;border-color:#a687b8;box-shadow:0 2px 6px #302b7810}.ai-document-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.ai-document-toolbar button,.ai-document-toolbar a{font-size:11px;min-height:35px;padding:8px 12px}.ai-document{padding:22px 18px;background:white;border:1px solid #e7dfed;box-shadow:0 5px 16px #302b7808;border-radius:5px;max-height:600px;overflow:auto;font-size:12px;line-height:1.8;color:#53485c;overflow-wrap:anywhere}.ai-document h3{font-size:17px;line-height:1.4;margin:15px 0}.ai-document .eyebrow{font-size:8px}.ai-document pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;background:transparent;padding:0;max-width:100%}.ai-bullet{padding-left:10px}.ai-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ai-settings-grid form{margin:25px 0}.ai-settings-grid form label{font-size:13px}.ai-settings-grid h2{font-size:25px}.ai-settings-grid>section>p{font-size:14px}.ai-settings-grid select{width:100%;min-width:0}.ai-settings-grid section{min-width:0}.ai-settings-grid a{font-size:13px}
@keyframes ai-pulse{50%{opacity:.35;transform:scale(.8)}}
@media(min-width:1700px){body:has(.ai-workspace) main{max-width:1800px}.ai-workspace{grid-template-columns:220px minmax(420px,1fr) minmax(330px,.72fr)}}
@media(max-width:1250px){.ai-workspace{grid-template-columns:150px minmax(300px,1fr)}.ai-artifacts{grid-column:2;position:static}.ai-conversations{grid-row:1/3}.ai-heading h1{font-size:35px}}
@media(max-width:800px){.ai-heading{display:block}.ai-heading h1{font-size:33px}.ai-connection{margin-top:20px;max-width:300px;padding:13px 16px}.ai-tabs a{font-size:12px;padding:10px 12px;flex-shrink:0}.ai-workspace{display:flex;flex-direction:column;gap:16px}.ai-conversations,.ai-chat,.ai-artifacts{width:100%}.ai-conversations h2{margin:14px 0 8px}.ai-conversation-list{display:flex;max-height:130px;overflow:auto}.ai-conversation-list>a{min-width:185px;max-width:230px;background:#fff;flex-shrink:0}.ai-conversation-list>p{padding:0}.ai-specialties{gap:6px;padding:12px}.ai-specialties small{display:none}.ai-specialties strong{font-size:10px}.ai-chat-title{padding:18px}.ai-messages{padding:8px 16px 16px;max-height:520px}.ai-composer{padding:16px}.ai-context-grid{grid-template-columns:1fr}.ai-context-grid label{grid-column:auto!important}.ai-compose-actions{align-items:flex-start}.ai-compose-actions>button{white-space:nowrap;padding:10px 12px}.ai-settings-grid{grid-template-columns:1fr}.ai-user-message{margin-left:15px}.ai-artifacts{padding:16px}.ai-document{max-height:550px}}
@media(prefers-reduced-motion:reduce){.ai-thinking i{animation:none}.ai-messages{scroll-behavior:auto}}
.ai-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.ai-history .panel{margin:0;min-width:0}.ai-history-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:18px}.ai-history small{font-size:11px;color:#8e7b97}.ai-history h2{font-size:22px}.ai-history p{font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ai-history .actions{margin-top:20px}.ai-history .button,.ai-history button{font-size:12px}.ai-history-result{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;padding:20px;background:#f7f3f9;border-radius:12px;max-height:450px;overflow:auto}@media(max-width:800px){.ai-history{grid-template-columns:1fr}}
.pwa-install{position:fixed;right:18px;bottom:18px;z-index:75;border-color:#fff;background:#302b78;color:#fff;box-shadow:0 7px 24px #201b6240;font-size:14px;white-space:nowrap}.pwa-install:hover{background:#48419a;filter:none}.pwa-install[hidden]{display:none!important}.install-guide-close{float:right;margin:0 0 15px 15px}#install-guide{width:min(540px,92vw)}#install-guide h2{padding-top:8px}#install-guide p{clear:both;line-height:1.6}@media(max-width:720px){.pwa-install{right:12px;bottom:12px;padding:9px 13px;font-size:12px;min-height:40px}}@media print{.pwa-install,#install-guide{display:none!important}}
.ai-document strong,.ai-response strong{color:#352647;font-weight:750}.ai-document code,.ai-response code{font-size:.92em;background:#f4eff7;border-radius:4px;padding:2px 4px}.ai-table-wrap{overflow:auto;max-width:100%;margin:15px 0}.ai-table-wrap table{width:100%;border-collapse:collapse;font-size:11px}.ai-table-wrap th,.ai-table-wrap td{padding:9px;text-align:left;border:1px solid #e4dbea;min-width:90px;vertical-align:top}.ai-table-wrap th{background:#f5eff8;color:#695276}.ai-document hr{border:0;border-top:1px solid #e8e0ed;margin:20px 0}.ai-chat-title h2{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Downloadable documents and readable paper layouts. */
.document-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin:20px 0;border:1px solid #ded8ed;border-radius:16px;background:#f7f4fb;color:#302b50}
.document-actions>span{display:grid;gap:4px}.document-actions small{color:#6c6380;font-size:12px}.document-actions>div{display:flex;gap:9px;flex-wrap:wrap}.document-actions .button,.document-actions button{font-size:13px;margin:0;white-space:normal;text-align:center}.ai-document-toolbar{flex-wrap:wrap;gap:8px}
@media(max-width:700px){.document-actions{align-items:stretch;flex-direction:column;padding:16px}.document-actions>div{display:grid;grid-template-columns:1fr 1fr}.document-actions [data-print-screen]{grid-column:1/-1}.document-actions .button{display:flex;align-items:center;justify-content:center}}
@media print{
 @page{size:A4;margin:16mm 13mm 18mm}
 html,body{background:white!important;color:#24202d!important;font-size:10pt!important;overflow:visible!important;height:auto!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 #sidebar,.top,footer,.public-header,#client-shell,.client-topbar,.client-nav,.town-shortcuts,.document-actions,.catalog-tools,.catalog-intro-actions,.ai-document-toolbar,.ai-note,.ai-composer,.proposal-controls,.visual-artist-actions,.artist-detail-button,.play-orb,.cookie-banner,#toast,dialog,form,.actions,.toolbar{display:none!important}
 .shell,body.client-view .shell,body.public-view .shell{margin:0!important;padding:0!important;width:100%!important;max-width:none!important}
 main,#main,body.client-view main{padding:0!important;margin:0!important;max-width:none!important;width:100%!important}
 h1{font-size:25pt!important}h2{font-size:16pt!important}h3{font-size:12pt!important}h1,h2,h3{break-after:avoid}a{color:inherit!important;text-decoration:none!important}
 .button,button{display:none!important}.media-cover{display:block!important;height:145px!important;min-height:0!important;width:100%!important}.cover-bottom{display:none!important}
 .grid,.columns,.visual-catalog,.proposal-options{display:block!important;overflow:visible!important;max-height:none!important}.card,.visual-artist,.proposal-options>article{display:block!important;width:100%!important;max-width:none!important;min-width:0!important;margin-bottom:14px!important;break-inside:avoid}
 .panel,.card,.visual-artist,.municipal-heading,.portal-banner,.stats,.stat,.callout{box-shadow:none!important}.panel{break-inside:auto!important;padding:12px!important;margin:12px 0!important;border:1px solid #ddd!important}.taskrow,.callout,.listline{break-inside:avoid}
 .artist-description{display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important;max-height:none!important}.municipal-heading,.portal-banner{min-height:0!important;padding:20px!important}.municipal-heading{height:200px!important}.municipal-logo{width:110px!important}.municipal-copy h1{font-size:28pt!important}.municipal-background{object-fit:cover!important}
 .tablewrap,pre{overflow:visible!important}pre{white-space:pre-wrap!important;overflow-wrap:anywhere}.proposal-options{scroll-snap-type:none!important}.page-heading,.catalog-intro{display:block!important}img{max-width:100%!important}*{animation:none!important;transition:none!important}
}
@media print{.panel:has(>#proposal-form){display:none!important}}
.notification-panel{margin-top:24px;border:1px solid #ded6eb!important;background:linear-gradient(120deg,#fff,#faf7ff)!important}.notification-heading{display:flex;align-items:flex-start;gap:16px}.notification-symbol{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:15px;background:#eee6fa;color:#493387;font-size:28px}.notification-heading h2{margin:3px 0 8px}.notification-heading .eyebrow{margin:0}.push-status{border-top:1px solid #e7e0ee;padding-top:18px;margin-top:12px}.push-status .actions{display:flex;gap:9px;flex-wrap:wrap}.push-status [data-push-result]{font-size:14px;color:#493387}.push-privacy{font-size:13px;line-height:1.6}.push-install-help,.push-devices{margin-top:18px}.push-install-help summary,.push-devices summary{cursor:pointer;font-weight:700;padding:9px 0}.push-device{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e7e0ee}.push-device small{display:block;margin-top:5px;color:#716682}.unread-badge{display:inline-grid;place-items:center;background:#b12c69;color:white;border-radius:30px;min-width:22px;height:22px;padding:0 6px;margin-left:8px;font-size:12px;font-weight:700}.unread-event{display:flex;justify-content:space-between;gap:16px;padding:12px;border:1px solid #ded6eb;border-radius:10px;margin:8px 0;color:#493387}.notification-panel button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:600px){.notification-panel{padding:19px!important}.notification-heading{gap:11px}.notification-symbol{flex-basis:36px;width:36px;height:36px}.notification-heading h2{font-size:21px}.push-status .actions>*{width:100%}.push-device{align-items:flex-start;flex-direction:column}}@media print{.notification-panel,.unread-badge{display:none!important}}
.notification-shortcut{position:relative;display:grid;place-items:center;width:36px;height:36px;font-size:19px;border:1px solid #e4deec;border-radius:11px;background:#faf7ff}.notification-shortcut .unread-badge{position:absolute;top:-7px;right:-7px;margin:0;font-size:10px;min-width:18px;height:18px}@media(max-width:600px){.client-brandbar{gap:10px}.client-brandbar img{width:58px}.client-brandbar>div:nth-child(2){min-width:0;flex:1;padding-left:10px}.client-brandbar small{font-size:8px;white-space:normal}.client-brandbar strong{font-size:15px}.client-session{gap:2px}.client-session .notification-shortcut{display:grid;flex-shrink:0}.client-session button{font-size:12px;padding:8px}}
/* Agent-first office: readable daily work, source-linked memory and review. */
#sidebar{overflow-y:auto;overscroll-behavior:contain}
#sidebar .nav-heading{display:block;margin:18px 14px 3px;color:#c9c5f0;font-size:11px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase}
#sidebar .nav-heading:first-of-type{margin-top:16px}
#sidebar .agent-only-nav{padding-block:9px;font-size:14px;background:#ffffff0d}
.option-art .option-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.option-art:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#1e153fef,#1e153f8c 70%,#1e153f38);z-index:-1}
.proposal-option .option-description{color:var(--ink);font-size:14px;line-height:1.55;white-space:pre-line;margin:12px 0 16px}
.office-flow .sectionhead{margin-top:0}.office-flow .sectionhead h2{margin:0}.office-flow-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0;padding:0;list-style:none}.office-flow-list a{display:flex;flex-direction:column;gap:8px;height:100%;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fbfaff;color:var(--ink)}.office-flow-list a:hover{border-color:#a99ad4;background:#f4effb}.office-flow-list strong{color:var(--indigo);font-size:14px}.office-flow-list span,.office-flow-limit{font-size:13px;color:var(--muted)}.office-flow-limit{margin:10px 0 0}@media(max-width:950px){.office-flow-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.office-flow-list{grid-template-columns:1fr}}
#sidebar .agent-only-nav:hover,#sidebar .agent-only-nav.active{background:#665fb0}
.office-proposed{background:#fff8ed;border:1px solid #edd3a8;border-radius:12px;padding:14px;margin:15px 0}.office-proposed>strong{display:block;color:#7f4b0e;font-size:13px}.office-proposed p{font-size:12px}.office-proposed dl{margin:8px 0 0}.office-proposed dl>div{border-top:1px solid #efdfc7;padding:7px 0}.office-proposed dt{font-weight:700;font-size:12px}.office-proposed dd{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;margin:4px 0;font-size:12px;overflow-wrap:anywhere}.office-proposed del{color:#795b52}.office-proposed ins{color:#195e49;text-decoration:none;font-weight:700}
.office-alert-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.office-alert-actions button{min-height:32px;padding:5px 9px;font-size:11px}
.office-tabs{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin:0 0 25px}
.office-tabs a{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid #ded8eb;border-radius:999px;background:#fff;color:var(--indigo);font-size:13px;font-weight:700}
.office-tabs a:hover,.office-tabs a:focus-visible{background:#f2ecf8}
.office-hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:25px;align-items:center;background:linear-gradient(125deg,#302b78,#554398 68%,#a73870);border-radius:23px;color:white;padding:34px;margin:0 0 22px}
.office-hero .eyebrow{color:#ffd8e8}.office-hero h2{font-size:clamp(28px,3vw,38px);margin:0 0 14px;max-width:720px}.office-hero p:not(.eyebrow){color:#f0eafa;max-width:760px;line-height:1.6}.office-hero .button.secondary{background:#fff;color:#302b78}.office-hero-count{width:174px;height:174px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#ffffff1c;border:1px solid #ffffff63;padding:18px}
.office-hero-count strong{font-size:62px;line-height:1;font-variant-numeric:tabular-nums}.office-hero-count span{font-size:13px;margin-top:8px;line-height:1.3}
.office-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:22px}
.office-summary a{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:18px;color:var(--ink)}
.office-summary a:hover{border-color:#a9a2d6;box-shadow:0 6px 22px #302b7810}
.office-summary strong{font-size:30px;line-height:1;color:var(--indigo);font-variant-numeric:tabular-nums}.office-summary span{font-size:13px;color:var(--muted)}
.office-two{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:22px;align-items:start}.office-two>*{min-width:0}
.office-agenda-row{display:grid;grid-template-columns:115px minmax(0,1fr) 22px;align-items:center;gap:14px;border-top:1px solid var(--line);padding:14px 0;color:var(--ink)}
.office-agenda-row>span:first-child{font-size:12px;font-weight:700;color:#6a5b83}.office-agenda-row strong{display:block;overflow-wrap:anywhere}.office-agenda-row small{display:block;color:var(--muted);font-size:12px}.office-agenda-row:hover strong{color:var(--raspberry)}
.office-alert{display:flex;gap:13px;align-items:start;padding:13px 0;border-top:1px solid var(--line)}.office-alert>div{min-width:0}.office-alert strong{display:block;font-size:14px}.office-alert small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.office-alert .badge{flex-shrink:0}
.office-activity{display:grid;gap:2px;border-top:1px solid var(--line);padding:13px 0}.office-activity strong{font-size:14px}.office-activity span,.office-activity small{color:var(--muted);font-size:12px}
.office-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end}.office-filter label{min-width:0;margin:0}.office-filter input,.office-filter select{width:100%;margin-bottom:0}.office-filter button{margin-bottom:0}
.office-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.office-record{border:1px solid #dedce9;background:#fff;border-radius:16px;padding:20px;min-width:0;overflow-wrap:anywhere}.office-record-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.office-record h3{margin:5px 0 4px;font-size:18px;line-height:1.3}.office-record .badge{flex-shrink:0}.office-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--raspberry);font-size:11px;font-weight:800}.office-related{font-size:13px;color:#645a7d}
.office-facts{display:grid;gap:6px;margin:14px 0}.office-facts div{display:grid;grid-template-columns:125px minmax(0,1fr);gap:10px;border-top:1px solid #efedf4;padding-top:7px}.office-facts dt{font-size:12px;font-weight:700;color:#766b89}.office-facts dd{margin:0;white-space:pre-wrap;font-size:13px}
.office-source{border-top:1px solid #ece8f1;padding-top:12px;margin-top:14px}.office-source summary{cursor:pointer;color:var(--indigo);font-size:12px;font-weight:700}.office-source p,.office-source small{font-size:12px;color:var(--muted)}.office-source blockquote{font-size:13px;margin:10px 0;padding:10px 14px;background:#f7f4fa;border-left:3px solid #ae8fbd;white-space:pre-wrap}
.office-record .actions{margin-top:15px}.office-record .actions button{font-size:13px}.office-source-fields{border:1px solid #ddd8e9;border-radius:13px;padding:20px;margin:22px 0 18px;min-width:0}.office-source-fields legend{font-weight:700;color:var(--indigo);padding:0 8px}.office-hint{font-size:13px;line-height:1.5;color:var(--muted);margin:15px 0}.office-result-count{font-size:13px;margin:0 0 15px}
.office-report-counts{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px}.office-report-counts span{display:grid;gap:3px;padding:12px;background:#f6f4fb;border-radius:10px;text-align:center;font-size:12px}.office-report-counts strong{font-size:22px;line-height:1;color:var(--indigo)}
@media(max-width:1100px){.office-two{grid-template-columns:1fr}.office-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.office-filter button{grid-column:1/-1}.office-report-counts{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:750px){.office-hero{display:block;padding:24px}.office-hero-count{width:auto;height:auto;border-radius:14px;margin-top:22px;align-items:flex-start;text-align:left}.office-hero-count strong{font-size:36px}.office-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.office-record-grid{grid-template-columns:1fr}.office-filter{grid-template-columns:1fr}.office-filter button{grid-column:auto}.office-report-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.office-agenda-row{grid-template-columns:85px minmax(0,1fr) 18px}}
@media print{.office-tabs,.office-hero .actions,.office-filter,.office-record .actions,.office-source summary,.office-hero-count{display:none!important}.office-hero{color:var(--ink);background:#fff;border:1px solid #ddd}.office-hero p:not(.eyebrow){color:var(--ink)}.office-two,.office-record-grid{display:block}.office-record{break-inside:avoid;margin-bottom:10px}.office-report-counts{display:flex;flex-wrap:wrap}}

/* Identity-led festival artwork: no town-specific photography on the public homepage. */
.public-hero .festival-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 73% 46%,#783585 0,#493078 24%,transparent 49%),radial-gradient(circle at 93% 82%,#c13b7140 0,transparent 38%),linear-gradient(115deg,#171333 12%,#28205a 59%,#392064 100%)}
.festival-scene::before{content:"";position:absolute;inset:-20%;opacity:.14;background:repeating-linear-gradient(100deg,transparent 0 66px,#ffffff33 67px 68px,transparent 69px 136px);transform:rotate(-10deg)}
.festival-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#171333 0%,#171333e8 30%,#17133345 58%,transparent 78%),linear-gradient(0deg,#171333 0%,transparent 22%)}
.festival-orbit{position:absolute;left:75%;top:47%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(-18deg);border-radius:50%;border:1px solid #ffffff55;box-shadow:0 0 50px #ef86c622,inset 0 0 35px #ffffff0d}
.orbit-outer{width:min(72vw,920px);border-width:2px;border-top-color:#ffd08e;border-right-color:#ff7cad}.orbit-middle{width:min(57vw,720px);border-width:2px;border-bottom-color:#ff7cad}.orbit-inner{width:min(40vw,500px);border-top-color:#ffe5b6;border-left-color:#f595c5}
.festival-sun{position:absolute;left:75%;top:46%;width:min(29vw,370px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff4cc 0%,#ffd18e 27%,#f46b9e 67%,#ad3e9b 100%);box-shadow:0 0 80px #eb78ae66,0 0 190px #f4a76c40}
.festival-beam{position:absolute;top:17%;width:22%;height:73%;opacity:.22;background:linear-gradient(#ffedb6,transparent 87%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%)}
.beam-left{left:55%;transform:rotate(13deg)}.beam-right{left:80%;transform:rotate(-19deg)}
.festival-stage{position:absolute;right:7%;bottom:11%;width:58%;height:16%;border-radius:50% 50% 0 0;background:linear-gradient(180deg,#5b347e,#120f39 68%);box-shadow:0 -18px 55px #f679b438,0 -3px 0 #eca3be}
.festival-crowd{position:absolute;bottom:-8%;width:10%;height:23%;border-radius:48% 48% 0 0;background:#100e31;z-index:1;box-shadow:0 -4px 18px #17133340}
.festival-crowd::before{content:"";position:absolute;left:27%;top:-28%;width:46%;aspect-ratio:1;border-radius:50%;background:#100e31}
.crowd-one{left:46%;height:22%;transform:rotate(-7deg)}.crowd-two{left:56%;height:27%;transform:rotate(5deg)}.crowd-three{left:66%;height:20%;transform:rotate(-4deg)}.crowd-four{left:76%;height:30%;transform:rotate(6deg)}.crowd-five{left:86%;height:24%;transform:rotate(-8deg)}.crowd-six{left:96%;height:28%;transform:rotate(5deg)}
.festival-confetti{position:absolute;z-index:1;width:11px;height:24px;border-radius:2px;background:#ffd389;transform:rotate(28deg);box-shadow:0 0 15px #ffd38955}
.confetti-one{left:54%;top:17%;background:#ff8db8;transform:rotate(-25deg)}.confetti-two{left:82%;top:13%;width:17px;height:9px}.confetti-three{left:95%;top:30%;background:#f2a6ef;transform:rotate(51deg)}.confetti-four{left:59%;top:55%;width:8px;height:17px}.confetti-five{left:86%;top:63%;background:#ff8db8;transform:rotate(-43deg)}.confetti-six{left:70%;top:11%;width:9px;height:9px;border-radius:50%}.confetti-seven{left:92%;top:78%;width:7px;height:18px;background:#f2a6ef}.confetti-eight{left:47%;top:32%;width:8px;height:8px;border-radius:50%;background:#fff0bc}
.public-festival-art{min-height:330px;position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(145deg,#302b78,#714188 72%,#a83372);display:grid;place-items:center;padding:24px}
.public-festival-art::before{content:"";position:absolute;inset:0;opacity:.25;background:repeating-radial-gradient(circle at 80% 10%,transparent 0 39px,#fff 40px 41px,transparent 42px 81px)}
.art-disc{position:absolute;border-radius:50%;aspect-ratio:1}.art-disc-back{width:250px;right:-55px;top:-75px;background:#ef9aba}.art-disc-front{width:180px;left:-72px;bottom:-90px;background:#f8c47f}
.art-confetti{position:absolute;width:11px;height:28px;background:#fff3d8;transform:rotate(24deg)}.art-confetti-one{right:12%;bottom:14%}.art-confetti-two{left:16%;top:19%;background:#ff9ac9;transform:rotate(-28deg)}.art-confetti-three{right:22%;top:17%;width:9px;height:9px;border-radius:50%}
.festival-art-card{position:relative;z-index:1;width:min(100%,390px);min-height:270px;border:1px solid #ffffffbb;border-radius:10px 54px 10px 10px;padding:25px 26px;display:flex;flex-direction:column;justify-content:space-between;color:white;background:#1713332b;box-shadow:0 20px 50px #160d3b40;transform:rotate(-4deg)}
.festival-art-card small{font-size:10px;letter-spacing:.18em;color:#ffe8f0}.festival-art-card strong{font-family:'Subiros Headline',sans-serif;font-size:clamp(37px,4vw,53px);line-height:.95;letter-spacing:-.045em}.festival-art-card strong span{color:#ffc585}.festival-art-card em{font-size:13px;font-style:normal;color:#ffe6ed}
.town-access-scene>.festival-scene,.tour-hero>.festival-scene{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 73% 38%,#713581 0,transparent 49%),linear-gradient(120deg,#171333,#342264)}
.municipal-photo>.festival-scene{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 73% 38%,#713581 0,transparent 49%),linear-gradient(120deg,#171333,#342264)}
.municipal-photo .festival-sun{width:min(30vw,320px)}
.town-cover-preview{position:relative;isolation:isolate;height:220px;margin:18px 0;overflow:hidden;border-radius:12px;background:#171333}
.town-cover-preview>.festival-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 73% 38%,#713581 0,transparent 49%),linear-gradient(120deg,#171333,#342264)}
.town-cover-preview>img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}
.town-cover-preview>img[hidden]{display:none}
.town-access-scene .festival-orbit,.town-access-scene .festival-sun,.tour-hero .festival-orbit,.tour-hero .festival-sun{left:71%;top:48%}
.town-access-scene .festival-sun,.tour-hero .festival-sun{width:min(22vw,260px)}
.town-access-scene .festival-stage,.tour-hero .festival-stage{right:0;bottom:6%}
.office-knowledge{border:1px solid #e2dcec;border-radius:12px;padding:12px 15px;margin:14px 0;background:#faf8fc}.office-knowledge summary{cursor:pointer;color:#302b78;font-weight:700}.office-knowledge p{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto;color:#343049;font-size:14px;margin:12px 0 0}
@media(max-width:800px){.public-hero .festival-scene::after{background:linear-gradient(180deg,#171333eb 0%,#171333b8 38%,#17133344 70%,#171333aa 100%)}.festival-orbit,.festival-sun{left:68%;top:76%}.orbit-outer{width:680px}.orbit-middle{width:520px}.orbit-inner{width:360px}.festival-sun{width:250px}.festival-stage{right:-8%;bottom:9%;width:85%;height:11%}.festival-crowd{bottom:-7%;height:14%;width:14%}.crowd-one{left:22%}.crowd-two{left:36%}.crowd-three{left:50%}.crowd-four{left:64%}.crowd-five{left:78%}.crowd-six{left:92%}.public-festival-art{min-height:300px}}
@media(prefers-reduced-motion:no-preference){.festival-sun{animation:festival-pulse 8s ease-in-out infinite alternate}.festival-confetti{animation:festival-drift 7s ease-in-out infinite alternate}.confetti-two,.confetti-five,.confetti-eight{animation-delay:-3s}}@keyframes festival-pulse{to{filter:brightness(1.08);box-shadow:0 0 110px #eb78ae77,0 0 220px #f4a76c55}}@keyframes festival-drift{to{translate:0 12px;rotate:18deg}}
