/* ==========================================================================
   Hakan — Tenis Koçluğu
   ========================================================================== */

/* ---------- Fonts (self-hosted) ---------- */
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(../fonts/archivo-latin-standard-normal.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(../fonts/archivo-latin-ext-standard-normal.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter Tight";font-style:normal;font-display:swap;font-weight:100 900;
  src:url(../fonts/inter-tight-latin-wght-normal.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter Tight";font-style:normal;font-display:swap;font-weight:100 900;
  src:url(../fonts/inter-tight-latin-ext-wght-normal.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-display:swap;font-weight:500;
  src:url(../fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-display:swap;font-weight:500;
  src:url(../fonts/jetbrains-mono-latin-ext-500-normal.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- Tokens ---------- */
:root{
  color-scheme:dark;
  --ink:#0C0E0A;
  --ink-2:#14170F;
  --ink-3:#1D2117;
  --paper:#F1EEE5;
  --paper-2:#E7E3D7;
  --optic:#D8F24A;
  --clay:#C8562F;
  --court:#25523D;
  --mute-d:#8C9183;   /* muted text on dark */
  --mute-l:#6A6B60;   /* muted text on light */
  --hair-d:rgba(241,238,229,.12);
  --hair-l:rgba(12,14,10,.12);

  --display:"Archivo","Arial Narrow",sans-serif;
  --sans:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;

  --ease:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(16px,4vw,56px);
  --maxw:1440px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-loading{overflow:hidden}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--optic);color:var(--ink)}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.display{font-family:var(--display);font-stretch:68%;font-weight:800;text-transform:uppercase;line-height:.86;letter-spacing:-.01em}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.label{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute-d)}
.label::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--optic)}
.light .label{color:var(--mute-l)}
.light .label::before{background:var(--clay)}

.light{background:var(--paper);color:var(--ink)}

/* line-mask helper for split text */
.lm{display:block;overflow:hidden;padding:.16em 0 .12em;margin:-.16em 0 -.12em}
.lm > span{display:block;will-change:transform}

/* ---------- Grain ---------- */
.grain{position:fixed;inset:-50%;z-index:100;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-1%,3%)}100%{transform:translate(3%,-1%)}}

/* ---------- Preloader ---------- */
.loader{position:fixed;inset:0;z-index:200;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:var(--gutter)}
.loader-top{display:flex;justify-content:space-between;color:var(--mute-d)}
.loader-count{font-family:var(--display);font-stretch:62%;font-weight:800;font-size:clamp(120px,26vw,380px);line-height:.8;color:var(--paper);text-align:right;font-variant-numeric:tabular-nums}
.loader-bar{height:1px;background:var(--hair-d);position:relative;overflow:hidden;margin-top:20px}
.loader-bar i{position:absolute;inset:0;background:var(--optic);transform-origin:left;transform:scaleX(0)}
.no-js .loader{display:none}

