/*
Theme Name: VoiceTone Glass Pro
Description: Advanced glass bento theme for an Arabic & French voice-over and dubbing studio. 3D voice ring, audio-reactive visuals, EN/FR/AR language switch. Creates Home, Services, Portfolio and Contact pages on activation.
Version: 2.0
Requires at least: 5.5
Text Domain: voicetone
*/
:root{--accent:#8B5CFF;--pink:#FF4FA0;--lav:#C7B2FF;--bg:#0C0818;--text:#F2EEFF;--muted:#C9C0E6;--glass:rgba(255,255,255,.06);--edge:rgba(255,255,255,.13)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Urbanist','Cairo',sans-serif;font-weight:500;font-size:18px;line-height:1.5;overflow-x:hidden}
button,input,select,textarea{font:inherit}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.03em;line-height:1.08}
[lang=ar] body,[lang=ar] button,[lang=ar] input,[lang=ar] select,[lang=ar] textarea{font-family:'Cairo','Urbanist',sans-serif}
[lang=ar] *{letter-spacing:0!important}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px;position:relative}
.muted{color:var(--muted)}
.ltr{direction:ltr}
main,.ftr{position:relative;z-index:1}

/* ---------- background layers ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:90;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--accent),var(--pink))}
[dir=rtl] .progress{transform-origin:100% 50%}
#fx{position:fixed;inset:0;z-index:0;pointer-events:none}
.aur{position:fixed;border-radius:50%;pointer-events:none;z-index:0}
.aur.a{left:-120px;top:-80px;width:560px;height:560px;background:var(--accent);opacity:.45;filter:blur(120px);animation:aur 16s ease-in-out infinite}
.aur.b{right:-140px;bottom:-100px;width:560px;height:560px;background:var(--pink);opacity:.3;filter:blur(130px);animation:aur 20s ease-in-out infinite reverse}
@keyframes aur{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(80px,-50px) scale(1.2)}}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:60;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(12,8,24,.5);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
.hdr.scrolled{border-bottom-color:var(--edge);background:rgba(12,8,24,.8)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;padding-bottom:12px}
.brand{font-weight:800;font-size:22px;white-space:nowrap}.brand span{color:var(--lav)}
.navwrap{display:flex;align-items:center;gap:24px}
.nav{display:flex;gap:26px;list-style:none;margin:0;padding:0;font-weight:700}
.nav a{transition:color .2s}.nav a:hover,.nav .current-menu-item>a{color:var(--lav)}
.lang{display:flex;gap:2px;background:var(--glass);border:1px solid var(--edge);border-radius:999px;padding:3px}
.lang button{border:0;background:none;color:var(--muted);font-weight:800;font-size:13px;min-width:44px;min-height:34px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}
.lang button.on{background:#fff;color:#0C0818}
.burger{display:none;width:46px;height:46px;border-radius:14px;border:1px solid var(--edge);background:var(--glass);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger span{display:block;width:20px;height:2px;background:var(--text);border-radius:2px;transition:transform .25s,opacity .25s}
.hdr.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hdr.open .burger span:nth-child(2){opacity:0}
.hdr.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;padding:15px 30px;border-radius:999px;font-weight:800;font-size:17px;border:0;cursor:pointer;min-height:48px;transform:translate(var(--bx,0px),var(--by,0px));transition:transform .2s ease-out,background .3s;animation:pulse 2.6s ease-out infinite}
.btn:hover{transform:translate(var(--bx,0px),var(--by,0px)) scale(1.05)}
.btn.light{background:#fff;color:#0C0818;animation:none;padding:11px 24px;font-size:16px;min-height:44px}
.btn.ghost{background:none;border:1.5px solid var(--edge);animation:none;color:var(--text)}
.btn.ghost:hover{border-color:var(--lav)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(139,92,255,.55)}100%{box-shadow:0 0 0 22px rgba(139,92,255,0)}}
.pbtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;border:0;background:#fff;color:#0C0818;cursor:pointer;transition:transform .2s,background .3s,color .3s}
.pbtn:hover{transform:scale(1.1)}
.pbtn svg{width:22px;height:22px;fill:currentColor}
.pbtn .i-pause{display:none}
.pbtn.is-playing .i-play{display:none}.pbtn.is-playing .i-pause{display:inline}
.pbtn.is-playing{background:var(--accent);color:#fff;animation:pulse 1.6s ease-out infinite}
.pbtn.sm{width:44px;height:44px}.pbtn.sm svg{width:18px;height:18px}
.pbtn.lg{width:72px;height:72px}.pbtn.lg svg{width:28px;height:28px}
.pbtn.ghost{background:var(--glass);color:var(--text);border:1px solid var(--edge)}
:focus-visible{outline:2px solid var(--lav);outline-offset:3px}

/* ---------- glass tiles ---------- */
.t,.card{position:relative;overflow:hidden;background:var(--glass);border:1px solid var(--edge);border-radius:26px;padding:26px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0px));transition:transform .18s ease-out,box-shadow .3s,border-color .3s}
.t::before,.card::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(199,178,255,.16),transparent 55%)}
.t::after,.card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(199,178,255,.95),transparent 60%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.t:hover::before,.card:hover::before,.t:hover::after,.card:hover::after{opacity:1}
.t:hover,.card:hover{box-shadow:0 24px 60px rgba(0,0,0,.35),0 0 40px rgba(139,92,255,.16)}
.t small,.card .tag{display:block;color:#B2A8D6;font-weight:800;letter-spacing:.12em;font-size:12px;text-transform:uppercase;margin-bottom:8px}
.card h3{font-size:25px;margin-bottom:10px}.card p{margin:0;color:var(--muted)}

/* ---------- hero bento ---------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(200px,auto);gap:16px;padding:28px 0 0}
.t.hero{grid-column:1/3;grid-row:1/3;display:flex;flex-direction:column;min-height:440px}
.t.hero h1{font-size:clamp(40px,5.2vw,66px);margin-bottom:6px}
.grad{background:linear-gradient(100deg,#fff 5%,var(--lav) 45%,var(--pink) 95%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 9s linear infinite}
@keyframes shine{to{background-position:200% center}}
.rot-line{font-size:clamp(22px,2.6vw,30px);font-weight:800;color:var(--muted);margin-bottom:10px}
.rot{display:inline-block;color:var(--accent);filter:brightness(1.5);transition:opacity .35s,transform .35s}
.rot.out{opacity:0;transform:translateY(-12px)}
.t.hero .lead{color:var(--muted);max-width:440px;margin:0 0 20px}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.viz{width:100%;height:110px;margin-top:auto;display:block}
.t.stat .big{font-size:76px;font-weight:800;line-height:1}
.av{display:flex;margin:6px 0 14px}.av i{width:56px;height:56px;border-radius:50%;border:3px solid #1B1433;margin-inline-start:-14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-style:normal;color:#0C0818;transition:transform .25s}.av i:first-child{margin-inline-start:0}
.t.team:hover .av i{transform:translateY(-6px)}.t.team:hover .av i:nth-child(2){transition-delay:.05s}.t.team:hover .av i:nth-child(3){transition-delay:.1s}.t.team:hover .av i:nth-child(4){transition-delay:.15s}
.t.wide{grid-column:3/5}
.big-t{font-weight:800;font-size:25px;line-height:1.2}
.t.kids .note{position:absolute;bottom:14px;animation:nt 3s infinite;font-size:40px;opacity:0}
@keyframes nt{from{transform:translateY(30px);opacity:0}30%{opacity:1}to{transform:translateY(-90px);opacity:0}}

/* waveform bars (shared) */
.b{flex:1;height:100%;border-radius:3px;transform-origin:center;animation:eq var(--t) ease-in-out var(--d) infinite}
@keyframes eq{0%,100%{transform:scaleY(var(--lo,.2))}50%{transform:scaleY(1)}}

/* ---------- dubbing playground ---------- */
.pg{display:flex;flex-direction:column;gap:12px}
.pg-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.pg-top small{margin:0}
.pg-modes,.pg-chips{display:flex;gap:2px;background:rgba(0,0,0,.25);border:1px solid var(--edge);border-radius:999px;padding:3px}
.pg-modes button,.pg-chips button{border:0;background:none;color:var(--muted);font-weight:800;font-size:13px;padding:0 14px;min-height:34px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}
.pg-modes button.on,.pg-chips button.on{background:#fff;color:#0C0818}
.pg-wave{position:relative;display:flex;align-items:center;gap:3px;height:62px}
.pg-wave .b{background:#4F4770;transition:background .5s}
.pg.dub .pg-wave .b{background:var(--accent)}
.pg-wave .b:nth-child(3n){animation-duration:1.5s}
.pg-wave .ph{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff;box-shadow:0 0 10px #fff;animation:ph 4.5s linear infinite}
@keyframes ph{from{left:0}to{left:100%}}
.pg-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto}
.pg-cap{font-weight:800;font-size:22px;line-height:1.25;min-height:28px}
.pg:not(.dub) .pg-cap{color:var(--muted)}

/* ---------- now playing tile ---------- */
.np{display:flex;align-items:center;gap:20px}
.np .meta{flex:1;min-width:0}.np .nm{font-weight:800;font-size:25px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.np .sub{color:var(--muted);font-size:15px;margin-bottom:10px}
.viz-np{flex:none;width:130px;height:84px;display:block}
.pbar{position:relative;height:6px;background:rgba(255,255,255,.14);border-radius:6px;cursor:pointer;overflow:hidden}
.pbar::before{content:"";position:absolute;inset:-12px 0}
.pbar i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--accent),var(--pink));border-radius:6px}
[dir=rtl] .pbar i{transform-origin:100% 50%}

/* ---------- ticker ---------- */
.ticker{margin-top:56px;border-block:1px solid var(--edge);overflow:hidden;padding:14px 0;white-space:nowrap;position:relative;z-index:1;direction:ltr}
.tk{display:inline-block;animation:slide 34s linear infinite}
.tk b{font-size:26px;font-weight:800;color:#6A6190}
.tk s{text-decoration:none;margin:0 26px;color:var(--pink);font-size:12px}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.block{padding:96px 0 0}
.block h2{font-size:clamp(32px,5vw,52px);margin-bottom:12px}
.sub{color:var(--muted);max-width:580px;margin:0 0 40px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.chip{border:1px solid var(--edge);background:var(--glass);padding:10px 20px;border-radius:999px;font-weight:700;transition:border-color .3s,color .3s,transform .3s}
.chip:hover{border-color:var(--lav);color:var(--lav);transform:translateY(-3px)}
.mini-h{font-size:24px;margin:56px 0 18px}

/* ---------- 3D voice ring ---------- */
.ring3d{position:relative;height:540px;perspective:1600px;perspective-origin:50% 22%;touch-action:pan-y;cursor:grab;overflow:hidden;border-radius:32px;margin-top:32px;outline-offset:-3px}
.ring3d.grab{cursor:grabbing}
.ring-glow{position:absolute;left:50%;bottom:-70px;width:min(900px,90%);height:240px;margin-left:calc(min(900px,90%)/-2);border-radius:50%;background:var(--accent);opacity:.3;filter:blur(90px);pointer-events:none}
.ring-floor{position:absolute;left:0;right:0;bottom:0;height:300px;perspective:520px;perspective-origin:50% 0;pointer-events:none}
.ring-floor .plane{position:absolute;left:-40%;right:-40%;top:0;height:900px;transform-origin:50% 0;transform:rotateX(74deg);background-image:linear-gradient(rgba(139,92,255,.5) 2px,transparent 2px),linear-gradient(90deg,rgba(139,92,255,.5) 2px,transparent 2px);background-size:80px 80px;animation:floor 2.6s linear infinite;-webkit-mask-image:linear-gradient(#000 0%,transparent 70%);mask-image:linear-gradient(#000 0%,transparent 70%)}
@keyframes floor{to{background-position:0 80px}}
.ring3d .stage{position:absolute;left:50%;top:46%;width:0;height:0;transform-style:preserve-3d;transform:rotateX(-8deg) scale(var(--sc,1))}
.ring3d .spin{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d}
.rcard{position:absolute;left:-120px;top:-155px;width:240px;height:310px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.rc{position:relative;width:100%;height:100%;display:flex;flex-direction:column;padding:24px;border-radius:26px;background:linear-gradient(160deg,rgba(32,24,66,.92),rgba(14,10,36,.94));border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 50px rgba(0,0,0,.45);transform:scale(calc(.9 + var(--f,0)*.1));filter:brightness(calc(.55 + var(--f,0)*.45));transition:border-color .3s,box-shadow .3s;overflow:hidden}
.rcard.playing .rc{border-color:var(--tc);box-shadow:0 30px 50px rgba(0,0,0,.45),0 0 44px color-mix(in srgb,var(--tc) 55%,transparent)}
.rc::before{content:"";position:absolute;top:0;bottom:0;width:90px;background:rgba(255,255,255,.1);animation:sh 7s ease-in-out infinite;pointer-events:none}
@keyframes sh{0%,60%{transform:translateX(-300px) skewX(-20deg)}100%{transform:translateX(420px) skewX(-20deg)}}
.avb{width:76px;height:76px;border-radius:50%;background:var(--tc);color:#0B0820;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:32px;box-shadow:0 0 30px color-mix(in srgb,var(--tc) 70%,transparent)}
.rn{margin-top:18px;font-weight:800;font-size:25px;line-height:1.15}
.rl{color:#A99FCB;font-size:15px}
.rc .mini{margin-top:auto}
.rc .pbtn{align-self:flex-start}
.ring-hint{text-align:center;color:var(--muted);font-size:15px;margin:14px 0 0}
.mini{display:flex;align-items:center;gap:3px;height:36px;margin:4px 0 14px}
.mini i{flex:1;height:100%;background:rgba(255,255,255,.22);border-radius:2px;transform:scaleY(.25)}
.playing .mini i{background:var(--tc,var(--pink));animation:eq .7s ease-in-out infinite alternate;--lo:.25}
.playing .mini i:nth-child(2n){animation-duration:.5s}.playing .mini i:nth-child(3n){animation-duration:.9s}

/* ---------- playlist rows ---------- */
.plist{display:grid;gap:12px}
.prow{position:relative;display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:22px;background:var(--glass);border:1px solid var(--edge);transition:border-color .3s,background .3s}
.prow:hover{background:rgba(255,255,255,.09)}
.prow.current{border-color:color-mix(in srgb,var(--tc) 70%,transparent)}
.avs{flex:none;width:44px;height:44px;border-radius:50%;background:var(--tc);color:#0B0820;display:flex;align-items:center;justify-content:center;font-weight:800}
.pm{flex:none;min-width:150px}.pn{font-weight:800;font-size:19px;line-height:1.2}.pl{color:#A99FCB;font-size:14px}
.prow .pbar{flex:1}
.ptime{flex:none;width:92px;text-align:end;font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px;direction:ltr}
.perr{display:none;position:absolute;inset-inline:18px;bottom:-2px;color:#FF9AB8;font-size:13px}
.prow.error{margin-bottom:14px}.prow.error .perr{display:block}

/* ---------- process timeline ---------- */
.tlwrap{position:relative;margin-top:44px}
.tline{position:absolute;left:0;right:0;top:-24px;height:4px;background:rgba(255,255,255,.12);border-radius:4px}
.tline i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(var(--tp,0));background:linear-gradient(90deg,var(--accent),var(--pink));border-radius:4px;box-shadow:0 0 18px var(--accent)}
[dir=rtl] .tline i{transform-origin:100% 50%}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.step .n{font-size:52px;font-weight:800;color:#6B5FA0;line-height:1.1;transition:color .5s,transform .3s,text-shadow .5s}
.step.on .n{color:var(--lav);text-shadow:0 0 28px var(--accent)}
.step:hover .n{transform:scale(1.1) translateX(6px)}
.step b{display:block;margin-bottom:6px}.step span{color:var(--muted)}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:12px;max-width:820px;margin-top:32px}
.faq details{background:var(--glass);border:1px solid var(--edge);border-radius:20px;padding:0 24px;transition:border-color .3s,background .3s}
.faq details[open]{border-color:rgba(199,178,255,.55);background:rgba(255,255,255,.08)}
.faq summary{cursor:pointer;list-style:none;font-weight:800;font-size:19px;padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:28px;line-height:1;color:var(--lav);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0;padding:0 0 22px;color:var(--muted);animation:fade .4s ease}
@keyframes fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- CTA, pages, forms ---------- */
.cta{background:linear-gradient(120deg,var(--accent),var(--pink));border-radius:32px;padding:56px;display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between;box-shadow:0 30px 80px rgba(139,92,255,.35)}
.cta h2{margin:0 0 10px}.cta p{margin:0;font-size:18px}
.cta .btn{background:#fff;color:#0C0818;animation:none}
.page-head{padding-top:72px}.page-head h1{font-size:clamp(40px,7vw,76px);padding-bottom:.1em}
.page-head p{color:var(--muted);font-size:20px;max-width:580px}
.reel{width:100%;border-radius:24px;border:1px solid var(--edge);margin-top:16px}
.form{display:grid;gap:16px;max-width:640px}
.form label{font-weight:800;font-size:15px;display:block;margin-bottom:6px}
.form input,.form select,.form textarea{width:100%;background:var(--glass);color:var(--text);border:1px solid var(--edge);border-radius:16px;padding:14px 16px}
.form select option{color:#000}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.hp{position:absolute;left:-9999px}
.notice{background:var(--glass);border:1px solid var(--accent);border-radius:16px;padding:16px 20px;margin-bottom:20px}
.ftr{padding:88px 0 130px;color:#9A91BC;font-size:15px}
.content{padding:48px 0 0;max-width:760px}

/* ---------- mini player + whatsapp ---------- */
.mp{position:fixed;left:50%;bottom:20px;z-index:70;width:min(640px,calc(100% - 110px));margin-left:calc(min(640px,100% - 110px)/-2);display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:24px;background:rgba(18,12,40,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--edge);box-shadow:0 20px 60px rgba(0,0,0,.55);transform:translateY(160%);opacity:0;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .4s;pointer-events:none;direction:ltr}
.mp.show{transform:none;opacity:1;pointer-events:auto}
.mp-viz{flex:none;width:64px;height:40px}
.mp-meta{flex:1;min-width:0}.mp-t{font-weight:800;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-s{color:#A99FCB;font-size:13px;white-space:nowrap}
.mp-bar{position:absolute;left:18px;right:18px;bottom:4px;height:3px;background:rgba(255,255,255,.12);border-radius:3px;cursor:pointer;overflow:hidden}
.mp-bar i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--accent),var(--pink))}
.wa-float{position:fixed;right:20px;bottom:24px;z-index:70;background:#25D366;color:#0B3D1E;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.wa-float::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:ping 2s ease-out infinite}
@keyframes ping{to{transform:scale(1.7);opacity:0}}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.bento>.reveal:nth-child(2),.grid>.reveal:nth-child(2){transition-delay:.08s}.bento>.reveal:nth-child(3),.grid>.reveal:nth-child(3){transition-delay:.16s}.bento>.reveal:nth-child(4),.grid>.reveal:nth-child(4){transition-delay:.24s}.bento>.reveal:nth-child(5){transition-delay:.32s}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .t.hero{grid-column:1/3;grid-row:auto}
  .t.wide{grid-column:1/3}
  .tline{display:none}
}
@media (max-width:860px){
  .burger{display:flex}
  .navwrap{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:16px;padding:20px 24px 24px;background:rgba(12,8,24,.97);border-bottom:1px solid var(--edge)}
  .hdr.open .navwrap{display:flex}
  .nav{flex-direction:column;gap:6px}.nav a{display:block;padding:10px 0;font-size:19px}
  .lang{align-self:flex-start}
}
@media (max-width:640px){
  .wrap{padding:0 20px}
  .bento{grid-template-columns:1fr}
  .t.hero,.t.wide{grid-column:1}
  .np{flex-wrap:wrap}.viz-np{width:100%}
  .pm{min-width:0;flex:1}.prow .pbar,.ptime{display:none}
  .ring3d{height:470px}
  .cta{padding:32px}
  .block{padding-top:72px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
