/* zenraf.com — dark cinematic, silver accents, mobile first. */
@import url("fonts/fonts.css");
:root{--bg:#060608;--panel:#0e0f13;--line:#1c1e24;--text:#e9ebef;--muted:#9aa0ac;--soft:#c3c7cf}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:Montserrat,system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.k{font-size:12px;letter-spacing:.45em;color:var(--muted);text-transform:uppercase;margin-bottom:14px}
h1,h2{font-family:Cinzel,serif;font-weight:600;letter-spacing:.12em;line-height:1.15}
h2{font-size:clamp(28px,4vw,46px)}
.big{font-family:'Bebas Neue',sans-serif;font-size:clamp(40px,6vw,64px);letter-spacing:.06em;line-height:1;margin-top:22px;background:linear-gradient(90deg,#fff,#9aa0ac 50%,#fff);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 6s linear infinite}
p{color:var(--soft);font-size:16px;line-height:1.8}
.wrap{max-width:1320px;margin:0 auto;padding:0 60px}
section{padding:110px 0;position:relative}
.btn{display:inline-block;border:1px solid var(--text);padding:14px 28px;font-size:12px;letter-spacing:.25em;font-weight:700;cursor:pointer;background:none;color:var(--text);font-family:inherit;transition:background .25s,color .25s,box-shadow .25s,transform .25s}
.btn.s{background:var(--text);color:#000}
.btn:hover{box-shadow:0 0 24px rgba(233,235,239,.35);transform:translateY(-1px)}
.btn.s:hover{background:#fff}

/* film grain over everything (very light) */
body:after{content:"";position:fixed;inset:-50%;z-index:100;pointer-events:none;opacity:.05;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='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' 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(-2%,-2%)}}
@keyframes sheen{to{background-position:-200% 0}}

/* header */
.nav{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:22px 60px;background:linear-gradient(rgba(0,0,0,.85),transparent)}
.nav.solid{position:relative;background:var(--bg);border-bottom:1px solid var(--line)}
.nav .logo{display:flex;align-items:center;gap:12px}.nav .logo img{height:50px;width:50px}.nav .logo span{display:flex;flex-direction:column;line-height:1}.nav .logo b{font-size:22px;font-weight:800;letter-spacing:.32em;background:linear-gradient(#fff,#b9bdc6);-webkit-background-clip:text;background-clip:text;color:transparent}.nav .logo small{font-size:9px;letter-spacing:.62em;color:#9aa0ac;margin-top:5px}
.nav .m{display:flex;gap:34px;align-items:center;font-size:13px;letter-spacing:.25em;font-weight:600}
.nav .m>a{position:relative}
.nav .m>a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:#fff;transition:right .3s}
.nav .m>a:hover:after,.nav .m>a.on:after{right:0}
.burger{display:none;background:none;border:0;color:#fff;font-size:30px;cursor:pointer}
.soc{display:flex;gap:14px;align-items:center}
.soc a{width:38px;height:38px;border:1px solid #3a3e48;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .25s,box-shadow .25s}
.soc a:hover{border-color:#e9ebef;box-shadow:0 0 16px rgba(233,235,239,.3)}
.soc svg{width:19px;height:19px}

/* hero: slow push-in on the landscape, drifting fog, logo glow */
.hero{min-height:100vh;min-height:100svh;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:130px 20px 90px}
.hero:before{content:"";position:absolute;inset:-4%;background:url(img/hero.jpg) center/cover;animation:push 28s ease-in-out infinite alternate;z-index:0}
.hero .fog{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(60% 40% at 20% 85%,rgba(200,210,230,.16),transparent 70%),radial-gradient(50% 35% at 80% 90%,rgba(200,210,230,.12),transparent 70%);animation:fog 18s ease-in-out infinite alternate}
.hero:after{content:"";position:absolute;inset:auto 0 0;height:240px;background:linear-gradient(transparent,var(--bg));z-index:1}
.hero>*:not(.fog):not(.arrow){position:relative;z-index:2}
.hero .logo-big{height:min(330px,36vh);filter:drop-shadow(0 0 30px rgba(220,226,240,.18));animation:rise 1.6s cubic-bezier(.2,.7,.2,1) both,glow 5s 1.6s ease-in-out infinite alternate}
.tag{font-size:14px;letter-spacing:.5em;color:#cfd2d9;margin-top:26px;animation:rise 1.6s .4s cubic-bezier(.2,.7,.2,1) both}
.hero .cta{animation:rise 1.6s .8s cubic-bezier(.2,.7,.2,1) both}
.hero .cta .k{margin:30px 0 0;color:#cfd2d9;letter-spacing:.35em}
@keyframes push{from{transform:scale(1)}to{transform:scale(1.08) translateY(-1%)}}
@keyframes fog{from{transform:translateX(-3%)}to{transform:translateX(3%)}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes glow{to{filter:drop-shadow(0 0 46px rgba(220,226,240,.32))}}
.arrow{position:absolute;bottom:30px;left:50%;margin-left:-11px;z-index:3;width:22px;height:22px;border-right:2px solid #b9bdc6;border-bottom:2px solid #b9bdc6;transform:rotate(45deg);animation:bob 1.8s infinite}
@keyframes bob{50%{bottom:20px;opacity:.5}}

/* signup */
.sign{display:flex;gap:10px;margin-top:16px;justify-content:center;flex-wrap:wrap}
.sign input{width:340px;max-width:100%;padding:15px 18px;background:rgba(0,0,0,.6);border:1px solid #555a66;color:#fff;font:14px Montserrat,sans-serif;transition:border-color .25s}
.sign input:focus{outline:none;border-color:#e9ebef}
.msg{min-height:22px;margin-top:12px;font-size:13px;color:#cfd2d9}
.hp{position:absolute;left:-9999px}
.band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(255,255,255,.02),rgba(255,255,255,.05),rgba(255,255,255,.02));padding:46px 0}
.band .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.band h3{font-family:Cinzel,serif;font-weight:600;font-size:clamp(22px,2.6vw,30px);letter-spacing:.1em}
.band .sign{margin-top:0}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}

/* rotway block */
.story{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}
.key{aspect-ratio:1/1;max-height:540px;background:#000 center/cover;position:relative;border:1px solid var(--line);overflow:hidden}
.key:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse,transparent 30%,rgba(0,0,0,.9));animation:breathe 6s ease-in-out infinite}
.key span{position:absolute;left:28px;bottom:24px;z-index:2;font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:.12em}
@keyframes breathe{50%{opacity:.75}}

/* infected */
.files{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:40px}
.card{aspect-ratio:3/4;position:relative;overflow:hidden;background:#0d0d10;border:1px solid var(--line);transition:border-color .4s,box-shadow .4s}
.card .ph{position:absolute;inset:0;background:center/220% no-repeat;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s;filter:brightness(.85)}
.card:before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse,transparent 30%,rgba(0,0,0,.9))}
.card:hover{border-color:#3a3e48;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.card:hover .ph{transform:scale(1.08);filter:brightness(1.05)}
.card .t{position:absolute;left:18px;bottom:18px;right:18px;z-index:2}
.card .n{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:.08em;line-height:1.1}
.card .d{font-size:12px;color:var(--muted);margin-top:4px}

/* features */
.feat{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:40px}
.f{border-top:1px solid #33363f;padding-top:22px;position:relative}
.f:before{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:#e9ebef;transition:width 1.4s .3s}
.f.in:before{width:60px}
.f b{font-family:'Bebas Neue',sans-serif;font-size:52px;font-weight:400;display:block}
.f span{font-size:13px;color:var(--muted)}

/* founder */
.fnd-in{display:grid;grid-template-columns:440px 1fr;gap:80px;align-items:center}
.fnd-photo{position:relative;aspect-ratio:4/5;overflow:hidden}
.fnd-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;filter:contrast(1.05) saturate(.95)}
.fnd-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 62%,var(--bg)),linear-gradient(90deg,transparent 80%,rgba(6,6,8,.5))}
.studio-line{display:flex;align-items:center;gap:14px;margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.studio-line img{width:46px}.studio-line span{font-size:13px;color:var(--muted)}
.fname{font-weight:200;font-size:clamp(38px,5vw,64px);letter-spacing:.3em;line-height:1.1;background:linear-gradient(#fff,#a9adb6 60%,#eceef2);-webkit-background-clip:text;background-clip:text;color:transparent}
.ftitle{font-size:12px;letter-spacing:.3em;color:var(--muted);margin-top:16px;text-transform:uppercase}
blockquote{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:clamp(21px,2.2vw,28px);line-height:1.5;color:#e2e4e9;margin-top:30px;border-left:1px solid #3a3e48;padding-left:26px}
.voice{margin-top:28px;display:inline-flex;align-items:center;gap:14px;border:1px solid #3a3e48;border-radius:40px;padding:8px 22px 8px 8px;cursor:pointer;background:none;color:var(--text);font:600 12px Montserrat,sans-serif;letter-spacing:.22em;transition:border-color .25s,box-shadow .25s}
.voice:hover{border-color:#e9ebef;box-shadow:0 0 22px rgba(233,235,239,.2)}
.voice .pl{width:42px;height:42px;border-radius:50%;background:#e9ebef;display:flex;align-items:center;justify-content:center;color:#000;font-size:15px}
.voice .wave{display:flex;gap:3px;align-items:center;height:22px}
.voice .wave i{display:block;width:3px;height:6px;background:#9aa0ac;border-radius:2px}
.voice.playing .wave i{animation:eq .9s ease-in-out infinite}
.voice .wave i:nth-child(2){animation-delay:.1s}.voice .wave i:nth-child(3){animation-delay:.3s}.voice .wave i:nth-child(4){animation-delay:.15s}.voice .wave i:nth-child(5){animation-delay:.4s}.voice .wave i:nth-child(6){animation-delay:.2s}.voice .wave i:nth-child(7){animation-delay:.35s}
@keyframes eq{50%{height:22px;background:#e9ebef}}

/* end + footer */
.end{text-align:center;background:linear-gradient(rgba(6,6,8,.35),rgba(6,6,8,.75)),url(img/storm.jpg) center/cover;padding:130px 20px}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 60px;font-size:11px;letter-spacing:.2em;color:#7c8290;border-top:1px solid var(--line);flex-wrap:wrap}
footer a:hover{color:#fff}

/* inner pages */
.banner{height:440px;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end;padding:50px 60px;position:relative;overflow:hidden}
.banner:before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,var(--bg))}
.banner>*{position:relative;animation:rise 1.4s cubic-bezier(.2,.7,.2,1) both}
.banner h1{font-size:clamp(34px,5vw,56px)}
.chip{display:inline-block;border:1px solid #3a3e48;padding:6px 12px;font-size:11px;letter-spacing:.2em;margin:16px 8px 0 0;color:#b9bdc6}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.box{background:var(--panel);border:1px solid var(--line);padding:26px;transition:border-color .3s,transform .3s}
.box:hover{border-color:#3a3e48;transform:translateY(-3px)}
.box b{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:.06em;font-weight:400}
.legal h2{font-size:24px;margin:34px 0 10px}
.legal p,.legal li{font-size:15px;color:var(--soft)}
.legal ul{padding-left:20px}
details{border-bottom:1px solid var(--line);padding:20px 0}
summary{cursor:pointer;font-size:16px;list-style:none;display:flex;justify-content:space-between}
summary::-webkit-details-marker{display:none}
summary:after{content:"+"}details[open] summary:after{content:"–"}
details p{margin-top:12px}

.sticky{display:none}

@media (max-width:760px){
  .wrap{padding:0 20px} section{padding:64px 0}
  .nav{padding:14px 18px}.nav .logo img{height:42px;width:42px}.nav .logo b{font-size:19px}.nav .m{display:none}.burger{display:block}
  .nav.open .m{display:flex;position:fixed;inset:0;background:rgba(6,6,8,.97);flex-direction:column;justify-content:center;gap:30px;font-size:16px;z-index:30}
  .nav.open .burger{position:fixed;top:14px;right:18px;z-index:31}
  .k{letter-spacing:.28em}
  .tag{font-size:10.5px;letter-spacing:.2em;padding:0 10px}.hero .cta{width:100%}.hero .cta .k{letter-spacing:.2em;font-size:11px}.hero .logo-big{height:min(260px,32vh)}
  .sign{flex-direction:column;align-items:stretch;width:100%;max-width:400px;margin-left:auto;margin-right:auto}
  .sign input{width:100%}
  .band{padding:36px 0}.band .wrap{flex-direction:column;text-align:center}
  .story,.fnd-in{grid-template-columns:1fr;gap:30px}
  .files,.feat{grid-template-columns:1fr 1fr;gap:12px}
  .card .n{font-size:19px}
  .fname{font-size:31px;letter-spacing:.18em}
  .g3{grid-template-columns:1fr}
  .banner{height:300px;padding:30px 20px}
  footer{flex-direction:column;text-align:center;padding:26px 20px 90px}
  .sticky{display:flex;position:fixed;left:10px;right:10px;bottom:10px;z-index:25;justify-content:space-between;align-items:center;gap:10px;padding:10px 10px 10px 16px;background:rgba(14,15,19,.94);border:1px solid #2a2d36;border-radius:12px;font-size:12px;letter-spacing:.04em;transform:translateY(140%);transition:transform .35s}
  .sticky.show{transform:none}
  .sticky .btn{padding:11px 16px;font-size:11px}
}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
