@font-face{font-family:VHU Sans;font-weight:100 600;src:local(Arial),local(ArialMT),local(Helvetica Neue),local(Helvetica),local(Liberation Sans),local(Roboto)}@font-face{font-family:VHU Sans;font-weight:700 900;src:local(Arial Bold),local(Arial-BoldMT),local(Helvetica Neue Bold),local(Helvetica-Bold),local(Liberation Sans Bold),local(Roboto Bold)}:root{--vhu-navy:#003c70;--vhu-blue:#0075c9;--vhu-sky:#15bdeb;--vhu-gold:#ffc72c;--vhu-orange:#f47c20;--ink:#14243a;--muted:#667085;--surface:#fff;--canvas:#f2f7fb;--line:#d8e3ef;--radius:18px;--shadow:0 14px 36px #00305d1f;--font-family:"VHU Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;--events-canvas:#0043d3;--events-deep:#002b8f;--header-gradient:linear-gradient(105deg, #002b8f, #0043d3);--glow-sky:#15bdeb47;--glow-indigo:#0018f257;--shadow-events:0 14px 36px #00125838;--primary-gradient:linear-gradient(110deg, #0043d3 0%, var(--vhu-blue) 62%, #0a8fd6 100%);--cta-gradient:linear-gradient(110deg, #df7917, #ffbb28);--on-dark:#fff;--on-dark-muted:#d9f3ff;--on-dark-line:#ffffff38;--glass:#ffffff1a;--glass-strong:#ffffff29;--success:#0f7a55;--success-soft:#e3f7ee;--success-on-dark:#5ef0b4;--danger:#b42318;--danger-soft:#fdecea;--warning:#9a5b00;--warning-soft:#fff4dc;--info-soft:#e6f4fd;--team-a:#ffc72c;--team-b:#15bdeb;--team-c:#f47c20;--team-d:#19c39a;--team-e:#ff7eb6;--team-f:#b9a6ff;--on-team:#14243a;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:var(--radius);--radius-xl:28px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:48px;--space-9:64px;--gutter:clamp(16px, 4vw, 32px);--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:clamp(1.5rem, 4.6vw, 2.1rem);--fs-3xl:clamp(1.9rem, 6vw, 3rem);--fs-display:clamp(2.4rem, 11vw, 5rem);--fs-score:clamp(2.6rem, 12vw, 4.2rem);--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-1:.15s;--dur-2:.3s;--dur-3:.6s;--dur-4:.9s;--z-header:20;--z-sticky:30;--z-dock:40;--z-dialog:50;--z-toast:60;--z-confetti:70;--focus-ring:0 0 0 3px #fff, 0 0 0 6px var(--vhu-blue);--focus-ring-dark:0 0 0 3px var(--vhu-gold)}.theme-events{--canvas:#0043d3;--shadow:var(--shadow-events)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-width:320px;font-family:var(--font-family);font-size:var(--fs-base);color:var(--ink);background:var(--canvas);margin:0;line-height:1.5;overflow-x:hidden}.theme-events{color:var(--on-dark);background:radial-gradient(circle at 12% 8%, var(--glow-sky) 0, transparent 24rem), radial-gradient(circle at 92% 30%, var(--glow-indigo) 0, transparent 30rem), var(--canvas);background-attachment:fixed}img,svg{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--vhu-blue);font-weight:700}.theme-events a:not(.btn){color:var(--vhu-gold)}.theme-events .card:not(.card--glass) a:not(.btn),.theme-events .dialog a:not(.btn),.theme-events .surface a:not(.btn),.theme-events .demo-dock a,.theme-events .alert a{color:var(--vhu-blue)}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;line-height:1.12}p{margin:0}.num,.tabular{font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid var(--vhu-blue);outline-offset:3px;border-radius:4px}.theme-events :focus-visible,.on-dark :focus-visible{outline-color:var(--vhu-gold)}.surface :focus-visible,.dialog :focus-visible,.demo-dock :focus-visible,.card:not(.card--glass) :focus-visible{outline-color:var(--vhu-blue)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--vhu-gold);padding:10px 14px;position:absolute;top:-60px;left:12px;color:var(--ink)!important}.skip-link:focus{top:12px}.container{width:100%;max-width:1180px;padding-inline:var(--gutter);margin:0 auto}.container--narrow{max-width:720px}.page{padding-block:var(--space-6) var(--space-9)}.stack{gap:var(--space-4);display:grid}.stack--lg{gap:var(--space-6)}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.row--between{justify-content:space-between}.grid-2{gap:var(--space-5);display:grid}@media (width>=900px){.grid-2{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start}}.app-header{z-index:var(--z-header);color:var(--on-dark);background:var(--header-gradient);border-bottom:1px solid var(--on-dark-line);position:sticky;top:0;box-shadow:0 3px 12px #00104c3d}.app-header__inner{align-items:center;gap:var(--space-3);min-height:60px;display:flex}.brand{align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex;color:var(--on-dark)!important}.brand__mark{background:var(--vhu-navy);border:2px solid var(--vhu-gold);width:40px;height:40px;color:var(--vhu-gold);letter-spacing:.04em;border-radius:12px;flex:none;place-items:center;font-size:.78rem;font-weight:900;display:grid}.brand__logo{object-fit:contain;flex:none;width:44px;height:44px}.brand__text{min-width:0;line-height:1.15;display:grid}.brand__name{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:900;overflow:hidden}.brand__sub{font-size:var(--fs-xs);color:var(--on-dark-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:400;overflow:hidden}.app-header__nav{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.nav-link{border-radius:var(--radius-pill);min-height:40px;font-size:var(--fs-sm);border:1px solid #0000;align-items:center;gap:6px;padding:0 12px;text-decoration:none;display:inline-flex;color:var(--on-dark)!important}.nav-link:hover{background:var(--glass)}.nav-link[aria-current=page]{background:var(--glass-strong);border-color:var(--on-dark-line)}.user-chip{border-radius:var(--radius-pill);background:var(--glass);border:1px solid var(--on-dark-line);min-height:40px;font-size:var(--fs-sm);color:var(--on-dark);cursor:pointer;align-items:center;gap:8px;padding:3px 12px 3px 3px;font-weight:700;display:inline-flex}.avatar{background:var(--vhu-gold);width:32px;height:32px;color:var(--ink);border-radius:50%;place-items:center;font-size:.8rem;font-weight:900;display:grid}.hide-sm{display:none!important}@media (width>=640px){.hide-sm{display:revert!important}.show-sm-only{display:none!important}}.eyebrow{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--vhu-blue);align-items:center;gap:8px;font-weight:900;display:inline-flex}.theme-events .eyebrow,.on-dark .eyebrow{color:var(--vhu-gold)}.title-xl{font-size:var(--fs-3xl);font-weight:900}.title-display{font-size:var(--fs-display);letter-spacing:-.03em;font-weight:900;line-height:.98}.hl-gold{color:var(--vhu-gold)}.lead{font-size:var(--fs-lg);color:var(--on-dark-muted)}.muted{color:var(--muted)}.theme-events .muted-dark{color:var(--on-dark-muted)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.btn{--btn-h:48px;min-height:var(--btn-h);border-radius:var(--radius-pill);font-weight:900;font-size:var(--fs-base);cursor:pointer;transition:transform var(--dur-1) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), filter var(--dur-2);-webkit-tap-highlight-color:transparent;border:0;justify-content:center;align-items:center;gap:10px;padding:0 22px;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;filter:grayscale(.6);opacity:.6}.btn--lg{--btn-h:56px;font-size:var(--fs-lg);padding:0 28px}.btn--block{width:100%}.btn--sm{--btn-h:38px;font-size:var(--fs-sm);padding:0 14px}.btn--cta{background:var(--cta-gradient);box-shadow:0 10px 24px #df791759,inset 0 -3px #0000001f;color:var(--ink)!important}.btn--cta:hover:not(:disabled){box-shadow:0 14px 30px #ffbb2873,inset 0 -3px #0000001f}.btn--primary{background:var(--primary-gradient);box-shadow:0 10px 22px #15bdeb4d;color:#fff!important}.btn--primary:hover:not(:disabled){box-shadow:0 12px 28px #15bdeb73}.btn--ghost{background:var(--glass);border:1px solid #ffffff7a;color:var(--on-dark)!important}.btn--ghost:hover:not(:disabled){background:var(--glass-strong)}.btn--secondary{border:1.5px solid var(--line);background:#fff;color:var(--vhu-navy)!important}.btn--secondary:hover:not(:disabled){border-color:var(--vhu-blue)}.btn--ms{background:#fff;border-radius:14px;font-weight:700;box-shadow:0 12px 28px #0012584d;color:#1b1b1b!important}.btn--ms:hover{box-shadow:0 14px 34px #15bdeb73}.ms-logo{grid-template-columns:9px 9px;gap:2px;display:grid}.ms-logo i{width:9px;height:9px;display:block}.ms-logo i:first-child{background:#f25022}.ms-logo i:nth-child(2){background:#7fba00}.ms-logo i:nth-child(3){background:#00a4ef}.ms-logo i:nth-child(4){background:#ffb900}.spinner{border:3px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn--pulse{animation:ctaPulse 1.8s var(--ease-out) infinite}@keyframes ctaPulse{0%{box-shadow:0 0 #ffc72c99,0 10px 24px #df791759}70%{box-shadow:0 0 0 16px #ffc72c00,0 10px 24px #df791759}to{box-shadow:0 0 #ffc72c00,0 10px 24px #df791759}}.card:not(.card--glass),.dialog,.surface,.rank-row,.demo-dock{--canvas:#f2f7fb}.card{border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow);padding:clamp(18px,4vw,26px);position:relative}.card--glass{color:var(--on-dark);background:linear-gradient(135deg,#002491eb,#0062dce0);border:1px solid #ffffff3d}.card--flat{box-shadow:none;border:1px solid var(--line)}.card__title{font-size:var(--fs-xl);font-weight:900}.card__head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.team-badge{--size:44px;width:var(--size);height:var(--size);border-radius:calc(var(--size) * .3);background:var(--team,var(--vhu-gold));color:var(--on-team);font-weight:900;font-size:calc(var(--size) * .46);flex:none;place-items:center;line-height:1;display:inline-grid;position:relative;box-shadow:inset 0 -3px #00000024}.team-badge__shape{width:calc(var(--size) * .42);height:calc(var(--size) * .42);color:var(--on-team);background:#fff;border-radius:50%;padding:2px;position:absolute;top:-5px;right:-5px;box-shadow:0 2px 6px #0003}.team-badge__shape svg{width:100%;height:100%;display:block}.team-badge--sm{--size:32px}.team-badge--lg{--size:64px}.team-badge--xl{--size:96px}.team-chip{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--team) 22%, #fff);max-width:100%;color:var(--ink);font-weight:700;font-size:var(--fs-sm);align-items:center;gap:8px;padding:4px 12px 4px 4px;display:inline-flex}.team-chip .team-badge{--size:26px;border-radius:50%}.team-chip .team-badge__shape{display:none}.team-chip__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tag{border-radius:var(--radius-pill);font-size:var(--fs-xs);letter-spacing:.02em;background:var(--info-soft);color:var(--vhu-navy);white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;font-weight:900;display:inline-flex}.tag--gold{background:var(--vhu-gold);color:var(--ink)}.tag--success{background:var(--success-soft);color:var(--success)}.tag--warning{background:var(--warning-soft);color:var(--warning)}.tag--danger{background:var(--danger-soft);color:var(--danger)}.tag--glass{background:var(--glass-strong);color:var(--on-dark);border:1px solid var(--on-dark-line)}.gate-pill{border-radius:var(--radius-pill);font-weight:900;font-size:var(--fs-sm);background:var(--glass-strong);border:1px solid var(--on-dark-line);color:var(--on-dark);align-items:center;gap:8px;padding:6px 14px 6px 10px;display:inline-flex}.gate-pill__dot{background:var(--vhu-sky);border-radius:50%;width:10px;height:10px}.gate-pill[data-gate=open] .gate-pill__dot{background:var(--success-on-dark);animation:1.6s infinite dotPulse;box-shadow:0 0 #5ef0b4b3}.gate-pill[data-gate=closed] .gate-pill__dot{background:var(--vhu-orange)}.surface .gate-pill,.gate-pill--light{background:var(--info-soft);color:var(--vhu-navy);border-color:var(--line)}.gate-pill--light[data-gate=open] .gate-pill__dot{background:var(--success)}@keyframes dotPulse{70%{box-shadow:0 0 0 10px #5ef0b400}to{box-shadow:0 0 #5ef0b400}}.countdown{gap:var(--space-2);display:grid}.countdown__label{font-size:var(--fs-sm);color:var(--on-dark-muted);font-weight:700}.countdown__blocks{align-items:stretch;gap:6px;display:flex}.cd-block{border-radius:var(--radius-md);border:1px solid var(--on-dark-line);background:#00145a73;flex:1 1 0;justify-items:center;min-width:0;max-width:88px;padding:10px 4px 8px;display:grid}.cd-block__num{font-variant-numeric:tabular-nums;color:#fff;font-size:clamp(1.6rem,8vw,2.4rem);font-weight:900;line-height:1}.cd-block__unit{text-transform:uppercase;letter-spacing:.08em;color:var(--on-dark-muted);margin-top:4px;font-size:.68rem;font-weight:700}.cd-sep{color:var(--vhu-gold);align-self:center;font-size:1.4rem;font-weight:900}.countdown--light .cd-block{background:var(--canvas);border-color:var(--line)}.countdown--light .cd-block__num{color:var(--vhu-navy)}.countdown--light .cd-block__unit,.countdown--light .countdown__label{color:var(--muted)}.cd-block__num.tick{animation:tick .3s var(--ease-out)}@keyframes tick{0%{opacity:.3;transform:translateY(-30%)}}.ring{--p:1;flex:none;place-items:center;width:44px;height:44px;display:inline-grid;position:relative}.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.ring__track{stroke:var(--on-dark-line)}.ring__bar{stroke:var(--vhu-gold);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.ring__num{font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:900}.ring--light .ring__track{stroke:var(--line)}.ring--light .ring__bar{stroke:var(--vhu-blue)}.bar{border-radius:var(--radius-pill);background:#14243a14;height:10px;position:relative;overflow:hidden}.on-dark .bar,.theme-events .rank-list--dark .bar{background:#ffffff24}.bar__fill{height:100%;width:var(--w,0%);border-radius:inherit;background:var(--team,var(--vhu-sky));transition:width var(--dur-4) var(--ease-out);display:block;box-shadow:inset 0 0 0 1px #14243a2e}.bar__fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);animation:2.8s ease-in-out infinite shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes shine{60%,to{transform:translate(100%)}}.rank-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.rank-row{border-radius:var(--radius-md);background:var(--surface);color:var(--ink);border:1px solid #0000;grid-template-columns:30px 44px minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;display:grid;position:relative;box-shadow:0 6px 18px #00125824}.rank-row:before{content:"";background:var(--team);border-radius:0 4px 4px 0;width:4px;position:absolute;top:12px;bottom:12px;left:0}.rank-row__rank{text-align:center;color:var(--vhu-navy);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:900}.rank-row[data-rank="1"]{border-color:var(--vhu-gold);box-shadow:0 0 0 2px #ffc72c8c,0 10px 26px #ffbb284d}.rank-row[data-rank="1"] .rank-row__rank{color:var(--ink)}.crown{color:#d99a00;width:22px;margin:0 auto -2px;display:block}.rank-row__main{gap:6px;min-width:0;display:grid}.rank-row__top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;min-width:0;display:flex}.rank-row__name{min-width:0;font-weight:900;font-size:var(--fs-lg);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:9rem;line-height:1.2;display:-webkit-box;overflow:hidden}.rank-row__points{font-weight:900;font-size:var(--fs-xl);font-variant-numeric:tabular-nums;color:var(--vhu-navy);flex:none;margin-left:auto}.rank-row__points small{font-size:var(--fs-xs);color:var(--muted);font-weight:700}.rank-row__meta{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-weight:700;display:flex}.rank-row.is-updated{animation:rowFlash 1.2s var(--ease-out)}@keyframes rowFlash{0%{background:#fff6d6}to{background:var(--surface)}}.rank-row--compact{grid-template-columns:24px 32px minmax(0,1fr);gap:10px;padding:10px 12px}.rank-row--compact .rank-row__rank{font-size:1.1rem}.rank-row--compact .rank-row__name,.rank-row--compact .rank-row__points{font-size:var(--fs-base)}.rank-row--compact .bar{height:6px}@media (width>=720px){.rank-row:not(.rank-row--compact){grid-template-columns:48px 56px minmax(0,1fr);gap:16px;padding:16px 22px}.rank-row:not(.rank-row--compact) .team-badge{--size:56px}.rank-row:not(.rank-row--compact) .rank-row__rank{font-size:2rem}.rank-row:not(.rank-row--compact) .rank-row__points{font-size:1.75rem}}.delta{border-radius:var(--radius-pill);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:3px;padding:1px 8px;font-weight:900;display:inline-flex}.delta--up{background:var(--success-soft);color:var(--success)}.delta--down{background:var(--danger-soft);color:var(--danger)}.delta--same{color:var(--muted);background:#14243a0f}.gain{border-radius:var(--radius-pill);background:var(--warning-soft);color:var(--warning);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:2px;padding:1px 8px;font-weight:900;display:inline-flex}.gain.is-new{animation:pop .6s var(--ease-spring)}@keyframes pop{0%{opacity:0;transform:scale(.4)}}.dialog-backdrop{z-index:var(--z-dialog);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity var(--dur-2);background:#000e3c9e;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.dialog-backdrop[hidden]{display:none}.dialog-backdrop.is-open{opacity:1}.dialog{width:100%;max-width:520px;max-height:92dvh;padding:10px clamp(18px, 5vw, 28px) calc(22px + env(safe-area-inset-bottom));background:var(--surface);color:var(--ink);transition:transform var(--dur-3) var(--ease-spring);border-radius:26px 26px 0 0;overflow-y:auto;transform:translateY(40px);box-shadow:0 -12px 40px #00125859}.dialog-backdrop.is-open .dialog{transform:none}.dialog__grip{background:var(--line);border-radius:99px;width:44px;height:5px;margin:2px auto 14px}.dialog__close{background:var(--canvas);width:40px;height:40px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:1.3rem;line-height:1;display:grid;position:absolute;top:14px;right:14px}@media (width>=640px){.dialog-backdrop{align-items:center;padding:24px}.dialog{border-radius:24px;padding:28px 32px;position:relative;transform:translateY(16px)scale(.98)}.dialog__grip{display:none}}body.has-dialog{overflow:hidden}.confirm-check{border-radius:var(--radius-md);border:2px dashed var(--line);background:var(--canvas);cursor:pointer;font-weight:700;font-size:var(--fs-sm);transition:border-color var(--dur-2), background var(--dur-2);align-items:flex-start;gap:12px;padding:14px;display:flex}.confirm-check input{width:24px;height:24px;accent-color:var(--vhu-blue);cursor:pointer;flex:none;margin:0}.confirm-check:has(input:checked){border-style:solid;border-color:var(--vhu-blue);background:var(--info-soft)}.alert{border-radius:var(--radius-md);background:var(--info-soft);color:var(--vhu-navy);font-size:var(--fs-sm);border:1px solid #0075c940;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.alert__icon{background:var(--vhu-blue);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.85rem;font-weight:900;display:grid}.alert__body{flex:1;gap:4px;min-width:0;display:grid}.alert__title{font-weight:900}.alert--warning{background:var(--warning-soft);color:#6b3f00;border-color:#9a5b0040}.alert--warning .alert__icon{background:var(--vhu-orange);color:var(--ink)}.alert--danger{background:var(--danger-soft);color:#7a1810;border-color:#b4231840}.alert--danger .alert__icon{background:var(--danger)}.alert--success{background:var(--success-soft);color:#0a5139;border-color:#0f7a5540}.alert--success .alert__icon{background:var(--success)}.skeleton{border-radius:var(--radius-sm);background:#14243a14;min-height:14px;position:relative;overflow:hidden}.on-dark .skeleton,.theme-events .skeleton--dark{background:#ffffff24}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:1.4s infinite shine;position:absolute;inset:0;transform:translate(-100%)}.skeleton-row{border-radius:var(--radius-md);background:var(--surface);grid-template-columns:30px 44px 1fr;align-items:center;gap:12px;padding:14px;display:grid}.empty{text-align:center;justify-items:center;gap:10px;padding:32px 20px;display:grid}.empty__art{gap:6px;display:flex}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table caption{text-align:left}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}.table thead th{color:var(--muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;background:#f6f9fc;font-weight:900;position:sticky;top:0}.table tbody tr:hover{background:#f7fbff}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.flow{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.flow__arrow{color:var(--muted);font-weight:900}.cross-tag{font-size:.68rem}@media (width<=719px){.table--cards thead{display:none}.table--cards td>*{min-width:0}.table--cards .flow{justify-content:flex-end;max-width:72%}.table--cards .team-chip{max-width:100%}.table--cards,.table--cards tbody,.table--cards tr,.table--cards td{width:100%;display:block}.table--cards tr{border-bottom:1px solid var(--line);padding:12px 14px}.table--cards td{text-align:right;border:0;justify-content:space-between;gap:12px;padding:4px 0;display:flex}.table--cards td:before{content:attr(data-label);color:var(--muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;text-align:left;flex:none;font-weight:900}.table--cards td.num{text-align:right}.table-wrap:has(.table--cards){overflow-x:visible}}.field{font-size:var(--fs-sm);gap:6px;font-weight:700;display:grid}.input,.select{border:1.5px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--ink);background:#fff;padding:10px 12px}.input:focus-visible,.select:focus-visible{outline-offset:0;border-color:var(--vhu-blue);outline:3px solid #15bdeb59}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pager__btns{flex-wrap:wrap;gap:6px;display:flex}.pager__btn{border-radius:var(--radius-sm);border:1.5px solid var(--line);min-width:40px;height:40px;color:var(--vhu-navy);cursor:pointer;font-variant-numeric:tabular-nums;background:#fff;padding:0 10px;font-weight:900}.pager__btn[aria-current=page]{background:var(--vhu-navy);border-color:var(--vhu-navy);color:#fff}.pager__btn:disabled{opacity:.45;cursor:not-allowed}.toast-zone{z-index:var(--z-toast);pointer-events:none;gap:8px;width:min(92vw,420px);display:grid;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-md);background:var(--ink);color:#fff;font-weight:700;font-size:var(--fs-sm);animation:toastIn var(--dur-3) var(--ease-spring);pointer-events:auto;align-items:center;gap:10px;padding:12px 16px;display:flex;box-shadow:0 12px 30px #0000004d}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}}.demo-dock{z-index:var(--z-dock);font-size:var(--fs-sm);color:var(--ink);position:fixed;top:72px;right:12px}.demo-dock>summary{border-radius:var(--radius-pill);border:2px dashed var(--vhu-orange);cursor:pointer;min-height:36px;box-shadow:var(--shadow);opacity:.85;background:#fff;align-items:center;gap:6px;padding:0 12px;font-weight:900;list-style:none;display:inline-flex}.demo-dock[open]>summary,.demo-dock>summary:hover{opacity:1}.demo-dock>summary::-webkit-details-marker{display:none}.demo-dock__panel{border-radius:var(--radius-md);background:#fff;gap:10px;width:min(300px,100vw - 24px);max-height:70vh;padding:14px;display:grid;position:absolute;top:44px;right:0;overflow:auto;box-shadow:0 16px 40px #0000004d}.demo-dock__panel .select{min-height:38px;padding:6px 8px}.confetti-canvas{z-index:var(--z-confetti);pointer-events:none;position:fixed;inset:0}.app-footer{font-size:var(--fs-xs);color:var(--on-dark-muted);text-align:center;padding:24px 0 90px}body:not(.theme-events) .app-footer{color:var(--muted)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.bar__fill:after,.skeleton:after{display:none}}.force-reduced-motion *,.force-reduced-motion :before,.force-reduced-motion :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}:root{--stall-1:var(--team-a);--stall-2:var(--team-b);--stall-3:var(--team-c);--stall-4:var(--team-d);--stall-5:var(--team-e);--stall-6:var(--team-f);--deep-glass:#00145a66}.gate-pill--closing .gate-pill__dot,.gate-pill[data-gate=open].gate-pill--closing .gate-pill__dot{background:var(--vhu-orange);animation:1s infinite dotPulseWarm}@keyframes dotPulseWarm{0%{box-shadow:0 0 #f47c20b3}70%{box-shadow:0 0 0 10px #f47c2000}to{box-shadow:0 0 #f47c2000}}.toast--error{background:#7a1810}.toast--success{background:#0a5139}.toast>span[aria-hidden]{background:#fff3;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-weight:900;display:grid}.pager__gap{cursor:default;place-items:center;display:grid;border:0!important}.pager__btn{min-width:44px;height:44px}.nav-link,.user-chip{min-height:44px}.btn--sm{--btn-h:44px}.stall-badge{font-variant-numeric:tabular-nums}.team-chip{min-width:0}.hello{gap:8px;display:grid}.hello h1{font-size:var(--fs-3xl);overflow-wrap:anywhere;font-weight:900}.home-grid{gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=900px){.home-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:start}}.gate-strip{border-radius:var(--radius-md);background:var(--deep-glass);border:1px solid var(--on-dark-line);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;font-weight:700;display:flex}.gate-strip .num{font-variant-numeric:tabular-nums}.passport{overflow:hidden}.passport:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffc72c4d,#0000 70%);border-radius:50%;width:220px;height:220px;position:absolute;top:-70px;right:-70px}.passport__head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.passport__title{font-size:var(--fs-xl);font-weight:900}.passport__score{justify-items:end;line-height:1;display:grid}.passport__score strong{font-size:var(--fs-score);color:var(--vhu-gold);font-variant-numeric:tabular-nums;font-weight:900}.passport__score strong small{color:var(--on-dark);font-size:.45em}.passport__score>span{font-size:var(--fs-xs);color:var(--on-dark-muted);margin-top:6px;font-weight:700}.passport__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px;margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.passport__grid{grid-template-columns:repeat(6,minmax(0,1fr))}.home-grid .passport__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.stamp-slot{text-align:center;align-content:start;justify-items:center;gap:6px;min-width:0;display:grid}.stamp{--size:76px;width:var(--size);height:var(--size);color:var(--on-dark);transition:transform var(--dur-3) var(--ease-spring);background:#00145a4d;border:3px dashed #ffffff9e;border-radius:50%;place-items:center;display:grid;position:relative}.stamp__num{opacity:.85;font-size:1.7rem;font-weight:900;line-height:1}.stamp__shape{width:22px;height:22px;color:var(--team);opacity:.95;position:absolute;bottom:6px;right:6px}.stamp__shape svg{width:100%;height:100%;display:block}.stamp-slot.is-done .stamp{background:var(--team);color:var(--on-team);transform:rotate(var(--rot,-6deg));box-shadow:inset 0 0 0 4px var(--team), inset 0 0 0 6px #14243a8c, inset 0 -4px 0 7px #00000014, 0 8px 18px #00125859;border:0}.stamp-slot.is-done .stamp__num{opacity:1;font-size:1.9rem}.stamp-slot.is-done .stamp__shape{color:var(--on-team)}.stamp__tick{width:26px;height:26px;color:var(--success);background:#fff;border-radius:50%;place-items:center;font-size:.9rem;font-weight:900;display:grid;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #00000040}.stamp-slot__name{max-width:100%;font-size:var(--fs-xs);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:900;line-height:1.25;display:-webkit-box;overflow:hidden}.stamp-slot__meta{color:var(--on-dark-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.stamp-slot.is-done .stamp-slot__meta{color:var(--success-on-dark);font-weight:700}.stamp-slot.is-new .stamp{animation:stampIn .72s var(--ease-out) both}.stamp-slot.is-new .stamp:after{content:"";border:3px solid var(--team);animation:inkRing .9s .26s var(--ease-out) both;border-radius:50%;position:absolute;inset:-6px}@keyframes stampIn{0%{opacity:0;transform:scale(2.3)rotate(-28deg)}55%{transform:scale(.9) rotate(var(--rot,-6deg));opacity:1}75%{transform:scale(1.06) rotate(var(--rot,-6deg))}to{transform:scale(1) rotate(var(--rot,-6deg))}}@keyframes inkRing{0%{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.7)}}.seg-meter{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;width:100%;display:grid}.seg-meter i{background:#ffffff38;border-radius:99px;height:8px;display:block}.seg-meter i.on{background:var(--vhu-gold)}.seg-meter--light i{background:#14243a1f}.seg-meter--light i.on{background:var(--vhu-blue)}.passport__foot{gap:8px;margin-top:18px;display:grid}.passport__hint{font-size:var(--fs-sm);color:var(--on-dark-muted)}.complete-banner{border-radius:var(--radius-md);background:var(--cta-gradient);color:var(--ink);align-items:center;gap:14px;padding:14px 16px;font-weight:900;display:flex;position:relative;overflow:hidden}.complete-banner__medal{background:var(--vhu-navy);width:48px;height:48px;color:var(--vhu-gold);box-shadow:inset 0 0 0 3px var(--vhu-gold);border-radius:50%;flex:none;place-items:center;font-size:1.4rem;display:grid}.complete-banner p{font-weight:700;font-size:var(--fs-sm)}.complete-banner.is-new{animation:pop .7s var(--ease-spring)}.mini-card{gap:10px;display:grid}.mini-card__head{align-items:center;gap:10px;display:flex}.mini-card__icon{background:var(--info-soft);width:40px;height:40px;color:var(--vhu-navy);border-radius:12px;flex:none;place-items:center;display:grid}.card--glass .mini-card__icon{background:var(--glass-strong);color:var(--vhu-gold)}.mini-card__title{font-size:var(--fs-lg);font-weight:900}.big-rank{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.big-rank strong{color:var(--vhu-navy);font-size:clamp(2.2rem,10vw,3rem);font-weight:900;line-height:1}.big-rank span{color:var(--muted);font-weight:900}.vote-locked{border-radius:var(--radius-md);background:var(--canvas);align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.vote-locked>div{min-width:0}.vote-locked__name{overflow-wrap:anywhere;font-weight:900}.scan-dock{z-index:15;padding:14px var(--gutter) calc(12px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#002b8ff0 34%);position:fixed;bottom:0;left:0;right:0}.has-scan-dock{padding-bottom:150px}.scan-dock__inner{gap:6px;max-width:560px;margin:0 auto;display:grid}.scan-dock .btn{min-height:60px;font-size:1.1rem}.scan-dock__hint{text-align:center;font-size:var(--fs-xs);color:var(--on-dark-muted)}@media (width>=900px){.scan-dock{margin-top:var(--space-5);background:0 0;padding:0;position:static}.scan-dock__inner{max-width:420px;margin:0}.has-scan-dock{padding-bottom:var(--space-9)}}.result{text-align:center;justify-items:center;gap:14px;max-width:560px;margin:0 auto;display:grid}.result__title{font-size:var(--fs-3xl);overflow-wrap:anywhere;font-weight:900}.result__stall{font-size:var(--fs-xl);overflow-wrap:anywhere;font-weight:900}.result .stamp{--size:132px}.result .stamp__num{font-size:3.4rem}.result .stamp__shape{width:34px;height:34px;bottom:12px;right:12px}.result .stamp__tick{width:38px;height:38px;font-size:1.2rem}.plus-one{border-radius:var(--radius-pill);background:var(--success-on-dark);color:var(--ink);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;align-items:center;gap:8px;padding:8px 18px;font-weight:900;display:inline-flex}.plus-one.is-new{animation:plusUp .9s .38s var(--ease-spring) both}@keyframes plusUp{0%{opacity:0;transform:translateY(24px)scale(.5)}}.result-facts{border-radius:var(--radius-md);background:var(--deep-glass);text-align:left;width:100%;font-size:var(--fs-sm);grid-template-columns:auto minmax(0,1fr);gap:8px 16px;margin:0;padding:14px 16px;display:grid}.result-facts dt{color:var(--on-dark-muted)}.result-facts dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:900}.status-medal{background:var(--glass-strong);border:3px solid var(--on-dark-line);width:96px;height:96px;color:var(--on-dark);border-radius:50%;place-items:center;font-size:2.6rem;font-weight:900;display:grid}.status-medal--warn{background:var(--warning-soft);color:var(--warning);border-color:var(--vhu-orange)}.status-medal--danger{background:var(--danger-soft);color:var(--danger);border-color:#f4b4ae}.status-medal--info{background:var(--info-soft);color:var(--vhu-navy);border-color:var(--vhu-sky)}.processing{justify-items:center;gap:14px;padding:24px 0;display:grid}.processing .stamp{--size:120px;animation:1.4s ease-in-out infinite hover}@keyframes hover{50%{transform:translateY(-10px)rotate(-6deg)}}.processing .spinner{width:28px;height:28px}.code-form{gap:10px;display:grid}.code-form__row{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}@media (width>=480px){.code-form__row{grid-template-columns:minmax(0,1fr) auto}}.code-form .input{letter-spacing:.02em;min-height:52px;font-size:1.05rem;font-weight:700}.field-error{color:var(--danger);font-size:var(--fs-sm);font-weight:700}.input[aria-invalid=true]{border-color:var(--danger)}.camera{aspect-ratio:1;border-radius:var(--radius);background:linear-gradient(135deg,#ffffff0a,#fff0),#0b1b44;place-items:center;width:min(100%,300px);margin:0 auto;display:grid;position:relative;overflow:hidden}.camera__frame{--c:var(--vhu-gold);background:linear-gradient(var(--c), var(--c)) top left / 28px 4px no-repeat, linear-gradient(var(--c), var(--c)) top left / 4px 28px no-repeat, linear-gradient(var(--c), var(--c)) top right / 28px 4px no-repeat, linear-gradient(var(--c), var(--c)) top right / 4px 28px no-repeat, linear-gradient(var(--c), var(--c)) bottom left / 28px 4px no-repeat, linear-gradient(var(--c), var(--c)) bottom left / 4px 28px no-repeat, linear-gradient(var(--c), var(--c)) bottom right / 28px 4px no-repeat, linear-gradient(var(--c), var(--c)) bottom right / 4px 28px no-repeat;border-radius:14px;position:absolute;inset:18%}.camera__laser{background:var(--vhu-sky);border-radius:3px;height:3px;animation:2.2s ease-in-out infinite alternate laser;position:absolute;top:22%;left:20%;right:20%;box-shadow:0 0 14px 2px #15bdebb3}@keyframes laser{to{top:76%}}.camera__note{border-radius:var(--radius-sm);color:#fff;font-size:var(--fs-xs);background:#0000008c;padding:6px 10px;font-weight:700;position:absolute;bottom:10px;left:10px;right:10px}.mock-note{border-radius:var(--radius-sm);border:2px dashed var(--vhu-orange);color:var(--ink);font-size:var(--fs-xs);background:#fff;gap:6px;padding:6px 10px;font-weight:700;display:inline-flex}.stall-grid{border:0;gap:12px;min-width:0;margin:0;padding:0;display:grid}@media (width>=600px){.stall-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1000px){.stall-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}.stall-card{border-radius:var(--radius);background:var(--surface);min-height:96px;color:var(--ink);cursor:pointer;transition:transform var(--dur-2) var(--ease-spring), border-color var(--dur-2), box-shadow var(--dur-2);border:3px solid #0000;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 14px;padding:18px 16px 16px;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 22px #0012582e}.stall-card:before{content:"";background:var(--team);height:6px;position:absolute;inset:0 0 auto}.stall-card:hover{transform:translateY(-2px)}.stall-card input{opacity:0;pointer-events:none;position:absolute}.stall-card:has(input:focus-visible){outline:3px solid var(--vhu-gold);outline-offset:3px}.stall-card:has(input:checked){border-color:var(--vhu-gold);transform:translateY(-3px);box-shadow:0 0 0 4px #ffc72c59,0 16px 34px #0012584d}.stall-card__check{border:2px solid var(--line);color:#0000;width:30px;height:30px;transition:all var(--dur-2) var(--ease-spring);background:#fff;border-radius:50%;place-items:center;font-weight:900;display:grid;position:absolute;top:16px;right:12px}.stall-card:has(input:checked) .stall-card__check{border-color:var(--ink);background:var(--vhu-gold);color:var(--ink);transform:scale(1.1)}.stall-card__name{font-size:var(--fs-lg);overflow-wrap:anywhere;padding-right:36px;font-weight:900;line-height:1.2}.stall-card__meta{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-weight:700;display:flex}.stall-card.is-disabled{cursor:default}.stall-card.is-disabled:hover{transform:none}.stall-card.is-locked{opacity:.55;filter:saturate(.6)}.stall-card.is-chosen{opacity:1;filter:none;border-color:var(--vhu-gold);box-shadow:0 0 0 4px #ffc72c59,0 16px 34px #0012584d}.rule-box{border-radius:var(--radius-md);background:var(--deep-glass);border:1px solid var(--on-dark-line);gap:8px;margin:0;padding:14px 16px;list-style:none;display:grid}.rule-box li{font-size:var(--fs-sm);align-items:flex-start;gap:10px;display:flex}.rule-box .ico,.facts .ico{background:var(--vhu-navy);width:28px;height:28px;color:var(--vhu-gold);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:900;display:grid}.rule-box .ico{background:var(--vhu-gold);color:var(--ink)}.facts{gap:8px;margin:16px 0;padding:0;list-style:none;display:grid}.facts li{border-radius:var(--radius-sm);background:var(--canvas);font-size:var(--fs-sm);align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.facts b{display:block}.select-bar{z-index:15;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#002b8feb 30%);margin-top:20px;position:sticky;bottom:0}.select-bar__inner{border-radius:var(--radius-pill);border:1px solid var(--on-dark-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00145ad9;align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex}.select-bar__text{min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.select-bar .btn{flex:none}.confirm-hero{text-align:center;justify-items:center;gap:10px;padding-top:6px;display:grid}.confirm-title{overflow-wrap:anywhere;font-size:clamp(1.3rem,5vw,1.6rem);font-weight:900;line-height:1.25}.dialog-actions{gap:10px;margin-top:16px;display:grid}@media (width>=640px){.dialog-actions{grid-template-columns:1fr 1.4fr}}.ballot{place-items:center;width:108px;height:84px;display:grid;position:relative}.ballot__box{background:var(--vhu-navy);border-radius:10px 10px 14px 14px;width:108px;height:46px;position:absolute;bottom:0;box-shadow:inset 0 4px #ffffff26}.ballot__box:before{content:"";background:#001a3a;border-radius:4px;height:5px;position:absolute;top:8px;left:22px;right:22px}.ballot .team-badge{z-index:1;position:absolute;top:0}.ballot.is-drop .team-badge{animation:dropIn .9s var(--ease-out) both}@keyframes dropIn{0%{opacity:0;transform:translateY(-40px)rotate(-10deg)}60%{opacity:1;transform:translateY(14px)}to{transform:translateY(4px)}}.segmented{border-radius:var(--radius-md);background:var(--deep-glass);border:1px solid var(--on-dark-line);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segmented [role=tab]{min-height:52px;color:var(--on-dark);font-weight:900;font-size:var(--fs-sm);text-align:center;cursor:pointer;transition:background var(--dur-2);background:0 0;border:0;border-radius:11px;place-items:center;gap:1px;padding:6px;line-height:1.15;display:grid}.segmented [role=tab] small{color:var(--on-dark-muted);font-size:.7rem;font-weight:700}.segmented [role=tab]:hover{background:var(--glass)}.segmented [role=tab][aria-selected=true]{color:var(--vhu-navy);background:#fff;box-shadow:0 4px 12px #00125840}.segmented [role=tab][aria-selected=true] small{color:var(--muted)}.segmented [role=tab]:focus-visible{outline:3px solid var(--vhu-gold);outline-offset:2px}.rank-row--student{grid-template-columns:34px 40px minmax(0,1fr) auto;padding:10px 14px}.rank-row--student:before{background:var(--vhu-sky)}.rank-row--student[data-rank="1"]:before,.rank-row--student[data-rank="2"]:before,.rank-row--student[data-rank="3"]:before{background:var(--vhu-gold)}.st-avatar{background:var(--info-soft);width:40px;height:40px;color:var(--vhu-navy);border-radius:50%;place-items:center;font-size:.85rem;font-weight:900;display:grid}.rank-row--student .rank-row__rank{font-size:1.2rem}.st-points{justify-items:end;gap:4px;min-width:72px;display:grid}.st-points b{font-size:var(--fs-lg);color:var(--vhu-navy);font-variant-numeric:tabular-nums;font-weight:900}.st-points .seg-meter{width:66px}.st-points .seg-meter i{height:6px}.rank-row.is-me{border-color:var(--vhu-gold);background:#fffaeb;box-shadow:0 0 0 3px #ffc72c8c,0 8px 20px #0012582e}.me-tag{border-radius:var(--radius-pill);background:var(--vhu-gold);color:var(--ink);font-size:var(--fs-xs);vertical-align:2px;padding:1px 8px;font-weight:900;display:inline-flex}.me-outside{margin-top:10px}.me-outside__sep{text-align:center;color:var(--on-dark-muted);letter-spacing:.3em;font-weight:900}.tie-note{font-size:var(--fs-xs);color:var(--on-dark-muted);align-items:flex-start;gap:8px;margin-top:14px;display:flex}.board-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.board-stat{border-radius:var(--radius-md);background:var(--glass);border:1px solid var(--on-dark-line);min-width:0;padding:12px 14px}.board-stat small{font-size:var(--fs-xs);color:var(--on-dark-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;display:block}.board-stat b{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.3rem,5vw,1.8rem);font-weight:900;display:block;overflow:hidden}.stale-tag{background:var(--warning-soft);color:var(--warning)}.admin-tabs{z-index:calc(var(--z-header) - 1);border-bottom:1px solid var(--line);background:#fff;position:sticky;top:60px}.admin-tabs__inner{flex-wrap:wrap;align-items:center;gap:4px 6px;padding-block:6px;display:flex}.admin-tab{border-radius:var(--radius-pill);min-height:44px;font-size:var(--fs-sm);align-items:center;gap:6px;padding:0 14px;font-weight:900;text-decoration:none;display:inline-flex;color:var(--vhu-navy)!important}.admin-tab:hover{background:var(--info-soft)}.admin-tab[aria-current=page]{background:var(--vhu-navy);color:#fff!important}.admin-tab__only{background:var(--vhu-gold);color:var(--ink);text-transform:uppercase;letter-spacing:.04em;border-radius:6px;padding:1px 6px;font-size:.66rem}.admin-tabs__note{font-size:var(--fs-xs);color:var(--muted);flex:260px}@media (width>=900px){.admin-tabs__note{text-align:right}}.admin-hero{gap:14px;margin-bottom:20px;display:grid}@media (width>=900px){.admin-hero{grid-template-columns:minmax(0,1fr) auto;align-items:end}}.admin-hero h1{font-size:var(--fs-2xl);color:var(--vhu-navy);font-weight:900}.gate-status{border-radius:var(--radius-md);border:1px solid var(--line);font-size:var(--fs-sm);background:#fff;gap:6px;padding:14px 18px;display:grid}.gate-status .num{color:var(--vhu-navy);font-weight:900}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}@media (width>=900px){.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}.kpi{border-radius:var(--radius);border:1px solid var(--line);background:#fff;min-width:0;padding:16px 18px}.kpi__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}.kpi__value{color:var(--vhu-navy);font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:clamp(1.5rem,5vw,2.1rem);font-weight:900;line-height:1.1;display:block}.stall-sums{grid-template-columns:minmax(0,1fr);gap:12px;margin:0 0 20px;padding:0;list-style:none;display:grid}@media (width>=640px){.stall-sums{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.stall-sums{grid-template-columns:repeat(3,minmax(0,1fr))}}.stall-sum{border-radius:var(--radius);border:1px solid var(--line);background:#fff;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 12px;padding:16px;display:grid;position:relative;overflow:hidden}.stall-sum:before{content:"";background:var(--team);width:5px;position:absolute;inset:0 auto 0 0}.stall-sum__name{overflow-wrap:anywhere;font-weight:900;line-height:1.25}.stall-sum__nums{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.stall-sum__nums div{border-radius:var(--radius-sm);background:var(--canvas);padding:8px 10px}.stall-sum__nums small{font-size:var(--fs-xs);color:var(--muted);font-weight:700;display:block}.stall-sum__nums b{font-size:var(--fs-xl);color:var(--vhu-navy);font-variant-numeric:tabular-nums}.toolbar{gap:10px;margin-bottom:12px;display:grid}@media (width>=760px){.toolbar{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto;align-items:end}}.search{position:relative}.search .input{padding-left:38px}.search svg{width:18px;height:18px;color:var(--muted);position:absolute;bottom:13px;left:12px}.result-line{font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin:4px 0 10px;display:flex}.person{min-width:0;line-height:1.3;display:grid}.person b{color:var(--ink);overflow-wrap:anywhere}.person span{overflow-wrap:anywhere}.table .team-chip{font-size:var(--fs-xs);max-width:230px;padding-right:10px}.no-results td{color:var(--muted);text-align:center!important;padding:40px 16px!important;display:table-cell!important}.no-results td:before{display:none}@media (width<=719px){.table--cards .no-results td{text-align:center!important;display:block!important}}.admin-note{font-size:var(--fs-xs);color:var(--muted);margin-top:10px}.card__head--wrap{flex-wrap:wrap}.role-chip{border-radius:var(--radius-pill);font-size:var(--fs-xs);white-space:nowrap;border:1.5px solid #0000;align-items:center;gap:6px;padding:3px 10px;font-weight:900;display:inline-flex}.role-chip:before{content:"";background:currentColor;border-radius:2px;width:8px;height:8px}.role-chip--player{color:var(--ink);background:#eef2f6;border-color:#d0d8e2}.role-chip--player:before{border-radius:50%}.role-chip--btc{background:var(--info-soft);color:var(--vhu-navy);border-color:#0075c959}.role-chip--admin{background:var(--vhu-gold);color:var(--ink)}.role-chip--admin:before{transform:rotate(45deg)}.lock-note{color:var(--muted);font-size:var(--fs-xs);align-items:center;gap:6px;font-weight:700;display:inline-flex}.row-locked{background:#f8fafc}.forbidden{text-align:center;justify-items:center;gap:14px;max-width:560px;margin:6vh auto;display:grid}.forbidden__code{color:var(--vhu-navy);font-size:4rem;font-weight:900;line-height:1}.kv{font-size:var(--fs-sm);grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;margin:0;font-weight:900}.fake-qr{width:100%;height:auto;display:block}.qr-grid{grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.qr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.qr-sheet{border-radius:var(--radius);border:1px solid var(--line);text-align:center;break-inside:avoid;background:#fff;justify-items:center;gap:10px;padding:22px 18px 18px;display:grid;position:relative;overflow:hidden}.qr-sheet:before{content:"";background:var(--team);height:10px;position:absolute;inset:0 0 auto}.qr-sheet__head{text-align:left;align-items:center;gap:12px;max-width:100%;display:flex}.qr-sheet__head>span:last-child{min-width:0}.qr-sheet__eyebrow{font-size:var(--fs-xs);color:var(--vhu-blue);letter-spacing:.1em;text-transform:uppercase;font-weight:900;display:block}.qr-sheet__name{font-size:var(--fs-xl);overflow-wrap:anywhere;font-weight:900;line-height:1.2;display:block}.qr-sheet__qr{border:2px solid var(--ink);border-radius:12px;width:min(100%,240px);padding:8px}.qr-sheet__value{letter-spacing:.04em;color:var(--ink);overflow-wrap:anywhere;font-family:Courier New,Courier,monospace;font-size:1.15rem;font-weight:700}.qr-sheet__url{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.qr-sheet__steps{font-size:var(--fs-sm);color:var(--vhu-navy);font-weight:700}.qr-sheet__mock{color:var(--muted);font-size:.68rem}@media print{@page{size:A4;margin:12mm}body{background:#fff!important}.no-print,.app-header,.admin-tabs,.demo-dock,.app-footer,.toast-zone{display:none!important}.container{max-width:none;padding:0}.page{padding:0}.qr-sheet{-webkit-print-color-adjust:exact;print-color-adjust:exact;border:1.5px solid #14243a}.print-grid .qr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8mm}.print-grid .qr-sheet{height:84mm;padding:6mm 4mm 4mm}.print-grid .qr-sheet__qr{width:44mm}.print-single .qr-grid{display:block}.print-single .qr-sheet{page-break-after:always;break-after:page;align-content:center;gap:6mm;height:268mm}.print-single .qr-sheet:last-child{page-break-after:auto;break-after:auto}.print-single .qr-sheet__qr{width:130mm}.print-single .qr-sheet__name{font-size:26pt}.print-single .qr-sheet__value{font-size:20pt}.print-single .team-badge{--size:64px}}.doors{gap:14px;display:grid}.door{gap:10px;display:grid}.door--staff{border-radius:var(--radius-md);background:var(--canvas);border:1px solid var(--line);padding:14px}.door__label{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:900}.return-banner{border-radius:var(--radius-md);background:var(--info-soft);color:var(--vhu-navy);font-size:var(--fs-sm);align-items:center;gap:12px;padding:12px 14px;font-weight:700;display:flex}.return-banner>span:last-child{min-width:0}@media (prefers-reduced-motion:reduce){.camera__laser,.processing .stamp{animation:none!important}}.force-reduced-motion .camera__laser,.force-reduced-motion .processing .stamp{animation:none!important}.login{background:radial-gradient(circle at 15% 20%, #20c6edb3 0, transparent 30%), radial-gradient(circle at 90% 90%, #0014f28c 0, transparent 36%), var(--canvas);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid;overflow:hidden}.login__top{padding:18px var(--gutter) 0}.login__main{padding:24px var(--gutter) 32px;grid-template-columns:minmax(0,1fr);align-content:center;gap:28px;width:100%;max-width:1180px;margin:0 auto;display:grid}@media (width>=960px){.login__main{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:56px}}.hero{min-width:0}.hero h1{margin:10px 0 14px}.hero h1 .hl-gold{color:var(--vhu-gold);text-shadow:0 6px 28px #f47c2073;display:block}.hero__tagline{color:var(--vhu-gold);text-transform:uppercase;text-shadow:0 6px 28px #f47c2073;margin:0 0 14px;font-size:clamp(1.05rem,4.2vw,1.6rem);font-weight:800;line-height:1.3}.rules{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0 0;padding:0;list-style:none;display:grid}.rules li{border-radius:var(--radius-md);background:var(--glass);border:1px solid var(--on-dark-line);text-align:center;gap:2px;padding:12px 8px;display:grid}.rules strong{color:var(--vhu-gold);font-variant-numeric:tabular-nums;font-size:clamp(1.3rem,6vw,1.9rem);font-weight:900;line-height:1.05}.rules span{font-size:var(--fs-xs);color:var(--on-dark-muted);font-weight:700}.stamps-row{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.stamps-row .stamp{--size:52px}.stamps-row .stamp__num{font-size:1.15rem}.stamps-row .stamp__shape{width:15px;height:15px;bottom:3px;right:3px}.stamps-row .stamp__tick{width:18px;height:18px;font-size:.6rem}.signin{gap:16px;display:grid}.signin .btn--ms{min-height:58px;font-size:1.05rem}.divider{color:var(--muted);font-size:var(--fs-xs);align-items:center;gap:10px;font-weight:700;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.lb-link{border-radius:var(--radius-md);background:var(--canvas);justify-content:space-between;align-items:center;gap:10px;min-height:56px;padding:12px 16px;text-decoration:none;display:flex;color:var(--vhu-navy)!important}.lb-link:hover{background:var(--info-soft)}[data-state]:empty{display:none}.camera__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.lb-head{gap:12px;margin-bottom:16px;display:grid}.lb-head h1{font-size:var(--fs-3xl);font-weight:900}.refresh{border-radius:var(--radius-pill);background:var(--glass);border:1px solid var(--on-dark-line);align-items:center;gap:12px;width:fit-content;max-width:100%;padding:8px 14px 8px 8px;display:flex}.refresh__text{font-size:var(--fs-sm);min-width:0;line-height:1.3;display:grid}.refresh__text span{font-size:var(--fs-xs);color:var(--on-dark-muted)}.final-banner{border-radius:var(--radius-md);background:var(--cta-gradient);color:var(--ink);align-items:center;gap:12px;margin-bottom:14px;padding:14px 16px;font-weight:900;display:flex}[data-alert]:empty,[data-final]:empty{display:none}[data-alert]{margin-bottom:14px}.panel{margin-top:16px}.panel__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:12px;display:flex}.panel__head h2{font-size:var(--fs-xl);font-weight:900}.empty-lb{background:var(--surface);color:var(--ink);border-radius:var(--radius)}.legend{font-size:var(--fs-xs);color:var(--on-dark-muted);flex-wrap:wrap;gap:8px 14px;margin-top:10px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}@media (width>=720px){.board-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}html.led,body.led{background:#001a63;height:100%;margin:0;overflow:hidden}body.led.idle{cursor:none}.viewport{position:fixed;inset:0;overflow:hidden}.stage{color:#fff;background:radial-gradient(circle at 10% 6%,#15bdeb61 0,#0000 560px),radial-gradient(circle at 96% 70%,#0018f273 0,#0000 720px),radial-gradient(circle at 60% 120%,#ffc72c29 0,#0000 600px),#0043d3;width:1920px;height:1080px;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.stage:before{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 45%,#ffffff0f 50%,#0000 55%);animation:9s linear infinite sweep;position:absolute;inset:-50% -20%}@keyframes sweep{0%{transform:translate(-40%)}to{transform:translate(40%)}}.led-head{background:linear-gradient(105deg,#002b8f,#0043d366);border-bottom:2px solid #ffffff2e;align-items:center;gap:30px;height:150px;padding:0 48px;display:flex;position:absolute;top:0;left:0;right:0}.led-mark{background:var(--vhu-navy);border:5px solid var(--vhu-gold);width:100px;height:100px;color:var(--vhu-gold);letter-spacing:2px;border-radius:28px;place-items:center;font-size:32px;font-weight:900;display:grid}.led-title h1{letter-spacing:-1px;text-transform:uppercase;font-size:70px;font-weight:900;line-height:.95}.led-title h1 span{color:var(--vhu-gold)}.led-title p{color:var(--on-dark-muted);margin-top:8px;font-size:26px;font-weight:700}.led-cd{justify-items:end;gap:6px;margin-left:auto;display:grid}.led-cd__label{letter-spacing:3px;text-transform:uppercase;color:var(--vhu-gold);align-items:center;gap:12px;font-size:24px;font-weight:900;display:flex}.led-cd__dot{background:var(--success-on-dark);border-radius:50%;width:16px;height:16px;animation:1.6s infinite dotPulse}.led-cd__blocks{align-items:center;gap:8px;display:flex}.led-cd__b{background:#00125099;border:2px solid #fff3;border-radius:16px;justify-items:center;min-width:100px;padding:4px 8px 2px;display:grid}.led-cd__b b{font-variant-numeric:tabular-nums;font-size:60px;font-weight:900;line-height:1}.led-cd__b small{color:var(--on-dark-muted);text-transform:uppercase;letter-spacing:2px;font-size:20px;font-weight:700}.led-cd__sep{color:var(--vhu-gold);font-size:50px;font-weight:900}.led-final{background:var(--cta-gradient);color:var(--ink);text-transform:uppercase;border-radius:24px;padding:16px 30px;font-size:42px;font-weight:900}.col{height:872px;position:absolute;top:176px}.col--a{width:620px;left:48px}.col--b{width:620px;left:704px}.col--c{width:512px;left:1360px}.col__head{align-items:center;gap:14px;height:60px;margin-bottom:12px;display:flex}.col__head h2{font-size:34px;font-weight:900;line-height:1.05}.col__head h2 small{color:var(--on-dark-muted);font-size:22px;font-weight:700;display:block}.col__icon{background:var(--vhu-gold);width:56px;height:56px;color:var(--ink);border-radius:16px;flex:none;place-items:center;display:grid}.col__icon svg{width:32px;height:32px}.board{margin:0;padding:0;list-style:none;position:relative}.board--stalls{height:702px}.lrow{height:112px;color:var(--ink);background:#fffffff5;border-radius:24px;grid-template-columns:52px 68px minmax(0,1fr) auto;align-items:center;gap:14px;padding:0 22px 0 18px;transition:top 1.1s cubic-bezier(.2,.8,.2,1);display:grid;position:absolute;left:0;right:0;overflow:hidden;box-shadow:0 12px 30px #0012584d}.lrow:before{content:"";background:var(--team);width:10px;position:absolute;top:0;bottom:0;left:0}.lrow[data-rank="1"].has-val{box-shadow:0 0 0 5px var(--vhu-gold), 0 16px 40px #ffbb2873;background:linear-gradient(100deg,#fff8dc,#fff 40%)}.lrow__rank{text-align:center;color:var(--vhu-navy);font-variant-numeric:tabular-nums;font-size:56px;font-weight:900;line-height:1}.lrow .team-badge{--size:68px}.lrow__main{gap:10px;min-width:0;display:grid}.lrow__name{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:28px;font-weight:900;line-height:1.1;display:-webkit-box;overflow:hidden}.lrow .bar{height:12px}.lrow__right{justify-items:end;gap:4px;min-width:100px;display:grid}.lrow__val{color:var(--vhu-navy);font-variant-numeric:tabular-nums;font-size:56px;font-weight:900;line-height:1}.lrow__unit{color:var(--muted);font-size:20px;font-weight:700}.lrow__meta{align-items:center;gap:6px;min-height:28px;display:flex}.lrow .delta,.lrow .gain{padding:1px 10px;font-size:20px}.lrow.is-updated{animation:rowFlash 1.4s var(--ease-out)}.qr-led{height:236px;color:var(--ink);background:#fff;border-radius:28px;grid-template-columns:188px minmax(0,1fr);align-items:center;gap:20px;margin-bottom:20px;padding:22px;display:grid;box-shadow:0 14px 36px #0012584d}.qr-led h2{color:var(--vhu-navy);text-transform:uppercase;font-size:36px;font-weight:900;line-height:1.05}.qr-led p{color:var(--muted);margin-top:8px;font-size:21px;font-weight:700;line-height:1.3}.qr-led__url{background:var(--info-soft);color:var(--vhu-navy);border-radius:10px;margin-top:10px;padding:4px 10px;font-size:22px;font-weight:900;display:inline-block}.qr-led__mock{color:var(--muted);margin-top:6px;font-size:20px;font-weight:700;display:block}.board--students{height:544px}.srow{background:#ffffff1f;border:2px solid #ffffff29;border-radius:14px;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;height:50px;padding:0 18px 0 10px;transition:top 1.1s cubic-bezier(.2,.8,.2,1),opacity .6s;display:grid;position:absolute;left:0;right:0}.srow[data-rank="1"],.srow[data-rank="2"],.srow[data-rank="3"]{background:#ffc72c33;border-color:#ffc72c8c}.srow__rank{text-align:center;color:var(--vhu-gold);font-variant-numeric:tabular-nums;font-size:28px;font-weight:900}.srow__name{text-overflow:ellipsis;white-space:nowrap;font-size:28px;font-weight:700;overflow:hidden}.srow__pts{font-variant-numeric:tabular-nums;font-size:30px;font-weight:900}.srow__pts small{color:var(--on-dark-muted);font-size:20px}.srow.is-updated{animation:srowFlash 1.4s var(--ease-out)}@keyframes srowFlash{0%{background:#5ef0b473}}.h2-c{white-space:nowrap;font-size:30px!important}.col{overflow:hidden}.refresh-led{text-align:right;align-items:center;gap:12px;margin-left:auto;font-size:20px;font-weight:700;display:flex}.refresh-led .ring{width:52px;height:52px}.refresh-led .ring__num{font-size:20px}.refresh-led__text{line-height:1.2;display:grid}.refresh-led__text span{color:var(--on-dark-muted)}.led-offline{color:var(--vhu-gold)!important}.led-empty{text-align:center;background:#ffffff1a;border:3px dashed #ffffff59;border-radius:28px;place-items:center;padding:30px;font-size:38px;font-weight:900;display:grid;position:absolute;inset:0}.led-empty small{color:var(--on-dark-muted);margin-top:12px;font-size:24px;display:block}@media (prefers-reduced-motion:reduce){.stage:before{display:none}.lrow,.srow{transition:none}}.force-reduced-motion .stage:before{display:none}.qr-tools{gap:14px;margin-bottom:18px;display:grid}@media (width>=900px){.qr-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}}.seg-light{border:0;flex-wrap:wrap;gap:6px;min-width:0;margin:0;padding:0;display:flex}.seg-light legend{width:100%;font-size:var(--fs-sm);margin-bottom:6px;font-weight:700}.seg-light label{border-radius:var(--radius-pill);border:1.5px solid var(--line);min-height:44px;font-size:var(--fs-sm);cursor:pointer;background:#fff;align-items:center;gap:8px;padding:0 14px;font-weight:700;display:inline-flex}.seg-light label:has(input:checked){border-color:var(--vhu-navy);background:var(--info-soft);color:var(--vhu-navy)}.seg-light label:has(input:focus-visible){outline:3px solid var(--vhu-blue);outline-offset:2px}.seg-light input{accent-color:var(--vhu-navy);width:18px;height:18px;margin:0}@media (width>=760px){.toolbar--users{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto}}.act{justify-content:flex-end;display:flex}.table td.act-cell{text-align:right}.empty-users{justify-items:center;gap:8px;max-width:520px;margin:0 auto;display:grid}.role-flow{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.vote-sum{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.vote-sum li{min-width:0;max-width:100%}.vote-sum .team-chip{border:1px solid var(--line);background:#fff;max-width:100%}.vote-sum b{color:var(--vhu-navy);font-variant-numeric:tabular-nums;margin-left:4px}.app-header__nav .nav-link,.app-header__nav .user-chip{white-space:nowrap}.user-chip .hide-sm{text-overflow:ellipsis;max-width:11ch;overflow:hidden}@media (width>=640px){.app-header__nav .nav-link.hide-sm{display:inline-flex!important}}.app-header__nav{flex-wrap:nowrap;min-width:0}.app-header__nav>*{flex:none}.side{gap:var(--space-5);min-width:0;display:grid}.page-head{gap:var(--space-2);margin-bottom:var(--space-5);display:grid}.page-head>*{margin:0}.container.has-scan-dock{padding-top:var(--space-6)}.avatar-page,.photo-page{gap:var(--space-5);align-content:start;display:grid}.avatar-page>.page-head,.photo-page>.page-head{margin-bottom:0}.avatar-editor{gap:14px;display:grid}.avatar-stage{aspect-ratio:1;border-radius:var(--radius);width:100%;max-width:520px;box-shadow:var(--shadow);background:#eef3f8;margin:0 auto;position:relative;overflow:hidden}.avatar-canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;position:absolute;inset:0}.avatar-canvas.is-editable{cursor:grab}.avatar-canvas.is-editable:active{cursor:grabbing}.avatar-canvas:focus-visible{outline:3px solid var(--vhu-blue);outline-offset:-3px}.avatar-placeholder{color:var(--ink);text-align:center;pointer-events:none;place-items:center;padding:24%;font-size:.95rem;font-weight:700;display:grid;position:absolute;inset:0}.avatar-controls{color:var(--ink);gap:12px;display:grid}.avatar-upload{cursor:pointer;justify-self:start;min-height:44px}.avatar-upload:focus-within{outline:3px solid var(--vhu-gold);outline-offset:2px}.avatar-zoom{align-items:center;gap:8px;display:flex}.avatar-zoom input[type=range]{min-width:0;min-height:44px;accent-color:var(--vhu-blue);flex:1}.avatar-zoom .btn{min-width:44px;min-height:44px}.avatar-tools{flex-wrap:wrap;gap:8px;display:flex}.avatar-tools .btn{min-height:44px}.avatar-tools .btn[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--vhu-blue)}.avatar-save{gap:10px;display:grid}.avatar-save__alt{flex-wrap:wrap;justify-content:center}.avatar-save-img{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:12px;width:100%;max-width:420px;margin:0 auto 12px;display:block}.avatar-steps{gap:12px;display:grid}.avatar-steps__list{gap:6px;margin:0;padding-left:1.2rem;display:grid}.photo-page .card,.photo-form{gap:14px;display:grid}.photo-steps,.photo-rules{gap:6px;margin:0;padding-left:1.2rem;display:grid}.photo-points{flex-wrap:wrap;gap:10px 18px;margin:0;padding:0;font-weight:700;list-style:none;display:flex}.photo-types{border:0;min-width:0;margin:0;padding:0}.photo-types legend{font-size:var(--fs-sm);margin-bottom:6px;font-weight:700}.photo-types__grid{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=560px){.photo-types__grid{grid-template-columns:1fr 1fr}}.photo-type{border:1.5px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#fff;grid-template-columns:auto 1fr;align-items:start;gap:10px;min-height:44px;padding:12px;display:grid}.photo-type small{color:var(--muted);margin-top:4px;font-weight:400;display:block}.photo-type input{width:22px;height:22px;accent-color:var(--vhu-blue);margin-top:2px}.photo-type.is-selected{border-color:var(--vhu-blue);box-shadow:inset 0 0 0 1.5px var(--vhu-blue);background:var(--info-soft)}.photo-type:focus-within{outline:3px solid var(--vhu-gold);outline-offset:2px}.photo-mine__sum{margin:0}.photo-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.photo-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;gap:6px;min-width:0;padding:12px;display:grid}.photo-item__top{flex-wrap:wrap;gap:8px;display:flex}.photo-item__link{overflow-wrap:anywhere;word-break:break-word}.photo-item__note{border-radius:var(--radius-xs);background:var(--danger-soft);color:var(--danger);margin:0;padding:8px 10px}.photo-admin__status{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.photo-admin__status .btn{min-height:44px}.photo-admin__status .btn[aria-pressed=true]{background:var(--vhu-navy);border-color:var(--vhu-navy);color:#fff!important}.photo-review__links{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.photo-review__url{text-overflow:ellipsis;white-space:nowrap;max-width:34ch;margin-top:4px;display:block;overflow:hidden}.photo-review__note{color:var(--danger);overflow-wrap:anywhere;margin-top:4px;display:block}.photo-review__actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.reject-form{gap:12px;display:grid}.reject-chips{flex-wrap:wrap;gap:6px;display:flex}.reject-chips .btn{white-space:normal;text-align:left;min-height:44px}.photo-board{gap:12px;display:grid}.photo-board .panel__head{margin-bottom:0}.photo-board__refresh,.photo-board__total{margin:0}.photo-board__mine{border:1px solid var(--on-dark-line);border-radius:var(--radius-sm);background:var(--glass);color:var(--on-dark);margin:0;padding:10px 14px}.photo-board .rank-row--student .st-points small{font-weight:700}.segmented[data-tabs="4"] [role=tab]{padding-inline:2px;font-size:.8rem}.segmented[data-tabs="4"] [role=tab] small{font-size:.65rem}@media (width>=480px){.segmented[data-tabs="4"] [role=tab]{font-size:var(--fs-sm);padding-inline:6px}.segmented[data-tabs="4"] [role=tab] small{font-size:.7rem}}.photo-home p{overflow-wrap:anywhere}.avatar-page .avatar-controls,.photo-page .photo-form,.photo-admin .toolbar{min-width:0}.photo-page .btn,.photo-admin .btn,.avatar-editor .btn{min-height:44px}@media (width<=420px){.avatar-tools .btn{flex:calc(50% - 8px);padding-inline:8px}.photo-review__actions{justify-content:flex-start}}@media (width>=760px){.photo-admin .toolbar{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) auto}.photo-review__url{max-width:28ch}}@media (width>=1200px){.photo-review__url{max-width:40ch}}@media (prefers-reduced-motion:reduce){.avatar-canvas{cursor:default}.photo-type,.photo-admin__status .btn{transition:none}}:root{--ev-panel:linear-gradient(180deg, #0a5ee0 0%, #0848bd 100%);--ev-panel-soft:#ffffff14;--ev-panel-border:#bee1ff8c;--ev-chip:#072a8a;--ev-orange:linear-gradient(180deg, #ff9f1c 0%, #f07a10 100%);--ev-orange-text:#ff9d1c;--ev-sub:#cfe3ff;--ev-active:#ffffff38}.ev-shell{color:#fff;min-height:100vh;padding-bottom:112px}.ev-shell__main{width:min(1160px,100%);padding:0 var(--gutter) var(--space-6);margin:0 auto}.ev-header{z-index:var(--z-header);padding:var(--space-4) var(--gutter) var(--space-3);position:relative}.ev-header__inner{gap:var(--space-3);grid-template-columns:1fr auto;grid-template-areas:"brand avatar""score score";align-items:center;width:min(1160px,100%);margin:0 auto;display:grid}.ev-brand{align-items:center;gap:var(--space-3);color:#fff;grid-area:brand;min-width:0;text-decoration:none;display:flex}.ev-brand__mark{border:2px solid var(--ev-panel-border);letter-spacing:.02em;background:linear-gradient(#1a73e8,#0a3fb0);border-radius:14px;flex:none;place-items:center;width:48px;height:48px;font-size:.95rem;font-weight:800;display:grid}.ev-brand__text{min-width:0;line-height:1.2;display:grid}.ev-brand__name{letter-spacing:.06em;font-weight:800;font-size:var(--fs-base)}.ev-brand__sub{color:var(--ev-sub);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ev-avatar{background:var(--ev-chip);color:#fff;letter-spacing:.04em;cursor:pointer;border:3px solid #fff;border-radius:50%;grid-area:avatar;width:48px;height:48px;font-weight:800}.ev-score{background:var(--ev-chip);border:2px solid var(--ev-panel-border);box-shadow:var(--shadow-events);border-radius:22px;grid-area:score;grid-template-columns:1fr 1fr;gap:0;margin:0;display:grid}.ev-score__cell{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);min-width:0;display:flex}.ev-score__cell+.ev-score__cell{border-left:1px solid var(--on-dark-line)}.ev-score__icon{color:#0a3fb0;background:#fff0e0;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.ev-score__icon--rank{color:#0a3fb0;background:#fff}.ev-score dt{font-size:var(--fs-xs);color:var(--ev-sub)}.ev-score dd{margin:0;font-size:1.6rem;font-weight:800;line-height:1.1}@media (width>=900px){.ev-header__inner{grid-template-columns:1fr auto 1fr;grid-template-areas:"brand score avatar"}.ev-avatar{justify-self:end}.ev-score{min-width:340px}}.ev-nav{z-index:var(--z-dock);background:var(--ev-orange);width:min(980px,100% - 20px);box-shadow:0 8px 0 #aa50008c, var(--shadow-events);border:2px solid #ffffff8c;border-radius:24px;padding:6px;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.ev-nav__list{grid-template-columns:repeat(6,1fr);gap:2px;margin:0;padding:0;list-style:none;display:grid}.ev-nav__item{min-width:0}.ev-nav__link{color:#fff;text-align:center;border-radius:18px;align-content:center;justify-items:center;gap:2px;min-height:56px;padding:6px 2px;font-size:.64rem;font-weight:700;line-height:1.15;text-decoration:none;display:grid;position:relative}.ev-nav__link:hover{background:#ffffff24}.ev-nav__link.is-active{background:var(--ev-active);box-shadow:inset 0 0 0 1px #ffffff73}.ev-nav__link.is-closed{opacity:.8}.ev-nav__icon{place-items:center;height:24px;display:grid}.ev-nav__label{overflow-wrap:anywhere}.ev-nav__badge{color:#fff;background:#072a8a;border-radius:999px;padding:1px 5px;font-size:.55rem;font-weight:700;position:absolute;top:2px;right:2px}@media (width>=640px){.ev-nav__link{flex-direction:column;font-size:.78rem}}.ev-stage{border:2px solid var(--ev-panel-border);background:var(--ev-panel);box-shadow:var(--shadow-events);border-radius:34px;grid-template-columns:1fr;display:grid;overflow:hidden}.ev-stage__aside{padding:var(--space-6) var(--space-5);background:linear-gradient(#0a60e4 0%,#0850c8 100%)}.ev-stage__body{padding:var(--space-6) var(--space-5);background:linear-gradient(#0750c9 0%,#0540a8 100%)}.ev-stage__step{margin:0 0 var(--space-4);color:var(--ev-sub);letter-spacing:.14em;font-size:var(--fs-sm);text-transform:uppercase;font-weight:700}.ev-stage__image{width:160px;height:160px;margin:0 auto var(--space-4);object-fit:contain;background:#eaf3ff;border-radius:26px;padding:8px;display:block}.ev-stage__title{margin:var(--space-3) 0 var(--space-2);font-size:var(--fs-2xl);text-transform:uppercase;font-weight:800;line-height:1.12}.ev-stage__desc{white-space:pre-line;color:var(--ev-sub);margin:0;line-height:1.5}.ev-badge{background:var(--ev-orange);color:#fff;font-size:var(--fs-sm);border-radius:999px;padding:4px 12px;font-weight:800;display:inline-block}@media (width>=900px){.ev-stage{grid-template-columns:minmax(300px,.9fr) 1.1fr}.ev-stage__aside,.ev-stage__body{padding:var(--space-7)}}.ev-cta{background:var(--ev-orange);color:#fff;width:100%;min-height:52px;font-weight:800;font-size:var(--fs-lg);text-align:center;cursor:pointer;border:0;border-radius:16px;padding:12px 20px;display:block;box-shadow:0 5px #aa500080}.ev-cta[disabled]{opacity:.55;cursor:not-allowed}.ev-pill{border:1px solid var(--ev-panel-border);color:#fff;text-align:center;background:#053caa8c;border-radius:16px;width:100%;padding:14px 20px;font-weight:700;display:block}.ev-muted{color:var(--ev-sub)}@media (prefers-reduced-motion:reduce){.ev-nav__link,.ev-cta{transition:none}}.ev-shell__notice{width:min(720px,100%);margin:var(--space-6) auto 0;padding:0 var(--gutter)}.ev-notice{grid-template-columns:1fr}.ev-notice__body{text-align:center;padding:var(--space-8) var(--space-5)}.ev-notice__count{margin:var(--space-4) 0;font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;font-weight:800}.ev-notice__actions{gap:var(--space-3);margin-top:var(--space-6);display:grid}.team-logo{object-fit:contain;display:block}.team-logo--sm{width:36px;height:36px}.team-logo--md{width:64px;height:64px}.team-logo--lg{width:110px;height:110px}.team-letter{background:var(--team-color,#ffc72c);color:var(--on-team);border-radius:16px;place-items:center;font-weight:800;display:grid;position:relative}.team-letter--sm{width:36px;height:36px;font-size:1rem}.team-letter--md{width:64px;height:64px;font-size:1.7rem}.team-letter--lg{width:110px;height:110px;font-size:3rem}.team-letter__shape{opacity:.55;width:38%;height:38%;position:absolute;bottom:4px;right:4px}.team-letter__shape svg{width:100%;height:100%}.team-card{align-items:center;gap:var(--space-3);min-height:88px;padding:var(--space-3) var(--space-4);color:#fff;font-weight:800;font-size:var(--fs-lg);text-align:left;cursor:pointer;background:linear-gradient(#1a8cf0,#1171d6);border:2px solid #0000;border-radius:16px;display:flex;position:relative}.team-card:hover{filter:brightness(1.06)}.team-card.is-selected{background:var(--ev-orange);border-color:#fff}.team-card__name{letter-spacing:.03em;flex:1}.team-card__radio{opacity:.85;font-size:1.1rem;position:absolute;top:8px;right:10px}.stall-tile{justify-items:center;gap:var(--space-2);text-align:center;list-style:none;display:grid}.stall-tile__art{place-items:center;width:132px;height:132px;display:grid;position:relative}.stall-tile__art img{object-fit:contain;filter:saturate(.55)brightness(.9);opacity:.8;width:100%;height:100%}.stall-tile.is-done .stall-tile__art img{filter:none;opacity:1}.stall-tile__fallback{background:var(--team-color,#ffc72c);width:96px;height:96px;color:var(--on-team);border-radius:18px;place-items:center;font-size:2.4rem;font-weight:800;display:grid}.stall-tile__letter{color:#fff;background:#072a8a;border:2px solid #fff;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid;position:absolute;top:2px;right:4px}.stall-tile.is-done .stall-tile__letter{background:var(--ev-orange)}.stall-tile__name{letter-spacing:.04em;font-weight:800}.stall-tile__state{border:1px solid var(--ev-panel-border);color:var(--ev-sub);border-radius:999px;padding:3px 10px;font-size:.72rem}.stall-tile__state.is-done{color:#fff;background:#0f7a5573;border-color:#5ef0b4}.ev-shell__main-inner{display:block}.ev-stage__media{min-height:128px;margin-bottom:var(--space-4);place-items:center;display:grid}.team-placeholder{border:2px dashed var(--ev-panel-border);width:110px;height:110px;color:var(--ev-sub);border-radius:22px;place-items:center;font-size:3rem;font-weight:800;display:grid}.ev-kicker{margin:0 0 var(--space-1);color:var(--ev-sub);letter-spacing:.12em;text-transform:uppercase;font-size:var(--fs-sm);font-weight:700}.ev-subtitle{margin:0 0 var(--space-4);font-size:var(--fs-2xl);font-weight:800}.team-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.ev-alert{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--ev-panel-border);background:#ffffff1f;border-radius:14px}.ev-alert--danger{border-color:#ff9a9a}.ev-alert--warning{border-color:#ffd37a}.ev-alert--info{border-color:#8fd0ff}.ev-links{justify-content:center;gap:var(--space-4);margin:var(--space-4) 0 0;flex-wrap:wrap;display:flex}.ev-link{color:#fff;cursor:pointer;font:inherit;background:0 0;border:0;padding:4px;text-decoration:underline}.ev-draft{color:var(--warning);font-weight:700}.ev-pill--btn{cursor:pointer;font:inherit}.ev-pill{margin:0 0 var(--space-3)}.ev-home{width:min(1160px,100%);padding:0 var(--gutter) var(--space-6);margin:0 auto}.ev-home__title{margin:0 0 var(--space-2);font-size:var(--fs-3xl);text-transform:uppercase;font-weight:800}.ev-home__progress{margin:0 0 var(--space-5);color:var(--ev-sub)}.ev-home__grid{margin:0 0 var(--space-6);gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));padding:0;list-style:none;display:grid}.ev-card{gap:var(--space-2);padding:var(--space-4);border:2px solid var(--ev-panel-border);background:var(--ev-panel);box-shadow:var(--shadow-events);border-radius:24px;flex-direction:column;display:flex;position:relative}.ev-card.is-closed{opacity:.85}.ev-card__num{color:var(--ev-sub);letter-spacing:.1em;font-weight:800}.ev-card__art{place-items:center;min-height:120px;display:grid}.ev-card__art img{object-fit:contain;background:#eaf3ff;border-radius:20px;width:120px;height:120px;padding:6px}.ev-card__fallback{color:#0a3fb0;background:#eaf3ff;border-radius:20px;place-items:center;width:120px;height:120px;font-size:3rem;font-weight:800;display:grid}.ev-card__title{font-size:var(--fs-xl);margin:0;font-weight:800;line-height:1.15}.ev-card__desc{color:var(--ev-sub);font-size:var(--fs-sm);flex:1;margin:0;line-height:1.45}.ev-card__status{flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.72rem;display:flex}.ev-state{border:1px solid var(--ev-panel-border);border-radius:999px;padding:2px 8px;font-weight:700}.ev-state--open{border-color:#5ef0b4}.ev-state--closed{opacity:.8}.ev-state--done{background:#0f7a5573;border-color:#5ef0b4}.ev-card__note{color:var(--ev-sub)}.ev-card__cta{margin-top:var(--space-1);background:var(--ev-orange);color:#fff;text-align:center;text-transform:uppercase;border-radius:999px;align-self:stretch;padding:10px 16px;font-weight:800;text-decoration:none;display:block;box-shadow:0 8px 18px #ff780059}.ev-card__cta:hover{filter:brightness(1.08)}.ev-card__cta:after{content:"";border-radius:24px;position:absolute;inset:0}.ev-card__cta:focus-visible{outline-offset:2px;outline:3px solid #fff}.ev-home__bar{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border:2px solid var(--ev-panel-border);background:#053caa8c;border-radius:22px;flex-wrap:wrap;display:flex}.ev-home__step{width:34px;height:34px;font-size:var(--fs-xs);background:#ffffff26;border-radius:10px;place-items:center;display:grid}.ev-home__meter{accent-color:#ff9d1c;flex:140px;height:12px}.ev-bar-link{background:#fff;border-radius:14px;padding:10px 18px;font-weight:800;text-decoration:none;color:#0a3fb0!important}.ev-accent{color:var(--ev-orange-text)}.quiz-rules,.quiz-notes{margin:0 0 var(--space-4);padding-left:1.1em;line-height:1.6}.quiz-notes{color:var(--ev-sub);font-size:var(--fs-sm)}.quiz-top{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.quiz-ring{width:64px;height:64px;position:relative}.quiz-ring svg{transform:rotate(-90deg)}.quiz-ring__track{fill:none;stroke:#ffffff38;stroke-width:5px}.quiz-ring__bar{fill:none;stroke:#ff9d1c;stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.quiz-ring.is-urgent .quiz-ring__bar{stroke:#ff6b6b}.quiz-ring__num{font-variant-numeric:tabular-nums;place-items:center;font-size:1.2rem;font-weight:800;display:grid;position:absolute;inset:0}.quiz-card{padding:var(--space-4);margin-bottom:var(--space-4);min-height:96px;color:var(--ink);font-weight:700;font-size:var(--fs-lg);background:#fff;border-radius:16px;line-height:1.4}.quiz-options{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=640px){.quiz-options{grid-template-columns:1fr 1fr}}.quiz-option{align-items:flex-start;gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-4);color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:#fff;border:3px solid #0000;border-radius:16px;font-weight:600;display:flex}.quiz-option__key{background:#e6eefb;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.quiz-option.is-selected{background:#fff4e0;border-color:#ff9d1c}.quiz-option.is-selected .quiz-option__key{color:#fff;background:#ff9d1c}.quiz-score{margin:0 0 var(--space-2);font-size:var(--fs-xl)}.quiz-score__num{font-size:var(--fs-3xl);color:var(--ev-orange-text);font-weight:800}@media (prefers-reduced-motion:reduce){.quiz-ring__bar{transition:none}}.ev-page{width:min(1160px,100%);padding:0 0 var(--space-6);margin:0 auto}.ev-notice-card{gap:var(--space-3);text-align:center;padding:var(--space-7) var(--space-5);border:2px solid var(--ev-panel-border);background:var(--ev-panel);border-radius:34px;justify-items:center;display:grid}.ev-challenge__progress{margin:0 0 var(--space-3);font-size:var(--fs-lg)}.elv-strip{margin-bottom:var(--space-4);grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.elv-strip__letter{aspect-ratio:1/1.1;border:2px dashed var(--ev-panel-border);color:var(--ev-sub);border-radius:12px;place-items:center;font-size:1.5rem;font-weight:800;display:grid}.elv-strip__letter.is-on{background:var(--ev-orange);color:#fff;border-style:solid}.elv-strip__letter.is-new{animation:.7s ease-out elv-pop}@keyframes elv-pop{0%{transform:scale(.4)rotate(-12deg)}60%{transform:scale(1.25)}to{transform:scale(1)}}.stall-grid{margin:0 0 var(--space-4);gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));padding:0;list-style:none;display:grid}.gift-box{gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-4);background:var(--ev-panel-soft);border:1px solid var(--ev-panel-border);border-radius:22px;display:grid}.gift-box__qr{background:#fff;border-radius:16px;width:min(260px,100%);margin:0 auto;padding:10px}.gift-box__steps{color:var(--dark-text,#0a1a4a);margin:0;padding-left:1.2em;line-height:1.6}@media (prefers-reduced-motion:reduce){.elv-strip__letter.is-new{animation:none}}.vote-grid{margin:0 0 var(--space-4);gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:0;list-style:none;display:grid}.vote-card{justify-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);border:2px solid var(--ev-panel-border);background:var(--ev-panel-soft);cursor:pointer;text-align:center;border-radius:18px;min-height:44px;display:grid;position:relative}.vote-card input{opacity:0;cursor:pointer;position:absolute;inset:0}.vote-card:focus-within{outline-offset:2px;outline:3px solid #fff}.vote-card.is-selected,.vote-card.is-chosen{background:#ffc72c2e;border-color:#ffd37a}.vote-card.is-locked{cursor:default;opacity:.85}.vote-card__name{letter-spacing:.04em;font-weight:800}.vote-card__count,.vote-card__mine{font-size:var(--fs-xs);color:var(--ev-sub)}.vote-card__mine{color:#ffd37a;font-weight:700}.photo-page .photo-form,.photo-page .photo-mine{margin-top:var(--space-4);color:var(--dark-text,#0a1a4a)}.photo-steps{margin:0 0 var(--space-3);padding-left:1.2em;line-height:1.7}.photo-points{margin:0 0 var(--space-3);gap:var(--space-2);padding:0;list-style:none;display:grid}.photo-points li{padding:var(--space-3);border:1px solid var(--ev-panel-border);border-radius:14px}.photo-points li.is-current{background:#ffc72c26;border-color:#ffd37a}.photo-copy{width:auto;margin:0 0 0 var(--space-2);padding:4px 12px;display:inline-block}.score-table-wrap{margin-top:var(--space-4);border:1px solid var(--line,#0000001f);color:#0a1a4a;-webkit-overflow-scrolling:touch;background:#fff;border-radius:14px;overflow-x:auto}.score-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:var(--fs-sm)}.score-table th,.score-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #00000014;padding:8px 10px}.score-table thead th{font-size:var(--fs-xs);white-space:normal;text-align:center;background:#eef4ff;min-width:76px}.score-table .score-table__team{z-index:1;text-align:left;background:#fff;min-width:140px;display:table-cell;position:sticky;left:0}.score-table thead .score-table__team{background:#eef4ff}.score-table__rank{min-width:1.4em;margin-right:6px;font-weight:800;display:inline-block}.score-table__total{background:#fff6e0;font-weight:800}.score-table tr.is-mine th,.score-table tr.is-mine td{background:#fff1cf}.rank-row.is-mine{outline:2px solid #ffc72c}.gift-letter{gap:var(--space-3);display:grid}.gift-letter__img{border:2px solid var(--ev-panel-border);border-radius:16px;width:min(320px,100%);height:auto;margin:0 auto;display:block}.theme-events a.ev-nav__link,.theme-events a.ev-cta,.theme-events a.ev-pill,.theme-events .lp a,.theme-events .lp a.lp-cta{color:#fff;text-decoration:none}.theme-events a.ev-cta:hover,.theme-events a.ev-pill:hover{text-decoration:none}.score-table__who{align-items:center;gap:8px;display:flex}.score-table__who .team-logo,.score-table__who .team-letter{flex:none;width:32px;height:32px}.gift-box__code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;max-width:100%;font-family:ui-monospace,monospace;display:inline-block}.gift-zone{gap:var(--space-4);margin-top:var(--space-5);display:grid}.gift-card{gap:var(--space-3);padding:var(--space-5);border:2px solid var(--ev-panel-border);box-shadow:var(--shadow-events);background:linear-gradient(#0a5ee0 0%,#0636a0 100%);border-radius:28px;display:grid}.gift-card__title{font-size:var(--fs-lg);margin:0;font-weight:800}.gift-card__lead{margin:0}.gift-card--qr{text-align:center;justify-items:center}.gift-banner{color:#fff;font-weight:800;font-size:var(--fs-base);background:linear-gradient(#ff9a2a,#e8700f);border:1px solid #ffffff73;border-radius:16px;margin:0;padding:14px 22px;box-shadow:0 5px #96460073}.share-form{gap:var(--space-3);display:grid}.share-form .ev-alert{margin:0}.share-row{gap:var(--space-3);grid-template-columns:1fr;display:grid}.share-row__field{display:block}.share-row__field .input{border:2px solid var(--ev-panel-border);color:#fff;background:#0a46b8;border-radius:14px;width:100%;min-height:52px;font-style:normal}.share-row__field .input::placeholder{color:#ffffffb3;font-style:italic}.share-row__btn{white-space:nowrap;min-height:52px}@media (width>=800px){.share-row{grid-template-columns:minmax(0,1fr) 190px 230px;align-items:stretch}.gift-letter{align-items:start;gap:var(--space-4) var(--space-5);grid-template-rows:auto 1fr;grid-template-columns:320px 1fr}.gift-letter__img{grid-row:1/span 2}.gift-letter .ev-cta{justify-self:start;width:auto;padding-inline:32px}}.photo-title{margin:0 0 var(--space-4);font-size:clamp(1.5rem,3vw,2rem);font-weight:800;line-height:1.2}.photo-guide{gap:var(--space-3);margin-bottom:var(--space-3);display:grid}.photo-steps{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.photo-step{background:linear-gradient(#0646beb3,#0537a0b3);border-radius:16px;align-items:flex-start;gap:14px;padding:14px 18px;display:flex;box-shadow:inset 0 -3px #00145a59}.photo-step__num{color:#0a46b8;background:#fff;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:.85rem;font-weight:800;display:grid}.photo-step__text{gap:4px;display:grid}.photo-step__text b{font-size:var(--fs-lg)}.photo-step__text span{font-size:var(--fs-sm);color:#ffffffe0;line-height:1.5}.photo-hash{color:#0a3fb0;background:#eaf2ff;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px 12px 18px;display:flex;box-shadow:0 3px #001e6e59}.photo-hash__tags{overflow-wrap:anywhere;font-weight:800}.photo-hash__copy{color:#0a3fb0;min-height:44px;font:inherit;cursor:pointer;background:#c8dcff;border:0;border-radius:12px;flex:none;padding:8px 18px;font-weight:800}.photo-page .photo-form{gap:var(--space-3);margin-top:var(--space-4);color:#fff;display:grid}.photo-form .field{gap:8px;display:grid}.photo-form label{font-weight:800}.photo-form .input{color:#33425f;background:#fff;border:2px solid #fff;border-radius:14px;min-height:52px;padding-inline:18px;font-weight:700}.photo-form .input::placeholder{color:#5b6784}.photo-form .muted,.photo-form .text-sm{color:#ffffffd9}.photo-form .field-error{color:#ffd0d0;font-weight:700}.photo-submit{color:#fff;width:100%;min-height:56px;font:inherit;font-size:var(--fs-lg);cursor:pointer;background:linear-gradient(#1f78f0,#0b4fcb);border:2px solid #96c8ffb3;border-radius:16px;justify-content:center;align-items:center;gap:18px;padding:12px 20px;font-weight:800;display:flex;box-shadow:0 4px #001e6e73}.photo-submit[disabled]{opacity:.6;cursor:not-allowed}.photo-submit__pts{color:#ff9a1f}.photo-note{text-align:center;font-size:var(--fs-sm);color:#ffffffd9;margin:0;line-height:1.6}.lp .ev-bar-link{color:#0a3fb0}.lp .ev-bar-link:hover{text-decoration:underline}.gift-box__steps.ev-muted{color:#fff}.photo-notes{gap:var(--space-3);margin:var(--space-4) 0;color:#fff;display:grid}.photo-notes__label{color:#ff9a1f;font-size:var(--fs-xl);margin:0;font-weight:800}.photo-notes__cols{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.photo-notes h4{margin:0 0 var(--space-2);font-size:var(--fs-md,1rem);font-weight:800}.photo-notes ul{line-height:1.7;font-size:var(--fs-sm);margin:0;padding-left:1.2em}.photo-notes ul ul{margin-top:2px}.photo-notes .is-hl{color:#ff9a1f}.lp{--lp-gutter:clamp(20px, 5vw, 64px);color:#fff;scroll-behavior:smooth;background:#0340b8;min-height:100vh;overflow-x:clip}.lp a{color:inherit}.lp-ico{flex:none}.lp-nav{z-index:var(--z-header,20);height:0;padding:18px var(--lp-gutter) 0;position:sticky;top:0}.lp-nav__inner{background:linear-gradient(90deg,#0a4fd0,#052d8f);border:1.5px solid #46aaffcc;border-radius:999px;align-items:center;gap:12px;width:min(1160px,100%);margin:0 auto;padding:12px 22px 12px 26px;display:flex;box-shadow:0 14px 40px #02145a59}.lp-nav__mark{background:radial-gradient(circle,#1a78e8,#0a3fb0);border:2px solid #ffffffb3;border-radius:50%;flex:none;place-items:center;width:48px;height:48px;font-size:.78rem;font-weight:800;text-decoration:none;display:grid;box-shadow:0 0 18px #3caaffb3}.lp-nav__links{flex:1;justify-content:space-between;align-items:center;gap:2px;margin:0 0 0 14px;padding:0;list-style:none;display:flex}.lp-nav__links a:not(.lp-cta){white-space:nowrap;border-radius:999px;min-height:44px;padding:10px 7px;font-size:.88rem;font-weight:600;line-height:24px;display:block}.lp-nav__links a:not(.lp-cta):hover{background:#ffffff24}.lp-nav .lp-cta{padding-inline:18px;font-size:.9rem}.lp-nav__cta{flex:none}.lp-nav__inner{position:relative}.lp-nav__burger{cursor:pointer;background:#ffffff1a;border:1.5px solid #ffffff8c;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;padding:0;display:none}.lp-nav__burger span,.lp-nav__burger span:before,.lp-nav__burger span:after{background:#fff;border-radius:2px;width:18px;height:2px;transition:transform .2s,background .2s;display:block}.lp-nav__burger span{position:relative}.lp-nav__burger span:before,.lp-nav__burger span:after{content:"";position:absolute;left:0}.lp-nav__burger span:before{top:-6px}.lp-nav__burger span:after{top:6px}.lp-nav__burger[aria-expanded=true] span{background:0 0}.lp-nav__burger[aria-expanded=true] span:before{transform:translateY(6px)rotate(45deg)}.lp-nav__burger[aria-expanded=true] span:after{transform:translateY(-6px)rotate(-45deg)}.lp-nav__drop{background:linear-gradient(#0a4fd0,#052d8f);border:1.5px solid #46aaffcc;border-radius:24px;margin:0;padding:10px;list-style:none;position:absolute;top:calc(100% + 10px);left:0;right:0;box-shadow:0 14px 40px #02145a73}.lp-nav__drop a{border-radius:14px;min-height:44px;padding:12px 16px;font-weight:600;display:block}.lp-nav__drop a:hover{background:#ffffff24}.lp-cta{color:#fff;white-space:nowrap;background:#ff8a00;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:10px 28px;font-weight:700;display:inline-flex;box-shadow:0 10px 24px #ff780059}.lp-cta:hover{background:#ff9a1f}.lp-ghost{background:#1450be8c;border:1px solid #96c8ff8c;border-radius:999px;align-items:center;gap:10px;min-height:48px;padding:10px 28px;font-weight:600;display:inline-flex}.lp-ghost:hover{background:#286edca6}.lp a:focus-visible{outline-offset:3px;outline:3px solid #ffd54a}.lp-kicker{letter-spacing:.2em;text-transform:uppercase;color:#fff;margin:0 0 8px;font-size:.75rem;font-weight:700}.lp-kicker--dash{align-items:center;gap:14px;margin-bottom:18px;display:flex}.lp-kicker--dash:before{content:"";background:#ff8a00;flex:none;width:40px;height:2px}.lp-kicker--blue{color:#0a35d8}.lp-kicker--cyan{color:#5cc8ff}.lp-h2{letter-spacing:-.02em;text-transform:uppercase;margin:0 0 16px;font-size:clamp(2.2rem,6vw,4rem);font-weight:800;line-height:1.05}.lp-h2--blue{color:#0a35d8}.lp-h2--md{letter-spacing:-.01em;text-transform:none;font-size:clamp(1.6rem,3.6vw,2.9rem);line-height:1.3}.lp-h2--gold{color:#ffe27a;text-transform:none;background:linear-gradient(#fff3c0,#ffc72c);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,4.6vw,3.4rem)}.lp-h3{text-transform:uppercase;color:#7fd6ff;margin:0;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800}.lp-note{color:#cfe3ff}.lp-note a{text-underline-offset:3px;text-decoration:underline}.lp section{padding:72px var(--lp-gutter)}.lp section>*{max-width:1200px;margin-left:auto;margin-right:auto}.lp-hero{isolation:isolate;background:linear-gradient(#0a4ad2 0%,#0538a8 55%,#02205f 100%);align-content:center;min-height:max(720px,100svh);padding-top:140px;display:grid;position:relative;overflow:hidden}.lp-hero:before{content:"";z-index:-1;background:var(--lp-hero-photo) right bottom / cover no-repeat;width:min(62%,920px);height:min(92%,860px);position:absolute;bottom:0;right:0;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 28%);mask-image:linear-gradient(90deg,#0000 0,#000 28%)}.lp-hero:after{content:"";z-index:-1;background:linear-gradient(#0000,#02165ad9);height:40%;position:absolute;inset:auto 0 0}.lp-hero__body{padding:0}.lp section.lp-hero>.lp-hero__body,.lp section.lp-hero>.lp-hero__foot,.lp section.lp-hero>.lp-hero__scroll{max-width:none;margin-left:0;margin-right:0}.lp-kicker--hero{letter-spacing:.34em;margin:0 0 12px;font-size:clamp(1.5rem,3.4vw,2.8rem);font-weight:800}.lp-hero__title{text-transform:uppercase;background:linear-gradient(90deg,#ff4d0a,#ffb23c 20%,#ffe27a 45%,#ff9d1f 75%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 20px;font-size:clamp(2.4rem,6.2vw,4.6rem);font-weight:800;line-height:1.25}.lp-hero__title span{display:inline}.lp-hero__sub{color:#fff;max-width:28em;margin:0;font-size:clamp(1.05rem,2vw,1.45rem);line-height:1.7}.lp-hero__actions{flex-wrap:wrap;gap:16px;margin-top:36px;display:flex}.lp-hero__foot{right:var(--lp-gutter);letter-spacing:.1em;margin:0;font-size:.78rem;font-weight:600;position:absolute;bottom:56px}.lp-hero__scroll{letter-spacing:.14em;opacity:.85;align-items:center;gap:12px;font-size:.72rem;display:inline-flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.lp section.lp-teams{background:#eaf3ff;padding-top:72px;padding-bottom:96px}.lp-teams .lp-h2{margin-bottom:48px}.lp-teamcards{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.lp-teamcard{color:#0a35d8;width:100%;min-height:360px;font:inherit;letter-spacing:.02em;cursor:pointer;background:#fcfcfd;border:2px solid #0000;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:28px;padding:24px 8px;font-size:clamp(.95rem,1.5vw,1.35rem);font-weight:800;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.lp-teamcard img{width:100%;max-width:170px;height:auto;display:block}.lp-teamcard:hover,.lp-teamcard:focus-visible{border-color:#ffa73a;transform:translateY(-2px);box-shadow:0 0 18px #ffa0288c}.lp .lp-teamcard:focus-visible{outline-offset:3px;outline:3px solid #ffd54a}.lp section.lp-board-sec{background:#0340b8;padding-top:72px;padding-bottom:80px}.team-intro-backdrop{z-index:var(--z-dialog,60);background:#020c32b8;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.team-intro{box-sizing:border-box;background:var(--team-intro-frame) center / 100% 100% no-repeat;color:#fff;width:min(1010px,100%);min-height:min(624px,61.8vw - 19.776px);margin:auto;padding:7% 9% 9%;font-size:clamp(.82rem,1.5vw,1.1rem);line-height:1.75;position:relative}.team-intro:focus{outline:none}.team-intro__title{color:#ff9a2e;margin:0 0 6px;font-size:1.6em;font-weight:800}.team-intro__lead,.team-intro__members{margin:0;padding:0;list-style:none}.team-intro__lead li:before{content:"◆";color:#6fb2ff;margin-right:10px;font-size:.7em}.team-intro__members li:before{content:"▪";margin-right:6px}.team-intro__label{margin:0}.team-intro__close{color:#fff;cursor:pointer;background:#ffffff2e;border:0;border-radius:50%;place-items:center;width:40px;height:40px;font-size:1.6rem;line-height:1;display:grid;position:absolute;top:5%;right:5%}.team-intro__close:hover{background:#ffffff52}.team-intro__close:focus-visible{outline-offset:2px;outline:3px solid #ffd54a}.lp section.lp-journey{width:100%;max-width:none;padding:32px var(--lp-gutter) 72px;background:linear-gradient(#0340b8 0%,#052d8f 100%)}.lp-journey>*{max-width:1160px;margin-left:auto;margin-right:auto}.lp-journey .ev-kicker{margin-top:0}.lp-journey .ev-card .ev-badge{font-size:var(--fs-xs,.75rem);align-self:flex-start;padding:2px 10px;line-height:1.5}.lp-journey .ev-home__grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=860px){.lp-journey .ev-home__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.lp-journey .ev-home__grid{grid-template-columns:1fr}}.lp-board__head{border-left:5px solid #1ec0ff;margin-bottom:28px;padding-left:16px}.lp-board__head .lp-kicker{margin:0}.lp-board__frame{background:#07235e;border:2px solid #1b96ff;border-radius:26px;padding:10px;box-shadow:0 0 28px #1e96ff59}.lp-board .score-table-wrap{color:#fff;background:#082566;border:0;border-radius:18px;margin:0}.lp-board .score-table{border-spacing:0 4px;width:100%;font-size:.95rem}.lp-board .score-table th,.lp-board .score-table td{border-bottom:0}.lp-board .score-table thead th{color:#6fd3ff;background:linear-gradient(#1763ec,#1247b8);padding:14px 8px;font-size:.8rem;font-weight:700}.lp-board .score-table thead .score-table__team{color:#6fd3ff;text-align:center;background:#1763ec;font-size:1rem}.lp-board .score-table thead .score-table__total{color:#ffc72c;text-transform:uppercase;background:#1456d6;font-size:.95rem}.lp-board .score-table tbody th,.lp-board .score-table tbody td{color:#fff;background:#0b2a6f;padding:14px 10px}.lp-board .score-table tbody .score-table__team{background:#0b2a6f;border-left:4px solid #1ec0ff;font-weight:700}.lp-board .score-table tbody .score-table__total{color:#fff;background:#1a5fe0;font-weight:800}.lp-board .score-table__rank{text-align:center;background:#1e6ee659;border:1px solid #78beffb3;border-radius:8px;min-width:2em;padding:3px 6px;font-size:.75rem;font-weight:700}.lp-board .score-table tr.is-mine th,.lp-board .score-table tr.is-mine td{background:#12388e}.lp-board .score-table-wrap:focus-visible{outline-offset:2px;outline:3px solid #ffd54a}.lp-schedule{background:linear-gradient(#02207e 0%,#04349f 100%)}.lp-schedule .lp-h2{color:#fff;margin-bottom:6px}.lp-date{color:#fff;margin:0 0 40px;font-size:1.1rem}.lp-date b{color:#ff9a1f;font-weight:800}.lp-events{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:28px;margin-top:0;margin-bottom:0;padding:0;list-style:none;display:grid}.lp-event img{filter:drop-shadow(0 18px 36px #000a4673);width:100%;height:auto;display:block}.lp-prizes{background:linear-gradient(#04349f 0%,#0340b8 100%)}.lp-prizes .lp-h2{margin:0 0 72px}.lp-prize{margin:0;position:relative}.lp-prize__card{filter:drop-shadow(0 18px 30px #000a4659);width:100%;height:auto;display:block}.lp-prize__badge{filter:drop-shadow(0 8px 14px #00000059);pointer-events:none;width:32%;height:auto;position:absolute;top:-26%;right:-1%}.lp-prizes__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:96px 28px;margin-top:0;margin-bottom:0;padding:0;list-style:none;display:grid}.lp-foot{padding:28px var(--lp-gutter);text-align:center;color:#cfe3ff;background:#021a5c}.lp-foot p{margin:0}@media (width<=1240px){.lp-nav__links{justify-content:flex-end}.lp-nav__links>li:not(.lp-nav__cta){display:none}.lp-nav__burger{display:grid}}@media (width<=700px){.team-intro{min-height:0;padding:56px 32px 48px;font-size:.88rem;line-height:1.6}.team-intro__close{top:16px;right:18px}}@media (width<=900px){.lp-teamcards{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-teamcard{gap:16px;min-height:260px}.lp-events{grid-template-columns:1fr;max-width:460px}.lp-prizes__grid{grid-template-columns:1fr;gap:80px}.lp-prize__badge{width:30%}.lp-hero:before{width:100%;height:55%;-webkit-mask-image:linear-gradient(#0000 0,#000 35%);mask-image:linear-gradient(#0000 0,#000 35%)}.lp-hero__foot{margin-top:28px;position:static}.lp-hero{align-content:start;padding-top:130px;padding-bottom:80px}.lp-hero__scroll{display:none}}@media (width<=480px){.lp-nav__inner{padding:8px 10px 8px 14px}.lp-cta{padding-inline:20px}.lp-hero__actions{gap:10px}.lp-hero__actions .lp-cta,.lp-hero__actions .lp-ghost{padding-inline:18px}}@media (prefers-reduced-motion:reduce){.lp{scroll-behavior:auto}}@media (width<=520px){.lp-nav__inner{gap:8px}.lp-nav__links{min-width:0;margin-left:0}.lp-nav .lp-cta{gap:6px;min-height:44px;padding-inline:12px;font-size:.7rem}.lp-nav .lp-cta .lp-ico{display:none}}@media (width<=700px){.lp-h2--md,.lp-h2--gold{text-wrap:balance}.lp-h2--md br,.lp-h2--gold br{display:none}}
