:root{
  --bg:#f1efe9; --ink:#0b0b0c; --ink-dim:#6e6b64;
  /* Futura öncelikli; Türkçe karakterlerde Jost'a düşer */
  --font:'Futura','Jost',system-ui,sans-serif; --gutter:clamp(20px,4vw,60px);
}
@font-face{font-family:'Futura';src:url('../../font/FuturaCyrillicBook.woff2?v=2') format('woff2'),url('../../font/FuturaCyrillicBook.ttf?v=2') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Futura';src:url('../../font/FuturaCyrillicMedium.woff2?v=2') format('woff2'),url('../../font/FuturaCyrillicMedium.ttf?v=2') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Futura';src:url('../../font/FuturaCyrillicDemi.woff2?v=2') format('woff2'),url('../../font/FuturaCyrillicDemi.ttf?v=2') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'Futura';src:url('../../font/FuturaCyrillicBold.woff2?v=2') format('woff2'),url('../../font/FuturaCyrillicBold.ttf?v=2') format('truetype');font-weight:700;font-display:swap}

*{margin:0;padding:0;box-sizing:border-box}
html,body{min-height:100%}
html{scrollbar-width:none}
html::-webkit-scrollbar{display:none}
body{background:var(--bg);color:var(--ink);font-family:var(--font);overflow-x:hidden;-webkit-font-smoothing:antialiased;touch-action:pan-y}
canvas{display:block}
::selection{background:var(--ink);color:var(--bg)}
::-moz-selection{background:var(--ink);color:var(--bg)}

