/* Shared control states: foreground and background always change together. */
.button.blue,.button.blue:hover,.button.blue:active{background:#0055b8;color:#fff}
.button.orange,.button.orange:hover,.button.orange:active{background:#ff962a;color:#002d66}
.button.white,.button.white:hover,.button.white:active{background:#fff;color:#003f88}
.ticket form .button,.ticket form .button:hover,.ticket form .button:active,
.game-banner .game-copy .button,.game-banner .game-copy .button:hover,.game-banner .game-copy .button:active{background:#ff962a;color:#002d66}
.button svg,.card-action svg{color:inherit}
.button:hover{transform:none}
.button:disabled,.button:disabled:hover,.ticket form .button:disabled,.ticket form .button:disabled:hover{background:#e2eaf2;color:#405d78;opacity:1;box-shadow:none;transform:none;cursor:not-allowed}
.ticket-email-form input:disabled{background:#edf1f5;color:#405d78;opacity:1}
.voice-toolbar button:disabled,.farm-weapon:disabled,.alphabet button:disabled,.page-pagination button:disabled{background:#e2eaf2;color:#405d78;opacity:1;cursor:not-allowed}
@media(hover:hover) and (pointer:fine){
 .button.blue:not(:disabled):hover{background:#003f88;color:#fff}
 .button.orange:not(:disabled):hover,.ticket form .button:not(:disabled):hover,.game-banner .game-copy .button:not(:disabled):hover{background:#ffb45e;color:#002d66}
 .button.white:not(:disabled):hover{background:#eaf2fa;color:#003f88}
}
/* Readable secondary copy on light surfaces. */
.form-note,.ticket .form-note,dialog .modal-note,.footer-bottom,.person-card p,.honor-bottom>span,
.chat-submit small,.chat-panel #chat-form .chat-submit small,.voice-note,.message-form .message-kind,
.chat-message time,.chat-message .chat-demo,.chat-audio-length,.breadcrumb span,
.farm-best,.farm-kicker,.farm-hud>div>span,.farm-hud small,.farm-start-note,.farm-caption,
.farm-result-stats dt,.farm-result .farm-clean-note,.farm-touch-controls>span,#farm-weapon-note{
 color:#405d78;opacity:1;line-height:1.45
}
.form-note,.ticket .form-note,dialog .modal-note,.footer-bottom,.footer-bottom button,.voice-note,.chat-submit small,.chat-panel #chat-form .chat-submit small{font-size:12px!important}
.lot-form-title .eyebrow{color:#405d78;font-size:11px}
.chat-message .chat-demo{font-size:10px;background:#edf3f8}
.chat-message time{font-size:11px}
.chat-message .chat-avatar,.chat-message:nth-child(even) .chat-avatar{background:var(--avatar-color,#003b62);color:#fff}
.ticket-sample strong,.result-card .eyebrow,.farm-header h2 span,.farm-start-screen h3 span{color:#964500}
.motivation-card .motivation-art span{color:#002d66}
input::placeholder,textarea::placeholder{color:#52687e;opacity:1}
input:not([type=checkbox]):not([type=range]),textarea,select{caret-color:#003f88}
.ticket form input:not([type=checkbox]),.chat-panel input:not([type=checkbox]),.chat-panel textarea,.message-form input:not([type=checkbox]),.message-form textarea,.message-form select{border-color:#859bb0}
.ticket .check,.chat-panel .check{font-size:12px;line-height:1.5}
.ticket .check input,.chat-panel .check input{width:20px;height:20px;min-width:20px}
.check a,.check button{text-decoration:underline;text-underline-offset:3px}
.message-messengers button:hover{background:#ffb45e;color:#002d66}
.voice-record,.voice-stop,.voice-remove,.voice-upload,.circle-button,.alphabet button,.modal-close,#chat-refresh{min-width:44px;min-height:44px}
.farm-tool[aria-pressed=false]{color:#405d78;opacity:1;background:#edf3f8}
.chat-message p,.chat-message strong,.form-feedback,.lottery-form-message{overflow-wrap:anywhere}
.chat-message .chat-bubble{min-width:0}
.chat-message audio{max-width:100%}
:where(a,button,input,textarea,select):focus-visible{outline:3px solid #0055b8;outline-offset:3px}
.button:focus-visible{outline:3px solid #002d66;outline-offset:3px;box-shadow:0 0 0 2px #fff}
.masthead-air :is(a,button):focus-visible,.radio-console :is(a,button,input):focus-visible,.game-banner .button:focus-visible,.music-card button:focus-visible{outline-color:#fff}
/* One header surface. Navigation is a popover on compact screens. */
.masthead-top{position:relative;padding:12px 16px;margin-bottom:16px;border:1px solid #0055b81c;border-radius:20px;background:#fff;gap:24px}
.site-masthead:has(> .masthead-air[hidden]) > .masthead-top{padding-bottom:12px;margin-bottom:0}
@media(max-width:980px){
 .header.site-masthead{padding:12px 14px 16px}
 .masthead-top{display:grid;grid-template-columns:52px minmax(0,1fr) 62px;gap:10px;align-items:center;min-height:76px;padding:10px;margin-bottom:14px;border-radius:18px}
 .site-masthead:has(> .masthead-air[hidden]) > .masthead-top{padding-bottom:10px}
 .site-masthead .brand{grid-column:1;grid-row:1;width:48px;margin:0}
 .site-masthead .brand img{height:48px}
 .site-masthead .radio-button{grid-column:2;grid-row:1;justify-self:stretch;max-width:none;min-width:0;width:100%;min-height:54px;padding:8px 10px;gap:9px;border-radius:12px;font-size:16px;box-shadow:none}
 .site-masthead .radio-button .tiny-play{width:36px;height:36px}
 .site-masthead .radio-button .radio-button-copy{flex:1;min-width:0}
 .site-masthead .radio-button small{font-size:11px;line-height:1.3;white-space:normal;margin-top:4px}
 .site-masthead .radio-button .equalizer{display:none}
 .site-masthead .mobile-menu{display:flex;grid-column:3;grid-row:1;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:62px;min-height:54px;height:auto;padding:5px 2px;margin:0;border:0;border-radius:12px;background:#edf3f8;color:#003f88}
 .mobile-menu svg{display:block;width:22px;height:22px}
 .mobile-menu b{font-size:10px;line-height:1.3;font-weight:500}
 .site-masthead .mobile-menu[aria-expanded=true]{background:#003f88;color:#fff}
 .site-masthead nav.primary-nav{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:30;grid-row:auto;grid-column:auto;width:auto;max-height:65dvh;overflow-y:auto;overflow-x:hidden;padding:12px;margin:0;border:1px solid #0055b829;border-radius:16px;background:#fff;box-shadow:0 16px 32px #002d6629;scroll-snap-type:none}
 .site-masthead.menu-open nav.primary-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .site-masthead nav.primary-nav a{display:flex;align-items:center;justify-content:flex-start;min-height:48px;min-width:0;padding:12px;font-size:14px;white-space:normal;border-radius:10px;background:#edf3f8;color:#003f88;border:1px solid transparent}
 .site-masthead nav.primary-nav a[aria-current]{background:#0055b8;color:#fff}
 .site-masthead nav.primary-nav a:first-child{grid-column:1/-1}
 .site-masthead nav.primary-nav a:focus-visible{outline-offset:-3px}
 .site-masthead .mobile-menu:focus-visible{outline-color:#0055b8}
 input:not([type=checkbox]):not([type=range]),textarea,select,
 .ticket form input:not([type=checkbox]),.chat-panel input:not([type=checkbox]),.chat-panel textarea,.message-form input:not([type=checkbox]),.message-form textarea,.message-form select{font-size:16px}
 dialog{padding:28px 20px;border-radius:18px}
 dialog .button{max-width:100%;white-space:normal}
 .chat-panel-top #chat-state{font-size:11px}
 .game-banner .game-meta{font-size:10px;letter-spacing:.02em}
 .farm-caption{font-size:11px;flex-wrap:wrap}
}
@media(max-width:350px){
 .header.site-masthead{padding-left:10px;padding-right:10px}
 .masthead-top{grid-template-columns:42px minmax(0,1fr) 54px;gap:7px;padding:8px}
 .site-masthead .brand{width:40px}
 .site-masthead .brand img{height:42px}
 .site-masthead .radio-button{font-size:14px;padding:7px;gap:7px}
 .site-masthead .radio-button small{font-size:10px}
 .site-masthead .radio-button .tiny-play{width:32px;height:32px}
 .site-masthead .mobile-menu{width:54px}
}

/* Editorial simplification: broadcast and registration precede contacts. */
#broadcast>#header-contact-block{margin-top:30px}
.masthead-top{margin-bottom:0}
#header-contact-block .air-actions,.radio-console .air-actions{grid-template-columns:minmax(180px,1.3fr) minmax(100px,1fr) minmax(100px,1fr)}
.player.broadcast-player{border:0;box-shadow:none;border-radius:0;padding:0;overflow:hidden}
.player.broadcast-player iframe,.player.broadcast-player video{position:absolute;border:0;margin:0;padding:0;max-width:none}
.person-photo .person-silhouette{position:static;display:block;width:100%;height:100%;object-fit:cover}
.ticket-person{font-size:20px!important;line-height:1.35;overflow-wrap:anywhere}
.ticket-phone{font-size:20px!important}
.ticket-heading h3{font-size:clamp(30px,3vw,46px);line-height:1.1}
.chat-privacy-note{grid-column:1/-1;font-size:12px;line-height:1.4;color:#405d78;margin:0}
.chat-privacy-note a{text-decoration:underline}
.footer-bottom{border-top:0}
@media(max-width:980px){#header-contact-block .air-actions,.radio-console .air-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#header-contact-block .air-phone{grid-column:1/-1}.ticket-heading h3{font-size:34px}.chat-privacy-note{margin:12px 0}.footer-top{gap:24px}}

/* Artwork occupies its own non-shrinking row, including while animated. */
.activity-card{min-width:0}
.activity-card :is(.record-art,.motivation-art,.quiz-art){flex:none;height:260px;margin-bottom:20px;overflow:hidden;isolation:isolate}
.activity-card .record-art{display:grid;place-items:center}
.activity-card .vinyl{position:relative;inset:auto;width:min(220px,90%);height:auto;aspect-ratio:1;transform:rotate(-20deg);animation-name:record-contained}
@keyframes record-contained{to{transform:rotate(340deg)}}
.activity-card h3{line-height:1.12;overflow-wrap:break-word}
.activity-card>p{line-height:1.5}
.activity-card .card-action{gap:12px;line-height:1.35}
@media(max-width:760px){
 .activity-card{min-height:0;padding:24px 24px 0}
 .activity-card :is(.record-art,.motivation-art,.quiz-art){height:236px;margin:0 0 24px}
 .activity-card h3{font-size:clamp(26px,6.2vw,34px);margin:0 0 16px}
 .activity-card>p{font-size:16px;max-width:none;margin-bottom:26px}
 .activity-card .vinyl{width:min(208px,88%)}
 .activity-card .motivation-art svg{width:170px;height:170px}
 .activity-card .quiz-art img{width:100%;height:100%;left:0;bottom:0;object-fit:contain}
 .ticket-heading>svg{display:none}
 .lucky-art{height:200px;overflow:hidden}
 .lucky-card{width:min(210px,76%);scale:1;transform-origin:center}
 .lucky-front{left:10%;top:20px}
 .lucky-back{left:16%;top:12px}
 .ticket-heading h3{font-size:clamp(28px,7.6vw,34px);overflow-wrap:break-word}
 .lot-steps{flex-wrap:wrap;gap:10px}
 .honor-heading>*{min-width:0}
 .honor-heading .button{max-width:100%;white-space:normal}
}

.person-photo:has(>img)::before,.person-photo:has(>img)::after{display:none}

/* Document revisions: one shared content rail and consistent editorial hierarchy. */
:root{--content-rail:1120px;--rail-gutter:clamp(16px,3vw,40px)}
body .section-pad,body .broadcast.section-pad,body .game-section.game-banner-section,body .header.site-masthead,body .page-shell,body .footer{padding-left:max(var(--rail-gutter),calc((100% - var(--content-rail))/2));padding-right:max(var(--rail-gutter),calc((100% - var(--content-rail))/2))}
@media(min-width:981px){:root{--content-rail:min(1120px,max(880px,calc((100svh - 190px)*1.77778)))}.site-masthead .primary-nav{gap:clamp(10px,1.3vw,20px)}.site-masthead .primary-nav a{font-size:14px}.site-masthead .masthead-top{gap:16px}}
.game-banner .game-label{display:inline-block;color:#fff;font-size:14px;font-weight:700;letter-spacing:.08em;margin-bottom:18px;padding:7px 13px;border:1px solid #ffffff80;border-radius:999px;background:#003b6280}
.game-banner .game-copy h2{margin-top:0}
.ui-arrow{display:inline-block;width:24px!important;height:24px!important;flex:0 0 24px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.card-action{display:flex;align-items:center;justify-content:space-between}.card-action .ui-arrow{margin-left:auto}
.person-card h4{margin-bottom:10px;line-height:1.2}.person-card .person-position,.person-card .person-department{font-size:15px;line-height:1.4;margin:5px 0;color:#164866;overflow-wrap:break-word}.person-card .person-award{margin:14px 0 0;padding-top:12px;border-top:1px solid #003b6226;color:#003b62;font-size:14px;font-weight:700;line-height:1.4}.honor-track{align-items:stretch}.person-card{min-width:0}
.chat-feed .chat-message,.chat-feed .chat-message:nth-child(even){width:100%;max-width:100%;margin:0 0 14px;background:#fff;border:1px solid #0055b81c;border-radius:14px;justify-self:stretch;align-self:stretch}
.chat-feed .chat-message.pinned{border-left:3px solid #f28026}.chat-feed .chat-message time{color:#526879}
h1,h2,h3,h4{text-wrap:pretty}

/* The expanded menu has an opaque surface and takes space in the header. */
@media(max-width:980px){
 .site-masthead nav.primary-nav,.site-masthead.menu-open nav.primary-nav{position:static;grid-column:1/-1;grid-row:2;width:100%;padding:12px;margin:2px 0 0;border:1px solid #d5e1ee;border-radius:14px;background:#fff;box-shadow:0 8px 20px #003b6210;overflow-y:auto;overflow-x:hidden;scroll-snap-type:none}
 .site-masthead.menu-open nav.primary-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .site-masthead:not(.menu-open) nav.primary-nav{display:none}
 .site-masthead.menu-open nav.primary-nav a{height:100%;align-self:stretch;margin:0;box-sizing:border-box}
}
