: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}}