#scene{position:fixed;inset:0;z-index:1;cursor:grab;touch-action:pan-y}
#scene>canvas{width:100%!important;height:100%!important}
#scene.grabbing{cursor:grabbing}   /* sürüklerken kapalı el — imleç görünür kalır */
@media(max-width:768px),(max-aspect-ratio:9/10),(hover:none) and (pointer:coarse) and (max-height:600px){#scene{touch-action:none}}

/* stüdyo vignette — köşelerde yumuşak ışık düşümü, üstte hafif tavan gölgesi */
.vignette{position:fixed;inset:0;z-index:5;pointer-events:none;
  background:
    radial-gradient(130% 105% at 50% 36%, transparent 52%, rgba(28,24,16,.13) 100%),
    linear-gradient(180deg, rgba(28,24,16,.05) 0%, transparent 18%);}

/* logo — hep üstte, siyah, ortada */
.brand{position:fixed;top:clamp(22px,3vw,34px);left:50%;transform:translateX(-50%);z-index:20;height:clamp(8px,0.87vw,11px);width:auto;display:block;user-select:none;transition:opacity .4s ease}
.brand.hide{opacity:0;pointer-events:none}   /* sözlüğe bakarken gizli */

/* köşe bilgileri */
.ui{position:fixed;z-index:15;font-size:12px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
/* .ui.tl artik <h1>: baslik etiketinin varsayilan kalinligi ve bosluklari
   gorunumu degistirmesin diye agirlik burada acikca sabitlendi. */
.ui h1,h1.ui{font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit}
/* Mobilde küçük ekranda ince ağırlık (400) zayıf okunuyordu; hafif artış (500),
   boyut/aralık aynı kalır — göze çarpan bir kalınlaşma değil, okunurluk düzeltmesi. */
@media(max-width:768px){.ui{font-weight:500}.ui.tr{font-weight:600}
  /* Sol ust baslik dar ekranda ORTADAKI intak logosuna giriyordu: iki satir
     ("IMMERSIVE WEB STUDYOSU" / "intak.tr") saga dogru uzayip logonun ustune
     biniyordu. %20 kucultuldu -> 12.8px. Yalniz .tl kucultuluyor; .bl (telif
     satiri) zaten kimseyle catismiyor.

     TABAN NEDEN 16px? .ui 12px tanimlar ama .tl bir <h1> ve yukaridaki
     "h1.ui{font-size:inherit}" kurali (0,1,1) .ui'yi (0,1,0) ozgullukle
     eziyor; h1 govdeden 16px miras aliyor. Yani sol ust yazi 16px, sol alt
     telif satiri 12px -- ikisi ayni boyutta gorunmesi gerekirken degil.
     Bu ONCEDEN VAR OLAN bir tutarsizlik; burada masaustunu degistirmemek
     icin dokunulmadi, yalniz mobil kucultuldu. .ui.tl (0,2,0) oldugu icin
     h1.ui'yi ezer ve kural calisir. */
  .ui.tl{font-size:12.8px;
    /* %20 kucultmek TEK BASINA yetmedi: 375px'te yazi hala logoya 3px
       biniyordu. Boyutu daha da kucultmek yerine GENISLIK SINIRI konuldu --
       logo ortada (left:50%) durdugu icin sol kenari 50vw'nin biraz solunda;
       yazi o noktaya ULASAMAZ, ulasirsa satir atlar. Boylece cakisma ekran
       genisliginden ve metin uzunlugundan BAGIMSIZ olarak imkansiz hale
       gelir; her yeni cihaz boyutu icin ayri font degeri aramak gerekmez.
       52px = logo yarim genisligi (~20) + saginda birakilan nefes payi (32). */
    max-width:calc(50vw - 52px)}}
.ui.tl{top:clamp(22px,3vw,34px);left:var(--gutter)}
/* Soldaki (.tl) ağırlığından bir adım fazla: tek kelimelik davet daha vurgulu
   dursun diye. Font yalnız 400/500/600/700 olarak tanımlı (bkz. @font-face);
   600 her iki kırılımda da .tl'den (400 masaüstü / 500 mobil) bir kademe üstte. */
.ui.tr{top:clamp(22px,3vw,34px);right:var(--gutter);text-align:right;line-height:1.9;font-weight:600}
.ui.tr a{display:block;color:var(--ink);text-decoration:none;transition:color .3s}
.ui.tr a:hover{color:var(--ink)}
.ui.bl{bottom:clamp(20px,3vh,30px);left:var(--gutter)}
/* KVKK bagi: form kisisel veri topladigi icin aydinlatma metni sayfadan tek
   tikla ERISILEBILIR olmali (KVKK m.10). Ama tasarimda vurgu istemiyoruz:
   telif satirinin yaninda, ondan bir tik sonuk duruyor. Gizlemek
   (display:none / 0 opaklik / ekran disi) yukumlulugu ihlal ederdi -- bu
   yuzden gorunur, tiklanabilir ve klavyeyle odaklanabilir kaliyor. */
.ui.bl .sep{margin:0 .5em;opacity:.45}
.ui.bl .kv{color:var(--ink);text-decoration:none;opacity:.5;
  border-bottom:1px solid transparent;transition:opacity .3s ease,border-color .3s ease}
.ui.bl .kv:hover,.ui.bl .kv:focus-visible{opacity:1;border-color:var(--ink)}
.ui.br{bottom:clamp(20px,3vh,30px);right:var(--gutter)}
.hint{position:fixed;bottom:clamp(20px,3vh,30px);left:50%;transform:translateX(-50%);z-index:15;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);opacity:.7;
  transition:opacity .5s ease}
.hint.gone{opacity:0}

/* "Tanıtımı geç" — İşlerimiz'e gelince belirir, turun sonuna götürür */
.skip-intro{position:fixed;z-index:22;bottom:clamp(20px,3vh,30px);right:var(--gutter);
  font-family:var(--font);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bg);background:var(--ink);border:0;border-radius:999px;cursor:pointer;
  padding:13px 20px 13px 22px;box-shadow:0 6px 22px rgba(11,11,12,.28);
  display:inline-flex;align-items:center;gap:10px;
  opacity:0;pointer-events:none;transform:translateY(8px) scale(.96);
  transition:opacity .4s ease,transform .4s ease,box-shadow .25s ease,background .25s ease}
.skip-intro.show{opacity:1;pointer-events:auto;transform:none;
  animation:skipPulse 2.2s ease-in-out .5s 2}
