/* Desktop uses the available window height; phones retain a natural scroll layout. */
:root{--scene-height:100svh}
.site-shell{width:min(1780px,78vw);height:100svh;min-height:100svh;max-height:100svh;margin:0 auto;padding:clamp(24px,7svh,90px) 0 clamp(28px,5svh,65px);display:flex;align-items:stretch}
.site-shell main{padding:0;display:flex;min-width:0;min-height:0;height:100%}
.schedule-board{width:100%;height:100%;min-height:0;grid-template-columns:minmax(0,1fr) clamp(290px,23vw,360px);gap:0}
.calendar-section{min-height:0;min-width:0}
.paper-calendar{height:100%;min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;padding:clamp(14px,2svh,26px) clamp(10px,1.2vw,20px) 0}
.month-header{min-height:0;height:auto;padding:0 165px 12px;display:flex;flex-direction:row;justify-content:center;gap:10px}
.month-title h1{font-size:clamp(42px,5.4svh,70px);line-height:1}
.month-title>span{font-size:clamp(16px,1.7svh,21px);margin-top:5px;line-height:1.2}
.month-controls{position:absolute;left:auto;right:0;top:14px;bottom:auto;margin:0;gap:7px}
.month-controls button{font-size:clamp(13px,1.5svh,16px);min-height:36px;padding:7px 11px}
.arrow-controls{gap:5px}.arrow-controls button{font-size:23px;min-width:36px;padding:5px 9px;line-height:1}
.calendar-options{padding:10px 0 11px;display:flex;flex-wrap:nowrap;justify-content:space-between;gap:10px}
.sample-label{font-size:10px;padding:3px 6px}
.timezone-control{font-size:13px;gap:8px}.timezone-control select{font-size:13px;max-width:250px;padding:7px 9px}
.weekday-row{padding:9px 0}.weekday-row span{font-size:clamp(12px,1.5svh,16px)}
.calendar-days{min-height:0;flex:none;grid-auto-rows:minmax(0,1fr)}
.day{height:auto;min-height:0;padding:0}.day-number{font-size:clamp(30px,4.2svh,54px)}
.day:before{height:75%;max-height:100%;width:78%}
.paper-footer{min-height:0;padding:11px 0}.legend{gap:22px;flex-wrap:wrap}.legend li{font-size:clamp(12px,1.5svh,16px)}.legend i{width:13px;height:12px}
.corkboard{height:100%;min-height:0;padding:clamp(15px,2.1svh,27px) clamp(12px,1.1vw,20px)}
.corkboard #upcoming-list{height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(16px,2.6svh,30px)}
.pinned-note{min-height:0;min-width:0;display:flex;flex-direction:column;padding:clamp(12px,1.7svh,23px) clamp(13px,1.2vw,21px) clamp(11px,1.5svh,20px)}
.pinned-top{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:9px;margin:0 0 4px;min-width:0}
.pinned-weekday{font:600 clamp(22px,2.7svh,35px)/1.05 Studio,"Trebuchet MS",sans-serif}
.pinned-day{font:600 clamp(39px,5svh,65px)/.95 Studio,"Trebuchet MS",sans-serif}
.pinned-kind{font-size:clamp(12px,1.45svh,18px);line-height:1.15;letter-spacing:.4px;margin:3px 0 0;opacity:1}
.pinned-title,.feature-note .pinned-title{font-size:clamp(26px,3.4svh,43px);line-height:1.1;margin:clamp(9px,1.6svh,20px) 0 12px;flex:1;min-height:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.pinned-bottom{margin-top:auto;padding-top:clamp(7px,1svh,13px);font-size:clamp(17px,2.1svh,27px);line-height:1.15;align-items:flex-end;gap:7px;min-height:0}
.pinned-time{white-space:pre-line;font-weight:600}.pinned-bottom .arrow{font-size:clamp(19px,2.1svh,27px);flex:none}
@media(min-width:761px) and (max-width:1250px){.site-shell{width:91vw}.schedule-board{grid-template-columns:minmax(0,1fr) clamp(270px,27vw,325px)}.month-header{padding-inline:145px}.month-title h1{font-size:clamp(41px,5.2svh,58px)}.month-controls{gap:4px}.month-controls button{font-size:13px;padding:6px 9px}.arrow-controls button{font-size:21px;min-width:32px}.timezone-control select{max-width:210px}.pinned-title,.feature-note .pinned-title{font-size:clamp(25px,3.4svh,36px)}}
@media(min-width:761px) and (max-width:1050px){.month-header{padding:0 0 8px;flex-direction:column;gap:8px}.month-title h1{font-size:clamp(37px,4.5svh,50px)}.month-title>span{font-size:16px}.month-controls{position:static;justify-content:center}.month-controls button{min-height:31px;padding:5px 9px}.calendar-options{flex-wrap:wrap;justify-content:center;gap:7px;padding:7px 0 8px}.timezone-control{font-size:12px}.timezone-control select{font-size:12px;max-width:205px}.weekday-row{padding:6px 0}}
@media(min-width:761px) and (max-height:700px){.site-shell{padding-top:28px;padding-bottom:24px;width:min(1780px,86vw)}.paper-calendar{padding-top:12px}.month-header{padding-bottom:8px}.month-title h1{font-size:38px}.month-title>span{font-size:15px;margin-top:3px}.month-controls{top:6px}.month-controls button{min-height:30px;font-size:12px;padding:5px 8px}.arrow-controls button{font-size:19px;min-width:30px}.calendar-options{padding:6px 0}.sample-label{font-size:9px}.timezone-control,.timezone-control select{font-size:12px}.timezone-control select{padding:5px 7px}.weekday-row{padding:6px 0}.weekday-row span{font-size:12px}.paper-footer{padding:7px 0}.legend li{font-size:12px}.day-number{font-size:29px}.corkboard{padding:14px 12px}.corkboard #upcoming-list{gap:14px}.pinned-note{padding:10px 12px}.pinned-weekday{font-size:20px}.pinned-day{font-size:34px}.pinned-kind{font-size:11px;margin-top:1px}.pinned-title,.feature-note .pinned-title{font-size:23px;margin:7px 0}.pinned-bottom{font-size:15px;padding-top:6px}.pinned-bottom .arrow{font-size:18px}}
@media(max-width:760px){.site-shell{width:calc(100% - 28px);height:auto;min-height:100svh;max-height:none;padding:110px 0 160px;display:block}.site-shell main{height:auto;display:block;padding:0}.schedule-board{height:auto;grid-template-columns:1fr;gap:0}.paper-calendar{height:auto;display:grid;grid-template-rows:auto auto auto auto auto;padding:22px 10px 0}.month-header{padding:0 8px 14px;min-height:0;flex-direction:column;gap:10px}.month-title h1{font-size:49px}.month-title>span{font-size:18px}.month-controls{position:static;justify-content:center;gap:8px}.month-controls button{font-size:15px;min-height:38px;padding:7px 12px}.arrow-controls button{font-size:23px}.calendar-options{flex-wrap:wrap;justify-content:center;padding:0 0 12px;gap:9px}.timezone-control{font-size:12px}.timezone-control select{font-size:13px;max-width:215px}.weekday-row span{font-size:12px}.day{height:70px;min-height:70px}.day-number{font-size:33px}.paper-footer{padding:13px 0}.legend{gap:15px}.legend li{font-size:13px}.corkboard{height:auto;padding:27px 20px}.corkboard #upcoming-list{height:auto;display:flex;gap:27px;flex-direction:column}.pinned-note{min-height:235px;display:flex;padding:21px 20px 18px}.pinned-weekday{font-size:28px}.pinned-day{font-size:54px}.pinned-kind{font-size:15px}.pinned-title,.feature-note .pinned-title{font-size:34px;margin:17px 0 20px;flex:1;min-height:70px}.pinned-bottom{font-size:22px;padding-top:12px}.pinned-bottom .arrow{font-size:24px}}
@media(max-width:390px){.site-shell{width:calc(100% - 20px)}.paper-calendar{padding-inline:6px}.day{height:63px;min-height:63px}.day-number{font-size:29px}.legend li{font-size:12px}.pinned-note{padding-inline:16px}.pinned-weekday{font-size:26px}.pinned-day{font-size:50px}.pinned-title,.feature-note .pinned-title{font-size:32px}.pinned-bottom{font-size:21px}}

/* Reference-matched calendar masthead and platform detail cards. */
.paper-calendar{grid-template-rows:auto auto minmax(0,1fr) auto}
.month-header{display:block;position:relative;padding:0 0 18px;min-height:clamp(122px,14svh,175px)}
.month-title h1{font-size:clamp(53px,6.8svh,85px);line-height:1.02}
.month-title>span{font-size:clamp(18px,2.1svh,27px);margin-top:9px}
.month-controls{position:absolute;top:5px;right:0;left:auto;bottom:auto;gap:8px}
.month-controls button{font-size:clamp(15px,1.8svh,21px);min-height:clamp(39px,4.8svh,57px);padding:8px 14px;border-radius:6px}
.arrow-controls{gap:7px}.arrow-controls button{font-size:clamp(23px,2.8svh,32px);min-width:44px;padding:5px 12px}
.month-header .timezone-control{position:absolute;bottom:13px;right:0;font-size:clamp(12px,1.4svh,16px);gap:9px}
.month-header .timezone-control select{width:clamp(180px,15vw,295px);max-width:295px;font-size:clamp(12px,1.4svh,16px);padding:8px 10px}
.header-sample{position:absolute;left:0;bottom:16px;font-size:9px}
dialog{width:min(660px,calc(100% - 32px));max-height:90dvh;border-radius:19px}
.dialog-inner{padding:27px 34px 23px}
.dialog-inner>h2{font-family:var(--hand);font-size:clamp(32px,3.5vw,49px);line-height:1.12;font-weight:600;margin:0 24px 0 0;letter-spacing:-.5px}
.dialog-inner>h2 sup{font-size:.48em;vertical-align:super;margin-left:1px}
.close-dialog{top:26px;right:18px;font-size:31px;line-height:1}
.detail-kind{display:block;font-size:20px;line-height:1.2;letter-spacing:1px;margin-top:12px;color:#a18a6c}
.detail-event h3{font-family:var(--hand);font-size:clamp(35px,3.3vw,46px);font-weight:600;line-height:1.12;margin:clamp(26px,5svh,46px) 0 24px}
.detail-time{font-size:clamp(23px,2.5vw,30px);line-height:1.2;font-weight:600}
.detail-event p{font-size:20px;line-height:1.65;margin:25px 0 0}
.platform-links{display:flex;gap:16px;margin-top:clamp(30px,6svh,62px)}
.detail-link{display:flex;align-items:center;justify-content:center;position:relative;gap:12px;flex:1;min-width:0;margin:0;padding:13px 25px;border:0;border-radius:12px;color:#fff;font:600 30px/1.3 Studio,"Trebuchet MS",sans-serif;transition:filter .18s,transform .18s}
.detail-link span{font:20px/1 "Segoe UI",sans-serif;position:absolute;right:15px}
.detail-link.platform-twitch{background:#9146ff}.detail-link.platform-youtube{background:#f00}
.detail-link:hover{filter:brightness(.9);transform:translateY(-2px)}
.detail-event .detail-footnote{font-size:11px!important;line-height:1.4;margin:17px 0 0;color:#897864!important}
@media(min-width:761px) and (max-width:1100px){.month-header{min-height:170px;padding-bottom:55px}.month-title h1{font-size:50px}.month-title>span{font-size:19px;margin-top:5px}.month-controls{top:0}.month-controls button{min-height:33px;font-size:13px;padding:5px 8px}.arrow-controls button{min-width:32px;font-size:20px;padding:5px 8px}.month-title{text-align:left}.month-header .timezone-control{bottom:12px;font-size:12px}.month-header .timezone-control select{font-size:12px;width:200px;padding:6px 8px}.header-sample{font-size:8px}}
@media(min-width:1101px) and (max-width:1450px){.month-header{min-height:137px}.month-title h1{font-size:58px}.month-title>span{font-size:21px}.month-header .timezone-control select{width:205px}.month-controls button{font-size:15px;padding:7px 10px}.arrow-controls button{font-size:24px;min-width:38px}}
@media(min-width:761px) and (max-height:700px){.month-header{min-height:112px}.month-title h1{font-size:46px}.month-title>span{font-size:17px;margin-top:5px}.month-controls button{min-height:32px;font-size:13px;padding:5px 9px}.arrow-controls button{font-size:21px;min-width:33px}.month-header .timezone-control{bottom:10px;font-size:11px}.month-header .timezone-control select{font-size:11px;padding:5px 8px}.header-sample{bottom:14px;font-size:8px}}
@media(max-width:760px){.paper-calendar{grid-template-rows:auto auto auto auto}.month-header{min-height:0;display:flex;align-items:center;padding:0 0 16px;gap:12px}.month-title{text-align:center}.month-title h1{font-size:49px}.month-title>span{font-size:18px;margin-top:4px}.month-controls{position:static;gap:7px}.month-controls button{font-size:15px;min-height:37px;padding:6px 12px}.arrow-controls button{font-size:23px;min-width:38px}.month-header .timezone-control{position:static;font-size:12px;gap:6px;order:3}.month-header .timezone-control select{font-size:12px;width:200px;padding:7px;max-width:200px}.header-sample{position:static;font-size:8px;order:4}.dialog-inner{padding:28px 23px 21px}.dialog-inner>h2{font-size:33px;margin-right:15px}.detail-kind{font-size:16px}.detail-event h3{font-size:34px;margin-top:28px;margin-bottom:20px}.detail-time{font-size:24px}.detail-event p{font-size:17px;margin-top:21px}.platform-links{margin-top:30px;gap:10px}.detail-link{font-size:25px;padding:12px 24px 12px 15px;border-radius:10px}.detail-link span{font-size:16px;right:10px}.close-dialog{right:9px;top:22px;font-size:28px}}

@media(min-width:1101px){.month-header .timezone-control{bottom:43px}}
@media(min-width:1101px) and (max-width:1450px){.month-header .timezone-control{bottom:38px}}
@media(min-width:761px) and (max-width:1100px){.month-title{text-align:center}}
@media(min-width:761px) and (max-height:700px){.month-header .timezone-control{bottom:36px}}

/* Balanced month spacing and an optional upcoming-livestream countdown. */
.detail-kind,.detail-event .detail-description{padding-left:3px}
.detail-schedule{display:block;margin-top:clamp(26px,5svh,46px)}
.detail-schedule h3{margin:0 0 24px}
.detail-schedule.has-countdown{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:24px;align-items:center}
dialog:has(.has-countdown){width:min(810px,calc(100% - 32px))}
.stream-countdown{background:#a43831;border-radius:15px;padding:20px 34px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#fff;text-align:center;font:600 30px/1.12 Studio,"Trebuchet MS",sans-serif;-webkit-text-stroke:2.2px #000;paint-order:stroke fill;filter:drop-shadow(0 2px 0 #0001)}
.stream-countdown[hidden]{display:none}
.countdown-value{font-size:34px;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(min-width:761px){
 .paper-calendar{--header-height:clamp(122px,14svh,175px);--paper-top:clamp(14px,2svh,26px)}
 .month-header{height:var(--header-height);min-height:var(--header-height);padding:0;display:flex;align-items:stretch;justify-content:center;flex-direction:column}
 .month-title{position:relative;top:calc(var(--paper-top) / -2)}
 .month-header .timezone-control{bottom:24px}
}
@media(min-width:1101px) and (max-width:1450px){.paper-calendar{--header-height:137px}.month-header .timezone-control{bottom:20px}}
@media(min-width:761px) and (max-width:1100px){.paper-calendar{--header-height:170px}.month-header{padding-bottom:45px}.month-title{top:0}.month-header .timezone-control{bottom:12px}}
@media(min-width:761px) and (max-height:700px){.paper-calendar{--header-height:112px;--paper-top:12px}.month-header .timezone-control{bottom:17px}}
@media(max-width:760px){.detail-schedule{margin-top:28px}.detail-schedule h3{margin:0 0 20px}.detail-schedule.has-countdown{grid-template-columns:minmax(0,1fr) max-content;gap:13px}.has-countdown h3{font-size:29px}.stream-countdown{font-size:23px;padding:18px 26px;border-radius:12px;-webkit-text-stroke:1.8px #000}.countdown-value{font-size:25px}}
@media(max-width:430px){.detail-schedule.has-countdown{grid-template-columns:1fr}.stream-countdown{justify-self:start;max-width:100%;flex-direction:column;gap:8px}.countdown-value{font-size:25px}}
@media(min-width:761px) and (max-width:1100px){.month-header{padding-bottom:0}.month-title{top:calc(var(--paper-top) / -2)}}

.header-sample[hidden]{display:none}.day.mixed-events:before{background:linear-gradient(115deg,#74c59a 0 49%,#ffca42 51% 100%)}

/* Keep complete countdowns inside their card, including two/three-digit days. */
.stream-countdown{box-sizing:border-box;min-width:max-content}.countdown-label{white-space:nowrap}
@media(max-width:760px){.detail-schedule.has-countdown{grid-template-columns:1fr}.stream-countdown{justify-self:start;max-width:100%}}
