/* WebNovel Hub v1.22.3 — skin lecteur SOLO TACTIQUE uniquement.
   Le moteur reste commun. Rien ici ne modifie l'identité des autres novels. */
html[data-novel-theme="solo-tactique"] {
  --solo-page:#05050b;--solo-panel:#0a0914;--solo-panel-2:#0d0b18;
  --solo-text:#f2eff8;--solo-muted:#cfc8db;--solo-dim:#91899d;
  --solo-accent:#914dff;--solo-accent-strong:#b47cff;--solo-line:rgba(169,125,255,.25);
  --solo-line-strong:rgba(171,113,255,.68);--solo-shadow:0 22px 70px rgba(0,0,0,.42);
}
body.reader-active.novel-skin-solo-tactique{background:var(--solo-page);color:var(--solo-text)}
body.reader-active.novel-skin-solo-tactique .reader-view.active{overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(circle at 50% -12%,rgba(102,52,176,.16),transparent 38%),var(--solo-page)}
body.reader-active.novel-skin-solo-tactique .reader-shell{height:auto;min-height:100dvh;display:flex;flex-direction:column;padding:max(8px,env(safe-area-inset-top)) 0 max(20px,env(safe-area-inset-bottom));background:transparent}
body.reader-active.novel-skin-solo-tactique .reader-top{display:none!important}
body.reader-active.novel-skin-solo-tactique .reader-progress-wrap{order:3;height:2px;margin:0 clamp(16px,3vw,36px);background:rgba(255,255,255,.055);overflow:visible;position:relative}
body.reader-active.novel-skin-solo-tactique .reader-progress{background:linear-gradient(90deg,#6d34cf,var(--solo-accent-strong));box-shadow:0 0 15px rgba(145,77,255,.72);border-radius:999px}
.novel-reader-nav{order:1;position:sticky;top:0;z-index:50;display:grid;grid-template-columns:repeat(7,minmax(76px,1fr)) 52px;min-height:76px;overflow-x:auto;scrollbar-width:none;background:linear-gradient(180deg,rgba(5,5,12,.985),rgba(7,6,15,.94));backdrop-filter:blur(20px) saturate(120%);border-bottom:1px solid var(--solo-line);box-shadow:0 14px 38px rgba(0,0,0,.22)}
.novel-reader-nav[hidden]{display:none!important}.novel-reader-nav::-webkit-scrollbar{display:none}
.novel-reader-nav button{position:relative;min-width:76px;border:0;background:transparent;color:var(--solo-muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 6px 9px;cursor:pointer;opacity:.78}
.novel-reader-nav button::after{content:"";position:absolute;left:14%;right:14%;bottom:0;height:2px;background:var(--solo-accent);transform:scaleX(0);transition:transform .18s ease,box-shadow .18s ease}
.novel-reader-nav button.active{color:#fff;opacity:1;text-shadow:0 0 18px rgba(160,101,255,.3)}
.novel-reader-nav button.active::after{transform:scaleX(1);box-shadow:0 0 16px rgba(145,77,255,.92)}
.novel-reader-nav .novel-nav-icon{font:500 22px/1 system-ui;color:#d8c8ef}.novel-reader-nav button.active .novel-nav-icon{color:var(--solo-accent-strong);filter:drop-shadow(0 0 8px rgba(145,77,255,.8))}
.novel-reader-nav button span:last-child{font-size:clamp(10px,1.3vw,13px)}.novel-reader-nav .novel-nav-more{font:700 18px/1 system-ui;letter-spacing:2px}
.solo-reader-chapter-head{order:2;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:24px;align-items:end;width:min(1180px,100%);margin:0 auto;padding:clamp(20px,4vw,40px) clamp(18px,4vw,46px) clamp(18px,2.5vw,28px);border-bottom:1px solid var(--solo-line)}
.solo-reader-chapter-head[hidden]{display:none!important}.solo-reader-kicker{font:650 clamp(14px,1.8vw,19px)/1.2 Georgia,serif;color:#f3eff9;margin-bottom:3px}.solo-reader-chapter-head h1{margin:0;font:500 clamp(34px,5.8vw,64px)/.98 Georgia,serif;letter-spacing:-.035em;color:#f6f2fb}
.solo-reader-chapter-head blockquote{margin:0;padding:0 0 15px;position:relative;text-align:right;font:italic 400 clamp(14px,1.8vw,19px)/1.5 Georgia,serif;color:var(--solo-muted)}
.solo-reader-chapter-head blockquote:empty{display:none}.solo-reader-chapter-head blockquote::after{content:"";position:absolute;right:0;bottom:0;width:min(100%,350px);height:1px;background:linear-gradient(90deg,transparent,var(--solo-line-strong))}
body.reader-active.novel-skin-solo-tactique .reader-stage{order:4;width:min(1180px,100%);margin:0 auto;min-height:clamp(620px,88vw,980px);overflow:visible;display:block;position:relative;border-radius:0;background-size:100% clamp(390px,58vw,710px);background-repeat:no-repeat;background-position:center top;padding-top:clamp(360px,54vw,670px);box-shadow:none}
body.reader-active.novel-skin-solo-tactique .reader-stage::before{content:"";position:absolute;z-index:0;left:0;right:0;top:0;height:clamp(390px,58vw,710px);background:linear-gradient(180deg,rgba(5,5,11,.02),rgba(5,5,11,.04) 58%,rgba(5,5,11,.88) 100%),linear-gradient(90deg,rgba(6,5,14,.16),transparent 25%,transparent 75%,rgba(6,5,14,.18));pointer-events:none}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette{z-index:1;height:clamp(390px,58vw,710px);bottom:auto;box-shadow:inset 0 0 100px rgba(0,0,0,.28)}
body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{z-index:1;height:clamp(390px,58vw,710px);bottom:auto;top:0}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{z-index:4;position:relative;width:calc(100% - clamp(20px,6vw,72px));max-width:1100px;margin:-26px auto 0;padding:0;transform:none!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.scene-overflowing>.scene-content{padding-top:0}
body.reader-active.novel-skin-solo-tactique .narration-card,body.reader-active.novel-skin-solo-tactique .dialogue-box,body.reader-active.novel-skin-solo-tactique .thought-card,body.reader-active.novel-skin-solo-tactique .event-card,body.reader-active.novel-skin-solo-tactique .battle-card,body.reader-active.novel-skin-solo-tactique .capture-card,body.reader-active.novel-skin-solo-tactique .choice-panel,body.reader-active.novel-skin-solo-tactique .system-window,body.reader-active.novel-skin-solo-tactique .status-window{max-width:none;margin:0;background:radial-gradient(circle at 50% 0,rgba(75,41,125,.07),transparent 50%),linear-gradient(180deg,rgba(10,10,20,.985),rgba(7,7,15,.995));border:1px solid var(--solo-line);border-radius:0;padding:clamp(26px,5vw,54px) clamp(24px,7vw,74px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),var(--solo-shadow);clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px)}
body.reader-active.novel-skin-solo-tactique .narration,body.reader-active.novel-skin-solo-tactique .dialogue-text{font-family:Georgia,"Times New Roman",serif;font-size:clamp(var(--reader-font-size),2.1vw,calc(var(--reader-font-size) + 6px));line-height:1.72;color:#f3eef8;text-shadow:none}
body.reader-active.novel-skin-solo-tactique .dialogue-layout{display:block}.novel-skin-solo-tactique .dialogue-layout>.portrait-cluster{display:none}.novel-skin-solo-tactique .speaker{color:var(--solo-accent-strong);font-family:Georgia,serif;font-size:clamp(17px,2vw,22px);margin-bottom:14px}
.solo-reader-character-card{position:absolute;z-index:7;right:clamp(14px,4vw,48px);top:clamp(80px,15vw,180px);width:min(280px,31vw);padding:16px 18px;text-align:center;background:linear-gradient(180deg,rgba(13,11,26,.76),rgba(8,8,17,.9));border:1px solid var(--solo-line);box-shadow:var(--solo-shadow);backdrop-filter:blur(12px);clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,9px 100%,0 calc(100% - 9px),0 9px)}
.solo-reader-character-card b{display:block;color:var(--solo-accent-strong);font:600 clamp(16px,2vw,21px)/1.2 Georgia,serif;margin-bottom:8px}.solo-reader-character-card p{margin:0;color:var(--solo-muted);font:italic 400 clamp(12px,1.45vw,15px)/1.45 Georgia,serif}
body.reader-active.novel-skin-solo-tactique .reader-controls{order:5;width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:stretch;padding:18px clamp(12px,3vw,34px) 16px;background:transparent}
body.reader-active.novel-skin-solo-tactique .reader-step-btn{width:100%;max-width:none;min-height:62px;border-radius:0;border:1px solid rgba(153,131,194,.34);background:linear-gradient(180deg,rgba(17,16,31,.86),rgba(10,10,20,.98));color:#f3eef8;box-shadow:none;font-family:Georgia,serif}
body.reader-active.novel-skin-solo-tactique #nextSceneBtn{background:linear-gradient(180deg,rgba(94,44,169,.4),rgba(46,21,86,.68));border-color:rgba(157,91,255,.85);box-shadow:inset 0 0 18px rgba(139,69,246,.14),0 0 18px rgba(126,53,245,.2)}
body.reader-active.novel-skin-solo-tactique #sceneCounter{display:none}.solo-reader-utility{display:grid;grid-auto-flow:column;align-self:stretch;border:1px solid rgba(153,131,194,.34);background:rgba(10,10,20,.8)}.solo-reader-utility[hidden]{display:none!important}.solo-reader-utility button{min-width:58px;border:0;border-right:1px solid rgba(153,131,194,.26);background:transparent;color:#e9e1f3;cursor:pointer;font:600 15px/1 system-ui}.solo-reader-utility button:last-child{border-right:0}
body.reader-active.novel-skin-solo-tactique .map-reader-button{position:absolute;left:50%;transform:translateX(-50%);bottom:-44px;width:auto!important;min-height:38px!important;padding:6px 14px!important;z-index:3;font-size:11px!important}
.solo-reader-progress-meta{order:6;width:min(1180px,100%);margin:0 auto;padding:4px clamp(18px,3.5vw,40px) 8px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--solo-dim);font-size:13px}.solo-reader-progress-meta[hidden]{display:none!important}.solo-reader-progress-meta button{border:0;background:transparent;color:var(--solo-dim);padding:8px 0;cursor:pointer}
body.reader-active.novel-skin-solo-tactique.immersive-ui .novel-reader-nav{opacity:.22;transition:opacity .2s ease}body.reader-active.novel-skin-solo-tactique.immersive-ui .novel-reader-nav:hover{opacity:1}
@media(max-width:820px){.solo-reader-chapter-head{grid-template-columns:1fr;gap:12px}.solo-reader-chapter-head blockquote{text-align:left}.solo-reader-chapter-head blockquote::after{left:0;right:auto}.solo-reader-character-card{top:auto;bottom:clamp(250px,38vw,350px);width:min(310px,58vw)}body.reader-active.novel-skin-solo-tactique .reader-stage{background-size:auto clamp(420px,76vw,620px);padding-top:clamp(390px,70vw,590px)}body.reader-active.novel-skin-solo-tactique .reader-stage::before,body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:clamp(420px,76vw,620px)}body.reader-active.novel-skin-solo-tactique .reader-controls{grid-template-columns:1fr 1fr}.solo-reader-utility{grid-column:1/-1;grid-row:2;min-height:54px}body.reader-active.novel-skin-solo-tactique .map-reader-button{bottom:-40px}}
@media(max-width:560px){.novel-reader-nav{grid-template-columns:repeat(7,72px) 46px;min-height:70px}.novel-reader-nav button{min-width:72px}.novel-reader-nav .novel-nav-icon{font-size:20px}.solo-reader-chapter-head{padding-inline:17px}.solo-reader-chapter-head h1{font-size:clamp(32px,10vw,46px)}body.reader-active.novel-skin-solo-tactique .reader-stage{min-height:640px;background-size:auto 440px;padding-top:414px}body.reader-active.novel-skin-solo-tactique .reader-stage::before,body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:440px}.solo-reader-character-card{left:12px;right:12px;bottom:auto;top:270px;width:auto;padding:13px 15px}.novel-skin-solo-tactique .reader-stage>.scene-content{width:calc(100% - 18px)!important}.novel-skin-solo-tactique .narration-card,.novel-skin-solo-tactique .dialogue-box,.novel-skin-solo-tactique .thought-card,.novel-skin-solo-tactique .event-card,.novel-skin-solo-tactique .battle-card,.novel-skin-solo-tactique .capture-card,.novel-skin-solo-tactique .choice-panel,.novel-skin-solo-tactique .system-window,.novel-skin-solo-tactique .status-window{padding:26px 20px!important}.novel-skin-solo-tactique .reader-controls{padding-inline:9px!important;gap:8px!important}.novel-skin-solo-tactique .reader-step-btn{min-height:58px!important;font-size:12px!important}.solo-reader-utility button{min-width:48px}.solo-reader-progress-meta{font-size:11px;padding-inline:16px}}


/* v1.22.3 — lecteur SOLO TACTIQUE intégré au lecteur réel. */
body.reader-active.novel-skin-solo-tactique .app-shell{max-width:none;margin:0;padding:0;min-height:100dvh}
body.reader-active.novel-skin-solo-tactique #readerView.reader-view.active{inset:0;padding:0!important;background:#05050b}
body.reader-active.novel-skin-solo-tactique .reader-shell{width:100%;max-width:1280px;margin:0 auto}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav{width:100%;max-width:1280px;margin:0 auto}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav button{appearance:none!important;-webkit-appearance:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;font-weight:500!important}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav button:hover{background:linear-gradient(180deg,transparent,rgba(139,73,255,.07))!important}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav button.active{background:linear-gradient(180deg,rgba(121,58,216,.04),rgba(121,58,216,.12))!important}
body.reader-active.novel-skin-solo-tactique .novel-nav-icon{width:27px;height:27px;display:grid;place-items:center}
body.reader-active.novel-skin-solo-tactique .novel-nav-icon svg{width:25px;height:25px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body.reader-active.novel-skin-solo-tactique .novel-nav-more .novel-nav-icon{font-size:25px;letter-spacing:3px}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{min-height:132px;background:linear-gradient(180deg,rgba(5,5,11,.96),rgba(5,5,11,.84))}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head blockquote:empty{display:block;min-height:24px}
body.reader-active.novel-skin-solo-tactique .reader-stage{isolation:isolate}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{border-top:1px solid rgba(155,104,247,.28)}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content::before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(171,113,255,.92),transparent);box-shadow:0 0 18px rgba(145,77,255,.42)}
body.reader-active.novel-skin-solo-tactique .narration-card,
body.reader-active.novel-skin-solo-tactique .dialogue-box,
body.reader-active.novel-skin-solo-tactique .thought-card,
body.reader-active.novel-skin-solo-tactique .event-card,
body.reader-active.novel-skin-solo-tactique .battle-card,
body.reader-active.novel-skin-solo-tactique .capture-card,
body.reader-active.novel-skin-solo-tactique .choice-panel,
body.reader-active.novel-skin-solo-tactique .system-window,
body.reader-active.novel-skin-solo-tactique .status-window{position:relative;outline:1px solid rgba(126,86,199,.08);outline-offset:-9px}
body.reader-active.novel-skin-solo-tactique .narration-card::after,
body.reader-active.novel-skin-solo-tactique .dialogue-box::after,
body.reader-active.novel-skin-solo-tactique .thought-card::after,
body.reader-active.novel-skin-solo-tactique .event-card::after,
body.reader-active.novel-skin-solo-tactique .battle-card::after,
body.reader-active.novel-skin-solo-tactique .capture-card::after{content:"";display:block;height:1px;margin:28px 0 0;background:linear-gradient(90deg,transparent,rgba(145,77,255,.44),transparent)}
body.reader-active.novel-skin-solo-tactique .reader-controls{position:relative}
body.reader-active.novel-skin-solo-tactique .reader-step-btn{appearance:none!important;-webkit-appearance:none!important;font-size:clamp(13px,1.6vw,18px)!important;font-weight:500!important;padding:12px 18px!important;cursor:pointer}
body.reader-active.novel-skin-solo-tactique .reader-step-btn:disabled{opacity:.34;filter:saturate(.55)}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{appearance:none!important;-webkit-appearance:none!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{border-top:1px solid rgba(255,255,255,.035);padding-top:12px;padding-bottom:max(14px,env(safe-area-inset-bottom))}
@media (min-width:561px) and (max-width:980px){
 body.reader-active.novel-skin-solo-tactique .novel-reader-nav{grid-template-columns:repeat(7,minmax(92px,1fr)) 58px;min-height:82px}
 body.reader-active.novel-skin-solo-tactique .novel-reader-nav button{min-width:92px;padding:11px 8px 10px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{padding-left:28px;padding-right:28px}
 body.reader-active.novel-skin-solo-tactique .reader-stage{background-size:cover;background-position:center top;padding-top:clamp(470px,72vw,690px)}
 body.reader-active.novel-skin-solo-tactique .reader-stage::before,
 body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
 body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:clamp(500px,76vw,720px)}
 body.reader-active.novel-skin-solo-tactique .reader-controls{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
 body.reader-active.novel-skin-solo-tactique .solo-reader-utility{grid-column:auto;grid-row:auto;min-height:62px}
}
@media (max-width:560px){
 body.reader-active.novel-skin-solo-tactique .reader-shell{padding-top:env(safe-area-inset-top)}
 body.reader-active.novel-skin-solo-tactique .novel-reader-nav{min-height:64px;grid-template-columns:repeat(7,68px) 46px}
 body.reader-active.novel-skin-solo-tactique .novel-reader-nav button{min-width:68px;padding:8px 5px 7px!important;gap:3px}
 body.reader-active.novel-skin-solo-tactique .novel-reader-nav button span:last-child{font-size:9px}
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{min-height:112px;padding-top:17px;padding-bottom:17px}
 body.reader-active.novel-skin-solo-tactique .reader-stage{padding-top:390px;background-size:auto 430px;background-position:center top}
 body.reader-active.novel-skin-solo-tactique .reader-stage::before,
 body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
 body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:430px}
 body.reader-active.novel-skin-solo-tactique .reader-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding-top:12px}
 body.reader-active.novel-skin-solo-tactique .solo-reader-utility{grid-column:1/-1;grid-row:2;min-height:50px}
}

/* ========================================================================== */
/* WebNovel Hub v1.24.0 — SOLO TACTIQUE / lecteur paginé fixe                */
/* - écran stable : le décor ne défile plus avec le texte                     */
/* - navigation précédente/suivante toujours au même emplacement              */
/* - pagination responsive : une page lisible, puis la suivante               */
/* - identité SOLO TACTIQUE strictement isolée des autres novels               */
/* ========================================================================== */

body.reader-active.novel-skin-solo-tactique,
body.reader-active.novel-skin-solo-tactique #app,
body.reader-active.novel-skin-solo-tactique #readerView,
body.reader-active.novel-skin-solo-tactique .reader-shell{
  height:100dvh;
  max-height:100dvh;
  min-height:0!important;
  overflow:hidden!important;
}
body.reader-active.novel-skin-solo-tactique .reader-view.active{
  overflow:hidden!important;
  overscroll-behavior:none;
}
body.reader-active.novel-skin-solo-tactique .reader-shell{
  width:100%;
  padding:max(4px,env(safe-area-inset-top)) 0 max(4px,env(safe-area-inset-bottom))!important;
  display:grid!important;
  grid-template-rows:auto auto 2px minmax(0,1fr) auto auto!important;
  grid-template-columns:minmax(0,1fr);
  align-content:stretch;
  background:
    radial-gradient(circle at 50% -10%,rgba(109,52,207,.15),transparent 34%),
    linear-gradient(180deg,#05050c 0%,#06050e 52%,#04040a 100%);
}
body.reader-active.novel-skin-solo-tactique .reader-top{display:none!important}

body.reader-active.novel-skin-solo-tactique .novel-reader-nav{
  grid-row:1;
  order:unset!important;
  position:relative!important;
  top:auto!important;
  min-height:58px!important;
  height:clamp(58px,7.5dvh,78px);
  align-self:stretch;
  background:linear-gradient(180deg,rgba(5,5,12,.995),rgba(7,6,15,.96));
  border-bottom:1px solid rgba(169,125,255,.20);
  box-shadow:0 10px 30px rgba(0,0,0,.24);
  backdrop-filter:blur(12px) saturate(115%);
}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav button{
  min-height:52px;
  padding:6px 6px 5px;
  touch-action:manipulation;
}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav .novel-nav-icon{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav .novel-nav-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}

body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{
  grid-row:2;
  order:unset!important;
  width:min(1180px,100%);
  min-height:78px;
  max-height:clamp(92px,13dvh,148px);
  margin:0 auto;
  padding:clamp(10px,1.7dvh,22px) clamp(18px,4vw,46px) clamp(10px,1.5dvh,18px)!important;
  gap:clamp(14px,3vw,34px);
  align-items:center!important;
  overflow:hidden;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head h1{
  font-size:clamp(28px,4.4vw,58px)!important;
  line-height:.98!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-kicker{
  font-size:clamp(12px,1.5vw,18px)!important;
}
body.reader-active.novel-skin-solo-tactique #soloReaderChapterQuote[hidden]{display:none!important}
body.reader-active.novel-skin-solo-tactique #soloReaderChapterQuote{
  max-height:4.7em;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

body.reader-active.novel-skin-solo-tactique .reader-progress-wrap{
  grid-row:3;
  order:unset!important;
  width:auto;
  height:2px!important;
  margin:0 clamp(14px,3vw,36px)!important;
  align-self:center;
}

body.reader-active.novel-skin-solo-tactique .reader-stage{
  grid-row:4;
  order:unset!important;
  position:relative!important;
  isolation:isolate;
  width:min(1180px,100%)!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0 auto!important;
  padding:0!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(0,54%) minmax(0,46%)!important;
  align-items:stretch!important;
  background-position:center top!important;
  background-repeat:no-repeat!important;
  background-size:100% 54%!important;
  border-radius:0!important;
  box-shadow:none!important;
  scroll-behavior:auto!important;
  overscroll-behavior:none!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage::before{
  z-index:1!important;
  top:0!important;
  left:0!important;
  right:0!important;
  bottom:auto!important;
  height:54%!important;
  background:
    linear-gradient(180deg,rgba(3,3,9,.03),rgba(3,3,9,.07) 58%,rgba(5,5,12,.94) 100%),
    linear-gradient(90deg,rgba(5,4,12,.20),transparent 20%,transparent 80%,rgba(5,4,12,.20))!important;
  pointer-events:none;
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{
  position:absolute!important;
  z-index:0!important;
  top:0!important;
  left:0!important;
  right:0!important;
  bottom:auto!important;
  width:100%!important;
  height:54%!important;
  min-height:0!important;
  max-height:none!important;
  background-size:cover!important;
  background-position:center!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{
  grid-row:2!important;
  grid-column:1!important;
  z-index:4!important;
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  margin:0!important;
  padding:clamp(8px,1.4dvh,16px) clamp(14px,3vw,36px) clamp(8px,1.4dvh,16px)!important;
  transform:none!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  background:
    radial-gradient(circle at 50% 0,rgba(83,46,137,.08),transparent 54%),
    linear-gradient(180deg,rgba(6,5,13,.94),rgba(5,5,11,.995))!important;
  border-top:1px solid rgba(169,125,255,.22);
}
body.reader-active.novel-skin-solo-tactique .reader-stage.scene-overflowing>.scene-content{
  padding-top:clamp(8px,1.4dvh,16px)!important;
}

body.reader-active.novel-skin-solo-tactique .solo-page-card,
body.reader-active.novel-skin-solo-tactique .narration-card,
body.reader-active.novel-skin-solo-tactique .dialogue-box,
body.reader-active.novel-skin-solo-tactique .thought-card,
body.reader-active.novel-skin-solo-tactique .event-card,
body.reader-active.novel-skin-solo-tactique .battle-card,
body.reader-active.novel-skin-solo-tactique .capture-card,
body.reader-active.novel-skin-solo-tactique .choice-panel,
body.reader-active.novel-skin-solo-tactique .system-window,
body.reader-active.novel-skin-solo-tactique .status-window,
body.reader-active.novel-skin-solo-tactique .chapter-end-card{
  width:min(1080px,100%)!important;
  max-width:1080px!important;
  height:100%!important;
  max-height:100%!important;
  min-height:0!important;
  margin:0 auto!important;
  padding:clamp(13px,2.1dvh,25px) clamp(18px,4.4vw,56px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  border:1px solid rgba(166,120,255,.29)!important;
  border-radius:2px!important;
  background:
    linear-gradient(90deg,rgba(145,77,255,.035),transparent 18%,transparent 82%,rgba(145,77,255,.035)),
    linear-gradient(180deg,rgba(11,9,21,.98),rgba(7,6,15,.995))!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.018),inset 0 0 48px rgba(99,48,176,.05)!important;
  clip-path:none!important;
}
body.reader-active.novel-skin-solo-tactique .solo-page-copy{
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:clamp(.48em,1.15dvh,.82em);
}
body.reader-active.novel-skin-solo-tactique .solo-page-copy p,
body.reader-active.novel-skin-solo-tactique .narration-card p,
body.reader-active.novel-skin-solo-tactique .dialogue-text,
body.reader-active.novel-skin-solo-tactique .thought-card .narration{
  margin:0!important;
  color:#f0edf6!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(15px,var(--reader-font-size,18px),24px)!important;
  line-height:1.58!important;
  letter-spacing:.006em;
}
body.reader-active.novel-skin-solo-tactique .solo-page-ornament{
  flex:0 0 auto;
  margin-top:clamp(8px,1.2dvh,14px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:rgba(178,127,255,.72);
}
body.reader-active.novel-skin-solo-tactique .solo-page-ornament span{height:1px;width:min(22%,140px);background:linear-gradient(90deg,transparent,rgba(171,113,255,.48))}
body.reader-active.novel-skin-solo-tactique .solo-page-ornament span:last-child{background:linear-gradient(90deg,rgba(171,113,255,.48),transparent)}
body.reader-active.novel-skin-solo-tactique .solo-page-ornament i{font-style:normal;font-size:8px}

body.reader-active.novel-skin-solo-tactique .solo-reader-character-card{
  position:absolute!important;
  z-index:5!important;
  top:clamp(12px,2dvh,24px)!important;
  right:clamp(14px,3vw,34px)!important;
  bottom:auto!important;
  width:min(30%,300px)!important;
  max-height:calc(54% - 28px)!important;
  margin:0!important;
  padding:clamp(10px,1.6vw,18px)!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,rgba(10,8,19,.88),rgba(7,6,14,.94))!important;
  border:1px solid rgba(175,129,255,.32)!important;
  box-shadow:0 14px 35px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(8px);
}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card p{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin:.55em 0 0!important;
}

body.reader-active.novel-skin-solo-tactique .reader-controls{
  grid-row:5;
  order:unset!important;
  position:relative!important;
  inset:auto!important;
  z-index:30!important;
  width:100%!important;
  min-height:64px;
  margin:0!important;
  padding:7px clamp(12px,3vw,28px)!important;
  display:grid!important;
  grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr)!important;
  align-items:center!important;
  gap:clamp(8px,2vw,18px)!important;
  background:linear-gradient(180deg,rgba(5,5,11,.985),#05050b)!important;
  border-top:1px solid rgba(169,125,255,.20)!important;
  box-shadow:0 -14px 34px rgba(0,0,0,.28)!important;
  overflow:hidden!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn{
  grid-column:1!important;
  justify-self:start!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{
  grid-column:3!important;
  justify-self:end!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{
  width:min(100%,320px)!important;
  min-width:150px!important;
  min-height:48px!important;
  height:48px!important;
  margin:0!important;
  padding:0 clamp(14px,2.4vw,28px)!important;
  border:1px solid rgba(164,111,255,.55)!important;
  border-radius:4px!important;
  color:#f7f3ff!important;
  font-weight:750!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  background:linear-gradient(180deg,rgba(78,37,142,.84),rgba(42,19,78,.92))!important;
  box-shadow:inset 0 0 22px rgba(180,124,255,.10),0 0 18px rgba(112,59,209,.12)!important;
  touch-action:manipulation;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn:disabled,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn:disabled{opacity:.38!important;filter:saturate(.45)}
body.reader-active.novel-skin-solo-tactique .reader-controls #sceneCounter{
  position:absolute;
  left:50%;
  top:3px;
  transform:translateX(-50%);
  z-index:2;
  min-width:42px;
  color:rgba(220,210,235,.72);
  font-size:10px;
  text-align:center;
  pointer-events:none;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility{
  grid-column:2!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:6px!important;
  min-width:0;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility[hidden]{display:none!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  padding:0!important;
  border-radius:4px!important;
}
body.reader-active.novel-skin-solo-tactique #readerMapBtn{display:none!important}

body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{
  grid-row:6;
  order:unset!important;
  width:100%!important;
  min-height:30px;
  margin:0!important;
  padding:4px clamp(14px,3vw,28px) 2px!important;
  align-self:stretch;
  background:#05050b;
  border-top:1px solid rgba(255,255,255,.035);
  color:rgba(205,198,218,.74);
  overflow:hidden;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta[hidden]{display:none!important}
body.reader-active.novel-skin-solo-tactique #soloReaderProgressText{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

body.reader-active.novel-skin-solo-tactique .solo-chapter-end .scene-content,
body.reader-active.novel-skin-solo-tactique .chapter-end-stage .scene-content{
  grid-row:2!important;
}
body.reader-active.novel-skin-solo-tactique .chapter-end-card h2{margin:.25em 0 .35em!important;font-size:clamp(22px,3.6vw,40px)!important}
body.reader-active.novel-skin-solo-tactique .chapter-end-card p{margin:.25em auto .55em!important;max-width:780px}
body.reader-active.novel-skin-solo-tactique .chapter-unlocks{max-height:5.2em;overflow:hidden!important;margin:.2em 0!important}

@media (max-width:720px){
  body.reader-active.novel-skin-solo-tactique .reader-shell{
    grid-template-rows:auto auto 2px minmax(0,1fr) auto auto!important;
  }
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav{
    height:58px!important;
    min-height:58px!important;
    grid-template-columns:repeat(7,minmax(66px,1fr)) 48px!important;
  }
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav button{min-width:66px!important;gap:2px!important;padding:4px 4px!important}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav .novel-nav-icon{width:20px;height:20px}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav .novel-nav-icon svg{width:19px;height:19px}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav button span:last-child{font-size:9px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{
    grid-template-columns:minmax(0,1fr)!important;
    min-height:72px!important;
    max-height:92px!important;
    padding:8px 16px 9px!important;
  }
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head blockquote{display:none!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head h1{font-size:clamp(25px,8vw,38px)!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage{
    grid-template-rows:minmax(0,47%) minmax(0,53%)!important;
    background-size:100% 47%!important;
  }
  body.reader-active.novel-skin-solo-tactique .reader-stage::before,
  body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
  body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:47%!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-character-card{
    width:min(44%,230px)!important;
    max-height:calc(47% - 18px)!important;
    top:9px!important;
    right:10px!important;
    padding:9px!important;
    font-size:11px!important;
  }
  body.reader-active.novel-skin-solo-tactique .solo-page-card,
  body.reader-active.novel-skin-solo-tactique .narration-card,
  body.reader-active.novel-skin-solo-tactique .dialogue-box,
  body.reader-active.novel-skin-solo-tactique .thought-card,
  body.reader-active.novel-skin-solo-tactique .event-card,
  body.reader-active.novel-skin-solo-tactique .battle-card,
  body.reader-active.novel-skin-solo-tactique .capture-card,
  body.reader-active.novel-skin-solo-tactique .choice-panel,
  body.reader-active.novel-skin-solo-tactique .system-window,
  body.reader-active.novel-skin-solo-tactique .status-window,
  body.reader-active.novel-skin-solo-tactique .chapter-end-card{padding:11px 16px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls{
    min-height:104px!important;
    padding:6px 10px!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-rows:48px 42px!important;
    grid-template-areas:"prev next" "tools tools"!important;
    gap:5px 8px!important;
  }
  body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn{grid-area:prev!important;width:100%!important;min-width:0!important;justify-self:stretch!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{grid-area:next!important;width:100%!important;min-width:0!important;justify-self:stretch!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-utility{grid-area:tools!important;grid-column:auto!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls #sceneCounter{top:53px;font-size:9px}
  body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{min-height:27px!important;font-size:10px!important}
}

@media (max-height:760px){
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav{height:52px!important;min-height:52px!important}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav button{min-height:48px!important;padding:3px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{min-height:62px!important;max-height:76px!important;padding-top:6px!important;padding-bottom:7px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head h1{font-size:clamp(24px,4vw,42px)!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls{min-height:58px}
  body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{min-height:25px!important;padding-top:2px!important}
}

@media (max-width:720px) and (max-height:760px){
  body.reader-active.novel-skin-solo-tactique .reader-controls{
    min-height:92px!important;
    grid-template-rows:44px 36px!important;
  }
  body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
  body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:44px!important;min-height:44px!important;font-size:11px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls #sceneCounter{top:49px}
}

/* Mode performance : priorité à la réactivité, sans changer la composition. */
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .novel-reader-nav,
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .solo-reader-character-card{
  backdrop-filter:none!important;
}
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .reader-controls,
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .solo-reader-character-card,
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .solo-page-card{
  box-shadow:none!important;
}
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique *{transition-duration:.01ms!important;animation-duration:.01ms!important}
@media (prefers-reduced-motion:reduce){
  body.reader-active.novel-skin-solo-tactique *{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* v1.24.0 QA — verrouillage géométrique : les commandes ne changent jamais de place
   tant que l'orientation / la taille de fenêtre ne change pas. */
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{
  height:clamp(92px,12dvh,132px)!important;
  min-height:0!important;
  max-height:none!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls{
  height:64px!important;
  min-height:64px!important;
  max-height:64px!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
}
@media (max-width:720px){
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:82px!important;min-height:82px!important;max-height:82px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls{height:104px!important;min-height:104px!important;max-height:104px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{height:27px!important;min-height:27px!important;max-height:27px!important}
}
@media (max-height:760px){
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:66px!important;min-height:66px!important;max-height:66px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls{height:58px!important;min-height:58px!important;max-height:58px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{height:25px!important;min-height:25px!important;max-height:25px!important}
}
@media (max-width:720px) and (max-height:760px){
  body.reader-active.novel-skin-solo-tactique .reader-controls{height:92px!important;min-height:92px!important;max-height:92px!important}
}

/* Transition de page courte : premium sans ralentir le tap suivant. */
@keyframes soloPageIn124{from{opacity:.35;transform:translateX(6px)}to{opacity:1;transform:none}}
body.reader-active.novel-skin-solo-tactique .reader-stage.scene-enter>.scene-content{
  animation:soloPageIn124 .18s cubic-bezier(.2,.72,.2,1)!important;
}
body.no-animations.reader-active.novel-skin-solo-tactique .reader-stage.scene-enter>.scene-content,
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .reader-stage.scene-enter>.scene-content{
  animation:none!important;
}


/* ========================================================================== */
/* v1.25.0 — SOLO TACTIQUE : cadre maître, commandes premium, micro-détails   */
/* ========================================================================== */
body.reader-active.novel-skin-solo-tactique .reader-stage{
  background-position:center top!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage::before{
  background:
    linear-gradient(180deg,rgba(5,5,11,.00),rgba(5,5,11,.05) 44%,rgba(5,5,11,.87) 100%),
    linear-gradient(90deg,rgba(10,8,22,.26),transparent 18%,transparent 82%,rgba(10,8,22,.28)),
    radial-gradient(circle at 50% 12%,rgba(151,92,255,.12),transparent 42%)!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{
  border-top:1px solid rgba(164,111,255,.24)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-master-frame,
body.reader-active.novel-skin-solo-tactique .solo-page-card,
body.reader-active.novel-skin-solo-tactique .narration-card,
body.reader-active.novel-skin-solo-tactique .dialogue-box,
body.reader-active.novel-skin-solo-tactique .thought-card,
body.reader-active.novel-skin-solo-tactique .event-card,
body.reader-active.novel-skin-solo-tactique .battle-card,
body.reader-active.novel-skin-solo-tactique .capture-card,
body.reader-active.novel-skin-solo-tactique .choice-panel,
body.reader-active.novel-skin-solo-tactique .system-window,
body.reader-active.novel-skin-solo-tactique .status-window,
body.reader-active.novel-skin-solo-tactique .chapter-end-card{
  position:relative!important;
  background:
    linear-gradient(90deg,rgba(132,74,236,.045),transparent 12%,transparent 88%,rgba(132,74,236,.045)),
    linear-gradient(180deg,rgba(11,9,22,.985),rgba(7,6,15,.996))!important;
  border:1px solid rgba(171,121,255,.34)!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.02),
    inset 0 0 54px rgba(106,53,189,.06),
    0 18px 40px rgba(0,0,0,.25)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-master-frame::before,
body.reader-active.novel-skin-solo-tactique .chapter-end-card::before{
  content:"";
  position:absolute;
  inset:11px;
  border:1px solid rgba(120,79,180,.16);
  pointer-events:none;
}
body.reader-active.novel-skin-solo-tactique .solo-page-body{
  min-height:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:0;
}
body.reader-active.novel-skin-solo-tactique .solo-frame-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:clamp(10px,1.8dvh,20px);
  padding-bottom:10px;
  border-bottom:1px solid rgba(171,121,255,.18);
}
body.reader-active.novel-skin-solo-tactique .solo-frame-top small,
body.reader-active.novel-skin-solo-tactique .solo-frame-top span{
  display:block;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:10px;
  color:rgba(214,200,241,.72);
}
body.reader-active.novel-skin-solo-tactique .solo-frame-top span{
  text-align:right;
  color:rgba(177,151,227,.54);
}
body.reader-active.novel-skin-solo-tactique .solo-page-copy{
  gap:clamp(.6em,1.4dvh,.95em)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-page-copy p,
body.reader-active.novel-skin-solo-tactique .dialogue-text,
body.reader-active.novel-skin-solo-tactique .thought-card .narration{
  text-wrap:pretty;
}
body.reader-active.novel-skin-solo-tactique .solo-page-signature{
  margin-top:clamp(12px,1.8dvh,18px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:rgba(194,170,239,.82);
}
body.reader-active.novel-skin-solo-tactique .solo-page-signature span{
  display:block;
  height:1px;
  width:min(24%,170px);
  background:linear-gradient(90deg,transparent,rgba(171,121,255,.5));
}
body.reader-active.novel-skin-solo-tactique .solo-page-signature span:last-child{
  background:linear-gradient(90deg,rgba(171,121,255,.5),transparent);
}
body.reader-active.novel-skin-solo-tactique .solo-page-signature b{
  font:600 clamp(10px,1.2vw,12px)/1 Georgia,serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner{
  position:absolute;
  width:14px;
  height:14px;
  pointer-events:none;
}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner::before,
body.reader-active.novel-skin-solo-tactique .solo-frame-corner::after{
  content:"";
  position:absolute;
  background:rgba(174,124,255,.78);
  box-shadow:0 0 8px rgba(174,124,255,.24);
}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner::before{width:14px;height:1px}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner::after{width:1px;height:14px}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner.tl{left:8px;top:8px}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner.tr{right:8px;top:8px;transform:scaleX(-1)}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner.bl{left:8px;bottom:8px;transform:scaleY(-1)}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner.br{right:8px;bottom:8px;transform:scale(-1)}
body.reader-active.novel-skin-solo-tactique .solo-page-index-badge{
  position:absolute;
  right:18px;
  bottom:16px;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(212,202,228,.56);
}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card{
  border-color:rgba(176,128,255,.42)!important;
  background:
    linear-gradient(180deg,rgba(12,10,24,.91),rgba(7,6,14,.96))!important;
  box-shadow:0 16px 38px rgba(0,0,0,.28)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card small{
  display:block;
  margin-bottom:7px;
  color:rgba(186,160,235,.64);
  letter-spacing:.22em;
  font-size:9px;
  text-transform:uppercase;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card b{
  margin-bottom:6px!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card p{
  font-style:italic;
}
body.reader-active.novel-skin-solo-tactique .reader-controls{
  background:
    linear-gradient(180deg,rgba(5,5,11,.98),rgba(6,5,12,1))!important;
  border-top:1px solid rgba(171,121,255,.24)!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(175,126,255,.6)!important;
  background:
    linear-gradient(180deg,rgba(91,45,163,.9),rgba(40,19,74,.96))!important;
  box-shadow:inset 0 0 18px rgba(205,170,255,.09),0 0 14px rgba(113,61,211,.12)!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn::before,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn::before{
  content:"";
  position:absolute;
  inset:1px;
  border:1px solid rgba(255,255,255,.05);
  pointer-events:none;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn:hover,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn:hover{
  filter:brightness(1.06);
}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility{
  border:1px solid rgba(171,121,255,.22)!important;
  background:linear-gradient(180deg,rgba(11,10,22,.94),rgba(7,6,14,.98))!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{
  color:#f0ebf8!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{
  color:rgba(214,206,228,.72)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-opening-page .solo-page-card,
body.reader-active.novel-skin-solo-tactique .solo-opening-page .solo-master-frame{
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.024),
    inset 0 0 72px rgba(132,74,236,.07),
    0 20px 44px rgba(0,0,0,.26)!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage.scene-enter>.scene-content{
  animation:soloPageIn125 .2s cubic-bezier(.2,.72,.2,1)!important;
}
@keyframes soloPageIn125{from{opacity:.52;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (max-width:720px){
  body.reader-active.novel-skin-solo-tactique .solo-frame-top{gap:8px;margin-bottom:9px;padding-bottom:8px}
  body.reader-active.novel-skin-solo-tactique .solo-frame-top small,
  body.reader-active.novel-skin-solo-tactique .solo-frame-top span{font-size:8px;letter-spacing:.18em}
  body.reader-active.novel-skin-solo-tactique .solo-page-index-badge{right:12px;bottom:12px;font-size:8px}
  body.reader-active.novel-skin-solo-tactique .solo-page-signature b{font-size:9px;letter-spacing:.13em}
  body.reader-active.novel-skin-solo-tactique .solo-page-signature{gap:8px;margin-top:10px}
  body.reader-active.novel-skin-solo-tactique .solo-page-signature span{width:min(18%,88px)}
}


/* ========================================================================== */
/* v1.26.0 — fidélité maquette SOLO TACTIQUE                                  */
/* ========================================================================== */
body.reader-active.novel-skin-solo-tactique .reader-progress-wrap{display:none!important}
body.reader-active.novel-skin-solo-tactique .reader-shell{
  grid-template-rows:auto auto minmax(0,1fr) auto auto!important;
}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav{
  grid-row:1!important;
  height:clamp(62px,7.2dvh,78px)!important;
  min-height:0!important;
  background:linear-gradient(180deg,rgba(4,4,11,.995),rgba(7,6,15,.965))!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{
  grid-row:2!important;
  width:min(1180px,100%)!important;
  height:clamp(94px,11dvh,126px)!important;
  padding:clamp(12px,2dvh,22px) clamp(18px,3.5vw,40px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.16fr) minmax(220px,.84fr)!important;
  align-items:center!important;
  gap:clamp(14px,3vw,30px)!important;
  overflow:hidden!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head:not(.has-quote){grid-template-columns:1fr!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-kicker{
  margin:0 0 3px!important;
  font-size:clamp(12px,1.45vw,17px)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head h1{
  margin:0!important;
  font-size:clamp(29px,4.8vw,54px)!important;
  line-height:1.01!important;
  letter-spacing:-.025em!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head blockquote{
  display:block!important;
  max-height:4.3em!important;
  overflow:hidden!important;
  font-size:clamp(11px,1.45vw,17px)!important;
  line-height:1.38!important;
  color:rgba(230,222,241,.83)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head blockquote[hidden],
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head blockquote:empty{display:none!important}

body.reader-active.novel-skin-solo-tactique .reader-stage{
  grid-row:3!important;
  display:grid!important;
  grid-template-rows:minmax(0,47%) minmax(0,53%)!important;
  min-height:0!important;
  height:100%!important;
  padding:0!important;
  background-size:100% 47%!important;
  background-position:center top!important;
  background-repeat:no-repeat!important;
  overflow:hidden!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage::before,
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{
  height:47%!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage::after{
  content:"◆";
  position:absolute;z-index:7;left:50%;top:47%;transform:translate(-50%,-50%);
  width:26px;height:18px;display:grid;place-items:center;
  color:rgba(181,128,255,.86);font-size:8px;
  background:#070611;border-left:1px solid rgba(171,121,255,.45);border-right:1px solid rgba(171,121,255,.45);
  box-shadow:0 0 14px rgba(145,77,255,.22);
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{
  grid-row:2!important;
  width:100%!important;
  height:100%!important;
  padding:clamp(10px,1.5dvh,16px) clamp(16px,3.2vw,38px)!important;
  margin:0!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,rgba(5,5,12,.95),rgba(5,5,11,1))!important;
  border-top:1px solid rgba(171,121,255,.22)!important;
  display:flex!important;align-items:stretch!important;justify-content:center!important;
}
body.reader-active.novel-skin-solo-tactique .solo-v126-content{opacity:1!important;transform:none!important}
body.reader-active.novel-skin-solo-tactique .solo-v126-content.solo-v126-enter .solo-master-frame,
body.reader-active.novel-skin-solo-tactique .solo-v126-content.solo-v126-enter .chapter-end-card{
  animation:soloV126CardIn .16s ease-out both;
}
@keyframes soloV126CardIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

body.reader-active.novel-skin-solo-tactique .solo-master-frame,
body.reader-active.novel-skin-solo-tactique .chapter-end-card{
  width:min(1060px,100%)!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  margin:0 auto!important;
  padding:clamp(15px,2.1dvh,24px) clamp(24px,4.8vw,58px)!important;
  overflow:hidden!important;
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  border:1px solid rgba(177,126,255,.36)!important;
  border-radius:2px!important;
  background:
    radial-gradient(circle at 50% 0,rgba(105,58,181,.08),transparent 45%),
    linear-gradient(90deg,rgba(139,77,238,.04),transparent 14%,transparent 86%,rgba(139,77,238,.04)),
    linear-gradient(180deg,rgba(11,9,22,.985),rgba(7,6,15,.998))!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.018),inset 0 0 58px rgba(91,44,165,.055)!important;
  position:relative!important;
}
body.reader-active.novel-skin-solo-tactique .solo-master-frame::before,
body.reader-active.novel-skin-solo-tactique .chapter-end-card::before{
  content:"";position:absolute;inset:9px;border:1px solid rgba(138,90,218,.13);pointer-events:none;
}
body.reader-active.novel-skin-solo-tactique .solo-frame-top{
  flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin:0 0 clamp(8px,1.2dvh,13px)!important;padding:0 0 8px!important;
  border-bottom:1px solid rgba(168,116,255,.17)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-frame-top small,
body.reader-active.novel-skin-solo-tactique .solo-frame-top span{
  font:700 9px/1.2 system-ui,sans-serif!important;letter-spacing:.22em!important;text-transform:uppercase;
  color:rgba(192,162,239,.72)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
body.reader-active.novel-skin-solo-tactique .solo-frame-top span{max-width:56%;text-align:right;color:rgba(174,153,211,.48)!important}
body.reader-active.novel-skin-solo-tactique .solo-page-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
body.reader-active.novel-skin-solo-tactique .solo-page-copy{display:flex;flex-direction:column;justify-content:center;gap:clamp(.55em,1.1dvh,.85em)!important;min-height:0;overflow:hidden}
body.reader-active.novel-skin-solo-tactique .solo-page-copy p,
body.reader-active.novel-skin-solo-tactique .solo-dialogue-content .dialogue-text,
body.reader-active.novel-skin-solo-tactique .solo-special-copy .narration{
  margin:0!important;
  color:#f1edf7!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(15px,var(--reader-font-size,18px),22px)!important;
  line-height:1.52!important;
  letter-spacing:.004em!important;
  text-wrap:pretty;
}
body.reader-active.novel-skin-solo-tactique .solo-dialogue-content .speaker{margin-bottom:10px!important;color:#c294ff!important}
body.reader-active.novel-skin-solo-tactique .solo-special-copy h2{font:500 clamp(20px,3vw,34px)/1.05 Georgia,serif;margin:.3em 0 .55em}
body.reader-active.novel-skin-solo-tactique .solo-page-signature{
  flex:0 0 auto;margin-top:clamp(8px,1.2dvh,13px)!important;display:flex;align-items:center;justify-content:center;gap:10px;
}
body.reader-active.novel-skin-solo-tactique .solo-page-signature span{width:min(20%,140px)!important;height:1px;background:linear-gradient(90deg,transparent,rgba(174,121,255,.45))}
body.reader-active.novel-skin-solo-tactique .solo-page-signature span:last-child{background:linear-gradient(90deg,rgba(174,121,255,.45),transparent)}
body.reader-active.novel-skin-solo-tactique .solo-page-signature b{font:italic 500 clamp(9px,1.15vw,11px)/1 Georgia,serif!important;letter-spacing:.08em!important;text-transform:none!important;color:rgba(190,147,255,.85)!important}
body.reader-active.novel-skin-solo-tactique .solo-page-index-badge{right:17px!important;bottom:13px!important;font-size:8px!important;letter-spacing:.16em!important;color:rgba(209,201,221,.44)!important}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner{width:13px!important;height:13px!important}
body.reader-active.novel-skin-solo-tactique .solo-frame-corner::before{width:13px!important}.solo-frame-corner::after{height:13px!important}

body.reader-active.novel-skin-solo-tactique .solo-reader-character-card{
  top:clamp(12px,1.7dvh,22px)!important;right:clamp(14px,3vw,34px)!important;
  width:min(29%,285px)!important;max-height:calc(47% - 24px)!important;
  padding:clamp(10px,1.4vw,16px)!important;
  border:1px solid rgba(181,132,255,.42)!important;
  background:linear-gradient(180deg,rgba(11,9,22,.88),rgba(7,6,15,.95))!important;
  backdrop-filter:blur(7px)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card small{display:block;margin-bottom:5px;font:700 8px/1.2 system-ui;letter-spacing:.2em;color:rgba(187,158,236,.62);text-transform:uppercase}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card b{font-size:clamp(14px,1.7vw,19px)!important;margin:0!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card p{font-size:clamp(10px,1.2vw,13px)!important;line-height:1.35!important;-webkit-line-clamp:3!important;margin:.45em 0 0!important}

body.reader-active.novel-skin-solo-tactique .solo-structured-panel,
body.reader-active.novel-skin-solo-tactique .solo-choice-panel,
body.reader-active.novel-skin-solo-tactique .solo-card-scene{
  width:100%;height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;
}
body.reader-active.novel-skin-solo-tactique .solo-structured-panel.system-window,
body.reader-active.novel-skin-solo-tactique .solo-structured-panel.status-window{
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;
}
body.reader-active.novel-skin-solo-tactique .solo-structured-panel .system-sigil{font-size:clamp(24px,4vw,42px);margin-bottom:8px;color:#b47cff}
body.reader-active.novel-skin-solo-tactique .solo-structured-grid{display:grid;gap:clamp(7px,1dvh,12px);min-height:0}
body.reader-active.novel-skin-solo-tactique .solo-structured-grid>div{display:grid;grid-template-columns:minmax(70px,.35fr) minmax(0,1fr);gap:12px;align-items:center;padding:clamp(8px,1.1dvh,12px) 14px;border:1px solid rgba(164,111,255,.20);background:rgba(93,48,158,.06)}
body.reader-active.novel-skin-solo-tactique .solo-structured-grid span{font-size:9px;letter-spacing:.17em;color:rgba(186,158,230,.62)}
body.reader-active.novel-skin-solo-tactique .solo-structured-grid b{font:600 clamp(12px,1.7vw,18px)/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;color:#eee7f8;min-width:0}
body.reader-active.novel-skin-solo-tactique .solo-card-scene.soul-card-scene{display:grid!important;grid-template-columns:minmax(120px,.38fr) minmax(0,.62fr)!important;gap:clamp(14px,3vw,34px)!important;align-items:center!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
body.reader-active.novel-skin-solo-tactique .solo-card-scene h2{font-size:clamp(20px,3vw,34px)!important;margin:.25em 0!important}
body.reader-active.novel-skin-solo-tactique .solo-card-scene p{font-size:clamp(12px,1.6vw,17px)!important;line-height:1.45!important}
body.reader-active.novel-skin-solo-tactique .solo-choice-panel.choice-panel{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
body.reader-active.novel-skin-solo-tactique .solo-choice-panel h2{font-size:clamp(20px,3.2vw,32px)!important;margin:.35em 0 .6em!important}
body.reader-active.novel-skin-solo-tactique .solo-choice-panel .choice-list{gap:7px!important}
body.reader-active.novel-skin-solo-tactique .solo-choice-panel .choice-list button{min-height:42px!important;padding:8px 12px!important}

body.reader-active.novel-skin-solo-tactique .reader-controls{
  grid-row:4!important;height:clamp(64px,7.8dvh,76px)!important;min-height:0!important;max-height:none!important;
  grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr)!important;
  padding:8px clamp(14px,3vw,30px)!important;gap:clamp(8px,1.6vw,16px)!important;
  background:#05050b!important;border-top:1px solid rgba(171,121,255,.22)!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{
  height:48px!important;min-height:48px!important;width:min(100%,310px)!important;
  border-radius:3px!important;font:600 clamp(12px,1.5vw,16px)/1 Georgia,serif!important;
  background:linear-gradient(180deg,rgba(76,36,137,.78),rgba(35,17,66,.96))!important;
  border:1px solid rgba(166,112,255,.62)!important;
}
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{box-shadow:inset 0 0 18px rgba(198,153,255,.08),0 0 14px rgba(118,57,224,.18)!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility{height:48px!important;min-height:48px!important;border-radius:3px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{width:48px!important;height:46px!important;min-width:48px!important;min-height:46px!important;font-size:14px!important}
body.reader-active.novel-skin-solo-tactique .reader-controls #sceneCounter{display:none!important}

body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{
  grid-row:5!important;height:clamp(42px,5.2dvh,52px)!important;min-height:0!important;max-height:none!important;
  position:relative!important;display:grid!important;grid-template-columns:1fr auto!important;grid-template-rows:11px auto!important;column-gap:16px!important;row-gap:2px!important;
  align-items:center!important;padding:5px clamp(18px,3vw,34px) max(5px,env(safe-area-inset-bottom))!important;
  background:#05050b!important;border-top:1px solid rgba(255,255,255,.035)!important;
}
body.reader-active.novel-skin-solo-tactique .solo-reader-bottom-progress{grid-column:1/-1;grid-row:1;position:relative;height:3px;background:rgba(255,255,255,.075);border-radius:999px;margin:0 2px}
body.reader-active.novel-skin-solo-tactique .solo-reader-bottom-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#6d34cf,#b47cff);border-radius:999px;box-shadow:0 0 10px rgba(145,77,255,.62);transition:width .14s ease-out}
body.reader-active.novel-skin-solo-tactique .solo-reader-bottom-progress b{position:absolute;top:50%;left:0;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);background:#d6b8ff;box-shadow:0 0 12px rgba(180,124,255,.95);transition:left .14s ease-out}
body.reader-active.novel-skin-solo-tactique #soloReaderProgressText{grid-column:1;grid-row:2;font-size:11px!important;letter-spacing:.02em}
body.reader-active.novel-skin-solo-tactique #soloImmersiveBtn{grid-column:2;grid-row:2;font-size:11px!important;padding:3px 0!important}

@media (max-width:560px){
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav{
    grid-template-columns:repeat(8,minmax(44px,1fr))!important;overflow:hidden!important;height:64px!important;
  }
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav button{min-width:44px!important;padding:5px 1px!important;gap:2px!important}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav .novel-nav-icon{width:20px!important;height:20px!important}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav .novel-nav-icon svg{width:19px!important;height:19px!important}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav button span:last-child{font-size:7.4px!important;letter-spacing:-.02em!important}
  body.reader-active.novel-skin-solo-tactique .novel-reader-nav .novel-nav-more{font-size:15px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:104px!important;grid-template-columns:1fr!important;padding:10px 16px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.has-quote{grid-template-columns:minmax(0,1.2fr) minmax(116px,.8fr)!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head h1{font-size:clamp(27px,8.1vw,39px)!important;line-height:.98!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head blockquote{font-size:9px!important;line-height:1.35!important;text-align:right!important;padding:0 0 8px!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage{grid-template-rows:minmax(0,46%) minmax(0,54%)!important;background-size:100% 46%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::before,
  body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
  body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:46%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::after{top:46%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{padding:9px 11px!important}
  body.reader-active.novel-skin-solo-tactique .solo-master-frame,
  body.reader-active.novel-skin-solo-tactique .chapter-end-card{padding:13px 18px 15px!important}
  body.reader-active.novel-skin-solo-tactique .solo-frame-top{margin-bottom:7px!important;padding-bottom:6px!important}
  body.reader-active.novel-skin-solo-tactique .solo-frame-top small,
  body.reader-active.novel-skin-solo-tactique .solo-frame-top span{font-size:7px!important;letter-spacing:.15em!important}
  body.reader-active.novel-skin-solo-tactique .solo-page-copy p,
  body.reader-active.novel-skin-solo-tactique .solo-dialogue-content .dialogue-text,
  body.reader-active.novel-skin-solo-tactique .solo-special-copy .narration{font-size:clamp(15px,var(--reader-font-size,18px),20px)!important;line-height:1.47!important}
  body.reader-active.novel-skin-solo-tactique .solo-page-signature{margin-top:7px!important}
  body.reader-active.novel-skin-solo-tactique .solo-page-signature b{font-size:8px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-character-card{width:min(42%,205px)!important;max-height:calc(46% - 16px)!important;top:8px!important;right:8px!important;padding:8px 9px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-character-card p{-webkit-line-clamp:2!important;font-size:9px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls{
    height:96px!important;grid-template-columns:1fr 1fr!important;grid-template-rows:48px 38px!important;grid-template-areas:"prev next" "tools tools"!important;padding:5px 9px!important;gap:4px 8px!important;
  }
  body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn{grid-area:prev!important;width:100%!important;min-width:0!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{grid-area:next!important;width:100%!important;min-width:0!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-utility{grid-area:tools!important;height:38px!important;min-height:38px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{width:42px!important;height:36px!important;min-width:42px!important;min-height:36px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{height:45px!important;padding-inline:12px!important}
  body.reader-active.novel-skin-solo-tactique .solo-card-scene.soul-card-scene{grid-template-columns:minmax(92px,.36fr) minmax(0,.64fr)!important;gap:11px!important}
  body.reader-active.novel-skin-solo-tactique .solo-structured-grid>div{grid-template-columns:62px minmax(0,1fr);gap:8px;padding:7px 9px}
}
@media (max-height:760px){
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:78px!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage{grid-template-rows:minmax(0,43%) minmax(0,57%)!important;background-size:100% 43%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::before,
  body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
  body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:43%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::after{top:43%!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls{height:82px!important;grid-template-rows:42px 32px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
  body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:42px!important;min-height:42px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{height:38px!important}
}
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .solo-v126-content.solo-v126-enter .solo-master-frame,
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .solo-v126-content.solo-v126-enter .chapter-end-card{animation:none!important}

/* ========================================================================== */
/* v1.27.1 — SOLO TACTIQUE : composition décor + personnages premier plan    */
/* ========================================================================== */
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer{
  position:absolute!important;
  z-index:2!important;
  top:0!important;
  left:0!important;
  right:0!important;
  bottom:auto!important;
  width:100%!important;
  height:47%!important;
  min-height:0!important;
  max-height:none!important;
  pointer-events:none!important;
  background-repeat:no-repeat!important;
  background-size:auto 98%!important;
  background-position:center bottom!important;
  opacity:1;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.38));
  transform:translateY(0) scale(1);
  transform-origin:bottom center;
  will-change:transform,opacity;
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette{z-index:3!important}
body.reader-active.novel-skin-solo-tactique .reader-stage::before{z-index:1!important}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-1.solo-v1271-foreground-slot-1{
  background-position:58% bottom!important;
  background-size:auto 101%!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-2.solo-v1271-foreground-slot-1{
  background-position:24% bottom!important;
  background-size:auto 95%!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-2.solo-v1271-foreground-slot-2{
  background-position:78% bottom!important;
  background-size:auto 98%!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-3.solo-v1271-foreground-slot-1{
  background-position:12% bottom!important;background-size:auto 88%!important;opacity:.88
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-3.solo-v1271-foreground-slot-2{
  background-position:50% bottom!important;background-size:auto 96%!important
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-3.solo-v1271-foreground-slot-3{
  background-position:88% bottom!important;background-size:auto 88%!important;opacity:.88
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer:not(.solo-v1271-foreground-enter){
  opacity:0;transform:translateY(9px) scale(.992)
}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer.solo-v1271-foreground-enter{
  animation:soloV1271ForegroundIn .22s ease-out both
}
@keyframes soloV1271ForegroundIn{from{opacity:0;transform:translateY(9px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}

@media (min-width:561px) and (max-width:980px){
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer{height:47%!important;background-size:auto 103%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-2.solo-v1271-foreground-slot-1{background-position:22% bottom!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-2.solo-v1271-foreground-slot-2{background-position:80% bottom!important}
}
@media (max-width:560px){
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer{height:43%!important;background-size:auto 96%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-1.solo-v1271-foreground-slot-1{background-position:60% bottom!important;background-size:auto 99%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-2.solo-v1271-foreground-slot-1{background-position:18% bottom!important;background-size:auto 89%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-count-2.solo-v1271-foreground-slot-2{background-position:84% bottom!important;background-size:auto 93%!important}
}
@media (prefers-reduced-motion:reduce){
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}
}
html.wnh-auto-performance body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer{animation:none!important;opacity:1!important;transform:none!important;filter:drop-shadow(0 10px 20px rgba(0,0,0,.28))}


/* ========================================================================== */
/* v1.28.0 — CINEMATIC READER / VISUAL DIRECTOR                              */
/* ========================================================================== */
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:58px!important;min-height:58px!important;padding:7px clamp(14px,3vw,28px)!important;align-items:center!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening{height:76px!important;min-height:76px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact{height:38px!important;min-height:38px!important;padding-block:4px!important;grid-template-columns:1fr!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact .solo-reader-kicker{display:none!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact h1{font-size:clamp(15px,2.2vw,21px)!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin:0!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening h1{font-size:clamp(25px,5.3vw,40px)!important;line-height:1!important;max-height:2.05em!important;overflow:hidden!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact blockquote{display:none!important}

body.reader-active.novel-skin-solo-tactique .reader-stage{grid-template-rows:minmax(0,43%) minmax(0,57%)!important;background-size:100% 43%!important;background-color:#070710!important}
body.reader-active.novel-skin-solo-tactique .reader-stage::before,
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer{height:43%!important}
body.reader-active.novel-skin-solo-tactique .reader-stage::after{top:43%!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-illustration{background-size:100% 43%!important;background-position:center top!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-illustration[data-visual-fit="contain"]{background-size:auto 43%!important;background-position:center top!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority{grid-template-rows:minmax(0,34%) minmax(0,66%)!important;background-size:100% 34%!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority::before,
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority>.scene-vignette{height:34%!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority::after{top:34%!important}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{padding:clamp(8px,1.2dvh,13px) clamp(13px,2.8vw,30px)!important}
body.reader-active.novel-skin-solo-tactique .solo-master-frame{padding:clamp(12px,1.7dvh,19px) clamp(18px,4vw,44px)!important}
body.reader-active.novel-skin-solo-tactique .solo-page-copy p,
body.reader-active.novel-skin-solo-tactique .solo-dialogue-content .dialogue-text,
body.reader-active.novel-skin-solo-tactique .solo-special-copy .narration{line-height:1.46!important;max-width:38em;margin-inline:auto!important;width:100%}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-dense-text .solo-page-copy p,
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-dense-text .solo-dialogue-content .dialogue-text,
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-dense-text .solo-special-copy .narration{font-size:calc(var(--reader-font-size,18px) - 1.5px)!important;line-height:1.39!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-dense-text .solo-page-signature{display:none!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-scroll-guard .solo-page-body{overflow-y:auto!important;overscroll-behavior:contain;scrollbar-width:thin;padding-right:3px}

body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v1271-foreground-layer{display:none!important}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer{position:absolute!important;z-index:2!important;left:0;top:0;width:100%;height:43%;pointer-events:none;overflow:visible;opacity:1;transform-origin:bottom center}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer img{position:absolute;left:var(--char-x,50%);bottom:var(--char-bottom,0%);height:var(--char-h,110%);max-height:none;width:auto;max-width:none;object-fit:contain;transform:translateX(-50%) scaleX(var(--char-mirror,1));transform-origin:bottom center;filter:drop-shadow(0 18px 26px rgba(0,0,0,.42));will-change:transform,opacity}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer.solo-v128-support img{filter:drop-shadow(0 15px 24px rgba(0,0,0,.35)) brightness(.95)}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer.solo-v128-focus img{filter:drop-shadow(0 20px 30px rgba(0,0,0,.48)) brightness(1.025)}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer:not(.solo-v128-enter) img{opacity:0;transform:translateX(-50%) translateY(8px) scaleX(var(--char-mirror,1)) scale(.985)}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer.solo-v128-enter img{animation:soloV128In .2s ease-out both}
@keyframes soloV128In{from{opacity:0;transform:translateX(-50%) translateY(8px) scaleX(var(--char-mirror,1)) scale(.985)}to{opacity:1;transform:translateX(-50%) translateY(0) scaleX(var(--char-mirror,1)) scale(1)}}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority>.solo-v128-character-layer{height:34%!important}

body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-object-layer{position:absolute;z-index:3;top:3%;left:50%;pointer-events:none}
body.reader-active.novel-skin-solo-tactique .solo-v128-eclipse-card{width:clamp(54px,8vw,92px);aspect-ratio:.64;transform:translateX(-50%) rotate(-3deg);border:1px solid rgba(187,132,255,.78);border-radius:6px;background:radial-gradient(circle at 50% 38%,rgba(110,54,191,.22),transparent 36%),linear-gradient(160deg,#040307,#12101a 55%,#020204);box-shadow:0 0 24px rgba(125,64,229,.35),inset 0 0 18px rgba(184,125,255,.12);display:grid;place-items:center;color:#d3adff}
body.reader-active.novel-skin-solo-tactique .solo-v128-eclipse-card i{width:30%;aspect-ratio:1;border:1px solid #b981ff;transform:rotate(45deg);box-shadow:0 0 14px rgba(180,119,255,.6)}
body.reader-active.novel-skin-solo-tactique .solo-v128-eclipse-card span{position:absolute;bottom:8%;font:700 7px/1 system-ui;letter-spacing:.2em;color:rgba(216,190,255,.78)}

body.reader-active.novel-skin-solo-tactique .solo-reader-character-card:not(.solo-v128-context){display:none!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card.solo-v128-context{width:auto!important;max-width:180px!important;padding:7px 10px!important;top:8px!important;right:8px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-character-card.solo-v128-context p{display:none!important}

body.reader-active.novel-skin-solo-tactique .reader-controls{height:clamp(58px,7dvh,68px)!important;padding-block:6px!important}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:44px!important;min-height:44px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility{height:44px!important;min-height:44px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{height:42px!important;min-height:42px!important}

.v128-audit-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.v128-audit-tools .notice{grid-column:1/-1;margin:0}.notice.danger{border-color:rgba(255,105,120,.35)!important;color:#ffc1ca!important;background:rgba(120,30,45,.12)!important}

@media (max-width:560px){
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:48px!important;min-height:48px!important;padding:5px 12px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening{height:66px!important;min-height:66px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact{height:34px!important;min-height:34px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening h1{font-size:clamp(23px,7vw,32px)!important;line-height:1!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage{grid-template-rows:minmax(0,40%) minmax(0,60%)!important;background-size:100% 40%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::before,
  body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette{height:40%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::after{top:40%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer{height:40%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority{grid-template-rows:minmax(0,31%) minmax(0,69%)!important;background-size:100% 31%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority::before,
  body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority>.scene-vignette,
  body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority>.solo-v128-character-layer{height:31%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority::after{top:31%!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls{height:82px!important;grid-template-rows:44px 32px!important;padding:4px 8px!important}
  body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
  body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:42px!important;min-height:42px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-utility{height:32px!important;min-height:32px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{height:30px!important;min-height:30px!important}
}
@media (orientation:landscape) and (max-height:720px){
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:32px!important;min-height:32px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening{height:42px!important;min-height:42px!important}
  body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head h1{font-size:18px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage{grid-template-rows:minmax(0,38%) minmax(0,62%)!important;background-size:100% 38%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::before,body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer{height:38%!important}
  body.reader-active.novel-skin-solo-tactique .reader-stage::after{top:38%!important}
}
@media (prefers-reduced-motion:reduce){body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer img{animation:none!important;transition:none!important;opacity:1!important}}

body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority.solo-v128-illustration[data-visual-fit="contain"]{background-size:auto 34%!important}
@media (max-width:560px){body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-illustration[data-visual-fit="contain"]{background-size:auto 40%!important}body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-text-priority.solo-v128-illustration[data-visual-fit="contain"]{background-size:auto 31%!important}}


/* ========================================================================== */
/* v1.30.0 — MEGA CINEMATIC DIRECTOR                                          */
/* ========================================================================== */
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:42px!important;min-height:42px!important;padding:4px clamp(12px,2.5vw,22px)!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening{height:54px!important;min-height:54px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact{height:30px!important;min-height:30px!important;padding-block:2px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact h1{font-size:clamp(14px,2vw,19px)!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening h1{font-size:clamp(22px,4.4vw,34px)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

body.reader-active.novel-skin-solo-tactique .reader-stage{--visual-share:57%;grid-template-rows:minmax(0,var(--visual-share)) minmax(0,calc(100% - var(--visual-share)))!important;background-size:100% var(--visual-share)!important}
body.reader-active.novel-skin-solo-tactique .reader-stage::before,
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-vignette,
body.reader-active.novel-skin-solo-tactique .reader-stage>.v121-visual-layer,
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer{height:var(--visual-share)!important}
body.reader-active.novel-skin-solo-tactique .reader-stage::after{top:var(--visual-share)!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-illustration{background-size:100% var(--visual-share)!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v128-illustration[data-visual-fit="contain"]{background-size:auto var(--visual-share)!important;background-repeat:no-repeat!important;background-color:#06060d!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-visual-position="center bottom"]{background-position:center top!important}
body.reader-active.novel-skin-solo-tactique .reader-stage>.scene-content{padding:6px clamp(10px,2.2vw,24px)!important}
body.reader-active.novel-skin-solo-tactique .solo-master-frame{padding:clamp(9px,1.25dvh,14px) clamp(16px,3.2vw,34px)!important}
body.reader-active.novel-skin-solo-tactique .solo-frame-top{margin-bottom:clamp(5px,.8dvh,9px)!important;padding-bottom:5px!important}
body.reader-active.novel-skin-solo-tactique .solo-page-signature{margin-top:clamp(5px,.8dvh,8px)!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="short"] .solo-frame-top span{display:none!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="short"] .solo-page-copy p,
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="short"] .solo-special-copy .narration{font-size:calc(var(--reader-font-size,18px) + 1px)!important;line-height:1.38!important}

body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer{overflow:hidden!important;z-index:2!important}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer img{filter:drop-shadow(0 14px 22px rgba(0,0,0,.38));}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer.solo-v128-support img{filter:drop-shadow(0 12px 20px rgba(0,0,0,.32)) brightness(.94)}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer.solo-v128-focus img{filter:drop-shadow(0 16px 26px rgba(0,0,0,.46)) brightness(1.025)}

body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v130-accessory-layer{position:absolute!important;z-index:3!important;pointer-events:none;left:var(--acc-x,50%);top:var(--acc-y,17%);transform:translate(-50%,-50%)}
body.reader-active.novel-skin-solo-tactique .solo-v130-eclipse-card{width:clamp(42px,6.5vw,66px);aspect-ratio:.64;border:1px solid rgba(187,132,255,.8);border-radius:6px;background:radial-gradient(circle at 50% 38%,rgba(110,54,191,.22),transparent 36%),linear-gradient(160deg,#040307,#12101a 55%,#020204);box-shadow:0 0 18px rgba(125,64,229,.35),inset 0 0 14px rgba(184,125,255,.12);display:grid;place-items:center;color:#d3adff;animation:soloV130AccessoryIn .16s ease-out both}
body.reader-active.novel-skin-solo-tactique .solo-v130-eclipse-card i{width:28%;aspect-ratio:1;border:1px solid #b981ff;transform:rotate(45deg);box-shadow:0 0 10px rgba(180,119,255,.55)}
body.reader-active.novel-skin-solo-tactique .solo-v130-eclipse-card span{position:absolute;bottom:8%;font:700 6px/1 system-ui;letter-spacing:.18em;color:rgba(216,190,255,.78)}
@keyframes soloV130AccessoryIn{from{opacity:0;transform:translate(-50%,-44%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v130-chains-active{--chain-glow:1}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v130-chains-active::before{box-shadow:inset 0 -8px 24px rgba(135,63,255,.11)!important}

body.reader-active.novel-skin-solo-tactique .reader-controls{height:clamp(50px,6dvh,58px)!important;padding-block:4px!important}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:38px!important;min-height:38px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility{height:36px!important;min-height:36px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{height:34px!important;min-height:34px!important}
.v128-audit-tools{grid-template-columns:repeat(3,1fr)!important}
.v128-audit-tools .notice{grid-column:1/-1!important}

@media(max-width:560px){
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:36px!important;min-height:36px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening{height:46px!important;min-height:46px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact{height:28px!important;min-height:28px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening h1{font-size:clamp(20px,6vw,28px)!important}
 body.reader-active.novel-skin-solo-tactique .reader-controls{height:70px!important;grid-template-rows:38px 28px!important;padding:3px 7px!important}
 body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:36px!important;min-height:36px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-utility{height:28px!important;min-height:28px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{height:26px!important;min-height:26px!important}
 body.reader-active.novel-skin-solo-tactique .solo-v130-eclipse-card{width:44px}
}

/* ========================================================================== */
/* v1.31.0 — Director State 4 / Reader Polish                                 */
/* ========================================================================== */
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:34px!important;min-height:34px!important;padding:2px clamp(10px,2vw,18px)!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening{height:44px!important;min-height:44px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact{height:25px!important;min-height:25px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening h1{font-size:clamp(20px,3.8vw,29px)!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact h1{font-size:clamp(13px,1.8vw,17px)!important;line-height:1!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact .solo-reader-kicker{display:none!important}

/* Le cadre texte n'est plus une énorme dalle pour une phrase courte. */
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="micro"]>.scene-content{padding-block:3px!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="micro"] .solo-master-frame{padding:7px clamp(14px,3vw,28px)!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="micro"] .solo-frame-top{margin-bottom:2px!important;padding-bottom:3px!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="micro"] .solo-frame-top span{display:none!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="micro"] .solo-page-signature{margin-top:2px!important;font-size:9px!important}
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="micro"] .solo-page-copy p,
body.reader-active.novel-skin-solo-tactique .reader-stage[data-text-density="micro"] .solo-special-copy .narration{line-height:1.28!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v131-micro-copy .solo-page-body{align-content:center!important}

/* Les créatures utilisent leur propre échelle ; plus de Lupombre zoomé jusqu'à remplir tout l'écran. */
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer.solo-v131-creature img{max-width:118%!important;object-fit:contain!important;filter:drop-shadow(0 12px 26px rgba(40,0,75,.35))!important}
body.reader-active.novel-skin-solo-tactique .reader-stage>.solo-v128-character-layer.solo-v131-character img{max-width:82%!important}

/* Carte Éclipse : secondaire, petite et décalée vers l'espace libre. */
body.reader-active.novel-skin-solo-tactique .solo-v130-eclipse-card{width:clamp(34px,5vw,52px)!important;opacity:.94!important}
body.reader-active.novel-skin-solo-tactique .solo-v130-eclipse-card.solo-v131-small-accessory{width:clamp(30px,4.2vw,44px)!important;opacity:.9!important}
body.reader-active.novel-skin-solo-tactique .solo-v130-eclipse-card span{font-size:5px!important;bottom:7%!important}

/* État intermédiaire : les chaînes viennent d'être brisées, fragments visibles au sol. */
body.reader-active.novel-skin-solo-tactique .solo-v131-broken-chain{position:absolute!important;z-index:3!important;left:16%!important;right:16%!important;bottom:calc(100% - var(--visual-share) + 1%)!important;height:32px!important;pointer-events:none!important;filter:drop-shadow(0 0 8px rgba(144,77,255,.62))}
body.reader-active.novel-skin-solo-tactique .solo-v131-broken-chain i{position:absolute;width:24%;height:3px;border-radius:999px;background:repeating-linear-gradient(90deg,#b889ff 0 7px,transparent 7px 11px);opacity:.78;transform-origin:center}
body.reader-active.novel-skin-solo-tactique .solo-v131-broken-chain i:nth-child(1){left:2%;top:8px;transform:rotate(9deg)}
body.reader-active.novel-skin-solo-tactique .solo-v131-broken-chain i:nth-child(2){left:27%;top:19px;transform:rotate(-7deg)}
body.reader-active.novel-skin-solo-tactique .solo-v131-broken-chain i:nth-child(3){right:22%;top:10px;transform:rotate(12deg)}
body.reader-active.novel-skin-solo-tactique .solo-v131-broken-chain i:nth-child(4){right:0;top:22px;transform:rotate(-13deg)}

/* Contrôles visuellement plus légers, zones de toucher conservées. */
body.reader-active.novel-skin-solo-tactique .reader-controls{height:clamp(46px,5.2dvh,52px)!important;padding-block:3px!important}
body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,
body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:36px!important;min-height:36px!important;font-size:clamp(14px,2.2vw,18px)!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility{height:30px!important;min-height:30px!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{height:28px!important;min-height:28px!important}
body.reader-active.novel-skin-solo-tactique .scene-counter{display:none!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{padding-bottom:max(6px,env(safe-area-inset-bottom))!important}
body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta>span{font-size:10px!important;opacity:.68}

/* Mode immersif : disparition réelle après 1,7s, réveil au toucher. */
body.reader-active.novel-skin-solo-tactique.immersive-ui.solo-v131-ui-idle .novel-reader-nav{opacity:0!important;transform:translateY(-8px);pointer-events:none}
body.reader-active.novel-skin-solo-tactique.immersive-ui.solo-v131-ui-idle .solo-reader-chapter-head{opacity:.12!important;transform:translateY(-4px)}
body.reader-active.novel-skin-solo-tactique.immersive-ui.solo-v131-ui-idle .reader-controls,
body.reader-active.novel-skin-solo-tactique.immersive-ui.solo-v131-ui-idle .solo-reader-progress-meta{opacity:.08!important;transform:translateY(5px)}
body.reader-active.novel-skin-solo-tactique .novel-reader-nav,
body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head,
body.reader-active.novel-skin-solo-tactique .reader-controls,
body.reader-active.novel-skin-solo-tactique .solo-reader-progress-meta{transition:opacity .22s ease,transform .22s ease}

/* Mode Réalisateur */
.v131-director-dialog{width:min(760px,calc(100vw - 18px));max-height:min(90dvh,900px);border:1px solid rgba(177,121,255,.42);border-radius:22px;padding:0;background:#090711;color:#f5efff;box-shadow:0 28px 90px rgba(0,0,0,.65)}
.v131-director-dialog::backdrop{background:rgba(2,1,6,.78);backdrop-filter:blur(7px)}
.v131-director-card{display:grid;gap:14px;padding:18px;max-height:88dvh;overflow:auto}
.v131-director-card>header,.v131-director-card>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;background:#090711;z-index:2}
.v131-director-card>header{top:-18px;padding:13px 0 9px;border-bottom:1px solid rgba(177,121,255,.16)}
.v131-director-card>footer{bottom:-18px;padding:9px 0 13px;border-top:1px solid rgba(177,121,255,.16);justify-content:flex-end;flex-wrap:wrap}
.v131-director-card header small{color:#b77dff;letter-spacing:.13em;font-weight:900}.v131-director-card h2{margin:3px 0 0;font:600 28px Georgia,serif}
.v131-director-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v131-director-grid label{display:grid;gap:5px;font-size:10px;color:#b8abc8}.v131-director-grid select,.v131-director-grid input[type=number]{width:100%;border:1px solid rgba(177,121,255,.22);border-radius:11px;background:#100b19;color:#fff;padding:10px}
.v131-director-lock{display:flex!important;align-items:center!important;gap:8px!important;padding:9px 10px;border:1px solid rgba(177,121,255,.17);border-radius:11px}.v131-accessory-checks{display:flex;gap:8px;flex-wrap:wrap}.v131-accessory-checks label{padding:8px 10px;border:1px solid rgba(177,121,255,.18);border-radius:999px;font-size:10px;color:#cfc0e1}
#v131DirectorPreview{max-height:240px;overflow:auto;margin:0;padding:12px;border:1px solid rgba(177,121,255,.15);border-radius:12px;background:#05040a;color:#bcaed0;font-size:10px;white-space:pre-wrap}
.v128-audit-tools{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:620px){.v131-director-grid{grid-template-columns:1fr}.v131-director-card>footer button{flex:1}.v128-audit-tools{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

@media(max-width:560px){
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head{height:31px!important;min-height:31px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-opening{height:40px!important;min-height:40px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-chapter-head.solo-v128-compact{height:23px!important;min-height:23px!important}
 body.reader-active.novel-skin-solo-tactique .reader-controls{height:62px!important;grid-template-rows:34px 24px!important;padding:2px 6px!important}
 body.reader-active.novel-skin-solo-tactique .reader-controls #prevSceneBtn,body.reader-active.novel-skin-solo-tactique .reader-controls #nextSceneBtn{height:33px!important;min-height:33px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-utility{height:24px!important;min-height:24px!important}
 body.reader-active.novel-skin-solo-tactique .solo-reader-utility button{height:22px!important;min-height:22px!important}
}

body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .scene-content{min-height:0!important;overflow:hidden!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-master-frame{height:100%!important;max-height:100%!important;min-height:0!important;box-sizing:border-box!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-page-body{min-height:0!important;overflow-y:auto!important;justify-content:flex-start!important;overscroll-behavior:contain}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-page-signature{flex-shrink:0}
/* The inner copy must keep its natural height, otherwise flex shrinks it and
   clips its lines before the outer scrolling body can detect overflow. */
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-page-copy,
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-dialogue-content,
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-special-copy{
 flex:0 0 auto!important;min-height:min-content!important;max-height:none!important;
 overflow:visible!important;justify-content:flex-start!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-page-body>*,
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .solo-page-copy>*{flex-shrink:0!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .chapter-end-card{
 justify-content:flex-start!important;overflow-y:auto!important;overscroll-behavior:contain;
 box-sizing:border-box!important;scrollbar-width:thin;padding:12px 18px!important;
}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .chapter-end-card>*{flex-shrink:0!important}
body.reader-active.novel-skin-solo-tactique .reader-stage.solo-v1311-author .chapter-end-eclipse{font-size:28px!important;line-height:1.1!important;margin:0 0 6px!important}
