/* Gösteri katmanı: giriş ekranı, imleç, ışıklar, kart ve düğme animasyonları */
#intro { position: fixed; inset: 0; z-index: 50; display: grid; place-content: center; justify-items: center; gap: 14px; background: #060608; transition: opacity .55s, visibility .55s; }
#intro.done { opacity: 0; visibility: hidden; }
.intro-mark { position: relative; width: 110px; height: 110px; display: grid; place-items: center; animation: introPop .7s cubic-bezier(.2, 1.4, .4, 1) both; }
.intro-mark img { width: 62px; filter: drop-shadow(0 0 18px var(--hot)); }
.intro-ring { position: absolute; inset: 0; border-radius: 50%; border: 2px solid transparent; border-top-color: var(--hot); border-left-color: rgba(255, 255, 255, .5); animation: spin .9s linear infinite; }
.intro-name { margin: 0; font: 600 19px var(--display); letter-spacing: 6px; animation: rise .6s .2s both; }
.intro-name b { color: var(--hot); font-weight: 600; }
.intro-bar { width: 200px; height: 2px; background: rgba(255, 255, 255, .1); overflow: hidden; }
.intro-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--red), #fff); animation: load 1.15s ease-in-out both; }
@keyframes introPop { from { transform: scale(.4); opacity: 0; } }
@keyframes rise { from { transform: translateY(14px); opacity: 0; } }
@keyframes load { from { width: 0; } to { width: 100%; } }

#progress { position: fixed; left: 0; top: 0; z-index: 30; height: 3px; width: 100%; transform: scaleX(0); transform-origin: left; background: linear-gradient(90deg, var(--deep), var(--hot), #fff); box-shadow: 0 0 12px var(--hot); }
#cursor { position: fixed; left: 0; top: 0; z-index: 40; width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%; pointer-events: none; opacity: 0; border: 1px solid rgba(255, 74, 79, .85); box-shadow: 0 0 22px rgba(255, 74, 79, .5), inset 0 0 12px rgba(255, 74, 79, .25); transition: width .18s, height .18s, margin .18s, background .18s, opacity .25s; }
#cursor.on { opacity: 1; }
#cursor.big { width: 64px; height: 64px; margin: -32px 0 0 -32px; background: rgba(255, 74, 79, .12); }

.nav { animation: dropIn .7s 1.2s both; }
@keyframes dropIn { from { transform: translateY(-100%); opacity: 0; } }
.nav nav a { position: relative; padding: 4px 0; transition: color .2s; }
.nav nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--hot); box-shadow: 0 0 10px var(--hot); transform: scaleX(0); transform-origin: right; transition: transform .28s; }
.nav nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.brand img { transition: transform .4s cubic-bezier(.2, 1.5, .4, 1); }
.brand:hover img { transform: rotate(180deg) scale(1.1); }

.btn { will-change: transform; transition: filter .2s; }
.btn::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .34), transparent 70%); opacity: 0; transition: opacity .2s; }
.btn:hover::before { opacity: 1; }
.btn:hover { transform: none; }
.btn .ripple { position: absolute; width: 12px; height: 12px; margin: -6px; border-radius: 50%; background: rgba(255, 255, 255, .6); animation: ripple .65s ease-out forwards; pointer-events: none; }
@keyframes ripple { to { transform: scale(26); opacity: 0; } }

