.thb-derby{--forest:#183a31;--gold:#c7a269;--cream:#f7f4eb;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#23332d;max-width:1400px}.thb-derby *{box-sizing:border-box}.thb-derby h1,.thb-derby h2,.thb-derby h3{color:var(--forest);line-height:1.2}.thb-derby h1{font-size:30px;margin:5px 0}.thb-derby h2{font-size:24px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.5px;color:#96723e}.thb-derby button,.thb-derby .derby-button{display:inline-block;border:1px solid #a5b6ac;border-radius:6px;background:white;padding:10px 15px;cursor:pointer;font:inherit;color:var(--forest);text-decoration:none}.thb-derby .derby-button,.thb-derby button.active{background:var(--forest);color:white;border-color:var(--forest)}.thb-derby button:hover{border-color:#183a31;background:#e9efe9}.thb-derby .derby-button:hover,.thb-derby button.active:hover{background:#285445;color:white}.thb-derby button:disabled{opacity:.45;cursor:not-allowed}.thb-derby label{display:block;font-weight:600;margin:12px 0}.thb-derby input:not([type=checkbox]),.thb-derby textarea,.thb-derby select{display:block;width:100%;max-width:none;padding:9px 11px;border:1px solid #a5b6ac;border-radius:5px;background:white;color:#23332d;font:inherit;margin-top:5px}.thb-derby textarea{resize:vertical}.thb-derby small{display:block;font-size:12px;font-weight:400;color:#64736a}.thb-derby input[type=checkbox]{margin-right:8px}.thb-derby .check{display:flex;align-items:flex-start;font-weight:400}.thb-derby .check input{flex-shrink:0;margin-top:5px}.derby-panel{background:white;border:1px solid #d4ddd5;border-radius:9px;padding:24px;margin:18px 0}.derby-grid,.race-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.thb-derby fieldset{border:1px solid #d4ddd5;padding:12px 18px;margin:20px 0;border-radius:6px}.thb-derby legend{font-weight:700;padding:0 6px}.admin-header,.section-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-header>div:last-child{display:flex;gap:10px;align-items:center}.admin-header select{width:auto!important}.admin-summary{display:flex;align-items:center;flex-wrap:wrap;gap:22px;background:#e9efe9;border-radius:8px;padding:16px;margin:18px 0}.admin-summary b{font-size:20px}.derby-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.table-scroll{overflow-x:auto}.derby-table{width:100%;border-collapse:collapse;background:white}.derby-table th,.derby-table td{padding:14px;border-bottom:1px solid #d4ddd5;text-align:left;vertical-align:middle}.derby-table th{background:#e9efe9;font-weight:700}.thb-derby .winner-button{display:block;text-align:left;width:100%;margin:12px 0;padding:18px}.winner-button b,.winner-button span{display:block}.winner-button span{font-size:13px;margin-top:5px}.display-buttons{display:flex;gap:12px;flex-wrap:wrap}.photo-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}.danger-zone{border-color:#ba7770}.thb-derby.saving{opacity:.65;pointer-events:none}.thb-registration{max-width:850px;margin:auto}.derby-honeypot{position:absolute;left:-9999px;height:0;overflow:hidden}.form-status{font-weight:600}.thb-derby code{display:inline-block;padding:12px;background:#e9efe9;max-width:100%;overflow-wrap:anywhere}
/* Projector canvas: high contrast, large type, no theme chrome. */
.thb-tv{margin:0;background:#071e18;color:#fff7e9;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden}.thb-tv *{box-sizing:border-box}#thb-broadcast{height:100vh;display:flex;flex-direction:column;padding:3vh 3.5vw 3.8vh;gap:1.8vh}.broadcast-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #b89052;padding-bottom:1.4vh;gap:2vw}.broadcast-header span{font-size:1.1vw;letter-spacing:.24em;color:#d5b77d;font-weight:800}.broadcast-header h1{font-size:2.6vw;line-height:1.1;margin:.6vh 0 0}.broadcast-tag{font-size:1.2vw;letter-spacing:.1em;background:#d1ad6f;color:#071e18;padding:1vh 1.3vw;border-radius:3px;font-weight:900;white-space:nowrap}.match-heading{display:flex;justify-content:space-between;font-size:1.15vw;letter-spacing:.13em;font-weight:700;color:#d5b77d}.head-to-head{flex:1;min-height:0;display:grid;grid-template-columns:1fr 4vw 1fr;gap:1.5vw;align-items:center}.broadcast-car{background:#102e25;border:1px solid #49604a;border-radius:8px;overflow:hidden;min-height:0}.compact{height:100%;display:flex;flex-direction:column}.car-photo{position:relative;background:#173f30;overflow:hidden}.compact .car-photo{height:43%;flex-shrink:0}.car-photo img{width:100%;height:100%;object-fit:contain;display:block}.car-number{position:absolute;bottom:0;left:0;background:#d1ad6f;color:#071e18;padding:.3vh 1vw;font-size:2.5vw;font-weight:950}.car-copy{padding:1.4vh 1.6vw;min-width:0}.thb-tv .eyebrow{color:#d5b77d;font-size:1.1vw;letter-spacing:.12em}.car-copy h2{font-size:3vw;line-height:1.08;margin:1vh 0;overflow-wrap:anywhere}.racer-names{font-size:1.25vw;color:#dedccc}.record{font-size:1.5vw;font-weight:800;margin:.7vh 0;color:#d5b77d}.broadcast-specs{display:flex;gap:2vw;border-top:1px solid #49604a;margin-top:1.2vh;padding-top:1vh}.broadcast-specs small{font-size:.85vw;display:block;color:#c5cdbc;letter-spacing:.08em}.broadcast-specs b{font-size:1.4vw}.team-bio{font-size:1.3vw;line-height:1.4;margin:1.2vh 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.build-notes{font-size:1.2vw;color:#d5b77d;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.versus{text-align:center;font-size:2.3vw;font-weight:900;color:#d1ad6f}.versus small{display:block;font-size:1.3vw;margin-top:2vh;white-space:nowrap}.broadcast-footer{border-top:2px solid #b89052;padding-top:1.3vh;font-size:1.25vw;line-height:1.4;min-height:5vh;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.broadcast-footer b{color:#d5b77d;margin-right:1.5vw;letter-spacing:.08em}.broadcast-footer span{color:#d5b77d;margin:0 .5vw}.feature-profile{flex:1;min-height:0;display:flex;align-items:stretch}.feature-profile .broadcast-car{width:100%;display:grid;grid-template-columns:48% 52%}.feature-profile .car-copy{padding:3vh 3vw;align-self:center}.feature-profile h2{font-size:4.5vw}.feature-profile .team-bio{font-size:1.7vw;-webkit-line-clamp:5}.feature-profile .build-notes{font-size:1.4vw}.feature-profile .racer-names{font-size:1.6vw}.feature-profile .car-photo{height:100%}.car-placeholder{height:100%;min-height:14vh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(145deg,#204b37,#0b281e)}.car-placeholder span{font-size:7vw;font-weight:900;color:#d1ad6f}.car-placeholder small{font-size:1.5vw;max-width:90%;text-align:center}.winner-banner{font-size:1.6vw;letter-spacing:.16em;color:#d5b77d;font-weight:900;text-align:center}.winner-profile .broadcast-car{border:2px solid #d1ad6f}.broadcast-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10vh 5vw}.broadcast-empty h2{font-size:4vw}.broadcast-empty p{font-size:2vw}.broadcast-list{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start}.standing-row{display:grid;grid-template-columns:6vw 1fr 12vw 15vw;align-items:center;gap:1vw;border-bottom:1px solid #49604a;padding:1vh 1vw;min-height:7vh}.standing-row>b{font-size:2vw;color:#d5b77d}.standing-row h2{font-size:1.8vw;margin:0}.standing-row span{font-size:1.1vw;color:#c5cdbc}.standing-row strong{font-size:1.6vw}.standing-row .standing-status{font-size:1.1vw;color:#d5b77d;font-weight:800}.broadcast-bracket{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,minmax(0,1fr));gap:1vh 1vw}.bracket-card{border:1px solid #49604a;padding:1vh 1vw;background:#102e25;overflow:hidden}.bracket-card.ready{border-color:#d1ad6f}.bracket-card small{font-size:.9vw;color:#d5b77d}.bracket-card div{font-size:1.35vw;padding:.4vh 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bracket-card .match-winner{color:#d5b77d;font-weight:800}.tv-controls{position:fixed;bottom:.3vh;right:1vw;display:flex;align-items:center;gap:1vw;font-size:10px;color:#789785;opacity:.2}.tv-controls:hover{opacity:1}.tv-controls button{background:#183a31;color:#fff7e9;border:1px solid #49604a;border-radius:3px;cursor:pointer;font:inherit;padding:3px 8px}.tv-controls .disconnected{color:#ffba9b;opacity:1}.thb-tv:has(.disconnected) .tv-controls{opacity:1}
@media(max-width:780px){.derby-grid,.race-grid{grid-template-columns:1fr}.spec-grid{grid-template-columns:repeat(2,1fr)}.admin-header,.section-top{align-items:flex-start;flex-direction:column}.derby-panel{padding:18px}.admin-header>div:last-child{flex-wrap:wrap}.admin-header select{max-width:230px!important}}
.car-photo>img{position:absolute;inset:0;z-index:1}.car-number{z-index:2}.car-copy h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.car-copy .eyebrow,.racer-names{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.compact .car-copy{flex:1;overflow:hidden}.feature-profile .car-copy{max-height:100%;overflow:hidden}.broadcast-header>div:first-child{min-width:0;max-width:72%}.broadcast-header h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Registration pages: remove theme sidebar and reclaim the content column. */
body.thb-derby-registration-page #sidebar,body.thb-derby-registration-page #secondary,body.thb-derby-registration-page aside.sidebar,body.thb-derby-registration-page .site-sidebar{display:none!important}
body.thb-derby-registration-page #content.span8{width:auto!important;max-width:none!important;float:none!important;box-sizing:border-box}
body.thb-derby-registration-page #primary,body.thb-derby-registration-page .content-area{width:100%!important;max-width:none!important;float:none!important}
body.thb-derby-registration-page .thb-registration{max-width:1100px;width:100%;margin-left:auto;margin-right:auto}
.admin-car-photo{display:block;max-width:320px;max-height:220px;width:auto;height:auto;object-fit:contain;border-radius:6px;border:1px solid #d4ddd5;margin:8px 0}

/* Photo fallback is decorative; names belong in the profile copy. */
.car-photo:has(>img)>.car-placeholder{display:none}

.derby-vote-page{background:#f7f4eb;margin:0;padding:24px 16px;font-family:system-ui,sans-serif}.vote-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.thb-derby label.vote-entry{margin:0;padding:16px;background:white;border:2px solid #d4ddd5;border-radius:8px;display:flex;align-items:center;gap:12px;cursor:pointer}.vote-entry:has(input:checked){border-color:#183a31;background:#e9efe9}.vote-entry input{flex-shrink:0;width:22px;height:22px}.vote-entry img,.vote-no-photo{width:100px;height:100px;object-fit:contain;background:#e9efe9;flex-shrink:0}.vote-no-photo{display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px}.vote-entry>span:last-child{min-width:0;overflow-wrap:anywhere}.vote-submit{margin:24px 0;padding:16px;border-top:2px solid #c7a269}.vote-broadcast{flex:1;min-height:0;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:5vw;padding:3vh 2vw}.vote-broadcast h2{font-size:4vw;line-height:1.1}.vote-broadcast p{font-size:1.6vw;line-height:1.5}.vote-qr{text-align:center;font-size:1.5vw;color:#d5b77d}#voting-qr{width:min(32vw,58vh);height:min(32vw,58vh);margin:0 auto 2vh;background:white;padding:1vh}#voting-qr svg{width:100%;height:100%;display:block}
@media(max-width:650px){.vote-entries{grid-template-columns:1fr}.vote-entry img,.vote-no-photo{width:80px;height:80px}}

.race-podium{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2vw;align-items:end;padding-top:1vh}.race-podium.slots-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:76vw;width:100%;align-self:center}.race-podium.slots-1{grid-template-columns:1fr;width:45vw;align-self:center}.podium-car{display:flex;flex-direction:column;min-width:0;max-height:100%;overflow:hidden;border:1px solid #49604a;border-radius:8px;background:#102e25}.podium-photo{position:relative;background:#173f30;height:25vh;flex-shrink:0;overflow:hidden}.podium-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.podium-photo .car-placeholder{min-height:0}.podium-photo:has(>img)>.car-placeholder{display:none}.podium-copy{padding:1.3vh 1.3vw;overflow:hidden}.podium-copy h2{font-size:2.3vw;line-height:1.12;margin:.8vh 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.podium-copy .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium-copy p{font-size:1.1vw;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium-step{background:#96a6a0;color:#071e18;font-size:2.2vw;font-weight:900;display:flex;flex-direction:column;align-items:center;justify-content:center;height:11vh;flex-shrink:0}.place-1{border-color:#d1ad6f}.place-1 .podium-step{background:#d1ad6f;height:18vh}.place-3 .podium-step{background:#b98560;height:8vh}.podium-step small{font-size:1vw;letter-spacing:.15em;margin-top:.5vh}

.archive-slide{flex:1;min-height:0;display:grid;grid-template-columns:58% 42%;background:#102e25;border:1px solid #49604a;border-radius:8px;overflow:hidden}.archive-photo{position:relative;min-height:0;background:#173f30;overflow:hidden}.archive-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}.archive-photo:has(>img)>.car-placeholder{display:none}.archive-copy{align-self:center;min-width:0;padding:3vh 2.5vw;max-height:100%;overflow:hidden}.archive-copy h2{font-size:3.6vw;line-height:1.1;margin:1.5vh 0;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.archive-copy h3{font-size:2.2vw;line-height:1.15;margin:1.5vh 0;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.archive-copy p{font-size:1.5vw;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}.archive-slide.ceremony-only{grid-template-columns:70% 30%}.ceremony-admin{padding:16px;margin:12px 0;background:#e9efe9;border-radius:6px}

.lane-label{position:absolute;top:0;left:0;z-index:3;padding:.6vh 1vw;background:#d1ad6f;color:#071e18;font-size:1.3vw;font-weight:900;letter-spacing:.08em}.admin-lane-label{display:block;margin-bottom:7px;color:#715220;font-size:14px;letter-spacing:.06em}

.broadcast-heading{display:flex;align-items:center;gap:1.6vw;flex:1;min-width:0}.broadcast-heading h1{flex:1;min-width:0;margin:0;font-size:2.4vw}.broadcast-brand{flex:0 0 11vw;width:11vw;display:flex;flex-direction:column;align-items:flex-start;gap:.6vh;min-width:0}.broadcast-header .broadcast-brand>span{font-size:.65vw;letter-spacing:.12em;white-space:nowrap;line-height:1.2}.broadcast-brand img{display:block;width:100%;height:6vh;object-fit:contain;object-position:left center}.broadcast-brand b{font-size:1.1vw;line-height:1.2;color:#d5b77d;letter-spacing:.1em}.broadcast-brand b[hidden]{display:none}

.bye-explainer{font-size:1.5vw;line-height:1.3;color:#d5b77d;font-weight:700}.bye-row{display:grid;grid-template-columns:6vw 1fr 10vw;gap:1.2vw;align-items:center;min-height:6vh;padding:.6vh 1vw;border-bottom:1px solid #49604a}.bye-row>b{font-size:1.8vw;color:#d5b77d}.bye-row h2{font-size:1.7vw;line-height:1.1;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bye-row span{font-size:1vw;color:#c5cdbc}.bye-row strong{font-size:1.1vw;color:#d5b77d}.bye-badge{display:inline-block;padding:.3vh .6vw;border:1px solid #d1ad6f;border-radius:3px;color:#d5b77d;font-weight:800;font-size:.9vw;margin-bottom:.5vh}

.round-summary-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4vw}.round-summary-column{background:#102e25;border:1px solid #49604a;border-radius:6px;padding:1.4vh 1.1vw;min-width:0;overflow:hidden}.round-summary-column>h2{font-size:1.05vw;line-height:1.4;letter-spacing:.04em;color:#d5b77d;min-height:4vh;margin:0 0 1vh}.round-car{display:flex;align-items:center;gap:.8vw;padding:1.1vh 0;border-top:1px solid #49604a;min-height:7.5vh}.round-car>b{font-size:1.7vw;color:#d5b77d;flex-shrink:0}.round-car>div{min-width:0}.round-car h3{font-size:1.4vw;line-height:1.15;margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.round-car p{font-size:.95vw;line-height:1.2;margin:.5vh 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.round-none{font-size:1.2vw;color:#c5cdbc}

.round-winner-record{font-size:1.2vw;line-height:1.3;font-weight:850;color:#d5b77d;margin-top:.5vh}.round-winner-record span{display:block;font-size:.68vw;letter-spacing:.05em}.round-winner-record.undefeated{color:#9fd6b1}.round-winner-record.one-loss{color:#e3bd79}
.round-summary-column.winners .round-car h3{-webkit-line-clamp:1}

.lane-stats-screen{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:2vh}.lane-stats-block{background:#102e25;border:1px solid #49604a;border-radius:8px;padding:2vh 2vw}.lane-stats-block>h2{font-size:1.4vw;color:#d5b77d;letter-spacing:.08em;margin:0 0 1vh}.lane-stats-pair{display:grid;grid-template-columns:1fr 1fr;gap:3vw}.lane-stats-pair h3{font-size:1.3vw;margin:1vh 0;color:#d5b77d}.lane-stats-pair b{font-size:3vw}.lane-stats-pair p{font-size:1.3vw;margin:1vh 0}
