:root{--bg:#0a0a0a;--tx:#f5f5f7;--mut:#9a9aa6;--glass:rgba(255,255,255,.06);--edge:rgba(255,255,255,.16)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Manrope',system-ui,sans-serif;background:linear-gradient(180deg,#0a0a0a 0%,#151515 34%,#0d0d0d 62%,#181818 82%,#0a0a0a 100%);background-attachment:fixed;color:var(--tx);line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.glass{background:linear-gradient(145deg,rgba(255,255,255,.1),rgba(255,255,255,.025));backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border:1px solid var(--edge);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(255,255,255,.05),0 12px 40px rgba(0,0,0,.35)}
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);width:min(1120px,calc(100% - 28px));z-index:20;display:flex;align-items:center;justify-content:space-between;padding:8px 10px 8px 14px;border-radius:999px}
.brand{display:flex;align-items:center;gap:10px;font-family:'Unbounded',sans-serif;font-weight:600;font-size:.95rem}
.nav nav{display:flex;gap:28px;color:var(--mut);font-size:.92rem}
.nav nav a:hover{color:#fff}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:10px 20px;font-weight:600;font-size:.92rem;cursor:pointer;border:0;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px)}
.btn-light{background:rgba(255,255,255,.92);color:#0b0b0e;box-shadow:inset 0 1px 0 #fff,0 8px 24px rgba(255,255,255,.12)}
.btn-glass{color:#fff}
.big{padding:15px 30px;font-size:1rem}
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 20px 60px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:999px;font-size:.8rem;color:var(--mut);margin-bottom:34px}
.dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 10px #34d399}
h1,h2,h3{font-family:'Unbounded',sans-serif;letter-spacing:-.03em;line-height:1.08}
h1{font-size:clamp(2.6rem,8vw,6rem);font-weight:700}
h1 em{font-style:normal;color:rgba(255,255,255,.28)}
.lead{max-width:560px;margin:28px auto 36px;color:var(--mut);font-size:1.05rem}
.row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.stats{display:flex;gap:56px;margin-top:70px;padding-top:36px;border-top:1px solid var(--edge);flex-wrap:wrap;justify-content:center}
.stats div{display:flex;flex-direction:column}
.stats b{font-family:'Unbounded',sans-serif;font-size:1.9rem}
.stats span{color:var(--mut);font-size:.8rem}
.sec{padding:110px 20px;max-width:1160px;margin:0 auto;text-align:center}
.eyebrow{font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mut);margin-bottom:16px}
h2{font-size:clamp(1.9rem,4.4vw,3.3rem);font-weight:700}
.sub{color:var(--mut);max-width:520px;margin:18px auto 56px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;text-align:left}
.card{padding:30px;border-radius:28px;transition:transform .3s}
.card:hover{transform:translateY(-6px)}
.card h3{font-size:1.05rem;margin:22px 0 10px;font-weight:600}
.card p{color:var(--mut);font-size:.92rem}
.card.center{text-align:center}
.card.center small{color:var(--mut)}
.card.center h3{margin-top:14px}
.ico{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid var(--edge);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.ico svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.steps{max-width:760px;margin:0 auto;padding:40px;border-radius:36px;text-align:left}
.steps ol{list-style:none}
.steps li{display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.1);color:var(--mut)}
.steps li b{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.1);border:1px solid var(--edge);font-size:.85rem}
kbd{font-family:inherit;font-size:.82rem;color:#fff;background:rgba(255,255,255,.1);border:1px solid var(--edge);border-radius:6px;padding:2px 7px}
.install{display:flex;flex-direction:column;align-items:center;padding-top:36px}
.bookmarklet{cursor:grab;user-select:none}
.bookmarklet:active{cursor:grabbing}
.hint{margin-top:16px;font-size:.78rem;color:var(--mut);opacity:.8;transition:color .2s}
.hint.flash{color:#fff}
.tutorial{margin-top:12px;background:none;border:0;color:#fff;opacity:.35;font:inherit;font-size:.85rem;letter-spacing:.08em;cursor:pointer;transition:opacity .2s}
.tutorial:hover{opacity:.8}
footer{text-align:center;color:var(--mut);font-size:.8rem;padding:40px 20px 60px}
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.55);backdrop-filter:blur(8px)}
.modal[hidden]{display:none}
.modal-box{position:relative;width:min(900px,100%);padding:14px;border-radius:28px}
.modal-box video{width:100%;display:block;border-radius:18px;background:#000;max-height:75vh}
.close{position:absolute;top:-14px;right:-14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--edge);background:rgba(30,30,36,.9);color:#fff;font-size:1.3rem;cursor:pointer;z-index:2}
.vid-err{text-align:center;color:var(--mut);padding:10px;font-size:.85rem}
@media(max-width:760px){.nav nav{display:none}.steps{padding:24px}}

.hero{background:radial-gradient(ellipse 60% 50% at 50% 30%,rgba(255,255,255,.07),transparent 70%)}
.sec{position:relative}

/* ===== redesign: more glass, clear hierarchy ===== */
:root{--g-hi:rgba(255,255,255,.18);--g-lo:rgba(255,255,255,.04)}
.glass{background:linear-gradient(145deg,var(--g-hi),var(--g-lo) 55%,rgba(255,255,255,.08));backdrop-filter:blur(30px) saturate(190%);-webkit-backdrop-filter:blur(30px) saturate(190%);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(255,255,255,.06),0 18px 50px rgba(0,0,0,.5)}
.card,.steps{position:relative;overflow:hidden}
.card:before,.steps:before{content:"";position:absolute;left:-20%;top:-55%;width:80%;height:90%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.12),transparent);pointer-events:none}
.card{transition:transform .3s,border-color .3s}
.card:hover{border-color:rgba(255,255,255,.38)}
.nav{background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.04))}
.btn-light{background:linear-gradient(180deg,#fff,#d9d9e0)}
.btn:focus-visible,.tutorial:focus-visible{outline:2px solid #fff;outline-offset:3px}
.sec{padding:100px 20px}
.sub{max-width:540px}
.steps{max-width:780px;padding:36px 40px}
.steps-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.badge{display:inline-block;padding:5px 14px;border-radius:999px;font-size:.78rem;font-weight:600;color:#fff}
.progress{display:flex;gap:6px}
.progress i{width:34px;height:4px;border-radius:4px;background:rgba(255,255,255,.18)}
.progress i:first-child{background:rgba(255,255,255,.85)}
.steps li{transition:color .2s}
.steps li:hover{color:#fff}
.steps li b{background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08))}

/* animated drag demo */
.demo-wrap{margin:30px 0 4px}
.demo-title{text-align:center;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);margin-bottom:14px}
.demo{max-width:560px;margin:0 auto}
.demo-win{position:relative;height:230px;border-radius:20px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 16px 40px rgba(0,0,0,.45)}
.demo-top{display:flex;align-items:center;gap:6px;padding:10px 14px;background:rgba(0,0,0,.28)}
.demo-top i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.28)}
.demo-url{margin-left:10px;flex:1;text-align:center;font-size:.7rem;color:var(--mut);background:rgba(255,255,255,.08);border-radius:999px;padding:3px 10px}
.demo-bar{position:relative;display:flex;align-items:center;gap:10px;height:40px;padding:0 14px;background:rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.12)}
.demo-bar .b{width:62px;height:12px;border-radius:6px;background:rgba(255,255,255,.14)}
.slot,.filled{position:absolute;left:14px;top:6px;height:28px;display:flex;align-items:center;gap:6px;padding:0 14px;border-radius:999px;font-size:.72rem;font-weight:600}
.slot{border:1.5px dashed rgba(255,255,255,.7);color:#fff;animation:dslot 7s infinite}
.filled{background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.1));border:1px solid rgba(255,255,255,.5);opacity:0;animation:dfill 7s infinite}
.demo-bar .b:nth-of-type(3){margin-left:150px}
.demo-body{position:absolute;left:0;right:0;top:92px;bottom:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:26px}
.src{padding:11px 26px;border-radius:999px;background:linear-gradient(180deg,#fff,#d9d9e0);color:#0b0b0e;font-weight:700;font-size:.85rem;animation:dsrc 7s infinite}
.ghost{position:absolute;left:50%;top:190px;padding:9px 20px;border-radius:999px;background:linear-gradient(180deg,#fff,#d9d9e0);color:#0b0b0e;font-weight:700;font-size:.8rem;opacity:0;transform:translate(-50%,-50%);box-shadow:0 14px 30px rgba(0,0,0,.5),0 0 24px rgba(255,255,255,.35);animation:dghost 7s infinite;white-space:nowrap}
.cur{position:absolute;left:50%;top:190px;margin:2px 0 0 28px;opacity:0;animation:dcur 7s infinite;filter:drop-shadow(0 3px 6px rgba(0,0,0,.5))}
.demo-caps{position:relative;height:28px;margin-top:14px;text-align:center}
.demo-caps span{position:absolute;inset:0;font-size:.9rem;font-weight:600;color:#fff;opacity:0}
.c1{animation:dc1 7s infinite}.c2{animation:dc2 7s infinite}.c3{animation:dc3 7s infinite}
@keyframes dghost{
0%,10%{left:50%;top:190px;opacity:0;transform:translate(-50%,-50%) scale(.95)}
16%{left:50%;top:190px;opacity:1;transform:translate(-50%,-50%) scale(1)}
28%{left:50%;top:190px;opacity:1;transform:translate(-50%,-50%) scale(1.1)}
64%{left:100px;top:66px;opacity:1;transform:translate(-50%,-50%) scale(1.1)}
72%{left:100px;top:66px;opacity:1;transform:translate(-50%,-50%) scale(1)}
78%,100%{left:100px;top:66px;opacity:0;transform:translate(-50%,-50%) scale(.8)}}
@keyframes dcur{
0%,8%{left:50%;top:190px;opacity:0}
14%{left:50%;top:190px;opacity:1}
28%{left:50%;top:190px;opacity:1}
64%{left:100px;top:66px;opacity:1}
72%{left:100px;top:66px;opacity:1}
84%,100%{left:100px;top:66px;opacity:0}}
@keyframes dsrc{0%,14%{opacity:1}18%,72%{opacity:.3}80%,100%{opacity:1}}
@keyframes dslot{0%,60%{opacity:1}68%,94%{opacity:0}100%{opacity:1}}
@keyframes dfill{0%,70%{opacity:0;transform:scale(.8)}76%{opacity:1;transform:scale(1.08)}80%,94%{opacity:1;transform:scale(1)}100%{opacity:0}}
@keyframes dc1{0%,4%{opacity:0}8%,24%{opacity:1}28%,100%{opacity:0}}
@keyframes dc2{0%,26%{opacity:0}32%,60%{opacity:1}66%,100%{opacity:0}}
@keyframes dc3{0%,68%{opacity:0}74%,94%{opacity:1}100%{opacity:0}}

/* install area nudge */
.install{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:30px}
.arrow{color:#fff;opacity:.75;animation:bounce 1.4s ease-in-out infinite;margin-bottom:6px}
@keyframes bounce{0%,100%{transform:translateY(4px)}50%{transform:translateY(-6px)}}
.bookmarklet{animation:nudge 4s ease-in-out infinite,glow 2.6s ease-in-out infinite}
@keyframes nudge{0%,86%,100%{transform:translateY(0) rotate(0)}90%{transform:translateY(-5px) rotate(-1.5deg)}94%{transform:translateY(0) rotate(1.5deg)}}
@keyframes glow{0%,100%{box-shadow:inset 0 1px 0 #fff,0 8px 24px rgba(255,255,255,.12)}50%{box-shadow:inset 0 1px 0 #fff,0 8px 34px rgba(255,255,255,.4)}}
.bookmarklet.shake{animation:shake .5s}
@keyframes shake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
.hint{max-width:360px;text-align:center;font-size:.85rem;color:#d4d4dc;opacity:1}
.hint.ok{color:#34d399}
.dropzone{position:fixed;left:0;right:0;top:0;height:64px;z-index:60;display:none;align-items:center;justify-content:center;font-weight:700;letter-spacing:.04em;background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.04));border-bottom:2px dashed rgba(255,255,255,.7);backdrop-filter:blur(12px);pointer-events:none;animation:dz 1s ease-in-out infinite alternate}
body.dragging .dropzone{display:flex}
@keyframes dz{to{background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,.08))}}
.modal-box{width:min(680px,100%);padding:26px}
.modal-title{font-family:'Unbounded',sans-serif;font-size:1.05rem;text-align:center;margin-bottom:18px}
.modal-note{text-align:center;color:var(--mut);font-size:.85rem;margin-top:14px}
.install .tutorial{opacity:.5}
@media (prefers-reduced-motion:reduce){.bookmarklet,.arrow,.slot,.ghost,.cur,.src,.c1,.c2,.dropzone{animation:none}.slot{opacity:0}.filled{opacity:1;animation:none}.c3{animation:none;opacity:1}}
@media(max-width:600px){.steps{padding:24px 18px}.demo-win{height:210px}.ghost{display:none}.cur{display:none}}
