:root{
  --ink:#0d0a07; --umber:#17110b; --umber2:#21180f; --panel:#1d150e;
  --parch:#e8dbbf; --parch2:#d7c49d; --text:#e6d9bf; --muted:#a8977a;
  --gold:#c9a45c; --gold2:#e7c983; --chalk:#b4553a; --line:rgba(201,164,92,.28);
  --serif:"Cormorant Garamond","Iowan Old Style",Garamond,Georgia,serif;
  --caps:"Cinzel","Trajan Pro",Georgia,serif;
  --hand:"IM Fell English","Cormorant Garamond",Georgia,serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--serif);font-size:19px;line-height:1.6;overflow-x:hidden;min-height:100vh}
img{max-width:100%;display:block}
button{font:inherit;color:inherit}
a{color:var(--gold2)}
::selection{background:rgba(201,164,92,.35)}

/* ---------- atmósfera ---------- */
#bg{position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(ellipse at 50% 20%,#2a1d11 0%,#140e08 55%,#070504 100%)}
#bg svg{position:absolute;left:50%;top:50%;width:min(140vmax,1800px);height:auto;transform:translate(-50%,-50%);opacity:.11;animation:spin 240s linear infinite}
#grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
#fx{position:fixed;inset:0;z-index:0;pointer-events:none}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#bg svg{animation:none}*{scroll-behavior:auto}}

