From e3ea6a5ac41ed2b48fd06f95c6bfb267ce05ff6d Mon Sep 17 00:00:00 2001 From: Selim Date: Thu, 27 Aug 2026 11:59:31 +0300 Subject: [PATCH 1/3] feat: brand Pages site and add EN/TR language switcher --- docs/index.html | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/docs/index.html b/docs/index.html index bc14863..50e63b6 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,8 +3,9 @@ - - + + + CodeSnip — Next-Gen Code & Prompt Manager @@ -12,13 +13,32 @@ - -
-
NEXT-GENERATION CODE & PROMPT MANAGER

Your code.
Organized.

A modern, fast and completely offline desktop app for code snippets, terminal commands and AI prompts.

ElectronMIT LicenseOffline-first
CodeSnip
My snippets
JavaScriptfetchData()async function fetchData() { ... }
PowerShellBuild projectnpm run dist
PromptCode reviewerReview this code for bugs...
-
BUILT FOR PEOPLE WHO BUILD
DevelopersAI UsersDesignersPower Users
-
FEATURES

Everything you need.
Nothing you don't.

CodeSnip keeps your frequently used code and prompts close, searchable and available even without an internet connection.

Spotlight Search

Find snippets instantly with global Spotlight search. Use Ctrl + Shift + S from anywhere.

Liquid Glass UI

A clean, modern interface designed around fast navigation and a focused workspace.

Share with Base64

Create compact Base64-based sharing links for snippets without sending your data to a server.

Offline by Design

Your snippets stay local. CodeSnip works without requiring an internet connection.

TR / EN

Switch between Turkish and English and keep the workspace comfortable for your workflow.

Categories

Organize snippets into categories and filter your collection quickly as it grows.

-
THE WORKSPACE

Made to stay out of your way.

CodeSnip application interface
CodeSnip screenshot
CodeSnip screenshot
-
ROADMAP

Built in releases.
Always moving forward.

v1.0

Initial Release

CodeSnip starts its journey.

26Q2

Spotlight & Liquid Glass

Spotlight search, sharing and redesigned UI.

26Q2.5

JSON & Improved Spotlight

Import/export improvements and updated version naming.

26Q3.1

Critical Hotfixes

Stability improvements for the current release line.

27Q1

Plugin System

Plugins and code preview are planned for the future.

-
READY?

Keep your best code one shortcut away.

Download CodeSnip or explore the source on GitHub.

-
- \ No newline at end of file + +
+
NEXT-GENERATION CODE & PROMPT MANAGER

Your code.
Organized.

A modern, fast and completely offline desktop app for code snippets, terminal commands and AI prompts.

ElectronMIT LicenseOffline-first
+
CodeSnip
My snippets
JavaScriptfetchData()async function fetchData() { ... }
PowerShellBuild projectnpm run dist
PromptCode reviewerReview this code for bugs...
+
BUILT FOR PEOPLE WHO BUILD
DevelopersAI UsersDesignersPower Users
+
FEATURES

Everything you need.
Nothing you don't.

CodeSnip keeps your frequently used code and prompts close, searchable and available even without an internet connection.

+

Spotlight Search

Find snippets instantly with global Spotlight search. Use Ctrl + Shift + S from anywhere.

+

Liquid Glass UI

A clean, modern interface designed around fast navigation and a focused workspace.

+

Share with Base64

Create compact Base64-based sharing links for snippets without sending your data to a server.

+

Offline by Design

Your snippets stay local. CodeSnip works without requiring an internet connection.

+

TR / EN

Switch between Turkish and English and keep the workspace comfortable for your workflow.

+

Categories

Organize snippets into categories and filter your collection quickly as it grows.

+
+
THE WORKSPACE

Made to stay out of your way.

CodeSnip application interface
CodeSnip screenshot
CodeSnip screenshot
+
ROADMAP

Built in releases.
Always moving forward.

+
v1.0

Initial Release

CodeSnip starts its journey.

+
26Q2

Spotlight & Liquid Glass

Spotlight search, sharing and redesigned UI.

+
26Q2.5

JSON & Improved Spotlight

Import/export improvements and updated version naming.

+
26Q3.1

Critical Hotfixes

Stability improvements for the current release line.

+ +
27Q1

Plugin System

Plugins and code preview are planned for the future.

+
+
READY?

