
@font-face{font-family:'Titling';src:url('assets/fonts/TitlingGothicFBComp-Standard.otf') format('opentype');font-display:swap}
@font-face{font-family:'Mont';src:url('assets/fonts/Montserrat-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:'Mont';src:url('assets/fonts/Montserrat-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Mont';src:url('assets/fonts/Montserrat-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'Over';src:url('assets/fonts/Overpass-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--red:#ec1c24;--gold:#f1be7d;--ink:#141416;--mute:#55555c;--line:#e4e4e7}
*{box-sizing:border-box} body{margin:0;background:#fff;color:var(--ink);font-family:'Over',Arial,sans-serif}
.mk{background:#141416;color:#c7c7cd;font:600 12px/1.5 'Mont';padding:8px 16px;text-align:center}
.hero{position:relative;color:#fff;padding:26px 24px 120px;min-height:470px;clip-path:polygon(0 0,100% 0,100% calc(100% - 80px),0 100%);margin-bottom:-34px;overflow:hidden;background:#000}
.hero .ph{position:absolute;inset:0;background:var(--hero) center/cover}
/* Shading over the city photo: the May 2026 schedule site's own gradients, so the
   logo and city name read on any photo (dark left to right, darker top and bottom). */
.hero .sh{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,0.85) 0%,rgba(0,0,0,0.55) 45%,rgba(0,0,0,0.15) 100%),linear-gradient(180deg,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,0) 70%,rgba(0,0,0,0.5) 100%)}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(236,28,36,0.18) 0%,transparent 55%),radial-gradient(ellipse at bottom left,rgba(241,191,125,0.06) 0%,transparent 50%);pointer-events:none;z-index:1}
@media (max-width:600px){.hero .sh{background:linear-gradient(180deg,rgba(0,0,0,0.55) 0%,rgba(0,0,0,0.35) 60%,rgba(0,0,0,0.7) 100%)} .hero .logo{height:42px}}
.hero .in{position:relative;z-index:2;max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:10px;min-height:324px;justify-content:flex-end}
.hero .logo{position:absolute;top:0;left:0;height:52px;max-width:60%;object-fit:contain;object-position:left center}
.eb{font:700 11px 'Mont';letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.hero .city{font-family:'Titling';font-size:clamp(64px,11vw,128px);line-height:.86;letter-spacing:.08em;text-transform:uppercase}
.hero .row{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.hero .st{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:24px}
.hero .dt{font:700 14px 'Mont';letter-spacing:.12em;text-transform:uppercase}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.tabs{position:relative;z-index:3;display:flex;gap:8px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:7px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.tab{flex:1;border:0;background:transparent;font:600 14px 'Mont';color:var(--mute);padding:13px 10px;border-radius:9px;cursor:pointer}
.tab.on{background:var(--red);color:#fff} .tab .s{display:none}
.panel{padding:26px 0 10px}
.pe{font:700 11px 'Mont';letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
h2{font-family:'Titling';font-weight:400;font-size:42px;letter-spacing:.08em;text-transform:uppercase;margin:10px 0 6px;line-height:.95}
.lede{color:var(--mute);margin:0 0 18px;max-width:62ch}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.tools{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:0 0 22px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.fld{display:flex;flex-direction:column;gap:6px} .fld>span{font:700 10px 'Mont';letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.fld select{font:600 14px 'Mont';height:40px;border:1px solid var(--line);border-radius:10px;padding:0 34px 0 12px;background:#fff;color:var(--ink);min-width:210px}
.tools .pdf{margin-left:auto;height:40px}
@media (max-width:680px){.fld{flex:1 1 100%} .fld select{width:100%} .tools .pdf{margin-left:0;flex:1 1 100%}}
.seg{display:flex;gap:6px;flex-wrap:wrap} .sb{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font:700 11px 'Mont';letter-spacing:.08em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.sb.on{background:var(--ink);border-color:var(--ink);color:#fff}
.pdf{margin-left:auto;border:1.5px solid var(--red);background:#fff;color:var(--red);border-radius:999px;padding:9px 18px;font:700 11px 'Mont';letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.pdf.solid{background:var(--red);color:#fff}
.levels{display:flex;border-bottom:1px solid var(--line);padding:8px 0 10px;margin-bottom:6px} .lv{flex:1;display:flex;flex-direction:column;align-items:center;border-left:1px solid var(--line)} .lv:first-child{border-left:0}
.lv b{font:700 11px 'Mont';letter-spacing:.14em;text-transform:uppercase} .lv span{font-size:13px;color:var(--mute)}
.v14{zoom:1.5}
/* generated by build-hub.py from the EPS printout (js/views/schedule-print.js SP_CSS) */
.v14 .sched{margin:6px 0.45in 0; flex:1;}
.v14 table tr.daybar:first-child td{padding-top:0;}
.v14 table{width:100%; border-collapse:collapse; table-layout:fixed;}
.v14 col.tc{width:1in;}
.v14 td,.v14 th{border-bottom:1px solid #c4c4ca; padding:2px 4px; vertical-align:middle; text-align:center;}
.v14 td + td,.v14 th + th{border-left:1px solid #c4c4ca;}
.v14 tr.daybar td{background:#fff; color:#ec1c24; text-align:left; padding:8px 0 1px; border:0; border-bottom:2px solid #ec1c24;}
.v14 tr.daybar .day{font-family:'Titling'; font-size:21px; letter-spacing:.08em; text-transform:uppercase;}
.v14 tr.daybar .date{font-family:'Mont'; font-weight:600; font-size:8px; letter-spacing:.14em; text-transform:uppercase; margin-left:10px; color:#141416;}
.v14 tr.cols th{background:#141416; color:#fff; padding:4px 4px 3px; border:0; border-bottom:1.5px solid #141416;}
.v14 tr.cols th + th{border-left:1px solid #55555c;}
.v14 tr.cols th b{display:block; font-family:'Mont'; font-weight:700; font-size:8.5px; letter-spacing:.12em; text-transform:uppercase;}
.v14 tr.cols th span{display:block; font-size:7.5px; color:#fff; margin-top:1px;}
.v14 td.t{font-family:'Mont'; font-weight:700; font-size:9px; color:#ec1c24; text-align:left; white-space:nowrap; letter-spacing:.02em;}
.v14 .dash{color:#e88; margin:0 1px;}
.v14 .cn{font-family:'Mont'; font-weight:600; font-size:9px; line-height:normal;}
.v14 .fac{font-size:8.5px; color:#141416; line-height:normal; margin-top:1px;}
.v14 .fac + .own,.v14 .fac + .note{margin-top:0;}
.v14 .grp{font-family:'Mont'; font-weight:700; font-size:6px; letter-spacing:.14em; text-transform:uppercase; color:#141416; margin-bottom:1px;}
.v14 .note{font-size:6.5px; color:#141416; font-style:italic; margin-top:1px;}
.v14 .own{font-family:'Mont'; font-weight:700; font-size:6.5px; color:#ec1c24; margin-top:1px;}
.v14 .gn{font-family:'Mont'; font-weight:700; font-style:italic; font-size:6.5px; color:#ec1c24; text-transform:uppercase; letter-spacing:.02em; margin-top:1px;}
.v14 .gni{font-family:'Mont'; font-weight:700; font-style:italic; font-size:7px; color:#ec1c24; text-transform:uppercase; letter-spacing:.02em;}
.v14 .gwho{font-weight:700; font-style:italic; text-transform:uppercase;}
.v14 .ibody{margin:0.18in 0.45in 0; font-family:'Mont'; color:#141416;}
.v14 .isec{margin-bottom:12px; break-inside:avoid;}
.v14 .ihead{background:#141416; color:#fff; font-family:'Mont'; font-weight:700; font-size:9px; letter-spacing:.14em; text-transform:uppercase; text-align:center; padding:6px 8px;}
.v14 .ihead.red{background:#ec1c24;}
.v14 .ibox{border:1px solid #c9c9cf; border-top:0; padding:8px 10px; font-size:9px; line-height:1.45;}
.v14 .ibox.center{text-align:center;}
.v14 .ibox .big{font-family:'Mont'; font-weight:700; font-size:12px;}
.v14 .ibox p{margin:0 0 6px;}
.v14 .ibox p:last-child{margin-bottom:0;}
.v14 .ititle{font-weight:700; text-transform:uppercase;}
.v14 .itable{width:100%; border-collapse:collapse; font-size:8.5px;}
.v14 .itable th{font-weight:700; font-style:italic; text-transform:uppercase; font-size:7.5px; padding:5px 6px; border:1px solid #c9c9cf; background:#fff;}
.v14 .itable td{padding:6px; border:1px solid #c9c9cf; text-align:center; vertical-align:middle;}
.v14 .itable td.names{font-weight:700; font-style:italic; text-transform:uppercase; font-size:8px;}
.v14 .itable tr.iday td{background:#e9e9ec; font-weight:700; font-style:italic; text-transform:uppercase;}
.v14 .inames{columns:2; column-gap:24px; font-size:9px; line-height:1.6;}
.v14 .inames div{break-inside:avoid;}
.v14 .inames .num{display:inline-block; width:22px; color:#ec1c24; font-weight:700;}
.v14 .ilist .lab{font-weight:700;}
.v14 .muted{color:#141416; font-weight:inherit; font-style:italic;}
.v14 .pill{display:flex; width:max-content; max-width:100%; margin-left:auto; margin-right:auto; align-items:center; gap:3px; border:1px solid #fbf1e2; background:#fbf1e2; border-radius:999px; padding:2px 7px; font-family:'Mont'; font-weight:600; font-size:5.5px; letter-spacing:.03em; white-space:nowrap; text-transform:uppercase; color:#141416; margin-bottom:2px;}
.v14 .pill i{width:4px; height:4px; border-radius:50%; background:#f1be7d; display:inline-block; flex:none;}
.v14 .sep{height:4px;}
.v14 td.fri{padding:0; border:0;}
.v14 .fribox{display:flex; align-items:stretch;}
.v14 td.lin.linc{text-align:center;}
.v14 td.lin.linc .lh{justify-content:center;}
.v14 > table > tbody > tr:has(+ tr.daybar) > td,.v14 > table > tbody > tr:last-child > td{border-bottom:2px solid #ec1c24;}
.v14 .frit tr:last-child td{border-bottom:0;}
.v14 .frit{flex:1;}
.v14 .frit td{border-bottom:1px solid #c4c4ca;}
.v14 .agebox{width:1.9in; flex:none; text-align:left; padding:0 0 0 8px; display:flex;}
.v14 .agebox .abx{flex:1; display:flex; flex-direction:column; justify-content:space-between;}
.v14 .abx{background:#f2f2f3; border-radius:5px; padding:6px 7px 6px;}
.v14 .abt{font-family:'Titling'; font-size:15px; letter-spacing:.04em; text-transform:uppercase; color:#ec1c24; line-height:1; padding-bottom:1px; border-bottom:1px solid #c9c9cf; margin-bottom:4px;}
.v14 .abr{background:#fff; border-radius:4px; padding:4px 5px; margin-top:3px; display:flex; justify-content:space-between; align-items:baseline; gap:4px;}
.v14 .abr .abl{display:block; font-family:'Mont'; font-weight:700; font-size:6.6px; letter-spacing:.02em; white-space:nowrap; text-transform:uppercase; color:#141416;}
.v14 .abr .aba{display:block; font-family:'Mont'; font-weight:600; font-size:6.6px; letter-spacing:.02em; text-transform:uppercase; color:#ec1c24; line-height:1; white-space:nowrap; text-align:right;}
.v14 .abr .abl{text-align:left;}
.v14 .abn{font-size:6.5px; color:#141416; margin-top:4px;}
.v14 td.spaud{background:#ececef;}
.v14 .ages{font-family:'Over'; font-weight:400; font-size:7px; font-style:italic; color:#141416; margin-left:2px; white-space:nowrap;}
.v14 .cellsplit{border-top:1px solid #c4c4ca; margin:3px -4px 0; padding-top:3px;}
.v14 td.full .ft,.v14 td.lin .ft{font-family:'Mont'; font-weight:600; font-size:9px;}
.v14 .ft-sub{font-family:'Over'; font-weight:400; font-size:7px; color:#141416;}
.v14 .note.locn{font-size:7.5px;}
.v14 td.full .fs,.v14 td.lin .fs{font-size:7px; color:#141416; margin-top:1px;}
.v14 td.lin{text-align:left;}
.v14 .ft.blk{display:block;}
.v14 .lh{display:flex; justify-content:space-between; gap:8px;}
.v14 .with{font-family:'Over'; font-weight:400; color:#141416;}
.v14 .loc{font-size:7px; color:#141416; white-space:nowrap;}
.v14 td.lunch{background:#ec1c24; color:#fff;}
.v14 td.lunch .lt{font-family:'Titling'; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:#fff; line-height:1;}
.v14 td.lunch .lt .lin2{font-family:'Over'; font-weight:600; font-size:8.5px; letter-spacing:0; text-transform:none; font-style:italic; margin-left:5px; vertical-align:1px; color:#fff;}
.v14 td.lunch .lsub .muted{color:#fff;}
.v14 td.lunch .ls{font-size:7px; color:#141416;}
.v14 td.lunch .lsub{font-size:7.5px; color:#fff; font-weight:700; margin-top:1px;}


.cards{display:none}
.dayh{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--red);margin:22px 0 10px;padding-bottom:2px}
.dayh b{font-family:'Titling';font-weight:400;font-size:30px;letter-spacing:.08em;text-transform:uppercase;color:var(--red)} .dayh span{font:700 11px 'Mont';letter-spacing:.14em;text-transform:uppercase}
.card{display:grid;grid-template-columns:76px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.tm{font:700 14px 'Mont';color:var(--red);white-space:nowrap} .tm .tn{display:block;font:700 14px 'Mont';color:var(--red);margin-top:4px} .tm .to{display:block;font-size:11px;color:var(--mute);margin-top:2px}
.nm{font:700 15px/1.3 'Mont'} .sub{font-size:14px;color:var(--mute)} .lvl{font:700 10px 'Mont';letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-top:8px} .lvl:first-child{margin-top:0}
.aud{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:1px 8px;font:700 9px 'Mont';letter-spacing:.1em;text-transform:uppercase;margin:3px 0} .aud i{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.lunch .nm{font-family:'Titling';font-weight:400;font-size:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--red)} .card.lunch{box-shadow:inset 3px 0 0 var(--red);padding-left:10px}
.ctl{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
.ctl label{font:700 11px 'Mont';letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:8px}
.search{width:100%;height:46px;border-radius:10px;border:1px solid var(--line);padding:0 14px;font:16px 'Over'}
.cnt{font:600 12px 'Mont';color:var(--mute);margin-left:auto}
table.sc{width:100%;border-collapse:collapse;table-layout:fixed} table.sc th:nth-child(1){width:110px} table.sc th:nth-child(2){width:80px} table.sc th:nth-child(4){width:30%} table.sc th:nth-child(5){width:130px} table.sc td{overflow-wrap:anywhere} table.sc th{font:700 10px 'Mont';letter-spacing:.12em;text-transform:uppercase;text-align:left;border-bottom:1.5px solid var(--ink);padding:8px}
table.sc td{border-bottom:1px solid var(--line);padding:9px 8px;vertical-align:top;font-size:14px} table.sc td.t{font:700 14px 'Mont';color:var(--red);white-space:nowrap} table.sc td b{font:700 14px 'Mont'} table.sc .dn{font-size:12px;color:var(--mute);margin-top:2px}
tr.hl td{background:#fbf1e2}
.scards{display:none}
.wp{display:flex;justify-content:center;background:#000;border-radius:18px;padding:0;overflow:hidden} .wp .ph{width:100%;max-width:430px} @media (max-width:680px){.wp{margin:0 -20px;border-radius:0}}
.wpl{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}
@media (min-width:900px){.wpl{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.wpl .who{display:flex;gap:16px;align-items:flex-end} .wpl .who img{width:120px;border-radius:12px;background:#f4f4f5}
.wpt{font-family:'Titling';font-weight:400;font-size:38px;letter-spacing:.08em;text-transform:uppercase;line-height:.95;margin:14px 0 10px} .wpt span{color:var(--red)}
.wpx p{margin:0 0 12px;line-height:1.6;font-size:16px} .wpx .sig{height:46px;filter:invert(1);margin-top:4px}
.rem{align-self:start;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:14px;padding:16px} .rem b{display:block;font:700 13px 'Mont';margin-top:10px} .rem b:first-of-type{margin-top:6px} .rem p{margin:2px 0 0;color:var(--mute);line-height:1.5;font-size:15px}
.acc{border-bottom:1px solid var(--line)} .acc>button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:none;border:0;padding:14px 0;font-family:'Titling';font-size:24px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);cursor:pointer;text-align:left}
.acc>button i{font-style:normal;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 14px 'Mont';color:var(--red);flex:none}
.acc .in{padding:0 0 16px} .acc .in .intro{font:600 15px/1.55 'Over';margin:0 0 10px} .acc .in b{display:block;font:700 13px 'Mont';margin-top:10px} .acc .in p{margin:2px 0 0;color:var(--mute);line-height:1.55;font-size:15px}
.lvt{width:100%;border-collapse:collapse;margin-top:6px} .lvt td{padding:12px 4px;border-bottom:1px solid var(--line)} .lvt td:first-child{font-family:'Titling';font-size:22px;letter-spacing:.08em;text-transform:uppercase} .lvt td:last-child{text-align:right;font:700 13px 'Mont';color:var(--red)}
.jump{font:700 11px 'Mont';letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.jump select{font:600 15px 'Over';height:42px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:#fff;color:var(--ink);min-width:230px}
.wban{position:relative;border-radius:18px;overflow:hidden;min-height:300px;background:#000 url('welcome-packet/assets/backgrounds/ash-red-black-bg.jpg') center/cover;display:flex;align-items:flex-end;margin-top:6px}
.wban img{position:absolute;right:4%;bottom:0;height:96%;max-width:60%;object-fit:contain;object-position:bottom right}
.wban .tx{position:relative;padding:24px;display:flex;flex-direction:column;gap:4px}
.wban .tx .a{font:700 11px 'Mont';letter-spacing:.16em;text-transform:uppercase;color:var(--gold)} .wban .tx .b{font:800 18px 'Mont';letter-spacing:.08em;text-transform:uppercase;color:#fff}
.wlet{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin-top:20px} @media (min-width:900px){.wlet{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}
.wlet .sig{height:50px;margin-top:2px}
.gsec{margin-top:34px;scroll-margin-top:16px}
.footer{border-top:1px solid var(--line);margin-top:30px;padding:22px 0 50px;color:var(--mute);font:600 12px 'Mont';letter-spacing:.04em;text-align:center}
.hide{display:none!important}
.clab{font-family:'Titling';font-size:19px;letter-spacing:.08em;text-transform:uppercase;display:flex;gap:8px;align-items:center;margin-bottom:12px}
.sw{position:relative} .sic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--mute);line-height:0;pointer-events:none}
.ctl .search{font:500 15px 'Mont';height:48px;padding:0 40px 0 40px;border:1.5px solid var(--line);border-radius:11px;background:#fcfcfd} .ctl .search:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(236,28,36,.12)}
.sx{position:absolute;right:8px;top:8px;width:32px;height:32px;border:0;background:transparent;font-size:22px;color:var(--mute);cursor:pointer;display:none}
.dd{position:absolute;left:0;right:0;top:54px;z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.14);max-height:340px;overflow:auto;display:none} .dd.show{display:block}
.ddl{font:700 10px 'Mont';letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding:10px 14px 4px}
.ddi{display:flex;width:100%;gap:10px;align-items:center;padding:10px 14px;border:0;background:#fff;text-align:left;font:500 14px 'Mont';color:var(--ink);cursor:pointer} .ddi:hover,.ddi.act{background:#f4f4f5}
.ddi .m{color:var(--mute)} .ddi .n{margin-left:auto;font:600 12px 'Mont';color:var(--mute);white-space:nowrap} .ddi mark{background:transparent;color:var(--red);font-weight:700}
.ddi .dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--red)} .ddi .dot.r{background:var(--ink)} .ddi .dot.s{background:var(--gold)} .ddx{padding:12px 14px;color:var(--mute);font:500 14px 'Mont'}
.selbar{display:none;align-items:center;gap:12px;margin-top:13px;background:#fbf0f0;border:1px solid #f3d4d4;border-radius:11px;padding:10px 14px;flex-wrap:wrap} .selbar.show{display:flex}
.selbar .who{font:500 14px 'Mont'} .selbar .who b{color:#b3131a} .selbar .who .m{color:var(--mute)}
.tog{display:inline-flex;border:1px solid #e0c4c4;border-radius:9px;overflow:hidden;margin-left:auto} .tog button{border:0;background:#fff;color:var(--mute);font:600 12.5px 'Mont';padding:7px 13px;cursor:pointer} .tog button.on{background:var(--red);color:#fff}
.clr{border:0;background:transparent;color:var(--mute);font:600 12px 'Mont';text-decoration:underline;cursor:pointer}
.dayfilter{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px} .dbtn{font:600 13px 'Mont';border:1.5px solid var(--line);background:#fff;color:var(--mute);border-radius:9px;padding:8px 14px;cursor:pointer} .dbtn.on{background:#000;border-color:#000;color:#fff} .dbtn .g{color:var(--gold);font-weight:700}
.prow{display:flex;flex-wrap:wrap;gap:11px;align-items:center;margin-bottom:16px} .pbtn{font:600 13.5px 'Mont';border-radius:10px;padding:11px 18px;cursor:pointer;border:1.5px solid var(--line);background:#fff;color:var(--ink)} .pbtn.red{background:var(--red);border-color:var(--red);color:#fff} .pbtn:disabled{opacity:.45;cursor:not-allowed}
.prow .cnt{margin-left:auto;font:500 13px 'Mont';color:var(--mute)} .prow .cnt b{color:var(--ink)}
.sched{border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.04);background:#fff}
.shead,.srow{display:grid;grid-template-columns:110px 80px minmax(0,1fr) 260px;column-gap:12px;padding:13px 20px;align-items:baseline}
.shead{background:#000;color:#fff;font:700 11px 'Mont';letter-spacing:.12em;text-transform:uppercase}
.bday{padding:22px 20px 12px;border-bottom:1px solid #f1f1f3;display:flex;gap:12px;align-items:baseline} .bday b{font-family:'Titling';font-weight:400;font-size:30px;letter-spacing:.08em;text-transform:uppercase;color:var(--red);line-height:1} .bday span{font:700 11px 'Mont';letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.srow{border-bottom:1px solid #f1f1f3;border-left:4px solid transparent;font-family:'Mont'} .srow.hl{background:#fff8e6;border-left-color:var(--gold)}
.srow .c-t,.srow .c-n{font:700 14px 'Mont';color:var(--red);font-variant-numeric:tabular-nums;white-space:nowrap}
.srow .c-r b{display:block;font:700 15px/1.35 'Mont';color:var(--ink)} .srow .c-r i{display:block;font:500 12.5px 'Mont';font-style:normal;color:var(--mute);margin-top:3px}
.srow .c-s{font:600 13px 'Mont';color:#3a3a41;text-align:right} .yt{display:inline-block;margin-left:8px;font:700 10px 'Mont';letter-spacing:.04em;text-transform:uppercase;background:var(--gold);color:#5a4523;border-radius:5px;padding:2px 6px;vertical-align:2px}
.sempty{padding:30px 20px;text-align:center;font:500 14px 'Mont';color:var(--mute)}
@media (max-width:720px){ .shead{display:none} .srow{grid-template-columns:auto 1fr;grid-template-areas:"num time" "routine routine" "studio studio";row-gap:4px;padding:15px 16px}
 .srow .c-n{grid-area:num;font-size:18px} .srow .c-t{grid-area:time;text-align:right;font-size:18px} .srow .c-r{grid-area:routine} .srow .c-s{grid-area:studio;text-align:left} .bday b{font-size:26px} .tog{margin-left:0} .prow .cnt{margin-left:0;width:100%} }
@media (max-width:899px){ .v14wrap{display:none} .cards{display:block} #shtable{display:none} .scards{display:block} }
@media (max-width:680px){ .tab .l{display:none} .tab .s{display:inline} h2{font-size:38px} .hero{min-height:420px} .pdf{margin-left:0} .levels{display:none} }
@media print{ body.printing-sh .wrap{display:none!important} body.printing-sh .pr{display:block!important} .mk,.hero,.tabs,.bar,.ctl,.footer,.panel>.pe,.panel>h2,.lede{display:none!important} .v14wrap{display:block!important} .cards{display:none!important} .v14{zoom:1} table.sc{display:table!important} .scards{display:none!important} }

/* ---- live site additions ---- */
.na{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;font-family:'Mont'}
.na img{height:70px;max-width:90%;object-fit:contain;margin-bottom:18px} .na h1{font-family:'Titling';font-weight:400;font-size:44px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px}
.na p{color:var(--mute);margin:4px 0;font-size:15px} .na a{color:var(--red);font-weight:700;text-decoration:none}
.none{border:1px dashed var(--line);border-radius:14px;padding:30px 20px;text-align:center;font:500 15px 'Mont';color:var(--mute)}
.pe2{font:700 11px 'Mont';letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.sbrk{background:var(--red);color:#fff;padding:12px 20px;text-align:center;font:700 13px 'Mont';letter-spacing:.12em;text-transform:uppercase}
/* v24: a day's note (when its awards are announced): gray bar, red words, as TourPro prints it */
.sbrk.snote{background:#ececef;color:var(--red);letter-spacing:.04em}
.srow.scr .c-r b{text-decoration:line-through;text-decoration-color:#d8b1b1;color:var(--mute)} .yt.sc{background:#e4e4e7;color:#3a3a41}
@media print{ body.printing-wp .hero,body.printing-wp .tabs,body.printing-wp .tools,body.printing-wp .footer,body.printing-wp .panel[data-p="ev"],body.printing-wp .panel[data-p="sh"]{display:none!important}
 body.printing-wp .panel[data-p="wp"]{display:block!important} body.printing-wp .acc>button i{display:none} body.printing-wp .gsec{break-inside:auto} body.printing-wp .wban{break-inside:avoid} }

/* The EPS Welcome Packet, shown read-only in its phone view */
#wpview{display:block;width:100%;height:1200px;border:0;border-radius:18px;background:#000;overflow:hidden}
@media (max-width:680px){#wpview{border-radius:0}#wpbody{margin:0 -20px}}

/* Welcome Packet heading: Download PDF sits beside the title, not alone in a box */
.phead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px} .phead .lede{margin-bottom:0} .phead .pdf{height:40px;flex:none}
@media (max-width:680px){.phead .pdf{width:100%}}

/* ---- Showcase printouts, laid out as the Nationals Open Competition PDF ----
   Letter pages built here one by one (header on every page, the day banner only on
   the day's first page, column headings, rows, gold-ruled footer with the day). */
.pr{display:none}
.ppage{position:relative;width:8.5in;height:11in;box-sizing:border-box;padding:36px 40px 0;background:#fff;color:#111;overflow:hidden;page-break-after:always;break-after:page}
.ppage:last-child{page-break-after:auto;break-after:auto}
.ppage .phd{display:flex;justify-content:space-between;align-items:flex-start;height:100px;margin-bottom:22px}
.ppage .phd img{height:52px;margin-top:4px}
.ppage .phd .r{text-align:right;display:flex;flex-direction:column;gap:2px}
.ppage .t1{font-family:'Titling';font-size:30px;line-height:1;letter-spacing:.02em;color:#ec1c24;text-transform:uppercase}
.ppage .t2{font-family:'Titling';font-size:22px;line-height:1;letter-spacing:.02em;color:#111;text-transform:uppercase}
.ppage .t3{font:400 14px 'Over';color:#55555c;margin-top:4px}
.ppage .pband{border-top:2px solid #f1bf7d;border-bottom:2px solid #f1bf7d;height:46px;display:flex;align-items:center;justify-content:center;font-family:'Titling';font-size:32px;letter-spacing:.02em;color:#ec1c24;text-transform:uppercase;margin-bottom:8px}
.ppage .pcol,.ppage .psr{display:grid;grid-template-columns:72px 62px 214px 200px minmax(0,1fr);align-items:center}
.ppage .pcol{height:34px;border-bottom:1px solid #e3e3e6;font-family:'Titling';font-size:13px;letter-spacing:.04em;color:#7a7a82;text-transform:uppercase;margin-bottom:8px}
.ppage .psr{height:31px;font:400 13.5px 'Over';color:#111}
.ppage .psr > div{white-space:nowrap;overflow:hidden}
.ppage .psr .t{color:#55555c} .ppage .psr .n{font-weight:600;font-size:15px;color:#ec1c24} .ppage .psr .r{font-weight:600;font-size:15px}
.ppage .psr .d{font-style:italic;color:#3a3a41} .ppage .psr .s{color:#7a7a82}
.ppage .pbrk{height:34px;margin:6px 0;background:#ec1c24;color:#fff;display:flex;align-items:center;justify-content:center;font:600 14px 'Over';letter-spacing:.02em;text-transform:uppercase}
.ppage .pbrk.pnote{background:#ececef;color:#b3131a;font-size:12.5px;text-align:center;padding:0 10px}
.ppage .pft{position:absolute;left:40px;right:40px;bottom:34px;border-top:2px solid #f1bf7d;padding-top:10px;display:flex;justify-content:space-between;font:400 12px 'Over';letter-spacing:.04em;color:#7a7a82;text-transform:uppercase}
@media print{ @page{size:letter;margin:0} body.printing-sh{margin:0;padding:0} body.printing-sh > *:not(#prS){display:none!important} body.printing-sh #prS{display:block!important} }

/* ---------- v16 ---------- */
/* The design system's Button (components/actions/Button.jsx): Title Case pill, Montserrat Bold,
   2px border, icon in a circle at the right end. sm = 13px, padding 5px 5px 5px 18px, 22px circle, 8px gap;
   md = 15px, padding 6px 6px 6px 24px, 28px circle, 10px gap. Hover lifts 2px, press scales to 0.98. */
.dsb{display:inline-flex;align-items:center;justify-content:space-between;font-family:'Mont';font-weight:700;letter-spacing:.01em;line-height:1;border-radius:999px;cursor:pointer;white-space:nowrap;user-select:none;transition:transform 140ms cubic-bezier(.22,1,.36,1),background 140ms cubic-bezier(.22,1,.36,1),box-shadow 240ms cubic-bezier(.22,1,.36,1),border-color 140ms cubic-bezier(.22,1,.36,1)}
.dsb .lbl{display:inline-flex;align-items:center;padding-left:2px}
.dsb .chip{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%}
.dsb.sm{font-size:13px;padding:5px 5px 5px 18px;gap:8px} .dsb.sm .chip{width:22px;height:22px;margin-left:8px}
.dsb.md{font-size:15px;padding:6px 6px 6px 24px;gap:10px} .dsb.md .chip{width:28px;height:28px;margin-left:10px}
.dsb.pri{background:var(--red);color:#fff;border:2px solid var(--red)} .dsb.pri .chip{background:#fff;color:var(--red)}
.dsb.pri:hover:not(:disabled){background:#f23842;border-color:#f23842;box-shadow:0 8px 40px rgba(236,28,36,.35);transform:translateY(-2px)}
.dsb.out{background:transparent;color:#141416;border:2px solid #d4d4d8} .dsb.out .chip{background:var(--red);color:#fff}
.dsb.out:hover:not(:disabled){border-color:var(--red);color:#f23842;transform:translateY(-2px)}
.dsb:active:not(:disabled){transform:scale(.98)} .dsb:disabled{opacity:.45;cursor:not-allowed}
.dsb:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(242,56,66,.55)}
/* where the buttons sit (same places as before) */
.phead .dsb{flex:none} .tools .dsb{margin-left:auto}
@media (max-width:680px){.phead .dsb,.tools .dsb{width:100%;margin-left:0}}
/* Download All: in the photo header on the state/dates line, right edge lined up with the tab
   bar's right edge; it doesn't make the line taller, so the city name stays where it was.
   On a phone it takes the full width under the dates. */
.hero .row .dlB{margin:-10px calc((100% - min(100% + 8px, 1140px)) / 2) -10px auto;align-self:center}
/* on a phone the photo header's sides are 4px wider in than the tab bar's, so the button reaches out 4px each side to match it */
@media (max-width:680px){.hero .row .dlB{margin:8px -4px 0;flex:1 1 calc(100% + 8px)}}
/* the line under these headings was removed; the heading keeps space below it (design system --space-4, 16px) */
.panel[data-p="ev"]>h2,.panel[data-p="sh"]>h2{margin-bottom:16px}

/* ---------- v20: a button while it works (Preparing PDF…) ----------
   Stays solid and readable (switched off so it can't be pressed twice, but not faded).
   A point of light travels round its outline, once every 1.9 s (the design system Spinner's
   turn), and a deeper red (--ash-red-deep #b3131a) fills it left to right as pages finish.
   On the outlined buttons: a red light round the grey outline, filling light grey (#e4e4e7). */
@property --a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.dsb.busy, .dsb.busy:disabled { opacity: 1; cursor: progress; position: relative; overflow: hidden; isolation: isolate; animation: dsbEdge 1.9s linear infinite; }
.dsb.busy::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--p, 0) * 100%); z-index: -1; transition: width 420ms cubic-bezier(.22,1,.36,1); }
.dsb.pri.busy { border-color: transparent; background: linear-gradient(var(--red), var(--red)) padding-box,
  conic-gradient(from var(--a), rgba(255,255,255,0) 0deg, rgba(255,255,255,0) 250deg, rgba(255,190,190,.5) 320deg, #fff 352deg, rgba(255,255,255,0) 360deg) border-box; }
.dsb.pri.busy::before { background: #b3131a; }
.dsb.out.busy { border-color: transparent; background: linear-gradient(#fff, #fff) padding-box,
  conic-gradient(from var(--a), #d4d4d8 0deg, #d4d4d8 250deg, rgba(236,28,36,.5) 320deg, #ec1c24 352deg, #d4d4d8 360deg) border-box; }
.dsb.out.busy::before { background: #e4e4e7; }
@keyframes dsbEdge { to { --a: 360deg; } }
@media (prefers-reduced-motion: reduce) { .dsb.busy { animation: none; } }

/* ---------- v23 ---------- */
/* Overpass draws its "·" over the letter before it ("26·27" printed as "2627"). Every "·" set in
   'Over' is drawn from Montserrat instead: this face covers only that one character. (Only a 400 face,
   like the site's own Overpass, so bold text is still the same Overpass made bold.) */
@font-face{font-family:'Over';src:url('assets/fonts/Montserrat-Medium.ttf') format('truetype');font-weight:400;font-display:swap;unicode-range:U+00B7}
/* Showcase printouts: a gap between columns, and long titles, dancers and studios wrap
   onto a second line instead of running into the next column */
.ppage .pcol,.ppage .psr{grid-template-columns:66px 52px minmax(0,1.25fr) 150px minmax(0,1fr);column-gap:10px}
.ppage.nos .pcol,.ppage.nos .psr{grid-template-columns:66px 52px minmax(0,1fr) 220px}
.ppage .psr{height:auto;min-height:31px;padding:6.5px 0;box-sizing:border-box}
.ppage .psr > div{white-space:normal;overflow-wrap:anywhere;line-height:18px}
.ppage .psr .t,.ppage .psr .n{white-space:nowrap}
.ppage .pband ~ .pband{margin-top:14px}
.ppage .pft span:nth-child(2){flex:1;text-align:center}
.ppage .pft span:last-child{min-width:0;text-align:right}
.ppage .pft span:first-child{min-width:0}

/* v27 (Tyler, October 20, 2026): the page's footer and the phone view say what the PDF says */
.footer.right{text-align:right}
.footer b{font-weight:700}
.cards .sub,.cards .with{color:var(--ink,#141416)}
.cards .muted{font-style:italic;color:inherit}
.cards .ages{font:italic 400 12px 'Over';color:var(--ink,#141416)}
.cards .own{font:700 12px 'Mont';color:var(--red);margin-top:2px}
.cards .grp{font:700 10px 'Mont';letter-spacing:.14em;text-transform:uppercase}
.cards .split{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
.cards .aud{background:#fbf1e2;border-color:#fbf1e2;margin-bottom:4px}
.cards .lunchblk{background:var(--red);border-radius:8px;padding:10px 12px;margin:2px 0} .cards .lunchblk .nm,.cards .lunchblk .sub{color:#fff}
.cards .lunchblk .nm{font-family:'Titling';font-weight:400;font-size:22px;letter-spacing:.08em;text-transform:uppercase}
.cards .lunchblk .lin2{font:italic 400 14px 'Over';letter-spacing:0;text-transform:none}
/* v30 (Tyler): the small text in Lunch Break blocks white again, thicker, as on the printout */
.cards .lunchblk .sub,.cards .lunchblk .lin2{color:#fff}
.cards .lunchblk .sub{font-weight:700}
.cards .lunchblk .lin2{font-weight:600}
.cards .pages{margin:4px 0 10px}
.cards .abx{background:#f2f2f3;border-radius:8px;padding:12px 14px}
.cards .abt{font-family:'Titling';font-size:26px;letter-spacing:.04em;text-transform:uppercase;color:var(--red);line-height:1;padding-bottom:4px;border-bottom:1px solid #c9c9cf;margin-bottom:6px}
.cards .abr{background:#fff;border-radius:6px;padding:8px 10px;margin-top:6px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.cards .abl{font:700 12px 'Mont';text-transform:uppercase;letter-spacing:.02em}
.cards .aba{font:600 12px 'Mont';text-transform:uppercase;color:var(--red);white-space:nowrap}
.cards .abn{font-size:12px;margin-top:8px}

/* ---------- v40: the Results tab (hub-results.js) ---------- */
.tab.hide{display:none}
.rs-top{display:flex;flex-direction:column;gap:10px;margin:8px 0 18px}
.rs-lnk{align-self:flex-start;background:none;border:0;padding:0;color:var(--red);font:700 14px 'Mont';cursor:pointer}
.rs-pol{display:grid;gap:12px;font-size:14px;line-height:1.6;color:#3a3a41}.rs-pol strong{font-family:'Mont'}
.rs-card{border:1px solid var(--line);border-radius:14px;background:#fafafa;padding:18px 20px;font-size:14px;line-height:1.6;color:var(--mute)}
.rs-h{font:700 15px 'Mont';color:var(--ink);margin-bottom:4px}
#rsform{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;align-items:center}
#rsform input{flex:1 1 240px;min-width:0;height:46px;border-radius:999px;border:1px solid #d4d4d8;background:#fff;color:var(--ink);padding:0 18px;font:16px 'Over';outline:0}
#rsform input:focus{border-color:var(--red)}
#rsform .dsb{height:46px;padding:0 22px;font-size:14px}
.rs-sent{margin-top:12px;display:flex;gap:10px;align-items:flex-start;border:1px solid #d4d4d8;border-radius:12px;padding:12px 14px;background:#fff}
.rs-sent>span{flex:none;width:6px;height:6px;border-radius:50%;background:var(--red);margin-top:9px}.rs-sent strong{font-family:'Mont';color:var(--ink)}
.rs-sw{max-width:640px;margin-bottom:16px}
.rs-sw .search{font:500 15px 'Mont';height:52px;padding:0 44px 0 40px;border:1.5px solid var(--line);border-radius:999px;background:#fcfcfd}
.rs-sw .search:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(236,28,36,.12)}
.rs-sw .sx{top:10px;right:10px}.rs-sw .dd{top:58px}
.rs-pickbar{display:flex;align-items:center;gap:10px;margin:0 0 18px;flex-wrap:wrap;font-size:14px;color:var(--mute)}.rs-pickbar b{font-family:'Mont';color:var(--ink)}
.rs-btn{height:34px;padding:0 14px;border-radius:999px;border:1px solid #d4d4d8;background:#fff;font:600 12px 'Mont';cursor:pointer;color:var(--ink)}
.rs-more{margin-top:12px;height:40px;padding:0 18px;font-weight:700}
.rs-grp{margin-bottom:26px}
.rs-gh{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:4px}
.rs-gt{font-family:'Titling';font-size:26px;letter-spacing:.06em;line-height:1;text-transform:uppercase}
.rs-gc{font:700 12px 'Mont';color:#8a8a92}
.rs-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) 150px;gap:4px 18px;align-items:center;padding:13px 2px;border-bottom:1px solid var(--line)}
.rs-who{min-width:0}.rs-n{font:700 15px/1.3 'Mont'}.rs-s{font-size:13px;color:var(--mute);margin-top:2px}
.rs-a{min-width:0;font-size:14px;line-height:1.4}
.rs-m{font:600 12px 'Mont';color:#8a8a92;white-space:nowrap;text-align:right}
@media(max-width:640px){.rs-row{grid-template-columns:minmax(0,1fr) auto}.rs-a{grid-column:1/-1;grid-row:2}.rs-card{padding:16px}}
