/* tokens.css */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/montserrat-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/montserrat-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/montserrat-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url('../fonts/montserrat-latin-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url('../fonts/montserrat-latin-ext-italic.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url('../fonts/montserrat-vietnamese-italic.woff2') format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}:root{--color-crimson:#A31F34;--color-crimson-dark:#7E1728;--color-crimson-tint:#FFF9F9;--color-ink:#333333;--color-ink-soft:#3E3E3E;--color-ink-muted:rgba(51,51,51,0.5);--color-ink-faint:rgba(51,51,51,0.15);--color-surface:#FFFFFF;--color-surface-alt:#FAFAFA;--color-border:#333333;--color-border-soft:#D9D9D9;--color-error-bg:#FFEBEE;--color-error-text:#C62828;--color-success-bg:#E8F5E9;--color-success-text:#2E7D32;--font-display:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;--font-ui:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;--text-xs:clamp(0.75rem,0.71rem + 0.19vw,0.875rem);--text-sm:clamp(0.875rem,0.84rem + 0.19vw,1rem);--text-base:clamp(1rem,0.95rem + 0.23vw,1.125rem);--text-lg:clamp(1.125rem,1.05rem + 0.37vw,1.375rem);--text-xl:clamp(1.375rem,1.24rem + 0.56vw,1.75rem);--text-2xl:clamp(1.625rem,1.39rem + 1.02vw,2.25rem);--text-3xl:clamp(2rem,1.58rem + 1.85vw,3rem);--text-4xl:clamp(2.5rem,1.8rem + 3.06vw,4.25rem);--text-5xl:clamp(3rem,1.9rem + 4.8vw,6rem);--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.55;--leading-relaxed:1.7;--tracking-wide:0.05em;--tracking-wider:0.08em;--weight-light:300;--weight-normal:400;--weight-medium:600;--weight-bold:700;--weight-black:900;--space-3xs:0.25rem;--space-2xs:0.5rem;--space-xs:0.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4rem;--space-3xl:6rem;--section-gap:clamp(3rem,1.6rem + 6vw,7.5rem);--gutter:clamp(1.25rem,0.6rem + 2.8vw,5rem);--content-max:75rem;--wide-max:100rem;--measure:68ch;--radius-sm:8px;--radius-md:16px;--radius-lg:20px;--radius-pill:999px;--border-width:2px;--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 16px rgba(0,0,0,0.08);--shadow-lg:0 12px 32px rgba(0,0,0,0.12);--shadow-crimson:0 8px 24px rgba(163,31,52,0.18);--transition:0.25s ease;--header-height:clamp(4.5rem,3.5rem + 3vw,8.5rem)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}
/* base.css */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-display);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-ink-soft);background-color:var(--color-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:inherit}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-black);line-height:var(--leading-tight);color:var(--color-ink);text-wrap:balance}p{text-wrap:pretty}:focus-visible{outline:3px solid var(--color-crimson);outline-offset:3px;border-radius:2px}:focus:not(:focus-visible){outline:none}.container{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}.container--wide{max-width:var(--wide-max)}.section{padding-block:var(--section-gap)}.measure{max-width:var(--measure)}.highlight{color:var(--color-crimson)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:0;left:50%;transform:translate(-50%,-120%);z-index:200;padding:var(--space-2xs) var(--space-md);background:var(--color-crimson);color:#fff;font-family:var(--font-ui);font-weight:var(--weight-bold);text-decoration:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);transition:transform var(--transition)}.skip-link:focus{transform:translate(-50%,0)}.section-title{font-size:var(--text-3xl);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin-bottom:var(--space-lg)}.section-title--centered{text-align:center}.section-title--flush{margin-bottom:0}
/* layout.css */
.site-header{position:relative;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;max-width:var(--wide-max);margin-inline:auto;padding:clamp(1rem,0.5rem + 2vw,3.25rem) var(--gutter)}.site-header__logo img{height:clamp(2rem,1.5rem + 2.2vw,3rem);width:auto}.site-nav{display:flex;align-items:center;gap:clamp(1.25rem,0.5rem + 2vw,2.5rem)}.site-nav__link{position:relative;font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-base);letter-spacing:var(--tracking-wide);text-transform:uppercase;text-decoration:none;color:var(--color-ink);padding-bottom:4px;white-space:nowrap;transition:color var(--transition)}.site-nav__link::after{content:'';position:absolute;left:0;bottom:0;width:0;height:3px;background-color:var(--color-crimson);transition:width var(--transition)}.site-nav__link:hover,.site-nav__link[aria-current='page']{color:var(--color-crimson)}.site-nav__link:hover::after,.site-nav__link[aria-current='page']::after{width:100%}.site-nav__cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 clamp(1.25rem,1rem + 1vw,2rem);border:var(--border-width) solid var(--color-crimson);border-radius:var(--radius-pill);color:var(--color-crimson);background:transparent;font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-base);letter-spacing:var(--tracking-wide);text-decoration:none;white-space:nowrap;transition:background-color var(--transition),color var(--transition)}.site-nav__cta:hover,.site-nav__cta[aria-current='page']{background-color:var(--color-crimson);color:#fff}.lang-switch{display:inline-flex;align-items:center;gap:var(--space-2xs);min-height:44px;padding:var(--space-3xs) var(--space-2xs);border-radius:var(--radius-pill);text-decoration:none;color:var(--color-ink);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);transition:background-color var(--transition)}.lang-switch:hover{background-color:rgba(51,51,51,0.06)}.lang-switch__flag{width:28px;height:auto;border-radius:2px;flex-shrink:0}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:48px;height:48px;padding:10px;flex-shrink:0}.nav-toggle__bar{display:block;width:100%;height:3px;background-color:var(--color-ink);border-radius:2px;transition:transform var(--transition),opacity var(--transition)}.nav-toggle[aria-expanded='true'] .nav-toggle__bar:nth-child(1){transform:translateY(8px) rotate(45deg)}.nav-toggle[aria-expanded='true'] .nav-toggle__bar:nth-child(2){opacity:0}.nav-toggle[aria-expanded='true'] .nav-toggle__bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}@media (max-width:60rem){.nav-toggle{display:flex}.site-nav{position:fixed;inset:0 0 0 auto;width:min(20rem,85vw);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--space-sm);padding:calc(var(--header-height) + var(--space-lg)) var(--space-lg) var(--space-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform var(--transition);overflow-y:auto}.site-nav[data-open='true']{transform:translateX(0)}.site-nav__link{font-size:var(--text-lg);padding-block:var(--space-2xs)}.site-nav__cta{width:100%}.lang-switch{justify-content:flex-start;margin-top:var(--space-2xs);padding-inline:0}.nav-scrim{position:fixed;inset:0;z-index:99;background:rgba(0,0,0,0.4);opacity:0;visibility:hidden;transition:opacity var(--transition),visibility var(--transition)}.nav-scrim[data-open='true']{opacity:1;visibility:visible}body:has(.site-nav[data-open='true']){overflow:hidden}}.site-footer{position:relative;overflow:hidden;background-color:var(--color-crimson);color:#fff;padding-block:var(--space-2xl) var(--space-xl);margin-top:var(--section-gap)}@media (min-width:60rem){.site-footer::before{content:'';position:absolute;inset-block:0;right:0;width:100%;background-image:image-set( url('../img/footer-binary-900.webp') type('image/webp'),url('../img/footer-binary-900.png') type('image/png'));background-repeat:no-repeat;background-position:right top;background-size:auto 100%;pointer-events:none}}.site-footer__inner{position:relative;z-index:1}main:has(>.cta:last-child) + .site-footer{margin-top:0}.site-footer__inner{width:100%;max-width:var(--wide-max);margin-inline:auto;padding-inline:var(--gutter);display:flex;flex-direction:column;gap:var(--space-2xl)}.site-footer__wordmark img{width:min(88vw,34rem);height:auto}.site-footer__contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space-lg)}@media (min-width:60rem){.site-footer__contact{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg)}}.footer-contact-item{display:flex;align-items:flex-start;gap:var(--space-xs);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-light);line-height:var(--leading-snug);color:rgba(255,255,255,0.92)}.footer-contact-item a{color:inherit;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding-block:2px}.footer-contact-item a:hover{text-decoration-thickness:2px}.footer-contact-item__icon{flex-shrink:0;width:20px;height:20px;margin-top:2px;stroke:currentColor;fill:none;stroke-width:1.75}.site-footer__sponsors{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md) var(--space-xl)}.site-footer__sponsors-label{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-light);color:rgba(255,255,255,0.9)}.site-footer__sponsors-logos{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-lg)}.site-footer__sponsors-logos img{height:clamp(2rem,1.7rem + 1.4vw,2.75rem);width:auto}
/* components.css */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);min-height:52px;padding:var(--space-2xs) var(--space-xl);border-radius:var(--radius-pill);font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-base);letter-spacing:var(--tracking-wide);text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition),transform var(--transition)}.btn--primary{background-color:var(--color-crimson);color:#fff;border:var(--border-width) solid var(--color-crimson)}.btn--primary:hover{background-color:var(--color-crimson-dark);border-color:var(--color-crimson-dark)}.btn--outline{background-color:transparent;color:var(--color-crimson);border:var(--border-width) solid var(--color-crimson)}.btn--outline:hover{background-color:var(--color-crimson);color:#fff}.btn:active{transform:translateY(1px)}.criteria{position:relative}.criteria__stage{position:relative}.criteria__path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}.criteria__path path{fill:none;stroke:var(--color-ink);stroke-width:2;stroke-dasharray:10 12;stroke-linecap:round;opacity:0.5}.criteria__plane{position:absolute;top:0;right:clamp(1rem,4vw,6rem);width:clamp(3rem,2rem + 4vw,5.5rem);z-index:1}.criteria__grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:clamp(1.5rem,1rem + 2vw,2.5rem);align-items:start}@media (min-width:60rem){.criteria__grid{grid-template-columns:repeat(3,1fr);align-items:end;min-height:30rem}.criteria__card:nth-child(1){margin-bottom:0}.criteria__card:nth-child(2){margin-bottom:4rem}.criteria__card:nth-child(3){margin-bottom:9rem}}.criteria__card{position:relative;display:flex;flex-direction:column;gap:var(--space-2xs);padding:clamp(1.5rem,1rem + 2vw,2.5rem);background:var(--color-surface);border:1px solid var(--color-ink-faint);box-shadow:var(--shadow-md)}.criteria__number{font-family:var(--font-display);font-weight:var(--weight-light);font-size:clamp(3.5rem,2.5rem + 4vw,6rem);line-height:0.8;color:#E38A96;align-self:center;margin-bottom:var(--space-xs)}.criteria__title{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-xl);line-height:var(--leading-snug);text-align:center;color:var(--color-ink)}.criteria__body{font-family:var(--font-ui);font-weight:var(--weight-light);font-size:var(--text-sm);line-height:var(--leading-normal);text-align:center;color:var(--color-ink)}.who{display:grid;grid-template-columns:1fr;gap:var(--space-xl);align-items:center}@media (min-width:55rem){.who{grid-template-columns:1fr 1fr;gap:var(--space-3xl)}}.who__list{display:flex;flex-direction:column;gap:var(--space-md)}.who__item{display:flex;align-items:flex-start;gap:var(--space-sm)}.who__tick{flex-shrink:0;width:clamp(1.5rem,1.2rem + 1.2vw,2rem);height:auto;margin-top:0.15em}.who__main{display:block;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);line-height:var(--leading-snug);color:var(--color-ink)}.who__sub{display:block;font-family:var(--font-ui);font-weight:var(--weight-light);font-size:var(--text-sm);color:var(--color-ink);opacity:0.75}.who__image{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.who__image img{width:100%;height:100%;object-fit:cover}.prizes{display:grid;grid-template-columns:1fr;gap:var(--space-xl);align-items:center}@media (min-width:60rem){.prizes{grid-template-columns:minmax(16rem,22rem) 1fr;gap:var(--space-3xl)}}.prizes__cards{display:grid;grid-template-columns:1fr;gap:clamp(0.75rem,0.5rem + 1.4vw,1.75rem)}.prize-card{position:relative;container-type:inline-size;display:flex;flex-direction:column;justify-content:flex-end;gap:0.15em;min-height:7rem;padding:var(--space-md);border-radius:var(--radius-lg);color:#fff;transition:transform var(--transition),box-shadow var(--transition)}.prize-card--first{background:linear-gradient(180deg,#A82239 0%,var(--color-crimson) 42%,#6E1526 100%);box-shadow:var(--shadow-crimson);z-index:1}.prize-card--second{background-color:var(--color-crimson)}.prize-card--third{background-color:#C46E7B}.prize-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.prize-card--first::before{content:'';position:absolute;inset:0;border-radius:inherit;background-image:image-set( url('../img/confetti-600.webp') type('image/webp'),url('../img/confetti-600.png') type('image/png'));background-size:100% 100%;background-repeat:no-repeat;background-position:top center;opacity:0.9;pointer-events:none}.prize-card__trophy{position:absolute;right:3%;bottom:0;width:30%;height:auto;z-index:1;pointer-events:none}.prize-card__place,.prize-card__amount{position:relative;z-index:2}.prize-card__place{font-family:var(--font-display);font-weight:var(--weight-light);font-size:clamp(1rem,7cqi,1.5rem);line-height:1.2}.prize-card__amount{font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(1.75rem,12cqi,2.75rem);line-height:1.1;letter-spacing:-0.02em;white-space:nowrap}@media (min-width:48rem){.prizes__cards{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.prize-card{min-width:0;min-height:0;padding:7% 6% 6%}.prize-card--first{aspect-ratio:3 / 4}.prize-card--second{aspect-ratio:3 / 2}.prize-card--third{aspect-ratio:5 / 2}.prize-card__place{font-size:7cqi}.prize-card__amount{font-size:12cqi}.prize-card__trophy{left:-2.3%;right:auto;bottom:0;width:137%;max-width:none}}.prizes__link{display:inline-flex;flex-direction:column;gap:4px;margin-top:var(--space-md);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-base);letter-spacing:var(--tracking-wide);text-transform:uppercase;text-decoration:none;color:var(--color-crimson);align-self:flex-start}.prizes__link::after{content:'';display:block;height:3px;background-color:var(--color-crimson);transition:transform var(--transition);transform-origin:left}.prizes__link:hover::after{transform:scaleX(0.6)}.milestones__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:clamp(1.5rem,1rem + 2.5vw,3rem)}.milestone{display:flex;flex-direction:column;gap:var(--space-sm)}.milestone__date{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-2xl);letter-spacing:-0.01em;color:var(--color-ink)}.milestone--current .milestone__date{color:var(--color-crimson)}.milestone__date-dots{opacity:0.45}.milestone__card{position:relative;display:flex;flex-direction:column;gap:var(--space-2xs);padding:clamp(1.25rem,1rem + 1.4vw,2rem);padding-right:clamp(4.5rem,3rem + 6vw,7.5rem);border:1.5px solid var(--color-border-soft);border-radius:var(--radius-lg);background:var(--color-surface);height:100%}.milestone--current .milestone__card{border-color:var(--color-crimson);box-shadow:var(--shadow-crimson)}.milestone__title{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);color:var(--color-ink)}.milestone__body{font-family:var(--font-ui);font-weight:var(--weight-light);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-ink)}.milestone__flag{display:inline-flex;align-items:center;gap:var(--space-2xs);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--color-crimson)}.milestone__flag::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--color-crimson);flex-shrink:0}.milestone__icon{position:absolute;right:clamp(-1.5rem,-1rem - 1vw,-0.75rem);top:50%;transform:translateY(-50%);width:clamp(4.5rem,3.5rem + 4vw,7rem);height:auto;pointer-events:none}.cta{background-color:var(--color-surface);color:var(--color-ink);padding-block:var(--section-gap)}.cta__inner{display:flex;flex-direction:column;gap:var(--space-lg);align-items:flex-start}@media (min-width:55rem){.cta__inner{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-2xl)}}.cta__title{font-size:var(--text-3xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-crimson)}.cta__action{display:flex;flex-direction:column;gap:var(--space-2xs);align-items:flex-start}.cta__subtext{font-family:var(--font-ui);font-weight:var(--weight-light);font-size:var(--text-sm);color:var(--color-ink-muted)}.alert{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border-left:4px solid currentColor;font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--leading-normal);margin-bottom:var(--space-lg)}.alert--error{background-color:var(--color-error-bg);color:var(--color-error-text)}.alert--success{background-color:var(--color-success-bg);color:var(--color-success-text)}.alert__title{font-weight:var(--weight-bold)}.alert ul{list-style:disc;padding-left:var(--space-md);display:flex;flex-direction:column;gap:var(--space-3xs)}.alert a{color:inherit;font-weight:var(--weight-bold)}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
