:root{--background:oklch(1 0 0);--foreground:oklch(0.145 0 0);--card:oklch(1 0 0);--card-foreground:oklch(0.145 0 0);--muted:oklch(0.97 0 0);--muted-foreground:oklch(0.556 0 0);--border:oklch(0.922 0 0);--input:oklch(0.922 0 0);--ring:oklch(0.708 0 0);--radius:0.625rem;--oif-gris:#2e292d;--oif-jaune:#fdcd00;--oif-vert:#7eb301;--oif-violet:#5d0073;--oif-rouge:#e40001;--oif-cyan:#0198e9;--oif-gris-clair:#dfdcd8;--bleu:#0e4f88;--dore:#f5a623}*{box-sizing:border-box;border-color:var(--border)}html{color-scheme:light}body{margin:0;background:var(--background);color:var(--foreground);font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}.wrap{max-width:1040px;margin:0 auto;padding:0 20px}.hero{background:linear-gradient(135deg,#0b3a66 0,var(--bleu) 55%,#1667ac 100%);color:#fff}.hero .wrap{padding-block:40px 44px}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--oif-jaune);margin:0 0 10px}.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--oif-jaune)}.hero h1{margin:0 0 8px;font-size:clamp(26px,4vw,38px);font-weight:700;letter-spacing:-.01em}.hero p{margin:0;max-width:62ch;color:#d7e6f5;font-size:15px}main .wrap{padding-block:32px 56px}.section-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin:0 0 16px}.section-title:before{content:"";width:26px;height:3px;border-radius:3px;background:var(--dore)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}.card{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:18px 18px 16px;box-shadow:0 1px 2px rgba(14,79,136,.04),0 10px 30px -22px rgba(14,79,136,.35);transition:box-shadow .15s ease,transform .15s ease}a.card:hover{box-shadow:0 2px 4px rgba(14,79,136,.06),0 16px 36px -20px rgba(14,79,136,.45);transform:translateY(-1px)}.card h3{margin:0;font-size:16px;font-weight:700;color:var(--bleu)}.card .sub{margin:0;font-size:13px;color:var(--muted-foreground)}.card .row{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.card .date{font-size:12px;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px}.badge.pub{background:color-mix(in srgb,var(--oif-vert) 16%,#fff);color:#3c6a00}.badge.priv{background:color-mix(in srgb,var(--oif-gris) 10%,#fff);color:var(--oif-gris)}.note{margin-top:22px;font-size:13px;color:var(--muted-foreground);background:var(--muted);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.login-screen{min-height:100svh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 50% -10%,color-mix(in srgb,var(--bleu) 10%,#fff),var(--background))}.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 6px);padding:28px 26px;box-shadow:0 24px 60px -30px rgba(14,79,136,.5)}.login-card .lock{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--bleu) 14%,#fff);color:var(--bleu);font-size:22px;margin-bottom:14px}.login-card h1{margin:0 0 4px;font-size:19px;color:var(--bleu)}.login-card .who{margin:0 0 18px;font-size:13px;color:var(--muted-foreground)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;font-weight:600}.field label,.input{color:var(--foreground)}.input{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--input);border-radius:var(--radius);background:var(--background)}.input:focus{outline:2px solid color-mix(in srgb,var(--bleu) 55%,transparent);outline-offset:1px;border-color:var(--bleu)}.btn{width:100%;font:inherit;font-weight:700;cursor:pointer;background:var(--bleu);color:#fff;border:none;border-radius:var(--radius);padding:11px 16px;transition:filter .15s ease}.btn:hover{filter:brightness(1.07)}.err{color:var(--oif-rouge);margin:0 0 12px}.back,.err{font-size:13px}.back{display:inline-block;margin-top:22px;color:var(--muted-foreground)}.dossier-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 22px}.dossier-meta .client{font-size:13px;color:var(--muted-foreground)}.dossier-meta .date{font-size:12px;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.livrable .ltype{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);margin-bottom:2px}.livrable .lico{font-size:14px}.livrable .open{font-size:12.5px;font-weight:700;color:var(--bleu)}.livrable .lthumb{height:128px;background-size:cover;background-position:50%;border-radius:var(--radius);margin:-2px 0 10px;border:1px solid var(--border)}.realz{margin-top:10px;border-top:1px solid var(--border);background:linear-gradient(180deg,color-mix(in srgb,var(--bleu) 4%,var(--background)) 0,var(--background) 320px)}.realz .wrap{padding-block:40px 28px}.realz-intro{margin:-6px 0 22px;max-width:72ch;color:var(--muted-foreground);font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:28px}@media (max-width:680px){.stats{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:2px}.stat-v{font-size:22px;font-weight:800;color:var(--bleu);letter-spacing:-.01em}.stat-l{font-size:12px;color:var(--muted-foreground)}.carousel{position:relative}.car-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 10px;scrollbar-width:none;-ms-overflow-style:none}.car-track::-webkit-scrollbar{display:none}.car-track .rcard{flex:0 0 300px;scroll-snap-align:start}@media (max-width:600px){.car-track .rcard{flex:0 0 82%}}.rcard-link{text-decoration:none;color:inherit}.car-btn{position:absolute;top:74px;transform:translateY(-50%);z-index:3;width:40px;height:40px;border-radius:50%;background:var(--card);border:1px solid var(--border);box-shadow:0 6px 18px -8px rgba(14,79,136,.4);cursor:pointer;font-size:24px;line-height:1;color:var(--bleu);display:grid;place-items:center}.car-btn:hover{background:color-mix(in srgb,var(--bleu) 8%,#fff)}.car-btn.prev{left:-8px}.car-btn.next{right:-8px}@media (max-width:600px){.car-btn{display:none}}.rcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);overflow:hidden;box-shadow:0 1px 2px rgba(14,79,136,.04),0 12px 32px -24px rgba(14,79,136,.4);transition:box-shadow .15s ease,transform .15s ease}.rcard:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(14,79,136,.06),0 20px 42px -22px rgba(14,79,136,.5)}.rvisual{height:148px;background-size:cover;background-position:top;position:relative}.rvisual-grad{display:grid;place-items:center}.rvisual-grad .rmono{font-size:42px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}.rbody{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}.rcat{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground)}.rcat,.rtitle{font-weight:700}.rtitle{margin:0;font-size:15.5px;color:var(--bleu)}.rexcerpt{margin:0;font-size:12.8px;line-height:1.5;color:var(--muted-foreground)}.rstatus{margin-top:4px;align-self:flex-start;font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px}.rstatus.live{background:color-mix(in srgb,var(--oif-vert) 16%,#fff);color:#3c6a00}.rstatus.dev{background:color-mix(in srgb,var(--dore) 20%,#fff);color:#8a5a00}.marquee{margin-top:30px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--card);overflow:hidden;padding:14px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee-track{white-space:nowrap;animation:marquee 32s linear infinite}.m-item,.marquee-track{display:inline-flex;gap:40px}.m-item{font-size:13px;font-weight:600;color:var(--muted-foreground);align-items:center}.m-item:before{content:"✦";color:var(--dore)}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}.btn-ghost{font:inherit;font-weight:700;cursor:pointer;background:var(--card);color:var(--bleu);border:1px solid var(--border);border-radius:var(--radius);padding:9px 16px}.btn-ghost:hover{background:color-mix(in srgb,var(--bleu) 7%,#fff)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:760px){.admin-grid{grid-template-columns:1fr}}.admin-card{background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:18px;box-shadow:0 8px 24px -18px var(--sh)}.admin-h{margin:0 0 14px;font-size:15px;color:var(--bleu)}.admin-form{gap:10px}.admin-form,.admin-form label{display:flex;flex-direction:column}.admin-form label{gap:5px;font-size:12.5px;font-weight:600;color:var(--foreground)}.admin-form label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}.admin-form .input{font-weight:400}.admin-form .hint{margin:2px 0 0;font-size:11.5px;color:var(--muted-foreground);font-weight:400}.admin-card code,.admin-form .hint code{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;background:color-mix(in srgb,var(--bleu) 12%,transparent);padding:1px 5px;border-radius:5px}.admin-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}.admin-links a{font-size:12px;font-weight:700;color:var(--bleu)}.ltag{font-size:11px;color:var(--muted-foreground);background:var(--muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px}footer.site{border-top:1px solid var(--border)}footer.site .wrap{padding-block:20px;font-size:12.5px;color:var(--muted-foreground);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:space-between}