/* livrecoloriage.fr — univers lofi : scènes de vie animées, radio, album, coloriages */
:root{--night:#1c1730;--plum:#2a2246;--dusk:#3d2f62;--amber:#ffb46e;--amber-d:#e48a3c;--rosy:#f4a3b8;--moon:#fff1d6;--txt-n:#efe8ff;--txt-n2:#bfb3dc}
body{background-color:#fbf4ec}
/* header nuit */
.top{background:rgba(28,23,48,.86);border-bottom:1px solid rgba(255,255,255,.08)}
.top .logo{color:#fff}.top .logo span small{color:var(--txt-n2)}
.top .nav a{color:#e9e2fb}
.top .nav a:hover,.top .nav a[aria-current]{background:rgba(255,255,255,.12);box-shadow:none;color:#fff}
.top .menu-btn{background:rgba(255,255,255,.12);color:#fff}
@media (max-width:860px){.top .nav{background:var(--night);border-bottom:1px solid rgba(255,255,255,.08)}}
/* ---------- scène principale ---------- */
.stage-sec{padding:0;background:var(--night)}
.stage{position:relative;overflow:hidden;background:#151126;color:#fff;isolation:isolate}
.stage-view{position:relative;aspect-ratio:16/9;max-height:calc(100vh - 64px);width:100%;overflow:hidden}
@media (min-width:900px){.stage-view{aspect-ratio:auto;height:min(calc(100vh - 64px),56.25vw);min-height:520px}}
.stage-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease;}
.stage-img.on{opacity:1}
@keyframes kb{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.09) translate(-1.2%,-1%)}}
.stage-glow{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle at var(--gx,50%) var(--gy,30%),rgba(255,190,120,.38),rgba(255,170,110,.12) 18%,transparent 38%);animation:flick 6s ease-in-out infinite;transition:background 1.2s}
@keyframes flick{0%,100%{opacity:.75}40%{opacity:1}55%{opacity:.82}70%{opacity:.96}}
.stage-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.stage-grain{position:absolute;inset:-50%;pointer-events:none;opacity:.10;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.stage-vig{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(21,17,38,0) 45%,rgba(21,17,38,.55) 78%,rgba(21,17,38,.92)),radial-gradient(ellipse at center,transparent 55%,rgba(10,8,20,.45))}
.stage-copy{position:relative;padding:22px 16px 10px;background:var(--night)}
.stage-copy h1{color:#fff;font-size:clamp(1.8rem,4.6vw,3.3rem);margin:12px 0 10px;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.stage-copy h1 em{color:var(--amber)}
.stage-copy .lead{color:var(--txt-n);max-width:52ch}
.stage-copy .eyebrow{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
@media (min-width:900px){.stage-copy{position:absolute;left:0;bottom:84px;max-width:640px;padding:0 0 0 max(32px,calc((100vw - 1120px)/2));background:none}}
.live{display:inline-flex;align-items:center;gap:7px}.live i{width:8px;height:8px;border-radius:50%;background:#ff6b6b;box-shadow:0 0 0 0 rgba(255,107,107,.7);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(255,107,107,0)}100%{box-shadow:0 0 0 0 rgba(255,107,107,0)}}
.btn-amber{background:linear-gradient(135deg,#ffc684,#ff9f5a);color:#2d1a08;box-shadow:0 10px 26px -10px rgba(255,150,80,.8)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px)}
.stage-bar{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 16px 18px;background:var(--night);border-top:1px solid rgba(255,255,255,.06)}
@media (min-width:900px){.stage-bar{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(21,17,38,0),rgba(21,17,38,.65));border:0;padding:16px max(32px,calc((100vw - 1120px)/2)) 20px}}
.pl-btn{width:52px;height:52px;flex:none;border-radius:50%;border:0;cursor:pointer;background:var(--amber);color:#2d1a08;display:grid;place-items:center;box-shadow:0 8px 24px -8px rgba(255,160,90,.9);transition:transform .15s}
.pl-btn:hover{transform:scale(1.06)}.pl-btn svg{width:22px;height:22px}
.pl-btn .i-pause,[data-playing] .pl-btn .i-play{display:none}[data-playing] .pl-btn .i-pause{display:block}
.pl-meta{display:flex;flex-direction:column;line-height:1.25;min-width:0;flex:1 1 180px}
.pl-meta b{font-size:.98rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-meta small{color:var(--txt-n2);font-size:.8rem}
.eq{display:inline-flex;gap:3px;align-items:flex-end;height:18px;margin-left:2px}
.eq i{width:3px;height:30%;background:var(--amber);border-radius:2px}
[data-playing] .eq i{animation:eq 1s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:-.4s}.eq i:nth-child(3){animation-delay:-.7s}.eq i:nth-child(4){animation-delay:-.2s}
@keyframes eq{0%,100%{height:25%}50%{height:100%}}
.ic-btn{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:grid;place-items:center;flex:none}
.ic-btn:hover{background:rgba(255,255,255,.18)}.ic-btn svg{width:18px;height:18px}
.sc-nav{display:flex;align-items:center;gap:8px;margin-left:auto}
.sc-nav span{font-size:.85rem;color:var(--txt-n2);min-width:13ch;text-align:center}
.sc-nav span b{display:block;color:#fff;font-size:.9rem;max-width:22ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vol{width:90px;accent-color:var(--amber)}
@media (max-width:600px){.vol{display:none}.sc-nav{margin-left:0;width:100%;justify-content:space-between}}
/* ---------- sections nuit ---------- */
.night{background:radial-gradient(circle at 12% 0%,rgba(244,163,184,.16),transparent 40%),radial-gradient(circle at 90% 30%,rgba(255,180,110,.13),transparent 40%),linear-gradient(180deg,var(--night),var(--plum));color:var(--txt-n)}
.night h2{color:#fff}.night h2 em{color:var(--amber)}.night .lead{color:var(--txt-n2)}
.night .eyebrow{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}
.album{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.scard{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.scard:hover{transform:translateY(-4px);box-shadow:0 24px 40px -22px rgba(0,0,0,.8)}
.scard .ph{position:relative;aspect-ratio:16/9;overflow:hidden;cursor:pointer;border:0;padding:0;background:#151126;display:block;width:100%}
.scard .ph img{width:100%;height:100%;object-fit:cover;transition:transform 6s ease}
.scard:hover .ph img{transform:scale(1.08)}
.scard .ph .n{position:absolute;left:12px;top:12px;background:rgba(21,17,38,.72);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:999px}
.scard .ph .pl{position:absolute;right:12px;bottom:12px;width:40px;height:40px;border-radius:50%;background:var(--amber);color:#2d1a08;display:grid;place-items:center;opacity:.92}
.scard .ph .pl svg{width:16px;height:16px}
.scard .tx{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.scard h3{color:#fff;font-size:1.15rem;margin:0}
.scard p{margin:0;font-size:.9rem;color:var(--txt-n2);flex:1}
.scard .acts{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;padding:8px 12px;border-radius:999px;text-decoration:none;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);cursor:pointer;font-family:var(--sans)}
.chip:hover{background:rgba(255,255,255,.2)}
.chip.amb{background:var(--amber);color:#2d1a08;border-color:transparent}
/* ---------- coloriages gratuits ---------- */
.agetabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.agetabs a,.agetabs button{font:700 .95rem var(--sans);padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;cursor:pointer}
.agetabs [aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.night .agetabs button{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.18)}
.night .agetabs [aria-selected=true]{background:var(--amber);color:#2d1a08;border-color:transparent}
.cgrid{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){.cgrid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.cgrid{grid-template-columns:repeat(6,1fr)}}
.cg-lg{grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){.cg-lg{grid-template-columns:repeat(3,1fr)}}
.ccard{background:#fff;border-radius:18px;padding:10px;border:1px solid var(--line);box-shadow:var(--shadow-s);display:flex;flex-direction:column;gap:8px;color:var(--ink);transition:transform .2s}
.ccard:hover{transform:translateY(-3px) rotate(-.5deg)}
.ccard a.th{display:block;border-radius:12px;overflow:hidden;background:#fff;aspect-ratio:3/4;border:1px solid #f0e8de}
.ccard a.th img{width:100%;height:100%;object-fit:contain}
.ccard b{font-size:.92rem;line-height:1.3}
.ccard small{color:var(--ink2);font-size:.78rem}
.ccard .dl{display:inline-flex;justify-content:center;align-items:center;gap:6px;font-weight:700;font-size:.85rem;padding:9px 10px;border-radius:999px;background:var(--ink);color:#fff;text-decoration:none;margin-top:auto}
.ccard .dl svg{width:15px;height:15px}
.agesec{scroll-margin-top:80px;padding:34px 0}
.agesec .head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px}
.agesec h2{margin:0}
.count{display:inline-block;background:var(--amber);color:#2d1a08;font-weight:700;border-radius:999px;padding:4px 12px;font-size:.85rem;margin-left:8px;vertical-align:middle;font-family:var(--sans)}
/* mini radio flottante */
.radio{position:fixed;left:14px;bottom:14px;z-index:60;display:flex;align-items:center;gap:10px;background:rgba(28,23,48,.92);color:#fff;border-radius:999px;padding:6px 14px 6px 6px;box-shadow:0 14px 34px -12px rgba(0,0,0,.6);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);max-width:calc(100vw - 28px)}
.radio .pl-btn{width:40px;height:40px}.radio .pl-btn svg{width:17px;height:17px}
.radio .pl-meta{flex:0 1 auto}.radio .pl-meta b{font-size:.85rem;max-width:22ch}.radio .pl-meta small{font-size:.72rem}
.radio .ic-btn{width:32px;height:32px}.radio .ic-btn svg{width:14px;height:14px}
.radio.min .pl-meta,.radio.min .ic-btn{display:none}.radio.min{padding:6px}
.has-stage .radio{transform:translateY(140%);opacity:0;transition:.35s}.has-stage.stage-off .radio{transform:none;opacity:1}
.credit{font-size:.8rem;color:#c8bde0}
@media (prefers-reduced-motion:reduce){.stage-img,.stage-glow,.stage-grain,.eq i,.live i{animation:none!important}}
.legacy{margin-top:30px}
.legacy .colors{grid-template-columns:repeat(2,1fr)}@media (min-width:860px){.legacy .colors{grid-template-columns:repeat(4,1fr)}}
/* retouches */
@media (min-width:900px){.stage-vig{background:linear-gradient(90deg,rgba(21,17,38,.78) 0%,rgba(21,17,38,.45) 32%,rgba(21,17,38,0) 55%),linear-gradient(180deg,rgba(21,17,38,0) 55%,rgba(21,17,38,.5) 80%,rgba(21,17,38,.9)),radial-gradient(ellipse at center,transparent 55%,rgba(10,8,20,.4))}
.stage-copy{max-width:600px}.stage-copy h1{font-size:clamp(2rem,3.4vw,3rem)}}
@media (min-width:1100px){.album{grid-template-columns:repeat(4,1fr)}.album .scard:first-child{grid-column:span 2;grid-row:span 2}.album .scard:first-child h3{font-size:1.5rem}.album .scard:first-child p{font-size:1rem}}
@media (max-width:700px){.radio:not(.max) .pl-meta,.radio:not(.max) .ic-btn{display:none}.radio:not(.max){padding:5px}.radio{left:10px;bottom:10px}}
.album .scard:first-child .ph{aspect-ratio:auto;flex:1;min-height:320px}
@media (min-width:1100px){.album .scard:first-child .tx{flex:0 0 auto}.album .scard:first-child .ph img{position:absolute;inset:0}}

/* v4 : scène unique animée en continu (canvas) — pas de diaporama */
.stage-glow{display:none}
