/* ===== v2 · fonturi, sigle, picturi pe straturi, tranziții (modular: tot ce e nou în v2 stă aici) ===== */

/* --- Fonturi (OFL, găzduite local; latin + latin-ext cu ă â î ș ț, virgulă dedesubt) --- */
@font-face{font-family:"EB Garamond";src:url("../assets/fonts/eb-garamond-latin-ext-a-wght-normal.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"EB Garamond";src:url("../assets/fonts/eb-garamond-latin-wght-normal.woff2") format("woff2");font-weight:400 800;font-style:normal;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:"EB Garamond";src:url("../assets/fonts/eb-garamond-latin-ext-a-wght-italic.woff2") format("woff2");font-weight:400 800;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:"EB Garamond";src:url("../assets/fonts/eb-garamond-latin-wght-italic.woff2") format("woff2");font-weight:400 800;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:"Literata";src:url("../assets/fonts/literata-latin-ext-a-wght-normal.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Literata";src:url("../assets/fonts/literata-latin-wght-normal.woff2") format("woff2");font-weight:200 900;font-style:normal;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:"Literata";src:url("../assets/fonts/literata-latin-ext-a-wght-italic.woff2") format("woff2");font-weight:200 900;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:"Literata";src:url("../assets/fonts/literata-latin-wght-italic.woff2") format("woff2");font-weight:200 900;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:"Cinzel";src:url("../assets/fonts/cinzel-latin-ext-a-wght-normal.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0100-017F,U+0218-021B,U+1EA0-1EB1,U+1ECA-1ECB,U+20AC}
@font-face{font-family:"Cinzel";src:url("../assets/fonts/cinzel-latin-wght-normal.woff2") format("woff2");font-weight:400 900;font-style:normal;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}

:root{
  --f-head:"EB Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"Literata","Iowan Old Style",Georgia,"Times New Roman",serif;
  --f-caps:"Cinzel","EB Garamond",Georgia,serif;
  --gold-1:#f6dc9a;--gold-2:#e6c886;--gold-3:#c99a45;--gold-4:#8f6a2a;
}
html[data-font="atkinson"],html[data-font="lexend"]{--f-caps:var(--f-head)}
h1,h2{font-weight:600;letter-spacing:.005em}
h1{font-size:clamp(2rem,1.4rem + 2.6vw,3.3rem);line-height:1.06}
h3,h4{font-weight:650}
.overline,.v2-caps{font-family:var(--f-caps);text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:.78rem}
html[data-font="atkinson"] .overline,html[data-font="lexend"] .overline{letter-spacing:.06em}

/* --- Sigle --- */
.brand-inv{display:block;width:min(560px,86%);height:auto;margin:0 auto;filter:drop-shadow(0 6px 18px rgba(0,0,0,.45))}
.brand-wt{display:inline-block;height:auto;width:118px;opacity:.95}
#bar a.brand .bar-logo{height:26px;width:auto;display:block}
#bar a.brand .bar-t{font-family:var(--f-head);font-weight:600;font-size:1.06rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:480px){#bar a.brand .bar-t{display:none}}
#foot .foot-brands{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin:.6rem 0 .8rem}
#foot .foot-brands img{height:auto;display:block}
#foot .foot-brands .fb-inv{width:150px}
#foot .foot-brands .fb-wt{width:104px}
.brand-pair{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}
.brand-pair .bp-sep{width:1px;height:28px;background:currentColor;opacity:.3}
html[data-theme="hartie"] .on-paper-wt{filter:none}

/* --- Picturi pe straturi --- */
.pic{position:relative;overflow:hidden;isolation:isolate;aspect-ratio:8/5;width:100%;background:var(--pic-c,#141a2e);border-radius:18px;box-shadow:0 18px 50px rgba(8,10,24,.35)}
.pic-slim{aspect-ratio:auto;height:clamp(120px,22vw,190px);border-radius:14px}
.pic-layer{position:absolute;inset:-3%;will-change:transform}
.pic-layer img,.pic-layer picture{width:100%;height:100%;object-fit:cover;display:block}
.pic-bg img{opacity:0;transition:opacity .9s ease}
.pic-on .pic-bg img{opacity:1}
.pic-gray{opacity:0;transition:opacity 18s linear}
.world.gray .pic-gray{opacity:1}
.pic-mid{inset:0}
.pic-char{position:absolute;bottom:2%;transform:translateX(-50%);aspect-ratio:auto;display:flex;align-items:flex-end;filter:drop-shadow(0 10px 14px rgba(0,0,0,.45))}
.pic-char img{height:100%;width:auto;display:block;object-fit:contain}
.pic-char.flip img{transform:scaleX(-1)}
.pic-on .pic-char{animation:charIn 1.1s cubic-bezier(.2,.9,.25,1) both}
.pic-on .pic-char:nth-child(2){animation-delay:.18s}
@keyframes charIn{from{opacity:0;transform:translate(-50%,8%)}to{opacity:1;transform:translate(-50%,0)}}
.pic-light{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(60% 50% at 30% 18%,rgba(255,214,140,.32),transparent 70%);opacity:.0;transition:opacity 1.4s ease}
.pic-on .pic-light{opacity:1;animation:lightBreath 9s ease-in-out infinite alternate}
@keyframes lightBreath{from{transform:translate3d(-2%,0,0)}to{transform:translate3d(3%,1%,0)}}
.pic-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.pic-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(5,6,16,.55) 100%),linear-gradient(to top,rgba(5,6,16,.45),transparent 30%)}
.pic-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.pic-thread path{fill:none;stroke-linecap:round}
.pic-thread .thr-glow{stroke-width:7;opacity:.45}
.pic-thread .thr-line{stroke-width:2;stroke-dasharray:1000;stroke-dashoffset:1000}
.pic-on .pic-thread .thr-line{animation:thrDraw 2.6s .4s cubic-bezier(.4,0,.2,1) forwards}
.pic-thread .thr-spark{stroke:#fff6d8;stroke-width:3.2;stroke-dasharray:18 982;stroke-dashoffset:1000;opacity:0}
.pic-on .pic-thread .thr-spark{animation:thrSpark 5.5s 3s linear infinite}
@keyframes thrDraw{to{stroke-dashoffset:0}}
@keyframes thrSpark{0%{stroke-dashoffset:1000;opacity:0}8%{opacity:1}92%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.pic-overlay{position:absolute;inset:0}
.pic-overlay svg{width:100%;height:100%;display:block}
.pic-overlay .hidden-obj{opacity:.92;cursor:pointer}
.pic-title{position:absolute;left:0;right:0;bottom:0;padding:clamp(14px,3vw,30px);color:#fbf3df;text-shadow:0 2px 14px rgba(0,0,0,.6);pointer-events:none}
.pic-title .overline{color:var(--gold-2)}

/* lumea: pictura ține locul scenei SVG */
.scene-wrap.has-pic{background:none;border:0;padding:0;aspect-ratio:auto;overflow:visible;height:auto;border-radius:18px}
.scene-wrap.has-pic .pic{border-radius:6px 26px 6px 26px}
.world.gray .pic-mid{filter:grayscale(.85) brightness(.9);transition:filter 18s linear}
html[data-miscare="redusa"] .world.gray .pic-mid{transition:none}
.scene-wrap.has-pic > svg.scene{display:none}

/* --- Holul v2 --- */
.hall2-hero{position:relative;margin:0 auto 1.2rem;max-width:1180px}
.hall2-hero .pic{aspect-ratio:16/9;border-radius:22px}
@media (max-width:699px){.hall2-hero .pic{aspect-ratio:3/4;border-radius:0}.hall2-hero{margin-left:calc(-1 * var(--gut,16px));margin-right:calc(-1 * var(--gut,16px))}}
.hall2-brand{position:absolute;left:50%;top:6%;transform:translateX(-50%);width:min(520px,78%);z-index:3;pointer-events:none;text-align:center}
.hall2-brand .overline{display:block;color:#fbe9bf;margin-top:.4rem;text-shadow:0 2px 10px rgba(0,0,0,.7);font-size:clamp(.7rem,.6rem + .5vw,1rem)}
.hall2-doors{position:absolute;left:0;right:0;bottom:0;z-index:4;display:grid;grid-template-columns:repeat(8,1fr);gap:8px;padding:12px clamp(10px,2vw,22px) clamp(12px,2vw,20px);background:linear-gradient(to top,rgba(6,8,20,.82),rgba(6,8,20,0))}
@media (max-width:699px){.hall2-doors{grid-template-columns:repeat(4,1fr)}}
.door2{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:12px;color:#fbf3df;text-decoration:none;background:rgba(20,26,50,.55);border:1px solid rgba(230,200,134,.35);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);font-family:var(--f-ui);font-size:.72rem;line-height:1.15;text-align:center;min-height:44px;transition:transform .25s ease,border-color .25s ease,background .25s ease}
.door2:hover,.door2:focus-visible{transform:translateY(-3px);border-color:var(--gold-2);background:rgba(40,46,80,.7)}
.door2 .d-emb{width:34px;height:34px}
.door2 .d-emb svg{width:100%;height:100%}
.door2.done{border-color:var(--gold-2);box-shadow:0 0 0 1px rgba(230,200,134,.4),0 0 18px rgba(230,200,134,.35)}
.door2 .d-nr{font-family:var(--f-caps);font-size:.66rem;letter-spacing:.12em;color:var(--gold-2)}
.hall2-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto 1.4rem;max-width:980px}
.hall2-actions .act{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:6px 16px 6px 8px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--fg);font-family:var(--f-ui);font-weight:600;font-size:.9rem;text-decoration:none;cursor:pointer}
.hall2-actions .act img,.hall2-actions .act .a-ic{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:top;background:var(--card2);display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
.hall2-actions .act .a-ic svg{width:26px;height:26px}
.hall2-actions .act:hover,.hall2-actions .act:focus-visible{border-color:var(--gold-3)}
.hall.v2 .hall-scene{display:none}

/* --- Portrete decupate în pagini (personaje, bibliotecar, intro, jurnal) --- */
img.pers{display:block;max-width:100%;height:auto;margin:0 auto;filter:drop-shadow(0 10px 16px rgba(0,0,0,.28))}
.char-fig img.pers{max-height:340px;width:auto}
.sheet-wrap{margin:1.2rem 0 2rem}
.sheet-wrap img{width:100%;height:auto;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.sheet-wrap figcaption{font-family:var(--f-ui);font-size:.85rem;color:var(--soft);margin-top:.4rem}

/* --- Tranziții între pagini --- */
@keyframes pageIn{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
#main > * > .page,#main > .page{animation:pageIn .65s cubic-bezier(.2,.8,.2,1) both}
.v2-flash{position:fixed;inset:0;z-index:120;pointer-events:none;background:radial-gradient(circle at 50% 55%,rgba(246,220,154,.55),rgba(246,220,154,0) 60%);opacity:0;animation:flash .7s ease-out forwards}
@keyframes flash{0%{opacity:0}30%{opacity:1}100%{opacity:0}}

/* --- Pașaport și fișe A4: sigle --- */
.pass-brands,.fs-brands{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 .8rem}
.pass-brands img.inv,.fs-brands img.inv{width:150px;height:auto}
.pass-brands img.wt,.fs-brands img.wt{width:96px;height:auto}

/* --- Mișcare redusă: totul static, nimic nu se mișcă --- */
html[data-miscare="redusa"] .pic-layer{transform:none!important}
html[data-miscare="redusa"] .pic-dust{display:none}
html[data-miscare="redusa"] .pic-light,html[data-miscare="redusa"] .pic-on .pic-light{animation:none}
html[data-miscare="redusa"] .pic-thread .thr-line{stroke-dashoffset:0;animation:none}
html[data-miscare="redusa"] .pic-thread .thr-spark{display:none}
html[data-miscare="redusa"] .pic-char,html[data-miscare="redusa"] #main .page{animation:none}
html[data-miscare="redusa"] .pic-gray{transition:opacity .01s}
html[data-miscare="redusa"] .v2-flash{display:none}
html[data-miscare="redusa"] .pic-bg img{transition:none}
@media (prefers-reduced-motion: reduce){
  .pic-layer{transform:none!important}.pic-dust,.pic-thread .thr-spark,.v2-flash{display:none}
  .pic-light,.pic-char,#main .page{animation:none!important}.pic-thread .thr-line{stroke-dashoffset:0;animation:none}
}
@media print{.pic-dust,.pic-thread,.pic-light,.v2-flash{display:none}}

html[data-theme="noapte"] .on-paper-wt,html[data-theme="contrast"] .on-paper-wt{filter:brightness(0) invert(1)}
.intro-brands{margin:0 auto 1rem;max-width:520px}
.intro-brands .intro-inv{width:min(300px,60vw)}
.intro-brands .brand-wt{width:96px}
@media (max-width:699px){.hall2-doors{position:relative;background:#0c1230;padding:10px}.hall2-hero .pic{aspect-ratio:4/5}}
.hall2-brand::before{content:"";position:absolute;inset:-30% -12%;z-index:-1;background:radial-gradient(closest-side,rgba(6,8,22,.55),rgba(6,8,22,0))}
.pic-char img.pers{height:100%;width:auto;max-width:none;filter:none;margin:0}
@media (max-width:699px){.pic-char{bottom:1%}}
