﻿
:root {
  --accent: #7c5cfc; --accent-glow: rgba(124,92,252,0.35); --accent-dim: rgba(124,92,252,0.12); --accent-hover: #9478fd;
  --cyan: #22d3ee; --bg: #07080f; --bg-2: #0d0f18; --bg-3: #131620; --bg-4: #1c2030;
  --glass: rgba(255,255,255,0.04); --glass-border: rgba(255,255,255,0.09);
  --border: rgba(255,255,255,0.08); --border-accent: rgba(124,92,252,0.45);
  --text: #eef0f8; --text-2: #8b93b3; --text-3: #4a5270;
  --success: #22c55e; --error: #ef4444;
  --radius-sm: 8px; --radius: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px;
  --font-display: 'Cabinet Grotesk', sans-serif; --font-body: 'Satoshi', sans-serif;
  --shadow-accent: 0 0 32px rgba(124,92,252,0.4); --shadow-card: 0 8px 32px rgba(0,0,0,0.5);
  --transition: 0.2s ease;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;min-height:100vh;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:var(--font-body);border:none;outline:none}
input,textarea,select{font-family:var(--font-body)}
::-webkit-scrollbar{width:5px} ::-webkit-scrollbar-track{background:var(--bg)} ::-webkit-scrollbar-thumb{background:var(--bg-4);border-radius:var(--radius-full)}

.view{display:none}
.view.active{display:block;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
.spin{animation:spin .8s linear infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideOutRight{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(60px)}}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.2)}100%{transform:scale(1)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes orb{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.08)}}

/* NAV - floating pill */
#main-nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100;background:rgba(7,8,15,0.75);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-full);padding:0 8px 0 20px;height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:min(720px,calc(100vw - 32px));box-shadow:0 4px 32px rgba(0,0,0,0.4)}
body.profile-view #main-nav{display:none!important}
/* Global promo/countdown bar */
#promo-topbar{position:fixed;top:0;left:0;right:0;height:38px;z-index:101;display:none;align-items:center;justify-content:center;gap:16px;padding:0 16px;
  background:linear-gradient(90deg,#e11d48,#a21caf 55%,#6d28d9);border-bottom:1px solid rgba(255,255,255,.14);
  box-shadow:0 4px 24px rgba(120,20,80,.35);font-size:.8rem;overflow:hidden}
body.has-promobar #promo-topbar{display:flex}
body.has-promobar{padding-top:38px}
body.has-promobar #main-nav{top:52px}
body.profile-view #promo-topbar,html.booting-profile #promo-topbar,body.dashboard-view #promo-topbar{display:none!important}
body.dashboard-view.has-promobar,body.profile-view.has-promobar{padding-top:0}
body.dashboard-view.has-promobar #main-nav{top:16px}
#promo-topbar .pt-tag{display:inline-flex;align-items:center;gap:8px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;color:#fff;font-size:.72rem;white-space:nowrap}
#promo-topbar .pt-dot{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 10px #fff;animation:ldpDot 1.4s ease-in-out infinite}
#promo-topbar .pt-count{display:inline-flex;align-items:center;gap:5px;color:rgba(255,255,255,.92);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
#promo-topbar .pt-count b{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:2px 7px;color:#fff}
#promo-topbar .pt-cta{background:#fff;color:#a21caf;border:none;border-radius:var(--radius-full);padding:6px 15px;font-weight:900;font-size:.74rem;cursor:pointer;white-space:nowrap;transition:transform .15s,box-shadow .2s}
#promo-topbar .pt-cta:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.3)}
@media(max-width:640px){
  #promo-topbar{gap:10px;font-size:.72rem}
  #promo-topbar .pt-tag span:last-child{display:none}
  #promo-topbar .pt-cta{padding:5px 12px}
}
body.profile-view #view-profile{padding-top:0!important}
body.profile-view #site-toggle{display:none!important}
@media (max-width:768px){#site-toggle{display:none!important}}
.nav-logo{font-family:var(--font-display);font-size:1.25rem;font-weight:800;display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}
.nav-logo span{color:var(--accent)}
.nav-logo .logo-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:var(--shadow-accent);flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a,.nav-links button{padding:7px 14px;border-radius:var(--radius-full);font-size:.875rem;font-weight:500;color:var(--text-2);background:transparent;transition:var(--transition);cursor:pointer;white-space:nowrap}
.nav-links a:hover,.nav-links button:hover{color:var(--text);background:var(--glass)}
.nav-links .btn-nav-cta{background:var(--accent);color:white;box-shadow:var(--shadow-accent);padding:8px 18px}
.nav-links .btn-nav-cta:hover{background:var(--accent-hover);transform:scale(1.03)}
.lang-toggle{display:flex;align-items:center;gap:2px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-full);padding:3px;margin-left:4px;flex-shrink:0}
.lang-toggle .lang-btn{padding:5px 11px;border-radius:var(--radius-full);font-size:.74rem;font-weight:700;letter-spacing:.02em;color:var(--text-3);background:transparent;border:none;cursor:pointer;transition:var(--transition);white-space:nowrap}
.lang-toggle .lang-btn:hover{color:var(--text)}
.lang-toggle .lang-btn.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(124,92,252,.4)}
.mobile-nav .lang-toggle{display:flex;justify-content:center;align-self:center}
.hamburger{display:none;flex-direction:column;gap:5px;background:transparent;padding:8px;border-radius:var(--radius-sm)}
.hamburger span{display:block;width:20px;height:2px;background:var(--text-2);border-radius:2px;transition:var(--transition)}
.mobile-nav{display:none;position:fixed;top:76px;left:16px;right:16px;background:rgba(13,15,24,0.96);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:12px;flex-direction:column;gap:6px;z-index:99;box-shadow:var(--shadow-card)}
.mobile-nav.open{display:flex}
.mobile-nav a,.mobile-nav button{display:block;width:100%;text-align:center;padding:11px;border-radius:var(--radius);font-weight:500;color:var(--text-2);background:transparent;font-size:.93rem;cursor:pointer}
.mobile-nav a:hover,.mobile-nav button:hover{background:var(--glass);color:var(--text)}
.mobile-nav .btn-mobile-cta{background:var(--accent);color:white;border-radius:var(--radius)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-full);font-weight:600;font-size:.95rem;transition:all var(--transition);cursor:pointer;border:none}
.btn-primary{background:var(--accent);color:white;box-shadow:var(--shadow-accent)}
.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 0 40px rgba(124,92,252,.55)}
.btn-ghost{background:var(--glass);color:var(--text);border:1px solid var(--glass-border)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.btn-sm{padding:8px 16px;font-size:.85rem}
.btn-danger{background:transparent;color:var(--error);border:1.5px solid rgba(239,68,68,.3)}
.btn-danger:hover{background:rgba(239,68,68,.1);border-color:var(--error)}

/* FORMS */
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:.82rem;font-weight:600;color:var(--text-2);letter-spacing:.04em;text-transform:uppercase}
.form-group input,.form-group textarea,.form-group select{background:var(--bg-3);border:1px solid var(--glass-border);border-radius:var(--radius);padding:12px 16px;color:var(--text);font-size:.95rem;transition:border-color var(--transition);width:100%}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-3)}
.form-group textarea{resize:vertical;min-height:80px}
.field-error{font-size:.82rem;color:var(--error);margin-top:2px;display:none}
.field-error.show{display:block}
.form-input-error{border-color:var(--error)!important}

/* GLASS CARD */
.card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:24px;backdrop-filter:blur(12px)}
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.badge-accent{background:var(--accent-dim);color:var(--accent);border:1px solid var(--border-accent)}
.toggle{position:relative;width:44px;height:24px;display:inline-block}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--bg-4);border-radius:var(--radius-full);transition:var(--transition)}
.toggle-slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:white;border-radius:50%;transition:var(--transition)}
.toggle input:checked+.toggle-slider{background:var(--accent)}
.toggle input:checked+.toggle-slider::before{transform:translateX(20px)}

/* TOAST */
#toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;background:rgba(13,15,24,0.9);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow-card);min-width:260px;max-width:360px;font-size:.9rem;font-weight:500;animation:slideInRight .35s ease;cursor:pointer}
.toast.exiting{animation:slideOutRight .3s ease forwards}
.toast-success{border-color:rgba(34,197,94,.3)} .toast-success .toast-dot{background:var(--success)}
.toast-error{border-color:rgba(239,68,68,.3)} .toast-error .toast-dot{background:var(--error)}
.toast-info .toast-dot{background:var(--text-3)}
.toast-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(12px);z-index:500;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s ease}
.modal-overlay.open{opacity:1;pointer-events:all}
/* max-height must stay inside the overlay's content box (100% = viewport minus its padding),
   otherwise on a short screen - iPhone SE/8 - 90vh spills under Safari's toolbars and the
   bottom of the modal, usually the confirm button, is unreachable. */
.modal{background:var(--bg-2);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:32px;max-width:480px;width:100%;transform:scale(.95) translateY(20px);transition:transform .3s ease;max-height:90vh;max-height:min(90vh,100%);overflow-y:auto;-webkit-overflow-scrolling:touch}
.modal-overlay.open .modal{transform:scale(1) translateY(0)}
@media (max-height:700px){
  .modal-overlay{padding:12px;align-items:flex-start}
  .modal{padding:22px}
}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.modal-title{font-family:var(--font-display);font-size:1.4rem;font-weight:800}
.modal-close{background:var(--glass);border:1px solid var(--glass-border);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-2);cursor:pointer;transition:var(--transition)}
.modal-close:hover{background:var(--bg-4);color:var(--text)}

/*
   LANDING - complete redesign
 */
#view-landing{padding-top:16px} /* account for floating nav */
/* Prevent landing-page flash when loading a /@username profile directly */
html.booting-profile #view-landing{display:none!important}
html.booting-profile #main-nav{display:none!important}
html.booting-profile body{background:var(--bg)}

/* Mesh background */
.hero{min-height:96vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 24px 60px;position:relative;overflow:hidden}
.hero-mesh{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(124,92,252,.22) 0%,transparent 60%),radial-gradient(ellipse 50% 40% at 80% 60%,rgba(34,211,238,.1) 0%,transparent 55%),radial-gradient(ellipse 40% 50% at 10% 80%,rgba(124,92,252,.08) 0%,transparent 55%);pointer-events:none;z-index:0}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,black 0%,transparent 70%);pointer-events:none;z-index:0}
.hero-content{position:relative;z-index:1;max-width:800px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(124,92,252,.1);border:1px solid rgba(124,92,252,.3);border-radius:var(--radius-full);padding:6px 16px;font-size:.8rem;font-weight:600;color:var(--accent);margin-bottom:32px;letter-spacing:.05em;backdrop-filter:blur(8px)}
.hero-badge .pulse{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite}
.hero h1{font-family:var(--font-display);font-size:clamp(3rem,7.5vw,6rem);font-weight:900;line-height:1.02;letter-spacing:-.04em;margin-bottom:24px}
.hero h1 .gradient-text{background:linear-gradient(135deg,#a78bfa,var(--accent),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero p{font-size:clamp(1rem,2.5vw,1.2rem);color:var(--text-2);max-width:500px;margin:0 auto 44px;line-height:1.75}
.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-cta-primary{display:inline-flex;align-items:center;gap:10px;background:var(--accent);color:white;padding:15px 32px;border-radius:var(--radius-full);font-weight:700;font-size:1rem;cursor:pointer;border:none;box-shadow:0 0 40px rgba(124,92,252,.45),0 0 80px rgba(124,92,252,.15);transition:all .2s ease;font-family:var(--font-body);animation:cta-pulse 3.5s ease-in-out infinite}
.hero-cta-primary:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 0 50px rgba(124,92,252,.6),0 0 100px rgba(124,92,252,.2);animation:none}
@keyframes cta-pulse{0%,100%{box-shadow:0 0 40px rgba(124,92,252,.45),0 0 80px rgba(124,92,252,.15)}50%{box-shadow:0 0 60px rgba(124,92,252,.7),0 0 120px rgba(124,92,252,.3)}}
@media(prefers-reduced-motion:reduce){.hero-cta-primary{animation:none}}
.hero-cta-secondary{display:inline-flex;align-items:center;gap:10px;background:var(--glass);color:var(--text);padding:15px 28px;border-radius:var(--radius-full);font-weight:600;font-size:.95rem;cursor:pointer;border:1px solid var(--glass-border);transition:all .2s ease;backdrop-filter:blur(8px);font-family:var(--font-body)}
.hero-cta-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.hero-url-preview{display:inline-flex;align-items:center;gap:8px;background:rgba(124,92,252,.08);border:1px solid rgba(124,92,252,.2);border-radius:var(--radius-full);padding:8px 20px;margin-top:28px;font-size:.85rem;color:var(--text-2)}
.hero-url-preview .url-accent{color:var(--accent);font-weight:700}
/* Interactive claim bar - enter a username, save it, jump straight to pricing.
   Made deliberately louder than the rest of the hero: solid glow, bigger type,
   pulsing shadow, so it reads as the primary action, not a decorative pill. */
.hero-claim{display:inline-flex;align-items:center;gap:8px;background:rgba(124,92,252,.14);border:1.5px solid rgba(124,92,252,.55);border-radius:var(--radius-full);padding:8px 8px 8px 24px;margin-top:28px;max-width:100%;box-shadow:0 0 0 1px rgba(124,92,252,.15),0 8px 32px rgba(124,92,252,.25);animation:claim-glow 3.2s ease-in-out infinite}
@keyframes claim-glow{0%,100%{box-shadow:0 0 0 1px rgba(124,92,252,.15),0 8px 32px rgba(124,92,252,.25)}50%{box-shadow:0 0 0 1px rgba(124,92,252,.3),0 10px 44px rgba(124,92,252,.45)}}
@media(prefers-reduced-motion:reduce){.hero-claim{animation:none}}
.hero-claim-prefix{font-size:.95rem;font-weight:600;color:var(--text-2);white-space:nowrap;flex-shrink:0}
.hero-claim input{background:transparent;border:none;outline:none;color:var(--accent);font-weight:800;font-size:.95rem;font-family:var(--font-body);min-width:0;width:140px;padding:8px 2px}
.hero-claim input::placeholder{color:var(--accent);opacity:.6;font-weight:800}
.hero-claim button{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-full);padding:12px 22px;font-weight:800;font-size:.9rem;cursor:pointer;white-space:nowrap;transition:background .2s,transform .2s;font-family:var(--font-body);box-shadow:0 4px 18px rgba(124,92,252,.5)}
.hero-claim button:hover{background:var(--accent-hover);transform:translateY(-1px)}
.hero-claim-err{font-size:.76rem;color:#f87171;margin-top:8px;min-height:1em}
@media(max-width:480px){.hero-claim{padding:7px 7px 7px 18px}.hero-claim input{width:110px}}

/* BENTO GRID (features) */
.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto;gap:14px}
.bento-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:28px;transition:border-color .35s,box-shadow .35s,transform .35s var(--ease-expo),background .35s;backdrop-filter:blur(12px);position:relative;overflow:hidden;--mx:50%;--my:0%}
/* layer 1: static top glow + hairline dot texture */
.bento-card::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 50% 0%,var(--accent-dim) 0%,transparent 70%),
             radial-gradient(circle at 1px 1px,rgba(255,255,255,.05) 1px,transparent 0);
  background-size:auto,22px 22px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
/* layer 2: cursor spotlight - follows --mx/--my set in app.js */
.bento-card::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(320px circle at var(--mx) var(--my),var(--accent-glow) 0%,transparent 60%);
  mix-blend-mode:screen}
.bento-card:hover::after{opacity:.5}
.bento-card:hover{border-color:var(--border-accent);box-shadow:0 18px 50px -20px var(--accent-glow),0 0 0 1px var(--accent-dim) inset;transform:translateY(-5px)}
.bento-card>*{position:relative;z-index:1}
.bento-card.span-2{grid-column:span 2}
.bento-card.span-row-2{grid-row:span 2}
.bento-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;opacity:.9;display:flex;align-items:center;gap:8px}
.bento-label::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--border-accent),transparent);opacity:0;transform:scaleX(.4);transform-origin:left;transition:opacity .4s,transform .5s var(--ease-expo)}
.bento-card:hover .bento-label::after{opacity:1;transform:scaleX(1)}
.bento-title{font-family:var(--font-display);font-size:1.35rem;font-weight:800;margin-bottom:8px;line-height:1.2}
.bento-desc{font-size:.875rem;color:var(--text-2);line-height:1.65}
/* domain card: the title doubles as a fake address bar */
.bento-host{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;padding:9px 14px 9px 12px;border-radius:999px;
  background:rgba(255,255,255,.05);border:1px solid var(--glass-border);transition:border-color .35s,background .35s}
.bento-card:hover .bento-host{border-color:var(--border-accent);background:var(--accent-dim)}
.bento-host i{width:14px;height:14px;color:var(--accent)}
.bento-host .bento-title{margin:0;font-size:1.15rem;letter-spacing:-.01em}
.bento-host .bento-caret{width:2px;height:1.05em;background:var(--accent);border-radius:1px;animation:bentoCaret 1.1s steps(1) infinite}
@keyframes bentoCaret{0%,50%{opacity:1}51%,100%{opacity:0}}
/* Ceiling statement under the protection grid - deliberately quiet, deliberately present. */
.prot-disclaimer{max-width:760px;margin:26px auto 0;text-align:center;font-size:.8rem;line-height:1.7;color:var(--text-3)}
.bento-icon{width:44px;height:44px;border-radius:14px;background:var(--accent-dim);border:1px solid var(--border-accent);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:18px;flex-shrink:0;position:relative;z-index:1;transition:transform .45s var(--ease-expo),box-shadow .45s,background .45s}
.bento-card:hover .bento-icon{transform:translateY(-2px) scale(1.06) rotate(-4deg);box-shadow:0 0 0 6px var(--accent-dim),0 10px 24px -8px var(--accent-glow)}

/* phone mockup in bento */
.phone-mock{background:rgba(255,255,255,.03);border:1px solid var(--glass-border);border-radius:18px;padding:18px;margin-top:22px;max-width:240px}
.phone-mock-header{display:flex;align-items:center;gap:10px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--glass-border)}
.phone-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;transition:background .5s ease}
.phone-user-info .name{font-size:.82rem;font-weight:600}
.phone-user-info .handle{font-size:.72rem;color:var(--text-3)}
.phone-link{background:rgba(255,255,255,.04);border:1px solid var(--glass-border);border-radius:10px;padding:9px 13px;font-size:.79rem;font-weight:500;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;color:var(--text-2);transition:background .2s}

/* theme color dots */
.theme-dots{display:flex;gap:8px;margin-top:20px}
.theme-dot{width:26px;height:26px;border-radius:50%}

/* analytics mini-chart in bento */
.bar-chart{display:flex;align-items:flex-end;gap:5px;height:72px;margin-top:20px}
.bar-chart-bar{flex:1;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--accent),rgba(124,92,252,.3));position:relative}
.bar-chart-bar::after{content:attr(data-label);position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:.6rem;color:var(--text-3);white-space:nowrap}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.step{padding:36px 28px;background:var(--glass);border:1px solid var(--glass-border);text-align:center;position:relative;transition:border-color .2s,background .2s;backdrop-filter:blur(12px)}
.step:first-child{border-radius:var(--radius-xl) 0 0 var(--radius-xl)}
.step:last-child{border-radius:0 var(--radius-xl) var(--radius-xl) 0}
.step:not(:first-child){border-left:none}
.step:hover{border-color:rgba(124,92,252,.3);background:rgba(124,92,252,.04)}
.step-num{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#6144e8);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:1.1rem;margin:0 auto 20px;box-shadow:var(--shadow-accent)}
.step-connector{position:absolute;top:52px;right:-1px;width:1px;height:calc(100% - 104px);background:linear-gradient(180deg,var(--accent),transparent)}
.step-title{font-family:var(--font-display);font-size:1.1rem;font-weight:800;margin-bottom:8px}
.step-desc{font-size:.875rem;color:var(--text-2);line-height:1.65}

/* PRICING */
.pricing-grid{display:flex;gap:20px;justify-content:center;align-items:stretch}
.pricing-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:32px;flex:1;display:flex;flex-direction:column;transition:all .25s;position:relative;overflow:hidden;max-width:380px;backdrop-filter:blur(16px)}
.pricing-card::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 40% at 50% -10%,rgba(124,92,252,.06) 0%,transparent 60%);pointer-events:none}
.pricing-card:hover{transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,.4)}
.pricing-card.popular{border-color:rgba(124,92,252,.5);box-shadow:0 0 0 1px rgba(124,92,252,.3),0 0 60px rgba(124,92,252,.15)}
.pricing-card.popular::after{background:radial-gradient(ellipse 80% 40% at 50% -10%,rgba(124,92,252,.12) 0%,transparent 60%)}
.popular-badge{position:absolute;top:16px;right:16px;background:linear-gradient(135deg,var(--accent),#6144e8);color:white;font-size:.7rem;font-weight:700;padding:4px 12px;border-radius:var(--radius-full);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 4px 12px rgba(124,92,252,.4)}
.price-tier{font-size:.78rem;font-weight:700;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
.price-amount{font-family:var(--font-display);font-size:3.5rem;font-weight:900;line-height:1;margin-bottom:6px}
.price-amount span{font-size:1.2rem;color:var(--text-2);vertical-align:super}
.price-period{font-size:.82rem;color:var(--text-3);margin-bottom:24px}
.price-divider{border:none;border-top:1px solid var(--glass-border);margin:20px 0}
.price-features{flex:1;display:flex;flex-direction:column;gap:12px;margin-bottom:28px}
.price-feature{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--text-2)}
.price-check{color:var(--accent);flex-shrink:0;width:16px;height:16px}

/* FOOTER */
footer{border-top:1px solid var(--glass-border);padding:52px 24px;max-width:1180px;margin:0 auto}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:32px}
.footer-brand .logo{font-family:var(--font-display);font-size:1.2rem;font-weight:800;margin-bottom:8px}
.footer-brand .logo span{color:var(--accent)}
.footer-tagline{font-size:.85rem;color:var(--text-3)}
.footer-links{display:flex;gap:24px}
.footer-links a{font-size:.875rem;color:var(--text-3);transition:color .2s;cursor:pointer}
.footer-links a:hover{color:var(--text)}
.footer-copy{font-size:.78rem;color:var(--text-3);margin-top:32px;padding-top:24px;border-top:1px solid var(--glass-border)}

/* section helpers */
.section{padding:100px 24px;max-width:1180px;margin:0 auto}
.section-label{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;opacity:.9}
.section-title{font-family:var(--font-display);font-size:clamp(1.9rem,4vw,3.2rem);font-weight:900;line-height:1.08;letter-spacing:-.03em;margin-bottom:16px}
.section-sub{font-size:1.05rem;color:var(--text-2);max-width:480px;line-height:1.7}
.section-header{margin-bottom:60px}

/* AUTH */
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:88px 24px 48px}
.auth-card{background:var(--bg-2);border:1px solid var(--border);border-radius:24px;padding:40px;width:100%;max-width:440px}
.auth-logo{text-align:center;margin-bottom:8px}
.auth-logo .mark{width:48px;height:48px;background:var(--accent);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:1.3rem;color:white;box-shadow:var(--shadow-accent)}
.auth-title{font-family:var(--font-display);font-size:1.7rem;font-weight:800;text-align:center;margin-bottom:6px}
.auth-sub{font-size:.88rem;color:var(--text-2);text-align:center;margin-bottom:32px}
.auth-form{display:flex;flex-direction:column;gap:16px}
.auth-footer{text-align:center;margin-top:20px;font-size:.88rem;color:var(--text-2)}
.auth-footer a{color:var(--accent);font-weight:600;cursor:pointer}
.auth-footer a:hover{text-decoration:underline}