Keep your best code one shortcut away.

Download CodeSnip or explore the source on GitHub.

+
+ From ac9865875de2df65e80225210b724889ce360e32 Mon Sep 17 00:00:00 2001 From: Selim Date: Thu, 27 Aug 2026 11:59:41 +0300 Subject: [PATCH 2/3] feat: add EN/TR translations and language persistence --- docs/script.js | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/docs/script.js b/docs/script.js index 67ef5ae..823e592 100644 --- a/docs/script.js +++ b/docs/script.js @@ -1 +1,35 @@ -const menu=document.getElementById('menu');const navLinks=document.querySelector('.nav-links');menu?.addEventListener('click',()=>{const open=navLinks.style.display==='flex';navLinks.style.display=open?'':'flex';if(!open){navLinks.style.position='absolute';navLinks.style.top='62px';navLinks.style.left='14px';navLinks.style.right='14px';navLinks.style.padding='18px';navLinks.style.flexDirection='column';navLinks.style.background='rgba(10,12,18,.96)';navLinks.style.border='1px solid rgba(255,255,255,.1)';navLinks.style.borderRadius='14px';navLinks.style.backdropFilter='blur(18px)'}});const reveal=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting){entry.target.style.opacity='1';entry.target.style.transform='translateY(0)';reveal.unobserve(entry.target)}})},{threshold:.08});document.querySelectorAll('.feature,.shot,.release,.cta').forEach(el=>{el.style.opacity='0';el.style.transform='translateY(16px)';el.style.transition='opacity .55s ease,transform .55s ease';reveal.observe(el)}); \ No newline at end of file +const menu = document.getElementById('menu'); +const navLinks = document.querySelector('.nav-links'); +menu?.addEventListener('click', () => { + navLinks.classList.toggle('mobile-open'); +}); + +const translations = { + en: { + features:'Features', screenshots:'Screenshots', roadmap:'Roadmap', github:'GitHub', eyebrow:'NEXT-GENERATION CODE & PROMPT MANAGER', heroTitle:'Your code.
Organized.', heroText:'A modern, fast and completely offline desktop app for code snippets, terminal commands and AI prompts.', download:'Download CodeSnip ↗', source:'View source', offline:'Offline-first', builtFor:'BUILT FOR PEOPLE WHO BUILD', featureEyebrow:'FEATURES', featureTitle:"Everything you need.
Nothing you don't.", featureIntro:'CodeSnip keeps your frequently used code and prompts close, searchable and available even without an internet connection.', f1t:'Spotlight Search', f1p:'Find snippets instantly with global Spotlight search. Use Ctrl + Shift + S from anywhere.', f2t:'Liquid Glass UI', f2p:'A clean, modern interface designed around fast navigation and a focused workspace.', f3t:'Share with Base64', f3p:'Create compact Base64-based sharing links for snippets without sending your data to a server.', f4t:'Offline by Design', f4p:'Your snippets stay local. CodeSnip works without requiring an internet connection.', f5t:'TR / EN', f5p:'Switch between Turkish and English and keep the workspace comfortable for your workflow.', f6t:'Categories', f6p:'Organize snippets into categories and filter your collection quickly as it grows.', workspace:'THE WORKSPACE', workspaceTitle:'Made to stay out of your way.', roadmapEyebrow:'ROADMAP', roadmapTitle:'Built in releases.
Always moving forward.', r1t:'Initial Release', r1p:'CodeSnip starts its journey.', r2p:'Spotlight search, sharing and redesigned UI.', r3p:'Import/export improvements and updated version naming.', r4p:'Stability improvements for the current release line.', r5t:'Next up', r5p:'Important hotfixes, Spanish language support and light-theme improvements.', r6p:'Plugins and code preview are planned for the future.', ready:'READY?', ctaTitle:'Keep your best code one shortcut away.', ctaText:'Download CodeSnip or explore the source on GitHub.', get:'Get CodeSnip ↗', tagline:'Next-Gen Code & Prompt Manager' + }, + tr: { + features:'Özellikler', screenshots:'Ekran Görüntüleri', roadmap:'Yol Haritası', github:'GitHub', eyebrow:'YENİ NESİL KOD VE PROMPT YÖNETİCİSİ', heroTitle:'Kodların.
Düzenli.', heroText:'Kod parçacıkları, terminal komutları ve yapay zekâ promptları için modern, hızlı ve tamamen çevrimdışı masaüstü uygulaması.', download:"CodeSnip'i İndir ↗", source:'Kaynak kodu', offline:'Çevrimdışı', builtFor:'ÜRETEN İNSANLAR İÇİN', featureEyebrow:'ÖZELLİKLER', featureTitle:'İhtiyacın olan her şey.
Gereksiz hiçbir şey yok.', featureIntro:'CodeSnip, sık kullandığın kodları ve promptları internet bağlantısı olmadan erişilebilir, aranabilir ve düzenli tutar.', f1t:'Spotlight Arama', f1p:'Global Spotlight aramasıyla kodlarını anında bul. Her yerden Ctrl + Shift + S kullan.', f2t:'Liquid Glass Arayüz', f2p:'Hızlı gezinme ve odaklanmış çalışma alanı için tasarlanmış temiz ve modern arayüz.', f3t:'Base64 ile Paylaş', f3p:'Verilerini bir sunucuya göndermeden kod parçacıkları için kompakt Base64 paylaşım bağlantıları oluştur.', f4t:'Çevrimdışı Tasarım', f4p:'Kodların yerel olarak kalır. CodeSnip internet bağlantısı gerektirmeden çalışır.', f5t:'TR / EN', f5p:'Çalışma alanını Türkçe veya İngilizce kullan.', f6t:'Kategoriler', f6p:'Kod parçacıklarını kategorilere ayır ve koleksiyonun büyüdükçe hızlıca filtrele.', workspace:'ÇALIŞMA ALANI', workspaceTitle:'İşinin önüne geçmemek için tasarlandı.', roadmapEyebrow:'YOL HARİTASI', roadmapTitle:'Sürümlerle gelişiyor.
İleriye doğru ilerliyor.', r1t:'İlk Sürüm', r1p:'CodeSnip yolculuğuna başladı.', r2p:'Spotlight arama, paylaşım ve yenilenen arayüz.', r3p:'İçe/dışa aktarma geliştirmeleri ve yeni sürüm adlandırması.', r4p:'Mevcut sürüm için kararlılık geliştirmeleri.', r5t:'Sırada', r5p:'Önemli düzeltmeler, İspanyolca dil desteği ve açık tema geliştirmeleri.', r6p:'Eklenti sistemi ve kod önizleme gelecekte planlanıyor.', ready:'HAZIR MISIN?', ctaTitle:'En iyi kodların tek bir kısayol uzağında.', ctaText:"CodeSnip'i indir veya kaynak kodunu GitHub'da incele.", get:"CodeSnip'i Al ↗", tagline:'Yeni Nesil Kod ve Prompt Yöneticisi' + } +}; + +function setLanguage(lang) { + document.documentElement.lang = lang; + document.querySelectorAll('[data-i18n]').forEach(el => { + const key = el.dataset.i18n; + if (translations[lang][key]) el.innerHTML = translations[lang][key]; + }); + document.querySelectorAll('.lang').forEach(btn => btn.classList.toggle('active', btn.id === `lang-${lang}`)); + localStorage.setItem('codesnip-lang', lang); +} + +document.getElementById('lang-en')?.addEventListener('click', () => setLanguage('en')); +document.getElementById('lang-tr')?.addEventListener('click', () => setLanguage('tr')); +const saved = localStorage.getItem('codesnip-lang'); +const browser = navigator.language?.toLowerCase().startsWith('tr') ? 'tr' : 'en'; +setLanguage(saved || browser); + +const reveal = new IntersectionObserver(entries => entries.forEach(entry => { + if (entry.isIntersecting) { entry.target.classList.add('visible'); reveal.unobserve(entry.target); } +}), {threshold:.08}); +document.querySelectorAll('.feature,.shot,.release,.cta').forEach(el => reveal.observe(el)); From 0b2107928eef56bf3393dfb6f317da327907a991 Mon Sep 17 00:00:00 2001 From: Selim Date: Thu, 27 Aug 2026 11:59:54 +0300 Subject: [PATCH 3/3] style: use CodeSnip branding and teal theme --- docs/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/style.css b/docs/style.css index 270902c..08d4f8b 100644 --- a/docs/style.css +++ b/docs/style.css @@ -1 +1 @@ -:root{--bg:#080a0f;--border:rgba(255,255,255,.11);--text:#f5f7fb;--muted:#a4a9b6;--accent:#00adb5;--accent2:#6ee7f0;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 75% 5%,rgba(0,173,181,.13),transparent 30%),radial-gradient(circle at 15% 35%,rgba(110,231,240,.06),transparent 25%),var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.nav-wrap{position:sticky;top:0;z-index:10;background:rgba(8,10,15,.72);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;font-weight:800;font-size:18px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(0,173,181,.45);border-radius:10px;color:var(--accent2);background:rgba(0,173,181,.08);font-size:12px}.nav-links{display:flex;gap:28px;color:#b8bdc9;font-size:14px}.nav-links a:hover{color:#fff}.menu{display:none;background:none;border:0;color:#fff;font-size:24px}.hero{min-height:720px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:90px 0}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--accent2)}h1{font-size:clamp(54px,7vw,88px);line-height:.96;letter-spacing:-.055em;margin:18px 0 26px}h1 span{background:linear-gradient(90deg,#fff,var(--accent2));-webkit-background-clip:text;color:transparent}.lead{max-width:570px;color:var(--muted);font-size:18px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.btn{padding:12px 18px;border-radius:12px;border:1px solid var(--border);font-weight:700;font-size:14px;transition:.2s}.btn:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.22)}.primary{background:var(--accent);color:#031114;border-color:var(--accent)}.secondary{background:rgba(255,255,255,.04)}.meta{display:flex;align-items:center;gap:12px;color:#777e8b;font-size:12px}.meta i{width:3px;height:3px;border-radius:50%;background:#59606c}.glass{background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));border:1px solid var(--border);box-shadow:0 25px 80px rgba(0,0,0,.32);backdrop-filter:blur(20px)}.hero-card{height:480px;border-radius:24px;overflow:hidden;display:flex;position:relative;transform:rotate(1deg)}.window-bar{height:48px;position:absolute;left:0;right:0;top:0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:7px;padding:0 16px}.window-bar span{width:8px;height:8px;border-radius:50%;background:#59606c}.window-bar b{font-size:11px;color:#7f8692;margin-left:8px}.mock-sidebar{width:25%;padding:75px 14px 20px;border-right:1px solid var(--border)}.mock-logo{color:var(--accent2);font-weight:800;margin-bottom:30px}.mock-line{height:10px;border-radius:4px;background:rgba(255,255,255,.08);margin:16px 0}.mock-line.active{background:rgba(0,173,181,.35)}.mock-line.short{width:55%}.mock-main{flex:1;padding:78px 28px}.mock-search{border:1px solid var(--border);border-radius:10px;padding:10px;color:#707887;font-size:11px}.mock-title{font-weight:700;margin:24px 0 14px}.snippet{border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:13px;margin:10px 0;background:rgba(0,0,0,.12)}.snippet small{display:block;color:var(--accent2);font-size:9px}.snippet strong{display:block;font-size:12px}.snippet span{display:block;color:#727987;font-size:9px}.trusted{padding:0 0 90px;text-align:center;color:#666d79;font-size:10px;letter-spacing:.15em}.trusted div{display:flex;justify-content:center;gap:55px;margin-top:20px;color:#a0a5af;letter-spacing:0;font-size:14px}.section{padding:100px 0}.section-head{max-width:650px;margin-bottom:48px}.section-head h2{font-size:clamp(36px,5vw,58px);line-height:1.02;letter-spacing:-.04em;margin:15px 0}.section-head p{color:var(--muted);font-size:16px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature{padding:28px;border-radius:18px;min-height:220px}.feature .icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(0,173,181,.1);border:1px solid rgba(0,173,181,.2);color:var(--accent2);margin-bottom:25px}.feature h3{margin:0 0 8px;font-size:18px}.feature p{margin:0;color:var(--muted);font-size:14px}kbd{border:1px solid #444b57;border-radius:5px;padding:2px 5px;font-size:10px;background:#11151c}.shots{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.shot{margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--border);background:#10131a}.shot.large{grid-row:span 2}.shot img{display:block;width:100%;height:100%;object-fit:cover}.timeline{border-left:1px solid rgba(255,255,255,.13);margin-left:15px}.release{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:0 0 38px 35px;position:relative}.release:before{content:"";position:absolute;left:-5px;top:6px;width:9px;height:9px;border-radius:50%;background:#303641;border:2px solid var(--bg)}.release.done:before,.release.next:before{background:var(--accent)}.release span{font-weight:800;color:var(--accent2);font-size:13px}.release h3{margin:0 0 5px}.release p{margin:0;color:var(--muted);font-size:14px}.cta{margin-bottom:80px;border-radius:24px;padding:55px;display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:clamp(30px,4vw,48px);line-height:1.05;margin:12px 0}.cta p{color:var(--muted);margin:0}.cta .actions{margin:0}.footer{padding:30px 0 45px;border-top:1px solid rgba(255,255,255,.07);display:flex;justify-content:space-between;color:#777e8b;font-size:12px}.footer div{display:flex;gap:14px}.footer b{color:#fff}.footer a{color:#aeb4c0}.footer a:hover{color:var(--accent2)}@media(max-width:850px){.hero{grid-template-columns:1fr;gap:30px;padding-top:60px}.hero-card{height:390px}.feature-grid{grid-template-columns:1fr 1fr}.nav-links{display:none}.menu{display:block}.shots{grid-template-columns:1fr}.shot.large{grid-row:auto}.cta{flex-direction:column;align-items:flex-start}.trusted div{gap:18px;flex-wrap:wrap}.footer{flex-direction:column;gap:12px}}@media(max-width:560px){.container{width:min(calc(100% - 28px),var(--max))}.feature-grid{grid-template-columns:1fr}.hero-card{height:330px}.mock-sidebar{width:20%;padding-left:8px;padding-right:8px}.mock-main{padding:65px 14px}.nav{height:62px}.section{padding:70px 0}.cta{padding:30px}.release{grid-template-columns:75px 1fr}} \ No newline at end of file +:root{--bg:#080a0f;--border:rgba(255,255,255,.11);--text:#f5f7fb;--muted:#a4a9b6;--accent:#00adb5;--accent2:#6ee7f0;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 75% 5%,rgba(0,173,181,.13),transparent 30%),radial-gradient(circle at 15% 35%,rgba(110,231,240,.06),transparent 25%),var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.nav-wrap{position:sticky;top:0;z-index:10;background:rgba(8,10,15,.72);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;font-weight:800;font-size:18px}.brand img{width:34px;height:34px;border-radius:9px;object-fit:cover;box-shadow:0 0 24px rgba(0,173,181,.18)}.nav-links{display:flex;gap:28px;color:#b8bdc9;font-size:14px}.nav-links a:hover{color:#fff}.nav-actions{display:flex;align-items:center;gap:18px}.language{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:#68717e}.lang{border:0;background:none;padding:3px;color:#68717e;font:inherit;cursor:pointer}.lang.active{color:var(--accent2)}.menu{display:none;background:none;border:0;color:#fff;font-size:24px}.hero{min-height:720px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:90px 0}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--accent2)}h1{font-size:clamp(54px,7vw,88px);line-height:.96;letter-spacing:-.055em;margin:18px 0 26px}h1 span{background:linear-gradient(90deg,#fff,var(--accent2));-webkit-background-clip:text;color:transparent}.lead{max-width:570px;color:var(--muted);font-size:18px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.btn{padding:12px 18px;border-radius:12px;border:1px solid var(--border);font-weight:700;font-size:14px;transition:.2s}.btn:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.22)}.primary{background:var(--accent);color:#031114;border-color:var(--accent)}.secondary{background:rgba(255,255,255,.04)}.meta{display:flex;align-items:center;gap:12px;color:#777e8b;font-size:12px}.meta i{width:3px;height:3px;border-radius:50%;background:#59606c}.glass{background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));border:1px solid var(--border);box-shadow:0 25px 80px rgba(0,0,0,.32);backdrop-filter:blur(20px)}.hero-card{height:480px;border-radius:24px;overflow:hidden;display:flex;position:relative;transform:rotate(1deg)}.window-bar{height:48px;position:absolute;left:0;right:0;top:0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:7px;padding:0 16px}.window-bar span{width:8px;height:8px;border-radius:50%;background:#59606c}.window-bar b{font-size:11px;color:#7f8692;margin-left:8px}.mock-sidebar{width:25%;padding:75px 14px 20px;border-right:1px solid var(--border)}.mock-logo{color:var(--accent2);font-weight:800;margin-bottom:30px}.mock-sidebar>img{width:30px;height:30px;border-radius:8px;display:block;margin-bottom:25px}.mock-line{height:10px;border-radius:4px;background:rgba(255,255,255,.08);margin:16px 0}.mock-line.active{background:rgba(0,173,181,.35)}.mock-line.short{width:55%}.mock-main{flex:1;padding:78px 28px}.mock-search{border:1px solid var(--border);border-radius:10px;padding:10px;color:#707887;font-size:11px}.mock-title{font-weight:700;margin:24px 0 14px}.snippet{border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:13px;margin:10px 0;background:rgba(0,0,0,.12)}.snippet small{display:block;color:var(--accent2);font-size:9px}.snippet strong{display:block;font-size:12px}.snippet span{display:block;color:#727987;font-size:9px}.trusted{padding:0 0 90px;text-align:center;color:#666d79;font-size:10px;letter-spacing:.15em}.trusted div{display:flex;justify-content:center;gap:55px;margin-top:20px;color:#a0a5af;letter-spacing:0;font-size:14px}.section{padding:100px 0}.section-head{max-width:650px;margin-bottom:48px}.section-head h2{font-size:clamp(36px,5vw,58px);line-height:1.02;letter-spacing:-.04em;margin:15px 0}.section-head p{color:var(--muted);font-size:16px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature{padding:28px;border-radius:18px;min-height:220px}.feature .icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(0,173,181,.1);border:1px solid rgba(0,173,181,.2);color:var(--accent2);margin-bottom:25px}.feature h3{margin:0 0 8px;font-size:18px}.feature p{margin:0;color:var(--muted);font-size:14px}kbd{border:1px solid #444b57;border-radius:5px;padding:2px 5px;font-size:10px;background:#11151c}.shots{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.shot{margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--border);background:#10131a}.shot.large{grid-row:span 2}.shot img{display:block;width:100%;height:100%;object-fit:cover}.timeline{border-left:1px solid rgba(255,255,255,.13);margin-left:15px}.release{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:0 0 38px 35px;position:relative}.release:before{content:"";position:absolute;left:-5px;top:6px;width:9px;height:9px;border-radius:50%;background:#303641;border:2px solid var(--bg)}.release.done:before,.release.next:before{background:var(--accent)}.release span{font-weight:800;color:var(--accent2);font-size:13px}.release h3{margin:0 0 5px}.release p{margin:0;color:var(--muted);font-size:14px}.cta{margin-bottom:80px;border-radius:24px;padding:55px;display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:clamp(30px,4vw,48px);line-height:1.05;margin:12px 0}.cta p{color:var(--muted);margin:0}.cta .actions{margin:0}.footer{padding:30px 0 45px;border-top:1px solid rgba(255,255,255,.07);display:flex;justify-content:space-between;color:#777e8b;font-size:12px}.footer div{display:flex;gap:14px}.footer b{color:#fff}.footer a{color:#aeb4c0}.footer a:hover{color:var(--accent2)}.feature,.shot,.release,.cta{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}.feature.visible,.shot.visible,.release.visible,.cta.visible{opacity:1;transform:translateY(0)}@media(max-width:850px){.hero{grid-template-columns:1fr;gap:30px;padding-top:60px}.hero-card{height:390px}.feature-grid{grid-template-columns:1fr 1fr}.nav-links{display:none}.nav-links.mobile-open{display:flex;position:absolute;top:62px;left:14px;right:14px;padding:18px;flex-direction:column;gap:16px;background:rgba(10,12,18,.96);border:1px solid rgba(255,255,255,.1);border-radius:14px;backdrop-filter:blur(18px)}.menu{display:block}.shots{grid-template-columns:1fr}.shot.large{grid-row:auto}.cta{flex-direction:column;align-items:flex-start}.trusted div{gap:18px;flex-wrap:wrap}}@media(max-width:560px){.container{width:min(calc(100% - 28px),var(--max))}.feature-grid{grid-template-columns:1fr}.hero-card{height:330px}.mock-sidebar{width:20%;padding-left:8px;padding-right:8px}.mock-main{padding:65px 14px}.nav{height:62px}.section{padding:70px 0}.cta{padding:30px}.release{grid-template-columns:75px 1fr}.language{font-size:11px}}