*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  :root{
    --bg:#0a0a0b;--surface:#131113;
    --border:rgba(255,255,255,.09);--border-2:rgba(255,255,255,.16);
    --text:#ece8df;--muted:#6b6762;--muted-2:#948f86;
    --accent:#c8a96e;--accent-dim:rgba(200,169,110,.14);--slit:#e0362f;
    --ff-disp:'Cormorant Garamond',Georgia,serif;--ff-body:'Jost',system-ui,sans-serif;--ff-mono:'DM Mono',ui-monospace,monospace;
    --maxw:1180px;--pad:clamp(1.25rem,4vw,3rem);--spine:15rem;--trackh:clamp(300px,44vh,440px);
  }
  html{scroll-behavior:smooth}
  body{background:var(--bg);color:var(--text);font-family:var(--ff-body);font-weight:300;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  ::selection{background:var(--accent-dim)}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
  .mock-tag{position:fixed;bottom:0;left:0;right:0;z-index:99;text-align:center;font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);background:rgba(10,10,11,.9);backdrop-filter:blur(6px);padding:5px;border-top:.5px solid var(--border)}

  .nav{position:fixed;top:1.4rem;left:var(--pad);z-index:60;display:flex;align-items:baseline;gap:1.4rem;flex-wrap:wrap}
  .nav-name{font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
  .nav a{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .15s}
  .nav a:hover{color:var(--accent)}
  @media(max-width:760px){.nav{position:absolute}.nav-links{display:none}}
  .lang{position:fixed;top:1.4rem;right:var(--pad);z-index:60;display:flex;gap:2px;background:rgba(19,17,19,.75);backdrop-filter:blur(8px);border:.5px solid var(--border-2);border-radius:4px;padding:3px}
  .lang button{font-family:var(--ff-mono);font-size:11px;letter-spacing:.08em;padding:.3rem .65rem;background:transparent;color:var(--muted-2);border:none;border-radius:3px;cursor:pointer}
  .lang button.on{background:var(--accent-dim);color:var(--accent)}
  [data-en]{display:none}
  html[lang="en"] [data-hu]{display:none}
  html[lang="en"] [data-en]{display:revert}

  /* hero */
  .hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
  #heroCv{position:absolute;inset:0;opacity:.26}
  .hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 5%,transparent 40%,transparent 64%,var(--bg) 98%),linear-gradient(0deg,var(--bg) 3%,transparent 36%);pointer-events:none}
  .hero-in{position:relative;z-index:2}
  .hero h1{font-family:var(--ff-disp);font-weight:300;font-size:clamp(2.4rem,6vw,4.6rem);line-height:1;letter-spacing:-.01em;margin-bottom:1.4rem}
  .hero h1 em{font-style:italic;color:var(--text)}
  .hero-lede{font-family:var(--ff-disp);font-style:italic;font-size:clamp(1rem,1.7vw,1.25rem);color:var(--muted);max-width:46ch;line-height:1.5;font-weight:300}
  .hero-descend-wrap{position:absolute;left:0;right:0;bottom:0;height:20vh;max-width:var(--maxw);margin:0 auto;z-index:3;pointer-events:none}
  .hero-descend{position:absolute;left:calc(var(--pad) + var(--spine));bottom:0;width:1px;height:100%;background:linear-gradient(transparent,var(--slit))}

  /* timeline */
  .tl{position:relative;padding:0 0 3rem}
  .tl-inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,7vw,6rem) var(--pad) 0}
  .tl-inner::before{content:'';position:absolute;top:0;bottom:0;left:calc(var(--pad) + var(--spine));width:1px;background:linear-gradient(var(--slit) 0%,rgba(224,54,47,.72) 55%,rgba(224,54,47,.5) 100%)}
  @media(max-width:900px){:root{--spine:12rem}}@media(max-width:760px){:root{--spine:0rem}}

  .ms{position:relative;padding:clamp(2.5rem,5vw,4.5rem) 0;display:grid;grid-template-columns:var(--spine) 1fr;gap:2rem;align-items:start}
  .ms-rail{position:relative;align-self:stretch}
  .ms-main{min-width:0}
  .exh-rail{margin-top:1.35rem;text-align:right}
  .er{position:relative;padding:.5rem 1.3rem .5rem 0;border-bottom:.5px solid var(--border)}
  .er:last-child{border-bottom:0}
  .er-y{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.04em;color:var(--muted);margin-right:.4rem}
  .er-t{font-family:var(--ff-disp);font-style:italic;font-size:.98rem;line-height:1.2;color:var(--muted-2)}
  .er-v{display:block;font-size:.7rem;color:var(--muted);margin-top:.12rem;line-height:1.3}
  .er::after{content:'';position:absolute;right:-3.5px;top:.7rem;width:7px;height:7px;border-radius:50%;border:1px solid var(--muted);background:var(--bg)}
  .er.solo .er-t,.er.prize .er-t{color:var(--text)}
  .er.solo::after,.er.prize::after{background:var(--accent);border-color:var(--accent)}
  .er .award{display:inline-block;font-family:var(--ff-mono);font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:.5px solid var(--accent);padding:0 5px;border-radius:20px;margin-left:.35rem}
  .er-none{font-family:var(--ff-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:right;padding:.5rem 1.3rem 0 0;margin-top:1.35rem}
  @media(max-width:760px){
    .ms{grid-template-columns:1fr;gap:0}
    .exh-rail,.ms-years,.er-none{text-align:left}
    .ms-years{padding-right:0}
    .er{padding-right:0}
    .er::after,.ms-years::after{display:none}
    .ms-title{margin-top:1.1rem}
    .tl-inner::before,.hero-descend{display:none}
  }
  .ms-years{font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.05em;color:var(--muted);text-align:right;padding-right:1.6rem;position:relative;padding-top:.5rem}
  .ms-years::after{content:'';position:absolute;right:-5.5px;top:.85rem;width:11px;height:11px;border-radius:50%;background:var(--slit)}
  .ms-title{font-family:var(--ff-disp);font-size:clamp(1.7rem,3.6vw,2.7rem);font-weight:300;line-height:1.1;letter-spacing:-.01em;margin-bottom:1.6rem}
  .ms-title em{font-style:italic;color:var(--accent)}

  /* ── the horizontal track: everything for this milestone ── */
  .track-wrap{margin-left:0;margin-right:calc(-1 * var(--pad));overflow:hidden}

  .track{display:flex;gap:.9rem;overflow-x:auto;overflow-y:hidden;height:var(--trackh);
    padding-right:var(--pad);scroll-snap-type:none;overscroll-behavior-x:contain;
    scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}
  .track::-webkit-scrollbar{height:3px}
  .track::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:2px}
  .track::-webkit-scrollbar-track{background:transparent}
  @media(pointer:coarse){.track{scroll-snap-type:x proximity}}
  .card{flex:0 0 auto;height:100%;position:relative;scroll-snap-align:start;
    border:.5px solid var(--border);border-radius:3px;background:var(--surface);overflow:hidden}

  .card.img canvas,.card.img img{height:100%;width:auto;display:block}
  .card.img.nagyithato{cursor:zoom-in}
  .card.img.nagyithato:hover{border-color:var(--border-2)}
  /* Valódi kép: a sáv magasságához igazodik, az arányát megtartva.
     A max-width csak a szélsőségesen hosszú (SlitScan) képeket fogja meg. */
  .card.img img{max-width:min(85vw,1100px);object-fit:cover;object-position:center}
  .card.video{width:calc(var(--trackh) * 1.6)}
  .card.video iframe{width:100%;height:100%;border:0;display:block}

  /* ── videó a bal sínen: a sáv mellett tapadva marad ── */
  /* A jobb margó az .er elemek padding-right-jával egyezik, hogy a videó ne
     érjen hozzá az idővonal piros vonalához. Balra a tartalomsáv melletti
     üres margóba nyúlik ki, hogy nagyobb lehessen — csak amennyi hely van,
     szűk kijelzőn 0. */
  .rail-video{--rv-plusz:clamp(0px,(100vw - var(--maxw)) / 2,270px);
    position:sticky;top:clamp(1rem,4vh,2.5rem);
    margin:1.6rem 1.3rem 0 calc(-1 * var(--rv-plusz))}
  .rail-video .yt-frame{position:relative;aspect-ratio:16/9;overflow:hidden;
    border:.5px solid var(--border);border-radius:3px;background:var(--surface)}
  .rail-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
  .rail-video.playing .yt-face{display:none}
  .rail-video .yt-play{width:38px;height:38px;font-size:.7rem}
  .rv-cap{font-family:var(--ff-mono);font-size:8.5px;letter-spacing:.04em;line-height:1.6;
    color:var(--muted-2);margin-top:.45rem;text-align:right}
  @media(max-width:760px){
    /* relative, nem static: a YOUTUBE-jelvény horgonya maradjon a videó */
    .rail-video{position:relative;max-width:420px;margin:1.9rem 0 .7rem}
    .rv-cap{text-align:left}
  }

  .yt-face{position:absolute;inset:0;width:100%;height:100%;padding:0;border:none;background:transparent;cursor:pointer;display:block}
  .yt-face canvas{width:100%;height:100%;object-fit:cover;display:block;opacity:.5}
  .yt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62px;height:62px;border:.5px solid var(--accent);
    border-radius:50%;color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:1rem;
    background:rgba(10,10,11,.45);transition:background .18s,transform .18s}
  .yt-face:hover .yt-play{background:var(--accent-dim);transform:translate(-50%,-50%) scale(1.06)}
  .yt-out{position:absolute;top:.55rem;right:.7rem;z-index:3;font-family:var(--ff-mono);font-size:8.5px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--muted-2);border:.5px solid var(--border-2);padding:1px 6px;border-radius:20px;background:rgba(10,10,11,.6)}
  .yt-out:hover{color:var(--accent);border-color:var(--accent)}

  /* helyi videó-kártya a sávban (pl. szonifikáció) — a párja bélyegképe a
     borítója, csak a lejátszás-jel különbözteti meg egy sima képtől */
  .v-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;
    border:.5px solid var(--accent);border-radius:50%;color:var(--accent);display:flex;align-items:center;
    justify-content:center;font-size:.85rem;background:rgba(10,10,11,.45);pointer-events:none;
    transition:background .18s,transform .18s}
  .card.img.nagyithato:hover .v-play{background:var(--accent-dim);transform:translate(-50%,-50%) scale(1.06)}
  .card.text{width:clamp(260px,30vw,380px);padding:1.6rem;display:flex;flex-direction:column;justify-content:center;background:transparent;border-color:transparent}
  .card.text p{font-family:var(--ff-disp);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55;color:var(--muted-2)}
  .card.text p.lead{color:var(--text)}
  .card.text.close{width:clamp(240px,26vw,320px)}
  .card.text.close p{font-style:italic;color:var(--accent);border-left:1px solid var(--accent);padding-left:1.1rem}

  .card.quote{width:clamp(250px,28vw,360px);padding:1.6rem;display:flex;flex-direction:column;justify-content:center;background:transparent;border-color:var(--border)}
  .card.quote p{font-family:var(--ff-disp);font-style:italic;font-size:1.05rem;line-height:1.5;color:var(--text);border-left:1px solid var(--accent);padding-left:1.1rem}
  .card.quote cite{display:block;font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.06em;color:var(--muted);font-style:normal;margin-top:.7rem;padding-left:1.1rem}

  .card.exh{width:clamp(280px,34vw,440px);padding:1.4rem 1.5rem;overflow-y:auto;background:transparent}
  .card.exh.wide{width:clamp(320px,46vw,600px)}
  .c-label{font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding-bottom:.6rem;border-bottom:.5px solid var(--border);margin-bottom:.5rem}
  .e-row{display:grid;grid-template-columns:3.8rem 1fr;gap:.7rem;padding:.5rem 0;border-bottom:.5px solid var(--border);align-items:baseline}
  .e-y{font-family:var(--ff-mono);font-size:10px;color:var(--muted)}
  .e-t{font-family:var(--ff-disp);font-size:1rem;font-style:italic;line-height:1.25;display:block}
  .e-v{font-size:.76rem;color:var(--muted-2);display:block;margin-top:.1rem}
  .kind{font-family:var(--ff-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:.45rem}
  .e-row.solo .kind{color:var(--accent)}
  .award{font-family:var(--ff-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:.5px solid var(--accent);padding:1px 6px;border-radius:20px;margin-left:.45rem}

  .card.more{width:clamp(200px,23vw,270px);background:transparent;border-color:transparent;border-left:.5px solid var(--border);
    display:flex;flex-direction:column;justify-content:center;gap:.55rem;padding:1.7rem;text-decoration:none}
  .card.more .k{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
  .card.more .t{font-family:var(--ff-disp);font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1.15;color:var(--text);transition:color .18s}
  .card.more .a{font-family:var(--ff-mono);font-size:1.25rem;color:var(--accent);transition:transform .18s;display:inline-block}
  .card.more:hover .t{color:var(--accent)}
  .card.more:hover .a{transform:translateX(6px)}
  .c-cap{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:.6rem;padding:.55rem .7rem;font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.04em;color:var(--muted-2);background:linear-gradient(transparent,rgba(10,10,11,.92))}
  .c-cap .k{color:var(--accent)}
  .ph{position:absolute;top:.55rem;left:.65rem;font-family:var(--ff-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:.5px solid var(--border-2);padding:1px 6px;border-radius:20px}
  .track-hint{margin-left:0;margin-top:.7rem;font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}


  footer{border-top:.5px solid var(--border);margin-top:3rem;padding:clamp(3rem,7vw,6rem) 0 4.5rem}
  .foot{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:2.5rem}
  .foot-mark{font-family:var(--ff-disp);font-size:clamp(1.8rem,4.2vw,2.6rem);font-weight:300}
  .foot-mark em{font-style:italic;color:var(--accent)}

  /* A lábléc neve a hitvallás-oldalra vezet, de alapállapotban SEMMI nem
     árulja el, hogy link: nincs aláhúzás, nincs nyíl, nincs színváltás.
     Színt szándékosan nem állítunk — a slitspace.css a projektoldal világos
     sávjához felülírja a .foot-mark színét, és egy a.foot-mark{color:...}
     erősebb specificitással elrontaná. */
  a.foot-mark{display:inline-block;text-decoration:none;cursor:pointer;transition:opacity .2s}
  a.foot-mark:hover{opacity:.82}
  /* A fókusz viszont LÁTSZIK — ez akadálymentességi követelmény, nem
     esztétikai döntés: billentyűzettel is meg kell találni. */
  a.foot-mark:focus-visible{outline:1px solid var(--accent);outline-offset:4px}
  @media(prefers-reduced-motion:reduce){a.foot-mark{transition:none}}
  .commission{font-family:var(--ff-body);font-size:.95rem;color:var(--muted-2);max-width:34ch;margin-top:.5rem}
  .foot-meta{font-family:var(--ff-mono);font-size:11px;letter-spacing:.05em;color:var(--muted);line-height:2;text-align:right}
  .foot-meta a:hover{color:var(--accent)}

  .fade{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
  .fade.in{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){.fade{opacity:1;transform:none;transition:none}}

  /* Nagyító — az idővonal és a galériák közösen használják */
  .lb{position:fixed;inset:0;z-index:120;background:rgba(6,6,7,.97);display:none;flex-direction:column;
    align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem)}
  .lb.on{display:flex}
  /* A nagyított kép a keretén belül marad, és érintésnél a böngésző saját
     görgetése/nagyítása ne vegye el a gesztust (csippentés). A `.lb-stage`
     doboza a képre zsugorodik (a `.lb` oszlop-flex, `align-items:center`),
     ezért a vágás pontosan a kép szélén történik. */
  .lb-stage{max-width:min(1200px,94vw);max-height:78vh;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}
  .lb-stage img,.lb-stage video{max-width:100%;max-height:78vh;width:auto;height:auto;display:block;border:.5px solid var(--border)}
  /* A nagyítás matematikája a BAL FELSŐ sarokból számol. */
  .lb-stage img{transform-origin:0 0}
  .lb-stage.nagyithato img{cursor:zoom-in}
  .lb-stage.nagyitva img{cursor:grab}
  .lb-stage.fogva img{cursor:grabbing}
  /* Kép–hang párosítás a nagyítóban: a kép ALATT egy takarékos lejátszó,
     alatta keskeny oszcilloszkóp-sáv. A kép a főszereplő, ezért a sáv 40 px. */
  .lb-hang{width:min(1200px,94vw);max-width:100%;margin-top:.9rem}
  .lb-hang-sor{display:flex;align-items:center;gap:.9rem;
    font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.05em;color:var(--muted-2)}
  .lb-hang-gomb{position:static;background:none;border:.5px solid var(--border-2,rgba(255,255,255,.16));
    border-radius:50%;width:34px;height:34px;flex:0 0 auto;color:var(--accent);
    font-size:13px;line-height:1;cursor:pointer;padding:0;transition:color .15s,border-color .15s}
  .lb-hang-gomb:hover{color:var(--text);border-color:var(--accent)}
  .lb-hang-gomb:disabled{opacity:.4;cursor:default}
  .lb-hang-cim{flex:1 1 auto;text-transform:uppercase}
  .lb-hang-ido{flex:0 0 auto;font-variant-numeric:tabular-nums}
  .lb-hang-oszcil{display:block;width:100%;height:40px;margin-top:.5rem;
    border-top:.5px solid var(--border);opacity:.35;transition:opacity .3s}
  .lb-hang.szol .lb-hang-oszcil{opacity:1}
  .lb-hang.hibas .lb-hang-cim{color:var(--slit,#e0362f)}

  .lb-cap{display:flex;gap:1.4rem;align-items:baseline;flex-wrap:wrap;justify-content:center;
    font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.05em;color:var(--muted-2);padding-top:1.1rem}
  .lb-cap .k{color:var(--accent)}
  /* Kép–hang pár-gomb a nagyítóban — az idővonalon és a galériákban egyaránt. */
  .lb-par-wrap:empty{display:none}
  .lb-par{display:inline-block;margin-top:.7rem;font-family:var(--ff-mono);font-size:10px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--accent);background:none;border:none;border-bottom:.5px solid var(--accent-dim);
    padding:0 0 2px;cursor:pointer;transition:color .15s,border-color .15s}
  .lb-par:hover{color:var(--text);border-color:var(--accent)}
  .lb-n{position:absolute;bottom:clamp(1rem,4vw,2.4rem);font-family:var(--ff-mono);font-size:10px;color:var(--muted)}
  .lb button{position:absolute;background:transparent;border:none;color:var(--muted);cursor:pointer;
    font-family:var(--ff-mono);font-size:1.5rem;padding:.6rem .9rem;transition:color .15s}
  .lb button:hover{color:var(--accent)}
  .lb-prev{left:clamp(.2rem,2vw,1.6rem)}
  .lb-next{right:clamp(.2rem,2vw,1.6rem)}
  .lb-close{top:clamp(.4rem,2vw,1.4rem);right:clamp(.4rem,2vw,1.4rem);font-size:1.1rem}
