:root{--fond1: #0b1120;--fond2: #132038;--fond3: #0d1a2e;--txt: #eaf0fa;--mut: #93a5c0;--ligne: rgba(255,255,255,.08);--bleu: #4da3ff;--orange: #ff8c42;--gris: #9aa8bd;--vert: #5fd39a;--carte1: rgba(38,54,80,.94);--carte2: rgba(23,34,54,.94)}*{margin:0;padding:0;box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--txt);min-height:100vh;line-height:1.45;background:linear-gradient(140deg,var(--fond1),var(--fond2) 45%,var(--fond3));background-size:220% 220%;animation:derive 26s ease-in-out infinite;overflow-x:hidden}@keyframes derive{0%{background-position:0% 30%}50%{background-position:100% 70%}to{background-position:0% 30%}}.fond{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.fond .courbes{position:absolute;left:-10%;bottom:0;width:120%;height:60%;opacity:.9;animation:houle 38s ease-in-out infinite}.fond .courbes path{fill:#4da3ff0b}.fond .courbes path:nth-child(2){fill:#ff8c420d;animation:houle 30s ease-in-out infinite reverse}.fond .courbes path:nth-child(3){fill:#9aa8bd0f}@keyframes houle{0%{transform:translate(0) translateY(0)}50%{transform:translate(-4%) translateY(-2%)}to{transform:translate(0) translateY(0)}}a{color:var(--bleu)}main{max-width:1900px;margin:0 auto;padding:0 22px 60px}.haut{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px;max-width:1900px;margin:0 auto}.marque{display:inline-flex;align-items:center;gap:10px;color:var(--txt);text-decoration:none;font-weight:800;font-size:1.25rem;letter-spacing:-.01em;text-shadow:0 3px 14px rgba(0,0,0,.6)}.marque svg{filter:drop-shadow(0 6px 12px rgba(0,0,0,.5))}.nav{display:flex;align-items:center;gap:10px}.langue{background:linear-gradient(160deg,#ffffff1f,#ffffff0a);color:var(--txt);border:1px solid var(--ligne);border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer;box-shadow:0 6px 16px #00000059,inset 0 1px #ffffff1f}.cafe{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#1b1206;font-weight:800;padding:9px 14px;border-radius:12px;background:linear-gradient(160deg,#ffb066,#ff8c42);box-shadow:0 10px 22px #ff8c4259,inset 0 1px #ffffff73,inset 0 -2px #0000002e;transition:transform .15s,box-shadow .15s;white-space:nowrap}.cafe:hover{transform:translateY(-2px);box-shadow:0 14px 28px #ff8c4273,inset 0 1px #ffffff73,inset 0 -2px #0000002e}.cafe:active{transform:translateY(1px)}.hero{padding:26px 0 10px;max-width:1100px;margin:0 auto;text-align:center}h1{font-size:clamp(1.7rem,4.2vw,2.9rem);line-height:1.12;letter-spacing:-.025em;text-shadow:0 4px 18px rgba(0,0,0,.6)}.pitch{color:var(--mut);font-size:clamp(1rem,1.6vw,1.15rem);margin:14px auto 22px;max-width:760px}.carte{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--carte1),var(--carte2));border:1px solid var(--ligne);border-radius:20px;padding:20px 22px 22px;box-shadow:0 16px 40px #00000080,inset 0 1px #ffffff14;margin:0 0 20px}.carte:after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.05),transparent);animation:balaie 8s linear infinite;pointer-events:none}@keyframes balaie{0%{left:-60%}60%{left:130%}to{left:130%}}.carte h3{font-size:1.12rem;margin-bottom:6px}.note,.legende{color:var(--mut);font-size:.88rem;margin-bottom:12px}.legende{display:flex;gap:16px;flex-wrap:wrap}.legende i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:6px}.legende .astuce{opacity:.8}.entree{text-align:left}.ligne-strava label{display:block;font-weight:700;margin-bottom:8px}.champ{display:flex;gap:10px}.champ input{flex:1;min-width:0;font:inherit;color:var(--txt);background:#0b1120bf;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px 14px;box-shadow:inset 0 2px 8px #00000073;outline:none}.champ input:focus{border-color:var(--bleu);box-shadow:inset 0 2px 8px #00000073,0 0 0 3px #4da3ff40}.bouton{font:inherit;font-weight:700;color:var(--txt);background:linear-gradient(160deg,#ffffff24,#ffffff0d);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:11px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:0 8px 18px #0006,inset 0 1px #ffffff24,inset 0 -2px #00000040;transition:transform .15s,box-shadow .15s}.bouton:hover{transform:translateY(-2px);box-shadow:0 12px 24px #00000073,inset 0 1px #ffffff24,inset 0 -2px #00000040}.bouton:active{transform:translateY(1px)}.bouton.principal{background:linear-gradient(160deg,#5fb0ff,#2f7fe0);color:#06101f;border-color:#ffffff40;box-shadow:0 10px 24px #4da3ff59,inset 0 1px #ffffff73,inset 0 -2px #0003}.bouton.discret{background:transparent;box-shadow:none;border-color:transparent;color:var(--mut)}.bouton[disabled]{opacity:.55;cursor:wait;transform:none}.ou{display:flex;align-items:center;gap:14px;color:var(--mut);margin:18px 0;font-size:.9rem;text-transform:uppercase;letter-spacing:.12em}.ou:before,.ou:after{content:"";flex:1;height:1px;background:var(--ligne)}.drop{border:2px dashed rgba(255,255,255,.18);border-radius:16px;padding:22px 16px;text-align:center;color:var(--mut);background:#0b112059;transition:border-color .2s,background .2s,transform .2s;cursor:pointer}.drop svg{color:var(--bleu);margin-bottom:6px}.drop p{color:var(--txt);margin-bottom:12px}.drop small{display:block;margin-top:10px;font-size:.82rem}.drop.survol,.drop:focus-visible{border-color:var(--bleu);background:#4da3ff14;transform:scale(1.01);outline:none}.demo{text-align:center;margin-top:16px;font-size:.92rem}.etat{margin:14px auto 0;padding:12px 16px;border-radius:12px;background:#0b1120b3;border:1px solid var(--ligne);max-width:760px}.etat.erreur{border-color:#ff787880;color:#ffb3b3}.etat.ok{border-color:#5fd39a80;color:var(--vert)}#resultat{margin-top:26px}.entete-resultat{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}.entete-resultat h2{font-size:1.6rem;letter-spacing:-.02em;text-shadow:0 3px 14px rgba(0,0,0,.6)}.origine{color:var(--mut);font-size:.9rem;margin-top:2px}.actions{display:flex;gap:10px;flex-wrap:wrap}.pastilles{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}.pastille{background:linear-gradient(150deg,#ffffff17,#ffffff08);border:1px solid var(--ligne);border-radius:14px;padding:10px 16px;box-shadow:0 8px 22px #0006,inset 0 1px #ffffff17;font-size:.9rem;color:var(--mut);flex:1 1 150px;animation:apparait .6s ease both}.pastille b{display:block;color:var(--txt);font-size:1.18rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-bottom:1px}.pastille.chaud b{color:var(--orange)}.pastille.froid b{color:var(--bleu)}@keyframes apparait{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.profil-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}svg#profil{display:block;width:100%;height:auto;touch-action:pan-y}.grid line{stroke:#ffffff12;stroke-width:1}.axe text{fill:var(--mut);font-size:12px}.repere text{fill:var(--txt);font-size:12px;font-weight:700;paint-order:stroke;stroke:#0b1120d9;stroke-width:4px;stroke-linejoin:round}.repere line{stroke:#ffffff59;stroke-width:1;stroke-dasharray:3 3}.trace{stroke-dasharray:4000;stroke-dashoffset:4000;animation:dessine 2.2s ease-out forwards}@keyframes dessine{to{stroke-dashoffset:0}}.duo{display:grid;gap:20px;grid-template-columns:3fr 2fr}@media(max-width:1100px){.duo{grid-template-columns:1fr}}.tableau{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.95rem;font-variant-numeric:tabular-nums}th,td{padding:9px 10px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap}th{color:var(--mut);font-weight:600;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}td.n,th.n{text-align:right}tr.up td:first-child{border-left:4px solid var(--orange)}tr.down td:first-child{border-left:4px solid var(--bleu)}tr.flat td:first-child{border-left:4px solid var(--gris)}tr.fort td{background:#ff8c4212}tr.fortd td{background:#4da3ff12}.map{height:420px;border-radius:14px;overflow:hidden;background:#0b112099;box-shadow:inset 0 2px 10px #00000080}.map .vide{height:100%;display:flex;align-items:center;justify-content:center;color:var(--mut);text-align:center;padding:20px}.attribution{color:#61748f;font-size:.76rem;margin-top:8px}.steep{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.steep div{background:#0b112073;border:1px solid var(--ligne);border-radius:12px;padding:10px 14px;font-size:.9rem;color:var(--mut);font-variant-numeric:tabular-nums}.steep div b{color:var(--txt);display:block;font-size:1.05rem}.steep .u{color:var(--orange)}.steep .d{color:var(--bleu)}.tip{position:fixed;pointer-events:none;background:#0b1120f5;border:1px solid var(--ligne);border-radius:10px;padding:8px 12px;font-size:.9rem;line-height:1.45;box-shadow:0 8px 22px #00000080;z-index:9}.tip b{font-variant-numeric:tabular-nums}.sponsor{margin-top:26px;text-align:center}.sponsor .etiquette{display:inline-block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);border:1px solid var(--ligne);border-radius:999px;padding:4px 10px;margin-bottom:10px}.sponsor p{color:var(--mut);max-width:640px;margin:0 auto 14px}.sponsor-plein{display:block;text-decoration:none;color:var(--txt)}.sponsor-plein strong{display:block;font-size:1.4rem}.faq{max-width:900px;margin:34px auto 0}.faq h2{font-size:1.3rem;margin-bottom:10px}.faq details{border-bottom:1px solid var(--ligne);padding:10px 0}.faq summary{cursor:pointer;font-weight:700;list-style:none;padding:6px 0}.faq summary:before{content:"+";display:inline-block;width:22px;color:var(--bleu);font-weight:800}.faq details[open] summary:before{content:"–"}.faq p{color:var(--mut);padding:4px 0 6px 22px}.pied{max-width:1900px;margin:0 auto;padding:20px 22px 40px;color:var(--mut);border-top:1px solid var(--ligne)}.pied .petit{font-size:.8rem;color:#61748f;margin-top:6px}@media(max-width:640px){main{padding:0 16px 40px}.haut{padding:12px 16px}.cafe span{display:none}.cafe{padding:10px}.champ{flex-direction:column}.champ .bouton{justify-content:center}.carte{padding:16px 14px 18px;border-radius:16px}.map{height:300px}svg#profil{min-width:920px}.actions .bouton{flex:1 1 45%;justify-content:center}.entete-resultat h2{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){body,.fond .courbes,.fond .courbes path,.trace{animation:none}.carte:after{display:none}.trace{stroke-dashoffset:0}}