/* ---------- Cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:150;pointer-events:none;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--optic);mix-blend-mode:difference;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),opacity .3s;opacity:0}
.cursor span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);opacity:0;transition:opacity .2s}
.cursor.is-active{opacity:1}
.cursor.is-hover{width:64px;height:64px;margin:-32px 0 0 -32px}
.cursor.is-text{width:92px;height:92px;margin:-46px 0 0 -46px;mix-blend-mode:normal}
.cursor.is-text span{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto;z-index:90;transition:transform .5s var(--ease)}
.header.is-hidden{transform:translateY(-110%)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.header::before{content:"";position:absolute;inset:0;background:rgba(12,14,10,.72);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid var(--hair-d);opacity:0;transition:opacity .4s}
.header.is-solid::before{opacity:1}
.brand{position:relative;display:flex;align-items:center;gap:12px}
.brand-mark{width:30px;height:30px}
.brand-name{font-family:var(--display);font-stretch:72%;font-weight:800;font-size:22px;letter-spacing:.02em;text-transform:uppercase;line-height:1}
.brand-sub{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--mute-d);margin-top:3px;font-weight:500}
.nav{position:relative;display:flex;gap:4px}
.nav a{position:relative;padding:10px 14px;font-size:15px;color:var(--mute-d);transition:color .3s}
.nav a:hover,.nav a.is-current{color:var(--paper)}
.nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:1px;background:var(--optic);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover::after,.nav a.is-current::after{transform:scaleX(1);transform-origin:left}
.header-cta{position:relative;display:flex;align-items:center;gap:12px}
.menu-btn{display:none;position:relative;width:46px;height:46px;border-radius:50%;border:1px solid var(--hair-d)}
.menu-btn i{position:absolute;left:14px;right:14px;height:1.5px;background:var(--paper);transition:transform .45s var(--ease),top .45s var(--ease)}
.menu-btn i:nth-child(1){top:19px}.menu-btn i:nth-child(2){top:26px}
.menu-open .menu-btn i:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-open .menu-btn i:nth-child(2){top:22px;transform:rotate(-45deg)}

.mobile-menu{position:fixed;inset:0;z-index:85;background:var(--ink);padding:120px var(--gutter) 40px;display:flex;flex-direction:column;justify-content:space-between;clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease);visibility:hidden}
.menu-open .mobile-menu{clip-path:inset(0 0 0 0);visibility:visible}
.mobile-menu nav{display:grid}
.mobile-menu nav a{font-family:var(--display);font-stretch:66%;font-weight:800;text-transform:uppercase;font-size:clamp(48px,14vw,84px);line-height:1;padding:6px 0;border-bottom:1px solid var(--hair-d);display:flex;justify-content:space-between;align-items:baseline}
.mobile-menu nav a small{font-family:var(--mono);font-size:12px;color:var(--mute-d);font-weight:500}
.mobile-menu .mm-foot{display:flex;justify-content:space-between;color:var(--mute-d);font-size:14px}
@media (max-width:980px){.nav{display:none}.menu-btn{display:block}.header-cta .btn{display:none}}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:14px;height:56px;padding:0 10px 0 26px;border-radius:999px;font-weight:600;font-size:15px;letter-spacing:.01em;overflow:hidden;isolation:isolate;white-space:nowrap;transition:color .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .6s var(--ease)}
.btn:hover::before{transform:none}
.btn .btn-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none;transition:transform .6s var(--ease),background .5s var(--ease)}
.btn .btn-ico svg{width:14px;height:14px}
.btn:hover .btn-ico{transform:rotate(-45deg)}
.btn-optic{background:var(--optic);color:var(--ink)}
.btn-optic::before{background:var(--paper)}
.btn-optic .btn-ico{background:var(--ink);color:var(--optic)}
.btn-line{border:1px solid var(--hair-d);color:var(--paper)}
.btn-line::before{background:var(--paper)}
.btn-line:hover{color:var(--ink)}
.btn-line .btn-ico{background:var(--hair-d)}
.btn-line:hover .btn-ico{background:var(--ink);color:var(--paper)}
.btn-dark{background:var(--ink);color:var(--paper)}
.btn-dark::before{background:var(--optic)}
.btn-dark:hover{color:var(--ink)}
.btn-dark .btn-ico{background:var(--optic);color:var(--ink)}
.btn-dark:hover .btn-ico{background:var(--ink);color:var(--optic)}
.btn-sm{height:46px;padding-left:20px;font-size:14px}
.btn-sm .btn-ico{width:30px;height:30px}
.btn-block{width:100%;justify-content:space-between}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:120px 0 0;overflow:hidden}
.hero-court{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-court svg{position:absolute;left:50%;top:52%;width:max(1500px,120vw);transform:translate(-50%,-50%) perspective(1200px) rotateX(58deg)}
.hero-court path,.hero-court rect,.hero-court line{fill:none;stroke:rgba(241,238,229,.09);stroke-width:2}
.hero-glow{position:absolute;inset:0;z-index:0;background:radial-gradient(50% 45% at 68% 42%,rgba(216,242,74,.10),transparent 70%),radial-gradient(40% 40% at 12% 100%,rgba(200,86,47,.12),transparent 70%)}
.hero-stage{position:absolute;z-index:1;right:max(var(--gutter),calc((100vw - var(--maxw))/2 + var(--gutter)));top:calc(50% - min(40vw,560px)*.6);width:min(40vw,560px);aspect-ratio:1}
#ball{width:100%;height:100%}
.ball-fallback{position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle at 34% 30%,#F3FF9C,#D8F24A 38%,#93A82A 78%,#4F5B16);box-shadow:0 60px 120px -40px rgba(216,242,74,.35)}
.ball-fallback::before,.ball-fallback::after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;border:5px solid rgba(255,255,250,.85);top:0}
.ball-fallback::before{left:-68%}.ball-fallback::after{right:-68%}
.ball-fallback{overflow:hidden}
.has-webgl .ball-fallback{display:none}
.hero-ring{position:absolute;inset:4%;border-radius:50%;border:1px solid var(--hair-d)}
.hero-ring.r2{inset:-8%;border-style:dashed;border-color:rgba(216,242,74,.16)}
.hero-tag{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:999px;background:rgba(20,23,15,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--hair-d);font-size:13px;white-space:nowrap}
.hero-tag b{font-weight:600}
.hero-tag .dot{width:26px;height:26px;border-radius:50%;background:var(--optic);color:var(--ink);display:grid;place-items:center;font-family:var(--mono);font-size:11px}
.hero-tag.t1{right:-2%;top:2%}
.hero-tag.t2{left:-4%;bottom:8%}

.hero-content{position:relative;z-index:2;padding-bottom:clamp(28px,5vh,56px)}
.hero-eyebrow{margin-bottom:clamp(18px,3vh,32px);font-weight:500}
.hero #heroTitle{font-size:clamp(68px,11.4vw,200px);max-width:12ch}
.hero #heroTitle .accent{color:var(--optic)}
.hero-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;margin-top:clamp(24px,4vh,44px)}
.hero-lede{max-width:44ch;color:var(--mute-d);font-size:clamp(16px,1.35vw,19px)}
.hero-lede strong{color:var(--paper);font-weight:500}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-foot{position:relative;z-index:2;border-top:1px solid var(--hair-d)}
.hero-foot .wrap{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:24px;padding-block:20px;color:var(--mute-d)}
.hero-foot span b{color:var(--paper);font-weight:500;margin-right:8px}
.scroll-hint{display:flex;align-items:center;gap:10px}
.scroll-hint i{width:1px;height:22px;background:var(--hair-d);position:relative;overflow:hidden}
.scroll-hint i::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--optic);animation:drip 1.8s var(--ease) infinite}
@keyframes drip{to{top:100%}}

@media (max-width:980px){
  .hero{justify-content:flex-start;padding-top:96px}
  .hero-stage{position:relative;right:auto;top:auto;width:min(78vw,420px);margin:0 auto -4vw}
  .hero-tag.t1{right:-4%;top:4%}
  .hero-tag.t2{left:-4%;bottom:6%}
  .hero-row{grid-template-columns:1fr}
  .hero-foot .wrap{grid-template-columns:1fr 1fr}
  .hero-foot .scroll-hint{display:none}
}
@media (max-width:560px){
  .hero-foot .wrap{grid-template-columns:1fr;gap:8px}
  .hero-ctas .btn{flex:1 1 100%;justify-content:space-between}
}

/* ---------- Manifesto ---------- */
.manifesto{padding:clamp(100px,16vw,220px) 0}
.manifesto-grid{display:grid;grid-template-columns:200px 1fr;gap:40px}
.manifesto p{font-family:var(--display);font-stretch:88%;font-weight:600;font-size:clamp(30px,4.4vw,68px);line-height:1.04;letter-spacing:-.02em}
.manifesto .w{opacity:.14;transition:none}
.manifesto em{font-style:normal;color:var(--optic)}
@media (max-width:860px){.manifesto-grid{grid-template-columns:1fr;gap:24px}}

