/* ── DEMO MODAL (macOS-style window) ───────────── */
.demo-overlay{position:fixed;inset:0;z-index:700;background:radial-gradient(ellipse 50% 45% at 50% 50%,rgba(255,255,255,.045) 0%,transparent 70%),rgba(10,10,16,.38);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:40px;animation:fadeIn .3s var(--ease)}
.demo-window{position:relative;width:min(1148px,calc(100vw - 80px));height:min(860px,calc(100vh - 80px));background:#10101a;border:0;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 60px 120px -30px rgba(0,0,0,.85),0 28px 56px -20px rgba(0,0,0,.6),0 6px 12px -4px rgba(0,0,0,.55),0 1px 0 rgba(255,255,255,.06);animation:demoIn .4s var(--ease);transition:width .35s var(--ease),height .35s var(--ease)}
.demo-window::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:50;box-shadow:inset 0 -2px 0 rgba(0,0,0,.7),inset 2px 0 0 rgba(255,255,255,.06),inset -2px 0 0 rgba(255,255,255,.06),inset 0 0 0 1px rgba(255,255,255,.14)}
@keyframes demoIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.demo-bar{display:flex;align-items:center;gap:12px;padding:11px 14px;background:linear-gradient(to bottom,#1c1c28,#13131e);border-bottom:1px solid var(--line);flex-shrink:0}
.demo-traffic{display:flex;gap:7px;align-items:center}
.demo-light{width:12px;height:12px;min-width:12px;min-height:12px;border-radius:50%;border:none;cursor:default;padding:0;position:relative}
.demo-light-close{background:#ff5f57;cursor:pointer}
.demo-light-close::before,.demo-light-close::after{content:'';position:absolute;top:50%;left:50%;width:7px;height:1.3px;background:#4d0000;border-radius:1px;opacity:0;transition:opacity .15s ease}
.demo-light-close::before{transform:translate(-50%,-50%) rotate(45deg)}
.demo-light-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.demo-traffic:hover .demo-light-close::before,.demo-traffic:hover .demo-light-close::after{opacity:1}
.demo-light-min{background:#febc2e}
.demo-light-max{background:#28c840}
.demo-addr{flex:1;display:flex;align-items:center;gap:10px;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:var(--fs-base);color:var(--text-mute);background:rgba(255,255,255,.04);border:1px solid var(--line-soft);border-radius:8px;padding:6px 16px;max-width:540px;margin:0 auto}
.demo-addr svg{flex-shrink:0;opacity:.6}
.demo-addr-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-tools{display:flex;gap:8px;align-items:center;flex-shrink:0}
.demo-tool{background:none;border:1px solid var(--line);color:var(--text-mute);font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:6px;cursor:pointer;line-height:1.4;transition:all .25s var(--ease);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.demo-tool:hover{color:var(--text);border-color:rgba(167,139,250,.38);background:rgba(167,139,250,.10)}
@supports (color: color-mix(in srgb, red, blue)) {
  .demo-tool:hover{border-color:color-mix(in srgb,var(--demo-accent,var(--accent)) 38%,transparent);background:color-mix(in srgb,var(--demo-accent,var(--accent)) 10%,transparent)}
}
.demo-device-btn{padding:5px 7px}
.demo-zoom{display:inline-flex;align-items:center;gap:2px;background:rgba(255,255,255,.04);border:1px solid var(--line-soft);border-radius:7px;padding:2px;font-family:'JetBrains Mono',monospace}
.demo-zoom-btn{background:none;border:none;color:var(--text-mute);width:22px;height:22px;min-width:22px;min-height:22px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px;font-size:var(--fs-lg);line-height:1;padding:0;transition:all .15s ease}
.demo-zoom-btn:hover{background:rgba(167,139,250,.14);color:var(--text)}
@supports (color: color-mix(in srgb, red, blue)) {
  .demo-zoom-btn:hover{background:color-mix(in srgb,var(--demo-accent,var(--accent)) 14%,transparent)}
}
.demo-zoom-val{min-width:34px;text-align:center;color:var(--text-mute);font-size:10.5px;letter-spacing:.04em}
.demo-body{flex:1;position:relative;background:var(--bg-1);overflow:hidden}
.demo-body-desktop{--demo-desktop-zoom:.85}
.demo-body-desktop iframe{position:absolute;top:0;left:0;width:calc(100% / var(--demo-desktop-zoom));height:calc(100% / var(--demo-desktop-zoom));border:none;background:var(--text-white);transform:scale(var(--demo-desktop-zoom));transform-origin:top left}
.demo-role-picker{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:5;background:var(--bg-1)}
.demo-role-title{color:var(--text-mute);font-family:'JetBrains Mono',monospace;font-size:var(--fs-base);letter-spacing:.12em;text-transform:uppercase;margin:0}
.demo-role-cards{display:flex;gap:16px}
.demo-role-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 32px;background:rgba(255,255,255,.03);border:1px solid var(--line-soft);border-radius:14px;cursor:pointer;transition:all .25s var(--ease);min-width:160px}
.demo-role-card:hover{border-color:rgba(167,139,250,.50);background:rgba(167,139,250,.08)}
@supports (color: color-mix(in srgb, red, blue)) {
  .demo-role-card:hover{border-color:color-mix(in srgb,var(--demo-accent,var(--accent)) 50%,transparent);background:color-mix(in srgb,var(--demo-accent,var(--accent)) 8%,transparent)}
}
.demo-role-icon{color:var(--demo-accent,var(--accent));margin-bottom:4px}
.demo-role-label{color:var(--text);font-family:var(--font-body);font-size:var(--fs-xl);font-weight:600}
.demo-role-desc{color:var(--text-mute);font-size:var(--fs-base);text-align:center;max-width:140px;line-height:1.4}
.demo-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text-mute);font-family:'JetBrains Mono',monospace;font-size:var(--fs-sm);letter-spacing:.18em;text-transform:uppercase;pointer-events:none}
.demo-loader-spinner{width:32px;height:32px;border:2px solid rgba(124,58,237,.18);border-top-color:var(--demo-accent,var(--accent));border-radius:50%;animation:spin 1s linear infinite}
@supports (color: color-mix(in srgb, red, blue)) {
  .demo-loader-spinner{border-color:color-mix(in srgb,var(--demo-accent,#7c3aed) 18%,transparent);border-top-color:var(--demo-accent,var(--accent))}
}
/* Mobile-device demo (vertical phone frame) — Pixel/Honor proportions */
.demo-window[data-device="mobile"]{height:min(900px,calc(100vh - 80px))}
.demo-body-mobile{display:flex;align-items:center;justify-content:center;padding:10px;background:radial-gradient(ellipse at center,rgba(124,58,237,.22) 0%,var(--bg-1) 75%)}
@supports (color: color-mix(in srgb, red, blue)) {
  .demo-body-mobile{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--demo-accent,#7c3aed) 22%,#0d0d18) 0%,var(--bg-1) 75%)}
}
.demo-phone-frame{position:relative;height:100%;aspect-ratio:9/19.5;max-width:100%;background:#000;border-radius:38px;padding:6px;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06),inset 0 0 0 1.5px rgba(255,255,255,.04),0 0 70px rgba(124,58,237,.22)}
.demo-phone-screen{--demo-zoom:.73;position:relative;width:100%;height:100%;border-radius:32px;overflow:hidden;background:var(--text-white);display:flex;flex-direction:column}
.demo-status-bar{height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 24px 0 28px;background:var(--text-white);color:#000;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',sans-serif;font-size:var(--fs-lg);font-weight:600;letter-spacing:.01em;z-index:1}
.demo-status-icons{display:inline-flex;align-items:center;gap:7px;fill:currentColor}
.demo-status-icons svg{display:block}
.demo-phone-viewport{flex:1;position:relative;overflow:hidden}
.demo-phone-viewport iframe{position:absolute;top:0;left:0;width:calc(100% / var(--demo-zoom));height:calc(100% / var(--demo-zoom));border:none;background:var(--text-white);transform:scale(var(--demo-zoom));transform-origin:top left}

@media(max-width:640px){
  .demo-overlay{padding:0}
  .demo-window,
  .demo-window[data-device="mobile"]{width:100%;height:100vh;border-radius:0;border:none}
  .demo-addr{font-size:var(--fs-xs);padding:5px 10px}
  .demo-tool{display:none}
  .demo-zoom{padding:1px}
  .demo-zoom-btn{width:20px;height:20px;font-size:var(--fs-md)}
  .demo-zoom-val{font-size:var(--fs-xs);min-width:30px}
  .demo-body-mobile{padding:10px}
  .demo-phone-frame{border-radius:32px;padding:5px}
  .demo-phone-screen{border-radius:27px}
}

