:root{--bg:#0B0B0C;--fg:#F4F1EA;--lime:#C6FF3D;--red:#FF4D2E;--mut:#8d8a83;--paper:#F4F1EA;--ink:#0B0B0C}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font:400 18px/1.55 'Space Grotesk',system-ui,sans-serif;overflow-x:hidden}
#ink{position:fixed;inset:0;z-index:0;pointer-events:none}
main,.nav,footer{position:relative;z-index:1}
em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;color:var(--lime)}
h1,h2,h3{line-height:.98;letter-spacing:-.03em}
h1{font-size:clamp(2.6rem,8.5vw,8rem);font-weight:700}
h2{font-size:clamp(2rem,5.5vw,4.5rem);margin-bottom:2rem;font-weight:700}
section{padding:7rem 5vw;max-width:1300px;margin:auto}
.nav{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:.9rem 5vw;background:#0b0b0cd9;backdrop-filter:blur(10px);z-index:10}
.nav nav{display:flex;gap:1.5rem;align-items:center}
.nav a{color:var(--fg);text-decoration:none;font-size:.95rem}
.logo{color:var(--fg)}
.btn{display:inline-block;background:var(--lime);color:var(--ink)!important;padding:1rem 1.8rem;border:2px solid var(--lime);border-radius:0;font:700 1rem 'Space Grotesk';text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translate(-4px,-4px);box-shadow:6px 6px 0 var(--red)}
.btn-sm{padding:.5rem 1rem;font-size:.9rem}
.btn-ghost{background:transparent;color:var(--fg)!important;border-color:var(--fg)}
.hero{padding-top:5rem;min-height:88vh}
.tag{display:inline-flex;gap:.6rem;align-items:center;border:1px solid var(--mut);padding:.3rem .9rem;border-radius:99px;font-size:.85rem;margin-bottom:1.5rem}
.dot{width:8px;height:8px;background:var(--lime);border-radius:50%;animation:p 1.4s infinite}
@keyframes p{50%{opacity:.2}}
.strike{text-decoration:line-through;text-decoration-color:var(--red);text-decoration-thickness:.08em;color:var(--mut)}
.hl{background:linear-gradient(transparent 60%,var(--red) 60%)}
.lead{max-width:36rem;margin:2rem 0;font-size:1.3rem}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap}
.hint{color:var(--mut);font-size:.85rem;margin-top:1.5rem}
.marquee{overflow:hidden;background:var(--lime);color:var(--ink);padding:1rem 0;transform:rotate(-1.5deg);margin:2rem -2vw;white-space:nowrap}
.marquee div{display:inline-block;animation:m 28s linear infinite}
.marquee span{font:700 1.8rem 'Space Grotesk';margin:0 1.5rem}
.marquee span::after{content:"✦";margin-left:3rem;color:var(--red)}
@keyframes m{to{transform:translateX(-50%)}}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}
.cols article{border:1px solid #333;padding:2rem}
.cols h3{font-size:1.6rem;margin-bottom:.6rem}
.cols .win{background:var(--paper);color:var(--ink);transform:rotate(1.2deg)}
.process ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:#333}
.process li{background:var(--bg);padding:2rem}
.process li span{color:var(--lime);font-weight:700}
.process h3{font-size:1.7rem;margin:.6rem 0}
.process p{color:var(--mut)}
.price{background:var(--paper);color:var(--ink);max-width:none}
.price .card{max-width:520px;margin:auto;border:3px solid var(--ink);padding:2.5rem;box-shadow:12px 12px 0 var(--red);background:#fff}
.price .tag{border-color:var(--ink)}
.amount{font:700 7rem/1 'Space Grotesk';letter-spacing:-.05em}
.amount small{font-size:2rem}
.amount i{font-size:1rem;font-weight:400}
.price ul{margin:1.5rem 0 2rem;padding-left:1.2rem}
.price li{padding:.2rem 0}
.faq details{border-top:1px solid #333;padding:1.2rem 0}
.faq summary{cursor:pointer;font-size:1.4rem;font-weight:500}
.faq p{color:var(--mut);margin-top:.8rem}
form{display:grid;gap:1.2rem;max-width:600px}
label{display:grid;gap:.4rem;font-size:.9rem;color:var(--mut)}
input,textarea{background:transparent;border:0;border-bottom:2px solid var(--fg);color:var(--fg);font:inherit;padding:.6rem 0;outline:0}
input:focus,textarea:focus{border-color:var(--lime)}
footer{padding:3rem 5vw;border-top:1px solid #333;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;color:var(--mut)}
@media(max-width:640px){.nav nav a:not(.btn){display:none}.amount{font-size:5rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto}}
.article{max-width:820px;margin:auto;padding:5rem 5vw}
.article h1{font-size:clamp(2.4rem,7vw,4.5rem);margin-bottom:1.5rem}
.article h2{font-size:clamp(1.6rem,4vw,2.4rem);margin:3rem 0 1rem}
.article ul{padding-left:1.2rem;margin:1rem 0}
.article li{margin:.5rem 0}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:560px}
th,td{text-align:left;padding:.8rem;border-bottom:1px solid #333;vertical-align:top}
th{color:var(--mut);font-weight:500}
tr.us td{background:var(--lime);color:var(--ink)}
.note{color:var(--mut);font-size:.8rem;margin-top:.6rem}
.cta-box{border:2px solid var(--lime);padding:2rem;margin:3rem 0;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.cta-box h2,.cta-box p{width:100%;margin:0}
.legal h2{font-size:1.4rem;margin:2rem 0 .6rem}
.legal p,.legal li{color:#d8d5ce}
.legal a{color:var(--lime)}
#cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:50;background:var(--paper);color:var(--ink);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--red);padding:1rem 1.2rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between;max-width:760px;margin:auto;font-size:.9rem}
#cookie-banner p{margin:0;flex:1 1 280px}
#cookie-banner a{color:var(--ink)}
#cookie-banner .btn-ghost{color:var(--ink)!important;border-color:var(--ink)}
label.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.8rem}
label.check input{width:auto;margin-top:.2rem}
label.check a{color:var(--lime)}
.price .card h3.inc{font-size:1.1rem;margin:1.4rem 0 .2rem;letter-spacing:0}
.price ul.no li::marker{content:"✕  ";color:var(--red)}
.price .card .note{color:#555;font-size:.8rem;margin:.8rem 0}
.price .card ul{margin:.4rem 0 .6rem}
.amount i{font-size:1.1rem!important;font-weight:500;font-style:normal;letter-spacing:0;margin-left:.2rem}
.more{margin:-.4rem 0 1.4rem}
.more a{color:var(--lime);text-decoration:none;font-weight:500;padding-bottom:.35rem;border-bottom:2px solid transparent;transition:border-color .15s}
.more a:hover,.more a:focus-visible{border-bottom-color:var(--lime)}
.lead a{text-decoration-skip-ink:auto;text-underline-offset:.3em}
.hero h1{font-size:clamp(2.3rem,6.6vw,6.2rem)}

/* ===== Capa visual: luz, aire y aparición suave ===== */
section{padding:9rem 5vw}
.hero{position:relative;padding-top:6rem}
h2{letter-spacing:-.035em}

/* Lámpara colgante: el hilo cae desde arriba y la luz cae sobre el titular */
.lamp{position:absolute;top:-6rem;right:5%;width:1px;height:17rem;background:linear-gradient(#8d8a83,#8d8a83);transform-origin:top center;animation:sway 7s ease-in-out infinite alternate;pointer-events:none}
.lamp::after{content:"";position:absolute;left:-46px;bottom:-46px;width:92px;height:46px;border-radius:92px 92px 0 0;background:var(--lime);box-shadow:0 0 40px 6px rgba(198,255,61,.35)}
.lamp::before{content:"";position:absolute;left:-230px;bottom:-460px;width:460px;height:420px;background:radial-gradient(ellipse at 50% 0,rgba(198,255,61,.20),rgba(198,255,61,0) 68%);clip-path:polygon(40% 0,60% 0,100% 100%,0 100%)}
@keyframes sway{from{transform:rotate(-2.2deg)}to{transform:rotate(2.2deg)}}


/* Luz que sigue al cursor (solo punteros precisos) */
#glow{position:fixed;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;background:radial-gradient(circle,rgba(198,255,61,.11),rgba(198,255,61,0) 62%);pointer-events:none;z-index:0;opacity:0;transition:opacity .4s;will-change:transform}
#glow.on{opacity:1}

/* Aparición al hacer scroll: solo si hay JS y el usuario no pide menos movimiento */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}.lamp{animation:none}#glow{display:none}}
.js .cols .win.rv{transform:translateY(28px) rotate(1.2deg)}
.js .cols .win.rv.in{transform:rotate(1.2deg)}

/* Móvil y tablet: la lámpara se queda, más pequeña, colgando sobre el texto */
.hero>*:not(.lamp){position:relative;z-index:1}
.lamp{z-index:0}
@media(max-width:1100px){
  .hero{padding-top:9.5rem}
  .lamp{top:-3.2rem;right:9%;height:8.5rem}
  .lamp::after{left:-30px;bottom:-30px;width:60px;height:30px;border-radius:60px 60px 0 0;box-shadow:0 0 26px 4px rgba(198,255,61,.35)}
  .lamp::before{left:-150px;bottom:-330px;width:300px;height:300px}
  #glow{width:380px;height:380px;margin:-190px 0 0 -190px}
}
@media(max-width:560px){
  .hero{padding-top:10.5rem}
  .lamp{left:50%;right:auto;top:-3rem;height:8rem}
  .lamp::before{left:-150px;bottom:-135px;width:300px;height:125px;background:radial-gradient(ellipse at 50% 0,rgba(198,255,61,.13),rgba(198,255,61,0) 72%)}
}
.nav .btn-sm{white-space:nowrap}
@media(max-width:360px){.nav .btn-sm{padding:.45rem .7rem;font-size:.8rem}}

/* ===== Hilo de trazo ===== */
#thread{position:absolute;left:0;top:0;pointer-events:none;z-index:5;overflow:visible}
.t-guide{fill:none;stroke:#55544f;stroke-width:3;stroke-linecap:round;stroke-dasharray:1 14}
.t-out{fill:none;stroke:#0B0B0C;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}
.t-line{fill:none;stroke:#C6FF3D;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.t-dome{fill:#C6FF3D;filter:drop-shadow(0 0 14px rgba(198,255,61,.55))}
.t-tip{fill:#C6FF3D;stroke:#0B0B0C;stroke-width:3;filter:drop-shadow(0 0 10px rgba(198,255,61,.85))}
.threaded .lamp{background:none;animation:none}
.threaded .lamp::after{display:none}
@media(max-width:560px){.t-line{stroke-width:3}.t-out{stroke-width:7}}
@media(prefers-reduced-motion:reduce){.t-tip{display:none}}

/* ===== Fase 2: línea de tiempo de 5 días (el eje es el propio hilo) ===== */
.process ol.days{display:block;background:none;gap:0;margin:2.5rem 0 0;padding:0;list-style:none}
.days li{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.5rem;padding:2rem 0 2rem;border-top:1px solid #262626;background:none}
.days li:last-child{border-bottom:1px solid #262626}
.days .day{color:var(--lime);font-weight:700;font-size:1.15rem;line-height:1.5;padding-top:.15rem}
.days h3{font-size:clamp(1.7rem,3.4vw,2.6rem);margin:0 0 .5rem;letter-spacing:-.03em;line-height:1}
.days p{color:var(--mut);max-width:34rem;margin:0}
.days .last .day,.days .last h3{color:var(--red)}
/* nodo sobre el hilo: apagado hasta que el trazo llega */
.days li::before{content:"";position:absolute;top:2.3rem;left:calc(var(--lane,36px) * -1 - 8px);width:16px;height:16px;border-radius:50%;background:var(--bg);border:3px solid #555;box-sizing:border-box;transition:background .4s,border-color .4s,box-shadow .4s,transform .4s;z-index:1}
.days li.last::before{border-radius:2px;width:20px;height:20px;left:calc(var(--lane,36px) * -1 - 10px);top:2.2rem}
.days li.lit::before{background:var(--lime);border-color:var(--bg);box-shadow:0 0 0 3px var(--lime),0 0 22px 4px rgba(198,255,61,.5);transform:scale(1.05)}
.days li.last.lit::before{background:var(--red);box-shadow:0 0 0 3px var(--red),0 0 26px 6px rgba(255,77,46,.55)}
.days li.lit .day{text-shadow:0 0 18px rgba(198,255,61,.45)}
.days li.last.lit .day{text-shadow:0 0 18px rgba(255,77,46,.5)}
@media(max-width:760px){
  .days li{grid-template-columns:1fr;gap:.3rem;padding:1.5rem 0 1.6rem}
  .days li::before{top:1.65rem;width:14px;height:14px;left:calc(var(--lane,12px) * -1 - 7px)}
  .days li.last::before{width:18px;height:18px;left:calc(var(--lane,12px) * -1 - 9px);top:1.55rem}
  .days h3{font-size:1.65rem}
}
@media(prefers-reduced-motion:reduce){.days li::before{transition:none}}
label.check a{text-decoration-thickness:1px;text-underline-offset:.2em}

/* ===== Fase 3: conceptos de diseño ===== */
.examples{max-width:1300px}
.ex-head{max-width:46rem;margin-bottom:3.5rem}
.ex-head .tag{margin-bottom:1.2rem}
.ex-head h2{margin-bottom:1.2rem}
.ex-note{color:#c9c6bf;max-width:34rem;margin:0}
.ex-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem;align-items:start}
.ex{margin:0}
.ex .win{border:3px solid var(--paper);background:#fff;box-shadow:10px 10px 0 var(--red);transition:transform .45s ease;color:#0B0B0C}
.ex:nth-child(1) .win{transform:rotate(-1.8deg)}
.ex:nth-child(2) .win{transform:translateY(28px);box-shadow:10px 10px 0 var(--lime)}
.ex:nth-child(3) .win{transform:rotate(1.6deg)}
.ex:hover .win{transform:rotate(0) translateY(-4px)}
.win .bar{display:flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:3px solid var(--paper);background:var(--paper)}
.win .bar i{width:10px;height:10px;border-radius:50%;background:var(--red);display:block;font-style:normal}
.win .bar i:nth-child(2){background:var(--lime);border:1px solid #0B0B0C}
.win .bar i:nth-child(3){background:#0B0B0C}
.win .bar span{margin-left:10px;font-size:.72rem;color:#6d6a63}
.win .screen{height:360px;overflow:hidden;background:#fff}
.win .inner{transition:transform 3.4s cubic-bezier(.45,0,.2,1);will-change:transform}
.ex:hover .inner,.ex.peek .inner{transform:translateY(calc(var(--shift,240px) * -1))}
.win .inner>div{padding:26px 24px 30px;box-sizing:border-box}
.win small{display:block;font-size:.72rem;letter-spacing:.14em;margin-bottom:20px}
.win b{display:block}
.win em{font-family:inherit;font-style:normal;font-weight:700;display:inline-block;margin-top:20px;font-size:.8rem;padding:9px 14px;color:inherit}
.win u{text-decoration:none;display:block}
.win mark{color:inherit}
.m-row{display:flex;gap:8px;margin-top:24px}
.m-row u{flex:1;height:46px}
.m-light{background:#fff;color:#0B0B0C;min-height:300px}
.m-light strong{display:block;margin-bottom:14px;font-size:1rem}
.m-light .m-row u{background:#e7e4dc}
.m-light .m-row-lg u{height:90px}
.m-line{height:10px;background:#d7d4cc;margin:12px 0}
.m-line.s{width:60%}
.m-blue{background:#1747d6;color:#fff;height:360px}
.m-blue b{font-size:2rem;line-height:1.02;letter-spacing:-.03em}
.m-blue em{background:#ffd23f;color:#0B0B0C}
.m-blue .m-row u{background:rgba(255,255,255,.18)}
.m-cream{background:#f1e9dc;color:#2a1d14;height:360px}
.m-cream b{font-family:'Instrument Serif',serif;font-weight:400;font-size:2.7rem;line-height:.95;letter-spacing:-.02em}
.m-cream b i{font-style:italic;font-family:inherit}
.m-cream em{background:#2a1d14;color:#f1e9dc}
.m-rule{height:2px;background:#2a1d14;margin-top:26px}
.m-areas{display:flex;justify-content:space-between;margin-top:10px;font-size:.72rem}
.m-green{background:#dff1e4;color:#14382a;height:360px}
.m-green b{font-size:2rem;line-height:1.05;font-weight:500;letter-spacing:-.03em}
.m-green mark{background:#a8e0bd;padding:0 6px}
.m-green em{background:#14382a;color:#dff1e4;border-radius:99px}
.m-dots{display:flex;gap:10px;margin-top:28px}
.m-dots u{width:54px;height:54px;border-radius:50%;background:#a8e0bd}
.m-dots u:nth-child(2){background:#7cc99b}
.m-dots u:nth-child(3){background:#14382a}
.ex figcaption{margin-top:1.8rem;display:flex;flex-direction:column;gap:.2rem}
.ex figcaption b{font-size:1.1rem}
.ex figcaption span{color:var(--mut);font-size:.95rem}
.price .note.guide{text-align:center;margin:1.4rem 0 0}
.price .note.guide a{color:#0B0B0C;font-weight:500;text-underline-offset:.25em}
@media(max-width:900px){
  .ex-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto;gap:3.4rem}
  .ex:nth-child(2) .win{transform:none}
  .ex:nth-child(1) .win{transform:rotate(-1deg)}
  .ex:nth-child(3) .win{transform:rotate(1deg)}
}
@media(prefers-reduced-motion:reduce){.win .inner,.ex .win{transition:none}}
.ex.peek .inner{transition-delay:1.1s}
.ex:hover .inner{transition-delay:0s}