.skip-intro:hover{background:#2a2a28;box-shadow:0 8px 26px rgba(11,11,12,.38)}
.skip-intro svg{display:block;overflow:visible}
.skip-intro line,.skip-intro path{stroke:var(--bg);stroke-width:2.4;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
@keyframes skipPulse{0%,100%{box-shadow:0 6px 22px rgba(11,11,12,.28)}
  50%{box-shadow:0 6px 26px rgba(11,11,12,.28),0 0 0 8px rgba(11,11,12,.08)}}

/* "Başa dön" — aynı buton, tersine ok; kutu (İletişime geç) okunur olunca belirir.
   skipIntro'yla aynı anda hiç görünmez (biri turda, diğeri uçuşun sonunda), bu
   yüzden aynı köşeyi güvenle paylaşır. */
.skip-intro.go-top{padding:13px 22px 13px 20px}

/* geçit uyarısı — küçük ama net; intak'a dönmeye çalışınca belirir, kendiliğinden söner */
.gate-hint{position:fixed;left:50%;bottom:clamp(64px,12vh,120px);transform:translateX(-50%) translateY(6px);
  z-index:30;padding:9px 16px;border-radius:999px;
  background:rgba(11,11,12,.86);color:#fff;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;
  pointer-events:none;opacity:0;transition:opacity .3s ease, transform .3s ease}
.gate-hint.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* proje geçidi — tıklanan önizleme, ekranı kaplayarak tanıtım sayfasına dönüşür.
   Overlay'deki <video> sahnedekiyle AYNI eleman: kare kare devam eder. */
@view-transition{navigation:auto}
/* beyaz sızma yok: VT zemini koyu; root crossfade kapalı (anlık takas) */
::view-transition{background:#0b0b0c}
::view-transition-old(root),::view-transition-new(root){animation:none}
.ov{position:fixed;z-index:60;overflow:hidden;contain:layout paint;background:#0b0b0c;
  view-transition-name:proje-hero;border-radius:2px;backface-visibility:hidden;transform:translateZ(0)}
.ov video{width:100%;height:100%;object-fit:cover;display:block}
body.leaving .brand,body.leaving .ui,body.leaving .hint,body.leaving .cue,
body.leaving .gate-hint,body.leaving .vignette{opacity:0!important;transition:opacity .45s ease}

/* iletişim geçidi — tıklanan noktadan yayılan koyu yüzey ve editoryal ara kare */
.contact-transition{position:fixed;inset:0;z-index:90;overflow:hidden;pointer-events:none;
  visibility:hidden;background:#0b0b0c;color:#f1efe9;clip-path:circle(0 at 50% 50%);
  will-change:clip-path;view-transition-name:iletisim-panel}
.contact-transition::before{content:'';position:absolute;inset:0;opacity:.65;
  background:radial-gradient(60vmax circle at var(--cx,50%) var(--cy,50%),rgba(241,239,233,.1),transparent 58%)}
.ct-ring{position:absolute;left:var(--cx,50%);top:var(--cy,50%);width:64px;height:64px;
  margin:-32px 0 0 -32px;border:1px solid rgba(241,239,233,.65);border-radius:50%;opacity:0}
.ct-foot{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(24px,4vh,42px);
  display:flex;justify-content:space-between;padding-top:16px;border-top:1px solid rgba(241,239,233,.18);
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#77756f;opacity:0}
body.contact-leaving .brand,body.contact-leaving .ui,body.contact-leaving .hint,
body.contact-leaving .cue,body.contact-leaving .gate-hint,body.contact-leaving .vignette{
  opacity:0!important;transition:opacity .38s ease}

/* TDK logosunun altındaki sağ-ok ipucu — saf CSS/SVG, GPU-only */
.cue{position:fixed;top:15%;left:50%;transform:translateX(-50%);z-index:15;
  display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--ink);
  transition:opacity .5s ease;opacity:1}
.cue.gone{opacity:0;pointer-events:none}
.cue svg{display:block;overflow:visible}
.cue line,.cue path{stroke:var(--ink);stroke-width:3;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.cue .arrow{animation:nudge 1.5s cubic-bezier(.16,1,.3,1) infinite}
.cue .lbl{font-size:15px;font-weight:700;letter-spacing:.34em;text-transform:uppercase;color:var(--ink);
  animation:nudge 1.5s cubic-bezier(.16,1,.3,1) infinite}
.cue.gone .arrow,.cue.gone .lbl{animation-play-state:paused}
@keyframes nudge{0%,100%{transform:translateX(0);opacity:.6}50%{transform:translateX(13px);opacity:1}}

/* ---------------------------------------------------------------------------
   YUKLEME EKRANI
   Sitenin GORDUGU ILK KARE. Uc kisit birden:
     1) Bedava olmali. Ek istek yok (gorsel/SVG/font yok), JS animasyon
        dongusu yok. Tum hareket transform ve opacity uzerinde -- bunlar
        birlestirme (compositing) katmaninda calisir, yeniden yerlesim
        (layout/paint) tetiklemez. Bu kritik: ayni anda ana is parcacigi
        Three.js'i derliyor ve dokulari cozuyor.
     2) Yuzde GRANULER DEGIL. Beklenen kare sayisi 1 ya da 2 (bkz. sahne.js
        eagerVideoCount), yani sayac 0 -> 100 diye ziplar. Bu yuzden gorsel
        dil "ilerleme cubugu" DEGIL: surekli akan, belirsiz bir isik hatti.
        Sayi kucuk bir ayrinti olarak duruyor, ana anlatici o degil.
     3) Turun devami gibi durmali. Krem stüdyo zemini + kose karartmasi
        (.vignette ile ayni dil), ortada isikla belirginlesen marka.
   SOZLESME: #load / #loadpct kimlikleri ve .off ile sonme aynen korundu.
   --------------------------------------------------------------------------- */
#load{position:fixed;inset:0;z-index:30;background:var(--bg);
  display:grid;place-items:center;
  transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1)}
/* Stüdyo isigi: ortasi acik, koseleri hafif karanlik -- sahnedeki .vignette
   ile ayni geometri, boylece loader sonunce zemin "degismis" gibi olmuyor. */
#load::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(128% 104% at 50% 46%, transparent 48%, rgba(28,24,16,.14) 100%)}

.ld-ic{position:relative;display:grid;justify-items:center;
  gap:clamp(18px,3.2vh,30px);padding:0 var(--gutter)}

/* --- MARKA --- */
/* Uzerinden bir isik gecer: kalinlasan/parlayan bir harf degil, sabit
   mürekkep uzerinde yavasca kayan bir aydinlik bandi. background-clip:text
   destegi yoksa duz mürekkep kalir -- yani bozulmaz, sadece parilti olmaz. */
.ld-mark{font-size:clamp(26px,5.2vw,52px);font-weight:600;
  letter-spacing:.42em;text-indent:.42em;   /* son harfin sag bosluğu ortalamayi kaydirmasin */
  line-height:1;color:var(--ink);
  animation:ldMarkaGir 1.1s cubic-bezier(.16,1,.3,1) both}
@supports (background-clip:text) or (-webkit-background-clip:text){
  .ld-mark{
    background:linear-gradient(100deg,
      var(--ink) 0%, var(--ink) 38%,
      rgba(11,11,12,.28) 50%,
      var(--ink) 62%, var(--ink) 100%) 0 0 / 280% 100%;
    -webkit-background-clip:text;background-clip:text;color:transparent;
    animation:ldMarkaGir 1.1s cubic-bezier(.16,1,.3,1) both,
              ldParilti 3.4s ease-in-out 1.1s infinite}
}
@keyframes ldMarkaGir{
  from{opacity:0;transform:translateY(10px) scale(.985);letter-spacing:.62em}
  to  {opacity:1;transform:none;letter-spacing:.42em}
}
@keyframes ldParilti{
  0%,100%{background-position:180% 0}
  50%    {background-position:-80% 0}
}

/* --- ISIK HATTI --- */
/* Belirsiz (indeterminate): gercek ilerleme 1-2 adim oldugu icin dolan bir
   cubuk yalan soylerdi. Hat sabit, uzerinden kisa bir isik gecip gider. */
.ld-hat{position:relative;display:block;overflow:hidden;
  width:clamp(132px,20vw,220px);height:1px;
  background:rgba(11,11,12,.13);
  animation:ldHatGir .8s ease .25s both}
.ld-hat i{position:absolute;inset:0 auto 0 0;width:38%;
  background:linear-gradient(90deg,transparent,var(--ink),transparent);
  animation:ldAkis 1.75s cubic-bezier(.55,0,.45,1) .55s infinite}
@keyframes ldHatGir{from{opacity:0;transform:scaleX(.3)}to{opacity:1;transform:none}}
@keyframes ldAkis{
  0%  {transform:translateX(-105%)}
  100%{transform:translateX(370%)}
}

/* --- YUZDE --- */
/* tabular-nums: 9 -> 10 -> 100 gecisinde satir genisligi oynamasin. */
.ld-pct{font-size:10.5px;font-weight:500;letter-spacing:.26em;text-indent:.26em;
  color:var(--ink-dim);font-variant-numeric:tabular-nums;
  animation:ldYuzdeGir .8s ease .45s both}
@keyframes ldYuzdeGir{from{opacity:0}to{opacity:1}}

/* --- CIKIS --- */
/* Hafif buyuyerek soner: kamera ileri gidiyormus hissi, turun ilk
   hareketiyle ayni yon. */
#load.off{opacity:0;pointer-events:none;transform:scale(1.05)}

/* Is sayfasindan donuste loader son video karesini tasiyor (bkz. index.php
   project-return-paint): o kare zaten dolu bir goruntu, uzerine marka ve
   hat binmemeli. */
html.project-return-paint #load::before,
html.project-return-paint .ld-ic{display:none}

@media (prefers-reduced-motion:reduce){
  .ld-mark,.ld-hat,.ld-pct{animation:none;opacity:1;transform:none;letter-spacing:.42em}
  .ld-mark{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--ink)}
  .ld-hat i{animation:none;width:100%;background:rgba(11,11,12,.3)}
  #load{transition:opacity .2s ease}
  #load.off{transform:none}
}

/* ---------------------------------------------------------------------------
   WEBGL / JS YEDEĞİ
   Üç senaryoda devreye girer (bkz. index.php ve assets/js/app.js):
     · JavaScript kapalı           → <noscript> bu bloğu !important ile açar
     · WebGL desteklenmiyor        → app.js indirmeden önce yakalar, gösterir
     · sahne.js çöktü / GPU koptu  → app.js / sahne.js aynı işlevi çağırır
   Varsayılan: gizli. hidden özniteliği + display:none çiftlenir çünkü
   <noscript> yolu display'i !important ile ezer, [hidden] tek başına yeterli
   olmazdı (attribute'un UA kuralı düşük özgüllükte, biz üzerine yazıyoruz). */
/* Taban kural GÖRÜNÜR durumu tanımlar (display:flex); varsayılan GİZLİ hâl
   [hidden] özniteliğinden gelir — onun özgüllüğü tabandan yüksek olduğu için
   kazanır. JS `hidden`'ı kaldırınca (intakYedekGoster) geriye yalnız taban
   kural kalır ve flex düzeni devreye girer. Önceki sürümde taban kural
   YANLIŞLIKLA display:none idi; JS hidden'ı kaldırsa bile hiçbir kural
   display:flex YAZMIYORDU, yani element hiçbir zaman görünmüyordu — bu,
   gerçek tarayıcıda çalıştırılıp fark edildi. */
#fallback{position:fixed;inset:0;z-index:35;display:flex;
  flex-direction:column;align-items:center;justify-content:center;text-align:center;
  gap:clamp(14px,2.2vh,22px);padding:0 clamp(24px,6vw,60px);
  background:var(--bg);font-family:var(--font)}
