/* Shared visual finish for the public site. Keep the existing ON Quiz palette and artwork. */
.public-page{
  --oq-paper:#faf7f0;--oq-card:#fffdf8;--oq-ink:#10151c;--oq-navy:#062638;
  --oq-pink:#d00069;--oq-yellow:#ffda28;--oq-cyan:#00baf2;
  --oq-line:#cbd0cd;--oq-shadow:5px 5px 0 var(--oq-navy);
  --oq-radius:8px;--oq-gap:clamp(18px,2.4vw,30px);
  color:var(--oq-ink);
}
.public-page:not(.public-home):not(.partner-page){background:radial-gradient(circle at 94% 5%,#ffda2819,transparent 420px),var(--oq-paper)}
.public-page:not(.public-home):not(.partner-page) main{padding-top:clamp(28px,4vw,56px)}
.public-page:not(.public-home):not(.partner-page) h1{letter-spacing:.005em;max-width:18ch}
.public-page:not(.public-home):not(.partner-page) h2{letter-spacing:.005em}
.public-page:not(.public-home):not(.partner-page) .eyebrow{letter-spacing:.15em;font-weight:800}
.public-page:not(.public-home):not(.partner-page) .lead{max-width:62ch;color:#263e49;margin-bottom:24px}
.public-page .public-header{border-bottom:2px solid #0a243820;box-shadow:0 4px 16px #06263809}
.public-page .public-links a{transition:color .16s ease,border-color .16s ease}
.public-page .public-links a:hover{color:#a30050}
.public-page .public-menu[aria-expanded=true]{background:var(--oq-yellow);box-shadow:3px 3px 0 var(--oq-navy)}
.public-page .public-footer{border-top:5px solid var(--oq-pink)}
.public-page .public-footer nav a:hover{color:var(--oq-yellow)}
.public-page :is(.button,button:not(.public-menu):not(.presence-marker):not(.presence-popup-close):not(.badge-level):not(.hero-power):not(.dialog-close):not(.game-open)){
  border-radius:5px;box-shadow:3px 3px 0 var(--oq-navy);font-weight:800;
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease;
}
.public-page :is(.button,button:not(.public-menu):not(.presence-marker):not(.presence-popup-close):not(.badge-level):not(.hero-power):not(.dialog-close):not(.game-open)):not(:disabled):hover{
  transform:translateY(-2px);box-shadow:4px 6px 0 var(--oq-navy);
}
.public-page :is(.button,button:not(.public-menu):not(.presence-marker):not(.presence-popup-close):not(.badge-level):not(.hero-power):not(.dialog-close):not(.game-open)):not(:disabled):active{
  transform:translate(2px,2px);box-shadow:1px 1px 0 var(--oq-navy);
}
.public-page :is(button,.button):disabled{opacity:.52;box-shadow:none;cursor:not-allowed}
.public-page :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--oq-pink);outline-offset:3px}
.public-page :is(input,select,textarea){min-height:48px;border:1.5px solid #71838b;border-radius:5px;background:#fffefb;transition:border-color .16s ease,box-shadow .16s ease}
.public-page :is(input,select,textarea):hover:not(:disabled){border-color:var(--oq-navy)}
.public-page :is(input,select,textarea):focus{border-color:var(--oq-navy);box-shadow:0 0 0 4px #00baf226}
.public-page .field label{font-weight:800;line-height:1.35;margin-bottom:3px}
.public-page .check{line-height:1.5}
.public-page .check input{min-height:20px;accent-color:var(--oq-pink)}
.public-page .panel{border:1.5px solid #08283b55;border-radius:var(--oq-radius);background:var(--oq-card);box-shadow:4px 4px 0 #06263813}
.public-page .notice,.public-page .error,.public-page .success{border-radius:0 6px 6px 0;line-height:1.55}
.public-page .error{border-left-width:5px}
.public-page .success{border:2px solid var(--oq-navy);border-left:6px solid var(--oq-yellow);box-shadow:4px 4px 0 #06263820}
.public-page .cards{gap:var(--oq-gap)}
.public-page .event-card,.public-page .home-event{
  border:1.5px solid var(--oq-navy);border-top:6px solid var(--oq-cyan);border-radius:var(--oq-radius);
  background:var(--oq-card);box-shadow:4px 4px 0 #06263822;overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease;
}
.public-page .event-card:hover,.public-page .home-event:hover{transform:translateY(-3px);box-shadow:5px 7px 0 #06263834}
.public-page .event-card:nth-child(3n+2),.public-page .home-event:nth-child(3n+2){border-top-color:var(--oq-pink)}
.public-page .event-card:nth-child(3n+3),.public-page .home-event:nth-child(3n+3){border-top-color:var(--oq-yellow)}
.public-page .event-card h2,.public-page .home-event h2{line-height:1.1;margin:2px 0 8px}
.public-page .event-card .event-price,.public-page .home-event .event-price{font-size:1.08rem;color:var(--oq-navy)}
.public-page .event-card .button,.public-page .home-event .button{width:100%;margin-top:auto}
.public-page .event-poster{border-radius:5px;background:#f2eee5}
.public-page .event-poster figcaption{border-top:1px solid #d8d3ca}
.public-page .event-poster figcaption a:hover{color:#a30050}
.public-page #event-layout .event-info{gap:0}
.public-page #event-layout .event-info div{padding:14px 0;border-bottom:1px solid var(--oq-line)}
.public-page #event-layout>.panel{border-top:6px solid var(--oq-yellow);padding:clamp(22px,3vw,34px)}
.public-page .selected-event{border-left:6px solid var(--oq-cyan);border-radius:0 7px 7px 0;background:#eaf6f5;padding:20px 22px}
.public-page .registration-steps{gap:10px;margin:22px 0 28px}
.public-page .registration-steps li{border:1.5px solid #85949a;border-radius:999px;padding:8px 15px;background:#fffdf8}
.public-page .registration-steps li[aria-current=step]{border-color:var(--oq-navy);box-shadow:2px 2px 0 var(--oq-navy)}
.public-page #booking-review{border-left-color:var(--oq-pink);background:#fff0f6}
.public-page #booking-review .button,.public-page #booking-review button{margin:8px 10px 0 0}
.public-page .admin-event{border:1px solid var(--oq-line);border-radius:6px;background:#fffefb;gap:20px}
.public-page .table-wrap{border:1.5px solid #8ca0a6;border-radius:var(--oq-radius);background:var(--oq-card);overflow:auto}
.public-page th{background:var(--oq-navy);color:#fffdf8;font-weight:800;letter-spacing:.02em}
.public-page td{border-bottom:1px solid #cdd4d3}
.public-page .ranking-table tbody tr{transition:background-color .16s ease}
.public-page .ranking-table tbody tr:nth-child(2n){background:#f5f2e9}
.public-page .ranking-table tbody tr:hover,.public-page .team-rating-row:focus-visible{background:#fff1ad}
.public-page .team-rating-link{text-decoration-thickness:2px;text-underline-offset:4px}
.public-page .team-rating-link:hover{color:#a30050}
.public-page #team-achievements{margin:28px 0 40px}
.public-page .achievement-tracks{gap:22px}
.public-page .achievement-track{border-radius:var(--oq-radius);box-shadow:5px 5px 0 var(--oq-navy);padding:24px}
.public-page .achievement-track:nth-child(3n+2){box-shadow:5px 5px 0 var(--oq-cyan)}
.public-page .achievement-track:nth-child(3n){box-shadow:5px 5px 0 var(--oq-pink)}
.public-page .badge-level{border-radius:7px;min-height:143px;transition:background-color .16s ease,transform .16s ease}
.public-page .badge-level:not(:disabled):hover{transform:translateY(-2px);background:#e9f8fa}
.public-page .badge-level strong{font-size:14px}.public-page .badge-level span{font-size:11px;line-height:1.35}
.public-page .metric{border-radius:var(--oq-radius);border-top:5px solid var(--oq-yellow);padding:20px;background:var(--oq-card)}
.public-page .presence-section{border-radius:var(--oq-radius)}
.public-page .presence-viewport{border:1.5px solid #769ca6;background:linear-gradient(145deg,#dff4f3,#d5e9ed)}
.public-page .presence-popup{border:2px solid var(--oq-navy);box-shadow:5px 5px 0 #06263835}
.public-page .presence-city-link:hover,.public-page .presence-city-link:focus-visible{background:var(--oq-yellow)}
.public-home .hero-actions .button{box-shadow:4px 4px 0 var(--oq-navy)}
.public-home .game-card{border-radius:7px;overflow:hidden}
.public-home .game-open{transition:transform .16s ease,box-shadow .16s ease}
.public-home .game-open:hover{transform:translateY(-2px)}
.partner-page .partner-form-wrap{box-shadow:4px 4px 0 #06263824;border-radius:6px}
.partner-page .partner-card{border-radius:4px}
@media(max-width:760px){
  .public-page:not(.public-home):not(.partner-page) main{padding-top:30px}
  .public-page .event-card,.public-page .home-event{padding:20px}
  .public-page .selected-event{padding:16px}
  .public-page .achievement-track{padding:18px}
  .public-page .registration-steps li{padding:7px 10px}
}
@media(max-width:390px){
  .public-page .achievement-levels.badge-levels{gap:7px}
  .public-page .badge-level{min-height:136px;padding-inline:4px}
  .public-page .event-card h2,.public-page .home-event h2{font-size:27px}
}
@media(prefers-reduced-motion:reduce){
  .public-page *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .public-page :is(.event-card,.home-event,.badge-level,.game-open,.button,button):hover{transform:none!important}
}

.account-preferences{margin-top:24px}.account-preferences>summary{min-height:44px;padding:8px 0;margin-bottom:0;font-size:1.1rem}.account-preferences[open]>summary{margin-bottom:16px}

/* R20: key event facts next to the full poster thumbnail, action within reach. */
.public-page :is(.event-card,.home-event){display:grid;grid-template-columns:104px minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;align-content:start;gap:10px 16px}
.public-page :is(.event-card,.home-event)>.event-poster{grid-column:1;grid-row:1;align-self:start;margin:0;border:0;background:transparent}
.public-page :is(.event-card,.home-event)>.event-poster img{width:100%;height:auto;object-fit:contain;border-radius:4px}
.public-page :is(.event-card,.home-event)>.event-poster figcaption{padding:6px 0 0;border:0;font-size:11px;line-height:1.4}
.public-page :is(.event-card,.home-event)>.event-poster figcaption a{display:flex;align-items:center;min-height:44px}
.public-page .event-card-summary{grid-column:2;grid-row:1;min-width:0;display:flex;flex-direction:column;gap:9px;overflow-wrap:anywhere}
.public-page .event-card-summary h2{font-size:25px;line-height:1.15;margin:0}
.public-page .event-card-summary p{font-size:15px;line-height:1.5;margin:0}
.public-page :is(.event-card,.home-event)>:is(p,small,.button,.badge){grid-column:1/-1}
.public-page :is(.event-card,.home-event)>.event-price{border-top:1px solid #d1dad5;padding-top:12px;font-size:18px;font-weight:800}
.public-page :is(.event-card,.home-event) .event-meta{font-size:13px;line-height:1.5;color:#40515a}
.public-page :is(.event-card,.home-event)>.button{margin-top:7px;align-self:end}
@media(max-width:760px){
 .public-page :is(.event-card,.home-event){grid-template-columns:92px minmax(0,1fr);gap:9px 14px;padding:18px}
 .public-page .event-card-summary h2{font-size:24px}
 .public-page .event-card-summary p{font-size:14px}
}