/* ---------- barra superior ---------- */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px clamp(16px,4vw,40px);background:linear-gradient(#0d0a07ee,#0d0a07aa 70%,transparent);backdrop-filter:blur(6px)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--parch)}
.brand svg{width:34px;height:34px;flex:none}
.brand b{font-family:var(--caps);font-weight:500;letter-spacing:.18em;font-size:14px}
.top-actions{display:flex;gap:8px}
.icon-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#120d08aa;border-radius:999px;padding:7px 14px;cursor:pointer;font-family:var(--caps);font-size:11px;letter-spacing:.14em;color:var(--parch2);transition:.25s}
.icon-btn:hover{border-color:var(--gold);color:var(--gold2)}
.icon-btn svg{width:16px;height:16px}
.icon-btn.on{border-color:var(--gold);color:var(--gold2);box-shadow:0 0 18px rgba(201,164,92,.25)}
@media (max-width:560px){.icon-btn .lbl{display:none}.icon-btn{padding:8px 10px}.brand b{font-size:12px;letter-spacing:.12em}}

/* ---------- portada ---------- */
.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.hero{min-height:calc(100vh - 60px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px 0 30px;position:relative}
.kicker{font-family:var(--caps);letter-spacing:.38em;font-size:12px;color:var(--gold);text-transform:uppercase}
.hero h1{font-family:var(--caps);font-weight:400;font-size:clamp(40px,8.5vw,104px);line-height:1.02;margin:.25em 0 .15em;letter-spacing:.06em;
  background:linear-gradient(180deg,#f3e6c8 0%,#d8b878 55%,#9c7a41 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(201,164,92,.08)}
.hero .mirror-line{font-family:var(--hand);font-style:italic;font-size:clamp(17px,2.4vw,24px);color:var(--muted);transform:scaleX(-1);display:inline-block;transition:transform 1.4s cubic-bezier(.6,0,.2,1);cursor:default}
.hero .mirror-line.read{transform:scaleX(1);color:var(--parch2)}
.hero .authors{font-family:var(--caps);letter-spacing:.24em;font-size:12px;color:var(--muted);margin-top:14px}

.picker{margin-top:42px;display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}
.picker label{font-size:clamp(20px,2.6vw,26px);font-style:italic;color:var(--parch)}
.picker-row{display:flex;align-items:stretch;gap:10px}
.num-wrap{position:relative}
.num{width:150px;height:76px;text-align:center;font-family:var(--caps);font-size:40px;color:var(--gold2);background:#0d0a07cc;border:1px solid var(--line);border-radius:6px;outline:none;transition:.25s;-moz-appearance:textfield}
.num::-webkit-outer-spin-button,.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.num:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,164,92,.12),0 0 40px rgba(201,164,92,.18)}
.roman{position:absolute;left:0;right:0;bottom:-26px;font-family:var(--caps);font-size:12px;letter-spacing:.3em;color:var(--muted)}
.go{min-width:76px;border:none;border-radius:6px;cursor:pointer;background:linear-gradient(180deg,#d8b878,#a7813f);color:#1b1309;font-family:var(--caps);letter-spacing:.14em;font-size:14px;padding:0 22px;transition:.25s}
.go:hover{filter:brightness(1.12);box-shadow:0 0 30px rgba(201,164,92,.35)}
.picker .err{min-height:22px;color:var(--chalk);font-size:15px;margin-top:14px}
.scroll-hint{position:absolute;bottom:18px;font-family:var(--caps);font-size:10px;letter-spacing:.3em;color:var(--muted);animation:float 3s ease-in-out infinite}
@keyframes float{50%{transform:translateY(6px)}}

/* índice de capítulos */
.section-title{display:flex;align-items:center;gap:16px;font-family:var(--caps);letter-spacing:.3em;font-size:13px;color:var(--gold);margin:30px 0 22px}
.section-title::before,.section-title::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}
.chapters{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding-bottom:70px}
.ch{position:relative;aspect-ratio:1/1.12;border:1px solid var(--line);border-radius:4px;background:linear-gradient(180deg,#1c140c,#120d08);cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px 10px;transition:transform .35s,border-color .35s,box-shadow .35s;overflow:hidden;text-decoration:none;color:inherit}
.ch::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,164,92,.12);border-radius:2px;pointer-events:none}
.ch:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 14px 40px #000a,0 0 30px rgba(201,164,92,.12)}
.ch .rn{font-family:var(--caps);font-size:30px;color:var(--gold2);line-height:1}
.ch .ar{font-family:var(--caps);font-size:10px;letter-spacing:.3em;color:var(--muted);margin-top:6px}
.ch .tt{font-style:italic;font-size:17px;line-height:1.2;margin-top:12px;color:var(--parch)}
.ch.read .ar::after{content:" · LEÍDO";color:var(--gold)}
.ch.ahead .tt{filter:blur(4px);opacity:.6}
.ch.ahead .seal{display:block}
.ch .seal{display:none;position:absolute;right:10px;top:10px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#c4553b,#7a2416 70%);box-shadow:0 2px 6px #000a}
.ch.soon{cursor:default;opacity:.38}
.ch.soon:hover{transform:none;box-shadow:none;border-color:var(--line)}
.ch.soon .tt{font-size:14px;color:var(--muted)}
.ch.video .ar::after{content:" · VIDEO"}

/* ---------- capítulo ---------- */
.chapter{padding-bottom:80px}
.ch-head{text-align:center;padding:clamp(30px,7vh,80px) 0 20px;position:relative}
.ch-head .num-big{font-family:var(--caps);font-size:clamp(70px,13vw,150px);line-height:.9;color:transparent;-webkit-text-stroke:1px rgba(201,164,92,.55);letter-spacing:.04em}
.ch-head .kicker{margin-top:10px}
.ch-head h2{font-family:var(--caps);font-weight:400;font-size:clamp(28px,5.2vw,58px);letter-spacing:.05em;margin:.25em 0 .2em;color:var(--parch)}
.ch-head .place{font-style:italic;color:var(--muted);font-size:18px}
.epigraph{max-width:760px;margin:34px auto 6px;text-align:center;font-family:var(--hand);font-style:italic;font-size:clamp(21px,2.8vw,28px);line-height:1.4;color:var(--parch)}
.epigraph::before,.epigraph::after{content:"";display:block;width:60px;height:1px;background:var(--gold);margin:18px auto;opacity:.6}
.intro{max-width:720px;margin:0 auto 30px;text-align:center;color:var(--text);font-size:20px}
.block{margin:46px 0;opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}
.block.in{opacity:1;transform:none}
.block-title{font-family:var(--caps);font-weight:400;letter-spacing:.14em;font-size:clamp(17px,2.3vw,22px);color:var(--gold2);margin:0 0 6px;display:flex;align-items:center;gap:12px}
.block-title::before{content:"";width:22px;height:1px;background:var(--gold)}
.lead{color:var(--muted);font-style:italic;margin:0 0 16px;max-width:760px}

.note{border:1px solid var(--line);background:linear-gradient(180deg,#1b130b,#140e08);border-radius:4px;padding:22px 24px;max-width:780px;margin-left:auto;margin-right:auto;position:relative}
.note .k{font-family:var(--caps);font-size:10px;letter-spacing:.3em;color:var(--chalk);text-transform:uppercase}
.note h4{font-family:var(--caps);font-weight:400;font-size:19px;letter-spacing:.06em;margin:4px 0 8px;color:var(--parch)}
.note p{margin:0}
.quote{max-width:780px;margin-left:auto;margin-right:auto;text-align:center}
.quote blockquote{margin:0;font-family:var(--hand);font-style:italic;font-size:clamp(22px,3vw,30px);line-height:1.35;color:var(--parch)}
.quote cite{display:block;margin-top:12px;font-style:normal;font-family:var(--caps);font-size:11px;letter-spacing:.2em;color:var(--muted)}

figure{margin:0}
.figure img{width:100%;border-radius:3px;box-shadow:0 20px 60px #000c;cursor:zoom-in}
.figure figcaption{color:var(--muted);font-style:italic;font-size:16px;margin-top:10px;text-align:center}

/* ---------- visor deep zoom ---------- */
.viewer-shell{position:relative;border:1px solid var(--line);border-radius:4px;background:#050403;overflow:hidden;box-shadow:0 30px 80px #000d}
.viewer{width:100%;height:min(72vh,680px);background:#050403}
.viewer.tall{height:min(82vh,860px)}
@media (max-width:700px){.viewer{height:62vh}.viewer.tall{height:72vh}}
.vtools{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:6px;z-index:5}
.vbtn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#0d0a07cc;color:var(--parch2);cursor:pointer;display:grid;place-items:center;transition:.2s;backdrop-filter:blur(4px)}
.vbtn:hover{border-color:var(--gold);color:var(--gold2)}
.vbtn svg{width:18px;height:18px}
.vmeta{position:absolute;left:12px;top:10px;z-index:5;font-family:var(--caps);font-size:10px;letter-spacing:.18em;color:var(--parch2);background:#0d0a07b0;padding:6px 10px;border-radius:3px;max-width:70%;pointer-events:none}
.tourbar{display:flex;align-items:stretch;border-top:1px solid var(--line);background:linear-gradient(180deg,#17110b,#100b07)}
.tourbar .tb-nav{display:flex;gap:0}
.tourbar button.tb{border:none;background:none;cursor:pointer;padding:0 18px;color:var(--gold2);font-family:var(--caps);font-size:12px;letter-spacing:.14em;transition:.2s;min-height:54px}
.tourbar button.tb:hover{background:#ffffff08}
.tourbar button.tb[disabled]{opacity:.3;cursor:default}
.tourbar .tb-text{flex:1;padding:14px 18px;border-left:1px solid var(--line);border-right:1px solid var(--line);min-height:84px}
.tourbar .tb-text h5{margin:0 0 4px;font-family:var(--caps);font-weight:400;font-size:15px;letter-spacing:.08em;color:var(--parch)}
.tourbar .tb-text p{margin:0;font-size:17px;line-height:1.45;color:var(--text)}
.tourbar .tb-step{font-family:var(--caps);font-size:10px;letter-spacing:.2em;color:var(--muted)}
@media (max-width:700px){
  .tourbar{flex-wrap:wrap}
  .tourbar .tb-text{order:-1;flex-basis:100%;border:none;border-bottom:1px solid var(--line)}
  .tourbar .tb-nav{flex:1;justify-content:space-between}
  .tourbar button.tb{flex:1}
}
.hotspot{width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:2px solid var(--gold2);box-shadow:0 0 0 4px rgba(13,10,7,.35),0 0 18px rgba(231,201,131,.8);cursor:pointer;position:relative;background:rgba(231,201,131,.12)}
.hotspot::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px solid var(--gold2);animation:ping 2.2s ease-out infinite}
.hotspot.active{background:rgba(231,201,131,.4)}
@keyframes ping{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.6);opacity:0}}
.seqpt{width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;text-align:center;line-height:30px;font-family:var(--caps);font-size:13px;color:#1b1309;background:var(--gold2);box-shadow:0 0 0 3px #0d0a07aa,0 0 20px rgba(231,201,131,.9);transform:scale(0);transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.seqpt.show{transform:scale(1)}
.seqpt.special{background:#d6684a;color:#fff;box-shadow:0 0 0 3px #0d0a07aa,0 0 30px rgba(214,104,74,1);width:40px;height:40px;line-height:40px;margin:-20px 0 0 -20px;font-size:15px}
.seqpt.half{background:#9fc0d8}
.counter-banner{position:absolute;left:50%;top:12px;transform:translateX(-50%) translateY(-14px);opacity:0;transition:.5s;z-index:6;font-family:var(--caps);letter-spacing:.12em;background:#0d0a07e0;border:1px solid var(--gold);color:var(--gold2);padding:10px 22px;border-radius:999px;font-size:clamp(14px,2vw,18px);white-space:nowrap;pointer-events:none}
.counter-banner.show{opacity:1;transform:translateX(-50%)}
.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--gold);background:#0d0a07cc;color:var(--gold2);border-radius:999px;padding:8px 16px;font-family:var(--caps);font-size:11px;letter-spacing:.16em;cursor:pointer;transition:.2s}
.chip:hover{background:rgba(201,164,92,.15)}
.chip.ghost{border-color:var(--line);color:var(--parch2)}
.viewer-shell .chip.seqbtn{position:absolute;left:12px;top:46px;z-index:6}

/* fullscreen */
.viewer-shell:fullscreen{border:none;border-radius:0;display:flex;flex-direction:column}
.viewer-shell:fullscreen .viewer{flex:1;height:auto}
.viewer-shell.pseudo-fs{position:fixed;inset:0;z-index:200;border-radius:0;display:flex;flex-direction:column}
.viewer-shell.pseudo-fs .viewer{flex:1;height:auto}

/* ---------- superposición cap. 10 ---------- */
.ov-controls{padding:16px 18px;border-top:1px solid var(--line);background:linear-gradient(180deg,#17110b,#100b07);display:grid;gap:12px}
.ov-labels{display:flex;justify-content:space-between;font-family:var(--caps);font-size:11px;letter-spacing:.16em;color:var(--parch2)}
.ov-labels span:last-child{text-align:right}
.ov-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.seg button{border:none;background:none;padding:8px 14px;cursor:pointer;font-family:var(--caps);font-size:10px;letter-spacing:.16em;color:var(--muted)}
.seg button.on{background:rgba(201,164,92,.18);color:var(--gold2)}
input[type=range].gold{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer}
input[type=range].gold::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,#6b5737,var(--gold2),#6b5737);border-radius:2px}
input[type=range].gold::-moz-range-track{height:3px;background:linear-gradient(90deg,#6b5737,var(--gold2),#6b5737);border-radius:2px}
input[type=range].gold::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-11.5px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f6e2ad,#b58c45);border:2px solid #0d0a07;box-shadow:0 0 0 1px var(--gold),0 0 16px rgba(231,201,131,.6)}
input[type=range].gold::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f6e2ad,#b58c45);border:2px solid #0d0a07;box-shadow:0 0 0 1px var(--gold)}
.small-label{font-family:var(--caps);font-size:10px;letter-spacing:.2em;color:var(--muted)}

/* ---------- espejo cap. 5 ---------- */
.mirror-stage{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:linear-gradient(90deg,#1a120b,#0f0b07 50%,#1e1710)}
.mirror-stage .side{position:relative;display:grid;place-items:center;padding:clamp(16px,4vw,40px);min-height:300px}
.mirror-stage .side img{max-height:400px;width:auto;filter:drop-shadow(0 18px 30px #000d)}
.mirror-stage .glass{border-left:1px solid rgba(231,201,131,.35);background:linear-gradient(110deg,rgba(255,255,255,.02),rgba(255,255,255,.08) 40%,rgba(255,255,255,.01) 60%,rgba(255,255,255,.06));overflow:hidden}
.mirror-stage .glass img{transform:scaleX(-1);opacity:0;transition:opacity 1.6s ease,filter 1.6s}
.mirror-stage.revealed .glass img{opacity:.96}
.mirror-stage .glass .hint{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;color:var(--muted);font-style:italic;transition:opacity .8s}
.mirror-stage.revealed .glass .hint{opacity:0;pointer-events:none}
.mirror-stage .tag{position:absolute;top:10px;left:12px;font-family:var(--caps);font-size:10px;letter-spacing:.2em;color:var(--muted)}
.decode{max-width:780px;margin:18px auto 0;text-align:center;min-height:120px}
.decode .latin{font-family:var(--hand);font-style:italic;font-size:clamp(26px,4vw,40px);color:var(--gold2);letter-spacing:.02em}
.decode .es{color:var(--parch);font-size:19px}
.decode .greek{margin-top:8px;color:var(--muted);font-size:16px}
.decode .latin span{opacity:0;transition:opacity .3s}
.decode .latin span.on{opacity:1}
@media (max-width:640px){.mirror-stage{grid-template-columns:1fr}.mirror-stage .glass{border-left:none;border-top:1px solid rgba(231,201,131,.35)}.mirror-stage .side{min-height:220px}.mirror-stage .side img{max-height:240px}}

/* velado cap. 4 */
.veiled{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;align-items:center}
.veiled .ph{position:relative;display:grid;place-items:center;padding:20px;border:1px solid var(--line);border-radius:4px;background:radial-gradient(circle,#2a1d11,#0f0b07);min-height:280px;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none}
.veiled .ph img{max-height:320px;width:auto;filter:blur(9px) brightness(.55) sepia(.4);transition:filter .7s}
.veiled .ph.peek img{filter:blur(0) brightness(1)}
.veiled .ph .hint{position:absolute;bottom:12px;font-family:var(--caps);font-size:10px;letter-spacing:.2em;color:var(--muted)}
@media (max-width:700px){.veiled{grid-template-columns:1fr}}

/* laboratorio de superposición libre */
.lab{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#0a0806}
.lab-stage{position:relative;height:min(68vh,620px);overflow:hidden;touch-action:none;background:#0a0806}
.lab-stage .base{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.lab-stage .ghost{position:absolute;left:50%;top:50%;transform-origin:center;cursor:grab;max-width:none;border:1px dashed rgba(231,201,131,.6);user-select:none;-webkit-user-drag:none}
.lab-stage .ghost:active{cursor:grabbing}
.lab-ctrl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 18px;padding:14px 18px;border-top:1px solid var(--line);background:linear-gradient(180deg,#17110b,#100b07)}
.lab-ctrl .ctl{display:flex;flex-direction:column}
.lab-legend{display:flex;justify-content:space-between;gap:10px;padding:10px 18px 0;font-family:var(--caps);font-size:10px;letter-spacing:.16em;color:var(--parch2)}
@media (max-width:640px){.lab-ctrl{grid-template-columns:1fr}.lab-stage{height:52vh}}

/* reloj */
.clock-wrap{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center;max-width:860px;margin:0 auto}
.clock{width:min(300px,70vw);aspect-ratio:1}
.clock-text h4{font-family:var(--caps);font-weight:400;font-size:22px;color:var(--parch);margin:0 0 6px}
.clock-text .now{font-family:var(--caps);font-size:44px;color:var(--gold2);letter-spacing:.06em}
.clock-text .now.mirror{text-shadow:0 0 30px rgba(231,201,131,.9)}
@media (max-width:640px){.clock-wrap{grid-template-columns:1fr;justify-items:center;text-align:center}}

/* línea de tiempo */
.timeline{position:relative;padding:20px 0 10px}
.tl-track{position:relative;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:70px 10px 90px}
.tl-ev{position:absolute;top:-8px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:#0d0a07;border:2px solid var(--gold);cursor:pointer;transition:.25s}
.tl-ev.on,.tl-ev:hover{background:var(--gold2);box-shadow:0 0 18px rgba(231,201,131,.9)}
.tl-ev .y{position:absolute;top:-34px;left:50%;transform:translateX(-50%);font-family:var(--caps);font-size:13px;color:var(--gold2);white-space:nowrap}
.tl-ev .l{position:absolute;top:26px;left:50%;transform:translateX(-50%);font-size:13px;line-height:1.2;width:110px;text-align:center;color:var(--muted)}
.tl-ev.alt .y{top:28px}.tl-ev.alt .l{top:-58px}
.tl-detail{max-width:760px;margin:0 auto;text-align:center;min-height:90px;color:var(--text)}
.tl-detail b{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.06em}
@media (max-width:640px){.tl-ev .l{display:none}}

/* esteganografía */
.stego{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}
.stego canvas{width:100%;height:auto;border-radius:3px;box-shadow:0 20px 50px #000c;background:#000}
.stego .bits{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:var(--muted);background:#0a0806;border:1px solid var(--line);border-radius:3px;padding:10px 12px;margin:12px 0;word-break:break-all;line-height:1.5}
.stego .bits i{font-style:normal;color:var(--chalk);font-weight:700}
.stego input[type=text]{width:100%;background:#0a0806;border:1px solid var(--line);color:var(--parch);padding:10px 12px;border-radius:3px;font:inherit;font-size:17px}
.stego .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
@media (max-width:760px){.stego{grid-template-columns:1fr}}

/* superposición cap. 10: tarjeta de hallazgos */
.findings{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.finding{border:1px solid var(--line);border-radius:4px;padding:14px 16px;background:#140e08;cursor:pointer;transition:.25s}
.finding:hover,.finding.on{border-color:var(--gold);background:#1e160d}
.finding b{display:block;font-family:var(--caps);font-weight:400;font-size:13px;letter-spacing:.1em;color:var(--gold2);margin-bottom:4px}
.finding span{font-size:16px;line-height:1.4}

/* 72 */
.equation{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;font-family:var(--caps);font-size:clamp(22px,4vw,40px);color:var(--parch);margin:22px 0 4px;min-height:60px}
.equation .t{opacity:.15;transition:opacity .6s,color .6s}
.equation .t.on{opacity:1}
.equation .t.res{color:var(--gold2);font-size:1.4em;text-shadow:0 0 30px rgba(231,201,131,.6)}
.trace72{display:flex;gap:18px;align-items:center;max-width:780px;margin-left:auto;margin-right:auto;padding:16px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trace72 .badge{flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-family:var(--caps);font-size:20px;color:#1b1309;background:radial-gradient(circle at 35% 30%,#f2d996,#a47b37);box-shadow:0 0 24px rgba(201,164,92,.35)}
.trace72 p{margin:0}
.trace72 small{display:block;font-family:var(--caps);font-size:10px;letter-spacing:.24em;color:var(--gold)}

.compendium{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:28px;align-items:center}
.compendium svg{width:100%;height:auto}
.compendium .dot{cursor:pointer;transition:r .2s}
.compendium .c-detail{min-height:180px}
.compendium .c-detail h4{font-family:var(--caps);font-weight:400;color:var(--gold2);font-size:22px;margin:0 0 6px}
.compendium .c-detail .who{font-family:var(--caps);font-size:10px;letter-spacing:.24em;color:var(--muted)}
@media (max-width:760px){.compendium{grid-template-columns:1fr}}
.poly-wrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.poly-wrap canvas{width:100%;aspect-ratio:1;touch-action:none;cursor:grab;background:radial-gradient(circle,#24190f,#0d0a07 70%);border-radius:50%}
@media (max-width:700px){.poly-wrap{grid-template-columns:1fr}}

.mail{max-width:640px;margin:0 auto;border:1px solid #3a2e22;border-radius:6px;background:#0b0b0d;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;color:#c9c9cf;overflow:hidden;box-shadow:0 20px 60px #000}
.mail .bar{display:flex;gap:6px;padding:10px 12px;background:#141418;border-bottom:1px solid #26262c}
.mail .bar i{width:10px;height:10px;border-radius:50%;background:#3a3a42}
.mail .row{display:flex;gap:10px;padding:8px 16px;border-bottom:1px solid #1d1d22}
.mail .row b{width:70px;color:#77777f;font-weight:500}
.mail .att{padding:16px;display:flex;gap:12px;align-items:center;cursor:pointer}
.mail .file{width:80px;height:60px;border-radius:4px;background:repeating-linear-gradient(45deg,#1a1a20,#1a1a20 6px,#202028 6px,#202028 12px);display:grid;place-items:center;color:#888;font-size:11px}
.mail .photo{display:none;padding:0 16px 16px}
.mail.open .photo{display:block}
.mail canvas{width:100%;border-radius:4px;filter:contrast(1.1)}

/* escritura especular */
.mw{max-width:860px;margin:0 auto}
.mw textarea{width:100%;min-height:90px;background:#0a0806;border:1px solid var(--line);color:var(--parch);padding:12px 14px;border-radius:3px;font:inherit;font-size:19px;resize:vertical}
.mw .out{margin-top:14px;padding:26px 22px;border-radius:3px;background:linear-gradient(180deg,#e9dcc0,#d9c69f);color:#4a3218;font-family:var(--hand);font-size:clamp(22px,3.4vw,32px);line-height:1.3;min-height:100px;box-shadow:inset 0 0 60px rgba(120,80,30,.35),0 20px 50px #000a;transform:scaleX(-1);text-align:right;word-wrap:break-word}

/* mapa del viaje */
.journey{border:1px solid var(--line);border-radius:4px;background:radial-gradient(ellipse at 50% 40%,#1d150d,#0f0b07);padding:14px;position:relative}
.journey svg{width:100%;height:auto;display:block}
.journey .land{fill:#2a1f14;stroke:#6b5434;stroke-width:.6}
.journey .grat{stroke:rgba(201,164,92,.08);fill:none}
.journey .route{fill:none;stroke:var(--gold);stroke-width:1.4;stroke-dasharray:4 4;opacity:.7}
.journey .route.now{stroke:var(--gold2);opacity:1;stroke-width:2;stroke-dasharray:6 5;animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-22}}
.journey .pin{fill:#0d0a07;stroke:var(--gold);stroke-width:1.5}
.journey .pin.now{fill:var(--gold2)}
.journey text{font-family:var(--caps);font-size:11px;fill:var(--parch2);letter-spacing:.08em;paint-order:stroke;stroke:#0d0a07;stroke-width:3px}
.journey.two{display:grid;grid-template-columns:2.2fr 1fr;gap:14px;align-items:center}
.journey .inset{border:1px solid var(--line);background:#0f0b07;border-radius:3px}
@media (max-width:760px){.journey.two{grid-template-columns:1fr}}

/* stendhal */
.stendhal{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:center;max-width:860px;margin:0 auto}
.stendhal .pulse{width:200px;height:200px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#7a2416 0%,#3b120b 45%,transparent 70%);cursor:pointer;position:relative}
.stendhal .pulse span{font-family:var(--caps);font-size:12px;letter-spacing:.2em;color:var(--parch)}
.stendhal .pulse.beat{animation:beat .83s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.08)}30%{transform:scale(.98)}45%{transform:scale(1.05)}}
@media (max-width:640px){.stendhal{grid-template-columns:1fr;justify-items:center;text-align:center}}

.tz{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;max-width:860px;margin:0 auto}
.tz .city{border:1px solid var(--line);border-radius:4px;padding:16px;text-align:center;background:#140e08}
.tz .city b{display:block;font-family:var(--caps);font-weight:400;font-size:12px;letter-spacing:.2em;color:var(--muted)}
.tz .city span{font-family:var(--caps);font-size:30px;color:var(--gold2)}

/* navegación capítulo */
.ch-nav{display:flex;justify-content:space-between;gap:12px;margin-top:60px;padding-top:24px;border-top:1px solid var(--line)}
.ch-nav a{text-decoration:none;color:var(--parch2);display:flex;flex-direction:column;max-width:48%;padding:10px 0}
.ch-nav a small{font-family:var(--caps);font-size:10px;letter-spacing:.24em;color:var(--muted)}
.ch-nav a span{font-style:italic;font-size:20px}
.ch-nav a.next{text-align:right;margin-left:auto}
.ch-nav a:hover span{color:var(--gold2)}

/* lightbox y modal */
.modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:#050403f2;padding:16px}
.modal.open{display:flex}
.modal .box{max-width:520px;text-align:center;border:1px solid var(--gold);background:#140e08;padding:30px 26px;border-radius:4px}
.modal .box h3{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.08em;margin:0 0 10px}
.modal .box .row{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.lightbox .lb-view{width:100%;height:100%}
.lightbox .close{position:absolute;top:14px;right:14px;z-index:5}

footer{text-align:center;padding:40px 16px 60px;color:var(--muted);font-size:14px;border-top:1px solid var(--line);margin-top:40px}
footer .caps{font-family:var(--caps);letter-spacing:.24em;font-size:11px}

/* transiciones de vista */
#app{position:relative;z-index:1;transition:opacity .5s}
#app.fade{opacity:0}
.curtain{position:fixed;inset:0;z-index:400;pointer-events:none;background:#000;opacity:0;transition:opacity .45s}
.curtain.on{opacity:1}
.openseadragon-container{background:#050403 !important}

/* ---------- capítulos 15–20 ---------- */
.video-shell{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#000;box-shadow:0 30px 80px #000d}
.video-shell video{width:100%;display:block;aspect-ratio:16/9;background:#000}
.figcap{color:var(--muted);font-style:italic;font-size:16px;text-align:center;margin:10px 0 0}
.race{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:center;border:1px solid var(--line);border-radius:4px;background:radial-gradient(ellipse at 40% 40%,#1d150d,#0f0b07);padding:16px}
.race-map svg{width:100%;height:auto;display:block}
.frsvg .land{fill:#2a1f14;stroke:#6b5434;stroke-width:.7}
.frsvg .borders{fill:none;stroke:rgba(201,164,92,.22);stroke-width:.7;stroke-dasharray:3 3}
.frsvg text{font-family:var(--caps);font-size:15px;fill:var(--parch2);letter-spacing:.06em;paint-order:stroke;stroke:#0d0a07;stroke-width:4px}
.frsvg .mtn{font-size:12px;fill:var(--muted)}
.frsvg .fpin circle{fill:#0d0a07;stroke:var(--gold);stroke-width:2}
.frsvg .fpin.now circle{fill:var(--gold2)}
.frsvg .fpin.goal circle{fill:#d6684a;stroke:#f0c2a8;r:8}
.frsvg .fpin.goal text{fill:#f0c2a8;font-size:18px}
.frsvg .fpin.dim{opacity:.55}
.frsvg .rt{fill:none;stroke-width:2.5}
.frsvg .rt.leo{stroke:#c98a5c;stroke-dasharray:2 6;stroke-linecap:round}
.frsvg .rt.train{stroke:var(--gold2);stroke-dasharray:10 6}
.frsvg .mk.leo{fill:#c98a5c;stroke:#0d0a07;stroke-width:2}
.frsvg .mk.train{fill:var(--gold2);stroke:#0d0a07;stroke-width:2}
.frsvg .mline{stroke:var(--gold2);stroke-width:3;stroke-dasharray:9 5}
.race-side{display:grid;gap:14px}
.racer{border-left:3px solid var(--gold2);padding:4px 0 4px 14px}
.racer.leo{border-color:#c98a5c}
.racer b{display:block;font-family:var(--caps);font-weight:400;font-size:13px;letter-spacing:.12em;color:var(--parch)}
.racer span{display:block;font-size:22px;color:var(--gold2);font-style:italic}
.racer small{display:block;color:var(--muted);font-size:15px;line-height:1.4}
.chip.on{background:rgba(201,164,92,.2);border-color:var(--gold)}
.miles{display:flex;align-items:baseline;gap:10px}
.miles .mi{font-family:var(--caps);font-size:clamp(64px,10vw,110px);line-height:1;color:var(--gold2);font-variant-numeric:tabular-nums}
.miles small{font-family:var(--caps);letter-spacing:.3em;color:var(--muted)}
.mtext{margin:0;min-height:70px}
@media (max-width:760px){.race{grid-template-columns:1fr}}

.layers{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px;align-items:center}
.lay-stage{position:relative;aspect-ratio:3/2;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#0a0806}
.lay{position:absolute;inset:0;opacity:0;transition:opacity .9s}
.lay.on{opacity:1}
.lay img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.lay-ink{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle,#2a1d11,#0d0a07)}
.lay-ink span{font-family:var(--caps);font-size:clamp(60px,10vw,120px);color:transparent;-webkit-text-stroke:1px var(--gold)}
.lay-year{font-family:var(--caps);font-size:40px;color:var(--gold2)}
.lay-info h4{font-family:var(--caps);font-weight:400;font-size:19px;margin:4px 0 6px;color:var(--parch)}
.lay-info p{margin:0}
.lay-ticks{display:flex;justify-content:space-between;font-family:var(--caps);font-size:11px;color:var(--muted);letter-spacing:.08em}
@media (max-width:700px){.layers{grid-template-columns:1fr}}

.ledger{display:grid;justify-items:center;gap:16px}
.lg-page{width:min(640px,100%);background:linear-gradient(180deg,#e7d8b6,#d6c193);color:#3b2814;border-radius:3px;padding:24px 22px;box-shadow:inset 0 0 60px rgba(120,80,30,.35),0 20px 50px #000a;font-family:var(--hand)}
.lg-row{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:10px;padding:7px 0;border-bottom:1px solid rgba(80,50,20,.25);font-size:clamp(15px,2.2vw,19px);opacity:.15;transition:opacity .5s,background .8s}
.lg-row.w{opacity:1}
.lg-row.hl{background:rgba(180,85,58,.18);font-size:clamp(17px,2.6vw,22px);font-weight:700}

.folder{position:relative;max-width:820px;margin:0 auto;min-height:220px}
.fcover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-height:220px;border:1px solid #6b5434;border-radius:4px;background:repeating-linear-gradient(0deg,#4a3720,#4a3720 2px,#463420 2px,#463420 5px);cursor:pointer;color:#e8dbbf;font-family:var(--caps);letter-spacing:.3em;transition:.6s}
.fcover small{font-size:10px;color:#cdb98f;letter-spacing:.2em}
.folder.open .fcover{min-height:44px;opacity:.6}
.fitems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.fitem{opacity:0;transform:translateY(20px) rotate(-1.5deg);transition:.8s}
.fitem.show{opacity:1;transform:rotate(-1deg)}
.fitem:nth-child(2).show{transform:rotate(1.2deg)}
.clip{background:#e3d7bd;color:#2b2016;padding:18px 16px;box-shadow:0 12px 30px #000a;font-family:Georgia,var(--serif)}
.clip .np{font-family:var(--caps);font-size:10px;letter-spacing:.2em;border-bottom:1px solid #2b2016;padding-bottom:6px;margin-bottom:8px}
.clip h5{margin:0 0 8px;font-size:21px;line-height:1.15;font-weight:700}
.clip p{margin:0;font-size:15px;line-height:1.4}
.clip.last{background:#efe5cf}
.fitem.photo{margin:0;background:#f1ece2;padding:10px 10px 8px;box-shadow:0 12px 30px #000a}
.fitem.photo img{cursor:zoom-in;filter:grayscale(1) contrast(1.05)}
.fitem.photo figcaption{color:#3b3127;font-size:13px;font-style:italic;margin-top:6px}
@media (max-width:760px){.fitems{grid-template-columns:1fr}}

.sword{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start}
.sw-map{position:relative;border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.sw-map img{width:100%;display:block}
.sw-map svg{position:absolute;inset:0;width:100%;height:100%}
.swline{fill:none;stroke:#e7c983;stroke-width:6;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(231,201,131,.9))}
.swpt{fill:rgba(231,201,131,.15);stroke:#c9a45c;stroke-width:3;cursor:pointer;transition:.3s}
.swpt.on,.swpt:hover{fill:rgba(231,201,131,.7);stroke:#fff}
.sw-info h4{font-family:var(--caps);font-weight:400;font-size:21px;margin:4px 0 10px;color:var(--gold2)}
.sw-img img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px;cursor:zoom-in;margin-bottom:10px}
.sw-info p{margin:0 0 12px}
@media (max-width:760px){.sword{grid-template-columns:1fr}}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.gcard{margin:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#140e08}
.gcard img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;cursor:zoom-in;transition:transform .6s}
.gcard:hover img{transform:scale(1.04)}
.gcard figcaption{padding:12px 14px;font-size:16px;line-height:1.4}
.gcard b{display:block;font-family:var(--caps);font-weight:400;font-size:13px;letter-spacing:.1em;color:var(--gold2);margin-bottom:4px}
.gcard small{display:block;margin-top:6px;font-size:11px;color:var(--muted)}
.tunnel{width:100%;height:auto;max-height:260px}
.tunnel text{font-family:var(--caps);font-size:15px;fill:var(--parch2)}
.tunnel .sm{font-size:12px;fill:var(--muted)}
.credits{font-size:13px;color:var(--muted);max-width:780px;margin:30px auto 0;text-align:center}

.figure figcaption .credit{display:block;font-size:12px;font-style:normal;margin-top:4px;opacity:.75}

.gph{aspect-ratio:4/3;display:grid;place-items:center;background:radial-gradient(circle,#2a1d11,#0d0a07)}
.gph span{font-family:var(--hand);font-style:italic;font-size:44px;color:transparent;-webkit-text-stroke:1px var(--gold);transform:scaleX(-1)}
.sw-img small{display:block;margin:-4px 0 10px}

.frsvg .sea{fill:#121a1d}
.frsvg .grat{fill:none;stroke:rgba(201,164,92,.07)}
.frsvg .river{fill:none;stroke:#5f8aa0;stroke-width:2.2;stroke-linecap:round;opacity:.8}
.frsvg .ctx circle{fill:var(--muted)}
.frsvg .ctx text{font-size:12px;fill:var(--muted)}

/* ---------- cap. 27 · reloj cosmológico ---------- */
.reloj .viewer{height:min(76vh,760px)}
.clocklayer{pointer-events:none;overflow:visible}
.clocklayer .geo rect,.clocklayer .geo circle{fill:none;stroke:#f1d27e;stroke-width:1.6;opacity:0;transition:opacity 1s;filter:drop-shadow(0 0 3px rgba(241,210,126,.9))}
.clocklayer.showgeo .geo rect,.clocklayer.showgeo .geo circle{opacity:.9}
.clocklayer .dial,.clocklayer .hands{opacity:0;transition:opacity 1.2s}
.clocklayer.showdial .dial,.clocklayer.showdial .hands{opacity:1}
.clocklayer .dial line{stroke:#f1d27e}
.clocklayer .dial text{font-family:"Cinzel",Georgia,serif;font-weight:700;font-size:21px;fill:#f6dc8c;text-anchor:middle;paint-order:stroke;stroke:rgba(20,12,4,.55);stroke-width:3px}
.clocklayer .hands line{stroke:#fff4d0;stroke-linecap:round}
.clocklayer .hands .hh{stroke-width:4.2}
.clocklayer .hands .mm{stroke-width:2.6}
.clocklayer .hands circle{fill:#f6dc8c;stroke:#7a5a1e;stroke-width:1.5}
.clocklayer .proj line.twin{stroke-dasharray:3 4;opacity:.7}
.clocklayer .proj line{stroke:#f6dc8c;stroke-width:1.6;stroke-dasharray:6 5;opacity:.9}
.clocklayer .mk circle{fill:rgba(246,220,140,.35);stroke:#f6dc8c;stroke-width:2}
.clocklayer .mk .ring{fill:none;stroke-width:1;opacity:.7}
.clocklayer .mk.ghost circle{fill:none;stroke-dasharray:3 3}
.clocklayer .mk text{font-family:"Cinzel",Georgia,serif;font-size:13px;fill:#fff4d0;text-anchor:middle;paint-order:stroke;stroke:rgba(20,12,4,.8);stroke-width:4px}
.clocklayer.war .proj line,.clocklayer.war .mk circle{stroke:#ff7a5c}
.clocklayer.war .mk circle:first-child{fill:rgba(255,90,60,.35)}
.clocklayer.free .hands line{stroke:#ffe9a8}
.led{position:absolute;left:12px;top:44px;z-index:6;background:rgba(10,7,4,.82);border:1px solid var(--gold);border-radius:6px;padding:8px 14px 10px;min-width:150px;opacity:0;transform:translateY(-6px);transition:.5s;pointer-events:none}
.led.on{opacity:1;transform:none}
.led small{display:block;font-family:var(--caps);font-size:10px;letter-spacing:.3em;color:var(--gold)}
.led b{display:block;font-family:ui-monospace,"DejaVu Sans Mono",Consolas,monospace;font-size:clamp(26px,4vw,40px);color:#ffd96a;letter-spacing:.06em;text-shadow:0 0 14px rgba(255,200,80,.7);font-variant-numeric:tabular-nums}
.led span{display:block;font-family:var(--caps);font-size:11px;letter-spacing:.12em;color:var(--parch2);max-width:240px}
.ov-controls.rc{border-top:1px solid var(--line)}
@media (max-width:700px){.reloj .viewer{height:60vh}.led{top:40px;min-width:120px;padding:6px 10px}}

/* ---------- capítulos 21–27 ---------- */
.cmp{position:relative;width:100%;max-width:1100px;margin:0 auto;border:1px solid var(--line);border-radius:4px;overflow:hidden;cursor:ew-resize;touch-action:none;user-select:none;background:#0a0806}
.cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.cmp-a{position:absolute;inset:0}
.cmp-bar{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--gold2);box-shadow:0 0 12px rgba(231,201,131,.8)}
.cmp-bar span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#0d0a07e0;border:1px solid var(--gold2);color:var(--gold2);display:grid;place-items:center;font-size:18px}
.cmp-bar.red{background:#d83a2a;box-shadow:0 0 10px rgba(216,58,42,.8)}
.cmp-bar.red span{border-color:#d83a2a;color:#f0a090}
.cmp-l,.cmp-r{position:absolute;top:10px;font-family:var(--caps);font-size:11px;letter-spacing:.14em;color:var(--parch);background:#0d0a07b8;padding:5px 9px;border-radius:3px;pointer-events:none}
.cmp-l{left:10px}.cmp-r{right:10px}
.fguides{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .6s}
.fguides line{stroke:#7fd3ff;stroke-width:2;stroke-dasharray:8 6}
.cmp.showg .fguides{opacity:.9}
.senora{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start;border:1px solid var(--line);border-radius:4px;background:radial-gradient(ellipse at 40% 40%,#1d150d,#0f0b07);padding:16px}
.senora .sroute{fill:none;stroke:var(--gold2);stroke-width:3;transition:stroke-dasharray .9s ease}
.senora .sstop{cursor:pointer}
.senora .sstop circle{fill:#0d0a07;stroke:var(--gold);stroke-width:2;transition:.3s}
.senora .sstop.done circle{fill:#5a4422}
.senora .sstop.on circle{fill:var(--gold2);stroke:#fff}
.senora .sstop .sn{font-size:12px;text-anchor:middle;fill:var(--parch);stroke-width:0}
.senora .sstop.on .sn{fill:#1b1309}
.s-side h4{font-family:var(--caps);font-weight:400;font-size:21px;color:var(--gold2);margin:4px 0 10px}
.s-media video,.s-media img{width:100%;border-radius:3px;display:block;margin-bottom:6px;background:#000}
.s-media img{cursor:zoom-in}
.s-media small{display:block;margin-bottom:10px}
.s-txt{margin:6px 0 14px}
@media (max-width:820px){.senora{grid-template-columns:1fr}}
.cust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.ccol h4{font-family:var(--caps);font-weight:400;font-size:15px;letter-spacing:.08em;color:var(--gold2);margin:0 0 10px;border-bottom:1px solid var(--line);padding-bottom:8px}
.citem{display:flex;gap:10px;width:100%;text-align:left;background:none;border:none;border-left:2px solid var(--line);padding:8px 10px;cursor:pointer;color:var(--text);transition:.25s}
.citem b{font-family:var(--caps);font-weight:400;color:var(--gold);min-width:46px;font-size:14px}
.citem span{font-size:15px;line-height:1.3}
.citem:hover,.citem.on{border-left-color:var(--gold2);background:#ffffff08}
@media (max-width:760px){.cust{grid-template-columns:1fr}}
.quiz{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.qcard{border:1px solid var(--line);border-radius:4px;padding:18px;background:#140e08;transition:.4s}
.qcard blockquote{margin:0 0 12px;font-family:var(--hand);font-style:italic;font-size:20px;line-height:1.35;color:var(--parch)}
.qbtns{display:flex;gap:8px;flex-wrap:wrap}
.qres{margin:12px 0 0;font-size:15px;color:var(--muted);min-height:0}
.qcard.ok{border-color:#7fae6a}.qcard.ko{border-color:#b4553a}
.qcard.answered .qbtns{display:none}
.qscore{text-align:center;margin-top:14px}
.milan{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:center;border:1px solid var(--line);border-radius:4px;background:radial-gradient(circle,#21180f,#0d0a07);padding:12px}
.milan svg{width:100%;height:auto}
.milan .mring{fill:none;stroke:rgba(201,164,92,.15);stroke-dasharray:3 5}
.milan .msc,.milan .mN{font-family:var(--caps);font-size:12px;fill:var(--muted)}
.milan .mN{text-anchor:middle;font-size:16px;fill:var(--gold)}
.milan .ray{stroke:rgba(231,201,131,.5);stroke-width:2}
.milan .mline{stroke:rgba(201,164,92,.25);stroke-width:1.5;stroke-dasharray:4 4;transition:.4s}
.milan .mline.on{stroke:var(--gold2);stroke-width:3;stroke-dasharray:none;filter:drop-shadow(0 0 4px rgba(231,201,131,.8))}
.milan .mplace{cursor:pointer}
.milan .mplace circle{fill:#0d0a07;stroke:var(--gold);stroke-width:2}
.milan .mplace.on circle{fill:var(--gold2)}
.milan .mplace text{font-family:var(--caps);font-size:14px;fill:var(--parch2);paint-order:stroke;stroke:#0d0a07;stroke-width:4px}
.milan .mcenter circle{fill:var(--gold2);stroke:#fff;stroke-width:2}
.milan .mcenter text{font-family:var(--caps);font-size:13px;fill:var(--gold2);text-anchor:middle;paint-order:stroke;stroke:#0d0a07;stroke-width:4px}
.m-info h4,.sp-info h4{font-family:var(--caps);font-weight:400;font-size:21px;color:var(--gold2);margin:4px 0 8px}
@media (max-width:760px){.milan{grid-template-columns:1fr}}
.spots{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px;align-items:start}
.sp-img{position:relative;border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.sp-img img{width:100%;display:block;cursor:zoom-in}
.spt{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:2px solid var(--gold2);background:rgba(231,201,131,.15);cursor:pointer;box-shadow:0 0 14px rgba(231,201,131,.7)}
.spt.on{background:rgba(231,201,131,.55)}
.sp-lens{position:absolute;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;border:2px solid var(--gold2);box-shadow:0 10px 30px #000c;pointer-events:none;opacity:0;transform:translate(var(--tx,70px),var(--ty,-70px)) scale(.6);transition:opacity .4s,transform .4s,left .5s,top .5s;background-repeat:no-repeat}
.sp-lens.on{opacity:1;transform:translate(var(--tx,70px),var(--ty,-70px)) scale(1)}
@media (max-width:760px){.spots{grid-template-columns:1fr}.sp-lens{width:110px;height:110px;margin:-55px 0 0 -55px}}
.vj{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:center}
.vj-stage{position:relative;aspect-ratio:2199/2400;background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 20px 50px #000c}
.vj-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 1.2s ease}
.vj-stage .on{opacity:1}
.vj h4{font-family:var(--caps);font-weight:400;font-size:22px;color:var(--gold2);margin:4px 0 8px}
@media (max-width:760px){.vj{grid-template-columns:1fr}}
.ctx27{max-height:0;overflow:hidden;opacity:0;transition:max-height .8s ease,opacity .6s,margin .6s;border:1px solid var(--line);border-top:none;border-radius:0 0 4px 4px;background:linear-gradient(180deg,#17110b,#100b07);padding:0 22px}
.ctx27.on{max-height:900px;opacity:1;padding:18px 22px}
.ctx27 .k{font-family:var(--caps);font-size:10px;letter-spacing:.3em;color:var(--chalk)}
.ctx27 h4{font-family:var(--caps);font-weight:400;font-size:20px;margin:4px 0 8px;color:var(--parch)}
.ctx27 p{margin:0 0 8px;max-width:820px}
.ctx27 figure{margin:10px 0 0;max-width:520px}
.ctx27 figure img{width:100%;border-radius:3px;cursor:zoom-in}
.ctx27 figcaption{font-size:13px;color:var(--muted);font-style:italic;margin-top:4px}
.blackout{animation:blackout 9s infinite}
@keyframes blackout{0%,62%,100%{opacity:1}63%{opacity:.25}64%{opacity:.9}65%{opacity:.15}66%{opacity:1}}

.figure.small{max-width:560px;margin-left:auto;margin-right:auto}

.cmp.faces{max-width:640px}

/* ---------- capítulos 24–32 ---------- */
.m-img{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:6px 0 10px}
.m-img figure{margin:0}.m-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px;cursor:zoom-in}
.m-img figcaption{font-size:11px;color:var(--muted);line-height:1.3;margin-top:3px}
.ctx-imgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:10px}
.ctx-imgs figure{margin:0}
.maletin{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:22px;align-items:start}
.mcase{position:relative;height:230px;perspective:900px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px}
.mbody{width:300px;max-width:90%;height:130px;border-radius:8px;background:linear-gradient(180deg,#3a2414,#22140a);border:2px solid #5a3a20;box-shadow:inset 0 0 30px #000a,0 20px 40px #000c}
.mlid{position:absolute;bottom:162px;width:300px;max-width:90%;height:60px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#4a2f1a,#2c1a0d);border:2px solid #5a3a20;transform-origin:bottom;transition:transform 1.2s cubic-bezier(.5,0,.2,1);display:grid;place-items:center}
.mlid span{font-family:var(--caps);color:#c9a45c;letter-spacing:.3em;font-size:12px}
.maletin.open .mlid{transform:rotateX(-110deg)}
.maletin.open .mopen{visibility:hidden}
.mitems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mitem{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:1px solid var(--line);border-radius:4px;background:#140e08;color:var(--parch2);cursor:pointer;opacity:0;transform:translateY(14px);transition:.5s;font-size:14px;text-align:center}
.mitem.show{opacity:1;transform:none}
.mitem svg{width:46px;height:46px;fill:none;stroke:var(--gold2);stroke-width:2.2}
.mitem.on,.mitem:hover{border-color:var(--gold2);background:#1e160d}
.mdet{grid-column:1/-1;min-height:60px}
.mdet h4{font-family:var(--caps);font-weight:400;color:var(--gold2);margin:0 0 6px}
.jewel{grid-column:1/-1;display:none;justify-content:center}
.maletin.showcd .jewel{display:flex}
.jcase{position:relative;width:min(320px,80vw);aspect-ratio:1;border-radius:4px;background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.04) 45%,rgba(255,255,255,.12));border:1px solid rgba(255,255,255,.35);box-shadow:0 20px 50px #000c;animation:jin .9s ease}
.jtape{position:absolute;left:8%;right:8%;bottom:12%;background:#e3c34a;color:#1e3a8a;font-family:"Caveat","IM Fell English",cursive;font-size:clamp(17px,2.6vw,22px);line-height:1.2;padding:8px 12px;transform:rotate(-2deg);box-shadow:0 2px 6px #0008}
.jempty{position:absolute;top:30%;left:0;right:0;text-align:center;font-family:var(--caps);letter-spacing:.3em;font-size:11px;color:rgba(255,255,255,.4)}
@keyframes jin{from{opacity:0;transform:translateY(20px) rotate(-4deg)}}
@media (max-width:760px){.maletin{grid-template-columns:1fr}}
.flipwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center}
.flip{position:relative;aspect-ratio:1698/1800;transform-style:preserve-3d;transition:transform 1.3s cubic-bezier(.5,0,.2,1);cursor:zoom-in}
.flip.turned{transform:rotateY(180deg)}
.fface{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:grid;place-items:center}
.fface img{max-width:100%;max-height:100%;box-shadow:0 20px 50px #000c}
.fface.back{transform:rotateY(180deg)}
.fside h4{font-family:var(--caps);font-weight:400;font-size:22px;color:var(--gold2);margin:4px 0 8px}
@media (max-width:760px){.flipwrap{grid-template-columns:1fr}}
.codigo .ctape{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;background:#e3c34a;padding:16px;border-radius:2px;transform:rotate(-1deg);max-width:720px;margin:0 auto 18px;box-shadow:0 6px 18px #000a}
.cpart{border:none;background:transparent;font-family:"Caveat","IM Fell English",cursive;font-size:clamp(20px,3.4vw,30px);color:#1e3a8a;cursor:pointer;padding:2px 8px;border-radius:3px}
.cpart.on{background:rgba(30,58,138,.15);outline:2px solid #1e3a8a}
.vtl{list-style:none;margin:0;padding:0 0 0 8px;border-left:2px solid var(--line);max-width:860px}
.vtl li{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:12px 0 12px 18px;position:relative}
.vtl li::before{content:"";position:absolute;left:-7px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--gold2);box-shadow:0 0 10px rgba(231,201,131,.8)}
.vtl b{font-family:var(--caps);font-weight:400;color:var(--gold2);font-size:17px}
.vtl h5{margin:0 0 4px;font-family:var(--caps);font-weight:400;font-size:15px;color:var(--parch)}
.vtl p{margin:0;font-size:17px}
@media (max-width:560px){.vtl li{grid-template-columns:1fr;gap:2px}}
.red{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:center;border:1px solid var(--line);border-radius:4px;background:radial-gradient(circle,#1a1f2a,#0b0d12);padding:12px}
.red svg{width:100%;height:auto}
.red line{stroke:rgba(140,170,220,.35);stroke-width:1.5;stroke-dasharray:4 4}
.rnode{cursor:pointer}
.rnode circle{fill:#121826;stroke:#8fb0e0;stroke-width:2;transition:.3s}
.rnode.core circle{fill:#1d2840;stroke:#e3c34a}
.rnode.on circle{fill:#2a3b60;stroke:#fff}
.rnode text{font-family:var(--caps);font-size:12px;fill:#dbe6ff;text-anchor:middle}
.rinfo h4{font-family:var(--caps);font-weight:400;font-size:21px;color:#e3c34a;margin:4px 0 8px}
@media (max-width:760px){.red{grid-template-columns:1fr}}
.copias{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.copia{margin:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#140e08}
.cimg{position:relative;aspect-ratio:3/4;overflow:hidden}
.cimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.5,0,.2,1);cursor:zoom-in}
.copias .orbz{position:absolute;width:26%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--gold2);box-shadow:0 0 14px rgba(231,201,131,.8);opacity:0;transition:opacity .6s;pointer-events:none}
.orbs .cimg img{transform:var(--zt)}
.orbs .orbz{opacity:0}
.copia figcaption{padding:10px 12px;font-size:15px;line-height:1.35}
.copia b{display:block;font-family:var(--caps);font-weight:400;font-size:13px;letter-spacing:.08em;color:var(--gold2)}
.copia small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.cruzlayer{pointer-events:none;overflow:visible}
.cruzlayer .wpts circle{fill:none;stroke:#fff;stroke-width:1;opacity:0;transition:opacity .6s}
.cruzlayer.showpts .wpts circle{opacity:1;filter:drop-shadow(0 0 4px #fff)}
.cruzlayer .cons{opacity:0;transition:opacity .6s}
.cruzlayer.showcons .cons{opacity:1}
.cruzlayer .cons line{stroke:#9fd0ff;stroke-width:.6;stroke-dasharray:2 1.5}
.cruzlayer .cons circle{fill:#cfe6ff;filter:drop-shadow(0 0 2px #9fd0ff)}
.cruzlayer .cons .dim circle{fill:#7fa6cf}
.cruzlayer .cons text{font-family:var(--caps);font-size:5.5px;fill:#dbeaff;paint-order:stroke;stroke:#0008;stroke-width:1px}
.cruzlayer.fitted .cons line{stroke:#ffe9a8;stroke-dasharray:none}

.cmp.portrait{max-width:560px}

/* ===== cap. 33–35 ===== */
.sky{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#04060f}
.sky canvas{display:block;width:100%;height:auto}
.sky-hud{position:absolute;left:0;right:0;top:0;padding:12px 16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--caps);font-size:12px;letter-spacing:.12em;color:#dfe8ff;text-shadow:0 1px 4px #000;pointer-events:none}
.sky-hud b{color:var(--gold2);font-weight:400}
.sky .counter-banner{top:16%;bottom:auto}
.sky-ctl{margin-top:12px}
.sky-ctl .ctl{display:block;margin-top:10px}
.sky-ctl input{width:100%}
.chip.on{border-color:var(--gold);color:var(--gold2);box-shadow:0 0 14px rgba(201,164,92,.3)}
.cuarta,.leda{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;align-items:center}
@media (max-width:760px){.cuarta,.leda{grid-template-columns:1fr}}
.cu-img{position:relative;aspect-ratio:1;background-repeat:no-repeat;border-radius:50%;border:1px solid var(--line);cursor:crosshair;box-shadow:0 0 50px rgba(120,160,220,.12) inset,0 10px 40px #000a}
.cu-pt{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 10px #fff;animation:cupulse 2.4s infinite}
@keyframes cupulse{50%{box-shadow:0 0 18px #fff,0 0 2px #fff}}
.cu-guess{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:2px dashed var(--gold2);opacity:0;transition:opacity .3s}
.cu-guess.on{opacity:1}
.cu-d{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:radial-gradient(#fff,#bfe0ff 40%,transparent 70%);opacity:0;transform:scale(.2);transition:opacity .8s .3s,transform .8s .3s}
.cu-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 1s .6s}
.cu-lines line{stroke:#ffe9a8;stroke-width:.35;stroke-dasharray:1.4 1}
.cu-img.done .cu-d{opacity:1;transform:none}
.cu-img.done .cu-lines{opacity:1}
.cu-img.done{cursor:default}
.cu-side h4,.le-side h4{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.08em;margin:6px 0 8px}
.le-img{position:relative;overflow:hidden;border-radius:6px;border:1px solid var(--line);aspect-ratio:1}
.le-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.6s cubic-bezier(.6,0,.2,1);cursor:zoom-in}
.leda.rot .le-img img{transform:rotate(180deg)}
.le-img svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 1s}
.leda.stars .le-img svg{opacity:1}
.le-img svg line{stroke:#ffe9a8;stroke-width:3;stroke-dasharray:12 9}
.le-img svg circle{fill:none;stroke:#fff;stroke-width:3;filter:drop-shadow(0 0 8px #fff)}
.le-img svg circle.dd{fill:#cfe6ff;stroke:none}
.le-img svg text{font-family:var(--caps);font-size:30px;fill:#fff;paint-order:stroke;stroke:#000a;stroke-width:6px}
.le-side .chip{margin-top:10px}

/* ===== cap. 36–55 ===== */
.hand{font-family:var(--hand);font-style:italic}
.credit{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:6px;text-align:center}
.gmap{width:100%;height:auto;display:block;background:#0b0f15;border:1px solid var(--line);border-radius:4px}
.gmap .sea{fill:#0e1520}.gmap .land{fill:#2a2116;stroke:#5a4a30;stroke-width:.6;vector-effect:non-scaling-stroke}
.gmap .river{fill:none;stroke:#3f6b8a;stroke-width:1;vector-effect:non-scaling-stroke;opacity:.7}
.gmap text{font-family:var(--caps);fill:var(--parch);paint-order:stroke;stroke:#0d0a07;stroke-width:3px;letter-spacing:.04em}
/* elefante */
.elef{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;align-items:center}
@media (max-width:760px){.elef{grid-template-columns:1fr}}
.elef-img{margin:0}.elef-img img{width:100%;border-radius:4px;border:1px solid var(--line);cursor:zoom-in;display:block}
.elef-img figcaption{color:var(--muted);font-size:14px;font-style:italic;margin-top:6px}
.elef-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.eopt{border:1px solid var(--line);background:#120d08;border-radius:6px;padding:12px;cursor:pointer;color:var(--text);display:grid;gap:4px;justify-items:center;transition:.25s}
.eopt:hover{border-color:var(--gold)}.eopt.on{border-color:var(--gold2);box-shadow:0 0 22px rgba(201,164,92,.25)}
.eopt b{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.1em}.eopt small{font-style:italic;color:var(--muted)}
.eleph{width:100%;max-width:200px;overflow:visible}.eleph path{fill:#8a7a62}.eleph .ear{fill:#a8977a;stroke:#e7c983;stroke-width:1.2}
.elef-feat{list-style:none;padding:0;margin:14px 0 6px;display:flex;gap:8px;flex-wrap:wrap}.elef-feat li{font-family:var(--caps);font-size:11px;letter-spacing:.14em;border:1px solid var(--line);border-radius:99px;padding:4px 10px;color:var(--muted)}
.solved .elef-feat li{color:var(--gold2);border-color:var(--gold)}
/* vacío */
.vac-svg{width:100%;height:auto;display:block}.vac-road{stroke:var(--gold);stroke-width:2}
.vac-svg circle.seen{fill:var(--gold2)}.vac-svg circle.lost{fill:#5a4a30;opacity:.4}
.vac-fog{transition:opacity .6s}.vac-q{font-family:var(--caps);fill:var(--muted);text-anchor:middle;font-size:20px;letter-spacing:.2em}
.vac-a{font-family:var(--caps);fill:var(--muted);text-anchor:middle;font-size:16px}
.vac-cur{fill:none;stroke:#fff;stroke-width:3;transition:cx .2s}
.lostzone .vac-cur{stroke:var(--chalk)}.vac-r{width:100%;margin:10px 0 14px}
.vac-info h4{font-family:var(--caps);font-weight:400;color:var(--gold2);margin:4px 0;letter-spacing:.06em}.vac-info p{margin:0}
.lostzone .vac-info h4{color:var(--chalk)}
/* ecos */
.ecos{display:grid;gap:10px}
.eco{position:relative;display:grid;text-align:left;border:1px solid var(--line);background:#120d08;border-radius:6px;padding:16px 18px;cursor:pointer;color:var(--text);font-family:var(--serif);font-size:18px;min-height:78px;overflow:hidden}
.eco span{display:block;transition:opacity .5s,transform .5s;grid-area:1/1}.eco small{display:block;font-family:var(--caps);font-size:10px;letter-spacing:.2em;color:var(--muted);margin-top:6px;font-style:normal}
.eco .eco-a{font-style:italic;color:var(--parch)}.eco .eco-b{opacity:0;transform:translateY(12px);color:var(--gold2)}
.eco.on{border-color:var(--gold)}.eco.on .eco-a{opacity:0;transform:translateY(-12px)}.eco.on .eco-b{opacity:1;transform:none}
/* mapa con paradas */
.mapa{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;align-items:start}
@media (max-width:820px){.mapa{grid-template-columns:1fr}}
.mapa .route path{fill:none;stroke:var(--rc);stroke-width:2.2;vector-effect:non-scaling-stroke;opacity:0;stroke-dasharray:6 6;transition:opacity .6s}
.mapa .route path.on{opacity:.9}.mapa .route path.cur{opacity:1;stroke-dasharray:none;stroke-width:3}
.mapa .route path.decoy{stroke:#d0524a}.mapa .route path.decoy.on{opacity:.75}
.mapa .stop circle{fill:#0d0a07;stroke:var(--rc);stroke-width:2;vector-effect:non-scaling-stroke;opacity:.35;transition:.4s}
.mapa .stop text{opacity:0;transition:.4s}.mapa .stop.on circle{fill:var(--rc);opacity:1}.mapa .stop.on text{opacity:1}
.mapa .stop.cur circle{stroke:#fff}.mapa .stop.fake.on circle{fill:#d0524a;stroke:#d0524a}.mapa .stop.fake.on text{text-decoration:line-through;fill:#f0a49c}
.mapa .route.dim{opacity:.25}
.mapa-side h4{font-family:var(--caps);font-weight:400;color:var(--gold2);margin:4px 0 6px;letter-spacing:.06em;font-size:20px}.mapa-side p{min-height:5em}
.mapa-tabs{margin-bottom:12px}
/* niebla */
.niebla svg{width:100%;height:auto;display:block;touch-action:none;cursor:pointer}
.nb-line{stroke:var(--gold);stroke-width:2}.nb-fog{fill:#a8977a;opacity:.25;transition:.4s}.nb-fog.on{opacity:.55}
.nb-ev circle{fill:var(--gold2)}.nb-ev text{font-family:var(--caps);fill:var(--muted);text-anchor:middle;font-size:15px}.nb-ev.on circle{fill:#fff;r:9}.nb-ev.on text{fill:var(--gold2)}
.nb-cur line{stroke:#fff;stroke-width:2;stroke-dasharray:4 4}
.nb-info h4{font-family:var(--caps);font-weight:400;color:var(--gold2);margin:4px 0;letter-spacing:.06em}.nb-info p{margin:0}
/* páginas */
.paginas{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:center}
@media (max-width:760px){.paginas{grid-template-columns:1fr}}
.pg-grid{display:grid;grid-template-columns:repeat(14,1fr);gap:3px;max-width:430px;width:100%;justify-self:center}
.pg{aspect-ratio:3/4;border:none;border-radius:2px;cursor:pointer;padding:0;transition:.25s}
.pg.kept{background:linear-gradient(180deg,#e9dcc0,#cdb68a)}.pg.lost{background:#1a130c;border:1px dashed #4a3a24}
.pg.lost:hover,.pg.lost.seen{background:#2a1d10;border-color:var(--gold)}.pg.kept:hover{filter:brightness(1.15)}
/* pares */
.pares{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media (max-width:700px){.pares{grid-template-columns:1fr}}
.pares figure{margin:0;align-self:start}.pares .pw{position:relative}.pares img{width:100%;display:block;border-radius:4px;border:1px solid var(--line);cursor:zoom-in}
.pares figcaption{color:var(--muted);font-size:14px;font-style:italic;margin-top:6px;text-align:center}
.pp{position:absolute;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;border:2px solid var(--gold2);background:#0d0a07cc;color:var(--gold2);font-family:var(--caps);font-size:13px;cursor:pointer;transition:.25s}
.pp.on{background:var(--gold2);color:#0d0a07;box-shadow:0 0 0 6px rgba(231,201,131,.25),0 0 24px rgba(231,201,131,.8);transform:scale(1.15)}
/* qué falta */
.qf-imgs{display:grid;grid-template-columns:repeat(3,1fr) 1.6fr;gap:10px;align-items:end}
@media (max-width:760px){.qf-imgs{grid-template-columns:repeat(3,1fr)}.qf-imgs .leo{grid-column:1/-1}}
.qf-imgs figure{margin:0;position:relative}.qf-imgs img{width:100%;display:block;border-radius:3px;border:1px solid var(--line);cursor:zoom-in;transition:.3s}
.qf-imgs figcaption{font-size:12px;color:var(--muted);font-style:italic;text-align:center;margin-top:4px}
.qf-mark{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:18px;opacity:0;transition:.3s}
figure.yes .qf-mark{opacity:1;background:var(--gold2);color:#0d0a07}figure.no .qf-mark{opacity:1;background:#3a1a12;color:#f0a49c;border:1px solid #f0a49c}
figure.yes img{border-color:var(--gold2)}figure.no img{filter:grayscale(.4) brightness(.8)}
.qf-items{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:16px 0 8px}.qf-items .chip.on{background:rgba(201,164,92,.18)}
.qf-res{text-align:center;margin:10px auto 0}
/* lente */
.lente{position:relative;overflow:hidden;border-radius:4px;background:linear-gradient(180deg,#e9dcc0,#d9c69f);box-shadow:inset 0 0 60px rgba(120,80,30,.35);cursor:ew-resize;touch-action:none;user-select:none}
.ln-text{font-family:var(--hand);font-style:italic;color:#4a3218;font-size:clamp(24px,4vw,46px);padding:34px 24px;white-space:nowrap;text-align:center}
.ln-text.mirrored{transform:scaleX(-1)}
.ln-glass{position:absolute;top:0;bottom:0;width:34%;overflow:hidden;border-left:2px solid #fff;border-right:2px solid #fff;background:linear-gradient(90deg,#f4ead2,#efe2c4 30%,#f6ecd6);box-shadow:0 0 30px rgba(255,255,255,.35)}
.ln-glass{transform:scaleX(-1)}.ln-glass .ln-text{position:absolute;top:0;color:#2b1a08}
/* cubo */
.cubo{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:center}
@media (max-width:760px){.cubo{grid-template-columns:1fr}}
.cb-room{position:relative;aspect-ratio:4/3;background:linear-gradient(180deg,#2b2f33,#16181b 60%,#0f1012);border:1px solid var(--line);border-radius:4px;overflow:hidden;filter:brightness(var(--dim,1));transition:filter 1s}
.cb-light{position:absolute;left:25%;right:25%;top:6%;height:8px;background:#dfe9f2;box-shadow:0 0 50px 18px rgba(200,225,245,.35);animation:flick 4s infinite}
@keyframes flick{0%,97%,100%{opacity:1}98%{opacity:.4}99%{opacity:.9}}
.cb-cam{position:absolute;right:6%;top:8%;width:30px;height:16px;background:#111;border-radius:3px}.cb-cam::after{content:"";position:absolute;left:4px;top:4px;width:7px;height:7px;border-radius:50%;background:#d0524a;animation:flick 1.5s infinite}
.cb-table{position:absolute;left:24%;right:24%;bottom:22%;height:14%;background:linear-gradient(180deg,#9aa3ad,#5a6168);border-radius:3px}
.cb-clock{position:absolute;left:12px;bottom:10px;font-family:var(--caps);color:#c8d3dc;letter-spacing:.2em}
.cb-room.agent::before{content:"";position:absolute;left:58%;bottom:22%;width:16%;height:56%;background:#07080a;border-radius:40% 40% 4px 4px}
.cb-side h4{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.06em}
/* joyero */
.joyero{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#03040a}
.joyero canvas{width:100%;display:block;cursor:pointer}
.jy-hud{position:absolute;left:14px;top:12px}.jy-ctl{position:absolute;right:12px;bottom:12px;display:flex;gap:8px}
/* venidas */
.venidas{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:820px;margin:0 auto}
@media (max-width:700px){.venidas{grid-template-columns:repeat(2,1fr)}}
.vcard{position:relative;aspect-ratio:1/1;min-height:230px;border:none;background:none;padding:0;cursor:pointer;perspective:900px}
.vf{position:absolute;inset:0;border:1px solid var(--line);border-radius:8px;display:grid;align-content:center;justify-items:center;gap:8px;padding:16px;backface-visibility:hidden;transition:transform .8s cubic-bezier(.6,0,.2,1);background:radial-gradient(circle at 50% 30%,#2a1d10,#120d08)}
.vf.back{transform:rotateY(180deg);background:linear-gradient(180deg,#e9dcc0,#d9c69f);color:#3a2610;font-family:var(--serif);font-size:15px;line-height:1.4;text-align:left;align-content:start}
.vf small{font-family:var(--caps);font-size:10px;letter-spacing:.22em;color:var(--muted)}.vf.back small{color:#8a5a20}
.vf b{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.06em;font-size:clamp(14px,1.8vw,18px);text-align:center}
.vf i{font-style:normal;font-size:44px;color:var(--gold);opacity:.8}
.vcard.on .front{transform:rotateY(-180deg)}.vcard.on .back{transform:none}
/* gemelos */
.gem{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:center}
@media (max-width:760px){.gem{grid-template-columns:1fr}}
.gem-stage{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:8px;--o:.5}
.gem-stage img{width:100%;display:block;border-radius:4px;border:1px solid var(--line);transition:all .9s cubic-bezier(.6,0,.2,1)}
.gem-stage .g-lbl{position:absolute;bottom:8px;font-family:var(--caps);font-size:11px;letter-spacing:.18em;color:var(--gold2);background:#0d0a07cc;padding:3px 8px;border-radius:99px}
.g-lbl.l{left:8px}.g-lbl.r{left:calc(50% + 12px)}
.gem-stage.over{grid-template-columns:1fr}.gem-stage.over img{grid-area:1/1}.gem-stage.over .g-t{opacity:var(--o)}.gem-stage.over .g-lbl.r{left:auto;right:8px}
.gem-side .ctl{display:block;margin:14px 0}.gem-side input{width:100%}
/* espejo en la cena */
.ecena{position:relative;border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:10px;touch-action:none}
.ecena canvas{width:100%;display:block;cursor:ew-resize}
.ec-tag{position:absolute;top:8px;transform:translateX(-50%);background:#0d0a07cc;padding:2px 8px;border-radius:99px;pointer-events:none}
/* fuga */
.fuga{position:relative;border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:10px}
.fuga img{width:100%;display:block}.fuga svg{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.fuga .fs{stroke:#ffe9a8;stroke-width:6;stroke-linecap:round;filter:drop-shadow(0 0 4px #000)}
.fuga .fx{stroke:#ffe9a8;stroke-width:2.5;stroke-dasharray:10 8;opacity:.9}
.fuga .gaze{stroke:#9fd0ff;stroke-width:3;stroke-dasharray:12 8}
.fuga .guess{fill:none;stroke:#fff;stroke-width:4;stroke-dasharray:6 5}
.fuga .vp{fill:none;stroke:#ff6a4a;stroke-width:5;opacity:0;transition:opacity .8s}.fuga.found .vp{opacity:1;animation:pulse 1.6s infinite}
@keyframes pulse{50%{stroke-width:10}}
.fu-t{text-align:center;margin:12px auto 0}
/* elipse */
.elipse{border:1px solid var(--line);border-radius:6px;overflow:hidden}
.el-map .gmap{border:none;border-radius:0}
.el-g [class*=" s"],.el-g [class^="s"],.el-g .epin{opacity:0;transition:opacity .7s}
.elipse[data-s="1"] .s1,.elipse[data-s="2"] :is(.s1,.s2),.elipse[data-s="3"] :is(.s1,.s2,.s3),.elipse[data-s="4"] :is(.s1,.s2,.s3,.s4),.elipse[data-s="5"] :is(.s1,.s2,.s3,.s4,.s5),.elipse[data-s="6"] :is(.s1,.s2,.s3,.s4,.s5,.s6),.elipse[data-s="7"] :is(.s1,.s2,.s3,.s4,.s5,.s6,.s7){opacity:1}
.el-major,.el-minor{stroke:#ffe9a8;stroke-width:3;vector-effect:non-scaling-stroke;stroke-dasharray:10 6}
.el-ell{fill:none;stroke:#ffe9a8;stroke-width:1;vector-effect:non-scaling-stroke;opacity:.2!important}.elipse:not([data-s="5"]):not([data-s="6"]):not([data-s="7"]) .el-ell{opacity:0!important}
.el-draw{fill:none;stroke:#ffe9a8;stroke-width:3;vector-effect:non-scaling-stroke}
.el-string{fill:none;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.el-zone{fill:rgba(255,233,168,.12);stroke:#ffe9a8;stroke-width:1.5;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.elipse[data-s="5"] .el-zone{animation:pulse 1.6s infinite}
.el-x path{stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke;fill:none}
.epin circle{fill:#d0524a;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.epin text{font-size:24px}
.epin.foc circle{fill:#111;stroke:#ffe9a8}
.epin.etna circle{fill:#b4553a}.epin.cent circle{fill:#ffe9a8}
.epin.cent text,.epin.etna text{font-size:5px;stroke-width:1px}
.elipse[data-s="6"] .el-x,.elipse[data-s="7"] .el-x{transform-box:fill-box}
.elipse[data-s="6"] .epin circle{r:2.5}.elipse[data-s="6"] .epin text{font-size:6px;stroke-width:1px}.elipse[data-s="6"] .el-x path{d:path("M-3,-3L3,3M-3,3L3,-3")}
.elipse[data-s="7"] .epin text{font-size:2px;stroke-width:.4px}.elipse[data-s="7"] .epin circle{r:.9}.elipse[data-s="7"] .epin.cent circle{r:1.2}.elipse[data-s="7"] .el-x path{d:path("M-1.2,-1.2L1.2,1.2M-1.2,1.2L1.2,-1.2")}
.elipse[data-s="7"] .el-zone{opacity:.5!important}
/* centuripe */
.cturi{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:center}
@media (max-width:760px){.cturi{grid-template-columns:1fr}}
.cent-stage{position:relative;overflow:hidden;border-radius:4px;border:1px solid var(--line)}
.cent-stage>img:first-child{width:100%;display:block;transition:filter .8s}
.cent-vit{position:absolute;opacity:0;transition:opacity 1s;mix-blend-mode:screen;filter:invert(1) sepia(1) saturate(3) hue-rotate(-10deg) brightness(1.1);pointer-events:none}
.cent-stage svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cent-stage .ct{fill:none;stroke:#ffe9a8;stroke-width:9;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity 1s;filter:drop-shadow(0 0 8px #ffe9a8)}
.cent-stage .ct-head{fill:none;stroke:#ffe9a8;stroke-width:8;opacity:0;transition:opacity 1s}
.cent-stage[data-m="1"] .ct,.cent-stage[data-m="1"] .ct-head{opacity:.9}.cent-stage[data-m="1"]>img:first-child{filter:brightness(.6)}
.cent-stage[data-m="2"] .cent-vit{opacity:.85}.cent-stage[data-m="2"]>img:first-child{filter:brightness(.55)}
/* líneas */
.lineas{display:grid;grid-template-columns:1.7fr 1fr;gap:18px;align-items:start}
@media (max-width:820px){.lineas{grid-template-columns:1fr}}
.limb{opacity:.15;transition:opacity .5s}.limb.on{opacity:1}
.lpath{fill:none;stroke:#ffe9a8;stroke-width:2.6;vector-effect:non-scaling-stroke}
.limb .via circle,.limb .dest circle{fill:#d0524a;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.limb .via{opacity:0;transition:opacity .4s}.limb .via.on{opacity:1}.limb .dest{opacity:0;transition:opacity .6s}.limb.done .dest{opacity:1}.limb .dest circle{fill:#ffe9a8}
.limb text{font-size:15px}
.origin circle{fill:#ffe9a8}.origin .halo{fill:none;stroke:#ffe9a8;stroke-width:1.5;vector-effect:non-scaling-stroke;animation:pulse 2s infinite}.origin text{font-size:16px}
.li-btns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.li-btns .chip.on{background:rgba(201,164,92,.2)}
.li-side h4{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.06em;margin:8px 0 6px}
.li-vid{margin-top:10px}
:is(.li-side,.pg-side,.ci-hud) .miles .mi{font-size:clamp(34px,5vw,58px)}
/* diagnóstico */
.diag{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:start}
@media (max-width:820px){.diag{grid-template-columns:1fr}}
.dg-chart{border:1px solid #2c4a3a;background:#07110d;border-radius:6px;padding:14px;font-family:var(--caps);color:#8fe3b0}
.dg-head{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:10px;letter-spacing:.16em;color:#6fbf8f}.dg-head b{color:#bdf5d0;font-weight:400}
.dg-ecg{width:100%;height:70px;margin:8px 0}.dg-ecg polyline{fill:none;stroke:#59e08f;stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px #59e08f)}
.crit .dg-ecg polyline{stroke:#ff6a4a;filter:drop-shadow(0 0 3px #ff6a4a)}.crit .dg-bpm{color:#ff6a4a}
.dg-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dg-item{text-align:left;border:1px solid #1f3a2b;background:#0a1712;border-radius:4px;padding:8px 10px;cursor:pointer;color:#8fe3b0;font-family:var(--caps);display:grid;gap:2px}
.dg-item .dg-o{font-size:9px;letter-spacing:.2em;color:#5c9c78}.dg-item .dg-s{font-size:12px;letter-spacing:.06em}
.dg-item.seen{border-color:#7a5a20;color:#f0c27a}.dg-item.on{background:#1b2a1f;border-color:#59e08f}
.dg-dx{margin-top:12px;font-size:11px;letter-spacing:.16em;color:#6fbf8f}.dg-dx b{color:#ff8a6a;font-weight:400}
.dg-luca{background:linear-gradient(180deg,#e9dcc0,#d9c69f);color:#3a2610;border-radius:3px;padding:18px 20px;margin-bottom:12px;box-shadow:inset 0 0 50px rgba(120,80,30,.3)}
.dg-luca .small-label{color:#8a5a20}.dg-luca p{font-size:19px;line-height:1.45;margin:8px 0 0}
/* banderas */
.banderas{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
@media (max-width:760px){.banderas{grid-template-columns:repeat(2,1fr)}}
.flag{border:1px solid var(--line);background:#120d08;border-radius:6px;padding:8px;cursor:pointer;display:grid;gap:6px;color:var(--muted);font-family:var(--caps);font-size:10px;letter-spacing:.14em;transition:.25s}
.flag svg{width:100%;display:block;border-radius:2px}.flag:hover{border-color:var(--gold)}.flag.on{border-color:var(--gold2);color:var(--gold2)}
.fl-mark{opacity:0;transition:opacity .4s}.flag.on .fl-mark{opacity:1}.fl-mark circle{fill:none;stroke:#ffe9a8;stroke-width:3}
.fl-mark text{font-family:var(--caps);font-size:18px;fill:#ffe9a8;text-anchor:middle;paint-order:stroke;stroke:#000;stroke-width:4px}
/* espejo solar */
.esolar{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:center}
@media (max-width:760px){.esolar{grid-template-columns:1fr}}
.es-stage{position:relative;border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.es-stage img{width:100%;display:block;filter:sepia(.2)}.es-stage canvas{position:absolute;inset:0;width:100%;height:100%;mix-blend-mode:screen;cursor:crosshair}
.es-side h4{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.06em}
/* rana */
.rana{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:center;margin-bottom:14px}
@media (max-width:700px){.rana{grid-template-columns:1fr}}
.rana svg{width:100%;--heat:0}.rana .fl{fill:#ff8a3a;opacity:calc(.15 + var(--heat));transform-origin:center bottom;animation:flame .6s ease-in-out infinite alternate;animation-delay:var(--d)}
@keyframes flame{to{transform:scaleY(1.25)}}
.rana .water{filter:hue-rotate(calc(var(--heat) * -40deg)) brightness(calc(1 + var(--heat) * .4))}
.rana .temp{font-family:var(--caps);fill:var(--gold2);font-size:22px;text-anchor:middle}
.rana .bb{fill:#cfe6ff;opacity:.7;transform:translateX(var(--x));animation:bub 1.6s linear infinite;animation-delay:var(--d)}
@keyframes bub{from{transform:translate(var(--x),0)}to{transform:translate(var(--x),-100px);opacity:0}}
.rana-side input{width:100%}
/* tempestad */
.tempest{position:relative;padding-bottom:140px;overflow:hidden}
.tp-stage{position:relative;border:1px solid var(--line);border-radius:4px;overflow:visible;transition:transform 1.6s cubic-bezier(.6,0,.2,1);transform-origin:46.7% 75.4%}
.tp-img{width:100%;display:block;cursor:zoom-in}.tp-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.tp-tri{position:absolute;cursor:grab;touch-action:none;filter:drop-shadow(0 8px 18px #000);transition:left .5s,top .5s,filter .5s;z-index:3}
.tp-tri.drag{cursor:grabbing;transition:none;filter:drop-shadow(0 14px 30px #000) brightness(1.08)}
.tp-tri.placed{cursor:default;filter:none}
.tp-tray{position:absolute;right:0;bottom:6px;width:28%;text-align:center}
.fitted .tp-tray{opacity:0}
.tp-h{fill:none;stroke:#ffe9a8;stroke-width:3;stroke-dasharray:10 8;opacity:0;transition:opacity .6s}
.tp-sword{stroke:#ffe9a8;stroke-width:3;stroke-dasharray:10 7;filter:drop-shadow(0 0 4px #000)}
.tp-107{fill:none;stroke:#ff6a4a;stroke-width:4;opacity:0;transition:opacity .6s}
.z107 .tp-107{opacity:1}.tp-stage.z107{transform:scale(2.2)}
.tempest+.tp-bar{position:relative;z-index:4}
.block[data-s="1"] .h1,.block[data-s="2"] .h2{opacity:1}
/* galería */
.galeria{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:center}
@media (max-width:760px){.galeria{grid-template-columns:1fr}}
.ga-stage{position:relative;background:#e8dcc4;border-radius:4px;border:1px solid var(--line);display:grid;place-items:center;min-height:300px;padding:10px}
.ga-stage img{max-width:100%;max-height:62vh;display:block;transition:opacity .2s,transform .9s cubic-bezier(.6,0,.2,1);cursor:zoom-in}
.ga-stage img.fade{opacity:0}.ga-stage img.mir{transform:scaleX(-1)}
.ga-num{position:absolute;left:10px;bottom:8px;font-family:var(--caps);font-size:10px;letter-spacing:.2em;color:#6a5030}
.ga-side h4{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.06em}
/* luna */
.luna{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.luna canvas{width:100%;display:block}
.lu-hud{position:absolute;left:0;right:0;top:0;padding:12px 16px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-family:var(--caps);font-size:12px;letter-spacing:.12em;color:#efe6d4;text-shadow:0 1px 4px #000;pointer-events:none}
.lu-hud b{color:var(--gold2);font-weight:400}.luna .counter-banner{top:18%}
.lu-ctl .ctl{display:block}.lu-ctl input{width:100%}.lu-t{text-align:center;margin:6px auto 0;min-height:3em}
/* pascua */
.pascua{display:grid;grid-template-columns:1fr 1.3fr;gap:22px;align-items:start}
@media (max-width:760px){.pascua{grid-template-columns:1fr}}
.pa-tab{border-collapse:collapse;margin-top:8px;font-size:16px}.pa-tab td,.pa-tab th{border-bottom:1px solid var(--line);padding:4px 12px;text-align:left}.pa-tab th{font-family:var(--caps);font-weight:400;font-size:10px;letter-spacing:.2em;color:var(--muted)}
.pa-y{width:130px;height:56px;font-size:28px;margin-top:6px}
.pa-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin-bottom:12px}
.pa-c{font-family:var(--caps);font-size:12px;text-align:center;padding:6px 0;border:1px solid var(--line);border-radius:3px;color:var(--muted);transition:.2s}
.pa-c.scan{color:var(--text);background:#1a130c}.pa-c.hit{background:var(--gold2);color:#0d0a07;box-shadow:0 0 14px rgba(231,201,131,.7)}
/* apagón y resplandor */
.apagon{border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:10px}.apagon canvas{width:100%;display:block}
.respl{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:center}
@media (max-width:700px){.respl{grid-template-columns:1fr}}
.respl canvas{width:100%;border-radius:6px;border:1px solid var(--line)}.rs-side .ctl{display:block;margin-bottom:12px}.rs-side input{width:100%}
/* albedrío */
.ab-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ab{border:1px solid var(--line);background:#120d08;border-radius:6px;padding:16px;cursor:pointer;color:var(--text);display:grid;gap:6px;text-align:center}
.ab b{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.1em;font-size:18px}.ab small{font-style:italic;color:var(--muted);font-size:15px}.ab.on{border-color:var(--gold2)}
.ab-svg{width:100%;height:auto;display:block}.ab-p{fill:none;stroke:#3a2e22;stroke-width:3}.ab-p.on{stroke:#ffe9a8}
.ab-dot{fill:#3a2e22;transition:.6s}.albedrio.done .ab-dot,.done .ab-dot{fill:#ffe9a8;filter:drop-shadow(0 0 10px #ffe9a8)}
.ab-t{text-align:center;margin:0 auto}
/* steghide */
.steg{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
@media (max-width:760px){.steg{grid-template-columns:1fr}}
.sg-photo{position:relative}.sg-photo canvas{width:100%;display:block;border-radius:4px;border:6px solid #f4efe4;box-shadow:0 14px 40px #000a}
.sg-lbl{margin-top:6px}
.sg-term{background:#050806;border:1px solid #1f3a2b;border-radius:6px;padding:12px;display:flex;flex-direction:column;font-family:ui-monospace,Menlo,Consolas,monospace}
.sg-out{flex:1;margin:0;color:#8fe3b0;font-size:13px;white-space:pre-wrap;min-height:160px;max-height:260px;overflow:auto}
.sg-in{display:flex;gap:8px;align-items:center;color:#8fe3b0;font-size:13px}.sg-in input{flex:1;min-width:0;background:#0a1712;border:1px solid #1f3a2b;color:#bdf5d0;padding:8px;font-family:inherit;border-radius:3px}
.sg-hint{margin-top:8px}
.sg-letter{margin-top:18px;padding:26px 28px;background:linear-gradient(180deg,#efe6d2,#e0d1b0);color:#3a2610;border-radius:3px;box-shadow:inset 0 0 60px rgba(120,80,30,.25),0 20px 50px #000a;font-size:19px;line-height:1.55}
.sg-letter p{margin:0 0 10px}
/* munitium */
.munit{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;align-items:center}
@media (max-width:820px){.munit{grid-template-columns:1fr}}
.munit .sword{stroke:#ffe9a8;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:8 6;filter:drop-shadow(0 0 3px #ffe9a8)}
.munit .sanct path{fill:#ffe9a8}.munit .sanct text{font-size:8.5px;fill:var(--muted);stroke-width:2px}
.munit .bunker{cursor:pointer}.munit .bunker rect{fill:#0d0a07;stroke:#d0524a;stroke-width:2;vector-effect:non-scaling-stroke}
.munit .bunker.on rect{fill:#d0524a}.munit .bunker text{font-size:10px;stroke-width:2.4px}.munit .bunker rect{width:9px;height:9px;x:-4.5px;y:-4.5px}
.mu-cut{border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:12px;font-family:var(--caps);font-size:10px;letter-spacing:.16em}
.mu-sur{background:linear-gradient(180deg,#36502b,#253a1d);color:#cfe6b0;padding:8px 10px}
.mu-rock{position:relative;height:120px;background:repeating-linear-gradient(170deg,#2a2018 0 14px,#251c15 14px 28px)}
.mu-room{position:absolute;left:10%;right:10%;bottom:10px;padding:10px;background:#e8dcc4;color:#3a2610;border-radius:3px;opacity:.15;transition:opacity .8s;text-transform:none;letter-spacing:.04em;font-size:11px}
.open .mu-room{opacity:1;box-shadow:0 0 30px rgba(255,236,170,.5)}
.mu-depth{position:absolute;right:8px;top:8px;color:#d0b080}
.mu-side h4{font-family:var(--caps);font-weight:400;color:var(--gold2);letter-spacing:.06em}
/* opsec */
.opsec{display:grid;gap:8px}
.op{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:10px 14px;background:#120d08}
.op>div{display:flex;gap:6px}.op small{grid-column:1/-1;color:var(--muted);font-style:italic;font-size:14px}
.op.ok{border-color:#59a06a}.op.bad{border-color:#d0524a}.op.done button{opacity:.4;pointer-events:none}
.op-score{text-align:center;margin-top:8px}
/* pororoca */
.pororoca{border:1px solid var(--line);border-radius:6px;overflow:hidden}.pororoca canvas{width:100%;display:block}
.po-t{text-align:center;margin:6px auto 0}
/* así vendrá */
.asi-block{text-align:center}
.asi{min-height:220px;display:grid;place-items:center;gap:20px;padding:40px 10px}
.asi-txt{font-family:var(--hand);font-style:italic;font-size:clamp(26px,4.4vw,48px);color:var(--parch);line-height:1.3;max-width:900px}
.asi-txt span{display:inline-block}.asi-txt span.new{animation:wordin 1.2s ease}
@keyframes wordin{from{opacity:0;filter:blur(6px);transform:translateY(8px)}}
/* cielo sur */
.csur canvas{cursor:default}
/* círio */
.cirio{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:10px}.cirio canvas{width:100%;display:block}
.ci-hud{position:absolute;left:14px;top:10px}.ci-t{text-align:center;margin:6px auto 0}
/* reflejo */
.reflejo{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden}.reflejo canvas{width:100%;display:block;cursor:pointer}
.rf-cap{position:absolute;left:50%;bottom:16%;transform:translateX(-50%);font-family:var(--caps);font-size:11px;letter-spacing:.3em;color:var(--muted);transition:opacity 1s;pointer-events:none}
.rf-t{text-align:center;margin:14px auto 0;min-height:3em;font-family:var(--hand);font-size:clamp(19px,2.4vw,24px);color:var(--parch)}
/* rastro */
.rastro{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}
@media (max-width:700px){.rastro{grid-template-columns:1fr}}
.rs-badge{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;font-family:var(--caps);font-size:44px;color:#0d0a07;background:radial-gradient(circle at 35% 30%,#fff1c8,#c9a45c 60%,#7a5a20);box-shadow:0 0 40px rgba(231,201,131,.4)}
.rastro ol{margin:0;padding-left:22px;display:grid;gap:10px}.rastro li::marker{color:var(--gold);font-family:var(--caps)}
.rastro a{color:var(--text);text-decoration:none;display:block}.rastro a:hover{color:var(--gold2)}
.rastro small{display:block;font-family:var(--caps);font-size:10px;letter-spacing:.18em;color:var(--muted)}
/* ===== ajustes v11 ===== */
.eopt img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.sp-hd{display:block;width:100%;max-width:420px;margin-top:12px;border-radius:4px;border:1px solid var(--line)}
.cb-room{background:#111;filter:none}
.cb-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.cb-dark{opacity:var(--dim,0);transition:opacity 1.2s}
.cb-tube{animation:flick 4.5s infinite}.cb-glowf{animation:flick 4.5s infinite}
.cb-led{animation:blink 1.4s steps(2) infinite}@keyframes blink{50%{opacity:.15}}
.cb-agent{opacity:0;transition:opacity 1.4s,transform 1.4s;transform-origin:655px 520px}
.agent .cb-agent{opacity:1}.close .cb-agent{transform:translate(-210px,40px) scale(1.25)}
.cb-rec{position:absolute;right:14px;top:12px;font-family:var(--caps);font-size:11px;letter-spacing:.2em;color:#e6ecf0;display:flex;gap:6px;align-items:center}
.cb-rec i{width:8px;height:8px;border-radius:50%;background:#ff3b30;animation:blink 1.4s steps(2) infinite}
.cb-clock{left:auto;right:14px;bottom:12px;color:#e6ecf0}
.cb-room.agent::before{display:none}
.fl-img{position:relative;display:block;width:100%;overflow:hidden;border-radius:2px}.fl-img img{width:100%;height:100%;object-fit:cover;display:block}
.fl-ring{position:absolute;width:22%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid #ffe9a8;border-radius:50%;box-shadow:0 0 12px #ffe9a8;opacity:0;transition:opacity .4s}
.flag[data-i="4"] .fl-ring{width:9%}.flag.on .fl-ring{opacity:1}
.brasil{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:center}
@media (max-width:760px){.brasil{grid-template-columns:1fr}}
.br-stage{position:relative;overflow:hidden;border-radius:4px;border:1px solid var(--line);aspect-ratio:10/7}
.br-stage img,.br-stage svg{position:absolute;inset:0;width:100%;height:100%;transition:transform 1.4s cubic-bezier(.6,0,.2,1)}
.br-stage.zoom img,.br-stage.zoom svg{transform:scale(3.6);transform-origin:50% 57.5%}
.br-stage.flip img{transform:scaleX(-1)}.br-stage.flip.zoom img{transform:scale(3.6) scaleX(-1)}
.br-svg line{stroke:#ffe9a8;stroke-width:1.6;stroke-dasharray:4 3;opacity:0;transition:opacity .8s}
.br-svg .br-st{opacity:0;transition:opacity .8s}.br-svg circle{fill:none;stroke:#ffe9a8;stroke-width:1.6}
.br-svg text{font-family:var(--caps);font-size:10px;fill:#fff;paint-order:stroke;stroke:#002776;stroke-width:3px}
.br-stage.zoom .br-svg line,.br-stage.zoom .br-st{opacity:1}.br-stage.flip .br-svg{opacity:0}
.br-sky{width:200px;max-width:100%;display:block;margin:8px 0;background:#050816;border-radius:50%}
.br-sky circle{fill:#eef3ff}.br-sky line{stroke:#ffe9a8;stroke-width:.8;stroke-dasharray:3 2}.br-sky text{font-family:var(--caps);font-size:7px;fill:#e7c983}
.vtabs .vt-tabs{margin-bottom:12px;flex-wrap:wrap}
.fin-block{text-align:center;padding:60px 0 30px}
.fin{font-family:var(--caps);font-size:clamp(90px,18vw,200px);letter-spacing:.3em;color:var(--gold2);line-height:1;margin-right:-.3em;text-shadow:0 0 60px rgba(231,201,131,.35)}
.fin-orn{width:120px;height:1px;background:var(--gold);margin:0 auto 34px;box-shadow:0 0 20px var(--gold)}
.fin-q{font-family:var(--hand);font-style:italic;font-size:clamp(20px,3vw,28px);color:var(--parch);margin:26px auto 30px}
.sg-photo img{width:100%;display:block;border-radius:4px;border:6px solid #f4efe4;box-shadow:0 14px 40px #000a}
.cb-room.photo{aspect-ratio:1672/941}
.cb-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.cb-flick{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(230,240,255,.18),transparent 60%);animation:flick 4.5s infinite;pointer-events:none}
.cb-agent.ph{transform-origin:1060px 700px}.close .cb-agent.ph{transform:translate(-200px,60px) scale(1.25)}
.sg-photo{position:relative}.sg-ring{position:absolute;left:48.75%;top:57.5%;width:12%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px dashed #ffe9a8;border-radius:50%;box-shadow:0 0 14px rgba(255,233,168,.6);animation:pulse 2s infinite;pointer-events:none}
.sg-term.err{animation:sgshake .4s;border-color:#d0524a}@keyframes sgshake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

/* portada: avisos */
.hero-note{max-width:34em;margin:18px auto 0;padding:0 16px;font-style:italic;color:var(--muted,#b9a98a);font-size:1.05rem;line-height:1.5;text-align:center}
.spoiler-note{margin:14px 0 0;font-size:.9rem;color:var(--muted,#b9a98a);letter-spacing:.02em}
