:root{--bg:#080b13;--bg2:#0d1220;--card:#121828;--card2:#171e31;--line:#232c44;--tx:#eef1f8;--mut:#98a3bd;--acc:#ffb36b;--acc2:#7fe6ff;--ok:#7fe6a8;--r:20px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{background:var(--bg);color:var(--tx);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
.wrap{width:min(1240px,100% - 40px);margin-inline:auto}
.demo-bar{background:#161c2e;color:var(--mut);font-size:13px;text-align:center;padding:8px 16px}
.demo-bar a{color:var(--acc);margin-left:10px;white-space:nowrap}
.nav{margin-bottom:-62px;position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px max(20px,calc((100% - 1240px)/2));background:rgba(8,11,19,.7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.sc{border-color:var(--line)}
.logo{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:.18em;font-size:14px;color:var(--acc)}
.logo small{font-weight:500;color:var(--mut);letter-spacing:.2em;font-size:11px;margin-left:4px}
.links{display:flex;gap:28px;font-size:14px;color:var(--mut)}.links a:hover{color:var(--tx)}
.nav-r{display:flex;gap:10px;align-items:center}
.fav-btn,.lang{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:13px;color:var(--mut);transition:.2s}
.fav-btn:hover,.lang:hover{color:var(--tx);border-color:var(--mut)}.fav-btn b{color:var(--acc);font-weight:600}
.eyebrow{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);margin-bottom:14px}
h1{font-size:clamp(44px,7.4vw,104px);line-height:1;letter-spacing:-.035em;font-weight:700}
h1 em{font-style:normal;display:block;background:linear-gradient(100deg,#ffd9a8,var(--acc) 40%,#ff7e5f);-webkit-background-clip:text;background-clip:text;color:transparent}
h2{font-size:clamp(28px,4vw,50px);line-height:1.1;letter-spacing:-.02em;font-weight:700;margin-bottom:14px}
.lead{color:#d3d9ea;font-size:clamp(16px,1.6vw,20px);max-width:560px;margin-top:18px}
.sub{color:var(--mut);max-width:720px;margin-bottom:34px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:600;font-size:15px;transition:transform .2s,box-shadow .2s}
.btn.primary{background:var(--acc);color:#1a1208}.btn.primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(255,179,107,.28)}
.btn.ghost{border:1px solid var(--line)}.btn.ghost:hover{border-color:var(--mut)}.btn.small{padding:9px 18px;font-size:14px}.btn.wide{width:100%}

/* hero – görgetésvezérelt */
.hero-pin{height:420vh;position:relative;padding:0}
.sticky{position:sticky;top:0;height:100vh;overflow:hidden}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 45%,rgba(4,6,12,.7)),linear-gradient(180deg,rgba(4,6,12,.28),transparent 24%,transparent 62%,rgba(4,6,12,.75))}
.beat{position:absolute;left:max(20px,calc((100% - 1240px)/2));bottom:11vh;max-width:min(720px,calc(100% - 40px));opacity:0;transform:translateY(30px);transition:opacity .6s,transform .6s;pointer-events:none}
.beat.on{opacity:1;transform:none;pointer-events:auto}
.b1{top:16vh;bottom:auto}
.b2 .chips{display:flex;gap:14px;flex-wrap:wrap}
.chips div{background:rgba(13,18,32,.68);border:1px solid var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:18px;padding:14px 20px;min-width:104px}
.chips b{display:block;font-size:30px;letter-spacing:-.02em;color:var(--acc);line-height:1.1}.chips span{font-size:13px;color:var(--mut)}
.b3 h2{max-width:560px;text-shadow:0 2px 30px rgba(0,0,0,.6)}.b3 .btn{margin-top:14px}
.scrollcue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);width:24px;height:38px;border:1.5px solid #cfd6ea;border-radius:14px;opacity:.7;transition:opacity .4s}
.scrollcue span{position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:#cfd6ea;animation:wheel 1.8s infinite}
@keyframes wheel{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(14px)}}

section{padding:100px 0}
.explore{background:linear-gradient(180deg,var(--bg),var(--bg2) 20%,var(--bg))}
.ex-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:26px;align-items:start}
.ex-stage{position:sticky;top:76px;height:min(82vh,720px);min-height:460px;border-radius:26px;overflow:hidden;border:1px solid var(--line);background:#0a0e18}
#exCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}
#exCanvas:active{cursor:grabbing}
.legend{position:absolute;top:14px;left:14px;display:flex;gap:6px 12px;flex-wrap:wrap;background:rgba(10,14,24,.7);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:8px 12px;font-size:12px;color:var(--mut)}
.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.l-free{background:linear-gradient(#ffe2b0,#ff9d52)}.l-dim{background:#27384a}.l-res{background:linear-gradient(#d9a45f,#8a5a2c)}.l-sold{background:#0c131c;box-shadow:inset 0 0 0 1px #3a4a60}
.explode{position:absolute;left:14px;right:14px;bottom:14px;display:flex;align-items:center;gap:14px;background:rgba(10,14,24,.72);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;padding:10px 16px;font-size:13px;color:var(--mut)}
.explode input{flex:1}
.tip{position:absolute;right:16px;top:18px;font-size:12px;color:var(--mut);display:none}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:3px;background:#243049;outline:0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--acc);border:3px solid #1a1208;box-shadow:0 0 0 1px var(--acc);cursor:pointer}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--acc);border:3px solid #1a1208;cursor:pointer}
.filters{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;display:grid;gap:16px}
.f-row{display:grid;gap:8px}.f-row.split{grid-template-columns:1fr auto;align-items:center}
.f-l{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}.f-l b{color:var(--acc);text-transform:none;letter-spacing:0;margin-left:6px;font-size:14px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:5px;background:#0b101c;border:1px solid var(--line);border-radius:13px;padding:4px}
.seg.col{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr 1fr}
.seg button{padding:8px 6px;border-radius:9px;font-size:14px;color:var(--mut);transition:.2s;white-space:nowrap}
.seg button.on{background:var(--acc);color:#1a1208;font-weight:600}
.chk{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}
.chk input{width:18px;height:18px;accent-color:var(--acc)}
select{background:#0b101c;color:var(--tx);border:1px solid var(--line);border-radius:12px;padding:9px 12px;font:inherit;font-size:14px;outline:0}
.count{margin:18px 4px 12px;color:var(--mut);font-size:14px}.count b{color:var(--tx);font-size:22px}
.results{list-style:none;display:grid;gap:10px;max-height:none}
.res{display:grid;grid-template-columns:96px 1fr auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px 14px;cursor:pointer;transition:border-color .2s,transform .2s,background .2s}
.res:hover{border-color:#3a4766;transform:translateX(3px)}.res.sel{border-color:var(--acc);background:var(--card2)}
.res.off{opacity:.55}
.thumb{background:#fbf8f1;border-radius:10px;overflow:hidden;line-height:0}.thumb svg{width:100%;height:auto;display:block}
.res h4{font-size:16px;font-weight:600;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.res p{font-size:13px;color:var(--mut)}
.res .pr{font-weight:700;color:var(--acc);font-size:15px;margin-top:2px}
.badge{font-size:11px;padding:2px 9px;border-radius:999px;font-weight:600;letter-spacing:.02em}
.st-free{background:rgba(127,230,168,.14);color:var(--ok)}.st-reserved{background:rgba(255,179,107,.15);color:var(--acc)}.st-sold{background:rgba(152,163,189,.15);color:var(--mut)}
.heart{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:18px;color:var(--mut);border:1px solid var(--line);transition:.2s}
.heart:hover{color:var(--tx);border-color:var(--mut)}.heart.on{color:#ff6a7c;border-color:#ff6a7c;background:rgba(255,106,124,.1)}
.empty{padding:34px;text-align:center;color:var(--mut);background:var(--card);border:1px dashed var(--line);border-radius:18px}
.detail{background:var(--card2);border:1px solid var(--acc);border-radius:22px;padding:20px;margin-bottom:12px;animation:pop .35s cubic-bezier(.2,.8,.2,1)}
@keyframes pop{from{opacity:0;transform:translateY(10px)}}
.detail .plan-big{background:#fbf8f1;border-radius:14px;padding:6px;margin:12px 0;line-height:0}.detail .plan-big svg{width:100%;height:auto}
.detail h3{font-size:22px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.kv{list-style:none;display:grid;gap:8px;margin:10px 0}.kv li{display:flex;justify-content:space-between;gap:12px;font-size:14px;border-bottom:1px dashed var(--line);padding-bottom:7px}.kv li span{color:var(--mut)}.kv li b{font-weight:600;text-align:right}
.d-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.d-btns .btn:first-child{grid-column:1/-1}

.maps{background:var(--bg2)}
.map-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:22px;margin-top:30px;align-items:start}
.map-box{position:relative;background:#0a0f1a;border:1px solid var(--line);border-radius:26px;overflow:hidden}
#mapSvg{display:block;width:100%;height:auto}
.walk{position:absolute;left:14px;bottom:14px;right:14px;background:rgba(10,14,24,.78);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-size:14px;color:var(--mut);min-height:44px}.walk b{color:var(--acc)}
.map-side{position:relative;align-self:stretch;min-height:320px}.map-side-in{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px}.map-side .poi-list{flex:1;min-height:0;overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#2b3858 transparent}
.poi-list{list-style:none;display:grid;gap:7px}
.poi{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-size:14px;cursor:pointer;transition:.2s}
.poi:hover,.poi.on{border-color:var(--acc)}.poi span{color:var(--mut);font-size:13px}.poi b{display:block;font-weight:600}
.pin{cursor:pointer}.pin circle{transition:r .2s}.pin:hover circle.pc{r:15}
@keyframes pulse{0%{r:14;opacity:.6}100%{r:44;opacity:0}}.pulse{animation:pulse 2.4s infinite}

.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:30px}
.calc-in,.calc-out{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:28px;display:grid;gap:22px;align-content:start}
.calc-apt{font-size:14px;color:var(--mut);border-bottom:1px dashed var(--line);padding-bottom:14px}.calc-apt b{color:var(--tx)}
.donut{position:relative;width:min(280px,100%);margin:0 auto}.donut svg{display:block;width:100%}
.donut-c{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.donut-c span{font-size:12px;color:var(--mut)}.donut-c strong{font-size:clamp(22px,3vw,32px);color:var(--acc);letter-spacing:-.02em}
.fine{font-size:12px;color:var(--mut);text-align:center}
.foot{border-top:1px solid var(--line);padding:30px 0;color:var(--mut);font-size:13px}.foot-in{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}

.favbar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:45;display:flex;align-items:center;gap:12px;background:rgba(18,24,40,.92);backdrop-filter:blur(12px);border:1px solid var(--acc);border-radius:999px;padding:8px 10px 8px 20px;font-size:14px;box-shadow:0 14px 40px rgba(0,0,0,.5);max-width:calc(100% - 24px)}
.favbar[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;background:rgba(4,6,10,.72);backdrop-filter:blur(8px)}.modal[hidden]{display:none}
.sheet{position:relative;width:min(560px,100%);max-height:92vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:26px;padding:28px;animation:pop .35s cubic-bezier(.2,.8,.2,1)}
.sheet.wide{width:min(900px,100%)}
.sheet h3{font-size:24px;margin-bottom:12px}.x{position:absolute;top:14px;right:16px;font-size:26px;color:var(--mut);line-height:1;z-index:2}
.sheet label{display:block;margin:12px 0}.sheet label>span{display:block;font-size:13px;color:var(--mut);margin-bottom:6px}
.sheet input[type=text],.sheet input[type=email],.sheet input[type=tel]{width:100%;background:#0b101c;border:1px solid var(--line);color:var(--tx);border-radius:13px;padding:12px 14px;font:inherit;outline:0}
.sheet input:focus{border-color:var(--acc)}
.days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin:6px 0}
.day{flex:none;min-width:62px;border:1px solid var(--line);border-radius:14px;padding:8px 6px;text-align:center;font-size:12px;color:var(--mut);transition:.2s}.day b{display:block;font-size:18px;color:var(--tx)}.day.on{background:var(--acc);border-color:var(--acc);color:#1a1208}.day.on b{color:#1a1208}
.slots{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 4px}.slot{border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:13px;color:var(--mut)}.slot.on{border-color:var(--acc);color:var(--acc)}
.ok{width:62px;height:62px;border-radius:50%;background:rgba(127,230,168,.14);color:var(--ok);display:grid;place-items:center;font-size:32px;margin:0 auto 14px}.done{text-align:center}.done p{color:var(--mut);margin-bottom:12px}.ref{display:inline-block;padding:6px 14px;border:1px dashed var(--acc);border-radius:10px;color:var(--acc);font-weight:700;letter-spacing:.12em;margin:6px 0 14px}
.cmp{display:grid;gap:0;font-size:14px;overflow-x:auto}.cmp .r{display:grid;grid-template-columns:130px repeat(var(--n),minmax(150px,1fr));gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}.cmp .r:first-child .c{text-align:center}.cmp .h{color:var(--mut);font-size:13px}.cmp .c{text-align:center;font-weight:600}.cmp .best{color:var(--ok)}
.cmp .pl{background:#fbf8f1;border-radius:10px;padding:3px;line-height:0}
@media(max-width:960px){
 .links{display:none}.ex-grid,.map-grid,.calc-grid{grid-template-columns:1fr}
 .map-side{min-height:0}.map-side-in{position:static}.map-side .poi-list{max-height:340px}
 .ex-stage{position:relative;top:0;height:62vh;min-height:380px}
 .beat{bottom:9vh}.b1{top:12vh}.hero-pin{height:380vh}.res{grid-template-columns:78px 1fr auto}section{padding:70px 0}
}
@media(max-width:520px){.chips div{min-width:84px;padding:10px 14px}.chips b{font-size:24px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ===== v2: effektek, új vezérlők ===== */
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:70;background:linear-gradient(90deg,var(--acc),#ff7e5f);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
.glow{position:fixed;left:-260px;top:-260px;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,rgba(255,179,107,.10),transparent 62%);mix-blend-mode:screen}

.links a{position:relative;padding:4px 0;transition:color .25s}.links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--acc);transform:scaleX(0);transition:transform .35s cubic-bezier(.2,.8,.2,1)}.links a.on{color:var(--tx)}.links a.on::after,.links a:hover::after{transform:scaleX(1)}
h1 em{background-size:220% 100%;animation:shim 7s ease-in-out infinite}@keyframes shim{0%,100%{background-position:0 0}50%{background-position:100% 0}}
.b1 .eyebrow{animation:fadeUp .9s .2s both}.b1 h1{animation:fadeUp 1s .35s both}.b1 .lead{animation:fadeUp 1s .55s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}}
.btn.primary,.btn.wiz{will-change:transform;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.btn.wiz{position:relative;margin:0 0 22px;background:linear-gradient(120deg,#2a1f12,#1a1424);border:1px solid var(--acc);color:var(--acc);overflow:hidden}
.btn.wiz::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,179,107,.28) 50%,transparent 70%);transform:translateX(-120%);animation:sweep 3.6s 1s infinite}
@keyframes sweep{to{transform:translateX(120%)}}.spark{display:inline-block;animation:spin 5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.btn.wiz.reveal{display:inline-flex}
/* 3D színpad vezérlők */
.ex-modes{position:absolute;top:14px;right:14px;width:auto;grid-auto-columns:auto;background:rgba(10,14,24,.74);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ex-modes button{padding:6px 11px;font-size:12.5px}
.legend{max-width:calc(100% - 300px)}
.legend.grad{display:grid;gap:5px;min-width:170px;padding:9px 13px}.legend.grad b{font-weight:600;color:var(--tx);font-size:12px}.gbar{height:8px;border-radius:5px}.gl{display:flex;justify-content:space-between;font-size:11px}.gl em{font-style:normal}
.ex-ctl{position:absolute;left:14px;right:14px;bottom:14px;display:grid;gap:8px}
.ex-ctl .explode{position:static;flex:1;padding:8px 14px}
.ctl-row{display:flex;gap:8px;align-items:stretch}.ctl-row .btn{border:1px solid var(--line);background:rgba(10,14,24,.72);backdrop-filter:blur(8px);padding:0 16px;font-size:13px;white-space:nowrap}.ctl-row .btn:hover{border-color:var(--acc)}.ctl-row .btn:disabled{opacity:.55;cursor:wait}.ctl-row .btn.on{border-color:var(--acc);color:var(--acc)}
.daybar{display:flex;align-items:center;gap:10px;background:rgba(10,14,24,.74);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;padding:8px 14px}
.daybar .play{width:30px;height:30px;border-radius:50%;background:var(--acc);color:#1a1208;font-size:11px;display:grid;place-items:center;flex:none;transition:transform .2s}.daybar .play:hover{transform:scale(1.1)}.daybar .play.on{background:#fff}
.dic{font-size:18px;width:24px;text-align:center}
#dayR{background:linear-gradient(90deg,#3a4c92 0%,#f6a26b 14%,#9cc4ee 30%,#2d6fd2 50%,#f3e2c2 74%,#9a6292 82%,#17205a 92%,#04060e 100%)}
.dtx{display:grid;text-align:right;min-width:74px;line-height:1.15}.dtx b{font-size:15px;color:var(--tx);font-variant-numeric:tabular-nums}.dtx em{font-style:normal;font-size:11px;color:var(--mut)}
.viewbar{position:absolute;top:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:rgba(10,14,24,.85);backdrop-filter:blur(10px);border:1px solid var(--acc);border-radius:999px;padding:6px 8px 6px 18px;font-size:13px;white-space:nowrap;z-index:3;animation:pop .35s both}.viewbar[hidden]{display:none}
.hist{display:flex;align-items:flex-end;gap:3px;height:42px;padding:0 2px}
.hist i{flex:1;height:var(--t);min-height:3px;background:#1d2740;border-radius:3px 3px 0 0;position:relative;transition:height .4s}.hist u{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(var(--acc),#ff7e5f);border-radius:3px 3px 0 0;transition:height .45s cubic-bezier(.2,.8,.2,1)}
/* találatok animációja */
.res.new{animation:rise .5s calc(var(--i)*45ms) both cubic-bezier(.2,.8,.2,1)}@keyframes rise{from{opacity:0;transform:translateY(16px) scale(.97)}}
.tilt{transition:transform .25s ease,border-color .2s,background .2s;transform-style:flat}.tilt.hot{transition:transform .08s linear,border-color .2s}
.res.tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,179,107,.14),transparent 60%)}.res{position:relative}.res.hot::after{opacity:1}
/* részletkártya */
.d-tabs{width:140px;margin:10px 0 0;grid-auto-columns:1fr}.d-tabs button{padding:5px 8px;font-size:13px}
.detail .plan-big.is3{background:radial-gradient(circle at 50% 40%,#2a3552,#101728);padding:0;line-height:normal;height:300px;overflow:hidden;position:relative;touch-action:none}
.m3{position:absolute;inset:0;perspective:1100px;cursor:grab;user-select:none}.m3.grab{cursor:grabbing}
.m3-in{position:absolute;left:50%;top:44%;width:500px;height:350px;transform-style:preserve-3d;margin-left:0;transform:translate(-50%,-50%) scale(.9) rotateX(58deg) rotateZ(35deg)}
.m3-s,.m3-s *{transform-style:preserve-3d}.m3-s{position:absolute;inset:0}
.m3-s i,.bx i{position:absolute;left:0;top:0;display:block}.bx{display:contents}
.m3-base{background:#0b1020;transform:translateZ(-2px);box-shadow:0 0 0 6px #1b2540}
.m3-fl{transform:translateZ(.4px)}
.m3-leg{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--mut);margin:8px 0 0;line-height:1.3}.m3-leg span{display:inline-flex;align-items:center;gap:5px}.m3-leg i{width:9px;height:9px;border-radius:2px;display:inline-block}
.m3-hint{font-size:11px;color:var(--mut);margin-top:4px;line-height:1.3}
.sunbox{background:#0e1424;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:12px 0}.sh{display:flex;justify-content:space-between;font-size:13px;color:var(--mut)}.sh b{color:#ffd27f}.sunsvg{width:100%;height:auto;display:block;margin-top:4px}.sf{display:flex;justify-content:space-between;font-size:12px;color:var(--mut)}.sn{font-weight:600}.sn.on{color:#ffd27f}.sf em{font-style:normal}
#sunMark{transition:transform .25s}
.d-btns .wide2{grid-column:1/-1}
/* az épület szekció */
.why{background:linear-gradient(180deg,var(--bg),#0b1020 60%,var(--bg2))}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.fc{position:relative;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px 24px;overflow:hidden}
.fc:hover{border-color:#3a4766}.fc::before{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--mx,50%) var(--my,0%),rgba(255,179,107,.13),transparent 60%);opacity:0;transition:opacity .3s}.fc.hot::before{opacity:1}
.fc svg{width:46px;height:46px;fill:none;stroke:var(--acc);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px}
.fc svg *{stroke-dasharray:140;stroke-dashoffset:140;transition:stroke-dashoffset 1.6s .2s cubic-bezier(.2,.7,.2,1)}.fc.in svg *{stroke-dashoffset:0}
.fc h3{font-size:18px;margin-bottom:6px}.fc p{font-size:14px;color:var(--mut)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:34px 0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats div{padding:26px 18px;border-right:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.stats div:last-child{border:0}
.stats b{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.03em;color:var(--acc);line-height:1}.stats span{font-size:16px;color:var(--acc)}.stats em{flex-basis:100%;font-style:normal;font-size:13px;color:var(--mut);margin-top:4px}
.tl-h{margin:40px 0 20px;font-size:22px}
.tl{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);position:relative;padding-top:28px}
.tl::before,.tl::after{content:"";position:absolute;left:10px;right:10px;top:9px;height:3px;border-radius:2px;background:#1d2740}
.tl::after{background:linear-gradient(90deg,var(--acc),#ff7e5f);transform-origin:0 50%;transform:scaleX(0);transition:transform 2.4s .3s cubic-bezier(.3,.7,.2,1)}.tl.go::after{transform:scaleX(.8)}
.tl li{position:relative;display:grid;gap:2px;padding-right:12px}.tl li i{position:absolute;top:-26px;left:0;width:15px;height:15px;border-radius:50%;background:#1d2740;border:3px solid var(--bg);box-shadow:0 0 0 2px #2b3858;transition:background .4s,box-shadow .4s}
.tl.go li i{background:var(--acc);box-shadow:0 0 0 2px var(--acc),0 0 16px rgba(255,179,107,.6)}.tl.go li:nth-child(1) i{transition-delay:.3s}.tl.go li:nth-child(2) i{transition-delay:.8s}.tl.go li:nth-child(3) i{transition-delay:1.3s}.tl.go li:nth-child(4) i{transition-delay:1.9s}.tl.go li:nth-child(5) i{background:#1d2740;box-shadow:0 0 0 2px #2b3858;transition-delay:0s}
.tl li b{color:var(--tx)}.tl li span{font-size:13px;color:var(--mut)}
/* térkép */
.map-box{background:#0a0f1a}.map-box svg{touch-action:pan-y}#mapSvg.zoomed{cursor:grab}#mapSvg.panning{cursor:grabbing}
.map-zoom{position:absolute;right:14px;top:14px;display:grid;gap:6px;z-index:2}.map-zoom button{width:36px;height:36px;border-radius:12px;background:rgba(10,14,24,.82);border:1px solid var(--line);font-size:18px;color:var(--tx);backdrop-filter:blur(8px);transition:.2s}.map-zoom button:hover{border-color:var(--acc);color:var(--acc)}
.score{position:absolute;left:14px;top:14px;z-index:2;display:flex;align-items:center;gap:10px;background:rgba(10,14,24,.82);border:1px solid var(--line);border-radius:16px;padding:8px 14px 8px 8px;backdrop-filter:blur(8px)}.score b{font-size:22px;color:var(--acc);display:block;line-height:1}.score small{font-size:11px;color:var(--mut)}
.map-tip{position:absolute;pointer-events:none;z-index:4;background:rgba(10,14,24,.92);border:1px solid var(--acc);border-radius:10px;padding:5px 10px;font-size:12.5px;white-space:nowrap;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}.map-tip.on{opacity:1;transform:none}.map-tip b{color:var(--acc)}
.plabel{opacity:0;transition:opacity .25s;pointer-events:none}.zoomed .plabel,.pin.hl .plabel,.pin:hover .plabel{opacity:1}
.pin.hl circle.pc{r:15}
.route-draw{animation:routeDraw 1.1s cubic-bezier(.4,.1,.2,1) forwards}@keyframes routeDraw{to{stroke-dashoffset:0}}
.ringc{animation:ringIn .9s cubic-bezier(.2,.8,.2,1) both;transform-origin:400px 300px}@keyframes ringIn{from{transform:scale(.2);opacity:0}}
.poi{animation:rise .45s calc(var(--i)*30ms) both cubic-bezier(.2,.8,.2,1)}
/* varázsló */
.wz-dots{display:flex;gap:6px;margin-bottom:14px}.wz-dots i{height:4px;flex:1;border-radius:2px;background:#243049;transition:background .3s}.wz-dots i.on{background:var(--acc)}
.wz-opts{display:grid;gap:10px;margin:14px 0 6px}.wz-opt{text-align:left;padding:15px 18px;border:1px solid var(--line);border-radius:16px;background:#0e1424;font-size:16px;transition:.2s}.wz-opt:hover,.wz-opt.on{border-color:var(--acc);transform:translateX(4px)}.wz-opt.on{background:rgba(255,179,107,.1)}
.wz-nav{display:flex;justify-content:space-between;margin-top:18px}
.wz-res{display:grid;gap:12px;margin-top:6px}.wz-card{position:relative;display:grid;grid-template-columns:58px 100px 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:12px 14px;background:#0e1424;cursor:pointer;animation:rise .55s calc(var(--i)*120ms) both cubic-bezier(.2,.8,.2,1);transition:border-color .2s}.wz-card:hover{border-color:var(--acc)}
.wz-card:first-child{border-color:var(--acc);box-shadow:0 0 0 1px rgba(255,179,107,.25),0 14px 40px rgba(255,179,107,.1)}
.ring{position:relative;width:58px;height:58px}.ring svg{width:100%;height:100%}.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:var(--acc)}
.wz-card .thumb{border-radius:8px}.wi h4{font-size:16px}.wi p{font-size:13px;color:var(--mut)}.wi b{color:var(--acc)}
/* érintés / kis kijelző */
@media(max-width:960px){.feat{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}.tl{grid-template-columns:1fr;gap:18px;padding:0 0 0 30px}.tl::before,.tl::after{left:8px;right:auto;top:6px;bottom:6px;width:3px;height:auto}.tl::after{transform-origin:50% 0;transform:scaleY(0)}.tl.go::after{transform:scaleY(.8)}.tl li i{top:3px;left:-29px}.legend{max-width:calc(100% - 28px)}.ex-modes{top:auto;bottom:128px;right:14px}.wz-card{grid-template-columns:50px 1fr auto}.wz-card .thumb{display:none}}
@media(max-width:600px){.feat{grid-template-columns:1fr}.ex-modes{bottom:150px;left:14px;right:14px;grid-auto-columns:1fr}.legend{top:60px}.ctl-row .btn span{display:none}.daybar{padding:7px 10px;gap:8px}.dtx{min-width:56px}.viewbar{max-width:calc(100% - 20px);white-space:normal;border-radius:18px}}
@media(max-width:600px){
 .score{transform:scale(.78);transform-origin:0 0;left:10px;top:10px}.map-zoom{right:10px;top:10px}.map-zoom button{width:32px;height:32px}
 .walk{position:static;border-radius:0;border:0;border-top:1px solid var(--line);background:#0e1424;margin:0;min-height:0}
 .map-box{border-radius:22px}
}