/* ---------- Stats ---------- */
.stats{border-block:1px solid var(--hair-d)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:clamp(28px,4vw,48px) 24px clamp(28px,4vw,48px) 0;border-right:1px solid var(--hair-d)}
.stat + .stat{padding-left:clamp(16px,2.4vw,36px)}
.stat:last-child{border-right:0}
.stat-num{font-family:var(--display);font-stretch:66%;font-weight:800;font-size:clamp(56px,7vw,112px);line-height:.85;display:flex;align-items:flex-start;gap:4px;font-variant-numeric:tabular-nums}
.stat-num sup{font-size:.36em;color:var(--optic);line-height:1;margin-top:.12em}
.stat p{color:var(--mute-d);margin-top:14px;font-size:15px;max-width:22ch}
@media (max-width:860px){
  .stats .wrap{grid-template-columns:1fr 1fr}
  .stat{border-bottom:1px solid var(--hair-d)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(3){padding-left:0}
  .stat:nth-child(n+3){border-bottom:0}
}

/* ---------- Section head ---------- */
.sec{padding:clamp(96px,12vw,170px) 0}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:40px;align-items:end;margin-bottom:clamp(48px,6vw,88px)}
.sec-head h2{font-size:clamp(56px,9vw,148px);margin-top:20px}
.sec-head p{color:var(--mute-d);max-width:42ch;font-size:clamp(16px,1.3vw,19px)}
.light .sec-head p{color:var(--mute-l)}
@media (max-width:860px){.sec-head{grid-template-columns:1fr;gap:20px}}

