* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
a, summary { -webkit-tap-highlight-color: rgba(0,255,255,0.2); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
strong { font-weight: bold; }
a { color: var(--cyan); }
a:hover { color: #fff; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }

marquee {
  position: fixed;
  top: 0;
  height: 100vh;
  width: 20px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 1.1rem;
  color: var(--pink);
  z-index: 5;
}

/* Rejillas: una columna en móvil, varias en ordenador */
.g2, .g3 { display: grid; gap: 1.5rem 2rem; align-items: start; }
.g2 > *, .g3 > * { min-width: 0; }
@media (min-width: 900px) {
  .g3 { grid-template-columns: repeat(3, 1fr); }
}
.topbar { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.25rem; }
.langs { position: relative; margin-left: auto; z-index: 30; }
details.langmenu, details.langmenu[open] { border: 0; background: none; box-shadow: none; margin: 0; }
.langmenu summary { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 46px; padding: 0.25rem 0.75rem 0.25rem 0.5rem; background: #000; border: 1px solid var(--cyan); border-radius: 6px; color: var(--cyan); font-size: 0.95rem; font-weight: bold; cursor: pointer; list-style: none; box-shadow: 0 0 10px rgba(0,255,255,0.25); }
.langmenu summary::-webkit-details-marker { display: none; }
.langmenu summary::after { content: ''; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid currentColor; }
.langmenu[open] summary::after { transform: rotate(180deg); }
.langmenu summary span { color: var(--text); }
.langmenu ul { position: absolute; top: calc(100% + 6px); right: 0; min-width: 170px; margin: 0; padding: 6px; list-style: none; background: #050505; border: 1px solid var(--cyan); border-radius: 6px; box-shadow: 0 0 18px rgba(0,255,255,0.35); text-align: left; }
.langmenu li { margin: 0; }
.langmenu a { display: block; padding: 0.7rem 0.75rem; border-radius: 4px; color: var(--text); font-weight: bold; text-decoration: none; }
.langmenu a:hover { background: var(--cyan); color: #000; }
.langmenu a[aria-current] { color: var(--green); }
.quote { max-width: 980px; margin: 0.75rem auto 1rem; color: var(--text); font-size: clamp(1rem, 2vw, 1.3rem); line-height: 1.45; }
.quote p { margin: 0; }
.quote cite { display: block; margin-top: 0.3rem; color: var(--text); font-style: normal; font-size: 0.95em; }

figure { margin: 0 0 1rem; text-align: center; }
figure img { display: block; width: 100%; height: auto; margin: 0 auto; }
.fig-s img { max-width: 520px; }
.fig { margin: 1.25rem auto 1.5rem; }
.fig img { max-width: 860px; }
.hero-fig { margin: 0.25rem auto 0.5rem; }
.hero-fig img { max-width: 980px; }
figcaption { color: var(--text); font-size: 1rem; margin-top: 0.15rem; }
.credit { color: var(--text); font-size: 0.9rem; }

/* Menú de pasos */
.topnav {
  position: sticky;
  top: 0;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  background: var(--bg);
  padding: 0.6rem 0;
}
.topnav a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 48px;
  border: 2px solid var(--pink);
  border-radius: 5px;
  box-shadow: 0 3px var(--pink);
  color: var(--pink);
  font-size: clamp(0.8rem, 1.6vw, 1.3rem);
  text-align: center;
  text-decoration: none;
  transition: all 0.2s ease;
}
.topnav a b { font-weight: normal; }
.topnav a:hover { background: var(--cyan); border-color: var(--cyan); box-shadow: 0 0 15px var(--cyan); color: #000; }

h2 {
  color: var(--pink);
  font-size: clamp(1.7rem, 3.4vw, 2.7rem);
  font-weight: normal;
  line-height: 1.15;
  margin: 0;
}
h3 { color: var(--cyan); font-size: 1.35rem; font-weight: normal; margin: 1.75rem 0 0.5rem; line-height: 1.3; }
.g2 > div > h3:first-child, .g2 > section > h3:first-child { margin-top: 0; }
.tag {
  display: inline-block;
  min-width: 1.6em;
  margin-right: 0.3em;
  padding: 0 0.3em;
  background: var(--cyan);
  border-radius: 3px;
  color: #000;
  text-align: center;
}
.plainhead { margin: 3rem 0 1rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--cyan); box-shadow: 0 6px 8px -7px var(--cyan); }

/* Cabecera de cada paso */
.stephead {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 4rem 0 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--cyan);
  box-shadow: 0 6px 8px -7px var(--cyan);
}
.num {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(3.2rem, 6vw, 5rem);
  height: clamp(3.2rem, 6vw, 5rem);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  background: var(--pink);
  color: #000;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
}
.step { color: var(--text); font-size: 1rem; display: block; }
.stephead p { margin: 0.1rem 0 0; }

.box { border: 2px solid var(--pink); background: var(--panel); padding: 0.9rem 1rem; margin: 1rem 0; border-radius: 5px; }
.box > :first-child { margin-top: 0; }
.box > :last-child { margin-bottom: 0; }
.box.calm { border-color: var(--cyan); box-shadow: 0 0 12px rgba(0,255,255,0.3); }
.box.warn { box-shadow: 0 0 12px rgba(255,105,180,0.4); }

.intro-boxes .box { margin: 0; height: 100%; }

/* Cartas de "qué te pasa" */
.route { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: 0.9rem; }
@media (min-width: 700px) { .route { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .route { grid-template-columns: repeat(3, 1fr); } }
.route li { margin: 0; }
.route a {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  height: 100%;
  padding: 0.7rem 0.9rem;
  border: 2px solid var(--pink);
  border-radius: 5px;
  box-shadow: 0 4px var(--pink);
  color: var(--text);
  text-decoration: none;
  transition: all 0.2s ease;
}
.route a:hover { border-color: var(--cyan); box-shadow: 0 0 15px var(--cyan); transform: translateY(-2px); }
.route img { flex: none; width: 76px; height: 76px; }
.route b { font-weight: bold; font-size: 1.1rem; line-height: 1.3; display: block; }
.route small { color: var(--text); display: block; font-size: 0.98rem; line-height: 1.35; margin-top: 0.2rem; }

.next {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 2rem auto 0;
  padding: 0.7rem 2.5rem;
  background: var(--green);
  border: 2px solid var(--green);
  border-radius: 5px;
  box-shadow: 0 0 14px rgba(0,255,0,0.5);
  color: #000;
  font-size: 1.2rem;
  text-align: center;
  text-decoration: none;
  transition: all 0.2s ease;
}
.next:hover { background: var(--cyan); border-color: var(--cyan); box-shadow: 0 0 18px var(--cyan); color: #000; }

ul, ol { padding-left: 1.3rem; }
li { margin-bottom: 0.6rem; }
li::marker { color: var(--cyan); }

table { width: 100%; border-collapse: collapse; margin: 0.75rem 0; }
th { color: var(--cyan); font-weight: normal; text-align: left; border-bottom: 2px solid var(--cyan); padding: 0.45rem; }
td { border-bottom: 1px solid #3a1a2c; padding: 0.55rem 0.45rem; vertical-align: top; }

code, pre, .tag, .next, .bigbtn, .num { text-shadow: none; }
code { color: var(--green); font-family: 'Courier New', Courier, monospace; font-weight: bold; white-space: nowrap; }
.big-code { font-size: 1.4rem; white-space: nowrap; }
h2, h3, .next, .route b { text-wrap: balance; }
pre {
  background: #030803;
  border: 1px solid var(--green);
  border-radius: 4px;
  color: var(--green);
  font-family: 'Courier New', Courier, monospace;
  font-size: 0.92rem;
  line-height: 1.5;
  overflow-x: auto;
  padding: 0.7rem;
  margin: 0.75rem 0;
}
.path { font-weight: bold; }

details { border: 2px solid var(--pink); border-radius: 5px; background: var(--panel); margin: 0.9rem 0; }
.g3 > details, .g2 > details { margin: 0; }
details[open] { border-color: var(--cyan); box-shadow: 0 0 12px rgba(0,255,255,0.25); }
summary { cursor: pointer; padding: 0.8rem 1rem; color: var(--pink); font-size: 1.25rem; }
summary::marker { color: var(--cyan); }
summary:hover { color: var(--cyan); }
summary small { display: block; color: var(--text); font-size: 0.98rem; margin-top: 0.1rem; }
.inner { padding: 0 1rem 1rem; }

/* Botones a resetea.net */
.cuna { margin-top: 3rem; padding: clamp(1rem, 2.5vw, 2rem); border: 2px solid var(--green); border-radius: 5px; box-shadow: 0 0 16px rgba(0,255,0,0.3); }
.cuna h2 { margin-bottom: 0.25rem; }
.cuna > p { margin: 0 0 1.25rem; }
.bigbtn { display: flex; align-items: center; gap: 0.9rem; height: 100%; padding: 0.9rem 1rem; background: var(--green); border: 2px solid var(--green); border-radius: 5px; color: #000; text-decoration: none; transition: all 0.2s ease; }
.bigbtn:hover { background: var(--cyan); border-color: var(--cyan); box-shadow: 0 0 18px var(--cyan); color: #000; transform: translateY(-2px); }
.bigbtn img { flex: none; width: 72px; height: 72px; background: #000; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.bigbtn b { display: block; font-weight: normal; font-size: 1.35rem; line-height: 1.2; }
.bigbtn small { display: block; font-size: 0.98rem; line-height: 1.3; margin-top: 0.2rem; }
.rule { padding: 0.8rem 1rem; border: 2px solid var(--cyan); border-radius: 5px; background: var(--panel); height: 100%; }
.rule b { display: block; color: var(--cyan); font-weight: normal; font-size: 1.2rem; line-height: 1.25; }
.rule p { margin: 0.3rem 0 0; }

/* Cartas iPhone / Android / Ordenador */
.devices { display: grid; gap: 0.9rem; }
.devices > details { margin: 0; }
.device summary { display: flex; align-items: center; gap: 0.8rem; list-style: none; }
.device summary::-webkit-details-marker { display: none; }
.device summary img { flex: none; width: 72px; height: 72px; }
.device summary > span { flex: 1; }
.device summary::after { content: '+'; color: var(--cyan); font-size: 2rem; line-height: 1; }
.device[open] summary::after { content: '\2212'; }

.verdict { padding: 0.75rem 1rem; margin: 0.7rem 0; background: var(--panel); border-left: 5px solid; border-radius: 0 5px 5px 0; }
.g3 > .verdict { margin: 0; }
.verdict b { display: block; font-weight: bold; font-size: 1.05rem; line-height: 1.3; }
.verdict p { margin: 0.3rem 0 0; }
.v-green { border-color: var(--green); }
.v-cyan { border-color: var(--cyan); }
.v-red { border-color: var(--red); }

.techie { border: 2px dashed var(--cyan); border-radius: 5px; padding: 0 clamp(0.75rem, 2vw, 2rem) clamp(0.75rem, 2vw, 2rem); margin-top: 4rem; }
.techie .stephead { margin-top: 1.5rem; }
.sources { margin-top: 2.5rem; font-size: 1rem; }
footer { font-size: 1rem; text-align: center; padding: 1.5rem 0 2.5rem; }
footer img { display: block; width: 100%; max-width: 300px; height: auto; margin: 0 auto; }
footer p { margin: 0 0 0.5rem; font-size: 1.2rem; }
@media (max-width: 760px) {
  .wrap { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
  .fig img, .fig-s img { max-width: 560px; }
  .fig { margin: 1rem auto 1.25rem; }
}
@media (max-width: 640px) {
  body { font-size: 1.02rem; line-height: 1.6; }
  header { padding-top: 0.5rem; }
  .quote { font-size: 1rem; margin-top: 0.25rem; }
  h2 { font-size: 1.55rem; }
  h3 { font-size: 1.15rem; margin-top: 1.5rem; }
  .plainhead { margin-top: 2.25rem; }
  .stephead { margin-top: 2.75rem; gap: 0.75rem; }
  .step { font-size: 0.9rem; }

  .topnav { gap: 0.3rem; padding: 0.45rem 0; }
  .topnav a { min-height: 50px; padding: 0.15rem; font-size: 0.68rem; line-height: 1.15; overflow-wrap: anywhere; box-shadow: 0 2px var(--pink); }
  .topnav a span { display: block; }
  .topnav a b { display: block; font-size: 1rem; line-height: 1.1; color: var(--pink); }

  .route { gap: 0.7rem; }
  .route a { padding: 0.65rem 0.75rem; gap: 0.7rem; }
  .route img { width: 56px; height: 56px; }
  .route b { font-size: 1.02rem; }
  .route small { font-size: 0.92rem; }

  .box { padding: 0.8rem 0.85rem; }
  .rule { padding: 0.7rem 0.85rem; }
  .rule b { font-size: 1.05rem; }
  .verdict { padding: 0.65rem 0.8rem; }

  table.stack thead { display: none; }
  table.stack, table.stack tbody, table.stack tr, table.stack td { display: block; width: 100%; }
  table.stack tr { border: 1px solid #333; border-radius: 6px; margin-bottom: 0.6rem; padding: 0.35rem; background: var(--panel); }
  table.stack td { border: 0; padding: 0.25rem 0.45rem; }
  table.stack td:first-child { font-weight: bold; }
  table.plain th, table.plain td { padding: 0.5rem 0.3rem; }
  table.plain { font-size: 0.95rem; }
  .big-code { font-size: 1.1rem; white-space: nowrap; }
  code:not(.big-code) { white-space: normal; overflow-wrap: anywhere; }
  table.ops thead { display: none; }
  table.ops, table.ops tbody { display: block; width: 100%; }
  table.ops tr { display: grid; grid-template-columns: 1fr auto; gap: 0.1rem 0.75rem; padding: 0.55rem 0.1rem; border-bottom: 1px solid #333; }
  table.ops td { border: 0; padding: 0; }
  table.ops td:first-child { font-weight: bold; }
  table.ops td:nth-child(2) { text-align: right; font-weight: bold; }
  table.ops td:nth-child(3) { grid-column: 1 / -1; }
  pre { font-size: 0.78rem; padding: 0.6rem; -webkit-overflow-scrolling: touch; }

  summary { padding: 0.75rem 0.85rem; font-size: 1.08rem; }
  summary small { font-size: 0.9rem; }
  .inner { padding: 0 0.85rem 0.85rem; }
  .device summary img { width: 54px; height: 54px; }
  .next { width: 100%; padding: 0.8rem 0.75rem; font-size: 1.02rem; }
  .bigbtn { padding: 0.75rem; gap: 0.7rem; }
  .bigbtn img { width: 58px; height: 58px; }
  .bigbtn b { font-size: 1.15rem; }
  .cuna { margin-top: 2.5rem; padding: 0.9rem; }
  .techie { margin-top: 2.75rem; padding: 0 0.7rem 0.7rem; }
  .g2, .g3 { gap: 0.8rem; }
  footer img { max-width: 180px; }
}

/* unhack.css: negro, blanco y verde, fuente básica */
:root { --bg:#000; --panel:#0b0b0b; --text:#fff; --green:#00ff00; --pink:#00ff00; --cyan:#00ff00; --red:#ff5252; --rule:#2e2e2e; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { margin:0; background:#000; color:var(--text); font-family:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif; font-size:1.08rem; line-height:1.65; overflow-wrap:break-word; }
a { color:var(--green); }
a:hover { color:#fff; }
strong { color:#fff; font-weight:700; }
.wrapper { width:100%; }
.sub-header { position:relative; z-index:40; border-bottom:1px solid var(--rule); }
.sub-header .inner { max-width:1100px; margin:0 auto; padding:1rem clamp(16px,3vw,40px) 1.25rem; text-align:center; }
.uh-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:0.5rem; }
.crumbs { font-size:0.95rem; }
.sub-header h1 { margin:0; color:#fff; font-size:clamp(2.6rem,9vw,4.75rem); font-weight:800; letter-spacing:0.04em; line-height:1.05; }
.sub-header h1::after { content:''; display:block; width:72px; height:4px; margin:0.6rem auto 0; background:var(--green); }
.sub-header .quote { max-width:820px; margin:1rem auto 0; color:#fff; font-size:1.02rem; line-height:1.5; text-shadow:none; }
.sub-header cite { display:block; margin-top:0.25rem; color:var(--green); font-style:normal; }
.content { max-width:1100px; margin:0 auto; padding:0 clamp(16px,3vw,40px) 2rem; }
.unhack .topnav { background:#000; }
.unhack .topnav a { border:1px solid var(--green); box-shadow:none; color:#fff; font-weight:600; }
.unhack .topnav a b { color:var(--green); font-weight:800; }
.unhack .topnav a:hover { background:var(--green); box-shadow:none; color:#000; }
.unhack .topnav a:hover b { color:#000; }
.unhack h2 { color:#fff; font-weight:800; text-shadow:none; }
.unhack h3 { color:#fff; font-weight:700; }
.unhack .plainhead, .unhack .stephead { border-bottom:1px solid var(--rule); box-shadow:none; }
.unhack .plainhead { position:relative; }
.unhack .plainhead::after, .unhack .stephead::after { content:none; }
.unhack .step { color:var(--green); font-weight:600; }
.unhack .num { background:var(--green); color:#000; font-weight:800; }
.unhack .tag { background:var(--green); color:#000; font-weight:800; }
.unhack .route a { border:1px solid var(--rule); box-shadow:none; background:var(--panel); }
.unhack .route a:hover { border-color:var(--green); box-shadow:none; transform:none; color:#fff; }
.unhack .box, .unhack .box.calm, .unhack .box.warn { border:1px solid var(--rule); box-shadow:none; background:var(--panel); }
.unhack .box.warn { border-left:4px solid var(--green); }
.unhack .rule { border:1px solid var(--rule); background:var(--panel); }
.unhack .rule b { color:#fff; font-weight:700; }
.unhack details { border:1px solid var(--rule); background:var(--panel); }
.unhack details[open] { border-color:var(--green); box-shadow:none; }
.unhack details.langmenu, .unhack details.langmenu[open] { border:0; background:none; }
.unhack summary { color:#fff; font-weight:700; }
.unhack summary:hover { color:var(--green); }
.unhack summary small { font-weight:400; }
.unhack th { color:var(--green); border-bottom:1px solid var(--green); font-weight:700; }
.unhack td { border-bottom:1px solid var(--rule); }
.unhack pre { background:#0b0b0b; border:1px solid var(--rule); color:var(--green); }
.unhack .next { box-shadow:none; font-weight:700; }
.unhack .next:hover { background:#fff; border-color:#fff; box-shadow:none; }
.unhack .cuna { border:1px solid var(--green); box-shadow:none; }
.unhack .bigbtn { box-shadow:none; font-weight:600; }
.unhack .bigbtn:hover { background:#fff; border-color:#fff; box-shadow:none; transform:none; }
.unhack .bigbtn img { background:#000; }
.unhack .techie { border:1px dashed var(--green); }
.unhack .verdict { background:var(--panel); box-shadow:none; }
.unhack .verdict.v-cyan { border-color:#fff; }
.unhack .credit { color:#cfcfcf; }
.unhack figcaption { color:#fff; }
.langmenu summary { display:inline-flex; align-items:center; gap:0.45rem; min-height:44px; padding:0.2rem 0.7rem 0.2rem 0.45rem; background:#000; border:1px solid var(--green); border-radius:6px; color:var(--green); font-weight:700; cursor:pointer; list-style:none; box-shadow:none; }
.sub-header .langs { position:relative; margin:0; }
.sub-header .langmenu ul { right:0; left:auto; transform:none; box-shadow:none; border-color:var(--green); background:#0b0b0b; }
.sub-header .langmenu a:hover { background:var(--green); color:#000; }
.sub-footer { border-top:1px solid var(--rule); padding:1.5rem 16px; text-align:center; color:#cfcfcf; font-size:0.9rem; }
/* Sistema de color: blanco para leer, verde solo de acento */
:root { --text:#eef3ef; --muted:#aeb9b1; --green:#00ff00; --pink:#00ff00; --cyan:#00ff00; --red:#ff6b6b; --rule:#242c27; --tint:#0f1f15; --edge:#2b4a35; --panel:#0b0f0c; }
body { color:var(--text); }
strong { color:var(--text); }
a { color:var(--green); text-underline-offset:2px; }
.unhack h3 { color:var(--green); font-weight:600; }
.unhack .plainhead { padding-bottom:0.55rem; }
.unhack .plainhead::after { content:''; position:absolute; left:0; bottom:-1px; width:64px; height:3px; background:var(--green); }
.unhack .stephead { position:relative; }
.unhack .stephead::after { content:''; position:absolute; left:0; bottom:-1px; width:64px; height:3px; background:var(--green); }
.unhack .step { color:var(--muted); font-weight:500; }
.unhack .stephead p { color:var(--muted); }
.unhack .num { background:var(--tint); color:var(--green); }
.unhack .tag { background:var(--tint); color:var(--green); border:1px solid var(--edge); }
.unhack .topnav a { border:1px solid var(--rule); background:var(--panel); color:var(--text); }
.unhack .topnav a:hover { background:var(--tint); border-color:var(--green); color:var(--text); }
.unhack .topnav a:hover b { color:var(--green); }
.unhack .route a { border-color:var(--rule); }
.unhack .route a:hover { background:var(--tint); border-color:var(--edge); }
.unhack .route small, .unhack summary small { color:var(--muted); }
.unhack .box.warn { border-left-color:var(--green); }
.unhack .rule b { color:var(--text); }
.unhack details[open] { border-color:var(--edge); }
.unhack summary::marker { color:var(--green); }
.unhack .device summary::after { color:var(--green); }
.unhack th { color:var(--muted); border-bottom:1px solid var(--edge); font-weight:600; }
.unhack code { background:var(--tint); padding:0.05em 0.35em; border-radius:3px; color:var(--green); }
.unhack .big-code { padding:0.1em 0.4em; }
.unhack pre { background:var(--panel); border-color:var(--rule); color:#c9f5d7; }
.unhack pre code { background:none; padding:0; }
.unhack .path { color:var(--text); }
.unhack .next { background:var(--green); border-color:var(--green); color:#04140a; }
.unhack .next:hover { background:var(--text); border-color:var(--text); color:#000; }
.unhack .cuna { border-color:var(--edge); background:var(--panel); }
.unhack .cuna > p { color:var(--muted); }
.unhack .bigbtn { background:var(--tint); border:1px solid var(--edge); color:var(--text); }
.unhack .bigbtn small { color:var(--muted); font-weight:400; }
.unhack .bigbtn:hover { background:#14301f; border-color:var(--green); color:var(--text); }
.unhack .bigbtn img { background:none; clip-path:none; }
.unhack .techie { border-color:var(--edge); }
.unhack .verdict { border-left-width:3px; }
.unhack .verdict.v-cyan { border-color:var(--muted); }
.unhack .credit { color:var(--muted); }
.unhack figcaption { color:var(--muted); font-size:0.95rem; }
.langmenu summary { border-color:var(--edge); background:var(--panel); }
.langmenu summary span { color:var(--text); }
.sub-header .langmenu ul { border-color:var(--edge); background:var(--panel); }
.sub-header .langmenu a { color:var(--text); }
.sub-header .langmenu a[aria-current] { color:var(--green); }
.sub-header .langmenu a:hover { background:var(--tint); color:var(--text); }
.sub-header cite { color:var(--muted); }
.sub-footer { color:var(--muted); }
/* Manual editado: tipografía y líneas, sin cajas ni adornos */
:root { --rule:#2a2a2a; --ink:#f2f2f0; --muted:#a6a6a2; --green:#00ff00; }
body { color:var(--ink); font-size:1.06rem; line-height:1.62; counter-reset:sec fig; }
a { color:var(--green); text-underline-offset:0.15em; text-decoration-thickness:1px; }
a:hover { color:var(--ink); }
.sub-header { border-bottom:1px solid var(--rule); }
.sub-header .inner, .content, .sub-footer .inner { max-width:880px; margin:0 auto; padding-left:clamp(18px,4vw,32px); padding-right:clamp(18px,4vw,32px); }
.sub-header .inner { text-align:left; padding-top:0.9rem; padding-bottom:1.6rem; }
.uh-top { margin-bottom:2rem; }
.crumbs { color:var(--muted); }
.sub-header h1 { color:var(--ink); font-size:clamp(2.5rem,7vw,3.9rem); font-weight:700; letter-spacing:0.01em; }
.sub-header h1::after { content:none; }
.lede { margin:0.6rem 0 0; max-width:40em; color:var(--ink); font-size:clamp(1.12rem,2.4vw,1.32rem); line-height:1.4; }
.sub-header .quote { max-width:44em; margin:1.3rem 0 0; padding-left:0.9rem; border-left:2px solid var(--green); color:var(--muted); font-size:0.98rem; }
.sub-header .quote p { margin:0; }
.sub-header cite { margin-top:0.2rem; color:var(--muted); font-size:0.9rem; }
.meta { margin:1.1rem 0 0; color:var(--muted); font-size:0.86rem; }
.sub-header .langmenu summary { min-height:42px; border-color:var(--rule); background:#000; border-radius:3px; font-weight:600; }
.sub-header .langmenu ul { border-color:var(--rule); background:#0a0a0a; border-radius:3px; }
.sub-header .langmenu a { border-radius:0; }
.sub-header .langmenu a:hover { background:#1a1a1a; }

.unhack .hero-fig { margin:1.5rem auto 0.5rem; }
.unhack .hero-fig img { max-width:620px; }
.unhack .topnav { grid-template-columns:repeat(4,auto); justify-content:start; gap:0 1.6rem; padding:0.6rem 0; border-bottom:1px solid var(--rule); }
.unhack .topnav a { display:block; min-height:0; padding:0.25rem 0; border:0; background:none; box-shadow:none; color:var(--ink); font-size:0.95rem; font-weight:500; text-align:left; }
.unhack .topnav a b { font-weight:600; }
.unhack .topnav a:hover { background:none; color:var(--green); }

.unhack h2 { color:var(--ink); font-size:clamp(1.4rem,3vw,1.75rem); font-weight:700; line-height:1.2; }
.unhack h3 { margin:2rem 0 0.4rem; color:var(--ink); font-size:1.12rem; font-weight:700; }
.unhack .plainhead { margin:3rem 0 0.8rem; padding:0.7rem 0 0; border:0; border-top:1px solid #6a6a6a; }
.unhack .plainhead::after, .unhack .stephead::after { content:none; }
.unhack section { counter-reset:sub; }
.unhack .stephead { counter-increment:sec; align-items:flex-start; gap:0.9rem; margin:3.5rem 0 1rem; padding:0.8rem 0 0; border:0; border-top:2px solid var(--ink); }
.unhack .num { display:block; width:auto; height:auto; clip-path:none; background:none; color:var(--green); font-size:clamp(1.9rem,4vw,2.5rem); font-weight:700; line-height:1.05; }
.unhack .step { color:var(--muted); font-size:0.88rem; font-weight:400; }
.unhack .stephead p { margin:0.25rem 0 0; color:var(--muted); }
.unhack .tag { display:inline; min-width:0; margin-right:0.55rem; padding:0; border:0; background:none; color:var(--green); font-size:0; counter-increment:sub; }
.unhack .tag::before { content:counter(sec) "." counter(sub); font-size:1rem; font-weight:700; font-variant-numeric:tabular-nums; }

.unhack .route { grid-template-columns:1fr; gap:0; margin:0; border-top:1px solid var(--rule); }
.unhack .route li { border-bottom:1px solid var(--rule); }
.unhack .route a { justify-content:space-between; padding:0.75rem 0; border:0; background:none; box-shadow:none; color:var(--ink); }
.unhack .route a:hover { background:none; }
.unhack .route a:hover b { color:var(--green); }
.unhack .route a::after { content:'→'; flex:none; color:var(--green); font-size:1.15rem; }
.unhack .route img, .unhack .device summary img, .unhack .bigbtn img { display:none; }
.unhack .route b { font-size:1.04rem; font-weight:600; text-wrap:pretty; }
.unhack .route small { color:var(--muted); font-size:0.93rem; }

.unhack .g3:has(.rule) { gap:0; grid-template-columns:1fr; border-top:1px solid var(--rule); }
.unhack .rule { height:auto; padding:0.65rem 0; border:0; border-bottom:1px solid var(--rule); background:none; }
.unhack .rule b { font-size:1.02rem; font-weight:600; }
.unhack .rule p { margin:0.15rem 0 0; color:var(--muted); }
.unhack .box, .unhack .box.calm, .unhack .box.warn { margin:1.2rem 0; padding:0 0 0 0.9rem; border:0; border-left:2px solid var(--green); background:none; box-shadow:none; }
.unhack .box.calm { border-left-color:#6a6a6a; }
.unhack .verdict { margin:0.9rem 0; padding:0 0 0 0.9rem; background:none; border-left-width:2px; }
.unhack .verdict.v-cyan { border-color:#6a6a6a; }
.unhack .verdict b { font-size:1rem; font-weight:600; }

.unhack details { margin:0; border:0; border-bottom:1px solid var(--rule); background:none; box-shadow:none; }
.unhack details[open] { border-color:var(--rule); box-shadow:none; }
.unhack details.langmenu, .unhack details.langmenu[open] { border:0; }
.unhack summary { padding:0.8rem 0; color:var(--ink); font-size:1.04rem; font-weight:600; }
.unhack summary:hover { color:var(--green); }
.unhack summary small { color:var(--muted); font-size:0.92rem; font-weight:400; }
.unhack .inner { padding:0 0 1.2rem; }
.unhack .devices { gap:0; border-top:1px solid var(--rule); }
.unhack .device summary { gap:0; }
.unhack .device summary::after { font-size:1.4rem; font-weight:400; }
.unhack section > details:first-of-type, .unhack .g2 > details:first-child { border-top:1px solid var(--rule); }
.unhack .g2 { gap:0; }

.unhack table { font-size:0.98rem; }
.unhack th { padding:0.35rem 0.5rem 0.35rem 0; border-bottom:1px solid #6a6a6a; color:var(--muted); font-size:0.85rem; font-weight:500; }
.unhack td { padding:0.55rem 0.5rem 0.55rem 0; border-bottom:1px solid var(--rule); }
.unhack code { padding:0; background:none; color:var(--green); font-weight:600; }
.unhack .big-code { padding:0; font-size:1.12rem; }
.unhack pre { padding:0.7rem 0.9rem; border:0; border-left:2px solid var(--green); background:#0c0c0c; color:#d8e8dc; font-size:0.86rem; }
.unhack .path { font-weight:600; }

.unhack figure { counter-increment:fig; margin:1.4rem 0 1.5rem; }
.unhack .hero-fig, .unhack #que-es > figure { counter-increment:none; }
.unhack .fig img, .unhack .fig-s img, .unhack .g3 figure img { margin:0; }
.unhack .fig img { max-width:720px; }
.unhack .fig-s img { max-width:440px; }
.unhack figcaption { margin-top:0.5rem; color:var(--muted); font-size:0.87rem; line-height:1.4; text-align:left; }
.unhack figcaption::before { content:"Fig. " counter(fig) ". "; color:var(--ink); font-weight:600; }

.unhack .g3:has(figure) { grid-template-columns:1fr; gap:0; }
.unhack .g3 figure img { max-width:520px; }
.unhack .next { display:block; width:auto; margin:1.6rem 0 0; padding:0; border:0; background:none; box-shadow:none; color:var(--green); font-size:1rem; font-weight:600; text-align:left; text-decoration:underline; text-underline-offset:0.2em; text-wrap:pretty; }
.unhack .next:hover { background:none; border:0; color:var(--ink); }
.unhack .cuna { margin-top:3rem; padding:0.7rem 0 0; border:0; border-top:1px solid #6a6a6a; background:none; }
.unhack .cuna h2 { margin:0; }
.unhack .cuna > p { margin:0.2rem 0 0.8rem; color:var(--muted); }
.unhack .cuna .g3 { grid-template-columns:1fr; gap:0; border-top:1px solid var(--rule); }
.unhack .bigbtn { justify-content:space-between; padding:0.75rem 0; border:0; border-bottom:1px solid var(--rule); background:none; color:var(--ink); }
.unhack .bigbtn::after { content:'↗'; flex:none; color:var(--green); }
.unhack .bigbtn:hover { background:none; border:0; border-bottom:1px solid var(--rule); }
.unhack .bigbtn:hover b { color:var(--green); }
.unhack .bigbtn b { font-size:1.04rem; font-weight:600; }
.unhack .bigbtn small { color:var(--muted); font-size:0.93rem; }
.unhack .techie { margin-top:0; padding:0; border:0; }
.unhack .techie .stephead { margin-top:3.5rem; }
.unhack .about { margin-top:3.5rem; padding-top:0.7rem; border-top:2px solid var(--ink); }
.unhack .about h2 { font-size:1.2rem; }
.unhack .about p { max-width:44em; color:var(--muted); }
.unhack .sources { margin-top:1rem; border-top:1px solid var(--rule); font-size:0.95rem; }
.sub-footer { border-top:1px solid var(--rule); padding:1.4rem 0; text-align:left; font-size:0.86rem; }
/* Detalles rosas del hacklab */
:root { --rosa:#ff22cc; }
.sub-header .quote { border-left-color:var(--rosa); }
.unhack .num { color:var(--rosa); }
.unhack figcaption::before { color:var(--rosa); }
.unhack summary::marker { color:var(--rosa); }
.unhack .device summary::after { color:var(--rosa); }
a:hover, .unhack .next:hover { color:var(--rosa); }
.unhack .topnav a:hover { color:var(--rosa); }
.unhack .topnav a:hover b { color:var(--rosa); }
.unhack summary:hover { color:var(--rosa); }
.unhack .route a:hover b, .unhack .bigbtn:hover b { color:var(--rosa); }
.unhack .route a:hover::after, .unhack .bigbtn:hover::after { color:var(--rosa); }
.sub-header .langmenu a:hover { color:var(--rosa); }
::selection { background:var(--rosa); color:#000; }
@media (max-width:640px) {
  body { font-size:1rem; }
  .uh-top { margin-bottom:1.4rem; }
  .unhack .topnav { grid-template-columns:repeat(4,1fr); gap:0 0.5rem; }
  .unhack .topnav a { font-size:0.74rem; overflow-wrap:anywhere; line-height:1.2; }
  .unhack .topnav a span { display:block; }
  .unhack .topnav a b { display:block; font-size:0.95rem; }
  .unhack .stephead { margin-top:2.75rem; }
  .unhack .fig img, .unhack .fig-s img { max-width:100%; }
  .unhack table.ops tr { padding:0.55rem 0; border-bottom:1px solid var(--rule); }
  .unhack table.stack tr { margin:0; padding:0.55rem 0; border:0; border-bottom:1px solid var(--rule); border-radius:0; background:none; }
  .unhack table.stack td { padding:0.1rem 0; border:0; }
  .unhack table.stack td:first-child { font-weight:600; }
  .unhack pre { font-size:0.78rem; }
}


/* Títulos en rosa del hacklab */
.sub-header h1, .unhack h2 { color:var(--rosa); }

/* Barra de pasos con burbujas */
html { scroll-padding-top:6rem; }
.unhack .topnav { position:sticky; top:0; z-index:20; display:grid; grid-template-columns:repeat(4,1fr); justify-content:stretch; gap:0; margin:0 0 0.5rem; padding:0.65rem 0 0.55rem; background:#000; border-bottom:1px solid var(--rule); }
.unhack .topnav a { position:relative; display:block; padding:0; color:var(--ink); font-size:0.9rem; font-weight:600; line-height:1.25; text-align:center; text-decoration:none; overflow-wrap:normal; }
.unhack .topnav a span { display:block; }
.unhack .topnav a b { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:2.1rem; height:2.1rem; margin:0 auto 0.3rem; border:2px solid var(--green); border-radius:50%; background:#000; color:var(--green); font-size:1rem; font-weight:700; line-height:1; transition:background .15s, color .15s, border-color .15s; }
.unhack .topnav a:not(:last-child)::after { content:''; position:absolute; top:1.05rem; left:calc(50% + 1.05rem); width:calc(100% - 2.1rem); height:2px; background:var(--rule); }
.unhack .topnav a:hover b { border-color:var(--rosa); background:#000; color:var(--rosa); }
.unhack .topnav a[aria-current] { color:var(--rosa); }
.unhack .topnav a[aria-current] b { border-color:var(--rosa); background:var(--rosa); color:#000; }

/* Índice: a qué paso te lleva */
.unhack .route a { justify-content:flex-start; gap:0.8rem; }
.unhack .route a > span:not(.bub) { flex:1; min-width:0; }
.bub { flex:none; display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; border:2px solid var(--green); border-radius:50%; color:var(--green); font-weight:700; line-height:1; }
.unhack .route a:hover .bub { border-color:var(--rosa); color:var(--rosa); }

/* Número de cada paso en burbuja */
.unhack .num { display:flex; align-items:center; justify-content:center; flex:none; width:2.9rem; height:2.9rem; border-radius:50%; background:var(--rosa); color:#000; font-size:1.45rem; line-height:1; }

/* Estás aquí, sin JavaScript */
.aqui { display:flex; align-items:center; gap:0; margin:0 0 0.8rem; }
.aqui a { position:relative; display:flex; align-items:center; justify-content:center; width:1.7rem; height:1.7rem; margin-right:1.1rem; border:1.5px solid var(--green); border-radius:50%; color:var(--green); font-size:0.82rem; font-weight:700; line-height:1; text-decoration:none; }
.aqui a:last-child { margin-right:0; }
.aqui a:not(:last-child)::after { content:''; position:absolute; left:100%; top:50%; width:1.1rem; height:2px; margin-left:1.5px; background:var(--rule); }
.aqui a[aria-current] { border-color:var(--rosa); background:var(--rosa); color:#000; }
.aqui a:hover { border-color:var(--rosa); color:var(--rosa); }
.aqui a[aria-current]:hover { color:#000; }
/* Burbujitas de apartados */
.chips { display:flex; flex-wrap:wrap; gap:0.45rem; margin:0.1rem 0 1.4rem; }
.chips a { display:inline-block; padding:0.38rem 0.75rem; border:1px solid #3a3a3a; border-radius:999px; color:var(--ink); font-size:0.9rem; line-height:1.25; text-decoration:none; }
.chips a b { color:var(--green); font-weight:700; }
.chips a:hover { border-color:var(--rosa); color:var(--rosa); }
.chips a:hover b { color:var(--rosa); }

/* Pasos a seguir en círculo */
.unhack ol { counter-reset:li; list-style:none; margin:0.9rem 0; padding:0; }
.unhack ol > li { position:relative; counter-increment:li; margin:0 0 0.8rem; padding-left:2.6rem; }
.unhack ol > li::before { content:counter(li); position:absolute; left:0; top:0.05rem; display:flex; align-items:center; justify-content:center; width:1.8rem; height:1.8rem; border:1.5px solid var(--green); border-radius:50%; color:var(--green); font-size:0.88rem; font-weight:700; line-height:1; }

/* Desplegables con burbuja */
.unhack .device summary::after { display:flex; align-items:center; justify-content:center; flex:none; width:1.9rem; height:1.9rem; border:1.5px solid var(--rosa); border-radius:50%; font-size:1.2rem; line-height:1; }

/* Volver arriba */
.subir { position:fixed; right:max(14px,env(safe-area-inset-right)); bottom:max(14px,env(safe-area-inset-bottom)); z-index:30; display:flex; align-items:center; justify-content:center; width:46px; height:46px; border:2px solid var(--rosa); border-radius:50%; background:#000; color:var(--rosa); font-size:1.2rem; font-weight:700; text-decoration:none; }
.subir:hover { background:var(--rosa); color:#000; }

@media (max-width:640px) {
  html { scroll-padding-top:5.5rem; }
  .unhack .topnav { grid-template-columns:repeat(4,1fr); gap:0; }
  .unhack .topnav a { font-size:0.7rem; padding:0 2px; overflow-wrap:normal; }
  .unhack table.stack td:first-child:has(strong) { font-weight:400; }
  .unhack .topnav a b { display:flex; width:1.85rem; height:1.85rem; margin-bottom:0.2rem; font-size:0.9rem; }
  .unhack .topnav a:not(:last-child)::after { top:0.92rem; left:calc(50% + 0.92rem); width:calc(100% - 1.85rem); }
  .unhack .num { width:2.5rem; height:2.5rem; font-size:1.25rem; }
  .chips a { font-size:0.84rem; padding:0.4rem 0.65rem; }
  .bub { width:1.8rem; height:1.8rem; font-size:0.9rem; }
  .unhack ol > li { padding-left:2.3rem; }
  .unhack ol > li::before { width:1.65rem; height:1.65rem; font-size:0.82rem; }
  .sub-footer { padding-bottom:4.5rem; }
}

/* ===== Ancho y dibujos ===== */
:root { color-scheme:dark; --pad:clamp(18px,4vw,48px); }
.sub-header .inner, .content, .sub-footer .inner { max-width:1280px; padding-left:max(var(--pad),env(safe-area-inset-left)); padding-right:max(var(--pad),env(safe-area-inset-right)); }
body { font-size:1.12rem; }
.unhack p, .unhack li, .unhack .verdict { max-width:62em; }
.unhack figure { margin:1.75rem auto 2rem; text-align:center; }
.unhack figure img, .unhack .fig img, .unhack .fig-s img, .unhack .g3 figure img { margin:0 auto; }
.unhack figcaption { text-align:center; font-size:0.92rem; }
.unhack .hero-fig img { max-width:1000px; }
.unhack .fig img { max-width:1040px; }
.unhack .fig-s img { max-width:720px; }
.unhack .g3 figure img { max-width:760px; }
.unhack #que-es figure img { max-width:100%; }

/* ===== Tablet ===== */
@media (min-width:761px) and (max-width:1100px) {
  body { font-size:1.08rem; }
  .unhack .hero-fig img, .unhack .fig img, .unhack .g3 figure img, .unhack .fig-s img { max-width:100%; }
  .unhack .topnav a { font-size:0.9rem; }
}

/* ===== Móvil: iPhone y Android ===== */
a, summary, button { -webkit-tap-highlight-color:rgba(255,34,204,0.3); touch-action:manipulation; }
.unhack summary { list-style:none; }
.unhack summary::-webkit-details-marker { display:none; }
.unhack details:not(.device):not(.langmenu) > summary { position:relative; padding-right:2.6rem; }
.unhack details:not(.device):not(.langmenu) > summary::after { content:'+'; position:absolute; right:0; top:0.7rem; display:flex; align-items:center; justify-content:center; width:1.9rem; height:1.9rem; border:1.5px solid var(--rosa); border-radius:50%; color:var(--rosa); font-size:1.2rem; font-weight:400; line-height:1; }
.unhack details:not(.device):not(.langmenu)[open] > summary::after { content:'\2212'; }
.unhack .device[open] > summary::after { content:'\2212'; }
.unhack pre { -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
.chips a { display:inline-flex; align-items:center; gap:0.4em; min-height:44px; }
.chips a b { flex:none; }
.unhack .route li, .unhack .rule, .unhack .rule p { max-width:none; }
.aqui a { width:2.15rem; height:2.15rem; font-size:0.9rem; margin-right:0.85rem; }
.aqui a:not(:last-child)::after { width:0.85rem; }
.subir { right:max(14px,env(safe-area-inset-right)); bottom:max(14px,calc(env(safe-area-inset-bottom) + 8px)); width:48px; height:48px; }
.sub-footer { padding-bottom:max(1.4rem,env(safe-area-inset-bottom)); }

@media (max-width:760px) {
  body { font-size:1.0625rem; line-height:1.6; }
  .unhack figure { margin:1.25rem auto 1.5rem; }
  .unhack figure img, .unhack .fig img, .unhack .fig-s img, .unhack .g3 figure img, .unhack .hero-fig img { max-width:100%; }
  .unhack figcaption { font-size:0.88rem; }
  .sub-header h1 { font-size:clamp(2.6rem,13vw,3.4rem); }
  .lede { font-size:1.16rem; }
  .sub-header .quote { font-size:0.97rem; }
  .unhack h2 { font-size:1.5rem; line-height:1.2; }
  .unhack h3 { font-size:1.14rem; }
  .unhack .route a { padding:0.9rem 0; min-height:60px; }
  .unhack .route b { font-size:1.05rem; line-height:1.28; }
  .unhack .route small { font-size:0.95rem; line-height:1.35; }
  .unhack summary { padding-top:0.95rem; padding-bottom:0.95rem; min-height:48px; }
  .unhack .next { display:flex; align-items:center; min-height:48px; }
  .unhack table.plain td, .unhack table.plain th { font-size:0.98rem; }
  .unhack pre { font-size:0.8rem; margin-left:0; margin-right:0; }
  .chips { gap:0.5rem; }
  .chips a { font-size:0.9rem; padding:0.45rem 0.8rem; }
  .sub-footer { padding-bottom:calc(5rem + env(safe-area-inset-bottom)); }
}

/* Móviles pequeños: iPhone SE y parecidos */
@media (max-width:350px) {
  body { font-size:1rem; }
  .unhack .topnav a { font-size:0.64rem; }
  .bub { width:1.7rem; height:1.7rem; }
}

/* Móvil en horizontal: la barra no se come la pantalla */
@media (max-height:500px) and (orientation:landscape) {
  html { scroll-padding-top:1rem; }
  .unhack .topnav { position:static; }
  .subir { width:44px; height:44px; }
}

/* En táctil no se queda pegado el efecto de pasar el ratón */
@media (hover:none) {
  .chips a:hover { border-color:#3a3a3a; color:var(--ink); }
  .chips a:hover b { color:var(--green); }
  .aqui a:not([aria-current]):hover { border-color:var(--green); color:var(--green); }
  .unhack .topnav a:hover { color:var(--ink); }
  .unhack .topnav a:hover b { border-color:var(--green); color:var(--green); }
  .unhack .route a:hover b, .unhack .bigbtn:hover b { color:var(--ink); }
  .unhack .route a:hover .bub { border-color:var(--green); color:var(--green); }
  .unhack .route a:hover::after, .unhack .bigbtn:hover::after { color:var(--green); }
  .unhack summary:hover { color:var(--ink); }
  .subir:hover { background:#000; color:var(--rosa); }
  .chips a:active, .unhack .route a:active b, .unhack summary:active, .unhack .topnav a:active { color:var(--rosa); }
  .subir:active { background:var(--rosa); color:#000; }
}

/* Escenas con personas */
.unhack .escena { margin:0.4rem auto 1.6rem; }
.unhack .escena img { max-width:720px; }
@media (max-width:760px) { .unhack .escena img { max-width:100%; } }

/* ========== Curvas, bocadillos y pegatinas ========== */
:root { --mor:#170a22; --mor2:#26113a; --bd:#3b1d58; }
.sub-header { border-bottom:0; background:var(--mor); border-radius:0 0 36px 36px; }
.uh-top { margin-bottom:0.75rem; }
.uh-hero { display:grid; grid-template-columns:1fr auto; gap:clamp(1.5rem,4vw,4rem); align-items:center; }
.emblema { display:block; width:clamp(190px,24vw,300px); height:auto; filter:drop-shadow(0 8px 0 #000); transition:transform .25s ease; }
.emblema:hover { transform:rotate(-8deg) scale(1.03); }
.sub-header h1 { font-size:clamp(3.2rem,9vw,6.4rem); font-weight:900; letter-spacing:0.01em; line-height:0.95; }
.sub-header .quote { position:relative; margin-top:1.4rem; padding:0.9rem 1.1rem; border:0; border-radius:20px 20px 20px 4px; background:#000; color:#d9d9d9; }
.meta { margin-top:1rem; }
.sub-header .langmenu summary { border-radius:999px; border-color:var(--bd); background:#000; }
.sub-header .langmenu ul { border-radius:18px; overflow:hidden; }
.sub-header .langmenu a { border-radius:12px; }

.content.unhack .topnav { top:8px; margin:1.1rem 0 0.8rem; padding:0.6rem 0.5rem 0.5rem; border:2px solid var(--bd); border-radius:999px; background:rgba(0,0,0,.92); }
.content.unhack .topnav a b { transition:transform .15s ease, background .15s, color .15s; }
.content.unhack .topnav a:hover b, .content.unhack .topnav a:active b { transform:scale(1.14); background:var(--rosa); border-color:var(--rosa); color:#000; }

.content.unhack .plainhead { margin:3rem 0 1.2rem; padding:0 0 0.9rem; border:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='10'%3E%3Cpath d='M0 5q10-8 20 0t20 0' fill='none' stroke='%2300ff00' stroke-width='3'/%3E%3C/svg%3E") left bottom/40px 10px repeat-x; background-size:40px 10px; }
.content.unhack .stephead { align-items:center; margin:3.5rem 0 1.2rem; padding:1.1rem 1.3rem; border:0; border-radius:28px; background:var(--mor); }
.content.unhack .num { box-shadow:0 0 0 5px var(--mor), 0 0 0 7px var(--rosa); }

/* ¿Qué te pasa?: bocadillos */
.content.unhack .route { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:1.5rem 1.1rem; margin:1rem 0 1.6rem; border:0; }
.content.unhack .route li { border:0; max-width:none; }
.content.unhack .route a { position:relative; height:100%; align-items:center; gap:0.85rem; padding:1rem 1.1rem; border:2px solid var(--bd); border-radius:24px; background:var(--mor); transition:transform .18s ease, background .18s ease, border-color .18s ease; }
.content.unhack .route a::before { content:''; position:absolute; left:34px; bottom:-11px; width:18px; height:18px; background:inherit; border-right:2px solid var(--bd); border-bottom:2px solid var(--bd); transform:skewX(-20deg) rotate(45deg); transition:border-color .18s ease; }
.content.unhack .route a::after { content:none; }
.content.unhack .route img { display:block; flex:none; width:58px; height:58px; transition:transform .25s ease; }
.content.unhack .route .bub { position:absolute; top:-11px; right:16px; width:1.9rem; height:1.9rem; background:#000; }
.content.unhack .route a:hover, .content.unhack .route a:active { background:var(--rosa); border-color:var(--rosa); transform:translateY(-4px) rotate(-.6deg); }
.content.unhack .route a:hover::before, .content.unhack .route a:active::before { border-color:var(--rosa); }
.content.unhack .route a:hover b, .content.unhack .route a:hover small, .content.unhack .route a:active b, .content.unhack .route a:active small { color:#000; }
.content.unhack .route a:hover img, .content.unhack .route a:active img { transform:rotate(-10deg) scale(1.08); }

/* Antes de tocar nada: pegatinas */
.content.unhack .g3:has(.rule) { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:0.9rem; border:0; }
.content.unhack .rule { padding:1rem 1.15rem; border:2px solid var(--bd); border-radius:24px; background:var(--mor); transition:transform .18s ease; }
.content.unhack .rule:hover { transform:translateY(-3px); }
.content.unhack .rule p { color:#dcdcdc; }

/* Desplegables */
.content.unhack details:not(.langmenu) { margin:0.75rem 0; padding:0 1.15rem; border:2px solid #2b2733; border-radius:22px; background:#0d0b11; transition:border-color .18s ease, transform .18s ease; }
.content.unhack details:not(.langmenu):hover { border-color:var(--rosa); }
.content.unhack details:not(.langmenu)[open] { border-color:var(--bd); }
.content.unhack .device summary img { display:block; flex:none; width:52px; height:52px; margin-right:0.8rem; transition:transform .25s ease; }
.content.unhack .device summary:hover img, .content.unhack .device summary:active img { transform:rotate(-10deg) scale(1.08); }
.content.unhack .devices { border:0; }
.content.unhack details:not(.device):not(.langmenu) > summary::after { top:0.75rem; }
.content.unhack .g2 { gap:0.1rem; }

/* Avisos, resultados y código */
.content.unhack .box, .content.unhack .box.calm, .content.unhack .box.warn { padding:0.9rem 1.1rem; border:0; border-radius:20px; background:var(--mor); }
.content.unhack .verdict { padding:0.8rem 1.05rem; border:0; border-left:6px solid; border-radius:18px; background:#111016; }
.content.unhack .verdict.v-green { border-left-color:var(--green); }
.content.unhack .verdict.v-cyan { border-left-color:#8a8a8a; }
.content.unhack .verdict.v-red { border-left-color:var(--red); }
.content.unhack pre { border:0; border-radius:16px; background:#100f14; }
.content.unhack table.plain, .content.unhack table.stack { border-collapse:separate; border-spacing:0; }
.content.unhack code:not(.big-code) { padding:0.06em 0.4em; border-radius:7px; background:#12241a; }
.content.unhack pre code { background:none; padding:0; }

/* Dibujos en paneles redondos */
.content.unhack figure:not(.hero-fig) img { box-sizing:border-box; padding:clamp(10px,2.4vw,26px); border-radius:28px; background:var(--mor); transition:transform .25s ease; }
.content.unhack figure:not(.hero-fig):hover img { transform:scale(1.012); }
.content.unhack figcaption { margin-top:0.65rem; }

/* Botones */
.content.unhack .next { display:inline-flex; width:auto; min-height:50px; margin:1.6rem 0 0; padding:0.7rem 1.5rem; border-radius:999px; background:var(--green); color:#000; font-weight:800; text-decoration:none; transition:transform .18s ease, background .18s ease; }
.content.unhack .next:hover, .content.unhack .next:active { background:var(--rosa); color:#000; transform:translateY(-3px); }
.content.unhack .cuna { margin-top:3rem; padding:1.4rem clamp(1rem,3vw,2rem) 1.6rem; border:0; border-radius:30px; background:var(--mor); }
.content.unhack .cuna .g3 { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:0.8rem; border:0; }
.content.unhack .bigbtn { height:100%; justify-content:flex-start; gap:0.8rem; padding:0.85rem 1rem; border:2px solid var(--bd); border-radius:22px; background:#000; transition:transform .18s ease, background .18s ease; }
.content.unhack .bigbtn::after { content:none; }
.content.unhack .bigbtn img { display:block; flex:none; width:54px; height:54px; }
.content.unhack .bigbtn:hover, .content.unhack .bigbtn:active { border-color:var(--rosa); background:var(--rosa); transform:translateY(-3px); }
.content.unhack .bigbtn:hover b, .content.unhack .bigbtn:hover small, .content.unhack .bigbtn:active b, .content.unhack .bigbtn:active small { color:#000; }
.content.unhack .techie { margin-top:3.5rem; padding:0 clamp(0.9rem,2.5vw,2rem) 1.5rem; border:2px dashed var(--rosa); border-radius:32px; }
.content.unhack .techie .stephead { margin-top:1.4rem; }
.content.unhack .about { margin-top:3rem; padding:1.3rem 1.4rem; border:0; border-radius:28px; background:var(--mor); }
.chips a { transition:background .15s ease, transform .15s ease, color .15s ease; }
.chips a:hover, .chips a:active { border-color:var(--rosa); background:var(--rosa); color:#000; transform:translateY(-2px); }
.chips a:hover b, .chips a:active b { color:#000; }
.aqui a { transition:transform .15s ease; }
.aqui a:hover, .aqui a:active { transform:scale(1.14); }
.subir { box-shadow:0 4px 0 var(--bd); transition:transform .15s ease; }
.subir:hover, .subir:active { transform:translateY(-3px); }
.sub-footer { margin-top:3rem; border:0; border-radius:36px 36px 0 0; background:var(--mor); }
@media (prefers-reduced-motion:reduce) { .content.unhack *, .emblema { transition:none !important; } .content.unhack *:hover { transform:none !important; } }
@media (hover:none) {
  .content.unhack .route a:hover:not(:active) { background:var(--mor); border-color:var(--bd); transform:none; }
  .content.unhack .route a:hover:not(:active)::before { border-color:var(--bd); }
  .content.unhack .route a:hover:not(:active) b { color:var(--ink); }
  .content.unhack .route a:hover:not(:active) small { color:var(--muted); }
  .content.unhack .route a:hover:not(:active) img { transform:none; }
  .content.unhack .bigbtn:hover:not(:active) { background:#000; border-color:var(--bd); transform:none; }
  .content.unhack .bigbtn:hover:not(:active) b { color:var(--ink); }
  .content.unhack .bigbtn:hover:not(:active) small { color:var(--muted); }
  .content.unhack details:not(.langmenu):hover { border-color:#2b2733; }
  .chips a:hover:not(:active) { background:none; transform:none; }
  .content.unhack .next:hover:not(:active) { background:var(--green); transform:none; }
  .content.unhack .topnav a:hover:not(:active) b { transform:none; background:#000; border-color:var(--green); color:var(--green); }
}
@media (max-width:760px) {
  .sub-header { border-radius:0 0 28px 28px; }
  .content.unhack .escena img { padding:4px; }
  .uh-hero { grid-template-columns:1fr; gap:1rem; }
  .emblema { order:-1; width:150px; margin:0 auto; }
  .uh-txt { text-align:left; }
  .sub-header h1 { font-size:clamp(3rem,16vw,4.4rem); }
  .content.unhack .topnav { padding:0.5rem 0.2rem 0.4rem; border-radius:26px; }
  .content.unhack .route img { width:50px; height:50px; }
  .content.unhack .stephead { padding:0.95rem 1rem; border-radius:24px; }
  .content.unhack details:not(.langmenu) { padding:0 0.9rem; }
  .content.unhack figure:not(.hero-fig) img { padding:8px; border-radius:22px; }
  .content.unhack .next { width:100%; justify-content:center; text-align:center; }
}

/* ===== Cabecera limpia ===== */
.uh-titulo { position:relative; margin-bottom:1.2rem; text-align:center; }
.uh-titulo h1 { white-space:nowrap; margin:0; padding:0 clamp(70px,14vw,170px); text-align:center; }
.uh-titulo .langs { position:absolute; top:50%; right:0; margin:0; transform:translateY(-50%); }
.sub-header .inner { padding-top:1.2rem; }
.sub-header .quote { margin-top:0; }
.uh-hero { align-items:center; }

/* ===== Respirar ===== */
.content.unhack .verdict ul, .content.unhack .box ul { margin:0.45rem 0 0.1rem; }
.content.unhack .verdict li, .content.unhack .box li { margin-bottom:0.3rem; }
.content.unhack td ul { margin:0.2rem 0 0; padding-left:1.1rem; list-style:disc; }
.content.unhack td li { margin-bottom:0.2rem; }
.content.unhack section#huelga h3 { margin-top:1.2rem; color:var(--rosa); }
.recurso { display:flex; align-items:center; gap:0.6rem; width:fit-content; max-width:100%; min-height:46px; margin:1.1rem 0 0; padding:0.55rem 1.05rem; border:2px solid var(--green); border-radius:999px; color:var(--ink); font-weight:600; line-height:1.25; text-decoration:none; transition:transform .15s ease, background .15s ease, color .15s ease; }
.recurso::before { content:'↗'; flex:none; color:var(--green); font-weight:800; }
.recurso:hover, .recurso:active { background:var(--green); color:#000; transform:translateY(-2px); }
.recurso:hover::before, .recurso:active::before { color:#000; }
@media (hover:none) { .recurso:hover:not(:active) { background:none; color:var(--ink); transform:none; } .recurso:hover:not(:active)::before { color:var(--green); } }
@media (max-width:760px) {
  .uh-titulo { margin-bottom:0.9rem; }
  .uh-titulo h1 { padding:0 58px; font-size:clamp(2rem,11.2vw,3.2rem); white-space:nowrap; letter-spacing:0; }
  .uh-titulo .langmenu summary { padding:0.2rem 0.45rem; gap:0.2rem; }
  .uh-titulo .langmenu summary span { display:none; }
  .recurso { font-size:0.96rem; }
}
@media (max-width:350px) {
  .uh-titulo h1 { padding:0 54px 0 40px; font-size:2rem; text-align:left; }
}

/* ===== Ancho completo con margen ===== */
@font-face { font-family:'Press Start 2P'; src:url('fonts/PressStart2P-latin.woff2') format('woff2'); font-display:swap; }
html { scroll-behavior:auto; }
.sub-header .inner, .content { max-width:none; padding-left:max(clamp(18px,5vw,120px),env(safe-area-inset-left)); padding-right:max(clamp(18px,5vw,120px),env(safe-area-inset-right)); }
.unhack p, .unhack li, .content.unhack .verdict p, .content.unhack .verdict li { max-width:74ch; }
.content.unhack .verdict, .content.unhack .box, .content.unhack .box.warn, .content.unhack .box.calm { max-width:none; }
.content.unhack .fig img { max-width:min(100%,1500px); }
.content.unhack .fig-s img { max-width:min(100%,960px); }
.content.unhack .escena img { max-width:min(100%,880px); }
.content.unhack #que-es > figure img { max-width:min(100%,1500px); }
@media (min-width:1100px) { .content.unhack .route { grid-template-columns:repeat(3,1fr); } }
@media (min-width:1300px) { .content.unhack .g3:has(figure) { grid-template-columns:repeat(3,1fr); gap:1.2rem; } .content.unhack .g3 figure img { max-width:100%; } }

/* ===== Título con la fuente del hacklab ===== */
.uh-titulo h1 { font-family:'Press Start 2P',ui-monospace,monospace; font-weight:400; font-size:clamp(2.6rem,6.6vw,6rem); letter-spacing:0; line-height:1.15; color:var(--rosa); text-shadow:4px 4px 0 #ff0000; }
.uh-titulo .langs { top:0; bottom:0; right:0; display:flex; align-items:center; transform:none; }
.langmenu[open] > summary::before { content:''; position:fixed; inset:0; z-index:-1; cursor:default; }
.langmenu ul { z-index:2; }

/* ===== Tocar sin equivocarse ===== */
.content.unhack .topnav { gap:4px; }
.aqui a { width:2.6rem; height:2.6rem; margin-right:0.5rem; font-size:0.95rem; }
.aqui a:not(:last-child)::after { width:0.5rem; }
@media (hover:hover) { a[href^="tel:"] { pointer-events:none; color:var(--ink); font-weight:700; text-decoration:none; } }
@media (hover:none) {
  .content.unhack .route a:active, .content.unhack .bigbtn:active, .chips a:active, .recurso:active, .content.unhack .next:active { transform:none; }
  .content.unhack .route a:active img { transform:none; }
}

/* ===== Laboratorio en verde neón ===== */
.content.unhack .techie { border:2px solid #00ff00; box-shadow:0 0 22px rgba(0,255,0,.28), inset 0 0 22px rgba(0,255,0,.06); }
.content.unhack .techie h2, .content.unhack .techie h3, .content.unhack .techie summary:hover { color:#00ff00; }
.content.unhack .techie .stephead { background:#06180c; }
.content.unhack .techie .num { background:#00ff00; box-shadow:0 0 0 5px #06180c, 0 0 0 7px #00ff00; }
.content.unhack .techie .aqui a[aria-current] { border-color:#00ff00; background:#00ff00; }
.content.unhack .techie figure img { background:#06180c; }
.content.unhack .techie figcaption::before { color:#00ff00; }
.content.unhack .techie .box, .content.unhack .techie .box.warn, .content.unhack .techie .box.calm { background:#06180c; }
.content.unhack .techie details:not(.langmenu) { border-color:#0d5a24; background:#040d07; }
.content.unhack .techie details:not(.langmenu):hover, .content.unhack .techie details:not(.langmenu)[open] { border-color:#00ff00; }
.content.unhack .techie summary::marker, .content.unhack .techie details > summary::after { color:#00ff00; border-color:#00ff00; }
.content.unhack .techie .chips a:hover, .content.unhack .techie .chips a:active { border-color:#00ff00; background:#00ff00; }
.ascii { margin:1rem 0; padding:1rem; overflow-x:auto; border:0; border-radius:16px; background:#020a04; color:#00ff00; font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,'DejaVu Sans Mono','Liberation Mono',monospace; font-size:clamp(0.82rem,1.05vw,1.05rem); font-weight:600; line-height:1.18; text-shadow:0 0 6px rgba(0,255,0,.5); white-space:pre; }
.content.unhack pre.ascii { color:#00ff00; background:#020a04; border-radius:16px; }
.ascii-t { display:none; }
@media (max-width:1000px) { .ascii-w { display:none; } .ascii-t { display:block; font-size:0.8rem; } }
.tools { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); gap:0.9rem; margin:1.2rem 0 0.4rem; }
.tool { display:flex; flex-direction:column; align-items:center; gap:0.6rem; padding:1rem; border:2px solid #0d5a24; border-radius:24px; background:#06180c; color:var(--ink); text-align:center; text-decoration:none; transition:border-color .15s ease, box-shadow .15s ease; }
.tool:hover, .tool:active { border-color:#00ff00; box-shadow:0 0 16px rgba(0,255,0,.4); color:#00ff00; }
.tile { display:flex; align-items:center; justify-content:center; width:112px; height:112px; padding:10px; border-radius:26px; background:#fff; box-sizing:border-box; }
.tile img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; }
.tile-t { background:#00ff00; color:#000; font-family:'Press Start 2P',monospace; font-size:1.7rem; }
@media (max-width:760px) {
  .uh-titulo h1 { padding:0 56px; font-size:clamp(1.5rem,8.6vw,2.6rem); text-shadow:2px 2px 0 #ff0000; }
  .tools { grid-template-columns:1fr 1fr; }
  .tile { width:84px; height:84px; border-radius:20px; }
  .tile-t { font-size:1.3rem; }
  .tool b { font-size:0.92rem; line-height:1.2; }
}
@media (max-width:350px) { .uh-titulo h1 { padding:0 50px; font-size:1.42rem; text-align:center; } }

/* ===== Ajustes tras las pruebas ===== */
.content.unhack .topnav { background:#000; }
.unhack p, .unhack li, .content.unhack .verdict p, .content.unhack .verdict li { max-width:86ch; }
.content.unhack pre.ascii { display:block; width:fit-content; max-width:100%; margin:1.2rem auto; padding:1.1rem 1.3rem; font-size:clamp(0.92rem,1.3vw,1.45rem); line-height:1.08; text-shadow:0 0 3px rgba(0,255,0,.55); box-sizing:border-box; }
.content.unhack pre.ascii-t { display:none; }
@media (max-width:1000px) { .content.unhack pre.ascii-w { display:none; } .content.unhack pre.ascii-t { display:block; font-size:clamp(0.72rem,3.1vw,1rem); padding:0.9rem; } }
.emblema { width:clamp(170px,19vw,270px); }
@media (max-width:760px) { .subir { width:44px; height:44px; right:max(8px,env(safe-area-inset-right)); bottom:max(8px,env(safe-area-inset-bottom)); opacity:.9; } }
.content.unhack pre.ascii-l { font-size:clamp(0.68rem,0.93vw,1.15rem); }
@media (max-width:1000px) { .content.unhack pre.ascii-l { font-size:clamp(0.72rem,3.1vw,1rem); } }
/* ===== Accesibilidad (añadir al final de unhack.css) ===== */
.vh { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* A1. Número real en el título, sin font-size:0 ni contador */
.unhack .tag { font-size:inherit; font-weight:700; font-variant-numeric:tabular-nums; }
.unhack .tag::before { content:none; }

/* A2. Foco visible en bloques de código y diagramas con scroll */
pre:focus-visible { outline:2px solid var(--green); outline-offset:2px; }

/* A3. Comandos: se parten en vez de obligar a desplazar en horizontal */
.unhack pre:not(.ascii) { white-space:pre-wrap; overflow-wrap:anywhere; }

/* A4. Tablas apiladas: cabecera disponible para lector y visible en cada celda */
@media (max-width:640px) {
  table.stack thead, table.ops thead { display:block; position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  table.stack td[data-th]:not(:first-child)::before, table.ops td[data-th]:nth-child(3)::before { content:attr(data-th) ": "; content:attr(data-th) ": " / ""; color:var(--muted); font-size:.85rem; font-weight:400; }
  table.stack td[data-th]:not(:first-child)::before { display:block; }
}

/* A5. Severidad con palabra, no solo con color */
.sev { display:inline-block; margin-right:.45em; padding:0 .45em; border:1px solid currentColor; border-radius:4px; font-size:.82em; font-weight:700; }
.v-green .sev { color:var(--green); }
.v-red .sev { color:var(--red); }
.v-cyan .sev { color:var(--ink); }

/* A6. Idioma actual: no solo color */
.sub-header .langmenu a[aria-current]::before { content:"✓ "; content:"✓ " / ""; }

/* A7. El + y el − de los desplegables no forman parte del nombre */
.unhack .device summary::after,
.unhack details:not(.device):not(.langmenu) > summary::after { content:'+'; content:'+' / ""; }
.unhack .device[open] > summary::after,
.unhack details:not(.device):not(.langmenu)[open] > summary::after { content:'\2212'; content:'\2212' / ""; }

/* A8. Flechas decorativas fuera del nombre y aviso visual de enlace externo */
.recurso::before { content:'↗'; content:'↗' / ""; }
.unhack a[target="_blank"]:not(.recurso,.tool,.bigbtn)::after { content:" ↗"; content:" ↗" / ""; }
.content.unhack .bigbtn::after { content:'↗'; content:'↗' / ""; flex:none; margin-left:auto; color:var(--green); }

/* A9. Movimiento reducido: lo que quedaba fuera */
@media (prefers-reduced-motion:reduce) {
  .emblema:hover, .subir:hover, .subir:active { transform:none !important; }
  .subir { transition:none; }
}

/* A10. Texto al 200 % en móvil: sin desbordar la página */
.unhack .topnav { grid-template-columns:repeat(5,minmax(0,1fr)) !important; }

.content.unhack .stephead > div, .devices > details, .device summary > span { min-width:0; }
.devices { grid-template-columns:minmax(0,1fr); }
.tools { grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr)); }
.unhack table.plain th, .unhack table.plain td { overflow-wrap:anywhere; }
.unhack table.plain code.big-code { white-space:normal; overflow-wrap:anywhere; }
@media (max-width:760px) { .tools { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ===== Revisión de usabilidad y accesibilidad ===== */
.unhack figcaption::before { content:none; }
.content.unhack figure:not(.hero-fig) img { width:auto; max-width:100%; max-height:78vh; margin:0 auto; }
.content.unhack figure { text-align:center; }
.content.unhack .tag { margin-right:0; color:var(--green); }
.content.unhack .route .bub { display:none; }
.vuelta { display:inline-flex; align-items:center; min-height:44px; margin:0.8rem 0 0; font-weight:700; text-decoration:none; color:var(--green); }
a[href^="tel:"] { display:inline-block; padding:12px 8px; margin:-12px -8px; font-weight:700; }
.content.unhack table.ops td:nth-child(2) { text-align:left; }
.sev { display:block; width:fit-content; margin:0 0 0.2rem; padding:0.05em 0.5em; border-radius:999px; font-size:0.78rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.v-red .sev { background:var(--red); color:#000; }
.v-cyan .sev { background:#fff; color:#000; }
.v-green .sev { background:var(--green); color:#000; }
.unhack pre:not(.ascii) { white-space:pre-wrap; overflow-wrap:anywhere; }
pre:focus-visible { outline:2px solid var(--green); outline-offset:2px; }
.content.unhack pre.ascii { max-width:100%; }
.content.unhack section:has(> .aqui) .aqui { margin-top:0.5rem; }
.content.unhack .topnav { grid-template-columns:repeat(5,1fr); top:0; border-radius:0 0 22px 22px; border-top:0; }
.content.unhack .topnav a:first-child b { color:var(--rosa); border-color:var(--rosa); }
.uh-hero { grid-template-columns:minmax(0,1fr) auto; }
@media (max-width:1200px) { .content.unhack pre.ascii-w { display:none; } .content.unhack pre.ascii-t { display:block; width:fit-content; font-size:clamp(0.72rem,2.6vw,1rem); } }
@media (max-width:640px) {
  .sub-header .inner { padding-top:0.7rem; padding-bottom:0.9rem; }
  .uh-titulo { margin-bottom:0.6rem; }
  .uh-hero { grid-template-columns:82px minmax(0,1fr); gap:0.7rem; align-items:start; }
  .emblema { order:0; width:82px; margin:0; }
  .sub-header .quote { padding:0.55rem 0.7rem; border-radius:12px; font-size:0.78rem; line-height:1.35; }
  .sub-header cite { font-size:0.74rem; }
  .content.unhack .rule p { display:none; }
  .content.unhack .rule { padding:0.45rem 0.8rem; border-radius:14px; }
  .content.unhack .rule b { font-size:0.95rem; }
  .content.unhack .g3:has(.rule) { gap:0.4rem; }
  .content.unhack .plainhead { margin-top:1.3rem; }
  .content.unhack .route { gap:0.9rem; }
  .content.unhack .route a { padding:0.6rem 0.7rem; }
  .content.unhack .route img { width:42px; height:42px; }
  .content.unhack .route b { font-size:0.98rem; line-height:1.22; }
  .content.unhack .route small { font-size:0.84rem; line-height:1.25; margin-top:0.1rem; }
  .content.unhack .topnav a { font-size:0.6rem; padding:0 1px; hyphens:none; }
  .content.unhack .topnav a b { width:1.7rem; height:1.7rem; font-size:0.85rem; }
  .content.unhack .topnav a:not(:last-child)::after { top:0.85rem; left:calc(50% + 0.85rem); width:calc(100% - 1.7rem); }
  .unhack table.stack td[data-th]:not(:first-child)::before { content:attr(data-th) ": "; display:block; color:var(--muted); font-size:0.8rem; font-weight:400; }
  .unhack table.stack td[data-th]:first-child { font-weight:600; }
  .content.unhack figure:not(.hero-fig) img { max-height:none; width:100%; }
}
@media (max-height:500px) and (orientation:landscape) {
  .uh-hero { grid-template-columns:70px minmax(0,1fr); }
  .emblema { width:70px; }
  .sub-header .quote { font-size:0.78rem; }
}

/* Tamaños coherentes de dibujos y barra de una sola fila */
nav.topnav.topnav.topnav { grid-template-columns:repeat(5,minmax(0,1fr)); }
.content.unhack figure:not(.hero-fig) img { width:100%; height:auto; max-width:760px; max-height:72vh; object-fit:contain; box-sizing:border-box; }
.content.unhack .fig img, .content.unhack #que-es > figure img { max-width:1100px; }
.content.unhack .g3 figure img { max-width:100%; }
.content.unhack details figure:not(.hero-fig) img { max-width:680px; }
.uh-titulo { margin-bottom:0.2rem; }
.uh-hero { align-items:center; }
.emblema { width:clamp(150px,15vw,210px); }
.subir { width:42px; height:42px; opacity:.88; }
@media (max-width:640px) {
  .uh-hero { grid-template-columns:minmax(0,1fr) 78px; }
  .emblema { order:0; width:78px; }
  .content.unhack figure:not(.hero-fig) img { max-width:100%; max-height:none; padding:6px; }
  nav.topnav.topnav.topnav a:not(:last-child)::after { display:none; }
}
.content.unhack .plainhead { background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='14'%3E%3Cpath d='M0 7q10-8 20 0t20 0' fill='none' stroke='%2300ff00' stroke-width='3'/%3E%3C/svg%3E") left bottom/40px 14px repeat-x; }
a[href^="tel:"] { padding:7px 4px; margin:-7px -4px; }
.unhack table.ops a[href^="tel:"], .unhack table.plain a[href^="tel:"] { padding:10px 4px; margin:-10px -4px; }
.unhack table.plain td br + a[href^="tel:"] { margin-top:6px; }

/* Ronda 2 */
.unhack table.ops td:first-child { overflow-wrap:normal; white-space:nowrap; }
.unhack table.plain code.big-code { white-space:nowrap; overflow-wrap:normal; }
.unhack table.plain:not(.ops) :is(th,td):first-child { white-space:nowrap; overflow-wrap:normal; width:1%; }
@media (max-height:500px) and (orientation:landscape) and (min-width:761px) { .uh-hero { grid-template-columns:minmax(0,1fr) 90px; } .emblema { width:90px; } }
@media (max-height:500px) and (orientation:landscape) { .content.unhack figure:not(.hero-fig) img { max-height:280px; } }
.content.unhack #alerta figure img, .content.unhack #movil figure img[src*="e-revisa"] { max-height:min(45vh,420px); }
.content.unhack #que-es details figure img { max-width:680px; }
.content.unhack .g3 figure img { max-height:260px; }
html[lang="eu"] .content.unhack pre.ascii-w.ascii-l, html[lang="fr"] .content.unhack pre.ascii-w.ascii-l { display:none; }
html[lang="eu"] .content.unhack pre.ascii-w.ascii-l + pre.ascii-t, html[lang="fr"] .content.unhack pre.ascii-w.ascii-l + pre.ascii-t { display:block; width:fit-content; font-size:clamp(0.72rem,1.15vw,1.2rem); }
@media (max-width:350px) { .content.unhack pre.ascii-t { font-size:0.62rem; padding:0.5rem; } }
@media (max-width:760px) { .unhack table.ops { padding-right:48px; box-sizing:border-box; } }
