/* Diák 01–15: bevezetés, alapelv, jutalomcsapda, kéz & papír. A kép = az alapállapot (végleges); a mozgás csak .slide.is-active alatt. */

/* ------------------------------------------------------------ 01 — címlap */
.cv-img { position: absolute; inset: 0 0 0 auto; width: 62%; }
.cv-img img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; }
.cv-img::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--blue) 0%, rgba(35, 64, 245, .55) 26%, rgba(35, 64, 245, 0) 52%); }
.cv-copy { position: absolute; left: 64px; top: 70px; width: 660px; z-index: 3; }
.cv-h1 { margin: 0; font: 800 124px/.88 var(--f-display); letter-spacing: -.045em; color: var(--pink); }
.cv-h1 .ln { display: block; overflow: hidden; padding-bottom: .07em; }
.cv-h1 .ln > span { display: inline-block; }
.cv-sub { margin: 34px 0 0; max-width: 31ch; font: 500 23px/1.4 var(--f-body); }
.cv-sub b { color: var(--pink); }
.cv-hint { margin: 30px 0 0; font: 700 13px/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
.cv-blob { position: absolute; z-index: 4; right: 34px; top: 372px; width: 200px; height: 200px; border-radius: 50%; background: var(--pink); color: var(--ink); display: grid; place-items: center; text-align: center; font: 700 34px/1 var(--f-hand); padding: 24px; transform: rotate(-10deg); box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .4); }
.cv-rays { position: absolute; z-index: 4; width: 90px; height: 90px; color: var(--pink); }
.cv-rays--1 { left: 600px; top: 96px; }
.cv-rays--2 { right: 60px; top: 292px; transform: rotate(150deg); }
.cv-rays path { stroke-dasharray: 1; stroke-dashoffset: 0; }
.cv-ticker { position: absolute; left: 0; right: 0; bottom: 0; height: 54px; z-index: 5; background: var(--pink); color: var(--ink); border-top: 2px solid var(--ink); overflow: hidden; white-space: nowrap; display: flex; align-items: center; }
.cv-ticker__track { display: inline-flex; gap: 48px; padding-left: 48px; font: 700 18px/1 var(--f-display); }
.cv-ticker__track span::before { content: "✺"; margin-right: 48px; color: var(--blue); }
@keyframes cv-rise { from { transform: translateY(105%); } }
@keyframes cv-draw { from { stroke-dashoffset: 1; } }
@keyframes cv-bob { 50% { transform: rotate(-6deg) translateY(-10px); } }
@keyframes cv-tick { to { transform: translateX(-50%); } }
.slide.is-active .cv-h1 .ln > span { animation: cv-rise .9s cubic-bezier(.2, .8, .2, 1) backwards; }
.slide.is-active .cv-h1 .ln:nth-child(1) > span { animation-delay: .25s; }
.slide.is-active .cv-h1 .ln:nth-child(2) > span { animation-delay: .37s; }
.slide.is-active .cv-h1 .ln:nth-child(3) > span { animation-delay: .49s; }
.slide.is-active .cv-sub { animation: d-rise .8s var(--ease) .75s backwards; }
.slide.is-active .cv-hint { animation: d-fade .8s ease 1.1s backwards; }
.slide.is-active .cv-blob { animation: d-pop .9s var(--ease) .9s backwards, cv-bob 6s ease-in-out 1.8s infinite; }
.slide.is-active .cv-rays path { animation: cv-draw .7s ease 1.2s backwards; }
.slide.is-active .cv-rays path:nth-child(2) { animation-delay: 1.3s; }
.slide.is-active .cv-rays path:nth-child(3) { animation-delay: 1.4s; }
.slide.is-active .cv-ticker__track { animation: cv-tick 60s linear infinite; }

