:root{--bg:#f0f9ff;--surface:#fff;--surface-muted:#e8f2f8;--text:#0c4a6e;--heading:#082f49;--muted:#475569;--border:#bae6fd;--border-strong:#64809a;--primary:#0ea5e9;--on-primary:#0f172a;--cta:#ea580c;--cta-hover:#c2410c;--on-cta:#000;--on-cta-hover:#fff;--link:#0369a1;--ring:#0c4a6e;--selected:#e0f2fe;--selected-border:#0284c7;--alert-bg:#fef2f2;--alert-text:#991b1b;--notice-bg:#dcfce7;--notice-text:#14532d;--shadow-sm:0 1px 2px #0c4a6e14;--shadow-md:0 12px 32px #0c4a6e1f;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c4a6e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1b2b;--surface:#12283b;--surface-muted:#1a3347;--text:#dbeefa;--heading:#f0f9ff;--muted:#a5bbcb;--border:#274559;--border-strong:#7b98ad;--primary:#38bdf8;--on-primary:#0f172a;--cta:#fb923c;--cta-hover:#fdba74;--on-cta:#000;--on-cta-hover:#000;--link:#7dd3fc;--ring:#bae6fd;--selected:#0f3a54;--selected-border:#38bdf8;--alert-bg:#450a0a;--alert-text:#fecaca;--notice-bg:#14391f;--notice-text:#bbf7d0;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 32px #0006;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dbeefa' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b1b2b;--surface:#12283b;--surface-muted:#1a3347;--text:#dbeefa;--heading:#f0f9ff;--muted:#a5bbcb;--border:#274559;--border-strong:#7b98ad;--primary:#38bdf8;--on-primary:#0f172a;--cta:#fb923c;--cta-hover:#fdba74;--on-cta:#000;--on-cta-hover:#000;--link:#7dd3fc;--ring:#bae6fd;--selected:#0f3a54;--selected-border:#38bdf8;--alert-bg:#450a0a;--alert-text:#fecaca;--notice-bg:#14391f;--notice-text:#bbf7d0;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 32px #0006;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dbeefa' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-padding:96px 0 128px}body{background-color:var(--bg);min-height:100dvh;color:var(--text);margin:0;font:16px/1.6 Be Vietnam Pro,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--link);text-underline-offset:2px}h1,h2{color:var(--heading);text-wrap:balance}h2{margin:0;font-size:1.5rem;line-height:1.3}small,.muted{color:var(--muted)}:focus-visible{outline:3px solid var(--ring);outline-offset:2px}main:focus{outline:none}.skip-link{z-index:100;background:var(--surface);border-radius:8px;padding:8px 16px;position:absolute;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}.topbar{flex-wrap:wrap;align-items:center;gap:8px 16px;max-width:1200px;margin:0 auto;padding:16px;display:flex}.brand{color:var(--heading);align-items:center;gap:8px;font-weight:700;text-decoration:none;display:inline-flex}.topbar nav{order:3;gap:4px;width:100%;display:flex}.topbar nav a{min-height:44px;color:var(--text);border-radius:999px;align-items:center;padding:0 16px;font-weight:500;text-decoration:none;transition:background-color .16s ease-out;display:inline-flex}.topbar nav a:hover{background:var(--surface-muted)}.topbar nav a[aria-current=page]{background:var(--surface);color:var(--heading);box-shadow:var(--shadow-sm);font-weight:600}.controls{gap:8px;margin-left:auto;display:flex}.theme-label{display:none}button,select,input{font:inherit;color:inherit}button,select{background:var(--surface);border:1px solid var(--border-strong);touch-action:manipulation;border-radius:10px;min-height:44px;padding:8px 16px}button{justify-content:center;align-items:center;gap:8px;font-weight:500;transition:background-color .16s ease-out,border-color .16s ease-out,transform .12s ease-out;display:inline-flex}button:not(:disabled){cursor:pointer}button:not(:disabled):active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost:not(:disabled):hover,.theme-toggle:hover{background:var(--surface-muted)}button.primary{background:var(--cta);border-color:var(--cta);color:var(--on-cta);font-weight:600}button.primary:not(:disabled):hover{background:var(--cta-hover);border-color:var(--cta-hover);color:var(--on-cta-hover)}select{background:var(--surface) var(--chevron) right 12px center / 16px no-repeat;appearance:none;padding-right:36px}button[aria-busy=true]:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}main{max-width:1200px;margin:0 auto;padding:0 16px 48px}.hero{padding:16px 0 24px;position:relative}.flight-path{width:clamp(240px,30vw,380px);stroke:var(--border-strong);display:none;position:absolute;top:24px;right:0}.flight-path circle{fill:var(--cta);stroke:none}.hero h1{letter-spacing:-.02em;max-width:18ch;margin:0;font-size:clamp(2.1rem,6vw,3.5rem);font-weight:700;line-height:1.12}.lede{max-width:60ch;margin:12px 0 0;font-size:1.125rem}.steps{gap:8px;margin:24px 0 0;padding:0;list-style:none;display:flex}.hero.compact .steps{justify-content:center}.steps li{color:var(--text);align-items:center;gap:8px;font-size:.9375rem;font-weight:500;display:flex}.steps li:not(:last-child):after{content:"";background:var(--border-strong);border-radius:1px;width:clamp(12px,5vw,48px);height:2px}.steps li.current,.steps li.complete{color:var(--heading)}.step-mark{background:var(--surface);border:2px solid var(--border-strong);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.875rem;font-weight:600;display:inline-grid}.current .step-mark{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.complete .step-mark{background:var(--selected);border-color:var(--selected-border)}.alert,.notice{border-radius:12px;align-items:flex-start;gap:8px;max-width:560px;margin:0 auto 16px;padding:12px 16px;display:flex}.alert>svg,.notice>svg{flex:none;margin-top:2px}.alert{background:var(--alert-bg);color:var(--alert-text)}.notice{background:var(--notice-bg);color:var(--notice-text)}.field{display:block}.field>span:first-child{color:var(--heading);margin-bottom:4px;font-weight:500;display:block}.field.required>span:first-child:after{content:" *";color:var(--alert-text)}.field input{background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;width:100%;min-height:48px;padding:8px 14px}.field select{width:100%;min-height:48px;padding:8px 14px}.field input:hover,.field select:hover{border-color:var(--selected-border)}.panel{background:var(--surface);border:1px solid var(--border);max-width:560px;box-shadow:var(--shadow-md);border-radius:20px;margin:0 auto;padding:24px;animation:.24s ease-out rise}.stack{gap:16px;display:grid}.stack>p{margin:0}.panel-icon{background:var(--selected);width:56px;height:56px;color:var(--heading);border-radius:50%;justify-self:center;place-items:center;display:grid}.panel-icon.success{background:var(--notice-bg);color:var(--notice-text)}.done{text-align:center}.tags{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin:0;padding:0 0 16px;list-style:none;display:flex}.tags li{background:var(--selected);color:var(--heading);border-radius:999px;padding:2px 10px;font-size:.875rem;font-weight:500}.check{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.city input,.check input{background:var(--surface) center / 16px no-repeat;border:2px solid var(--border-strong);appearance:none;width:22px;height:22px;cursor:inherit;border-radius:6px;flex:none;margin:0;transition:background-color .14s ease-out,border-color .14s ease-out}.check input{margin-top:2px}.city input:checked,.check input:checked{background-color:var(--primary);border-color:var(--selected-border);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f172a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}.actions{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.actions.center{justify-content:center}.code-input{font-variant-numeric:tabular-nums;letter-spacing:.32em;text-align:center;font-size:1.75rem;font-weight:600}.pick-layout{gap:16px;padding-bottom:96px;display:grid}.pick-toolbar{z-index:20;background:var(--bg);padding:8px 0;position:sticky;top:0}.search-box{display:block;position:relative}.search-box>svg{color:var(--muted);pointer-events:none;position:absolute;top:15px;left:14px}.search-box input{padding-left:42px}.city-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:10px;margin:8px 0 0;padding:0;list-style:none;display:grid}.city-groups{columns:14rem;column-gap:32px;margin-top:8px}.country-group{break-inside:avoid;padding-bottom:20px}.country-group h2{color:var(--muted);border-bottom:1px solid var(--border-strong);margin:0 0 4px;padding-bottom:4px;font-size:.875rem;font-weight:600}.country-group ul{margin:0;padding:0;list-style:none}.city{cursor:pointer;border-radius:6px;align-items:center;gap:10px;min-height:44px;padding:4px 6px;transition:background-color .16s ease-out;display:flex}.city:hover{background:var(--surface-muted)}.city.checked{background:var(--selected)}.city.checked .city-name{font-weight:600}.city:has(input:disabled){opacity:.5;cursor:not-allowed}.city:has(input:focus-visible){outline:3px solid var(--ring);outline-offset:2px}.city input:focus-visible{outline:none}.city-name{overflow-wrap:anywhere;min-width:0;color:var(--heading);line-height:1.3}.empty{text-align:center;padding:32px 0}.tray{z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow-md);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;display:grid;position:fixed;inset:auto 0 0}.tray-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;display:grid}.tray-head strong{color:var(--heading)}.dots{grid-row:2;gap:4px;display:flex}.dot{background:var(--surface-muted);width:16px;height:6px;box-shadow:inset 0 0 0 1px var(--border-strong);border-radius:3px;transition:background-color .16s ease-out}.dot.filled{background:var(--selected-border);box-shadow:none}.tray-toggle{grid-area:1/2/span 2;width:44px;padding:0}.tray-toggle svg{transition:transform .16s ease-out}.tray-toggle.open svg{transform:rotate(180deg)}.tray-body{grid-area:2/1/auto/-1;display:none}.tray-body.open{display:block}.tray-hint{margin:0;font-size:.9375rem}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--selected);border-color:var(--selected-border);min-height:40px;color:var(--heading);border-radius:999px;padding:4px 12px}.chips+.tray-hint{margin-top:12px}.captcha:not(:empty){justify-content:center;margin-top:16px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;margin:0 0 24px;padding:16px 24px;display:inline-flex}.stat strong{color:var(--heading);font-variant-numeric:tabular-nums;font-size:2rem;line-height:1.2}.podium{gap:12px;margin:0 0 24px;padding:0;list-style:none;display:grid}.podium-card{border-top:2px solid var(--heading);align-content:start;gap:2px;padding:16px 0;display:grid}.podium-rank{color:var(--heading);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:1}.podium-name{color:var(--heading);margin-top:8px;font-size:1.25rem;font-weight:700;line-height:1.25}.podium-score{color:var(--heading);font-variant-numeric:tabular-nums;margin-top:8px;font-weight:600}.podium-card.place-1{background:var(--heading);border-top:none;border-radius:8px;padding:24px}.place-1 .podium-rank,.place-1 .podium-name,.place-1 .podium-score,.place-1 small{color:var(--bg)}.place-1 .podium-rank{font-size:clamp(3.5rem,8vw,5.5rem)}.place-1 .podium-name{font-size:clamp(1.75rem,4vw,2.75rem);line-height:1.1}.board{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:8px 16px}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:12px 8px}tbody tr:last-child td{border-bottom:none}th{color:var(--muted);font-size:.875rem;font-weight:600}.rank-cell{width:56px;color:var(--heading);font-variant-numeric:tabular-nums;font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}.bar{background:var(--surface-muted);border-radius:2px;height:4px;margin-top:6px;display:block;overflow:hidden}.bar>span{background:var(--selected-border);height:100%;transform:scaleX(var(--share,0));transform-origin:0;display:block}.admin-search{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:16px;display:flex}.admin-search .field{flex:260px;max-width:420px}.admin-board{position:relative;overflow-x:auto}.admin-board table{min-width:960px}.admin-time{font-variant-numeric:tabular-nums}.admin-cities{min-width:240px}.admin-actions button{white-space:nowrap;width:100%;display:flex}.admin-actions button+button{margin-top:8px}button.danger{background:var(--alert-bg);border-color:var(--alert-text);color:var(--alert-text);font-weight:600}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.prose{max-width:680px}.prose h1{margin:0 0 16px;font-size:1.75rem;line-height:1.25}.prose .alert{max-width:none;margin:0 0 16px}.panel.stack>h1{margin:0;font-size:1.75rem}.skeleton{background:var(--surface-muted);border-radius:14px;min-height:72px;animation:1.2s ease-in-out infinite alternate pulse}.skeleton-row{border-radius:8px;min-height:40px;margin:8px 0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{to{opacity:.5}}@media (width>=480px){.theme-label{display:inline}}@media (width>=640px){.podium{grid-template-columns:3fr 2fr;gap:16px 32px}.podium-card.place-1{grid-row:span 2}.panel{padding:32px}}@media (width>=768px){.topbar{padding:20px 24px}.topbar nav{order:0;width:auto;margin-left:16px}main{padding:0 24px 64px}.hero{padding:32px 0}.flight-path{display:block}}@media (width>=1024px){.pick-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:32px;padding-bottom:0}.tray{top:16px;border:1px solid var(--border);border-radius:20px;grid-template-columns:minmax(0,1fr);gap:16px;padding:20px;position:sticky;inset:16px auto auto}.tray-toggle{display:none}.tray-head{gap:8px}.tray-head strong{font-size:1.125rem}.tray-body{grid-row:auto;display:block}.tray-cta{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
