:root{
  --black:#080808;
  --black2:#101010;
  --panel:#141414;
  --panel2:#1b1a18;
  --gold:#c79b62;
  --gold2:#efc990;
  --cream:#f4efe6;
  --muted:#b8b1a7;
  --line:rgba(199,155,98,.28);
  --white:#fff;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
html{background:#050505}
body{margin:0;background:radial-gradient(circle at 60% -10%,rgba(199,155,98,.13),transparent 32%),#050505;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;min-height:100vh}
button,a{font:inherit;-webkit-tap-highlight-color:transparent}
button{color:inherit}
a{text-decoration:none;color:inherit}
svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.app-shell{width:min(760px,100%);margin:0 auto;min-height:100vh;padding-bottom:calc(28px + var(--safe-bottom));position:relative;overflow:hidden}
.app-shell:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 80% 18%,rgba(199,155,98,.08),transparent 28%);z-index:0}
.app-header{position:relative;z-index:2;padding:calc(18px + var(--safe-top)) 20px 8px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.app-brand img{width:190px;max-width:50vw;height:auto;display:block}
.header-actions{display:flex;gap:8px;justify-content:flex-end}
.icon-link{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--gold2);background:rgba(255,255,255,.025)}
.icon-link svg{width:20px;height:20px}.icon-link svg path{fill:currentColor;stroke:none}.icon-link .dot{fill:currentColor;stroke:none}
.contact-sophie{grid-column:1/-1;justify-self:end;display:inline-flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--gold);border-radius:999px;color:var(--gold2);font-weight:700;font-size:.82rem;background:rgba(0,0,0,.5)}
.dashboard{position:relative;z-index:1;padding:8px 18px 24px}
.welcome-block{padding:16px 4px 18px}.eyebrow{margin:0 0 8px;color:var(--gold);font-size:.67rem;text-transform:uppercase;letter-spacing:.18em;font-weight:800}.welcome-block h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.6rem,10vw,4.7rem);line-height:.95;margin:0 0 16px;letter-spacing:-.045em}.welcome-block h1 span{color:var(--gold2)}.welcome-copy{margin:0;color:#c8c1b8;line-height:1.55;font-size:.93rem;max-width:600px}
.priority-card{width:100%;position:relative;min-height:158px;border:1px solid rgba(199,155,98,.72);border-radius:22px;overflow:hidden;text-align:left;padding:0;background:url('assets/dancescene-stage.png') 76% 42%/cover no-repeat;margin:8px 0 16px;box-shadow:0 18px 45px rgba(0,0,0,.32);cursor:pointer}.priority-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.96) 0%,rgba(5,5,5,.82) 48%,rgba(5,5,5,.2) 100%)}.priority-content{position:relative;z-index:2;padding:21px;width:76%;display:flex;flex-direction:column;gap:5px}.priority-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gold2);font-weight:800}.priority-content strong{font-size:1.18rem;line-height:1.15}.priority-content small{color:#d0c9c0;line-height:1.4}.priority-arrow{position:absolute;z-index:3;right:16px;bottom:16px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#090909;font-weight:900}
.tile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hub-tile{position:relative;min-height:172px;border-radius:20px;border:1px solid rgba(199,155,98,.58);overflow:hidden;text-align:left;padding:18px;background:#151515;cursor:pointer;box-shadow:0 12px 28px rgba(0,0,0,.25)}.hub-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,6,6,.24),rgba(6,6,6,.94)),url('assets/dancescene-stage.png') center/cover no-repeat;filter:saturate(.65)}.tile-timetable:before{background-position:62% 45%}.tile-events:before{background-position:78% 45%}.tile-portal:before{background-position:52% 55%}.tile-shop:before{background-position:35% 70%}.tile-icon,.tile-label,.tile-arrow,.tile-badge{position:relative;z-index:2}.tile-icon{width:48px;height:48px;border-radius:14px;border:1px solid rgba(199,155,98,.55);display:grid;place-items:center;color:var(--gold2);background:rgba(5,5,5,.55)}.tile-icon svg{width:27px;height:27px}.tile-label{display:block;position:absolute;left:18px;bottom:17px;font-size:1.02rem;font-weight:800;line-height:1.12}.tile-arrow{position:absolute;right:14px;bottom:15px;color:var(--gold2);font-size:1.35rem}.tile-badge{position:absolute;right:14px;top:14px;min-width:25px;height:25px;border-radius:50%;background:var(--gold);color:#080808;display:grid;place-items:center;font-size:.72rem;font-weight:900}
.mini-status{margin-top:15px;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:14px 15px;background:rgba(255,255,255,.025);color:#a9a29a}.mini-status div{display:flex;align-items:center;gap:7px;color:#d8d1c8;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.mini-status p{margin:7px 0 0;font-size:.79rem;line-height:1.45}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px rgba(199,155,98,.75)}
.panel-layer{position:fixed;inset:0;height:100dvh;z-index:30;pointer-events:none;visibility:hidden;overflow:hidden}.panel-layer.open{pointer-events:auto;visibility:visible}.panel-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);opacity:0;transition:.25s}.panel-layer.open .panel-backdrop{opacity:1}.app-panel{position:absolute;inset:0;height:100%;max-height:100dvh;background:radial-gradient(circle at 80% -10%,rgba(199,155,98,.13),transparent 30%),#0b0b0b;transform:translateY(100%);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .2s;display:flex;flex-direction:column;padding-top:var(--safe-top);overflow:hidden}.app-panel.active{transform:none;opacity:1}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 20px 16px;border-bottom:1px solid var(--line);flex:none}.panel-header h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,9vw,3.6rem);line-height:.98;letter-spacing:-.04em}.panel-close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#151515;color:var(--gold2);font-size:1.8rem;line-height:1;cursor:pointer}.panel-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 18px calc(30px + var(--safe-bottom));flex:1}.panel-note{margin-top:18px;padding:13px 14px;border-radius:14px;background:rgba(199,155,98,.08);border:1px solid rgba(199,155,98,.18);color:#aaa39a;font-size:.78rem;line-height:1.5}
.notice-card,.info-card,.feature-event,.first-class-card{border-radius:20px;border:1px solid var(--line);background:linear-gradient(145deg,#181715,#101010);padding:20px;margin-bottom:12px}.notice-card span,.event-label,.first-class-card>span{display:inline-block;color:var(--gold2);font-size:.67rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;margin-bottom:8px}.notice-card h3,.feature-event h3,.first-class-card h3{font-size:1.35rem;margin:0 0 8px}.notice-card p,.feature-event p,.first-class-card p{margin:0;color:#c3bdb5;line-height:1.55}.notice-important{background:linear-gradient(145deg,rgba(199,155,98,.16),#101010)}.info-card{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}.info-icon{width:42px;height:42px;border-radius:13px;background:rgba(199,155,98,.12);display:grid;place-items:center;color:var(--gold2);font-size:1.2rem}.info-card h3{margin:1px 0 5px;font-size:1rem}.info-card p{margin:0;color:#aaa39a;font-size:.88rem;line-height:1.45}.text-action{border:0;background:none;color:var(--gold2);padding:9px 0 0;font-weight:800;font-size:.82rem}
.filter-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px}.filter-chip{border:1px solid var(--line);background:#131313;color:#bdb5ab;padding:9px 14px;border-radius:999px;white-space:nowrap}.filter-chip.active{background:var(--gold);border-color:var(--gold);color:#090909;font-weight:800}.schedule-list{display:grid;gap:10px}.schedule-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid rgba(255,255,255,.08);border-radius:17px;padding:15px 16px;background:#121212}.schedule-item strong,.schedule-item span{display:block}.schedule-item span,.schedule-item small{color:#9f988f;font-size:.78rem;margin-top:4px}.schedule-item small{text-align:right}
.feature-event{min-height:210px;background:linear-gradient(90deg,rgba(9,9,9,.94),rgba(9,9,9,.6)),url('assets/dancescene-stage.png') 65% 42%/cover no-repeat;display:flex;flex-direction:column;justify-content:flex-end}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:13px 17px;font-weight:850;cursor:pointer}.primary-action{background:var(--gold);color:#090909;margin-top:16px}.secondary-action{border:1px solid var(--gold);color:var(--gold2);background:transparent;margin-top:16px}.event-row{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:center;border-bottom:1px solid rgba(255,255,255,.08);padding:14px 0}.event-date{width:54px;height:58px;border:1px solid var(--line);border-radius:14px;display:grid;place-items:center;background:#151515}.event-date strong{font-size:1.1rem;line-height:1}.event-date span{font-size:.61rem;color:var(--gold);letter-spacing:.08em}.event-row h3{margin:0 0 4px;font-size:1rem}.event-row p{margin:0;color:#9f988f;font-size:.82rem}
.portal-priority{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border-radius:20px;padding:19px;background:linear-gradient(90deg,rgba(235,205,164,.98),rgba(199,155,98,.93)),url('assets/dancescene-stage.png') center/cover no-repeat;color:#16110c;margin-bottom:15px}.portal-priority span{font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.portal-priority h3{margin:7px 0 5px;font-size:1.15rem}.portal-priority p{margin:0;font-size:.82rem}.circle-arrow{width:42px;height:42px;border-radius:50%;border:1px solid rgba(0,0,0,.35);background:#17120d;color:#fff;font-size:1.2rem}.portal-list{display:grid;gap:9px}.portal-item{width:100%;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;text-align:left;padding:14px;border-radius:17px;border:1px solid var(--line);background:#121212;cursor:pointer}.portal-icon{width:42px;height:42px;border-radius:12px;background:rgba(199,155,98,.09);display:grid;place-items:center;color:var(--gold2);font-size:1.35rem}.portal-item strong,.portal-item small{display:block}.portal-item strong{font-size:.96rem}.portal-item small{margin-top:3px;color:#9d968d;font-size:.73rem;line-height:1.35}.portal-item b{font-size:1.35rem;color:var(--gold2);transition:.2s}.portal-item.expanded b{transform:rotate(90deg)}.portal-detail{display:none;margin:-2px 6px 3px;padding:6px 8px 10px;border-left:1px solid rgba(199,155,98,.24)}.portal-detail.open{display:grid;gap:7px}.doc-link{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:12px;background:#171717;color:#d6d0c7;font-size:.8rem}.doc-link span{color:var(--gold);font-size:.62rem;letter-spacing:.08em}
.shop-hero{min-height:190px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(90deg,rgba(8,8,8,.95),rgba(8,8,8,.3)),url('assets/dancescene-stage.png') 54% 65%/cover no-repeat;padding:20px;display:flex;align-items:flex-end;margin-bottom:14px}.shop-hero span{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold2)}.shop-hero h3{margin:6px 0 0;font-family:Georgia,serif;font-size:2rem;line-height:1.02}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.shop-grid article{min-width:0}.shop-photo{aspect-ratio:1/1.15;border-radius:16px;border:1px solid var(--line);background:url('assets/dancescene-stage.png') center/cover no-repeat;margin-bottom:8px}.shop-two{background-position:25% 55%}.shop-three{background-position:80% 55%}.shop-grid strong{font-size:.78rem}.shop-grid p{font-size:.69rem;line-height:1.35;color:#989188;margin:4px 0 0}
.first-class-card{background:linear-gradient(145deg,rgba(199,155,98,.16),#101010)}
.toast{position:fixed;left:50%;bottom:calc(18px + var(--safe-bottom));z-index:60;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#f0d3a7;color:#17110b;padding:11px 14px;border-radius:999px;font-size:.75rem;font-weight:800;box-shadow:0 16px 40px rgba(0,0,0,.45);transition:.2s;max-width:calc(100% - 30px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:700px){.app-shell{border-left:1px solid rgba(255,255,255,.05);border-right:1px solid rgba(255,255,255,.05)}.dashboard{padding-left:28px;padding-right:28px}.app-header{padding-left:30px;padding-right:30px}.tile-grid{grid-template-columns:repeat(3,1fr)}.hub-tile{min-height:190px}.app-panel{left:50%;right:auto;width:min(720px,100%);transform:translate(-50%,100%);border-left:1px solid var(--line);border-right:1px solid var(--line)}.app-panel.active{transform:translate(-50%,0)}}
@media(max-width:390px){.app-brand img{width:166px}.hub-tile{min-height:154px}.tile-label{font-size:.92rem}.priority-content{width:82%}.shop-grid{grid-template-columns:1fr}.shop-photo{aspect-ratio:2/1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* V1.1 private access + news */
.lock-screen{min-height:100dvh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 15%,rgba(199,155,98,.16),transparent 32%),#080808;color:#fff}.lock-screen[hidden]{display:none}.lock-card{width:min(430px,100%);padding:30px;border:1px solid rgba(199,155,98,.34);border-radius:26px;background:#111;box-shadow:0 24px 70px rgba(0,0,0,.45)}.lock-card img{width:190px;margin-bottom:28px}.lock-card h1{font-size:2.2rem;margin:0 0 10px}.lock-card p{color:#c9c3ba}.lock-card label{display:grid;gap:8px;font-size:.78rem;font-weight:700;margin:22px 0 14px}.lock-card input{width:100%;padding:14px 15px;border-radius:13px;border:1px solid #39342e;background:#0b0b0b;color:#fff}.lock-card .primary-action{width:100%;border:0}.lock-card small{display:block;margin-top:14px;color:#958f87}.news-item{padding:20px;border:1px solid var(--line);border-radius:18px;background:#121212;margin-bottom:11px}.news-item span{display:block;color:var(--gold2);font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.news-item h3{margin:7px 0 6px}.news-item p{color:#aaa39a;font-size:.86rem}.news-item a{display:inline-flex;margin-top:7px;color:var(--gold2);font-weight:800;font-size:.78rem}.app-logout{border:0;background:transparent;color:#aaa;font-size:.72rem;text-decoration:underline;cursor:pointer}

/* v1.3 timetable filters */
.filter-group{margin-bottom:14px}.filter-label{display:block;color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin:0 0 7px}.schedule-item div span+span{margin-top:2px}


/* V1.4 parent experience refinements */
.welcome-line{display:block}.welcome-block h1 .welcome-line:first-child{white-space:nowrap;color:#fff;font-size:.92em}.welcome-block h1 .welcome-accent{color:var(--gold2)}.welcome-block{padding-bottom:12px}.welcome-copy{line-height:1.42}
.panel-tools{display:flex;gap:8px;align-items:center}.panel-search-toggle{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#151515;color:var(--gold2);display:grid;place-items:center;cursor:pointer}.panel-search-toggle svg{width:20px;height:20px}.panel-search{margin:0 0 14px}.panel-search[hidden]{display:none}.panel-search input{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#121212;color:#fff;outline:none}.panel-search input:focus{border-color:var(--gold)}.panel-search input::placeholder{color:#807a72}
.schedule-item[hidden],.event-row[hidden],.searchable[hidden],.portal-category[hidden],.portal-entry[hidden],.first-class-card[hidden]{display:none!important}
.news-body{max-height:7.2em;overflow:hidden;position:relative}.news-item:not(.expanded) .news-body:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.2em;background:linear-gradient(transparent,#121212)}.news-item.expanded .news-body{max-height:none}.news-item.expanded .news-body:after{display:none}.news-expand{border:0;background:none;color:var(--gold2);font-weight:800;font-size:.78rem;padding:7px 0;cursor:pointer}.news-expand[hidden]{display:none}.news-attachments{border-top:1px solid rgba(255,255,255,.08);margin-top:12px;padding-top:10px}.news-attachments a{display:flex!important;align-items:center;justify-content:space-between;gap:12px;margin-top:0!important;padding:11px 12px;border-radius:12px;background:#181715;color:#efe6da!important}.news-attachments a span{font-size:.8rem!important;text-transform:none!important;letter-spacing:0!important;color:#efe6da!important}.news-attachments a b{color:var(--gold2);font-size:1rem}
.event-row{grid-template-columns:58px 1fr;align-items:start;padding:12px 0}.event-date{width:58px;height:62px}.event-link{display:inline-flex;margin-top:7px;color:var(--gold2);font-weight:800;font-size:.76rem}
.today-date{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.today-date span{color:var(--gold2);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.today-date strong{font-family:Georgia,serif;font-size:1.15rem}.today-event,.today-class{border:1px solid rgba(255,255,255,.08);border-radius:17px;background:#121212;margin-bottom:10px}.today-event{display:grid;grid-template-columns:58px 1fr;gap:14px;padding:14px}.today-event .event-date{margin:0}.today-kicker{color:var(--gold);font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.today-event h3,.today-class h3{margin:4px 0;font-size:1rem}.today-event p,.today-class p,.today-class small{margin:0;color:#9f988f;font-size:.8rem;line-height:1.4}.today-link{display:inline-flex;margin-top:7px;color:var(--gold2);font-weight:800;font-size:.76rem}.today-class{display:grid;grid-template-columns:70px 1fr;gap:13px;align-items:center;padding:14px}.today-time{color:var(--gold2);font-weight:900;font-size:.9rem;border-right:1px solid rgba(199,155,98,.24);padding-right:10px}
.portal-category{display:grid;gap:0}.portal-detail{padding-top:4px}.portal-entry{border-radius:12px;background:#111;margin-bottom:7px;overflow:hidden}.portal-entry-toggle{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;padding:12px;border:1px solid rgba(255,255,255,.07);background:#161616;color:#eee;cursor:pointer}.portal-entry-toggle span{font-weight:800;font-size:.84rem}.portal-entry-toggle b{color:var(--gold2);font-size:1.25rem;transition:.2s}.portal-entry-toggle.expanded b{transform:rotate(90deg)}.portal-entry-detail{display:none;padding:12px 12px 13px;border-left:1px solid rgba(199,155,98,.22);border-right:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}.portal-entry-detail.open{display:block}.portal-entry-detail p{margin:0 0 10px;color:#aaa39a;font-size:.82rem;line-height:1.5}.portal-entry-detail .doc-link{margin-top:7px}.empty-state{padding:17px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#121212;color:#b6afa6}.empty-state strong{display:block;color:#e5ded5;margin-bottom:5px}.empty-state p{margin:0;font-size:.8rem;line-height:1.4}
@media(max-width:390px){.welcome-block h1{font-size:clamp(2.15rem,9.5vw,3rem)}.welcome-block h1 .welcome-line:first-child{font-size:.88em}}

/* V1.5 content structure and live-refresh refinements */
.priority-content small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;max-height:2.9em}
.priority-card{position:relative}.priority-badge{top:13px;right:48px}
.panel-search input,.age-filter-select{font-size:16px}
.age-filter-select{width:100%;padding:11px 38px 11px 13px;border-radius:14px;border:1px solid var(--line);background:#121212;color:#fff;outline:none;appearance:auto}
.age-filter-select:focus{border-color:var(--gold)}
.expandable-body{max-height:5.8em;overflow:hidden;position:relative;transition:max-height .22s ease}
.expandable-card:not(.expanded) .expandable-body:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.9em;background:linear-gradient(transparent,#121212)}
.expandable-card.expanded .expandable-body{max-height:60rem}
.expandable-card.expanded .expandable-body:after{display:none}
.content-expand{border:0;background:none;color:var(--gold2);font-weight:800;font-size:.78rem;padding:7px 0;cursor:pointer}
.content-expand[hidden]{display:none}
.pin-label{display:inline-flex;margin:0 0 7px;padding:3px 7px;border-radius:999px;background:rgba(199,155,98,.13);border:1px solid rgba(199,155,98,.26);color:var(--gold2);font-size:.61rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.event-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;border-bottom:1px solid rgba(255,255,255,.07)}
.event-date{height:62px;min-height:62px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.event-date strong{line-height:.95}.event-date span{line-height:1;margin-top:2px}.event-date em{font-style:normal;font-size:.54rem;line-height:1;margin-top:3px;letter-spacing:.05em;color:#8d867f}
.event-date.coming strong{font-size:.58rem;letter-spacing:.05em;text-transform:uppercase}.event-date.coming span{font-size:.72rem;font-weight:900;color:var(--gold2);text-transform:uppercase}.event-date.coming em{max-width:52px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-content{min-width:0}.event-type-label{display:inline-block;color:var(--gold);font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;margin-bottom:3px}.event-content h3{margin:0 0 4px}.event-short{margin:0 0 5px;color:#b3aca4;font-size:.8rem;line-height:1.4}.event-content .expandable-body p{margin:0;color:#99928b;font-size:.8rem;line-height:1.5}
.event-attachment{border-top:1px solid rgba(255,255,255,.07);margin-top:9px;padding-top:9px}.event-attachment a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 11px;border-radius:11px;background:#181715;color:#eee;text-decoration:none;font-size:.78rem;font-weight:800}.event-attachment b{color:var(--gold2)}
.exam-card{padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#121212;margin-bottom:10px}.exam-card h3{margin:0 0 6px}.exam-card p{margin:0;color:#a69f97;font-size:.82rem;line-height:1.5}
.tile-exams{background:#151515}
.tile-badge[hidden],#exams-tile[hidden]{display:none!important}

/* V1.6 push notification control */
.notification-toggle{position:relative;font-family:inherit}
.notification-toggle.enabled{border-color:rgba(199,155,98,.55);background:rgba(199,155,98,.12);color:var(--gold2)}
.notification-toggle .notification-dot{position:absolute;right:5px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--gold2);box-shadow:0 0 0 2px #080808}
.notification-toggle .notification-dot[hidden]{display:none}


/* V1.7 layout, expandable content and compact mobile header */
.priority-card{height:158px;min-height:158px;margin:8px 0 12px;display:block}
.priority-content{height:100%;justify-content:center;overflow:hidden}
.tile-grid{margin-top:0}
.event-row.expandable-card{align-items:start}
.event-copy-collapsed{max-height:6.6em;overflow:hidden;position:relative}
.event-row:not(.expanded) .event-copy-collapsed:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.8em;background:linear-gradient(transparent,#050505)}
.event-row.expanded .event-copy-collapsed{max-height:none}
.event-row.expanded .event-copy-collapsed:after{display:none}
.announcement-attachment{border-top:1px solid rgba(255,255,255,.07);margin-top:9px;padding-top:9px}
.announcement-attachment a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border-radius:11px;background:#181715;color:#eee;font-size:.78rem;font-weight:800}
@media(max-width:520px){
  .app-header{grid-template-columns:minmax(0,1fr) auto;padding-left:14px;padding-right:14px;column-gap:7px}
  .app-brand{min-width:0}.app-brand img{width:158px;max-width:100%}
  .header-actions{gap:5px;flex-wrap:nowrap}.icon-link{width:35px;height:35px;flex:0 0 35px}.icon-link svg{width:18px;height:18px}
  .contact-sophie{grid-column:1/-1;justify-self:stretch;justify-content:center;max-width:100%;padding:10px 12px;margin-top:1px}
}
@media(max-width:360px){.app-brand img{width:140px}.icon-link{width:33px;height:33px;flex-basis:33px}.header-actions{gap:4px}}


/* V1.8 link + document parity and safe in-app document viewer */
.resource-link{width:100%;display:flex!important;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:0;border-radius:11px;background:#181715;color:#eee!important;text-decoration:none;font:inherit;font-size:.78rem;font-weight:800;line-height:1.3;text-align:left;cursor:pointer;box-sizing:border-box}
.resource-link span{color:inherit!important;font:inherit!important;text-transform:none!important;letter-spacing:0!important}
.resource-link b{color:var(--gold2);font-size:1rem}
.announcement-attachment .resource-link,.event-attachment .resource-link,.portal-entry-detail .resource-link{margin-top:0}
.portal-entry-detail .resource-link+.resource-link{margin-top:7px}
#documentViewer{position:fixed;inset:0;width:100vw;height:100dvh;z-index:10000;background:#050505;overscroll-behavior:contain;touch-action:pan-x pan-y}
.document-viewer-shell{width:100%;height:100%;display:flex;flex-direction:column;background:#0b0b0b;overflow:hidden}
.document-viewer-bar{min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top));background:#111;color:#fff;box-sizing:border-box;flex:none;border-bottom:1px solid rgba(255,255,255,.1)}
.document-viewer-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;text-align:center;min-width:0}
.document-viewer-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.document-close,.document-download,.document-zoom-in,.document-zoom-out,.document-zoom-label{border:0;font:inherit;cursor:pointer;min-height:42px;border-radius:9px}
.document-close{background:transparent;color:#fff;font-size:24px;line-height:1;padding:8px 10px}
.document-download{background:transparent;color:var(--gold2);font-weight:800;padding:8px 7px}
.document-download:disabled{opacity:.55;cursor:wait}
.document-zoom-in,.document-zoom-out,.document-zoom-label{background:#202020;color:#fff;padding:7px 10px;font-weight:800}
.document-zoom-label{min-width:48px;color:var(--gold2);font-size:.74rem}
.document-viewer-content{position:relative;flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px;box-sizing:border-box;background:#2a2a2a}
.document-loading,.document-error{max-width:440px;margin:32px auto;padding:18px;border-radius:14px;background:#111;color:#eee;text-align:center}
.document-error p{color:#aaa39a;line-height:1.45}
.pdf-page{width:max-content;max-width:none;margin:0 auto 12px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.28)}
.pdf-page canvas{display:block}
.document-image-stage{min-width:100%;min-height:100%;display:flex;align-items:flex-start;justify-content:center}
.document-image-stage img{display:block;flex:none;object-fit:contain;transform-origin:top center}
.document-fallback-frame{display:block;width:100%;height:100%;min-height:100%;border:0;background:#fff}
body.document-open{overflow:hidden!important;position:relative}
@media(max-width:620px){.document-viewer-bar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"close title" "actions actions";gap:3px 8px;padding-bottom:7px}.document-close{grid-area:close}.document-viewer-title{grid-area:title;text-align:left}.document-viewer-actions{grid-area:actions;justify-content:space-between}.document-download{margin-left:auto}.document-viewer-content{padding:8px}.pdf-page{margin-bottom:8px}}

/* V1.9 */
.news-item .expandable-body p,
.event-copy-collapsed p{
  white-space:pre-wrap;
}
.timetable-glance-button{
  margin:0 0 16px;
  border:1px solid rgba(199,155,98,.45);
  background:rgba(199,155,98,.10);
}
.event-date.range strong{font-size:.86rem;white-space:nowrap}
.event-date.range.cross-month strong{font-size:.62rem;letter-spacing:.02em}
.event-date.range.cross-month span{font-size:.56rem;letter-spacing:.02em;text-transform:uppercase}
.tile-timetable:before{background-image:linear-gradient(180deg,rgba(6,6,6,.24),rgba(6,6,6,.94)),url('assets/tile-timetable.jpg'),url('assets/tile-timetable.png'),url('assets/title-timetable.png'),url('assets/dancescene-stage.png');background-size:auto,cover,cover,cover,cover;background-position:center,center,center,center,center}
.tile-events:before{background-image:linear-gradient(180deg,rgba(6,6,6,.24),rgba(6,6,6,.94)),url('assets/tile-whats-on.jpg'),url('assets/tile-whats-on.png'),url('assets/title-whats-on.png'),url('assets/dancescene-stage.png');background-size:auto,cover,cover,cover,cover;background-position:center,center,center,center,center}
.tile-portal:before{background-image:linear-gradient(180deg,rgba(6,6,6,.24),rgba(6,6,6,.94)),url('assets/tile-parent-portal.jpg'),url('assets/tile-parent-portal.png'),url('assets/title-parent-portal.png'),url('assets/dancescene-stage.png');background-size:auto,cover,cover,cover,cover;background-position:center,center,center,center,center}
.tile-shop:before{background-image:linear-gradient(180deg,rgba(6,6,6,.24),rgba(6,6,6,.94)),url('assets/tile-shop.jpg'),url('assets/tile-shop.png'),url('assets/title-shop.png'),url('assets/dancescene-stage.png');background-size:auto,cover,cover,cover,cover;background-position:center,center,center,center,center}
.tile-exams:before{background-image:linear-gradient(180deg,rgba(6,6,6,.24),rgba(6,6,6,.94)),url('assets/tile-exams.jpg'),url('assets/tile-exams.png'),url('assets/title-exams.png'),url('assets/dancescene-stage.png');background-size:auto,cover,cover,cover,cover;background-position:center,center,center,center,center}

.priority-card{background-image:linear-gradient(90deg,rgba(9,9,9,.88),rgba(9,9,9,.72)),url('assets/tile-announcements.jpg'),url('assets/tile-announcements.png');background-size:auto,cover,cover;background-position:center,center,center}
