:root{
  --cream:#F8F6F2;
  --ink:#2E2E2E;
  --taupe:#CFC6BB;
  --yellow:#FFEA7E;
  --blue:#2E40C0;
  --burgundy:#720023;
  --white:#fff;
  --shadow:0 24px 80px rgba(46,46,46,.12);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;}
button{font:inherit;cursor:pointer;border:0}
.welcome{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:radial-gradient(circle at 80% 20%, rgba(255,234,126,.45), transparent 30%), linear-gradient(135deg,var(--cream),#fff);z-index:20;padding:32px;text-align:center}
.welcome.active{display:flex}.welcome__inner{max-width:760px;animation:fadeUp .8s ease both}.eyebrow{letter-spacing:.22em;font-size:13px}.welcome h1{font-family:Georgia,serif;font-size:clamp(48px,8vw,104px);line-height:.92;margin:20px 0;color:var(--burgundy)}.lead{font-size:clamp(16px,2vw,22px);line-height:1.5;color:#5d5d5d}.primary{margin-top:24px;background:var(--ink);color:white;border-radius:999px;padding:16px 28px;box-shadow:var(--shadow)}
.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid rgba(46,46,46,.08);position:sticky;top:0;background:rgba(248,246,242,.86);backdrop-filter:blur(18px);z-index:10}.brand{letter-spacing:.18em;font-weight:700;font-size:13px}.ghost{background:white;border:1px solid rgba(46,46,46,.12);border-radius:999px;padding:10px 14px;color:var(--ink)}
.reader{display:grid;grid-template-columns:280px minmax(0,1fr) 150px;gap:24px;padding:24px 24px 110px;min-height:calc(100vh - 64px)}.toc,.tools{background:rgba(255,255,255,.72);border:1px solid rgba(46,46,46,.08);border-radius:28px;padding:20px;height:calc(100vh - 112px);position:sticky;top:88px;overflow:auto;box-shadow:0 10px 40px rgba(46,46,46,.06)}.toc h2{margin:0 0 4px;font-family:Georgia,serif;color:var(--burgundy)}.toc p{margin:0 0 18px;color:#6b6b6b;font-size:14px}.chapter{width:100%;display:block;text-align:left;background:transparent;border-radius:18px;padding:12px 14px;margin:4px 0;color:#444}.chapter:hover,.chapter.active{background:var(--yellow);color:var(--ink)}.toc__tools{display:grid;gap:10px;margin-top:22px}.toc__tools button,.importLabel{display:block;text-align:center;background:#fff;border:1px solid rgba(46,46,46,.1);border-radius:16px;padding:11px;font-size:14px}.danger{color:var(--burgundy)!important}
.stage{min-width:0}.pageShell{position:relative;margin:0 auto;max-width:min(86vh * .707, 760px);background:white;border-radius:30px;box-shadow:var(--shadow);overflow:hidden;touch-action:none}.pageImage{width:100%;display:block;user-select:none;pointer-events:none}.overlayLayer,.drawLayer{position:absolute;inset:0;width:100%;height:100%}.overlayLayer{z-index:2}.drawLayer{z-index:3;pointer-events:none}.navBar{max-width:760px;margin:16px auto 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.navBar button,.tool{background:white;border:1px solid rgba(46,46,46,.1);padding:12px 16px;border-radius:999px}.pageInfo{font-weight:600;color:#606060}.tools h3{margin-top:0;font-family:Georgia,serif;color:var(--burgundy)}.tool{width:100%;margin:6px 0;text-align:left}.tool.active{background:var(--yellow)}.hint{font-size:13px;color:#6b6b6b;line-height:1.5}.mobileActions{display:none}
.overlayText,.overlayLetter,.overlayNumber{position:absolute;min-width:44px;min-height:38px;border:1px dashed rgba(114,0,35,.35);background:rgba(255,255,255,.72);border-radius:12px;padding:8px;resize:both;overflow:auto;font-size:18px;line-height:1.3;color:var(--burgundy);outline:none}.overlayLetter,.overlayNumber{width:42px;height:42px;display:grid;place-items:center;resize:none;text-align:center;font-weight:700;font-size:24px;padding:0;text-transform:uppercase}
.overlayCheckbox{position:absolute;width:28px;height:28px;border:2px solid var(--burgundy);border-radius:8px;background:rgba(255,255,255,.72);display:grid;place-items:center;color:var(--burgundy);font-weight:900}.overlayCheckbox.checked{background:var(--yellow)}.overlayCheckbox.checked:after{content:'✓'}.selected{box-shadow:0 0 0 3px rgba(255,234,126,.8)}
.overlayPhoto{position:absolute;width:28%;height:18%;border:2px dashed rgba(46,46,46,.25);border-radius:16px;background:rgba(255,255,255,.55);overflow:hidden;resize:both}
.overlayPhoto img{width:100%;height:100%;object-fit:cover;display:block;user-select:none;pointer-events:none}
.overlayPhoto:empty:after{content:'📷 Ajouter';position:absolute;inset:0;display:grid;place-items:center;color:#6b6b6b;font-weight:700}
.floatingToolbar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:25;background:rgba(255,255,255,.82);border:1px solid rgba(46,46,46,.1);border-radius:999px;padding:8px;display:flex;gap:6px;box-shadow:0 18px 60px rgba(46,46,46,.16);backdrop-filter:blur(20px);max-width:calc(100vw - 24px);overflow-x:auto}
.toolbarBtn{width:42px;height:42px;border-radius:999px;background:transparent;color:var(--ink);display:grid;place-items:center;font-weight:800;flex:0 0 auto}
.toolbarBtn:hover,.toolbarBtn.active{background:var(--yellow)}
.toolbarBtn#undoBtn,.toolbarBtn#redoBtn{background:rgba(248,246,242,.9)}
.notePanel{display:none;position:fixed;inset:0;background:rgba(46,46,46,.18);z-index:30;align-items:center;justify-content:center;padding:24px}.notePanel.active{display:flex}.notePanel__content{background:white;border-radius:30px;max-width:720px;width:100%;padding:24px;box-shadow:var(--shadow);position:relative}.close{position:absolute;right:18px;top:14px;background:transparent;font-size:32px}.notePanel textarea{width:100%;min-height:320px;border:1px solid rgba(46,46,46,.12);border-radius:20px;padding:16px;font:inherit;resize:vertical}.notePanel h3{font-family:Georgia,serif;color:var(--burgundy)}
.activation{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:radial-gradient(circle at 14% 20%, rgba(255,234,126,.42), transparent 30%),radial-gradient(circle at 86% 80%, rgba(46,64,192,.12), transparent 32%),linear-gradient(135deg,var(--cream),#fff);z-index:40;padding:24px;text-align:center}
.activation.active{display:flex}.activation__card{width:min(760px,100%);background:rgba(255,255,255,.74);border:1px solid rgba(46,46,46,.08);border-radius:36px;padding:clamp(28px,5vw,56px);box-shadow:var(--shadow);backdrop-filter:blur(18px);animation:fadeUp .8s ease both}.activation h1{font-family:Georgia,serif;font-size:clamp(42px,7vw,92px);line-height:.92;margin:18px 0;color:var(--burgundy)}.activation__form{margin:28px auto 0;display:grid;gap:12px;max-width:460px;text-align:left}.activation__form label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#6b6b6b}.activation__form input{width:100%;border:1px solid rgba(46,46,46,.14);border-radius:18px;padding:16px 18px;font:inherit;font-size:18px;text-transform:uppercase;letter-spacing:.08em;background:white;color:var(--ink);outline:none}.activation__form input:focus{border-color:var(--burgundy);box-shadow:0 0 0 4px rgba(255,234,126,.5)}.activation__message{min-height:22px;margin:4px 0 0;text-align:center;font-size:14px;color:var(--burgundy)}.activation__hint{font-size:13px;color:#6b6b6b;margin-top:18px}body.locked .topbar, body.locked .reader{display:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(max-width:1050px){.reader{grid-template-columns:1fr}.toc{position:fixed;z-index:15;top:76px;bottom:92px;height:auto;transform:translateX(-120%);transition:.3s ease;left:16px;right:16px}.toc.open{transform:translateX(0)}.tools{display:none}.mobileActions{display:block;max-width:760px;margin:0 auto 12px}.pageShell{max-width:720px}.topbar .ghost:first-child{display:none}}
@media(max-width:640px){.reader{padding:12px 12px 104px}.topbar{padding:0 12px}.pageShell{border-radius:18px}.navBar{font-size:13px}.navBar button{padding:10px}.overlayText{font-size:15px}.welcome h1{font-size:48px}.toolbarBtn{width:38px;height:38px}.floatingToolbar{bottom:12px}}

.overlayLayer{cursor:crosshair}

.overlayLayer{touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}

.drawLayer{overflow:visible}