/* ---------- About ---------- */
.about-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,7vw,120px);align-items:start}
.frame{position:relative;overflow:hidden;border-radius:6px;background:var(--ink-3)}
.frame img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover}
.frame .ph{position:absolute;inset:0;display:none}
.frame.is-empty .ph{display:block}
.frame.is-empty img{display:none}
.about-photo{aspect-ratio:4/5;position:sticky;top:110px}
.about-photo img{object-position:50% 12%}
.about-photo .ph{background:
  radial-gradient(70% 55% at 50% 30%,rgba(216,242,74,.16),transparent 70%),
  linear-gradient(180deg,#2B5A44,#173326 60%,#0F2018)}
.ph svg{position:absolute;inset:0;width:100%;height:100%}
.ph-caption{position:absolute;left:20px;right:20px;bottom:20px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;color:rgba(241,238,229,.8)}
.ph-mono{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-stretch:62%;font-weight:800;font-size:clamp(160px,22vw,320px);color:rgba(241,238,229,.08);line-height:1}

.about h2{font-size:clamp(56px,8.4vw,136px);margin:20px 0 36px}
.about-lead{font-size:clamp(20px,1.9vw,27px);line-height:1.35;letter-spacing:-.01em;margin-bottom:24px;max-width:30ch}
.about-text{color:var(--mute-d);max-width:56ch;margin-bottom:16px}
.creds{margin-top:44px;border-top:1px solid var(--hair-d)}
.cred{display:grid;grid-template-columns:56px 1fr auto;gap:16px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--hair-d)}
.cred .mono{color:var(--mute-d)}
.cred h4{font-weight:500;font-size:18px}
.cred span:last-child{color:var(--mute-d);font-size:14px;text-align:right}
.signature{margin-top:40px;display:flex;align-items:center;gap:18px}
.signature svg{width:150px;height:auto}
.signature path{fill:none;stroke:var(--optic);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:860px){
  .about-grid{grid-template-columns:1fr}
  .about-photo{position:relative;top:0;max-width:520px}
  .cred{grid-template-columns:40px 1fr}
  .cred span:last-child{grid-column:2;text-align:left}
}

/* ---------- Method (horizontal) ---------- */
.method{position:relative;overflow:hidden;background:var(--ink-2);border-block:1px solid var(--hair-d)}
.method-pin{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:110px 0 60px}
.method-top{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:clamp(32px,5vh,60px)}
.method-top h2{font-size:clamp(52px,7.6vw,124px);margin-top:18px}
.method-progress{display:flex;align-items:center;gap:16px;color:var(--mute-d);min-width:220px}
.method-progress .track{flex:1;height:1px;background:var(--hair-d);position:relative}
.method-progress .track i{position:absolute;inset:0;background:var(--optic);transform-origin:left;transform:scaleX(.25)}
.method-track{display:flex;gap:clamp(16px,2vw,28px);padding-inline:var(--gutter);width:max-content;will-change:transform}
.pillar{position:relative;flex:none;width:clamp(300px,36vw,540px);min-height:clamp(380px,56vh,540px);border:1px solid var(--hair-d);border-radius:6px;padding:clamp(24px,2.6vw,40px);display:flex;flex-direction:column;background:var(--ink);overflow:hidden}
.pillar-n{font-family:var(--display);font-stretch:62%;font-weight:800;font-size:clamp(110px,12vw,190px);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(241,238,229,.22)}
.pillar h3{font-family:var(--display);font-stretch:72%;font-weight:800;text-transform:uppercase;font-size:clamp(34px,3.4vw,52px);line-height:.9;margin:auto 0 14px}
.pillar p{color:var(--mute-d);max-width:38ch;margin-bottom:22px}
.pillar ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.pillar li{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:7px 11px;border:1px solid var(--hair-d);border-radius:999px;color:var(--paper)}
.pillar-art{position:absolute;right:clamp(16px,2vw,32px);top:clamp(16px,2vw,32px);width:42%;opacity:.9}
.pillar-art *{fill:none;stroke:var(--optic);stroke-width:1.5}
.pillar-art .dim{stroke:rgba(241,238,229,.25)}
.pillar:hover{border-color:rgba(216,242,74,.35)}
.method-end{flex:none;width:clamp(260px,26vw,380px);display:flex;flex-direction:column;justify-content:flex-end;gap:24px;padding:20px 0}
.method-end p{font-family:var(--display);font-stretch:80%;font-weight:600;font-size:clamp(26px,2.4vw,36px);line-height:1.05}
@media (max-width:860px){
  .method-pin{min-height:0;padding:96px 0}
  .method-top{flex-direction:column;align-items:flex-start}
  .method-progress{display:none}
  .method-track{width:auto;flex-direction:column;padding-inline:var(--gutter)}
  .pillar{width:100%;min-height:420px}
  .method-end{width:100%}
}

/* ---------- Programs (light) ---------- */
.programs{position:relative}
.switch{display:inline-flex;position:relative;padding:5px;border:1px solid var(--hair-l);border-radius:999px;margin-bottom:40px}
.switch button{position:relative;z-index:1;height:46px;padding:0 24px;border-radius:999px;font-weight:600;font-size:15px;color:var(--mute-l);transition:color .4s}
.switch button.is-on{color:var(--paper)}
.switch .knob{position:absolute;top:5px;bottom:5px;left:5px;border-radius:999px;background:var(--ink);transition:transform .6s var(--ease),width .6s var(--ease)}
.plans{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.4vw,20px)}
.plans[hidden]{display:none}
.plan{position:relative;display:flex;flex-direction:column;padding:clamp(24px,2.4vw,36px);border:1px solid var(--hair-l);border-radius:6px;background:var(--paper);transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.plan:hover{transform:translateY(-6px);box-shadow:0 40px 80px -50px rgba(12,14,10,.45)}
.plan-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:56px}
.plan-top .mono{color:var(--mute-l)}
.plan-flag{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:var(--optic);color:var(--ink)}
.plan h3{font-family:var(--display);font-stretch:70%;font-weight:800;text-transform:uppercase;font-size:clamp(40px,3.8vw,60px);line-height:.88}
.plan-desc{color:var(--mute-l);margin:14px 0 30px;min-height:3.1em;max-width:34ch}
.price{display:flex;align-items:baseline;gap:10px;padding-block:22px;border-block:1px solid var(--hair-l);margin-bottom:26px;flex-wrap:wrap}
.price b{font-family:var(--display);font-stretch:72%;font-weight:800;font-size:clamp(46px,4.2vw,64px);line-height:.9;font-variant-numeric:tabular-nums}
.price b small{font-size:.5em;vertical-align:.55em;margin-right:2px}
.price span{color:var(--mute-l);font-size:14px}
.price .per{flex-basis:100%;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute-l)}
.plan ul{list-style:none;display:grid;gap:12px;margin-bottom:34px;flex:1}
.plan li{display:grid;grid-template-columns:18px 1fr;gap:12px;font-size:15px;align-items:start}
.plan li svg{width:18px;height:18px;margin-top:2px}
.plan li svg path{fill:none;stroke:var(--clay);stroke-width:2}
.plan.is-feat{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.plan.is-feat .mono,.plan.is-feat .plan-desc,.plan.is-feat .price span,.plan.is-feat .price .per{color:var(--mute-d)}
.plan.is-feat .price{border-color:var(--hair-d)}
.plan.is-feat li svg path{stroke:var(--optic)}
.plans-note{display:flex;gap:28px;flex-wrap:wrap;margin-top:28px;color:var(--mute-l);font-size:14px}
.plans-note span{display:flex;align-items:center;gap:8px}
.plans-note span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--clay)}
@media (max-width:1020px){.plans{grid-template-columns:1fr;max-width:560px}.plan-top{margin-bottom:32px}}

