/* Flask controls and accessibility, layered on the exported Figma design. */
@font-face{font-family:Onest;src:url('/static/fonts/onest-regular.ttf') format('truetype');font-weight:100 500;font-display:swap}
@font-face{font-family:Onest;src:url('/static/fonts/onest-bold.ttf') format('truetype');font-weight:600 900;font-display:swap}
:root{--font-body:'LXGW Marker Gothic',Onest,'Segoe UI',sans-serif;--font-title:'Kirang Haerang',Onest,sans-serif;--font-note:Caveat,Onest,cursive}
[hidden]{display:none!important}body{line-height:1.6}fieldset{min-width:0}
.languages a{display:grid;place-items:center;min-width:34px;min-height:34px;padding:6px;font-size:var(--type-caption);font-weight:600;line-height:1.25}
.languages a.active{background:var(--plum);color:#fce68d}
.hero-note{display:block}.hero-note,.mascot-caption,.offline-tag{font-family:var(--font-note)}
.hero h1{font-family:var(--font-title);font-weight:400}
.hero-sticker{font-family:var(--font-body)}.hero-sticker>span{min-width:0}
.brand .brand-emblem>svg{flex-shrink:0}.header-social{display:grid;place-items:center}
.member-card{min-width:0}.member-fields input,.member-fields select{min-width:0;width:100%;height:auto;min-height:44px}
.member-heading h3{font-weight:500}.member-heading>div{min-width:0}.member-number,.captain-badge{flex-shrink:0}
.team-name small{display:flex}
.submit-area>.registration-documents{width:100%;display:grid;justify-items:center;margin-bottom:16px}
.document-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;max-width:100%}
.document-buttons .document-button{background:#ffd157;color:var(--plum);min-width:175px;min-height:46px;padding:10px 20px;font-size:var(--type-control)}
.document-buttons .document-button:hover{background:var(--gold)}
.consent{display:flex;align-items:flex-start;gap:12px;text-align:left;font-size:var(--type-control);line-height:1.8;width:100%;cursor:pointer}
.consent>span{color:var(--plum);margin-left:0}.consent input{flex:0 0 20px;width:20px;height:20px;margin:3px 0 0;padding:0;accent-color:var(--cyan)}
.submit-button>span{min-width:0}
.form-error{background:#fff1f2;color:#8c1040;border:2px solid var(--pink);padding:14px;display:block!important;width:100%;max-width:650px;margin-top:16px;font-size:14px!important}
.form-error[hidden]{display:none!important}[aria-invalid=true]{border-color:var(--pink)!important;outline:1px solid var(--pink)}.button:disabled{opacity:.65;cursor:wait}
.timeline-controls{display:flex;gap:12px;justify-content:center;margin:28px 0 0}
.timeline-controls button{border:2px solid var(--plum);background:transparent;padding:8px 17px;color:var(--plum);font-weight:600;min-height:44px}
.timeline-controls button[aria-pressed=true]{background:var(--plum);color:var(--gold)}.chronicle-card.is-current{outline:3px solid var(--pink);outline-offset:5px}
.faq-item summary{display:flex;align-items:center;gap:15px;padding:19px 20px;list-style:none;cursor:pointer;text-align:center;font-size:15px;font-weight:600;line-height:1.7}
.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.faq-item summary .question-text{flex:1;min-width:0}.faq-item[open]{background:#fff0b1;border-color:var(--cyan);box-shadow:4px 4px var(--plum)}
.faq-item[open] .faq-dagger{transform:rotate(90deg);color:var(--pink)}.faq-answer p{padding:0}
.organizer-entry{font-size:12px;margin-top:18px}.organizer-entry a{text-decoration:underline;text-underline-offset:4px}
dialog{max-width:520px;width:calc(100% - 40px);border:3px solid var(--plum);box-shadow:8px 8px 0 var(--plum);background:#fce68d;color:var(--plum);text-align:center;padding:35px;overflow-wrap:anywhere}
dialog::backdrop{background:#2d082aba;backdrop-filter:blur(5px)}dialog h2{font-size:30px;font-weight:600;margin:15px 0}dialog p{line-height:1.8}dialog .eyebrow{justify-content:center}
dialog code{display:block;font-size:12px;margin:20px 0}dialog button{margin-top:10px}.modal-crest{font-size:95px;color:var(--pink);position:relative;line-height:1.2}
.modal-crest span{position:absolute;inset:35px 0 auto;font-size:24px;color:#fff1b2;font-weight:bold}
.menu-toggle{display:none;border:2px solid var(--plum);background:var(--gold);color:var(--plum);padding:9px 12px;min-height:44px;font-weight:600}
@media(max-width:1100px){.header{position:relative;flex-wrap:wrap;height:auto;min-height:107px;padding-block:14px;gap:12px}.header nav{display:none}.menu-toggle{display:block;margin-left:auto}.header nav.is-open{display:flex;flex:0 0 100%;order:4;flex-wrap:wrap;gap:8px;border-top:1px solid var(--plum);padding-top:12px}.header nav a{min-height:44px;padding:10px 12px}}
@media(max-width:700px){.header-actions{width:auto;max-width:none}.hero h1{font-size:clamp(62px,17vw,85px)}.hero-visual{transform:none}.hero-sticker{min-width:0;max-width:100%}.member-fields input,.member-fields select{font-size:16px}.member-heading{grid-template-columns:32px minmax(0,1fr);gap:10px}.member-heading .captain-badge{grid-column:2;justify-self:center;max-width:100%}.member-heading h3{font-size:14px}.consent{font-size:12px}.document-buttons{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px}.document-buttons .document-button{min-width:0;font-size:12px;padding:10px 8px}.faq-item summary{font-size:14px;line-height:1.7;padding:18px 12px;gap:10px}.faq-answer{padding:0 18px 20px}.footer-top>.handwritten{max-width:100%}.footer-brand{font-size:21px}.timeline-controls{gap:7px}.timeline-controls button{padding:7px 10px}dialog{padding:24px}}
@media(max-width:430px){.header-actions{flex-basis:100%;justify-content:space-between}.header .small-button{width:auto;max-width:65%}.contact-actions{width:100%}.contact-actions .button{white-space:normal}.submit-button{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.faq-dagger{transition:none}}
