/* Practical controls and readable type; retain SLAY's ruby and gold direction. */
:root { --muted:#b6aca0; scroll-padding-top:105px; }
input,textarea,select { font-size:16px; }
textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.primary-button { background:linear-gradient(110deg,#8f2415,#a83818 70%,#a94b22); color:#fff5e7; font-size:14px; min-height:48px; }
.secondary-button,.quiet-button { font-size:13px; min-height:44px; }
.text-link { font-size:13px; min-height:38px; }
.field { font-size:14px; line-height:1.65; }
.field input,.field textarea,.field select,textarea,select { font:400 16px/1.55 var(--sans); max-width:100%; }
.field-hint,.form-error,.editor-status,.dialog-intro,.auth-help,.auth-privacy { font-size:13px; line-height:1.75; }
.form-error { color:#ffb2a5; overflow-wrap:anywhere; }
.field-hint a,.auth-help a,.auth-privacy a,.ballot-footnote a { color:var(--gold); text-decoration:underline; text-underline-offset:4px; }
.auth-help { margin:12px 0; }
.auth-privacy { margin-bottom:18px; }
.auth-tabs button { font-size:14px; min-height:44px; }
.auth-dialog { max-height:calc(100dvh - 32px); overflow:auto; }
#password-change-form { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.navigation { font-size:14px; gap:24px; }
.navigation { align-items:center; }
.navigation .presentation-link { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; min-height:44px; padding-left:22px; border-left:1px solid #b8844955; color:var(--gold); line-height:1.25; white-space:nowrap; }
.presentation-link small { font-size:10px; letter-spacing:.5px; color:var(--muted); }
.menu-toggle { display:none; background:transparent; border:1px solid #d5ab6d66; color:var(--text); min-height:44px; padding:9px 12px; gap:9px; }
@media(min-width:701px) and (max-width:1200px) {
  .menu-toggle { display:inline-flex; align-items:center; font-size:12px; margin-left:auto; }
  .header .login-button { margin-left:0; }
  .navigation { display:none; }
}
@media(max-width:1200px) {
  .navigation.is-open { display:flex; position:absolute; left:5%; right:5%; top:100%; margin:0; padding:14px 20px; flex-direction:column; align-items:stretch; gap:0; background:#15100dfa; border:1px solid #b8844977; box-shadow:0 18px 40px #0009; }
  .navigation.is-open a { padding:14px 0; min-height:46px; font-size:15px; }
  .navigation.is-open .presentation-link { padding:14px 0; margin-top:6px; border-left:0; border-top:1px solid #b8844955; }
}
.connection-notice { position:relative; z-index:25; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 5%; background:#2b160e; border-block:1px solid #d7a86170; font-size:14px; line-height:1.7; }
body:has(>.header:not(.inner-header))>.connection-notice { margin-top:105px; }
.connection-notice button { flex-shrink:0; }
.home-phase { color:#dac8ad; font:500 13px/1.65 var(--sans)!important; letter-spacing:0!important; max-width:390px; margin-top:16px; }
.nomination-heading>p,.award-copy>p { font-size:14px; line-height:1.7; }
.carousel-controls { position:relative; width:max-content; max-width:100%; margin-inline:auto; }
#award-autoplay { position:absolute; left:calc(100% + 12px); top:50%; transform:translateY(-50%); display:grid; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; color:#b9a486; background:transparent; border:0; border-radius:50%; }
#award-autoplay:hover { color:var(--gold); background:#b8844914; }
#award-autoplay:disabled { opacity:.45; }
#award-autoplay svg { display:block; pointer-events:none; }
@media(max-width:370px){#award-autoplay{left:calc(100% + 2px)}}
.voting-rules { max-width:900px; margin:35px auto 0; padding:22px 25px; border:1px solid var(--line); background:#100c09; color:var(--muted); font-size:14px; line-height:1.85; }
.voting-rules summary { cursor:pointer; color:var(--gold); font-weight:600; min-height:32px; }
.voting-rules p { margin-top:16px; }
.rule p,.about-copy p,.gallery-intro { font-size:14px; line-height:1.85; }
.rule h3 { font-size:16px; }
.header-back,.ballot-topline .text-link { font-size:13px; }
.phase-banner { font-size:14px; line-height:1.8; }
.sidebar-hint { font-size:12px; line-height:1.75; }
.ballot-nav-item { font-size:13px; min-height:44px; }
.nav-index { color:#c3ad8c; }
.ballot-heading p { font-size:15px; line-height:1.7; }
.candidate-info small { font-size:13px; line-height:1.7; color:var(--muted); }
.custom-toggle small,.new-suggestion small { font-size:13px; line-height:1.65; }
.custom-toggle strong { font-size:16px; }
.suggestion-option { min-height:48px; font-size:15px; }
.suggestion-status { display:block; font-size:12px; line-height:1.5; color:#d8bb8d; margin-top:4px; }
.save-copy p { font-size:13px; line-height:1.6; }
.save-copy strong { font-size:15px; line-height:1.55; overflow-wrap:anywhere; }
.ballot-save { flex-wrap:wrap; gap:16px; }
.ballot-save .save-copy { flex:1 1 240px; min-width:0; }
.ballot-navigation .text-link,.ballot-navigation .quiet-button { font-size:13px; min-height:44px; }
.ballot-footnote { color:#b6aca0; font-size:13px; line-height:1.85; }
.ballot-footer { font-size:12px; align-items:center; flex-wrap:wrap; }
.ballot-footer a { padding:8px 0; }
.progress-heading,.progress-heading strong { font-size:13px; }
.admin-section-nav { position:sticky; top:0; z-index:35; display:flex; flex-wrap:wrap; gap:7px; padding:12px 0; margin:25px 0; background:#080706f5; backdrop-filter:blur(12px); border-block:1px solid var(--line); }
.admin-section-nav a { padding:9px 12px; min-height:40px; font-size:13px; color:var(--gold); border:1px solid #b8844938; }
.admin-section-nav a:hover { background:#b8844918; }
.admin-metrics span,.participant-identity p,.participant-state span { font-size:13px; line-height:1.7; }
.editor-card { min-width:0; margin:0; }
.editor-card legend { font-size:14px; color:var(--gold); padding:0 8px; }
.upload-label,.photo-actions .quiet-button,.nominee-photo-actions .quiet-button { font-size:13px; min-height:40px; }
.participant-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.participant-row { min-width:0; }
.participant-identity,.participant-state { min-width:0; overflow-wrap:anywhere; }
.result-accordion>summary { min-height:52px; gap:15px; }
.result-accordion>summary>small,.nominee-photo-card small,.nominee-photo-card p { font-size:13px; }
.result-row small { display:block; color:var(--muted); line-height:1.6; font-size:12px; }
.audit-details { white-space:pre-wrap; overflow:auto; max-height:260px; font:12px/1.7 var(--sans); background:#130e0b; padding:12px; border:1px solid var(--line); }
#admin-sessions h3 { margin:28px 0 12px; }
#admin-suggestions,#admin-history,#admin-sessions { margin-top:45px; scroll-margin-top:100px; }
#participant-recovery { margin-top:22px; }
#participant-recovery input { font-size:16px; }
#suggestion-list article,#admin-audit-list article,#admin-sessions-list article { padding:18px 0; border-bottom:1px solid var(--line); }
.show-console { font-size:13px; }
.show-hint,.show-status { font-size:12px; line-height:1.65; }
.show-tool { min-height:40px; }
#results-share-instructions,.show-share-privacy { font-size:13px; line-height:1.75; }
.show-share-dialog { max-height:calc(100dvh - 24px); overflow:auto; }
.emblem p { font-size:13px; line-height:1.7; }
.emblem h2 { overflow-wrap:anywhere; }
.utility-page .inner-header { position:absolute; }
.utility-shell { max-width:1160px; padding:150px 6% 75px; margin:auto; }
.utility-shell>h1 { font:500 clamp(40px,6vw,76px)/1.05 var(--serif); color:var(--text); margin:15px 0 25px; }
.utility-intro { font-size:16px; color:var(--muted); line-height:1.8; max-width:760px; }
.utility-nav { display:flex; flex-wrap:wrap; gap:10px 24px; margin:24px 0; }
.utility-section { margin-top:40px; padding-top:30px; border-top:1px solid var(--line); scroll-margin-top:105px; }
.utility-section h2 { font-size:38px; margin-bottom:20px; }
.utility-section p,.utility-section li { font-size:15px; color:var(--muted); line-height:1.85; margin-bottom:14px; }
.utility-section a { color:var(--gold); text-decoration:underline; text-underline-offset:4px; }
.recovery-form { max-width:520px; margin:32px 0; }
.results-status { margin:25px 0; padding:20px; border:1px solid #b8844955; color:var(--muted); font-size:15px; line-height:1.8; background:#110d09; }
.published-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:30px; }
.published-card { min-width:0; padding:24px; border:1px solid var(--line); background:linear-gradient(140deg,#1b120e,#0c0907); scroll-margin-top:110px; }
.published-card-heading { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.published-card-heading img { width:76px; height:76px; object-fit:contain; flex-shrink:0; }
.published-card h2 { font-size:34px; line-height:1.1; overflow-wrap:anywhere; }
.published-winner { display:flex; align-items:center; gap:15px; margin-top:18px; min-width:0; }
.published-winner img,.published-monogram { width:70px; height:70px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.published-monogram { display:grid; place-items:center; background:#38251a; color:var(--gold); font:500 28px var(--serif); }
.published-winner strong { display:block; font:500 29px/1.15 var(--serif); overflow-wrap:anywhere; }
.published-winner small,.published-meta { display:block; font-size:13px; color:var(--muted); line-height:1.7; }
.published-meta { margin-top:20px; }
.published-tie { font-size:12px; color:var(--gold); letter-spacing:1.3px; margin-bottom:10px; }
.published-wait { color:var(--muted); font-size:14px; line-height:1.8; }
@media(max-width:900px) {
  .admin-section-nav { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; }
  .admin-section-nav a { white-space:nowrap; flex-shrink:0; }
  .published-grid { gap:18px; }
}
@media(max-width:700px) {
  :root { scroll-padding-top:25px; }
  .menu-toggle { display:inline-flex; align-items:center; font-size:12px; margin-left:auto; }
  .header .login-button { margin-left:0; }
  .header { gap:10px; }
  .navigation.is-open { display:flex; position:absolute; left:5%; right:5%; top:80px; margin:0; padding:14px 20px; flex-direction:column; gap:0; background:#15100dfa; border:1px solid #b8844977; box-shadow:0 18px 40px #0009; }
  .navigation.is-open a { padding:14px 0; min-height:46px; font-size:15px; }
  .hero-bottom-copy>.primary-button { margin-top:230px; }
  .home-phase { font-size:12px!important; max-width:290px; }
  .hero { min-height:max(840px,100svh); }
  .connection-notice { flex-direction:column; align-items:stretch; padding:16px 6%; }
  body:has(>.header:not(.inner-header))>.connection-notice { margin-top:80px; }
  .field-hint,.dialog-intro,.form-error,.editor-status { font-size:13px; }
  .phase-banner { font-size:13px; }
  .ballot-topline .eyebrow { font-size:9px; max-width:175px; }
  .ballot-topline .text-link { font-size:12px; }
  .ballot-nav-item { font-size:12px; min-height:44px; }
  #ballot-nav { scroll-padding-inline:15px; }
  .ballot-heading p { font-size:14px; }
  .ballot-candidates { gap:18px; }
  .candidate-image { aspect-ratio:1.65; }
  .candidate-info { padding:16px; }
  .candidate-info strong { font-size:29px; line-height:1.15; }
  .candidate-info small { font-size:13px; }
  .ballot-save { gap:12px; }
  .ballot-save.has-pending-choice { position:fixed; z-index:60; inset:auto 0 0; margin:0; padding:13px 6% calc(13px + env(safe-area-inset-bottom)); display:grid; grid-template-columns:1fr 1fr; gap:10px; background:#17100df7; border-top:1px solid #c6a47580; box-shadow:0 -10px 30px #0007; backdrop-filter:blur(12px); }
  .ballot-save.has-pending-choice .save-copy { grid-column:1/-1; }
  .ballot-save.has-pending-choice button { width:100%; min-width:0; font-size:13px; padding:12px 8px; min-height:46px; }
  .ballot-content:has(.has-pending-choice) { padding-bottom:180px; }
  .ballot-navigation .quiet-button,.ballot-navigation .text-link { font-size:12px; }
  .ballot-footnote { font-size:12px; }
  .ballot-footer { font-size:12px; }
  .admin-metrics span { font-size:12px; }
  .participant-actions { align-items:stretch; flex-direction:column; }
  .participant-actions button { width:100%; }
  .editor-toolbar { gap:18px; }
  .result-accordion>summary>small { font-size:12px; }
  .show-hint { font-size:11px; }
  .show-status { font-size:12px; }
  .utility-shell { padding:115px 6% 45px; }
  .utility-shell>h1 { font-size:49px; }
  .utility-intro { font-size:15px; }
  .published-grid { grid-template-columns:minmax(0,1fr); }
  .published-card { padding:20px; }
  .published-card h2 { font-size:31px; }
  .published-card-heading img { width:62px; height:62px; }
  .emblem p { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; } }

@media(max-width:700px){.ballot-save.has-pending-choice:has(#vote-save-next[hidden]) #vote-submit{grid-column:1/-1}.menu-toggle{flex-shrink:0}}
@media(max-width:360px){.header{gap:8px}.menu-toggle{font-size:0;padding:8px;min-width:40px}.menu-toggle span{font-size:18px}.header>.brand{font-size:26px}.header>.login-button{min-width:86px;padding:10px;font-size:11px}}

.utility-page>.connection-notice{margin-top:105px}.utility-page:has(>.connection-notice:not([hidden])) .utility-shell{padding-top:45px}
@media(max-width:700px){.utility-page>.connection-notice{margin-top:80px}.utility-page:has(>.connection-notice:not([hidden])) .utility-shell{padding-top:35px}}
#admin-suggestions .participant-filters{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}
@media(max-width:700px){#admin-suggestions .participant-filters{grid-template-columns:minmax(0,1fr)}}

/* Keep the year together beneath the title, aligned to its right edge. */
.hero h1 { display:grid; width:max-content; max-width:100%; align-items:start; gap:12px; }
.hero .hero-year { display:block; justify-self:end; position:static; font-size:clamp(28px,3.4vw,48px); line-height:1; letter-spacing:.04em; white-space:nowrap; color:var(--gold); }
