*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Arial,Helvetica,sans-serif;background:#061a33;color:#fff}.screen{height:100vh;display:grid;grid-template-rows:15vh 1fr 7vh;padding:2vh 2vw;gap:1.5vh;background:radial-gradient(circle at 50% -10%,#1871c9 0,#0c4f91 28%,#073461 58%,#041c38 100%)}header{display:flex;align-items:center;justify-content:center;gap:2vw;text-align:center;border-bottom:2px solid #b6934b}header h1{font-size:clamp(28px,3.5vw,64px);letter-spacing:.09em;margin:0}header p{margin:.5vh 0 0;color:#d7bd7b;font-weight:800;letter-spacing:.25em;font-size:clamp(14px,1.4vw,26px)}.ball{width:clamp(54px,5vw,92px);aspect-ratio:1;border-radius:50%;background:#111;border:5px solid #eee;display:grid;place-items:center;font-size:clamp(24px,2.3vw,44px);font-weight:900}.nine{background:#e3c421;color:#111}.content{min-height:0;display:grid;grid-template-columns:1.08fr .92fr;gap:1.6vw}.calendar-card,.events-card{min-height:0;border:1px solid rgba(118,188,255,.42);border-radius:18px;background:rgba(4,24,48,.90);padding:2vh 1.4vw;box-shadow:0 12px 34px #00112699}.cal-head{display:grid;grid-template-columns:60px 1fr 60px;align-items:center}.cal-head h2,.events-card>h2{text-align:center;text-transform:uppercase;margin:.2vh 0 1.4vh;font-size:clamp(22px,2.2vw,40px);letter-spacing:.08em}.cal-head button{border:0;border-radius:10px;background:#0d579b;color:#fff;font-size:34px;height:48px}.week,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:.55vh .4vw}.week span{text-align:center;color:#c8b16f;font-weight:800;font-size:clamp(12px,1.1vw,20px);padding:.6vh 0}.day{position:relative;display:flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(8,48,88,.92);font-size:clamp(16px,1.65vw,30px);font-weight:700;min-height:0}.day.blank{background:transparent}.day.event{outline:3px solid #caa755;background:#0b4f86}.day.event:after{content:'';position:absolute;bottom:9%;width:9px;height:9px;border-radius:50%;background:#e1bd62}.day.today{box-shadow:inset 0 0 0 3px #fff}.calendar{height:calc(100% - 8.5vh);grid-template-rows:repeat(6,1fr)}.events{height:calc(100% - 5vh);display:grid;grid-template-rows:repeat(var(--event-count,1),minmax(0,1fr));gap:.65vh;overflow:hidden}.event-item{display:grid;grid-template-columns:minmax(82px,21%) 1fr;align-items:center;border-left:6px solid #caa755;background:rgba(8,48,88,.92);border-radius:12px;padding:.65vh .85vw;min-height:0;overflow:hidden}.datebox{text-align:center;border-right:1px solid #424852;padding-right:.65vw;min-width:0}.datebox strong{display:block;font-size:clamp(16px,1.75vw,32px);line-height:1.05;color:#e1bd62}.datebox span{display:block;font-size:clamp(10px,.85vw,16px);line-height:1.05;text-transform:uppercase;margin-top:.25vh}.event-copy{padding-left:.85vw;min-width:0;overflow:hidden}.event-copy h3{margin:0 0 .2vh;font-size:clamp(16px,1.55vw,28px);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{font-size:clamp(10px,.92vw,17px);line-height:1.15;color:#d8dce2;display:flex;flex-wrap:wrap;gap:.15vh .65vw;min-width:0}.primary-meta,.details,.director{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.details{flex-basis:100%}.director{color:#e1bd62;font-weight:800}.empty{display:grid;place-items:center;color:#aab0b9;font-size:clamp(18px,1.6vw,30px)}
.events.density-1{--event-count:1}.events.density-2{--event-count:2}.events.density-3{--event-count:3}.events.density-4{--event-count:4}.events.density-5{--event-count:5}.events.density-6{--event-count:6}.events.density-7{--event-count:7}.events.density-8{--event-count:8}.events.density-9{--event-count:9}.events.density-10{--event-count:10}.events.density-11{--event-count:11}.events.density-12{--event-count:12}.events.density-13{--event-count:13}.events.density-14{--event-count:14}.events.density-15{--event-count:15}
.events[class*="density-7"] .event-item,.events.density-8 .event-item,.events.density-9 .event-item,.events.density-10 .event-item,.events.density-11 .event-item,.events.density-12 .event-item{padding:.35vh .7vw;border-left-width:5px}.events.density-7 .datebox strong,.events.density-8 .datebox strong,.events.density-9 .datebox strong,.events.density-10 .datebox strong,.events.density-11 .datebox strong,.events.density-12 .datebox strong{font-size:clamp(14px,1.35vw,24px)}.events.density-7 .datebox span,.events.density-8 .datebox span,.events.density-9 .datebox span,.events.density-10 .datebox span,.events.density-11 .datebox span,.events.density-12 .datebox span{font-size:clamp(9px,.68vw,13px)}.events.density-7 h3,.events.density-8 h3,.events.density-9 h3,.events.density-10 h3,.events.density-11 h3,.events.density-12 h3{font-size:clamp(13px,1.15vw,21px);margin-bottom:.05vh}.events.density-7 .meta,.events.density-8 .meta,.events.density-9 .meta,.events.density-10 .meta,.events.density-11 .meta,.events.density-12 .meta{font-size:clamp(9px,.7vw,13px);line-height:1.05}.events.density-10 .details,.events.density-11 .details,.events.density-12 .details{display:none}
footer{display:flex;justify-content:space-between;align-items:center;color:#c4c8ce;font-size:clamp(12px,1vw,18px);padding:0 .5vw}@media(max-aspect-ratio:1.35){.content{grid-template-columns:1fr 1fr}.screen{padding:1.5vh 1.2vw}}

/* V12: extra-compact layout for 13-15 upcoming events */
.events.density-13,.events.density-14,.events.density-15{gap:.28vh}
.events.density-13 .event-item,.events.density-14 .event-item,.events.density-15 .event-item{grid-template-columns:minmax(70px,19%) 1fr;padding:.16vh .55vw;border-left-width:4px;border-radius:8px}
.events.density-13 .datebox,.events.density-14 .datebox,.events.density-15 .datebox{padding-right:.45vw}
.events.density-13 .datebox strong,.events.density-14 .datebox strong,.events.density-15 .datebox strong{font-size:clamp(12px,1.05vw,19px);line-height:1}
.events.density-13 .datebox span,.events.density-14 .datebox span,.events.density-15 .datebox span{font-size:clamp(8px,.55vw,11px);line-height:1;margin-top:.08vh}
.events.density-13 .event-copy,.events.density-14 .event-copy,.events.density-15 .event-copy{padding-left:.55vw}
.events.density-13 h3,.events.density-14 h3,.events.density-15 h3{font-size:clamp(11px,.92vw,17px);line-height:1;margin:0}
.events.density-13 .meta,.events.density-14 .meta,.events.density-15 .meta{font-size:clamp(8px,.57vw,11px);line-height:1;gap:0 .45vw}
.events.density-13 .details,.events.density-14 .details,.events.density-15 .details{display:none}
.events.density-13 .director,.events.density-14 .director,.events.density-15 .director{flex-basis:auto}
