/* Shared shell + multi-page styles (mega menu, page templates, scroll interactions). Palette stays on the brand tokens in styles.css. */
body{overflow-x:clip}
.si{flex-shrink:0}
/* ── nav ── */
.sn{position:sticky;top:0;z-index:60;background:rgba(248,247,244,.72);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid transparent;transition:background 400ms var(--ease),border-color 400ms var(--ease),box-shadow 400ms var(--ease)}
.sn.scrolled,.sn.has-open{background:rgba(255,255,255,.88);border-bottom-color:#E8E4DC}
.sn-in{max-width:1200px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;gap:28px;transition:padding 400ms var(--ease)}
.sn.scrolled .sn-in{padding-top:10px;padding-bottom:10px}
.sn-brand{display:flex;align-items:center;flex-shrink:0}
.sn-brand:hover{opacity:1}
.sn-links{display:flex;align-items:center;gap:4px;flex:1}
.sn-btn{display:inline-flex;align-items:center;gap:6px;font:500 14px 'Inter',sans-serif;color:#1B1A17;background:none;border:0;border-radius:8px;padding:9px 12px;transition:background 250ms var(--ease)}
.sn-btn svg{transition:transform 350ms var(--spring);opacity:.6}
.sn-item.open .sn-btn{background:rgba(27,26,23,.06)}
.sn-item.open .sn-btn svg{transform:rotate(180deg)}
.sn-panel{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid #E8E4DC;box-shadow:0 40px 60px -40px rgba(20,21,15,.35);opacity:0;transform:translateY(-8px);pointer-events:none;visibility:hidden;transition:opacity 280ms var(--ease),transform 480ms var(--spring),visibility 0s 280ms}
.sn-item.open .sn-panel{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition-delay:0s}
.sn-pin{max-width:1200px;margin:0 auto;padding:28px 32px 32px;display:grid;grid-template-columns:1fr 300px;gap:32px}
.sn-cap,.sn-feat-cap{font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#6B665C;margin-bottom:12px}
.sn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
.sn-li{display:flex;gap:14px;align-items:flex-start;padding:12px;border-radius:12px;transition:background 250ms var(--ease),transform 400ms var(--spring)}
.sn-li:hover{opacity:1;background:#F2EFE8;transform:translateX(3px)}
.sn-ic{width:36px;height:36px;border-radius:10px;background:#F2EFE8;display:grid;place-items:center;color:#B8552A;flex-shrink:0;transition:background 250ms,color 250ms}
.sn-li:hover .sn-ic{background:#B8552A;color:#fff}
.sn-tx b{display:block;font:600 14px 'Inter',sans-serif;color:#1B1A17}
.sn-tx small{display:block;margin-top:2px;font-size:12.5px;line-height:1.45;color:#6B665C}
.sn-feat{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:8px;background:#12110F;color:#fff;border-radius:16px;padding:22px}
.sn-feat:hover{opacity:1}
.sn-feat-cap{color:#E8A87C;margin:0}
.sn-feat-t{font:300 26px/1.1 'Newsreader',serif;letter-spacing:-.02em}
.sn-feat p{margin:0;font-size:13px;line-height:1.55;color:#CBC6BC}
.sn-feat-go{margin-top:auto;display:inline-flex;gap:6px;align-items:center;font-size:13px;font-weight:600;transition:gap 300ms var(--spring)}
.sn-feat:hover .sn-feat-go{gap:12px}
.sn-feat-orb{position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(184,85,42,.7),transparent 70%);animation:glowMove 9s ease-in-out infinite alternate}
.sn-r{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
.sn-lang{font:600 13px 'Inter',sans-serif;background:none;border:0;color:#1B1A17;border-radius:8px;padding:8px 10px}
.sn-lang:hover{background:rgba(27,26,23,.06)}
.sn-login{font:600 13px 'Inter',sans-serif;color:#1B1A17;border:1px solid #E8E4DC;background:#fff;border-radius:8px;padding:8px 16px;display:inline-block;transition:border-color 250ms,transform 300ms var(--spring)}
.sn-login:hover{opacity:1;border-color:#1B1A17;transform:translateY(-1px)}
.sn-demo{font:600 13px 'Inter',sans-serif;color:#fff;background:#B8552A;border-radius:8px;padding:8px 16px;display:inline-block}
.big{padding:12px 24px!important;font-size:14px!important;border-radius:999px!important}
.sn-ghost{font:600 14px 'Inter',sans-serif;color:#1B1A17;border:1px solid #CBC6BC;border-radius:999px;padding:12px 24px;transition:background 250ms}
.sn-ghost:hover{opacity:1;background:#fff}
.sn-scrim{position:fixed;inset:0;background:rgba(18,17,15,.28);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity 300ms var(--ease);z-index:55}
.sn-scrim.on{opacity:1;pointer-events:auto}
.sn-burger{display:none;width:38px;height:38px;border:0;background:none;position:relative}
.sn-burger i{position:absolute;left:9px;right:9px;height:1.6px;background:#1B1A17;transition:transform 350ms var(--spring),top 350ms var(--spring)}
.sn-burger i:first-child{top:14px}.sn-burger i:last-child{top:22px}
.sn.mob .sn-burger i:first-child{top:18px;transform:rotate(45deg)}.sn.mob .sn-burger i:last-child{top:18px;transform:rotate(-45deg)}
.sm{display:none;max-height:0;overflow:hidden;transition:max-height 500ms var(--spring)}
.sn.mob .sm{max-height:calc(100vh - 56px);overflow:auto}
.sm-in{padding:8px 20px 24px}
.sm-d{border-bottom:1px solid #E8E4DC}
.sm-d summary{display:flex;justify-content:space-between;align-items:center;padding:16px 0;font:600 16px 'Inter',sans-serif;list-style:none;cursor:pointer}
.sm-d summary::-webkit-details-marker{display:none}
.sm-d a{display:block;padding:9px 0 9px 8px;font-size:14px;color:#4A4A40}
.sm-act{display:flex;gap:10px;margin-top:20px}
@media (max-width:980px){.sn-links,.sn-r .sn-login,.sn-r .sn-demo{display:none}.sn-burger{display:block}.sm{display:block}.sn-in{padding:10px 16px;gap:12px}.sn-scrim{display:none}}
/* ── page hero ── */
.ph,.hub{position:relative;overflow:hidden}
.ph-bg{position:absolute;inset:0;background:radial-gradient(700px 500px at 82% 10%,rgba(184,85,42,.2),transparent 70%),radial-gradient(rgba(27,26,23,.09) 1px,transparent 1.3px) 0 0/22px 22px;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.ph-in{position:relative;max-width:1200px;margin:0 auto;padding:72px 32px 56px;display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center}
.crumb2{font-size:12.5px;color:#6B665C;margin-bottom:22px}
.crumb2 a:hover{color:#B8552A;opacity:1}
.ph-h1{margin:14px 0 20px;font:300 62px/1.03 'Newsreader',serif;letter-spacing:-.035em;color:#1B1A17}
.lang-zh .ph-h1{font-size:48px;line-height:1.2;letter-spacing:-.02em}
.wdo{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.wd{display:inline-block;transform:translateY(112%);animation:wdUp 1.1s var(--spring) forwards}
@keyframes wdUp{to{transform:none}}
.wd-in{animation:fadeUp .9s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}}
.ph-sub{font-size:18px;line-height:1.6;color:#4A4A40;max-width:52ch;margin:0 0 28px;animation:fadeUp 1s .5s var(--ease) both}
.ph-b{display:flex;gap:12px;flex-wrap:wrap;animation:fadeUp 1s .7s var(--ease) both}
.hv{position:relative;transition:transform 120ms linear;will-change:transform}
.hv-glow{position:absolute;inset:-12% -8%;background:radial-gradient(closest-side,rgba(184,85,42,.28),transparent);filter:blur(18px);animation:glowPulse 6s ease-in-out infinite alternate}
.hv-card{position:relative;background:rgba(255,255,255,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #E8E4DC;border-radius:20px;padding:20px 22px 18px;box-shadow:0 50px 90px -50px rgba(20,21,15,.5)}
.hv-top{display:flex;align-items:center;gap:6px;margin-bottom:18px}
.hv-cap{margin-left:10px;font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#6B665C}
.hv-live{margin-left:auto;display:flex;gap:7px;align-items:center;font:500 10px 'IBM Plex Mono',monospace;color:#0E6839;text-transform:uppercase}
.hv-big{font:300 46px/1 'Newsreader',serif;letter-spacing:-.03em;display:flex;align-items:baseline;gap:12px}
.lang-zh .hv-big{font-size:38px}
.hv-big em{font:500 12px 'IBM Plex Mono',monospace;font-style:normal;color:#0E6839;border:1px solid rgba(14,104,57,.35);border-radius:4px;padding:1px 6px}
.hv-spark{width:100%;height:90px;margin:14px 0 6px}
.hv-line{stroke-dasharray:700;stroke-dashoffset:700;animation:draw 2.4s .5s var(--ease) forwards}
.hv-area{opacity:0;animation:fadeUp 1.4s 1.4s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.hv-rows .gv-r:first-child{border-top:0}
.hv-chip{position:absolute;display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #E8E4DC;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;box-shadow:0 20px 40px -22px rgba(20,21,15,.4);translate:0 var(--py,0);white-space:nowrap}
.hv-c1{left:-28px;bottom:-20px}.hv-c2{right:-16px;top:-18px;color:#B8552A}
.gv-r{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid #E8E4DC;font-size:13.5px;color:#4A4A40}
.gv-r b{font:600 13px 'IBM Plex Mono',monospace;color:#1B1A17;text-align:right}
.stats{max-width:1200px;margin:0 auto;padding:0 32px 56px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative}
.stats div{background:#fff;border:1px solid #E8E4DC;border-radius:16px;padding:20px 24px}
.stats b{display:block;font:300 44px/1 'Newsreader',serif;letter-spacing:-.03em;color:#B8552A}
.stats span{font-size:13px;color:#6B665C}
/* ── scrub statement ── */
.stmt{max-width:1000px;margin:0 auto;padding:110px 32px}
.stmt-p{margin:0;font:400 40px/1.25 'Newsreader',serif;letter-spacing:-.02em}
.lang-zh .stmt-p{font-size:34px;line-height:1.5}
.sw{color:rgba(27,26,23,.16);transition:color 350ms var(--ease)}
.sw.on{color:#1B1A17}
.stmt-home{padding-top:70px;padding-bottom:70px}
/* ── sticky story ── */
.st{background:#EDEAE2;border-top:1px solid #E8E4DC;border-bottom:1px solid #E8E4DC}
.st-head{max-width:1200px;margin:0 auto;padding:96px 32px 24px}
.st-in{max-width:1200px;margin:0 auto;padding:0 32px 96px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.st-vis{position:sticky;top:18vh;height:min(420px,64vh)}
.st-stack{position:relative;height:340px}
.st-v{position:absolute;inset:0 0 auto 0;opacity:0;transform:translateY(24px) scale(.96);transition:opacity 600ms var(--ease),transform 900ms var(--spring);pointer-events:none}
.st-v.on{opacity:1;transform:none}
.gv{background:#fff;border:1px solid #E8E4DC;border-radius:20px;padding:24px 26px;box-shadow:0 40px 80px -48px rgba(20,21,15,.4)}
.gv-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#6B665C}
.gv-tag{color:#0E6839;border:1px solid rgba(14,104,57,.35);border-radius:4px;padding:1px 7px;letter-spacing:.06em}
.gv-h+.gv-r{border-top:0}
.gv-bar{height:6px;border-radius:6px;background:#F2EFE8;margin-top:18px;overflow:hidden}
.gv-bar i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,#E8A87C,#B8552A);transition:width 1.1s var(--spring) .15s}
.st-v.on .gv-bar i{width:var(--w)}
.st-dots{display:flex;gap:8px;margin-top:20px}
.st-dots i{width:8px;height:8px;border-radius:8px;background:#CBC6BC;transition:width 400ms var(--spring),background 300ms}
.st-dots i.on{width:28px;background:#B8552A}
.st-step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;opacity:.28;transition:opacity 500ms var(--ease)}
.st-step.cur{opacity:1}
.st-n{font:500 12px 'IBM Plex Mono',monospace;color:#B8552A;margin-bottom:12px}
.st-step h3{margin:0 0 12px;font:300 38px/1.1 'Newsreader',serif;letter-spacing:-.02em}
.lang-zh .st-step h3{font-size:32px}
.st-step p{margin:0;font-size:16.5px;line-height:1.65;color:#4A4A40;max-width:46ch}
/* ── features / scenario / related / cta ── */
.feat-in,.rel-in,.hub-in{max-width:1200px;margin:0 auto;padding:96px 32px}
.hub-in{position:relative;padding-top:72px}
.feat-g{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.fc{background:#fff;border:1px solid #E8E4DC;border-radius:18px;padding:26px;transition:transform 500ms var(--spring),border-color 300ms,box-shadow 500ms var(--ease)}
.fc:hover{transform:translateY(-6px);border-color:rgba(184,85,42,.4);box-shadow:0 30px 50px -36px rgba(184,85,42,.5)}
.fc b{display:block;font:300 24px/1.15 'Newsreader',serif;letter-spacing:-.01em;margin-bottom:8px}
.fc p{margin:0;font-size:14px;line-height:1.6;color:#4A4A40}
.scn{position:relative;overflow:hidden;background:#12110F;color:#fff}
.scn-in{position:relative;max-width:900px;margin:0 auto;padding:110px 32px;text-align:center}
.scn h2{margin:14px 0 18px;font:300 48px/1.08 'Newsreader',serif;letter-spacing:-.03em}
.lang-zh .scn h2{font-size:38px;line-height:1.25}
.scn p{margin:0 auto;font-size:18px;line-height:1.65;color:#CBC6BC;max-width:60ch}
.rel-g,.hub-g{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.hub-g{margin-top:48px}
.pc{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #E8E4DC;border-radius:20px;padding:26px;min-height:210px;transition:transform 500ms var(--spring),border-color 300ms,box-shadow 500ms var(--ease)}
.pc:hover{opacity:1;transform:translateY(-6px);border-color:rgba(184,85,42,.45);box-shadow:0 36px 60px -40px rgba(184,85,42,.55)}
.pc-ic{width:44px;height:44px;border-radius:12px;background:#F2EFE8;color:#B8552A;display:grid;place-items:center;margin-bottom:10px;transition:background 300ms,color 300ms,transform 500ms var(--spring)}
.pc:hover .pc-ic{background:#B8552A;color:#fff;transform:rotate(-6deg) scale(1.06)}
.pc b{font:300 26px/1.15 'Newsreader',serif;letter-spacing:-.01em}
.pc small{font-size:13.5px;line-height:1.55;color:#6B665C}
.pc-go{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#B8552A;transition:gap 300ms var(--spring)}
.pc:hover .pc-go{gap:12px}
.cta2{position:relative;overflow:hidden;background:#1B1A17;color:#fff}
.cta2-in{position:relative;max-width:760px;margin:0 auto;padding:110px 32px;text-align:center}
.cta2 h2{margin:0 0 14px;font:300 48px/1.08 'Newsreader',serif;letter-spacing:-.03em}
.lang-zh .cta2 h2{font-size:38px}
.cta2 p{margin:0 auto 28px;color:#CBC6BC;font-size:17px;line-height:1.6;max-width:54ch}
.cta2-b{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cta2 .sn-login{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.cta2 .sn-login:hover{border-color:#fff}
/* ── scroll reveal for new pages ── */
.sr{opacity:0;transform:translateY(34px);transition:opacity 900ms var(--ease),transform 1200ms var(--spring)}
.sr.in{opacity:1;transform:none}
/* ── footer ── */
.sf{background:#F8F7F4;border-top:1px solid #E8E4DC}
.sf-in{max-width:1200px;margin:0 auto;padding:56px 32px 32px;display:grid;grid-template-columns:1.2fr 1.2fr 1fr 1.3fr .9fr;gap:28px}
.sf-brand p{margin:14px 0 18px;font-size:13px;color:#6B665C;max-width:30ch;line-height:1.55}
.sf-h{font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#6B665C;margin-bottom:12px}
.sf-col a{display:block;padding:5px 0;font-size:13.5px;color:#1B1A17}
.sf-col a:hover{color:#B8552A;opacity:1}
.sf-bot{max-width:1200px;margin:0 auto;padding:20px 32px 32px;border-top:1px solid #E8E4DC;font-size:12px;color:#6B665C}
.dk-glow{position:absolute;inset:0;background:radial-gradient(600px 400px at 85% 20%,rgba(184,85,42,.28),transparent 70%),radial-gradient(500px 360px at 5% 90%,rgba(232,168,124,.12),transparent 70%);animation:glowPulse 8s ease-in-out infinite alternate;pointer-events:none}
@media (max-width:980px){
  .ph-in{grid-template-columns:1fr;gap:40px;padding:48px 20px 40px}
  .ph-h1{font-size:44px}.lang-zh .ph-h1{font-size:36px}
  .hv-c1{left:0}.hv-c2{right:0}
  .st-in{grid-template-columns:1fr;gap:0;padding:0 20px 56px}
  .st-vis{top:64px;height:auto;z-index:2;background:#EDEAE2;padding:12px 0}
  .st-stack{height:250px}
  .gv{padding:16px 18px}.gv-r{padding:7px 0}
  .st-step{min-height:46vh}.st-step h3{font-size:30px}
  .feat-g,.rel-g,.hub-g,.stats{grid-template-columns:1fr}
  .stmt{padding:64px 20px}.stmt-p{font-size:28px}.lang-zh .stmt-p{font-size:24px}
  .feat-in,.rel-in,.hub-in{padding:56px 20px}
  .scn-in,.cta2-in{padding:72px 20px}.scn h2,.cta2 h2{font-size:34px}
  .sf-in{grid-template-columns:1fr 1fr;padding:40px 20px 24px}.sf-brand{grid-column:1/-1}
  .st-head{padding:56px 20px 16px}
}
@media (prefers-reduced-motion:reduce){.wd{transform:none;animation:none}.sr{opacity:1;transform:none}.st-v{transition:none}}

/* clarity pass: logo size, readable story text, powered-by tag */
.nav-logo{filter:contrast(1.08)}
.st-step{opacity:.55}
.st-step h3{font-weight:400;color:#1B1A17}
.st-step p{color:#2F2D27;font-size:17px}
.sw{color:rgba(27,26,23,.3)}
.sn-tx small,.sf-brand p,.sf-col a{color:#3A382F}
.pw{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#B8552A;border:1px solid rgba(184,85,42,.4);border-radius:999px;padding:4px 10px}
.powered{display:inline-block;margin:0 0 14px;font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#E8A87C;border:1px solid rgba(232,168,124,.45);border-radius:999px;padding:4px 10px}
@media (max-width:980px){.st-step{opacity:.7}.nav-logo{height:26px!important}}
.dark-band .agx-word{font-size:46px}.lang-zh .dark-band .agx-word{font-size:42px}

/* steps: static alternating rows (replaces the sticky story) */
.stp{background:#EDEAE2;border-top:1px solid #E8E4DC;border-bottom:1px solid #E8E4DC}
.stp-in{max-width:1100px;margin:0 auto;padding:40px 32px}
.stp-row{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:48px 0}
.stp-row.rev .stp-t{order:2}
.stp-t h3{margin:0 0 12px;font:400 36px/1.12 'Newsreader',serif;letter-spacing:-.02em;color:#1B1A17}
.lang-zh .stp-t h3{font-size:30px}
.stp-t p{margin:0;font-size:17px;line-height:1.65;color:#2F2D27;max-width:46ch}
.stp-v .gv-bar i{width:var(--w)}
.bm img.ink{z-index:0}.bm img+img{z-index:1}
.bm.inv img.ink{filter:invert(1)}
@media (max-width:980px){.stp-in{padding:16px 20px}.stp-row{grid-template-columns:1fr;gap:24px;padding:32px 0}.stp-row.rev .stp-t{order:0}}
/* pain-point scenes */
.pn{height:68px;margin-bottom:14px;display:flex;align-items:center;gap:10px;position:relative}
.pn1 .pa{font:600 22px 'IBM Plex Mono',monospace;background:#F2EFE8;border-radius:8px;padding:6px 10px;animation:flipA 3.2s ease-in-out infinite}
.pn1 .pb{animation-name:flipB;color:#B8552A}
.pn1 .pm{font-size:22px;color:#B8552A;animation:shake 1.6s ease-in-out infinite}
@keyframes flipA{0%,45%{transform:none}50%{transform:translateY(-4px)}55%,100%{transform:none}}
@keyframes flipB{0%,50%{transform:none}55%{transform:translateY(4px) rotate(2deg)}60%,100%{transform:none}}
@keyframes shake{0%,100%{transform:none}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
.pn2 .bx{width:42px;height:42px;border-radius:10px;border:1.5px solid #1B1A17;display:grid;place-items:center;font:600 13px 'IBM Plex Mono',monospace}
.pn2 .gap{position:relative;flex:1;height:2px;background:repeating-linear-gradient(90deg,#CBC6BC 0 5px,transparent 5px 10px)}
.pn2 .gap i{position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;background:#B8552A;animation:stall 3s ease-in infinite}
@keyframes stall{0%{left:0;opacity:1}55%{left:52%;opacity:1}70%{left:52%;opacity:0;transform:scale(2)}100%{left:0;opacity:0}}
.pn3 .doc{width:30px;height:38px;border:1.5px solid #1B1A17;border-radius:4px;background:linear-gradient(#E8E4DC,#E8E4DC) 6px 10px/18px 2px no-repeat,linear-gradient(#E8E4DC,#E8E4DC) 6px 17px/18px 2px no-repeat,linear-gradient(#E8E4DC,#E8E4DC) 6px 24px/12px 2px no-repeat,#fff}
.pn3 .rail{position:relative;flex:1;height:38px}
.pn3 .rail i{position:absolute;top:10px;left:0;width:22px;height:28px;border-radius:3px;background:#B8552A;opacity:.9;animation:carry 2.6s var(--ease) infinite}
@keyframes carry{0%{left:0}45%{left:calc(100% - 22px)}55%{left:calc(100% - 22px)}100%{left:0}}
.pn4 .av{width:34px;height:34px;border-radius:50%;background:#1B1A17}
.pn4 .g1,.pn4 .g2{background:#E8E4DC;margin-left:-4px}
.pn4 .lk{width:18px;height:14px;border-radius:3px;background:#B8552A;position:relative;margin-left:4px;animation:lockPulse 2.2s ease-in-out infinite}
.pn4 .lk::before{content:'';position:absolute;left:3px;top:-9px;width:8px;height:10px;border:2px solid #B8552A;border-bottom:0;border-radius:6px 6px 0 0}
@keyframes lockPulse{50%{transform:scale(1.15)}}
.pn5 .needle{transform-origin:40px 44px;animation:wander 3.4s ease-in-out infinite}
@keyframes wander{0%{transform:rotate(-70deg)}25%{transform:rotate(40deg)}50%{transform:rotate(-30deg)}75%{transform:rotate(65deg)}100%{transform:rotate(-70deg)}}
.pn5 .q{font:600 26px 'Newsreader',serif;color:#B8552A;animation:fadeQ 3.4s ease-in-out infinite}
@keyframes fadeQ{0%,100%{opacity:.2}50%{opacity:1}}
.pn6 .nd{position:absolute;width:30px;height:30px;border-radius:50%;border:1.5px solid #1B1A17;background:#fff;display:grid;place-items:center;font:600 11px 'IBM Plex Mono',monospace}
.pn6 .n1{left:2%;animation:fl1 4s ease-in-out infinite}.pn6 .n2{left:30%;animation:fl2 4.6s ease-in-out infinite}.pn6 .n3{left:58%;animation:fl1 5s ease-in-out infinite reverse}.pn6 .n4{left:84%;animation:fl2 3.8s ease-in-out infinite reverse}
@keyframes fl1{0%,100%{transform:translate(0,-14px)}50%{transform:translate(10px,14px)}}
@keyframes fl2{0%,100%{transform:translate(0,16px)}50%{transform:translate(-8px,-14px)}}
.dark-band .agx-word{font-size:36px}.lang-zh .dark-band .agx-word{font-size:40px}
/* bento scenes (replace hover effects with concrete looping animations) */
.bt{transition:none}.bt:hover{transform:none}
.bs{height:96px;margin-bottom:auto;display:flex;align-items:center;gap:12px}
.bt-dark .bs{margin-bottom:auto}
.bs1{flex-direction:column;align-items:stretch;justify-content:center;gap:9px;max-width:300px}
.bs1 i{position:relative;display:block;height:14px;border-radius:7px;background:rgba(255,255,255,.12);overflow:hidden}
.bs1 i::before{content:'';position:absolute;inset:0;width:0;border-radius:7px;background:linear-gradient(90deg,#E8A87C,#B8552A);animation:fillRow 6s var(--ease) infinite}
.bs1 i::after{content:'✓';position:absolute;right:7px;top:-1px;font:700 10px/14px 'Inter';color:#fff;opacity:0;animation:tick 6s infinite}
.bs1 i:nth-child(2)::before,.bs1 i:nth-child(2)::after{animation-delay:.7s}
.bs1 i:nth-child(3)::before,.bs1 i:nth-child(3)::after{animation-delay:1.4s}
.bs1 i:nth-child(4)::before,.bs1 i:nth-child(4)::after{animation-delay:2.1s}
@keyframes fillRow{0%{width:0}25%,80%{width:100%}95%,100%{width:0}}
@keyframes tick{0%,24%{opacity:0}30%,80%{opacity:1}95%,100%{opacity:0}}
.bs .m,.bs .d{min-width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font:600 12px 'IBM Plex Mono',monospace;border:1.5px solid #1B1A17;background:#fff}
.bs .ln{position:relative;flex:1;height:2px;background:repeating-linear-gradient(90deg,#CBC6BC 0 5px,transparent 5px 10px)}
.bs .ln b{position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;background:#B8552A;animation:travel 2.8s var(--ease) infinite}
@keyframes travel{0%{left:0;opacity:0}12%{opacity:1}85%{left:calc(100% - 10px);opacity:1}100%{left:calc(100% - 10px);opacity:0}}
.bs2 .t{background:#1B1A17;color:#fff;animation:pop 2.8s infinite}
.bs3 .c{min-width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:700 16px 'Inter';background:#B8552A;color:#fff;border:1.5px solid #fff;animation:pop 2.8s infinite;box-shadow:0 0 0 0 rgba(255,255,255,.5)}
.bs3 .d{border-color:#1B1A17}
.bs3 .ln{background:repeating-linear-gradient(90deg,#CBC6BC 0 5px,transparent 5px 10px)}
@keyframes pop{0%,78%{transform:none}88%{transform:scale(1.14)}100%{transform:none}}
.bs4{position:relative;color:#fff;justify-content:flex-start}
.bs4 svg{position:relative;z-index:1}
.bs4 u{position:absolute;left:0;top:50%;width:64px;height:64px;margin-top:-32px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);opacity:0;animation:ringOut 2.8s var(--ease) infinite}
.bs4 u+u{animation-delay:1.4s}
@keyframes ringOut{0%{transform:scale(.8);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.bs4::after{content:'';position:absolute;left:0;width:64px;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);animation:scan 2.8s ease-in-out infinite;opacity:.8;z-index:2}
@keyframes scan{0%,100%{top:14px}50%{top:78px}}
@media (prefers-reduced-motion:reduce){.bs *,.bs::after{animation:none!important}}
.sn-btn{white-space:nowrap}
.sm-ext{display:block;padding:16px 0;font:600 16px 'Inter',sans-serif;border-bottom:1px solid #E8E4DC}
@media (max-width:1180px){.sn-ext{display:none}}
/* ── demo booking chat ── */
.dc-lock{overflow:hidden}
.dc{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:flex-end;padding:24px;pointer-events:none}
.dc-scrim{position:absolute;inset:0;background:rgba(18,17,15,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity 350ms var(--ease);pointer-events:auto}
.dc.on .dc-scrim{opacity:1}
.dc-panel{position:relative;width:440px;max-width:100%;height:min(680px,calc(100vh - 48px));display:flex;flex-direction:column;background:#12110F;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:22px;box-shadow:0 60px 120px -40px rgba(0,0,0,.9);overflow:hidden;transform:translateY(40px) scale(.97);opacity:0;transition:transform 600ms var(--spring),opacity 350ms var(--ease);pointer-events:auto}
.dc.on .dc-panel{transform:none;opacity:1}
.dc-panel::before{content:'';position:absolute;inset:0;background:radial-gradient(420px 260px at 100% 0,rgba(184,85,42,.3),transparent 70%);pointer-events:none}
.dc-top{position:relative;display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.1)}
.dc-ico{width:34px;height:34px;border-radius:10px;background:#B8552A;display:grid;place-items:center}
.dc-top b{display:block;font:600 14px 'Inter',sans-serif}
.dc-top small{font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:#E8A87C}
.dc-x{margin-left:auto;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;font-size:20px;line-height:1}
.dc-x:hover{background:rgba(255,255,255,.18)}
.dc-body{position:relative;flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px}
.dc-in{position:relative;margin:0 16px 16px;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 14px;font-size:13px;color:#8c877c}
.dm{max-width:88%;font-size:14px;line-height:1.55;border-radius:16px;padding:11px 14px;opacity:0;transform:translateY(10px);transition:opacity 400ms var(--ease),transform 600ms var(--spring)}
.dm.in{opacity:1;transform:none}
.dm-u{align-self:flex-end;background:#B8552A;border-bottom-right-radius:5px}
.dm-a{align-self:flex-start;background:rgba(255,255,255,.08);color:#EDEAE2;border-bottom-left-radius:5px}
.dm-w{max-width:100%;width:100%;background:rgba(255,255,255,.06)}
.dm-txt{margin-bottom:2px}
.dots{display:inline-flex;gap:4px;padding:4px 0}
.dots i{width:6px;height:6px;border-radius:50%;background:#CBC6BC;animation:dotb 1s infinite}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes dotb{0%,60%,100%{transform:none;opacity:.4}30%{transform:translateY(-4px);opacity:1}}
.pk{margin-top:12px}
.pk-h{font:500 10.5px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#E8A87C;margin:2px 0 8px}
.pk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.pk-d{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 0;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#fff;transition:background 250ms,border-color 250ms,transform 300ms var(--spring)}
.pk-d small{font-size:10px;color:#CBC6BC}.pk-d b{font:600 16px 'Inter'}.pk-d em{font:normal 9.5px 'IBM Plex Mono',monospace;color:#8c877c}
.pk-d:hover{border-color:#E8A87C;transform:translateY(-2px)}
.pk-d.is-sel{background:#B8552A;border-color:#B8552A}.pk-d.is-sel small,.pk-d.is-sel em{color:#fff}
.pk-times{margin-top:14px}
.pk-times:not([hidden]){animation:fadeUp .5s var(--ease)}
.pk-tg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pk-t{padding:10px 0;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#fff;font:500 13px 'IBM Plex Mono',monospace;transition:background 250ms,border-color 250ms}
.pk-t:hover:not(:disabled){border-color:#E8A87C}
.pk-t.is-sel{background:#fff;color:#12110F;border-color:#fff}
.pk-t:disabled{opacity:.3;text-decoration:line-through;cursor:not-allowed}
.pk-ok{margin-top:14px;width:100%;padding:12px;border-radius:12px;border:0;background:#B8552A;color:#fff;font:600 14px 'Inter',sans-serif;transition:opacity 250ms,transform 300ms var(--spring)}
.pk-ok:disabled{opacity:.35;cursor:not-allowed}.pk-ok:not(:disabled):hover{transform:translateY(-1px)}
.dm-w.locked{opacity:.55;pointer-events:none}
.bk{width:100%}
.bk-h{display:flex;align-items:center;gap:10px;font:600 15px 'Inter';margin-bottom:8px}
.bk-ok{width:24px;height:24px;border-radius:50%;background:#3fbf7f;color:#fff;display:grid;place-items:center;font-size:13px;animation:pop 1s var(--spring)}
.bk-r{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:#CBC6BC}
.bk-r b{color:#fff;font-weight:600;text-align:right}
.bk-n{margin:10px 0;font-size:11.5px;color:#8c877c}
.bk-b{display:flex;gap:8px}
.bk-cal,.bk-close{flex:1;text-align:center;padding:11px;border-radius:10px;font:600 13px 'Inter';border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff}
.bk-cal{background:#fff;color:#12110F;border-color:#fff}
@media (max-width:560px){.dc{padding:0}.dc-panel{width:100%;height:92vh;border-radius:22px 22px 0 0}}
/* bento: even 2x2 grid, scenes fill the card width */
.bento .b1,.bento .b2,.bento .b3,.bento .b4{grid-column:span 3;grid-row:auto;min-height:300px}
.bt-dark{justify-content:flex-start}
.bento .bs{height:120px;width:100%;margin-bottom:24px;flex:none}
.bs1{max-width:none;gap:12px}.bs1 i{height:16px;border-radius:8px}
.bs .m,.bs .d{min-width:56px;height:56px;border-radius:14px;font-size:14px}
.bs3 .c{min-width:56px;height:56px;font-size:20px}
.bs .ln b{width:12px;height:12px;top:-5px}
.bs4{justify-content:center}
.bs4 svg{width:88px;height:88px}.bs4 u{width:88px;height:88px;left:calc(50% - 44px);margin-top:-44px}.bs4::after{width:88px;left:calc(50% - 44px)}
@keyframes scan{0%,100%{top:16px}50%{top:104px}}
.bt-big{font-size:44px}
@media (max-width:1024px){.bento .b1,.bento .b2,.bento .b3,.bento .b4{grid-column:span 1;min-height:0}}
@media (max-width:720px){.bento .b1,.bento .b2,.bento .b3,.bento .b4{grid-column:auto}.bento .bs{height:96px}}

/* demo chat: dark scrollbar, aligned picker */
.dc-body{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent;scrollbar-gutter:stable}
.dc-body::-webkit-scrollbar{width:8px}
.dc-body::-webkit-scrollbar-track{background:transparent}
.dc-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:8px;border:2px solid transparent;background-clip:content-box}
.dc-body::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.35);background-clip:content-box}
.pk-d,.pk-t{box-sizing:border-box;height:auto;display:flex;margin:0}
.pk-t{height:42px;align-items:center;justify-content:center;padding:0}
.pk-d{align-items:center;justify-content:center;min-height:68px}
/* calmer bento motion: slower, smaller amplitude */
.bs1 i::before{animation-duration:10s}
.bs1 i::after{animation-duration:10s}
.bs .ln b{animation-duration:5s}
.bs2 .t,.bs3 .c{animation:popSoft 5s ease-in-out infinite}
@keyframes popSoft{0%,70%{transform:none}85%{transform:scale(1.05)}100%{transform:none}}
.bs4 u{animation:ringSoft 6s ease-out infinite;border-color:rgba(255,255,255,.45)}
.bs4 u+u{animation-delay:3s}
@keyframes ringSoft{0%{transform:scale(.95);opacity:.5}100%{transform:scale(1.5);opacity:0}}
.bs4::after{animation:scanSoft 7s ease-in-out infinite;opacity:.3}
@keyframes scanSoft{0%,100%{top:34px}50%{top:86px}}

/* tab switching: content slides left/right inside a shared panel (Ramp-style) */
.sn-pin{transition:transform 520ms var(--spring),opacity 320ms var(--ease)}
.sn-item.leaving .sn-panel{opacity:1;visibility:visible;pointer-events:none;transform:none;z-index:0}
.sn-item.open .sn-panel{z-index:1}
.sn-item.leaving:not(.open) .sn-panel{background:transparent;box-shadow:none;border-bottom-color:transparent}
.sn-item.leaving:not(.open) .sn-pin{pointer-events:none}

/* shared drawer: height morphs, panels glide by distance from the active tab */
.sn-drop{position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 40px 60px -40px rgba(20,21,15,.35)}
.sn-drop-h{position:relative;height:0;overflow:hidden;border-bottom:0;transition:height 560ms cubic-bezier(.22,1,.36,1)}
.sn.has-open .sn-drop-h{border-bottom:1px solid #E8E4DC}
.sn-drop{visibility:hidden;transition:visibility 0s 560ms}
.sn.has-open .sn-drop{visibility:visible;transition-delay:0s}
.sn-panel{position:absolute;left:0;right:0;top:0;background:transparent;border:0;box-shadow:none;visibility:visible;pointer-events:none;opacity:0;transform:translateX(calc(var(--o,0) * 64px));transition:transform 620ms cubic-bezier(.22,1,.36,1),opacity 380ms var(--ease)}
.sn-panel.on{opacity:1;transform:none;pointer-events:auto;transition-delay:0s,60ms}
.sn-pin{transition:none;transform:none;opacity:1}
@media (max-width:980px){.sn-drop{display:none}}
/* no fades in the nav drawer: pure slide + height morph */
.sn-panel{opacity:1!important;transform:translateX(calc(var(--o,0) * 100%));transition:transform 520ms cubic-bezier(.22,1,.36,1)}
.sn-panel.on{transform:none;transition-delay:0s}
.sn-scrim{transition:none;backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(18,17,15,.18)}
.sn-btn svg,.sn-item.open .sn-btn{transition:none}
/* flicker fixes: no backdrop-filter or animated glow while the drawer is open; GPU-stable sliding */
.sn.has-open{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}
.sn-feat-orb{animation:none;opacity:.8}
.sn-panel{will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translate3d(calc(var(--o,0) * 100%),0,0)}
.sn-panel.on{transform:translate3d(0,0,0)}
.sn-drop-h{contain:paint;transform:translateZ(0)}
.sn-links{gap:0}
.sn-btn{padding-left:14px;padding-right:14px}

/* drawer v3: no stacking surprises, no layout shake */
.sn-drop-h{transition:height 480ms cubic-bezier(.22,1,.36,1);contain:layout paint;transform:none;border-bottom:1px solid transparent}
.sn.has-open .sn-drop-h{border-bottom-color:#E8E4DC}
.sn-panel{opacity:1!important;visibility:hidden;transition:transform 480ms cubic-bezier(.22,1,.36,1);transform:translate3d(calc(var(--o,0) * 100%),0,0)}
.sn-panel.on{transform:translate3d(calc(var(--o,0) * 100%),0,0)}
.sn-pin{min-height:0}
