:root{
  --bg:#070610;--bg2:#0c0916;--panel:rgba(24,19,40,.88);--panel2:#171126;--text:#f7f2ff;--muted:#a99ebd;--line:rgba(190,151,255,.15);--accent:#a968ff;--accent2:#7347ff;--accent-soft:#d5b8ff;--danger:#ff718f;--ok:#69ddb0;--warning:#f6c85f;--shadow:0 24px 70px rgba(0,0,0,.38);--reader-font-size:18px;--motion-speed:.7s
}
html[data-theme="ember"]{--bg:#100708;--bg2:#170b0d;--panel:rgba(45,20,24,.88);--panel2:#251216;--accent:#ff6f7e;--accent2:#b72a4c;--accent-soft:#ffc2c8;--line:rgba(255,132,145,.16)}
html[data-theme="moonlit"]{--bg:#050913;--bg2:#07101f;--panel:rgba(14,29,49,.9);--panel2:#0e1b2e;--accent:#69adff;--accent2:#3d6ef0;--accent-soft:#b9d9ff;--line:rgba(112,176,255,.16)}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}body{padding:env(safe-area-inset-top) 0 calc(env(safe-area-inset-bottom) + 8px);overflow-x:hidden}button,input,select{font:inherit}button{color:inherit}.ambient{position:fixed;inset:-20vh -15vw auto;width:80vw;height:75vh;background:radial-gradient(circle,rgba(138,76,255,.17),transparent 62%);filter:blur(18px);pointer-events:none;z-index:0}.app-shell{position:relative;z-index:1;max-width:1500px;margin:0 auto;min-height:100vh;padding:14px 22px 128px}.topbar{height:76px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;background:linear-gradient(180deg,rgba(7,6,16,.97),rgba(7,6,16,.84));backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:10px;background:none;border:0;padding:0;cursor:pointer;text-align:left}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(205,174,255,.25);border-radius:8px;background:radial-gradient(circle at 50% 15%,#6f38ba,#150b26 70%);font:700 22px Georgia,serif;color:#e7d7ff;box-shadow:0 0 30px rgba(161,91,255,.24)}.brand b,.brand small{display:block;font-family:Georgia,serif;letter-spacing:.06em}.brand b{font-size:16px}.brand small{font-size:13px;color:var(--accent-soft);margin-top:1px}.desktop-nav{display:flex;justify-content:center;gap:4px}.desktop-nav button{background:transparent;border:1px solid transparent;color:#a79db7;padding:10px 14px;border-radius:14px;cursor:pointer}.desktop-nav button:hover,.desktop-nav button.active{color:var(--text);border-color:rgba(176,111,255,.38);background:rgba(118,63,177,.14);box-shadow:inset 0 0 20px rgba(137,77,220,.08)}.top-actions{display:flex;align-items:center;gap:8px}.engine-badge{font-size:11px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:rgba(9,7,17,.75)}
.view{display:none;padding-top:20px}.view.active{display:block}.panel{background:linear-gradient(160deg,rgba(29,23,49,.94),rgba(14,12,26,.92));border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow)}.eyebrow{font-size:11px;letter-spacing:.23em;color:var(--accent);font-weight:800;text-transform:uppercase}.primary,.secondary,.ghost,.back,.compact{border:0;border-radius:13px;padding:11px 16px;cursor:pointer;transition:transform .18s ease,filter .18s ease,border-color .18s ease,background .18s ease}.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:white;font-weight:800;box-shadow:0 10px 30px rgba(111,62,215,.24)}.secondary{background:rgba(120,79,180,.14);color:var(--text);border:1px solid rgba(178,131,247,.22)}.ghost,.back{background:rgba(10,8,18,.72);color:var(--muted);border:1px solid var(--line)}.compact{padding:8px 11px;font-size:12px}.primary:hover,.secondary:hover,.ghost:hover,.back:hover{transform:translateY(-1px);filter:brightness(1.08)}button:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button-row.end{justify-content:flex-end}
.install-banner{margin:12px 0 0;padding:12px 14px;border:1px solid rgba(161,100,255,.28);background:linear-gradient(90deg,rgba(91,50,157,.19),rgba(21,15,36,.92));border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.install-banner[hidden]{display:none}.install-banner div:first-child{display:grid;gap:2px}.install-banner span{font-size:12px;color:var(--muted)}
.hero-premium{min-height:360px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);align-items:center;overflow:hidden;position:relative;background:radial-gradient(circle at 75% 45%,rgba(143,72,240,.18),transparent 35%),linear-gradient(145deg,rgba(31,24,51,.96),rgba(12,10,22,.97))}.hero-premium:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 49%,rgba(255,255,255,.018) 50%,transparent 51%);background-size:22px 22px;mask-image:linear-gradient(90deg,transparent,#000)}.hero-copy{position:relative;z-index:2;max-width:760px}.hero-copy h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(44px,7vw,88px);line-height:.93;margin:12px 0 18px;letter-spacing:-.035em}.hero-copy h1 span{background:linear-gradient(120deg,#fff,var(--accent-soft),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-copy p{max-width:680px;color:var(--muted);font-size:15px;line-height:1.7;margin-bottom:24px}.hero-orb{width:min(360px,80%);aspect-ratio:1;border-radius:50%;justify-self:center;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 48% 38%,rgba(213,184,255,.35),rgba(129,68,211,.12) 28%,rgba(14,9,25,.2) 60%);box-shadow:0 0 100px rgba(130,66,220,.2),inset 0 0 60px rgba(196,152,255,.08)}.hero-orb:before,.hero-orb:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(208,172,255,.22)}.hero-orb:before{inset:9%;transform:rotate(25deg);clip-path:polygon(0 0,100% 0,78% 54%,100% 100%,0 100%,22% 48%)}.hero-orb:after{inset:23%;border-style:dashed;animation:spin 24s linear infinite}.hero-orb span{font:700 clamp(70px,10vw,145px) Georgia,serif;color:rgba(221,199,255,.72);text-shadow:0 0 30px rgba(191,142,255,.33)}@keyframes spin{to{transform:rotate(360deg)}}
.library-section{margin-top:28px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 14px}.section-head h2,.page-header h1,.panel h2{font-family:Georgia,serif;font-weight:500;margin:4px 0 0}.section-head h2{font-size:30px}.page-header{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:14px 4px 22px}.page-header h1{font-size:clamp(38px,6vw,64px)}.page-header p{color:var(--muted);max-width:760px;margin:8px 0 0;line-height:1.65}.filters{display:flex;gap:9px}.filters input,.setting-row input[type=text],.setting-row input:not([type]),.setting-row select{background:rgba(11,8,19,.8);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.filters input{min-width:250px}.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}.poster-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,rgba(23,18,38,.96),rgba(12,10,20,.96));cursor:pointer;box-shadow:0 12px 36px rgba(0,0,0,.24);transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.poster-card:hover{transform:translateY(-6px);border-color:rgba(186,131,255,.4);box-shadow:0 22px 48px rgba(0,0,0,.34),0 0 35px rgba(138,78,220,.08)}.poster-cover{height:310px;background:linear-gradient(160deg,#261646,#0b0b16);background-size:cover;background-position:center;position:relative}.poster-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 34%,rgba(5,4,11,.92) 96%)}.poster-shade{position:absolute;z-index:2;left:15px;right:15px;bottom:15px}.poster-shade h3{font-family:Georgia,serif;font-size:24px;line-height:1.05;margin:8px 0 0}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:9px;text-transform:uppercase;letter-spacing:.08em;border:1px solid rgba(212,181,255,.22);border-radius:999px;padding:4px 7px;color:#d7c3ee;background:rgba(12,8,20,.42);backdrop-filter:blur(8px)}.new-badge{position:absolute;z-index:3;top:11px;right:11px;background:linear-gradient(135deg,#7bedbd,#55b995);color:#07120e;font-size:10px;font-weight:900;border-radius:999px;padding:6px 9px;box-shadow:0 6px 20px rgba(80,220,170,.24)}.fav-btn,.delete-btn{position:absolute;z-index:4;width:36px;height:36px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(5,4,10,.62);backdrop-filter:blur(10px);font-size:18px;display:grid;place-items:center}.fav-btn{top:11px;left:11px}.delete-btn{top:11px;left:54px;font-size:14px}.cover-initials{position:absolute;inset:0;display:grid;place-items:center;font:700 clamp(52px,10vw,110px) Georgia,serif;color:rgba(232,218,255,.22);text-shadow:0 0 28px rgba(169,104,255,.16);pointer-events:none}.poster-meta{display:flex;justify-content:space-between;gap:7px;padding:12px 13px 9px;color:var(--muted);font-size:11px}.poster-progress,.progress-line{height:3px;background:rgba(255,255,255,.06);overflow:hidden}.poster-progress i,.progress-line i{display:block;height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent))}.continue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.continue-card{display:grid;grid-template-columns:108px 1fr;min-height:160px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(135deg,rgba(31,24,48,.96),rgba(13,10,22,.96));cursor:pointer}.continue-cover{background-size:cover;background-position:center;position:relative}.continue-cover .cover-initials{font-size:42px}.continue-body{padding:16px;display:flex;flex-direction:column;align-items:flex-start}.continue-body h3{font-family:Georgia,serif;font-size:22px;margin:5px 0}.continue-body p{font-size:12px;color:var(--muted);margin:0 0 11px}.continue-body .progress-line{width:100%;margin:auto 0 10px;border-radius:999px}.empty{grid-column:1/-1;text-align:center;padding:50px 20px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}.compact-empty{padding:24px 10px}
.back{margin-bottom:12px}.detail-hero{min-height:520px;border-radius:28px;overflow:hidden;background:linear-gradient(160deg,#28184b,#090a13);background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end;box-shadow:var(--shadow)}.detail-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,4,10,.94) 0%,rgba(5,4,10,.73) 45%,rgba(5,4,10,.3)),linear-gradient(180deg,rgba(5,4,10,.15),rgba(5,4,10,.92))}.detail-glow{position:absolute;inset:20% auto auto 40%;width:45%;height:45%;background:radial-gradient(circle,rgba(154,89,255,.17),transparent 70%);z-index:1}.detail-content{position:relative;z-index:2;padding:36px;max-width:820px}.detail-content h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(46px,7vw,90px);line-height:.95;margin:10px 0 14px}.detail-content p{max-width:680px;color:#d2c8df;line-height:1.7}.detail-stats{display:flex;gap:22px;flex-wrap:wrap;margin:20px 0}.detail-stats span{display:grid;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.detail-stats b{color:var(--text);font-size:23px;letter-spacing:0}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin-top:20px}.chapter-list{display:grid;gap:8px}.chapter-item{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:rgba(18,14,29,.8);padding:13px 15px;text-align:left;cursor:pointer}.chapter-item>span{display:flex;align-items:center;gap:14px}.chapter-item>span>b{font:500 24px Georgia,serif;color:var(--accent-soft);opacity:.55}.chapter-item>span>span{display:grid;gap:3px}.chapter-item small{font-size:11px;color:var(--muted)}.chapter-item em{font-style:normal;font-size:11px;color:var(--accent)}.detail-aside{align-self:start;position:sticky;top:100px}.detail-aside p{color:var(--muted)}.detail-aside .notice{margin-top:15px}
body.reader-active{overflow:hidden}.reader-active .topbar,.reader-active .bottom-nav,.reader-active .install-banner{display:none!important}.reader-view{padding:0!important}.reader-view.active{display:block;position:fixed;inset:0;z-index:100;background:#04040a}.reader-shell{height:100dvh;display:grid;grid-template-rows:auto 3px 1fr auto;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#04040a}.reader-top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:4px 0 9px}.reader-icon{width:39px;height:39px;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:rgba(20,15,31,.82);cursor:pointer}.reader-actions{display:flex;gap:6px}.reader-title{display:grid;min-width:0}.reader-title small{font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-title strong{font:500 16px Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-progress-wrap{height:3px;background:rgba(255,255,255,.05);overflow:hidden}.reader-progress{height:100%;width:0;background:linear-gradient(90deg,var(--accent2),var(--accent));transition:width .3s ease}.reader-stage{min-height:0;overflow:hidden;position:relative;background:radial-gradient(circle at 65% 25%,#261446,#070812 62%);background-size:cover;background-position:center;border-radius:0 0 18px 18px;display:flex;align-items:flex-end}.reader-stage:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,3,8,.03),rgba(3,3,8,.15) 40%,rgba(3,3,8,.88) 100%)}.scene-vignette{position:absolute;inset:0;box-shadow:inset 0 0 100px rgba(0,0,0,.3)}.scene-content{position:relative;z-index:2;width:min(1100px,100%);margin:0 auto;padding:clamp(18px,4vw,48px)}.scene-enter .scene-content{animation:sceneIn var(--motion-speed) cubic-bezier(.2,.7,.2,1)}@keyframes sceneIn{from{opacity:0;transform:translateY(18px) scale(.99)}to{opacity:1;transform:none}}.narration-card{max-width:840px;margin:0 auto;background:linear-gradient(135deg,rgba(9,7,15,.78),rgba(16,12,25,.68));border:1px solid rgba(207,175,255,.14);border-radius:20px;padding:clamp(20px,4vw,34px);backdrop-filter:blur(14px)}.narration{font:400 clamp(var(--reader-font-size),2.2vw,calc(var(--reader-font-size) + 8px)) Georgia,serif;line-height:1.75;color:#f7f0ff;text-shadow:0 2px 18px #000;margin-top:10px}.dialogue-layout{display:grid;grid-template-columns:minmax(170px,280px) minmax(0,1fr);gap:20px;align-items:end}.portrait-wrap{display:grid;gap:6px}.portrait{height:min(45vh,480px);border-radius:22px 22px 0 0;background:linear-gradient(160deg,#2d2050,#0b0b14);background-size:cover;background-position:center;border:1px solid rgba(210,180,255,.13);box-shadow:0 20px 60px rgba(0,0,0,.35)}.portrait-wrap span{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center}.dialogue-box{background:linear-gradient(135deg,rgba(12,9,21,.92),rgba(21,15,34,.88));backdrop-filter:blur(16px);border:1px solid rgba(206,173,255,.16);border-radius:20px;padding:22px 24px;box-shadow:0 18px 50px rgba(0,0,0,.32)}.speaker{font:600 15px Georgia,serif;color:var(--accent-soft);letter-spacing:.05em;margin-bottom:8px}.dialogue-text{font-size:var(--reader-font-size);line-height:1.65}.choice-panel{max-width:760px;margin:0 auto;background:rgba(10,7,18,.9);border:1px solid rgba(200,163,255,.18);border-radius:22px;padding:26px;backdrop-filter:blur(15px)}.choice-panel h2{font:500 clamp(25px,4vw,38px) Georgia,serif;margin:8px 0 18px}.choice-list{display:grid;gap:10px}.choice-list button{display:grid;grid-template-columns:38px 1fr;align-items:center;text-align:left;gap:12px;width:100%;border:1px solid rgba(187,139,255,.17);border-radius:14px;padding:12px 14px;background:rgba(123,77,180,.08);cursor:pointer}.choice-list button span{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(202,169,255,.2);border-radius:9px;color:var(--accent-soft);font-weight:800}.choice-list button:hover{background:rgba(140,87,210,.18);border-color:rgba(201,164,255,.35)}.reader-controls{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;padding:14px 0 max(28px,env(safe-area-inset-bottom));position:relative;z-index:3;background:linear-gradient(180deg,rgba(4,4,10,0),rgba(4,4,10,.94) 35%)}.reader-step-btn{width:min(240px,86%);min-height:52px;justify-self:center;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800}.scene-counter{font-size:11px;color:var(--muted);min-width:48px;text-align:center}
.story-tabs{display:flex;gap:8px;overflow:auto;padding:0 0 14px}.story-tabs button{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:rgba(18,14,29,.8);padding:9px 13px;color:var(--muted);cursor:pointer}.story-tabs button.active{color:white;border-color:rgba(183,128,255,.4);background:rgba(123,75,190,.16)}.character-grid.premium{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.character-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:linear-gradient(160deg,rgba(29,22,46,.96),rgba(11,9,18,.96));padding:0;text-align:left;cursor:pointer}.character-portrait{height:320px;background:linear-gradient(160deg,#2d1b4b,#0b0b14);background-size:cover;background-position:center;display:grid;place-items:center}.character-portrait>span{font:500 70px Georgia,serif;color:rgba(255,255,255,.15)}.character-card-copy{padding:15px}.character-card-copy h3{font:500 24px Georgia,serif;margin:5px 0}.character-card-copy p{color:var(--muted);font-size:12px;margin:0}.character-card.locked{cursor:default;filter:saturate(.25)}.character-card.locked .character-portrait{background:linear-gradient(180deg,#17131f,#0c0a11)}.character-modal{width:min(880px,94vw)}.character-detail{display:grid;grid-template-columns:1.05fr .95fr;gap:20px}.expression-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.expression-grid>div{display:grid;gap:5px}.expression{aspect-ratio:4/5;border:1px solid var(--line);border-radius:15px;background:#171220;background-size:cover;background-position:center}.expression-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.character-info{display:grid;align-content:start;gap:10px}.info-pill{display:grid;padding:12px;border:1px solid var(--line);border-radius:13px;background:rgba(23,17,36,.7)}.info-pill span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.info-pill b{margin-top:4px}.character-info p{color:var(--muted);line-height:1.7}
.save-overview{display:grid;gap:16px}.save-story{padding:20px}.save-story-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.save-story-head>span{color:var(--muted);font-size:12px}.save-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.save-overview-card{min-height:160px;border:1px solid var(--line);border-radius:15px;background:rgba(13,10,22,.72);padding:13px;display:flex;flex-direction:column;gap:6px}.save-overview-card>span,.save-overview-card>small{font-size:10px;color:var(--muted)}.save-overview-card button{margin-top:auto;align-self:flex-start}.empty-slot{opacity:.55}.slot-badge{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--accent);margin-bottom:8px}.creator-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stack>*+*{margin-top:14px}.panel p{color:var(--muted);line-height:1.65}.notice{border:1px solid var(--line);background:rgba(12,9,20,.75);color:#c7bad8;border-radius:13px;padding:12px;line-height:1.5;font-size:12px}.notice.success{border-color:rgba(98,221,181,.25);color:#aee7d3}.notice.warning{border-color:rgba(246,200,95,.28);color:#eed590}.safe-list{display:grid;gap:10px;padding-left:20px;color:#d0c3df}.safe-list li::marker{color:var(--ok)}code{background:rgba(255,255,255,.06);padding:2px 5px;border-radius:5px;color:var(--accent-soft)}.settings-card h2{margin-bottom:14px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.setting-row>span{display:grid;gap:3px}.setting-row small{font-size:10px;color:var(--muted)}.setting-row input[type=range]{width:min(240px,44vw);accent-color:var(--accent)}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.setting-row select{min-width:170px}.theme-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.theme-preview i{height:70px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--panel2));opacity:.7}.storage-info{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.storage-info>div{display:grid;gap:4px;padding:11px;border:1px solid var(--line);border-radius:12px;background:rgba(12,9,19,.66)}.storage-info span{font-size:9px;color:var(--muted);text-transform:uppercase}.storage-info b{font-size:14px}.version-card{display:grid;place-items:center;text-align:center;align-content:center;min-height:180px}.version-card span{font-family:Georgia,serif;font-size:22px}.version-card strong{font-size:38px;color:var(--accent);margin:3px 0}.version-card small{color:var(--muted)}.settings-save{grid-column:1/-1;justify-self:start}
.bottom-nav{display:none;position:fixed;z-index:50;bottom:max(0px, env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(760px,calc(100% - 10px));grid-template-columns:repeat(4,1fr);gap:6px;background:rgba(8,6,14,.95);backdrop-filter:blur(20px);border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;padding:8px 8px max(14px,calc(env(safe-area-inset-bottom) + 6px));box-shadow:0 -10px 35px rgba(0,0,0,.25)}.bottom-nav button{background:transparent;border:0;border-radius:12px;color:#887d98;padding:10px 4px 8px;font-size:17px;min-height:56px}.bottom-nav span{display:block;font-size:8px;margin-top:2px}.bottom-nav button.active{background:rgba(130,79,199,.16);color:white}.modal{border:1px solid var(--line);border-radius:22px;background:#0e0b18;color:white;width:min(660px,94vw);max-height:90vh;overflow:auto;box-shadow:0 30px 90px rgba(0,0,0,.55)}.modal::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}.modal-card{padding:8px}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.modal-head h3{font:500 28px Georgia,serif;margin:4px 0 12px}.modal-close{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.04);font-size:20px}.save-slot{border:1px solid var(--line);border-radius:15px;padding:12px;margin:9px 0;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:rgba(20,15,32,.7)}.save-slot.auto{border-color:rgba(111,221,178,.2)}.save-thumb{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent2),#231434);font-weight:900}.save-copy{display:grid;gap:3px}.save-copy span,.save-copy small{font-size:10px;color:var(--muted)}.save-actions{display:flex;gap:6px}.import-version{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px}.import-version span{font:500 23px Georgia,serif}.import-version b{color:var(--accent)}.import-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 14px}.import-stats div{display:grid;text-align:center;padding:13px;border:1px solid var(--line);border-radius:13px;background:rgba(18,13,28,.7)}.import-stats b{font-size:26px;color:var(--accent-soft)}.import-stats span{font-size:9px;color:var(--muted);text-transform:uppercase}.history-list{display:grid;gap:8px}.history-item{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px}.history-item>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:rgba(129,78,194,.16);color:var(--accent-soft);font-weight:900}.history-item div{display:grid;gap:3px}.history-item small{color:var(--muted)}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(18px);opacity:0;pointer-events:none;background:#171122;color:white;border:1px solid rgba(190,148,255,.2);border-radius:999px;padding:10px 15px;transition:.22s;z-index:200;max-width:92vw;box-shadow:0 14px 40px rgba(0,0,0,.4)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.no-motion *,.no-motion *:before,.no-motion *:after{animation:none!important;transition:none!important}
@media(max-width:980px){.app-shell{padding:10px 14px 132px}.topbar{grid-template-columns:auto 1fr}.desktop-nav{display:none}.top-actions{justify-self:end}.bottom-nav{display:grid}.hero-premium{grid-template-columns:1fr minmax(220px,.55fr)}.hero-copy h1{font-size:58px}.poster-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.poster-cover{height:280px}.detail-grid{grid-template-columns:1fr}.detail-aside{position:static}.save-grid{grid-template-columns:repeat(2,1fr)}.creator-grid,.settings-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.app-shell{padding:8px 10px 138px}.topbar{height:64px}.brand b{font-size:14px}.brand small{font-size:11px}.engine-badge{display:none}.hero-premium{grid-template-columns:1fr;min-height:0;padding:22px}.hero-orb{display:none}.hero-copy h1{font-size:44px}.hero-copy p{font-size:13px}.responsive-head{align-items:stretch;flex-direction:column}.filters{width:100%}.filters input{min-width:0;flex:1}.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.poster-cover{height:245px}.poster-shade{left:11px;right:11px;bottom:11px}.poster-shade h3{font-size:19px}.poster-meta{font-size:9px;padding:9px}.continue-grid{grid-template-columns:1fr}.page-header{align-items:flex-start;flex-direction:column}.page-header h1{font-size:42px}.detail-hero{min-height:430px}.detail-content{padding:24px}.detail-content h1{font-size:48px}.detail-stats{gap:14px}.dialogue-layout{grid-template-columns:95px 1fr;gap:10px}.portrait{height:210px;border-radius:15px}.dialogue-box{padding:16px}.reader-actions{gap:3px}.reader-icon{width:35px;height:35px}.reader-title strong{font-size:13px}.reader-controls{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:7px}.reader-step-btn{width:94%;min-height:48px;padding:10px 8px;font-size:12px}.character-grid.premium{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.character-portrait{height:250px}.character-card-copy h3{font-size:20px}.character-detail{grid-template-columns:1fr}.save-grid{grid-template-columns:1fr}.creator-grid,.settings-grid{grid-template-columns:1fr}.storage-info{grid-template-columns:1fr}.settings-save{grid-column:1}.save-slot{grid-template-columns:auto 1fr}.save-actions{grid-column:1/-1;justify-content:flex-end}.import-stats{grid-template-columns:1fr}.bottom-nav span{font-size:7px;line-height:1.1}.install-banner{align-items:flex-start;flex-direction:column}}
@media(max-width:420px){.poster-grid{grid-template-columns:1fr 1fr}.poster-cover{height:215px}.poster-shade h3{font-size:17px}.tag-row{display:none}.hero-copy h1{font-size:39px}.character-portrait{height:215px}}

/* Safe zone for host badges such as Netlify's bottom-right overlay.
   Keep both navigation buttons symmetrical and lift the whole control row above overlays. */
@media (max-width:1180px){
  .reader-controls{padding-left:0;padding-right:0;padding-bottom:max(84px,calc(env(safe-area-inset-bottom) + 64px));}
  .reader-step-btn{justify-self:center;}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* Creator V1.2 */
.creator-wide{grid-column:1/-1}.creator-field{display:grid;gap:7px}.creator-field>span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}.creator-field input,.creator-field textarea,.creator-field select{width:100%;background:rgba(11,8,19,.84);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:11px 12px;outline:none}.creator-field textarea{resize:vertical;line-height:1.55}.creator-field input:focus,.creator-field textarea:focus,.creator-field select:focus{border-color:rgba(169,104,255,.55);box-shadow:0 0 0 3px rgba(169,104,255,.08)}.creator-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.creator-span{grid-column:1/-1}.creator-modal{width:min(820px,96vw)}.wide-modal{width:min(1080px,96vw)}.asset-editor{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.asset-preview{width:150px;height:190px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#25173e,#0a0912);background-size:cover;background-position:center}.portrait-preview{width:130px;height:160px}.chapter-list-editor{display:grid;gap:8px;margin:16px 0}.chapter-edit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:rgba(15,11,24,.68)}.chapter-edit-row strong{font-family:Georgia,serif}.creator-character-list{display:flex;gap:8px;overflow:auto;padding:4px 0 12px}.creator-character-chip{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:rgba(16,12,26,.76);color:var(--muted)}.creator-character-chip.active{color:white;border-color:rgba(169,104,255,.45);background:rgba(117,66,180,.18)}@media(max-width:680px){.creator-form-grid{grid-template-columns:1fr}.creator-span{grid-column:1}.creator-wide{grid-column:1}.asset-preview{width:110px;height:140px}}

body.creator-unlocked .bottom-nav{grid-template-columns:repeat(5,1fr)}
[data-creator-nav][hidden]{display:none!important}
.creator-access-card{border-color:rgba(169,104,255,.24)}
.creator-access-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(11,8,19,.72);margin:12px 0}
.creator-access-status b{color:var(--accent-soft)}.creator-access-status span{font-size:11px;color:var(--muted)}
.creator-lock-panel{display:grid;justify-items:center;text-align:center;gap:16px;padding:12px 4px 6px}.creator-lock-icon{width:78px;height:78px;border-radius:24px;display:grid;place-items:center;font-size:36px;background:radial-gradient(circle at 50% 20%,rgba(169,104,255,.35),rgba(27,18,44,.88));border:1px solid rgba(190,151,255,.18);box-shadow:0 18px 50px rgba(0,0,0,.35)}.creator-lock-panel p{max-width:520px;margin:0;color:var(--muted);line-height:1.65}


/* Creator V1.3 — mode simplifié + visibilité */
.creator-page-head{align-items:center}.creator-page-head>button{flex:0 0 auto}.creator-library-panel{margin-bottom:18px}.creator-panel-head{display:flex;justify-content:space-between;align-items:end;gap:16px}.creator-panel-head h2{margin:4px 0 0}.creator-hidden-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.creator-novel-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.creator-novel-card{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:center;text-align:left;padding:9px;border:1px solid var(--line);border-radius:16px;background:rgba(12,9,20,.72);color:var(--text);transition:.18s}.creator-novel-card:hover,.creator-novel-card.active{border-color:rgba(169,104,255,.48);background:rgba(72,42,106,.18);transform:translateY(-1px)}.creator-novel-cover{height:92px;border-radius:11px;background-size:cover;background-position:center;display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}.creator-novel-cover i{font-style:normal;font-weight:900;font-size:20px;text-shadow:0 2px 10px #000}.creator-novel-copy{display:grid;gap:5px;min-width:0}.creator-novel-copy b{font-family:Georgia,serif;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creator-novel-copy small{color:var(--muted);font-size:10px}.visibility-pill,.visibility-badge{width:max-content;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:900;letter-spacing:.04em}.visibility-pill.public,.visibility-badge.public{background:rgba(64,201,145,.14);border:1px solid rgba(64,201,145,.25);color:#8ce7bd}.visibility-pill.private,.visibility-badge.private{background:rgba(255,180,81,.12);border:1px solid rgba(255,180,81,.24);color:#ffd08c}.visibility-badge{position:absolute;left:10px;top:10px;z-index:3}.new-badge+.visibility-badge{top:42px}.creator-easy-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.creator-selected-meta{color:var(--muted);margin-top:-8px}.creator-visibility-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:16px;padding:14px;background:rgba(9,7,16,.6);cursor:pointer}.creator-visibility-row>span{display:grid;gap:3px}.creator-visibility-row>span b{font-size:16px}.creator-visibility-row>span span{font-size:10px;color:var(--muted)}.creator-visibility-row input{position:absolute;opacity:0;pointer-events:none}.creator-visibility-row i{width:58px;height:32px;border-radius:999px;background:#352c42;position:relative;transition:.2s;flex:0 0 auto}.creator-visibility-row i:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;left:4px;top:4px;background:#b5a9c5;transition:.2s}.creator-visibility-row input:checked+i{background:linear-gradient(135deg,#7042c2,#9e63ff)}.creator-visibility-row input:checked+i:after{left:30px;background:white}.creator-big-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.creator-big-actions button{min-height:54px;font-weight:800}.creator-publish-button{min-height:52px}.creator-publish-button:disabled{opacity:.45;filter:grayscale(.4)}.creator-safety-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.creator-safety-strip span{color:var(--muted);font-size:11px}.status-public{color:#83e3b8}.status-private{color:#ffd08c}@media(max-width:780px){.creator-easy-grid{grid-template-columns:1fr}.creator-panel-head{align-items:flex-start;flex-direction:column}.creator-page-head{align-items:flex-start}.creator-big-actions{grid-template-columns:1fr 1fr}.creator-safety-strip{align-items:flex-start;flex-direction:column}.creator-novel-cards{grid-template-columns:1fr}}@media(max-width:440px){.creator-big-actions{grid-template-columns:1fr}.creator-novel-card{grid-template-columns:64px 1fr}.creator-novel-cover{height:82px}}


/* V1.4 — Cloud + zone sûre pour Réglages (badge hébergeur) */
.cloud-publish-box{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(125,211,176,.2);border-radius:15px;background:rgba(40,120,90,.08)}
.cloud-publish-box .cloud-icon{font-size:28px;flex:0 0 auto}.cloud-publish-box div{display:grid;gap:4px}.cloud-publish-box b{font-size:14px}.cloud-publish-box small{font-size:10px;color:var(--muted);line-height:1.45}
@media(max-width:980px){
  .app-shell{padding-bottom:210px!important}
  .bottom-nav{bottom:max(70px,calc(env(safe-area-inset-bottom) + 58px));border-bottom:1px solid var(--line);border-radius:20px;box-shadow:0 12px 45px rgba(0,0,0,.42)}
  .toast{bottom:155px}
}

/* v1.4.1 */
.creator-big-actions .creator-delete-button{grid-column:1 / -1;opacity:.8}

.reader-icon.music-on{border-color:rgba(174,111,255,.5);box-shadow:0 0 18px rgba(144,78,255,.24);background:rgba(75,42,112,.55)}
.reader-icon.music-off{opacity:.7}
\n/* v1.4.9 — Codex vivant des personnages */
.character-codex-summary{grid-column:1/-1;display:flex;align-items:baseline;gap:10px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(19,14,31,.65);margin-bottom:2px}.character-codex-summary span{font-size:20px;color:var(--text)}.character-codex-summary small{color:var(--muted)}.character-card-copy small{display:block;margin-top:5px;color:var(--accent-soft);font-size:11px}.character-card.locked .character-card-copy small{color:var(--muted)}


/* v1.5.0 — Codex multi-WebNovels */
.character-story-tabs button{display:flex;align-items:center;gap:8px}.character-story-tabs button small{font-size:9px;color:var(--muted);padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.05)}.character-story-tabs button.active small{color:var(--accent-soft);background:rgba(169,104,255,.13)}
.character-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,280px);gap:12px;padding:14px;margin:0 0 16px}.character-search-field,.character-sort-field{display:grid;gap:6px}.character-search-field>span,.character-sort-field>span{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:800}.character-search-field input,.character-sort-field select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:12px;background:rgba(10,8,18,.78);color:var(--text);padding:10px 12px;outline:none}.character-search-field input:focus,.character-sort-field select:focus{border-color:rgba(169,104,255,.55);box-shadow:0 0 0 3px rgba(169,104,255,.08)}
.character-codex-content{align-items:start}.character-story-section{grid-column:1/-1;display:grid;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin-top:2px}.character-story-section:first-of-type{border-top:0;padding-top:4px}.character-story-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:0 2px}.character-story-heading h2{font:500 28px Georgia,serif;margin:4px 0 0}.character-story-heading>span{font-size:11px;color:var(--muted);white-space:nowrap}.character-story-heading>span b{font-size:17px;color:var(--accent-soft)}.character-story-grid{width:100%}.character-story-badge{position:absolute;left:10px;top:10px;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid rgba(202,173,255,.24);border-radius:999px;padding:5px 8px;background:rgba(7,6,16,.78);backdrop-filter:blur(8px);font-size:8px;font-weight:900;letter-spacing:.04em;color:#eee4ff;text-transform:uppercase}.character-portrait{position:relative}.character-codex-summary-all{background:linear-gradient(90deg,rgba(72,39,112,.22),rgba(19,14,31,.65))}
@media(max-width:680px){.character-toolbar{grid-template-columns:1fr;padding:12px}.character-story-heading{align-items:flex-start;flex-direction:column;gap:6px}.character-story-heading h2{font-size:24px}.character-story-heading>span{white-space:normal}.character-story-badge{font-size:7px;max-width:calc(100% - 16px);left:8px;top:8px}}


/* ===== v1.5.2 merged immersive/codex styles ===== */
/* === v1.4.5 portrait dedup + multi-character dialogue === */
.portrait-cluster{display:flex;align-items:flex-end;justify-content:center;gap:8px;min-width:0}
.dialogue-layout.portraits-1 .portrait-cluster{display:block}
.dialogue-layout.portraits-1 .portrait-wrap span{display:none}
.dialogue-layout.portraits-2{grid-template-columns:minmax(220px,360px) minmax(0,1fr)}
.dialogue-layout.portraits-3{grid-template-columns:minmax(250px,430px) minmax(0,1fr)}
.dialogue-layout.portraits-2 .portrait-wrap,
.dialogue-layout.portraits-3 .portrait-wrap{flex:1;min-width:0}
.dialogue-layout.portraits-2 .portrait,
.dialogue-layout.portraits-3 .portrait{height:min(38vh,390px)}
.dialogue-layout.portraits-3 .portrait-wrap:not(.speaker-portrait){opacity:.78;transform:scale(.92);transform-origin:bottom center}
.dialogue-layout .speaker-portrait .portrait{border-color:rgba(193,143,255,.34);box-shadow:0 18px 55px rgba(0,0,0,.4),0 0 24px rgba(137,78,224,.12)}
.portrait-wrap span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:680px){
  .dialogue-layout.portraits-2,.dialogue-layout.portraits-3{grid-template-columns:minmax(110px,34vw) minmax(0,1fr)}
  .portrait-cluster{gap:4px;align-items:flex-end}
  .dialogue-layout.portraits-2 .portrait,.dialogue-layout.portraits-3 .portrait{height:190px}
  .dialogue-layout.portraits-3 .portrait-wrap:nth-child(n+3){display:none}
}


/* === v1.4.6 immersive scene engine === */
.reader-stage{contain:layout paint;content-visibility:auto}
.scene-content{position:relative;z-index:2}.scene-system,.scene-card,.scene-status,.scene-capture{background-color:#05040b}
.system-window,.status-window,.soul-card-scene,.capture-card,.battle-card,.event-card,.thought-card,.chapter-end-card{width:min(840px,92%);margin:auto;border:1px solid rgba(173,117,255,.28);border-radius:24px;background:linear-gradient(145deg,rgba(12,8,22,.94),rgba(5,7,15,.92));box-shadow:0 28px 90px rgba(0,0,0,.52),inset 0 0 40px rgba(110,65,190,.06);padding:clamp(22px,4vw,48px);backdrop-filter:blur(18px)}
.system-window{border-color:rgba(162,101,255,.48);box-shadow:0 0 60px rgba(116,55,224,.16),0 28px 90px rgba(0,0,0,.5)}
.system-sigil,.capture-rune,.battle-slash{font-size:52px;color:#b98cff;text-shadow:0 0 24px currentColor;margin-bottom:10px}.system-lines,.status-lines{display:grid;gap:8px;margin-top:18px}.system-lines>div,.status-lines>div{display:grid;grid-template-columns:minmax(70px,.32fr) 1fr;gap:12px;padding:10px 12px;border:1px solid rgba(183,137,255,.14);border-radius:12px;background:rgba(116,65,180,.06)}.system-lines span,.status-lines span{font-size:9px;letter-spacing:.14em;color:#8f7aa9}.system-lines b,.status-lines b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#eee7ff}
.thought-card{max-width:760px;border-style:dashed}.thought-card .narration{font-style:italic;color:#d9d0e7}.battle-card{border-color:rgba(255,73,99,.28)}.battle-slash{color:#ff526d}.scene-battle.fx-impact .scene-content{animation:battleImpact .35s ease both}@keyframes battleImpact{0%{transform:translateX(0)}25%{transform:translateX(-7px)}55%{transform:translateX(6px)}100%{transform:translateX(0)}}
.soul-card-scene{display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:center}.soul-card-visual{height:220px;border:1px solid rgba(190,148,255,.4);border-radius:18px;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,rgba(156,90,255,.23),transparent 45%),linear-gradient(145deg,#160c25,#05070e);box-shadow:inset 0 0 40px rgba(130,72,220,.13)}.soul-card-visual span{font-size:74px;color:#c9a1ff;text-shadow:0 0 24px #7b3fd5}.soul-card-scene h2,.status-window h2,.capture-card h2,.event-card h2,.chapter-end-card h2{font:500 clamp(28px,5vw,54px) Georgia,serif;margin:6px 0 14px}
.character-intro{position:absolute;right:3%;top:5%;z-index:6;display:grid;gap:2px;padding:12px 16px;border:1px solid rgba(190,148,255,.35);border-radius:14px;background:rgba(7,5,13,.88);box-shadow:0 12px 38px rgba(0,0,0,.38);animation:introSlide .5s ease both}.character-intro span{font-size:8px;letter-spacing:.18em;color:#a88cc5}.character-intro b{font:600 19px Georgia,serif}.character-intro small{color:#b8aec5}@keyframes introSlide{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.chapter-end-stage{display:grid;place-items:center}.chapter-end-card{text-align:center;max-width:780px}.chapter-end-eclipse{font-size:68px;color:#c7a0ff;text-shadow:0 0 34px #7740bd}.chapter-unlocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}.chapter-unlocks>div{display:grid;gap:5px;text-align:left;padding:13px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.025)}.chapter-unlocks span{color:var(--muted);font-size:12px}.chapter-end-card>small{color:#8f829f}
.detail-aside-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.universe-modal{width:min(1120px,96vw)}.universe-sections{display:grid;gap:28px}.universe-sections section>h3{font:500 28px Georgia,serif;margin:4px 0 12px}.universe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.universe-card{position:relative;min-height:145px;padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(26,18,42,.72),rgba(8,8,15,.82));overflow:hidden}.universe-card small{font-size:9px;color:#9e8db0;text-transform:uppercase;letter-spacing:.12em}.universe-card h4{font:600 21px Georgia,serif;margin:6px 0}.universe-card p{margin:0;color:var(--muted);line-height:1.55}.mini-card-rune{float:right;width:54px;height:72px;display:grid;place-items:center;border:1px solid rgba(180,126,255,.3);border-radius:9px;color:#c19aff;background:#0b0712;font-size:28px}.journal-timeline{display:grid;gap:9px}.journal-timeline>div{display:grid;gap:4px;padding:12px 15px;border-left:2px solid rgba(169,104,255,.45);background:rgba(255,255,255,.018)}.journal-timeline span{color:var(--muted);line-height:1.55}.gallery-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.gallery-mini figure{height:190px;margin:0;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#1d1230,#07080e);background-size:cover;background-position:center;position:relative;overflow:hidden}.gallery-mini figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px;background:linear-gradient(transparent,rgba(0,0,0,.86));font-size:11px}.lore-list{display:grid;gap:8px}.lore-list>div{display:grid;gap:3px;padding:10px 12px;border-left:2px solid rgba(169,104,255,.38);background:rgba(169,104,255,.04)}.lore-list span{font-size:12px;color:var(--muted);line-height:1.5}
@media(max-width:680px){.soul-card-scene{grid-template-columns:92px 1fr}.soul-card-visual{height:145px}.chapter-unlocks{grid-template-columns:1fr}.character-intro{right:10px;top:10px;max-width:55%}.detail-aside-actions{grid-template-columns:1fr}.universe-grid{grid-template-columns:1fr}.gallery-mini{grid-template-columns:repeat(2,1fr)}}

/* === v1.4.8 Codex contextuel === */
.codex-link{all:unset;display:inline;color:#d9b8ff;text-decoration:underline;text-decoration-color:rgba(183,119,255,.38);text-underline-offset:3px;cursor:pointer;font:inherit}.codex-link:hover{color:#fff;text-shadow:0 0 18px rgba(172,101,255,.5)}.speaker .codex-link{color:var(--accent-soft);text-decoration:none;font-weight:600}.codex-card-link{appearance:none;width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit}.universe-card.codex-card-link:hover{border-color:rgba(193,143,255,.38);transform:translateY(-2px)}.universe-card em{display:block;margin-top:12px;color:#b58de9;font-size:10px;font-style:normal;letter-spacing:.08em;text-transform:uppercase}.journal-link{appearance:none;width:100%;display:grid!important;gap:4px;text-align:left;color:inherit;border:0!important;border-left:2px solid rgba(169,104,255,.45)!important;border-radius:0!important;background:rgba(255,255,255,.018)!important;padding:12px 15px!important;cursor:pointer}.codex-focus{max-width:820px;margin:0 auto;padding:8px 2px 18px}.codex-focus h2{font:500 clamp(34px,6vw,64px) Georgia,serif;margin:5px 0 8px}.codex-focus-sub{color:#b7a4ca;margin-bottom:18px}.codex-focus>p{font-size:16px;line-height:1.7;color:#ded5e9}.codex-focus-image{height:260px;border-radius:18px;margin-bottom:20px;background-size:cover;background-position:center;border:1px solid var(--line)}.codex-focus-rune{float:right;width:100px;height:138px;display:grid;place-items:center;border:1px solid rgba(180,126,255,.34);border-radius:14px;font-size:52px;color:#d2b1ff;background:#09070f}.codex-show-all{margin-top:20px}

/* === v1.4.9 Codex Graph + premium dossiers === */
.mini-concept-rune{float:right;width:54px;height:54px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(189,145,255,.34);background:radial-gradient(circle,rgba(174,105,255,.2),#0b0712 70%);font-size:25px;color:#d8b8ff}.mini-location{position:absolute;inset:0;opacity:.17;background-size:cover;background-position:center;filter:saturate(.7)}.universe-card>div:not(.mini-location):not(.mini-concept-rune){position:relative;z-index:1}.rank-strip{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.rank-strip.compact{margin-top:12px}.rank-chip{min-width:48px;padding:8px 11px;border-radius:10px;border:1px solid var(--line);background:#0d0a13;color:#ddd;cursor:pointer;font-weight:800}.rank-chip:hover{transform:translateY(-2px)}
.codex-subsection{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.codex-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;margin-top:12px}.codex-related{display:grid;text-align:left;gap:4px;padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(20,14,31,.75);color:#fff;cursor:pointer}.codex-related small{color:#9f8db1;font-size:8px;letter-spacing:.12em}.codex-related b{font:600 17px Georgia,serif}.codex-history{display:grid;gap:9px;margin-top:10px}.codex-history>div{display:grid;gap:4px;padding:12px 14px;border-left:2px solid #9454db;background:rgba(148,84,219,.055)}.codex-history span{color:var(--muted);line-height:1.55}.codex-concept-emblem{float:right;width:100px;height:100px;border-radius:50%;display:grid;place-items:center;font-size:52px;border:1px solid rgba(194,150,255,.32);background:radial-gradient(circle,rgba(148,84,219,.18),#07060d 72%);color:#d6b4ff}.codex-rank-hero{float:right;width:110px;height:140px;border-radius:16px;display:grid;place-items:center;font:700 52px Georgia,serif;border:1px solid rgba(255,255,255,.18);background:linear-gradient(150deg,#251634,#08070d);box-shadow:inset 0 0 40px rgba(160,90,235,.12)}
.codex-location-hero{height:300px;border-radius:20px;margin-bottom:22px;background-size:cover;background-position:center;position:relative;overflow:hidden;border:1px solid var(--line)}.codex-location-hero>div{position:absolute;left:22px;right:22px;bottom:20px;display:grid;gap:3px}.codex-location-hero small{font-size:9px;letter-spacing:.15em;color:#cab0e9}.codex-location-hero b{font:600 clamp(28px,5vw,48px) Georgia,serif}.codex-location-hero.placeholder{background:radial-gradient(circle at 50% 30%,rgba(128,72,198,.22),transparent 40%),linear-gradient(145deg,#171020,#06070d)}
.deck-list{display:grid;gap:8px;margin-top:10px}.deck-row{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,rgba(32,21,47,.88),rgba(8,8,14,.88));color:white;text-align:left;cursor:pointer}.deck-row>span{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#130b20;border:1px solid rgba(184,128,255,.3);font-size:22px;color:#c8a1ff}.deck-row div{display:grid}.deck-row small,.deck-row em{font-size:10px;color:var(--muted);font-style:normal}.deck-hero{display:grid;grid-template-columns:100px 1fr;gap:18px;align-items:center;padding:20px;border:1px solid rgba(187,134,255,.3);border-radius:18px;background:linear-gradient(145deg,rgba(42,25,64,.84),rgba(6,7,13,.92));margin-bottom:22px}.deck-hero>span{height:100px;display:grid;place-items:center;border-radius:50%;font-size:48px;background:radial-gradient(circle,rgba(171,100,255,.22),transparent 65%);color:#d7b6ff}.deck-hero div{display:grid;gap:4px}.deck-hero small{letter-spacing:.13em;color:#9e8cb1}.deck-hero b{font:600 28px Georgia,serif}.codex-inline-owner{justify-self:start;border:0;background:none;color:#ca9dff;text-decoration:underline;cursor:pointer;padding:0}
.soul-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px}.soul-card-button{border:0;background:none;padding:0;cursor:pointer;color:inherit}.soul-card-art{position:relative;aspect-ratio:2.65/4;border-radius:16px;padding:14px;display:grid;grid-template-rows:auto 1fr auto auto;overflow:hidden;border:2px solid rgba(170,140,190,.55);background:radial-gradient(circle at 50% 28%,rgba(155,98,217,.28),transparent 38%),linear-gradient(160deg,#1b1322,#06070c);box-shadow:0 18px 45px rgba(0,0,0,.38),inset 0 0 28px rgba(255,255,255,.035)}.soul-card-art.compact{min-height:220px}.soul-card-art:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.12);border-radius:11px;pointer-events:none}.soul-card-art .card-rank{justify-self:end;font-weight:900;font-size:12px;letter-spacing:.12em}.soul-card-art .card-symbol{align-self:center;justify-self:center;font-size:56px;text-shadow:0 0 26px currentColor}.soul-card-art .card-name{font:600 17px Georgia,serif;line-height:1.05}.soul-card-art .card-type{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.66)}.card-corner{position:absolute;width:16px;height:16px;border-color:currentColor;opacity:.65}.card-corner.tl{left:5px;top:5px;border-left:1px solid;border-top:1px solid}.card-corner.tr{right:5px;top:5px;border-right:1px solid;border-top:1px solid}.card-corner.bl{left:5px;bottom:5px;border-left:1px solid;border-bottom:1px solid}.card-corner.br{right:5px;bottom:5px;border-right:1px solid;border-bottom:1px solid}.rank-e{--card:#b89c72;color:#d7c19e}.rank-d{--card:#72aa86;color:#9cd6ac}.rank-c{--card:#53aab8;color:#8edcea}.rank-b{--card:#527dd7;color:#91b3ff}.rank-a{--card:#9b61e1;color:#c79aff}.rank-s{--card:#d7af52;color:#ffe19a}.rank-ss{--card:#d3d9ef;color:#eef1ff}.rank-sss{--card:#c170ff;color:#e8bdff}.rank-non-applicable,.rank-inconnu{--card:#6e4a98;color:#c297ff}.soul-card-art{border-color:color-mix(in srgb,var(--card,#a274cc) 75%,transparent);box-shadow:0 18px 45px rgba(0,0,0,.38),inset 0 0 36px color-mix(in srgb,var(--card,#a274cc) 12%,transparent)}.type-invocation .card-symbol:after{content:""}.type-attaque{background:radial-gradient(circle at 50% 28%,rgba(197,56,84,.25),transparent 38%),linear-gradient(160deg,#211018,#06070c)}.type-defense{background:radial-gradient(circle at 50% 28%,rgba(62,104,190,.27),transparent 38%),linear-gradient(160deg,#10182a,#06070c)}.type-soutien{background:radial-gradient(circle at 50% 28%,rgba(76,180,145,.24),transparent 38%),linear-gradient(160deg,#10231d,#06070c)}.type-inconnue{background:radial-gradient(circle at 50% 25%,rgba(116,58,166,.28),transparent 32%),linear-gradient(160deg,#08080b,#000)}.type-inconnue .card-symbol{filter:drop-shadow(0 0 16px #a65fff)}.codex-card-stage{width:min(280px,45%);float:right;margin:0 0 18px 24px}.concept-card-visual{min-height:220px;border:1px solid rgba(190,148,255,.4);border-radius:18px;display:grid;place-items:center;align-content:center;gap:10px;background:radial-gradient(circle at 50% 35%,rgba(156,90,255,.23),transparent 45%),linear-gradient(145deg,#160c25,#05070e);color:#c9a1ff;cursor:pointer}.concept-card-visual span{font-size:70px}.concept-card-visual small{letter-spacing:.13em}
.character-modal{width:min(1040px,96vw)}.character-codex-premium{display:grid;gap:18px}.character-codex-hero{display:grid;grid-template-columns:minmax(250px,38%) 1fr;gap:22px;min-height:430px;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:radial-gradient(circle at 22% 30%,rgba(131,76,202,.18),transparent 40%),linear-gradient(145deg,#120d1c,#08070e)}.character-codex-art{min-height:430px;background-size:contain;background-repeat:no-repeat;background-position:center bottom}.character-codex-title{padding:30px 26px 26px 0;align-self:center}.character-codex-title h2{font:500 clamp(38px,6vw,68px) Georgia,serif;margin:5px 0 13px}.character-codex-title p{line-height:1.7;color:#c7bbd3}.character-badges{display:flex;flex-wrap:wrap;gap:7px}.character-badges span{padding:7px 10px;border:1px solid rgba(180,125,247,.2);border-radius:999px;background:rgba(141,85,213,.07);font-size:10px;color:#d8c8e8}.character-codex-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:3px}.character-codex-tabs button{border:1px solid var(--line);border-radius:999px;background:#0d0a13;color:#9e8cae;padding:9px 14px;white-space:nowrap;cursor:pointer}.character-codex-tabs button.active{color:white;border-color:#8652bc;background:rgba(134,82,188,.14)}.character-tab{display:none;min-height:180px;padding:18px;border:1px solid var(--line);border-radius:18px;background:rgba(10,8,15,.72)}.character-tab.active{display:block}.codex-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.expression-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin-top:10px}.expression-strip>div{display:grid;gap:5px}.expression-strip>div>div{height:130px;border-radius:12px;border:1px solid var(--line);background-size:cover;background-position:center}.expression-strip span{font-size:8px;color:var(--muted);text-transform:uppercase}.deck-feature{width:100%;display:grid;grid-template-columns:90px 1fr;gap:16px;text-align:left;align-items:center;padding:18px;border:1px solid rgba(181,126,244,.27);border-radius:16px;background:linear-gradient(145deg,rgba(38,23,55,.7),rgba(8,8,14,.9));color:white;cursor:pointer}.deck-feature>span{font-size:46px;text-align:center}.deck-feature div{display:grid;gap:4px}.deck-feature b{font:600 28px Georgia,serif}.deck-feature small{letter-spacing:.13em;color:#9c89ad}.deck-feature p{margin:0;color:var(--muted)}.locked-codex-panel{display:grid;place-items:center;text-align:center;gap:8px;min-height:150px;border:1px dashed rgba(255,255,255,.1);border-radius:15px;color:#a895ba}.locked-codex-panel b{letter-spacing:.1em}.relation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.relation-card{display:grid;grid-template-columns:65px 1fr;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:rgba(22,16,31,.8);color:white;text-align:left;cursor:pointer}.relation-mini{width:65px;height:75px;border-radius:10px;background-size:cover;background-position:center}.relation-card div:last-child{display:grid;gap:3px}.relation-card small{color:var(--muted)}
.npc-placeholder{position:relative;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at 50% 30%,rgba(164,105,226,.18),transparent 35%),linear-gradient(160deg,#20152d,#07080e);display:grid;place-items:center}.npc-placeholder .npc-head{position:absolute;top:18%;left:50%;width:31%;aspect-ratio:.8;border-radius:50% 50% 45% 45%;transform:translateX(-50%);background:linear-gradient(160deg,#735b75,#281f31);box-shadow:0 0 0 7px rgba(255,255,255,.025)}.npc-placeholder .npc-body{position:absolute;bottom:-4%;left:50%;width:76%;height:58%;transform:translateX(-50%);border-radius:45% 45% 8% 8%;background:linear-gradient(160deg,#2d2338,#0c0b11);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}.npc-placeholder strong{position:absolute;bottom:17%;z-index:2;font:700 30px Georgia,serif;color:rgba(239,225,255,.78)}.npc-placeholder small{position:absolute;bottom:9%;z-index:2;font-size:8px;letter-spacing:.15em;color:#a98dbe}.npc-v1 .npc-body{width:64%}.npc-v2 .npc-body{width:88%}.npc-v3 .npc-head{width:27%}.npc-v4 .npc-head{border-radius:45% 45% 55% 55%}.npc-v5{background:radial-gradient(circle at 50% 30%,rgba(82,120,205,.16),transparent 35%),linear-gradient(160deg,#151b2b,#07080e)}.npc-v6{background:radial-gradient(circle at 50% 30%,rgba(187,82,111,.15),transparent 35%),linear-gradient(160deg,#28131c,#07080e)}.npc-v7{background:radial-gradient(circle at 50% 30%,rgba(68,166,133,.14),transparent 35%),linear-gradient(160deg,#10231c,#07080e)}
@media(max-width:680px){.codex-card-stage{float:none;width:180px;margin:0 auto 16px}.character-codex-hero{grid-template-columns:1fr;min-height:0}.character-codex-art{min-height:360px}.character-codex-title{padding:0 20px 22px}.codex-profile-grid{grid-template-columns:1fr}.deck-row{grid-template-columns:46px 1fr}.deck-row em{grid-column:2}.soul-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.codex-location-hero{height:220px}}


/* v1.5.2 — navigation sans onglet Personnages */
.bottom-nav{grid-template-columns:repeat(3,1fr)}
body.creator-unlocked .bottom-nav{grid-template-columns:repeat(4,1fr)}


/* === v1.5.3 — correctifs lecteur + Codex === */
.expression-strip{grid-template-columns:repeat(auto-fit,minmax(110px,160px));justify-content:center;align-items:start;gap:12px}
.expression-strip>div{min-width:0}
.expression-strip>div>div{height:auto;aspect-ratio:3/4;background-size:contain;background-repeat:no-repeat;background-position:center center;background-color:rgba(8,7,13,.72);box-shadow:inset 0 0 24px rgba(119,72,174,.08)}
.expression-strip span{text-align:center;font-size:9px;letter-spacing:.08em}
.codex-browser{display:grid;gap:18px}.codex-browser-tabs{position:sticky;top:0;z-index:8;display:flex;gap:7px;overflow:auto;padding:4px 2px 12px;background:linear-gradient(180deg,#0b0812 72%,transparent)}.codex-browser-tabs button{border:1px solid var(--line);border-radius:999px;background:#0d0a13;color:#a795b7;padding:9px 14px;white-space:nowrap;cursor:pointer}.codex-browser-tabs button.active{color:#fff;border-color:#8d55c8;background:rgba(141,85,200,.16);box-shadow:0 0 22px rgba(141,85,200,.08)}.codex-browser-tabs button span{font-size:9px;opacity:.7;margin-left:3px}.codex-browser-panel{display:none}.codex-browser-panel.active{display:block}.codex-character-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px}.codex-character-card{appearance:none;display:grid;grid-template-columns:82px 1fr;gap:12px;align-items:center;min-height:110px;padding:10px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,rgba(28,19,42,.82),rgba(8,8,14,.9));color:#fff;text-align:left;cursor:pointer}.codex-character-card:hover{border-color:rgba(193,143,255,.4);transform:translateY(-2px)}.codex-character-thumb{width:82px;height:96px;border-radius:11px;background-size:contain;background-repeat:no-repeat;background-position:center bottom;background-color:rgba(0,0,0,.18)}.codex-character-card>div:last-child{display:grid;gap:3px}.codex-character-card small{font-size:8px;letter-spacing:.12em;color:#9f8eb0;text-transform:uppercase}.codex-character-card b{font:600 18px Georgia,serif}.codex-character-card span{font-size:10px;color:var(--muted)}.codex-search-panel{display:grid;gap:14px}.codex-search-panel h3{font:500 30px Georgia,serif;margin:0}.codex-search-field{display:grid;gap:7px;padding:13px;border:1px solid var(--line);border-radius:15px;background:rgba(13,9,20,.72)}.codex-search-field span{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#9b88ae}.codex-search-field input{width:100%;border:1px solid rgba(180,125,247,.17);border-radius:12px;background:#09070f;color:#fff;padding:13px 14px;font:inherit;outline:none}.codex-search-field input:focus{border-color:#8d55c8;box-shadow:0 0 0 3px rgba(141,85,200,.1)}.codex-search-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.codex-search-result{appearance:none;display:grid;gap:4px;min-height:132px;padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(18,13,27,.85);color:#fff;text-align:left;cursor:pointer}.codex-search-result:hover{border-color:rgba(193,143,255,.4);transform:translateY(-2px)}.codex-search-result>span{font-size:8px;letter-spacing:.13em;color:#a88abd}.codex-search-result>b{font:600 18px Georgia,serif}.codex-search-result>small{font-size:10px;color:#baacc7}.codex-search-result>p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:680px){.expression-strip{grid-template-columns:repeat(2,minmax(105px,145px))}.codex-character-grid,.codex-search-results{grid-template-columns:1fr}.codex-browser-tabs{top:-1px}.codex-character-card{grid-template-columns:72px 1fr}.codex-character-thumb{width:72px;height:86px}}


/* === v1.5.4 — contextual interface triggers & mission panels === */
.scene-trigger{max-width:min(760px,92%);margin:0 auto 14px;padding:12px 16px;border:1px solid rgba(183,119,255,.24);border-left:3px solid #a965ff;border-radius:14px;background:rgba(10,8,18,.88);box-shadow:0 12px 32px rgba(0,0,0,.22)}
.scene-trigger span{display:block;margin-bottom:5px;color:#b985ff;font-size:10px;font-weight:800;letter-spacing:.18em}.scene-trigger p{margin:0;color:#d9d0e6;font-size:13px;line-height:1.45}
.status-window.status-mission{border-color:rgba(111,177,255,.28);background:linear-gradient(145deg,rgba(12,15,28,.97),rgba(18,10,31,.97))}.status-window.status-mission .eyebrow{color:#8fc8ff}.status-window.status-mission h2{letter-spacing:-.02em}.scene-card-rank{display:inline-block;margin-top:8px}.explicit-rank-link{font-weight:800;text-decoration-thickness:2px}

/* v1.5.6 — secrets Codex verrouillés */
.codex-locked-lore{display:grid;gap:8px;margin-top:12px}
.codex-locked-lore>div{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(169,113,255,.14);border-radius:12px;background:linear-gradient(90deg,rgba(112,59,173,.08),rgba(255,255,255,.012));opacity:.72}
.codex-locked-lore .lock-glyph{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(148,88,226,.12);color:#9c77c8;font-size:10px}
.codex-locked-lore b{display:block;color:#b8a9c8;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.codex-locked-lore small{display:block;color:#766b82;margin-top:2px}
.codex-locked-lore em{font-size:11px;color:#6f637b;font-style:normal;text-align:center}

/* === v1.5.7 — notification Codex non bloquante === */
.character-intro{
  position:absolute;
  top:12px;
  right:12px;
  left:auto;
  z-index:8;
  max-width:min(320px,calc(100% - 24px));
  pointer-events:none;
  animation:introSlide .42s ease both,introFade .32s ease 2.85s forwards;
}
@keyframes introFade{
  to{opacity:0;transform:translateY(-6px);visibility:hidden}
}
@media(max-width:680px){
  .character-intro{
    top:10px;
    left:10px;
    right:10px;
    max-width:none;
    width:auto;
    padding:10px 13px;
    border-radius:13px;
    background:rgba(7,5,13,.94);
    backdrop-filter:blur(14px);
  }
  .character-intro b{font-size:17px}
  .character-intro small{font-size:10px}
}

/* === v1.5.9 — lecteur mobile : aucun contenu masqué sous la barre supérieure ===
   Les scènes longues dépassent désormais naturellement la hauteur disponible et
   se font défiler dans la zone de lecture. Les scènes courtes restent posées en bas. */
.reader-stage{
  overflow-x:hidden;
  overflow-y:auto;
  align-items:stretch;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.reader-stage .scene-content{
  min-height:100%;
  display:grid;
  align-content:end;
  flex:0 0 auto;
}
.reader-stage.chapter-end-stage{
  overflow-y:auto;
  align-items:start;
  justify-items:center;
  padding:18px 0;
}
@media(max-width:680px){
  .reader-stage .scene-content{
    padding-top:max(18px,env(safe-area-inset-top));
    padding-bottom:20px;
  }
}

/* === v1.6.0 — garde supérieure fiable + scènes longues ===
   Une scène longue est alignée au début de la zone défilable afin que sa
   première ligne reste toujours accessible. Les scènes courtes peuvent
   conserver leur placement immersif vers le bas. */
.reader-stage .scene-content{
  align-content:safe end;
  scroll-margin-top:24px;
}
.reader-stage.scene-overflowing .scene-content{
  align-content:start;
}
@media(max-width:680px){
  .reader-stage .scene-content{
    padding-top:max(34px,calc(env(safe-area-inset-top) + 22px));
  }
  .reader-stage.scene-overflowing .scene-content{
    padding-top:max(34px,calc(env(safe-area-inset-top) + 22px));
  }
}

/* v1.6.2 — actions locales/cloud explicites */
.creator-cloud-remove-button{min-height:50px;border-color:rgba(255,180,81,.32)!important;color:#ffd08c!important;background:rgba(255,180,81,.06)!important}.creator-cloud-remove-button:disabled{opacity:.42;filter:grayscale(.5)}

/* v1.6.4 — Les initiales LD/ST/SL ne doivent jamais recouvrir les vraies couvertures. */
.cover-initials,
.creator-novel-cover > i {
  display: none !important;
}


/* ===== v1.7.0 — Thèmes complets Dark Arcane / Hunter / SAO ===== */
html[data-theme="dark-arcane"]{
  --bg:#070610;--bg2:#0c0916;--panel:rgba(24,19,40,.9);--panel2:#171126;--text:#f7f2ff;--muted:#aaa0bd;
  --line:rgba(190,151,255,.18);--accent:#a968ff;--accent2:#7347ff;--accent-soft:#dec7ff;--theme-glow:rgba(150,82,255,.26);color-scheme:dark
}
html[data-theme="hunter"]{
  --bg:#172015;--bg2:#202a1b;--panel:rgba(244,232,194,.97);--panel2:#ead8a8;--text:#2b2618;--muted:#6e6244;
  --line:rgba(91,75,36,.27);--accent:#2f7b45;--accent2:#9d6a22;--accent-soft:#f4d487;--theme-glow:rgba(91,142,66,.22);color-scheme:light
}
html[data-theme="sao"]{
  --bg:#020b15;--bg2:#061827;--panel:rgba(4,26,43,.9);--panel2:#071f34;--text:#f1fbff;--muted:#8cb4cc;
  --line:rgba(62,201,255,.25);--accent:#25c8ff;--accent2:#2676ff;--accent-soft:#b8ecff;--theme-glow:rgba(39,188,255,.3);color-scheme:dark
}
.brand-mark{overflow:hidden;padding:0}.brand-mark img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.hero-orb{overflow:hidden;border-radius:24px;aspect-ratio:1}.hero-orb img{width:100%;height:100%;display:block;object-fit:cover}.hero-orb:before,.hero-orb:after{pointer-events:none}.hero-orb:before{inset:5%;border-radius:20px}.hero-orb:after{inset:12%;border-radius:18px}
.appearance-card{grid-column:1/-1}.appearance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.appearance-head p{margin:6px 0 0;max-width:760px}.theme-live-badge{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-soft);border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:color-mix(in srgb,var(--accent) 10%,transparent)}
.theme-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.theme-choice{position:relative;display:grid;grid-template-rows:150px auto;text-align:left;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--panel2) 82%,transparent);color:var(--text);cursor:pointer;transition:.22s;box-shadow:0 12px 30px rgba(0,0,0,.14)}.theme-choice:hover{transform:translateY(-3px)}.theme-choice.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent),0 18px 45px var(--theme-glow)}.theme-choice>img{width:100%;height:150px;object-fit:cover}.theme-choice>span{display:grid;gap:5px;padding:14px}.theme-choice b{font:600 21px Georgia,serif}.theme-choice small{font-size:10px;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.07em}.theme-choice em{font-style:normal;font-size:11px;line-height:1.5;color:var(--muted)}.theme-choice>i{display:none;position:absolute;right:10px;top:10px;width:30px;height:30px;border-radius:50%;place-items:center;background:var(--accent);color:white;font-style:normal;font-weight:900;box-shadow:0 6px 20px rgba(0,0,0,.25)}.theme-choice.active>i{display:grid}
.theme-icon-section{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel2) 62%,transparent)}.theme-icon-section>div:first-child{display:grid;gap:4px}.theme-icon-section small{color:var(--muted);font-size:10px;max-width:520px}.theme-icon-strip{display:flex;gap:12px;align-items:center}.theme-icon-strip figure{margin:0;display:grid;justify-items:center;gap:5px;opacity:.45;transition:.2s}.theme-icon-strip figure.active{opacity:1;transform:translateY(-2px)}.theme-icon-strip img{width:58px;height:58px;border-radius:15px;object-fit:cover;border:1px solid var(--line);box-shadow:0 8px 22px rgba(0,0,0,.22)}.theme-icon-strip figure.active img{border-color:var(--accent);box-shadow:0 0 24px var(--theme-glow)}.theme-icon-strip figcaption{font-size:8px;color:var(--muted)}.appearance-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.appearance-options .setting-row{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:color-mix(in srgb,var(--panel2) 55%,transparent)}.theme-install-note{margin-top:14px;font-size:10px;line-height:1.55;color:var(--muted);padding:11px 12px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);border-radius:0 10px 10px 0}
.effects-off .ambient,.effects-off .hero-premium:before{display:none}.effects-off .primary,.effects-off .poster-card,.effects-off .theme-choice.active,.effects-off .brand-mark{box-shadow:none!important}.immersive-ui .ambient{opacity:.22}.immersive-ui .topbar{height:58px}.immersive-ui .desktop-nav{opacity:.45}.immersive-ui .hero-orb{filter:saturate(.8);opacity:.72}

/* Dark Arcane: mystique, violet, profond */
html[data-theme="dark-arcane"] body{background:radial-gradient(circle at 80% -10%,rgba(120,61,224,.15),transparent 36%),radial-gradient(circle at 5% 25%,rgba(81,35,156,.12),transparent 34%),var(--bg)}
html[data-theme="dark-arcane"] .topbar{background:linear-gradient(180deg,rgba(7,6,16,.98),rgba(7,6,16,.82));box-shadow:0 14px 42px rgba(0,0,0,.18)}
html[data-theme="dark-arcane"] .hero-premium{background:radial-gradient(circle at 74% 42%,rgba(150,81,247,.2),transparent 38%),linear-gradient(145deg,rgba(29,22,49,.98),rgba(9,8,18,.98))}
html[data-theme="dark-arcane"] .panel,html[data-theme="dark-arcane"] .poster-card{backdrop-filter:blur(15px)}

/* Hunter: vraie peau aventure / guilde / parchemin */
html[data-theme="hunter"] body{background:radial-gradient(circle at 50% -15%,#5d7545 0,#27351f 31%,#172015 70%);font-family:Georgia,"Times New Roman",serif}
html[data-theme="hunter"] .ambient{background:radial-gradient(circle,rgba(214,181,88,.13),transparent 62%)}
html[data-theme="hunter"] .topbar{background:linear-gradient(180deg,#202114f5,#181b11e8);border-color:rgba(225,190,103,.28);color:#f8eac0;box-shadow:0 10px 34px rgba(0,0,0,.25)}
html[data-theme="hunter"] .brand small,html[data-theme="hunter"] .engine-badge{color:#dcc58a}html[data-theme="hunter"] .desktop-nav button{color:#d7c99f}html[data-theme="hunter"] .desktop-nav button.active{color:#fff1c8;border-color:#ad8b45;background:#5e4a21a8}
html[data-theme="hunter"] .view{position:relative}html[data-theme="hunter"] .panel,html[data-theme="hunter"] .poster-card,html[data-theme="hunter"] .save-overview-card,html[data-theme="hunter"] .creator-novel-card,html[data-theme="hunter"] .character-toolbar{background:linear-gradient(145deg,rgba(249,239,205,.98),rgba(231,211,161,.98));border-color:#9a7a3b66;box-shadow:0 14px 35px rgba(22,27,14,.22)}
html[data-theme="hunter"] .hero-premium{background:radial-gradient(circle at 76% 45%,rgba(71,126,65,.22),transparent 35%),linear-gradient(135deg,#f3e4b9,#dbc98d);border:1px solid #96753888;box-shadow:inset 0 0 0 3px rgba(255,248,216,.4),0 20px 55px rgba(0,0,0,.2)}
html[data-theme="hunter"] .hero-premium:before{background:repeating-linear-gradient(0deg,rgba(85,67,29,.035) 0 1px,transparent 1px 6px);mask-image:none}.hero-copy h1{}
html[data-theme="hunter"] .hero-copy h1 span{background:linear-gradient(120deg,#194c2c,#397643,#8a6423);-webkit-background-clip:text;background-clip:text;color:transparent}html[data-theme="hunter"] .eyebrow{color:#4d6f2f}html[data-theme="hunter"] .primary{background:linear-gradient(135deg,#1d5b36,#367d43);box-shadow:0 9px 0 #123922,0 13px 25px rgba(0,0,0,.18)}html[data-theme="hunter"] .secondary{background:#6e4b25;color:#fff0c5;border-color:#9a6e36}html[data-theme="hunter"] .ghost,html[data-theme="hunter"] .back{background:#f4e7c5;color:#5e5033;border-color:#8f7544}
html[data-theme="hunter"] .filters input,html[data-theme="hunter"] .setting-row input[type=text],html[data-theme="hunter"] .setting-row input:not([type]),html[data-theme="hunter"] .setting-row select,html[data-theme="hunter"] .character-search-field input,html[data-theme="hunter"] .character-sort-field select{background:#fff4d7;color:#2b2618;border-color:#8d7340}
html[data-theme="hunter"] .poster-cover:after{background:linear-gradient(180deg,transparent 40%,rgba(28,24,14,.82) 98%)}html[data-theme="hunter"] .poster-shade{color:white;text-shadow:0 2px 10px #000}html[data-theme="hunter"] .poster-meta{background:#e9d6a4;color:#43391f}html[data-theme="hunter"] .tag{background:#f5e9c9;color:#493e26;border-color:#8b7444}
html[data-theme="hunter"] .bottom-nav{background:linear-gradient(180deg,#2d2115f7,#1b150ef8);border-color:#9e7a3f;color:#f4e5bb}html[data-theme="hunter"] .bottom-nav button{color:#cbb98a}html[data-theme="hunter"] .bottom-nav button.active{background:#6d5128;color:#fff4c7;box-shadow:inset 0 0 0 1px #bb9450}
html[data-theme="hunter"] .notice,html[data-theme="hunter"] .creator-access-status,html[data-theme="hunter"] .creator-visibility-row{background:#f4e5bf;color:#5c5034;border-color:#9c7d44}html[data-theme="hunter"] code{background:#ddc78f;color:#3e351e}
html[data-theme="hunter"] .modal{background:#efe0b8;color:#2a2517;border-color:#9c7a40}html[data-theme="hunter"] .modal::backdrop{background:rgba(18,24,14,.76)}
html[data-theme="hunter"] .reader-view.active,html[data-theme="hunter"] .reader-shell{background:#11180f}html[data-theme="hunter"] .reader-top{color:#f7e9bd}html[data-theme="hunter"] .reader-icon{background:#26351f;border-color:#8b7242;color:#f8eac5}html[data-theme="hunter"] .narration-card,html[data-theme="hunter"] .dialogue-box,html[data-theme="hunter"] .choice-panel{background:linear-gradient(135deg,rgba(245,231,188,.95),rgba(221,200,147,.92));color:#2b2517;border-color:#9c7a42}html[data-theme="hunter"] .narration,html[data-theme="hunter"] .dialogue-text{color:#2a2416;text-shadow:none}html[data-theme="hunter"] .speaker{color:#28653c}html[data-theme="hunter"] .choice-list button{background:#e8d7a8;color:#2d2618;border-color:#9b7c43}

/* SAO: vrai HUD bleu / système */
html[data-theme="sao"] body{background:linear-gradient(rgba(1,12,23,.95),rgba(1,12,23,.98)),repeating-linear-gradient(90deg,transparent 0 39px,rgba(30,185,255,.045) 40px),repeating-linear-gradient(0deg,transparent 0 39px,rgba(30,185,255,.04) 40px);font-family:"Segoe UI",Inter,sans-serif}
html[data-theme="sao"] .ambient{background:radial-gradient(circle,rgba(24,184,255,.18),transparent 62%)}
html[data-theme="sao"] .topbar{background:linear-gradient(180deg,rgba(1,15,29,.98),rgba(2,20,37,.88));border-color:#27c9ff47;box-shadow:0 0 28px rgba(15,170,255,.12)}
html[data-theme="sao"] .brand b,html[data-theme="sao"] .brand small,html[data-theme="sao"] .section-head h2,html[data-theme="sao"] .page-header h1,html[data-theme="sao"] .panel h2{font-family:"Segoe UI",Inter,sans-serif;letter-spacing:.02em}html[data-theme="sao"] .brand small{color:#75dcff}
html[data-theme="sao"] .panel,html[data-theme="sao"] .poster-card,html[data-theme="sao"] .save-overview-card,html[data-theme="sao"] .creator-novel-card,html[data-theme="sao"] .character-toolbar{background:linear-gradient(145deg,rgba(5,33,53,.92),rgba(2,18,32,.94));border-color:#23c7ff47;box-shadow:0 0 0 1px rgba(81,216,255,.04),0 18px 50px rgba(0,0,0,.28),inset 0 0 30px rgba(20,168,255,.025)}
html[data-theme="sao"] .hero-premium{background:radial-gradient(circle at 76% 42%,rgba(33,190,255,.22),transparent 37%),linear-gradient(145deg,rgba(3,38,61,.98),rgba(1,15,28,.98));border-color:#30cfff70;clip-path:polygon(0 0,98% 0,100% 8%,100% 100%,2% 100%,0 92%)}html[data-theme="sao"] .hero-premium:before{background:repeating-linear-gradient(90deg,transparent 0 49px,rgba(68,205,255,.04) 50px),repeating-linear-gradient(0deg,transparent 0 49px,rgba(68,205,255,.035) 50px);mask-image:none}html[data-theme="sao"] .hero-copy h1,html[data-theme="sao"] .hero-copy h1 span{font-family:"Segoe UI",Inter,sans-serif;font-weight:700}html[data-theme="sao"] .hero-copy h1 span{background:linear-gradient(90deg,#fff,#9de9ff,#25c8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="sao"] .primary{background:linear-gradient(135deg,#24cfff,#266dff);clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);box-shadow:0 0 24px rgba(24,190,255,.25)}html[data-theme="sao"] .secondary,html[data-theme="sao"] .ghost,html[data-theme="sao"] .back{background:rgba(2,24,40,.86);border-color:#2ac8ff61;color:#d8f5ff;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
html[data-theme="sao"] .poster-card:hover{border-color:#35d5ff;box-shadow:0 0 35px rgba(31,197,255,.15)}html[data-theme="sao"] .tag{border-color:#32c9ff55;color:#c7f2ff;background:#03182b99}html[data-theme="sao"] .bottom-nav{background:linear-gradient(180deg,rgba(2,22,38,.98),rgba(1,13,25,.99));border-color:#2bcaff50;box-shadow:0 0 30px rgba(24,179,255,.16)}html[data-theme="sao"] .bottom-nav button.active{background:linear-gradient(180deg,rgba(30,190,255,.24),rgba(25,106,255,.15));color:#fff;box-shadow:inset 0 0 0 1px #30caff66,0 0 22px rgba(25,190,255,.16)}
html[data-theme="sao"] .filters input,html[data-theme="sao"] .setting-row input[type=text],html[data-theme="sao"] .setting-row input:not([type]),html[data-theme="sao"] .setting-row select,html[data-theme="sao"] .character-search-field input,html[data-theme="sao"] .character-sort-field select{background:#031528;color:#effbff;border-color:#2acaff58}html[data-theme="sao"] .reader-view.active,html[data-theme="sao"] .reader-shell{background:#010912}html[data-theme="sao"] .reader-icon{background:#041c30;border-color:#29caff55}html[data-theme="sao"] .narration-card,html[data-theme="sao"] .dialogue-box,html[data-theme="sao"] .choice-panel{background:linear-gradient(135deg,rgba(2,28,47,.94),rgba(1,18,34,.92));border-color:#2ccaff55;box-shadow:0 0 30px rgba(20,180,255,.06)}html[data-theme="sao"] .speaker{color:#6ce0ff}html[data-theme="sao"] .choice-list button{background:#04223a;border-color:#2bcaff55}html[data-theme="sao"] .choice-list button:hover{background:#073455}

@media(max-width:820px){.theme-picker{grid-template-columns:1fr}.theme-choice{grid-template-columns:112px 1fr;grid-template-rows:auto;min-height:112px}.theme-choice>img{width:112px;height:100%}.theme-choice>span{align-content:center}.theme-icon-section{align-items:flex-start;flex-direction:column}.appearance-options{grid-template-columns:1fr}}
@media(max-width:520px){.theme-choice{grid-template-columns:86px 1fr}.theme-choice>img{width:86px}.theme-choice b{font-size:18px}.theme-choice em{display:none}.theme-icon-strip img{width:50px;height:50px}}


/* ===== v1.8.0 — immersion totale, transitions & aide contextuelle ===== */
body::before{
  content:"";position:fixed;inset:-3%;z-index:0;pointer-events:none;
  background-image:linear-gradient(180deg,rgba(4,4,10,.24),rgba(4,4,10,.72)),var(--theme-wallpaper);
  background-size:cover;background-position:center top;opacity:.22;transform:scale(1.045);
  animation:themeBackdropDrift 26s ease-in-out infinite alternate;
  filter:saturate(1.08) contrast(1.02);
}
body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.28;
  background:
    radial-gradient(circle at 20% 12%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 22%),
    radial-gradient(circle at 78% 28%,color-mix(in srgb,var(--accent2) 13%,transparent),transparent 26%);
  mix-blend-mode:screen;animation:themeAtmosphere 11s ease-in-out infinite alternate;
}
@keyframes themeBackdropDrift{from{transform:scale(1.045) translate3d(-.7%,-.4%,0)}to{transform:scale(1.085) translate3d(.8%,.7%,0)}}
@keyframes themeAtmosphere{from{opacity:.18;filter:blur(1px)}to{opacity:.38;filter:blur(5px)}}
.background-static::before,.background-static::after{animation:none!important;transform:none!important}
.effects-off::after{display:none!important}
.effects-off::before{filter:saturate(.9) contrast(1);opacity:.12}
.app-shell{position:relative;z-index:2}
html[data-theme="dark-arcane"] body::before{opacity:.30;background-image:linear-gradient(180deg,rgba(4,3,10,.25),rgba(5,4,12,.80)),url("theme-dark-arcane-wallpaper.jpg")}
html[data-theme="hunter"] body::before{opacity:.32;background-image:linear-gradient(180deg,rgba(9,23,11,.08),rgba(12,24,13,.48)),url("theme-hunter-wallpaper.jpg")}
html[data-theme="sao"] body::before{opacity:.34;background-image:linear-gradient(180deg,rgba(0,9,18,.10),rgba(0,9,18,.70)),url("theme-sao-wallpaper.jpg")}
html[data-theme="hunter"] body::after{background:radial-gradient(circle at 18% 15%,rgba(243,210,102,.23),transparent 21%),radial-gradient(circle at 78% 34%,rgba(94,199,95,.18),transparent 25%)}
html[data-theme="sao"] body::after{
  opacity:.32;
  background:
    repeating-linear-gradient(0deg,transparent 0 22px,rgba(57,207,255,.035) 23px,transparent 24px),
    repeating-linear-gradient(90deg,transparent 0 57px,rgba(57,207,255,.025) 58px,transparent 59px),
    radial-gradient(circle at 75% 14%,rgba(38,202,255,.19),transparent 22%);
}
html[data-theme="hunter"] .page-header h1,html[data-theme="hunter"] .page-header>div>p,html[data-theme="hunter"] .library-section>.section-head h2{color:#fff1c8;text-shadow:0 2px 18px rgba(0,0,0,.45)}
html[data-theme="hunter"] .library-section>.section-head .eyebrow,html[data-theme="hunter"] .page-header>.eyebrow{color:#e9cf83}

/* Hero with actual immersive wallpaper */
.hero-premium{isolation:isolate}
.hero-premium::after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(90deg,rgba(8,6,16,.94) 0%,rgba(8,6,16,.73) 48%,rgba(8,6,16,.24) 100%),var(--theme-wallpaper);background-size:cover;background-position:center 18%;opacity:.58;transform:scale(1.02);transition:opacity .35s ease}
html[data-theme="hunter"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(246,231,187,.96) 0%,rgba(235,215,167,.78) 48%,rgba(37,72,38,.14) 100%),url("theme-hunter-wallpaper.jpg");opacity:.76}
html[data-theme="sao"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(2,18,34,.96) 0%,rgba(2,24,42,.73) 47%,rgba(2,20,36,.18) 100%),url("theme-sao-wallpaper.jpg");opacity:.78}
.effects-off .hero-premium::after{opacity:.35}

/* Per-theme screen entrance */
body:not(.no-motion) .view.active{animation:arcaneViewIn var(--motion-speed) cubic-bezier(.2,.7,.2,1)}
html[data-theme="hunter"] body:not(.no-motion) .view.active{animation:hunterViewIn var(--motion-speed) cubic-bezier(.2,.7,.2,1)}
html[data-theme="sao"] body:not(.no-motion) .view.active{animation:saoViewIn var(--motion-speed) cubic-bezier(.2,.7,.2,1)}
@keyframes arcaneViewIn{from{opacity:0;transform:translateY(10px) scale(.995);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes hunterViewIn{from{opacity:0;transform:translateX(12px) rotate(.15deg)}to{opacity:1;transform:none}}
@keyframes saoViewIn{from{opacity:0;transform:translateY(4px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}

/* Reader theme fallback when story has no scene background */
html[data-theme="dark-arcane"] .reader-stage{background-image:linear-gradient(180deg,rgba(3,3,8,.08),rgba(3,3,8,.84)),url("theme-dark-arcane-wallpaper.jpg");background-size:cover;background-position:center}
html[data-theme="hunter"] .reader-stage{background-image:linear-gradient(180deg,rgba(12,20,11,.08),rgba(12,20,11,.78)),url("theme-hunter-wallpaper.jpg");background-size:cover;background-position:center}
html[data-theme="sao"] .reader-stage{background-image:linear-gradient(180deg,rgba(1,10,20,.05),rgba(1,10,20,.82)),url("theme-sao-wallpaper.jpg");background-size:cover;background-position:center}
.immersive-ui.reader-active .reader-top{opacity:.86}
.immersive-ui.reader-active .reader-controls{opacity:.9}

/* Theme launch splash */
.theme-splash,.theme-transition,.novel-portal-transition{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;pointer-events:none}
.theme-splash{background:#06050d;overflow:hidden;transition:opacity .65s ease,visibility .65s ease}
.theme-splash.done{opacity:0;visibility:hidden}
.theme-splash-backdrop{position:absolute;inset:-4%;background-image:linear-gradient(180deg,rgba(4,4,10,.20),rgba(4,4,10,.84)),var(--theme-wallpaper);background-size:cover;background-position:center;filter:saturate(1.15);animation:splashZoom 2.2s ease-out both}
.theme-splash-core{position:relative;display:grid;justify-items:center;gap:10px;text-align:center;padding:28px}
.theme-splash-emblem{width:126px;height:126px;border-radius:30px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 65%,white 10%);box-shadow:0 0 65px var(--theme-glow),0 20px 70px rgba(0,0,0,.5);animation:splashEmblem 1.25s cubic-bezier(.2,.8,.2,1) both}
.theme-splash-emblem img{width:100%;height:100%;object-fit:cover}
.theme-splash-core b{font:600 26px Georgia,serif;letter-spacing:.12em;color:white;text-shadow:0 0 22px var(--theme-glow)}
.theme-splash-core span{font-size:10px;letter-spacing:.25em;color:var(--accent-soft);font-weight:800}
html[data-theme="sao"] .theme-splash-core b{font-family:"Segoe UI",sans-serif}
@keyframes splashZoom{from{transform:scale(1.12);filter:blur(7px) saturate(.8)}to{transform:scale(1.02);filter:blur(0) saturate(1.15)}}
@keyframes splashEmblem{0%{opacity:0;transform:scale(.68) rotate(-5deg)}70%{opacity:1;transform:scale(1.05)}100%{transform:scale(1)}}

/* Theme change transition */
.theme-transition{opacity:0;visibility:hidden;background:rgba(3,4,10,.72);backdrop-filter:blur(18px);transition:opacity .2s ease,visibility .2s ease}
.theme-transition.active{opacity:1;visibility:visible}
.theme-transition-core{display:grid;justify-items:center;gap:10px}
.theme-transition-core img{width:112px;height:112px;border-radius:28px;object-fit:cover;box-shadow:0 0 65px var(--theme-glow);transform:scale(.82);transition:.35s cubic-bezier(.2,.8,.2,1)}
.theme-transition.active .theme-transition-core img{transform:scale(1)}
.theme-transition-core b{font:600 26px Georgia,serif;color:white}
.theme-transition-core span{font-size:10px;text-transform:uppercase;letter-spacing:.19em;color:var(--accent-soft)}
.theme-transition[data-transition-theme="hunter"]{background:radial-gradient(circle at center,rgba(38,81,40,.72),rgba(12,24,13,.92))}
.theme-transition[data-transition-theme="sao"]{background:linear-gradient(180deg,rgba(0,22,40,.88),rgba(0,8,18,.96))}
.theme-transition[data-transition-theme="sao"]::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 21px,rgba(77,218,255,.06) 22px,transparent 23px);animation:saoScan 1.2s linear infinite}
@keyframes saoScan{to{transform:translateY(23px)}}

/* Story portal transition */
.novel-portal-transition{opacity:0;visibility:hidden;background:#03040a;overflow:hidden;transition:opacity .22s ease,visibility .22s ease}
.novel-portal-transition.active{opacity:1;visibility:visible}
.novel-portal-cover{position:absolute;inset:-7%;background-size:cover;background-position:center;filter:blur(12px) brightness(.38) saturate(1.35);transform:scale(1.12)}
.novel-portal-ring{position:absolute;width:min(54vw,520px);aspect-ratio:1;border:2px solid var(--accent);border-radius:50%;box-shadow:0 0 40px var(--theme-glow),inset 0 0 45px var(--theme-glow);animation:portalPulse .85s ease-in-out infinite alternate}
.novel-portal-ring::before,.novel-portal-ring::after{content:"";position:absolute;inset:9%;border:1px dashed var(--accent-soft);border-radius:50%;animation:spin 7s linear infinite}
.novel-portal-ring::after{inset:22%;animation-direction:reverse;animation-duration:4.6s}
.novel-portal-copy{position:relative;z-index:2;display:grid;gap:8px;text-align:center;max-width:min(74vw,720px);padding:24px;color:white;text-shadow:0 3px 18px #000}
.novel-portal-copy small{letter-spacing:.22em;color:var(--accent-soft);font-weight:800}.novel-portal-copy b{font:600 clamp(28px,5vw,58px) Georgia,serif}.novel-portal-copy span{font-size:12px;color:#d9d2e8}
.novel-portal-transition.opening .novel-portal-ring{animation:portalOpen .32s ease-in forwards}
.novel-portal-transition.opening .novel-portal-copy{animation:portalCopyOut .3s ease forwards}
html[data-theme="hunter"] .novel-portal-ring{border-radius:16% 84% 22% 78% / 73% 28% 72% 27%;border-color:#d2af58}
html[data-theme="sao"] .novel-portal-ring{border-radius:0;clip-path:polygon(12% 0,88% 0,100% 12%,100% 88%,88% 100%,12% 100%,0 88%,0 12%);border-color:#37d9ff}
@keyframes portalPulse{from{transform:scale(.93) rotate(-2deg);opacity:.7}to{transform:scale(1.02) rotate(2deg);opacity:1}}
@keyframes portalOpen{to{transform:scale(3.7);opacity:0}}
@keyframes portalCopyOut{to{opacity:0;transform:scale(1.08)}}

/* Settings help affordance */
.setting-with-help{gap:12px}
.setting-info-copy{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;flex:1;text-align:left;background:transparent;border:0;color:inherit;padding:0;cursor:pointer}
.setting-info-copy>span{display:grid;gap:3px}.setting-info-copy small{display:block;font-size:9px;color:var(--muted);font-weight:400;line-height:1.35}
.setting-info-copy>i{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:13px;color:var(--accent-soft);border:1px solid var(--line);background:color-mix(in srgb,var(--accent) 9%,transparent);flex:0 0 auto;transition:.18s}
.setting-info-copy:hover>i{transform:scale(1.08);background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent)}
.setting-help-dialog{width:min(720px,94vw)}
.setting-help-content{display:grid;gap:14px}
.setting-help-hero{display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel2) 76%,transparent)}
.setting-help-hero img{width:88px;height:88px;border-radius:22px;object-fit:cover;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.setting-help-hero p{margin:5px 0 0;line-height:1.6;color:var(--muted)}
.setting-help-demo{position:relative;height:170px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--bg2)}
.setting-help-demo-wall{position:absolute;inset:0;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.72)),var(--theme-wallpaper);background-size:cover;background-position:center;animation:themeBackdropDrift 10s ease-in-out infinite alternate}
.setting-help-demo-card{position:absolute;left:8%;right:8%;bottom:16px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:7px;padding:13px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--panel) 82%,transparent);backdrop-filter:blur(12px);box-shadow:0 12px 35px rgba(0,0,0,.25)}
.setting-help-demo-card span{font-weight:800}.setting-help-demo-card i{width:42px;height:7px;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--accent));box-shadow:0 0 14px var(--theme-glow)}
.setting-help-example,.setting-help-impact{border:1px solid var(--line);border-radius:15px;padding:13px;background:color-mix(in srgb,var(--panel2) 68%,transparent)}
.setting-help-example{display:grid;gap:5px}.setting-help-example span{color:var(--muted);line-height:1.55}
.setting-help-impact{display:grid;grid-template-columns:1fr 1fr;gap:10px}.setting-help-impact span{display:grid;gap:4px;color:var(--muted);font-size:11px;line-height:1.45}.setting-help-impact b{color:var(--text);font-size:10px;text-transform:uppercase;letter-spacing:.08em}

/* Theme-specific notifications and badges */
html[data-theme="dark-arcane"] .toast{background:linear-gradient(135deg,#1c1131,#0b0913);border-color:#a968ff66;box-shadow:0 0 26px rgba(169,104,255,.22),0 14px 40px rgba(0,0,0,.4)}
html[data-theme="hunter"] .toast{background:linear-gradient(135deg,#2e3a20,#5a4420);border-color:#d7b35b;color:#fff2c7;box-shadow:0 0 24px rgba(203,163,70,.18),0 14px 40px rgba(0,0,0,.35)}
html[data-theme="sao"] .toast{background:linear-gradient(135deg,#05263d,#031424);border-color:#31d1ff80;color:#e9fbff;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);box-shadow:0 0 26px rgba(34,198,255,.22),0 14px 40px rgba(0,0,0,.4)}
html[data-theme="hunter"] .new-badge{background:linear-gradient(135deg,#d5b65e,#f0d98f);color:#26351f}
html[data-theme="sao"] .new-badge{background:linear-gradient(135deg,#36d9ff,#2c7cff);color:#02111f}
html[data-theme="dark-arcane"] .new-badge{background:linear-gradient(135deg,#b879ff,#7b46ff);color:#fff}

/* Make panels translucent enough for wallpaper, without hurting readability */
html[data-theme="dark-arcane"] .panel,html[data-theme="dark-arcane"] .poster-card,html[data-theme="dark-arcane"] .continue-card{background:linear-gradient(155deg,rgba(24,19,40,.90),rgba(10,8,20,.88))}
html[data-theme="sao"] .panel,html[data-theme="sao"] .poster-card,html[data-theme="sao"] .continue-card{background:linear-gradient(145deg,rgba(5,33,53,.91),rgba(2,18,32,.90))}
html[data-theme="hunter"] .panel,html[data-theme="hunter"] .poster-card,html[data-theme="hunter"] .continue-card{background:linear-gradient(145deg,rgba(249,239,205,.96),rgba(231,211,161,.94))}

/* Mobile/tablet refinement */
@media(max-width:820px){
  body::before{opacity:.22}
  .hero-premium::after{background-position:64% center}
  .theme-splash-emblem{width:104px;height:104px;border-radius:25px}
  .setting-help-impact{grid-template-columns:1fr}
}
@media(max-width:520px){
  .novel-portal-ring{width:72vw}
  .novel-portal-copy{max-width:88vw}
  .setting-help-hero{grid-template-columns:66px 1fr}
  .setting-help-hero img{width:66px;height:66px;border-radius:17px}
}

/* Respect device reduced-motion preference too */
@media(prefers-reduced-motion:reduce){
  body::before,body::after,.theme-splash-backdrop,.setting-help-demo-wall{animation:none!important}
}


/* ===== v1.9.0 — Icône fixe, Hunter V2, 4e thème Ange & Démon ===== */
html[data-theme="hunter"]{
  --bg:#03100b;--bg2:#071a12;--panel:rgba(5,27,19,.91);--panel2:#092419;--text:#f3fff7;--muted:#a8c4af;
  --line:rgba(92,221,137,.22);--accent:#4dde82;--accent2:#c9a245;--accent-soft:#d9f5c9;--theme-glow:rgba(70,218,126,.24);color-scheme:dark
}
html[data-theme="angel-demon"]{
  --bg:#080407;--bg2:#14080d;--panel:rgba(25,10,16,.91);--panel2:#241018;--text:#fff8f3;--muted:#cdb4bb;
  --line:rgba(240,188,179,.2);--accent:#e33c54;--accent2:#e9d6b8;--accent-soft:#ffe8e0;--theme-glow:rgba(216,47,75,.28);color-scheme:dark
}
.theme-picker{grid-template-columns:repeat(4,minmax(0,1fr))}
.theme-choice{grid-template-rows:165px auto}.theme-choice>img{height:165px}.fixed-app-icon-section .theme-icon-strip figure{opacity:1!important;transform:none!important}.fixed-app-icon-section .theme-icon-strip img{width:72px;height:72px;border-radius:18px;border-color:var(--accent);box-shadow:0 0 25px var(--theme-glow)}

/* Hunter V2: anime aventure premium, plus de parchemin beige */
html[data-theme="hunter"] body{background:#03100b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
html[data-theme="hunter"] body::before{opacity:.48;background-image:linear-gradient(180deg,rgba(1,12,7,.18),rgba(1,12,7,.83)),url("theme-hunter-wallpaper.jpg");filter:saturate(1.18) contrast(1.07)}
html[data-theme="hunter"] body::after{opacity:.34;background:radial-gradient(circle at 16% 14%,rgba(219,183,71,.18),transparent 20%),radial-gradient(circle at 78% 28%,rgba(61,225,126,.18),transparent 27%)}
html[data-theme="hunter"] .ambient{background:radial-gradient(circle,rgba(56,210,118,.16),transparent 62%)}
html[data-theme="hunter"] .topbar{background:linear-gradient(180deg,rgba(2,14,9,.97),rgba(3,20,13,.88));border-color:rgba(96,216,138,.22);color:#f4fff7;box-shadow:0 13px 40px rgba(0,0,0,.32)}
html[data-theme="hunter"] .brand small,html[data-theme="hunter"] .engine-badge{color:#d9e9bd}html[data-theme="hunter"] .desktop-nav button{color:#a8c6b0}html[data-theme="hunter"] .desktop-nav button.active{color:#fff;border-color:#50d98380;background:#0d4a2c78;box-shadow:0 0 26px rgba(66,219,123,.11)}
html[data-theme="hunter"] .panel,html[data-theme="hunter"] .poster-card,html[data-theme="hunter"] .continue-card,html[data-theme="hunter"] .save-overview-card,html[data-theme="hunter"] .creator-novel-card,html[data-theme="hunter"] .character-toolbar{background:linear-gradient(145deg,rgba(6,31,21,.92),rgba(3,19,13,.89));color:var(--text);border-color:rgba(89,220,137,.22);backdrop-filter:blur(15px);box-shadow:0 16px 42px rgba(0,0,0,.28)}
html[data-theme="hunter"] .hero-premium{background:linear-gradient(135deg,rgba(3,26,17,.95),rgba(4,18,13,.82));border:1px solid rgba(89,220,137,.25);box-shadow:0 24px 70px rgba(0,0,0,.32)}
html[data-theme="hunter"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(3,20,13,.96) 0%,rgba(4,30,18,.71) 48%,rgba(3,22,13,.15) 100%),url("theme-hunter-wallpaper.jpg");opacity:.90;background-position:center 42%}
html[data-theme="hunter"] .hero-premium:before{background:linear-gradient(120deg,transparent,rgba(215,183,74,.055),transparent);mask-image:none}
html[data-theme="hunter"] .hero-copy h1 span{background:linear-gradient(120deg,#eaffef,#52e084,#e1bf65);-webkit-background-clip:text;background-clip:text;color:transparent}html[data-theme="hunter"] .eyebrow{color:#66df92}
html[data-theme="hunter"] .primary{background:linear-gradient(135deg,#128347,#42c875);color:#fff;box-shadow:0 10px 28px rgba(38,190,101,.22)}html[data-theme="hunter"] .secondary{background:linear-gradient(135deg,rgba(201,162,69,.18),rgba(20,103,56,.23));color:#f7f2d7;border-color:rgba(214,179,85,.38)}html[data-theme="hunter"] .ghost,html[data-theme="hunter"] .back{background:rgba(3,20,13,.76);color:#b7cbbd;border-color:rgba(91,211,133,.20)}
html[data-theme="hunter"] .filters input,html[data-theme="hunter"] .setting-row input[type=text],html[data-theme="hunter"] .setting-row input:not([type]),html[data-theme="hunter"] .setting-row select,html[data-theme="hunter"] .character-search-field input,html[data-theme="hunter"] .character-sort-field select{background:rgba(3,21,14,.88);color:#effff4;border-color:rgba(90,214,134,.26)}
html[data-theme="hunter"] .poster-cover:after{background:linear-gradient(180deg,transparent 38%,rgba(1,12,8,.93) 98%)}html[data-theme="hunter"] .poster-shade{color:#fff;text-shadow:0 2px 12px #000}html[data-theme="hunter"] .poster-meta{background:rgba(2,17,11,.9);color:#adc5b4}html[data-theme="hunter"] .tag{background:rgba(5,32,21,.76);color:#d9f1df;border-color:rgba(101,221,143,.25)}
html[data-theme="hunter"] .bottom-nav{background:linear-gradient(180deg,rgba(3,22,14,.97),rgba(2,13,9,.98));border-color:rgba(98,220,139,.28);color:#eaffef}html[data-theme="hunter"] .bottom-nav button{color:#9fb9a7}html[data-theme="hunter"] .bottom-nav button.active{background:linear-gradient(135deg,rgba(23,128,67,.48),rgba(205,166,73,.18));color:#fff;box-shadow:inset 0 0 0 1px rgba(104,224,146,.3),0 0 24px rgba(59,204,112,.12)}
html[data-theme="hunter"] .notice,html[data-theme="hunter"] .creator-access-status,html[data-theme="hunter"] .creator-visibility-row{background:rgba(5,28,19,.9);color:#bfd5c5;border-color:rgba(95,217,138,.22)}html[data-theme="hunter"] code{background:rgba(198,163,74,.14);color:#f3dda4}
html[data-theme="hunter"] .modal{background:#071b12;color:#effff4;border-color:rgba(97,217,139,.28)}html[data-theme="hunter"] .modal::backdrop{background:rgba(0,10,6,.8)}
html[data-theme="hunter"] .reader-view.active,html[data-theme="hunter"] .reader-shell{background:#020b07}html[data-theme="hunter"] .reader-stage{background-image:linear-gradient(180deg,rgba(1,12,7,.10),rgba(1,12,7,.84)),url("theme-hunter-wallpaper.jpg");background-position:center;background-size:cover}html[data-theme="hunter"] .reader-top{color:#effff4}html[data-theme="hunter"] .reader-icon{background:#0a281a;border-color:rgba(201,163,69,.38);color:#f2edcf}html[data-theme="hunter"] .narration-card,html[data-theme="hunter"] .dialogue-box,html[data-theme="hunter"] .choice-panel{background:linear-gradient(135deg,rgba(5,34,22,.94),rgba(3,20,14,.92));color:#effff4;border-color:rgba(87,216,133,.28)}html[data-theme="hunter"] .narration,html[data-theme="hunter"] .dialogue-text{color:#f2fff6;text-shadow:0 2px 10px rgba(0,0,0,.6)}html[data-theme="hunter"] .speaker{color:#67e49a}html[data-theme="hunter"] .choice-list button{background:#0b2b1c;color:#eaffef;border-color:rgba(211,174,77,.35)}
html[data-theme="hunter"] .page-header h1,html[data-theme="hunter"] .page-header>div>p,html[data-theme="hunter"] .library-section>.section-head h2{color:#f3fff7;text-shadow:0 2px 18px rgba(0,0,0,.5)}

/* Ange & Démon: clair-obscur gothique céleste */
html[data-theme="angel-demon"] body{background:#080407}
html[data-theme="angel-demon"] body::before{opacity:.46;background-image:linear-gradient(90deg,rgba(245,232,220,.08),rgba(18,4,9,.34) 48%,rgba(30,1,6,.70)),url("theme-angel-demon-wallpaper.jpg");filter:saturate(1.06) contrast(1.04)}
html[data-theme="angel-demon"] body::after{opacity:.34;background:radial-gradient(circle at 22% 18%,rgba(255,238,218,.17),transparent 22%),radial-gradient(circle at 80% 25%,rgba(225,42,67,.22),transparent 27%)}
html[data-theme="angel-demon"] .ambient{background:radial-gradient(circle,rgba(221,54,79,.14),transparent 62%)}
html[data-theme="angel-demon"] .topbar{background:linear-gradient(180deg,rgba(12,5,8,.98),rgba(20,7,11,.88));border-color:rgba(239,198,188,.18);box-shadow:0 14px 44px rgba(0,0,0,.34)}
html[data-theme="angel-demon"] .desktop-nav button{color:#cdb4bb}html[data-theme="angel-demon"] .desktop-nav button.active{color:#fff7f3;border-color:rgba(227,60,84,.55);background:rgba(105,15,31,.28)}
html[data-theme="angel-demon"] .panel,html[data-theme="angel-demon"] .poster-card,html[data-theme="angel-demon"] .continue-card,html[data-theme="angel-demon"] .save-overview-card,html[data-theme="angel-demon"] .creator-novel-card,html[data-theme="angel-demon"] .character-toolbar{background:linear-gradient(145deg,rgba(28,11,17,.92),rgba(11,6,9,.90));border-color:rgba(239,190,181,.18);backdrop-filter:blur(15px);box-shadow:0 18px 48px rgba(0,0,0,.32)}
html[data-theme="angel-demon"] .hero-premium{background:linear-gradient(135deg,rgba(27,10,15,.95),rgba(11,5,8,.88));border-color:rgba(239,190,181,.22)}html[data-theme="angel-demon"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(18,7,11,.96) 0%,rgba(22,8,12,.73) 46%,rgba(31,4,8,.20) 100%),url("theme-angel-demon-wallpaper.jpg");opacity:.88;background-position:center 42%}html[data-theme="angel-demon"] .hero-copy h1 span{background:linear-gradient(120deg,#fff8ee,#e7d2b7,#e33c54);-webkit-background-clip:text;background-clip:text;color:transparent}html[data-theme="angel-demon"] .eyebrow{color:#f3b5bd}
html[data-theme="angel-demon"] .primary{background:linear-gradient(135deg,#9b1831,#e33c54);box-shadow:0 10px 30px rgba(213,42,70,.23)}html[data-theme="angel-demon"] .secondary{background:linear-gradient(135deg,rgba(238,216,184,.11),rgba(133,22,40,.18));border-color:rgba(239,207,190,.24);color:#fff5ec}html[data-theme="angel-demon"] .ghost,html[data-theme="angel-demon"] .back{background:rgba(15,7,10,.76);border-color:rgba(239,195,185,.16);color:#cdb5bb}
html[data-theme="angel-demon"] .filters input,html[data-theme="angel-demon"] .setting-row input[type=text],html[data-theme="angel-demon"] .setting-row input:not([type]),html[data-theme="angel-demon"] .setting-row select,html[data-theme="angel-demon"] .character-search-field input,html[data-theme="angel-demon"] .character-sort-field select{background:rgba(17,7,11,.88);color:#fff8f3;border-color:rgba(235,190,180,.20)}
html[data-theme="angel-demon"] .tag{background:rgba(45,10,18,.62);color:#ffe4df;border-color:rgba(235,177,175,.24)}html[data-theme="angel-demon"] .poster-cover:after{background:linear-gradient(180deg,transparent 38%,rgba(11,3,7,.94) 98%)}html[data-theme="angel-demon"] .poster-meta{background:rgba(16,6,10,.91);color:#ceb4bb}
html[data-theme="angel-demon"] .bottom-nav{background:linear-gradient(180deg,rgba(21,8,13,.98),rgba(8,4,6,.99));border-color:rgba(239,188,180,.2)}html[data-theme="angel-demon"] .bottom-nav button{color:#c6aeb4}html[data-theme="angel-demon"] .bottom-nav button.active{background:linear-gradient(135deg,rgba(156,23,49,.42),rgba(234,215,187,.11));color:#fff7f0;box-shadow:inset 0 0 0 1px rgba(232,181,179,.22)}
html[data-theme="angel-demon"] .modal{background:#170a0f;color:#fff7f2;border-color:rgba(239,192,183,.23)}html[data-theme="angel-demon"] .modal::backdrop{background:rgba(10,2,5,.82)}html[data-theme="angel-demon"] .notice,html[data-theme="angel-demon"] .creator-access-status,html[data-theme="angel-demon"] .creator-visibility-row{background:rgba(27,10,16,.88);color:#d7bbc1;border-color:rgba(233,182,178,.20)}
html[data-theme="angel-demon"] .reader-view.active,html[data-theme="angel-demon"] .reader-shell{background:#070305}html[data-theme="angel-demon"] .reader-stage{background-image:linear-gradient(180deg,rgba(8,2,5,.08),rgba(8,2,5,.84)),url("theme-angel-demon-wallpaper.jpg");background-position:center;background-size:cover}html[data-theme="angel-demon"] .reader-top{color:#fff7f1}html[data-theme="angel-demon"] .reader-icon{background:#251017;border-color:rgba(236,190,181,.22);color:#fff0e8}html[data-theme="angel-demon"] .narration-card,html[data-theme="angel-demon"] .dialogue-box,html[data-theme="angel-demon"] .choice-panel{background:linear-gradient(135deg,rgba(29,10,17,.94),rgba(13,6,9,.92));color:#fff7f2;border-color:rgba(234,183,177,.24)}html[data-theme="angel-demon"] .speaker{color:#f0c2bb}html[data-theme="angel-demon"] .choice-list button{background:#281018;color:#fff2ec;border-color:rgba(222,74,94,.32)}
html[data-theme="angel-demon"] .toast{background:linear-gradient(135deg,#2b0e16,#11060a);border-color:rgba(227,60,84,.60);color:#fff3ef;box-shadow:0 0 28px rgba(213,42,70,.20),0 14px 40px rgba(0,0,0,.4)}html[data-theme="angel-demon"] .new-badge{background:linear-gradient(135deg,#f1dfca,#dc3851);color:#24060d}
html[data-theme="angel-demon"] .theme-transition{background:radial-gradient(circle at 35% 45%,rgba(245,232,218,.24),transparent 32%),radial-gradient(circle at 70% 48%,rgba(174,23,48,.36),transparent 40%),rgba(9,3,6,.92)}html[data-theme="angel-demon"] .novel-portal-ring{border-color:#e1c8b0;box-shadow:0 0 36px rgba(246,224,201,.18),0 0 80px rgba(207,34,61,.18),inset 0 0 45px rgba(210,45,70,.18)}
html[data-theme="angel-demon"] .theme-splash-core b{letter-spacing:.08em}

/* true wallpaper previews and fixed identity */
html[data-theme="dark-arcane"] body::before{opacity:.40}
html[data-theme="sao"] body::before{opacity:.42}
html[data-theme="angel-demon"] .setting-help-demo-wall{background-image:linear-gradient(180deg,transparent,rgba(7,2,5,.75)),url("theme-angel-demon-wallpaper.jpg")}

@keyframes angelViewIn{from{opacity:0;transform:translateY(10px) scale(.99);filter:brightness(1.35) blur(4px)}to{opacity:1;transform:none;filter:none}}
html[data-theme="angel-demon"] body:not(.no-motion) .view.active{animation:angelViewIn var(--motion-speed) cubic-bezier(.2,.7,.2,1)}

@media(max-width:1100px){.theme-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.theme-picker{grid-template-columns:1fr}.theme-choice{grid-template-rows:135px auto}.theme-choice>img{height:135px}}

/* ===== v1.10.0 — UNIVERS V2 : thèmes réellement différenciés ===== */
html[data-theme="dark-arcane"]{
  --bg:#04030a;--bg2:#090613;--panel:rgba(10,7,20,.89);--panel2:#100a22;--text:#fbf8ff;--muted:#b8a9cf;
  --line:rgba(168,111,255,.24);--accent:#a65cff;--accent2:#5a34ff;--accent-soft:#e0c7ff;--theme-glow:rgba(124,66,255,.32)
}
html[data-theme="sao"]{
  --bg:#020914;--bg2:#041426;--panel:rgba(4,20,36,.91);--panel2:#061b31;--text:#f4fbff;--muted:#9dbed1;
  --line:rgba(58,203,255,.24);--accent:#35d8ff;--accent2:#3177ff;--accent-soft:#c8f2ff;--theme-glow:rgba(44,195,255,.30)
}

/* True-image wallpaper treatment: portrait assets, less blur, more visible scene. */
html[data-theme="dark-arcane"] body::before,
html[data-theme="hunter"] body::before,
html[data-theme="sao"] body::before,
html[data-theme="angel-demon"] body::before{
  inset:0;transform:scale(1.015);background-size:cover;background-position:center top;background-repeat:no-repeat;
  animation:themeBackdropDriftV2 34s ease-in-out infinite alternate;filter:none
}
html[data-theme="dark-arcane"] body::before{opacity:.62;background-image:linear-gradient(180deg,rgba(2,1,7,.08),rgba(3,2,9,.46) 42%,rgba(3,2,9,.88) 100%),url("theme-dark-arcane-wallpaper.jpg")}
html[data-theme="hunter"] body::before{opacity:.64;background-image:linear-gradient(180deg,rgba(1,10,6,.05),rgba(1,15,8,.46) 42%,rgba(1,10,6,.90) 100%),url("theme-hunter-wallpaper.jpg")}
html[data-theme="sao"] body::before{opacity:.64;background-image:linear-gradient(180deg,rgba(0,12,25,.04),rgba(0,15,30,.48) 44%,rgba(0,8,20,.91) 100%),url("theme-sao-wallpaper.jpg")}
html[data-theme="angel-demon"] body::before{opacity:.68;background-image:linear-gradient(180deg,rgba(15,2,6,.03),rgba(13,3,7,.42) 44%,rgba(9,2,5,.91) 100%),url("theme-angel-demon-wallpaper.jpg")}
@keyframes themeBackdropDriftV2{from{transform:scale(1.015) translate3d(0,-.2%,0)}to{transform:scale(1.04) translate3d(.35%,.35%,0)}}
.background-static::before{transform:none!important}

/* DARK ARCANE V2 — SOLO TACTIQUE / eclipse / tactical monarchy */
html[data-theme="dark-arcane"] body::after{opacity:.46;background:
  radial-gradient(circle at 50% 8%,rgba(151,86,255,.26),transparent 21%),
  radial-gradient(circle at 76% 34%,rgba(65,27,149,.25),transparent 28%),
  repeating-radial-gradient(circle at 50% 28%,transparent 0 64px,rgba(161,103,255,.025) 65px 66px,transparent 67px 88px)}
html[data-theme="dark-arcane"] .topbar{background:linear-gradient(180deg,rgba(4,2,10,.98),rgba(7,4,15,.90));border-color:rgba(168,111,255,.24);box-shadow:0 14px 50px rgba(34,5,72,.30)}
html[data-theme="dark-arcane"] .panel,html[data-theme="dark-arcane"] .poster-card,html[data-theme="dark-arcane"] .continue-card,html[data-theme="dark-arcane"] .save-overview-card,html[data-theme="dark-arcane"] .creator-novel-card,html[data-theme="dark-arcane"] .character-toolbar{background:
  linear-gradient(145deg,rgba(14,8,29,.91),rgba(5,4,12,.88));border-color:rgba(174,118,255,.24);backdrop-filter:blur(16px);box-shadow:0 18px 52px rgba(0,0,0,.34),inset 0 1px 0 rgba(218,190,255,.035)}
html[data-theme="dark-arcane"] .panel{position:relative}html[data-theme="dark-arcane"] .panel::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(169,96,255,.08),transparent 23%,transparent 74%,rgba(78,46,255,.07));mix-blend-mode:screen}
html[data-theme="dark-arcane"] .hero-premium{border-color:rgba(177,118,255,.34);background:linear-gradient(135deg,rgba(8,4,19,.96),rgba(4,3,10,.79));box-shadow:0 28px 80px rgba(6,2,14,.46),0 0 55px rgba(105,55,255,.10)}
html[data-theme="dark-arcane"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(5,2,13,.96) 0%,rgba(7,4,17,.70) 47%,rgba(5,3,12,.12) 100%),url("theme-dark-arcane-wallpaper.jpg");opacity:.96;background-position:center 24%}
html[data-theme="dark-arcane"] .hero-orb{border-radius:24px;overflow:hidden;width:min(330px,78%);background:rgba(10,5,20,.5);box-shadow:0 0 80px rgba(113,58,255,.24);transform:rotate(-1deg)}
html[data-theme="dark-arcane"] .hero-orb img{width:100%;height:100%;object-fit:cover;border-radius:24px;opacity:.94}
html[data-theme="dark-arcane"] .hero-orb:before{inset:8%;border-radius:22px;transform:none;clip-path:none;box-shadow:0 0 28px rgba(168,99,255,.22)}
html[data-theme="dark-arcane"] .hero-orb:after{inset:18%;border-radius:50%;border-style:solid;border-color:rgba(195,151,255,.18)}
html[data-theme="dark-arcane"] .primary{background:linear-gradient(135deg,#a95fff,#5838ff);box-shadow:0 10px 34px rgba(106,53,255,.31),inset 0 1px 0 rgba(255,255,255,.13)}
html[data-theme="dark-arcane"] .secondary{background:linear-gradient(135deg,rgba(132,65,214,.21),rgba(34,18,73,.40));border-color:rgba(176,118,255,.30)}
html[data-theme="dark-arcane"] .poster-card:hover,html[data-theme="dark-arcane"] .continue-card:hover{border-color:rgba(184,126,255,.58);box-shadow:0 24px 58px rgba(0,0,0,.40),0 0 42px rgba(120,63,255,.14)}
html[data-theme="dark-arcane"] .tag{background:rgba(26,13,55,.72);border-color:rgba(173,116,255,.25);color:#e6d7ff}
html[data-theme="dark-arcane"] .bottom-nav{background:linear-gradient(180deg,rgba(8,4,18,.98),rgba(3,2,9,.99));border-color:rgba(164,105,255,.27);box-shadow:0 -10px 40px rgba(34,7,77,.18)}
html[data-theme="dark-arcane"] .bottom-nav button.active{background:radial-gradient(circle at 50% 0%,rgba(165,93,255,.35),rgba(92,48,202,.19));color:#fff;box-shadow:inset 0 0 0 1px rgba(181,128,255,.30),0 0 30px rgba(117,61,255,.12)}
html[data-theme="dark-arcane"] .reader-stage{background-image:linear-gradient(180deg,rgba(3,2,8,.06),rgba(3,2,8,.80)),url("theme-dark-arcane-wallpaper.jpg");background-position:center 26%}
html[data-theme="dark-arcane"] .narration-card,html[data-theme="dark-arcane"] .dialogue-box,html[data-theme="dark-arcane"] .choice-panel{background:linear-gradient(140deg,rgba(11,6,24,.95),rgba(6,4,14,.90));border-color:rgba(175,117,255,.28);box-shadow:0 22px 60px rgba(0,0,0,.42),0 0 34px rgba(116,61,255,.08)}
html[data-theme="dark-arcane"] .speaker{color:#cda6ff;text-shadow:0 0 18px rgba(158,91,255,.28)}

/* HUNTER V3 — darker anime expedition, guild badges, emerald + gold */
html[data-theme="hunter"]{--accent:#45e184;--accent2:#d0a846;--accent-soft:#dcffd9;--line:rgba(88,224,138,.25);--theme-glow:rgba(52,218,116,.28)}
html[data-theme="hunter"] body::after{opacity:.43;background:
  radial-gradient(circle at 14% 12%,rgba(223,185,72,.21),transparent 18%),
  radial-gradient(circle at 82% 25%,rgba(54,225,124,.20),transparent 27%),
  linear-gradient(115deg,transparent 0 48%,rgba(230,193,84,.025) 49%,transparent 50%)}
html[data-theme="hunter"] .topbar{background:linear-gradient(180deg,rgba(1,15,9,.985),rgba(3,24,14,.91));border-color:rgba(84,220,133,.28);box-shadow:0 14px 46px rgba(0,0,0,.35)}
html[data-theme="hunter"] .panel,html[data-theme="hunter"] .poster-card,html[data-theme="hunter"] .continue-card,html[data-theme="hunter"] .save-overview-card,html[data-theme="hunter"] .creator-novel-card,html[data-theme="hunter"] .character-toolbar{background:linear-gradient(145deg,rgba(4,31,18,.92),rgba(2,17,10,.89));border-color:rgba(82,224,136,.25);box-shadow:0 18px 46px rgba(0,0,0,.34),inset 0 1px 0 rgba(224,187,84,.035)}
html[data-theme="hunter"] .panel{position:relative}html[data-theme="hunter"] .panel::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,rgba(225,190,79,.07),transparent 21%,transparent 79%,rgba(61,220,123,.07))}
html[data-theme="hunter"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(1,18,9,.97) 0%,rgba(2,29,15,.73) 48%,rgba(1,16,8,.12) 100%),url("theme-hunter-wallpaper.jpg");opacity:.96;background-position:center 31%}
html[data-theme="hunter"] .hero-copy h1 span{background:linear-gradient(120deg,#f4ffd9,#4fe48a,#e1ba58);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="hunter"] .primary{background:linear-gradient(135deg,#13884a,#3fcf78);border:1px solid rgba(126,242,164,.18);box-shadow:0 10px 30px rgba(22,170,82,.26)}
html[data-theme="hunter"] .secondary{background:linear-gradient(135deg,rgba(199,158,55,.20),rgba(10,78,39,.32));border-color:rgba(221,181,75,.38);color:#fff8db}
html[data-theme="hunter"] .tag{background:linear-gradient(180deg,rgba(6,51,28,.90),rgba(3,31,18,.90));border-color:rgba(215,177,73,.30);color:#efffdc;box-shadow:inset 0 0 0 1px rgba(61,221,122,.08)}
html[data-theme="hunter"] .new-badge{background:linear-gradient(135deg,#e4c66e,#4fdf87);color:#04150c}
html[data-theme="hunter"] .fav-btn,html[data-theme="hunter"] .delete-btn{border-color:rgba(213,176,71,.33);background:rgba(2,25,14,.82)}
html[data-theme="hunter"] .bottom-nav{background:linear-gradient(180deg,rgba(2,25,14,.985),rgba(1,12,7,.995));border-color:rgba(211,174,70,.31);box-shadow:0 -9px 35px rgba(0,0,0,.30)}
html[data-theme="hunter"] .bottom-nav button.active{background:linear-gradient(135deg,rgba(18,126,63,.58),rgba(184,143,46,.20));color:#fffbdc;box-shadow:inset 0 0 0 1px rgba(217,179,73,.36),0 0 25px rgba(47,214,111,.13)}
html[data-theme="hunter"] .reader-stage{background-image:linear-gradient(180deg,rgba(1,11,6,.05),rgba(1,11,6,.78)),url("theme-hunter-wallpaper.jpg");background-position:center 31%}
html[data-theme="hunter"] .narration-card,html[data-theme="hunter"] .dialogue-box,html[data-theme="hunter"] .choice-panel{background:linear-gradient(145deg,rgba(4,35,20,.95),rgba(2,21,12,.91));border-color:rgba(212,177,77,.28);box-shadow:0 20px 55px rgba(0,0,0,.38)}
html[data-theme="hunter"] .speaker{color:#73ef9e}html[data-theme="hunter"] .choice-list button span{border-color:rgba(220,181,76,.36);color:#f0d98a}

/* SAO V2 — Le Dernier Chasseur + elegant VR HUD */
html[data-theme="sao"] body::after{opacity:.50;background:
  repeating-linear-gradient(0deg,transparent 0 30px,rgba(58,215,255,.038) 31px,transparent 32px),
  repeating-linear-gradient(90deg,transparent 0 80px,rgba(58,215,255,.026) 81px,transparent 82px),
  radial-gradient(circle at 78% 15%,rgba(50,211,255,.24),transparent 22%)}
html[data-theme="sao"] .topbar{background:linear-gradient(180deg,rgba(1,14,28,.985),rgba(2,24,43,.91));border-color:rgba(62,209,255,.28);box-shadow:0 14px 48px rgba(0,13,31,.38)}
html[data-theme="sao"] .panel,html[data-theme="sao"] .poster-card,html[data-theme="sao"] .continue-card,html[data-theme="sao"] .save-overview-card,html[data-theme="sao"] .creator-novel-card,html[data-theme="sao"] .character-toolbar{background:
  linear-gradient(145deg,rgba(3,29,51,.91),rgba(1,14,28,.90));border-color:rgba(57,211,255,.25);border-radius:12px;box-shadow:0 18px 50px rgba(0,11,27,.38),inset 0 1px 0 rgba(148,232,255,.05)}
html[data-theme="sao"] .panel{position:relative}html[data-theme="sao"] .panel::before{content:"";position:absolute;inset:6px;border:1px solid rgba(71,211,255,.06);border-radius:8px;pointer-events:none;clip-path:polygon(0 0,32px 0,32px 1px,1px 1px,1px 32px,0 32px,0 100%,100% 100%,100% 0)}
html[data-theme="sao"] .hero-premium{border-radius:13px;border-color:rgba(58,216,255,.34);background:linear-gradient(135deg,rgba(2,23,43,.96),rgba(1,12,25,.83))}
html[data-theme="sao"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(1,18,35,.97) 0%,rgba(2,30,53,.69) 48%,rgba(1,18,32,.10) 100%),url("theme-sao-wallpaper.jpg");opacity:.97;background-position:center 28%}
html[data-theme="sao"] .hero-copy h1 span{background:linear-gradient(120deg,#f3fdff,#4fe6ff,#4f86ff);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="sao"] .primary{background:linear-gradient(135deg,#18b9ee,#3174ff);border:1px solid rgba(136,232,255,.20);box-shadow:0 0 0 1px rgba(62,211,255,.08),0 10px 34px rgba(20,152,240,.28)}
html[data-theme="sao"] .secondary{background:linear-gradient(135deg,rgba(32,179,228,.16),rgba(30,74,161,.25));border-color:rgba(74,217,255,.34);color:#e8fbff}
html[data-theme="sao"] .ghost,html[data-theme="sao"] .back{background:rgba(1,18,34,.79);border-color:rgba(66,208,250,.20);color:#a9cde0}
html[data-theme="sao"] .tag{border-radius:5px;background:rgba(5,41,72,.78);border-color:rgba(70,217,255,.28);color:#dff8ff}
html[data-theme="sao"] .poster-card,html[data-theme="sao"] .continue-card{border-radius:10px}html[data-theme="sao"] .poster-card:hover{transform:translateY(-4px);border-color:rgba(68,219,255,.57);box-shadow:0 22px 52px rgba(0,11,30,.46),0 0 32px rgba(43,195,255,.13)}
html[data-theme="sao"] .poster-progress i,html[data-theme="sao"] .progress-line i,html[data-theme="sao"] .reader-progress{box-shadow:0 0 14px rgba(63,220,255,.45)}
html[data-theme="sao"] .bottom-nav{background:linear-gradient(180deg,rgba(2,26,47,.99),rgba(1,12,24,.995));border-color:rgba(60,213,255,.31);border-radius:10px;box-shadow:0 -8px 36px rgba(0,18,42,.35)}
html[data-theme="sao"] .bottom-nav button{border-radius:7px;color:#96bbcf}html[data-theme="sao"] .bottom-nav button.active{background:linear-gradient(180deg,rgba(27,181,232,.24),rgba(34,83,176,.23));color:#f2fdff;box-shadow:inset 0 0 0 1px rgba(79,218,255,.34),0 0 25px rgba(43,199,255,.16)}
html[data-theme="sao"] .reader-stage{background-image:linear-gradient(180deg,rgba(0,13,28,.04),rgba(0,10,23,.78)),url("theme-sao-wallpaper.jpg");background-position:center 28%}
html[data-theme="sao"] .reader-icon{border-radius:7px;background:rgba(4,35,59,.92);border-color:rgba(72,213,255,.27);color:#dffaff;box-shadow:inset 0 0 14px rgba(31,178,226,.08)}
html[data-theme="sao"] .narration-card,html[data-theme="sao"] .dialogue-box,html[data-theme="sao"] .choice-panel{border-radius:10px;background:linear-gradient(145deg,rgba(3,32,55,.95),rgba(1,17,31,.92));border-color:rgba(62,213,255,.28);box-shadow:0 22px 58px rgba(0,8,22,.44),inset 0 0 30px rgba(26,170,218,.04)}
html[data-theme="sao"] .speaker{color:#72e9ff;text-shadow:0 0 15px rgba(58,215,255,.30)}

/* ANGE & DÉMON V2 — forbidden romance / cathedral / stained glass */
html[data-theme="angel-demon"] body::after{opacity:.48;background:
  radial-gradient(circle at 18% 11%,rgba(255,244,225,.23),transparent 21%),
  radial-gradient(circle at 84% 22%,rgba(227,43,69,.27),transparent 26%),
  linear-gradient(90deg,rgba(255,238,213,.025),transparent 45%,rgba(195,22,48,.035))}
html[data-theme="angel-demon"] .panel,html[data-theme="angel-demon"] .poster-card,html[data-theme="angel-demon"] .continue-card,html[data-theme="angel-demon"] .save-overview-card,html[data-theme="angel-demon"] .creator-novel-card,html[data-theme="angel-demon"] .character-toolbar{background:linear-gradient(145deg,rgba(28,10,16,.92),rgba(9,4,7,.89));border-color:rgba(243,204,192,.23);box-shadow:0 19px 52px rgba(0,0,0,.37),inset 0 1px 0 rgba(255,241,224,.035)}
html[data-theme="angel-demon"] .panel{position:relative}html[data-theme="angel-demon"] .panel::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,rgba(255,238,217,.055),transparent 26%,transparent 72%,rgba(226,45,72,.075))}
html[data-theme="angel-demon"] .hero-premium::after{background-image:linear-gradient(90deg,rgba(19,6,10,.97) 0%,rgba(23,7,12,.70) 48%,rgba(30,4,9,.12) 100%),url("theme-angel-demon-wallpaper.jpg");opacity:.97;background-position:center 20%}
html[data-theme="angel-demon"] .hero-copy h1 span{background:linear-gradient(120deg,#fff8eb,#f0ddc1 42%,#ea4861);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="angel-demon"] .primary{background:linear-gradient(135deg,#a91634,#e2465d);box-shadow:0 10px 32px rgba(198,29,56,.30)}
html[data-theme="angel-demon"] .secondary{background:linear-gradient(135deg,rgba(242,220,190,.13),rgba(121,16,35,.23));border-color:rgba(239,205,189,.29)}
html[data-theme="angel-demon"] .tag{background:linear-gradient(90deg,rgba(242,223,199,.10),rgba(105,15,33,.28));border-color:rgba(239,197,187,.25);color:#ffe9e2}
html[data-theme="angel-demon"] .bottom-nav{background:linear-gradient(180deg,rgba(24,7,13,.99),rgba(7,3,5,.995));border-color:rgba(241,201,190,.25);box-shadow:0 -10px 38px rgba(82,7,21,.20)}
html[data-theme="angel-demon"] .bottom-nav button.active{background:linear-gradient(135deg,rgba(244,218,188,.12),rgba(157,21,46,.42));color:#fff8ed;box-shadow:inset 0 0 0 1px rgba(240,198,187,.29),0 0 25px rgba(211,38,65,.11)}
html[data-theme="angel-demon"] .reader-stage{background-image:linear-gradient(180deg,rgba(10,2,5,.04),rgba(9,2,5,.80)),url("theme-angel-demon-wallpaper.jpg");background-position:center 20%}
html[data-theme="angel-demon"] .narration-card,html[data-theme="angel-demon"] .dialogue-box,html[data-theme="angel-demon"] .choice-panel{background:linear-gradient(145deg,rgba(29,9,16,.95),rgba(12,5,8,.92));border-color:rgba(239,199,188,.27);box-shadow:0 22px 60px rgba(0,0,0,.43),0 0 34px rgba(200,35,61,.06)}
html[data-theme="angel-demon"] .speaker{color:#f2cfc4;text-shadow:0 0 16px rgba(229,58,82,.22)}

/* Theme selection: make the image the first thing you feel. */
.theme-choice{grid-template-rows:190px auto;border-width:1px;background:rgba(6,5,12,.82);backdrop-filter:blur(14px)}
.theme-choice>img{height:190px;filter:saturate(1.08) contrast(1.05);transition:transform .35s ease,filter .35s ease}
.theme-choice:hover>img,.theme-choice.active>img{transform:scale(1.035);filter:saturate(1.18) contrast(1.08)}
.theme-choice>span{background:linear-gradient(180deg,rgba(8,6,15,.30),rgba(8,6,15,.80))}
html[data-theme="hunter"] .theme-choice>span{background:linear-gradient(180deg,rgba(3,25,14,.38),rgba(2,18,10,.90))}
html[data-theme="sao"] .theme-choice>span{background:linear-gradient(180deg,rgba(2,25,45,.38),rgba(1,14,28,.90))}
html[data-theme="angel-demon"] .theme-choice>span{background:linear-gradient(180deg,rgba(32,8,14,.34),rgba(12,4,7,.91))}

/* Contextual help inherits the universe more strongly. */
.setting-help-dialog{border-color:var(--line);box-shadow:0 28px 90px rgba(0,0,0,.52),0 0 42px var(--theme-glow)}
.setting-help-demo{height:190px}.setting-help-demo-wall{background-position:center 22%;filter:saturate(1.08)}
.setting-help-demo-card{border-color:color-mix(in srgb,var(--accent) 28%,var(--line));box-shadow:0 15px 42px rgba(0,0,0,.32),0 0 22px color-mix(in srgb,var(--accent) 10%,transparent)}

/* Mobile/tablet: keep the immersive image visible without crushing content. */
@media(max-width:980px){
  .hero-premium::after{background-position:center 16%}
  html[data-theme="dark-arcane"] .hero-premium::after{background-position:center 18%}
  html[data-theme="hunter"] .hero-premium::after{background-position:center 24%}
  html[data-theme="sao"] .hero-premium::after{background-position:center 20%}
  html[data-theme="angel-demon"] .hero-premium::after{background-position:center 16%}
  .theme-choice{grid-template-rows:170px auto}.theme-choice>img{height:170px}
}
@media(max-width:620px){.theme-choice{grid-template-rows:145px auto}.theme-choice>img{height:145px}}

/* ===== v1.10.1 — Correctifs lecteur / missions / liens Codex ===== */
.codex-link{
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(185,140,255,.18);
}
.reader-stage{
  scroll-padding-top:34px;
  scroll-padding-bottom:46px;
}
.reader-stage .scene-content{
  box-sizing:border-box;
}
.mission-story{
  width:min(840px,92%);
  margin:0 auto 14px;
}
.mission-story .narration{
  margin-top:8px;
}
.status-lines>div,
.system-lines>div{
  min-width:0;
}
.status-lines b,
.system-lines b{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:normal;
}
.status-window.status-mission .status-lines>div{
  grid-template-columns:minmax(120px,.34fr) minmax(0,1fr);
  align-items:start;
}
.modal-head{
  position:sticky;
  top:-8px;
  z-index:20;
  padding:8px 2px 6px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 96%,transparent),color-mix(in srgb,var(--bg) 90%,transparent) 78%,transparent);
  backdrop-filter:blur(16px);
}
.modal-close{
  flex:0 0 auto;
  color:inherit;
  cursor:pointer;
  touch-action:manipulation;
}
@media(max-width:680px){
  .reader-stage .scene-content{
    padding-left:12px;
    padding-right:12px;
    padding-bottom:max(38px,calc(env(safe-area-inset-bottom) + 26px));
  }
  .status-window,
  .system-window,
  .mission-story{
    width:100%;
  }
  .status-window,
  .system-window{
    padding:20px 16px;
    border-radius:18px;
  }
  .status-window h2,
  .system-window h2{
    overflow-wrap:anywhere;
  }
  .status-window.status-mission .status-lines>div,
  .status-lines>div,
  .system-lines>div{
    grid-template-columns:1fr;
    gap:5px;
    padding:11px 12px;
  }
  .status-lines span,
  .system-lines span{
    font-size:9px;
    line-height:1.35;
  }
  .status-lines b,
  .system-lines b{
    font-size:14px;
    line-height:1.5;
  }
  .character-modal,
  .universe-modal{
    width:calc(100vw - 12px);
    max-width:none;
    max-height:calc(100dvh - 12px);
    border-radius:18px;
  }
  .character-modal .modal-card,
  .universe-modal .modal-card{
    padding:6px;
  }
  .character-modal .modal-head,
  .universe-modal .modal-head{
    top:-6px;
    margin:0 0 6px;
    padding:10px 4px 8px;
  }
  .modal-head h3{
    font-size:22px;
    margin-bottom:8px;
  }
  .modal-close{
    width:42px;
    height:42px;
    font-size:25px;
  }
}

/* ===== v1.11.0 — WebNovels multi-saisons + quatrièmes de couverture ===== */
.series-backcover-panel{margin:22px 0;padding:22px;border-radius:24px;position:relative;overflow:hidden}
.series-backcover-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.055),transparent 45%);pointer-events:none}
.series-backcover-panel .backcover-copy{white-space:pre-line;line-height:1.75;color:var(--muted,#b8bdd1);max-width:900px;margin:8px 0 0}
.series-summary-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.series-summary-row span{padding:7px 10px;border:1px solid var(--line,rgba(255,255,255,.12));border-radius:999px;background:rgba(0,0,0,.18);font-size:.82rem}
.season-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:18px;margin-top:16px}
.season-card{position:relative;overflow:hidden;border-radius:26px;border:1px solid var(--line,rgba(255,255,255,.12));background:rgba(8,10,18,.72);box-shadow:0 18px 50px rgba(0,0,0,.2)}
.season-card-cover{height:170px;background-size:cover;background-position:center;position:relative}.season-card-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(5,6,12,.94))}
.season-card-head{position:absolute;left:18px;right:18px;bottom:15px;z-index:2}.season-card-head small{display:block;opacity:.72;text-transform:uppercase;letter-spacing:.12em}.season-card-head h3{margin:4px 0 0;font-size:1.22rem}
.season-card-body{padding:18px}.season-card-body .season-backcover{white-space:pre-line;line-height:1.58;color:var(--muted,#b8bdd1);min-height:4.8em}.season-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.season-card-meta span{font-size:.78rem;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--line,rgba(255,255,255,.1))}
.season-progress{height:5px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin:12px 0 14px}.season-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent,#8f72ff),var(--accent-2,#45d7ff))}
.season-actions{display:flex;gap:8px;flex-wrap:wrap}.season-actions button{flex:1 1 auto}
.season-chapters{margin-top:14px;border-top:1px solid var(--line,rgba(255,255,255,.1));padding-top:12px}.season-chapters summary{cursor:pointer;font-weight:800;list-style:none;display:flex;align-items:center;justify-content:space-between}.season-chapters summary::-webkit-details-marker{display:none}.season-chapter-list{display:grid;gap:8px;margin-top:12px;max-height:390px;overflow:auto;padding-right:4px}.season-chapter{width:100%;display:flex;gap:10px;align-items:center;text-align:left;padding:10px 12px;border-radius:14px;border:1px solid var(--line,rgba(255,255,255,.1));background:rgba(255,255,255,.035);color:inherit}.season-chapter b{min-width:34px;opacity:.7}.season-chapter span{display:flex;flex-direction:column;min-width:0}.season-chapter strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.season-chapter small{opacity:.62}
.creator-season-box{padding:18px;border:1px solid var(--line,rgba(255,255,255,.12));border-radius:22px;background:rgba(255,255,255,.025)}.season-meta-grid{margin-top:12px}.creator-season-box .notice{margin-top:12px}
.series-poster-badge{position:absolute;left:12px;top:12px;z-index:3;padding:6px 9px;border-radius:999px;background:rgba(5,8,16,.82);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);font-size:.72rem;font-weight:900;letter-spacing:.04em}
.series-detail-headline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.series-detail-headline .series-season-count{font-size:.8rem;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.08)}
@media(max-width:700px){.season-grid{grid-template-columns:1fr}.season-card-cover{height:145px}.series-backcover-panel{padding:18px}.season-card-body{padding:15px}.season-chapter-list{max-height:300px}}


/* v1.12.0 — Studio regroupé par WebNovel / saisons */
.creator-novel-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.creator-series-card{display:grid;grid-template-columns:86px 1fr;gap:14px;align-items:center;text-align:left;padding:10px;border:1px solid var(--line);border-radius:18px;background:rgba(12,9,20,.72);color:var(--text);transition:.18s;min-width:0}
.creator-series-card:hover,.creator-series-card.active{border-color:rgba(169,104,255,.58);background:rgba(72,42,106,.22);transform:translateY(-1px);box-shadow:0 14px 30px rgba(0,0,0,.18)}
.creator-series-cover{height:116px;border-radius:13px;background-size:cover;background-position:center;display:grid;place-items:center;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.creator-series-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(5,4,10,.92))}
.creator-series-cover i{font-style:normal;font-weight:900;font-size:21px;text-shadow:0 2px 10px #000;z-index:1}.creator-series-cover em{position:absolute;z-index:2;left:8px;bottom:8px;font-style:normal;font-size:9px;font-weight:900;padding:5px 7px;border-radius:999px;background:rgba(10,7,18,.78);border:1px solid rgba(255,255,255,.13)}
.creator-series-copy{display:grid;gap:6px;min-width:0}.creator-series-copy>b{font-family:Georgia,serif;font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creator-series-copy>small{color:var(--muted);font-size:10px}.creator-series-season-preview{font-size:10px;color:#c7b4ff;letter-spacing:.08em;font-weight:800}
.creator-season-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;margin:4px 0 10px}
.creator-season-tab{display:grid;gap:3px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:11px 12px;background:rgba(255,255,255,.035);color:var(--text)}
.creator-season-tab:hover,.creator-season-tab.active{border-color:rgba(155,95,255,.52);background:linear-gradient(135deg,rgba(104,55,184,.25),rgba(45,24,87,.15));box-shadow:inset 3px 0 0 #9d68ff}
.creator-season-tab b{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#c9b2ff}.creator-season-tab span{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creator-season-tab small{color:var(--muted);font-size:9px}
.creator-legacy-archive{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,177,77,.24);background:rgba(255,151,51,.07);margin:2px 0 10px}
.creator-legacy-archive>div{display:grid;gap:3px}.creator-legacy-archive b{color:#ffd08c}.creator-legacy-archive span{color:var(--muted);font-size:10px}
.series-backcover-panel .backcover-copy{font-size:1.02rem;line-height:1.82;max-width:980px;color:var(--text);opacity:.88}
.season-card-body .season-backcover{font-size:.94rem;line-height:1.67;min-height:8.2em}
@media(max-width:700px){.creator-novel-cards{grid-template-columns:1fr}.creator-series-card{grid-template-columns:74px 1fr}.creator-series-cover{height:102px}.creator-season-tabs{grid-template-columns:1fr}.creator-legacy-archive{align-items:flex-start;flex-direction:column}.season-card-body .season-backcover{min-height:0}}


/* ===== v1.13.0 — verrouillage anti-spoiler & transition de saison ===== */
.season-card-locked{min-height:460px;background:linear-gradient(160deg,rgba(10,10,18,.96),rgba(6,7,13,.98));border-color:rgba(180,160,210,.12);box-shadow:inset 0 0 80px rgba(90,70,140,.05),0 18px 50px rgba(0,0,0,.26)}
.season-lock-visual{height:235px;position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 42%),linear-gradient(180deg,#0b0c14,#06070d)}
.season-lock-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 15%,rgba(5,6,12,.94) 100%)}
.season-lock-runes{position:absolute;width:260px;height:260px;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:50%;opacity:.42;animation:seasonLockSpin 16s linear infinite}
.season-lock-runes:before,.season-lock-runes:after{content:"";position:absolute;border:1px dashed color-mix(in srgb,var(--accent-soft) 34%,transparent);border-radius:50%;inset:24px}.season-lock-runes:after{inset:58px;animation:seasonLockSpin 9s linear infinite reverse}
.season-lock-icon{position:relative;z-index:2;width:68px;height:68px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:20px;transform:rotate(45deg);color:var(--accent-soft);font-size:24px;background:rgba(9,8,16,.76);box-shadow:0 0 45px var(--theme-glow)}
.season-lock-icon::first-letter{transform:rotate(-45deg)}
.season-lock-copy{position:absolute;z-index:3;left:18px;right:18px;bottom:16px;text-align:left}.season-lock-copy small{font-size:.72rem;letter-spacing:.14em;color:var(--accent);font-weight:800}.season-lock-copy h3{font:600 1.35rem Georgia,serif;margin:5px 0}.season-lock-copy p{margin:0;color:var(--muted);font-size:.84rem}
.locked-body{display:grid;gap:14px;align-content:start}.locked-body p{color:var(--muted);line-height:1.6;margin:0}.anti-spoiler-seal{justify-self:start;font-size:.7rem;letter-spacing:.12em;font-weight:900;color:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);padding:7px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,transparent)}
.season-complete-ribbon{position:absolute;z-index:4;right:14px;top:14px;background:rgba(8,18,15,.84);border:1px solid rgba(87,227,166,.38);color:#83f0bf;font-size:.69rem;font-weight:900;letter-spacing:.08em;border-radius:999px;padding:7px 10px;backdrop-filter:blur(10px)}
.season-card-completed{border-color:rgba(87,227,166,.18)}
@keyframes seasonLockSpin{to{transform:rotate(360deg)}}

.season-unlock-transition{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;opacity:0;visibility:hidden;overflow:hidden;background:#04040a;transition:opacity .42s ease,visibility .42s ease}
.season-unlock-transition.active{opacity:1;visibility:visible}
.season-unlock-transition.closing{opacity:0}
.season-unlock-backdrop{position:absolute;inset:-6%;background-size:cover;background-position:center;filter:blur(18px) brightness(.24) saturate(1.3);transform:scale(1.12);transition:filter 1.3s ease,transform 2.2s ease}
.season-unlock-transition.revealed .season-unlock-backdrop{filter:blur(11px) brightness(.3) saturate(1.45);transform:scale(1.04)}
.season-unlock-transition:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,color-mix(in srgb,var(--accent) 14%,transparent),transparent 36%),linear-gradient(180deg,rgba(4,4,10,.55),rgba(4,4,10,.92));z-index:1}
.season-unlock-particles{position:absolute;inset:0;z-index:2;opacity:.5;background-image:radial-gradient(circle,color-mix(in srgb,var(--accent-soft) 70%,white) 0 1px,transparent 1.4px);background-size:48px 48px;mask-image:linear-gradient(180deg,transparent,#000 28%,#000 72%,transparent);animation:seasonParticles 12s linear infinite}
.season-unlock-content{position:relative;z-index:3;width:min(92vw,820px);min-height:min(72vh,650px);display:grid;place-items:center;text-align:center;padding:32px}
.season-unlock-emblem{position:absolute;top:8%;width:92px;height:92px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 0 55px var(--theme-glow),inset 0 0 32px var(--theme-glow);color:var(--accent-soft);font-size:30px;transform:rotate(45deg);border-radius:22px;animation:seasonEmblem 1.8s ease-in-out infinite alternate}
.season-unlock-stage{position:absolute;display:grid;justify-items:center;gap:12px;width:min(90%,700px);transition:opacity .65s ease,transform .75s cubic-bezier(.2,.8,.2,1),filter .65s ease}
.season-unlock-stage small{font-weight:900;letter-spacing:.22em;color:var(--accent-soft)}
.season-unlock-stage h2{font:600 clamp(38px,7vw,76px) Georgia,serif;margin:0;text-shadow:0 4px 30px #000}
.season-unlock-stage p{font:500 clamp(18px,3vw,28px) Georgia,serif;color:#ddd4e9;margin:0;max-width:650px}
.season-unlock-complete{opacity:1;transform:translateY(0)}
.season-unlock-next{opacity:0;transform:translateY(28px) scale(.97);filter:blur(7px);pointer-events:none}
.season-unlock-transition.revealed .season-unlock-complete{opacity:0;transform:translateY(-26px) scale(.97);filter:blur(7px);pointer-events:none}
.season-unlock-transition.revealed .season-unlock-next{opacity:1;transform:none;filter:none;pointer-events:auto}
.season-unlock-line{width:min(420px,68vw);height:2px;background:rgba(255,255,255,.08);overflow:hidden;border-radius:999px;margin:8px 0}.season-unlock-line i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent2),var(--accent-soft));box-shadow:0 0 20px var(--theme-glow);animation:seasonLine 1s .12s ease forwards}
.season-unlock-stage>span{font-size:.77rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.season-unlock-next-cover{width:150px;height:205px;border-radius:18px;background:linear-gradient(145deg,#211538,#0a0a12);background-size:cover;background-position:center;box-shadow:0 22px 65px rgba(0,0,0,.5),0 0 50px var(--theme-glow);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);display:grid;place-items:center;overflow:hidden;position:relative}
.season-unlock-next-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,5,10,.72))}.season-unlock-next-cover>div{font-size:34px;color:var(--accent-soft);text-shadow:0 0 24px var(--theme-glow)}
.season-unlock-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.season-unlock-actions button{min-width:190px;padding:13px 18px}
.chapter-end-card.season-final-chapter{border-color:color-mix(in srgb,var(--accent) 34%,transparent);box-shadow:0 0 70px var(--theme-glow)}
@keyframes seasonParticles{to{background-position:0 -240px}}
@keyframes seasonEmblem{from{transform:rotate(45deg) scale(.93);opacity:.72}to{transform:rotate(45deg) scale(1.04);opacity:1}}
@keyframes seasonLine{to{width:100%}}
html[data-theme="hunter"] .season-unlock-emblem{border-radius:50% 18% 50% 18%;border-color:#d2af58;color:#f3d884}
html[data-theme="sao"] .season-unlock-emblem{border-radius:5px;clip-path:polygon(12% 0,88% 0,100% 12%,100% 88%,88% 100%,12% 100%,0 88%,0 12%);border-color:#37d9ff;color:#71e8ff}
html[data-theme="angel-demon"] .season-unlock-transition:before{background:radial-gradient(circle at 30% 45%,rgba(245,232,218,.13),transparent 30%),radial-gradient(circle at 70% 48%,rgba(174,23,48,.18),transparent 36%),linear-gradient(180deg,rgba(6,3,8,.62),rgba(7,3,8,.94))}
@media(max-width:700px){.season-unlock-content{min-height:76vh;padding:18px}.season-unlock-emblem{top:5%;width:72px;height:72px}.season-unlock-next-cover{width:120px;height:165px}.season-unlock-actions{width:100%}.season-unlock-actions button{width:100%;min-width:0}.season-card-locked{min-height:400px}.season-lock-visual{height:205px}}
@media(prefers-reduced-motion:reduce){.season-lock-runes,.season-unlock-particles,.season-unlock-emblem,.season-unlock-line i{animation:none!important}.season-unlock-stage,.season-unlock-backdrop{transition:none!important}}
\n\n/* v1.14.0 — Vue lecteur du Créateur */\n.creator-page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.creator-reader-preview-bar{position:fixed;z-index:260;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 24px));display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px 10px 14px;border:1px solid color-mix(in srgb,var(--accent) 48%,transparent);border-radius:18px;background:linear-gradient(135deg,rgba(10,8,19,.96),rgba(31,19,48,.96));backdrop-filter:blur(20px);box-shadow:0 18px 55px rgba(0,0,0,.48),0 0 30px color-mix(in srgb,var(--accent) 18%,transparent);animation:creatorPreviewIn .32s cubic-bezier(.2,.8,.2,1)}.creator-reader-preview-bar[hidden]{display:none!important}.creator-reader-preview-bar>div{display:flex;align-items:center;gap:10px;min-width:0}.creator-reader-preview-bar span span{display:grid;gap:1px}.creator-reader-preview-bar b{font-size:11px;letter-spacing:.14em;color:var(--accent-soft)}.creator-reader-preview-bar small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creator-preview-eye{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);font-size:17px}.creator-reader-preview .topbar{box-shadow:0 14px 50px rgba(0,0,0,.25)}.creator-reader-preview [data-creator-nav]{display:none!important}.creator-reader-preview .visibility-badge,.creator-reader-preview .visibility-pill{display:none!important}@keyframes creatorPreviewIn{from{opacity:0;transform:translate(-50%,-14px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}@media(max-width:720px){.creator-page-actions{width:100%;justify-content:stretch}.creator-page-actions button{flex:1}.creator-reader-preview-bar{top:max(6px,env(safe-area-inset-top));padding:8px 9px;border-radius:14px}.creator-reader-preview-bar small{display:none}.creator-reader-preview-bar .primary{font-size:10px;padding:9px 10px}.creator-preview-eye{width:30px;height:30px}.creator-reader-preview-bar b{font-size:9px}}\n

/* ===== v1.15.0 — Performance ===== */
.poster-card,.continue-card,.season-card,.save-story,.creator-novel-card,.chapter-edit-row{
  content-visibility:auto;
  contain:layout paint style;
}
.poster-card{contain-intrinsic-size:300px 470px}
.continue-card{contain-intrinsic-size:480px 180px}
.season-card{contain-intrinsic-size:420px 680px}
.save-story{contain-intrinsic-size:500px 320px}
.season-chapter-list{contain:content}
.season-chapter{content-visibility:auto;contain-intrinsic-size:64px}
.chapter-list-placeholder{padding:18px;text-align:center;color:var(--muted);opacity:.8}
.season-load-more{width:100%;margin-top:10px}
.reader-stage,.scene-content,.narration-card,.dialogue-box,.choice-panel{transform:translateZ(0)}
.reader-stage{overscroll-behavior:contain}
@media (prefers-reduced-motion:reduce){
  .scene-enter{animation:none!important}
}
html.wnh-auto-performance body::before,
html.wnh-auto-performance .theme-splash-backdrop{
  filter:none!important;
  animation:none!important;
}
html.wnh-auto-performance .hero-premium::after,
html.wnh-auto-performance .setting-help-demo-wall{
  animation:none!important;
}
html.wnh-auto-performance .season-unlock-particles{
  opacity:.45;
}


/* ===== v1.16.0 — Cloud Turbo ===== */
.wnh-cloud-turbo{position:fixed;z-index:9998;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(520px,calc(100vw - 28px));padding:12px 14px;border:1px solid rgba(173,126,255,.36);border-radius:16px;background:rgba(9,6,20,.94);box-shadow:0 14px 45px rgba(0,0,0,.38),0 0 30px rgba(111,60,255,.12);backdrop-filter:blur(14px);pointer-events:none;contain:layout paint style}
.wnh-cloud-turbo[hidden]{display:none!important}.wnh-cloud-turbo-top{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#f4efff}.wnh-cloud-turbo-top b{font-size:.9rem}.wnh-cloud-turbo-top span{font-size:.8rem;color:#c9b8ee;font-variant-numeric:tabular-nums}.wnh-cloud-turbo-label{margin-top:4px;color:#b9accf;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wnh-cloud-turbo-track{height:5px;margin-top:9px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}.wnh-cloud-turbo-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#8c52ff,#d28cff);transition:width .16s ease}.wnh-cloud-turbo-track i.indeterminate{animation:wnhCloudTurbo 1.05s ease-in-out infinite}@keyframes wnhCloudTurbo{0%{transform:translateX(-120%)}50%{transform:translateX(180%)}100%{transform:translateX(420%)}}
html.wnh-auto-performance .wnh-cloud-turbo{backdrop-filter:none}.no-motion .wnh-cloud-turbo-track i,.wnh-auto-performance .wnh-cloud-turbo-track i{transition:none;animation:none}


/* ===== v1.17.0 · Bibliothèque locale & packs hors ligne ===== */
.local-library-card{grid-column:1/-1;overflow:hidden}
.local-library-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.local-library-head h2{margin:.18rem 0 .35rem}.local-library-head p{margin:0;max-width:760px;color:var(--muted)}
.local-state-badge,.local-pack-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.06);font-size:.78rem;font-weight:800;white-space:nowrap}
.local-pack-badge.installed{border-color:rgba(105,230,166,.32);background:rgba(74,190,131,.12)}
.local-pack-badge.cloud{border-color:rgba(122,176,255,.35);background:rgba(75,125,220,.12)}
.local-library-manager{display:grid;gap:10px;margin-top:14px}
.local-pack-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(5,8,18,.36)}
.local-pack-main{min-width:0;display:grid;gap:4px}.local-pack-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.local-pack-main small{color:var(--muted)}
.local-pack-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.local-pack-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.local-pack-actions button{min-height:38px}
.local-library-empty{padding:16px;border:1px dashed rgba(255,255,255,.16);border-radius:14px;color:var(--muted);text-align:center}
@media(max-width:760px){.local-library-head{display:grid}.local-pack-row{grid-template-columns:1fr}.local-pack-actions{justify-content:flex-start}.local-pack-main b{white-space:normal}}

/* ===== v1.19.0 — Responsive auto téléphone/tablette + anti-spoiler + UX ===== */
:root{--wnh-nav-reserve:92px;--wnh-touch:44px}
html[data-device="phone"],html[data-device="tablet"]{scroll-padding-bottom:calc(var(--wnh-nav-reserve) + env(safe-area-inset-bottom) + 18px)}
html[data-device="phone"] .desktop-nav,html[data-device="tablet"] .desktop-nav{display:none!important}
html[data-device="phone"] .bottom-nav,html[data-device="tablet"] .bottom-nav{display:grid!important;bottom:max(8px,env(safe-area-inset-bottom))!important;border:1px solid var(--line)!important;border-radius:22px!important;width:min(900px,calc(100% - 22px))!important;padding:8px!important;box-shadow:0 16px 50px rgba(0,0,0,.46)!important}
html[data-device="phone"] .app-shell,html[data-device="tablet"] .app-shell{padding-bottom:calc(var(--wnh-nav-reserve) + env(safe-area-inset-bottom) + 30px)!important}
html[data-device="phone"] .toast,html[data-device="tablet"] .toast{bottom:calc(var(--wnh-nav-reserve) + env(safe-area-inset-bottom) + 24px)!important}
body.keyboard-open .bottom-nav{display:none!important}body.keyboard-open .app-shell{padding-bottom:24px!important}
.bottom-nav button,.fav-btn,.delete-btn,.reader-icon,.modal-close{min-width:var(--wnh-touch);min-height:var(--wnh-touch);touch-action:manipulation}

/* Cartes bibliothèque : les actions ont désormais leur propre zone et ne recouvrent aucun texte. */
.v119-poster-card .poster-cover{position:relative}
.v119-poster-toolbar{position:absolute;z-index:7;left:10px;right:10px;top:10px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;pointer-events:none}
.v119-poster-actions,.v119-poster-status{display:flex;gap:7px;align-items:center;flex-wrap:wrap;pointer-events:auto}
.v119-poster-status{justify-content:flex-end;max-width:68%}
.v119-poster-card .fav-btn,.v119-poster-card .delete-btn{position:static!important;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:14px;background:rgba(7,5,13,.88);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);box-shadow:0 7px 24px rgba(0,0,0,.3)}
.v119-poster-card .fav-btn{color:#fff}.v119-poster-card .delete-btn{color:#e8d8f6}
.v119-poster-card .series-poster-badge,.v119-poster-card .visibility-badge{position:static!important;max-width:100%;white-space:normal;text-align:center;line-height:1.15}
.v119-new-pill{border-radius:999px;padding:6px 9px;background:linear-gradient(135deg,var(--accent2),var(--accent));color:white;font-size:9px;font-weight:900;letter-spacing:.05em;box-shadow:0 7px 20px var(--theme-glow)}
.v119-poster-card .poster-shade{padding-top:12px}.v119-poster-card .poster-shade h3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:normal;overflow-wrap:anywhere}
.v119-visibility{margin:0!important}

/* Une seule carte par WebNovel dans Sauvegardes, saisons repliables à l'intérieur. */
.save-overview{display:grid;gap:18px}.save-series-card{padding:22px}.save-series-card .save-story-head{align-items:flex-start}.save-series-card .save-story-head p{margin:5px 0 0;font-size:11px}.v119-save-seasons{display:grid;gap:12px;margin-top:16px}.v119-save-season{border:1px solid var(--line);border-radius:17px;background:rgba(10,7,18,.58);overflow:hidden}.v119-save-season>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:15px 16px;min-height:64px}.v119-save-season>summary::-webkit-details-marker{display:none}.v119-save-season>summary span{display:grid;gap:3px;min-width:0}.v119-save-season>summary small{font-size:9px;letter-spacing:.13em;color:var(--accent);font-weight:900}.v119-save-season>summary b{font:600 19px Georgia,serif;white-space:normal;overflow-wrap:anywhere}.v119-save-season>summary em{font-style:normal;color:var(--muted);font-size:10px}.v119-save-season>summary i{font-style:normal;transition:.2s}.v119-save-season[open]>summary i{transform:rotate(180deg)}.v119-save-grid{padding:0 14px 14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.v119-save-slot{min-height:132px}.v119-save-slot.empty-slot{min-height:104px;opacity:.65}.v119-save-slot .slot-badge{white-space:nowrap}

/* Codex : accueil par catégories, puis contenu ciblé. */
.v119-codex-home,.v119-codex-page{display:grid;gap:18px}.v119-codex-intro h2,.v119-codex-page h2{font:600 clamp(30px,4vw,44px) Georgia,serif;margin:4px 0 4px}.v119-codex-intro p{margin:0;color:var(--muted);line-height:1.6;max-width:780px}.v119-codex-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v119-codex-category{appearance:none;min-height:150px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon title" "icon hint" "icon count";align-content:center;column-gap:14px;text-align:left;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel2) 78%,transparent),rgba(7,6,13,.9));color:var(--text);cursor:pointer}.v119-codex-category:hover{border-color:color-mix(in srgb,var(--accent) 55%,transparent);transform:translateY(-2px)}.v119-codex-category>span{grid-area:icon;width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:color-mix(in srgb,var(--accent) 13%,transparent);font-size:24px}.v119-codex-category>b{grid-area:title;font:600 21px Georgia,serif}.v119-codex-category>small{grid-area:hint;color:var(--muted);line-height:1.4}.v119-codex-category>em{grid-area:count;font-style:normal;color:var(--accent-soft);font-size:10px;font-weight:800;letter-spacing:.05em}.v119-codex-back{justify-self:start;border:1px solid var(--line);border-radius:999px;background:rgba(14,10,22,.7);color:var(--muted);padding:10px 14px;cursor:pointer}.v119-codex-subnav{display:flex;gap:8px;flex-wrap:wrap}.v119-codex-subnav button{border:1px solid var(--line);border-radius:999px;background:rgba(12,9,20,.7);color:var(--muted);padding:9px 13px;cursor:pointer}.v119-codex-subnav button.active{color:#fff;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent)}.v119-codex-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v119-codex-entry{display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;align-items:center;min-height:120px;padding:11px;border:1px solid var(--line);border-radius:16px;background:rgba(13,9,22,.78);color:var(--text);text-align:left;cursor:pointer}.v119-codex-entry:hover{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.v119-codex-thumb,.v119-codex-symbol{width:78px;height:94px;border-radius:12px;background-size:cover;background-position:center;display:grid;place-items:center;background-color:rgba(0,0,0,.2)}.v119-codex-symbol{font-size:36px;color:var(--accent-soft);background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 25%,transparent),transparent 60%),rgba(0,0,0,.2)}.v119-codex-entry-copy{display:grid;gap:4px;min-width:0}.v119-codex-entry-copy small{font-size:8px;letter-spacing:.12em;color:var(--accent);font-weight:900}.v119-codex-entry-copy b{font:600 19px Georgia,serif;overflow-wrap:anywhere}.v119-codex-entry-copy em{font-style:normal;font-size:10px;color:#c1b4cc}.v119-codex-entry-copy p{margin:2px 0 0;color:var(--muted);font-size:11px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.v119-codex-more{justify-self:center}.v119-gallery{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}

/* Titres créateur et panneaux : utiliser l'espace au lieu de tronquer prématurément. */
.creator-series-copy,.creator-novel-copy{min-width:0}.creator-series-copy>b,.creator-novel-copy>b{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.18}.creator-season-tab span{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.creator-selected-meta{overflow-wrap:anywhere}.creator-big-actions button,.creator-page-actions button{min-height:48px}

/* Réglages / formulaires / clavier */
input,select,textarea{max-width:100%;min-width:0}.setting-row{min-width:0}.setting-row>span,.setting-info-copy{min-width:0}.filters{min-width:0;flex-wrap:wrap}.filters input{min-width:min(260px,100%)}

/* Tablette détectée automatiquement */
html[data-device="tablet"] .app-shell{padding-left:16px;padding-right:16px}
html[data-device="tablet"] .topbar{height:72px}.bottom-nav button{font-size:18px;padding:10px 6px}.bottom-nav span{font-size:9px}
html[data-device="tablet"] .poster-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
html[data-device="tablet"] .continue-grid{grid-template-columns:repeat(auto-fit,minmax(390px,1fr))}
html[data-device="tablet"] .creator-easy-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr)}
html[data-device="tablet"] .creator-novel-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-device="tablet"] .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
html[data-device="tablet"] .settings-grid>.settings-card:first-child{grid-column:1/2}
html[data-device="tablet"] .appearance-card{grid-column:1/-1}
html[data-device="tablet"] .v119-save-seasons{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
html[data-device="tablet"] .v119-codex-categories{grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-device="tablet"][data-orientation="landscape"] .poster-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
html[data-device="tablet"][data-orientation="landscape"] .v119-codex-categories{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Téléphone détecté automatiquement */
html[data-device="phone"] .app-shell{padding-left:10px;padding-right:10px}
html[data-device="phone"] .topbar{height:62px}.top-actions{gap:4px}.brand-mark{width:36px;height:36px}
html[data-device="phone"] .poster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
html[data-device="phone"] .poster-cover{height:250px}.v119-poster-toolbar{left:7px;right:7px;top:7px;gap:6px}.v119-poster-actions{gap:5px}.v119-poster-status{max-width:65%;gap:5px}.v119-poster-card .fav-btn,.v119-poster-card .delete-btn{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:12px}.v119-poster-card .series-poster-badge,.v119-new-pill{font-size:8px;padding:5px 7px}.v119-poster-card .poster-shade h3{font-size:18px}
html[data-device="phone"] .creator-easy-grid,html[data-device="phone"] .settings-grid{grid-template-columns:1fr!important}.appearance-card{grid-column:1/-1}
html[data-device="phone"] .creator-novel-cards{grid-template-columns:1fr}
html[data-device="phone"] .v119-save-seasons{grid-template-columns:1fr}.v119-save-grid{grid-template-columns:1fr}.v119-save-slot{min-height:112px}.v119-save-slot.empty-slot{min-height:82px}
html[data-device="phone"] .v119-codex-categories{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v119-codex-category{min-height:132px;grid-template-columns:42px 1fr;padding:13px;column-gap:10px}.v119-codex-category>span{width:42px;height:42px;font-size:20px}.v119-codex-category>b{font-size:18px}.v119-codex-category>small{font-size:10px}.v119-codex-entry-grid{grid-template-columns:1fr}.v119-codex-entry{grid-template-columns:68px minmax(0,1fr);min-height:104px}.v119-codex-thumb,.v119-codex-symbol{width:68px;height:82px}.v119-codex-subnav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.v119-codex-subnav button{white-space:nowrap}
html[data-device="phone"] .detail-content h1{font-size:clamp(38px,12vw,52px)}html[data-device="phone"] .detail-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-stats span{min-width:0}

@media(max-width:360px){html[data-device="phone"] .poster-grid{grid-template-columns:1fr}html[data-device="phone"] .poster-cover{height:300px}html[data-device="phone"] .v119-codex-categories{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.v119-codex-category:hover,.v119-codex-entry:hover{transform:none}}


/* v1.21.0 — Couches visuelles WebNovel Hub */
.v121-visual-layer{position:absolute;inset:0;pointer-events:none;background-repeat:no-repeat;z-index:1}
.scene-visual-character{background-size:contain;background-position:right bottom;filter:drop-shadow(0 22px 36px rgba(0,0,0,.28))}
.scene-visual-character.visual-character-2{background-position:left bottom;transform:scale(.94);transform-origin:bottom left;opacity:.92}
.scene-visual-character.visual-character-3{background-position:center bottom;transform:scale(.9);transform-origin:bottom center;opacity:.84}
.scene-visual-effect{background-size:cover;background-position:center;mix-blend-mode:screen;opacity:.72;z-index:1}
.reader-stage>.scene-vignette{z-index:1}.reader-stage>.scene-content{z-index:2}
@media(max-width:680px){.scene-visual-character{background-size:auto 76%;background-position:68% bottom}.scene-visual-character.visual-character-2{background-position:15% bottom;opacity:.75}.scene-visual-effect{opacity:.52}}
html[data-device="tablet"] .scene-visual-character{background-size:auto 90%}
@media(prefers-reduced-motion:reduce){.v121-visual-layer{transition:none!important;animation:none!important}}

/* v1.22.0 — Performance Core 2 : évite le layout/paint des cartes très loin de l'écran. */
.poster-card,.continue-card,.season-card,.save-story,.character-story-section{
  content-visibility:auto;
  contain-intrinsic-size:auto 420px;
}
.season-chapter-list,.chapter-list{
  contain:layout style;
}
