  [hidden]{display:none!important}
  :root{
    --stage:#f5f7fc; --stage-warm:#e9effb; --card:#ffffff;
    --ink:#1b2740; --dim:#5c6980; --line:rgba(27,39,64,.14);
    --foil:#1565c0; --lilac:#6b9cf4; --deep:#0d3a72;
    --foil-soft:rgba(21,101,192,.09);
    --head-bg:rgba(255,255,255,.88);
    --shadow:0 14px 40px -18px rgba(16,24,40,.25); --warn:#a35a06;
  }
  :root[data-theme="light"]{
    --stage:#f5f7fc; --stage-warm:#e9effb; --card:#ffffff;
    --ink:#1b2740; --dim:#5c6980; --line:rgba(27,39,64,.14);
    --foil:#1565c0; --lilac:#6b9cf4; --deep:#0d3a72;
    --foil-soft:rgba(21,101,192,.09);
    --head-bg:rgba(255,255,255,.88);
    --shadow:0 14px 40px -18px rgba(16,24,40,.25); --warn:#a35a06;
  }
  :root[data-theme="dark"]{
    --stage:#0c1322; --stage-warm:#101a2e; --card:#141d33;
    --ink:#eef3fc; --dim:#93a2bd; --line:rgba(238,243,252,.13);
    --foil:#5b96e8; --lilac:#8ab4ff; --deep:#bcd4f7;
    --foil-soft:rgba(91,150,232,.14);
    --head-bg:rgba(12,19,34,.88);
    --shadow:0 14px 40px -18px rgba(0,0,0,.6); --warn:#e8a44e;
  }
  .ticket{ --tbg:#101828; --tink:#f4f7fd; --tdim:#95a3bd; --tline:rgba(244,247,253,.16); --tfoil:#8ab4ff; }

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--stage);color:var(--ink);font-family:"Segoe UI",system-ui,sans-serif;overflow-x:hidden;
       /* Altbilgiyi sayfanın dibine yapıştırmak için: kısa sayfalarda içerik
          bitince altbilgi ekranın ortasında asılı kalıyor, altında 30-150 px
          boşluk bırakıyordu. */
       min-height:100vh;display:flex;flex-direction:column}
  ::selection{background:var(--foil);color:#fff}
  .mono{font-family:"Cascadia Mono",Consolas,monospace}
  button{font:inherit;cursor:pointer}
  :focus-visible{outline:2px solid var(--foil);outline-offset:2px}

  /* ── HEADER ── */
  header{position:sticky;top:0;z-index:60;background:var(--head-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  .h-top{max-width:1240px;margin:0 auto;padding:.75rem clamp(1rem,3vw,2rem);display:flex;align-items:center;gap:clamp(.8rem,2vw,1.6rem)}
  .logo{display:inline-flex;align-items:center;flex:none;text-decoration:none;line-height:0}
  .logo-img{height:3rem;width:auto;display:block}
  /* Logo tema eşlemesi — theme.js'in data-theme'i */
  .logo-dark{display:none}
  :root[data-theme="dark"] .logo-light{display:none}
  :root[data-theme="dark"] .logo-dark{display:block}
  .h-burger{display:none;flex:none;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border:1px solid var(--line);border-radius:10px;background:none;color:var(--ink)}
  .h-burger:hover{border-color:var(--foil)}
  form.h-search{flex:1;display:flex;align-items:center;gap:.5rem;max-width:520px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.3rem .3rem .3rem 1.1rem;margin:0}
  .h-search svg{flex:none;opacity:.55}
  .h-search input{flex:1;min-width:0;border:none;background:none;outline:none;color:var(--ink);font:inherit;font-size:.92rem}
  .h-search input::placeholder{color:var(--dim)}
  .city-wrap{position:relative}
  .city{display:flex;align-items:center;gap:.45em;background:none;border:1px solid var(--line);border-radius:999px;padding:.55rem 1.1rem;color:var(--ink);font-size:.85rem;white-space:nowrap}
  .city:hover{border-color:var(--foil)}
  .citypop{
    position:absolute;top:calc(100% + 8px);right:0;z-index:70;min-width:200px;
    background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
    padding:.5rem;display:none;flex-direction:column;gap:.15rem;
  }
  .citypop.open{display:flex}
  .citypop button{background:none;border:none;text-align:left;padding:.6rem .8rem;border-radius:8px;color:var(--ink);font-size:.88rem}
  .citypop button:hover{background:var(--foil-soft)}
  .citypop button.on{color:var(--foil);font-weight:700}
  .h-auth{display:flex;align-items:center;gap:.5rem;white-space:nowrap;margin-left:auto}
  @media(max-width:760px){
    .h-top{flex-wrap:wrap;row-gap:.55rem}
    form.h-search{order:5;flex-basis:100%;max-width:none}
    .h-auth{margin-left:auto}
  }
  .btn-ghost{background:none;border:1px solid transparent;color:var(--ink);border-radius:8px;padding:.55rem 1rem;font-size:.88rem}
  .btn-ghost:hover{border-color:var(--line)}
  .btn-solid{background:var(--foil);border:1px solid var(--foil);color:#fff;border-radius:8px;padding:.55rem 1.15rem;font-size:.88rem;font-weight:600}
  .h-cats{max-width:1240px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem) .6rem;display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none}
  .h-cats::-webkit-scrollbar{display:none}
  .h-cats button,.h-cats a{text-decoration:none;background:none;border:none;color:var(--dim);padding:.45rem .9rem;border-radius:999px;font-size:.85rem;white-space:nowrap;transition:color .15s,background .15s}
  .h-cats button:hover,.h-cats a:hover{color:var(--ink);background:var(--foil-soft)}
  .h-cats button.on,.h-cats a.on{color:#fff;background:var(--foil)}
  /* Mobilde giriş ve şehir seçimi gizlenmez — sadece sıkıştırılır */
  @media(max-width:760px){
    .city-wrap button{padding:.4rem .6rem;font-size:.78rem}
    .h-auth button{padding:.45rem .7rem;font-size:.78rem}
    .logo-img{height:2.1rem}
    /* Kategoriler mobilde yatay kayan şerit yerine hamburger menüde */
    .h-burger{display:inline-flex}
    .h-cats{display:none;position:absolute;left:0;right:0;top:100%;max-width:none;flex-direction:column;gap:.15rem;
            padding:.6rem 1rem 1rem;background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--shadow);
            max-height:calc(100vh - 7.5rem);overflow-y:auto}
    .h-cats.open{display:flex;animation:vin .2s ease}
    .h-cats a{border-radius:10px;padding:.8rem 1rem;font-size:.98rem;color:var(--ink)}
  }
  @media(max-width:400px){
    .logo-img{height:1.75rem}
    .h-top{gap:.6rem}
  }

  /* ── CURTAIN + VIEW ── */
  #curtain{position:fixed;inset:0;z-index:100;pointer-events:none;background:linear-gradient(90deg,#0c1322,#15233c 50%,#0c1322);transform:scaleX(0);transform-origin:left}
  #curtain.wipe{animation:wipe .8s cubic-bezier(.77,0,.18,1)}
  @keyframes wipe{0%{transform:scaleX(0);transform-origin:left}48%{transform:scaleX(1);transform-origin:left}52%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
  .view{display:none}
  /* flex:1 — icerik kisa olsa bile bu kutu buyuyup altbilgiyi asagi iter.
     display:block kalmali: flex sutun yapilirsa .wrap uzerindeki
     "margin:0 auto" capraz eksende serbest alani yutup esnemeyi iptal
     ediyor ve butun sayfa iceriğe gore daraliyor. */
  .view.active{display:block;flex:1;animation:vin .45s ease}
  @keyframes vin{from{opacity:0;transform:translateY(10px)}to{opacity:1}}
  .wrap{max-width:1240px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem)}

  /* ── HERO ── */
  .hero{background:radial-gradient(800px 420px at 85% 20%, var(--foil-soft), transparent 65%),linear-gradient(to bottom, var(--stage-warm), var(--stage));border-bottom:1px solid var(--line)}
  .hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;padding-top:clamp(2rem,5vh,4rem);padding-bottom:clamp(2.2rem,6vh,4.5rem)}
  @media(max-width:900px){ .hero-in{grid-template-columns:1fr} .hero-scene{order:-1} }
  .eyebrow{font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--foil);margin-bottom:1rem}
  .hero h1{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(2.4rem,5.4vw,4.2rem);line-height:.98;margin:0 0 1.1rem;text-transform:uppercase;letter-spacing:.03em;text-wrap:balance}
  .hero h1 .stroke{color:var(--foil)}
  .hero p.sub{color:var(--dim);margin:0 0 1.6rem;max-width:46ch;font-size:1.02rem;line-height:1.6}
  .chip{background:none;border:1px solid var(--line);border-radius:999px;color:var(--dim);padding:.5rem 1.1rem;font-size:.82rem;transition:all .15s}
  .chip:hover{color:var(--foil);border-color:var(--foil)}
  .hero-scene{perspective:1300px;display:grid;place-items:center}
  .hero-scene .ticket{width:min(560px,100%)}

  /* ── 3D TICKET ── */
  .scene3d{perspective:1300px}
  .ticket{position:relative;width:100%;aspect-ratio:720/280;transform-style:preserve-3d;will-change:transform;user-select:none}
  .face{position:absolute;inset:0;border-radius:14px;overflow:hidden;display:flex;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:linear-gradient(115deg,rgba(255,255,255,.05),transparent 40%),var(--tbg);box-shadow:0 34px 70px -22px rgba(9,14,26,.55),0 0 0 1px rgba(244,247,253,.08),inset 0 0 60px rgba(0,0,0,.45);color:var(--tink)}
  .face.back{transform:rotateY(180deg)}
  .face::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(105deg,transparent calc(var(--sheen,30%) - 12%),rgba(156,194,255,.15) var(--sheen,30%),rgba(107,156,244,.12) calc(var(--sheen,30%) + 4%),transparent calc(var(--sheen,30%) + 16%))}
  .t-code{flex:0 0 13%;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--tline);padding:8% 2%}
  .barcode{display:flex;height:78%;transform:rotate(180deg);writing-mode:vertical-rl}
  .barcode i{display:block;background:var(--tink)}
  .t-main{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.22em;padding:3% 3%}
  .t-title{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(1.4rem,3.8vw,2.9rem);letter-spacing:.07em;line-height:1;text-transform:uppercase}
  .t-date{font-size:clamp(.68rem,1.4vw,.95rem);letter-spacing:.3em;color:var(--tink)}
  .t-sub{font-size:clamp(.58rem,1.1vw,.78rem);letter-spacing:.24em;text-transform:uppercase;color:var(--tdim)}
  .t-price small{display:block;font-size:.56rem;letter-spacing:.26em;color:var(--tdim);text-transform:uppercase;margin-top:.5em}
  .t-price b{font-family:"Cascadia Mono",Consolas,monospace;font-size:clamp(.8rem,1.7vw,1.1rem);color:var(--tfoil)}
  .t-brand{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(.8rem,1.7vw,1.1rem);letter-spacing:.32em;color:var(--tfoil);margin-top:.6em}
  .t-perf{flex:0 0 0;border-left:2px dashed rgba(244,247,253,.28);position:relative}
  .t-perf::before,.t-perf::after{content:"";position:absolute;left:-8px;width:14px;height:14px;border-radius:50%;background:var(--stage)}
  .t-perf::before{top:-7px}.t-perf::after{bottom:-7px}
  /* Koçan yazıları düz ve alt alta: yan çevrilmiş hâlde üç satır koçanın
     boyuna sığmıyor, baştaki ve sondaki satır kesiliyordu. */
  .t-stub{flex:0 0 24%;display:flex;align-items:center;justify-content:center;min-width:0;padding:0 .4rem}
  .stub-txt{display:flex;flex-direction:column;align-items:center;gap:.45em;text-align:center;min-width:0;max-width:100%}
  .stub-txt .w{font-size:clamp(.42rem,.8vw,.56rem);letter-spacing:.22em;color:var(--tdim);text-transform:uppercase;line-height:1.4}
  .stub-txt .h{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(.85rem,1.9vw,1.25rem);letter-spacing:.06em;line-height:1.05;text-transform:uppercase;overflow-wrap:anywhere}
  .stub-txt .s{font-family:"Cascadia Mono",Consolas,monospace;font-size:clamp(.4rem,.75vw,.5rem);letter-spacing:.02em;color:var(--tdim);white-space:nowrap}
  /* Bilet arkası: QR solda, bilgiler sağda.
     Alt alta dizilince QR kartın yüksekliğine sıkışıyor ve modül başına
     ~2 piksele düşüyordu — kapıda okunmayacak kadar küçük. Yan yana
     düzende QR, kart yüksekliğinin %86'sını alıyor. */
  .b-inner{flex:1;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:5%;padding:4%}
  .b-meta{display:flex;flex-direction:column;align-items:flex-start;gap:.7em;min-width:0}
  .b-pnr{display:flex;flex-direction:column;align-items:center;gap:.25em}
  .b-pnr small{font-size:.56rem;letter-spacing:.4em;color:var(--tdim);text-transform:uppercase}
  .b-pnr b{font-family:"Cascadia Mono",Consolas,monospace;font-size:clamp(1rem,2.6vw,1.7rem);letter-spacing:.24em;color:var(--tfoil)}
  .b-terms{font-size:.56rem;letter-spacing:.12em;color:var(--tdim);text-transform:uppercase}
  /* QR kutusu — boyut BURADA verilmek zorunda.
     Eskiden tek boyut kuralı ".qr-box canvas" idi; işaretlemede canvas yok,
     <img> var. Kural hiç uygulanmıyordu ve sunucunun ürettiği 370x370
     piksellik QR doğal boyutunda açılıp bileti taşırıyordu.
     Yükseklik karta göre veriliyor: kart oranı sabit (720/280), bu yüzden
     yüzde her ekran genişliğinde aynı düzeni korur. */
  .qr-box{background:#f4f7fd;padding:5px;border-radius:8px;line-height:0;
          flex:0 0 auto;height:86%;aspect-ratio:1;box-sizing:border-box}
  /* image-rendering BİLİNÇLİ olarak varsayılan (yumuşak) bırakıldı.
     Eski kural "pixelated" idi: kaynak 370 piksel, ekranda ~150 piksel,
     yani KÜÇÜLTME. Küçültürken en-yakın-komşu örnekleme modül satırlarını
     düşürüp birleştirir ve kodu okunamaz hale getirebilir. Yumuşak
     küçültme modül kenarlarını kenar yumuşatmalı üretir; okuyucular bunu
     sorunsuz çözer. "pixelated" yalnız BÜYÜTMEDE doğrudur. */
  .qr-box img{display:block;width:100%;height:100%;object-fit:contain;border-radius:4px}

  /* ── BÖLÜMLER ── */
  section{padding:clamp(2.2rem,5vh,3.6rem) 0}
  .sec-head{display:flex;align-items:baseline;gap:1.2rem;margin-bottom:1.6rem;flex-wrap:wrap}
  .sec-head h2{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(1.5rem,3vw,2.2rem);margin:0;text-transform:uppercase;letter-spacing:.05em}
  .sec-head .rule{flex:1;height:1px;background:var(--line);min-width:60px}
  .sec-head .more{background:none;border:none;color:var(--foil);font-size:.85rem;font-weight:600;padding:0}
  .sec-head .more:hover{text-decoration:underline}

  /* ── KARTLAR ── */
  /* auto-FIT + üst sınır: az kart varsa boş sütunlar çökertilir ve satır
     ortalanır (eskiden 4 sütun açılıp 2 kart konuyor, sağda 600 px boşluk
     kalıyordu); çok kart varsa satır normal şekilde dolar. */
  /* Kart genisligi .erow ile AYNI aralikta (250-280): ustteki yatay serit
     ile alttaki grid ayni boyda kart gostersin. Ikisi de sola yasli —
     biri sola biri ortaya hizalandiginda iki bolum kaymis gorunuyordu. */
  /* Sütunlar satırı tam doldurur (1fr); eskiden 280px üst sınırı sağda boş bir şerit bırakıyordu. */
  .egrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.2rem}
  .erow{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,280px);gap:1.2rem;overflow-x:auto;padding-bottom:.6rem;scroll-snap-type:x mandatory}
  .erow .ecard{text-decoration:none;scroll-snap-align:start}
  .ecard{text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;text-align:left;padding:0;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease,border-color .18s;cursor:pointer}
  .ecard:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(107,156,244,.5)}
  .poster{position:relative;aspect-ratio:3/2;display:flex;align-items:flex-end;padding:1rem;overflow:hidden}
  .poster .art{position:absolute;inset:0;font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;display:grid;place-items:center;text-align:center;color:rgba(255,255,255,.92);font-size:1.6rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.05;padding:1rem;text-shadow:0 2px 18px rgba(0,0,0,.35)}
  .poster .cat{position:absolute;top:.8rem;right:.8rem;z-index:1;background:rgba(9,14,26,.7);color:#dbe9ff;border-radius:999px;padding:.3em .85em;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase}
  .ecard .body{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
  .ecard h3{margin:0;font-size:1.06rem;font-weight:700;line-height:1.25}
  .ecard .meta{color:var(--dim);font-size:.82rem}
  .ecard .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:.7rem;border-top:1px dashed var(--line)}
  .ecard .price{font-family:"Cascadia Mono",Consolas,monospace;color:var(--foil);font-size:.92rem}
  .ecard .price small{color:var(--dim);font-family:"Segoe UI",sans-serif}
  .ecard .buy{background:var(--foil-soft);border:none;color:var(--foil);border-radius:8px;padding:.5rem .95rem;font-size:.82rem;font-weight:700}
  .ecard:hover .buy{background:var(--foil);color:#fff}
  .empty{padding:3rem 1rem;text-align:center;color:var(--dim);font-size:.95rem;border:1px dashed var(--line);border-radius:12px}
  .empty b{color:var(--ink)}

  .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}
  .tile{border:none;border-radius:12px;padding:1.4rem 1.3rem;min-height:110px;color:#f4f7fd;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;overflow:hidden;transition:transform .18s}
  .tile:hover{transform:translateY(-4px)}
  .tile h4{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:1.3rem;margin:0;text-transform:uppercase;letter-spacing:.06em}
  .tile .go{font-family:"Cascadia Mono",Consolas,monospace;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:#a9c8ff}
  .tile.c1{background:linear-gradient(150deg,#1565c0,#0d3a72)}
  .tile.c2{background:linear-gradient(150deg,#122c52,#0b1c36)}
  .tile.c3{background:linear-gradient(150deg,#3d7fd9,#1d4e94)}
  .tile.c4{background:linear-gradient(150deg,#0e2240,#132f5a)}

  /* ── ETKİNLİKLER ── */
  .fchips{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
  .fchip{font-family:"Cascadia Mono",Consolas,monospace;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:.6em 1.3em;background:none}
  .fchip:hover{color:var(--ink);border-color:var(--foil)}
  .fchip.on{background:var(--foil);color:#fff;border-color:var(--foil)}
  /* Şehir seçici. Eskiden Razor'da satır içi stildeydi ve varsayılan 16px
     yazıyla haplardan yüksek çıkıyordu; esnek satırda en uzun öğe olduğu
     için hapları kendi boyuna GERİYORDU (align-items varsayılanı stretch).
     Gerilen bir blokta yazı üstte kalır — haplardaki etiketler bu yüzden
     ortalı değil, yukarı kaçıktı. Boyunu haplarla eşitleyerek asıl sebebi
     kaldırıyoruz; yukarıdaki align-items:center ise ileride satıra daha
     uzun bir öğe eklenirse aynı hatanın tekrarlamasını önler. */
  .fsehir{border:1px solid var(--line);border-radius:999px;padding:.3rem 1rem;background:var(--card);color:inherit;font:inherit;font-size:.78rem}
  .page-title{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(2rem,5vw,3.4rem);margin:0 0 1.4rem;text-transform:uppercase;letter-spacing:.03em}
  .page-title .stroke{color:var(--foil)}
  .search-info{display:none;align-items:center;gap:.8rem;margin:0 0 1.4rem;color:var(--dim);font-size:.9rem}
  .search-info.show{display:flex}
  .search-info b{color:var(--ink)}
  .search-info button{background:none;border:1px solid var(--line);border-radius:999px;color:var(--dim);padding:.35rem .9rem;font-size:.78rem}
  .search-info button:hover{color:var(--foil);border-color:var(--foil)}

  /* ── DETAY ── */
  .back-link{display:inline-block;text-decoration:none;background:none;border:none;color:var(--dim);font-family:"Cascadia Mono",Consolas,monospace;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;padding:.3em 0;margin-bottom:1rem}
  .back-link:hover{color:var(--foil)}
  .banner{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/6;min-height:240px;width:100%;max-width:100%;background:#0f1626;box-shadow:var(--shadow)}
  .banner .art{position:absolute;inset:0;display:grid;place-items:center;font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(2rem,7vw,5rem);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.16)}
  /* Başlık bilgileri görselin ALTINDA (.dhead) — yazı görselin üstünü kapatmasın. */
  .dhead{margin:1.3rem 0 0}
  .dhead h1{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(1.8rem,4.5vw,3rem);margin:.5rem 0 0;text-transform:uppercase;letter-spacing:.04em;line-height:1.05;overflow-wrap:anywhere}
  .dhead .dcat{display:inline-block;background:var(--foil-soft);color:var(--foil);border-radius:999px;padding:.35em 1em;font-size:.66rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
  .dhead .dmeta{display:flex;gap:.4rem 1.4rem;flex-wrap:wrap;margin-top:.7rem;color:var(--dim);font-size:.95rem}
  .dhead .dmeta .vlink{color:var(--ink)}
  .dhead .daddr{margin:.5rem 0 0;color:var(--dim);font-size:.88rem}
  .dhead .ddesc{margin:.8rem 0 0;line-height:1.65;max-width:75ch;white-space:pre-line}

  /* ── MEKAN & SANATÇI BAĞLANTILARI ── */
  .vlink{background:none;border:none;padding:0;color:inherit;font:inherit;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}
  .vlink:hover{color:var(--foil)}

  /* ── CANLI ARAMA ÖNERİLERİ (gerçekte debounce'lu AJAX → /api/search) ── */
  form.h-search{position:relative}
  .sugg{position:absolute;top:calc(100% + 10px);left:0;right:0;z-index:90;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);display:none;padding:.4rem;max-height:min(430px,62vh);overflow-y:auto;text-align:left}
  .sugg.open{display:block}
  .s-lbl{font-family:"Cascadia Mono",Consolas,monospace;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--dim);padding:.65rem .8rem .3rem}
  /* .h-search/.hero-search'ün "ARA" buton stili öneri satırlarına bulaşmasın diye
     .sugg ile daha yüksek öncelikte sıfırlanır */
  .sugg .s-row{display:flex;width:100%;align-items:center;gap:.8rem;background:none;border:none;border-radius:9px;padding:.55rem .8rem;color:var(--ink);text-align:left;cursor:pointer;font-family:"Segoe UI",system-ui,sans-serif;font-stretch:normal;font-weight:400;font-size:.92rem;letter-spacing:normal;text-transform:none}
  .sugg .s-row:hover,.sugg .s-row:focus-visible{background:var(--foil-soft)}
  .s-date{flex:none;width:46px;text-align:center;background:var(--foil-soft);color:var(--foil);border-radius:8px;padding:.32rem 0;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.15}
  .s-date b{display:block;font-size:.98rem;font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed}
  .s-ic{flex:none;width:46px;text-align:center;font-size:1.15rem}
  .s-main{flex:1;min-width:0;font-size:.92rem;font-weight:600;line-height:1.25}
  .s-main small{display:block;color:var(--dim);font-weight:400;font-size:.76rem;margin-top:.12rem}
  .s-main b{color:var(--foil)}
  .s-pr{flex:none;font-family:"Cascadia Mono",Consolas,monospace;color:var(--foil);font-size:.82rem}
  .sugg .s-all{display:block;width:100%;background:none;border:none;border-radius:0;border-top:1px solid var(--line);margin-top:.35rem;padding:.75rem;color:var(--foil);font-size:.84rem;font-weight:600;text-align:center;cursor:pointer;font-family:"Segoe UI",system-ui,sans-serif;font-stretch:normal;letter-spacing:normal;text-transform:none}
  .sugg .s-all:hover{background:var(--foil-soft)}
  .s-empty{padding:1rem;text-align:center;color:var(--dim);font-size:.85rem}
  .panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.6rem}
  .panel h3{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:1.3rem;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}
  .field{display:flex;flex-direction:column;gap:.35rem}
  .field label{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
  .field input{background:var(--stage);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:inherit;padding:.75rem .9rem;outline:none}
  .field input:focus{border-color:var(--foil)}
  .btn-primary{width:100%;padding:.95rem;border:none;border-radius:10px;background:var(--foil);color:#fff;font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:.95rem;letter-spacing:.22em;text-transform:uppercase;transition:transform .12s,box-shadow .2s}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 28px -8px rgba(21,101,192,.5)}
  .btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
  .btn-line{width:100%;padding:.9rem;border-radius:10px;background:none;border:1px solid var(--line);color:var(--ink);font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:.9rem;letter-spacing:.2em;text-transform:uppercase}
  .btn-line:hover{border-color:var(--foil);color:var(--foil)}

  /* ── BİLETLERİM ── */
  .mt-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:center}
  @media(max-width:900px){.mt-grid{grid-template-columns:1fr}}
  .mt-side h3{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(1.4rem,2.6vw,2rem);margin:0 0 .6rem;text-transform:uppercase;letter-spacing:.05em}
  .mt-side p{color:var(--dim);font-size:.92rem;margin:0 0 1.5rem;max-width:42ch;line-height:1.6}
  .mt-actions{display:flex;flex-direction:column;gap:.7rem;max-width:340px}
  .secure,.mt-side .secure{margin-top:1.4rem;font-size:.74rem;color:var(--dim);border-left:2px solid var(--foil);padding-left:1em;max-width:40ch;line-height:1.6}
  #myTicket{transform:rotateY(-14deg) rotateX(4deg);transition:transform 1s cubic-bezier(.3,.9,.25,1)}
  #myTicket.flipped{transform:rotateY(-194deg) rotateX(-4deg)}
  .pager{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.2rem}
  .pager button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:1rem}
  .pager button:hover:not(:disabled){border-color:var(--foil);color:var(--foil)}
  .pager button:disabled{opacity:.35;cursor:default}
  .pager span{font-family:"Cascadia Mono",Consolas,monospace;font-size:.78rem;letter-spacing:.14em;color:var(--dim)}
  .demo-tag{display:inline-block;background:var(--foil-soft);color:var(--foil);border-radius:999px;padding:.3em 1em;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;margin-left:.6rem;vertical-align:middle}

  /* ── GİRİŞ / KAYIT ── */
  .auth-grid{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:2.5rem;align-items:center;padding-block:clamp(2rem,6vh,4rem)}
  @media(max-width:900px){.auth-grid{grid-template-columns:1fr}}
  .auth-grid h2{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(1.8rem,3.6vw,2.6rem);margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.04em}
  .auth-grid .p{color:var(--dim);margin:0 0 1.8rem;font-size:.92rem;max-width:38ch}
  .auth-grid form{display:flex;flex-direction:column;gap:1rem}
  .swap-link{background:none;border:none;color:var(--dim);font-size:.85rem;padding:.4em 0;text-align:left}
  .swap-link:hover{color:var(--foil)}
  .holder-pop .ch{display:inline-block;animation:pop .3s cubic-bezier(.2,1.6,.4,1) both}
  @keyframes pop{from{opacity:0;transform:translateY(.35em) scale(.6)}to{opacity:1;transform:none}}

  /* ── TOAST ── */
  #toast{
    position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);z-index:120;
    background:#101828;color:#f4f7fd;border:1px solid rgba(138,180,255,.3);border-radius:10px;
    padding:.85rem 1.4rem;font-size:.88rem;max-width:min(480px,90vw);text-align:center;
    opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;
  }
  #toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto;cursor:pointer}
  /* Hata: üstte, kırmızı, ünlemli — gözden kaçmasın. */
  #toast.err{top:22px;bottom:auto;transform:translate(-50%,-20px);background:#2a1215;color:#ffe1e1;border-color:rgba(239,83,80,.6);
    box-shadow:0 10px 30px rgba(0,0,0,.35);padding-left:2.6rem;text-align:left}
  #toast.err::before{content:"!";position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:1.2rem;height:1.2rem;border-radius:50%;
    background:#ef5350;color:#fff;font-weight:800;font-size:.8rem;display:grid;place-items:center}
  #toast.err.show{transform:translate(-50%,0)}

  footer{border-top:1px solid var(--line);padding:2.4rem 0;margin-top:2rem;color:var(--dim);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;text-align:center}

  @media (prefers-reduced-motion:reduce){
    *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  }

/* ── Razor eklentileri: link olarak kullanılan bileşenler ── */
a.btn-ghost,a.btn-solid,a.more{text-decoration:none;display:inline-block}
a.ecard{color:var(--ink)}
a.tile{color:#f4f7fd;text-decoration:none}
a.chip{text-decoration:none}
a.fchip{text-decoration:none}
a.vlink{text-decoration:none}
.field-err{color:#c62828;font-size:.82rem;margin:.35rem 0 0}
.form-alert{background:rgba(198,40,40,.1);color:#c62828;border-radius:9px;padding:.65rem .9rem;font-size:.88rem;margin-bottom:1rem}
.qr-img{width:100%;max-width:230px;border-radius:10px;background:#fff;padding:10px;box-sizing:border-box}
.tk-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:1.2rem;display:flex;flex-direction:column;gap:.6rem}
.tk-card.used{opacity:.55}
.tk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.1rem}
.tk-pnr{font-family:"Cascadia Mono",Consolas,monospace;font-size:1.05rem;letter-spacing:.08em;color:var(--foil)}
.tk-status{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;display:inline-block}
.tk-status.valid{background:rgba(27,158,99,.12);color:#1b9e63}
.tk-status.used{background:rgba(198,40,40,.12);color:#c62828}
.auth-card{max-width:430px;margin:2.5rem auto;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:2rem}
.auth-card h2{margin:0 0 1.2rem}
.auth-card label{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 .3rem}
.auth-card input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;background:var(--stage);padding:.65rem .9rem;margin-bottom:1rem;color:inherit;font:inherit}
.auth-card .btn-primary{width:100%}
.auth-card .code-input{font-size:1.6rem;letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums}
.code-resend{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;margin-top:1rem;font-size:.85rem;color:var(--dim)}
.code-resend .link-btn{background:none;border:none;padding:0;color:var(--foil);font:inherit;font-weight:600;cursor:pointer}
.auth-swap{text-align:center;margin-top:1rem;font-size:.88rem;color:var(--dim)}
.auth-swap a{color:var(--foil)}
a.swap-link{text-decoration:none;display:inline-block}
.swap-link b{color:var(--foil)}
@media(max-width:760px){
  .h-auth a.btn-ghost,.h-auth a.btn-solid{padding:.45rem .7rem;font-size:.78rem}
  .h-auth form button{padding:.45rem .7rem;font-size:.78rem}
}
/* Mobil: dar ekranda bilet içeriği yüz alanına sığsın (uzun etkinlik adları) */
@media(max-width:560px){
  .t-title{font-size:1.02rem;letter-spacing:.05em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .t-main{gap:.12em;padding:2% 3%}
  .t-date{font-size:.68rem}
  .t-sub{font-size:.56rem}
  .t-price small{font-size:.5rem}
  .t-price b{font-size:.85rem}
  .t-brand{font-size:.85rem}
  .b-pnr b{font-size:.95rem}
  .b-terms{font-size:.5rem}
}
@media(max-width:560px){
  .ticket{aspect-ratio:720/400}
  .mt-actions{max-width:none}
  .t-title{font-size:1.15rem}
}

/* ── Sayfa geçişi: mockup'taki perde efekti, sayfalar arası (giriş/kayıt/biletlerim) ── */
#curtain.wipe-in{animation:wipeIn .38s cubic-bezier(.77,0,.18,1) forwards}
#curtain.wipe-out{animation:wipeOut .5s cubic-bezier(.77,0,.18,1) forwards}
@keyframes wipeIn{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
@keyframes wipeOut{from{transform:scaleX(1);transform-origin:right}to{transform:scaleX(0);transform-origin:right}}

/* ── Biletlerim: "Tüm Biletleri Göster" listesi — kartlar sırayla süzülerek gelir ── */
.all-tk-head{display:flex;justify-content:center;margin-top:2.2rem}
.all-tk-head .btn-line{max-width:360px}
.all-tk{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,360px));gap:.9rem;margin-top:1.3rem}
.atk{display:flex;align-items:center;gap:.9rem;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem;color:var(--ink);cursor:pointer;font:inherit;opacity:0;transform:translateY(16px);animation:atkIn .5s cubic-bezier(.2,.9,.3,1) forwards;transition:border-color .15s,box-shadow .15s}
.atk:hover{border-color:var(--foil);box-shadow:var(--shadow)}
@keyframes atkIn{to{opacity:1;transform:none}}
.atk-bar{flex:none;width:9px;align-self:stretch;border-radius:5px;background:repeating-linear-gradient(180deg,var(--foil) 0 3px,transparent 3px 7px);opacity:.65}
.atk-main{flex:1;min-width:0}
.atk-main b{display:block;font-size:.95rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.atk-main small{color:var(--dim);font-size:.76rem}
.atk-side{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex:none}
.atk-side .mono{font-size:.8rem;letter-spacing:.06em;color:var(--foil)}
.atk-side em{font-style:normal}
.atk.dim .atk-main,.atk.dim .atk-bar,.atk.dim .mono{opacity:.5}

/* ── Yasal sayfalar (mesafeli satış, iade, KVKK, çerez, iletişim) ────────────
   Uzun metin okunacak; satır uzunluğu 70ch ile sınırlanır. Daha geniş satır
   göz için takip edilemez hale gelir ve yasal metinde bu, "okunmadı" demektir. */
.legal{max-width:76ch;padding-bottom:3rem}
.legal h3{font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;font-size:1.12rem;margin:2rem 0 .6rem;letter-spacing:.03em}
.legal p,.legal li{color:var(--ink);font-size:.94rem;line-height:1.75}
.legal ul{margin:.4rem 0 .9rem;padding-left:1.15rem}
.legal li{margin-bottom:.4rem}
.legal a{color:var(--foil)}
.legal-table{width:100%;border-collapse:collapse;margin:.7rem 0 1.1rem;font-size:.9rem}
.legal-table th,.legal-table td{border:1px solid var(--line);padding:.5rem .7rem;text-align:left;vertical-align:top}
.legal-table th{background:var(--foil-soft);font-weight:600;white-space:nowrap}
.legal-table thead th{white-space:normal}

/* Onaylanmamış metin uyarısı — yayına çıkmadan önce mutlaka kaybolmalı. */
.legal-draft{border:1px solid #d9822b;background:rgba(217,130,43,.1);border-radius:10px;padding:.9rem 1.1rem;margin-bottom:1.4rem;font-size:.88rem}
.legal-draft ul{margin:.5rem 0 0;padding-left:1.1rem}
.legal-draft code{font-size:.85em;background:rgba(127,127,127,.16);padding:.1em .35em;border-radius:4px}

/* ── Altbilgi ───────────────────────────────────────────────────────────── */
.ft{display:flex;flex-direction:column;gap:.9rem;align-items:center;text-align:center}
.ft-firm{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem .9rem;font-size:.68rem;letter-spacing:.06em;text-transform:none;opacity:.85}
.ft-warn{color:#d9822b;text-transform:none;letter-spacing:normal;font-size:.75rem}
.ft-mark{font-size:.7rem;opacity:.7}

/* ── Çerez bilgilendirme şeridi ─────────────────────────────────────────── */
#cerezSerit{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:.8rem 1.2rem;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -8px 30px -14px rgba(0,0,0,.35);font-size:.84rem;color:var(--ink)}
#cerezSerit a{color:var(--foil)}
#cerezTamam{background:var(--foil);color:#fff;border:none;border-radius:8px;padding:.45rem 1.1rem;font:inherit;font-weight:600;cursor:pointer}
#cerezTamam:hover{filter:brightness(1.08)}

/* ── Satın alma onay kutusu ─────────────────────────────────────────────── */
.consent{display:flex;align-items:flex-start;gap:.55rem;margin:.9rem 0 .3rem;font-size:.8rem;line-height:1.5;color:var(--dim)}
.consent input{margin-top:.18rem;flex:none;width:16px;height:16px;accent-color:var(--foil);cursor:pointer}
.consent a{color:var(--foil)}

/* ── Aramalı şehir listesi (js/city-picker.js) ── */
.cp{position:relative;display:inline-block}
.cp-btn{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}
.cp-btn::after{content:"";width:.45em;height:.45em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-25%) rotate(45deg);opacity:.6;flex:none;transition:transform .15s}
.cp.open .cp-btn::after{transform:translateY(15%) rotate(-135deg)}
.cp-pop{position:absolute;z-index:80;top:calc(100% + 6px);right:0;width:min(280px,calc(100vw - 2rem));background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:.5rem}
.cp-search{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;background:var(--stage);color:var(--ink);font:inherit;font-size:.88rem;padding:.55rem .75rem;outline:none}
.cp-search:focus{border-color:var(--foil)}
.cp-list{list-style:none;margin:.4rem 0 0;padding:0;max-height:min(320px,55vh);overflow-y:auto;overscroll-behavior:contain}
.cp-group{padding:.55rem .7rem .25rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.cp-opt{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .7rem;border-radius:7px;font-size:.88rem;color:var(--ink);cursor:pointer}
.cp-opt small{color:var(--foil);font-size:.72rem;white-space:nowrap}
.cp-opt.act{background:var(--foil-soft)}
.cp-opt[aria-selected="true"]{color:var(--foil);font-weight:700}
.cp-empty{padding:.7rem;color:var(--dim);font-size:.85rem}
.fchips .cp-btn{border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;background:var(--card);font-size:.78rem;min-width:9.5rem}
.fchips .cp-btn:hover{border-color:var(--foil)}

/* Hesap düğmeleri: masaüstünde başlıkta, mobilde hamburger menüde (_Layout) */
.h-cats-auth{display:none}
.h-auth-links{display:contents}
@media(max-width:760px){
  .h-auth-links{display:none}
  .h-cats-auth{display:flex;gap:.6rem;margin-top:.6rem;padding-top:.9rem;border-top:1px solid var(--line)}
  .h-cats .h-cats-auth a,.h-cats-auth form,.h-cats-auth button{flex:1;text-align:center}
  .h-cats .h-cats-auth a.btn-ghost{border:1px solid var(--line);border-radius:10px;padding:.75rem 1rem;font-size:.95rem}
  .h-cats .h-cats-auth a.btn-solid{color:#fff;background:var(--foil);border-radius:10px;padding:.75rem 1rem;font-size:.95rem}
  .h-cats-auth form button{width:100%;padding:.75rem 1rem;font-size:.95rem;border-radius:10px}
}

/* ── Hesabım (/hesabim) ── */
.acct{padding-bottom:3rem}
.acct-grid{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:1.4rem;align-items:start}
.acct-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:1.6rem}
.acct-card h3{margin:0 0 1.1rem;font-family:"Bahnschrift","Arial Narrow",sans-serif;font-stretch:condensed;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:1rem}
.acct-forms{display:flex;flex-direction:column;gap:1.4rem}
.acct-forms form{display:flex;flex-direction:column;gap:1rem}
.acct-forms .btn-primary{margin-top:.3rem}
.acct-id{text-align:center;position:sticky;top:8rem}
.acct-id h3{margin:.8rem 0 .3rem;letter-spacing:.06em;text-transform:none;font-size:1.25rem}
.acct-avatar{width:4.2rem;height:4.2rem;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--foil),var(--lilac));color:#fff;font-size:1.7rem;font-weight:700}
.acct-role{display:inline-block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--foil);background:var(--foil-soft);border-radius:999px;padding:.3rem .8rem}
.acct-dl{display:grid;grid-template-columns:auto 1fr;gap:.55rem .9rem;margin:1.4rem 0 0;text-align:left;font-size:.88rem}
.acct-dl dt{color:var(--dim);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;align-self:center}
.acct-dl dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.acct-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1.4rem 0 1.1rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.acct-stats b{display:block;font-size:1.15rem}
.acct-stats span{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
a.acct-link{display:block;text-decoration:none;text-align:center;box-sizing:border-box}
.acct-note{color:var(--dim);font-size:.78rem;line-height:1.5}
.field label small{text-transform:none;letter-spacing:0}
.field input:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:860px){
  .acct-grid{grid-template-columns:1fr}
  .acct-id{position:static}
}

/* ── Etkinlik detayı: açıklama + mekan/organizatör kartları ── */
.ev-about{margin-top:1.4rem}
.ev-desc{margin:.6rem 0 0;color:var(--ink);line-height:1.7;white-space:pre-line;overflow-wrap:anywhere}
.ev-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line)}
.ev-tags a{color:var(--dim);text-decoration:none;font-size:.86rem}
.ev-tags a:hover{color:var(--foil)}
.ev-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin:1.4rem 0 2.5rem}
@media(max-width:900px){.ev-cards{grid-template-columns:1fr}}
.ev-card h4{margin:1.1rem 0 .7rem;font-size:.9rem;font-weight:700}
.ev-card-head{display:flex;align-items:center;gap:.8rem}
.ev-ava{width:3rem;height:3rem;flex:none;border-radius:50%;object-fit:cover;display:grid;place-items:center;
        background:linear-gradient(135deg,var(--foil),var(--lilac));color:#fff;font-weight:700;font-size:1.2rem}
.ev-card-name{font-weight:700;font-size:1.02rem;color:var(--ink);text-decoration:none}
a.ev-card-name:hover{color:var(--foil)}
.ev-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin-top:.25rem;font-size:.82rem;color:var(--dim)}
.ev-card-meta a{display:inline-flex;align-items:center;gap:.3rem;color:var(--foil);text-decoration:none;font-weight:600}
.ev-card-meta a:hover{text-decoration:underline}
.ev-addr{margin:.8rem 0 0;color:var(--dim);font-size:.84rem;line-height:1.5}
/* Sabit ölçü: her seçenek aynı genişlik ve yükseklikte (2 sütun); uzun ad
   "…" ile kısalır, tamamı üzerine gelince görünür (title). */
.ev-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
@media(max-width:420px){.ev-chips{grid-template-columns:minmax(0,1fr)}}
.ev-chip{display:flex;align-items:center;gap:.55rem;height:2.75rem;min-width:0;padding:0 .9rem 0 .35rem;border:1px solid var(--line);
         border-radius:999px;background:var(--card);color:var(--ink);text-decoration:none;font-size:.84rem;transition:border-color .15s,color .15s}
.ev-chip:hover{border-color:var(--foil);color:var(--foil)}
.ev-chip img,.ev-chip-ph{width:1.75rem;height:1.75rem;flex:none;border-radius:50%;object-fit:cover}
.ev-chip-ph{background:linear-gradient(135deg,var(--deep),var(--foil))}
.ev-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Logo kırpılmasın: kare olmayan/şeffaf logolar beyaz zeminde sığdırılır. */
.ev-logo{object-fit:contain;background:#fff;border:1px solid var(--line);padding:.2rem}

/* ── Orantı düzeltmeleri ── */
/* .wrap yatay dolguyu ayarlarken bölümün dikey dolgusunu da sıfırlıyordu
   (sınıf seçicisi "section" kuralını eziyor). Sonuç: sayfa başlıkları menüye,
   "Yaklaşan Etkinlikler" kategori kartlarına yapışıyordu. */
section.wrap{padding-top:clamp(1.6rem,4vh,2.8rem);padding-bottom:clamp(1.6rem,4vh,2.8rem)}
.page-lead{color:var(--dim);margin:-.6rem 0 0;font-size:.92rem}
.fchips .page-lead{margin:0}
/* Yüklenen fotoğraf kartı/bandı kaplar */
.poster .art-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* ── Etkinlik kuralları + sanatçı kartları (etkinlik detayı) ── */
.ev-rules{margin:.4rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.55rem}
.ev-rules li{position:relative;padding-left:1.5rem;line-height:1.6}
.ev-rules li::before{content:"";position:absolute;left:.25rem;top:.62em;width:.45rem;height:.45rem;border-radius:50%;background:var(--foil)}
.ev-artists{margin-top:1.4rem;padding:.6rem 1.2rem;display:flex;flex-direction:column}
.ev-artist{display:flex;align-items:center;gap:1rem;padding:.8rem 0;text-decoration:none;color:var(--ink)}
.ev-artist+.ev-artist{border-top:1px solid var(--line)}
.ev-artist img,.ev-artist .ph{width:4rem;height:4rem;flex:none;border-radius:12px;object-fit:cover}
.ev-artist .ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--foil),var(--lilac));color:#fff;font-size:1.5rem;font-weight:700}
.ev-artist .txt{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}
.ev-artist b{font-size:1.05rem}
.ev-artist small{color:var(--dim);font-size:.85rem}
.ev-artist .go{color:var(--dim);flex:none}
.ev-artist:hover b,.ev-artist:hover .go{color:var(--foil)}

/* ── Etkinlik sayfası: telefonda alttaki "Bilet Al" çubuğu ── */
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:65;display:flex;align-items:center;justify-content:space-between;gap:1rem;
        padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -10px 30px -12px rgba(16,24,40,.35)}
.buybar .bb-txt{display:flex;flex-direction:column;min-width:0}
.buybar small{color:var(--dim);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.buybar b{font-size:1.15rem}
.buybar .btn-solid{flex:none;padding:.75rem 1.4rem;font-size:.95rem;border-radius:10px}
/* Masaüstünde sayfadaki "Bilet Al" düğmesi yeterli; çubuk yalnız telefonda. */
@media(min-width:901px){.buybar{display:none!important}}
/* Alt çubuk açıkken sayfanın son içeriği (altbilgi) çubuğun altında kalmasın. */
@media(max-width:900px){body:has(.buybar:not([hidden])){padding-bottom:5rem}}

/* ═════════════════════════════════════════════════════════════════
   SADE GÖRÜNÜM (Biletfi'den esinlenen düzen, HepBilet mavisiyle)
   Başlıklar büyük harf/sıkışık yazı yerine normal yazımla; kartlarda
   görsel temiz, bilgiler altta; sanatçı bandı; koyu sütunlu altbilgi.
   ═════════════════════════════════════════════════════════════════ */

/* Başlıklar: normal yazım, kalın */
.sec-head h2,.page-title,.hero h1,.dhead h1,.panel h3,.acct-card h3,.tile h4{
  font-family:inherit;font-stretch:normal;text-transform:none;letter-spacing:-.015em}
.sec-head h2{font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:800}
.sec-head .rule{visibility:hidden}
.sec-head .more{margin-left:auto}
.page-title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800}
.hero h1{font-weight:800;line-height:1.05}
.panel h3{font-size:1.15rem;font-weight:800}
.acct-card h3{font-size:1.05rem;font-weight:800}
.tile h4{font-size:1.2rem;font-weight:800}
.tile .go{font-family:inherit;letter-spacing:.06em;text-transform:none;font-size:.8rem}

/* Etkinlik kartı */
.ecard{border-radius:14px}
.ecard:hover{transform:translateY(-3px)}
.poster{aspect-ratio:4/3}
.poster .art{font-family:inherit;font-stretch:normal;font-weight:800;text-transform:none;letter-spacing:-.01em;font-size:1.35rem}
.ecard .body{gap:.3rem;padding:.9rem 1rem 1rem}
.ecard .dline{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem}
.ecard .when{color:var(--foil);font-size:.72rem;font-weight:700;letter-spacing:.02em}
.ecard .ecity{color:var(--dim);font-size:.75rem;white-space:nowrap}
.ecard h3{font-size:1rem;font-weight:700}
.ecard .meta{font-size:.8rem}
.ecard .foot{border-top:none;padding-top:.55rem}
.ecard .price{font-family:inherit;color:var(--ink);font-weight:700;font-size:.95rem}
.ecard .price small{font-weight:400;font-size:.74rem;margin-left:.1rem}
.ecard .buy{background:none;padding:0;font-size:.82rem}
.ecard:hover .buy{background:none;color:var(--foil);text-decoration:underline}

/* Popüler sanatçılar bandı */
.band{background:var(--foil-soft);margin:1rem 0 0}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.2rem}
.acard{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;color:var(--ink);text-align:center}
.acard img,.acard .ph{width:100%;aspect-ratio:1;border-radius:16px;object-fit:cover;box-shadow:var(--shadow);transition:transform .18s}
.acard .ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--foil),var(--lilac));color:#fff;font-size:2.4rem;font-weight:800}
.acard:hover img,.acard:hover .ph{transform:translateY(-3px)}
.acard b{margin-top:.35rem;font-size:.95rem}
.acard small{color:var(--dim);font-size:.78rem}

/* ── Etkinlik sayfası üstü: sayfayı yatayda kaplayan görsel, altında
      tarih/saat/mekan ve başlayan fiyat + "Bilet Al". Yazı görselin
      üstüne binmez. ── */
/* Sabit biçim: her etkinlikte ve her ekranda aynı oran (masaüstü 3:1,
   telefon 16:9). Fotoğraf bandı kaplar; standart yükleme 1920×1080 olduğu
   için (bkz. CoverImage) kırpma her fotoğrafta aynı ve ölçülü kalır. */
.ev-hero{position:relative;width:100%;aspect-ratio:3/1;max-height:560px;background:#0f1626;overflow:hidden}
.photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}
@media(max-width:760px){.ev-hero,.banner{aspect-ratio:16/9;min-height:0}}
.ev-hero-ph{position:absolute;inset:0;display:grid;place-items:center;padding:1.5rem;background:linear-gradient(135deg,#0d3a72,#1565c0 60%,#6b9cf4);color:rgba(255,255,255,.95);font-weight:800;font-size:clamp(1.6rem,4.5vw,3.2rem);letter-spacing:-.02em;text-align:center}
.ev-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1.4rem 2.4rem;padding-bottom:1.8rem;border-bottom:1px solid var(--line)}
.ev-head-info{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:.65rem}
.ev-head .dcat{align-self:flex-start;background:var(--foil-soft);color:var(--foil);border-radius:999px;padding:.35em 1em;font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.ev-head h1{margin:0;font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:800;line-height:1.1;letter-spacing:-.015em;overflow-wrap:anywhere}
.ev-facts{list-style:none;margin:.15rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem 1.6rem;color:var(--dim)}
.ev-facts li{display:flex;align-items:center;gap:.45rem}
.ev-facts svg{color:var(--foil);flex:none}
.ev-facts b{color:var(--ink)}
.ev-facts a{color:var(--ink);text-decoration:none;font-weight:600}
.ev-facts a:hover{color:var(--foil);text-decoration:underline}
.ev-facts .dleft{border:1px solid var(--line);border-radius:999px;padding:.15em .7em;font-size:.78rem}
.ev-buy{flex:none;display:flex;align-items:center;gap:1rem 1.6rem;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1rem 1rem 1rem 1.4rem;box-shadow:var(--shadow)}
.ev-from{color:var(--dim);font-size:.92rem}
.ev-from b{color:var(--ink);font-size:1.45rem;font-weight:800;margin-right:.05rem}
.ev-buy .btn-solid{flex:none;border-radius:12px;padding:.9rem 2.2rem;font-size:1rem;font-weight:800;white-space:nowrap}
.ev-head + .ev-about{margin-top:1.8rem}
@media(max-width:760px){
  .ev-buy{width:100%;justify-content:space-between;padding:.9rem .9rem .9rem 1.1rem}
  .ev-from b{font-size:1.25rem}
  .ev-buy .btn-solid{padding:.85rem 1.4rem}
}

/* ── Satın alma penceresi (Events/_BuyModal) ── */
html:has(dialog.bm[open]){overflow:hidden}
/* Sabit yükseklik: adımlar arasında pencere boy değiştirip zıplamasın; fazlası gövdede kayar. */
.bm{padding:0;border:none;border-radius:22px;width:min(720px,calc(100% - 2rem));max-width:none;height:min(90vh,760px);max-height:none;
    background:var(--card);color:var(--ink);box-shadow:0 30px 80px -20px rgba(0,0,0,.55);overflow:hidden}
.bm[open]{display:flex;flex-direction:column}
.bm::backdrop{background:rgba(9,14,26,.62);backdrop-filter:blur(3px)}
.bm-head{flex:none;background:#0f172a;color:#fff;padding:1.4rem 1.6rem 0}
.bm-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.bm-ttl{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.bm-cat{font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#dbe6fb}
.bm-ttl h2{margin:0;font-size:clamp(1.25rem,2.6vw,1.6rem);font-weight:800;line-height:1.2;overflow-wrap:anywhere}
.bm-venue{display:flex;align-items:center;gap:.4rem;color:#b7c3d8;font-size:.88rem}
.bm-venue svg{color:#5b96e8;flex:none}
.bm-x{flex:none;width:42px;height:42px;border-radius:50%;border:none;background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;transition:background .15s}
.bm-x:hover{background:rgba(255,255,255,.2)}
.bm-steps{list-style:none;margin:1.3rem 0 0;padding:1rem 0 0;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}
.bm-steps li{padding:.15rem 0 .6rem;text-align:center;font-size:.86rem;font-weight:600;line-height:1.25;color:rgba(255,255,255,.6);border-bottom:2px solid rgba(255,255,255,.3);transition:color .2s,border-color .2s}
.bm-steps li.done{color:#8ab4ff;border-color:#5b96e8}
.bm-steps li.on{color:#fff;border-color:#5b96e8}
.bm-form{flex:1;min-height:0;display:flex;flex-direction:column;margin:0}
.bm-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.3rem 1.6rem;background:var(--stage)}
.bm-pane{display:flex;flex-direction:column;gap:.8rem}
.bm-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem 1rem 1rem 1.25rem;transition:border-color .15s,box-shadow .15s}
.bm-row.sel{border-color:var(--foil);box-shadow:0 0 0 3px var(--foil-soft)}
.bm-row.out{opacity:.55}
.bm-row-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.bm-row-info b{font-size:1.02rem;overflow-wrap:anywhere}
.bm-row-info .pr{color:var(--foil);font-weight:700;font-size:.92rem}
.bm-row-info .az{color:var(--warn);font-size:.76rem;font-weight:600}
.bm-qty{flex:none;display:flex;align-items:center;gap:.35rem;background:var(--stage-warm);border-radius:12px;padding:.3rem}
.bm-qty button{width:36px;height:36px;border-radius:9px;border:none;font-size:1.2rem;font-weight:700;line-height:1;display:grid;place-items:center}
.bm-qty [data-q="-1"]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.14)}
.bm-qty [data-q="1"]{background:var(--foil);color:#fff}
.bm-qty button:disabled{opacity:.35;cursor:default}
.bm-qty b{min-width:1.8em;text-align:center;font-variant-numeric:tabular-nums}
.bm-soldout{flex:none;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:.4em .9em}
.bm-note{margin:0;font-size:.82rem;color:var(--warn)}
.bm-total{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1rem;background:var(--foil-soft);border:1px solid rgba(107,156,244,.28);border-radius:16px;padding:1.1rem 1.25rem;margin-top:.2rem}
.bm-total small{display:block;color:var(--foil);font-size:.86rem;font-weight:600}
.bm-total b{font-size:1.8rem;font-weight:800;line-height:1.2}
.bm-safe{display:flex;align-items:center;gap:.4rem;color:var(--dim);font-size:.85rem}
.bm-safe svg{color:var(--foil);flex:none}
.bm-sum{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.95rem 1.15rem}
.bm-sum b{font-size:1.15rem;white-space:nowrap}
.bm .field label{letter-spacing:.08em}
.bm .field input{background:var(--card);border-radius:10px}
.bm .consent{margin:0}
.bm-err{margin:0;background:rgba(220,50,50,.09);border:1px solid rgba(220,50,50,.35);color:#d13a3a;border-radius:10px;padding:.7rem .9rem;font-size:.88rem}
.bm-hint{margin:0;color:var(--dim);font-size:.8rem;line-height:1.55}
.bm-hint a,.bm-msg a{color:var(--foil)}
.bm-msg{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.4rem 1.2rem;text-align:center}
.bm-msg b{display:block;font-size:1.05rem;margin-bottom:.35rem}
.bm-msg p{margin:0;color:var(--dim);font-size:.88rem;line-height:1.5}
.bm-msg.bad b{color:#d13a3a}
.bm-frame iframe{display:block;width:100%;min-height:600px;border:0;border-radius:14px;background:#fff}
.bm-wait{display:flex;align-items:center;justify-content:center;gap:.7rem;color:var(--dim);padding:2.2rem 0}
.bm-spin{width:22px;height:22px;flex:none;border-radius:50%;border:3px solid var(--foil-soft);border-top-color:var(--foil);animation:bmspin .8s linear infinite}
@keyframes bmspin{to{transform:rotate(360deg)}}
.bm-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;padding:.2rem 0 .6rem}
.bm-done .ok{width:54px;height:54px;border-radius:50%;background:#16a34a;color:#fff;display:grid;place-items:center;margin-bottom:.2rem}
.bm-done b{font-size:1.25rem}
.bm-done p{margin:0;color:var(--dim);font-size:.88rem;max-width:44ch}
.bm .tk-grid{grid-template-columns:repeat(auto-fit,minmax(240px,300px));justify-content:center}
.bm .qr-img{align-self:center}
.bm-foot{flex:none;display:flex;align-items:center;gap:1rem;padding:1rem 1.6rem;background:var(--card);border-top:1px solid var(--line)}
.bm-back{display:inline-flex;align-items:center;gap:.45rem;background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:.8rem 1.25rem;font-weight:600}
.bm-back:hover{border-color:var(--foil);color:var(--foil)}
.bm-next{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;background:var(--foil);color:#fff;border:none;border-radius:12px;padding:.9rem 1.7rem;font-weight:800;font-size:1rem;box-shadow:0 10px 24px -10px rgba(21,101,192,.7);transition:filter .15s}
.bm-next:not(:disabled):hover{filter:brightness(1.1)}
.bm-next:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
@media(prefers-reduced-motion:reduce){.bm-spin{animation-duration:2.4s}}
/* Telefonda tam ekran: liste ve düğmeler parmakla rahat kullanılsın. */
@media(max-width:640px){
  .bm{width:100%;height:100%;max-height:none;border-radius:0}
  .bm-head{padding:1rem 1rem 0}
  .bm-x{width:38px;height:38px}
  .bm-steps{gap:.35rem;margin-top:1rem;padding-top:.75rem}
  .bm-steps li{font-size:.72rem}
  .bm-body{padding:1rem}
  .bm-row{padding:.85rem .85rem .85rem 1rem}
  .bm-total b{font-size:1.5rem}
  .bm-foot{padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom))}
  .bm-next{flex:1}
}

/* Detay sayfaları (sanatçı/mekan) başlığı da normal yazımla */
.dhead h1{font-weight:800}

/* Altbilgi: sütunlu; renkleri temayı izler (açık temada açık, koyu temada koyu). */
footer{background:var(--stage-warm);color:var(--dim);border-top:1px solid var(--line);margin-top:3rem;padding:3rem 0 1.6rem;text-transform:none;letter-spacing:normal;font-size:.88rem;text-align:left}
footer .ft{align-items:stretch;text-align:left;gap:1.6rem}
.ft-cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2rem}
/* display burada verilmez: logo-light/logo-dark tema eşlemesi gizleyip gösterir. */
.ft-brand img{height:2.6rem;width:auto}
.ft-brand img.logo-light{display:block}
.ft-brand p{margin:.8rem 0 0;font-size:.85rem;max-width:30ch;line-height:1.5}
.ft-col{display:flex;flex-direction:column;gap:.6rem}
.ft-col h4{margin:0 0 .3rem;color:var(--dim);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.ft-col a{color:var(--ink);text-decoration:none;font-size:.88rem}
.ft-col a:hover{color:var(--foil)}
footer .ft-firm{justify-content:flex-start;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.78rem;opacity:1;color:var(--dim)}
footer .ft-mark{font-size:.78rem;opacity:1;color:var(--dim)}
@media(max-width:760px){.ft-cols{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}

/* Arama kutusu düğmesiz: büyüteç + metin; Enter / klavyedeki "Ara" gönderir. */
form.h-search{padding:.6rem 1.1rem;gap:.6rem}