/* ------------------------------------------------------------ 02 — útiterv */
.rt-head { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: end; }
.rt-head .s-lead { margin: 0; font-size: 18px; }
.rt-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-top: 24px; }
.rt { position: relative; height: 212px; padding: 16px 16px 18px; text-align: left; display: flex; flex-direction: column; background: var(--paper); color: var(--text); border: 1.5px solid var(--line); border-radius: 22px; box-shadow: var(--shadow); cursor: pointer; transition: transform .3s var(--ease), background .25s, border-color .25s; }
.rt:hover { transform: translateY(-5px) rotate(-.4deg); background: var(--soft); border-color: var(--hot); }
.rt-l { position: absolute; right: 14px; top: 8px; font: 800 44px/1 var(--f-display); color: var(--pink); }
.rt img { width: 56px; height: 56px; object-fit: contain; margin-bottom: 12px; }
.rt img.rt-round { border-radius: 50%; object-fit: cover; }
.rt b { font: 800 21px/1.05 var(--f-display); letter-spacing: -.02em; color: var(--ink); }
.rt em { margin-top: 8px; font: 500 13.5px/1.4 var(--f-body); font-style: normal; color: var(--muted); }
@keyframes rt-wave { 0%, 100% { border-color: var(--line); } 25% { border-color: var(--hot); box-shadow: 0 0 0 5px rgba(255, 111, 181, .25); } }
.slide.is-active .rt { animation: d-pop .9s var(--ease) backwards, rt-wave 1.1s ease calc(1.8s + var(--d, 0) * .28s) 1; animation-delay: calc(var(--d, 0) * 110ms + 200ms), calc(1.8s + var(--d, 0) * .28s); }

/* ------------------------------------------------------------ 03 — alapelv */
.al-top { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: end; }
.al-top .s-lead { margin: 0; font-size: 19px; }
.al-block { position: relative; margin-top: 30px; height: 392px; background: var(--blue); color: #fff; border-radius: 32px; padding: 40px 48px 34px 250px; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.al-stamp { position: absolute; left: 44px; top: 50%; width: 176px; height: 176px; margin-top: -88px; display: grid; place-items: center; text-align: center; font: 800 18px/1.15 var(--f-display); color: var(--pink); }
.al-stamp i { position: absolute; inset: 0; border-radius: 50%; border: 2px dashed var(--pink); }
.al-block blockquote { margin: 0; font: 500 30px/1.28 var(--f-serif); }
.al-block blockquote em { font-style: normal; color: var(--pink); background: linear-gradient(var(--hot), var(--hot)) 0 100% / 100% 3px no-repeat; padding-bottom: 1px; }
.al-block cite { display: block; margin-top: 16px; font: 500 14px/1.4 var(--f-body); font-style: normal; opacity: .88; }
.al-block .btn { align-self: flex-start; margin-top: 18px; }
@keyframes al-under { from { background-size: 0 3px; } }
.slide.is-active .al-stamp i { animation: d-spin 26s linear infinite; }
.slide.is-active .al-block blockquote em { animation: al-under 1s var(--ease) 1.4s backwards; }
.slide.is-active .al-block blockquote em + em { animation-delay: 2s; }

/* ------------------------------------------------------------ 04 — öt mondat */
.core-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-top: 26px; }
.core { position: relative; height: 386px; padding: 22px 18px 18px; text-align: left; display: flex; flex-direction: column; background: var(--paper); color: var(--text); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow); cursor: pointer; transition: transform .3s var(--ease), background .25s; }
.core:hover { transform: translateY(-6px) rotate(-.4deg); background: var(--soft); }
.core .num { position: absolute; right: 14px; top: 8px; font: 800 52px/1 var(--f-display); color: var(--pink); }
.core img { width: 62px; height: 62px; object-fit: contain; margin-bottom: 14px; }
.core h3 { margin: 0 0 10px; font: 700 19.5px/1.12 var(--f-display); letter-spacing: -.015em; color: var(--ink); }
.core p { margin: 0; flex: 1; font: 500 13.5px/1.45 var(--f-body); color: var(--muted); }
.core .more { margin-top: 10px; }
@keyframes core-wig { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-7deg); } 60% { transform: rotate(6deg); } }
.slide.is-active .core img { animation: core-wig .9s ease calc(var(--d, 0) * 110ms + 900ms) 1; }