/* ---------- Academy ---------- */
.academy-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,80px);align-items:start}
.player{position:sticky;top:110px;border-radius:8px;overflow:hidden;background:var(--ink-2);border:1px solid var(--hair-d)}
.player-screen{position:relative;aspect-ratio:16/10;overflow:hidden;background:
  radial-gradient(60% 70% at 70% 30%,rgba(216,242,74,.12),transparent 70%),
  linear-gradient(160deg,#1E4433,#0F2219)}
.player-screen svg.court{position:absolute;inset:0;width:100%;height:100%}
.player-screen svg.court *{fill:none;stroke:rgba(241,238,229,.16);stroke-width:1.5}
.player-screen .traj{fill:none;stroke:var(--optic);stroke-width:2.5;stroke-dasharray:6 8}
.player-screen .hit{fill:var(--optic)}
.player-chip{position:absolute;left:18px;top:18px;display:flex;gap:8px}
.player-chip span{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:rgba(12,14,10,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.player-chip span:first-child{background:var(--clay);color:#fff}
.play{position:absolute;left:50%;top:50%;width:88px;height:88px;margin:-44px 0 0 -44px;border-radius:50%;background:var(--optic);display:grid;place-items:center;transition:transform .6s var(--ease)}
.play::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px solid rgba(216,242,74,.4);animation:ping 2.4s var(--ease) infinite}
@keyframes ping{from{transform:scale(.8);opacity:1}to{transform:scale(1.5);opacity:0}}
.play svg{width:26px;height:26px;margin-left:4px}
.player:hover .play{transform:scale(1.08)}
.player-bar{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:16px 20px;border-top:1px solid var(--hair-d)}
.player-bar .mono{color:var(--mute-d)}
.pb{height:3px;border-radius:3px;background:var(--hair-d);position:relative;overflow:hidden}
.pb i{position:absolute;inset:0;background:var(--optic);transform-origin:left;transform:scaleX(.36)}
.player-meta{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 20px;border-top:1px solid var(--hair-d)}
.player-meta h4{font-family:var(--display);font-stretch:76%;font-weight:700;text-transform:uppercase;font-size:24px;line-height:1}
.player-meta p{color:var(--mute-d);font-size:14px;margin-top:6px}

.modules{border-top:1px solid var(--hair-d)}
.module{border-bottom:1px solid var(--hair-d)}
.module summary{list-style:none;display:grid;grid-template-columns:44px 1fr auto 28px;gap:14px;align-items:center;padding:22px 0;cursor:pointer}
.module summary::-webkit-details-marker{display:none}
.module summary .mono{color:var(--mute-d)}
.module summary h4{font-weight:500;font-size:clamp(17px,1.4vw,20px)}
.module summary small{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--mute-d);text-transform:uppercase;white-space:nowrap}
.module .pm{position:relative;width:28px;height:28px;border-radius:50%;border:1px solid var(--hair-d);transition:transform .5s var(--ease),background .4s,border-color .4s}
.module .pm::before,.module .pm::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.module .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.module[open] .pm{transform:rotate(45deg);background:var(--optic);border-color:var(--optic);color:var(--ink)}
.module ol{list-style:none;padding:0 0 22px 58px;display:grid;gap:10px;counter-reset:l}
.module li{display:flex;justify-content:space-between;gap:16px;color:var(--mute-d);font-size:15px;counter-increment:l}
.module li::before{content:counter(l,decimal-leading-zero);font-family:var(--mono);font-size:11px;color:rgba(241,238,229,.35);margin-right:10px;margin-top:3px}
.module li span:first-child{flex:1}
.module li .lock{font-family:var(--mono);font-size:11px;color:rgba(241,238,229,.35)}
.module li .free{font-family:var(--mono);font-size:11px;color:var(--optic)}
.academy-buy{margin-top:36px;padding:28px;border-radius:6px;background:var(--ink-2);border:1px solid var(--hair-d);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.academy-buy .price-inline b{font-family:var(--display);font-stretch:72%;font-weight:800;font-size:48px;line-height:1}
.academy-buy .price-inline s{color:var(--mute-d);margin-left:10px}
.academy-buy p{color:var(--mute-d);font-size:14px;margin-top:4px}
@media (max-width:980px){.academy-grid{grid-template-columns:1fr}.player{position:relative;top:0}}
@media (max-width:520px){.module summary{grid-template-columns:32px 1fr 28px}.module summary small{display:none}.module ol{padding-left:46px}}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden;padding:clamp(28px,4vw,48px) 0;border-block:1px solid var(--hair-d)}
.marquee-track{display:flex;width:max-content;will-change:transform}
.marquee-item{display:flex;align-items:center;gap:clamp(24px,3vw,48px);padding-right:clamp(24px,3vw,48px);font-family:var(--display);font-stretch:64%;font-weight:800;text-transform:uppercase;font-size:clamp(56px,9vw,150px);line-height:.9;white-space:nowrap}
.marquee-item .o{color:transparent;-webkit-text-stroke:1.5px rgba(241,238,229,.4)}
.marquee-item .b{width:.42em;height:.42em;border-radius:50%;background:var(--optic);flex:none}

/* ---------- Process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair-l)}
.step{padding:28px clamp(16px,2vw,28px) 0 0;position:relative}
.step + .step{padding-left:clamp(16px,2vw,28px);border-left:1px solid var(--hair-l)}
.step::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease)}
.step.is-in::before{transform:scaleX(1)}
.step .mono{color:var(--mute-l)}
.step h3{font-family:var(--display);font-stretch:72%;font-weight:800;text-transform:uppercase;font-size:clamp(30px,2.6vw,40px);line-height:.9;margin:56px 0 14px}
.step p{color:var(--mute-l);font-size:15px;max-width:30ch;padding-bottom:12px}
@media (max-width:860px){
  .steps{grid-template-columns:1fr 1fr;row-gap:40px}
  .step:nth-child(3){border-left:0;padding-left:0}
  .step h3{margin-top:28px}
}
@media (max-width:520px){.steps{grid-template-columns:1fr}.step + .step{border-left:0;padding-left:0}}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(32px,6vw,100px)}
.faq-grid h2{font-size:clamp(48px,6.2vw,104px);margin-top:20px}
.faq-side p{color:var(--mute-l);margin-top:28px;max-width:30ch}
.faq-side a{border-bottom:1px solid currentColor}
.qa{border-bottom:1px solid var(--hair-l)}
.qa:first-child{border-top:1px solid var(--hair-l)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px 0;font-size:clamp(18px,1.6vw,23px);font-weight:500;letter-spacing:-.01em}
.qa summary::-webkit-details-marker{display:none}
.qa .pm{flex:none;position:relative;width:34px;height:34px;border-radius:50%;border:1px solid var(--hair-l);transition:transform .5s var(--ease),background .4s,border-color .4s}
.qa .pm::before,.qa .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%)}
.qa .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.qa[open] .pm{transform:rotate(45deg);background:var(--ink);border-color:var(--ink)}
.qa[open] .pm::before,.qa[open] .pm::after{background:var(--paper)}
.qa .ans{overflow:hidden}
.qa .ans p{color:var(--mute-l);padding-bottom:26px;max-width:62ch}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}}

/* ---------- Booking ---------- */
.book{position:relative;overflow:hidden}
.book-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(50% 60% at 85% 10%,rgba(216,242,74,.10),transparent 70%)}
.book-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,100px)}
.book h2{font-size:clamp(64px,10vw,168px);margin:20px 0 32px}
.book h2 .accent{color:var(--optic)}
.book-lede{color:var(--mute-d);max-width:42ch;font-size:clamp(16px,1.3vw,19px)}
.contact-list{margin-top:48px;border-top:1px solid var(--hair-d)}
.contact-list a,.contact-list div{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--hair-d);transition:padding .5s var(--ease),color .3s}
.contact-list a:hover{padding-left:12px;color:var(--optic)}
.contact-list .mono{color:var(--mute-d);text-transform:none;font-size:13px;letter-spacing:.02em}
.form{display:grid;gap:22px;align-content:start;padding:clamp(24px,3vw,44px);border:1px solid var(--hair-d);border-radius:8px;background:rgba(20,23,15,.6)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field{position:relative;display:grid;gap:8px}
.field > span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute-d)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:17px;color:var(--paper);background:transparent;border:0;border-bottom:1px solid var(--hair-d);padding:10px 0 12px;outline:none;border-radius:0;transition:border-color .3s;-webkit-appearance:none;appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%238C9183' stroke-width='1.5'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:12px;padding-right:24px}
.field select option{background:var(--ink);color:var(--paper)}
.field textarea{resize:vertical;min-height:84px}
.field input::placeholder,.field textarea::placeholder{color:rgba(241,238,229,.28)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--optic)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{cursor:pointer}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;padding:9px 14px;border-radius:999px;border:1px solid var(--hair-d);font-size:14px;color:var(--mute-d);transition:all .3s}
.chips input:checked + span{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.chips input:focus-visible + span{outline:2px solid var(--optic);outline-offset:2px}
.form-foot{display:grid;gap:14px}
.form-foot small{color:var(--mute-d);font-size:13px;text-align:center}
@media (max-width:980px){.book-grid{grid-template-columns:1fr}}
@media (max-width:520px){.form-row{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.footer{padding-top:clamp(64px,8vw,110px);border-top:1px solid var(--hair-d);overflow:hidden}
.footer-cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px;padding-bottom:clamp(48px,6vw,80px)}
.footer-cols h5{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute-d);font-weight:500;margin-bottom:18px}
.footer-cols ul{list-style:none;display:grid;gap:10px}
.footer-cols a{transition:color .3s}
.footer-cols a:hover{color:var(--optic)}
.footer-cols p{color:var(--mute-d);max-width:32ch}
.footer-word{font-family:var(--display);font-stretch:62%;font-weight:800;text-transform:uppercase;font-size:clamp(120px,31.5vw,560px);line-height:.74;letter-spacing:-.02em;white-space:nowrap;text-align:center;margin-bottom:-.06em;color:var(--paper)}
.footer-word span{display:inline-block}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-block:22px;border-top:1px solid var(--hair-d);color:var(--mute-d);font-size:13px}
@media (max-width:860px){.footer-cols{grid-template-columns:1fr 1fr}.footer-cols > div:first-child{grid-column:1/-1}}

