/* ══════════════════════════════════════════════════════════════
   Guagua de pan · las pantallas
   Noche ciruela, pan dorado y el glaseado como único color. Un solo
   sistema de componentes:
   · b--pri  la acción principal: píldora roja, una por pantalla
   · b--sec  la segunda: contorno crema
   · b--ter  la menor: texto subrayado
   · redondo los iconos: círculos de vidrio
   · hoja    lo que sale de abajo: superficie oscura, nunca crema
   · lo elegido va en rosa
   ══════════════════════════════════════════════════════════════ */
:root{
  --noche:#1b1033;
  --noche-2:#2a1240;
  --noche-3:#4a1d5c;
  --superficie:#271541;
  --linea:rgba(255,255,255,.12);
  --vidrio:rgba(255,255,255,.1);
  --vidrio-borde:rgba(255,255,255,.16);
  /* el vidrio líquido de los controles sobre el pan: tinte de noche para que el blanco lea
     sobre cualquier fondo, un brillo arriba, una sombra abajo y el fondo saturado detrás */
  --liquido:linear-gradient(180deg, rgba(58,36,92,.62), rgba(30,16,52,.72));
  --liquido-borde:rgba(255,255,255,.24);
  --liquido-sombra:inset 0 1px 0 rgba(255,255,255,.32), inset 0 -1px 0 rgba(0,0,0,.28), 0 8px 24px rgba(10,4,24,.4);
  --liquido-filtro:blur(20px) saturate(1.8);
  --campo:rgba(255,255,255,.06);
  --campo-borde:rgba(255,255,255,.2);
  --crema:#fff6ea;
  --texto-2:#cbb8d6;
  --texto-3:#b3a2c2;       /* sobre el vidrio: 5:1 */
  --rojo:#d63a22;          /* blanco encima: 4.7:1 */
  --rojo-sombra:#8a1f0f;
  --rosa:#ff4f9a;
  --lima:#9be33a;
  --orilla:calc(16px + env(safe-area-inset-left));
  /* abajo: lo justo para no chocar con la barra de inicio del iPhone */
  --pie:max(12px, calc(env(safe-area-inset-bottom) - 8px));
  /* Safari deja ver la página debajo de su barra: los fondos llegan hasta abajo (lvh) y
     los controles suben lo que la barra tape (la diferencia con dvh), y nada más */
  --alto:100vh;
  --debajo:0px;
  --dur-1:var(--mal-dur-1, 120ms);
  --dur-2:var(--mal-dur-2, 220ms);
  --dur-3:var(--mal-dur-3, 360ms);
  --mantel:radial-gradient(ellipse 90% 55% at 50% 42%, var(--noche-3) 0%, var(--noche-2) 55%, var(--noche) 100%);
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
html,body.juego-cuerpo{height:100%;overflow:hidden;overscroll-behavior:none}
body.juego-cuerpo{margin:0;background:var(--noche);color:var(--crema);font-family:var(--mal-texto, Inter, system-ui, sans-serif);line-height:1.4;
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.juego-cuerpo input,.juego-cuerpo textarea{-webkit-user-select:text;user-select:text}
:where(.juego-cuerpo) :where(button,input,textarea){font:inherit;line-height:1.2}
.icono{width:22px;height:22px;flex:none}
.juego-cuerpo :focus-visible{outline:3px solid #fff;outline-offset:2px}

/* ─── los botones ─────────────────────────────────────────── */
.b{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 24px;border-radius:999px;cursor:pointer;
  font-family:var(--mal-texto);font-weight:800;font-size:18px;line-height:1;letter-spacing:-.005em;text-decoration:none;border:0;background:none;color:var(--crema);
  transition:transform var(--dur-1), box-shadow var(--dur-1), opacity var(--dur-2)}
.b--pri{background:var(--rojo);color:#fff;box-shadow:0 4px 0 var(--rojo-sombra)}
.b--pri:active{transform:translateY(3px);box-shadow:0 1px 0 var(--rojo-sombra)}
.b--sec{border:2px solid var(--crema)}
.b--sec:active{transform:scale(.98)}
.b--ter{height:44px;padding:0 6px;font-weight:600;font-size:15px;text-decoration:underline;text-underline-offset:3px;color:var(--crema)}
.b--chico{height:44px;padding:0 20px;font-size:16px}
.b--izq{align-self:flex-start}
.b:disabled,.b[aria-busy="true"]{opacity:.5;cursor:progress}
.b .icono{width:20px;height:20px}
.pila{display:flex;flex-direction:column;gap:10px}
.pila > .b{width:100%}
.fila-ter{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}

.redondo{position:relative;display:grid;place-items:center;width:48px;height:48px;flex:none;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid var(--vidrio-borde);background:var(--vidrio);color:var(--crema);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform var(--dur-1), background var(--dur-2)}
.redondo:active{transform:scale(.94)}
.redondo[aria-pressed="true"]{background:var(--rosa);border-color:transparent;color:var(--noche)}
.redondo--pri{background:var(--rojo);border-color:transparent;color:#fff;box-shadow:0 4px 0 var(--rojo-sombra)}
.redondo--plano{width:40px;height:40px;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none}
.redondo__punto{position:absolute;top:2px;right:2px;width:10px;height:10px;border-radius:50%;background:var(--lima);border:2px solid var(--noche)}
.invisible{visibility:hidden}

/* ─── el segmento: dos opciones, la elegida en rosa ─────────── */
.segmento{display:flex;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.08)}
.segmento button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 14px;border:0;border-radius:999px;cursor:pointer;
  background:transparent;color:var(--crema);font-weight:700;font-size:14px}
.segmento button[aria-pressed="true"]{background:var(--rosa);color:var(--noche);font-weight:800}
.segmento__n{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.16);font-size:12px;line-height:22px;text-align:center}
.segmento button[aria-pressed="true"] .segmento__n{background:var(--noche);color:var(--crema)}

/* ─── los campos ──────────────────────────────────────────── */
.campo{display:flex;flex-direction:column;gap:6px}
.campo label{font-size:13px;font-weight:700}
.campo input,.campo textarea{height:52px;padding:0 16px;border-radius:14px;border:1px solid var(--campo-borde);background:var(--campo);color:var(--crema);font-size:16px;font-family:inherit}
.campo textarea{height:auto;padding:12px 16px;resize:none;line-height:1.4}
.campo input:focus,.campo textarea:focus,.campo input:focus-visible,.campo textarea:focus-visible{outline:0;border-color:var(--rosa);box-shadow:0 0 0 3px rgba(255,79,154,.28)}
.campo input::placeholder,.campo textarea::placeholder{color:var(--texto-3)}
.campo--grande{height:60px!important;font-family:var(--mal-display);font-weight:800;font-size:24px!important}
.error{min-height:1.2em;margin:0;color:#ff8a7a;font-size:14px}
.separa{display:flex;align-items:center;gap:12px;margin:4px 0;color:var(--texto-2);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.separa::before,.separa::after{content:"";flex:1;border-top:1px solid var(--linea)}

/* ═══ tu canasta: el inicio ═══════════════════════════════════ */
.pantalla{position:fixed;inset:0;height:100dvh;display:flex;flex-direction:column;background:var(--mantel);overflow:hidden}
.canasta__cab{display:flex;align-items:flex-start;gap:12px;padding:calc(20px + env(safe-area-inset-top)) var(--orilla) 16px}
.canasta__cab > div{flex:1;display:flex;flex-direction:column;gap:6px;padding-top:4px}
.canasta__cab h1{margin:0;font-family:var(--mal-display);font-weight:800;font-size:30px;line-height:1.05;letter-spacing:-.02em}
.canasta__sub{margin:0;font-size:14px;line-height:1.4;color:var(--texto-2)}
.canasta > .segmento{margin:0 var(--orilla) 16px;align-self:flex-start}
.canasta > .segmento button{flex:none}
.canasta__cuerpo{flex:1;overflow-y:auto;padding:0 var(--orilla) 120px;display:flex;flex-direction:column;gap:12px}
.rejilla{display:grid;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:12px}
.pieza{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 10px 14px;border-radius:22px;cursor:pointer;
  border:1px solid var(--vidrio-borde);background:var(--vidrio);color:var(--crema);text-align:center;transition:transform var(--dur-1)}
.pieza:active{transform:scale(.97)}
.pieza__img{width:100%;max-width:150px;height:auto;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.pieza__nombre{font-family:var(--mal-display);font-weight:800;font-size:17px;line-height:1.15}
.pieza__meta{font-size:12px;color:var(--texto-2)}
.vacia{margin:0;padding:28px 20px;text-align:center;color:var(--texto-2);border:2px dashed var(--vidrio-borde);border-radius:22px}
.pendiente{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:18px;cursor:pointer;text-align:left;
  border:2px solid var(--rosa);background:var(--vidrio);color:var(--crema)}
.pendiente > span:first-child{flex:1;display:flex;flex-direction:column;gap:2px}
.pendiente__d{font-size:13px;color:var(--texto-2)}
.pendiente__ir{font-weight:800;color:var(--rosa)}
.canasta__pie{position:absolute;left:0;right:0;bottom:0;padding:24px var(--orilla) var(--pie);
  background:linear-gradient(180deg, rgba(27,16,51,0), var(--noche) 45%)}
.canasta__pie .b{width:100%;max-width:520px;margin:0 auto;display:flex}

/* ═══ el taller ═══════════════════════════════════════════════ */
.juego{position:fixed;inset:0;height:100dvh;overflow:hidden;isolation:isolate;background:var(--mantel);transition:background .6s}
.juego__lienzo{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:0;z-index:0}
.juego__lienzo:focus-visible{box-shadow:inset 0 0 0 3px #fff}
.juego__sin3d{position:absolute;z-index:3;inset:40% 24px auto;padding:20px;border-radius:18px;background:var(--superficie);text-align:center}
.juego[data-etapa="amasar"] .juego__lienzo{cursor:copy}
.juego[data-etapa="amasar"][data-herramienta="mover"] .juego__lienzo{cursor:move}
.juego[data-etapa="amasar"][data-herramienta="quitar"] .juego__lienzo{cursor:not-allowed}
.juego[data-etapa="decorar"] .juego__lienzo{cursor:crosshair}
.juego[data-etapa="horno"] .juego__lienzo,.lienzo--comer{cursor:grab}
/* el horno: la pantalla entera se vuelve brasa */
.juego.en-horno{background:
  radial-gradient(ellipse 60% 40% at 50% 70%, rgba(255,210,120,.5), transparent 70%),
  radial-gradient(ellipse 120% 90% at 50% 60%, #c9561a, #5a1a08 60%, #1a0703)}

/* arriba: cerrar · el paso · listo */
.barra{position:absolute;z-index:2;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:calc(12px + env(safe-area-inset-top)) var(--orilla) 10px}
.barra__hueco{width:48px;height:48px;flex:none}
.paso{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 14px 0 9px;border-radius:999px;cursor:pointer;min-width:0;
  border:1px solid var(--vidrio-borde);background:var(--vidrio);color:var(--crema);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.paso__img{width:30px;height:30px;flex:none}
.paso b{font-size:16px;line-height:1}
.paso span{font-size:15px;line-height:1;color:var(--texto-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.paso__i{width:18px;height:18px;color:var(--texto-2);margin-left:-2px}
.paso--fijo{cursor:default;padding:0 18px}

/* la instrucción: la primera vez, y se desvanece con el primer toque */
.intro{position:absolute;z-index:2;left:24px;right:24px;max-width:none;color:var(--crema);top:calc(76px + env(safe-area-inset-top));text-align:center;pointer-events:none;
  transition:opacity .6s ease, transform .6s ease}
.intro h2{margin:0 auto;max-width:none;font-family:var(--mal-display);font-weight:800;font-size:30px;line-height:1.05;letter-spacing:-.02em;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.intro p{margin:6px auto 0;max-width:30em;text-wrap:balance;font-size:15px;line-height:1.4;color:var(--texto-2)}
.intro.oculta{opacity:0;transform:translateY(-12px)}

/* abajo: solo herramientas */
.dock{position:absolute;z-index:2;left:50%;bottom:0;transform:translateX(-50%);width:min(100%, 560px);box-sizing:border-box;
  display:flex;flex-direction:column;gap:14px;padding:0 var(--orilla) var(--pie)}
/* una sombra de noche detrás de las herramientas y de la barra: se leen sobre el mantel */
.juego::after{content:"";position:absolute;left:0;right:0;bottom:0;height:220px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg, rgba(27,16,51,0), rgba(27,16,51,.88) 60%)}
.juego::before{content:"";position:absolute;left:0;right:0;top:0;height:170px;z-index:1;pointer-events:none;
  background:linear-gradient(0deg, rgba(27,16,51,0), rgba(27,16,51,.75) 55%)}
.juego.en-horno::after,.juego.en-horno::before{opacity:.5}
.acciones{display:flex;align-items:center;justify-content:space-between;gap:10px}
.deshacer{display:flex;height:44px;border-radius:999px;border:1px solid var(--vidrio-borde);background:var(--vidrio);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.deshacer button{width:50px;height:44px;display:grid;place-items:center;padding:0;border:0;background:none;color:var(--crema);cursor:pointer}
.deshacer button:disabled{color:#8f7fa3;cursor:default}
.deshacer .icono{width:20px;height:20px}

/* amasar: herramientas redondas con su nombre */
.herramientas{display:flex;justify-content:center;gap:8px}
.tool{width:64px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0;border:0;background:none;cursor:pointer;
  color:var(--texto-2);font-size:13px;font-weight:600;line-height:1}
.tool i{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--vidrio);color:var(--crema);transition:background var(--dur-2), transform var(--dur-1)}
.tool:active i{transform:scale(.94)}
.tool .icono{width:26px;height:26px}
.tool[aria-pressed="true"]{color:var(--crema);font-weight:800}
.tool[aria-pressed="true"] i{background:var(--rosa);color:var(--noche)}
.dock__fila{display:flex;justify-content:center;gap:10px}
.juego:not([data-herramienta="chorizo"]) .dock__fila[data-con="chorizo"]{display:none}

/* los grosores: un círculo del grosor que va a salir */
.tam{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid var(--vidrio-borde);background:var(--vidrio);color:var(--crema)}
.tam i{width:var(--t);height:var(--t);border-radius:50%;background:currentColor}
.tam[aria-pressed="true"]{border:2px solid var(--rosa);color:var(--rosa)}

/* hornear */
/* La franja sigue a punto(): cruda < 0.75 · blanquita < 0.92 · en su punto ≤ 1.08 · tostadita ≤ 1.25,
   sobre KMAX = 1.6. El marco blanco es el punto dorado: de 57.5 % a 67.5 %. */
.termo{position:relative;height:18px;border-radius:999px;
  background:linear-gradient(90deg,#f6ead6 0 47%,#efd29c 47% 57.5%,#d98f3a 57.5% 67.5%,#9a4a16 67.5% 78%,#3a1405 78% 100%)}
.termo__punto{position:absolute;left:57.5%;top:-5px;bottom:-5px;width:10%;border-radius:6px;border:3px solid #fff;box-shadow:0 0 0 2px rgba(0,0,0,.35)}
.termo__nivel{position:absolute;top:-9px;left:0;width:0;height:36px;border-right:4px solid #ffe03a;filter:drop-shadow(0 0 6px #ffe03a)}
.termo__escala{position:relative;height:14px;margin:-6px 0 0;font-size:11px;line-height:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--texto-2)}
.termo__escala span{position:absolute;top:0;white-space:nowrap}
.termo__escala span:first-child{left:0}
.termo__escala span:nth-child(2){left:62.5%;transform:translateX(-50%)}
.termo__escala span:last-child{right:0}
.termo__escala span:nth-child(2){color:#fff;font-weight:700}
.dock--horno .b,.horno__fin .b--pri{width:100%}
.horno__fin{display:flex;flex-direction:column;align-items:center;gap:6px}

/* decorar: la bandeja de mangas, como el Marcado */
.bandeja{position:relative;display:flex;align-items:flex-end;gap:12px;height:100px;padding:0 16px 0 22px;border-radius:30px;overflow:hidden;
  border:1px solid var(--vidrio-borde);background:var(--vidrio);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.manga{flex:none;width:44px;height:96px;padding:0;border:0;background:none;cursor:pointer;margin-bottom:-24px;transition:margin var(--dur-2) var(--mal-ease, ease)}
.manga svg{width:44px;height:96px;display:block}
.manga[aria-pressed="true"]{margin-bottom:0}
/* la brocha sube menos: su cabeza de color, que es lo que se ve, no se corta arriba */
.manga[data-herramienta="cobertura"][aria-pressed="true"]{margin-bottom:-16px}
.manga[data-herramienta="cobertura"]{margin-bottom:-34px}
.manga__bolsa{fill:var(--manga, #ff4f9a)}
.manga[data-herramienta="cobertura"] .manga__bolsa{fill:var(--manga, #3b1d0e)}   /* la brocha, mojada del color elegido */
.bandeja__fin{margin-left:auto;align-self:center;display:flex;gap:10px}
.bandeja .redondo{width:44px;height:44px;background:rgba(255,255,255,.16)}
.bandeja .redondo[aria-pressed="true"]{background:var(--rosa)}
.aro{width:44px;height:44px;padding:0;border:0;border-radius:50%;cursor:pointer;display:grid;place-items:center;
  background:conic-gradient(#e8442e,#ffe03a,#9be33a,#3fd6d0,#6fd3f7,#8a4fd6,#ff4f9a,#e8442e)}
.aro i{width:30px;height:30px;border-radius:50%;border:3px solid var(--noche-2)}

/* ═══ las hojas ═══════════════════════════════════════════════ */
dialog.hoja{box-sizing:border-box;width:100%;max-width:560px;max-height:calc(100dvh - 40px);margin:auto auto 0;padding:20px var(--orilla) calc(var(--pie) + 4px);
  border:1px solid var(--linea);border-bottom:0;border-radius:28px 28px 0 0;background:var(--superficie);color:var(--crema);
  overflow-y:auto;display:none;flex-direction:column;gap:16px}
dialog.hoja[open]{display:flex;animation:hoja-sube var(--dur-3) cubic-bezier(.2,.8,.2,1)}
dialog.hoja::backdrop{background:rgba(10,5,20,.55)}
@keyframes hoja-sube{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.hoja h2,.hoja__titulo{margin:0;font-family:var(--mal-display);font-weight:800;font-size:26px;line-height:1.1;letter-spacing:-.01em;padding:0}
.hoja__cab{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px}
.hoja__cab h2{font-family:inherit;font-size:18px;font-weight:700}
.hoja__texto{margin:0;font-size:15px;line-height:1.45;color:var(--texto-2)}
.hoja__texto b{color:var(--crema)}
.hoja__cita{font-style:italic}
.hoja__kicker{margin:-8px 0 0;font-size:13px;font-weight:700;color:var(--rosa)}
.hoja__foto{display:block;align-self:center;width:132px;height:auto;aspect-ratio:4/5;border-radius:28px;background:var(--noche-2)}
.hoja > .b{width:100%}
.hoja--chica{gap:14px}
/* las que flotan sobre la bandeja: color y el + */
dialog.hoja--flota{margin:auto auto calc(128px + var(--pie));width:calc(100% - 32px);max-width:420px;border-radius:26px;border:1px solid var(--linea);
  padding:18px 16px 20px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
dialog.hoja--flota::backdrop{background:rgba(10,5,20,.3)}
.hoja--flota h2{font-family:inherit;font-size:17px;font-weight:700;text-align:center}
.hoja--menu{padding:10px 0;gap:0;max-width:300px;margin-right:16px}
.menu__op{display:flex;align-items:center;gap:16px;width:100%;min-height:56px;padding:6px 18px;border:0;background:none;color:var(--crema);text-align:left;cursor:pointer;font-size:16px}
.menu__op .icono{width:26px;height:26px}
.menu__op + .menu__op{border-top:1px solid var(--linea)}
/* las que ocupan toda la pantalla: regalar y la cuenta */
dialog.hoja--entera{max-width:none;max-height:none;height:100dvh;margin:0;border-radius:0;border:0;padding:0;background:var(--mantel);gap:0}
dialog.hoja--entera[open]{animation:none}
.barra--hoja{position:relative;flex:none}
.hoja__cuerpo{flex:1;display:flex;flex-direction:column;gap:16px;padding:8px var(--orilla) calc(var(--pie) + 4px);max-width:560px;width:100%;box-sizing:border-box;margin:0 auto}

/* colores del glaseado: el elegido lleva el anillo rosa */
.colores{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:14px 6px}
.color{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;color:var(--crema);font-size:12px;cursor:pointer;padding:0}
.color i{width:44px;height:44px;border-radius:50%;background:var(--gota);box-shadow:inset 0 -4px 0 rgba(0,0,0,.18)}
.color[aria-pressed="true"]{font-weight:800}
.color[aria-pressed="true"] i{box-shadow:inset 0 -4px 0 rgba(0,0,0,.18), 0 0 0 3px var(--superficie), 0 0 0 5px var(--rosa)}
.grosor{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--linea)}
.grosor span{flex:1;font-size:15px;font-weight:600}

/* los moldes */
.moldes{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:8px}
.opcion{height:52px;border-radius:16px;border:1px solid var(--linea);background:var(--campo);color:var(--crema);font-weight:700;font-size:15px;cursor:pointer}
.opcion:active{border-color:var(--rosa)}

/* guardada: la guagua con su ✓ verde */
.guardada__img{position:relative;align-self:center}
.guardada__img i{position:absolute;right:-8px;bottom:-8px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:var(--lima);color:var(--noche);border:3px solid var(--superficie)}
.guardada__img .icono{width:18px;height:18px}
#d-guardada{text-align:center}

.radios{display:flex;flex-direction:column;gap:8px}
.radio{display:flex;align-items:center;gap:14px;min-height:62px;padding:0 16px;border-radius:16px;cursor:pointer;text-align:left;
  border:1px solid var(--linea);background:var(--campo);color:var(--crema)}
.radio > span{flex:1;display:flex;flex-direction:column;gap:2px}
.radio b{font-size:16px;line-height:1.2}
.radio > span span{font-size:13px;line-height:1.3;color:var(--texto-2)}
.radio i{width:22px;height:22px;flex:none;border-radius:50%;border:2px solid rgba(255,255,255,.35);display:grid;place-items:center}
.radio[aria-checked="true"]{border:2px solid var(--rosa)}
.radio[aria-checked="true"] i{border-color:var(--rosa)}
.radio[aria-checked="true"] i::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--rosa)}
.regalar__entrar{margin:0;font-size:13px;color:var(--texto-2);text-align:center}
.regalar__entrar .b{height:auto;font-size:13px}

/* una pieza de la canasta */
.lienzo--vista{display:block;width:100%;max-width:260px;aspect-ratio:4/5;margin:0 auto;border-radius:22px;cursor:grab;touch-action:none;background:var(--noche-2)}

/* cómo se hace */
.pasos-ayuda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.pasos-ayuda li{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:18px;border:1px solid var(--linea);background:var(--campo)}
.pasos-ayuda li > i{width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;background:var(--vidrio)}
.pasos-ayuda li.hecha > i{background:var(--lima);color:var(--noche)}
.pasos-ayuda li.actual{border:2px solid var(--rosa)}
.pasos-ayuda li.actual > i{background:var(--rosa);color:var(--noche)}
.pasos-ayuda div{display:flex;flex-direction:column;gap:3px}
.pasos-ayuda b{font-size:16px}
.pasos-ayuda span{font-size:14px;line-height:1.4;color:var(--texto-2)}
.pasos-ayuda em{font-style:normal;font-size:13px;font-weight:700;margin-top:2px}

/* la cuenta */
.cuenta__app{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px}
.regalar__nota a{color:var(--crema)}
.sobre{font-size:13px;line-height:1.5;color:var(--texto-2)}
.sobre summary{cursor:pointer;font-weight:700;color:var(--crema)}
.sobre a{color:var(--crema)}

/* ═══ cuando te llega una ═════════════════════════════════════ */
.regalo{z-index:5}
.regalo__arriba{position:absolute;z-index:2;left:var(--orilla);right:var(--orilla);top:calc(24px + env(safe-area-inset-top));text-align:center}
.regalo__kicker{margin:0;font-size:13px;font-weight:700;color:var(--rosa)}
.regalo__arriba h1{margin:4px 0 0;font-family:var(--mal-display);font-weight:800;font-size:28px;line-height:1.05;letter-spacing:-.02em}
.regalo__para{margin:6px 0 0;color:var(--texto-2)}
.regalo__tarjeta{position:absolute;z-index:2;left:50%;bottom:0;transform:translateX(-50%);width:min(100%, 560px);box-sizing:border-box;
  display:flex;flex-direction:column;gap:12px;padding:20px var(--orilla) var(--pie);
  border-radius:28px 28px 0 0;background:var(--superficie);border:1px solid var(--linea);border-bottom:0}
.regalo__nombre{margin:0;font-family:var(--mal-display);font-weight:800;font-size:24px;text-align:center}
.regalo__msg{margin:0;padding:12px 16px;border-radius:16px;background:var(--campo);border:1px solid var(--linea);font-style:italic;color:var(--texto-2);text-align:center}
.regalo__pista{margin:0;font-size:13px;color:var(--texto-2);text-align:center}
.vale{display:flex;align-items:center;gap:12px;padding:12px;border-radius:18px;border:1px solid var(--linea);background:var(--campo)}
.vale__sello{width:52px;height:52px;flex:none;border-radius:12px;border:2px dashed var(--rojo);display:grid;place-items:center;font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--rojo)}
.vale p{margin:0;display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--texto-2)}
.vale b{font-size:16px;color:var(--crema)}
.latido{animation:guagua-latido 1.1s ease infinite}
@keyframes guagua-latido{0%,100%{transform:none}50%{transform:scale(1.03)}}

@media (prefers-reduced-motion:reduce){
  .latido,dialog.hoja[open]{animation:none}
  .intro,.manga,.b,.redondo,.tool i{transition:none}
}
/* pantallas bajas: menos aire en la instrucción */
@media (max-height:640px){
  .intro h2{font-size:24px}
  .intro p{font-size:13px}
  .tool i{width:50px;height:50px}
}
/* en la compu: la canasta no se estira de borde a borde */
@media (min-width:760px){
  .canasta__cab,.canasta__cuerpo{width:100%;max-width:960px;margin-inline:auto;box-sizing:border-box}
  .canasta > .segmento{margin-left:max(var(--orilla), calc((100% - 960px) / 2 + var(--orilla)))}
}
.regalar__nota{margin:0;font-size:13px;line-height:1.4;color:var(--texto-2);text-align:center}
.campo__opc{font-weight:400;color:var(--texto-2)}

/* lo que se está poniendo: una barra flotante, como la del Marcado al elegir un sticker */
.contexto{position:absolute;z-index:3;left:50%;top:calc(74px + env(safe-area-inset-top));transform:translateX(-50%);
  display:flex;align-items:center;gap:6px;max-width:calc(100% - 32px);box-sizing:border-box;min-height:52px;padding:4px 6px 4px 18px;border-radius:999px;
  background:var(--superficie);border:1px solid var(--linea);box-shadow:0 12px 32px rgba(0,0,0,.4);animation:contexto-entra var(--dur-2) ease}
.contexto--puesta{padding-left:8px}
@keyframes contexto-entra{from{opacity:0;transform:translate(-50%, -6px)}to{opacity:1;transform:translateX(-50%)}}
.contexto__msg{margin:0 6px 0 0;font-size:15px;font-weight:600;line-height:1.2;white-space:nowrap}
.contexto__tam{display:flex;align-items:center;gap:4px}
.contexto__tam .tam{width:40px;height:40px;border:0;background:none}
.contexto__tam .tam[aria-pressed="true"]{background:rgba(255,79,154,.18);color:var(--rosa)}
.contexto__sep{width:1px;height:28px;margin:0 4px;background:var(--linea)}
.contexto__b{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:none;color:var(--crema);cursor:pointer}
.contexto__b--quitar{color:#ff8a7a}
.contexto__listo{height:40px;padding:0 16px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:var(--crema);font-weight:800;font-size:15px;line-height:1;cursor:pointer}
.contexto--puesta .contexto__listo{background:var(--rosa);color:var(--noche)}

/* las figuras de mazapán: una rejilla como la de stickers */
.figuras{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:12px 6px}
.figura{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0;border:0;border-radius:18px;background:none;color:var(--crema);font-size:13px;font-weight:600;line-height:1.2;cursor:pointer}
.figura svg{width:60px;height:60px;padding:6px;border-radius:18px;background:var(--campo)}
.figura:active svg{background:rgba(255,79,154,.18)}

/* compartir: la tarjeta arriba; abajo, la elección y lo que pide cada camino */
.compartir{flex:1;display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;padding:4px var(--orilla) calc(var(--pie) + 4px);
  max-width:560px;width:100%;box-sizing:border-box;margin:0 auto}
.compartir__vista{display:block;align-self:center;flex:none;height:clamp(180px, 38dvh, 360px);width:auto;aspect-ratio:9/16;border-radius:18px;
  background:var(--noche-2);box-shadow:0 12px 32px rgba(0,0,0,.45);transition:height var(--dur-3) ease}
.compartir__vista--chica{height:clamp(120px, 22dvh, 200px);border-radius:12px}
/* en cuadrado la vista previa es cuadrada y un poco más chica, para que quepa igual */
.compartir__vista--cuadrada{aspect-ratio:1/1;height:clamp(170px, 30dvh, 300px)}
.compartir__vista--cuadrada.compartir__vista--chica{height:clamp(120px, 20dvh, 190px)}
/* la vista previa con su botoncito para cambiar el formato, al lado y discreto */
.compartir__vistaw{position:relative;align-self:center;display:flex;align-items:flex-end;gap:8px;flex:none;margin-right:-44px}
.compartir__formato{width:36px;height:36px;padding:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--linea);background:rgba(255,255,255,.08);color:var(--texto-2)}
.compartir__formato .icono{width:18px;height:18px}
.compartir__opciones{display:flex;flex-direction:column;gap:8px}
/* canasta y colada: encendidas se ven claras; apagadas, tachadas y tenues */
.compartir__formato[aria-pressed="true"]{color:var(--crema);border-color:rgba(255,255,255,.3)}
.compartir__formato[aria-pressed="false"]{opacity:.55;background:transparent}
.compartir__formato[aria-pressed="false"] .icono{transform:none}
.compartir__formato[aria-pressed="false"]::after{content:"";position:absolute;width:22px;height:2px;background:currentColor;transform:rotate(-45deg);border-radius:1px}
.compartir__formato{position:relative}
.con-teclado .compartir__vistaw{display:none}
.compartir__paso{flex:1 0 auto;display:flex;flex-direction:column;gap:14px}
/* las acciones van fijas abajo; lo de arriba (la tarjeta, los campos) se desplaza detrás de ellas */
.compartir__fin{margin-top:auto;position:sticky;bottom:0;z-index:2;
  margin-inline:calc(-1 * var(--orilla));padding:14px var(--orilla) calc(var(--pie) + 6px + var(--debajo));
  background:linear-gradient(180deg, rgba(27,16,51,0), rgba(27,16,51,.94) 22px, #1b1033 60%)}

/* ─── vidrio líquido en los controles del taller ─── */
.juego .redondo:not(.redondo--pri),.juego .paso,.deshacer,.bandeja,.tool i,.contexto{
  background:var(--liquido);border:1px solid var(--liquido-borde);box-shadow:var(--liquido-sombra);
  -webkit-backdrop-filter:var(--liquido-filtro);backdrop-filter:var(--liquido-filtro)}
.bandeja .redondo{background:rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.tool{color:var(--crema);text-shadow:0 1px 3px rgba(10,4,24,.85)}
.tool[aria-pressed="true"] i{background:var(--rosa);border-color:rgba(255,255,255,.5);color:var(--noche);box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 6px 18px rgba(255,79,154,.35)}
.paso span,.paso__i{color:#d9cbe4}
.deshacer button:disabled{color:#9a8aae}
.contexto__gota{display:block;width:24px;height:24px;border-radius:50%;box-shadow:0 0 0 2px var(--superficie), 0 0 0 4px rgba(255,255,255,.5)}

/* ─── los bordes de arriba y abajo: se funden con el mantel en vez de cortarlo ─── */
.juego::before{height:190px;background:linear-gradient(180deg, rgba(27,16,51,.72) 0%, rgba(27,16,51,.5) 35%, rgba(27,16,51,.2) 70%, rgba(27,16,51,0) 100%)}
.juego::after{height:min(42dvh, 360px);background:linear-gradient(180deg, rgba(27,16,51,0) 0%, rgba(27,16,51,.12) 25%, rgba(27,16,51,.38) 50%, rgba(27,16,51,.66) 75%, rgba(27,16,51,.86) 100%)}

/* ─── hasta el borde de abajo: los fondos pasan debajo de la barra de Safari ─── */
@supports (height:100lvh){
  :root{--alto:100lvh;--debajo:max(0px, calc(100lvh - 100dvh))}
}
html{background:var(--noche)}
.pantalla,.juego{height:var(--alto)}
dialog.hoja--entera{height:var(--alto);max-height:var(--alto)}
.dock{bottom:var(--debajo)}
.canasta__pie{padding-bottom:calc(var(--pie) + var(--debajo))}
.canasta__cuerpo{padding-bottom:calc(120px + var(--debajo))}
.regalo__tarjeta{padding-bottom:calc(var(--pie) + var(--debajo))}
.hoja__cuerpo{padding-bottom:calc(var(--pie) + 4px + var(--debajo))}
.compartir{padding-bottom:0;overscroll-behavior:contain;flex-wrap:nowrap;align-items:stretch}   /* el DS tiene su propio .compartir con wrap: aquí no */

/* ─── con el teclado abierto ─── */
.con-teclado dialog.hoja--entera{height:var(--vv);max-height:var(--vv);transform:translateY(var(--vv-arriba, 0px))}
.con-teclado .hoja__cuerpo{padding-bottom:10px}
.con-teclado .compartir__fin{padding-bottom:10px}
.con-teclado .compartir__vista,.con-teclado .compartir .fila-ter,.con-teclado .regalar__nota,.con-teclado .sobre{display:none}
/* las hojas de abajo (ponle nombre) se apoyan sobre el teclado */
.con-teclado dialog.hoja:not(.hoja--entera){inset:auto 0 auto 0;top:calc(var(--vv-arriba, 0px) + var(--vv));transform:translateY(-100%);
  margin:0 auto;max-height:calc(var(--vv) - 12px);animation:none}
.con-teclado .hoja__foto{display:none}

/* la galería: el interruptor al presumir y el «Ver más» */
.interruptor{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 4px;cursor:pointer;text-align:left}
.interruptor > span{flex:1;display:flex;flex-direction:column;gap:1px;font-size:15px;line-height:1.25}
.interruptor > span > span{font-size:13px;color:var(--texto-2)}
.interruptor input{position:absolute;opacity:0;width:1px;height:1px}
.interruptor i{position:relative;flex:none;width:48px;height:28px;border-radius:999px;background:rgba(255,255,255,.18);transition:background .2s}
.interruptor i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .2s}
.interruptor input:checked + i{background:var(--rosa)}
.interruptor input:checked + i::after{transform:translateX(20px)}
.interruptor input:focus-visible + i{outline:2px solid var(--crema);outline-offset:2px}
.galeria__mas{align-self:center;margin:8px auto 0}
.con-teclado .interruptor{display:none}