h1 .line { display: block; min-height: 1.12em; }
h1 .hot { background: linear-gradient(100deg, #fff, var(--hot) 55%, #ff9a9d, var(--hot)); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: flow 5s linear infinite; }
@keyframes flow { to { background-position: -220% 0; } }
.hero-text > * { animation: rise .8s both; }
.hero-text > .kicker { animation-delay: 1.3s; }
.hero-text > h1 { animation-delay: 1.4s; }
.hero-text > .lead { animation-delay: 1.75s; }
.hero-text > .actions { animation-delay: 1.9s; }
.hero-text > .facts { animation-delay: 2.05s; }
.kicker::before { content: ""; display: inline-block; width: 22px; height: 2px; margin: 0 10px 4px 0; background: var(--hot); box-shadow: 0 0 8px var(--hot); }

.hero-stage { position: relative; perspective: 900px; animation: introPop 1s 1.25s cubic-bezier(.2, 1.3, .4, 1) both; }
.hero-mark { transform-style: preserve-3d; transition: transform .25s ease-out; }
.ring.r3 { inset: 9%; border-width: 1px; border-top-color: transparent; border-bottom-color: transparent; border-left-color: var(--hot); border-right-color: var(--hot); animation-duration: 9s; }
.hud { position: absolute; right: -10px; bottom: 8%; width: 220px; padding: 12px 14px; font-family: var(--display); background: rgba(12, 12, 15, .86); backdrop-filter: blur(8px); box-shadow: inset 0 0 0 1px rgba(255, 74, 79, .45), 0 0 26px rgba(224, 27, 36, .3); clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
.hud p { margin: 0; }
.hud-top { display: flex; align-items: center; gap: 8px; font-size: 13px; letter-spacing: 2px; }
.hud-top i { width: 8px; height: 8px; border-radius: 50%; background: var(--hot); box-shadow: 0 0 10px var(--hot); animation: pulse 1s infinite; }
.hud.ok .hud-top i { background: #34d399; box-shadow: 0 0 10px #34d399; }
@keyframes pulse { 50% { opacity: .3; } }
.hud-bar { height: 4px; margin: 9px 0 7px; background: rgba(255, 255, 255, .1); }
.hud-bar i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--red), var(--hot)); transition: width .5s; }
.hud.ok .hud-bar i { background: #34d399; }
.hud-line { color: var(--dim); font-size: 13px; }

.ticker { overflow: hidden; margin: 0 calc(50% - 50vw); padding: 13px 0; background: linear-gradient(90deg, var(--deep), var(--red), var(--deep)); transform: rotate(-1.2deg) scale(1.02); box-shadow: 0 0 34px rgba(224, 27, 36, .4); }
.ticker div { display: flex; width: max-content; animation: slide 26s linear infinite; }
.ticker span { padding: 0 26px; font: 700 15px var(--display); letter-spacing: 3px; white-space: nowrap; }
.ticker span::after { content: "◆"; margin-left: 52px; font-size: 9px; vertical-align: 2px; opacity: .7; }
@keyframes slide { to { transform: translateX(-50%); } }

.reveal { transform: translateY(46px) scale(.98); filter: blur(5px); transition: opacity .85s, transform .85s cubic-bezier(.2, .8, .3, 1), filter .85s; }
.reveal.in { filter: none; }
[data-tilt] { transform-style: preserve-3d; transition: transform .22s ease-out, box-shadow .22s; will-change: transform; }

.card, .frame.shot, .price { position: relative; }
.card::before, .frame.shot::before, .price::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .25s; background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 74, 79, .24), transparent 70%); }
.card:hover::before, .frame.shot:hover::before, .price:hover::before { opacity: 1; }
.frame.shot img { transition: transform .5s; }
.frame.shot:hover img { transform: scale(1.04); }
.video { position: relative; }
.video::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 90px; pointer-events: none; background: linear-gradient(transparent, rgba(255, 74, 79, .16), transparent); animation: scan 5s linear infinite; }
@keyframes scan { from { top: -90px; } to { top: 100%; } }

.ticks li { opacity: 0; transform: translateX(-16px); transition: opacity .5s, transform .5s; }
.in .ticks li { opacity: 1; transform: none; }
.in .ticks li:nth-child(2) { transition-delay: .14s; }
.in .ticks li:nth-child(3) { transition-delay: .28s; }

.steps { position: relative; }
.steps::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, var(--hot), #fff); box-shadow: 0 0 14px var(--hot); transform: scaleX(0); transform-origin: left; transition: transform 1.4s .2s; z-index: 1; }
.in .steps::before { transform: scaleX(1); }
.steps li { transition: transform .25s, background .25s; }
.steps li:hover { transform: translateY(-6px); background: rgba(40, 14, 18, .85); }
.steps span { transition: text-shadow .25s; }
.steps li:hover span { text-shadow: 0 0 22px var(--hot); }

.price { filter: drop-shadow(0 0 30px rgba(224, 27, 36, .3)); }
.price::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, .08) 50%, transparent 60%); background-size: 260% 100%; animation: flow 6s linear infinite; }
.amount { text-shadow: 0 0 30px rgba(255, 74, 79, .55); }

details { transition: background .2s, padding .2s; }
details:hover { background: rgba(255, 74, 79, .05); padding-left: 12px; }
details p { animation: rise .35s both; }
footer { position: relative; }
footer::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, var(--hot), transparent); background-size: 50% 100%; background-repeat: no-repeat; animation: sweep 5s linear infinite; }
@keyframes sweep { from { background-position: -50% 0; } to { background-position: 150% 0; } }

@media (max-width: 860px) {
  .hud { right: 0; left: 0; margin: auto; bottom: -6px; width: 200px; }
  .hero-stage { order: -1; max-width: 260px; width: 100%; margin: 0 auto 14px; }
  .hero-mark { order: 0; max-width: none; }
  #cursor { display: none; }
  .ticker { transform: none; }
}
@media (hover: none) { #cursor { display: none; } }
@media (prefers-reduced-motion: reduce) {
  #intro { display: none; }
  .reveal { filter: none; }
  .ticks li { opacity: 1; transform: none; }
  .hero-text > *, .hero-stage, .nav { animation: none; }
}

.sound { position: absolute; left: 22px; top: 22px; z-index: 2; display: flex; align-items: center; gap: 12px; padding: 8px 12px; background: rgba(8, 8, 10, .78); backdrop-filter: blur(8px); box-shadow: inset 0 0 0 1px rgba(255, 74, 79, .55), 0 0 18px rgba(224, 27, 36, .35); clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
.sound button { all: unset; cursor: pointer; font: 700 14px var(--display); letter-spacing: 1px; color: #fff; }
.sound button:hover { color: var(--hot); }
.sound button:focus-visible { outline: 2px solid var(--hot); outline-offset: 3px; }
.sound.muted button { animation: pulse 1.6s infinite; }
.sound input { width: 96px; accent-color: var(--hot); cursor: pointer; }
@media (max-width: 860px) { .sound { left: 16px; top: 16px; } .sound input { width: 70px; } }
