/* Festival identity for event display and input; score typography stays clear. */
@font-face{font-family:'Balsamiq Sans';src:url('/event-assets/assets/BalsamiqSans-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Balsamiq Sans';src:url('/event-assets/assets/BalsamiqSans-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url('/event-assets/assets/NunitoSans-Variable.ttf') format('truetype');font-weight:200 900;font-style:normal;font-display:swap}
body.event-festival{font-family:'Balsamiq Sans',system-ui,sans-serif;--event-ink:#0a2431;--event-surface:#123541;--event-line:#9bb5bd;--event-shadow:#061d27;--event-text:#f4f7ef;background:#082d3b;color:var(--event-text)}
body.event-festival[data-page=input]{--event-surface:#fff;--event-line:#0a2431;--event-shadow:#0a2431;--event-text:#0a2431;background:#fffbee;color-scheme:light}
body.event-festival[data-display-theme=light]{--event-surface:#fff;--event-line:#111;--event-shadow:#0a2431;--event-text:#111;background:#fff;color:#111}
.event-festival .event-header,.event-festival .powered-by{background:#082d3b;color:#fff;border-color:#0a2431;border-width:3px}
.event-festival .event-header .event-home{font-family:Anton,Impact,sans-serif;font-size:24px;font-weight:400;letter-spacing:0;color:#fff}
.event-festival .event-header #connection{color:#ffe334}
.event-festival .powered-by a{color:#fff}
.event-festival main{margin-top:26px}
.event-festival .event-intro{padding:22px 28px;border:3px solid var(--event-line);border-radius:24px;box-shadow:5px 5px 0 var(--event-shadow);background:#123541;margin-bottom:24px;overflow-wrap:anywhere}
.event-festival .event-intro h1{margin:0 0 12px;font-weight:400;letter-spacing:.4px;font-size:clamp(32px,4vw,56px)}
.event-festival .event-intro #status{margin:0;font-weight:700}
.event-festival[data-page=input] .event-intro,.event-festival[data-display-theme=light] .event-intro{background:radial-gradient(circle,#ffffffa0 2px,transparent 3px) 0 0/24px 24px,linear-gradient(130deg,#dff5fb,#d9efb8);color:#0a2431}
body.event-festival .board,body.event-festival .sponsor-region,.event-festival #login,.event-festival #editor{background:var(--event-surface);color:var(--event-text);border:3px solid var(--event-line);border-radius:22px;box-shadow:5px 5px 0 var(--event-shadow);min-width:0}
.event-festival #login h2,.event-festival #teams h3{font-family:Anton,Impact,sans-serif;font-weight:400;letter-spacing:.3px}
.event-festival .board table,.event-festival .book-row p,.event-festival .book-row button{font-family:'Nunito Sans',system-ui,sans-serif;font-variant-numeric:tabular-nums}
body.event-festival .board td{border-color:var(--event-line)}
body.event-festival .board tr:first-child{background:#214957}
body.event-festival[data-page=input] .board tr:first-child,body.event-festival[data-display-theme=light] .board tr:first-child{background:#fff0af}
body.event-festival[data-page=input] .board h2{color:#0a2431}
.event-festival button,body.event-festival #effects button{border:2px solid var(--event-ink);border-radius:20px;box-shadow:3px 3px 0 var(--event-ink);min-height:48px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
body.event-festival[data-page=input] button,body.event-festival[data-display-theme=light] #effects button{background:#ffe334;color:#0a2431}
body.event-festival .sponsor-controls button{background:#ffe334!important;color:#0a2431!important;border:2px solid #0a2431;border-radius:20px}
.event-festival button:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--event-ink)}
.event-festival button:disabled{cursor:not-allowed;box-shadow:none}
.event-festival :focus-visible{outline:3px solid #2984ff;outline-offset:4px}
body.event-festival[data-page=input] input{background:#fff;color:#0a2431;border:2px solid #0a2431;border-radius:10px;min-height:48px}
body.event-festival[data-page=input] .secondary{background:#fff;color:#0a2431}
.event-festival #teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;margin-top:24px}
.event-festival .book-row{padding:18px;background:#dff5fb;border:2px solid #0a2431;border-radius:18px;min-width:0;overflow-wrap:anywhere}
.event-festival .book-row:nth-child(even){background:#e6f3d4}
.event-festival .book-row h3{font-size:28px;margin-bottom:12px}
.event-festival .book-row p{font-size:20px;font-weight:800}
body.event-festival[data-page=input] .book-row .one{background:#ffe334;color:#0a2431}
body.event-festival[data-page=input] .book-row .ten{background:#082d3b;color:#fff}
.event-festival #team-admin{margin-top:28px;overflow-wrap:anywhere}
.event-festival #team-admin button{margin:6px}
.event-festival #team-admin input{margin-top:16px}
.event-festival #message:not(:empty){background:#fff0af;color:#713100;padding:12px 16px;border:2px solid #0a2431;border-radius:12px}
.event-festival #message:empty{min-height:0;margin:0}
.event-festival #effects{margin:20px 0}
@media(max-width:650px){.event-festival .event-intro{padding:18px;border-radius:18px}.event-festival main{padding:0 12px}.event-festival #editor,.event-festival #login{padding:14px}.event-festival .book-row{padding:12px}.event-festival .book-row .actions{gap:10px}body.event-festival[data-page=input] .book-row button{min-width:52px;padding:10px}.event-festival .event-header .event-home{font-size:21px}}

.event-festival .book-row .actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
body.event-festival[data-page=input] .book-row button{min-width:0;min-height:52px;padding:10px 2px;font-size:18px}

/* Public scoreboard: the portal's outlined cards, in daylight and evening palettes. */
body.event-festival[data-page=display]{--score-bg:#082d3b;--score-card:#123b4b;--score-row:#194656;--score-leader:#245b6b;--score-line:#7babb8;--score-ink:#f5faf7;--score-shadow:#041923;background:var(--score-bg);color:var(--score-ink);color-scheme:dark}
body.event-festival[data-page=display][data-display-theme=light]{--score-bg:#fffbee;--score-card:#fff;--score-row:#edf7fa;--score-leader:#fff0af;--score-line:#0a2431;--score-ink:#0a2431;--score-shadow:#0a2431;color-scheme:light}
body.event-festival[data-page=display] .event-header{padding-top:18px;padding-bottom:18px;border-bottom:3px solid #041923;flex-wrap:wrap}
body.event-festival[data-page=display] .event-header .event-home{color:#fff;font-size:clamp(22px,2vw,30px)}
body.event-festival[data-page=display] .event-header #connection{color:#ffe334;font-weight:700}
body.event-festival[data-page=display] .event-intro{background:radial-gradient(circle,#ffffff10 2px,transparent 3px) 0 0/24px 24px,linear-gradient(125deg,#123b4b,#205461);border:3px solid var(--score-line);box-shadow:6px 6px 0 var(--score-shadow);padding:26px 30px}
body.event-festival[data-page=display][data-display-theme=light] .event-intro{background:radial-gradient(circle,#ffffffb0 2px,transparent 3px) 0 0/24px 24px,linear-gradient(125deg,#dff5fb,#d9efb8)}
body.event-festival[data-page=display] .event-intro #status{display:inline-block;background:#ffe334;color:#0a2431;border:2px solid #0a2431;border-radius:24px;padding:6px 14px;font-size:16px;line-height:1.4}
body.event-festival[data-page=display] #effects{gap:12px;margin:24px 0 28px}
body.event-festival[data-page=display] #effects button{background:#ffe334;color:#0a2431;border:2px solid #0a2431;box-shadow:3px 3px 0 var(--score-shadow);border-radius:24px;font-weight:700;padding:10px 20px}
body.event-festival[data-page=display] #effects button:hover{background:#fff0a0}
body.event-festival[data-page=display] .boards{gap:26px;align-items:start}
body.event-festival[data-page=display] .board{background:var(--score-card);color:var(--score-ink);border:3px solid var(--score-line);border-radius:24px;box-shadow:6px 6px 0 var(--score-shadow);margin:0;padding:24px}
body.event-festival[data-page=display] .board h2{font-family:Anton,Impact,sans-serif;font-weight:400;letter-spacing:.4px;color:var(--score-ink);border-bottom:5px solid var(--category-color,#ffe334);padding-bottom:16px;margin-bottom:12px;line-height:1.2}
body.event-festival[data-page=display] .board h2 img{width:76px;height:76px;filter:drop-shadow(2px 3px 0 #0002)}
body.event-festival[data-page=display] .board table{border-collapse:separate;border-spacing:0 10px;line-height:1.25}
body.event-festival[data-page=display] .board tr,body.event-festival[data-page=display] .board tr:first-child{background:transparent}
body.event-festival[data-page=display] .board td{background:var(--score-row);border:0;padding:18px 12px}
body.event-festival[data-page=display] .board tr:first-child td{background:var(--score-leader)}
body.event-festival[data-page=display] .board td:first-child{border-radius:12px 0 0 12px;width:13%;font-weight:900;text-align:center}
body.event-festival[data-page=display] .board td:last-child{border-radius:0 12px 12px 0;width:27%;font-size:1.25em}
body.event-festival[data-page=display] .board tr:first-child td:last-child{color:#ffe334}
body.event-festival[data-page=display][data-display-theme=light] .board tr:first-child td:last-child{color:#0a2431}
body.event-festival[data-page=display] .sponsor-region{background:var(--score-card);color:var(--score-ink);border:3px solid var(--score-line);border-radius:24px;box-shadow:6px 6px 0 var(--score-shadow);margin-top:30px}
body.event-festival[data-page=display] .sponsor-region h2{font-family:Anton,Impact,sans-serif;color:var(--score-ink);font-size:28px;letter-spacing:.4px}
body.event-festival[data-page=display] .sponsor-card{border:2px solid #0a2431;box-shadow:3px 3px 0 var(--score-shadow);background:#fff;border-radius:16px}
body.event-festival[data-page=display] .powered-by,body.event-festival[data-page=display] .powered-by a{color:#fff}
@media(max-width:650px){body.event-festival[data-page=display] .event-intro{padding:20px}body.event-festival[data-page=display] .board{padding:14px;border-radius:20px}body.event-festival[data-page=display] .boards{gap:22px}body.event-festival[data-page=display] .board h2 img{width:56px;height:56px}body.event-festival[data-page=display] .board td{padding:14px 6px}body.event-festival[data-page=display] #effects{gap:10px}body.event-festival[data-page=display] #effects button{padding:9px 13px}body.event-festival[data-page=display] .event-header #connection{margin-left:0}}
/* Evening display: warm timber walls and framed chalkboards. */
body.event-festival[data-page=display][data-display-theme=dark]{--score-bg:#29190f;--score-card:#252a25;--score-row:#ffffff06;--score-leader:#e9d39112;--score-line:#815334;--score-ink:#f3edda;--score-shadow:#130c08;background-color:#29190f;background-image:linear-gradient(#160d071c,#160d071c),url("/event-assets/assets/wood-chalet-comic-v1.jpg");background-size:auto,1254px 1254px;background-position:center top;background-repeat:repeat}
body.event-festival[data-page=display][data-display-theme=dark] .event-header,body.event-festival[data-page=display][data-display-theme=dark] .powered-by{background:#20160fed;border-color:#815334;color:#f3edda}
body.event-festival[data-page=display][data-display-theme=dark] .event-header .event-home,body.event-festival[data-page=display][data-display-theme=dark] .powered-by a{color:#f3edda}
body.event-festival[data-page=display][data-display-theme=dark] .event-header #connection{color:#e8d6a1}
body.event-festival[data-page=display][data-display-theme=dark] .event-intro,body.event-festival[data-page=display][data-display-theme=dark] .board,body.event-festival[data-page=display][data-display-theme=dark] .sponsor-region{background-color:#222;background-image:linear-gradient(#0002,#0002),url("/event-assets/assets/chalkboard-v1.jpg");background-size:auto,cover;background-position:center;background-repeat:no-repeat;border:9px solid #795032;border-top-color:#976a43;border-bottom-color:#51321e;border-radius:9px;box-shadow:inset 0 0 0 2px #171b16,inset 0 0 24px #0005,0 3px 0 #bb89543b,5px 7px 12px #0b07088c;color:#f3edda}
body.event-festival[data-page=display][data-display-theme=dark] .event-intro h1,body.event-festival[data-page=display][data-display-theme=dark] .board h2,body.event-festival[data-page=display][data-display-theme=dark] .sponsor-region h2{font-family:"Balsamiq Sans",cursive;font-weight:700;letter-spacing:.3px;color:#f3edda;text-shadow:1px 1px 0 #fff2}
body.event-festival[data-page=display][data-display-theme=dark] .board h2{border-bottom:3px dashed var(--category-color,#e8d6a1)}
body.event-festival[data-page=display][data-display-theme=dark] .event-intro #status{background:transparent;border:1px solid #d4d8bd99;color:#e1e5c9;border-radius:6px}
body.event-festival[data-page=display][data-display-theme=dark] #effects button{background:linear-gradient(#725035,#533822);color:#fff0d4;border:2px solid #a27b52;border-bottom-color:#382213;border-radius:7px;box-shadow:2px 3px 0 #140c08}
body.event-festival[data-page=display][data-display-theme=dark] #effects button:hover{background:#805a39}
body.event-festival[data-page=display][data-display-theme=dark] #effects button:focus-visible{outline:3px solid #fff0d4;outline-offset:4px}
body.event-festival[data-page=display][data-display-theme=dark] .board td{border-bottom:1px solid #eee7d544;border-radius:0}
body.event-festival[data-page=display][data-display-theme=dark] .board td:first-child,body.event-festival[data-page=display][data-display-theme=dark] .board td:last-child{border-radius:0}
body.event-festival[data-page=display][data-display-theme=dark] .board tr:first-child td:last-child{color:#f3dfa0}
body.event-festival[data-page=display][data-display-theme=dark] .sponsor-card{border-color:#ae8b5e;border-radius:5px;box-shadow:2px 3px 0 #10150f}
/* Rounded handwritten chalk, locally hosted; evening display only. */
@font-face{font-family:Pangolin;src:url('/event-assets/assets/Pangolin-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
body.event-festival[data-page=display][data-display-theme=dark] .event-intro h1,
body.event-festival[data-page=display][data-display-theme=dark] .board h2,
body.event-festival[data-page=display][data-display-theme=dark] .sponsor-region h2,
body.event-festival[data-page=display][data-display-theme=dark] .board td:first-child,
body.event-festival[data-page=display][data-display-theme=dark] .board td:last-child{font-family:Pangolin,'Balsamiq Sans',cursive;font-weight:400;letter-spacing:.4px;text-shadow:0 0 1px currentColor}

@font-face{font-family:Eraser;src:url('/event-assets/assets/EraserRegular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
body.event-festival[data-page=display][data-display-theme=dark] .event-intro h1,body.event-festival[data-page=display][data-display-theme=dark] .board h2,body.event-festival[data-page=display][data-display-theme=dark] .sponsor-region h2,body.event-festival[data-page=display][data-display-theme=dark] .board td:first-child,body.event-festival[data-page=display][data-display-theme=dark] .board td:last-child,body.event-festival[data-page=display][data-display-theme=dark] .board td{font-family:Eraser,Pangolin,'Balsamiq Sans',cursive;font-weight:400;letter-spacing:.3px;text-shadow:none}
