/* ===== v3 · stilul manualului tipărit, eliberat (modular: tot ce e nou în v3 stă aici) =====
   Litere ca în caiet (colofonul, p. 95): EB Garamond (textul), Caveat (scrisul Laurei),
   Special Elite (mașina Laurei mari; ș ț adăugate cu virgulă dedesubt), Courier Prime (fișele Bibliotecarului),
   Patrick Hand (baloanele). Toate cu licență liberă, găzduite local. */
@font-face{font-family:"Caveat";src:url("../assets/fonts/caveat-latin-ext-a-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Caveat";src:url("../assets/fonts/caveat-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Caveat";src:url("../assets/fonts/caveat-latin-ext-a-700-normal.woff2") format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Caveat";src:url("../assets/fonts/caveat-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Courier Prime";src:url("../assets/fonts/courier-prime-latin-ext-a-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Courier Prime";src:url("../assets/fonts/courier-prime-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Courier Prime";src:url("../assets/fonts/courier-prime-latin-ext-a-700-normal.woff2") format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Courier Prime";src:url("../assets/fonts/courier-prime-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Courier Prime";src:url("../assets/fonts/courier-prime-latin-ext-a-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Courier Prime";src:url("../assets/fonts/courier-prime-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Patrick Hand";src:url("../assets/fonts/patrick-hand-latin-ext-a-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Patrick Hand";src:url("../assets/fonts/patrick-hand-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Special Elite RO";src:url("../assets/fonts/special-elite-ro.woff2") format("woff2");font-weight:400;font-display:swap}

:root{
  --f-head:"EB Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"EB Garamond","Iowan Old Style",Georgia,"Times New Roman",serif;
  --f-hand:"Caveat","Segoe Print","Bradley Hand",cursive;
  --f-type:"Special Elite RO","Courier Prime","Courier New",monospace;
  --f-mono:"Courier Prime","Courier New",monospace;
  --f-balon:"Patrick Hand","Comic Sans MS",cursive;
  --f-caps:var(--f-mono);
  /* paleta caietului */
  --c-paper:#e9e1cf; --c-paper2:#efe7d6; --c-line:rgba(70,110,160,.16); --c-margin:rgba(196,70,60,.55);
  --c-navy:#1b2340; --c-navy2:#141a33; --c-gold:#c9a24a; --c-gold2:#e3c27a; --c-brick:#a3302a; --c-lamp:#2f6b4a;
  --c-ink:#1d1a17; --c-pink:#e0338a; --c-violet:#7b2ff7;
  --cy:rgba(0,168,232,.55); --mg:rgba(236,0,140,.5);
}
html[data-theme="hartie"]{ --bg:var(--c-paper); --card:var(--c-paper2); --card2:#e1d7c1; --acc:var(--c-brick); --fg:#1f1b16; --line:#b9a98a }
html[data-font="atkinson"],html[data-font="lexend"]{--f-hand:var(--f-head);--f-type:var(--f-body);--f-mono:var(--f-body);--f-balon:var(--f-body);--f-caps:var(--f-body)}

body{font-size:calc(1.08rem * var(--scale))}
h1{font-family:var(--f-hand);font-weight:700;font-size:clamp(2.3rem,1.6rem + 3vw,3.9rem);line-height:1;letter-spacing:0}
h2{font-family:var(--f-head);font-weight:600}
html[data-font="atkinson"] h1,html[data-font="lexend"] h1{font-family:var(--f-head);font-weight:700}
.overline,.v2-caps,.v3-label{font-family:var(--f-caps);text-transform:uppercase;letter-spacing:.14em;font-weight:400;font-size:.74rem}
.hand{font-family:var(--f-hand);font-size:1.45em;line-height:1.2}
.typed{font-family:var(--f-type);letter-spacing:.01em}
.hand-red{font-family:var(--f-hand);color:var(--c-brick);font-size:1.35em}
html[data-theme="noapte"] .hand-red,html[data-theme="contrast"] .hand-red{color:var(--acc)}

/* hârtia caietului: linii albastre, marginea roșie (doar pe tema hârtie) */
html[data-theme="hartie"] body{background-color:var(--c-paper);
  background-image:linear-gradient(90deg,transparent 0 calc(var(--mx,28px) - 1px),var(--c-margin) calc(var(--mx,28px) - 1px) var(--mx,28px),transparent var(--mx,28px)),
  repeating-linear-gradient(180deg,transparent 0 31px,var(--c-line) 31px 32px);background-attachment:local}
@media (min-width:900px){html[data-theme="hartie"] body{--mx:64px}}

/* raster (halftone) și decalaj de tipar offset */
.halftone{position:relative;isolation:isolate}
.halftone::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;mix-blend-mode:multiply;opacity:.2;
  background-image:radial-gradient(circle at 50% 50%,rgba(20,20,40,.9) 0 1.1px,transparent 1.6px);background-size:6px 6px}
.misreg{filter:drop-shadow(2px 0 0 var(--cy)) drop-shadow(-2px 1px 0 var(--mg))}
.misreg-text{text-shadow:2px 0 0 var(--cy),-2px 1px 0 var(--mg)}
html[data-theme="contrast"] .halftone::after{display:none}
html[data-theme="contrast"] .misreg,html[data-theme="contrast"] .misreg-text{filter:none;text-shadow:none}

/* scena pictată în spirit de roman grafic: ramă de tuș, raster, decalaj */
html.v3 .pic{border:3px solid var(--c-ink);box-shadow:6px 6px 0 rgba(0,0,0,.55)}
html.v3 .pic::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:6;mix-blend-mode:soft-light;opacity:.35;
  background-image:radial-gradient(circle,rgba(0,0,0,.85) 0 1px,transparent 1.5px);background-size:5px 5px}
html.v3 .pic .pic-char img{filter:drop-shadow(3px 0 0 var(--cy)) drop-shadow(-3px 1px 0 var(--mg)) drop-shadow(0 10px 14px rgba(0,0,0,.35))}
html.v3[data-theme="contrast"] .pic .pic-char img{filter:none}
html.v3[data-theme="contrast"] .pic::after{display:none}

/* panouri de bandă desenată */
.panel{position:relative;background:var(--c-paper2);color:var(--c-ink);border:3px solid var(--c-ink);box-shadow:5px 5px 0 var(--c-ink);border-radius:2px}
.panel--navy{background:var(--c-navy);color:#f2ebdf;border-color:#0b0e1c}
.panel--tilt{transform:rotate(-.6deg)}
.cap{display:inline-block;background:#f6efe0;color:var(--c-ink);border:2px solid var(--c-ink);padding:.45rem .7rem;font-family:var(--f-type);font-size:.9rem;line-height:1.35;box-shadow:3px 3px 0 rgba(0,0,0,.6)}
.balloon{position:relative;display:inline-block;background:#fff;color:#111;border:2.5px solid #111;border-radius:999px;padding:.55rem 1.1rem;font-family:var(--f-balon);font-size:1.12rem;line-height:1.25;box-shadow:3px 3px 0 rgba(0,0,0,.35)}
.balloon::after{content:"";position:absolute;left:22%;bottom:-14px;width:18px;height:18px;background:#fff;border-right:2.5px solid #111;border-bottom:2.5px solid #111;transform:skewX(28deg) rotate(45deg)}
.balloon--think{border-style:dashed}
.sfx{display:inline-block;font-family:var(--f-hand);font-weight:700;font-size:clamp(2.2rem,1.4rem + 4vw,4.6rem);line-height:.9;color:var(--c-gold2);
  -webkit-text-stroke:2px var(--c-ink);paint-order:stroke fill;text-shadow:3px 0 0 var(--cy),-3px 2px 0 var(--mg),5px 6px 0 rgba(0,0,0,.45);transform:rotate(-7deg)}
@media (prefers-reduced-motion:no-preference){.sfx.pop{animation:sfxPop .7s cubic-bezier(.2,1.6,.4,1) both}}
@keyframes sfxPop{0%{transform:rotate(-7deg) scale(.2);opacity:0}60%{transform:rotate(-4deg) scale(1.15);opacity:1}100%{transform:rotate(-7deg) scale(1)}}
html[data-miscare="redusa"] .sfx.pop{animation:none}
html[data-theme="contrast"] .sfx{color:#ffd84a;text-shadow:none}

/* polaroid lipit cu bandă */
.taped{position:relative;background:#fbf8f1;padding:10px 10px 30px;box-shadow:0 8px 20px rgba(0,0,0,.25);transform:rotate(-1.5deg)}
.taped::before{content:"";position:absolute;top:-12px;left:50%;width:90px;height:24px;margin-left:-45px;background:rgba(240,228,190,.75);border:1px solid rgba(0,0,0,.06);transform:rotate(3deg)}
.taped figcaption{font-family:var(--f-hand);font-size:1.15rem;text-align:center;color:#3a3329;margin-top:.4rem}

/* abțibild tăiat pe contur */
.sticker{filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 4px 6px rgba(0,0,0,.35))}
.sticker.locked{filter:grayscale(1) brightness(1.15) contrast(.5) opacity(.35)}

/* paginile Scrollinei pâlpâie */
.flicker{border:3px solid var(--c-pink)!important;box-shadow:0 0 0 3px rgba(224,51,138,.25),0 0 28px rgba(224,51,138,.45)!important}
@media (prefers-reduced-motion:no-preference){.flicker{animation:flick 4.5s steps(1) infinite}}
@keyframes flick{0%,100%{opacity:1}91%{opacity:1}92%{opacity:.55}93%{opacity:1}96%{opacity:.75}97%{opacity:1}}
html[data-miscare="redusa"] .flicker{animation:none}

/* eticheta de tipar „PAGINA 2 · SE CITEȘTE…” */
.typebar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--soft)}
.typebar::after{content:"";flex:1;border-top:1px solid currentColor;opacity:.5;min-width:30px}
.stamp-box{display:inline-block;border:2px solid var(--c-brick);color:var(--c-brick);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;padding:.35rem .6rem;transform:rotate(-2deg)}
html[data-theme="noapte"] .stamp-box,html[data-theme="contrast"] .stamp-box{border-color:var(--acc);color:var(--acc)}

/* ---------- Caietul (cititorul de pagini) ---------- */
.caiet-sec{margin:2rem 0}
.caiet-sec h2{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.caiet-sec h2 small{font-family:var(--f-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--soft);font-weight:400}
.caiet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:14px;padding:0;margin:0;list-style:none}
.caiet-grid a{display:block;text-decoration:none;color:inherit}
.caiet-thumb{position:relative;display:block;aspect-ratio:1680/2360;background:#d9cfba;border:2px solid var(--c-ink);box-shadow:3px 3px 0 rgba(0,0,0,.55);overflow:hidden;transition:transform .25s var(--ease-out)}
.caiet-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.caiet-grid a:hover .caiet-thumb,.caiet-grid a:focus-visible .caiet-thumb{transform:translateY(-4px) rotate(-1deg)}
.caiet-grid .nr{display:block;font-family:var(--f-mono);font-size:.72rem;margin-top:.35rem;letter-spacing:.08em}
.caiet-grid .tt{display:block;font-size:.86rem;line-height:1.2;color:var(--soft)}
.viewer{position:fixed;inset:0;z-index:90;background:rgba(10,12,22,.94);color:#f2ebdf;display:grid;grid-template-rows:auto 1fr auto}
.viewer-top,.viewer-bot{display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem calc(.55rem + var(--safe-b));flex-wrap:wrap}
.viewer-top{padding-top:calc(.55rem + var(--safe-t))}
.viewer-top .vt{flex:1;min-width:0;font-family:var(--f-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer .vbtn{min-height:44px;min-width:44px;border-radius:10px;border:1.5px solid rgba(242,235,223,.4);background:rgba(255,255,255,.06);color:inherit;font:600 .95rem/1 var(--f-ui);padding:.5rem .8rem;cursor:pointer}
.viewer .vbtn:hover{background:rgba(255,255,255,.14)}
.viewer .vbtn[aria-pressed="true"]{background:var(--c-gold);color:#14121a;border-color:var(--c-gold)}
.viewer-stage{position:relative;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:6px;touch-action:pan-x pan-y pinch-zoom}
.viewer-stage img{display:block;max-width:min(100%,920px);height:auto;max-height:calc(100dvh - 130px);width:auto;margin:auto;box-shadow:0 20px 50px rgba(0,0,0,.6)}
.viewer.zoom .viewer-stage img{max-height:none;max-width:none;width:min(1500px,220%)}
.viewer-text{position:absolute;inset:0;overflow:auto;background:var(--c-paper2);color:var(--c-ink);padding:1.2rem max(1rem,calc(50% - 34ch)) 3rem;font-family:var(--f-body);font-size:calc(1.1rem*var(--scale));line-height:var(--lh)}
.viewer-text p{margin:.5rem 0}
.viewer-text .vl{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;color:#6b5f4e}
.viewer-text .note{font-size:.85rem;color:#6b5f4e;border-top:1px dashed #b9a98a;margin-top:1.5rem;padding-top:.6rem}
@media (max-width:520px){.viewer .vbtn .lbl{display:none}}

/* ---------- Pagina lumii: „Din caietul Laurei” ---------- */
.din-caiet{margin:2.4rem auto 1rem;max-width:1100px;padding:0 1rem}
.din-caiet > header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.din-caiet .grid{display:grid;gap:22px;grid-template-columns:1fr}
@media (min-width:860px){.din-caiet .grid{grid-template-columns:1.05fr 1fr}}
.map-card{padding:10px;background:#d8ccb2}
.map-card img{display:block;width:100%;height:auto}
.map-card .lg{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.3rem;font-size:.95rem}
.map-card .lg b{font-family:var(--f-mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;display:block;color:var(--c-brick)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.fields div{border-left:2px solid var(--c-brick);padding:.2rem .6rem;font-family:var(--f-type);font-size:.88rem;line-height:1.4}
.fields b{display:block;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);font-weight:700}
.laura-note{border:2px dashed var(--c-ink);padding:.7rem 1rem;font-family:var(--f-hand);font-size:1.35rem;line-height:1.25;margin:1rem 0;background:rgba(255,255,255,.25)}
html[data-theme="noapte"] .laura-note{border-color:var(--line)}
.comic-strip{display:flex;gap:14px;flex-wrap:wrap}
.comic-strip a{flex:1 1 150px;max-width:220px;text-decoration:none;color:inherit}
.comic-strip .caiet-thumb{border-width:3px}
.comic-strip .tt{display:block;font-family:var(--f-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-top:.4rem}

/* ---------- Oracolul ---------- */
.oracol-dial{position:relative;width:min(92vw,520px);aspect-ratio:1;margin:1rem auto;border-radius:50%;background:radial-gradient(circle,#202a4d 0 58%,#141a33 59%);border:6px solid var(--c-gold);box-shadow:0 0 0 3px #0b0e1c,0 20px 40px rgba(0,0,0,.4)}
.oracol-dial .o-hand{position:absolute;left:50%;top:50%;width:4px;height:38%;background:var(--c-gold2);transform-origin:50% 100%;translate:-50% -100%;border-radius:4px;transition:rotate 1.2s cubic-bezier(.2,1.3,.4,1);font-size:0}
.oracol-dial .hub{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border-radius:50%;background:var(--c-gold)}
.oracol-dial a{position:absolute;width:23%;translate:-50% -50%;text-align:center;color:#f2ebdf;font-family:var(--f-hand);font-size:clamp(.85rem,.6rem + 1vw,1.15rem);line-height:1.05;text-decoration:none;padding:.2rem;border-radius:10px}
.oracol-dial a:hover,.oracol-dial a:focus-visible{background:rgba(201,162,74,.25)}
.oracol-dial a b{display:block;font-family:var(--f-mono);font-size:.7rem;color:var(--c-gold2)}
html[data-miscare="redusa"] .oracol-dial .o-hand{transition:none}

/* ---------- Abțibildurile ---------- */
.stk-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:22px;padding:22px;background:#f4f2ec;border:2px dashed #8a8a8a;border-radius:6px}
html[data-theme="noapte"] .stk-sheet{background:#232838}
.stk{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:.3rem;border-radius:12px}
.stk img{width:110px;height:110px;object-fit:contain;transition:transform .3s var(--ease-out)}
.stk:hover img,.stk:focus-visible img{transform:rotate(-6deg) scale(1.08)}
.stk .stk-nm{font-family:var(--f-hand);font-size:1.2rem;line-height:1}
.stk .stk-how{font-family:var(--f-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--soft)}

/* ---------- Program de sală ---------- */
.cast{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 22px;list-style:none;padding:0}
.cast li{border-bottom:1px dotted var(--line);padding:.35rem 0}
.cast b{display:block;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--acc)}
.navy-block{background:var(--c-navy);color:#f2ebdf;padding:1.4rem 1.2rem;border:3px solid #0b0e1c;box-shadow:6px 6px 0 rgba(0,0,0,.4)}
.navy-block h2,.navy-block h3{color:var(--c-gold2)}

/* ---------- Holul v3: benzi desenate ---------- */
.hall3-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;max-width:1100px;margin:1.2rem auto;padding:0 1rem}
.hall3-strip a{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:120px;padding:.7rem;text-decoration:none;color:#f2ebdf;background:var(--c-navy);border:3px solid var(--c-ink);box-shadow:4px 4px 0 var(--c-ink);overflow:hidden}
.hall3-strip a:nth-child(2n){transform:rotate(.6deg)} .hall3-strip a:nth-child(3n){transform:rotate(-.7deg)}
.hall3-strip a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transition:opacity .3s,transform .5s var(--ease-out)}
.hall3-strip a:hover img,.hall3-strip a:focus-visible img{opacity:.8;transform:scale(1.06)}
.hall3-strip a strong{position:relative;font-family:var(--f-hand);font-size:1.55rem;line-height:1;text-shadow:0 2px 6px rgba(0,0,0,.8)}
.hall3-strip a span{position:relative;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,.9)}
.hall3-sfx{position:absolute;right:4%;top:9%;z-index:7;pointer-events:none}
@media (max-width:600px){.hall3-sfx{display:none}}

/* bibliotecarul pe pagina lui */
.lib3-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;max-width:1000px;margin:0 auto 1rem;padding:0 1rem;align-items:end}
@media (min-width:760px){.lib3-hero{grid-template-columns:300px 1fr}}
.lib3-hero .who img{width:100%;height:auto;display:block}
.lib3-hero blockquote{margin:0;font-family:var(--f-body);font-style:italic;font-size:1.25rem}
.lib3-hero blockquote footer{font-family:var(--f-mono);font-style:normal;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-top:.4rem;color:var(--soft)}

@media print{.viewer,.hall3-strip,.hall3-sfx{display:none!important}html[data-theme="hartie"] body{background:none}}

/* ---------- Atlasul v3: harta oficială cu lumi apăsabile ---------- */
.atlas3-wrap{max-width:860px;margin:1rem auto;padding:0 1rem}
.atlas3-map{position:relative;background:#d8ccb2;padding:8px;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.atlas3-map img{display:block;width:100%;height:auto}
.atlas3-map .hot{position:absolute;translate:-50% -50%;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#1b2340;min-width:48px;min-height:48px;justify-content:center}
.atlas3-map .dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f2ebdf;border:3px solid #1b2340;font-family:var(--f-caps);font-size:1rem;box-shadow:3px 3px 0 #a3302a;transition:transform .25s var(--ease-out)}
.atlas3-map .hot.vis .dot{border-color:var(--c-gold);background:#1b2340;color:#f2ebdf}
.atlas3-map .hot.done .dot::after{content:"✓";position:absolute;margin:-26px 0 0 28px;font-size:.9rem;color:#a3302a;font-weight:700}
.atlas3-map .lbl{font-family:var(--f-hand);font-size:clamp(.8rem,.5rem + 1.2vw,1.2rem);line-height:1;background:rgba(242,235,223,.92);padding:1px 6px;border-radius:4px;opacity:0;transform:translateY(-4px);transition:.2s;white-space:nowrap;pointer-events:none}
.atlas3-map .hot:hover .dot,.atlas3-map .hot:focus-visible .dot{transform:scale(1.18) rotate(-6deg)}
.atlas3-map .hot:hover .lbl,.atlas3-map .hot:focus-visible .lbl{opacity:1;transform:none}
.atlas3-map .laura-pin{position:absolute;translate:-50% -190%;background:#e0338a;color:#fff;font-family:var(--f-hand);font-size:1.05rem;padding:2px 10px;border-radius:12px;box-shadow:2px 2px 0 #1b2340;pointer-events:none;animation:pinbob 1.6s ease-in-out infinite}
.atlas3-map .laura-pin::after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-6px;border:6px solid transparent;border-top-color:#e0338a;border-bottom:0}
@keyframes pinbob{50%{translate:-50% -205%}}
html[data-miscare="redusa"] .atlas3-map .laura-pin{animation:none}
@media (hover:none){.atlas3-map .lbl{opacity:1;transform:none;font-size:.8rem}}

/* ---------- Dicționarul Invizibililor (glosarul tipărit) ---------- */
.glosar dt{font-family:var(--f-caps);letter-spacing:.06em}
.glosar .gr{font-family:var(--f-type);font-style:italic;font-size:.8em;color:var(--soft);letter-spacing:0;text-transform:none}
.glosar .gl-ask{font-family:var(--f-mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--c-brick)}
.glosar .gl-in{font-family:var(--f-hand);font-size:1.3rem;border:0;border-bottom:2px dotted var(--c-ink);background:transparent;color:inherit;min-width:12ch;width:min(100%,32ch);padding:0 .2rem}
html[data-theme="noapte"] .glosar .gl-ask{color:var(--acc)}
.oracol-dial.halftone::after{border-radius:50%}
.oracol-dial .o-hand{height:24%;z-index:1}
.oracol-dial .o-hand::after{content:"";position:absolute;left:50%;top:-10px;margin-left:-8px;border:8px solid transparent;border-bottom:12px solid var(--c-gold2);border-top:0}
.oracol-dial a{z-index:2}
.oracol-dial .hub{z-index:2}
.atlas3-map .hot{translate:-50% -112%}
.atlas3-map .dot{width:30px;height:30px;font-size:.9rem}
@media (hover:none){.atlas3-map .lbl{display:none}}
.din-caiet .grid{align-items:start}
.din-caiet h2{font-family:var(--f-hand);font-size:clamp(2rem,1.4rem + 2vw,2.8rem);font-weight:700}
.map-card figcaption{text-align:left;font-family:var(--f-body);font-size:1rem}
.map-card .lg b{font-family:var(--f-mono)}
.stk{width:100%;min-width:0;justify-content:flex-start}
.stk .stk-nm,.stk .stk-how{display:block;width:100%;white-space:normal;word-break:normal;overflow-wrap:anywhere}
.stk .stk-how{font-size:.64rem;line-height:1.35;text-transform:none;letter-spacing:.02em}
/* a11y: contrast pe cartonașele cu fundal fix */
.map-card,.map-card figcaption{color:#1b2340}
.map-card .lg b{color:#7e221d}
.map-card .small.muted{color:#4a4033}
html[data-theme="contrast"] .map-card{background:#fff}
html[data-theme="contrast"] .map-card,html[data-theme="contrast"] .map-card figcaption,html[data-theme="contrast"] .map-card .small.muted,html[data-theme="contrast"] .map-card .lg b{color:#000}
html[data-theme="contrast"] .stk-sheet{background:#000;border-color:#fff}
html[data-theme="contrast"] .glosar .gl-ask{color:var(--acc)}
.dict-entry.dict-first::before{content:attr(data-letter);display:block;font-family:var(--f-hand);font-size:2.2rem;font-weight:700;color:var(--acc);margin:1.2rem 0 .2rem;border-bottom:2px solid var(--line)}
@media (max-width:520px){
  .stk-sheet{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px}
  .stk img{width:90px;height:90px}
  .oracol-dial a{width:26%;font-size:.78rem}
  .oracol-dial a b{font-size:.6rem}
}

/* ===== v3.1 (18.10.2026) · personajele întregi în cadru, pe orice ecran =====
   Portretele pictate au înlocuit desenele SVG, dar regulile de mărime erau scrise doar pentru <svg>.
   Acum fiecare portret e dimensionat după înălțime, cu plafon relativ la ecran (svh, cu rezervă vh). */
img.pers{width:auto;max-width:100%;height:auto;max-height:min(72vh,620px);max-height:min(72svh,620px);object-fit:contain;object-position:50% 100%}
.pic-char img.pers{max-height:none}
/* intrarea (prima vizită): Bibliotecarul încape întreg, cu replica și butoanele sub el */
.intro{align-content:safe center;padding:max(1rem,var(--safe-t)) max(1rem,var(--safe-r)) max(1rem,var(--safe-b)) max(1rem,var(--safe-l));gap:clamp(.5rem,2svh,1.1rem)}
.intro-char{display:flex;justify-content:center;align-items:flex-end;flex:none}
.intro-char img.pers{height:clamp(120px,36vh,340px);height:clamp(120px,36svh,340px);max-height:none;width:auto;max-width:80vw}
@media (max-height:560px){.intro-char img.pers{height:clamp(96px,30svh,200px)}.intro-brands{margin-bottom:0}.intro-brands .intro-inv{width:min(180px,40vw)}.intro-brands .brand-wt{width:64px}}
@media (max-height:560px) and (orientation:landscape){.intro{grid-template-columns:auto minmax(0,34rem);align-items:end;column-gap:1.4rem}.intro-brands{grid-column:1/-1}.intro-char{grid-row:2/4}.intro-say,.intro-actions{grid-column:2}}
/* Bibliotecarul (pagina cu fișe), Laura în jurnal, camera secretă, distribuția din lumi */
.lib-char img.pers{width:104px;height:auto;max-height:none}
.jurnal-laura img.pers{width:90px;height:auto;max-height:none}
.camera-char img.pers{height:min(52vh,360px);height:min(52svh,360px);width:auto;max-height:none}
.cast-fig img.pers{height:100%;width:auto;max-width:100%;max-height:none}
.char-fig img.pers{max-height:min(340px,calc(100vh - var(--bar-h) - 24px));max-height:min(340px,calc(100svh - var(--bar-h) - 24px))}
.lib3-hero .who img{width:auto;max-width:100%;max-height:min(70vh,520px);max-height:min(70svh,520px);margin:0 auto}
/* scenele pictate nu trec de înălțimea ecranului (telefon culcat, laptop scund); personajele rămân ancorate jos */
.pic:not(.pic-slim){max-height:calc(100vh - var(--bar-h) - var(--safe-t) - 12px);max-height:calc(100svh - var(--bar-h) - var(--safe-t) - 12px);min-height:220px}
.pic-mid{transform-origin:50% 100%}
.pic-char{max-height:92%}
@media (max-width:699px) and (orientation:landscape){.hall2-hero .pic{aspect-ratio:16/9}}
@media (min-width:700px) and (min-height:600px){.intro-char img.pers{height:clamp(160px,42svh,380px)}}
@media (max-height:560px) and (orientation:landscape){.intro-char img.pers{height:clamp(110px,58vh,240px);height:clamp(110px,58svh,240px)}}
/* v3.1 · lizibilitate: nicio etichetă sub 12px; ținte de atingere de cel puțin 44px pe liste de linkuri */
.door2 .d-nr{font-size:max(12px,.75rem)}
.door2 .d-nm,.typebar,.map-card .v3-label,.map-card .lg b,.caiet-sec h2 small,.caiet-grid .nr,.g-scrollina-pg-k{font-size:max(12.5px,.78rem)}
.oracol nav li a,nav.col li a{display:inline-block;padding-block:.62rem;line-height:1.3}
.back-link a,.hall-side .small a{display:inline-block;padding-block:.7rem}
html.v3 :is(.g-scrollina-pg-k,.hall2-brand .overline,.stk-how,.hall3-strip a span,a span.tt,.lib3-hero blockquote footer,.gl-ask,.fields b,.cast li > b,.typebar,.door2 .d-nm,.map-card .v3-label,.map-card .lg b,.caiet-sec h2 small,.caiet-grid .nr){font-size:max(12.5px,.78rem)}
@media (max-height:500px){.pic:not(.pic-slim){max-height:calc(100vh - var(--bar-h) - var(--safe-t) - 40px);max-height:calc(100svh - var(--bar-h) - var(--safe-t) - 40px)}}

/* ===== v3.2 (18.10.2026) · cititorul de pagini (romanul grafic și tot caietul) =====
   Înainte: titlul lung, pe un singur rând, lățea coloana grilei → pe telefon cititorul ieșea din ecran
   (butoanele ✕ / Mărește / Înainte nu se vedeau, pagina era tăiată în dreapta); pe telefon culcat pagina era minusculă.
   Acum: coloana nu poate depăși ecranul; pagina întreagă încape implicit (după înălțime), atingerea o mărește. */
.viewer{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;background:rgba(10,12,22,.985);overscroll-behavior:contain}
.viewer > *{min-width:0}
.viewer-top{flex-wrap:nowrap}
.viewer-top .vbtn{flex:none}
.viewer-stage{display:flex;align-items:center;justify-content:center;min-height:0;padding:6px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y pinch-zoom}
.viewer-stage picture{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0}
.viewer-stage img{display:block;width:auto;height:auto;max-width:min(100%,920px);max-height:100%;margin:0;object-fit:contain;cursor:zoom-in;box-shadow:0 20px 50px rgba(0,0,0,.6)}
.viewer-stage img.pg-loading{background-size:100% 100%;background-repeat:no-repeat;filter:blur(1.5px)}
.viewer-stage img{transition:filter .25s ease}
/* mărit: blocul curge normal, deci se poate derula în toate părțile, fără margini pierdute */
.viewer.zoom .viewer-stage{display:block;touch-action:pan-x pan-y pinch-zoom}
.viewer.zoom .viewer-stage picture{display:block;width:auto;height:auto}
.viewer.zoom .viewer-stage img{max-width:none;max-height:none;width:max(min(1500px,220%),100%);margin:0 auto;cursor:zoom-out}
/* telefon: doar pictogramele pe butoane, bare mai subțiri */
@media (max-width:520px){.viewer-top{gap:.35rem;padding-inline:.5rem}.viewer .vbtn{padding:.45rem .6rem}.viewer-top .vt{font-size:.68rem}}
/* telefon culcat / ecran scund: bare compacte, ca pagina să aibă cât mai multă înălțime */
@media (max-height:520px){
  .viewer-top,.viewer-bot{padding-top:max(.25rem,var(--safe-t));padding-bottom:max(.25rem,var(--safe-b));padding-left:max(.6rem,var(--safe-l));padding-right:max(.6rem,var(--safe-r));gap:.4rem}
  .viewer-bot{padding-top:.25rem}
  .viewer .vbtn{min-height:40px;min-width:40px;padding:.3rem .6rem}
  .viewer .vbtn .lbl{display:none}
  .viewer-stage{padding:2px}
  .viewer-stage img{box-shadow:none}
}
html[data-miscare="redusa"] .viewer-stage img{transition:none}
/* telefon culcat: comenzile trec într-o coloană în dreapta, pagina primește toată înălțimea */
@media (max-height:520px) and (orientation:landscape){
  .viewer{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"stage top" "stage bot"}
  .viewer-stage{grid-area:stage}
  .viewer-top{grid-area:top;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:max(.4rem,var(--safe-t)) max(.5rem,var(--safe-r)) .3rem .3rem}
  .viewer-bot{grid-area:bot;flex-direction:column;align-items:stretch;padding:.3rem max(.5rem,var(--safe-r)) max(.4rem,var(--safe-b)) .3rem}
  .viewer-top .vt{display:none}
  .viewer-bot .small{order:-1;font-size:.7rem;text-align:center;max-width:7.5rem}
  .viewer-stage{padding:max(4px,var(--safe-t)) 4px max(4px,var(--safe-b)) max(4px,var(--safe-l))}
}

/* ===== v3.3 · Manualul A5 în PDF, de descărcat (finalul manualului, părinți, profesori) ===== */
.dl-manual{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem 1.5rem;align-items:center;max-width:46rem;margin:1.8rem auto;padding:1.25rem 1.5rem;
  background:radial-gradient(130% 150% at 0% 0%,#252c48 0%,#151926 55%,#0f1119 100%);color:#f2ebdf;border:2px solid var(--gold);box-shadow:0 12px 32px rgba(15,17,25,.28)}
.dl-cover-wrap{padding:.3rem .2rem .5rem .4rem}
.dl-cover{display:block;width:132px;height:auto;border-radius:3px 9px 9px 3px;transform:rotate(-2.5deg);box-shadow:0 8px 20px rgba(0,0,0,.5),-3px 0 0 rgba(201,154,69,.55)}
.dl-body{min-width:0}
.dl-kicker{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.dl-manual .dl-title{margin:.2rem 0 .4rem;font-family:var(--f-head);font-size:clamp(1.3rem,2.4vw,1.8rem);line-height:1.15;color:#f2ebdf;border:0;padding:0}
.dl-meta{margin:0 0 .9rem;color:#e9dfcd}
.dl-act{margin:0 0 .6rem}
.dl-manual .dl-btn{background:var(--gold);color:#0f1119;border-color:var(--gold);max-width:100%;white-space:nowrap;text-align:center;font-size:1.05rem;padding:.8rem 1.25rem}
.dl-manual .dl-btn:hover{background:#d9ae5f;border-color:#d9ae5f}
.dl-manual .dl-btn:focus-visible{outline:3px solid #ffd37a;outline-offset:3px}
.dl-manual .dl-note{margin:0;color:#c9c0af}
.dl-end{margin-top:.6rem}
.g-taram-thanks + .dl-manual{margin-top:1.2rem}
@media (max-width:560px){
  .dl-manual{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;padding:1.1rem 1rem;gap:.7rem}
  .dl-cover{width:96px}
  .dl-manual .dl-btn{width:100%;font-size:1.02rem;padding:.75rem 1rem}
}
@media print{.dl-manual{display:none}}
