:root{--gold:#c29d52;--gold2:#9b772e;--ink:#171512;--paper:#fffdf8;--muted:#777}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f4f1ea;color:var(--ink)}a{color:inherit;text-decoration:none}header{height:68px;background:#111;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,5vw);border-bottom:1px solid #3a3020}header b{color:var(--gold);letter-spacing:.18em}nav{display:flex;gap:22px;align-items:center}nav a:hover{color:var(--gold)}.wrap{max-width:1180px;margin:36px auto;padding:0 22px}.card{background:#fff;border:1px solid #e4ded2;border-radius:16px;padding:22px;box-shadow:0 8px 28px #0000000a}.center{min-height:100vh;display:grid;place-items:center;background:#111}.center .card{width:min(92vw,460px)}.install h1,.login h1{color:var(--gold);letter-spacing:.2em}.grid,form{display:grid;gap:14px}input,textarea,button,select{font:inherit;padding:12px 14px;border:1px solid #d8d0c2;border-radius:9px}textarea{min-height:90px}button,.button{background:var(--gold);color:#111;border:0;font-weight:700;cursor:pointer;padding:12px 16px;border-radius:9px;display:inline-block}.error{background:#ffe7e7;color:#8c2020;padding:12px;border-radius:8px;margin:12px 0}.danger{color:#b32828}.stats,.cards,.guardian-grid,.comic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.stats strong{font-size:40px;color:var(--gold2);display:block}.stats span{color:var(--muted)}.thumb{width:100%;height:190px;object-fit:contain}.check{display:inline-block;margin:6px 12px 6px 0}.page-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin:24px 0}.page-admin article{background:#fff;padding:10px;border-radius:12px;display:grid;gap:8px}.page-admin img{width:100%;aspect-ratio:3/4;object-fit:cover}.hero{text-align:center;padding:90px 20px;background:radial-gradient(circle at top,#40351f,#111);color:#fff}.hero small,.character-hero small,.comic small{color:var(--gold);letter-spacing:.18em}.hero h1{font-family:Georgia,serif;font-size:clamp(42px,7vw,78px);margin:12px}.guardian{text-align:center;transition:.2s}.guardian:hover{transform:translateY(-4px);border-color:var(--gold)}.guardian img{width:100%;height:250px;object-fit:contain}.guardian h2{font-family:Georgia,serif}.guardian span{color:var(--gold2);font-weight:bold}.character-hero{max-width:1100px;margin:50px auto;display:grid;grid-template-columns:320px 1fr;gap:50px;align-items:center;padding:0 24px}.character-hero img{width:100%;max-height:420px;object-fit:contain}.character-hero h1{font:56px Georgia,serif;margin:8px 0}.comic{display:flex;gap:20px}.comic img{width:140px;aspect-ratio:3/4;object-fit:cover;border-radius:8px}.reader-body{background:radial-gradient(circle,#29251f,#090909);color:#fff;overflow:hidden}.reader-top{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 20px;background:#0c0c0cee;border-bottom:1px solid #333}.reader-top>div{text-align:center}.reader-top span{color:#aaa;margin-left:10px}.reader-top button{justify-self:end;background:transparent;color:#fff;font-size:22px;padding:8px}.book-stage{height:calc(100vh - 100px);display:flex;align-items:center;justify-content:center;perspective:2200px;position:relative}.book{position:relative;width:min(74vh,620px);aspect-ratio:3/4;transform-style:preserve-3d;filter:drop-shadow(0 30px 35px #000)}.sheet{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.7,.15,1);cursor:pointer}.sheet.flipped{transform:rotateY(-180deg)}.page{position:absolute;inset:0;backface-visibility:hidden;background:var(--paper);border-radius:4px 12px 12px 4px;overflow:hidden;box-shadow:inset 12px 0 18px #00000018}.page img{width:100%;height:100%;object-fit:contain;background:#fff}.back{transform:rotateY(180deg);background:linear-gradient(90deg,#e8e3d8,#fffdf8)}.nav{position:absolute;z-index:999;background:#ffffff14;color:#fff;border:1px solid #ffffff33;border-radius:50%;width:52px;height:52px;font-size:40px;line-height:20px;padding:0}.nav.prev{left:4vw}.nav.next{right:4vw}.nav:disabled{opacity:.2}.reader-help{text-align:center;height:36px;color:#999;font-size:13px}@media(max-width:700px){header{height:auto;padding:18px;gap:12px;align-items:flex-start}nav{gap:12px;flex-wrap:wrap}.character-hero{grid-template-columns:1fr;text-align:center}.character-hero img{height:280px}.character-hero h1{font-size:42px}.comic{display:block}.comic img{width:100%;max-height:350px;object-fit:contain}.reader-top{grid-template-columns:auto 1fr auto;font-size:12px}.book-stage{height:calc(100vh - 105px)}.book{width:min(88vw,68vh)}.nav{width:42px;height:42px;font-size:30px;background:#0008}.nav.prev{left:5px}.nav.next{right:5px}.reader-help{display:none}}

.muted{color:var(--muted)}.admin-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.admin-title h1{margin:.2em 0}.admin-title small{color:var(--gold2);letter-spacing:.14em}.board-create{grid-template-columns:1fr 1fr auto;align-items:end}.board-list{display:grid;gap:12px;margin-top:20px}.board-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.board-row span{display:block;color:#777;margin-top:5px}.actions{display:flex;gap:12px;align-items:center}.empty,.notice{padding:24px;border:1px dashed #cdbd9c;border-radius:14px;margin:22px 0;background:#fffaf0}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px;margin-top:22px}.media-grid article{background:#fff;padding:10px;border-radius:12px;display:grid;gap:8px}.media-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.wide{max-width:1500px}.composer-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.board-preview,.comic-board{background:#fff;aspect-ratio:3/4;display:grid;gap:1.7%;padding:1.7%;overflow:hidden;box-shadow:0 18px 50px #0002}.panel-slot,.comic-panel{position:relative;overflow:hidden;background:#eee;min-width:0;min-height:0}.panel-slot img,.comic-panel img{width:100%;height:100%;object-fit:cover;object-position:var(--x,50%) var(--y,50%);transform:scale(var(--zoom,1));transform-origin:var(--x,50%) var(--y,50%);display:block}.slot-empty{position:absolute;inset:0;display:grid;place-items:center;color:#aaa;font-weight:bold;letter-spacing:.08em}.panel-controls{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}.panel-controls details{border-top:1px solid #eee;padding:12px 0}.panel-controls summary{cursor:pointer;font-weight:700}.panel-controls label{display:grid;gap:5px;margin:10px 0;font-size:13px}.panel-controls input[type=range]{padding:0}.sticky-save{position:sticky;bottom:0;width:100%}.saved{background:#e5f7e9;color:#24733a;padding:9px 13px;border-radius:20px}.tpl-full{grid-template-columns:1fr;grid-template-rows:1fr}.tpl-classic4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.tpl-classic5{grid-template-columns:1fr 1fr;grid-template-rows:1.1fr .9fr 1fr}.tpl-classic5>*:nth-child(1){grid-column:1/3}.tpl-classic6{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,1fr)}.tpl-hero_top{grid-template-columns:1fr 1fr;grid-template-rows:1.25fr .85fr .85fr}.tpl-hero_top>*:nth-child(1){grid-column:1/3}.tpl-hero_bottom{grid-template-columns:1fr 1fr;grid-template-rows:.85fr .85fr 1.25fr}.tpl-hero_bottom>*:nth-child(5){grid-column:1/3}.tpl-cinema5{grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr 1fr}.tpl-cinema5>*:nth-child(1){grid-row:1/3}.tpl-cinema5>*:nth-child(4){grid-column:1/3}.tpl-vertical5{grid-template-columns:.8fr 1.2fr;grid-template-rows:1fr 1fr 1fr}.tpl-vertical5>*:nth-child(2){grid-row:1/3;grid-column:2}.tpl-vertical5>*:nth-child(5){grid-column:1/3}.page .comic-board{width:100%;height:100%;box-shadow:none}.legacy-page{width:100%;height:100%;object-fit:contain;background:#fff}
@media(max-width:850px){.composer-layout{grid-template-columns:1fr}.panel-controls{position:static;max-height:none}.board-create{grid-template-columns:1fr}.board-row{align-items:flex-start;flex-direction:column}.actions{flex-wrap:wrap}.admin-title{align-items:flex-start;flex-direction:column}}
/* VISUARIA 1.2.1 — éditeur visuel */
.preview-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 12px}.preview-head strong{font-size:18px}.preview-head span{font-size:13px;color:var(--muted)}
.board-preview{width:min(100%,760px);margin:0 auto;border:1px solid #d9d1c2;border-radius:4px;box-shadow:0 18px 50px #0002;background:#fff;min-height:620px}
.panel-slot{border:2px solid transparent;cursor:pointer;transition:border-color .15s,box-shadow .15s;background:#eee9df}
.panel-slot:hover{border-color:#d9bd80}.panel-slot.is-selected{border-color:var(--gold);box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--gold)}
.slot-empty{z-index:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#8d8578;background:repeating-linear-gradient(45deg,#f4f1ea,#f4f1ea 10px,#eee9df 10px,#eee9df 20px)}
.slot-empty b{font-size:14px;letter-spacing:.12em}.slot-empty span{font-size:11px;font-weight:400;letter-spacing:0}.panel-slot img{position:relative;z-index:1}.panel-slot.has-image .slot-empty{display:none}
.panel-controls details[open]{background:#fffaf0;margin:0 -10px;padding:12px 10px;border-radius:9px}.panel-controls summary{list-style-position:inside}
@media(max-width:850px){.board-preview{min-height:0}.preview-head{align-items:flex-start;flex-direction:column;gap:4px}}
/* VISUARIA 1.2.2 — lecteur BD grand format */
.reader-body{--reader-zoom:1;overflow:hidden}.reader-top{position:relative;z-index:1200}.reader-tools{justify-self:end;display:flex;align-items:center;gap:6px}.reader-tools button{justify-self:auto;font-size:14px;min-width:38px;height:38px;padding:6px 10px;border:1px solid #ffffff24}.reader-tools #modeToggle{font-size:11px;letter-spacing:.06em;min-width:76px}.reader-tools #zoomLabel{font-size:11px;color:#aaa;min-width:42px;text-align:center}.reader-title{text-align:center}.book-stage{overflow:auto;overscroll-behavior:contain;align-items:flex-start;padding:24px 90px 70px;scrollbar-color:#555 #111}.read-mode .book-stage{justify-content:center}.read-mode .book{width:calc(min(88vw,900px) * var(--reader-zoom));min-width:calc(520px * var(--reader-zoom));height:auto;aspect-ratio:3/4;flex:0 0 auto;filter:drop-shadow(0 30px 35px #000)}.fit-mode .book-stage{align-items:center;padding:14px 90px}.fit-mode .book{width:calc(min(74vh,620px) * var(--reader-zoom));min-width:0;aspect-ratio:3/4;flex:0 0 auto}.reader-body .nav{position:fixed;top:50%;transform:translateY(-50%)}.reader-body .nav.prev{left:3vw}.reader-body .nav.next{right:3vw}.reader-help{position:fixed;left:0;right:0;bottom:0;background:#0c0c0ee8;z-index:1100;padding:9px;height:34px}.read-mode .sheet{cursor:default}.fit-mode .sheet{cursor:pointer}
@media(max-width:900px){.reader-top{grid-template-columns:auto 1fr auto;padding:0 10px}.reader-title b{display:block;max-width:34vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-tools{gap:2px}.reader-tools #zoomLabel{display:none}.reader-tools button{min-width:34px;padding:5px}.reader-tools #modeToggle{min-width:64px}.book-stage,.fit-mode .book-stage{padding-left:48px;padding-right:48px}.read-mode .book{width:calc(94vw * var(--reader-zoom));min-width:0}.reader-body .nav.prev{left:4px}.reader-body .nav.next{right:4px}}
@media(max-width:560px){.reader-top{height:58px}.reader-title{display:none}.reader-tools #zoomOut,.reader-tools #zoomIn{display:none}.read-mode .book{width:calc(96vw * var(--reader-zoom))}.book-stage{height:calc(100vh - 58px);padding:12px 8px 50px}.reader-body .nav{display:none}.reader-help{font-size:11px}}
\n/* VISUARIA 1.2.3 — zoom réel piloté par JavaScript */\n.reader-body .book{max-width:none!important;flex:0 0 auto!important}\n.reader-body .book-stage{justify-content:flex-start}\n.reader-body .book{margin-left:auto;margin-right:auto}\n.reader-tools #zoomLabel{user-select:none}\n