/* ------------------------------------------------------------ 05 — négy szám */
.st-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 28px; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.st { padding: 22px 22px 22px; border-right: 1px solid var(--line); display: flex; flex-direction: column; }
.st:last-child { border-right: 0; }
.st-n { margin-top: 16px; font: 800 80px/1 var(--f-display); letter-spacing: -.04em; color: var(--blue); }
.st-n small { font-size: .38em; letter-spacing: 0; }
.st p { margin: 12px 0 0; font: 500 15px/1.4 var(--f-body); color: var(--muted); }
.pg { height: 142px; display: flex; align-items: flex-end; }
.pg-dots { position: relative; width: 240px; height: 120px; }
.pg-dots__base, .pg-dots__lit i { position: absolute; inset: 0; background: radial-gradient(circle, var(--c, rgba(35, 64, 245, .2)) 3.7px, transparent 4.2px) 0 0 / 12px 12px; }
.pg-dots__lit { position: absolute; inset: 0; clip-path: polygon(0 0, 100% 0, 100% 36px, 228px 36px, 228px 48px, 0 48px); }
.pg-dots__lit i { --c: var(--hot); }
.pg-books { gap: 6px; }
.pg-books i { position: relative; display: block; width: var(--w); height: var(--h); background: var(--c); border-radius: 4px 4px 0 0; transform-origin: bottom; }
.pg-books i::after { content: ""; position: absolute; left: 4px; right: 4px; top: 14px; height: 3px; background: rgba(255, 255, 255, .55); }
.pg-ring svg { width: 140px; height: 140px; transform: rotate(-90deg); }
.pg-ring__bg { fill: none; stroke: rgba(35, 64, 245, .12); stroke-width: 14; }
.pg-ring__fg { fill: none; stroke: var(--hot); stroke-width: 14; stroke-linecap: round; stroke-dasharray: 59 100; }
.pg-bars { gap: 26px; align-items: flex-end; height: 142px; }
.pg-bars div { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.pg-bars i { display: block; width: 64px; height: var(--h); background: var(--blue); border-radius: 8px 8px 0 0; transform-origin: bottom; }
.pg-bars div:last-child i { background: var(--hot); }
.pg-bars em { order: -1; font: 800 14px/1 var(--f-display); font-style: normal; color: var(--ink); }
.pg-bars span { font: 700 12px/1 var(--f-body); color: var(--muted); }
@keyframes d-ring { from { stroke-dasharray: 0 100; } }
.slide.is-active .pg-dots__lit i { animation: d-wipe 1.8s var(--ease) .7s backwards; }
.slide.is-active .pg-books i { animation: d-grow .9s var(--ease) backwards; animation-delay: calc(var(--i) * .12s + .8s); }
.slide.is-active .pg-ring__fg { animation: d-ring 1.6s var(--ease) 1s backwards; }
.slide.is-active .pg-bars i { animation: d-grow 1s var(--ease) backwards; animation-delay: calc(1.1s + var(--i, 0) * .2s); }

/* ------------------------------------------------------------ 06, 19 — fotós nyitó (kérdés / ellensúly) */
.bd-img { position: absolute; inset: 0; overflow: hidden; }
.bd-img img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; transform: scale(1.05); }
.bd-img--out img { object-position: 50% 42%; }
.bd-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18, 26, 122, .94) 0%, rgba(18, 26, 122, .78) 46%, rgba(18, 26, 122, .22) 100%); }
.bd-shade--out { background: linear-gradient(90deg, rgba(18, 26, 122, .93) 0%, rgba(18, 26, 122, .7) 48%, rgba(18, 26, 122, .12) 100%), linear-gradient(0deg, rgba(18, 26, 122, .85) 0%, transparent 36%); }
.bd-copy { position: absolute; left: 64px; top: 92px; width: 760px; }
.bd-copy--out { top: 70px; width: 860px; }
.bd-hand { display: block; margin-top: 26px; font-size: 56px; }
.bd-q { margin: 14px 0 0; font: 800 84px/.98 var(--f-display); letter-spacing: -.035em; color: #fff; text-wrap: balance; }
.bd-q--md { font-size: 62px; }
.bd-p { margin: 26px 0 0; max-width: 46ch; font: 500 22px/1.5 var(--f-body); color: rgba(255, 255, 255, .92); }
.bd-p b { color: var(--pink); }
.bd-fly { position: absolute; width: 74px; opacity: .92; filter: drop-shadow(0 12px 18px rgba(0, 0, 0, .35)); }
.bd-fly--1 { right: 150px; top: 170px; transform: rotate(-12deg); }
.bd-fly--2 { right: 330px; top: 360px; width: 66px; transform: rotate(8deg); }
.bd-fly--3 { right: 90px; top: 450px; width: 70px; transform: rotate(-6deg); }
@keyframes bd-zoom { to { transform: scale(1.13); } }
@keyframes bd-float { 0% { transform: translateY(26px) rotate(-12deg); opacity: 0; } 18% { opacity: .95; } 78% { opacity: .95; } 100% { transform: translateY(-46px) rotate(8deg); opacity: 0; } }
.slide.is-active .bd-img img { animation: bd-zoom 16s ease-out forwards; }
.slide.is-active .bd-hand { animation: d-wipe 1s ease .5s backwards; }
.slide.is-active .bd-q { animation: d-rise 1s var(--ease) .9s backwards; }
.slide.is-active .bd-fly { animation: bd-float 5.2s ease-in-out infinite; }
.slide.is-active .bd-fly--2 { animation-delay: 1.7s; }
.slide.is-active .bd-fly--3 { animation-delay: 3.3s; }
.fair { position: absolute; left: 64px; right: 64px; bottom: 54px; z-index: 4; display: flex; align-items: center; gap: 22px; background: var(--pink); color: var(--ink); border-radius: 24px; padding: 18px 28px; font: 600 17px/1.45 var(--f-body); }
.fair .hand { font-size: 44px; color: var(--ink); flex: none; }

/* ------------------------------------------------------------ 07 — két hurok */
.lp-head { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: end; }
.lp-head .s-h2 { font-size: 46px; }
.lp-lead { margin: 0; font: 500 14.5px/1.5 var(--f-body); color: var(--muted); }
.lp-lead b { color: var(--ink); }
.lp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 18px; }
.lp { position: relative; height: 458px; display: flex; flex-direction: column; padding: 20px 26px 18px; border-radius: 28px; box-shadow: var(--shadow); }
.lp--ext { background: var(--blue); color: #fff; }
.lp--int { background: var(--paper); }
.lp .tag { display: inline-block; font: 800 11px/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; background: var(--pink); color: var(--ink); }
.lp--int .tag { background: var(--blue); color: #fff; }
.lp h3 { margin: 10px 0 0; font: 700 25px/1.05 var(--f-display); letter-spacing: -.015em; color: var(--ink); }
.lp--ext h3 { color: var(--pink); }
.lp-svg { width: 100%; height: 290px; margin: 4px 0 6px; overflow: visible; }
.lp-svg text { font-family: var(--f-body); font-weight: 700; font-size: 13px; }
.lp p { margin: 0; font: 500 14.5px/1.45 var(--f-body); }
.lp--ext p { color: rgba(255, 255, 255, .9); }
.lp-meter { display: flex; align-items: center; gap: 12px; margin-top: auto; font: 700 13px/1 var(--f-body); }
.lp-meter .bar { flex: 1; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .22); overflow: hidden; }
.lp--int .lp-meter .bar { background: var(--soft); }
.lp-meter .bar i { display: block; height: 100%; background: var(--pink); border-radius: inherit; transition: width .4s; }
.lp--int .lp-meter .bar i { background: var(--blue); }

/* ------------------------------------------------------------ 08 — négy mechanizmus */
.mc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 28px; }
.mc { height: 372px; padding: 26px 24px 22px; text-align: left; display: flex; flex-direction: column; gap: 10px; background: var(--paper); color: var(--text); border: 1px solid var(--line); border-radius: 26px; box-shadow: var(--shadow); cursor: pointer; transition: transform .3s var(--ease), box-shadow .3s; }
.mc:hover { transform: translateY(-6px); box-shadow: 0 24px 44px -22px rgba(22, 38, 184, .55); }
.mc-ico { width: 100px; height: 100px; object-fit: contain; }
.mc h3 { margin: 6px 0 0; font: 800 25px/1.05 var(--f-display); letter-spacing: -.02em; color: var(--ink); }
.mc p { margin: 0; flex: 1; font: 500 15.5px/1.45 var(--f-body); color: var(--muted); }
@keyframes mc-chest { 0%, 70%, 100% { transform: rotate(0); } 76% { transform: rotate(-6deg); } 84% { transform: rotate(6deg); } 92% { transform: rotate(-3deg); } }
@keyframes mc-star { to { transform: rotate(360deg); } }
@keyframes mc-bob { 50% { transform: translateY(-9px); } }
@keyframes mc-tilt { 0%, 60%, 100% { transform: rotate(0) translateY(0); } 70% { transform: rotate(-8deg) translateY(-4px); } 85% { transform: rotate(7deg) translateY(-4px); } }
.slide.is-active .mc-ico--chest { animation: mc-chest 3.4s ease-in-out 1.6s infinite; }
.slide.is-active .mc-ico--star { animation: mc-star 9s linear 1.2s infinite; }
.slide.is-active .mc-ico--avatar { animation: mc-bob 2.6s ease-in-out 1.2s infinite; }
.slide.is-active .mc-ico--trophy { animation: mc-tilt 3.6s ease-in-out 1.8s infinite; }