#fallback[hidden]{display:none}
.fb-mark{height:clamp(9px,1vw,12px);width:auto;margin-bottom:clamp(6px,1vh,10px)}
.fb-msg{font-size:clamp(17px,2.2vw,23px);font-weight:500;line-height:1.4;
  letter-spacing:-.005em;color:var(--ink);max-width:32ch}
.fb-sub{font-size:14px;line-height:1.6;color:var(--ink-dim);max-width:38ch}
/* Yedek ekrandaki is baglantilari. Gorunumleri kasitli olarak sonuk: bu ekran
   yalniz 3B calismadiginda aciliyor, amac tasarim degil ERISIM -- hem kullanici
   isleri gorebilsin hem de tarayici botu /is/* sayfalarini kesfedebilsin. */
.fb-isler{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;
  gap:10px 18px;margin-top:clamp(4px,1vh,8px)}
.fb-isler a{font-size:13px;letter-spacing:.02em;color:var(--ink-dim);text-decoration:none;
  border-bottom:1px solid rgba(11,11,12,.18);padding-bottom:2px;
  transition:color .25s ease,border-color .25s ease}
.fb-isler a:hover,.fb-isler a:focus-visible{color:var(--ink);border-color:var(--ink)}
.fb-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(8px,1.5vh,14px)}
.fb-cta a{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;border-radius:999px;padding:13px 22px;transition:opacity .25s ease}
.fb-cta a:first-child{color:var(--bg);background:var(--ink)}
.fb-cta a:first-child:hover{opacity:.85}
.fb-cta a:last-child{color:var(--ink);border:1px solid rgba(11,11,12,.22)}
.fb-cta a:last-child:hover{border-color:var(--ink)}