/* ---------- WhatsApp FAB ---------- */
.wa{position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:80;display:flex;align-items:center;gap:10px;height:54px;padding:0 18px 0 8px;border-radius:999px;background:var(--paper);color:var(--ink);font-weight:600;font-size:14px;box-shadow:0 20px 40px -18px rgba(0,0,0,.6);transform:translateY(140%);transition:transform .8s var(--ease)}
.wa.is-on{transform:none}
.wa i{width:38px;height:38px;border-radius:50%;background:#25D366;display:grid;place-items:center}
.wa svg{width:20px;height:20px;fill:#fff}
@media (max-width:520px){.wa{padding-right:8px}.wa b{display:none}}

/* ---------- Motion fallbacks ---------- */
.no-js [data-reveal],.reduced [data-reveal]{opacity:1!important;transform:none!important}

/* ---------- Header okunurluğu: menü açıkken ve en üstte de net ---------- */
.header .brand-name,.header .brand-sub{text-shadow:0 1px 12px rgba(12,14,10,.35)}

/* ---------- Logo ---------- */
.brand-mark{flex:none}
.loader-top .brand{color:var(--paper)}
.loader-top .brand-mark{width:38px;height:38px}
.mm-brand{position:absolute;top:22px;left:var(--gutter)}
.ph-mono svg{width:56%;height:auto;color:rgba(241,238,229,.10)}
.footer-word{font-size:clamp(64px,16.4vw,300px)}
.footer-word .sp{display:inline-block;width:.18em}

/* ---------- Rezervasyon: başlık üstte, form ile WhatsApp yan yana ve aynı hizada ---------- */
.book-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px 64px;align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.book-head .label{grid-column:1/-1}
.book-head h2{margin:0}
.book-head .book-lede{margin:0 0 .6em;justify-self:end}
.book-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(20px,2.4vw,32px);align-items:stretch}
.book-side{display:flex;flex-direction:column;gap:24px;min-width:0}
.book-side .contact-list{margin-top:0}
.field .err{display:none;font-style:normal;font-size:13px;color:#FF8A6B}
.field.invalid .err{display:block}
.field.invalid input{border-color:#FF8A6B}
.field.age{margin-top:14px;max-width:200px}
.field.age[hidden]{display:none}
.chips.days span{min-width:54px;text-align:center}
.form-foot small.is-ok{color:var(--optic)}

.wa-preview{flex:1;display:flex;flex-direction:column;min-height:420px}
.wa-phone{flex:1;display:flex;flex-direction:column;border:1px solid var(--hair-d);border-radius:8px;overflow:hidden;background:#0B141A;
  background-image:radial-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:16px 16px}
.wa-top{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#1F2C34;color:#E9EDEF}
.wa-avatar{width:38px;height:38px;flex:none}
.wa-top b{display:block;font-size:15px;font-weight:600}
.wa-top small{font-size:12.5px;color:#8696A0}
.wa-chat{flex:1;padding:24px 18px;display:flex;flex-direction:column;justify-content:flex-end}
.wa-bubble{align-self:flex-end;width:min(100%,400px);background:#005C4B;color:#E9EDEF;border-radius:10px 10px 2px 10px;
  padding:10px 12px 8px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.wa-bubble b{font-weight:600}
.wa-bubble time{display:block;text-align:right;font-size:11px;color:rgba(233,237,239,.6);margin-top:4px}
.wa-bubble time i{font-style:normal;color:#53BDEB;letter-spacing:-2px}
.wa-bubble.pop{animation:waPop .35s cubic-bezier(.2,.9,.3,1.3)}
@keyframes waPop{from{transform:scale(.96)}to{transform:none}}
.wa-note{margin:12px 2px 0;font-size:13px;color:var(--mute-d)}

@media (max-width:980px){
  .book-head,.book-grid{grid-template-columns:1fr}
  .book-head .book-lede{justify-self:start}
  .wa-preview{min-height:0}
  .wa-chat{min-height:280px}
}

/* ---------- Yükleme ekranı: filenin iki yanında ralli ---------- */
.loader-scene{width:min(600px,86vw);align-self:center}
.loader-scene svg{width:100%;height:auto;overflow:visible}
.ls-ground{stroke:var(--hair-d);stroke-width:2}
.ls-net path{stroke:rgba(241,238,229,.55);stroke-width:2;fill:none}
.ls-net .ls-mesh{fill:rgba(241,238,229,.14);stroke:none}
.ls-net rect{fill:var(--paper)}
.ls-racket{fill:none;stroke:var(--paper);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;transform-origin:0 0;animation:lsSwing 2.4s infinite}
.ls-racket .str{stroke:rgba(241,238,229,.35);stroke-width:1.1}
.ls-racket rect{fill:var(--paper);stroke:none}
.ls-right{animation-delay:-1.2s}
@keyframes lsSwing{
  0%{transform:rotate(-4deg);animation-timing-function:cubic-bezier(.2,.8,.3,1)}
  9%{transform:rotate(22deg);animation-timing-function:ease-in-out}
  32%{transform:rotate(-6deg)}
  80%{transform:rotate(-6deg);animation-timing-function:ease-in}
  93%{transform:rotate(-28deg);animation-timing-function:cubic-bezier(.5,0,.8,.4)}
  100%{transform:rotate(-4deg)}}
.ls-spin circle{fill:var(--optic)}
.ls-seam{fill:none;stroke:#F7F8EE;stroke-width:1.6;stroke-linecap:round}
.ls-spin{animation:lsSpin .5s linear infinite}
@keyframes lsSpin{to{transform:rotate(360deg)}}
.ls-x,.ls-shadow-x{animation:lsX 2.4s linear infinite}
@keyframes lsX{0%,100%{transform:translateX(0)}50%{transform:translateX(416px)}}
.ls-y{animation:lsY 2.4s infinite}
@keyframes lsY{
  0%{transform:translateY(112px);animation-timing-function:cubic-bezier(.3,.7,.6,1)}
  17.5%{transform:translateY(40px);animation-timing-function:cubic-bezier(.45,0,.8,.5)}
  40%{transform:translateY(180px);animation-timing-function:cubic-bezier(.2,.6,.5,1)}
  50%{transform:translateY(112px);animation-timing-function:cubic-bezier(.3,.7,.6,1)}
  67.5%{transform:translateY(40px);animation-timing-function:cubic-bezier(.45,0,.8,.5)}
  90%{transform:translateY(180px);animation-timing-function:cubic-bezier(.2,.6,.5,1)}
  100%{transform:translateY(112px)}}
.ls-shadow{fill:rgba(216,242,74,.28);transform-box:fill-box;transform-origin:center;animation:lsShadow 2.4s infinite}
@keyframes lsShadow{
  0%,50%,100%{transform:scale(.75);opacity:.5}
  17.5%,67.5%{transform:scale(.45);opacity:.25}
  40%,90%{transform:scale(1.15);opacity:.9}}

/* ---------- Kaydırma: soldaki şeritte top rakete düşer ---------- */
.rally{position:fixed;left:14px;top:118px;bottom:26px;width:30px;z-index:60;pointer-events:none;display:none;
  mix-blend-mode:difference;opacity:0;transition:opacity .6s}
.rally.is-on{opacity:1}
@media (min-width:1180px){.rally{display:block}}
@media (min-width:1600px){.rally{left:calc((100vw - var(--maxw))/2 - 30px)}}
.rally-line{position:absolute;left:50%;top:0;bottom:96px;width:1px;margin-left:-.5px;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.45) 0 3px,transparent 3px 9px)}
.rally-line i{position:absolute;inset:0;background:#fff;transform-origin:top;transform:scaleY(0)}
.rally-ball{position:absolute;left:4px;top:0;width:22px;height:22px;overflow:visible;will-change:transform}
.rally-top{mix-blend-mode:normal;z-index:61} /* top karışmaz: her zeminde optik sarı */
.rally-ball circle{fill:var(--optic);stroke:var(--ink);stroke-width:1.4}
.rally-ball path{fill:none;stroke:#F7F8EE;stroke-width:1.4;stroke-linecap:round}
.rally-racket{position:absolute;left:-3px;bottom:0;width:36px;height:auto;overflow:visible;
  fill:none;stroke:#fff;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;transform-origin:50% 100%;transition:transform .5s var(--ease)}
.rally-racket .str{stroke:rgba(255,255,255,.5);stroke-width:1.2}
.rally-racket rect{fill:#fff;stroke:none}
.rally.is-hit .rally-racket{transform:rotate(-14deg)}
.rally-top.is-hit .rally-ball{animation:rallyHop .9s cubic-bezier(.2,.7,.3,1)}
@keyframes rallyHop{0%{translate:0 0}35%{translate:0 -46px}70%{translate:0 0}85%{translate:0 -10px}100%{translate:0 0}}

@media (prefers-reduced-motion:reduce){
  .grain,.play::before,.scroll-hint i::after,.rally-top.is-hit .rally-ball{animation:none}
  .manifesto .w{opacity:1}
}

/* Fotoğraf üstündeki isim satırı okunur kalsın */
.about-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(transparent,rgba(12,14,10,.75));pointer-events:none}
.about-photo .ph-caption{z-index:1}