/* ------------------------------------------------------------ 09 — filctollas óvodások */
.lc-grid { display: grid; grid-template-columns: 1fr 540px; gap: 48px; margin-top: 0; align-items: center; height: 580px; }
.lc-p { margin: 16px 0 0; font: 500 18.5px/1.5 var(--f-body); color: var(--muted); max-width: 54ch; }
.lc-p b { color: var(--ink); }
.lc-copy .s-note { margin-top: 18px; font-size: 14px; }
.lc-bars { background: var(--paper); border-radius: 28px; padding: 34px 30px 28px; box-shadow: var(--shadow); }
.lc-bars__h { margin-bottom: 22px; font: 800 12px/1.4 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.lb { display: grid; grid-template-columns: 150px 1fr 60px; gap: 12px; align-items: center; margin-bottom: 26px; font: 600 15px/1.25 var(--f-body); }
.lb-track { height: 52px; background: rgba(35, 64, 245, .08); border-radius: 12px; overflow: hidden; }
.lb-track i { display: block; height: 100%; width: var(--w); background: var(--blue); border-radius: 12px; }
.lb--hl .lb-track i { background: var(--hot); }
.lb b { font: 800 22px/1 var(--f-display); }
.lc-src { margin: 4px 0 0; font: 500 12.5px/1.4 var(--f-body); color: var(--muted); }
@keyframes lb-grow { from { width: 0; } }
.slide.is-active .lb-track i { animation: lb-grow 1.4s var(--ease) backwards; animation-delay: calc(var(--i) * .3s + 1s); }

/* ------------------------------------------------------------ 10 — tükör (jutalomréteg) */
.mr-grid { display: grid; grid-template-columns: 1fr 520px; gap: 48px; margin-top: 6px; align-items: center; height: 580px; }
.mr-copy .s-h2 { font-size: 50px; }
.mr-p { margin: 18px 0 0; font: 500 18px/1.55 var(--f-body); color: rgba(255, 255, 255, .9); max-width: 50ch; }
.mr-p b { color: var(--pink); }
.mr-off { margin: 18px 0 0; font-size: 40px; color: var(--pink); }
.mr-stage { position: relative; height: 500px; border-radius: 26px; background: var(--cream); overflow: hidden; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }
.mr-page { position: absolute; inset: 22px 28px 60px; display: flex; flex-direction: column; gap: 14px; }
.mr-page i { display: block; height: 12px; border-radius: 6px; background: rgba(35, 64, 245, .13); }
.mr-page i:nth-child(1) { width: 46%; height: 22px; background: rgba(35, 64, 245, .22); }
.mr-page i:nth-child(3n) { width: 84%; } .mr-page i:nth-child(4n) { width: 62%; }
.mr-hud { position: absolute; left: 18px; bottom: 44px; width: 252px; padding: 12px 14px 14px; background: var(--navy); color: #fff; border-radius: 18px; box-shadow: 0 16px 40px -12px rgba(0, 0, 0, .5); font: 600 13px/1.2 var(--f-body); }
.mr-hud__row { display: flex; align-items: center; gap: 8px; }
.mr-hud .lvl { background: var(--pink); color: var(--ink); font-weight: 800; border-radius: 8px; padding: 2px 7px; font-size: 12px; }
.mr-hud .xp { font: 800 17px var(--f-display); }
.mr-hud .streak { margin-left: auto; font-weight: 700; }
.mr-xpbar { height: 7px; margin-top: 9px; border-radius: 9px; background: rgba(255, 255, 255, .18); overflow: hidden; }
.mr-xpbar i { display: block; height: 100%; background: linear-gradient(90deg, var(--pink), var(--yellow)); transition: width .6s; }
.mr-badges { display: flex; gap: 4px; margin-top: 9px; min-height: 26px; }
.mr-badges img { width: 26px; height: 26px; object-fit: contain; }
.mr-chest { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 9px; padding: 7px; border-radius: 10px; background: var(--yellow); color: var(--ink); font-weight: 800; }
.mr-chest img { width: 24px; }
.mr-toast { position: absolute; left: 50%; top: 16px; display: flex; gap: 12px; align-items: center; padding: 9px 18px 9px 10px; background: var(--navy); color: #fff; border: 2px solid var(--yellow); border-radius: 16px; font: 700 14px/1.2 var(--f-body); transform: translateX(-50%); transition: transform .45s var(--ease), opacity .3s; box-shadow: 0 16px 40px -12px rgba(0, 0, 0, .4); }
.mr-toast img { width: 38px; height: 38px; object-fit: contain; }
.mr-toast small { display: block; margin-top: 2px; font-weight: 500; font-size: 12px; opacity: .8; }
.mr-toast.is-hidden { transform: translateX(-50%) translateY(-90px); opacity: 0; }
.mr-cap { position: absolute; left: 18px; right: 18px; bottom: 12px; font: 600 11.5px/1.3 var(--f-body); color: var(--muted); }
.mr-stage.is-off .mr-hud, .mr-stage.is-off .mr-toast { opacity: .0; transform: translateY(30px); transition: opacity .5s, transform .5s; }
.mr-stage.is-off .mr-toast { transform: translateX(-50%) translateY(-90px); }
@keyframes mr-wig { 0%, 70%, 100% { transform: rotate(0); } 76% { transform: rotate(-3deg); } 84% { transform: rotate(3deg); } 92% { transform: rotate(-2deg); } }
@keyframes mr-page-scroll { to { transform: translateY(-50px); } }
.slide.is-active .mr-chest { animation: mr-wig 3s ease 2s infinite; }
.slide.is-active .mr-page { animation: mr-page-scroll 9s ease-in-out infinite alternate; }

/* ------------------------------------------------------------ 11 — őszintén */
.hn-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 24px; margin-top: 26px; }
.hn { position: relative; border-radius: 28px; padding: 22px 32px 14px; }
.hn--no { border: 2.5px dashed var(--blue); background: rgba(255, 255, 255, .62); }
.hn--yes { background: var(--blue); color: #fff; }
.hn-h { display: block; margin-bottom: 10px; font-size: 44px; transform: rotate(-3deg); transform-origin: left; }
.hn p { margin: 0 0 .6em; font: 500 18px/1.45 var(--f-body); }
.hn--yes b { color: var(--pink); }
.hn--no b { color: var(--ink); }
.hn-stats { display: grid; grid-template-columns: 1.25fr repeat(3, 1fr); gap: 12px; align-items: stretch; margin-top: 16px; }
.hn-stats__h { display: flex; flex-direction: column; justify-content: center; font: 600 14.5px/1.45 var(--f-body); color: var(--muted); }
.hn-stats__h b { color: var(--ink); }
.hn-act { display: flex; align-items: center; gap: 24px; margin-top: 18px; }
.hn-act .s-hint { max-width: 48ch; }

/* ------------------------------------------------------------ 12 — a kéz tanítja az agyat */
.kz-grid { display: grid; grid-template-columns: 1fr 540px; gap: 44px; margin-top: 2px; align-items: start; }
.kz-copy .s-lead { margin-top: 16px; font-size: 18.5px; }
.ev { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.ev li { position: relative; padding-left: 24px; font: 500 15.5px/1.45 var(--f-body); color: var(--text); }
.ev li::before { content: ""; position: absolute; left: 0; top: 7px; width: 11px; height: 11px; border-radius: 50%; background: var(--hot); }
.ev b { color: var(--ink); }
.kz-vis { display: flex; flex-direction: column; gap: 12px; padding-top: 14px; }
.kz-photo { height: 262px; }
.kz-photo > img { object-position: 50% 55%; }
.gl { display: flex; flex-direction: column; gap: 10px; }
.gl-box { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 14px 18px 14px; }
.gl-h { font: 800 11.5px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.gl-row { display: flex; gap: 12px; margin-top: 9px; }
.gl-row svg, .gl-key { flex: none; width: 72px; height: 72px; border-radius: 14px; }
.gl-row svg { background: #fffefb; border: 1.5px solid var(--line); }
.gl-row path { fill: none; stroke: var(--ink); stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.gl-key { display: grid; place-items: center; background: #fff; border: 2px solid var(--line); box-shadow: 0 4px 0 var(--line); font: 800 28px/1 var(--f-display); color: var(--ink); }
@keyframes gl-write { 0% { stroke-dashoffset: 1; } 12%, 88% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 1; } }
@keyframes gl-tap { 0%, 100% { transform: none; background: #fff; box-shadow: 0 4px 0 var(--line); } 1.5% { transform: translateY(4px); background: var(--soft); box-shadow: 0 0 0 var(--line); } 5% { transform: none; background: #fff; box-shadow: 0 4px 0 var(--line); } }
.slide.is-active .gl-row path { animation: gl-write 7s ease-in-out infinite; animation-delay: calc(var(--i) * .8s + 1.6s); }
.slide.is-active .gl-key { animation: gl-tap 7s ease infinite; animation-delay: calc(var(--i) * .8s + 1.6s); }

/* ------------------------------------------------------------ 13 — kézírás-labor */
.lab-grid { display: grid; grid-template-columns: 560px 1fr; gap: 40px; margin-top: 14px; align-items: start; }
.lab-pad { padding: 16px 16px 14px; background: var(--paper); border-radius: 26px; box-shadow: var(--shadow); }
.pad-wrap { position: relative; margin-bottom: 12px; }
.pad { display: block; width: 100%; height: 380px; border-radius: 16px; touch-action: none; cursor: crosshair; background-color: #fffefb; background-image: linear-gradient(rgba(35, 64, 245, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(35, 64, 245, .12) 1px, transparent 1px); background-size: 28px 28px; box-shadow: inset 0 0 0 2px var(--line); }
.pad-hint { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; pointer-events: none; font: 700 34px/1.1 var(--f-hand); color: rgba(35, 64, 245, .38); transition: opacity .3s; }
.pad-hint.is-gone { opacity: 0; }
.lab-side { padding-top: 4px; }
.meter-list { display: grid; gap: 12px; }
.meter { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; font: 600 15px/1.3 var(--f-body); }
.meter b { font: 800 17px/1 var(--f-display); color: var(--ink); }
.meter .t { grid-column: 1 / -1; height: 10px; border-radius: 9px; background: rgba(35, 64, 245, .08); overflow: hidden; }
.meter .t i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--hot); transition: width .3s; }
.meter--kb { margin-top: 12px; }
.meter--kb .t i { background: var(--blue); }
.lab-sub { margin: 22px 0 6px; font: 700 15.5px/1.3 var(--f-body); color: var(--ink); }
.keys { display: flex; gap: 8px; flex-wrap: wrap; }
.key { width: 48px; height: 48px; border-radius: 11px; border: 2px solid var(--line); background: #fff; font: 800 18px var(--f-display); color: var(--ink); box-shadow: 0 3px 0 var(--line); cursor: pointer; transition: transform .1s, box-shadow .1s, background .1s; }
.key:active, .key.hit { transform: translateY(3px); box-shadow: 0 0 0 var(--line); background: var(--soft); }
.typed { margin-top: 10px; min-height: 42px; font: 700 28px/1.3 var(--f-display); letter-spacing: .06em; color: var(--ink); border-bottom: 2px solid var(--line); }
.lab-side .s-note { margin-top: 16px; font-size: 12.5px; }

/* ------------------------------------------------------------ 14 — papír vs. képernyő */
.pp-grid { display: grid; grid-template-columns: 1fr 560px; gap: 44px; margin-top: 4px; align-items: start; }
.pp-stats { display: flex; gap: 30px; margin-top: 20px; }
.pp-stats b { display: block; font: 800 38px/1 var(--f-display); letter-spacing: -.03em; color: var(--blue); }
.pp-stats div > span { display: block; margin-top: 5px; font: 700 11.5px/1.2 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.pp-p { margin: 18px 0 14px; font: 500 16.5px/1.5 var(--f-body); color: var(--muted); }
.pp-copy .s-note { margin-bottom: 4px; }
.pp-vis { display: flex; flex-direction: column; gap: 14px; padding-top: 10px; }
.pp-photo { height: 232px; border-radius: 26px; overflow: hidden; box-shadow: var(--shadow); }
.pp-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.read-demo { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rd { position: relative; height: 244px; padding: 14px 16px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 18px; }
.rd h5 { position: relative; z-index: 2; margin: -14px -16px 6px; padding: 14px 16px 8px; background: #fff; font: 800 12px/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.rd .lines i { display: block; height: 7px; margin: 0 0 9px; border-radius: 4px; background: rgba(35, 64, 245, .18); }
.rd .lines i:nth-child(3n) { width: 82%; } .rd .lines i:nth-child(4n) { width: 64%; }
.rd.paper .pages { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rd .mark { position: absolute; width: 18px; height: 18px; border-radius: 50%; background: var(--hot); }
.rd.paper .mark { left: 28%; top: 70px; box-shadow: 0 0 0 6px rgba(255, 111, 181, .25); }
.rd.screen .mark { left: 46%; top: 100px; }
.rd small { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 6px 16px 9px; font: 500 12.5px/1.35 var(--f-body); color: var(--muted); background: #fff; }
@keyframes rd-memo { 50% { left: 66%; top: 128px; } }
@keyframes rd-scroll { to { transform: translateY(-50%); } }
@keyframes rd-lost { 0% { top: 100px; opacity: 1; } 70% { top: -20px; opacity: .2; } 71% { top: 220px; opacity: 0; } 100% { top: 100px; opacity: 1; } }
.slide.is-active .rd.paper .mark { animation: rd-memo 4s ease-in-out infinite; }
.slide.is-active .rd.screen .lines { animation: rd-scroll 5s linear infinite; }
.slide.is-active .rd.screen .mark { animation: rd-lost 5s linear infinite; }

/* ------------------------------------------------------------ 15 — megfogható matematika */
.tg-grid { display: grid; grid-template-columns: 520px 1fr; gap: 48px; margin-top: 10px; align-items: center; }
.tg-photo { height: 470px; }
.tg-copy .s-h2 { margin-top: 0; }
.tg-p { margin: 16px 0 0; font: 500 17.5px/1.5 var(--f-body); color: var(--muted); }
.tg-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 20px 0 18px; }
.tgs { padding: 14px 8px 12px; text-align: center; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.tgs b { display: block; font: 800 40px/1 var(--f-display); letter-spacing: -.03em; color: var(--blue); }
.tgs--hl b { color: var(--hot); }
.tgs span { display: block; margin-top: 7px; font: 700 12px/1.3 var(--f-body); color: var(--muted); }
