:root{--calque:#e7ecee;--calque-trame:#dfe6e9;--papier:#f8f9f6;--papier-haut:#fff;--trait:#c2ccd4;--trait-fort:#7d8a9b;--encre:#14223a;--encre-2:#4c5a6e;--encre-inverse:#f8f9f6;--vert:#2d7a4f;--vert-doux:#dcebe1;--ambre:#9a6413;--rouille:#b4471a;--rouille-doux:#f6e0d4;--font-plaque:"Sofia Sans Extra Condensed", "Arial Narrow", sans-serif;--font-etroit:"Sofia Sans Condensed", "Arial Narrow", sans-serif;--font-texte:"Sofia Sans", system-ui, sans-serif;--font-chiffre:"IBM Plex Mono", ui-monospace, monospace;--rayon-0:0;--rayon-1:3px;--rayon-2:6px;--cible:44px;--ep-focus:2px;--rame:cubic-bezier(.65, 0, .35, 1)}*{box-sizing:border-box}html,body{background:var(--calque);height:100%;color:var(--encre);font:400 15px/1.45 var(--font-texte);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}:where(button,input,[tabindex]):focus-visible{outline:var(--ep-focus) solid var(--encre);outline-offset:2px}#map{touch-action:none;position:fixed;inset:0}#ui{pointer-events:none;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));position:fixed;inset:0}#ui>*{pointer-events:auto}.mono{font-family:var(--font-chiffre);font-variant-numeric:tabular-nums}.panel{background:var(--papier);border:1px solid var(--trait);border-radius:var(--rayon-0)}.btn{min-width:var(--cible);min-height:var(--cible);border:1px solid var(--trait-fort);border-radius:var(--rayon-2);background:var(--papier-haut);color:var(--encre);font:650 15px/1 var(--font-texte);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .16s, transform .16s var(--rame);justify-content:center;align-items:center;padding:0 14px;display:inline-flex}@media (hover:hover){.btn:hover{background:var(--papier)}}.btn:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.btn{transition:none}}@media (hover:hover){.btn.principal:hover{background:var(--encre);opacity:.9}}.btn.danger{color:var(--rouille);border-color:var(--rouille)}.btn:disabled{cursor:not-allowed;color:var(--encre-2);background:var(--papier);border-color:var(--trait);border-style:dashed}.btn.principal:disabled{opacity:.45;background:var(--encre);color:var(--encre-inverse);border-style:solid}.icon-btn{padding:0}dialog.fenetre{border:1px solid var(--encre);border-radius:var(--rayon-2);background:var(--papier-haut);width:min(400px,100% - 32px);color:var(--encre);opacity:1;transition:opacity .24s cubic-bezier(.22, 1, .36, 1), transform .24s cubic-bezier(.22, 1, .36, 1), overlay .24s allow-discrete, display .24s allow-discrete;padding:0;transform:none}dialog.fenetre:not([open]){opacity:0;transition-duration:.16s;transform:translateY(4px)}@starting-style{dialog.fenetre[open]{opacity:0;transform:translateY(8px)scale(.98)}}dialog.fenetre::backdrop{background:#14223a40}dialog.fenetre form{flex-direction:column;gap:16px;padding:24px;display:flex}dialog.fenetre h2{font:800 30px/1 var(--font-plaque);text-transform:uppercase;margin:0}.fenetre .etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.champ{flex-direction:column;gap:6px;display:flex}.champ label,.champ-label{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.champ input{min-height:var(--cible);border:2px solid var(--encre);border-radius:var(--rayon-1);background:var(--papier-haut);color:var(--encre);font:700 20px/1 var(--font-etroit);padding:0 12px}.suggestions{flex-wrap:wrap;gap:6px;display:flex}.suggestions button{border:1px dashed var(--trait-fort);border-radius:var(--rayon-1);min-height:32px;color:var(--encre);font:600 14px/1 var(--font-etroit);cursor:pointer;background:0 0;padding:0 10px}@media (hover:hover){.suggestions button:hover{background:var(--papier)}}.palette{grid-template-columns:repeat(4, var(--cible));gap:4px;display:grid}.palette button{width:var(--cible);height:var(--cible);border-radius:var(--rayon-2);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.palette button span{width:28px;height:28px;box-shadow:0 0 0 2px var(--papier-haut);border-radius:50%}.palette button[aria-checked=true] span{box-shadow:0 0 0 2px var(--papier-haut), 0 0 0 4px var(--encre)}.fenetre .petit{color:var(--encre-2);margin:0;font-size:13px;line-height:1.4}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.btn.discret{background:0 0;border-color:#0000}@media (hover:hover){.btn.discret:hover{background:var(--papier)}}.btn.principal:disabled{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){dialog.fenetre,dialog.fenetre:not([open]){transition-property:opacity,overlay,display;transition-duration:.12s;transform:none}}body.partie-finie #map{filter:grayscale(.55)}dialog.fin{border:1px solid var(--encre);border-radius:var(--rayon-2);background:var(--papier-haut);width:min(560px,100% - 32px);max-height:calc(100% - 32px);color:var(--encre);padding:0;overflow:hidden auto}dialog.fin::backdrop{background:color-mix(in srgb, var(--calque) 62%, transparent)}.carte-fin{flex-direction:column;gap:16px;padding:24px;display:flex}.carte-fin .etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase}.carte-fin .rouille{color:var(--rouille)}.carte-fin h2{font:800 34px/1 var(--font-plaque);text-transform:uppercase;text-wrap:balance;margin:0}.chapeau{color:var(--encre-2);margin:0}.chapeau b{color:var(--encre);font-weight:650}.frise-fin{height:30px;margin:34px 0 10px;position:relative}.frise-fin .rail{border-top:2px dashed var(--trait-fort);position:absolute;top:13px;left:0;right:0}.frise-fin .tenu{height:6px;width:var(--tenu);background:var(--rouille);position:absolute;top:11px;left:0}.frise-fin .coupure{left:var(--tenu);background:var(--rouille);width:20px;height:20px;box-shadow:0 0 0 3px var(--papier-haut);border-radius:50%;margin-left:-10px;position:absolute;top:5px}.frise-fin .neutre{background:var(--papier-haut);border:2px solid var(--vert);border-radius:50%;width:10px;height:10px;margin-left:-5px;position:absolute;top:9px}.frise-fin .borne{font:500 11px/1 var(--font-chiffre);color:var(--encre-2);position:absolute;top:30px}.frise-fin .fin-annee{color:var(--rouille);transform:translate(-50%)}.tampon-fin{white-space:nowrap;border:3px solid var(--rouille);outline:1.5px solid var(--rouille);outline-offset:3px;border-radius:var(--rayon-1);color:var(--rouille);background:color-mix(in srgb, var(--papier-haut) 85%, transparent);font:800 22px/1 var(--font-plaque);letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:8px 14px 6px;position:absolute;top:-30px;right:8%;transform:rotate(-8deg)}.tampon-fin small{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.14em;margin-top:3px;display:block}dialog.fin.joue .tampon-fin{animation:.28s cubic-bezier(.2,.9,.3,1.2) .35s both coup-tampon}@keyframes coup-tampon{0%{opacity:0;transform:rotate(-8deg)scale(1.8)}}.bilan{background:var(--papier);border:1px solid var(--trait);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;padding:12px 16px;display:grid}.score-total{flex-direction:column;gap:4px;display:flex}.score-total .libelle{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.14em;text-transform:uppercase;color:var(--encre-2)}.score-total .total{font:600 48px/1 var(--font-chiffre);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.score-total .niveau{color:var(--encre-2);font-size:13px}.detail{grid-template-columns:1fr auto auto;gap:6px 12px;margin:0;font-size:14px;display:grid}.detail dd{font:500 13px/1.45 var(--font-chiffre);font-variant-numeric:tabular-nums;text-align:right;color:var(--encre-2);margin:0}.detail dd.pts{color:var(--encre);min-width:4.5em}.meilleur{color:var(--encre-2);margin:0;font-size:13px}.stats div{background:var(--papier);border:1px solid var(--trait);flex-direction:column;gap:2px;min-width:0;padding:8px;display:flex}.stats b{font:500 17px/1.1 var(--font-chiffre);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stats span{color:var(--encre-2);font-size:12px}.carte-fin .actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}#ui>.pastille-bilan{left:50%;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 150px);border-color:var(--rouille);color:var(--rouille);font-weight:700;position:absolute;transform:translate(-50%)}.pastille-bilan[hidden]{display:none}@media (width<=520px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.bilan{grid-template-columns:1fr;gap:12px}.score-total .total{font-size:44px}.tampon-fin{font-size:18px;top:-28px;right:2%}}@media (prefers-reduced-motion:reduce){dialog.fin.joue .tampon-fin{animation:none}}dialog.arbre{border:1px solid var(--encre);border-radius:var(--rayon-2);background:var(--calque);width:min(1320px,100% - 32px);max-width:none;height:calc(100% - 32px);max-height:none;color:var(--encre);flex-direction:column;padding:0;display:none;overflow:hidden}dialog.arbre[open]{display:flex}dialog.arbre::backdrop{background:color-mix(in srgb, var(--calque) 62%, transparent)}dialog.arbre .etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.arbre-tete{background:var(--papier);border-bottom:1px solid var(--trait);align-items:center;gap:16px;padding:16px 24px 12px;display:flex}.arbre-tete>div:first-child{flex:1;min-width:0}.arbre-tete h2{font:800 40px/1 var(--font-plaque);margin:2px 0 0}.arbre-points span{align-items:center;gap:6px;font-size:14px;display:inline-flex}.arbre-points svg{width:20px;height:20px;color:var(--vert)}.arbre-points b{font-size:20px;font-weight:600}.arbre-epoques{background:var(--papier);border-bottom:1px solid var(--trait);align-items:center;gap:4px;padding:6px 16px;display:flex}.arbre-epoques ol{scrollbar-width:none;flex:1;gap:4px;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.arbre-epoques li{flex:1;min-width:104px}.epoque{width:100%;min-height:var(--cible);color:var(--encre-2);font:600 13px/1.15 var(--font-etroit);text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;padding:4px 10px;display:flex}.epoque .mono{font-size:11px;font-weight:500}.epoque.vue{color:var(--encre);border-bottom-color:var(--encre)}.epoque.en-cours .mono:after{content:" ●";color:var(--vert)}@media (hover:hover){.epoque:hover{color:var(--encre);background:var(--papier-haut)}}.epoque:focus-visible{outline:var(--ep-focus) solid var(--encre);outline-offset:-2px}.arbre-corps{flex:1;grid-template-columns:minmax(0,1fr) 320px;min-height:0;display:grid}.arbre-plan{overscroll-behavior:contain;position:relative;overflow:auto}.plan-interieur{position:relative}.branche{border-top:1px solid var(--trait);position:absolute;left:0;right:0}.branche:nth-child(2n){background:color-mix(in srgb, var(--papier) 45%, transparent)}.nom-branche{z-index:4;width:112px;height:100%;font:800 12px/1.3 var(--font-plaque);letter-spacing:.07em;text-transform:uppercase;color:var(--encre-2);background:var(--calque);border-left:4px solid var(--c);border-right:1px solid var(--trait);padding:10px 8px 0 10px;display:block;position:sticky;left:0}.axe{height:30px;position:absolute;top:0;left:0;right:0}.axe .borne{color:var(--encre-2);font-size:11px;position:absolute;top:9px;transform:translate(-50%)}.axe .borne.forte{color:var(--encre);font-weight:600}.coupure-epoque{border-left:1px dashed var(--trait-fort);position:absolute;top:26px;bottom:0}.maintenant{border-left:2px solid var(--vert);z-index:1;position:absolute;top:26px;bottom:0}.maintenant .mono{border-radius:var(--rayon-1);background:var(--vert);color:var(--encre-inverse);padding:1px 5px;font-size:11px;position:absolute;top:-24px;left:0;transform:translate(-50%)}.liens{pointer-events:none;position:absolute;top:0;left:0}.pli{z-index:3;border:1px dashed var(--trait-fort);background:var(--papier);width:52px;color:var(--encre-2);cursor:pointer;font:600 14px/1 var(--font-chiffre);justify-content:center;align-items:center;display:flex;position:absolute;top:30px}.pli.droite{right:0}@media (hover:hover){.pli:hover{color:var(--encre);background:var(--papier-haut)}}.cp-noeud{z-index:2;border:1.5px solid var(--encre);border-left:4px solid var(--c);border-radius:var(--rayon-2);background:var(--papier-haut);width:132px;height:54px;color:var(--encre);text-align:left;cursor:pointer;grid-template-rows:auto auto;grid-template-columns:20px minmax(0,1fr);align-content:center;column-gap:7px;padding:4px 8px 4px 9px;transition:opacity .18s,box-shadow .18s;display:grid;position:absolute}.cp-noeud svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;grid-row:1/3;align-self:center;width:20px;height:20px}.cp-noeud b{font:700 14px/1.1 var(--font-etroit);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cp-noeud small{color:var(--encre-2);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.3;overflow:hidden}.cp-noeud.acquis{background:var(--encre);border-color:var(--encre);border-left-color:var(--c);color:var(--encre-inverse)}.cp-noeud.acquis small{color:color-mix(in srgb, var(--encre-inverse) 80%, transparent)}.cp-noeud.disponible{outline:1.5px dashed var(--encre);outline-offset:3px}.cp-noeud.verrouille{border-style:dashed;border-color:var(--trait-fort);color:var(--encre-2);background:var(--papier);border-left-style:solid}.cp-noeud.choisi{box-shadow:0 0 0 3px var(--calque), 0 0 0 5px var(--encre)}.cp-noeud.estompe{opacity:.3}.cp-noeud:focus-visible{outline:var(--ep-focus) solid var(--encre);outline-offset:3px}@media (hover:hover){.cp-noeud.verrouille:hover,.cp-noeud.disponible:hover{background:var(--papier-haut)}}.arbre-fiche{background:var(--papier-haut);border-left:1px solid var(--trait);flex-direction:column;gap:14px;padding:20px;display:flex;overflow-y:auto}.arbre-fiche .aide{color:var(--encre-2);margin:0;font-size:15px;line-height:1.45}.fiche-tete{border-left:4px solid var(--c);align-items:center;gap:12px;padding-left:10px;display:flex}.fiche-tete svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:28px;height:28px}.fiche-tete h3{font:800 28px/1 var(--font-plaque);margin:2px 0 0}.arbre-fiche .effet{margin:0;font-size:18px;line-height:1.5}.carte-effet{background:var(--vert-doux);flex-direction:column;gap:3px;margin:0;padding:10px 12px;font-weight:650;display:flex}.a-venir{color:var(--encre-2);margin:0;font-size:13px;font-style:italic}.conditions{color:var(--encre-2);flex-direction:column;gap:4px;margin:4px 0 0;padding:0;font-size:15px;list-style:none;display:flex}.conditions li{gap:8px;display:flex}.conditions li span{text-align:center;width:1em}.conditions li.ok{color:var(--encre)}.conditions li.ok span{color:var(--vert);font-weight:700}.fiche-pied{flex-direction:column;gap:8px;margin-top:auto;display:flex}.fiche-pied .debloquer{width:100%}.pourquoi{color:var(--rouille);margin:0;font-size:13px}.tampon-acquis{border:2px solid var(--vert);border-radius:var(--rayon-1);color:var(--vert);font:800 18px/1 var(--font-plaque);letter-spacing:.06em;text-transform:uppercase;align-self:flex-start;padding:6px 12px 4px;transform:rotate(-3deg)}.open-tree{gap:6px;position:relative}.open-tree svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.cp-pastille{background:var(--rouille);min-width:20px;height:20px;color:var(--encre-inverse);font:600 11px/20px var(--font-chiffre);text-align:center;box-shadow:0 0 0 2px var(--papier);border-radius:999px;padding:0 5px;position:absolute;top:-7px;right:-7px}.cp-pastille[hidden]{display:none}@media (width<=1599px){.open-tree .libelle{display:none}.open-tree{padding:0}}@media (width<=760px){dialog.arbre{border:0;border-radius:0;width:100%;height:100%}.arbre-tete{flex-wrap:wrap;gap:8px 12px;padding:12px 16px 8px}.arbre-tete>div:first-child{flex:1 1 0}.arbre-tete h2{font-size:26px}.arbre-points{flex-basis:100%;order:3}.nom-branche{letter-spacing:.04em;overflow-wrap:anywhere;width:76px;padding:8px 4px 0 6px;font-size:11px}.arbre-corps{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.arbre-fiche{border-left:0;border-top:1px solid var(--encre);max-height:42vh;padding:16px}.arbre-fiche .effet{font-size:16px}}@media (prefers-reduced-motion:reduce){.cp-noeud{transition:none}}#ui>.pose-gare{background:var(--papier-haut);border:1px solid var(--trait-fort);border-radius:var(--rayon-2);pointer-events:auto;flex-direction:column;gap:6px;padding:6px;display:flex;position:absolute}.pose-gare .tuile{border:1px solid var(--trait-fort);border-radius:var(--rayon-2);background:var(--papier-haut);min-width:88px;min-height:88px;color:var(--encre);font:700 14px/1.1 var(--font-etroit);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6px 10px;display:flex}.pose-gare .tuile svg{width:64px;height:48px}.pose-gare .tuile[aria-pressed=true]{border:2px solid var(--encre);padding:5px 9px}@media (hover:hover){.pose-gare .tuile:hover{background:var(--papier)}}.pose-gare .tuile:focus-visible,.pose-gare .puce:focus-visible{outline:var(--ep-focus) solid var(--encre);outline-offset:2px}.pose-gare .types{gap:4px;display:flex}.pose-gare .puce{border:1px solid var(--trait-fort);border-radius:var(--rayon-1);background:var(--papier-haut);min-height:32px;color:var(--encre-2);font:600 12px/1 var(--font-etroit);cursor:pointer;flex:1;padding:0 8px}.pose-gare .puce[aria-checked=true]{background:var(--encre);border-color:var(--encre);color:var(--encre-inverse)}@media (hover:hover){#map.pose-gare-active,#map.pose-gare-active canvas{cursor:none}}#ui>.bulle-gare{white-space:nowrap;pointer-events:none;background:var(--rouille-doux);border:1px solid var(--rouille);border-radius:var(--rayon-1);color:var(--rouille);font:650 13px/1.2 var(--font-texte);padding:5px 9px;position:absolute;transform:translate(-50%,-100%)}#ui>.bulle-gare[hidden],#ui>.pose-tactile[hidden]{display:none}#ui>.pose-tactile{pointer-events:auto;gap:8px;display:flex;position:absolute;transform:translate(-50%)}@media (width<=760px){#ui>.pose-gare{flex-direction:row;align-self:flex-start;align-items:stretch;position:static}.pose-gare .types{flex-direction:column}}.cartouche{width:280px}.cartouche>header,.cartouche>summary{border-bottom:1px solid var(--trait);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.cartouche>header svg{width:20px;height:20px;color:var(--encre-2);flex:none}.cartouche .corps{flex-direction:column;gap:10px;padding:12px;display:flex}.plaque{font:800 16px/1 var(--font-plaque);letter-spacing:.07em;text-transform:uppercase;margin:0}#ui .etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.topbar{flex-wrap:wrap;align-items:center;gap:14px;max-width:min(820px,100% - 300px);padding:8px 12px;display:flex}.topbar .city{font:800 20px/1 var(--font-plaque);letter-spacing:.07em;text-transform:uppercase}.tampon{border:2px solid var(--encre);border-radius:var(--rayon-1);background:var(--papier);flex-direction:column;align-items:center;padding:6px 10px 5px;display:inline-flex;transform:rotate(-2deg)}.tampon .an{letter-spacing:.02em;font-size:22px;font-weight:500;line-height:1}.tampon .reste{font:600 9px/1.3 var(--font-chiffre);letter-spacing:.14em;text-transform:uppercase;color:var(--encre-2)}.tampon.echeance{border-color:var(--rouille);color:var(--rouille)}.tampon.echeance .reste{color:var(--rouille)}.sauve{opacity:0;pointer-events:none;transition:opacity .3s}.sauve.on{opacity:1}.open-menu{gap:8px}.open-menu svg{width:20px;height:20px}.time-controls{gap:4px;display:flex}.time-controls .btn svg{fill:currentColor;stroke:none;width:16px;height:16px}.time-controls .btn[aria-pressed=true]{background:var(--encre);border-color:var(--encre);color:var(--encre-inverse)}.frise{flex:1;min-width:60px;height:10px;position:relative}.frise .rail{background:var(--trait-fort);height:2px;position:absolute;top:4px;left:0;right:0}.frise .fait{background:var(--encre);width:0;height:4px;position:absolute;top:3px;left:0}.pop{color:var(--encre-2);font-size:13px}.pop span{color:var(--encre);font-size:14px}#ui>.carbon{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));position:absolute}.jauge .tete{justify-content:space-between;align-items:baseline;display:flex}.jauge .valeur{font-size:22px;font-weight:500}.jauge .etat{font:600 13px/1.2 var(--font-texte);color:var(--vert)}.jauge .piste{background:var(--calque);border:1px solid var(--trait-fort);height:10px;position:relative;overflow:hidden}.jauge .rempli{background:var(--vert);transition:width .32s var(--rame);position:absolute;inset:0 auto 0 0}.jauge.ambre .rempli{background:var(--ambre)}.jauge.ambre .etat{color:var(--ambre)}.jauge.rouille .rempli{background:repeating-linear-gradient(135deg, var(--rouille) 0 4px, var(--rouille-doux) 4px 6px)}.jauge.rouille .etat{color:var(--rouille)}.jauge .perte{color:var(--encre-2);font-size:12px}#ui>.prompt{background:var(--papier-haut);border-color:var(--encre);border-radius:var(--rayon-2);pointer-events:none;width:fit-content;max-width:min(460px,100%);margin:8px 0 0;padding:10px 14px;font-weight:650}.prompt[hidden]{display:none}#ui>.transports{left:max(12px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom));width:auto;position:absolute}.modes{flex-wrap:wrap;flex-direction:row!important;gap:8px!important}.mode-col{flex-direction:column;align-items:center;gap:6px;display:flex}.mode{border-radius:var(--rayon-2);min-width:64px;min-height:64px;color:var(--encre);cursor:pointer;font:700 13px/1 var(--font-etroit);background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:8px 6px 6px;display:inline-flex}.mode svg{width:26px;height:26px}.mode .soulign{border-radius:2px;width:26px;height:4px}.mode[aria-pressed=true]{background:var(--papier-haut);border-color:var(--encre)}.mode:disabled{color:var(--encre-2);cursor:not-allowed}.mode:disabled .soulign{background:repeating-linear-gradient(90deg, var(--trait-fort) 0 3px, transparent 3px 6px)!important}.quota{border:1px solid var(--trait-fort);border-radius:var(--rayon-1);background:var(--papier-haut);white-space:nowrap;align-items:center;min-height:24px;padding:0 8px;font-size:11px;display:inline-flex}.quota.complet{color:var(--rouille);border-color:var(--rouille);background:var(--rouille-doux)}#ui>.lignes{right:max(12px, env(safe-area-inset-right));top:calc(max(12px, env(safe-area-inset-top)) + 150px);max-height:calc(100% - 330px);position:absolute;overflow:auto}.lignes>summary{cursor:pointer;list-style:none}.lignes>summary::-webkit-details-marker{display:none}.lignes:not([open])>summary{border-bottom:0}.ligne{grid-template-columns:6px 1fr auto;align-items:center;gap:10px;display:grid}.ligne+.ligne{border-top:1px solid var(--trait);padding-top:10px}.trait{border-radius:3px;align-self:stretch;width:6px;min-height:20px;display:inline-block}.ligne-texte{flex-direction:column;gap:2px;min-width:0;display:flex}.ligne-texte strong{font:700 15px/1.1 var(--font-etroit)}.ligne-texte span{color:var(--encre-2);font-size:12px}.ligne-texte .alerte{color:var(--rouille)}.rames{gap:4px;display:flex}.ligne.masquee .ligne-texte,.ligne.masquee .trait{opacity:.45}.ligne .vue svg{width:16px;height:16px}.ligne .vue[aria-pressed=false]{color:var(--encre-2);border-style:dashed}.lignes-vue{border-bottom:1px solid var(--trait);flex-wrap:wrap;align-items:center;gap:4px;padding-bottom:8px;display:flex}.lignes-vue .etiquette{margin-right:auto}.btn.mini.texte{width:auto;padding:0 8px;font-size:12px}.btn.mini{min-width:32px;min-height:32px;padding:0;font-size:16px}.vide{color:var(--encre-2);margin:0;font-size:13px}#ui>.map-tools{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:4px;padding:4px;display:flex;position:absolute}.map-tools [data-zoom]{padding:0;font-size:20px}.map-tools .density{padding:0 8px;font-size:13px}.map-tools .density.on{border-color:var(--encre);background:var(--encre);color:var(--encre-inverse)}.zoom-level{font:500 12px var(--font-chiffre);color:var(--encre-2)}#ui>.station-menu{background:var(--papier-haut);border:1px solid var(--encre);border-radius:var(--rayon-2);flex-direction:column;gap:4px;width:max-content;max-width:280px;padding:6px;display:flex;position:absolute;transform:translate(-50%)}.station-menu[hidden]{display:none!important}.station-menu .btn{justify-content:flex-start;gap:8px;min-height:40px;font-size:14px}.station-menu .trait{align-self:center;width:14px;height:5px;min-height:0}@media (width<=760px){#ui{flex-direction:column;align-items:stretch;gap:8px;display:flex}.topbar{gap:10px;max-width:none}.topbar .frise,.pop{display:none}#ui>.carbon{width:auto;position:static}.carbon>header{display:none}.carbon .corps{flex-direction:row;align-items:center;padding:8px 12px}.carbon .tete{gap:8px}.carbon .piste{flex:1}.carbon .perte{display:none}#ui>.prompt{margin:0}#ui>.lignes{width:auto;max-height:40vh;position:static}#ui>.transports{right:calc(max(12px, env(safe-area-inset-right)) + 64px)}.mode{min-width:56px;min-height:56px}}@media (prefers-reduced-motion:reduce){.jauge .rempli{transition:none}}.lignes>footer{border-top:1px solid var(--trait);padding:6px 12px}.achats{flex-direction:column;gap:6px;display:flex;padding-bottom:10px!important}.achat-rames,.achat-lignes{flex-wrap:wrap;gap:4px;display:flex}.btn.achat{gap:6px;min-height:32px;padding:0 10px;font-size:12px}.btn.achat .soulign{border-radius:2px;width:4px;height:14px}.btn.achat:disabled{color:var(--encre-2);cursor:not-allowed;opacity:.55}@media (width<=760px){#ui>.transports{left:8px;right:8px;bottom:max(8px, env(safe-area-inset-bottom))}.transports>header{display:none}.transports .corps{padding:6px}.modes{flex-wrap:nowrap;justify-content:space-between;gap:2px!important}.mode-col{flex:1;gap:4px;min-width:0}.mode{width:100%;min-width:0;min-height:52px;padding:6px 2px 4px;font-size:12px}.quota{min-height:20px;padding:0 4px;font-size:9.5px}#ui>.map-tools{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 108px);background:0 0;border:0;padding:0;right:8px}.map-tools [data-zoom],.map-tools .zoom-level{display:none}.time-controls .btn{min-width:40px}.mode-col:has(.mode:disabled) .quota{visibility:hidden}.quota .long{display:none}}dialog.settings{border:1px solid var(--encre);border-radius:var(--rayon-2);background:var(--papier-haut);width:min(440px,100% - 32px);min-width:min(380px,100% - 32px);color:var(--encre);opacity:1;transform-origin:50% 0;transition:opacity .24s cubic-bezier(.22, 1, .36, 1), transform .24s cubic-bezier(.22, 1, .36, 1), overlay .24s allow-discrete, display .24s allow-discrete;padding:0;transform:none}dialog.settings:not([open]){opacity:0;transition-duration:.16s;transition-timing-function:cubic-bezier(.4,0,1,1);transform:translateY(4px)}@starting-style{dialog.settings[open]{opacity:0;transform:translateY(8px)scale(.98)}}dialog.settings::backdrop{transition:background-color .24s cubic-bezier(.22, 1, .36, 1), overlay .24s allow-discrete, display .24s allow-discrete;background:#14223a59}dialog.settings:not([open])::backdrop{background:#14223a00;transition-duration:.16s}@starting-style{dialog.settings[open]::backdrop{background:#14223a00}}.open-settings svg{transition:transform .32s var(--rame)}.open-settings[aria-expanded=true] svg{transform:rotate(60deg)}.settings-body{flex-direction:column;gap:16px;padding:24px;display:flex}.settings-body header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.settings-body header>div{flex-direction:column;gap:6px;display:flex}.settings-body h2{font:800 30px/1 var(--font-plaque);text-transform:uppercase;margin:0}.settings-body .etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.icon-btn{background:0 0;border-color:#0000;padding:0}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.settings-list{margin:0;padding:0;list-style:none}.settings-list>li{border-top:1px solid var(--trait);padding:12px 0}.settings-list>li:last-child{border-bottom:1px solid var(--trait)}.row-icon{color:var(--encre-2);display:flex}.slider-row{grid-template-columns:20px 1fr 5ch;align-items:center;gap:2px 10px;display:grid}.slider-row label{font-weight:650}.slider-row output{color:var(--encre-2);justify-self:end;font-size:14px}.slider-hint{color:var(--encre-2);grid-column:2/-1;font-size:13px}.slider-row input[type=range]{width:100%;height:var(--cible);appearance:none;cursor:pointer;background:0 0;grid-column:1/-1;margin:0}.slider-row input[type=range]::-webkit-slider-runnable-track{border:1px solid var(--trait-fort);background:linear-gradient(var(--encre), var(--encre)) 0 / var(--fill,50%) 100% no-repeat, var(--calque);border-radius:2px;height:4px}.slider-row input[type=range]::-moz-range-track{border:1px solid var(--trait-fort);background:var(--calque);border-radius:2px;height:4px}.slider-row input[type=range]::-moz-range-progress{background:var(--encre);border-radius:2px;height:4px}.slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2.5px solid var(--encre);background:radial-gradient(circle, var(--encre) 0 3px, var(--papier-haut) 3.5px);width:20px;height:20px;transition:transform .16s var(--rame);border-radius:50%;margin-top:-9px}.slider-row input[type=range]::-moz-range-thumb{border:2.5px solid var(--encre);background:radial-gradient(circle, var(--encre) 0 3px, var(--papier-haut) 3.5px);width:15px;height:15px;transition:transform .16s var(--rame);border-radius:50%}@media (hover:hover){.slider-row input[type=range]:not(:disabled):hover::-webkit-slider-thumb{transform:scale(1.1)}.slider-row input[type=range]:not(:disabled):hover::-moz-range-thumb{transform:scale(1.1)}}.slider-row input[type=range].dragging::-webkit-slider-thumb{background:radial-gradient(circle, var(--papier-haut) 0 3px, var(--encre) 3.5px)}.slider-row input[type=range].dragging::-moz-range-thumb{background:radial-gradient(circle, var(--papier-haut) 0 3px, var(--encre) 3.5px)}.slider-row input[type=range]:focus-visible{outline:none}.slider-row input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--papier-haut), 0 0 0 4px var(--encre)}.slider-row input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 2px var(--papier-haut), 0 0 0 4px var(--encre)}.slider-row input[type=range]:disabled{cursor:not-allowed}.slider-row input[type=range]:disabled::-webkit-slider-runnable-track{background:repeating-linear-gradient(90deg, var(--trait-fort) 0 4px, transparent 4px 8px);border-color:#0000}.slider-row input[type=range]:disabled::-moz-range-track{background:repeating-linear-gradient(90deg, var(--trait-fort) 0 4px, transparent 4px 8px);border-color:#0000}.slider-row input[type=range]:disabled::-moz-range-progress{background:0 0}.slider-row input[type=range]:disabled::-webkit-slider-thumb{border-color:var(--encre-2);background:radial-gradient(circle, var(--encre-2) 0 3px, var(--papier-haut) 3.5px)}.slider-row input[type=range]:disabled::-moz-range-thumb{border-color:var(--encre-2);background:radial-gradient(circle, var(--encre-2) 0 3px, var(--papier-haut) 3.5px)}.switch-row{min-height:var(--cible);grid-template-columns:20px 1fr auto auto;align-items:center;gap:10px;display:grid}.switch-label{font-weight:650}.switch-state{color:var(--encre-2);font-weight:650}.switch{width:44px;height:var(--cible);cursor:pointer;background:0 0;border:0;padding:0;position:relative}.switch:before{content:"";border:1.5px solid var(--trait-fort);background:var(--calque);box-sizing:border-box;height:24px;transition:background-color .16s var(--rame), border-color .16s var(--rame);border-radius:999px;position:absolute;top:10px;left:0;right:0}.switch span{border:1.5px solid var(--encre);background:var(--papier-haut);box-sizing:border-box;width:18px;height:18px;transition:transform .16s var(--rame);border-radius:50%;position:absolute;top:13px;left:3px}.switch[aria-checked=true]:before{background:var(--encre);border-color:var(--encre)}.switch[aria-checked=true] span{border-color:var(--papier-haut);transform:translate(20px)}.switch:focus-visible{outline:none}.switch:focus-visible:before{box-shadow:0 0 0 2px var(--papier-haut), 0 0 0 4px var(--encre)}.settings-body footer{justify-content:flex-end;display:flex}@media (prefers-reduced-motion:reduce){dialog.settings,dialog.settings:not([open]){transition-property:opacity,overlay,display;transition-duration:.12s;transform:none}@starting-style{dialog.settings[open]{transform:none}}.open-settings svg,.switch:before,.switch span{transition:none}.slider-row input[type=range]::-webkit-slider-thumb{transition:none}.slider-row input[type=range]::-moz-range-thumb{transition:none}}.emplacements{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.fiche{background:var(--papier-haut);border:1px solid var(--trait);border-radius:var(--rayon-0);flex-direction:column;gap:6px;min-width:0;padding:12px;display:flex;position:relative}.fiche.courante{border:2px solid var(--encre);padding:11px}.fiche.vide,.fiche.abimee{background:0 0;border-style:dashed}.fiche h3{font:800 22px/1 var(--font-plaque);letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere;margin:0}.fiche .etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.fiche-meta,.fiche-date{color:var(--encre-2);margin:0;font-size:13px;line-height:1.35}.fiche-meta .sain{color:var(--vert)}.fiche-meta .ambre{color:var(--ambre)}.fiche-meta .rouille{color:var(--rouille)}.fiche-alerte{color:var(--ambre);margin:0;font-size:12px;line-height:1.35}.apercu{aspect-ratio:16/10;border:1px solid var(--trait);background:var(--calque);margin-bottom:4px;position:relative;overflow:hidden}.apercu canvas,.apercu img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.tampon-an{border:2px solid var(--encre);border-radius:var(--rayon-1);background:var(--papier);padding:3px 7px 2px;font-size:15px;line-height:1;position:absolute;bottom:8px;right:8px;transform:rotate(-2deg)}.fiche-vide{min-height:120px;color:var(--encre-2);font:600 15px/1.2 var(--font-etroit);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.fiche-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:6px;display:flex}.fiche-actions .principal{flex:1;gap:8px}.fiche-actions .principal svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.fiche-actions .icon-btn svg{width:20px;height:20px}.fiche-actions .icon-btn{color:var(--encre-2)}.fiche .en-cours{color:var(--encre)!important}.fiche.vide>.btn{margin-top:auto}.confirmer{font:600 15px/1.3 var(--font-etroit);background:#f8f9f6f0;flex-direction:column;justify-content:flex-end;gap:8px;padding:12px;display:flex;position:absolute;inset:0}.confirmer[hidden]{display:none}.confirmer span{margin-bottom:auto;padding-top:24px}.confirmer .btn{width:100%}dialog.fenetre-emplacements{width:min(960px,100% - 32px)}.fenetre-tete{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fenetre-tete .icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:18px;height:18px}@media (width<=760px){.emplacements{grid-template-columns:1fr}.fiche:not(.vide):not(.abimee){grid-template-columns:112px minmax(0,1fr);column-gap:12px;display:grid}.fiche:not(.vide):not(.abimee) .apercu{grid-row:1/span 4;align-self:start;margin:0}.fiche:not(.vide):not(.abimee) .fiche-actions,.fiche:not(.vide):not(.abimee) .fiche-alerte{grid-column:1/-1}.fiche-vide{flex-direction:row;min-height:56px}}dialog.menu-partie{width:min(360px,100% - 32px)}.menu-boutons{flex-direction:column;gap:8px;display:flex}.menu-boutons .btn{min-height:var(--cible);justify-content:flex-start;gap:10px;font-size:16px}.menu-boutons .btn.principal{justify-content:center}.menu-boutons .btn svg{width:20px;height:20px}#creation:empty{display:none}#creation{z-index:9;background-color:var(--calque);background-image:linear-gradient(var(--calque-trame) 1px, transparent 1px), linear-gradient(90deg, var(--calque-trame) 1px, transparent 1px);background-size:40px 40px;place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.attente{flex-direction:column;align-items:center;gap:18px;width:min(580px,100% - 32px);padding:24px 0;transition:opacity .24s cubic-bezier(.22,1,.36,1);display:flex}.attente.sortie{opacity:0}.attente .etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.attente h1{font:800 44px/1 var(--font-plaque);text-transform:uppercase;text-align:center;margin:0}.plan{aspect-ratio:16/10;border:1px solid var(--trait);background:#fbfbf8;width:100%}.plan .papier{fill:#fbfbf8}.plan .berge,.plan .eau{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:trace .9s var(--rame) forwards}.plan .berge{stroke:#8a96a3;stroke-width:41.6px}.plan .eau{stroke:#f2f6f8;stroke-width:40px}.plan line{stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:trace .4s var(--rame) forwards}.plan .rue{stroke:#fff;stroke-width:5.2px}.plan .axe{stroke:#fff;stroke-width:7.4px}.plan .rue.bord{stroke:#a3abb5;stroke-width:6.6px}.plan .axe.bord{stroke:#a3abb5;stroke-width:8.8px}.plan .maison{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.35s cubic-bezier(.22,1,.36,1) forwards surgit}.plan .maison polygon{fill:#fff;stroke:#5f6b78;stroke-width:.7px}.plan .maison polygon.ombre{fill:#c3cad2;stroke:none}.plan .touffe{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.22,1,.36,1) forwards pousse}@keyframes trace{to{stroke-dashoffset:0}}@keyframes apparait{to{opacity:1}}@keyframes pousse{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes surgit{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.progres{grid-template-columns:repeat(5,1fr);width:100%;margin:0;padding:0;list-style:none;display:grid;position:relative}.progres .rail,.progres .avance{height:3px;position:absolute;top:8px;left:10%}.progres .rail{background:var(--trait-fort);right:10%}.progres .avance{width:calc(80% * var(--p));background:var(--encre);transition:width .32s var(--rame)}.station{flex-direction:column;align-items:center;gap:8px;display:flex;position:relative}.poincon{border:2.5px solid var(--trait-fort);background:var(--papier-haut);box-sizing:border-box;border-radius:50%;width:18px;height:18px}.station.encours .poincon{border-color:var(--encre);background:radial-gradient(circle, var(--encre) 0 2.5px, var(--papier-haut) 3px)}.station.fait .poincon{border-color:var(--encre);background:var(--encre)}.station .nom{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.1em;text-transform:uppercase;color:var(--encre-2)}.station.encours .nom,.station.fait .nom{color:var(--encre)}.attente .etat{min-height:1.4em;color:var(--encre-2);margin:0;font-size:15px}@media (width<=480px){.attente h1{font-size:34px}.station .nom{letter-spacing:.04em;font-size:9px}}@media (prefers-reduced-motion:reduce){.plan *{opacity:1!important;stroke-dashoffset:0!important;animation:none!important;transform:none!important}.attente,.progres .avance{transition:none}}#intro:empty{display:none}#intro{z-index:10;-webkit-overflow-scrolling:touch;background-color:var(--calque);background-image:linear-gradient(var(--calque-trame) 1px, transparent 1px), linear-gradient(90deg, var(--calque-trame) 1px, transparent 1px);background-size:40px 40px;position:fixed;inset:0;overflow-y:auto}.intro{max-width:1600px;min-height:100%;padding:max(24px, env(safe-area-inset-top)) max(48px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(48px, env(safe-area-inset-left));flex-direction:column;gap:clamp(16px,2.6vh,28px);margin:0 auto;display:flex}.etiquette{font:600 11px/1.2 var(--font-chiffre);letter-spacing:.12em;text-transform:uppercase;color:var(--encre-2)}.intro h1{font:800 clamp(44px, min(5.2vw, 8.4vh), 84px)/.92 var(--font-plaque);letter-spacing:.005em;text-transform:uppercase;margin:0}.intro h2{font:800 16px/1 var(--font-plaque);letter-spacing:.07em;text-transform:uppercase;margin:0}.pitch{max-width:680px;margin:0;font-size:18px;line-height:1.5}.intro .card{background:var(--papier);border:1px solid var(--trait);border-radius:var(--rayon-0)}.intro-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand img{border-radius:8px;display:block}.brand>div{flex-direction:column;gap:3px;display:flex}.logotype{font:900 30px/.9 var(--font-plaque);letter-spacing:.01em;text-transform:uppercase}.open-settings{gap:8px}.head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.open-saves{gap:8px}.open-saves svg{width:20px;height:20px}.continue{font:800 18px/1 var(--font-plaque);text-transform:uppercase;letter-spacing:.04em;gap:10px}.continue-ville{font:600 14px/1 var(--font-etroit);text-transform:none;letter-spacing:0;opacity:.85}.continue svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.open-settings svg,.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.intro-top{grid-template-columns:minmax(0,1.5fr) minmax(360px,1fr);align-items:stretch;gap:clamp(24px,3vw,56px);display:grid}.intro-pitch{flex-direction:column;gap:clamp(14px,2.2vh,22px);display:flex}.goals{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:auto;display:grid}.goal{gap:12px;padding:14px 16px;display:flex}.goal svg{fill:none;width:24px;height:24px;stroke:var(--encre);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none}.goal.danger svg{stroke:var(--rouille)}.goal div{flex-direction:column;gap:4px;display:flex}.goal strong{font:700 16px/1.1 var(--font-etroit)}.goal span{color:var(--encre-2);font-size:13px;line-height:1.4}.intro-city{flex-direction:column;gap:10px;padding:20px;display:flex;background:var(--papier-haut)!important}.field-label{font:800 16px/1 var(--font-plaque);letter-spacing:.07em;text-transform:uppercase}.name-field{position:relative}.name-field:after{content:"";border:3px solid var(--vert);opacity:0;pointer-events:none;border-radius:6px;position:absolute;inset:-4px}.name-field.hint-on:after{animation:2.4s cubic-bezier(.22,1,.36,1) 1.2s 3 name-halo}.pencil{pointer-events:none;fill:none;width:20px;height:20px;stroke:var(--encre-2);stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;transform-origin:20% 80%;position:absolute;top:16px;right:14px}.name-field.hint-on .pencil{animation:2.4s ease-in-out 1.2s 3 pencil-write}.name-field:focus-within .pencil{stroke:var(--encre)}@keyframes pencil-write{0%,40%,to{transform:none}8%{transform:translate(-2px,1px)rotate(-14deg)}16%{transform:translate(1px,-1px)rotate(6deg)}24%{transform:translate(-2px,1px)rotate(-12deg)}32%{transform:translate(0)rotate(3deg)}}@keyframes name-halo{0%{opacity:0;transform:scale(1)}12%{opacity:.8;transform:scale(1)}55%,to{opacity:0;transform:scale(1.05,1.3)}}#cname{border:2px solid var(--encre);border-radius:var(--rayon-1);background:var(--papier-haut);width:100%;height:52px;font:700 26px/1 var(--font-etroit);color:var(--encre);padding:0 46px 0 14px}.hint{color:var(--encre-2);font-size:13px;font-weight:500}.preview-head{justify-content:space-between;align-items:center;gap:8px;margin-top:2px;display:flex}.preview-head .etiquette{overflow-wrap:anywhere;min-width:0}.reroll{border:1px solid var(--trait-fort);border-radius:var(--rayon-2);background:var(--papier-haut);height:34px;color:var(--encre);font:650 14px/1 var(--font-texte);cursor:pointer;white-space:nowrap;transition:background-color .16s, transform .16s var(--rame);flex:none;align-items:center;gap:6px;padding:0 12px 0 10px;display:inline-flex;position:relative}.reroll:before{content:"";position:absolute;inset:-5px}.reroll:after{content:"";border:3px solid var(--vert);opacity:0;pointer-events:none;border-radius:9px;position:absolute;inset:-4px}.reroll svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}@media (hover:hover){.reroll:hover{background:var(--papier)}}.reroll:active{transform:translateY(1px)}.reroll.hint-on:after{animation:2.4s cubic-bezier(.22,1,.36,1) 8.4s 2 name-halo}.reroll.hint-on svg{animation:reroll-turn 2.4s var(--rame) 8.4s 2}.reroll.spin svg{animation:reroll-spin .32s var(--rame)}@keyframes reroll-turn{0%{transform:none}30%,to{transform:rotate(180deg)}}@keyframes reroll-spin{0%{transform:rotate(-180deg)}}.preview{border:1px solid var(--trait);background:var(--calque);flex:1;min-height:150px;position:relative;overflow:hidden}.preview canvas{width:100%;height:100%;transition:opacity .16s;display:block;position:absolute;inset:0}.preview.swap canvas{opacity:0}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stats div{flex-direction:column;gap:4px;display:flex}.stats strong{font:500 22px/1 var(--font-chiffre);font-variant-numeric:tabular-nums}.stats span{color:var(--encre-2);font-size:13px;font-weight:500}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.section-head span{color:var(--encre-2);font-size:13px;font-weight:500}.intro-timeline{flex-direction:column;gap:12px;display:flex}.tl{height:110px;animation:.5s ease-out .1s both tl-fade;position:relative}.tl ol{margin:0;padding:0;list-style:none}.tl-tick{left:var(--pos);background:var(--trait-fort);width:1px;height:6px;margin-left:-.5px;position:absolute;top:26px}.tl-tick.major{background:var(--encre-2);height:10px;top:22px}.tl-tick span{color:var(--encre-2);white-space:nowrap;font-size:11px;font-weight:500;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.tl-tick.at-start span{left:0;transform:none}.tl-tick.at-end span{left:auto;right:0;transform:none}.tl-track,.tl-fill{height:4px;position:absolute;top:36px;left:0;right:0}.tl-track{background:var(--trait)}.tl-fill{background:var(--encre);transform-origin:0;animation:tl-draw var(--dur) linear var(--start) both}.tl-head{pointer-events:none;height:10px;animation:tl-head var(--dur) linear var(--start) both;position:absolute;top:33px;left:0;right:0}.tl-head span{background:var(--encre);width:10px;height:10px;box-shadow:0 0 0 3px var(--calque);animation:tl-fade .2s ease-out var(--start) both, tl-out .3s cubic-bezier(.4, 0, 1, 1) calc(var(--start) + var(--dur)) forwards;border-radius:50%;position:absolute;top:0;right:-5px}.tl-step{--ring:var(--encre);--fill:var(--papier-haut);left:var(--pos);text-align:center;flex-direction:column;align-items:center;gap:7px;width:150px;margin-left:-75px;display:flex;position:absolute;top:22px}.tl-step.first{--fill:var(--encre);text-align:left;align-items:flex-start;width:120px;margin-left:0}.tl-step.end{--ring:var(--rouille);text-align:right;align-items:flex-end;margin-left:-150px}.tl-dot{width:18px;height:18px;margin-top:7px;display:block;position:relative}.tl-halo,.tl-ring{border-radius:50%;position:absolute;inset:0}.tl-halo{background:var(--ring);opacity:0;animation:tl-halo .7s cubic-bezier(.22, 1, .36, 1) var(--t) both}.tl-ring{background:var(--fill);border:2.5px solid var(--ring);animation:tl-ring .3s ease-out var(--t) both, tl-pop .45s cubic-bezier(.22, 1, .36, 1) var(--t) both}.tl-year{font:500 14px/1 var(--font-chiffre);color:var(--ring);animation:tl-rise .4s cubic-bezier(.22, 1, .36, 1) calc(var(--t) + 50ms) both}.tl-label{font:600 14px/1.25 var(--font-etroit);color:var(--encre-2);animation:tl-rise .5s cubic-bezier(.22, 1, .36, 1) calc(var(--t) + .15s) both}@keyframes tl-fade{0%{opacity:0}}@keyframes tl-rise{0%{opacity:0;transform:translateY(6px)}}@keyframes tl-ring{0%{border-color:var(--trait);background:var(--papier-haut)}}@keyframes tl-pop{40%{transform:scale(1.22)}}@keyframes tl-halo{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}@keyframes tl-out{to{opacity:0;transform:scale(.4)}}@keyframes tl-draw{0%{transform:scaleX(0)}}@keyframes tl-head{0%{transform:translate(-100%)}}@keyframes tl-draw-v{0%{transform:scaleY(0)}}@keyframes tl-head-v{0%{transform:translateY(-100%)}}.intro-bottom{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.levels-wrap{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.levels-wrap .section-head{justify-content:flex-start}.levels{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.level{border:1px solid var(--trait-fort);border-radius:var(--rayon-2);background:var(--papier);color:var(--encre);font-family:var(--font-texte);text-align:left;cursor:pointer;flex-direction:column;gap:7px;padding:12px 14px;transition:background-color .16s;display:flex}@media (hover:hover){.level:not(.on):hover{background:var(--papier-haut)}}.level.on{border:2px solid var(--encre);background:var(--papier-haut);padding:11px 13px}.level-name{width:100%;font:800 20px/1 var(--font-plaque);letter-spacing:.04em;text-transform:uppercase;align-items:center;display:flex}.check{visibility:hidden;background:var(--encre);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-left:auto;display:flex}.check svg{fill:none;width:13px;height:13px;stroke:var(--encre-inverse);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.level.on .check{visibility:visible}.reach{justify-content:space-between;font-size:13px;font-weight:650;display:flex}.reach .mono{color:var(--c)}.bar{background:var(--calque);border:1px solid var(--trait);height:6px;display:block;overflow:hidden}.bar span{background:var(--c);height:100%;display:block}.rules{font:500 12px/1.4 var(--font-texte);color:var(--encre-2)}.desc{font-size:13px;font-weight:650;line-height:1.4}.btn.principal{background:var(--encre);border-color:var(--encre);color:var(--encre-inverse)}@media (hover:hover){.btn.principal:hover{background:var(--encre);opacity:.9}}.start{min-width:300px;height:72px;font:800 26px/1 var(--font-plaque);text-transform:uppercase;letter-spacing:.04em;flex:none;gap:0;padding:0;position:relative}.start-label{padding:0 24px 0 30px}.start-annee{border-left:2px dashed color-mix(in srgb, var(--encre-inverse) 45%, transparent);font:500 24px/1 var(--font-chiffre);letter-spacing:0;align-self:stretch;align-items:center;gap:12px;padding:0 26px 0 22px;display:flex}.start svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px;transition:transform .24s var(--rame)}@media (hover:hover){.start:hover svg{transform:translate(5px)}}.start:after{content:"";border:3px solid var(--encre);opacity:0;pointer-events:none;border-radius:9px;animation:2.4s cubic-bezier(.22,1,.36,1) 13.4s 2 name-halo;position:absolute;inset:-5px}@media (width>=1161px){.intro-top{flex:1 0 auto}}@media (width<=960px){.intro{padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}.intro-top{grid-template-columns:1fr;gap:24px}.goals,.levels{grid-template-columns:1fr}.preview{flex:none;height:170px}.intro-bottom{flex-direction:column;align-items:stretch}.intro{padding-bottom:calc(72px + 2 * max(12px, env(safe-area-inset-bottom)) + 12px)}.start{z-index:2;min-width:0;left:max(16px, env(safe-area-inset-left));right:max(16px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));position:fixed}.start-label{text-align:center;flex:1}}@media (width<=640px){.intro{padding-left:16px;padding-right:16px}.pitch{font-size:16px}#cname{font-size:22px}.open-settings span,.open-saves .libelle,.continue-ville{display:none}}@media (width<=1160px){.tl{height:300px;margin-left:4px}.tl-scale{display:none}.tl-track,.tl-fill{width:4px;height:auto;inset:0 auto 23px 7px}.tl-fill{transform-origin:top;animation-name:tl-draw-v}.tl-head{width:10px;height:auto;animation-name:tl-head-v;inset:0 auto 23px 4px}.tl-head span{inset:auto auto -5px 0}.tl-step,.tl-step.first,.tl-step.end{left:0;top:var(--pos);text-align:left;grid-template-columns:18px 44px 1fr;align-items:center;gap:10px;width:auto;margin:-16px 0 0;display:grid;right:0}.tl-step.first{margin-top:0}.tl-step.end{margin-top:-32px}.tl-dot{margin-top:0}}@media (prefers-reduced-motion:reduce){.tl *{animation:none!important}.tl-head{display:none}.tl{animation:.4s ease-out both tl-fade!important}.name-field.hint-on:after,.name-field.hint-on .pencil,.reroll:after,.reroll svg,.start:after{animation:none!important}.start svg,.preview canvas{transition:none}}.intro{z-index:1;position:relative}.intro-bg{z-index:0;pointer-events:none;opacity:.55;position:fixed;inset:0;overflow:hidden;-webkit-mask-image:radial-gradient(120% 90% at 78% 30%,#000 25%,#0000 70%);mask-image:radial-gradient(120% 90% at 78% 30%,#000 25%,#0000 70%)}.bg-frame{object-fit:cover;object-position:62% 45%;opacity:0;width:100%;height:100%;transition:opacity .6s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}.bg-frame.on{opacity:1}@media (prefers-reduced-motion:reduce){.bg-frame{transition:none}}@media (width<=640px){.intro-bg{opacity:.3}}
