/* ==== WIE FX – extra animációs és stílusréteg (main.css után töltődik) ==== */
:root{--fx-gold:#f2d8b7;--fx-bronze:#c99b62;--fx-navy:#0c1726;--fx-ease:cubic-bezier(.2,.8,.2,1)}
::selection{background:rgba(201,155,98,.55);color:#fff}

/* Görgetősáv: vastagabb, könnyen megfogható csúszka */
html{scrollbar-color:#c99b62 #0c1726;scrollbar-width:auto}
::-webkit-scrollbar{width:16px}
::-webkit-scrollbar-track{background:#0c1726}
::-webkit-scrollbar-thumb{background:linear-gradient(#f2d8b7,#a97245);border-radius:16px;border:3px solid #0c1726;min-height:48px}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(#fff1de,#c99b62)}

/* Atmoszféra: lassan sodródó fény, filmszemcse */
.fx-atmo{position:fixed;inset:0;pointer-events:none;z-index:2147482000;overflow:hidden}
.fx-aurora{position:absolute;width:70vmax;height:70vmax;border-radius:50%;opacity:.06;
  background:radial-gradient(circle,#f2d8b7 0%,rgba(201,155,98,.45) 30%,rgba(201,155,98,.12) 50%,transparent 70%);will-change:transform;contain:strict}
.fx-aurora.a1{left:-20vmax;top:-25vmax;animation:fxDrift1 38s ease-in-out infinite alternate}
.fx-aurora.a2{right:-25vmax;bottom:-30vmax;opacity:.05;animation:fxDrift2 46s ease-in-out infinite alternate}
@keyframes fxDrift1{to{transform:translate(35vw,30vh) scale(1.2)}}
@keyframes fxDrift2{to{transform:translate(-30vw,-25vh) scale(.85)}}
.fx-grain{position:absolute;inset:-12%;opacity:.05;animation:fxGrain 1.4s steps(5) infinite;will-change:transform;contain:strict;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes fxGrain{0%{transform:translate3d(0,0,0)}20%{transform:translate3d(-5%,4%,0)}40%{transform:translate3d(4%,-6%,0)}60%{transform:translate3d(-7%,-3%,0)}80%{transform:translate3d(6%,7%,0)}100%{transform:translate3d(0,0,0)}}

/* 3D döntés + fényfolt */
:where(.fx-tilt){position:relative}
.fx-tilt.fx-hot{will-change:rotate}
.fx-glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:5;opacity:0;transition:opacity .4s;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,240,220,.16),rgba(242,216,183,.04) 35%,transparent 60%)}
.fx-tilt.fx-hot .fx-glare{opacity:1}
.fx-tilt.fx-hot{box-shadow:0 30px 60px -25px rgba(0,0,0,.65),0 0 0 1px rgba(242,216,183,.18)}
/* A helyszínválasztó felei csak fényfoltot kapnak, döntést nem – így a kerek keret sosem nyílik ki */
.dest-card.fx-hot{box-shadow:none}

/* Szkenner-söprés képeken, amikor láthatóvá válnak */
:where(.fx-scan-host){position:relative;overflow:hidden}
.fx-scan{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden;border-radius:inherit}
.fx-scan::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,23,38,.85),rgba(12,23,38,.55));
  transform-origin:right;transition:scale 1.1s var(--fx-ease) .15s}
.fx-scan::after{content:"";will-change:translate;position:absolute;top:0;bottom:0;left:0;width:3px;background:#f2d8b7;
  box-shadow:0 0 18px 4px rgba(242,216,183,.75),0 0 60px 12px rgba(201,155,98,.35);translate:-10px 0;opacity:0}
.fx-scanned .fx-scan::before{scale:0 1}
.fx-scanned .fx-scan::after{animation:fxScan 1.1s var(--fx-ease) .15s forwards}
@keyframes fxScan{0%{translate:-10px 0;opacity:1}90%{opacity:1}100%{translate:calc(var(--fx-w,600px) + 10px) 0;opacity:0}}

/* Méretvonal a szekciócímek alatt */
:where(.fx-dim-host){position:relative}
.fx-dim{position:absolute;left:0;bottom:-18px;width:min(240px,100%);height:12px;pointer-events:none;color:#c99b62}
.fx-dim svg{display:block;width:100%;height:100%;overflow:visible}
.fx-dim path{fill:none;stroke:currentColor;stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s var(--fx-ease)}
.fx-dim path.t{transition-delay:.9s;transition-duration:.35s}
.fx-dim.on path{stroke-dashoffset:0}
.fx-dim .dot{fill:#f2d8b7;opacity:0;transition:opacity .4s 1.1s}
.fx-dim.on .dot{opacity:1;animation:fxDot 2.4s ease-in-out 1.5s infinite;animation-play-state:paused}
.fx-dim.on.fx-live .dot{animation-play-state:running}
@keyframes fxDot{50%{opacity:.25}}

/* Fénycsík a fő gombokon */
:where(.btn-primary){position:relative;overflow:hidden;isolation:isolate}
.fx-shine{position:absolute;top:-20%;bottom:-20%;left:0;width:45%;pointer-events:none;z-index:2;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55) 50%,transparent);translate:-160% 0;rotate:12deg;
  animation:fxShine 5.5s var(--fx-ease) infinite;animation-delay:var(--sd,1s);animation-play-state:paused}
.fx-live .fx-shine{animation-play-state:running}
.btn-primary:hover .fx-shine{animation:fxShineHover .8s var(--fx-ease)}
@keyframes fxShine{0%{translate:-160% 0}18%,100%{translate:330% 0}}
@keyframes fxShineHover{from{translate:-160% 0}to{translate:330% 0}}

/* Menüpontok: hoverre átforduló szöveg */
.fx-roll{position:relative;display:inline-block;line-height:1.4;clip-path:inset(0 -4px)}
.fx-roll>span{display:inline-block;transition:translate .5s var(--fx-ease)}
.fx-roll::after{content:attr(data-t);position:absolute;left:0;top:100%;color:#f2d8b7;transition:translate .5s var(--fx-ease)}
a:hover>.fx-roll>span,a:focus-visible>.fx-roll>span,a:hover>.fx-roll::after,a:focus-visible>.fx-roll::after{translate:0 -100%}

/* Kezdőlap hős: felmérési pontháló */
.fx-ph-dim{position:absolute;inset:0;background:#0c1726;opacity:0;pointer-events:none;z-index:1;will-change:opacity}
:where(.page-hero-media){position:relative}
.fx-net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.6s}
.fx-net.on{opacity:1}
:where(.hero){position:relative}
:where(.hero>.container){position:relative;z-index:1}
.blueprint .bp-layer,.blueprint .bp-caption{will-change:translate}

/* Típusház oldalak: óriás körvonalas házkód a háttérben */
:where(.gallery-head){position:relative;overflow:hidden}
:where(.gallery-head>.container){position:relative;z-index:1}
.fx-ghost{position:absolute;right:-2vw;top:50%;translate:0 -50%;z-index:0;pointer-events:none;user-select:none;
  font:700 clamp(160px,30vw,460px)/.8 Georgia,"Times New Roman",serif;letter-spacing:-.04em;color:transparent;
  -webkit-text-stroke:1.5px rgba(242,216,183,.2);will-change:translate,opacity;
  animation:fxGhostIn 1.6s var(--fx-ease) .2s both}
.fx-ghost.fx-live{animation:fxGhostIn 1.6s var(--fx-ease) .2s both,fxGhostBreath 6s ease-in-out 2s infinite}
@keyframes fxGhostIn{from{opacity:0;scale:1.15}to{opacity:1;scale:1}}
@keyframes fxGhostBreath{50%{opacity:.55}}

/* Idővonal csomópontok lüktetése */
.step-node{position:relative}
.fx-node-ring{position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(242,216,183,.6);pointer-events:none;
  animation:fxNode 2.8s ease-out infinite;animation-play-state:paused}
.fx-live .fx-node-ring,.fx-node-ring.fx-live{animation-play-state:running}
@keyframes fxNode{from{scale:.8;opacity:.9}to{scale:1.7;opacity:0}}

/* ==== 2026-10 módosítások ==== */

/* Helyszínválasztó: a lekerekítés a képek mozgatásakor se nyíljon ki (clip-path + maszk minden böngészőben vág) */
.dest-ring{padding:5px;border:1px solid var(--champagne);border-radius:999px}
.dest{outline:0;clip-path:inset(0 round 999px);-webkit-mask-image:-webkit-radial-gradient(#fff,#000);transform:none}
.dest-card img{backface-visibility:hidden}
@media (max-width:768px){.dest-ring{border-radius:50px}.dest{clip-path:inset(0 round 44px)}}

/* Vácrátót: település-ovál a "Szent István Lakódomb" jelvény fölött */
.hero-badges{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.hero-badge--town{padding:9px 22px;font-size:13px;letter-spacing:.2em;background:rgba(169,122,69,.28);border-color:rgba(242,216,183,.55);color:#fff;animation-delay:1.35s}
@media (max-width:768px){.hero-badges{align-items:flex-start}}

/* 3D térkép: egyetlen gomb, új lapon nyílik */
.map3d-actions .btn svg{flex:0 0 auto}

/* Látványterv-pakli: a még hiányzó képek helyén elegáns üres lap */
.deck-card.is-missing,.house-card .pic.is-missing,.thumb.is-missing{background:
  repeating-linear-gradient(45deg,rgba(242,216,183,.05) 0 12px,transparent 12px 24px),var(--navy-2,#122434)}
.deck-card.is-missing img,.house-card .pic.is-missing img,.thumb.is-missing img{visibility:hidden}
.thumb.is-missing{pointer-events:none}
.deck-card[data-pos]:not([data-pos="0"]):not([data-pos="1"]):not([data-pos="2"]){z-index:0;transform:translate(28px,-28px) rotate(5deg) scale(.9);filter:brightness(.4);opacity:0}

/* Mobil / tablet kezdőlap: a felirat legyen elöl, a rajzolódó ház csak kísérő elem */
@media (max-width:1080px){
  .hero-inner{gap:8px}
  .hero .blueprint{order:1;max-width:360px;margin:4px auto 0;opacity:.85}
}
@media (max-width:768px){
  .hero .blueprint{max-width:280px}
  .hero .bp-caption{display:none}
}

/* Mozgáscsökkentés és érintőképernyő */
@media (prefers-reduced-motion:reduce){
  .fx-aurora,.fx-grain,.fx-shine,.fx-ghost,.fx-node-ring,.fx-dim .dot{animation:none!important}
  .fx-net{display:none!important}
  .fx-scan{display:none}
  .fx-roll>span,.fx-roll::after{transition:none}
}
@media (hover:none){.fx-glare{display:none}}

/* Takarékos mód: háttérben lévő fül, gyenge gép */
.fx-paused .fx-aurora,.fx-paused .fx-grain{animation-play-state:paused}
.fx-lite .fx-grain,.fx-lite .fx-aurora.a2{display:none}