/* ===========================================================================
   ERİŞİM KATMANI
   Anlatı ve davet 3B sahnede geçer (assets/js/app.js — "İLERİ"); "İletişime
   geç" koridorun sonunda raycast ile tıklanan bir nesnedir. Bu katman görsel
   değildir: yardımcı teknolojiye tam metni verir, klavyeye de odaklanınca
   görünen gerçek bir bağlantı sunar (skip-link deseni).
   =========================================================================== */
.after-360{position:fixed;inset:0;z-index:40;pointer-events:none;font-family:var(--font)}

/* Yardımcı teknoloji için tam metin; ekranda yer kaplamaz, odak durağı üretmez. */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Klavye bağlantısı: görünmez durur, odaklanınca sol altta pill olarak belirir. */
.cta-access{position:absolute;left:var(--gutter);bottom:clamp(20px,3vh,30px);
  pointer-events:auto;padding:12px 20px;border-radius:999px;
  background:var(--ink);color:var(--bg);text-decoration:none;
  font-size:13px;font-weight:600;letter-spacing:.08em;
  opacity:0;transform:translateY(8px)}
.cta-access:focus-visible{opacity:1;transform:none;outline:2px solid var(--bg);outline-offset:-6px}


/* Kutunun gerçek girişi: görünmez ama ODAKLANABİLİR olmalı (display:none ya da
   visibility:hidden odağı ve mobil klavyeyi öldürür). Bir piksellik şeffaf alan
   olarak kutunun üstünde durur; görüneni 3B sahne çizer. */
.box-form{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:1px;height:1px;overflow:hidden;pointer-events:auto}
.box-form fieldset,.box-form legend,.box-form label,.box-form button,
.box-form p,.box-form input[name=website]{position:absolute;width:1px;height:1px;
  margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);
  white-space:nowrap;border:0}
.box-form input{width:100%;height:100%;opacity:0;border:0;padding:0;
  background:transparent;color:transparent;caret-color:transparent;font:inherit}
.box-form input:focus{outline:none}

body.after-revealing .ui,body.after-revealing .hint,body.after-revealing .gate-hint{
  opacity:0!important;transition:opacity .5s ease}
/* Sabit 360° sahnesi için yerel tarayıcı kaydırma mesafesi. */
.scroll-driver{height:1200vh;pointer-events:none}
