/* ARworks ingatlan portfólió — prezentáció (1280×720-as vászon, arányosan a nézetablakhoz skálázva), világos téma.
   Elv: az alapállapot mindig a VÉGLEGES kép (nyomtatás, áttekintő nézet, szkript nélkül is);
   a belépő mozgás és a „poénok” csak az aktív diára (`.slide.is-active`) kapcsolnak be, és
   `backwards` kitöltéssel a végállapotba érkeznek — így a hover-hatások sem ütköznek velük. */

.deck-body { margin: 0; height: 100vh; overflow: hidden; background: #e7e3d8; color: var(--ip-ink, #12181d); font-family: var(--font-body, 'Space Grotesk', sans-serif); -webkit-font-smoothing: antialiased; }
.deck-body *, .deck-body *::before, .deck-body *::after { box-sizing: border-box; }
.deck-body.is-idle { cursor: none; }
.deck-body { --ease: cubic-bezier(0.16, 1, 0.3, 1); }

/* ------------------------------------------------------------ keret: felső sáv, haladás, alsó navigáció */
.deck-topbar { position: fixed; top: 0; left: 0; right: 0; height: 56px; z-index: 40; display: flex; align-items: center; gap: 20px; padding: 0 20px; background: rgba(255, 255, 255, 0.94); border-bottom: 1px solid rgba(18, 24, 29, 0.14); backdrop-filter: blur(10px); transition: opacity 0.4s, transform 0.4s; }
.deck-brand { display: flex; align-items: baseline; gap: 1px; flex: none; text-decoration: none; }
.deck-brand b { font: 400 19px/1 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.02em; color: #12181d; }
.deck-brand span { font: 300 19px/1 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.02em; color: #ef5422; }
.deck-topbar__title { flex: 1 1 auto; min-width: 0; font: 400 11px/1 var(--font-mono, monospace); letter-spacing: 0.14em; text-transform: uppercase; color: #55616b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.deck-topbar__actions { display: flex; align-items: center; gap: 8px; flex: none; }
.deck-btn { display: inline-flex; align-items: center; gap: 8px; font: 500 12px/1 var(--font-body, sans-serif); color: #12181d; background: #fff; border: 1px solid rgba(18, 24, 29, 0.28); border-radius: 2px; padding: 9px 13px; cursor: pointer; text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s; }
.deck-btn:hover { background: #12181d; color: #fff; border-color: #12181d; text-decoration: none; }
.deck-btn--accent { background: #ef5422; border-color: #ef5422; color: #fff; }
.deck-btn--accent:hover { background: #d3431a; border-color: #d3431a; color: #fff; }
.deck-lang { display: inline-flex; border: 1px solid rgba(18, 24, 29, 0.28); border-radius: 2px; overflow: hidden; background: #fff; }
.deck-lang span, .deck-lang a { font: 500 11px/1 var(--font-mono, monospace); letter-spacing: 0.1em; padding: 9px 10px; color: #55616b; text-decoration: none; }
.deck-lang .is-active { background: #12181d; color: #fff; }
.deck-lang a:hover { background: #eeeadf; color: #12181d; text-decoration: none; }
.deck-progress { position: fixed; top: 56px; left: 0; right: 0; height: 2px; z-index: 40; background: rgba(18, 24, 29, 0.1); transition: opacity 0.4s; }
.deck-progress__bar { height: 100%; width: 0; background: #ef5422; transition: width 0.35s var(--ease); }
.deck-nav { position: fixed; bottom: 0; left: 0; right: 0; height: 68px; z-index: 40; display: flex; align-items: center; justify-content: center; gap: 14px; background: rgba(255, 255, 255, 0.94); border-top: 1px solid rgba(18, 24, 29, 0.14); backdrop-filter: blur(10px); transition: opacity 0.4s, transform 0.4s; }
.deck-arrow { width: 42px; height: 42px; display: grid; place-items: center; cursor: pointer; background: #fff; border: 1px solid rgba(18, 24, 29, 0.28); border-radius: 2px; color: #12181d; transition: background 0.15s, color 0.15s; }
.deck-arrow:hover:not(:disabled) { background: #12181d; color: #fff; }
.deck-arrow:disabled { opacity: 0.3; cursor: default; }
.deck-count { font: 400 12px/1 var(--font-mono, monospace); letter-spacing: 0.12em; color: #55616b; min-width: 78px; text-align: center; }
.deck-count b { color: #12181d; font-weight: 400; }
.deck-hint { position: absolute; right: 20px; font: 400 10px/1 var(--font-mono, monospace); letter-spacing: 0.12em; text-transform: uppercase; color: #66727b; }
.deck-body.is-idle .deck-topbar { opacity: 0; transform: translateY(-100%); pointer-events: none; }
.deck-body.is-idle .deck-nav { opacity: 0; transform: translateY(100%); pointer-events: none; }
.deck-body.is-idle .deck-progress { opacity: 0; }
@media (max-width: 900px) { .deck-hint, .deck-btn span { display: none; } .deck-topbar__title { display: none; } .deck-topbar__actions { margin-left: auto; } }

/* ------------------------------------------------------------ vászon */
.deck { position: fixed; top: 58px; bottom: 68px; left: 0; right: 0; z-index: 10; }
.deck-body.is-fs .deck { top: 0; bottom: 0; }
.deck-edge { position: absolute; top: 0; bottom: 0; width: 10%; max-width: 150px; z-index: 1; cursor: pointer; background: transparent; border: 0; }
.deck-edge--left { left: 0; }
.deck-edge--right { right: 0; }
.stage { position: absolute; left: 50%; top: 50%; z-index: 2; width: 1280px; height: 720px; transform-origin: center center; background: #fbfaf6; box-shadow: 0 0 0 1px rgba(18, 24, 29, 0.12), 0 40px 120px rgba(18, 24, 29, 0.28); }
.slide { position: absolute; inset: 0; padding: 50px 64px 52px; overflow: hidden; background: #fbfaf6; color: #12181d; opacity: 0; visibility: hidden; transition: opacity 0.5s var(--ease), transform 0.5s var(--ease), visibility 0s linear 0.5s; }
.slide.is-active { opacity: 1; visibility: visible; z-index: 2; transition-delay: 0s; }
.slide.is-prev { transform: translateX(-34px); }
.slide.is-next { transform: translateX(34px); }
/* a nem aktív diákon (és az áttekintő bélyegképein) a hurkok állnak: nincs háttérterhelés, a bélyegkép determinisztikus */
.slide:not(.is-active) *, .slide:not(.is-active) *::before, .slide:not(.is-active) *::after { animation-play-state: paused !important; }
/* :where() — a lejjebb álló, abszolút pozíciójú elemek (pl. .cv, .cv-stage) felülírhatják */
.slide > :where(:not(.s-bg):not(.s-foot)) { position: relative; z-index: 2; }
.s-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; background:
  radial-gradient(700px 420px at 88% 14%, rgba(239, 84, 34, 0.1), transparent 70%),
  linear-gradient(rgba(28, 61, 99, 0.055) 1px, transparent 1px) 0 0 / 64px 64px,
  linear-gradient(90deg, rgba(28, 61, 99, 0.055) 1px, transparent 1px) 0 0 / 64px 64px; }
.s-foot { position: absolute; left: 64px; right: 64px; bottom: 20px; z-index: 2; display: flex; justify-content: space-between; font: 400 10px/1 var(--font-mono, monospace); letter-spacing: 0.14em; text-transform: uppercase; color: #66727b; }

/* ------------------------------------------------------------ tipográfia és elemek */
.deck-body .s-k { font: 400 12px/1.4 var(--font-mono, monospace); letter-spacing: 0.14em; text-transform: uppercase; color: #ac3512; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.deck-body .s-h1 { font: 300 92px/1.02 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; margin-top: 20px; }
.deck-body .s-h1 em { font-style: normal; color: #ef5422; }
.deck-body .s-h2 { font: 300 44px/1.08 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.06em; text-transform: uppercase; margin-top: 14px; max-width: 24ch; text-wrap: balance; }
.deck-body .s-h2--xl { font-size: 54px; }
.deck-body .s-h2--wide { max-width: 40ch; }
.deck-body .s-lead { font-size: 20px; line-height: 1.5; color: #55616b; margin-top: 22px; max-width: 54ch; text-wrap: pretty; }
.deck-body .s-lead--sm { font-size: 16.5px; margin-top: 14px; max-width: 76ch; }
.deck-body .s-label { font: 400 10.5px/1.3 var(--font-mono, monospace); letter-spacing: 0.14em; text-transform: uppercase; color: #55616b; }
.deck-body .s-note { font-size: 13.5px; line-height: 1.55; color: #55616b; border-left: 2px solid #ef5422; padding: 2px 0 2px 14px; max-width: 56ch; }
.deck-body .s-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.deck-body .s-chips li { font: 500 12px/1 var(--font-body, sans-serif); padding: 7px 10px; border: 1px solid rgba(18, 24, 29, 0.26); border-radius: 2px; color: #2b343c; background: #fff; }
.deck-body .s-btn { display: inline-flex; align-items: center; gap: 8px; font: 500 12.5px/1 var(--font-body, sans-serif); padding: 10px 14px; border: 1px solid #12181d; background: transparent; color: #12181d; cursor: pointer; border-radius: 2px; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.deck-body .s-btn:hover { background: #12181d; color: #fff; }
.deck-body .s-btn--play { background: #ef5422; border-color: #ef5422; color: #fff; }
.deck-body .s-btn--play:hover { background: #d3431a; border-color: #d3431a; color: #fff; }
.deck-body .s-card__act { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 22px; }
.deck-body button:focus-visible, .deck-body a:focus-visible, .deck-body [role='button']:focus-visible { outline: 2px solid #ef5422; outline-offset: 3px; }
.deck-body img { display: block; max-width: none; }

/* belépő mozgás: az alapállapot a végleges; az aktív diára „honnan” érkezik */
@keyframes d-rise { from { opacity: 0; transform: translateY(20px); } }
@keyframes d-pop { from { opacity: 0; transform: scale(0.95); } }
@keyframes d-fade { from { opacity: 0; } }
@keyframes d-grow { from { transform: scaleY(0.08); } }
.slide.is-active .rv { animation: d-rise 0.8s var(--ease) backwards; animation-delay: calc(var(--d, 0) * 110ms + 200ms); }
.slide.is-active .rv-pop { animation: d-pop 0.9s var(--ease) backwards; animation-delay: calc(var(--d, 0) * 110ms + 200ms); }

/* ------------------------------------------------------------ állapotjelzők és HUD-keret a diákon */
.deck-body .ip-status { font-size: 9.5px; padding: 4px 8px 4px 7px; }
.deck-body .ip-brk i { border-color: rgba(255, 255, 255, 0.9); }

/* ------------------------------------------------------------ referencia-csempe (A–D pillér, TabLog) */
.dt { position: relative; display: flex; flex-direction: column; text-align: left; padding: 0; background: #fff; border: 1px solid rgba(18, 24, 29, 0.14); color: #12181d; cursor: pointer; overflow: hidden; box-shadow: 0 1px 2px rgba(18, 24, 29, 0.05), 0 22px 40px -32px rgba(18, 24, 29, 0.35); transition: border-color 0.25s, transform 0.4s var(--ease), box-shadow 0.4s var(--ease); }
.dt:hover { border-color: #ef5422; transform: translateY(-4px); box-shadow: 0 2px 4px rgba(18, 24, 29, 0.06), 0 30px 50px -30px rgba(18, 24, 29, 0.45); }
.dt__m { position: relative; display: block; height: 210px; overflow: hidden; background: #dcd8cd; }
.dt__m img, .dt__m .ipv { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 0.9s var(--ease); }
.dt:hover .dt__m img, .dt:hover .dt__m .ipv { transform: scale(1.06); }
.dt__m::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18, 24, 29, 0.24), transparent 28%, transparent 68%, rgba(18, 24, 29, 0.36)); pointer-events: none; }
.dt__m:has(> .ipv)::after { display: none; }
.dt__m .ip-status { position: absolute; right: 10px; top: 10px; z-index: 4; }
.dt__c { position: absolute; left: 10px; bottom: 10px; z-index: 4; padding: 4px 8px; font: 400 9.5px/1 var(--font-mono, monospace); letter-spacing: 0.12em; text-transform: uppercase; color: #12181d; background: rgba(255, 255, 255, 0.94); border: 1px solid rgba(18, 24, 29, 0.2); }
.dt__b { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; }
.dt__b b { font: 400 17px/1.18 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; font-weight: 400; }
.dt__b em { font-style: normal; font-size: 12.5px; line-height: 1.45; color: #55616b; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.dt:hover .ip-brk i { border-color: #ef5422; }
.pl-head { display: flex; align-items: flex-start; gap: 22px; }
.pl-l { font: 300 76px/0.9 var(--font-display, 'Jost', sans-serif); color: #ef5422; letter-spacing: 0.02em; margin-top: 8px; }
.deck-body .pl-h { font-size: 38px; margin-top: 4px; max-width: 30ch; }
.deck-body .slide[data-id="pillar-infra"] .pl-h { max-width: 40ch; }
.pl-tag { font: 400 11px/1.5 var(--font-mono, monospace); letter-spacing: 0.1em; text-transform: uppercase; color: #55616b; margin-top: 8px; max-width: 92ch; }
.pl { display: grid; gap: 16px; margin-top: 24px; }
.pl--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .pl--4 .dt__m { height: 270px; }
.pl--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; } .pl--5 .dt__m { height: 270px; } .pl--5 .dt__b b { font-size: 15px; }
.pl--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 20px; } .pl--6 .dt__m { height: 124px; } .pl--6 .dt__b { padding: 12px 16px 14px; } .pl--6 .dt__b em { -webkit-line-clamp: 2; }
.slide--compact .pl-head { align-items: center; }

/* ------------------------------------------------------------ 01 — címlap: tervrajz ⇄ látvány */
.cv { position: absolute; inset: 0; z-index: 2; padding: 56px 64px; pointer-events: none; display: grid; grid-template-columns: minmax(0, 760px) minmax(0, 1fr); gap: 0 40px; align-content: start; }
.cv__copy { pointer-events: auto; }
.deck-body .cv__h1 { font-size: 58px; line-height: 1.05; margin-top: 16px; max-width: 22ch; }
.deck-body .cv__lead { align-self: end; max-width: 40ch; font-size: 17px; margin: 0 0 6px; pointer-events: auto; }
.cv-stage { position: absolute; left: 64px; right: 64px; bottom: 74px; height: 318px; z-index: 3; }
.cv-stage .ip-cmp { height: 100%; }
.cv-stage .ip-cmp__stage { aspect-ratio: auto; height: 100%; }
.cv-stage .ip-cmp__bar { position: absolute; right: 12px; bottom: 12px; margin: 0; z-index: 6; }
.cv-stage .ip-cmp__note, .cv-stage .ip-cmp__hint { display: none; }
.cv-stage .ip-cmp__tgl { padding: 7px 11px 7px 8px; font-size: 11.5px; }
.cv__partners { position: absolute; left: 64px; right: 64px; bottom: 44px; z-index: 2; font: 400 10.5px/1.5 var(--font-mono, monospace); letter-spacing: 0.12em; text-transform: uppercase; color: #66727b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ------------------------------------------------------------ 02 — három kérdés */
.qs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 26px; }
.qs-p { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(18, 24, 29, 0.14); overflow: hidden; box-shadow: 0 22px 40px -32px rgba(18, 24, 29, 0.35); }
.qs-p__m { position: relative; height: 226px; overflow: hidden; background: #dcd8cd; }
.qs-p__m img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.2s var(--ease); }
.qs-p:hover .qs-p__m img { transform: scale(1.06); }
.qs-p__b { display: flex; flex-direction: column; padding: 16px 22px 20px; }
.qs-p__n { font: 300 50px/1 var(--font-display, 'Jost', sans-serif); color: transparent; -webkit-text-stroke: 1px rgba(18, 24, 29, 0.55); transition: color 0.4s, -webkit-text-stroke-color 0.4s; }
.qs-p:hover .qs-p__n { color: #ef5422; -webkit-text-stroke-color: #ef5422; }
.qs-p__t { font: 400 23px/1.12 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; margin-top: 6px; }
.qs-p__p { font-size: 14px; line-height: 1.5; color: #55616b; margin-top: 8px; }
.qs-p__refs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.qs-p__refs button { display: inline-flex; align-items: center; gap: 8px; padding: 8px 11px; cursor: pointer; font: 400 10.5px/1 var(--font-mono, monospace); letter-spacing: 0.1em; text-transform: uppercase; color: #12181d; background: #fff; border: 1px solid rgba(18, 24, 29, 0.28); transition: background 0.2s, color 0.2s; }
.qs-p__refs button:hover { background: #12181d; color: #fff; }

/* ------------------------------------------------------------ 04 — Waterfront: a képernyőfelvétel */
.wf { display: grid; grid-template-columns: 748px minmax(0, 1fr); gap: 40px; height: 576px; align-items: start; }
.wf__main { display: flex; flex-direction: column; }
.wf-screen { margin-top: 18px; }
.wf-screen .ip-cap { padding-bottom: 30px; }
.wf__side { display: flex; flex-direction: column; padding-top: 52px; }
.wf__side .ip-cap__steps { margin-top: 0; }
.wf__side .ip-cap__step button { padding: 14px 0 14px 12px; }
.wf__side .ip-cap__step em { font-size: 13px; margin-top: 3px; }
.wf__side .ip-cap__step b { font-size: 16px; }
.wf__side .s-card__act { margin-top: 20px; }

/* ------------------------------------------------------------ 08–14 — eszköztár: demó + „mire használható” */
.tl-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.deck-body .tl-h { font-size: 36px; margin-top: 8px; max-width: 34ch; }
.tl-dots { display: flex; gap: 7px; margin-top: 4px; }
.tl-dots li { width: 28px; height: 4px; background: rgba(18, 24, 29, 0.16); cursor: pointer; transition: background 0.3s; }
.tl-dots li.is-on { background: #ef5422; }
.tl-dots li:hover { background: rgba(239, 84, 34, 0.55); }
.tl { display: grid; grid-template-columns: 620px minmax(0, 1fr); gap: 32px; margin-top: 12px; align-items: start; }
.tl__main { min-width: 0; }
.tl__main .ip-tool__body { display: block; }
.tl__main .ip-tool__ctl { padding-top: 10px; gap: 8px; }
.tl__main .ip-ctl-row { gap: 8px 14px; }
.tl__main .ip-ctl { flex: 1 1 150px; min-width: 140px; gap: 8px; }
.tl__main .ip-ctl__l { font-size: 9.5px; }
.tl__main .ip-seg button { padding: 7px 10px; font-size: 11.5px; }
.tl__main .ip-tgl { padding: 6px 10px 6px 8px; font-size: 11.5px; }
.tl__main .ip-tool__info { min-height: 2.6em; font-size: 13px; padding: 2px 0 2px 10px; }
.tl__main .ip-tool__hint { font-size: 9px; padding: 5px 8px; }
.tl__main .ip-tool__tag { font-size: 9px; }
.tl__main .ip-legend2 { font-size: 9px; padding: 7px 9px; }
.tl__main .ip-stats2 > div { padding: 10px 10px 4px; }
.tl__main .ip-stats2 dd { font-size: 26px; }
.tl__main .ip-stats2 dt { font-size: 8.5px; }
.tl__main .ip-phases li { padding: 5px 8px; font-size: 9px; }
.tl__main .ip-moods { gap: 8px; }
.tl__main .ip-mood { padding: 7px 8px; gap: 8px; }
.tl__main .ip-mood__sw i { width: 16px; height: 30px; }
.tl__main .ip-mood__t b { font-size: 11.5px; }
.tl__main .ip-mood__t em { font-size: 10px; }
.tl__main .ip-play { min-width: 100px; padding: 8px 12px; font-size: 12px; }
.tl__main .ip-pfcard { font-size: 11.5px; width: min(230px, 52%); }
.tl__side { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding-top: 4px; }
.tl__side .ip-tool__k, .tl__side .ip-tool__t { display: none; }
.tl__side .ip-use__i { padding: 10px 0 11px; }
.tl__side .ip-use dt { font-size: 10px; }
.tl__side .ip-use dd { font-size: 14px; }
.tl__side .ip-use__i--main dd { font-size: 16.5px; }
.tl__side .ip-built__chip { font-size: 10px; padding: 7px 10px; }
.tl__side .ip-tool__more { margin-top: 4px; }

/* ------------------------------------------------------------ 15 — felületek (hub, világos változat) */
.hb { width: 1060px; margin: 8px auto 0; background: #fff; border: 1px solid rgba(18, 24, 29, 0.14); padding: 14px 18px; box-shadow: 0 30px 50px -40px rgba(18, 24, 29, 0.4); }
.hb .ip-hub { width: 100%; height: auto; }
.hb .ip-hub__tile { fill: #fff; stroke: rgba(18, 24, 29, 0.24); stroke-width: 1.2; transition: stroke 0.25s; }
.hb .ip-hub__tile--acc { stroke: #ef5422; fill: rgba(239, 84, 34, 0.05); }
.hb .ip-hub__icobg { fill: #e4edf6; }
.hb .ip-hub__ico2 { stroke: #1c3d63; }
.hb .ip-hub__lbl { font: 500 19px 'Space Grotesk', sans-serif; fill: #12181d; }
.hb .ip-hub__lbl--c, .hb .ip-hub__sub--c { text-anchor: middle; }
.hb .ip-hub__ico { stroke: #ef5422; }
.hb .ip-hub__sub { font: 400 12.5px 'Space Mono', monospace; fill: #55616b; letter-spacing: 0.04em; }
.hb .ip-hub__more { font: 400 11.5px 'Space Mono', monospace; fill: #ac3512; letter-spacing: 0.1em; text-transform: uppercase; }
.hb .ip-hub__tag { font: 400 10.5px 'Space Mono', monospace; fill: #55616b; letter-spacing: 0.1em; text-transform: uppercase; }
.hb .ip-hub__line { stroke: rgba(18, 24, 29, 0.32); animation: none; }
.hb .ip-hub__pulse { fill: #ef5422; offset-rotate: 0deg; animation: none; opacity: 0; }
.slide.is-active .hb .ip-hub__line { animation: d-flow 1.4s linear infinite; }
.slide.is-active .hb .ip-hub__pulse { opacity: 1; animation: ip-orbit 3.6s linear infinite; animation-delay: calc(var(--i, 0) * -0.6s); }
@keyframes d-flow { to { stroke-dashoffset: -24; } }
@keyframes ip-orbit { from { offset-distance: 0%; } to { offset-distance: 100%; } }
.hb .ip-hub__node:hover .ip-hub__tile, .hb .ip-hub__node:focus-visible .ip-hub__tile { stroke: #ef5422; }
.slide.is-active .hb .ip-hub__node { animation: d-pop 0.7s var(--ease) backwards; animation-delay: calc(0.4s + var(--i, 0) * 0.12s); }
.hb__pts { position: absolute; right: 64px; top: 76px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.hb__pts li { font: 400 11px/1 var(--font-mono, monospace); letter-spacing: 0.12em; text-transform: uppercase; color: #2b343c; padding: 8px 12px; border: 1px solid rgba(18, 24, 29, 0.2); background: #fff; }
.hb__pts b { font-weight: 400; }

/* ------------------------------------------------------------ 16 — AI-demó */
.ax { position: absolute; left: 64px; right: 64px; top: 44px; bottom: 52px; display: grid; grid-template-columns: 700px minmax(0, 1fr); gap: 44px; align-items: start; z-index: 2; }
.ax__demo { padding-top: 6px; }
.ax .ip-ai__scene { aspect-ratio: 16 / 8.2; }
.ax .ip-ai__log { height: 96px; }
.ax .ip-ai__chat { gap: 9px; padding: 12px 14px; }
.ax .ip-ai__input { padding: 9px 12px; }
.ax .ip-msg { font-size: 13px; padding: 7px 11px; }
.ax .ip-ai__chips { flex-direction: row; flex-wrap: wrap; right: 16px; gap: 6px; }
.ax__copy { display: flex; flex-direction: column; padding-top: 4px; }
.ax-flow { margin-top: 22px; display: grid; gap: 0; border-top: 1px solid rgba(18, 24, 29, 0.2); }
.ax-flow li { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(18, 24, 29, 0.12); font: 400 18px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.06em; text-transform: uppercase; }
.ax-flow li span { font: 400 11px/1 var(--font-mono, monospace); letter-spacing: 0.14em; color: #ac3512; width: 26px; }
.ax-flow li:nth-child(3) { background: linear-gradient(90deg, rgba(239, 84, 34, 0.12), transparent); border-left: 2px solid #ef5422; padding-left: 12px; }
.slide.is-active .ax-flow li { animation: ax-glow 3.6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 0.5s + 1s); }
@keyframes ax-glow { 0%, 60%, 100% { color: #12181d; } 12%, 30% { color: #ef5422; } }
.ax__s { margin-top: 20px; font-size: 16.5px; line-height: 1.5; color: #12181d; max-width: 40ch; }
.ax .s-note { margin-top: 18px; }

/* ------------------------------------------------------------ 17 — az AI-réteg képességei */
.ac { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.ac-t { position: relative; display: flex; flex-direction: column; gap: 7px; padding: 14px 18px 14px; min-height: 142px; background: #fff; border: 1px solid rgba(18, 24, 29, 0.14); transition: border-color 0.25s, transform 0.4s var(--ease); }
.ac-t:hover { border-color: #ef5422; transform: translateY(-4px); }
.ac-t__ic { color: #1c3d63; margin-bottom: 2px; }
.ac-t__ic .ipi { width: 34px; height: 34px; }
.ac-t b { font: 400 16px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; font-weight: 400; }
.ac-t em { font-style: normal; font-size: 12px; line-height: 1.45; color: #55616b; }
.ac-proofs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(18, 24, 29, 0.2); }
.ac-proofs li { display: flex; flex-direction: column; gap: 5px; }
.ac-proofs strong { font: 400 14px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 400; color: #ac3512; }
.ac-proofs span { font-size: 11.5px; line-height: 1.4; color: #55616b; }
.ac-note { margin-top: 12px; max-width: none; }

/* ------------------------------------------------------------ 18 — átadás után: a vendég útja és a TabLog */
.gf { position: relative; margin-top: 18px; background: #fff; border: 1px solid rgba(18, 24, 29, 0.14); padding: 22px 24px 18px; box-shadow: 0 24px 40px -34px rgba(18, 24, 29, 0.4); }
.gf-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.gf-steps::before { content: ''; position: absolute; left: 12.5%; right: 12.5%; top: 28px; border-top: 2px dashed rgba(18, 24, 29, 0.28); }
.gf-steps li { position: relative; display: grid; justify-items: center; text-align: center; gap: 5px; }
.gf-ic { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #fff; border: 2px solid #1c3d63; color: #1c3d63; position: relative; z-index: 1; }
.gf-ic .ipi { width: 30px; height: 30px; }
.gf-n { margin-top: 6px; font: 400 10px/1 var(--font-mono, monospace); letter-spacing: 0.14em; color: #ac3512; }
.gf-steps b { font: 400 16px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; font-weight: 400; }
.gf-steps em { font-style: normal; font-size: 12.5px; line-height: 1.4; color: #55616b; max-width: 24ch; }
.gf-dot { position: absolute; top: 50px; left: calc(24px + (100% - 48px) * 0.125); width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: #ef5422; box-shadow: 0 0 0 5px rgba(239, 84, 34, 0.2); opacity: 0; z-index: 2; }
.slide.is-active .gf-dot { opacity: 1; animation: gf-move 6s linear infinite; }
.slide.is-active .gf-ic { animation: gf-lit 6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 1.5s); }
@keyframes gf-move { from { left: calc(24px + (100% - 48px) * 0.125); } to { left: calc(24px + (100% - 48px) * 0.875); } }
@keyframes gf-lit { 0%, 22%, 100% { border-color: #1c3d63; color: #1c3d63; background: #fff; box-shadow: none; } 4%, 18% { border-color: #ef5422; color: #ef5422; background: #fff4ee; box-shadow: 0 0 0 6px rgba(239, 84, 34, 0.14); } }
.tb { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.dt--s .dt__m { height: 132px; }
.dt--s .dt__b { padding: 11px 14px 13px; }
.dt--s .dt__b b { font-size: 15px; }
.dt--s .dt__b em { -webkit-line-clamp: 2; font-size: 12px; }

/* ------------------------------------------------------------ 19 — nemzetközi: térkép és az épülő portfólió */
.mp { width: 840px; margin: 4px auto 0; }
.mp .ip-map { width: 100%; }
.slide.is-active .ip-map__arc:not(.ip-map__arc--show) { animation: ip-draw 1.9s var(--ease) backwards; animation-delay: calc(0.5s + var(--i, 0) * 0.28s); }
.slide.is-active .ip-map__arc--show { animation: d-fade 0.8s ease 1.8s backwards; }
.yr { position: relative; display: grid; grid-template-columns: repeat(var(--n, 7), minmax(0, 1fr)); gap: 12px; margin-top: 62px; border-top: 2px solid #12181d; }
.yr::before { content: ''; position: absolute; left: 0; right: 0; top: 2px; height: 9px; background: repeating-linear-gradient(135deg, rgba(18, 24, 29, 0.38) 0 1px, transparent 1px 7px); pointer-events: none; }
.yr-s { position: relative; padding-top: 22px; }
.yr-b { position: absolute; left: 0; bottom: 100%; width: 30px; height: var(--h, 34px); background-color: #fff; background-image: repeating-linear-gradient(0deg, transparent 0 6px, rgba(28, 61, 99, 0.28) 6px 7px), repeating-linear-gradient(90deg, transparent 0 7px, rgba(28, 61, 99, 0.28) 7px 8px); border: 1.5px solid #12181d; border-bottom: 0; transform-origin: 50% 100%; }
.yr-s--idea .yr-b { border-style: dashed; }
.slide.is-active .yr-b { animation: d-grow 0.9s var(--ease) backwards; animation-delay: calc(0.4s + var(--i) * 0.28s); }
.yr-s button { display: flex; flex-direction: column; gap: 6px; width: 100%; padding: 12px 4px 0 0; text-align: left; cursor: pointer; background: none; border: 0; color: #12181d; }
.yr-w { font: 400 12px/1 var(--font-mono, monospace); letter-spacing: 0.14em; color: #ac3512; }
.yr-t { font: 400 15px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; transition: color 0.2s; }
.yr-p { font-size: 12px; line-height: 1.4; color: #55616b; }
.yr-s button:hover .yr-t { color: #ac3512; }

/* ------------------------------------------------------------ 20 — csomagok */
.pk { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
.pk-t { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; text-align: left; padding: 18px 18px 14px; min-height: 226px; background: #fff; border: 1px solid rgba(18, 24, 29, 0.14); color: #12181d; cursor: pointer; transition: border-color 0.25s, transform 0.4s var(--ease); box-shadow: 0 22px 40px -34px rgba(18, 24, 29, 0.35); }
.pk-t:hover { border-color: #ef5422; transform: translateY(-4px); }
.pk-t__ic { color: #1c3d63; transition: color 0.3s; }
.pk-t:hover .pk-t__ic { color: #ef5422; }
.pk-t__ic .ipi { width: 40px; height: 40px; }
.pk-t__b { display: flex; flex-direction: column; gap: 7px; }
.pk-t__b b { font: 400 16px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; font-weight: 400; }
.pk-t__b em { font-style: normal; font-size: 12px; line-height: 1.45; color: #55616b; }
.pk-t__r { margin-top: auto; padding-top: 8px; width: 100%; font: 400 9px/1.5 var(--font-mono, monospace); letter-spacing: 0.1em; text-transform: uppercase; color: #66727b; border-top: 1px solid rgba(18, 24, 29, 0.12); }

/* ------------------------------------------------------------ 21 — bevezetés: a házak lépésről lépésre nőnek */
.ps { position: relative; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 22px; margin-top: 18px; padding-top: 178px; }
.ps::before { content: ''; position: absolute; left: 0; right: 0; top: 178px; border-top: 2px solid #12181d; }
.ps::after { content: ''; position: absolute; left: 0; right: 0; top: 180px; height: 9px; background: repeating-linear-gradient(135deg, rgba(18, 24, 29, 0.38) 0 1px, transparent 1px 7px); }
.ps-s { position: relative; padding-top: 24px; }
.ps-b { position: absolute; left: 0; top: calc(-1 * var(--h, 60px)); width: 48px; height: var(--h, 60px); background-color: #fff; background-image: repeating-linear-gradient(0deg, transparent 0 7px, rgba(28, 61, 99, 0.28) 7px 8px), repeating-linear-gradient(90deg, transparent 0 8px, rgba(28, 61, 99, 0.28) 8px 9px); border: 1.5px solid #12181d; border-bottom: 0; transform-origin: 50% 100%; }
.slide.is-active .ps-b { animation: d-grow 1s var(--ease) backwards; animation-delay: calc(0.5s + var(--i) * 0.4s); }
.ps-s__n { font: 400 11px/1 var(--font-mono, monospace); letter-spacing: 0.14em; color: #ac3512; }
.ps-s h3 { font: 400 18px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; margin-top: 10px; font-weight: 400; }
.ps-s p { font-size: 13px; line-height: 1.5; color: #55616b; margin-top: 8px; }
.ps__meas { position: absolute; left: 64px; right: 64px; bottom: 54px; z-index: 2; display: flex; flex-direction: column; gap: 10px; }

/* ------------------------------------------------------------ 22 — kapcsolat */
.slide--cta .s-bg { background: radial-gradient(800px 520px at 18% 30%, rgba(239, 84, 34, 0.14), transparent 70%), linear-gradient(rgba(28, 61, 99, 0.055) 1px, transparent 1px) 0 0 / 64px 64px, linear-gradient(90deg, rgba(28, 61, 99, 0.055) 1px, transparent 1px) 0 0 / 64px 64px; }
.ct { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 56px; align-items: center; height: 560px; }
.ct__copy { display: flex; flex-direction: column; }
.ct-steps { margin-top: 26px; border-top: 1px solid rgba(18, 24, 29, 0.2); }
.ct-steps li { display: grid; grid-template-columns: 46px 1fr; gap: 6px; padding: 13px 0; border-bottom: 1px solid rgba(18, 24, 29, 0.12); }
.ct-steps li > span { font: 300 24px/1 var(--font-display, 'Jost', sans-serif); color: #ef5422; }
.ct-steps b { font: 400 16px/1.2 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; font-weight: 400; }
.ct-steps p { font-size: 13.5px; line-height: 1.45; color: #55616b; margin-top: 4px; }
.ct-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 34px 32px 30px; background: #fff; border: 1px solid rgba(18, 24, 29, 0.2); box-shadow: 0 34px 60px -44px rgba(18, 24, 29, 0.5); }
.ct-card::before { content: ''; position: absolute; left: -1px; top: -1px; width: 56px; height: 3px; background: #ef5422; }
.ct-online { display: inline-flex; align-items: center; gap: 9px; font: 400 10.5px/1 var(--font-mono, monospace); letter-spacing: 0.14em; text-transform: uppercase; color: #55616b; }
.ct-online i { width: 8px; height: 8px; border-radius: 50%; background: #1f9d63; }
.slide.is-active .ct-online i { animation: ip-blink 1.8s ease-in-out infinite; }
.ct-card__n { font: 300 30px/1.1 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; margin-top: 6px; }
.ct-card__r { font: 400 11.5px/1.4 var(--font-mono, monospace); letter-spacing: 0.12em; text-transform: uppercase; color: #55616b; margin-bottom: 8px; }
.s-cta { align-self: stretch; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 17px 24px; font: 500 16px/1 var(--font-body, sans-serif); color: #fff; background: #ef5422; border: 1px solid #ef5422; text-decoration: none; border-radius: 2px; transition: background 0.2s; }
.s-cta:hover { background: #d3431a; color: #fff; text-decoration: none; }
.slide.is-active .s-cta { animation: ct-ring 2.8s ease-out 2.4s infinite; }
@keyframes ct-ring { 0% { box-shadow: 0 0 0 0 rgba(239, 84, 34, 0.5); } 70%, 100% { box-shadow: 0 0 0 18px rgba(239, 84, 34, 0); } }
.ct-card__l a, .ct-card__tel, .ct-card__tel a { font-size: 15px; color: #12181d; text-decoration: none; }
.ct-card__l { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.s-copy { font: 400 10px/1 var(--font-mono, monospace); letter-spacing: 0.1em; text-transform: uppercase; color: #55616b; background: none; border: 1px solid rgba(18, 24, 29, 0.26); border-radius: 2px; padding: 6px 9px; cursor: pointer; }
.s-copy:hover { color: #12181d; border-color: #12181d; }
.ct-card__l a { border-bottom: 1px solid rgba(18, 24, 29, 0.26); padding-bottom: 2px; }
.ct-card__l a:hover { color: #ac3512; border-color: #ac3512; text-decoration: none; }
.ct-card__tel { display: inline-flex; align-items: center; gap: 9px; padding: 0 0 2px; background: none; border: 0; border-bottom: 1px solid rgba(18, 24, 29, 0.26); cursor: pointer; }
.ct-card__tel:hover { color: #ac3512; border-color: #ac3512; }
.ct-card__u { font: 400 11px/1 var(--font-mono, monospace); letter-spacing: 0.14em; color: #66727b; margin-top: 8px; }

/* ------------------------------------------------------------ áttekintő nézet */
.overview { position: fixed; inset: 0; z-index: 60; display: none; background: #ece8dd; overflow-y: auto; padding: 78px 32px 40px; }
.overview.is-open { display: block; }
.overview__head { position: fixed; top: 0; left: 0; right: 0; height: 56px; background: #fff; border-bottom: 1px solid rgba(18, 24, 29, 0.14); display: flex; align-items: center; justify-content: space-between; padding: 0 20px; z-index: 2; }
.overview__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; max-width: 1500px; margin: 0 auto; }
.ov-cell { display: block; width: 100%; text-align: left; padding: 0; background: transparent; border: 0; cursor: pointer; font: inherit; color: inherit; }
.ov-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid rgba(18, 24, 29, 0.2); background: #fbfaf6; transition: border-color 0.2s, transform 0.3s var(--ease); }
.ov-cell:hover .ov-frame, .ov-cell:focus-visible .ov-frame { border-color: #ef5422; transform: translateY(-2px); }
.ov-cell.is-current .ov-frame { border: 2px solid #ef5422; }
.ov-frame .slide { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; opacity: 1 !important; visibility: visible !important; transform-origin: top left; pointer-events: none; transition: none; }
.ov-cap { font: 400 10px/1.4 var(--font-mono, monospace); letter-spacing: 0.1em; text-transform: uppercase; color: #55616b; margin-top: 9px; }
.ov-cell.is-current .ov-cap { color: #ac3512; }

/* ------------------------------------------------------------ indítókapu */
.gate { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: #fbfaf6; transition: opacity 0.5s var(--ease), visibility 0s linear 0.5s; }
.gate.is-gone { opacity: 0; visibility: hidden; pointer-events: none; }
.gate__bg { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(900px 560px at 72% 36%, rgba(239, 84, 34, 0.14), transparent 70%), linear-gradient(rgba(28, 61, 99, 0.06) 1px, transparent 1px) 0 0 / 64px 64px, linear-gradient(90deg, rgba(28, 61, 99, 0.06) 1px, transparent 1px) 0 0 / 64px 64px; }
.gate__box { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 0 24px; max-width: 760px; animation: d-rise 0.9s var(--ease) both; }
.gate__brand { display: inline-flex; align-items: baseline; gap: 1px; margin-bottom: 18px; }
.gate__brand b { font: 400 26px/1 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.02em; color: #12181d; }
.gate__brand span { font: 300 26px/1 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.02em; color: #ef5422; }
.gate__t { font: 300 clamp(40px, 7vw, 84px)/1.04 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.05em; text-transform: uppercase; color: #12181d; }
.gate__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.gate__hint { margin-top: 18px; font: 400 10.5px/1.5 var(--font-mono, monospace); letter-spacing: 0.12em; text-transform: uppercase; color: #66727b; }

/* ------------------------------------------------------------ videó */
.deck-vid { padding: 0; border: 0; margin: 0; background: transparent; max-width: none; max-height: none; width: 100%; height: 100%; color: #fff; }
.deck-vid[open] { display: grid; place-items: center; }
.deck-vid::backdrop { background: rgba(18, 24, 29, 0.86); }
.deck-vid__box { width: min(1180px, calc(100vw - 64px)); }
.deck-vid__bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.deck-vid__bar > span { font: 300 24px/1.1 var(--font-display, 'Jost', sans-serif); letter-spacing: 0.06em; text-transform: uppercase; }
.deck-vid__bar > div { display: flex; gap: 8px; }
.deck-vid__frame { position: relative; aspect-ratio: 16 / 9; background: #000; }
.deck-vid__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ------------------------------------------------------------ mozgáscsökkentés, nyomtatás */
@media (prefers-reduced-motion: reduce) {
  .deck-body *, .deck-body *::before, .deck-body *::after { animation: none !important; transition-duration: 0.001ms !important; }
  .slide.is-prev, .slide.is-next { transform: none; }
}
@media print {
  @page { size: 1280px 720px; margin: 0; }
  .deck-topbar, .deck-nav, .deck-progress, .deck-edge, .overview, .gate, .deck-vid, .ip-dialogs, .s-card__act, .s-copy, .tl-dots { display: none !important; } /* nyomtatásban a kattintható elemeknek nincs értelme */
  .deck-body { height: auto; overflow: visible; background: #fbfaf6; }
  .deck { position: static; }
  .stage { position: static; transform: none !important; width: 1280px; height: auto; box-shadow: none; }
  .slide { position: relative; inset: auto; width: 1280px; height: 720px; opacity: 1 !important; visibility: visible !important; transform: none !important; page-break-after: always; break-after: page; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .deck-body *, .deck-body *::before, .deck-body *::after { animation: none !important; backdrop-filter: none !important; }
}
