
    @import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
    :root { --paper:#f5f2e9; --ink:#24251f; --red:#ef482b; --blue:#354ed5; --yellow:#f2d45a; --line:#d9d6cd; --display:'Space Grotesk',Arial,sans-serif; }
    * { box-sizing:border-box; } html { scroll-behavior:smooth; scroll-padding-top:100px; } body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; -webkit-font-smoothing:antialiased; } a { color:inherit; text-decoration:none; } button { font:inherit; } img { display:block; max-width:100%; } ::selection { background:var(--yellow); color:var(--ink); } :focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
    .wrap { width:min(1440px,calc(100% - 100px)); margin:auto; } .skip { position:fixed;top:-100px;left:20px;z-index:20;padding:15px;background:white; } .skip:focus { top:10px; }
    .nav { position:relative; z-index:5; border-bottom:1px solid var(--line); } .nav-inner { height:94px; display:flex; align-items:center; justify-content:space-between; gap:24px; } .brand { display:flex; align-items:center; gap:12px; font-family:var(--display);font-weight:700;font-size:27px;letter-spacing:-1px; } .brand-mark { display:grid; grid-template-columns:repeat(2,9px);gap:4px; padding:10px; background:var(--red);border-radius:10px;transform:rotate(-8deg); } .brand-mark i { width:9px;height:9px;border-radius:50%;background:#ffad99;box-shadow:0 2px 0 #ac311c; } .brand small { display:block;font:10px 'DM Sans',sans-serif;letter-spacing:1.5px;margin-top:2px; } .nav-links { display:flex;gap:28px;align-items:center;font-size:13px;font-weight:600; } .nav-links>a:not(.pill):hover { color:var(--red); }
    .pill { display:inline-flex;align-items:center;justify-content:center;gap:25px; padding:16px 23px;border-radius:100px;background:var(--ink);color:white;font-size:13px;font-weight:600; transition:transform .25s,background .25s; } .pill:hover { transform:translateY(-3px);background:var(--red); } .pill .arrow { font-size:21px;line-height:1; } .pill.red { background:var(--red); } .pill.red:hover { background:var(--ink); }
    .hero { padding:40px 0 0;overflow:hidden; } .hero-meta { display:flex; justify-content:space-between; align-items:center; gap:15px;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700; } .live { display:flex; align-items:center;gap:9px; } .live:before { content:'';width:7px;height:7px;background:var(--red);border-radius:50%;box-shadow:0 0 0 5px #ef482b12; }
    .hero-heading { position:relative; margin:35px 0 24px; } h1 { font-family:var(--display);font-weight:600;font-size:clamp(68px,8.8vw,142px);line-height:.98;letter-spacing:-.075em;margin:0;max-width:1180px; } h1 .accent { color:var(--red); } .heading-line { display:block; animation:enter .9s cubic-bezier(.16,1,.3,1) both; } .heading-line:nth-child(2) { animation-delay:.12s; } .spark { display:inline-block;color:var(--red);font-size:.8em; margin-left:20px;animation:rotate-in 1.4s cubic-bezier(.16,1,.3,1) both; }
    .hero-bottom { display:flex;align-items:center;justify-content:space-between; gap:25px; margin-bottom:35px; } .hero-bottom p { max-width:450px;font-size:15px;line-height:1.7;color:#68695f;margin:0; } .hero-actions { display:flex;align-items:center;gap:25px; } .text-link { display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:5px; }
    .hero-stage { position:relative; height:570px; border-radius:16px 16px 0 0; background:#171e26;overflow:hidden; isolation:isolate; } .hero-photo { width:100%;height:100%;object-fit:cover;object-position:50% 48%; opacity:.87;transform:scale(1.04);animation:photo-in 1.5s ease-out both; } .hero-stage:after { content:''; position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#10171bbd);z-index:0;pointer-events:none; } .photo-caption { position:absolute;bottom:30px;left:32px;color:white;z-index:1; } .photo-caption small { font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#d1d1c9; } .photo-caption p { margin:8px 0 0;font-family:var(--display);font-size:24px;letter-spacing:-1px; } .photo-counter { position:absolute;bottom:35px;right:30px;z-index:1;color:white;font-size:11px;letter-spacing:2px; }
    .date-badge { position:absolute;right:45px;top:35px;width:147px;height:147px;border-radius:50%;background:var(--yellow);display:flex;align-items:center;justify-content:center;text-align:center; transform:rotate(10deg);z-index:1;box-shadow:0 8px 40px #0002;animation:badge-in 1.1s .35s both; } .date-badge strong { display:block;font-family:var(--display);font-size:37px;line-height:1.1;letter-spacing:-3px; } .date-badge span { display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;line-height:1.6; } .photo-label { position:absolute;top:28px;left:30px;padding:9px 14px;border:1px solid #ffffff50;border-radius:30px;color:white;font-size:10px;letter-spacing:1.5px;background:#0002;backdrop-filter:blur(10px); }
    .ticker { background:var(--red);color:var(--paper);overflow:hidden;padding:20px 0; } .ticker-track { display:flex;width:max-content;animation:marquee 30s linear infinite; } .ticker-group { display:flex;align-items:center; gap:35px;padding-right:35px;white-space:nowrap;font-family:var(--display);font-size:20px;font-weight:500;letter-spacing:-.5px; } .ticker-group i { font-style:normal;font-size:26px;color:var(--yellow); }
    .section { padding:110px 0; } .eyebrow { font-size:10px;text-transform:uppercase;letter-spacing:2px;font-weight:700; display:flex;align-items:center;gap:12px; } .eyebrow:before { content:'';width:23px;height:1px;background:currentColor; } h2 { font-family:var(--display);font-size:clamp(38px,4.3vw,68px);font-weight:500;letter-spacing:-.06em;line-height:1.05;margin:25px 0; } .intro-grid { display:grid;grid-template-columns:1.15fr 1fr;gap:100px;align-items:center; } .intro-grid p { font-size:16px;line-height:1.9;color:#6b6b60;max-width:440px; } .intro-grid h2 { max-width:640px; } .mini-note { margin-top:35px;display:flex;align-items:center;gap:14px;font-size:11px; } .mini-symbol { background:var(--yellow);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-size:24px; }
    .worlds { padding-top:15px; } .section-top { display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:35px; } .section-top h2 { margin-bottom:0; } .section-top p { max-width:290px;font-size:13px;line-height:1.8;color:#6b6b60; } .cards { display:grid;grid-template-columns:1.12fr 1fr 1fr;gap:20px; } .world-card { display:block;min-width:0; } .world-card:nth-child(2) { margin-top:65px; } .world-card:nth-child(3) { margin-top:125px; } .card-image { position:relative;overflow:hidden;border-radius:10px;background:#e3e0d5;aspect-ratio:4/5; } .card-image img { width:100%;height:100%;object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1); } .world-card:hover .card-image img { transform:scale(1.06); } .card-number { position:absolute;top:16px;left:16px;background:var(--paper);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-size:11px; } .card-arrow { position:absolute;bottom:16px;right:16px;background:var(--paper);border-radius:50%;width:43px;height:43px;display:grid;place-items:center;font-size:22px;transition:transform .3s,background .3s; } .world-card:hover .card-arrow { transform:rotate(-40deg);background:var(--yellow); } .card-info { display:flex;justify-content:space-between;gap:10px;align-items:center;padding:19px 0;border-bottom:1px solid var(--line); } .card-info h3 { font-family:var(--display);font-size:20px;font-weight:500;letter-spacing:-.6px;margin:0; } .card-info span { font-size:10px;color:#77786c; } .gallery-note { font-size:10px;color:#77786c;margin-top:20px; }
    .blue-section { position:relative;overflow:hidden;background:var(--blue);color:var(--paper);padding:90px 0;margin-top:20px; } .blue-inner { position:relative;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center; } .blue-section h2 { font-size:clamp(48px,5vw,80px); } .blue-section p { max-width:390px;color:#d9ddff;font-size:14px;line-height:1.9; } .blue-section .pill { background:var(--yellow);color:var(--ink);margin-top:18px; } .blue-section .pill:hover { background:white; } .orbit { position:absolute;right:-40px;top:-170px;width:530px;height:530px;border:1px solid #ffffff20;border-radius:50%;pointer-events:none; } .contest-art { position:relative;min-height:330px;display:flex;align-items:center;justify-content:center; } .contest-photo { width:260px;height:300px;object-fit:cover;border:9px solid var(--paper);border-bottom-width:42px;transform:rotate(-10deg);box-shadow:0 20px 40px #172b8038; } .contest-sticker { position:absolute;right:5%;bottom:14px;background:var(--red);width:140px;height:140px;border-radius:50%;display:grid;place-content:center;text-align:center;transform:rotate(12deg);box-shadow:0 12px 30px #172b8030; } .contest-sticker strong { font-family:var(--display);font-size:45px;line-height:1;letter-spacing:-3px; } .contest-sticker span { font-size:10px;line-height:1.5;text-transform:uppercase;letter-spacing:1px; } .contest-star { position:absolute;left:10%;top:0;font-size:95px;color:var(--yellow);line-height:1;animation:float 6s ease-in-out infinite; }
    .visit-grid { display:grid;grid-template-columns:.9fr 1.1fr;gap:100px; } .visit-intro p { color:#77786c;font-size:14px;line-height:1.8;max-width:330px; } .visit-rows { border-top:1px solid var(--line); } .visit-row { display:grid;grid-template-columns:45px 1fr;gap:15px;padding:25px 0;border-bottom:1px solid var(--line); } .visit-icon { color:var(--red);font-size:23px; } .visit-row h3 { font-family:var(--display);font-size:19px;font-weight:500;margin:0 0 8px;letter-spacing:-.5px; } .visit-row p { color:#77786c;font-size:13px;line-height:1.7;margin:0; } .visit-row a { text-decoration:underline;text-underline-offset:4px; } .visit-tag { display:inline-block;padding:6px 10px;background:#eae6db;font-size:9px;letter-spacing:.8px;text-transform:uppercase;border-radius:5px;margin-top:9px; }
    .partners { border-top:1px solid var(--line);padding:35px 0 55px; } .partner-row { display:flex;align-items:center;justify-content:space-between;gap:35px;flex-wrap:wrap; } .partner-copy { max-width:220px;font-size:11px;color:#77786c;line-height:1.7; } .partner-logos { display:flex;align-items:center;gap:40px;flex-wrap:wrap; } .partner-logos img { max-width:110px;height:55px;object-fit:contain; } .partner-logos .dark-logo { background:#25251f;padding:8px 12px;border-radius:5px; }
    .final { background:var(--yellow);padding:65px 0;overflow:hidden; } .final-inner { display:flex;align-items:center;justify-content:space-between;gap:40px; } .final h2 { font-size:clamp(38px,5vw,76px);margin:0; } .final p { font-size:12px;margin:15px 0 0; } footer { padding:35px 0 25px; } .footer-top { display:flex;justify-content:space-between;gap:25px;align-items:center; } .footer-links { display:flex;gap:25px;font-size:11px; } .legal { border-top:1px solid var(--line);padding-top:20px;margin-top:25px;color:#858579;font-size:10px;line-height:1.7;display:flex;justify-content:space-between;gap:40px; } .legal p { margin:0;max-width:600px; }
    .reveal { opacity:1; } .motion .reveal { opacity:0;transform:translateY(35px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1); } .motion .reveal.visible { opacity:1;transform:translateY(0); } .motion .world-card:nth-child(2) { transition-delay:.12s; } .motion .world-card:nth-child(3) { transition-delay:.24s; } .progress { position:fixed;inset:0 auto auto 0;height:3px;background:var(--red);width:0;z-index:30; }
    @keyframes enter { from { opacity:0;transform:translateY(45px); } to { opacity:1;transform:translateY(0); } } @keyframes photo-in { from { opacity:0; } to { opacity:.87; } } @keyframes rotate-in { from { opacity:0;transform:rotate(-120deg) scale(.3); } to { opacity:1;transform:rotate(0) scale(1); } } @keyframes badge-in { from { opacity:0;transform:rotate(-20deg) scale(.5); } to { opacity:1;transform:rotate(10deg) scale(1); } } @keyframes marquee { to { transform:translateX(-50%); } } @keyframes float { 50% { transform:translateY(-15px) rotate(15deg); } }
    .motion-toggle { border:1px solid var(--line);background:transparent;color:var(--ink);padding:9px 12px;border-radius:30px;cursor:pointer;font-size:10px; } body.paused *,body.paused *:before,body.paused *:after { animation-play-state:paused!important; } body.paused .reveal { opacity:1;transform:none;transition:none; }
    @media(min-width:1600px) { .hero-stage { height:650px; } } @media(max-width:1000px) { .wrap { width:calc(100% - 50px); } .nav-links { gap:20px; } .nav-links>a:not(.pill) { font-size:11px; } h1 { font-size:10vw; } .hero-stage { height:470px; } .intro-grid,.blue-inner,.visit-grid { gap:45px; } .cards { gap:14px; } .card-info { align-items:start;flex-direction:column; } .contest-photo { width:210px;height:270px; } .partner-logos { gap:25px; } }
    @media(max-width:700px) { .wrap { width:calc(100% - 36px); } .nav-inner { height:77px; } .brand { font-size:23px; } .brand small { font-size:8px; } .nav-links { gap:12px; } .nav-links>a:not(.pill) { display:none; } .nav-links .pill { font-size:11px;padding:12px 16px;gap:12px; } .hero { padding-top:28px; } .hero-meta { font-size:8px;letter-spacing:.7px;align-items:start; } .hero-meta>span:last-child { text-align:right;max-width:125px; } .hero-heading { margin-top:30px; } h1 { font-size:clamp(49px,11.8vw,82px);letter-spacing:-.07em; } .spark { margin-left:5px; } .hero-bottom { display:block; } .hero-bottom p { font-size:13px;max-width:350px; } .hero-actions { margin-top:22px;gap:20px;flex-wrap:wrap; } .pill { padding:15px 20px; } .hero-stage { height:410px; } .hero-photo { object-position:54% center; } .date-badge { width:103px;height:103px;right:16px;top:20px; } .date-badge strong { font-size:28px;letter-spacing:-2px; } .date-badge span { font-size:8px; } .photo-label { left:15px;top:20px;font-size:8px;max-width:155px;line-height:1.5; } .photo-caption { left:18px;bottom:25px; } .photo-caption p { font-size:18px; } .photo-caption small { font-size:8px; } .photo-counter { right:18px;bottom:27px; } .ticker { padding:15px 0; } .ticker-group { font-size:16px;gap:25px; padding-right:25px; } .section { padding:65px 0; } .intro-grid,.blue-inner,.visit-grid { grid-template-columns:1fr;gap:15px; } .intro-grid p { font-size:14px; } .intro-grid h2 { margin-bottom:8px; } .mini-note { margin-top:24px; } .section-top { display:block; } .section-top p { max-width:100%;margin-top:20px; } .cards { grid-template-columns:1fr;gap:28px; } .world-card:nth-child(2),.world-card:nth-child(3) { margin-top:0; } .card-image { aspect-ratio:5/4; } .card-info { flex-direction:row;align-items:center; } .card-info h3 { font-size:22px; } .blue-section { padding:60px 0; } .blue-section h2 { font-size:52px; } .blue-section p { font-size:13px; } .contest-art { min-height:350px;margin-top:20px; } .contest-photo { width:230px;height:290px; } .contest-sticker { right:8%; } .contest-star { left:8%;top:5px; } .visit-rows { margin-top:15px; } .partner-row { gap:25px; } .partner-copy { max-width:100%; } .partner-logos { gap:20px;justify-content:space-between;width:100%; } .partner-logos img { max-width:80px;height:45px; } .final { padding:45px 0; } .final-inner { display:block; } .final h2 { font-size:49px; } .final .pill { margin-top:25px; } .footer-top { align-items:start;flex-wrap:wrap; } .footer-links { flex-wrap:wrap;gap:15px; } .legal { display:block; } .legal p+p { margin-top:15px; } }
    @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { animation:none!important;transition:none!important; } .motion .reveal { opacity:1;transform:none; } .hero-photo { opacity:.87; } .ticker-track { width:auto; } .ticker-group { flex-wrap:wrap;white-space:normal;justify-content:center;font-size:14px;gap:15px; } .ticker-group[aria-hidden] { display:none; } }
  /* Identité et mouvement communs aux trois pages. */
.nav { background:#25251f;color:var(--paper);border:0; } .nav-inner { height:126px; } .expo-brand { width:340px;max-width:44%;padding:15px 0; } .expo-brand img { width:100%;height:auto; } .nav .pill { background:var(--yellow);color:var(--ink); } .nav-links a[aria-current=page] { color:var(--yellow); } .expo-signature { position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;background:#25251f;color:var(--paper);border-radius:18px;padding:30px 40px 25px;margin:30px 0 0;overflow:hidden; } .expo-signature>img { width:min(650px,85%);height:auto;position:relative;z-index:1; } .expo-signature>span { font-size:10px;letter-spacing:3px;position:relative;z-index:1; } .expo-signature .signature-note { color:#e7ce74;letter-spacing:1.5px; } .expo-signature:before { content:'';position:absolute;inset:-100%;background:conic-gradient(from 20deg,transparent 60%,#ffffff08,transparent 80%);animation:halo-turn 24s linear infinite; }
.hero { position:relative;isolation:isolate; } .hero-heading { z-index:1; } .hero h1 { font-size:clamp(65px,8vw,125px); } .hero-stage { will-change:transform; } .spark { animation:spark-turn 12s linear infinite; } .date-badge { animation:badge-drift 7s ease-in-out infinite; } .floating-bricks { position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1; } .brick { position:absolute;display:block;width:85px;height:43px;border:2px solid #ef482b40;border-radius:7px;animation:brick-drift 8s ease-in-out infinite; } .brick:before,.brick:after { content:'';position:absolute;top:-12px;width:22px;height:12px;border:2px solid inherit;border:2px solid #ef482b40;border-bottom:0;border-radius:4px 4px 0 0; } .brick:before { left:12px; } .brick:after { right:12px; } .brick-one { right:3%;top:24%;transform:rotate(20deg); } .brick-two { left:2%;top:55%;width:60px;animation-delay:-3s;border-color:#354ed540; } .brick-three { right:16%;top:76%;animation-delay:-5s;border-color:#d0b03560; } .world-card { transform-style:preserve-3d; } .world-card .card-image { transition:transform .4s ease,box-shadow .4s; } .world-card:hover .card-image { box-shadow:0 22px 40px #24251f20; } .card-image:after { content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#fff3 48%,transparent 65%);transform:translateX(-150%);transition:transform .9s; } .world-card:hover .card-image:after { transform:translateX(150%); } .pill { will-change:transform; } .pill .arrow { transition:transform .3s; } .pill:hover .arrow { transform:rotate(45deg); } .organizer { display:flex;align-items:center;gap:30px; } .organizer .eyebrow { max-width:180px;line-height:1.8; } .organizer>img { width:115px;height:112px;object-fit:contain;background:#fff;border-radius:14px;padding:9px; } .partner-block { display:flex;align-items:center;gap:35px; } .partner-copy { max-width:135px; } .footer-expo { font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-1px; } .footer-expo span { color:#9c6d15; } .footer-expo small { display:block;font:10px 'DM Sans',sans-serif;color:#747569;letter-spacing:.4px;margin-top:6px; }
.subhero { position:relative;isolation:isolate;overflow:hidden;padding:70px 0 65px;border-bottom:1px solid var(--line); } .subhero-grid { display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center; } .subhero h1 { font-size:clamp(64px,7vw,105px);margin:27px 0;line-height:1.02; } .subhero h1 span { color:var(--red); } .subhero p { max-width:500px;font-size:16px;line-height:1.8;color:#6b6b60; } .subhero .hero-actions { margin-top:25px;flex-wrap:wrap; } .sub-date { font-size:11px;margin-top:30px;letter-spacing:.7px; } .subhero-image { position:relative;transform:rotate(3deg); } .subhero-image>img { width:100%;height:440px;object-fit:cover;border-radius:15px; } .image-stamp { position:absolute;bottom:-22px;left:-22px;background:var(--yellow);border-radius:50%;width:140px;height:140px;display:grid;place-content:center;text-align:center;font-family:var(--display);font-size:18px;line-height:1.2;transform:rotate(-12deg);animation:badge-drift 8s ease-in-out infinite; } .image-stamp i { font-style:normal;font-size:35px;color:var(--red); }
/* Contenus exposants et concours, mêmes composants et même rythme visuel. */
.intro,.rules,.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start; } .intro p,.rules p,.form-grid p,.step p,.contest-intro p { font-size:15px;line-height:1.85;color:#6b6b60; } .intro-note,.notice { padding:45px;background:var(--yellow);border-radius:15px;margin-top:35px;font-family:var(--display);font-size:30px;letter-spacing:-1px;line-height:1.4;transform:rotate(3deg); } .intro-note strong,.notice strong { display:block;font-size:60px;line-height:1.2;font-weight:500;letter-spacing:-3px; } .dark,.categories,.form-section { background:#ece8dd; } .gallery-head,.contest-intro { display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:35px; } .gallery-head p { max-width:370px;color:#6b6b60;font-size:14px;line-height:1.8; } .gallery { display:grid;grid-template-columns:repeat(3,1fr);gap:22px; } .gallery figure { position:relative;margin:0;overflow:hidden;border-radius:10px;background:#25251f; } .gallery img { width:100%;height:290px;object-fit:cover;transition:transform .7s; } .gallery figure:hover img { transform:scale(1.07); } .gallery figcaption { padding:15px 20px;color:var(--paper);font-size:12px; } .category-grid,.contest-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:35px; } .category,.contest-card { background:var(--paper);border-radius:14px;padding:30px 23px;border:1px solid var(--line);transition:transform .4s,box-shadow .4s; } .category:hover,.contest-card:hover { transform:translateY(-12px) rotate(-2deg);box-shadow:0 20px 30px #24251f0d; } .category:nth-child(2),.contest-card:nth-child(2) { background:var(--yellow); } .category:nth-child(3),.contest-card:nth-child(3) { background:var(--blue);color:white; } .category-number,.number { font-family:var(--display);font-size:55px;letter-spacing:-4px;margin-bottom:35px; } .category h3,.contest-card h3 { font-family:var(--display);font-size:22px;letter-spacing:-.8px;font-weight:500; } .category p,.contest-card p { font-size:13px;line-height:1.8; } .prizes { border:1px solid var(--line);border-radius:15px;padding:30px;margin-top:30px;font-size:15px;line-height:1.8; } .prizes h3 { font-size:28px;font-family:var(--display);letter-spacing:-1px; } .facts { display:grid;grid-template-columns:repeat(4,1fr);gap:20px; } .fact { border-top:1px solid var(--line);padding:25px 0; } .fact b { display:block;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--red);margin-bottom:12px; } .fact span { font-size:15px;line-height:1.6; } .steps { display:grid;grid-template-columns:repeat(4,1fr);gap:30px;counter-reset:steps; } .step { counter-increment:steps;border-top:1px solid var(--line);padding-top:25px; } .step:before { content:'0' counter(steps);font-family:var(--display);font-size:38px;color:var(--red); } .step h3 { font-family:var(--display);font-weight:500;font-size:23px;letter-spacing:-.7px; } .rule-list { padding:0;list-style:none;counter-reset:rules; } .rule-list li { counter-increment:rules;border-top:1px solid var(--line);padding:20px 0 20px 45px;position:relative;font-size:14px;line-height:1.7; } .rule-list li:before { content:counter(rules,decimal-leading-zero);position:absolute;left:0;color:var(--red);font-family:var(--display);font-size:17px; } .form-grid form { display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:30px;background:var(--paper);border-radius:16px; } label { display:grid;gap:8px;font-size:12px;font-weight:600; } input,select,textarea { width:100%;min-width:0;padding:13px 12px;border:1px solid #ccc8bc;background:#fffefa;color:var(--ink);border-radius:7px;font:14px 'DM Sans',sans-serif; } textarea { min-height:110px;resize:vertical; } .full { grid-column:1/-1; } button.pill { border:0;cursor:pointer; } .form-note { font-size:11px!important;line-height:1.8; } .form-note a { text-decoration:underline;text-underline-offset:3px; } .cta { background:var(--blue);color:var(--paper);text-align:center; } .cta p { max-width:650px;margin:0 auto 25px;color:#d9ddff;line-height:1.8; } .cta .pill { background:var(--yellow);color:var(--ink); } .cta h2 { margin-top:25px; } .contest-intro>p { max-width:420px; } .muted { color:#6b6b60; } body:before { content:'';position:fixed;inset:0;z-index:50;background:var(--yellow);pointer-events:none;transform-origin:top;animation:curtain-out .8s cubic-bezier(.7,0,.2,1) both; }
@keyframes curtain-out { from { transform:scaleY(1); } to { transform:scaleY(0); } } @keyframes halo-turn { to { transform:rotate(360deg); } } @keyframes spark-turn { to { transform:rotate(360deg); } } @keyframes brick-drift { 0%,100% { translate:0 0;rotate:-8deg; } 50% { translate:10px -25px;rotate:12deg; } } @keyframes badge-drift { 0%,100% { translate:0 0;rotate:0deg; } 50% { translate:0 -12px;rotate:6deg; } }
body.paused .world-card .card-image { transform:none!important; } body.paused .pill { translate:none!important; } body.paused:before { display:none; } body.paused .hero-photo { transform:scale(1.04)!important; }
@media(max-width:1000px) { .nav-inner { height:110px; } .expo-brand { width:290px; } .nav-links { gap:15px; } .subhero-grid { gap:35px; } .subhero-image>img { height:370px; } .gallery { grid-template-columns:repeat(2,1fr); } .category-grid,.contest-grid,.facts,.steps { grid-template-columns:repeat(2,1fr); } .intro,.rules,.form-grid { gap:35px; } .partner-block { gap:20px; } }
@media(max-width:700px) { .nav-inner { height:auto;min-height:124px;flex-wrap:wrap;justify-content:center;gap:5px;padding:15px 0; } .expo-brand { max-width:none;width:260px;padding:0; } .nav-links { width:100%;justify-content:center;gap:19px; } .nav-links>a:not(.pill) { display:block;font-size:10px; } .nav-links .pill { padding:10px 12px;font-size:9px;gap:9px; } .expo-signature { margin-top:20px;padding:25px 15px; } .expo-signature>img { width:100%; } .expo-signature>span { font-size:8px;letter-spacing:1.5px; } .hero h1 { font-size:clamp(46px,11.5vw,80px); } .hero-meta { font-size:8px; } .subhero { padding:45px 0; } .subhero-grid { grid-template-columns:1fr;gap:35px; } .subhero h1 { font-size:clamp(50px,12vw,80px); } .subhero p { font-size:14px; } .subhero .hero-actions { gap:20px; } .subhero-image { margin:0 15px 20px; } .subhero-image>img { height:320px; } .image-stamp { width:108px;height:108px;font-size:14px;left:-10px;bottom:-15px; } .intro,.rules,.form-grid { grid-template-columns:1fr;gap:25px; } .intro-note,.notice { margin:10px 10px 15px;padding:30px;font-size:24px; } .gallery { gap:14px; } .gallery img { height:200px; } .gallery figcaption { padding:12px;font-size:10px; } .gallery-head,.contest-intro { display:block; } .gallery-head p { max-width:none; } .category-grid,.contest-grid { gap:12px; } .category,.contest-card { padding:23px 17px; } .category h3,.contest-card h3 { font-size:20px; } .category-number,.number { font-size:42px;margin-bottom:22px; } .steps { gap:20px; } .step h3 { font-size:20px; } .facts { gap:14px; } .form-grid form { padding:20px;gap:15px; } .form-grid .pill { font-size:12px; } .organizer { gap:25px;justify-content:space-between;width:100%; } .organizer>img { width:100px;height:100px; } .partner-block { width:100%;display:block; } .partner-block .partner-copy { max-width:none; } .partner-logos { justify-content:start;gap:30px; } .brick { opacity:.4; } }
@media(max-width:400px) { .category-grid,.contest-grid,.gallery { grid-template-columns:1fr; } .form-grid form { grid-template-columns:1fr; } .nav-links { gap:12px; } }
@media(prefers-reduced-motion:reduce) { body:before { display:none; } .brick,.date-badge,.spark,.image-stamp { animation:none!important; } .world-card .card-image { transform:none!important; } .pill { translate:none!important; } .hero-photo { transform:scale(1.04)!important; } .card-image:after { display:none; } }
