/* Généré depuis outils/sources/tuto.css : modifie la source, pas ce fichier. */
.tuto-page main{background:var(--paper);color:var(--ink)}
.t-label{font:800 .78rem var(--font-mono,ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase;color:var(--coral-text)}
.t-hero{position:relative;overflow:hidden;background:linear-gradient(100deg,#2B1B4D 0%,#5A2358 60%,#8E2F4C 100%);color:#fff;padding:56px 0 48px;border-bottom:3px solid var(--amber)}
.t-hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,0) 0 3px,rgba(255,255,255,.045) 3px 4px);pointer-events:none}
.t-hero:after{content:"";position:absolute;left:-10%;right:-10%;bottom:-40%;height:70%;background:radial-gradient(ellipse at 50% 100%,rgba(232,69,44,.55),rgba(90,35,88,.25) 45%,transparent 70%);filter:blur(8px);pointer-events:none}
.t-hero .shell{position:relative;z-index:1}
.t-hero .t-label{color:var(--amber)}
.t-hero h1{margin:10px 0 14px;font:900 clamp(2.2rem,4.6vw,3.6rem)/1.05 'Archivo',sans-serif;letter-spacing:-.02em}
.t-hero h1 em{font-style:normal;color:var(--amber)}
.t-hero p{max-width:60ch;font-size:1.12rem;line-height:1.55;color:#F3ECF6}
.t-button{display:inline-flex;align-items:center;gap:8px;min-height:48px;margin:18px 12px 0 0;padding:10px 18px;background:var(--amber);color:var(--ink);border:2px solid var(--ink);border-radius:10px;box-shadow:3px 3px 0 var(--ink);font:800 1rem 'Archivo',sans-serif;text-decoration:none;transition:transform .15s,box-shadow .15s}
.t-button:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.t-button.secondary{background:#fff}
.t-hero-link{display:inline-block;margin-top:18px;color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.tuto-page main :is(a,button,input,summary):focus-visible{outline:3px solid var(--amber);outline-offset:3px}
.t-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;align-items:start;padding-top:36px;padding-bottom:64px}
.t-aside{position:sticky;top:90px}
.t-aside details{background:#fff;border:2px solid var(--ink);border-top:6px solid var(--amber);border-radius:14px;box-shadow:4px 4px 0 rgba(26,26,30,.16);padding:12px 14px}
.t-aside summary{cursor:pointer;font:900 1.05rem 'Archivo',sans-serif;color:var(--ink);min-height:36px;display:flex;align-items:center}
.t-aside ol{margin:8px 0 0;padding:0 0 0 22px;display:grid;gap:4px;counter-reset:none}
.t-aside li{font-size:.95rem;line-height:1.35}
.t-aside a{color:var(--ink);text-decoration:none;display:block;padding:5px 8px;border-radius:8px;border:2px solid transparent}
.t-aside a:hover{background:#FFF3DC}
.t-aside li a:not([class]){color:var(--ink);background:none;text-decoration:none}
.t-aside a.is-current{background:var(--ink);color:#fff;border-color:var(--ink)}
.t-aside li a.is-current{color:#fff}
.t-content{display:grid;gap:28px;min-width:0}
.t-content>*{min-width:0;max-width:100%}
.t-chapter{min-width:0;overflow-wrap:anywhere}
.t-chapter{background:#fff;border:2px solid var(--ink);border-top:6px solid var(--amber);border-radius:16px;box-shadow:5px 5px 0 rgba(26,26,30,.16);padding:26px 28px;scroll-margin-top:90px}
.t-chapter.is-target{outline:4px solid var(--amber);outline-offset:6px}
.t-chapter-n{font:800 .78rem var(--font-mono,ui-monospace,monospace);letter-spacing:.14em;color:var(--coral-text);margin:0 0 6px}
.t-chapter h2{margin:0 0 12px;font:900 clamp(1.5rem,2.6vw,2rem)/1.15 'Archivo',sans-serif;color:var(--ink)}
.t-chapter h3{margin:22px 0 8px;font:900 1.2rem 'Archivo',sans-serif;color:var(--ink)}
.t-chapter p{font-size:1.02rem;line-height:1.6;color:var(--ink-soft)}
.t-chapter p strong{color:var(--ink)}
.t-question{font:800 1.15rem/1.4 'Archivo',sans-serif;color:var(--ink)!important;padding:10px 14px;background:#FFF3DC;border-left:5px solid var(--amber);border-radius:8px}
.t-mode-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0 6px}
.t-mode-fields>div{padding:12px 14px;background:var(--paper);border:2px solid var(--ink);border-radius:12px}
.t-mode-fields dt{font:800 .95rem 'Archivo',sans-serif;color:var(--coral-text);margin-bottom:4px}
.t-mode-fields dd{margin:0;font-size:.98rem;line-height:1.5;color:var(--ink-soft)}
.t-steps{margin:10px 0 0;padding:0;list-style:none;counter-reset:t-steps;display:grid;gap:10px}
.t-steps li{counter-increment:t-steps;position:relative;padding:10px 14px 10px 54px;background:var(--paper);border:2px solid var(--ink);border-radius:12px;font-size:1rem;line-height:1.55;color:var(--ink)}
.t-steps li:before{content:counter(t-steps);position:absolute;left:10px;top:50%;transform:translateY(-50%);width:32px;height:32px;box-sizing:border-box;display:grid;place-items:center;line-height:1;padding-top:1px;text-align:center;font-variant-numeric:tabular-nums;background:var(--amber);color:var(--ink);border:2px solid var(--ink);border-radius:50%;box-shadow:2px 2px 0 var(--ink);font:900 1rem/1 'Archivo',sans-serif}
.t-start-form{margin:18px 0 6px;padding:18px;background:linear-gradient(165deg,#2B1B4D 0%,#3B1F57 60%,#5A2358 100%);color:#fff;border:2px solid var(--ink);border-radius:14px;box-shadow:6px 6px 0 var(--amber)}
.t-start-form p{color:#EBDDEE}
.t-start-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.t-start-fields label{display:grid;gap:6px;font:800 .95rem 'Archivo',sans-serif;color:#fff}
.t-start-fields input{width:100%;min-height:50px;padding:8px 12px;font:700 1.1rem 'Archivo',sans-serif;font-variant-numeric:tabular-nums;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:10px}
#t-start-message{margin:12px 0 0;padding:10px 14px;background:var(--amber);color:var(--ink);border:2px solid var(--ink);border-radius:10px;font:700 1.02rem 'Archivo',sans-serif}
.t-start-form .t-button{margin-top:12px}
.t-figure{margin:22px 0 0;padding:0;border:2px solid var(--ink);border-radius:14px;overflow:hidden;background:#fff}
.t-figure-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 14px;background:var(--ink);color:#fff;font:700 .9rem 'Archivo',sans-serif}
.t-figure-bar a{color:var(--amber)}
.t-zone-controls{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;background:#FFF9EC;border-bottom:2px solid var(--ink)}
.t-zone-controls button{min-height:40px;padding:6px 14px;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:999px;box-shadow:2px 2px 0 var(--ink);font:800 .9rem 'Archivo',sans-serif;cursor:pointer}
.t-zone-controls button[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:2px 2px 0 var(--amber)}
.t-picture{position:relative;background:var(--paper-2)}
.t-picture img{display:block;width:100%;height:auto}
.t-zone{position:absolute;left:var(--z-x);top:var(--z-y);width:var(--z-width);height:var(--z-height);border:4px solid var(--amber);border-radius:10px;box-shadow:0 0 0 9999px rgba(43,27,77,.45);pointer-events:none}
.t-figure figcaption{padding:10px 14px;font-size:.95rem;line-height:1.5;color:var(--ink-soft);border-top:2px solid var(--ink)}
.t-example{margin:18px 0 0;padding:16px 18px;background:#FFF3DC;border:2px dashed var(--amber);border-radius:12px}
.t-example p{color:var(--ink)}
.t-pitfall{margin:14px 0 0;padding:10px 14px;background:var(--paper);border:2px solid var(--ink);border-radius:12px}
.t-pitfall summary{cursor:pointer;font:800 1rem 'Archivo',sans-serif;color:var(--coral-text);min-height:36px;display:flex;align-items:center}
.t-pitfall p{margin:8px 0 0}
.t-back{display:inline-block;margin-top:18px;font-weight:700;color:var(--coral-text);text-decoration:underline;text-underline-offset:4px}
.t-mode-tabs{display:flex;gap:8px;margin:14px 0}
.t-mode-tabs button{min-height:42px;padding:8px 16px;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:999px;box-shadow:2px 2px 0 var(--ink);font:800 .95rem 'Archivo',sans-serif;cursor:pointer}
.t-mode-tabs button[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:2px 2px 0 var(--amber)}
.t-table-wrap{overflow-x:auto;margin:14px 0;border:2px solid var(--ink);border-radius:12px;background:#fff}
.t-table-wrap table{width:100%;border-collapse:collapse;font-size:.98rem}
.t-table-wrap caption{text-align:left;padding:10px 14px;font:800 .95rem 'Archivo',sans-serif;color:var(--coral-text)}
.t-table-wrap th,.t-table-wrap td{padding:10px 14px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}
.t-table-wrap th{color:var(--ink);font-weight:800}
.t-table-wrap th,.t-table-wrap td{overflow-wrap:break-word}
@media(max-width:560px){.t-table-wrap table,.t-table-wrap tbody,.t-table-wrap tr,.t-table-wrap th,.t-table-wrap td{display:block;width:auto}
 .t-table-wrap caption{display:block}
 .t-table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .t-table-wrap tbody th{padding-bottom:2px}.t-table-wrap tbody td{border-top:0;padding-top:2px}}
.t-chapter details:not(.t-pitfall)>summary{font:800 1.05rem 'Archivo',sans-serif;color:var(--ink);cursor:pointer;min-height:40px;display:flex;align-items:center}
.t-hub-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.t-hub-links a{display:inline-flex;align-items:center;min-height:42px;padding:8px 14px;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:999px;box-shadow:2px 2px 0 var(--ink);font:800 .92rem 'Archivo',sans-serif;text-decoration:none}
@media(max-width:900px){
 .t-layout{grid-template-columns:minmax(0,1fr);gap:22px}
 .t-aside{position:static}
 .t-chapter{padding:20px 18px}
 .t-mode-fields,.t-start-fields{grid-template-columns:minmax(0,1fr)}
 .t-zone{left:var(--zm-x);top:var(--zm-y);width:var(--zm-width);height:var(--zm-height)}
}
@media(prefers-reduced-motion:reduce){.t-button,.t-chapter{transition:none}}
.t-counts{margin:18px 0 0;padding:14px 16px;border:1.5px dashed var(--ink);border-radius:12px;background:var(--paper-2,#F4F0E7)}
.t-counts h3{margin:0 0 6px}
.t-counts>p{margin:0 0 8px}
.t-count-list{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;font-size:.92rem;line-height:1.5}
.t-count-g{display:inline-block;padding:0 7px;border:1px solid var(--rule,#DFD9CC);border-radius:999px;font:700 .68rem/1.6 var(--font-mono,ui-monospace,monospace);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.t-hero{padding:48px 0 44px;}
.t-hero-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:36px;align-items:center;}
.t-hero-txt{min-width:0;}
.t-hero-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;}
.t-hero-acts .t-button{margin-right:0;}
.t-hero-acts .t-hero-link{margin-top:18px;}
.t-hero-facts{list-style:none;margin:26px 0 0;padding:18px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border-top:1px solid rgba(255,255,255,.22);}
.t-hero-facts li{display:flex;flex-direction:column;gap:2px;}
.t-hero-facts b{font:900 1.7rem/1 'Archivo',sans-serif;color:var(--amber);letter-spacing:-.02em;}
.t-hero-facts span{font-size:.8rem;line-height:1.3;color:#EBDDEE;}
.t-hero-fig{position:relative;margin:0;justify-self:end;width:100%;max-width:460px;aspect-ratio:4/3;border:2px solid var(--ink);border-radius:16px;overflow:hidden;background:#fff;box-shadow:8px 8px 0 var(--amber),0 30px 60px rgba(0,0,0,.35);transform:perspective(1200px) rotateY(-8deg) rotateX(3deg);transition:transform .8s var(--ease-out,cubic-bezier(.16,1,.3,1));}
.t-hero-fig img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left;}
.t-hero-fig figcaption{position:absolute;left:12px;bottom:10px;padding:5px 10px;border:1.5px solid var(--ink);border-radius:999px;background:rgba(253,251,247,.94);color:var(--ink);font:800 .64rem/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.1em;text-transform:uppercase;}
.t-hero:hover .t-hero-fig{transform:perspective(1200px) rotateY(-3deg) rotateX(1deg);}
@media(max-width:900px){.t-hero-in{grid-template-columns:1fr;gap:24px;}.t-hero-fig{justify-self:start;max-width:420px;transform:none;}.t-hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));}}
.t-aside details{padding:14px 14px 12px;}
.t-aside summary{position:relative;flex-wrap:wrap;gap:8px 10px;}
.t-aside-prog{display:block;flex-basis:100%;height:6px;border-radius:999px;background:#EFE9DD;overflow:hidden;}
.t-aside-prog i{display:block;height:100%;width:6%;border-radius:999px;background:linear-gradient(90deg,var(--coral),var(--amber));transition:width .6s var(--ease-out,ease);}
.t-aside-hint{margin:6px 0 2px;font:800 .66rem/1.4 var(--font-mono,ui-monospace,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.t-aside ol{counter-reset:t-toc;padding-left:0;list-style:none;}
.t-aside li{counter-increment:t-toc;}
.t-aside li a{position:relative;padding-left:34px;}
.t-aside li a::before{content:counter(t-toc,decimal-leading-zero);position:absolute;left:8px;top:50%;transform:translateY(-50%);font:800 .64rem/1 var(--font-mono,ui-monospace,monospace);color:var(--ink-soft);}
.t-aside li a.is-current::before{color:var(--amber);}
.t-chapter{position:relative;border-top-width:2px;padding:28px 30px 28px;}
.t-chapter::before{content:'';position:absolute;left:-2px;top:-2px;width:72px;height:6px;border-radius:0 0 6px 0;background:var(--amber);}
.t-chapter-n{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;padding:4px 10px 4px 4px;border:1.5px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);}
.t-chapter h2{display:block;}
.t-chapter-n::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--coral);}
.t-chapter h2{position:relative;padding-bottom:6px;background:linear-gradient(var(--amber),var(--amber)) left bottom/48px 5px no-repeat;}
.t-steps li{box-shadow:3px 3px 0 rgba(26,26,30,.1);transition:transform .2s var(--ease-out,ease),box-shadow .2s;}
.t-steps li:hover{transform:translateX(3px);box-shadow:5px 5px 0 var(--amber);}
.t-example{position:relative;padding-left:22px;border:2px solid var(--ink);border-left:8px solid var(--amber);background:#FFF8E8;box-shadow:4px 4px 0 rgba(26,26,30,.12);}
.t-figure{box-shadow:6px 6px 0 rgba(26,26,30,.14);}
.t-figure-bar{background:linear-gradient(90deg,var(--ink),#2b1b4d);}
.t-mode-fields>div{box-shadow:3px 3px 0 rgba(26,26,30,.1);}
.t-pitfall{box-shadow:3px 3px 0 rgba(26,26,30,.1);}
.t-pitfall summary::before{content:'!';display:inline-grid;place-items:center;width:22px;height:22px;margin-right:10px;border-radius:50%;background:var(--coral);color:#fff;font:900 .8rem/1 'Archivo',sans-serif;}
.t-back{display:inline-flex;align-items:center;gap:6px;}
@media(prefers-reduced-motion:reduce){.t-hero-fig,.t-aside-prog i,.t-steps li{transition:none;}.t-hero-fig,.t-hero:hover .t-hero-fig{transform:none;}.t-steps li:hover{transform:none;}}
.t-aside-now{display:none;}
@media(max-width:900px){
 .t-aside{position:sticky;top:calc(var(--lk-head-h,62px) + 6px);z-index:29;}
 .t-aside details{padding:8px 12px 10px;}
 .t-aside summary{min-height:40px;font-size:.98rem;}
 .t-aside-now{display:inline-block;margin-left:auto;font:800 .66rem/1.3 var(--font-mono,ui-monospace,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;}
 .t-aside-hint{display:none;}
 .t-aside details[open] nav{max-height:min(60vh,440px);overflow:auto;overscroll-behavior:contain;}
}
@media(max-height:520px){.t-aside{position:static;}}