/* SUBSCRIBE */
.subscribe-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:88px 24px 48px}

/* DASHBOARD */
#view-dashboard{padding-top:64px;min-height:100vh}
.dashboard-layout{display:block;position:relative}

/* Sidebar - deep purple-black glass with visible gradient */
.sidebar{width:256px;background:linear-gradient(180deg,#0c0820 0%,#080b18 60%,#07080f 100%);border-right:1px solid rgba(124,92,252,.25);padding:20px 14px;display:flex;flex-direction:column;position:fixed;top:64px;left:0;bottom:0;overflow-x:hidden;overflow-y:auto;z-index:10;box-sizing:border-box;box-shadow:4px 0 40px rgba(0,0,0,.6),inset -1px 0 0 rgba(124,92,252,.15)}
.sidebar::before{content:'';position:absolute;top:0;left:0;right:0;height:200px;background:radial-gradient(ellipse 120% 60% at 50% 0%,rgba(124,92,252,.18) 0%,transparent 70%);pointer-events:none}
.sidebar-user{background:linear-gradient(135deg,rgba(124,92,252,.18),rgba(124,92,252,.06));border:1px solid rgba(124,92,252,.3);border-radius:14px;padding:12px 14px;flex-shrink:0;display:flex;align-items:center;gap:10px;min-width:0;box-shadow:0 4px 16px rgba(124,92,252,.15)}
.sidebar-user-text{flex:1;min-width:0}
.sidebar-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:1rem;flex-shrink:0;overflow:hidden;box-shadow:0 0 0 2px rgba(124,92,252,.6),0 0 16px rgba(124,92,252,.4);transition:box-shadow .3s,transform .2s}
.sidebar-avatar:hover{box-shadow:0 0 0 3px var(--accent),0 0 28px rgba(124,92,252,.6);transform:scale(1.06)}
.sidebar-name{font-weight:700;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-handle{font-size:.75rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-view-link{display:inline-flex;align-items:center;gap:5px;font-size:.73rem;color:var(--accent);font-weight:600;cursor:pointer;transition:opacity var(--transition);margin-top:2px}
.sidebar-view-link:hover{opacity:.7}
.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex-shrink:0;width:100%}

/* Nav items - visible active state with purple left accent bar */
.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;font-size:.88rem;font-weight:500;color:rgba(255,255,255,.55);background:transparent;cursor:pointer;transition:all .2s;border:1px solid transparent;text-align:left;width:100%;max-width:228px;box-sizing:border-box;position:relative}
.sidebar-nav-item:hover{color:rgba(255,255,255,.9);background:rgba(255,255,255,.06);transform:translateX(3px)}
.sidebar-nav-item.active{background:linear-gradient(135deg,rgba(124,92,252,.28),rgba(124,92,252,.1));color:#c4b0ff;font-weight:700;border:1px solid rgba(124,92,252,.4);box-shadow:0 2px 20px rgba(124,92,252,.2),inset 0 0 20px rgba(124,92,252,.06)}
.sidebar-nav-item.active::before{content:'';position:absolute;left:0;top:25%;bottom:25%;width:3px;background:var(--accent);border-radius:0 3px 3px 0;box-shadow:0 0 10px var(--accent)}
.sidebar-nav-item.nav-referrals-hero{margin-bottom:6px;background:linear-gradient(135deg,rgba(255,184,0,.16),rgba(124,92,252,.14));border:1px solid rgba(255,184,0,.4);box-shadow:0 0 0 1px rgba(255,184,0,.08),0 4px 18px rgba(255,184,0,.15);color:#ffd873;font-weight:700;animation:referralsGlow 2.6s ease-in-out infinite}
.sidebar-nav-item.nav-referrals-hero:hover{background:linear-gradient(135deg,rgba(255,184,0,.24),rgba(124,92,252,.2));color:#ffe6a3;transform:translateX(3px)}
.sidebar-nav-item.nav-referrals-hero.active{background:linear-gradient(135deg,rgba(255,184,0,.28),rgba(124,92,252,.22));border-color:rgba(255,184,0,.55);color:#ffe6a3}
.nav-referrals-badge{margin-left:auto;font-size:.6rem;font-weight:800;letter-spacing:.04em;background:linear-gradient(135deg,#ffb800,#ff7a00);color:#1a0f00;padding:2px 6px;border-radius:20px;flex-shrink:0;box-shadow:0 0 8px rgba(255,140,0,.5)}
@keyframes referralsGlow{0%,100%{box-shadow:0 0 0 1px rgba(255,184,0,.08),0 4px 18px rgba(255,184,0,.15)}50%{box-shadow:0 0 0 1px rgba(255,184,0,.18),0 4px 26px rgba(255,184,0,.35)}}
.more-sheet-item.more-referrals-hero{background:linear-gradient(135deg,rgba(255,184,0,.18),rgba(124,92,252,.14));border:1px solid rgba(255,184,0,.4);color:#ffd873;font-weight:700;margin-bottom:6px}
.more-sheet-item.more-referrals-hero:active{background:linear-gradient(135deg,rgba(255,184,0,.26),rgba(124,92,252,.2))}
.more-btn-dot{display:none;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#ffb800,#ff7a00);box-shadow:0 0 6px rgba(255,140,0,.7);position:absolute;top:6px;right:calc(50% - 20px);animation:referralsGlow 1.6s ease-in-out infinite}
.nav-updates-dot{width:9px;height:9px;border-radius:3px;background:#ff3b5c;box-shadow:0 0 8px 2px rgba(255,59,92,.85);margin-left:auto;flex-shrink:0;animation:updatesPulse 1.8s ease-in-out infinite}
@keyframes updatesPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}
.leaderboard-list{display:flex;flex-direction:column;gap:8px;max-width:640px}
.lb-row{display:flex;align-items:center;gap:14px;background:var(--bg-2,#161616);border:1px solid var(--border);border-radius:14px;padding:14px 18px}
.lb-row.is-me{border-color:rgba(124,92,252,.55);background:rgba(124,92,252,.08)}
.lb-rank{width:28px;flex-shrink:0;font-weight:800;font-size:1.05rem;color:var(--text-2);text-align:center}
.lb-row:nth-child(1),.lb-row:nth-child(2),.lb-row:nth-child(3){padding:20px 24px;border-radius:18px}
.lb-row:nth-child(1){transform:scale(1.05);z-index:1}
.lb-row:nth-child(1) .lb-rank{color:#ffd873;font-size:1.5rem;width:36px}
.lb-row:nth-child(2) .lb-rank{color:#d7d9e0;font-size:1.3rem;width:34px}
.lb-row:nth-child(3) .lb-rank{color:#e0a56f;font-size:1.25rem;width:32px}
.lb-row:nth-child(1) .lb-avatar,.lb-row:nth-child(1) .lb-avatar-blank{width:52px;height:52px}
.lb-row:nth-child(2) .lb-avatar,.lb-row:nth-child(2) .lb-avatar-blank{width:46px;height:46px}
.lb-row:nth-child(3) .lb-avatar,.lb-row:nth-child(3) .lb-avatar-blank{width:44px;height:44px}
.lb-row:nth-child(1) .lb-name{font-size:1.15rem}
.lb-row:nth-child(2) .lb-name,.lb-row:nth-child(3) .lb-name{font-size:1.05rem}
.lb-row:nth-child(1) .lb-score{font-size:1.15rem}
.lb-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--bg,#0b0b0b)}
.lb-avatar-blank{display:flex;align-items:center;justify-content:center;color:var(--text-3,#6b7280);border:1px solid var(--border)}
.lb-name{flex:1;font-weight:700}
.lb-score{font-weight:800;color:var(--accent);flex-shrink:0}
#view-roadmap .dash-tab-title{font-size:2.4rem}
#view-roadmap .dash-tab-sub{font-size:1.05rem;margin-top:4px}
.roadmap-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:960px}
@media (max-width:760px){.roadmap-cols{grid-template-columns:1fr}}
.roadmap-col-head{display:flex;align-items:center;gap:8px;font-weight:800;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:14px;color:var(--text-2)}
.roadmap-col-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.roadmap-col-dot.planned{background:#8b93a7}
.roadmap-col-dot.in_progress{background:#ffb800}
.roadmap-col-dot.shipped{background:#34d399}
.roadmap-card{background:var(--bg-2,#161616);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:12px;transition:border-color .2s}
.roadmap-card:hover{border-color:rgba(124,92,252,.35)}
.roadmap-card-title{font-weight:700;font-size:.98rem;margin-bottom:4px}
.roadmap-card-body{font-size:.86rem;color:var(--text-2);line-height:1.55;white-space:pre-wrap}
.roadmap-card-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.roadmap-card-actions select{font-size:.78rem;padding:5px 8px;border-radius:8px;background:var(--bg,#0d0d0d);border:1px solid var(--border);color:var(--text)}
.roadmap-card-actions button{flex-shrink:0}
.roadmap-empty-col{font-size:.82rem;color:var(--text-2);opacity:.6;font-style:italic}
.roadmap-composer{background:linear-gradient(160deg,rgba(124,92,252,.1),var(--bg-2,#161616) 55%);border:1px solid rgba(124,92,252,.3);border-radius:20px;padding:24px 26px;margin-bottom:26px;box-shadow:0 8px 28px rgba(0,0,0,.18);max-width:960px}
.roadmap-composer-title{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem;margin-bottom:16px}
.roadmap-composer-title i{color:var(--accent)}
.roadmap-composer input[type=text],.roadmap-composer textarea,.roadmap-composer select{width:100%;box-sizing:border-box;font-size:1rem;padding:12px 14px;border-radius:12px;margin-bottom:10px}
.roadmap-composer textarea{resize:vertical}

.sidebar-view-page-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:.88rem;font-weight:500;color:rgba(255,255,255,.5);background:transparent;cursor:pointer;transition:all .2s;border:none;text-align:left;width:100%;max-width:228px;box-sizing:border-box;margin-bottom:4px}
.sidebar-view-page-btn:hover{color:#c4b0ff;background:rgba(124,92,252,.12);transform:translateX(3px)}
.sidebar-logout{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:.85rem;color:rgba(255,255,255,.35);background:transparent;cursor:pointer;transition:all .2s;width:100%;max-width:228px;box-sizing:border-box;border:none}
.sidebar-logout:hover{background:rgba(239,68,68,.12);color:#fca5a5;transform:translateX(3px)}
/* "More" tab + bottom sheet: mobile-only, hidden on desktop */
.sidebar-more-btn{display:none}
.more-sheet-backdrop{display:none;position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);align-items:flex-end}
.more-sheet-backdrop.open{display:flex}
.more-sheet-panel{width:100%;background:rgba(12,8,32,.98);border-top:1px solid rgba(124,92,252,.3);border-radius:20px 20px 0 0;padding:8px 14px calc(20px + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 40px rgba(0,0,0,.6);animation:more-sheet-up .22s cubic-bezier(.2,.8,.2,1)}
@keyframes more-sheet-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
.more-sheet-grip{width:40px;height:4px;border-radius:2px;background:rgba(255,255,255,.2);margin:8px auto 14px}
.more-sheet-item{display:flex;align-items:center;gap:14px;width:100%;padding:15px 12px;border:none;background:transparent;color:rgba(255,255,255,.75);font-size:.95rem;font-weight:500;text-align:left;cursor:pointer;border-radius:12px}
.more-sheet-item:active{background:rgba(255,255,255,.06)}
.more-sheet-item.active{color:#c4b0ff;background:rgba(124,92,252,.14)}
.more-sheet-item i{width:20px;height:20px;flex-shrink:0}
/* Get more links: profile switcher (main page + extra pages) */
.profile-switcher{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border);flex-shrink:0}
.profile-switcher-label{font-size:.68rem;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;padding:0 14px 4px}
.profile-switch-item{display:flex;align-items:center;gap:9px;padding:8px 14px;border-radius:10px;font-size:.83rem;font-weight:600;color:rgba(255,255,255,.6);background:transparent;cursor:pointer;transition:all .2s;border:1px solid transparent;text-align:left;width:100%;max-width:228px;box-sizing:border-box}
.profile-switch-item:hover{color:rgba(255,255,255,.95);background:rgba(255,255,255,.06)}
.profile-switch-item.active{background:rgba(124,92,252,.16);color:#c4b0ff;border-color:rgba(124,92,252,.35)}
.profile-switch-dot{width:22px;height:22px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:900;color:#fff;flex-shrink:0;overflow:hidden}
.profile-switch-dot img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.profile-switch-handle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.extra-profile-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.extra-profile-info{flex:1;min-width:140px}

/* Main content area */
.dashboard-main{margin-left:256px;padding:36px 44px;min-height:calc(100vh - 64px);max-width:860px;position:relative}
/* Analytics and site stats are chart-led - the 860px reading column squeezes a month of
   data into an unreadable sliver, so those two tabs get the full width. */
.dashboard-main:has(#tab-sitestats.active),
.dashboard-main:has(#tab-analytics.active){max-width:1280px}
.dashboard-main::before{content:'';position:fixed;top:64px;left:256px;right:0;bottom:0;background:radial-gradient(ellipse 55% 45% at 75% 25%,rgba(124,92,252,.09) 0%,transparent 60%),radial-gradient(ellipse 35% 40% at 20% 80%,rgba(34,211,238,.05) 0%,transparent 60%);pointer-events:none;z-index:0}

/* Tab transitions */
.dash-tab{display:none;position:relative;z-index:1}
.dash-tab.active{display:block;animation:tab-enter .4s var(--ease-expo)}
/* opacity-only: a transform here would change the containing block for the
   position:fixed live-preview panel inside #tab-links, making it render in the
   wrong spot for the animation's duration before jumping to its real position */
@keyframes tab-enter{from{opacity:0}to{opacity:1}}
.dash-tab-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:32px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.07)}
.dash-tab-title{font-family:var(--font-display);font-size:1.7rem;font-weight:900;letter-spacing:-.03em;background:linear-gradient(135deg,#fff 40%,rgba(124,92,252,.9));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.dash-tab-sub{font-size:.82rem;color:var(--text-3);margin-top:3px}

/* Link cards - glass with gradient border + visible hover glow */
.links-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.link-card{background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.02) 100%);border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:14px 18px;display:flex;align-items:center;gap:14px;transition:all .25s,opacity .15s;cursor:default;position:relative;overflow:hidden}
.link-card.drag-over{border-color:rgba(124,92,252,.7);background:linear-gradient(135deg,rgba(124,92,252,.18),rgba(124,92,252,.06));box-shadow:0 0 0 2px rgba(124,92,252,.3)}
.link-card.dragging{opacity:.4;scale:.98}
.drag-handle{display:flex;align-items:center;padding:2px 4px;cursor:grab;color:var(--text-3);border-radius:6px;transition:color .2s;flex-shrink:0}
.drag-handle:hover{color:var(--accent)}
.drag-handle:active{cursor:grabbing}
.link-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--accent),transparent);opacity:0;transition:opacity .25s;border-radius:16px 0 0 16px}
.link-card:hover{background:linear-gradient(135deg,rgba(124,92,252,.16),rgba(124,92,252,.05));border-color:rgba(124,92,252,.45);transform:translateX(4px);box-shadow:0 8px 40px rgba(0,0,0,.4),0 0 0 1px rgba(124,92,252,.2),-8px 0 32px rgba(124,92,252,.12)}
.link-card:hover::before{opacity:1}
.link-icon{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,rgba(124,92,252,.25),rgba(124,92,252,.1));border:1px solid rgba(124,92,252,.35);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);transition:all .2s}
.link-card:hover .link-icon{background:linear-gradient(135deg,rgba(124,92,252,.4),rgba(124,92,252,.2));box-shadow:0 0 16px rgba(124,92,252,.4);transform:scale(1.1) rotate(-4deg)}
.link-icon svg{width:17px;height:17px}
.link-icon.has-photo{background:none;border-color:rgba(255,255,255,.12);overflow:hidden;padding:0}
.link-icon.has-photo img{width:100%;height:100%;object-fit:cover}
.link-card:hover .link-icon.has-photo{transform:scale(1.06)}
.link-info{flex:1;min-width:0}
.link-title{font-weight:700;font-size:.92rem;margin-bottom:2px;display:flex;align-items:center;gap:7px;min-width:0}
.link-url{font-size:.77rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* State at a glance: a switched-off link reads as off without hunting for the toggle */
.link-badge{flex-shrink:0;font-size:.63rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:99px;line-height:1.5}
.link-badge.is-off{background:rgba(255,255,255,.09);color:var(--text-3)}
.link-badge.is-18{background:rgba(244,63,94,.16);color:#fb7185}
.link-card.is-off{opacity:.55}
.link-card.is-off:hover{opacity:1}
.link-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.link-action-btn{width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:var(--text-3);cursor:pointer;transition:all .18s}
.link-action-btn:hover{background:rgba(255,255,255,.1);color:white;transform:scale(1.12);border-color:rgba(255,255,255,.2)}
.link-action-btn.delete:hover{background:rgba(239,68,68,.18);color:#fca5a5;border-color:rgba(239,68,68,.4);transform:scale(1.12)}

/* Add link form */
.add-link-form{background:linear-gradient(135deg,rgba(124,92,252,.1),rgba(124,92,252,.04));border:1px solid rgba(124,92,252,.3);border-radius:18px;padding:22px;margin-bottom:22px;display:none;box-shadow:0 8px 40px rgba(0,0,0,.3),0 0 0 1px rgba(124,92,252,.1)}
.add-link-form.open{display:block;animation:form-drop .35s var(--ease-expo)}
@keyframes form-drop{from{opacity:0;transform:translateY(-16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.add-link-form .form-row{display:flex;gap:12px}
.add-link-form .form-row .form-group{flex:1}

/* Import from another link-in-bio */
.imp-head{font-size:.78rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 10px}
.imp-list{max-height:38vh;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin:0 -4px;padding:0 4px}
.imp-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--glass-border);border-radius:12px;background:rgba(255,255,255,.03);cursor:pointer}
.imp-row input{width:17px;height:17px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}
.imp-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.imp-title{font-size:.87rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-url{font-size:.72rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-lock{flex-shrink:0;color:var(--accent);display:flex}
.imp-hint{font-size:.78rem;color:var(--text-3);margin-top:10px;line-height:1.5}
.imp-cta{display:block;width:100%;margin-top:12px;background:none;border:none;color:var(--accent);font-size:.82rem;font-weight:600;cursor:pointer;text-align:center;padding:6px;font-family:inherit}
.imp-cta:hover{text-decoration:underline}

/* Empty state */
.empty-state{text-align:center;padding:64px 24px;background:linear-gradient(135deg,rgba(124,92,252,.07),rgba(124,92,252,.02));border:1.5px dashed rgba(124,92,252,.25);border-radius:22px}
.empty-icon{font-size:3rem;margin-bottom:16px}
.empty-title{font-family:var(--font-display);font-size:1.2rem;font-weight:800;margin-bottom:8px}
.empty-desc{font-size:.88rem;color:var(--text-2);margin-bottom:24px}

/* Analytics - big and bold */
/* auto-fit, not a fixed 4-up: the dashboard column is much narrower than the viewport,
   so viewport media queries alone leave the cards squeezed on a wide screen. */
.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:20px}
.analytics-card{background:linear-gradient(135deg,rgba(124,92,252,.14) 0%,rgba(124,92,252,.04) 100%);border:1px solid rgba(124,92,252,.25);border-radius:18px;padding:24px;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s;cursor:default}
.analytics-card::before{content:'';position:absolute;top:-1px;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,rgba(124,92,252,.8),transparent)}
.analytics-card::after{content:'';position:absolute;top:0;right:0;width:80px;height:80px;background:radial-gradient(circle,rgba(124,92,252,.2) 0%,transparent 70%);pointer-events:none}
.analytics-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.4),0 0 0 1px rgba(124,92,252,.3)}
.analytics-card .label{font-size:.72rem;color:rgba(196,176,255,.7);text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:12px}
.analytics-card .value{font-family:var(--font-display);font-size:2.6rem;font-weight:900;background:linear-gradient(135deg,#fff,#c4b0ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.analytics-card .sublabel{font-size:.74rem;color:rgba(255,255,255,.35);margin-top:8px}
.analytics-card-icon{position:absolute;top:18px;right:18px;width:18px;height:18px;color:rgba(196,176,255,.55)}
.bar-chart-section{background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:28px}
.bar-chart-title{font-weight:700;font-size:.72rem;margin-bottom:28px;color:rgba(255,255,255,.6);letter-spacing:.04em;text-transform:uppercase}
/* Main traffic chart (SVG). Bars for short ranges, filled areas for long ones. */
.analytics-bars{position:relative;margin-top:4px}
.an-chart{display:block;width:100%;height:auto;overflow:visible}
.an-grid{stroke:rgba(255,255,255,.055);stroke-width:1;stroke-dasharray:2 5}
.an-grid.is-base{stroke:rgba(255,255,255,.14);stroke-dasharray:none}
.an-axis-y{fill:rgba(255,255,255,.3);font-size:11px;font-weight:500;text-anchor:end;letter-spacing:.02em}
.an-axis-x{fill:rgba(255,255,255,.42);font-size:11px;font-weight:600;text-anchor:middle;letter-spacing:.06em;text-transform:uppercase}
.an-bar{transform-origin:bottom;animation:bar-rise .5s var(--ease-expo) forwards}
.an-bar.v{fill:url(#anGradV)}
.an-bar.c{fill:url(#anGradC)}
.an-bar-val{fill:rgba(255,255,255,.55);font-size:11px;font-weight:600;text-anchor:middle;letter-spacing:.02em}
/* Combined "views Â· clicks" label used when a column is too narrow for one per bar - 
   tinted per series so the pair stays readable without a legend lookup. */
.an-bar-val .v{fill:#b9adff}
.an-bar-val .c{fill:#ff9db3}
.an-bar-val .sep{fill:rgba(255,255,255,.3)}
.an-marker{fill:rgba(255,255,255,.045);pointer-events:none}
.an-hit{fill:transparent;cursor:pointer}
.an-hit.selected{fill:rgba(255,92,124,.12);stroke:rgba(255,143,168,.35)}
/* Chart header: title + live readout on the left, series toggles on the right */
.an-chart-head{align-items:flex-start}
.an-chart-head-left{min-width:0}
.an-readout{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:.82rem;font-weight:700}
.an-ro-label{color:var(--text-2)}
.an-readout i{width:8px;height:8px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:middle}
.an-ro-v{color:#c4b0ff}.an-ro-v i{background:#8b7cf8}
.an-ro-c{color:#ffb3c4}.an-ro-c i{background:#f2708f}
.bar-detail{margin-top:6px;border-top:1px solid var(--glass-border);padding-top:14px}
.bar-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.bar-detail-title{font-weight:800;font-size:.95rem}
.bar-detail-close{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:1.1rem;line-height:1;padding:4px 8px;border-radius:8px}
.bar-detail-close:hover{color:var(--text);background:rgba(255,255,255,.06)}
.bar-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.bar-detail-stat{background:rgba(124,92,252,.08);border:1px solid rgba(124,92,252,.18);border-radius:12px;padding:10px 12px}
.bar-detail-stat .k{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:700}
.bar-detail-stat .v{font-size:1.25rem;font-weight:800;margin-top:2px}
.bar-detail-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bar-detail-col h5{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:0 0 8px;font-weight:700}
.bar-detail-line{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.82rem;padding:4px 0}
.bar-detail-line span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-detail-line span:last-child{color:var(--accent);font-weight:700}
.bar-detail-empty{color:var(--text-3);font-size:.8rem}
.hour-chart{margin-bottom:16px}
.hour-chart-legend{display:flex;gap:14px;align-items:center;font-size:.7rem;color:var(--text-3);font-weight:600;margin-bottom:8px}
.hour-chart-legend i{width:8px;height:8px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:middle}
.hour-bars{display:flex;align-items:flex-end;gap:4px;height:170px;padding:0 14px 22px;border-bottom:1px solid rgba(255,255,255,.08)}
.hour-col{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px;height:100%;position:relative;border-radius:6px 6px 0 0;transition:background .15s}
.hour-col:hover{background:rgba(255,255,255,.05)}
/* The tick sits under the axis line, so it needs its own stacking room - 
   bottom:-19px lines it up with the 22px padding the bars reserve. */
.hour-col::after{content:attr(data-label);position:absolute;bottom:-19px;left:50%;transform:translateX(-50%);font-size:.66rem;font-weight:600;color:rgba(255,255,255,.45);white-space:nowrap;pointer-events:none}
.hour-col.dim{opacity:.5}
.hour-seg{width:42%;min-height:2px;border-radius:3px 3px 0 0}
.hour-seg.v{background:linear-gradient(180deg,#a78bfa,rgba(124,92,252,.3))}
.hour-seg.c{background:linear-gradient(180deg,#ff8fa8,rgba(255,92,124,.3))}
@media(max-width:720px){.bar-detail-cols{grid-template-columns:1fr}.bar-detail-stats{grid-template-columns:repeat(3,1fr)}
  /* 3-hour ticks collide on a phone - keep only 00/06/12/18 (every other one). */
  .hour-bars{height:140px;gap:2px;padding:0 8px 22px}.hour-col:nth-child(6n+4)::after{content:''}}
@keyframes bar-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* Analytics toolbar - title and range control on one line */
.an-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.an-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.an-toolbar .analytics-range-tabs{margin-bottom:0}
/* KPI card extras: delta chip vs previous window + sparkline */
.an-kpi-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;position:relative;z-index:1}
.an-kpi-foot .sublabel{margin-top:0}
.an-delta{font-size:.7rem;font-weight:800;letter-spacing:.02em;padding:2px 7px;border-radius:999px;white-space:nowrap}
.an-delta:empty{display:none}
.an-delta.is-up{color:#6ee7b7;background:rgba(34,197,94,.14)}
.an-delta.is-down{color:#ff8fa8;background:rgba(255,92,124,.14)}
.an-delta.is-flat{color:var(--text-3);background:rgba(255,255,255,.07)}
.an-spark{position:absolute;left:0;right:0;bottom:0;height:34px;opacity:.85;pointer-events:none}
.an-spark svg{width:100%;height:100%;display:block}
/* Insight strip - the plain-language read of the range */
.an-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0 0 16px}
.an-insight{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}
.an-insight i{width:17px;height:17px;color:#a78bfa;flex-shrink:0}
.an-insight-k{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--text-3)}
.an-insight-v{font-size:.85rem;font-weight:700;margin-top:2px}
/* Card head + chart legend */
.an-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.bar-chart-section.compact .an-card-head{margin-bottom:10px}
.an-card-hint{font-size:.7rem;color:var(--text-3);font-weight:600}
.an-legend{display:flex;gap:6px}
.an-legend-item{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.09);background:transparent;color:var(--text-3);font-family:var(--font-body);font-size:.72rem;font-weight:700;cursor:pointer;opacity:.5;transition:opacity .15s,border-color .15s}
.an-legend-item.is-on{opacity:1;color:var(--text-2);border-color:rgba(255,255,255,.16)}
.an-legend-dot{width:9px;height:9px;border-radius:3px;display:inline-block}
.an-legend-dot.v{background:#8b7cf8}
.an-legend-dot.c{background:#f2708f}
/* Ranked source rows - identity line, then a full-width share bar */
.src-row{display:grid;grid-template-columns:14px 26px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.src-row:last-child{border-bottom:none}
.src-rank{font-size:.72rem;font-weight:800;color:var(--text-3);text-align:center}
.src-row-logo{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.src-row-logo svg{width:15px;height:15px}
.src-row-label{min-width:0;overflow:hidden}
.src-row-val{font-size:.82rem;color:var(--accent);font-weight:700;text-align:right}
.src-row-track{grid-column:3/-1;margin-top:2px}
/* Analytics range selector */
.analytics-range-tabs{display:flex;gap:6px;margin-bottom:20px;background:rgba(255,255,255,.04);border-radius:12px;padding:4px;width:fit-content}
.analytics-range-tab{padding:6px 16px;border-radius:9px;font-size:.78rem;font-weight:700;cursor:pointer;border:none;background:transparent;color:var(--text-2);transition:all .2s;font-family:var(--font-body)}
.analytics-range-tab.active{background:rgba(124,92,252,.25);color:#c4b0ff;box-shadow:0 2px 8px rgba(124,92,252,.2)}
.analytics-range-tab:hover:not(.active){color:var(--text);background:rgba(255,255,255,.06)}
/* Fanvue panel: collapsible, closed by default each visit - clearly clickable */
.svc-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;user-select:none;padding:6px 8px;margin:-6px -8px 0;border-radius:10px;transition:background .15s}
.svc-toggle:hover{background:rgba(110,231,183,.08)}
.svc-toggle .bar-chart-title{margin-bottom:0}
.svc-toggle-hint{display:flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;color:#6ee7b7;background:rgba(110,231,183,.12);border:1px solid rgba(110,231,183,.28);border-radius:999px;padding:4px 10px}
.svc-toggle-hint .chev{transition:transform .2s;display:inline-block}
.svc-toggle.open .svc-toggle-hint .chev{transform:rotate(180deg)}
.svc-body{max-height:0;overflow:hidden;transition:max-height .25s ease}
.svc-body.open{max-height:1000px;margin-top:16px}

/* Compact variant for the "Get accurate source tracking" section */
.bar-chart-section.compact{padding:16px 18px}
.bar-chart-section.compact .bar-chart-title{margin-bottom:6px;font-size:.68rem}
.bar-chart-section.compact .bar-chart-desc{font-size:.72rem;color:var(--text-3);margin-bottom:8px;line-height:1.4}
/* stretch, not start: a short card next to a tall one used to leave a stub floating
   half-way up the row. */
.analytics-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
@media (max-width:820px){.analytics-2col{grid-template-columns:1fr}}

/* Shared row layout for source-breakdown + link-ctr-breakdown so both panels' bar
   tracks start/end at the same x offset regardless of label text length. */
.bd-row{display:grid;grid-template-columns:minmax(0,120px) 1fr 40px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.bd-row-label{min-width:0;overflow:hidden}
.bd-row-title{font-weight:600;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-row-sub{font-size:.66rem;color:var(--text-3);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bd-row-track{height:6px;border-radius:3px;background:rgba(124,92,252,.15);overflow:hidden}
.bd-row-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),#9478fd);transition:width .6s var(--ease-expo)}
.bd-row-val{font-size:.82rem;color:var(--accent);font-weight:700;text-align:right}

/* Source-tracking chips - brand logo + name; click the whole chip to copy that
   platform's tracked link. */
.src-grid{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}
.src-chip{display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 7px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);color:var(--text);font-family:var(--font-body);font-size:.85rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,transform .12s}
.src-chip:hover{border-color:rgba(124,92,252,.5);background:rgba(124,92,252,.08);transform:translateY(-1px)}
.src-chip:active{transform:translateY(0)}
.src-chip-logo{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.src-chip-logo svg{width:15px;height:15px}
.src-chip-name{white-space:nowrap}
.src-chip-copy{display:inline-flex;color:var(--text-3);transition:color .15s}
.src-chip-copy svg{width:14px;height:14px}
.src-chip:hover .src-chip-copy{color:#c4b0ff}
.src-chip.copied{border-color:rgba(61,220,132,.5);background:rgba(61,220,132,.12);color:#3ddc84}
.src-chip.copied .src-chip-copy{color:#3ddc84}

.radar-stat{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px 10px;text-align:center}
.radar-stat-num{font-size:1.5rem;font-weight:900;color:#c4b0ff;line-height:1}
.radar-stat-label{font-size:.72rem;color:var(--text-2);margin-top:6px;text-transform:uppercase;letter-spacing:.04em}
.radar-bot-chip{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:99px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.28);color:#fca5a5}
.radar-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.06);font-size:.82rem}
.radar-item:first-child{border-top:none}
.radar-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.radar-item-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.radar-item-time{color:var(--text-3);font-size:.72rem;flex-shrink:0}
/* Hour-of-day clock (Analytics tab) */
.clock-head{display:flex;align-items:center;gap:11px;margin-bottom:6px}
.clock-head-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:rgba(124,92,252,.16);color:#a78bfa}
.clock-head-sub{font-size:.76rem;color:var(--text-3)}
.hour-clock-svg{display:block;width:100%;max-width:340px;margin:0 auto}
.hour-seg{transition:opacity .15s}
.hour-clock-svg:hover .hour-seg{opacity:.55}
.hour-clock-svg .hour-seg:hover{opacity:1}
.hour-seg.is-peak{filter:drop-shadow(0 0 7px rgba(124,92,252,.85))}
.hour-tick{fill:var(--text-3);font-size:12px;font-weight:600;text-anchor:middle;dominant-baseline:middle}
.hour-center-label{fill:var(--text-3);font-size:11px;font-weight:700;letter-spacing:.13em;text-anchor:middle}
.hour-center-val{fill:var(--text);font-size:34px;font-weight:800;text-anchor:middle}
.hour-center-sub{fill:var(--text-3);font-size:12px;text-anchor:middle}
.clock-scale{display:flex;align-items:center;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06);font-size:.68rem;letter-spacing:.1em;color:var(--text-3)}
.clock-scale-bar{flex:1;height:6px;border-radius:3px;background:linear-gradient(90deg,rgba(124,92,252,.12),#7c5cfc)}
.clock-scale-range{color:var(--text-3);letter-spacing:0}
/* Device split */
.device-hero{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.device-hero-pct{font-size:2.4rem;font-weight:800;line-height:1}
.device-hero-sym{font-size:1.3rem;font-weight:700;margin-left:2px}
.device-hero-label{font-size:.85rem;color:var(--text-2)}
.device-hero-bar{height:7px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden;margin:12px 0 6px}
.device-hero-fill{height:100%;border-radius:4px;transition:width .4s}
.device-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid rgba(255,255,255,.06);font-size:.86rem}
.device-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.device-row-icon{width:15px;height:15px;color:var(--text-3);flex-shrink:0}
.device-row-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.device-row-val{font-weight:700}
.device-row-pct{color:var(--text-3);font-size:.78rem;min-width:48px;text-align:right}

/* Anti-ban rotation banner - sits between the bot chips and the event feed */
#radar-relay{background:rgba(34,197,94,.07);border:1px solid rgba(34,197,94,.22);border-radius:12px;padding:11px 13px;margin-bottom:14px}
.radar-relay-row{display:flex;align-items:center;gap:10px;font-size:.82rem}
.dmbot-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dmbot-label-row label{margin-bottom:0}
.dmbot-fill{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:700;color:var(--accent);background:none;border:none;cursor:pointer;padding:2px 0;flex-shrink:0}
.dmbot-fill:hover{opacity:.75}
.sec-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.sec-row-title{font-weight:700;margin-bottom:3px}
.sec-row-desc{font-size:.82rem;color:var(--text-2);line-height:1.45;max-width:520px}
.sec-badge{font-size:.7rem;font-weight:800;padding:4px 10px;border-radius:99px;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}
.sec-badge-on{background:rgba(61,220,132,.14);border:1px solid rgba(61,220,132,.32);color:#3ddc84}
.sec-badge-ultra{background:linear-gradient(135deg,rgba(251,191,36,.16),rgba(236,72,153,.16));border:1px solid rgba(251,191,36,.4);color:#fbbf24;margin-left:8px;vertical-align:middle;letter-spacing:.06em}
.sec-row-ultra{background:linear-gradient(90deg,rgba(251,191,36,.05),transparent 60%);margin:0 -24px;padding-left:24px;padding-right:24px;border-radius:12px}
.sec-row-ultra .sec-row-desc{max-width:600px}
.sec-select{background:rgba(255,255,255,.06);border:1px solid rgba(124,92,252,.3);color:var(--text);border-radius:9px;padding:8px 12px;font-size:.82rem;font-weight:700;font-family:var(--font-body);cursor:pointer;flex-shrink:0}
/* Segmented picker - replaces the native <select> so the choice is visible at a
   glance instead of hidden behind a dropdown. */
.seg{display:inline-flex;background:rgba(255,255,255,.05);border:1px solid var(--glass-border);border-radius:10px;padding:3px;gap:2px;flex-shrink:0}
.seg-opt{padding:6px 14px;border-radius:8px;border:none;background:transparent;color:var(--text-3);font-family:var(--font-body);font-size:.8rem;font-weight:700;cursor:pointer;transition:color .15s,background .15s;white-space:nowrap}
.seg-opt:hover{color:var(--text-2)}
.seg-opt.is-active{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(124,92,252,.35)}
.seg-opt:disabled{opacity:.4;cursor:not-allowed}
.seg-opt:disabled:hover{color:var(--text-3)}
/* Geography card header: event count on the left, globe/map switch on the right */
.geo-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:-6px 0 12px}
.geo-seg .seg-opt{padding:5px 12px;font-size:.75rem}
#country-globe{touch-action:none}
@media(max-width:560px){
  /* let a full-width segmented control drop to its own line instead of overflowing the card */
  .sec-row{flex-wrap:wrap}
  .seg{width:100%;flex-shrink:1;box-sizing:border-box}
  .seg-opt{flex:1;padding:7px 8px;min-width:0}
}
/* Tracking-ID rows: stacked on mobile, input right-aligned on desktop */
.sec-row-id{align-items:flex-start}
.sec-optional{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);background:rgba(255,255,255,.06);border-radius:99px;padding:2px 8px;margin-left:8px;vertical-align:middle}
.sec-help{display:inline-block;margin-top:7px;font-size:.78rem;font-weight:600;color:var(--accent);cursor:pointer}
.sec-help:hover{text-decoration:underline}
.id-field{position:relative;flex-shrink:0;width:250px;max-width:100%}
.id-field input{width:100%;background:var(--bg-3);border:1px solid var(--glass-border);border-radius:10px;padding:11px 34px 11px 13px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;letter-spacing:.02em;transition:border-color .15s,box-shadow .15s}
.id-field input::placeholder{font-family:var(--font-body);letter-spacing:0;color:var(--text-3)}
.id-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,252,.15)}
.id-field.is-valid input{border-color:rgba(61,220,132,.5)}
.id-field.is-invalid input{border-color:rgba(248,113,113,.6)}
.id-status{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:.9rem;line-height:1;pointer-events:none}
@media(max-width:560px){.sec-row-id{flex-direction:column;gap:10px}.id-field{width:100%}}
/* Long-form guide entries (Tips & Tricks) */
.guide-body{font-size:.86rem;color:var(--text-2);margin-top:12px;line-height:1.65}
.guide-body p{margin:0 0 11px}
.guide-body h4{font-size:.9rem;font-weight:800;color:var(--text);margin:18px 0 8px}
.guide-body ul{margin:0 0 12px;padding-left:20px}
.guide-body li{margin-bottom:6px}
.guide-body b{color:var(--text)}
.guide-body code{background:rgba(255,255,255,.07);border:1px solid var(--glass-border);border-radius:5px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84em;color:var(--text)}
/* Add-link sheet: quick picks + single URL field */
.bs-sub{font-size:.85rem;color:var(--text-2);margin:-6px 0 16px;line-height:1.5}
.qp-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.qp-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px 7px 7px;border-radius:99px;background:rgba(255,255,255,.05);border:1px solid var(--glass-border);color:var(--text-2);font-family:var(--font-body);font-size:.82rem;font-weight:700;cursor:pointer;transition:border-color .15s,color .15s,transform .15s}
.qp-chip:hover{color:var(--text);border-color:rgba(124,92,252,.5);transform:translateY(-1px)}
.qp-logo{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.qp-logo svg{width:13px;height:13px}
.al-field{position:relative}
.al-field input{width:100%;background:var(--bg-3);border:1px solid var(--glass-border);border-radius:12px;padding:15px 50px 15px 15px;color:var(--text);font-size:1rem;transition:border-color .15s,box-shadow .15s}
.al-field input::placeholder{color:var(--text-3)}
.al-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,252,.15)}
.al-logo{position:absolute;right:13px;top:50%;transform:translateY(-50%);pointer-events:none}
.al-title-row{display:flex;align-items:center;gap:12px;margin-top:12px}
.al-title-row label{font-size:.78rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}
.al-title-row input{flex:1;min-width:0;background:transparent;border:none;border-bottom:1px solid var(--glass-border);padding:7px 2px;color:var(--text);font-size:.95rem;font-weight:600}
.al-title-row input:focus{outline:none;border-bottom-color:var(--accent)}
.al-error{font-size:.82rem;color:#f87171;margin-top:9px;min-height:1em}
/* Links tab: section grouping + collapsible cards
   The tab does two jobs - managing links, and configuring how the page looks.
   The link list stays open at the top; page settings collapse into accordions
   so the tab reads as a short menu instead of one long wall of forms. */
.dash-group{margin:26px 0 10px;display:flex;align-items:center;gap:10px}
.dash-group-label{font-size:.72rem;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}
.dash-group-rule{flex:1;height:1px;background:var(--glass-border)}
.acc{border:1px solid var(--glass-border);border-radius:14px;background:var(--bg-2);margin-bottom:10px;overflow:hidden;transition:border-color .18s}
.acc:hover{border-color:rgba(255,255,255,.14)}
.acc.open{border-color:var(--border-accent,rgba(124,92,252,.4))}
.acc-head{display:flex;align-items:center;gap:13px;width:100%;padding:15px 16px;background:none;border:none;color:inherit;font-family:inherit;text-align:left;cursor:pointer}
.acc-icon{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--accent-dim,rgba(124,92,252,.15));color:var(--accent)}
.acc-text{flex:1;min-width:0}
.acc-title{display:block;font-weight:700;font-size:.92rem;color:var(--text)}
.acc-summary{display:block;font-size:.78rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.acc-summary:empty{display:none}
.acc-chev{flex-shrink:0;color:var(--text-3);transition:transform .22s var(--ease-expo,cubic-bezier(.16,1,.3,1))}
.acc.open .acc-chev{transform:rotate(180deg)}
.acc-body{display:none;padding:2px 16px 16px}
.acc.open .acc-body{display:block}
.acc-body .autosave-note{margin-top:12px}
@media(max-width:560px){
  .acc-head{padding:13px 13px}
  .acc-body{padding:2px 13px 14px}
}
/* Link editor sheet */
.le-preview{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--bg-3);border:1px solid var(--glass-border);margin-bottom:18px}
.le-preview-thumb{width:54px;height:54px;border-radius:12px;flex-shrink:0;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;overflow:hidden}
.le-preview-thumb img{width:100%;height:100%;object-fit:cover}
.le-preview-text{min-width:0;flex:1}
.le-preview-title{font-weight:800;font-size:.95rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.le-preview-sub{font-size:.8rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.le-preview-url{font-size:.74rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.le-section{margin-top:20px}
.le-label{font-size:.72rem;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:block}
.le-input{width:100%;background:var(--bg-3);border:1px solid var(--glass-border);border-radius:11px;padding:12px 14px;color:var(--text);font-size:.95rem;font-family:var(--font-body);transition:border-color .15s,box-shadow .15s}
.le-input::placeholder{color:var(--text-3)}
.le-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim,rgba(124,92,252,.15))}
.le-hint{font-size:.76rem;color:var(--text-3);margin-top:6px}
/* Public-label hint once the URL is an 18+ destination - advice, not an error, so it
   reads as an accented note rather than a red validation message. */
.le-hint-warn{color:var(--text-2,var(--text));background:rgba(124,92,252,.1);border:1px solid rgba(124,92,252,.28);border-radius:9px;padding:8px 10px;line-height:1.45}
.le-photo{display:flex;align-items:center;gap:14px}
.le-photo-tile{width:96px;height:60px;border-radius:12px;flex-shrink:0;cursor:pointer;overflow:hidden;background:rgba(124,92,252,.1);border:1.5px dashed var(--border-accent,rgba(124,92,252,.35));display:flex;align-items:center;justify-content:center;color:var(--text-3);transition:border-color .15s,transform .15s}
.le-photo-tile:hover{transform:translateY(-1px);border-color:var(--accent)}
.le-photo-tile.has-img{border-style:solid}
.le-photo-tile img{width:100%;height:100%;object-fit:cover}
.le-photo-actions{display:flex;flex-wrap:wrap;gap:7px}
.le-swatches{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.le-sw{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;transition:transform .15s}
.le-sw:hover{transform:scale(1.1)}
.le-sw.active{border-color:#fff}
.le-sw.le-sw-none{background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;font-size:.62rem;color:var(--text-3)}
.le-footer{display:flex;gap:10px;margin-top:26px;padding-top:18px;border-top:1px solid var(--glass-border)}
.le-footer .btn{flex:1;padding:13px;font-size:.95rem}
.le-danger{background:none;border:none;color:#f87171;font-size:.82rem;font-weight:700;cursor:pointer;padding:12px;width:100%;margin-top:6px;border-radius:10px;transition:background .15s}
.le-danger:hover{background:rgba(248,113,113,.1)}
/* Social icon rows - label + inline domain prefix so a bare handle reads as valid */
.social-row{display:flex;align-items:center;gap:12px;padding:7px 0}
.social-row label{width:104px;flex-shrink:0;font-size:.84rem;font-weight:700;color:var(--text-2)}
.social-input{flex:1;min-width:0;display:flex;align-items:center;background:var(--bg-3);border:1px solid var(--glass-border);border-radius:10px;transition:border-color .15s,box-shadow .15s}
.social-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,252,.15)}
.social-prefix{padding:0 0 0 13px;font-size:.83rem;color:var(--text-3);white-space:nowrap;user-select:none}
.social-input input{flex:1;min-width:0;background:transparent;border:none;padding:11px 13px 11px 1px;color:var(--text);font-size:.9rem}
.social-input input:focus{outline:none}
.field-flash{animation:fieldFlash 1.4s ease}
@keyframes fieldFlash{0%,100%{box-shadow:none}20%,60%{box-shadow:0 0 0 3px rgba(124,92,252,.45)}}
@media(max-width:560px){.social-row{flex-direction:column;align-items:stretch;gap:5px;padding:6px 0}.social-row label{width:auto}}
/* Autosave indicator - replaces the old explicit Save buttons */
.autosave-note{margin-top:18px;font-size:.8rem;font-weight:600;color:var(--text-3);display:flex;align-items:center;gap:7px;transition:color .2s}
.autosave-note::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--text-3);transition:background .2s,box-shadow .2s}
.autosave-note.is-saving::before{background:#fbbf24}
.autosave-note.is-saved{color:#3ddc84}
.autosave-note.is-saved::before{background:#3ddc84;box-shadow:0 0 8px rgba(61,220,132,.6)}
.autosave-note.is-error{color:#f87171}
.autosave-note.is-error::before{background:#f87171}

/* Skeleton loader */
.skeleton{background:linear-gradient(90deg,rgba(255,255,255,.06) 25%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.06) 75%);background-size:200% 100%;animation:skeleton-sweep 1.4s ease infinite;border-radius:10px}
@keyframes skeleton-sweep{0%{background-position:200% 0}100%{background-position:-200% 0}}
.profile-skeleton{padding:60px 24px 80px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.profile-skeleton .sk-avatar{width:80px;height:80px;border-radius:50%}
.profile-skeleton .sk-name{width:140px;height:20px}
.profile-skeleton .sk-handle{width:90px;height:14px}
.profile-skeleton .sk-bio{width:200px;height:14px}
.profile-skeleton .sk-link{width:100%;max-width:340px;height:52px;border-radius:9999px;margin-top:6px}

/* Share card */
.share-card{background:linear-gradient(135deg,rgba(124,92,252,.15),rgba(124,92,252,.05));border:1px solid rgba(124,92,252,.3);border-radius:18px;padding:20px 24px;margin-bottom:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.share-card-url{flex:1;min-width:0;font-family:monospace;font-size:.88rem;color:var(--accent);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.share-card-actions{display:flex;gap:8px;flex-shrink:0}

/* Welcome / success modal */
.welcome-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:var(--radius-xl)}

/* Onboarding banner */
.onboarding-banner{background:linear-gradient(135deg,rgba(124,92,252,.18),rgba(124,92,252,.06));border:1px solid rgba(124,92,252,.35);border-radius:18px;padding:20px 24px;margin-bottom:20px;display:flex;align-items:flex-start;gap:16px}
.onboarding-steps{display:flex;flex-direction:column;gap:10px;margin-top:12px;flex:1}
.onboarding-step{display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--text-2)}
.onboarding-step .step-num{width:22px;height:22px;border-radius:50%;background:rgba(124,92,252,.25);border:1px solid rgba(124,92,252,.4);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--accent);flex-shrink:0}
.onboarding-step.done .step-num{background:rgba(34,197,94,.2);border-color:rgba(34,197,94,.4);color:#22c55e}
.onboarding-step.done{color:var(--text-3);text-decoration:line-through}

/* Appearance section */
.theme-swatches{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;align-items:center}
.theme-swatch{width:38px;height:38px;border-radius:50%;cursor:pointer;transition:all .2s;border:3px solid transparent;position:relative;flex-shrink:0;box-shadow:0 2px 12px rgba(0,0,0,.4)}
.theme-swatch:hover{transform:scale(1.18);box-shadow:0 4px 20px rgba(0,0,0,.5)}
.theme-swatch.active{border-color:white;transform:scale(1.22);box-shadow:0 0 0 2px rgba(255,255,255,.5),0 4px 20px rgba(0,0,0,.5)}
.custom-color-input{width:38px;height:38px;border-radius:50%;cursor:pointer;border:3px solid rgba(255,255,255,.2);padding:0;background:none;overflow:hidden}
.custom-color-input::-webkit-color-swatch-wrapper{padding:0}
.custom-color-input::-webkit-color-swatch{border:none;border-radius:50%}
.style-options{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.style-option{padding:9px 22px;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;border:1.5px solid rgba(255,255,255,.12);background:transparent;color:rgba(255,255,255,.5);cursor:pointer;transition:all .2s}
.style-option:hover{border-color:rgba(124,92,252,.5);color:rgba(196,176,255,.9)}
.style-option.active{border-color:var(--accent);color:#c4b0ff;background:rgba(124,92,252,.18);box-shadow:0 0 16px rgba(124,92,252,.2)}
.theme-presets{display:flex;gap:8px;flex-wrap:wrap}
.theme-preset{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius-full);font-size:.82rem;font-weight:600;border:1.5px solid rgba(255,255,255,.12);background:transparent;color:rgba(255,255,255,.6);cursor:pointer;transition:all .2s}
.theme-preset span{width:16px;height:16px;border-radius:50%;background:var(--p);flex-shrink:0;box-shadow:0 0 8px var(--p)}
.theme-preset:hover{border-color:var(--p);color:#fff}
.theme-preset.active{border-color:var(--p);color:#fff;background:rgba(255,255,255,.07)}
/* Customize panel - section labels, custom colour picker, button-shape chooser */
.cz-label{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:10px}
.cz-color-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cz-color-row input[type=color]{-webkit-appearance:none;appearance:none;width:44px;height:44px;padding:0;border:none;border-radius:12px;background:none;cursor:pointer;flex-shrink:0}
.cz-color-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.cz-color-row input[type=color]::-webkit-color-swatch{border:2px solid rgba(255,255,255,.2);border-radius:12px}
.cz-color-hex{font-family:var(--font-display,monospace);font-weight:800;font-size:.95rem;letter-spacing:.02em}
.cz-shapes{display:flex;gap:8px;flex-wrap:wrap}
.shape-option{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border-radius:12px;font-size:.82rem;font-weight:600;border:1.5px solid rgba(255,255,255,.12);background:transparent;color:rgba(255,255,255,.6);cursor:pointer;transition:all .2s}
.shape-option:hover{border-color:rgba(124,92,252,.5);color:#fff}
.shape-option.active{border-color:var(--accent);color:#fff;background:rgba(124,92,252,.16)}
.cz-shape-pv{width:26px;height:16px;background:linear-gradient(135deg,var(--accent),#6144e8);flex-shrink:0;border-radius:4px}
.cz-bg-pv{width:22px;height:16px;border-radius:4px;flex-shrink:0;border:1px solid rgba(255,255,255,.15)}
.cz-bg-blur{background:linear-gradient(135deg,#8b5cff,#ec4899);filter:blur(1px)}
.cz-bg-solid{background:#0d0f1a}
.cz-bg-grad{background:linear-gradient(160deg,var(--accent),#120a2e)}
.profile-preview{background:linear-gradient(135deg,rgba(124,92,252,.1),rgba(124,92,252,.03));border:1px solid rgba(124,92,252,.25);border-radius:18px;padding:28px;text-align:center;margin-top:24px}
.preview-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(196,176,255,.6);font-weight:700;margin-bottom:22px;display:flex;align-items:center;justify-content:center;gap:7px}
.preview-title::before{content:'';width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 8px #4ade80;animation:ldpDot 1.6s ease-in-out infinite}
/* Wide screens: dock the preview as a live, sticky phone panel to the right of the editor */
@media(min-width:1500px){
  #tab-links .profile-preview{
    position:fixed;top:96px;left:calc(296px + 860px + 34px);width:300px;
    max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden;margin-top:0;z-index:20;
    box-shadow:0 30px 80px -30px rgba(0,0,0,.85);scrollbar-width:thin}
  #tab-links .profile-preview::-webkit-scrollbar{width:6px}
  #tab-links .profile-preview::-webkit-scrollbar-thumb{background:rgba(124,92,252,.4);border-radius:3px}
}
.preview-avatar{width:60px;height:60px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:1.3rem;color:white;box-shadow:0 0 0 2px rgba(124,92,252,.5),0 0 20px rgba(124,92,252,.3)}
.preview-name{font-weight:700;font-size:1rem;margin-bottom:2px}
.preview-handle{font-size:.8rem;color:var(--text-3);margin-bottom:16px}
.preview-link-btn{width:100%;padding:11px;border-radius:var(--radius-full);border:1.5px solid;color:white;font-weight:600;font-size:.85rem;margin-bottom:8px;cursor:default}

/* Settings */
.settings-section{margin-bottom:28px}
.settings-section-title{font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(124,92,252,.7);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.settings-section-title::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(124,92,252,.3),transparent)}
.settings-card{background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:16px;transition:border-color .2s}
.settings-card:hover{border-color:rgba(255,255,255,.14)}
.danger-zone .settings-card{border-color:rgba(239,68,68,.2);background:linear-gradient(135deg,rgba(239,68,68,.06),rgba(239,68,68,.02))}

/* Custom-domain tab: numbered walkthrough + FAQ. The steps sit inside one settings-card,
   so they carry their own separators rather than the card's flex gap. */
.byo-step{display:flex;gap:14px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.07)}
.byo-step:last-child{padding-bottom:0;border-bottom:none}
.byo-step-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:800;color:#fff;background:var(--accent);margin-top:1px}
.byo-step-title{font-weight:700;font-size:.92rem;margin-bottom:5px}
.byo-step-body{font-size:.84rem;color:var(--text-2);line-height:1.55}
.byo-step-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em;background:rgba(255,255,255,.07);border-radius:5px;padding:1px 5px}
.byo-note{margin-top:9px;font-size:.8rem;color:var(--text-2);line-height:1.5;background:rgba(251,191,36,.09);border-left:2px solid rgba(251,191,36,.5);border-radius:0 8px 8px 0;padding:9px 12px}
.byo-faq-q{cursor:pointer;list-style:none;font-weight:700;font-size:.88rem;display:flex;align-items:center;gap:8px}
.byo-faq-q::-webkit-details-marker{display:none}
.byo-faq-q::before{content:'+';color:var(--accent);font-weight:800;font-size:1.05rem;line-height:1}
details[open] > .byo-faq-q::before{content:'âˆ’'}
.byo-faq-a{font-size:.83rem;color:var(--text-2);line-height:1.55;margin-top:10px}
/* Each FAQ is its own card, so tighten the stack the section would otherwise space out. */
#tab-domain details.settings-card{padding:16px 20px;gap:0}
#tab-domain details.settings-card + details.settings-card{margin-top:8px}

/* DNS record rows can't wrap mid-value without becoming unreadable, so they scroll. */
.byo-record{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;font-size:.78rem}
.byo-record-grid{display:flex;gap:16px;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto}
.byo-record-lbl{color:var(--text-3)}
.byo-record-note{color:var(--text-3);margin-top:6px;font-family:inherit}
.byo-copy{cursor:pointer;border:none;background:none;color:var(--accent);font-size:.72rem;font-weight:700;padding:0;margin-left:6px}
.sub-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.88rem}
.sub-row:last-child{border-bottom:none}
.sub-row-lbl{color:rgba(255,255,255,.4)} .sub-row-val{font-weight:600}
.switch{position:relative;display:inline-block;width:44px;height:26px}
.switch input{opacity:0;width:0;height:0}
.switch .slider{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,.14);border-radius:999px;transition:background .2s}
.switch .slider::before{content:'';position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}
.switch input:checked + .slider{background:var(--accent)}
.switch input:checked + .slider::before{transform:translateX(18px)}

/* PROFILE */
#view-profile{padding-top:64px;min-height:100vh;background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(124,92,252,.18) 0%,transparent 55%),radial-gradient(ellipse 50% 40% at 80% 80%,rgba(34,211,238,.07) 0%,transparent 55%),var(--bg)}
.profile-page{max-width:520px;margin:0 auto;padding:0 24px 80px;text-align:center}
.profile-banner{width:100%;height:140px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-bottom:0;flex-shrink:0}
.profile-page-inner{max-width:520px;margin:0 auto;text-align:center}
/* link.me-style circular avatar */
.profile-avatar-large{width:92px;height:92px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:2.6rem;color:white;box-shadow:0 8px 28px rgba(0,0,0,.18),0 0 0 4px #fff;overflow:hidden;flex-shrink:0}
.profile-avatar-large img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.profile-has-banner .profile-avatar-large{margin-top:-46px;box-shadow:0 0 0 4px #fff,0 8px 28px rgba(0,0,0,.18)}

/* link.me-style blurred photo background - prominent image behind */
.profile-bg-blur{position:fixed;inset:-60px;z-index:0;background-size:cover;background-position:center;filter:blur(45px) saturate(1.4);transform:scale(1.2);opacity:.85}
.profile-bg-overlay{position:fixed;inset:0;z-index:0;background:linear-gradient(180deg,rgba(7,8,15,.45) 0%,rgba(7,8,15,.62) 42%,rgba(7,8,15,.9) 100%)}
/* Creator-chosen backgrounds (Customize â†’ Background) */
.profile-bg-solid{position:fixed;inset:0;z-index:0;background:radial-gradient(ellipse 70% 50% at 50% -5%,var(--accent-dim,rgba(124,92,252,.16)),transparent 60%),var(--bg)}
.profile-bg-grad{position:fixed;inset:0;z-index:0;background:linear-gradient(160deg,var(--accent) -10%,#120a2e 45%,#07080f 100%)}
/* Font personality (Customize â†’ Font) - applied on the profile/preview container */
[data-pfont="rounded"]{font-family:"SF Pro Rounded",ui-rounded,"Nunito","Quicksand",system-ui,sans-serif}
[data-pfont="serif"]{font-family:"Playfair Display","Georgia","Times New Roman",serif}
[data-pfont="mono"]{font-family:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace}
/* Link-button fill (Customize â†’ Buttons) - targets the no-photo pill cards */
[data-pfill="solid"] .photo-card-nophoto{background:var(--accent);border-color:transparent}
[data-pfill="solid"] .photo-card-nophoto .photo-card-title{color:#fff}
[data-pfill="solid"] .photo-card-nophoto .photo-card-subtitle{color:rgba(255,255,255,.8)}
[data-pfill="solid"] .photo-card-nophoto .photo-card-arrow{background:rgba(255,255,255,.25);color:#fff}
[data-pfill="outline"] .photo-card-nophoto{background:transparent;border-color:var(--accent)}
[data-pfill="glass"] .photo-card-nophoto{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.profile-page{position:relative;z-index:1}

/* link.me-style name row, verified badge & follower count */
.profile-name-row{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:4px}
.profile-verified{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.profile-verified svg{width:22px;height:22px;display:block}
.profile-followers{font-size:.9rem;color:rgba(255,255,255,.7);font-weight:600;margin-bottom:18px}
.profile-followers b{font-weight:800;color:#fff;font-size:1.15rem;margin-right:3px}

/* Public profile - dark hero link.me look (text over blurred photo) */
body.profile-view{background:#07080f;color:#fff}
body.profile-view .profile-name{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.4)}
body.profile-view .profile-handle{color:rgba(255,255,255,.65)}
body.profile-view .profile-bio{color:rgba(255,255,255,.85)}

/* link.me-style hero photo layout.
   The column sits on a near-black plate so the link cards read as one solid stack
   against the blurred avatar backdrop instead of floating on top of it. */
.profile-hero-layout{max-width:600px;margin:0 auto;padding:0 0 70px;position:relative;z-index:1;background:#08080c;box-shadow:0 0 0 1px rgba(255,255,255,.06),0 24px 70px rgba(0,0,0,.55)}
@media(min-width:640px){.profile-hero-layout{margin:0 auto 40px;border-radius:18px}}
.profile-hero{position:relative;width:100%;aspect-ratio:6/5;max-height:500px;overflow:hidden;border-radius:18px 18px 0 0}
.profile-hero img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}
.profile-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,8,15,.97) 1%,rgba(7,8,15,.45) 26%,rgba(7,8,15,.05) 48%,transparent 65%)}
.profile-hero-text{position:absolute;left:0;right:0;bottom:14px;text-align:center;padding:0 22px;z-index:2}
.profile-hero-text .profile-name{font-size:2.1rem;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.55);margin-bottom:2px}
.profile-hero-text .profile-handle{color:rgba(255,255,255,.72);margin-bottom:0}
.profile-hero-text .profile-verified svg{width:24px;height:24px}
.profile-body{padding:18px 22px 0;text-align:center}
.profile-body .profile-socials{margin:0 auto 14px}
/* follower count - bold number, muted label, dropdown chevron */
body.profile-view .profile-followers{margin-bottom:14px}
.profile-followers .fc-chevron{display:inline-block;margin-left:5px;opacity:.55;vertical-align:-2px}

/* link.me sticky header - fades in on scroll once the hero scrolls away */
.profile-sticky{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:10px;padding:11px 18px;background:rgba(7,8,15,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(-100%);opacity:0;transition:transform .32s var(--ease-expo),opacity .32s ease}
.profile-sticky.show{transform:translateY(0);opacity:1}
.profile-sticky .ps-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--accent)}
.profile-sticky .ps-avatar img{width:100%;height:100%;object-fit:cover}
.profile-sticky .ps-name{font-weight:700;font-size:.95rem;color:#fff;display:flex;align-items:center;gap:5px}
.profile-sticky .profile-verified svg{width:16px;height:16px}
/* hero fades/parallaxes as the page scrolls (set inline by JS) */
.profile-hero{will-change:opacity}
.profile-hero img{will-change:transform}

/* link.me posts / gallery grid */
.profile-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
.post-thumb{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;cursor:pointer;display:block;animation:link-enter .5s calc(.32s + var(--i,0) * .04s) var(--ease-expo) both}
.post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease-expo)}
.post-thumb:hover img{transform:scale(1.06)}

/* lightbox for posts */
.lightbox-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;animation:lb-fade .2s ease}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}
.lightbox-overlay img{max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.6)}

/* Posts editor (dashboard) */
.posts-editor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.pe-thumb{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:var(--bg-3);cursor:grab;transition:opacity .15s,outline-color .15s}
.pe-thumb:active{cursor:grabbing}
.pe-thumb.dragging{opacity:.4}
.pe-thumb.drag-over{outline:2px solid var(--accent);outline-offset:1px}
.pe-thumb img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.pe-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.62);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;padding:0}
.pe-add{aspect-ratio:1/1;border:1.5px dashed var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-3);background:var(--bg-3);transition:all .2s}
.pe-add:hover{border-color:var(--accent);color:var(--accent)}

/* link.me-style social icon row - brand-coloured circles */
.profile-socials{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:0 auto 30px}
.profile-social{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;border:1px solid rgba(255,255,255,.14);transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.profile-social:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 8px 22px rgba(0,0,0,.5)}
.profile-social svg{width:20px;height:20px}
/* link.me-style "send me a message" box â†’ opens Fanvue */
.profile-msg{display:flex;align-items:center;gap:8px;max-width:460px;margin:28px auto 8px;padding:6px 6px 6px 18px;border-radius:99px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 22px rgba(0,0,0,.35)}
.profile-msg-input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:#fff;font-size:.95rem;font-family:inherit}
.profile-msg-input::placeholder{color:rgba(255,255,255,.55)}
.profile-msg-send{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--accent);transition:transform .15s ease,filter .15s ease}
.profile-msg-send:hover{transform:scale(1.06);filter:brightness(1.1)}
.preview-body .profile-msg,#preview-body .profile-msg{margin:18px auto 4px}
.sidebar-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.avatar-upload-wrapper{position:relative;display:inline-block;cursor:pointer}
.avatar-upload-wrapper:hover .avatar-upload-overlay{opacity:1}
.avatar-upload-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;color:white;font-size:.7rem;font-weight:700;text-align:center;pointer-events:none}
.banner-options{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.banner-opt{width:52px;height:32px;border-radius:var(--radius-sm);cursor:pointer;border:2px solid transparent;transition:all .2s;flex-shrink:0}
.banner-opt.active{border-color:white;transform:scale(1.1)}
.profile-name{font-family:var(--font-display);font-size:1.7rem;font-weight:800;margin-bottom:4px;letter-spacing:-.01em}
.profile-handle{font-size:.9rem;color:var(--text-3);margin-bottom:14px}
.profile-bio{font-size:.95rem;color:var(--text-2);max-width:360px;margin:0 auto 24px;line-height:1.6;white-space:pre-line}
.profile-links{display:flex;flex-direction:column;gap:12px}
.profile-link-btn{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-radius:var(--radius-full);border:1.5px solid;font-weight:600;font-size:.95rem;transition:all .2s ease;cursor:pointer}
.profile-link-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.3)}
.profile-link-btn:active{transform:scale(.97)!important;box-shadow:none!important;transition:transform .1s,box-shadow .1s}
.powered-by{margin-top:48px;font-size:.82rem;color:var(--text-2);display:flex;align-items:center;justify-content:center;gap:6px}
.powered-by a{color:var(--accent);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.powered-by .logo-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:var(--shadow-accent);display:inline-block}
.not-found{text-align:center;padding:80px 24px;max-width:440px;margin:0 auto}
.not-found h2{font-family:var(--font-display);font-size:5rem;font-weight:900;color:var(--accent);margin-bottom:8px}
.not-found p{color:var(--text-2);margin-bottom:28px}

/* RECOVERY CODE */
.recovery-code-box{background:var(--bg-3);border:2px dashed var(--border-accent);border-radius:var(--radius-lg);padding:20px;text-align:center;margin:16px 0}
.recovery-code-value{font-family:monospace;font-size:1.6rem;font-weight:900;letter-spacing:.15em;color:var(--accent)}
.warning-box{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);border-radius:var(--radius);padding:12px 16px;font-size:.85rem;color:#fca5a5;margin-bottom:16px}

/* MOBILE */
@media(max-width:900px){
  .bento-grid{grid-template-columns:1fr 1fr}
  .bento-card.span-row-2{grid-row:span 1}
  .pricing-grid{flex-direction:column;align-items:center}
  .analytics-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
  .step:first-child{border-radius:var(--radius-xl) var(--radius-xl) 0 0}
  .step:last-child{border-radius:0 0 var(--radius-xl) var(--radius-xl)}
  .step:not(:first-child){border-left:1px solid var(--glass-border);border-top:none}
}
@media(max-width:768px){
  .nav-links{display:none} .hamburger{display:flex}
  #main-nav{min-width:calc(100vw - 32px);padding:0 6px 0 16px}
  #view-landing{padding-top:76px}
  .bento-grid{grid-template-columns:1fr}
  .bento-card.span-2{grid-column:span 1}
  /* Dashboard: fixed bottom tab bar on mobile */
  .dashboard-layout{display:block}
  .sidebar{
    position:fixed;top:auto;bottom:0;left:0;right:0;
    width:100%;height:calc(60px + env(safe-area-inset-bottom, 0px));
    flex-direction:row;align-items:stretch;justify-content:space-around;
    padding:0 0 env(safe-area-inset-bottom, 0px);border-right:none;border-top:1px solid var(--glass-border);
    background:rgba(7,8,15,.97);backdrop-filter:blur(20px);
    overflow:visible;z-index:50;border-radius:0;
  }
  .sidebar-user{display:none}
  .sidebar-view-page-btn{display:none}
  .sidebar-logout{display:none}
  .sidebar-spacer{display:none}
  .profile-switcher{display:none!important} /* mobile switches pages via the Get more links tab */
  .sidebar-nav{flex-direction:row;flex:1;justify-content:space-around;gap:0}
  .sidebar-nav-item{
    flex:1;flex-direction:column;gap:3px;padding:6px 2px;
    align-items:center;justify-content:center;
    border:none;border-top:2px solid transparent;border-radius:0;
    font-size:.62rem;text-align:center;background:transparent!important;
    max-width:none;min-width:0;
  }
  .sidebar-nav-item span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .sidebar-nav-item.active{border-top-color:var(--accent);color:var(--accent)}
  /* Bottom bar shows only primary tabs + More; the rest live in the sheet */
  .sidebar-nav-item.nav-secondary{display:none!important}
  .sidebar-more-btn{display:flex!important;position:relative}
  .more-btn-dot{display:block}
  .dashboard-main{padding:16px 16px calc(80px + env(safe-area-inset-bottom, 0px));max-width:none;margin-left:0}
  .footer-inner{flex-direction:column}
  .analytics-grid{grid-template-columns:1fr}
  .mobile-settings-actions{display:flex!important}
  #view-dashboard{padding-top:120px}
  .mobile-dash-header{display:flex;position:fixed;top:68px;left:0;right:0;z-index:45;height:52px;background:rgba(7,8,15,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);align-items:center;padding:0 16px;gap:12px}
  .mobile-dash-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:.8rem;flex-shrink:0;overflow:hidden}
  .mobile-dash-name{font-size:.85rem;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-dash-handle{font-size:.72rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-dash-actions{display:flex;gap:6px;flex-shrink:0}
  .mobile-dash-btn{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}
  .mobile-dash-btn:active{background:rgba(255,255,255,.14);color:white;transform:scale(.94)}
  .mobile-fab{display:flex;position:fixed;right:20px;bottom:calc(76px + env(safe-area-inset-bottom, 0px));width:56px;height:56px;border-radius:50%;background:var(--accent);color:white;align-items:center;justify-content:center;box-shadow:0 4px 24px rgba(124,92,252,.55),0 2px 8px rgba(0,0,0,.4);z-index:45;border:none;transition:transform .2s,box-shadow .2s}
  .mobile-fab:active{transform:scale(.9);box-shadow:0 2px 12px rgba(124,92,252,.4)}
  #toast-container{bottom:calc(72px + env(safe-area-inset-bottom, 0px));right:16px;left:16px}
  .toast{min-width:0;max-width:none;width:100%}
  .drag-handle{display:none}
  .link-reorder-btns{display:flex;flex-direction:column;gap:2px;flex-shrink:0}
  .link-reorder-btn{width:28px;height:28px;border-radius:7px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}
  .link-reorder-btn:active{background:rgba(255,255,255,.15);color:white}
  .link-reorder-btn:disabled{opacity:.2;pointer-events:none}
  .add-link-form .form-row{flex-direction:column}
  .link-action-btn{display:none}
  .share-card-explain{display:none}
  .dash-tab-header{margin-bottom:16px;padding-bottom:14px}
  .link-card-outer{overflow:hidden}
  /* iOS 16px input - prevents auto-zoom on focus */
  .form-group input,.form-group textarea,.form-group select{font-size:16px}
  #sheet-link-title,#sheet-link-url{font-size:16px}
  /* Bigger tap targets */
  .link-reorder-btn{width:36px;height:36px}
  .hamburger{padding:12px 8px}
  /* Analytics labels readable */
  .analytics-card .label{font-size:.8rem}
  .analytics-card .sublabel{font-size:.78rem}
  .bar-chart-title{font-size:.78rem}

  /* Mobile pass: tighter, touch-friendly spacing across landing + dashboard */
  .section{padding:56px 20px}
  .section-title{margin-bottom:10px}
  .section-sub{max-width:none}
  .bento-card{padding:20px}
  .card{padding:18px}
  .analytics-card{padding:18px}
  .pricing-card{padding:24px 22px}
  .testimonial-card{padding:20px}
  .step{padding:24px 20px}
  .link-card{padding:12px 14px;gap:12px}
  .dash-tab-header h1,.dash-tab-header .tab-title{font-size:1.3rem}
  /* Touch targets: keep every tappable control at 44px min */
  .btn,.link-reorder-btn,.mobile-dash-btn,.hamburger,.toggle{min-height:44px}
  .btn-sm{min-height:40px}
  .form-group input,.form-group textarea,.form-group select{padding:13px 16px;min-height:46px}
  .mobile-nav a,.mobile-nav button{padding:13px;font-size:1rem}
  /* Prevent any wide inline content (tables, code, embeds) from forcing horizontal scroll */
  .dashboard-main,.card,.bento-card,.pricing-card{max-width:100%;overflow-x:hidden}
  .bottom-sheet{padding:0 16px calc(28px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:480px){
  .hero-ctas{flex-direction:column;align-items:center}
  .hero h1{font-size:2.6rem}
  .hero{min-height:78vh;padding:50px 20px 36px}
  .auth-card{padding:28px 20px}
  .dash-tab-header{flex-direction:column;align-items:flex-start;gap:12px}
  .bento-card.span-2{flex-direction:column;gap:16px}
}
.mobile-settings-actions{display:none;flex-direction:column;gap:10px;margin-bottom:24px}
.mobile-dash-header{display:none}
.mobile-fab{display:none}
.link-reorder-btns{display:none}
/* Link card swipe-to-reveal */
.link-card-outer{position:relative;border-radius:16px}
.link-card-outer>.link-card{position:relative;z-index:1}
.link-card-reveal{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:stretch;z-index:0;width:0;overflow:hidden}
.reveal-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:70px;border:none;cursor:pointer;font-size:.7rem;font-weight:700;color:white;letter-spacing:.02em}
.reveal-edit{background:rgba(100,68,232,.95)}
.reveal-delete{background:rgba(239,68,68,.95)}
/* Bottom sheet */
.bs-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}
.bs-overlay.open{opacity:1;pointer-events:all}
.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:201;background:var(--bg-2);border:1px solid var(--glass-border);border-bottom:none;border-radius:24px 24px 0 0;padding:0 20px calc(32px + env(safe-area-inset-bottom,0px));transform:translateY(105%);transition:transform .38s cubic-bezier(.16,1,.3,1);max-height:90vh;overflow-y:auto}
.bottom-sheet.open{transform:translateY(0)}
.bs-handle{width:40px;height:4px;background:rgba(255,255,255,.15);border-radius:2px;margin:14px auto 24px}
.bs-title{font-family:var(--font-display);font-size:1.25rem;font-weight:800;margin-bottom:20px}
/* Sheets become centred modals on desktop (must come after the base rules above) */
@media(min-width:769px){
  /* Centred instead of slid off-screen, so the closed state MUST NOT eat clicks.
     visibility is stepped, never interpolated - a transitioning visibility is not
     hit-testable, which would make clicks fall through to the overlay. Hiding is
     delayed until the fade finishes; showing is instant. */
  .bottom-sheet{left:50%;right:auto;bottom:auto;top:50%;width:520px;max-width:92vw;border-radius:20px;border-bottom:1px solid var(--glass-border);padding:0 26px 26px;max-height:88vh;transform:translate(-50%,-46%) scale(.97);opacity:0;pointer-events:none;visibility:hidden;transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .2s,visibility 0s .2s;box-shadow:0 24px 70px rgba(0,0,0,.5)}
  .bottom-sheet.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto;visibility:visible;transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .2s,visibility 0s}
  .bs-handle{display:none}
  .bs-title{margin-top:26px}
}

/* SCROLL ANIMATIONS */
/* Shared easing - expo out, same feel as Lando Norris site */
:root { --ease-expo: cubic-bezier(.16,1,.3,1); --ease-back: cubic-bezier(.34,1.56,.64,1); }

/* Base fade-up */
.reveal{opacity:0;transform:translateY(44px);transition:opacity .75s var(--ease-expo),transform .75s var(--ease-expo)}
.reveal.visible{opacity:1;transform:translateY(0)}

/* Pop - scale up from slightly small (cards, bento, testimonials) */
.reveal-pop{opacity:0;transform:scale(.88) translateY(28px);transition:opacity .65s var(--ease-expo),transform .65s var(--ease-expo)}
.reveal-pop.visible{opacity:1;transform:scale(1) translateY(0)}

/* Slide from left */
.reveal-left{opacity:0;transform:translateX(-52px);transition:opacity .7s var(--ease-expo),transform .7s var(--ease-expo)}
.reveal-left.visible{opacity:1;transform:translateX(0)}

/* Slide from right */
.reveal-right{opacity:0;transform:translateX(52px);transition:opacity .7s var(--ease-expo),transform .7s var(--ease-expo)}
.reveal-right.visible{opacity:1;transform:translateX(0)}

/* Line reveal - text slides up from behind invisible mask (Lando-style) */
.reveal-line{overflow:hidden;display:block}
.reveal-line .line-inner{display:block;transform:translateY(108%);transition:transform .8s var(--ease-expo)}
.reveal-line.visible .line-inner{transform:translateY(0)}

/* Stagger delays */
.delay-1{transition-delay:.08s}
.delay-2{transition-delay:.16s}
.delay-3{transition-delay:.26s}
.delay-4{transition-delay:.36s}
.delay-5{transition-delay:.46s}
.delay-6{transition-delay:.56s}

/* Scroll reveals intentionally run under prefers-reduced-motion too - the flag
   is on by default on many Windows setups and killed all landing motion. */

/* HERO SPLIT */
.hero{min-height:92vh;display:flex;align-items:center;justify-content:center;padding:100px 24px 60px;position:relative;overflow:hidden}
.hero-split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:56px;max-width:1100px;width:100%;margin:0 auto;position:relative;z-index:1}
.hero-left{text-align:left}
.hero-left .hero-badge{justify-content:flex-start}
.hero-left .hero-ctas{justify-content:flex-start}
.hero-left .hero-url-preview{justify-content:flex-start}
.hero-right{display:flex;align-items:center;justify-content:center;position:relative}
.hero-phone-wrap{perspective:1000px;position:relative;animation:float 6s ease infinite}
.hero-phone-device{width:264px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.12);border-radius:36px;padding:28px 16px 22px;backdrop-filter:blur(20px);transform:rotateY(-10deg) rotateX(3deg);box-shadow:0 40px 80px rgba(0,0,0,.55),0 0 80px rgba(124,92,252,.2),inset 0 0 40px rgba(255,255,255,.02);position:relative}
.hero-phone-device::before{content:'';position:absolute;top:12px;left:50%;transform:translateX(-50%);width:64px;height:5px;background:rgba(255,255,255,.1);border-radius:3px}
.hero-phone-content{text-align:center}
.hero-phone-avatar{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#6144e8);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:1.4rem;color:white;margin:10px auto 10px;box-shadow:0 0 24px rgba(124,92,252,.5)}
.hero-phone-name{font-weight:700;font-size:.9rem;margin-bottom:2px;color:var(--text)}
.hero-phone-handle{font-size:.74rem;color:var(--text-3);margin-bottom:16px}
.hero-phone-link{background:rgba(124,92,252,.08);border:1.5px solid rgba(124,92,252,.35);border-radius:var(--radius-full);padding:9px 12px;font-size:.78rem;font-weight:600;margin-bottom:7px;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--text-2)}
.hero-phone-powered{font-size:.62rem;color:var(--text-3);margin-top:14px}
.hero-phone-powered span{color:var(--accent);font-weight:600}
.hero-badge-float{position:absolute;background:rgba(13,15,24,.92);border:1px solid rgba(124,92,252,.4);border-radius:var(--radius);padding:7px 12px;backdrop-filter:blur(12px);white-space:nowrap;font-size:.76rem;font-weight:600;display:flex;align-items:center;gap:7px;box-shadow:0 8px 24px rgba(0,0,0,.4);pointer-events:none}
.badge-float-clicks{top:18%;right:-16px;animation:float 4s ease infinite}
.badge-float-live{bottom:22%;left:-20px;animation:float 4s ease infinite .9s}
.badge-float-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}

/* PROOF STRIP */
.proof-strip{padding:18px 24px;border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);background:rgba(255,255,255,.012)}
.proof-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.proof-label{font-size:.75rem;font-weight:700;color:var(--text-3);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.proof-platforms{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.proof-platform{display:flex;align-items:center;gap:7px;color:var(--text-3);font-size:.8rem;font-weight:600;opacity:.55;transition:opacity .2s;padding:5px 10px;border-radius:var(--radius-full)}
.proof-platform:hover{opacity:1}
.proof-platform svg{width:16px;height:16px;flex-shrink:0}

/* TESTIMONIALS */
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.testimonial-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:24px;backdrop-filter:blur(12px);transition:border-color .2s,transform .2s;position:relative;overflow:hidden}
.testimonial-card::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(124,92,252,.05) 0%,transparent 70%);pointer-events:none}
.testimonial-card:hover{border-color:rgba(124,92,252,.3);transform:translateY(-2px)}
.testimonial-stars{display:flex;gap:2px;margin-bottom:14px}
.testimonial-star{color:#fbbf24;font-size:.85rem}
.testimonial-quote{font-size:.88rem;color:var(--text-2);line-height:1.72;margin-bottom:20px}
.testimonial-author{display:flex;align-items:center;gap:11px}
.testimonial-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:.8rem;color:white;flex-shrink:0}
.testimonial-name{font-weight:700;font-size:.86rem;margin-bottom:1px}
.testimonial-role{font-size:.74rem;color:var(--text-3)}

/* FAQ */
.faq-list{display:flex;flex-direction:column;gap:8px;max-width:700px;margin:0 auto}
.faq-item{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .2s}
.faq-item.open{border-color:rgba(124,92,252,.35)}
.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px;background:transparent;border:none;color:var(--text);font-size:.92rem;font-weight:600;cursor:pointer;text-align:left;transition:color .2s;font-family:var(--font-body)}
.faq-question:hover{color:var(--accent)}
.faq-chevron{flex-shrink:0;transition:transform .25s ease;color:var(--text-3)}
.faq-item.open .faq-chevron{transform:rotate(180deg);color:var(--accent)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .32s ease,padding .32s ease;font-size:.875rem;color:var(--text-2);line-height:1.75;padding:0 20px}
.faq-item.open .faq-answer{max-height:200px;padding:0 20px 17px}

/* LEGAL PAGES */
.legal-page{max-width:720px;margin:0 auto;padding:120px 24px 80px}
.legal-page h1{font-family:var(--font-display);font-size:2.2rem;font-weight:900;margin-bottom:8px;letter-spacing:-.02em}
.legal-updated{font-size:.82rem;color:var(--text-3);margin-bottom:40px}
.legal-page h2{font-family:var(--font-display);font-size:1.2rem;font-weight:800;margin:36px 0 12px}
.legal-page p,.legal-page li{font-size:.92rem;color:var(--text-2);line-height:1.8;margin-bottom:12px}
.legal-page ul{padding-left:22px;margin-bottom:12px}
.legal-page a{color:var(--accent);font-weight:600;cursor:pointer}
.legal-back{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--accent);font-weight:600;cursor:pointer;margin-bottom:24px;background:none;border:none;font-family:var(--font-body)}
.legal-back:hover{text-decoration:underline}

/* New responsive overrides */
@media(max-width:960px){
  .hero-split{grid-template-columns:1fr;text-align:center;gap:48px}
  .hero-left .hero-badge,.hero-left .hero-ctas,.hero-left .hero-url-preview,.hero-left .hero-claim{justify-content:center}
  .hero-right{display:none}
  .testimonials-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .testimonials-grid{grid-template-columns:1fr}
  .proof-inner{gap:12px}
}

/* CLICK RIPPLE */
.click-ripple{position:fixed;border-radius:50%;width:4px;height:4px;border:1.5px solid rgba(124,92,252,.7);box-shadow:0 0 8px rgba(124,92,252,.4);transform:translate(-50%,-50%);animation:ripple-out .55s var(--ease-expo) forwards;pointer-events:none;z-index:9999}
@keyframes ripple-out{0%{width:4px;height:4px;opacity:1}100%{width:110px;height:110px;opacity:0;border-width:.5px}}

/* STICKY SCROLL - How it works */
.sticky-scroll-outer{position:relative;height:230vh}
.sticky-scroll-inner{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;background:var(--bg);padding-top:168px;box-sizing:border-box}
.sticky-bg-glow{position:absolute;inset:0;pointer-events:none;transition:background 1s ease;z-index:0;filter:blur(30px)}
.sticky-scroll-inner .sticky-label{position:absolute;top:88px;left:50%;transform:translateX(-50%);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);opacity:.9;z-index:1;white-space:nowrap}
.sticky-step{position:absolute;text-align:center;max-width:580px;padding:0 24px;opacity:0;transform:translateY(56px);transition:opacity .35s ease,transform .35s ease,visibility 0s linear .35s;pointer-events:none;z-index:1;visibility:hidden}
.sticky-step.active{opacity:1;transform:translateY(0);pointer-events:auto;z-index:2;visibility:visible;transition:opacity .35s ease,transform .35s ease}
.sticky-step.past{opacity:0;transform:translateY(-44px);transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s;visibility:hidden}
.sticky-step-num{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#6144e8);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:1.4rem;margin:0 auto 28px;box-shadow:0 0 40px rgba(124,92,252,.5),0 0 80px rgba(124,92,252,.2)}
.sticky-step-title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.8rem);font-weight:900;letter-spacing:-.035em;margin-bottom:20px;line-height:1.04}
.sticky-step-desc{font-size:1.05rem;color:var(--text-2);line-height:1.75;max-width:420px;margin:0 auto}
.sticky-dots{position:absolute;bottom:52px;left:50%;transform:translateX(-50%);display:flex;gap:12px;z-index:1}
.sticky-dot{width:8px;height:8px;border-radius:50%;background:var(--text-3);transition:background .3s ease,transform .3s ease,box-shadow .3s ease;cursor:default}
.sticky-dot.active{background:var(--accent);transform:scale(1.5);box-shadow:0 0 10px rgba(124,92,252,.7)}
.sticky-scroll-hint{position:absolute;bottom:54px;right:48px;font-size:.75rem;color:var(--text-3);letter-spacing:.05em;opacity:.6;z-index:1}
@keyframes ldpDot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.5}}
/* Persistent promo + countdown bar - pinned top-center, above the cards */
.pricing-countbar{position:absolute;top:92px;left:50%;transform:translateX(-50%);z-index:3;display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 16px;padding:9px 20px;border-radius:var(--radius-full);background:linear-gradient(135deg,rgba(251,113,133,.15),rgba(225,29,72,.08));border:1px solid rgba(251,113,133,.34);backdrop-filter:blur(8px)}
@media(max-width:768px){.pricing-countbar{position:static;transform:none;margin:0 auto 22px;display:flex}}
/* Countdown ribbon under the headline (step 0) - carries the urgency once */
.pricing-ribbon{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 16px;margin:24px auto 0;padding:10px 20px;border-radius:var(--radius-full);background:linear-gradient(135deg,rgba(251,113,133,.15),rgba(225,29,72,.08));border:1px solid rgba(251,113,133,.34)}
.pricing-ribbon-tag{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#fda4af}
.pricing-ribbon-tag .dot{width:8px;height:8px;border-radius:50%;background:#fb7185;box-shadow:0 0 12px #fb7185;animation:ldpDot 1.4s ease-in-out infinite}
.sticky-promo-countdown{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;color:#fca5a5;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.sticky-promo-countdown b{color:#fff;background:rgba(225,29,72,.32);border:1px solid rgba(251,113,133,.4);border-radius:6px;padding:2px 7px}

/* Clean pricing cards (rendered inside the scroll-jack steps) */
.pr-card{position:relative;flex:1;min-width:300px;max-width:392px;width:100%;margin-inline:auto;display:flex;flex-direction:column;text-align:left;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);padding:26px 30px;backdrop-filter:blur(16px);box-shadow:0 24px 64px rgba(0,0,0,.4);transition:transform .25s var(--ease-expo),border-color .25s,box-shadow .25s}
.pr-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.2)}
.pr-card.popular{border-color:rgba(124,92,252,.55);box-shadow:0 0 0 1px rgba(124,92,252,.3),0 26px 72px rgba(0,0,0,.45),0 0 90px rgba(124,92,252,.13)}
.pr-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;background:linear-gradient(135deg,var(--accent),#6144e8);color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;padding:6px 16px;border-radius:var(--radius-full);box-shadow:0 6px 22px rgba(124,92,252,.55);animation:popularScream 1.4s ease-in-out infinite .3s}
@keyframes popularScream{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.06)}}
.pr-plan{font-family:var(--font-display);font-size:1rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin-bottom:12px}
.pr-price-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.pr-price{font-family:var(--font-display);font-size:3rem;font-weight:900;line-height:1;letter-spacing:-.03em}
.pr-price sup{font-size:1.3rem;font-weight:800;vertical-align:super;color:var(--text-2);margin-right:1px}
.pr-was{font-size:1rem;font-weight:700;color:#f87171;text-decoration:line-through;text-decoration-color:rgba(248,113,113,.8);text-decoration-thickness:2px;opacity:.82}
.pr-period{font-size:.85rem;color:var(--text-3);margin-bottom:12px}
.pr-permo{display:inline-flex;align-items:baseline;gap:5px;background:rgba(124,92,252,.14);border:1px solid rgba(124,92,252,.35);border-radius:9px;padding:4px 11px;font-size:.78rem;color:#c4b5fd;font-weight:700;margin:-4px 0 12px}
.pr-permo b{font-family:var(--font-display);font-size:1rem;color:#fff;font-weight:900}
.pr-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);margin:0 0 14px}
.pr-features{display:flex;flex-direction:column;gap:9px;margin-bottom:10px}
.pr-feat{display:flex;align-items:center;gap:11px;font-size:.9rem;color:var(--text-2)}
.pr-feat i{color:var(--accent);flex-shrink:0;width:16px;height:16px}
.pr-feat.addon{background:linear-gradient(135deg,rgba(124,92,252,.14),rgba(236,72,153,.08));border:1px solid rgba(124,92,252,.32);border-radius:10px;padding:8px 11px;margin:2px 0;font-weight:600;color:var(--text)}
.pr-feat.addon i{color:#c4b5fd}
.feat-beta-badge{margin-left:auto;font-size:.58rem;font-weight:900;letter-spacing:.05em;background:linear-gradient(135deg,#ec4899,#7c5cfc);color:#fff;padding:2px 7px;border-radius:20px;flex-shrink:0;box-shadow:0 0 8px rgba(236,72,153,.5)}
.feat-addon-price{font-size:.62rem;color:var(--text-2);flex-shrink:0;white-space:nowrap}
.pr-cta{width:100%;margin-top:auto}
.pr-trial-note{text-align:center;font-size:.75rem;color:var(--text-3);margin-top:8px;display:flex;align-items:center;justify-content:center;gap:6px}
.pr-trial-note i{color:#6ee7b7;width:13px;height:13px}

/* Mobile: no scroll-jack - pricing becomes a normal static section */
@media(max-width:768px){
  .sticky-scroll-outer{height:auto}
  .sticky-scroll-inner{position:static;height:auto;overflow:visible;display:block;padding:72px 20px 56px}
  .sticky-scroll-inner .sticky-label{position:static;transform:none;text-align:center;margin-bottom:14px}
  #pricing-planet,.sticky-bg-glow,.sticky-dots,.sticky-scroll-hint,.sticky-step[data-step="1"]{display:none}
  .sticky-step{position:static;opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:none;margin:0 auto}
  .sticky-step[data-step="0"]{margin-bottom:36px}
  .sticky-step[data-step="2"]>div{flex-direction:column;align-items:center}
}
@media(max-width:600px){
  [data-step="2"]{padding:0 12px!important;max-width:100%!important}
  [data-step="2"]>div{flex-direction:column!important;gap:30px!important;align-items:center!important}
  .pr-card{min-width:0;max-width:420px;padding:28px 24px}
  .pr-price{font-size:3rem}
}

/* APPEARANCE CARD UPGRADE */
.card{background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.09);border-radius:18px;transition:border-color .2s}
.card:hover{border-color:rgba(124,92,252,.25)}

/* PROFILE PAGE */

/* Avatar - big entrance, strong glow ring */
.profile-avatar-large{box-shadow:0 0 0 3px rgba(124,92,252,.55),0 0 48px rgba(124,92,252,.4),0 12px 40px rgba(0,0,0,.6);transition:box-shadow .35s,transform .35s;animation:avatar-pop .65s var(--ease-expo)}
.profile-avatar-large:hover{box-shadow:0 0 0 4px #9478fd,0 0 72px rgba(124,92,252,.6),0 12px 40px rgba(0,0,0,.6);transform:scale(1.05)}
@keyframes avatar-pop{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}

/* Name / handle / bio - staggered fade-up */
.profile-name{font-size:2rem;background:linear-gradient(135deg,#fff 40%,#c4b0ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fade-up .55s .08s var(--ease-expo) both}
.profile-handle{color:rgba(196,176,255,.6);animation:fade-up .55s .16s var(--ease-expo) both}
.profile-bio{animation:fade-up .55s .24s var(--ease-expo) both}
.powered-by{animation:fade-up .55s .5s var(--ease-expo) both}
@keyframes fade-up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

/* Profile link buttons - shimmer + hover glow */
.profile-link-btn{position:relative;overflow:hidden;transition:transform .28s var(--ease-expo),box-shadow .28s var(--ease-expo)!important;animation:link-enter .5s calc(.32s + var(--i,0) * .07s) var(--ease-expo) both}
@keyframes link-enter{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
.profile-link-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(108deg,transparent 38%,rgba(255,255,255,.1) 50%,transparent 62%);transform:translateX(-120%);transition:transform .45s ease;pointer-events:none}
.profile-link-btn:hover::after{transform:translateX(120%)}
.profile-link-btn:hover{transform:translateY(-4px)!important;box-shadow:0 16px 48px rgba(0,0,0,.45),0 0 32px rgba(124,92,252,.25)!important}
.profile-link-btn:active{transform:scale(.97) translateY(0)!important;transition:transform .1s!important}

/* Photo Cards layout - single full-width stack (link.me style) */
.photo-cards-grid{display:flex;flex-direction:column;gap:12px;width:100%}
.photo-card{position:relative;border-radius:var(--card-radius,20px);overflow:hidden;cursor:pointer;text-decoration:none;display:block;width:100%;aspect-ratio:16/7;animation:link-enter .5s calc(.32s + var(--i,0) * .07s) var(--ease-expo) both;transition:transform .3s var(--ease-expo),box-shadow .3s ease;box-shadow:0 4px 24px rgba(0,0,0,.4),0 0 22px var(--card-glow,transparent);background:#000;box-sizing:border-box}
.photo-card.pc-full{aspect-ratio:16/7}
.photo-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 12px 48px rgba(0,0,0,.6),0 0 0 1.5px rgba(255,255,255,.12),0 0 32px var(--card-glow,var(--hover-glow,rgba(124,92,252,.4)))}
.photo-card-bg{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.photo-card:hover .photo-card-bg{transform:scale(1.06)}
.photo-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.25) 50%,transparent 100%);transition:opacity .3s}
.photo-card-logo{position:absolute;top:14px;left:14px;width:36px;height:36px;border-radius:50%;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.photo-card-title{position:absolute;bottom:16px;left:16px;right:50px;font-weight:800;font-size:1.1rem;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.7);letter-spacing:-.01em;line-height:1.2}
/* link.me image cards: centered title, no arrow */
.photo-card:not(.photo-card-nophoto) .photo-card-title{left:0;right:0;text-align:center;padding:0 14px}
.photo-card:not(.photo-card-nophoto) .photo-card-subtitle{left:0;right:0;text-align:center;padding:0 14px}
.photo-card:not(.photo-card-nophoto) .photo-card-arrow{display:none}
.photo-card-subtitle{position:absolute;bottom:38px;left:16px;right:50px;font-size:.8rem;color:rgba(255,255,255,.7);font-weight:500;letter-spacing:.01em}
.photo-card-arrow{position:absolute;bottom:14px;right:14px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.photo-card:hover .photo-card-arrow{opacity:1;transform:translateY(0)}
/* no-photo card */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.photo-card-nophoto{grid-column:1 / -1;background:linear-gradient(135deg,rgba(124,92,252,.18),rgba(124,92,252,.05));border:1.5px solid rgba(124,92,252,.28);display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;padding:18px 20px;min-height:80px;aspect-ratio:unset;border-radius:var(--card-radius,20px);transition:border-color .3s,box-shadow .3s;box-shadow:0 0 22px var(--card-glow,transparent)}
.photo-card-nophoto::after{content:'';position:absolute;inset:0;background:linear-gradient(108deg,transparent 35%,rgba(255,255,255,.06) 50%,transparent 65%);background-size:200% 100%;animation:shimmer 3.5s infinite linear;pointer-events:none}
.photo-card-nophoto:hover{border-color:rgba(124,92,252,.6);box-shadow:0 0 24px var(--card-glow,rgba(124,92,252,.2))}
.photo-card-nophoto .photo-card-title{position:static;text-align:left;font-size:1rem;color:var(--text);text-shadow:none;bottom:auto;left:auto;right:auto}
.photo-card-nophoto .photo-card-subtitle{position:static;font-size:.78rem;color:var(--text-2);bottom:auto;left:auto;right:auto;margin-top:2px}
.photo-card-nophoto .photo-card-logo{position:static;width:42px;height:42px;flex-shrink:0;box-shadow:none}
.photo-card-nophoto .photo-card-arrow{position:static;opacity:.5;transform:none;background:rgba(124,92,252,.2);flex-shrink:0;margin-left:auto}
.photo-card-nophoto:hover .photo-card-arrow{opacity:1}
/* First link = featured, bigger than the rest */
.photo-card.pc-first{grid-column:1 / -1;aspect-ratio:16/10}
.photo-card.pc-first .photo-card-title{font-size:1.5rem;bottom:20px;left:20px;right:56px}
.photo-card.pc-first:not(.photo-card-nophoto) .photo-card-title{left:0;right:0}
.photo-card.pc-first .photo-card-subtitle{font-size:.9rem;bottom:46px}
.photo-card.pc-first .photo-card-logo{width:44px;height:44px}
.photo-card-nophoto.pc-first{aspect-ratio:unset;min-height:104px;padding:24px 24px}
.photo-card-nophoto.pc-first .photo-card-title{font-size:1.3rem}
.photo-card-nophoto.pc-first .photo-card-logo{width:52px;height:52px}

/*
   NEW HERO (kinetic) - cursor-follow gradient, no flashing bg
 */
:root{--grad:linear-gradient(120deg,#ff7eb3 0%,#8b5cff 46%,#22d3ee 100%);--accent-2:#ff5e9c;--accent-3:#22d3ee}
#new-hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:40px 20px 80px}
/* Static, calm backdrop - no cursor glow */
#hero-cursor-bg{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 70% 55% at 50% 0%,rgba(139,92,255,.10),transparent 62%)}
#new-hero .nh-grid{position:absolute;inset:-2px;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000,transparent 75%)}
.nh-inner{position:relative;z-index:2;max-width:960px;margin:0 auto}
.nh-eyebrow{display:inline-flex;align-items:center;gap:9px;padding:7px 16px;border-radius:999px;font-size:.78rem;font-weight:600;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--text-2);margin-bottom:30px;backdrop-filter:blur(10px)}
.nh-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 10px #4ade80}
.nh-h1{font-family:'Clash Display','Cabinet Grotesk',sans-serif;font-weight:600;line-height:.92;letter-spacing:-.045em;font-size:clamp(3.2rem,11vw,8.5rem);margin:0 0 26px}
.nh-h1 .l{display:block;overflow:hidden}
.nh-h1 .l>span{display:block;transform:translateY(110%);transition:transform 1s cubic-bezier(.16,1,.3,1)}
#new-hero.in .nh-h1 .l>span{transform:translateY(0)}
#new-hero.in .nh-h1 .l:nth-child(2)>span{transition-delay:.09s}
/* Gradient that tracks the cursor (radial centre = --tx/--ty), no auto-pan */
.nh-h1 .grad{background:radial-gradient(190% 170% at var(--tx,50%) var(--ty,50%),#ff8fbf 0%,#b56cff 40%,#8b5cff 66%,#39c4e8 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.nh-sub{font-size:clamp(1.02rem,2.2vw,1.24rem);color:var(--text-2);max-width:620px;margin:0 auto 40px;line-height:1.6;opacity:0;transform:translateY(24px);transition:.9s cubic-bezier(.16,1,.3,1) .35s}
#new-hero.in .nh-sub{opacity:1;transform:none}
.nh-claim{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.04);border:1.5px solid rgba(139,92,255,.45);border-radius:999px;padding:8px 8px 8px 22px;box-shadow:0 20px 60px -18px rgba(139,92,255,.55);max-width:100%;opacity:0;transform:translateY(24px);transition:.9s cubic-bezier(.16,1,.3,1) .48s}
#new-hero.in .nh-claim{opacity:1;transform:none}
.nh-claim .pfx{font-weight:600;color:var(--text-2);white-space:nowrap;font-size:.98rem}
.nh-claim input{background:transparent;border:none;outline:none;color:#fff;font-weight:700;font-size:1rem;min-width:0;width:150px;padding:8px 2px;font-family:var(--font-body)}
.nh-claim input::placeholder{color:var(--text-3)}
.nh-claim button{display:inline-flex;align-items:center;gap:7px;background:var(--grad);background-size:160% auto;color:#fff;border:none;border-radius:999px;padding:13px 24px;font-weight:700;font-size:.95rem;cursor:pointer;white-space:nowrap;transition:background-position .5s,transform .25s cubic-bezier(.34,1.56,.64,1);font-family:var(--font-body)}
.nh-claim button:hover{background-position:100% center;transform:translateY(-1px)}
.nh-claim-err{min-height:1.1em;margin-top:12px;font-size:.8rem;color:#fb7185;font-weight:600}
.nh-claim-err.ok{color:#34d399}
/* Live "is this @name free?" state on the hero claim bar - the visitor learns it's
   taken here, not after they've already registered. */
.nh-claim-st{font-size:.95rem;font-weight:800;line-height:1;flex-shrink:0;min-width:.9em;text-align:center}
.nh-claim.is-free{border-color:rgba(52,211,153,.6)}
.nh-claim.is-free .nh-claim-st{color:#34d399}
.nh-claim.is-taken{border-color:rgba(251,113,133,.6)}
.nh-claim.is-taken .nh-claim-st{color:#fb7185}
.nh-claim.is-checking .nh-claim-st{color:var(--text-3)}
#hero-import input{background:transparent;border:none;outline:none;color:var(--text);font-weight:600;font-size:.95rem;font-family:var(--font-body);min-width:0;width:260px;padding:8px 2px}
#hero-import input::placeholder{color:var(--text-3);font-weight:500}
/* Second hero action. Same gradient pill as "Start for free" so it reads as a real
   offer rather than fine print - kept a size step smaller (and without the claim
   box around it) so the primary CTA still leads. */
.nh-switch{display:inline-flex;align-items:center;gap:7px;background:var(--grad);background-size:160% auto;border:none;border-radius:999px;
  color:#fff;font-size:.85rem;font-weight:700;cursor:pointer;font-family:var(--font-body);padding:11px 22px;margin-top:10px;
  box-shadow:var(--shadow-accent);
  transition:background-position .5s,transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}
.nh-switch:hover{background-position:100% center;transform:translateY(-1px);box-shadow:0 10px 26px -8px rgba(124,92,252,.7)}
.nh-imp-status{min-height:1.1em;font-size:.8rem;font-weight:600;margin-top:-4px}
.nh-imp-status.ok{color:#34d399}
.nh-imp-status.bad{color:#fbbf24}
@media(max-width:480px){#hero-import input{width:150px}}
.nh-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-3);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.nh-cue .mouse{width:22px;height:34px;border:2px solid var(--text-3);border-radius:12px;position:relative}
.nh-cue .mouse::before{content:'';position:absolute;top:6px;left:50%;transform:translateX(-50%);width:3px;height:6px;border-radius:2px;background:var(--text-3);animation:nh-cue 1.6s infinite}
@keyframes nh-cue{0%{opacity:0;transform:translate(-50%,0)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,10px)}}
/* App tiles - Mobbin-style: burst from hero centre, then drift/hover around it */
.nh-app{position:absolute;z-index:1;width:66px;height:66px;border-radius:19px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 28px 60px -18px rgba(0,0,0,.8),0 6px 16px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.16);
  opacity:0;transform:translate(var(--cx,0px),var(--cy,0px)) scale(.1) rotate(-26deg);will-change:transform,opacity}
/* Burst: keyframed so the from-centre travel is guaranteed to render; opacity
   snaps in early (12%) so the flight itself is fully visible. */
#new-hero.in .nh-app{animation:nh-burst 1.15s cubic-bezier(.26,1.4,.42,1) both;animation-delay:var(--dl,0s)}
@keyframes nh-burst{
  0%{opacity:0;transform:translate(var(--cx,0px),var(--cy,0px)) scale(.1) rotate(-26deg)}
  12%{opacity:1}
  100%{opacity:1;transform:translate(0,0) scale(var(--s,1)) rotate(var(--rot,0deg))}
}
/* After the burst: switch to var-driven transform so mouse parallax works */
#new-hero.in .nh-app.flown{animation:none;opacity:1;transition:transform .25s ease-out;
  transform:translate(var(--px,0px),var(--py,0px)) scale(var(--s,1)) rotate(var(--rot,0deg))}
.nh-app svg{width:34px;height:34px}
.nh-app img{width:100%;height:100%;border-radius:19px;object-fit:cover}
.nh-app svg,.nh-app img{transition:transform .2s ease-out}
.nh-app:hover svg,.nh-app:hover img{transform:scale(1.14)}
.nh-app .nh-app-in{display:flex;align-items:center;justify-content:center;width:100%;height:100%;animation:nh-float 8s ease-in-out infinite;animation-delay:var(--fd,0s)}
.nh-app:nth-child(even) .nh-app-in{animation-name:nh-float-b;animation-duration:9s}
.nh-app:hover{z-index:3}
@keyframes nh-float{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(4px,-12px) rotate(1.5deg)}}
@keyframes nh-float-b{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(-5px,-9px) rotate(-1.5deg)}}
@media(max-width:860px){.nh-app{width:48px;height:48px;border-radius:14px}.nh-app svg{width:26px;height:26px}.nh-app img{border-radius:14px}.nh-app.hide-sm{display:none}}
/* Phone: keep only 4 corner tiles, pin them clear of the text column, and make
   the whole decorative layer un-tappable so it can never block the hero UI. */
@media(max-width:640px){
  .nh-app{pointer-events:none!important;width:42px;height:42px}
  .nh-app svg{width:23px;height:23px}
  .nh-app[title="X"],.nh-app[data-app="p2"],.nh-app[title="Snapchat"]{display:none!important}
  .nh-app[title="Instagram"]{left:4%!important;top:8%!important}
  .nh-app[title="TikTok"]{left:auto!important;right:4%!important;top:7%!important}
  .nh-app[title="YouTube"]{left:4%!important;top:auto!important;bottom:9%!important}
  .nh-app[data-app="p1"]{left:auto!important;right:4%!important;top:auto!important;bottom:8%!important}
}
@media(max-width:480px){.nh-claim{padding:7px 7px 7px 16px}.nh-claim input{width:110px}}
/* Note: hero burst deliberately runs even under prefers-reduced-motion - many
   Windows machines have it on by default and the burst is the page's signature. */

/*
   REDESIGN 2.0 - everything below the hero
 */

/* Marquee strip */
.mq-strip{position:relative;padding:26px 0;border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);background:rgba(255,255,255,.012);overflow:hidden}
.mq-strip::before,.mq-strip::after{content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}
.mq-strip::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.mq-strip::after{right:0;background:linear-gradient(-90deg,var(--bg),transparent)}
.mq-label{text-align:center;font-size:.72rem;font-weight:700;color:var(--text-3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.mq-track{display:flex;gap:44px;width:max-content;animation:mq-scroll 30s linear infinite}
.mq-strip:hover .mq-track{animation-play-state:paused}
.mq-item{display:flex;align-items:center;gap:9px;color:var(--text-3);font-size:.92rem;font-weight:700;white-space:nowrap;opacity:.65;transition:opacity .2s,color .2s}
.mq-item:hover{opacity:1;color:var(--text)}
.mq-item svg{width:18px;height:18px;flex-shrink:0}
@keyframes mq-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}


/* Feature showcase - sticky phone that morphs as you scroll (beacons/linktree-style) */
.sc-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.sc-phone-col{position:sticky;top:100px;display:flex;justify-content:center;padding:16px 0}
.sc-phone{position:relative;width:292px;height:588px;border-radius:46px;padding:12px;
  background:linear-gradient(160deg,#17142a,#0b0d17);border:1px solid rgba(255,255,255,.14);
  box-shadow:0 50px 120px -35px rgba(0,0,0,.9),0 0 90px -35px rgba(139,92,255,.5),inset 0 0 0 5px #05060b}
.sc-notch{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:104px;height:24px;border-radius:13px;background:#05060b;z-index:6}
.sc-screen{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;
  background:radial-gradient(ellipse 95% 55% at 50% 0%,rgba(139,92,255,.26),transparent 62%),#0a0c15}
.sc-pane{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:44px 20px 24px;
  opacity:0;transform:translateY(30px) scale(.96);transition:opacity .5s var(--ease-expo,ease),transform .5s var(--ease-expo,ease);pointer-events:none}
.sc-pane.active{opacity:1;transform:none;pointer-events:auto}
.sc-profile{display:flex;flex-direction:column;align-items:center;gap:5px;margin-bottom:8px}
.sc-pane .phone-avatar{width:58px;height:58px;font-size:1.2rem;margin-bottom:5px}
.sc-pane .phone-mock{background:none;border:none;padding:0;max-width:230px;width:100%;margin:0}
.sc-pane .phone-mock-header{justify-content:center}
.sc-pane .phone-link{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);padding:12px 15px;font-size:.85rem;border-radius:12px}
.sc-theme-card{width:min(230px,100%);border-radius:18px;border:1px solid var(--glass-border);background:rgba(255,255,255,.03);padding:20px;text-align:center}
.fx-theme-btn{border-radius:12px;padding:11px;font-size:.82rem;font-weight:700;margin-top:8px;background:var(--accent);transition:background .45s ease}
.fx-dot{transition:transform .2s;border:2px solid transparent}
.fx-dot.on{transform:scale(1.25);border-color:rgba(255,255,255,.8)}
.sc-qr-card{position:relative;overflow:hidden;background:#fff;border-radius:20px;padding:20px;box-shadow:0 24px 60px -20px rgba(0,0,0,.7)}
.sc-caption{font-size:.72rem;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.sc-steps{display:flex;flex-direction:column;padding:4vh 0}
.sc-step{min-height:56vh;display:flex;flex-direction:column;justify-content:center;cursor:pointer;
  opacity:.25;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.sc-step.active{opacity:1;transform:none}
.sc-chip{width:48px;height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:20px;box-shadow:0 10px 28px -10px rgba(0,0,0,.7)}
.sc-title{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:900;letter-spacing:-.02em;margin-bottom:12px;line-height:1.12}
.sc-desc{font-size:1rem;color:var(--text-2);line-height:1.75;max-width:420px}
.sc-idx{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--accent);margin-bottom:14px;text-transform:uppercase}
@media(max-width:900px){
  .sc-wrap{grid-template-columns:1fr;gap:0}
  .sc-phone-col{top:76px;z-index:5}
  .sc-phone{width:210px;height:424px;border-radius:34px;padding:9px}
  .sc-screen{border-radius:26px}
  .sc-notch{width:76px;height:18px;top:9px}
  .sc-pane{padding:30px 14px 16px;gap:12px}
  .sc-pane .phone-avatar{width:44px;height:44px;font-size:.95rem}
  .sc-step{min-height:52vh;text-align:center;align-items:center}
}

/* How it works - connected step rail, glass cards, draws in on scroll */
.hw-row{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1080px;margin:0 auto}
/* animated beam that draws through the step nodes */
.hw-line{position:absolute;top:76px;left:16.6%;right:16.6%;height:2px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;z-index:0}
.hw-fill{height:100%;width:0;background:linear-gradient(90deg,#ff8fbf,#8b5cff,#39c4e8);transition:width 1.6s cubic-bezier(.16,1,.3,1) .25s;box-shadow:0 0 14px rgba(139,92,255,.7)}
.hw-row.in .hw-fill{width:100%}
.hw-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));border:1px solid var(--glass-border);
  border-radius:24px;padding:44px 26px 30px;overflow:visible;opacity:0;transform:translateY(34px);
  transition:transform .6s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .3s,opacity .6s}
.hw-row.in .hw-card{opacity:1;transform:translateY(0)}
.hw-row.in .hw-card:nth-child(3){transition-delay:.08s}
.hw-row.in .hw-card:nth-child(4){transition-delay:.16s}
.hw-card::after{content:'';position:absolute;inset:0;border-radius:24px;padding:1px;background:linear-gradient(180deg,var(--hw-c,rgba(139,92,255,.6)),transparent 55%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;transition:opacity .3s;pointer-events:none}
.hw-card:hover{transform:translateY(-8px);border-color:transparent;box-shadow:0 30px 70px -28px rgba(139,92,255,.6)}
.hw-card:hover::after{opacity:1}
/* the step node sits on the beam (in-flow, no clipping) */
.hw-node{width:64px;height:64px;margin:0 auto 18px;position:relative}
.hw-ic{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;color:#fff;
  box-shadow:0 12px 34px -10px var(--hw-glow,rgba(139,92,255,.8));transition:transform .3s var(--ease-expo)}
.hw-card:hover .hw-ic{transform:scale(1.08) rotate(-4deg)}
.hw-ic i{width:26px;height:26px}
.hw-num{position:absolute;top:-6px;right:-4px;width:26px;height:26px;border-radius:50%;background:var(--bg);border:1.5px solid rgba(196,176,255,.5);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:.8rem;color:#c4b0ff;z-index:2}
.hw-title{font-family:var(--font-display);font-size:1.24rem;font-weight:800;margin:20px 0 8px}
.hw-desc{font-size:.92rem;color:var(--text-2);line-height:1.65;max-width:240px}
@media(max-width:760px){
  .hw-row{grid-template-columns:1fr;gap:16px;max-width:420px}
  .hw-line{top:0;bottom:0;left:40px;right:auto;width:2px;height:auto}
  .hw-card{flex-direction:row;align-items:center;text-align:left;padding:18px 20px;gap:16px}
  .hw-node{margin:0;flex-shrink:0;width:56px;height:56px}
  .hw-ic{width:56px;height:56px;border-radius:16px}
  .hw-ic i{width:22px;height:22px}
  .hw-title{margin:0 0 4px}
  .hw-desc{max-width:none}
  .hw-txt{display:flex;flex-direction:column}
}

/* FAQ 2.0 restyle (same markup) */
.faq-list{max-width:760px}
.faq-item{background:rgba(255,255,255,.02);border:1px solid var(--glass-border);border-radius:18px;transition:border-color .25s,background .25s}
.faq-item.open{background:rgba(124,92,252,.05);border-color:rgba(124,92,252,.4)}
.faq-question{font-size:1rem;font-weight:700;padding:20px 24px}
.faq-answer{font-size:.92rem;padding:0 24px}
.faq-item.open .faq-answer{padding:0 24px 20px}

/* Footer 2.0 */
.bf{border-top:1px solid var(--glass-border);margin-top:80px;position:relative;overflow:hidden}
.bf::before{content:'';position:absolute;top:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,#8b5cff,transparent)}
.bf-inner{max-width:1180px;margin:0 auto;padding:64px 24px 24px}
.bf-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:48px}
.bf-brand .logo{font-family:var(--font-display);font-size:1.4rem;font-weight:800}
.bf-brand .logo span{color:var(--accent)}
.bf-tagline{font-size:.88rem;color:var(--text-3);margin-top:8px;max-width:260px;line-height:1.6}
.bf-cols{display:flex;gap:64px;flex-wrap:wrap}
.bf-col{display:flex;flex-direction:column;gap:11px}
.bf-col-title{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px}
.bf-col a{font-size:.9rem;color:var(--text-2);cursor:pointer;transition:color .2s;width:fit-content}
.bf-col a:hover{color:var(--text)}
.bf-mega{font-family:'Clash Display','Cabinet Grotesk',sans-serif;font-weight:600;font-size:clamp(4rem,14vw,13rem);line-height:.85;letter-spacing:-.04em;text-align:center;user-select:none;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,0));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:-2vw}
.bf-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0 8px;border-top:1px solid rgba(255,255,255,.05);font-size:.78rem;color:var(--text-3)}

/* Auth 2.0 - split panel */
/* Auth: single centered column - card dead-center over an animated aurora, compact = no scroll */
.au-page{position:relative;overflow:hidden;min-height:calc(100vh - 40px);display:flex;align-items:center;justify-content:center;padding:96px 20px 32px}
.au-page::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:52px 52px;-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000,transparent 78%);mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000,transparent 78%)}
@keyframes au-aurora{0%,100%{transform:translate(0,0) scale(1) rotate(0deg)}33%{transform:translate(4%,-3%) scale(1.12) rotate(4deg)}66%{transform:translate(-3%,4%) scale(1.06) rotate(-3deg)}}
.au-side{display:none!important}
/* Floating app tiles drifting behind the auth card (brand glass chips) */
.au-apps{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.au-app{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:18px;
  background:rgba(16,14,30,.62);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 24px 60px -22px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.08);
  animation:au-drift var(--d,16s) ease-in-out infinite;animation-delay:var(--dl,0s);will-change:transform}
.au-app.lg{width:64px;height:64px;border-radius:20px}
.au-app.sm{width:46px;height:46px;border-radius:15px}
.au-app .ico{width:60%;height:60%;border-radius:30%;display:flex;align-items:center;justify-content:center;color:#fff}
.au-app .ico i,.au-app .ico svg{width:58%;height:58%}
.au-app.pill{width:auto;height:auto;padding:11px 15px;gap:11px;border-radius:16px}
.au-app.pill .ico{width:34px;height:34px;flex-shrink:0}
.au-app.pill .tx{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.au-app.pill .t1{font-weight:800;font-size:.82rem}
.au-app.pill .t2{font-size:.7rem;color:var(--text-3)}
@keyframes au-drift{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-22px) rotate(calc(var(--r,0deg) * -1))}}
/* keep the center column clear on small screens: hide the drifting tiles */
@media(max-width:860px){.au-apps{display:none}}
.au-side-legacy{position:relative;overflow:hidden;flex-direction:column;justify-content:flex-end;padding:56px;background:#0a0716}
.au-side::before{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 70% 55% at 30% 20%,rgba(139,92,255,.3),transparent 60%),
             radial-gradient(ellipse 55% 45% at 80% 75%,rgba(255,143,191,.16),transparent 60%),
             radial-gradient(ellipse 45% 40% at 65% 30%,rgba(57,196,232,.14),transparent 60%)}
.au-side::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000,transparent 80%);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000,transparent 80%)}
.au-side-quote{position:relative;z-index:1;font-family:'Clash Display','Cabinet Grotesk',sans-serif;font-weight:600;font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.08;letter-spacing:-.03em;max-width:420px}
.au-side-quote .grad{background:linear-gradient(120deg,#ff8fbf,#b56cff,#39c4e8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.au-side-sub{position:relative;z-index:1;color:var(--text-2);font-size:.95rem;margin-top:16px;max-width:380px;line-height:1.7}
.au-float{position:absolute;z-index:1;border-radius:18px;background:rgba(16,14,30,.75);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(16px);
  padding:14px 18px;display:flex;align-items:center;gap:12px;box-shadow:0 24px 60px -20px rgba(0,0,0,.8);animation:nh-float 7s ease-in-out infinite}
.au-float .ic{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.au-float .t1{font-weight:700;font-size:.86rem}
.au-float .t2{font-size:.72rem;color:var(--text-3)}
.au-form-side{display:flex;align-items:center;justify-content:center;padding:0;width:100%;position:relative;z-index:1}
/* Card: gradient-ring glass panel with a glow halo behind it */
.au-card{width:100%;max-width:410px;margin:0 auto;position:relative;z-index:1;
  background:linear-gradient(180deg,rgba(20,15,38,.82),rgba(10,10,22,.86));
  backdrop-filter:blur(26px) saturate(1.3);-webkit-backdrop-filter:blur(26px) saturate(1.3);
  border:1px solid transparent;border-radius:26px;padding:30px 30px 26px;
  background-clip:padding-box;
  box-shadow:0 40px 110px -38px rgba(0,0,0,.92),inset 0 1px 0 rgba(255,255,255,.07)}
.au-card::before{content:'';position:absolute;inset:-1px;border-radius:27px;z-index:-1;padding:1px;
  background:linear-gradient(150deg,rgba(139,92,255,.55),rgba(255,255,255,.06) 38%,rgba(34,211,238,.28));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude}
.au-card::after{content:'';position:absolute;left:50%;top:-70px;transform:translateX(-50%);width:260px;height:130px;z-index:-1;
  background:radial-gradient(ellipse,rgba(139,92,255,.4),transparent 72%);filter:blur(14px);pointer-events:none}
.au-card .auth-form{gap:12px}
/* Brand mark: rounded gradient tile with the LinkDrop dot */
.au-mark{position:relative;width:52px;height:52px;border-radius:16px;
  background:url("/logo-mark.png") center/58% no-repeat,linear-gradient(140deg,#9a6bff,#6144e8 60%,#4b2fd6);display:flex;align-items:center;justify-content:center;
  box-shadow:0 16px 40px -10px rgba(124,92,252,.85),inset 0 1px 0 rgba(255,255,255,.35);margin:0 auto 14px;
  font-size:0;color:transparent}
.au-title{font-family:var(--font-display);font-size:1.62rem;font-weight:900;letter-spacing:-.025em;margin-bottom:5px;text-align:center;
  background:linear-gradient(120deg,#fff,#c9bcff 90%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.au-sub{font-size:.88rem;color:var(--text-2);margin-bottom:18px;text-align:center}
.au-card .auth-form .form-group{margin-bottom:0}
.au-card .form-group label{margin-bottom:6px;font-size:.78rem;font-weight:700;letter-spacing:.02em;color:var(--text-2)}
.au-card .form-group input{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:12px 15px;transition:border-color .18s,background .18s,box-shadow .18s}
.au-card .form-group input:focus{background:rgba(124,92,252,.08);border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,252,.16)}
.au-card .btn-primary{border-radius:14px;padding:15px;font-size:1rem;font-weight:800;margin-top:2px;
  box-shadow:0 14px 34px -12px rgba(124,92,252,.85)}
.au-or{display:flex;align-items:center;gap:12px;margin:14px 0 12px;color:var(--text-3);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.au-or span{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--glass-border),transparent)}
.au-or span[data-i18n]{flex:0 0 auto;background:none}
.au-partner{width:100%;padding:13px;justify-content:center;gap:8px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;cursor:pointer;border-radius:14px;font-weight:700;
  box-shadow:0 12px 30px -12px rgba(16,185,129,.8);transition:transform .15s,box-shadow .15s}
.au-partner:hover{transform:translateY(-1px);box-shadow:0 18px 40px -12px rgba(16,185,129,.9)}
.au-card .auth-footer{margin-top:18px;text-align:center;font-size:.86rem;color:var(--text-2)}
.au-card .auth-footer a{color:var(--accent);font-weight:700;cursor:pointer}
/* Username = your link, with live URL preview */
.reg-url-field{display:flex;align-items:stretch;background:rgba(255,255,255,.035);border:1px solid var(--glass-border);border-radius:14px;overflow:hidden;transition:border-color .2s,background .2s}
.reg-url-field:focus-within{border-color:var(--accent);background:rgba(124,92,252,.06)}
.reg-url-prefix{display:flex;align-items:center;padding:0 4px 0 16px;font-weight:800;font-size:.9rem;color:var(--text-3);white-space:nowrap;user-select:none}
.reg-url-field input{flex:1;background:transparent!important;border:none!important;border-radius:0!important;padding:14px 16px 14px 2px!important;min-width:0}
.reg-url-field input:focus{background:transparent!important}
.reg-url-hint{font-size:.78rem;color:var(--text-3);margin-top:8px;line-height:1.5}
.reg-url-hint b{color:var(--accent)}
@media(max-width:900px){.au-page{padding-top:84px}}

/* Subscribe 2.0 */
.sb-card{position:relative;background:linear-gradient(165deg,rgba(139,92,255,.12),rgba(255,255,255,.02) 45%);border:1px solid rgba(124,92,252,.3);border-radius:28px;padding:44px 40px;max-width:520px;width:100%;overflow:hidden}
.sb-card::before{content:'';position:absolute;top:-60px;left:50%;transform:translateX(-50%);width:340px;height:150px;background:radial-gradient(ellipse,rgba(139,92,255,.35),transparent 70%);pointer-events:none}
@media(max-width:560px){.sb-card{padding:32px 22px}}

/* Dashboard reskin (desktop only - mobile bottom bar untouched) */
@media(min-width:769px){
  .sidebar{top:80px;left:16px;bottom:16px;border-radius:24px;border:1px solid rgba(124,92,252,.22);border-right:1px solid rgba(124,92,252,.22);
    background:linear-gradient(180deg,rgba(18,12,40,.92) 0%,rgba(9,10,20,.94) 100%);backdrop-filter:blur(24px);
    box-shadow:0 24px 80px -24px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.06)}
  .dashboard-main{margin-left:296px}
  .dashboard-main::before{left:296px;background:
    radial-gradient(ellipse 50% 40% at 78% 18%,rgba(139,92,255,.12) 0%,transparent 60%),
    radial-gradient(ellipse 40% 45% at 15% 85%,rgba(57,196,232,.07) 0%,transparent 60%),
    radial-gradient(ellipse 35% 30% at 45% 50%,rgba(255,143,191,.05) 0%,transparent 65%)}
  .dash-tab-header{border-bottom:none;position:relative;padding-bottom:18px}
  .dash-tab-header::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:100%;border-radius:2px;
    background:linear-gradient(90deg,rgba(139,92,255,.7),rgba(57,196,232,.25) 55%,transparent)}
  .dash-tab-title{font-size:2rem}
}

/* Username-as-link field: prefix makes it read as the public URL */
.uname-field{display:flex;align-items:center;gap:2px;background:var(--bg-3);border:1px solid var(--glass-border);border-radius:12px;padding:0 6px 0 14px;transition:border-color .2s,box-shadow .2s}
.uname-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.uname-field.is-taken{border-color:rgba(239,68,68,.65)}
.uname-field.is-taken:focus-within{border-color:var(--error);box-shadow:0 0 0 3px rgba(239,68,68,.15)}
.uname-field.is-free{border-color:rgba(61,220,132,.55)}
.uname-prefix{font-size:.9rem;font-weight:700;color:var(--text-3);white-space:nowrap;user-select:none}
.uname-field input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--accent);font-weight:800;font-size:.95rem;padding:12px 4px 12px 0;font-family:var(--font-body)}
.uname-status{width:18px;flex-shrink:0;text-align:center;font-size:.9rem;line-height:1}
.uname-open{flex-shrink:0;width:32px;height:32px;border-radius:9px;border:none;background:rgba(255,255,255,.05);color:var(--text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}
.uname-open:hover{background:rgba(124,92,252,.18);color:#c4b0ff}
.uname-msg{min-height:1.1em;font-size:.78rem;margin-top:6px;font-weight:600}
.uname-msg.err{color:#f87171}
.uname-msg.ok{color:#3ddc84}

/* Mobile: sticky phone showcase feels jumpy - phone sits inline, steps compact */
@media(max-width:900px){
  .sc-phone-col{position:relative;top:0;padding:8px 0 28px}
  .sc-step{min-height:0;padding:26px 0;opacity:1;transform:none;text-align:left;align-items:flex-start}
  .sc-step{border-bottom:1px solid rgba(255,255,255,.06)}
  .sc-step:last-child{border-bottom:none}
}

/* Accordion - CSS grid-rows height tween: buttery open/close, no jumps */
.acc-body{display:grid!important;grid-template-rows:0fr;padding:0!important;visibility:hidden;
  transition:grid-template-rows .34s cubic-bezier(.16,1,.3,1),visibility .34s}
.acc.open .acc-body{grid-template-rows:1fr;visibility:visible}
.acc-body>.acc-body-in{overflow:hidden;min-height:0;padding:2px 16px 16px}
@media(max-width:560px){.acc-body>.acc-body-in{padding:2px 13px 14px}}


/* Phone screen - every pane plays its own animation when it comes on stage */
.sc-pane.active .phone-mock{animation:fx-pop .55s var(--ease-expo,ease) both}
@keyframes fx-pop{from{opacity:0;transform:translateY(26px) scale(.93)}to{opacity:1;transform:none}}
.sc-pane.active #demo-links>*{opacity:0;animation:fx-slide .5s var(--ease-expo,ease) forwards}
.sc-pane.active #demo-links>*:nth-child(1){animation-delay:.25s}
.sc-pane.active #demo-links>*:nth-child(2){animation-delay:.35s}
.sc-pane.active #demo-links>*:nth-child(3){animation-delay:.45s}
.sc-pane.active #demo-links>*:nth-child(4){animation-delay:.55s}
.sc-pane.active #demo-links>*:nth-child(5){animation-delay:.65s}
@keyframes fx-slide{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}
.sc-pane .bar-chart-bar{transform-origin:bottom}
.sc-pane.active .bar-chart-bar{animation:fx-bar .7s var(--ease-expo,ease) backwards}
.sc-pane.active .bar-chart-bar:nth-child(1){animation-delay:.15s}
.sc-pane.active .bar-chart-bar:nth-child(2){animation-delay:.22s}
.sc-pane.active .bar-chart-bar:nth-child(3){animation-delay:.29s}
.sc-pane.active .bar-chart-bar:nth-child(4){animation-delay:.36s}
.sc-pane.active .bar-chart-bar:nth-child(5){animation-delay:.43s}
.sc-pane.active .bar-chart-bar:nth-child(6){animation-delay:.5s}
.sc-pane.active .bar-chart-bar:nth-child(7){animation-delay:.57s}
@keyframes fx-bar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.sc-pane.active .sc-theme-card{animation:fx-pop .5s var(--ease-expo,ease) both}
.sc-pane.active .sc-qr-card{animation:fx-pop .5s var(--ease-expo,ease) both}
.sc-pane.active .sc-qr-card::after{content:'';position:absolute;left:8%;right:8%;height:3px;border-radius:2px;
  background:linear-gradient(90deg,transparent,#8b5cff,transparent);animation:fx-scan 2s ease-in-out infinite .4s;top:10%}
@keyframes fx-scan{0%,100%{top:10%}50%{top:86%}}

/*
   ADMIN - mission control. Owner-only tab; dense on purpose. Hierarchy
   is money first, growth second, accounts third, risk last.
    */
.adm{--adm-gap:14px}
.adm-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-4px 0 20px;
  padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid var(--glass-border);backdrop-filter:blur(10px)}
.adm-live{display:inline-flex;align-items:center;gap:7px;font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}
.adm-live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:admPulse 2.4s ease-out infinite}
@keyframes admPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.adm-seg{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(0,0,0,.35);border:1px solid var(--glass-border)}
.adm-seg .analytics-range-tab{border:none;background:transparent;color:var(--text-2);font-size:.76rem;font-weight:700;padding:7px 15px;border-radius:999px;cursor:pointer;transition:color .2s,background .3s var(--ease-expo)}
.adm-seg .analytics-range-tab:hover{color:var(--text)}
.adm-seg .analytics-range-tab.active{color:#fff;background:linear-gradient(135deg,var(--accent),rgba(124,92,252,.55));box-shadow:0 4px 16px -4px var(--accent-glow)}
.adm-spacer{flex:1}

/* section heading: index number + label + hairline */
.adm-head{display:flex;align-items:center;gap:12px;margin:26px 0 12px}
.adm-head-n{font-family:var(--font-display);font-size:.7rem;font-weight:900;color:var(--accent);opacity:.85;letter-spacing:.06em}
.adm-head-t{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}
.adm-head-rule{flex:1;height:1px;background:linear-gradient(90deg,var(--border-accent),transparent)}
.adm-head-side{font-size:.72rem;color:var(--text-3);white-space:nowrap}

/* hero: one dominant number, satellites around it */
.adm-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--adm-gap);margin-bottom:6px}
.adm-hero-main{container-type:inline-size;position:relative;overflow:hidden;border-radius:22px;padding:26px 28px;
  background:linear-gradient(150deg,rgba(124,92,252,.22),rgba(124,92,252,.05) 55%,transparent);
  border:1px solid var(--border-accent)}
.adm-hero-main::after{content:"";position:absolute;right:-60px;top:-70px;width:240px;height:240px;pointer-events:none;
  background:radial-gradient(circle,var(--accent-glow),transparent 65%);filter:blur(10px)}
.adm-hero-main::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 34px);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000);mask-image:linear-gradient(180deg,transparent,#000)}
.adm-hero-main>*{position:relative;z-index:1}
.adm-kicker{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
/* scales off the card, not the viewport - the sidebar eats a lot of width on small laptops */
.adm-big{font-family:var(--font-display);font-weight:900;font-size:clamp(1.9rem,5vw,3.6rem);font-size:clamp(1.9rem,15cqi,3.6rem);line-height:1.05;margin:10px 0 4px;white-space:nowrap;letter-spacing:-.02em;
  background:linear-gradient(120deg,#fff,#c4b0ff 85%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.adm-big-sub{font-size:.82rem;color:var(--text-2)}
.adm-hero-foot{display:flex;gap:22px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.09);flex-wrap:wrap}
.adm-hero-foot span{display:block}
.adm-foot-k{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:800}
.adm-foot-v{font-size:1.05rem;font-weight:800;margin-top:3px}

/* margin ring */
.adm-ring-card{display:flex;align-items:center;gap:20px;border-radius:22px;padding:24px;background:var(--glass);border:1px solid var(--glass-border)}
.adm-ring{position:relative;width:116px;height:116px;flex-shrink:0;border-radius:50%;
  background:conic-gradient(var(--accent) calc(var(--p,0)*1%),rgba(255,255,255,.07) 0);
  transition:background .8s var(--ease-expo)}
.adm-ring::after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--bg-2);border:1px solid rgba(255,255,255,.06)}
.adm-ring-val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;font-family:var(--font-display);font-weight:900;font-size:1.35rem}
.adm-ring-val small{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-top:2px}
.adm-ring-meta{min-width:0}
.adm-ring-meta .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);font-weight:800}
.adm-ring-meta .v{font-family:var(--font-display);font-size:1.7rem;font-weight:900;margin:4px 0 2px}
.adm-ring-meta .s{font-size:.76rem;color:var(--text-2);line-height:1.5}

/* stat tiles - flatter and denser than the creator-facing analytics cards */
.adm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:var(--adm-gap)}
.adm-tile{position:relative;overflow:hidden;border-radius:16px;padding:16px 18px;background:var(--glass);border:1px solid var(--glass-border);
  transition:border-color .25s,transform .25s var(--ease-expo),background .25s}
.adm-tile:hover{border-color:var(--border-accent);transform:translateY(-3px);background:rgba(124,92,252,.07)}
.adm-tile .k{font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}
.adm-tile .v{font-family:var(--font-display);font-size:1.75rem;font-weight:900;line-height:1.1;margin:7px 0 3px;letter-spacing:-.02em}
.adm-tile .s{font-size:.72rem;color:var(--text-2)}
.adm-tile.is-good .v{color:#6ee7b7}
.adm-tile.is-bad .v{color:#f87171}
.adm-tile-spark{margin-top:10px;height:4px;border-radius:2px;background:rgba(255,255,255,.07);overflow:hidden}
.adm-tile-spark i{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent),#22d3ee);transform-origin:left;animation:admGrow .7s var(--ease-expo) both}
@keyframes admGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* cost input */
.adm-costs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px dashed var(--glass-border);margin-bottom:var(--adm-gap)}
.adm-costs label{font-size:.78rem;font-weight:700;color:var(--text-2)}
.adm-costs input{width:130px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px 10px;color:inherit;font-size:.85rem;font-weight:700;transition:border-color .2s,box-shadow .2s}
.adm-costs input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.adm-costs .hint{font-size:.72rem;color:var(--text-3)}

/* signup source funnel rows */
.adm-src{display:flex;flex-direction:column;gap:8px}
.adm-src-row{display:grid;grid-template-columns:minmax(120px,1.1fr) 2fr minmax(130px,.8fr);gap:16px;align-items:center;padding:13px 16px;border-radius:14px;
  background:var(--glass);border:1px solid var(--glass-border);transition:border-color .25s,background .25s}
.adm-src-row:hover{border-color:var(--border-accent);background:rgba(124,92,252,.06)}
.adm-src-name{font-weight:800;font-size:.9rem}
.adm-src-code{display:block;font-size:.72rem;color:var(--text-3);background:none;border:none;padding:0;font-family:inherit;cursor:pointer;text-align:left}
.adm-src-code:hover{color:var(--accent)}
.adm-src-when{font-size:.68rem;color:var(--text-3);opacity:.7;margin-top:4px}
/* Revenue column: the whole point of the section, so it gets the loudest number in the row */
.adm-src-rev{text-align:right;border-left:1px solid var(--glass-border);padding-left:14px}
.adm-src-rev-v{font-weight:900;font-size:1.05rem;font-variant-numeric:tabular-nums;
  background:linear-gradient(90deg,#10b981,#6ee7b7);-webkit-background-clip:text;background-clip:text;color:transparent}
.adm-src-rev-k{font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:var(--text-3);margin-top:2px}
.adm-src-rev-s{font-size:.68rem;color:var(--text-3);margin-top:5px}
.adm-funnel{display:flex;flex-direction:column;gap:6px}
.adm-funnel-step{display:grid;grid-template-columns:74px 1fr auto;gap:10px;align-items:center;font-size:.74rem}
.adm-funnel-step .fk{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-weight:800;font-size:.66rem}
.adm-funnel-bar{height:8px;border-radius:5px;background:rgba(255,255,255,.06);overflow:hidden}
.adm-funnel-bar i{display:block;height:100%;border-radius:5px;transform-origin:left;animation:admGrow .7s var(--ease-expo) both}
.adm-funnel-step.s1 .adm-funnel-bar i{background:linear-gradient(90deg,#7c5cfc,#a78bfa)}
.adm-funnel-step.s2 .adm-funnel-bar i{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.adm-funnel-step.s3 .adm-funnel-bar i{background:linear-gradient(90deg,#10b981,#6ee7b7)}
.adm-funnel-step.s4 .adm-funnel-bar i{background:linear-gradient(90deg,#3b82f6,#93c5fd)}
.adm-funnel-step .fv{font-weight:800;font-variant-numeric:tabular-nums;min-width:66px;text-align:right}
.adm-funnel-step .fv small{font-weight:700;color:var(--text-3);margin-left:5px;font-size:.86em}

/* accounts */
.adm-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.adm-search{position:relative;flex:1;min-width:200px;max-width:340px}
.adm-search input{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--glass-border);border-radius:12px;padding:9px 12px 9px 34px;color:inherit;font-size:.83rem;transition:border-color .2s,box-shadow .2s}
.adm-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
/* lucide swaps the <i> for an <svg>, so both need the positioning */
.adm-search i,.adm-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-3);pointer-events:none}
.adm-switch{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text-2);cursor:pointer;user-select:none;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid var(--glass-border);transition:border-color .2s,color .2s}
.adm-switch:hover{border-color:var(--border-accent);color:var(--text)}
.adm-switch input{accent-color:var(--accent);cursor:pointer}
.adm-count{font-size:.74rem;color:var(--text-3);font-variant-numeric:tabular-nums}
.adm-table-wrap{border-radius:18px;border:1px solid var(--glass-border);background:rgba(255,255,255,.02);overflow:hidden}
.adm-scroll{overflow-x:auto}
table.adm-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem;min-width:820px}
table.adm-table thead th{position:sticky;top:0;z-index:2;text-align:left;padding:11px 14px;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);
  background:rgba(13,15,24,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
table.adm-table tbody td{padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.045);vertical-align:middle}
table.adm-table tbody tr{transition:background .18s}
table.adm-table tbody tr.adm-row{cursor:pointer}
table.adm-table tbody tr.adm-row:hover{background:rgba(124,92,252,.09)}
table.adm-table tbody tr:last-child td{border-bottom:none}
.adm-user{display:flex;align-items:center;gap:11px;min-width:0}
.adm-av{width:32px;height:32px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.82rem;color:#fff;
  background:linear-gradient(135deg,var(--accent),#22d3ee);box-shadow:0 4px 14px -6px var(--accent-glow)}
.adm-user-n{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-user-m{display:block;color:var(--text-3);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-pill{display:inline-block;padding:3px 9px;border-radius:7px;font-size:.72rem;font-weight:800;white-space:nowrap;
  background:rgba(255,255,255,.07);color:var(--text-2);border:1px solid transparent}
.adm-pill.on{background:rgba(16,185,129,.14);color:#6ee7b7;border-color:rgba(16,185,129,.3)}
.adm-pill.warn{background:rgba(245,158,11,.14);color:#fbbf24;border-color:rgba(245,158,11,.3)}
.adm-pill.bad{background:rgba(239,68,68,.14);color:#f87171;border-color:rgba(239,68,68,.3)}
.adm-num{font-variant-numeric:tabular-nums;font-weight:700}
.adm-muted{color:var(--text-3)}
.adm-acts{display:flex;gap:4px;justify-content:flex-end;white-space:nowrap;opacity:.55;transition:opacity .2s}
tr.adm-row:hover .adm-acts{opacity:1}
.adm-ico{width:29px;height:29px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:var(--text-2);transition:all .16s}
.adm-ico:hover{color:#fff;background:var(--accent-dim);border-color:var(--border-accent);transform:translateY(-1px)}
.adm-ico.danger:hover{background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.45);color:#f87171}
.adm-ico.gift-on{color:#6ee7b7;border-color:rgba(16,185,129,.35)}
.adm-empty{padding:26px 16px;text-align:center;color:var(--text-3);font-size:.85rem}

/* risk feed */
.adm-feed{display:flex;flex-direction:column;gap:7px}
.adm-feed-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:13px;background:var(--glass);border:1px solid var(--glass-border);font-size:.82rem}
.adm-feed-item.hot{border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.06)}
.adm-feed-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.adm-feed-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.adm-feed-time{color:var(--text-3);font-size:.74rem;white-space:nowrap}

/* detail modal */
.adm-modal-head{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.adm-modal-head .adm-av{width:44px;height:44px;border-radius:14px;font-size:1.05rem}
.adm-modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
@media(max-width:900px){
  .adm-hero{grid-template-columns:1fr}
  .adm-src-row{grid-template-columns:1fr;gap:10px}
  /* Stacked: the revenue block becomes a footer row, so the left rule/right align go */
  .adm-src-rev{text-align:left;border-left:none;padding-left:0;border-top:1px solid var(--glass-border);padding-top:10px}
}
@media(max-width:600px){
  .adm-toolbar{padding:9px}
  .adm-seg{width:100%;justify-content:space-between}
  .adm-seg .analytics-range-tab{flex:1;padding:7px 6px;font-size:.72rem}
  .adm-ring-card{flex-direction:column;text-align:center}
}

/* ---- Scheduler (owner-only tab) ----
   Per-platform accents live on [data-platform] so JS only sets the attribute. Instagram's
   gradient and Facebook's blue are the same values the DM bot cards already use. */
/* The composer lives inside .form-group blocks, whose `display:flex` class rules outrank
   the UA [hidden] rule - so state toggled with the hidden attribute must be re-hidden here
   or empty and filled states render on top of each other. The spoofer reuses these same
   composer classes, so it needs the identical rule - without it its dropzone showed the
   "Drop videos or photos" prompt and the picked filename stacked on top of each other. */
#tab-scheduler [hidden],
#tab-spoofer [hidden]{display:none}

.sched-plat{--p:var(--accent);--pg:linear-gradient(135deg,var(--accent),var(--accent-hover))}
.sched-plat[data-platform="instagram"]{--p:#dd2a7b;--pg:linear-gradient(135deg,#f58529,#dd2a7b)}
.sched-plat[data-platform="facebook"]{--p:#1877f2;--pg:linear-gradient(135deg,#1877f2,#0b5fce)}
.sched-plat[data-platform="threads"]{--p:#e9e9ee;--pg:linear-gradient(135deg,#e9e9ee,#9aa0b5)}
.sched-plat[data-platform="fanvue"]{--p:#7c5cfc;--pg:linear-gradient(135deg,#7c5cfc,#c04dfc)}

.sched-head-stat{font-size:.76rem;font-weight:700;color:var(--text-3);letter-spacing:.02em;white-space:nowrap}
.sched-head-stat b{color:var(--accent);font-weight:800}

/* Channels */
.sched-chans{display:flex;flex-direction:column;gap:9px;margin-bottom:4px}
.sched-chan{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.025);transition:border-color .25s,background .25s,transform .35s var(--ease-expo);animation:fx-slide .45s calc(var(--i,0) * .05s) var(--ease-expo) both}
.sched-chan:hover{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.045)}
.sched-chan-badge{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--pg);color:#fff;flex-shrink:0;box-shadow:0 4px 14px -4px var(--p)}
.sched-plat[data-platform="threads"] .sched-chan-badge{color:#0b0c14}
.sched-chan-badge svg{width:17px;height:17px}
.sched-chan-name{font-weight:700;font-size:.88rem;line-height:1.25}
.sched-chan-handle{font-size:.76rem;color:var(--text-3)}
.sched-chan-actions{margin-left:auto;display:flex;align-items:center;gap:9px;flex-shrink:0}
.sched-chan-x{background:transparent;border:none;color:var(--text-3);cursor:pointer;display:flex;padding:5px;border-radius:8px;transition:color .2s,background .2s}
.sched-chan-x:hover{color:#ef4444;background:rgba(239,68,68,.1)}
.sched-chan-x svg{width:15px;height:15px}

.sched-connect-row{display:flex;gap:9px;flex-wrap:wrap}
.sched-connect{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap;color:var(--text);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:border-color .25s,background .25s,transform .3s var(--ease-expo),box-shadow .3s}
.sched-connect:hover{transform:translateY(-2px);border-color:var(--p);background:rgba(255,255,255,.08);box-shadow:0 8px 22px -12px var(--p)}
.sched-connect svg{width:15px;height:15px;color:var(--p)}
.sched-connect[data-platform="threads"] svg{color:#e9e9ee}
.sched-connect[data-platform="instagram"] svg{color:#dd2a7b}
.sched-connect[data-platform="fanvue"] svg{color:#7c5cfc}

.sched-note{font-size:.78rem;color:var(--text-2);line-height:1.5}
.sched-note.is-error{color:#ef4444}
.sched-note.is-ok{color:#3ddc84}

/* Composer */
.sched-composer .form-group{margin-bottom:0}
.sched-caption-group{position:relative}
.sched-count{position:absolute;right:2px;bottom:-18px;font-size:.7rem;color:var(--text-3);font-variant-numeric:tabular-nums;transition:color .2s}
.sched-count.is-near{color:#eab308}
.sched-caption-group{padding-bottom:16px}

.sched-drop{position:relative;border:1.5px dashed rgba(255,255,255,.15);border-radius:15px;padding:22px;cursor:pointer;text-align:center;transition:border-color .28s,background .28s,transform .35s var(--ease-expo)}
.sched-drop:hover,.sched-drop:focus-visible{border-color:var(--border-accent);background:rgba(124,92,252,.045);outline:none}
.sched-drop.is-drag{border-color:var(--accent);background:rgba(124,92,252,.09);transform:scale(1.012)}
.sched-drop.has-media{padding:13px;text-align:left;border-style:solid;cursor:default}
.sched-drop-empty{display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}
.sched-drop-empty svg{width:26px;height:26px;color:var(--accent);margin-bottom:3px}
.sched-drop-title{font-weight:700;font-size:.88rem}
.sched-drop-sub{font-size:.78rem;color:var(--text-3)}
.sched-drop.is-small{padding:15px;margin-top:12px}
.sched-drop.is-small .sched-drop-empty svg{width:20px;height:20px}
.sched-drop.is-small .sched-drop-title{font-size:.82rem}
.sched-drop.is-small .sched-drop-sub{font-size:.74rem;max-width:330px}
.sched-prev-label{margin-top:16px;font-size:.78rem;font-weight:700;color:var(--text-2);letter-spacing:.04em;text-transform:uppercase}
.sched-drop-filled{display:flex;align-items:center;gap:13px;animation:fx-pop .4s var(--ease-expo) both}
.sched-thumb{width:58px;height:58px;border-radius:11px;overflow:hidden;flex-shrink:0;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center}
.sched-thumb img,.sched-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.sched-drop-meta{min-width:0;flex:1}
.sched-drop-name{font-weight:700;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sched-thumb-x{background:rgba(255,255,255,.06);border:none;color:var(--text-2);cursor:pointer;display:flex;padding:7px;border-radius:9px;flex-shrink:0;transition:color .2s,background .2s}
.sched-thumb-x:hover{color:#ef4444;background:rgba(239,68,68,.12)}
.sched-thumb-x svg{width:14px;height:14px}
.sched-progress{height:3px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:7px}
.sched-progress>span{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--accent),#c04dfc);transition:width .25s var(--ease-expo)}

/* Target pills - the checkbox stays real (keyboard + form semantics), just visually hidden. */
.sched-targets{display:flex;flex-wrap:wrap;gap:8px}
/* .sched-target is itself a <label> inside a .form-group, which would uppercase it. */
.sched-targets label.sched-target{text-transform:none;letter-spacing:normal;color:var(--text)}
.sched-target{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border-radius:999px;font-size:.82rem;font-weight:600;cursor:pointer;user-select:none;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);transition:border-color .25s,background .25s,transform .3s var(--ease-expo),box-shadow .3s;animation:fx-slide .4s calc(var(--i,0) * .04s) var(--ease-expo) both}
.sched-target:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.2)}
.sched-target input{position:absolute;opacity:0;width:0;height:0}
.sched-target-dot{width:20px;height:20px;border-radius:7px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.09);color:transparent;flex-shrink:0;transition:background .25s,color .25s,transform .35s var(--ease-back)}
.sched-target-dot svg{width:12px;height:12px}
.sched-target:has(input:checked){border-color:var(--p);background:color-mix(in srgb,var(--p) 13%,transparent);box-shadow:0 6px 20px -12px var(--p)}
.sched-target:has(input:checked) .sched-target-dot{background:var(--pg);color:#fff;transform:scale(1.06)}
.sched-plat[data-platform="threads"]:has(input:checked) .sched-target-dot{color:#0b0c14}
.sched-target:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.sched-target-handle{color:var(--text-3);font-weight:500}

/* Smooth height without measuring: 0fr â†’ 1fr on a grid row. */
.sched-collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .38s var(--ease-expo),opacity .3s ease,margin .38s var(--ease-expo);margin-top:-16px}
.sched-collapse.is-open{grid-template-rows:1fr;opacity:1;margin-top:0}
.sched-collapse-inner{overflow:hidden;min-height:0}

/* Fanvue PPV */
.sched-price{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px}
.sched-price-cur{font-size:.78rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}
.sched-price input{width:110px;background:rgba(255,255,255,.06);border:1px solid rgba(124,92,252,.3);color:var(--text);border-radius:9px;padding:8px 12px;font-size:.9rem;font-weight:700;font-family:var(--font-body)}
.sched-price input:focus{outline:none;border-color:var(--accent)}

/* When + date picker */
.sched-when-group{position:relative}
.sched-when{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sched-when-btn{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border-radius:11px;font-size:.86rem;font-weight:700;cursor:pointer;color:var(--text);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:border-color .25s,background .25s}
.sched-when-btn:hover{border-color:var(--border-accent);background:var(--accent-dim)}
.sched-when-btn[aria-expanded="true"]{border-color:var(--accent);background:var(--accent-dim)}
.sched-when-btn svg{width:15px;height:15px;color:var(--accent)}

.sched-cal{position:absolute;z-index:40;top:calc(100% + 9px);left:0;width:298px;max-width:calc(100vw - 40px);padding:15px;border-radius:16px;background:rgba(13,15,24,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 50px -12px rgba(0,0,0,.7);animation:form-drop .28s var(--ease-expo) both}
.sched-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.sched-cal-title{font-weight:800;font-size:.88rem}
.sched-cal-nav{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);color:var(--text-2);border-radius:9px;padding:5px;cursor:pointer;display:flex;transition:color .2s,border-color .2s,background .2s}
.sched-cal-nav:hover{color:var(--text);border-color:var(--border-accent);background:var(--accent-dim)}
.sched-cal-nav svg{width:15px;height:15px}
.sched-cal-dow,.sched-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.sched-cal-dow{margin-bottom:5px}
.sched-cal-dow span{text-align:center;font-size:.66rem;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.sched-cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:9px;font-size:.79rem;font-weight:600;cursor:pointer;background:transparent;border:1px solid transparent;color:var(--text-2);transition:background .18s,color .18s,border-color .18s,transform .3s var(--ease-back)}
.sched-cal-day:hover:not(:disabled){background:rgba(255,255,255,.07);color:var(--text)}
.sched-cal-day:disabled{opacity:.22;cursor:not-allowed}
.sched-cal-day.is-other{color:var(--text-3);opacity:.55}
.sched-cal-day.is-today{border-color:var(--border-accent);color:var(--accent)}
.sched-cal-day.is-sel{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.06);box-shadow:0 5px 16px -6px var(--accent)}
.sched-cal-time{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:13px;padding-top:13px;border-top:1px solid rgba(255,255,255,.08)}
.sched-cal-time>svg{width:15px;height:15px;color:var(--text-3);flex-shrink:0}
.sched-cal-time input{width:46px;text-align:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--text);border-radius:8px;padding:6px 4px;font-size:.86rem;font-weight:800;font-family:var(--font-body);font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.sched-cal-time input::-webkit-outer-spin-button,.sched-cal-time input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sched-cal-time input:focus{outline:none;border-color:var(--accent)}
.sched-cal-colon{font-weight:800;color:var(--text-3)}
.sched-cal-quick{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.sched-cal-quick button{padding:4px 8px;border-radius:7px;font-size:.68rem;font-weight:700;cursor:pointer;color:var(--text-3);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);transition:color .18s,border-color .18s,background .18s}
.sched-cal-quick button:hover{color:var(--text);border-color:var(--border-accent);background:var(--accent-dim)}
.sched-cal-foot{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:13px}

.sched-presets{display:flex;gap:6px;flex-wrap:wrap}
.sched-preset{padding:7px 13px;border-radius:999px;font-size:.76rem;font-weight:700;cursor:pointer;color:var(--text-2);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);transition:color .2s,border-color .2s,background .2s,transform .3s var(--ease-expo)}
.sched-preset:hover{color:var(--text);border-color:var(--border-accent);background:var(--accent-dim);transform:translateY(-1px)}

.sched-submit-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sched-submit{gap:8px}
.sched-submit svg{width:15px;height:15px}
.sched-submit[disabled]{opacity:.55;pointer-events:none}
.sched-submit-row .sched-note{margin:0}

/* Queue */
.sched-queue-list{display:flex;flex-direction:column;gap:11px}
.sched-post{position:relative;padding:15px 17px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,.018));transition:border-color .25s,transform .35s var(--ease-expo);animation:link-enter .5s calc(var(--i,0) * .05s) var(--ease-expo) both;overflow:hidden}
.sched-post:hover{border-color:rgba(255,255,255,.15)}
/* Left status rail - reads the state before any text does. */
.sched-post::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rail,var(--accent));opacity:.85}
.sched-post.is-scheduled{--rail:var(--accent)}
.sched-post.is-publishing{--rail:#eab308}
.sched-post.is-posted{--rail:#3ddc84}
.sched-post.is-partial{--rail:#eab308}
.sched-post.is-failed{--rail:#ef4444}
.sched-post-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.sched-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.sched-status.is-scheduled{background:var(--accent-dim);color:var(--accent);border:1px solid var(--border-accent)}
.sched-status.is-publishing{background:rgba(234,179,8,.14);color:#eab308;border:1px solid rgba(234,179,8,.35)}
.sched-status.is-posted{background:rgba(61,220,132,.14);color:#3ddc84;border:1px solid rgba(61,220,132,.32)}
.sched-status.is-partial{background:rgba(234,179,8,.14);color:#eab308;border:1px solid rgba(234,179,8,.35)}
.sched-status.is-failed{background:rgba(239,68,68,.14);color:#ef4444;border:1px solid rgba(239,68,68,.35)}
.sched-status .sched-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.sched-post.is-publishing .sched-dot{animation:pulse 1.4s ease-in-out infinite}
.sched-post-when{font-size:.77rem;color:var(--text-3);font-weight:600}
.sched-ppv-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.66rem;font-weight:800;letter-spacing:.05em;background:linear-gradient(135deg,rgba(251,191,36,.18),rgba(236,72,153,.18));border:1px solid rgba(251,191,36,.42);color:#fbbf24}
.sched-ppv-badge svg{width:11px;height:11px}
.sched-post-body{display:flex;gap:12px;align-items:flex-start}
.sched-post-thumb{width:46px;height:46px;border-radius:10px;overflow:hidden;flex-shrink:0;background:rgba(255,255,255,.05)}
.sched-post-thumb img,.sched-post-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.sched-post-caption{font-size:.85rem;color:var(--text-2);white-space:pre-wrap;word-break:break-word;line-height:1.5;min-width:0}
.sched-post-caption.is-empty{color:var(--text-3);font-style:italic}
.sched-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.sched-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:.7rem;font-weight:700;background:color-mix(in srgb,var(--p) 14%,transparent);color:var(--p);border:1px solid color-mix(in srgb,var(--p) 34%,transparent)}
.sched-chip svg{width:11px;height:11px}
.sched-chip.is-fail{background:rgba(239,68,68,.13);color:#ef4444;border-color:rgba(239,68,68,.34)}
.sched-chip a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.sched-errs{margin-top:9px;display:flex;flex-direction:column;gap:4px}
.sched-err{font-size:.75rem;color:#ef4444;word-break:break-word}
.sched-post-actions{display:flex;gap:7px;margin-left:auto;flex-shrink:0}
.sched-act{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;font-size:.72rem;font-weight:700;cursor:pointer;color:var(--text-2);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);transition:color .2s,border-color .2s,background .2s}
.sched-act svg{width:12px;height:12px}
.sched-act:hover{color:var(--text);border-color:var(--border-accent);background:var(--accent-dim)}
.sched-act.is-danger:hover{color:#ef4444;border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.1)}

/* Empty + loading */
.sched-empty{display:flex;flex-direction:column;align-items:center;gap:7px;padding:30px 20px;text-align:center;border:1px dashed rgba(255,255,255,.1);border-radius:15px;animation:fx-pop .45s var(--ease-expo) both}
.sched-empty svg{width:26px;height:26px;color:var(--text-3);margin-bottom:3px}
.sched-empty-title{font-weight:700;font-size:.88rem}
.sched-empty-sub{font-size:.79rem;color:var(--text-3);max-width:340px;line-height:1.5}
.sched-skel{height:74px;border-radius:15px;background:linear-gradient(90deg,rgba(255,255,255,.04) 25%,rgba(255,255,255,.08) 37%,rgba(255,255,255,.04) 63%);background-size:200% 100%;animation:skeleton-sweep 1.3s ease-in-out infinite;margin-bottom:11px}

@media(max-width:640px){
  .sched-head-stat{display:none}
  .sched-when input[type="datetime-local"]{flex:1 1 100%}
  .sched-post-actions{margin-left:0;width:100%;margin-top:9px}
  .sched-connect{flex:1 1 auto;justify-content:center}
}


/* ===== Spoofer ==========================================================
   Reuses the scheduler composer shell (.sched-drop, .sched-progress,
   .sched-note); only the options grid and the job cards are new. */
.spoof-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;align-items:end;margin-top:16px}
.spoof-check{display:inline-flex;align-items:center;gap:9px;font-size:.84rem;font-weight:600;cursor:pointer;user-select:none;padding-bottom:9px;text-transform:none;letter-spacing:normal;color:var(--text)}
.spoof-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}

.spoof-job{padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,.018));margin-bottom:11px;transition:border-color .25s}
.spoof-job:hover{border-color:rgba(255,255,255,.15)}
.spoof-job.is-bad{border-color:rgba(239,68,68,.35)}
.spoof-job.is-ok{border-color:rgba(61,220,132,.28)}
.spoof-job-head{display:flex;align-items:center;gap:10px;justify-content:space-between}
.spoof-job-name{font-weight:700;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spoof-job-meta{margin-top:5px;font-size:.78rem;color:var(--text-3)}
.spoof-job-err{margin-top:8px;font-size:.78rem;color:#ef4444;word-break:break-word}
.spoof-job-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}

.spoof-badge{flex-shrink:0;font-size:.68rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--text-2)}
.spoof-badge.is-running{background:rgba(124,92,252,.18);color:#c4b5fd}
.spoof-badge.is-ok{background:rgba(61,220,132,.16);color:#3ddc84}
.spoof-badge.is-bad{background:rgba(239,68,68,.16);color:#f87171}

.spoof-dls{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.spoof-dl{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;font-size:.78rem;font-weight:600;text-decoration:none;color:var(--text);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:border-color .25s,background .25s,transform .3s var(--ease-expo)}
.spoof-dl:hover{transform:translateY(-2px);border-color:var(--border-accent);background:rgba(124,92,252,.09)}
.spoof-x{background:none;border:none;padding:4px 2px;font-size:.78rem;font-weight:600;color:var(--text-3);cursor:pointer;transition:color .2s}
.spoof-x:hover{color:#ef4444}

/* Spoofer: mode picker. Radios stay real for keyboard and form semantics. */
.spoof-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:11px;margin-bottom:16px}
.spoof-mode{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border-radius:14px;cursor:pointer;user-select:none;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09);transition:border-color .25s,background .25s,transform .3s var(--ease-expo);text-transform:none;letter-spacing:normal;color:var(--text)}
.spoof-mode:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.2)}
.spoof-mode input{position:absolute;opacity:0;width:0;height:0}
.spoof-mode svg{width:18px;height:18px;flex-shrink:0;margin-top:2px;color:var(--text-3);transition:color .25s}
.spoof-mode.is-active{border-color:var(--p,var(--accent));background:color-mix(in srgb,var(--accent) 11%,transparent)}
.spoof-mode.is-active svg{color:var(--accent)}
.spoof-mode-title{font-weight:700;font-size:.87rem}
.spoof-mode-sub{margin-top:3px;font-size:.76rem;color:var(--text-3);line-height:1.45}
.spoof-dl.is-all{cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;border-color:var(--border-accent);background:rgba(124,92,252,.1)}
.spoof-dl.is-all svg{width:13px;height:13px}

