
  :root{
    --bg:#F4F1E8;
    --bgWarm:#EFE9D8;
    --card:#FFFFFF;
    --panel:#0E1220;
    --panelDeep:#06080F;

    --ink:#1A1F1C;
    --ink2:#5C635F;
    --ink3:#9AA19D;
    --line:rgba(26,31,28,0.08);
    --lineStrong:rgba(26,31,28,0.14);

    --mint:#14B88A;
    --mintDeep:#0E9A73;
    --mintSoft:#E9F6F1;
    --mintInk:#0B2E24;

    --banana:#FFD43B;
    --bananaInk:#3A2A00;
    --pink:#FFB5C5;
    --lilac:#C9B8FF;

    --sans:'Inter','Noto Sans SC','PingFang SC',-apple-system,system-ui,sans-serif;
    --mono:'JetBrains Mono','SF Mono',ui-monospace,monospace;

    --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px; --r-2xl:24px; --r-pill:999px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  html,body{margin:0;padding:0}
  body{
    background:var(--bg); color:var(--ink);
    font-family:var(--sans);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    line-height:1.55;
  }
  a{color:inherit; text-decoration:none}
  img{max-width:100%; display:block}

  .wrap{ max-width:1200px; margin:0 auto; padding:0 32px }
  @media (max-width:720px){ .wrap{ padding:0 20px } }

  /* ======= NAV ======= */
  .nav{
    position:sticky; top:0; z-index:40;
    background:rgba(244,241,232,0.85);
    backdrop-filter:saturate(160%) blur(14px);
    -webkit-backdrop-filter:saturate(160%) blur(14px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center;
    height:64px; gap:24px;
  }
  .nav-row .brand{ margin-right:auto }
  .nav-row .nav-cta{ margin-left:0 }
  .brand{
    display:flex; align-items:center; gap:10px;
    font-weight:700; font-size:16px; letter-spacing:-0.01em;
  }
  .brand .logo{
    width:30px; height:30px; border-radius:9px;
    background:var(--panel); position:relative; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
  }
  .brand .logo::before{
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 70% 30%, rgba(20,184,138,0.55), transparent 55%);
  }
  .brand .logo span{
    position:relative; z-index:1;
    width:10px; height:10px; border-radius:50%;
    background:var(--banana);
    box-shadow:0 0 8px rgba(255,212,59,0.6);
  }
  .brand b{ font-weight:700 }
  .brand b em{ font-style:normal; color:var(--mint) }

  .nav-links{
    display:flex; gap:28px; align-items:center;
    font-size:13.5px; font-weight:500; color:var(--ink2);
  }
  .nav-links a{ position:relative; padding:6px 0; transition:color .15s }
  .nav-links a:hover{ color:var(--ink) }
  .nav-sep{
    width:1px; height:18px; background:rgba(26,31,28,0.25);
    flex:none;
  }
  .nav-links a.nav-page{ color:var(--ink2) }
  .nav-links a.nav-page::before{
    content:''; display:inline-block; width:5px; height:5px; border-radius:50%;
    background:currentColor; opacity:0.35; margin-right:7px; vertical-align:2px;
  }
  .nav-cta{
    display:inline-flex; align-items:center; gap:6px;
    background:var(--ink); color:#fff;
    padding:9px 16px 9px 14px; border-radius:var(--r-pill);
    font-size:13px; font-weight:600;
    transition:transform .15s, background .15s;
  }
  .nav-cta:hover{ background:var(--mint); color:#06201A; transform:translateY(-1px) }
  .nav-cta .dot{
    width:6px; height:6px; border-radius:50%; background:var(--mint);
    box-shadow:0 0 0 3px rgba(20,184,138,0.25);
  }
  .nav-cta:hover .dot{ background:#06201A; box-shadow:0 0 0 3px rgba(6,32,26,0.18) }

  .lang-wrap{ position:relative; }
  .lang-toggle{
    display:inline-flex; align-items:center; gap:6px;
    background:transparent;
    border:1px solid var(--lineStrong);
    color:var(--ink2);
    padding:6px 9px 6px 9px; border-radius:var(--r-pill);
    font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:0.06em;
    cursor:pointer; white-space:nowrap; line-height:1;
    transition:color .15s, border-color .15s, background .15s;
  }
  .lang-toggle:hover{ color:var(--ink); border-color:var(--ink); background:rgba(0,0,0,0.03) }
  .lang-toggle .lang-cur{ color:var(--ink); text-transform:uppercase }
  .lang-toggle .lang-caret{ opacity:0.5; transition:transform .18s }
  .lang-wrap.is-open .lang-caret{ transform:rotate(180deg) }
  .lang-wrap.is-open .lang-toggle{ color:var(--ink); border-color:var(--ink) }

  .lang-menu{
    position:absolute; top:calc(100% + 8px); right:0;
    min-width:180px; padding:6px;
    background:var(--paper); border:1px solid var(--lineStrong); border-radius:14px;
    box-shadow:0 18px 40px -18px rgba(6,32,26,0.18), 0 4px 12px -6px rgba(6,32,26,0.08);
    opacity:0; pointer-events:none; transform:translateY(-4px);
    transition:opacity .14s, transform .14s;
    z-index:60;
  }
  .lang-wrap.is-open .lang-menu{ opacity:1; pointer-events:auto; transform:translateY(0) }
  .lang-opt{
    display:flex; align-items:baseline; justify-content:space-between; gap:14px;
    width:100%; padding:8px 12px; border-radius:9px;
    background:transparent; border:none; cursor:pointer;
    color:var(--ink); font-family:inherit; text-align:left;
    transition:background .12s;
  }
  .lang-opt:hover{ background:rgba(6,32,26,0.05) }
  .lang-opt .lang-name{ font-size:14px; font-weight:600 }
  .lang-opt .lang-meta{ font-family:var(--mono); font-size:10.5px; color:var(--ink3); letter-spacing:0.04em }
  .lang-opt.is-active{ background:rgba(127,225,177,0.18) }
  .lang-opt.is-active .lang-name{ color:var(--ink) }
  .lang-opt.is-active::after{
    content:''; position:absolute;
  }
  .lang-opt.is-active .lang-meta{ color:var(--mintInk, var(--ink2)) }

  @media (max-width:780px){
    .nav-links{ display:none }
  }

  /* ======= HERO ======= */
  .hero{
    padding:64px 0 96px; position:relative;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:48px;
    align-items:end;
  }
  .eye{
    font-family:var(--mono); font-size:11px; letter-spacing:2.2px;
    text-transform:uppercase; color:var(--ink3);
    display:inline-flex; align-items:center; gap:10px; margin-bottom:24px;
  }
  .eye::before{
    content:''; width:22px; height:1px; background:var(--ink3);
  }
  .eye em{ font-style:normal; color:var(--mint) }

  h1.display{
    font-family:var(--sans);
    font-weight:800;
    font-size:clamp(48px, 7.4vw, 104px);
    line-height:0.96; letter-spacing:-0.035em;
    margin:0 0 28px; max-width:13ch;
    text-wrap:balance;
  }
  h1.display em{ font-style:normal; color:var(--mint) }
  h1.display .strike{
    position:relative; display:inline-block;
  }
  h1.display .strike::after{
    content:''; position:absolute; left:-2%; right:-2%; top:54%; height:6px;
    background:var(--banana); border-radius:4px; transform:rotate(-1.5deg);
    z-index:-1;
  }
  .hero-lede{
    font-size:17px; line-height:1.65; color:var(--ink2);
    max-width:46ch; margin:0 0 32px;
  }
  .hero-cta{
    display:flex; flex-wrap:wrap; gap:12px; align-items:center;
  }
  .btn-primary{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--mint); color:#06201A;
    padding:14px 22px; border-radius:var(--r-pill);
    font-size:14.5px; font-weight:700; letter-spacing:0.1px;
    border:none; cursor:pointer;
    box-shadow:0 0 0 4px rgba(20,184,138,0.18), 0 10px 22px -8px rgba(20,184,138,0.55);
    transition:transform .15s, box-shadow .15s;
  }
  .btn-primary:hover{ transform:translateY(-1px); box-shadow:0 0 0 5px rgba(20,184,138,0.22), 0 14px 28px -8px rgba(20,184,138,0.65) }
  .btn-primary svg{ width:14px; height:14px }
  .btn-ghost{
    display:inline-flex; align-items:center; gap:8px;
    background:transparent; color:var(--ink);
    padding:14px 18px; border-radius:var(--r-pill);
    font-size:14.5px; font-weight:600;
    border:1px solid var(--lineStrong); cursor:pointer;
  }
  .btn-ghost:hover{ background:var(--card) }
  .badge-row{
    display:flex; align-items:center; gap:14px;
    margin-top:22px; padding-top:22px;
    border-top:1px dashed var(--lineStrong);
    font-size:12.5px; color:var(--ink2);
  }
  .stars{ color:var(--banana); letter-spacing:1px }
  .badge-row b{ color:var(--ink); font-weight:600 }
  .vert-rule{ width:1px; height:14px; background:var(--lineStrong) }

  /* hero card stack on the right */
  .hero-card-stack{
    position:relative; min-height:520px;
  }
  .hero-panel{
    position:absolute; right:0; top:0;
    width:100%; max-width:460px;
    background:var(--panelDeep); color:#fff;
    border-radius:var(--r-2xl);
    padding:30px 28px;
    overflow:hidden;
    box-shadow:0 30px 60px -28px rgba(6,10,14,0.45);
    aspect-ratio:9/16;
    max-height:560px;
  }
  .hero-panel::before{
    content:''; position:absolute; inset:0;
    background:
      radial-gradient(ellipse at 90% 110%, rgba(20,184,138,0.32), transparent 55%),
      radial-gradient(ellipse at -20% -20%, rgba(201,184,255,0.18), transparent 55%),
      radial-gradient(ellipse at 50% 50%, rgba(255,212,59,0.05), transparent 70%);
    pointer-events:none;
  }
  .hero-panel .stars-bg{
    position:absolute; inset:0; pointer-events:none;
  }
  .hero-panel .stars-bg span{
    position:absolute; background:#fff; border-radius:50%;
    box-shadow:0 0 6px rgba(255,255,255,0.7);
  }
  .hero-panel .topline{
    position:relative; z-index:1;
    display:flex; align-items:center; justify-content:space-between;
    font-family:var(--mono); font-size:10.5px; letter-spacing:1.6px;
    text-transform:uppercase; color:rgba(255,255,255,0.5);
  }
  .hero-panel .topline b{ color:#fff; font-weight:500 }
  .hero-panel .live{
    display:inline-flex; align-items:center; gap:6px; color:var(--mint);
  }
  .hero-panel .live .pulse{
    width:6px; height:6px; border-radius:50%; background:var(--mint);
    box-shadow:0 0 0 3px rgba(20,184,138,0.3);
    animation:pulse 1.6s infinite;
  }
  @keyframes pulse{ 50%{ box-shadow:0 0 0 6px rgba(20,184,138,0); } }
  .hero-panel .mascot-wrap{
    position:relative; z-index:1;
    display:flex; justify-content:center;
    margin:8px 0 4px;
  }
  .hero-panel .mascot-wrap img{
    width:48%; max-width:190px;
    filter:drop-shadow(0 12px 30px rgba(0,0,0,0.45));
    animation:bob 4s ease-in-out infinite;
  }
  @keyframes bob{ 50%{ transform:translateY(-6px) } }
  .hero-panel .planet-ring{
    position:absolute; left:50%; top:48%;
    transform:translate(-50%,-50%);
    width:78%; aspect-ratio:1; border-radius:50%;
    border:1px dashed rgba(255,255,255,0.14);
    z-index:0;
  }
  .hero-panel .panel-bottom{
    position:relative; z-index:1;
    margin-top:auto;
  }
  .hero-panel-inner{
    position:relative; z-index:1; height:100%;
    display:flex; flex-direction:column;
  }
  .panel-bubble{
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.12);
    border-radius:var(--r-lg);
    padding:10px 14px;
    backdrop-filter:blur(10px);
    margin-bottom:8px;
  }
  .panel-bubble .who{
    display:flex; align-items:center; gap:8px;
    font-family:var(--mono); font-size:9.5px; letter-spacing:1.4px;
    text-transform:uppercase; color:rgba(255,255,255,0.5);
    margin-bottom:6px;
  }
  .panel-bubble .who .av{
    width:18px; height:18px; border-radius:50%; background:var(--mint);
    color:#06201A; font-size:10px; display:flex; align-items:center; justify-content:center; font-weight:800;
  }
  .panel-bubble .msg{ font-size:14px; line-height:1.5 }
  .panel-bubble .msg em{ font-style:normal; color:var(--mint); font-weight:600 }
  .panel-bubble.user{ background:rgba(20,184,138,0.16); border-color:rgba(20,184,138,0.28) }
  .panel-cta{
    display:flex; align-items:center; justify-content:space-between;
    padding:8px 14px;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.1);
    border-radius:var(--r-pill);
    font-size:12.5px; color:rgba(255,255,255,0.7);
  }
  .panel-cta .mic{
    width:34px; height:34px; border-radius:50%;
    background:var(--mint); color:#06201A;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 0 0 3px rgba(20,184,138,0.22);
  }

  /* floating tags around hero panel */
  .float-card{
    position:absolute; background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:10px 14px;
    box-shadow:0 12px 28px -16px rgba(20,24,28,0.25);
    font-size:12.5px;
    display:flex; align-items:center; gap:10px;
  }
  .float-card .ic{
    width:26px; height:26px; border-radius:8px;
    background:var(--mintSoft); color:var(--mintInk);
    display:flex; align-items:center; justify-content:center;
    font-weight:800; font-size:13px;
  }
  .float-card .ic.banana{ background:var(--banana); color:var(--bananaInk) }
  .float-card .ic.lilac{ background:var(--lilac); color:#2A1A66 }
  .float-card b{ font-weight:700 }
  .float-card .meta{ font-family:var(--mono); font-size:10px; letter-spacing:1.2px; color:var(--ink3); text-transform:uppercase }

  .float-1{ left:-20px; top:60px; transform:rotate(-3deg); animation:float1 6s ease-in-out infinite }
  .float-2{ right:-30px; top:36%; transform:rotate(2deg); animation:float2 7s ease-in-out infinite }
  .float-3{ left:8px; bottom:30px; transform:rotate(1deg); animation:float1 8s ease-in-out infinite reverse }
  @keyframes float1{ 50%{ transform:translateY(-8px) rotate(-3deg) } }
  @keyframes float2{ 50%{ transform:translateY(-10px) rotate(2deg) } }

  @media (max-width:980px){
    .hero-grid{ grid-template-columns:1fr; gap:64px }
    .hero-card-stack{ min-height:auto; height:560px }
    .float-1{ left:0 }
    .float-2{ right:0 }
  }
  @media (max-width:520px){
    .hero{ padding:32px 0 64px }
    .hero-card-stack{ height:auto; min-height:520px }
    .hero-panel{ position:relative; max-width:100%; aspect-ratio:auto; height:540px }
    .float-2{ display:none }
  }

  /* ====== SECTION HEAD ====== */
  section{ padding:96px 0; scroll-margin-top:64px; position:relative }
  .sec-head{
    display:grid; grid-template-columns:1fr auto; gap:24px 32px;
    align-items:end; padding-bottom:24px;
    border-bottom:1px solid var(--lineStrong);
    margin-bottom:48px;
  }
  .sec-num{
    font-family:var(--mono); font-size:11.5px; letter-spacing:2.2px;
    color:var(--mint); text-transform:uppercase; font-weight:500;
    grid-column:1; grid-row:2; margin-top:8px;
  }
  .sec-title{
    font-weight:800; font-size:clamp(34px, 4.5vw, 56px);
    line-height:1.04; letter-spacing:-0.025em; margin:0;
    text-wrap:balance;
    grid-column:1; grid-row:1;
  }
  .sec-title em{ font-style:normal; color:var(--mint) }
  .sec-desc{
    font-size:13.5px; color:var(--ink2);
    text-align:right; line-height:1.6;
    grid-column:2; grid-row:1 / span 2; align-self:end;
    white-space:nowrap;
  }
  @media (max-width:780px){
    section{ padding:72px 0 }
    .sec-head{ grid-template-columns:1fr; gap:14px }
    .sec-desc{ grid-column:1; grid-row:auto; text-align:left; white-space:normal }
    .sec-num{ grid-column:1; grid-row:auto }
    .sec-title{ grid-column:1; grid-row:auto }
  }

  /* ===== FEATURES ===== */
  .features-intro{
    display:grid; grid-template-columns:1fr 1fr; gap:48px;
    margin-bottom:56px;
  }
  .features-intro .lede{
    font-size:22px; line-height:1.45; letter-spacing:-0.01em; font-weight:500;
    text-wrap:pretty;
  }
  .features-intro .lede em{ font-style:normal; color:var(--mint); font-weight:700 }
  .features-intro .body{
    font-size:14.5px; line-height:1.7; color:var(--ink2);
  }
  @media (max-width:780px){ .features-intro{ grid-template-columns:1fr; gap:24px } .features-intro .lede{ font-size:18px } }

  .feat-grid{
    display:grid; grid-template-columns:repeat(12,1fr); gap:16px;
  }
  .feat{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--r-2xl);
    padding:28px;
    position:relative; overflow:hidden;
    display:flex; flex-direction:column;
    min-height:340px;
    transition:transform .25s, box-shadow .25s;
  }
  .feat:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -24px rgba(20,24,28,0.18) }
  .feat .num{
    font-family:var(--mono); font-size:10.5px; letter-spacing:1.8px;
    color:var(--ink3); text-transform:uppercase; margin-bottom:14px;
  }
  .feat h3{
    font-size:24px; font-weight:700; letter-spacing:-0.018em;
    line-height:1.2; margin:0 0 10px; text-wrap:balance;
  }
  .feat h3 em{ font-style:normal; color:var(--mint) }
  .feat p{
    font-size:13.5px; line-height:1.6; color:var(--ink2);
    margin:0 0 18px;
  }
  .feat .demo{
    margin-top:auto;
    background:var(--bgWarm);
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:18px;
    flex:1; display:flex; align-items:center; justify-content:center;
  }
  .feat.span6{ grid-column:span 6 }
  .feat.span4{ grid-column:span 4 }
  .feat.span8{ grid-column:span 8 }
  .feat.span12{ grid-column:span 12 }
  /* span12 hero: side-by-side title + demo */
  .feat.span12{
    display:grid;
    grid-template-columns:minmax(280px, 360px) 1fr;
    grid-template-rows:auto auto 1fr;
    gap:14px 56px;
    align-items:start;
    padding:40px;
    min-height:auto;
  }
  .feat.span12 .num{ grid-column:1; grid-row:1; margin-bottom:0 }
  .feat.span12 h3{ grid-column:1; grid-row:2; font-size:32px; max-width:14ch; margin:8px 0 14px }
  .feat.span12 > p{ grid-column:1; grid-row:3; max-width:34ch; margin:0; align-self:start }
  .feat.span12 .demo{
    grid-column:2; grid-row:1 / span 3;
    margin-top:0; align-self:start;
    flex:none; padding:24px;
    display:block;
  }
  @media (max-width:980px){
    .feat.span12{ grid-template-columns:1fr; grid-template-rows:auto; gap:24px; padding:28px }
    .feat.span12 .demo{ grid-column:1; grid-row:auto }
    .feat.span12 .num, .feat.span12 h3, .feat.span12 > p{ grid-column:1 }
  }
  .feat.dark{ background:var(--panel); color:#fff; border-color:transparent }
  .feat.dark p{ color:rgba(255,255,255,0.6) }
  .feat.dark .num{ color:rgba(255,255,255,0.5) }
  .feat.dark .demo{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.08) }
  @media (max-width:900px){ .feat.span6, .feat.span4, .feat.span8, .feat.span12{ grid-column:span 12 } }

  /* feat: 体系化课程 - course path */
  .course-stage{
    width:100%;
    display:grid;
    grid-template-columns:240px 1fr;
    gap:32px;
    align-items:start;
  }
  .course-levels{
    display:flex; flex-direction:column; gap:8px;
    padding:4px 0;
  }
  .course-levels .lvl{
    display:grid; grid-template-columns:36px 1fr auto;
    gap:12px; align-items:center;
    padding:12px 14px;
    background:rgba(255,255,255,0.04);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:12px;
    font-size:12.5px;
    transition:background .2s, border-color .2s;
  }
  .course-levels .lvl.active{
    background:rgba(20,184,138,0.14);
    border-color:rgba(20,184,138,0.45);
  }
  .course-levels .lvl.done{
    background:rgba(255,255,255,0.02);
    opacity:0.7;
  }
  .course-levels .lvl .badge{
    width:36px; height:36px; border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-size:12px; font-weight:700;
    letter-spacing:0.5px;
    background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.7);
  }
  .course-levels .lvl.active .badge{
    background:var(--mint); color:#06201A;
    box-shadow:0 0 0 3px rgba(20,184,138,0.25);
  }
  .course-levels .lvl.done .badge{
    background:rgba(20,184,138,0.18); color:var(--mint);
  }
  .course-levels .lvl .nm{
    color:#fff; font-weight:600; line-height:1.25;
  }
  .course-levels .lvl .nm small{
    display:block;
    font-family:var(--mono); font-size:9.5px;
    letter-spacing:1.4px; text-transform:uppercase;
    color:rgba(255,255,255,0.4); font-weight:500;
    margin-top:2px;
  }
  .course-levels .lvl .check{
    color:var(--mint); font-size:14px; font-weight:700;
  }
  .course-levels .lvl.active .check{
    width:8px; height:8px; border-radius:50%;
    background:var(--mint);
    box-shadow:0 0 0 4px rgba(20,184,138,0.25);
    animation:pulse 1.6s infinite;
    text-indent:-9999px; overflow:hidden;
  }

  /* unit grid */
  .course-units{
    display:flex; flex-direction:column; gap:12px;
    min-width:0;
  }
  .course-units .unit-head{
    display:flex; align-items:center; justify-content:space-between;
    gap:12px; padding-bottom:12px;
    border-bottom:1px solid rgba(255,255,255,0.08);
    flex-wrap:wrap;
  }
  .course-units .unit-head .ttl{
    font-size:14px; font-weight:600; color:#fff;
  }
  .course-units .unit-head .ttl em{
    font-style:normal; color:var(--mint);
  }
  .course-units .unit-head .progress{
    display:flex; align-items:center; gap:10px;
    font-family:var(--mono); font-size:10px; letter-spacing:1.4px;
    text-transform:uppercase; color:rgba(255,255,255,0.5);
  }
  .course-units .unit-head .progress .bar{
    width:100px; height:4px; border-radius:2px;
    background:rgba(255,255,255,0.1); position:relative; overflow:hidden;
  }
  .course-units .unit-head .progress .bar::after{
    content:''; position:absolute; left:0; top:0; bottom:0;
    width:62%; background:var(--mint); border-radius:2px;
  }

  .unit-list{
    display:grid; grid-template-columns:repeat(2,1fr);
    gap:8px;
  }
  .unit-list .u{
    display:grid; grid-template-columns:28px 1fr auto;
    gap:10px; align-items:center;
    padding:10px 12px;
    background:rgba(255,255,255,0.04);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:10px;
    font-size:12.5px;
    min-width:0;
  }
  .unit-list .u .ic{
    width:26px; height:26px; border-radius:7px;
    display:flex; align-items:center; justify-content:center;
    font-weight:800; font-size:11px;
    background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.6);
  }
  .unit-list .u.done .ic{ background:rgba(20,184,138,0.18); color:var(--mint) }
  .unit-list .u.now .ic{ background:var(--mint); color:#06201A }
  .unit-list .u.lock .ic{ background:rgba(255,255,255,0.04); color:rgba(255,255,255,0.3) }
  .unit-list .u .nm{
    color:#fff; font-weight:500; line-height:1.3;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .unit-list .u.lock .nm{ color:rgba(255,255,255,0.4) }
  .unit-list .u .nm small{
    display:block;
    font-family:var(--mono); font-size:9px;
    letter-spacing:1.2px; text-transform:uppercase;
    color:rgba(255,255,255,0.35); font-weight:500;
    margin-top:1px;
  }
  .unit-list .u .tag{
    font-family:var(--mono); font-size:9px; letter-spacing:1.2px;
    text-transform:uppercase; color:rgba(255,255,255,0.4);
    padding:2px 6px; border-radius:4px;
    background:rgba(255,255,255,0.05);
  }
  .unit-list .u.done .tag{ color:var(--mint); background:rgba(20,184,138,0.12) }
  .unit-list .u.now .tag{ color:#06201A; background:var(--mint); font-weight:700 }

  /* course meta strip */
  .course-meta{
    margin-top:20px;
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:0;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,0.08);
  }
  .course-meta .m{
    padding:0 16px;
    border-right:1px solid rgba(255,255,255,0.08);
  }
  .course-meta .m:first-child{ padding-left:0 }
  .course-meta .m:last-child{ padding-right:0; border-right:none }
  .course-meta .m .v{
    font-size:18px; font-weight:700; color:#fff;
    letter-spacing:-0.015em; line-height:1;
  }
  .course-meta .m .v em{ font-style:normal; color:var(--mint) }
  .course-meta .m .k{
    font-family:var(--mono); font-size:9.5px; letter-spacing:1.4px;
    text-transform:uppercase; color:rgba(255,255,255,0.4);
    margin-top:6px;
  }

  @media (max-width:780px){
    .course-stage{ grid-template-columns:1fr; gap:24px }
    .unit-list{ grid-template-columns:1fr }
    .course-meta{ grid-template-columns:1fr 1fr; gap:12px }
    .course-meta .m{ padding:0 !important; border-right:none }
  }

  /* feat: chat sample */
  .chat-mini{ width:100%; max-width:300px; display:flex; flex-direction:column; gap:8px }
  .bubble{
    padding:9px 13px; border-radius:14px; font-size:13px; line-height:1.45;
    max-width:88%;
  }
  .bubble.bot{ background:#fff; border:1px solid var(--line); align-self:flex-start; border-bottom-left-radius:4px }
  .bubble.you{ background:var(--mint); color:#06201A; align-self:flex-end; border-bottom-right-radius:4px; font-weight:500 }
  .feat.dark .bubble.bot{ background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.12); color:#fff }

  /* feat: stats */
  .word-cloud{
    display:grid; grid-template-columns:repeat(3,1fr); gap:8px;
    width:100%;
  }
  .word-cloud .w{
    background:#fff; border:1px solid var(--line);
    border-radius:10px; padding:10px;
    text-align:center;
  }
  .word-cloud .w .en{ font-weight:700; font-size:14px }
  .word-cloud .w .zh{ font-family:var(--mono); font-size:9.5px; letter-spacing:1.2px; color:var(--ink3); text-transform:uppercase; margin-top:2px }
  .word-cloud .w.lit{ background:var(--banana); border-color:transparent }
  .word-cloud .w.lit .zh{ color:var(--bananaInk) }

  /* feat: streak */
  .streak-chart{ display:flex; align-items:flex-end; gap:6px; height:120px; width:100%; padding:0 4px }
  .streak-chart .b{
    flex:1; background:rgba(20,184,138,0.18);
    border-radius:6px; min-height:8px;
    position:relative;
  }
  .streak-chart .b.on{ background:var(--mint) }
  .streak-chart .b .lbl{
    position:absolute; bottom:-22px; left:50%; transform:translateX(-50%);
    font-family:var(--mono); font-size:9px; letter-spacing:1px; color:var(--ink3); text-transform:uppercase;
  }

  /* feat: AI correction */
  .correct-card{
    background:#fff; border:1px solid var(--line);
    border-radius:12px; padding:14px; width:100%; max-width:300px;
    display:flex; flex-direction:column; gap:10px;
  }
  .correct-card .row{
    display:flex; gap:8px; align-items:flex-start;
    font-size:13px; line-height:1.5;
  }
  .correct-card .label{
    font-family:var(--mono); font-size:9px; letter-spacing:1.4px;
    text-transform:uppercase; padding:2px 6px; border-radius:4px;
    flex-shrink:0; margin-top:2px; font-weight:600;
  }
  .correct-card .label.bad{ background:#FFE2E2; color:#9B2828 }
  .correct-card .label.fix{ background:var(--mintSoft); color:var(--mintInk) }
  .correct-card .label.tip{ background:var(--banana); color:var(--bananaInk) }
  .correct-card .text{ flex:1 }
  .correct-card .text s{ color:#9B2828; text-decoration-color:#D54A4A; text-decoration-thickness:2px }
  .correct-card .text u{ color:var(--mintInk); text-decoration:none; background:var(--mintSoft); padding:1px 4px; border-radius:3px; font-weight:600 }
  .correct-card .hr{ height:1px; background:var(--line) }
  .correct-card .tip-text{ font-size:12px; color:var(--ink2); line-height:1.55 }
  .feat.dark .correct-card{ background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.12); color:#fff }
  .feat.dark .correct-card .hr{ background:rgba(255,255,255,0.1) }
  .feat.dark .correct-card .tip-text{ color:rgba(255,255,255,0.65) }

  /* feat: invite friends */
  .invite-stage{
    width:100%; max-width:280px; position:relative;
    display:flex; flex-direction:column; gap:8px;
  }
  .invite-stage .friend-row{
    display:flex; gap:6px;
    justify-content:center;
  }
  .invite-stage .ava{
    width:42px; height:42px; border-radius:50%;
    background:var(--mint); color:#06201A;
    display:flex; align-items:center; justify-content:center;
    font-weight:800; font-size:14px;
    border:2px solid #fff;
    box-shadow:0 4px 10px -4px rgba(0,0,0,0.2);
    position:relative;
  }
  .invite-stage .ava.b{ background:var(--banana); color:var(--bananaInk) }
  .invite-stage .ava.l{ background:var(--lilac); color:#2A1A66 }
  .invite-stage .ava.p{ background:var(--pink); color:#5A1F35 }
  .invite-stage .ava.add{
    background:transparent; border:2px dashed var(--lineStrong);
    color:var(--ink3);
  }
  .invite-stage .ava .live-dot{
    position:absolute; right:-1px; bottom:-1px;
    width:10px; height:10px; border-radius:50%;
    background:var(--mint); border:2px solid #fff;
  }
  .invite-stage .room{
    margin-top:4px;
    background:#fff; border:1px solid var(--line);
    border-radius:12px; padding:10px 12px;
    display:flex; align-items:center; gap:10px;
    font-size:12.5px;
  }
  .invite-stage .room .room-ic{
    width:26px; height:26px; border-radius:8px;
    background:var(--mintSoft); color:var(--mintInk);
    display:flex; align-items:center; justify-content:center;
    font-size:13px; font-weight:800;
  }
  .invite-stage .room b{ font-weight:700 }
  .invite-stage .room .meta{
    font-family:var(--mono); font-size:9.5px; letter-spacing:1.2px;
    color:var(--ink3); text-transform:uppercase;
  }
  .invite-stage .invite-link{
    display:flex; align-items:center; gap:6px;
    background:var(--panel); color:#fff;
    padding:8px 12px; border-radius:var(--r-pill);
    font-family:var(--mono); font-size:11px; letter-spacing:1px;
    justify-content:center;
  }
  .invite-stage .invite-link .copy{
    margin-left:auto; padding:2px 8px;
    background:var(--mint); color:#06201A;
    border-radius:var(--r-pill); font-size:10px;
    letter-spacing:1.2px; font-weight:700;
  }

  /* feat: AI chat (richer) */
  .ai-chat{
    width:100%; max-width:300px;
    display:flex; flex-direction:column; gap:8px;
    position:relative;
  }
  .ai-chat .ai-tag{
    display:inline-flex; align-items:center; gap:6px;
    align-self:flex-start;
    background:rgba(20,184,138,0.18);
    border:1px solid rgba(20,184,138,0.3);
    color:var(--mint);
    padding:3px 10px; border-radius:var(--r-pill);
    font-family:var(--mono); font-size:9.5px; letter-spacing:1.4px;
    text-transform:uppercase; font-weight:600;
  }
  .ai-chat .ai-tag .pulse{
    width:5px; height:5px; border-radius:50%; background:var(--mint);
    animation:pulse 1.6s infinite;
  }
  .ai-chat .typing{
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.12);
    align-self:flex-start;
    padding:9px 13px; border-radius:14px; border-bottom-left-radius:4px;
    display:flex; gap:4px;
  }
  .ai-chat .typing span{
    width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.5);
    animation:typeBlink 1.4s infinite;
  }
  .ai-chat .typing span:nth-child(2){ animation-delay:0.2s }
  .ai-chat .typing span:nth-child(3){ animation-delay:0.4s }
  @keyframes typeBlink{ 0%,60%,100%{ opacity:0.3 } 30%{ opacity:1 } }

  /* feat: tools row */
  .tool-row{
    display:flex; flex-direction:column; gap:6px; width:100%;
  }
  .tool-row .t{
    display:flex; align-items:center; gap:10px;
    padding:10px 12px;
    background:#fff; border:1px solid var(--line);
    border-radius:10px;
    font-size:13px;
  }
  .tool-row .t .ic{
    width:28px; height:28px; border-radius:8px;
    background:var(--mintSoft);
    display:flex; align-items:center; justify-content:center;
    color:var(--mintInk); font-weight:800; font-size:12px;
  }
  .tool-row .t .ic.b{ background:var(--banana); color:var(--bananaInk) }
  .tool-row .t .ic.l{ background:var(--lilac); color:#2A1A66 }
  .tool-row .t .ic.p{ background:var(--pink); color:#5A1F35 }
  .tool-row .t .nm{ flex:1; font-weight:600 }
  .tool-row .t .ar{ color:var(--ink3) }

  /* ===== DOWNLOAD ===== */
  .dl-wrap{
    background:var(--panelDeep); color:#fff;
    border-radius:var(--r-2xl);
    padding:64px 56px;
    position:relative; overflow:hidden;
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:48px;
    align-items:center;
  }
  .dl-wrap::before{
    content:''; position:absolute; inset:0; pointer-events:none;
    background:
      radial-gradient(ellipse at 100% 100%, rgba(20,184,138,0.28), transparent 55%),
      radial-gradient(ellipse at 0% 0%, rgba(201,184,255,0.15), transparent 50%);
  }
  .dl-stars{ position:absolute; inset:0; pointer-events:none }
  .dl-stars span{ position:absolute; background:#fff; border-radius:50%; box-shadow:0 0 6px rgba(255,255,255,0.6) }
  .dl-content{ position:relative; z-index:1 }
  .dl-content .eye{ color:rgba(255,255,255,0.4) }
  .dl-content .eye::before{ background:rgba(255,255,255,0.4) }
  .dl-content .eye em{ color:var(--mint) }
  .dl-content h2{
    font-size:clamp(36px, 4.5vw, 56px); font-weight:800;
    line-height:1.05; letter-spacing:-0.025em;
    margin:0 0 18px; max-width:14ch;
  }
  .dl-content h2 em{ font-style:normal; color:var(--mint) }
  .dl-content p{
    font-size:15px; color:rgba(255,255,255,0.6);
    margin:0 0 28px; max-width:42ch; line-height:1.6;
  }
  .dl-buttons{ display:flex; flex-wrap:wrap; gap:12px }
  .dl-btn{
    display:flex; align-items:center; gap:14px;
    background:#fff; color:var(--ink);
    padding:14px 22px; border-radius:var(--r-pill);
    font-weight:600; transition:transform .15s, background .15s;
    border:none; cursor:pointer;
  }
  .dl-btn:hover{ transform:translateY(-2px); background:var(--mint); color:#06201A }
  .dl-btn .glyph{
    width:28px; height:28px; flex-shrink:0;
  }
  .dl-btn .lbl{ display:flex; flex-direction:column; line-height:1.15; text-align:left }
  .dl-btn .lbl .sm{ font-family:var(--mono); font-size:9.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--ink3); font-weight:500 }
  .dl-btn:hover .lbl .sm{ color:rgba(6,32,26,0.6) }
  .dl-btn .lbl .lg{ font-size:15px; font-weight:700; letter-spacing:-0.01em }

  .dl-meta{
    margin-top:32px; padding-top:24px;
    border-top:1px solid rgba(255,255,255,0.12);
    display:flex; gap:32px; flex-wrap:wrap;
    font-family:var(--mono); font-size:10.5px; letter-spacing:1.6px;
    text-transform:uppercase; color:rgba(255,255,255,0.5);
  }
  .dl-meta b{ color:#fff; font-weight:500 }

  .dl-visual{
    position:relative; z-index:1;
    display:flex; justify-content:center; align-items:center;
    min-height:380px;
  }
  .qr-card{
    background:#fff; border-radius:var(--r-xl);
    padding:18px;
    width:200px;
    text-align:center;
    transform:rotate(-4deg);
    box-shadow:0 20px 50px -20px rgba(0,0,0,0.5);
  }
  .qr-card .qr{
    width:100%; aspect-ratio:1;
    background:
      linear-gradient(45deg, transparent 48%, var(--ink) 48% 52%, transparent 52%) 0 0/8px 8px,
      linear-gradient(-45deg, transparent 48%, var(--ink) 48% 52%, transparent 52%) 0 0/8px 8px;
    background-color:#fff;
    border-radius:8px;
    position:relative;
    overflow:hidden;
  }
  .qr-card .qr svg{ width:100%; height:100% }
  .qr-card .qr-label{
    margin-top:10px; font-family:var(--mono); font-size:10px;
    letter-spacing:1.6px; text-transform:uppercase; color:var(--ink2);
  }
  .qr-card .qr-label b{ display:block; color:var(--ink); font-size:11.5px; font-family:var(--sans); margin-top:2px; letter-spacing:0; }

  .phone-mock{
    position:absolute;
    right:8%;
    width:200px; height:340px;
    background:var(--panel);
    border-radius:32px;
    padding:8px;
    border:2px solid #2A2F3A;
    box-shadow:0 30px 60px -20px rgba(0,0,0,0.6);
    transform:rotate(6deg);
  }
  .phone-mock .screen{
    width:100%; height:100%; border-radius:24px;
    background:linear-gradient(180deg, #14B88A 0%, #0E9A73 100%);
    display:flex; align-items:center; justify-content:center;
    overflow:hidden; position:relative;
  }
  .phone-mock .screen::before{
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 30% 80%, rgba(255,212,59,0.3), transparent 50%);
  }
  .phone-mock .screen img{
    width:75%; position:relative; z-index:1;
    filter:drop-shadow(0 8px 16px rgba(0,0,0,0.3));
  }
  .phone-mock .notch{
    position:absolute; top:8px; left:50%; transform:translateX(-50%);
    width:60px; height:14px; background:var(--panel); border-radius:8px;
    z-index:2;
  }

  @media (max-width:900px){
    .dl-wrap{ grid-template-columns:1fr; padding:48px 32px }
    .dl-visual{ min-height:340px }
  }
  @media (max-width:520px){
    .dl-wrap{ padding:36px 24px }
    .phone-mock{ display:none }
    .qr-card{ transform:rotate(0); width:180px }
  }

  /* ===== BLOG ===== */
  .blog-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  }
  .post{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--r-2xl);
    overflow:hidden;
    transition:transform .25s, box-shadow .25s;
    display:flex; flex-direction:column;
  }
  .post:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -24px rgba(20,24,28,0.18) }
  .post .cover{
    aspect-ratio:16/10;
    position:relative; overflow:hidden;
  }
  .post .cover.c1{ background:linear-gradient(135deg, #14B88A 0%, #0B5C45 100%) }
  .post .cover.c2{ background:linear-gradient(135deg, #FFD43B 0%, #E8A100 100%) }
  .post .cover.c3{ background:linear-gradient(135deg, #C9B8FF 0%, #6D5BB8 100%) }
  .post .cover.c4{ background:var(--panel) }
  .post .cover-art{
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
  }
  .post .cover-art img{ width:48%; filter:drop-shadow(0 8px 20px rgba(0,0,0,0.3)) }
  .post .cover-art svg{
    width:42%; max-width:140px; height:auto;
    color:rgba(255,255,255,0.96);
    filter:drop-shadow(0 6px 16px rgba(0,0,0,0.25));
  }
  .post .cover .stamp{
    position:absolute; top:14px; left:14px;
    background:rgba(255,255,255,0.95);
    padding:5px 10px; border-radius:var(--r-pill);
    font-family:var(--mono); font-size:10px; letter-spacing:1.4px;
    text-transform:uppercase; color:var(--ink); font-weight:600;
  }
  .post .cover .num{
    position:absolute; top:14px; right:18px;
    font-family:var(--mono); font-size:11px; letter-spacing:1.4px;
    color:rgba(255,255,255,0.85); font-weight:500;
  }
  .post .body{
    padding:22px; flex:1; display:flex; flex-direction:column;
  }
  .post .meta{
    font-family:var(--mono); font-size:10px; letter-spacing:1.6px;
    text-transform:uppercase; color:var(--ink3); margin-bottom:10px;
    display:flex; justify-content:space-between;
  }
  .post .meta em{ font-style:normal; color:var(--mint) }
  .post h3{
    font-size:19px; font-weight:700; letter-spacing:-0.012em;
    line-height:1.3; margin:0 0 8px; text-wrap:balance;
  }
  .post p{
    font-size:13.5px; color:var(--ink2); line-height:1.6;
    margin:0 0 16px;
  }
  .post .more{
    margin-top:auto;
    display:inline-flex; align-items:center; gap:6px;
    font-size:13px; font-weight:600; color:var(--mint);
  }
  .post .more svg{ width:12px; height:12px; transition:transform .2s }
  .post:hover .more svg{ transform:translateX(3px) }

  .blog-foot{
    margin-top:32px;
    display:flex; align-items:center; justify-content:space-between;
    padding-top:24px; border-top:1px dashed var(--lineStrong);
    font-size:13.5px; color:var(--ink2);
  }
  .blog-foot a{ color:var(--ink); font-weight:600; display:inline-flex; gap:6px; align-items:center }
  .blog-foot a:hover{ color:var(--mint) }
  @media (max-width:900px){ .blog-grid{ grid-template-columns:1fr 1fr } }
  @media (max-width:600px){ .blog-grid{ grid-template-columns:1fr } }

  /* ===== ABOUT ===== */
  .about-wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:64px;
    align-items:start;
  }
  .about-lede{
    font-size:clamp(24px, 2.6vw, 32px);
    line-height:1.35; letter-spacing:-0.015em; font-weight:600;
    text-wrap:balance; margin:0 0 24px;
  }
  .about-lede em{ font-style:normal; color:var(--mint) }
  .about-body{
    font-size:14.5px; line-height:1.75; color:var(--ink2);
  }
  .about-body p{ margin:0 0 14px }
  .about-body p:last-child{ margin-bottom:0 }

  .about-side{
    display:flex; flex-direction:column; gap:14px;
  }
  .stat{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--r-xl);
    padding:22px 24px;
    display:grid; grid-template-columns:1fr auto; align-items:center;
    gap:16px;
  }
  .stat .big{
    font-weight:800; font-size:44px; line-height:1;
    letter-spacing:-0.025em;
  }
  .stat .big em{ font-style:normal; color:var(--mint) }
  .stat .lbl{
    font-family:var(--mono); font-size:10.5px; letter-spacing:1.8px;
    text-transform:uppercase; color:var(--ink3); margin-top:8px;
  }
  .stat .side-text{
    font-size:13px; color:var(--ink2); line-height:1.55;
    max-width:140px; text-align:right;
  }
  .stat.dark{ background:var(--panel); color:#fff; border-color:transparent }
  .stat.dark .big em{ color:var(--mint) }
  .stat.dark .lbl{ color:rgba(255,255,255,0.4) }
  .stat.dark .side-text{ color:rgba(255,255,255,0.55) }

  .timeline{
    margin-top:36px; padding-top:32px;
    border-top:1px solid var(--lineStrong);
  }
  .timeline h4{
    font-family:var(--mono); font-size:11px; letter-spacing:2px;
    text-transform:uppercase; color:var(--ink3); margin:0 0 18px; font-weight:500;
  }
  .tl-row{
    display:grid; grid-template-columns:80px 1fr;
    gap:16px; padding:14px 0;
    border-bottom:1px solid var(--line);
  }
  .tl-row:last-child{ border-bottom:none }
  .tl-row .yr{
    font-family:var(--mono); font-size:12px; color:var(--mint); font-weight:500;
    letter-spacing:0.5px;
  }
  .tl-row .ev b{ font-weight:600; display:block; margin-bottom:2px }
  .tl-row .ev span{ font-size:13px; color:var(--ink2) }

  @media (max-width:900px){ .about-wrap{ grid-template-columns:1fr; gap:40px } }

  /* ===== CTA STRIP ===== */
  .cta-strip{
    margin:72px 0 24px;
    border-top:1px dashed var(--lineStrong);
    border-bottom:1px dashed var(--lineStrong);
    padding:48px 0;
    text-align:center;
  }
  .cta-strip h3{
    font-size:clamp(28px, 4vw, 48px); font-weight:800;
    letter-spacing:-0.025em; line-height:1.1; margin:0 0 8px;
    text-wrap:balance;
  }
  .cta-strip h3 em{ font-style:normal; color:var(--mint) }
  .cta-strip p{
    font-size:14.5px; color:var(--ink2); margin:0 0 24px;
  }
  .cta-strip .btn-primary{ margin:0 auto }

  /* ===== FOOTER ===== */
  footer{
    background:var(--panel); color:#fff;
    padding:64px 0 32px;
    margin-top:48px;
  }
  .footer-grid{
    display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
    gap:48px;
    padding-bottom:48px;
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .footer-brand{
    max-width:320px;
  }
  .footer-brand .brand{ color:#fff; margin-bottom:18px }
  .footer-brand .brand .logo{ background:#fff }
  .footer-brand .brand .logo::before{ background:radial-gradient(circle at 70% 30%, rgba(20,184,138,0.6), transparent 55%) }
  .footer-brand p{
    font-size:13px; color:rgba(255,255,255,0.55); line-height:1.7;
    margin:0;
  }
  .footer-col h5{
    font-family:var(--mono); font-size:10.5px; letter-spacing:2px;
    text-transform:uppercase; color:rgba(255,255,255,0.45);
    margin:0 0 18px; font-weight:500;
  }
  .footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px }
  .footer-col ul a{
    font-size:13.5px; color:rgba(255,255,255,0.75);
    transition:color .15s;
  }
  .footer-col ul a:hover{ color:var(--mint) }
  .footer-bot{
    padding-top:28px;
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:12px;
    font-family:var(--mono); font-size:11px; letter-spacing:1px;
    color:rgba(255,255,255,0.4);
  }
  .footer-bot a{ color:rgba(255,255,255,0.55) }
  .footer-bot a:hover{ color:var(--mint) }
  .icp{ display:flex; gap:18px; flex-wrap:wrap }
  @media (max-width:780px){
    .footer-grid{ grid-template-columns:1fr 1fr; gap:32px }
    .footer-brand{ grid-column:span 2 }
  }
  @media (max-width:520px){
    .footer-grid{ grid-template-columns:1fr }
    .footer-brand{ grid-column:span 1 }
  }

  /* ============================================================
     THEME VARIANTS — toggle via [data-style] on <html>
     ============================================================ */

  /* — STYLE B · Cosmic Dark — deep navy fullscreen, neon mint+lilac glow */
  html[data-style="cosmic"]{
    --bg:#06080F;
    --bgWarm:#0B0F1A;
    --card:#11161F;
    --panel:#0B0F1A;
    --panelDeep:#03050A;
    --ink:#ECEFEA;
    --ink2:#9BA4A0;
    --ink3:#5A6266;
    --line:rgba(255,255,255,0.08);
    --lineStrong:rgba(255,255,255,0.16);
    --mint:#2BD6A3;
    --mintDeep:#17B88A;
    --mintSoft:rgba(43,214,163,0.12);
    --mintInk:#E6FFF5;
    --banana:#F7C948;
    --bananaInk:#2A1E00;
    --pink:#FF8FB1;
    --lilac:#B3A0FF;
    --sans:'Space Grotesk','Inter','Noto Sans SC','PingFang SC',-apple-system,system-ui,sans-serif;
  }
  html[data-style="cosmic"] body{
    background:
      radial-gradient(ellipse at 20% 0%, rgba(179,160,255,0.18), transparent 50%),
      radial-gradient(ellipse at 80% 30%, rgba(43,214,163,0.14), transparent 55%),
      var(--bg);
    background-attachment:fixed;
  }
  html[data-style="cosmic"] .nav{
    background:rgba(6,8,15,0.7);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  html[data-style="cosmic"] .nav-cta{ background:var(--mint); color:#03150E }
  html[data-style="cosmic"] .nav-cta:hover{ background:#fff; color:#03150E }
  html[data-style="cosmic"] .nav-cta .dot{ background:#03150E; box-shadow:0 0 0 3px rgba(3,21,14,0.3) }
  html[data-style="cosmic"] .brand .logo{ background:#fff }
  html[data-style="cosmic"] h1.display .strike::after{ background:var(--lilac); height:8px }
  html[data-style="cosmic"] .feat{ background:var(--card); border-color:rgba(255,255,255,0.08); color:#fff }
  html[data-style="cosmic"] .feat p{ color:var(--ink2) }
  html[data-style="cosmic"] .feat .demo{ background:rgba(255,255,255,0.03); border-color:rgba(255,255,255,0.08) }
  html[data-style="cosmic"] .feat.dark{ background:linear-gradient(180deg,#0E1220 0%,#03050A 100%); border:1px solid rgba(43,214,163,0.18); box-shadow:inset 0 0 60px rgba(43,214,163,0.06) }
  html[data-style="cosmic"] .bubble.bot{ background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.1); color:#fff }
  html[data-style="cosmic"] .word-cloud .w{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.08); color:#fff }
  html[data-style="cosmic"] .tool-row .t{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.08); color:#fff }
  html[data-style="cosmic"] .correct-card{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.08); color:#fff }
  html[data-style="cosmic"] .correct-card .hr{ background:rgba(255,255,255,0.1) }
  html[data-style="cosmic"] .correct-card .tip-text{ color:var(--ink2) }
  html[data-style="cosmic"] .invite-stage .room{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.08); color:#fff }
  html[data-style="cosmic"] .invite-stage .ava{ border-color:#0B0F1A }
  html[data-style="cosmic"] .invite-stage .ava .live-dot{ border-color:#0B0F1A }
  html[data-style="cosmic"] .float-card{ background:rgba(17,22,31,0.85); backdrop-filter:blur(8px); border-color:rgba(255,255,255,0.1); color:#fff }
  html[data-style="cosmic"] .post{ background:var(--card); border-color:rgba(255,255,255,0.08); color:#fff }
  html[data-style="cosmic"] .post p{ color:var(--ink2) }
  html[data-style="cosmic"] .stat{ background:var(--card); border-color:rgba(255,255,255,0.08); color:#fff }
  html[data-style="cosmic"] .stat.dark{ background:linear-gradient(135deg,#11161F,#03050A); border:1px solid rgba(43,214,163,0.2) }
  html[data-style="cosmic"] .stat .side-text{ color:var(--ink2) }
  html[data-style="cosmic"] .tl-row{ border-bottom-color:rgba(255,255,255,0.08) }
  html[data-style="cosmic"] .btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,0.18) }
  html[data-style="cosmic"] .btn-ghost:hover{ background:rgba(255,255,255,0.06) }
  html[data-style="cosmic"] .btn-primary{
    box-shadow:0 0 0 4px rgba(43,214,163,0.18), 0 10px 28px -6px rgba(43,214,163,0.65), 0 0 60px rgba(43,214,163,0.3);
  }
  html[data-style="cosmic"] .dl-wrap{
    background:linear-gradient(135deg,#0B0F1A 0%, #03050A 100%);
    border:1px solid rgba(43,214,163,0.18);
  }
  html[data-style="cosmic"] .badge-row{ border-top-color:rgba(255,255,255,0.18) }
  html[data-style="cosmic"] .blog-foot{ border-top-color:rgba(255,255,255,0.18) }
  html[data-style="cosmic"] .cta-strip{ border-top-color:rgba(255,255,255,0.18); border-bottom-color:rgba(255,255,255,0.18) }
  html[data-style="cosmic"] .timeline{ border-top-color:rgba(255,255,255,0.18) }
  html[data-style="cosmic"] .sec-head{ border-bottom-color:rgba(255,255,255,0.18) }
  html[data-style="cosmic"] footer{ background:#03050A; border-top:1px solid rgba(255,255,255,0.08) }
  html[data-style="cosmic"] .features-intro .lede em{ color:var(--lilac) }
  html[data-style="cosmic"] h1.display em{
    background:linear-gradient(135deg, var(--mint) 0%, var(--lilac) 100%);
    -webkit-background-clip:text; background-clip:text;
    color:transparent;
  }

  /* — STYLE C · Soft Pop — banana yellow + pink, playful big type, chunky */
  html[data-style="pop"]{
    --bg:#FFF7E6;
    --bgWarm:#FFE8C4;
    --card:#FFFFFF;
    --panel:#1F0F2E;
    --panelDeep:#150821;
    --ink:#1F0F2E;
    --ink2:#6B5374;
    --ink3:#A89BB0;
    --line:rgba(31,15,46,0.1);
    --lineStrong:rgba(31,15,46,0.18);
    --mint:#E94B7A;       /* hot pink as primary in pop */
    --mintDeep:#C82E5E;
    --mintSoft:#FFE3EC;
    --mintInk:#5A0F2A;
    --banana:#FFC83D;
    --bananaInk:#3A2A00;
    --pink:#FFB5C5;
    --lilac:#B89BFF;
    --r-sm:14px; --r-md:18px; --r-lg:22px; --r-xl:28px; --r-2xl:32px; --r-pill:999px;
    --sans:'Fraunces','Inter','Noto Sans SC','PingFang SC',serif;
  }
  html[data-style="pop"] body{
    background:
      radial-gradient(ellipse at 90% -10%, rgba(255,200,61,0.4), transparent 45%),
      radial-gradient(ellipse at -10% 110%, rgba(233,75,122,0.18), transparent 50%),
      var(--bg);
    background-attachment:fixed;
  }
  html[data-style="pop"] .nav{ background:rgba(255,247,230,0.85) }
  html[data-style="pop"] .brand .logo{ background:var(--ink); border-radius:50% }
  html[data-style="pop"] .brand .logo span{ background:var(--banana) }
  html[data-style="pop"] h1.display{
    font-family:'Fraunces','Noto Serif SC',serif;
    font-weight:900;
    letter-spacing:-0.04em;
  }
  html[data-style="pop"] h1.display em{ color:var(--mint); font-style:italic }
  html[data-style="pop"] h1.display .strike::after{ background:var(--banana); height:14px; transform:rotate(-2deg) }
  html[data-style="pop"] .sec-title{ font-family:'Fraunces',serif; font-weight:900 }
  html[data-style="pop"] .sec-title em{ font-style:italic; color:var(--mint) }
  html[data-style="pop"] .features-intro .lede{ font-family:'Fraunces',serif; font-weight:600 }
  html[data-style="pop"] .features-intro .lede em{ font-style:italic; color:var(--mint) }
  html[data-style="pop"] .feat{
    border:2px solid var(--ink);
    box-shadow:6px 6px 0 var(--ink);
    border-radius:var(--r-2xl);
  }
  html[data-style="pop"] .feat:hover{ transform:translate(-2px,-2px); box-shadow:8px 8px 0 var(--ink) }
  html[data-style="pop"] .feat h3{ font-family:'Fraunces',serif; font-weight:800 }
  html[data-style="pop"] .feat h3 em{ font-style:italic; color:var(--mint) }
  html[data-style="pop"] .feat.dark{ background:var(--banana); color:var(--ink); border-color:var(--ink) }
  html[data-style="pop"] .feat.dark p{ color:var(--bananaInk) }
  html[data-style="pop"] .feat.dark .num{ color:var(--bananaInk) }
  html[data-style="pop"] .feat.dark .demo{ background:rgba(31,15,46,0.06); border:2px solid var(--ink) }
  html[data-style="pop"] .feat.dark .bubble.bot{ background:#fff; border:2px solid var(--ink); color:var(--ink) }
  html[data-style="pop"] .feat .demo{ border:2px solid var(--ink); border-radius:var(--r-lg) }
  html[data-style="pop"] .bubble.you{ background:var(--mint); color:#fff }
  html[data-style="pop"] .bubble.bot{ border:2px solid var(--ink); background:#fff }
  html[data-style="pop"] .word-cloud .w{ border:2px solid var(--ink); background:#fff; border-radius:14px }
  html[data-style="pop"] .word-cloud .w.lit{ background:var(--banana); border-color:var(--ink) }
  html[data-style="pop"] .tool-row .t{ border:2px solid var(--ink); background:#fff }
  html[data-style="pop"] .correct-card{ border:2px solid var(--ink) }
  html[data-style="pop"] .invite-stage .room{ border:2px solid var(--ink) }
  html[data-style="pop"] .invite-stage .ava{ border:3px solid var(--ink) }
  html[data-style="pop"] .invite-stage .invite-link{ background:var(--ink); border-radius:var(--r-pill) }
  html[data-style="pop"] .float-card{ border:2px solid var(--ink); box-shadow:4px 4px 0 var(--ink) }
  html[data-style="pop"] .btn-primary{
    background:var(--mint); color:#fff;
    border:2px solid var(--ink);
    box-shadow:5px 5px 0 var(--ink);
  }
  html[data-style="pop"] .btn-primary:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--ink) }
  html[data-style="pop"] .btn-ghost{ border:2px solid var(--ink); background:#fff }
  html[data-style="pop"] .nav-cta{ background:var(--ink); border:2px solid var(--ink) }
  html[data-style="pop"] .post{
    border:2px solid var(--ink);
    box-shadow:6px 6px 0 var(--ink);
  }
  html[data-style="pop"] .post:hover{ transform:translate(-2px,-2px); box-shadow:8px 8px 0 var(--ink) }
  html[data-style="pop"] .post h3{ font-family:'Fraunces',serif; font-weight:800 }
  html[data-style="pop"] .post .cover.c1{ background:linear-gradient(135deg,#FFC83D 0%, #E94B7A 100%) }
  html[data-style="pop"] .post .cover.c2{ background:linear-gradient(135deg,#B89BFF 0%, #6D5BB8 100%) }
  html[data-style="pop"] .post .cover.c3{ background:linear-gradient(135deg,#FFB5C5 0%, #E94B7A 100%) }
  html[data-style="pop"] .stat{ border:2px solid var(--ink); box-shadow:4px 4px 0 var(--ink) }
  html[data-style="pop"] .stat .big{ font-family:'Fraunces',serif; font-weight:900 }
  html[data-style="pop"] .stat .big em{ font-style:italic }
  html[data-style="pop"] .stat.dark{ background:var(--mint); color:#fff }
  html[data-style="pop"] .stat.dark .lbl{ color:rgba(255,255,255,0.7) }
  html[data-style="pop"] .stat.dark .side-text{ color:rgba(255,255,255,0.85) }
  html[data-style="pop"] .dl-wrap{
    background:var(--mint);
    border:2px solid var(--ink);
    box-shadow:8px 8px 0 var(--ink);
  }
  html[data-style="pop"] .dl-content h2{ font-family:'Fraunces',serif; font-weight:900 }
  html[data-style="pop"] .dl-content h2 em{ font-style:italic; color:var(--banana) }
  html[data-style="pop"] .dl-btn{ border:2px solid var(--ink); box-shadow:3px 3px 0 var(--ink) }
  html[data-style="pop"] .qr-card{ border:2px solid var(--ink); box-shadow:6px 6px 0 var(--ink) }
  html[data-style="pop"] .phone-mock{ border:3px solid var(--ink); box-shadow:8px 8px 0 var(--ink) }
  html[data-style="pop"] .cta-strip h3{ font-family:'Fraunces',serif; font-weight:900 }
  html[data-style="pop"] .cta-strip h3 em{ font-style:italic; color:var(--mint) }
  html[data-style="pop"] .about-lede{ font-family:'Fraunces',serif; font-weight:700 }
  html[data-style="pop"] .about-lede em{ font-style:italic; color:var(--mint) }
  html[data-style="pop"] footer{ background:var(--ink) }

  /* tweaks panel root override (it's outside our wrap) */
  .tweaks-style-pip{
    width:14px; height:14px; border-radius:4px;
    border:1px solid rgba(0,0,0,0.12);
    flex-shrink:0;
  }

  /* ============================================================
     QUIET LAYOUT — 更克制安静、留白多、字大、节奏慢
     ============================================================ */
  html[data-layout="quiet"]{
    --bg:#F4F1E8;
  }
  html[data-layout="quiet"] .wrap{ max-width:1280px; padding:0 56px }
  @media (max-width:900px){ html[data-layout="quiet"] .wrap{ padding:0 24px } }

  /* nav: lighter, less dense */
  html[data-layout="quiet"] .nav-row{ height:80px }
  html[data-layout="quiet"] .nav-links{ gap:36px; font-size:14px }

  /* ----- HERO: full-width dark cinematic billboard -----
     The dark panel becomes the hero stage; headline goes BELOW the
     panel as a 3-column editorial spread (lede / blank / meta).      */
  html[data-layout="quiet"] .hero{ padding:48px 0 0 }
  html[data-layout="quiet"] .hero-grid{
    display:block;
  }
  /* hide the original eye/headline column - we render new ones */
  html[data-layout="quiet"] .hero-grid > div:first-child{ display:none }
  html[data-layout="quiet"] .hero-card-stack{ min-height:auto; height:auto }
  html[data-layout="quiet"] .float-card{ display:none } /* no floating chips */

  html[data-layout="quiet"] .hero-panel{
    position:relative; right:auto; top:auto;
    width:100%; max-width:none; aspect-ratio:auto;
    height:clamp(420px, 52vw, 620px);
    max-height:none;
    border-radius:28px;
    padding:48px 56px;
  }
  html[data-layout="quiet"] .hero-panel-inner{
    display:grid;
    grid-template-rows:auto 1fr auto;
    height:100%;
  }
  html[data-layout="quiet"] .hero-panel .topline{
    margin-bottom:0;
    font-size:11.5px; letter-spacing:2.6px;
  }
  html[data-layout="quiet"] .hero-panel .mascot-wrap{
    margin:0;
    align-self:center;
    justify-self:center;
  }
  html[data-layout="quiet"] .hero-panel .mascot-wrap img{
    width:auto; height:clamp(180px, 24vw, 280px); max-width:none;
  }
  html[data-layout="quiet"] .hero-panel .planet-ring{
    width:clamp(360px,46vw,560px); height:clamp(360px,46vw,560px);
    top:54%;
  }
  html[data-layout="quiet"] .hero-panel .panel-bottom{
    display:grid; grid-template-columns:1fr auto;
    gap:32px; align-items:end;
  }
  html[data-layout="quiet"] .hero-panel .panel-bubble{
    max-width:560px;
  }
  html[data-layout="quiet"] .hero-panel .panel-bubble.user{ display:none } /* leaner */
  html[data-layout="quiet"] .hero-panel .panel-cta{
    align-self:end;
  }

  /* hero deck below the panel */
  html[data-layout="quiet"] .hero-deck{
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:80px;
    padding:80px 0 120px;
    align-items:end;
    border-bottom:1px solid var(--lineStrong);
  }
  html[data-layout="quiet"] .hero-deck .eye{ margin-bottom:28px }
  html[data-layout="quiet"] .hero-deck h1{
    font-family:var(--sans);
    font-weight:700;
    font-size:clamp(48px, 6.4vw, 96px);
    line-height:1.02;
    letter-spacing:-0.035em;
    margin:0;
    text-wrap:balance;
    color:var(--ink);
  }
  html[data-layout="quiet"] .hero-deck h1 em{
    font-style:normal; color:var(--mint);
  }
  html[data-layout="quiet"] .hero-deck h1 .strike{ position:relative; display:inline-block }
  html[data-layout="quiet"] .hero-deck h1 .strike::after{
    content:''; position:absolute; left:-2%; right:-2%; top:54%; height:10px;
    background:var(--banana); border-radius:6px; transform:rotate(-1.5deg);
    z-index:-1;
  }
  html[data-layout="quiet"] .hero-deck .right{
    display:flex; flex-direction:column; gap:40px;
    padding-bottom:8px;
  }
  html[data-layout="quiet"] .hero-deck .right p{
    font-size:18px; line-height:1.65; color:var(--ink2);
    margin:0; max-width:36ch;
  }
  html[data-layout="quiet"] .hero-deck .right .meta{
    display:flex; flex-direction:column; gap:8px;
    font-family:var(--mono); font-size:11px; letter-spacing:1.6px;
    color:var(--ink3); text-transform:uppercase;
    padding-top:24px; border-top:1px solid var(--line);
  }
  html[data-layout="quiet"] .hero-deck .right .meta b{
    color:var(--ink); font-weight:500;
    font-family:var(--sans); font-size:15px; letter-spacing:-0.005em;
    text-transform:none;
  }
  html[data-layout="quiet"] .hero-deck .right .cta-row{
    display:flex; flex-wrap:wrap; gap:14px; align-items:center;
  }
  @media (max-width:980px){
    html[data-layout="quiet"] .hero-deck{ grid-template-columns:1fr; gap:48px; padding:56px 0 80px }
    html[data-layout="quiet"] .hero-panel{ padding:32px 28px; height:clamp(420px,80vw,560px) }
    html[data-layout="quiet"] .hero-panel .panel-bottom{ grid-template-columns:1fr }
  }

  /* ----- SECTIONS: more breathing room ----- */
  html[data-layout="quiet"] section{ padding:160px 0 }
  @media (max-width:780px){ html[data-layout="quiet"] section{ padding:96px 0 } }

  html[data-layout="quiet"] .sec-head{
    grid-template-columns:140px 1fr;
    grid-template-rows:auto;
    gap:48px;
    padding-bottom:64px;
    border-bottom:1px solid var(--lineStrong);
    margin-bottom:80px;
  }
  html[data-layout="quiet"] .sec-num{ font-size:11px; letter-spacing:2.4px }
  html[data-layout="quiet"] .sec-title{
    font-size:clamp(40px, 4.6vw, 72px);
    line-height:1.05; letter-spacing:-0.03em;
    font-weight:700; max-width:18ch;
  }
  html[data-layout="quiet"] .sec-desc{
    grid-column:2; max-width:48ch; text-align:left;
    font-size:16px; line-height:1.65; color:var(--ink2);
    margin-top:24px;
  }
  @media (max-width:780px){
    html[data-layout="quiet"] .sec-head{ grid-template-columns:1fr; gap:20px; margin-bottom:48px; padding-bottom:32px }
    html[data-layout="quiet"] .sec-desc{ grid-column:1 }
  }

  /* hide the wordy intro paragraph - title carries it */
  html[data-layout="quiet"] .features-intro{ display:none }

  /* ----- FEATURES: 3 equal columns × 2 rows, no demo decoration ----- */
  html[data-layout="quiet"] .feat-grid{
    grid-template-columns:repeat(3, 1fr);
    gap:0;
    border-top:1px solid var(--lineStrong);
  }
  @media (max-width:900px){ html[data-layout="quiet"] .feat-grid{ grid-template-columns:1fr } }

  html[data-layout="quiet"] .feat,
  html[data-layout="quiet"] .feat.span4,
  html[data-layout="quiet"] .feat.span6,
  html[data-layout="quiet"] .feat.span8,
  html[data-layout="quiet"] .feat.dark{
    grid-column:span 1;
    background:transparent !important;
    border:none;
    border-bottom:1px solid var(--lineStrong);
    border-right:1px solid var(--lineStrong);
    border-radius:0;
    padding:48px 36px 56px;
    color:var(--ink);
    box-shadow:none;
    transition:background .25s;
  }
  html[data-layout="quiet"] .feat:hover{
    background:rgba(20,184,138,0.04) !important;
    transform:none; box-shadow:none;
  }
  /* remove right border on the rightmost column */
  html[data-layout="quiet"] .feat-grid > .feat:nth-child(3n){ border-right:none }
  @media (max-width:900px){
    html[data-layout="quiet"] .feat-grid > .feat{ border-right:none !important }
  }

  html[data-layout="quiet"] .feat .num{
    font-family:var(--mono); font-size:11px; letter-spacing:2.2px;
    color:var(--mint); margin-bottom:48px;
  }
  html[data-layout="quiet"] .feat.dark .num{ color:var(--mint) }
  html[data-layout="quiet"] .feat h3{
    font-size:clamp(26px, 2.4vw, 34px);
    font-weight:700; letter-spacing:-0.025em;
    line-height:1.15; margin:0 0 16px;
  }
  html[data-layout="quiet"] .feat p{
    font-size:15px; line-height:1.65; color:var(--ink2);
    margin:0 0 28px;
  }
  html[data-layout="quiet"] .feat.dark p{ color:var(--ink2) }

  /* shrink + simplify all the demo widgets to thin emblems */
  html[data-layout="quiet"] .feat .demo{
    margin-top:auto;
    background:transparent;
    border:none;
    padding:0;
  }
  /* AI chat: only show 2 bubbles, smaller, simple */
  html[data-layout="quiet"] .feat.dark .demo{ background:transparent }
  html[data-layout="quiet"] .feat.dark .bubble.bot{
    background:rgba(20,184,138,0.08); border-color:rgba(20,184,138,0.15);
    color:var(--ink);
  }
  html[data-layout="quiet"] .feat .ai-tag{ color:var(--ink3) }
  html[data-layout="quiet"] .feat .typing{ display:none }
  html[data-layout="quiet"] .feat .ai-chat{ gap:6px }
  html[data-layout="quiet"] .feat .bubble{
    font-size:13px; padding:8px 12px;
  }
  html[data-layout="quiet"] .feat .bubble.bot,
  html[data-layout="quiet"] .feat .bubble.you{ max-width:100% }

  /* correct-card: simpler */
  html[data-layout="quiet"] .feat .correct-card{
    background:transparent;
    border:1px solid var(--line);
    padding:14px;
  }

  /* invite stage */
  html[data-layout="quiet"] .feat .invite-stage{ gap:10px }
  html[data-layout="quiet"] .feat .invite-stage .room{
    background:transparent; border:1px solid var(--line);
  }
  html[data-layout="quiet"] .feat .invite-link{
    background:transparent; border:1px dashed var(--lineStrong);
    color:var(--ink2);
  }

  /* word cloud, streak, tools - all in cream tone */
  html[data-layout="quiet"] .feat .word-cloud,
  html[data-layout="quiet"] .feat .tool-row,
  html[data-layout="quiet"] .feat .streak-chart{
    background:transparent;
  }
  html[data-layout="quiet"] .feat .word-cloud .w,
  html[data-layout="quiet"] .feat .tool-row .t{
    background:transparent; border:1px solid var(--line);
  }

  /* ----- DOWNLOAD: quiet split (no big dark panel) ----- */
  html[data-layout="quiet"] #download .dl-wrap{
    background:transparent;
    border:none;
    box-shadow:none;
    padding:0;
    grid-template-columns:1fr 1.1fr;
    gap:80px;
    color:var(--ink);
    border-radius:0;
    overflow:visible;
  }
  html[data-layout="quiet"] #download .dl-wrap::before{ display:none }
  html[data-layout="quiet"] #download .dl-stars{ display:none }

  html[data-layout="quiet"] #download .dl-content{ order:2 }
  html[data-layout="quiet"] #download .dl-content .eye{ color:var(--ink3) }
  html[data-layout="quiet"] #download .dl-content .eye::before{ background:var(--ink3) }
  html[data-layout="quiet"] #download .dl-content .eye em{ color:var(--mint) }
  html[data-layout="quiet"] #download .dl-content h2{
    color:var(--ink);
    font-size:clamp(40px, 4.6vw, 64px);
    font-weight:700;
    letter-spacing:-0.03em;
    line-height:1.05;
    max-width:14ch;
    margin:0 0 24px;
  }
  html[data-layout="quiet"] #download .dl-content h2 em{ color:var(--mint) }
  html[data-layout="quiet"] #download .dl-content p{
    color:var(--ink2);
    font-size:16px; line-height:1.65;
    max-width:42ch;
    margin:0 0 40px;
  }

  html[data-layout="quiet"] #download .dl-buttons{
    flex-direction:column;
    gap:10px;
    align-items:stretch;
    max-width:340px;
  }
  html[data-layout="quiet"] #download .dl-btn{
    background:var(--ink); color:#fff;
    border:none;
    justify-content:flex-start;
    padding:14px 20px;
  }
  html[data-layout="quiet"] #download .dl-btn:hover{
    background:var(--mint); color:#03150E;
  }
  html[data-layout="quiet"] #download .dl-meta{
    color:var(--ink2);
    border-top:1px solid var(--line);
    padding-top:24px;
    margin-top:36px;
  }
  html[data-layout="quiet"] #download .dl-meta b{ color:var(--ink) }

  html[data-layout="quiet"] #download .dl-visual{
    order:1;
    min-height:auto;
  }
  html[data-layout="quiet"] #download .phone-mock{
    background:var(--ink);
    border-color:var(--ink);
  }
  html[data-layout="quiet"] #download .qr-card{
    background:#fff;
    border:1px solid var(--line);
    box-shadow:0 24px 60px -30px rgba(20,24,28,0.18);
  }
  html[data-layout="quiet"] #download .qr-label{
    color:var(--ink2);
  }
  html[data-layout="quiet"] #download .qr-label b{ color:var(--ink) }
  @media (max-width:900px){
    html[data-layout="quiet"] #download .dl-wrap{ grid-template-columns:1fr; gap:56px }
    html[data-layout="quiet"] #download .dl-content{ order:1 }
    html[data-layout="quiet"] #download .dl-visual{ order:2 }
  }

  /* ----- BLOG: more whitespace, no colorful gradient covers ----- */
  html[data-layout="quiet"] .blog-grid{
    grid-template-columns:repeat(3,1fr);
    gap:0;
    border-top:1px solid var(--lineStrong);
  }
  html[data-layout="quiet"] .post{
    background:transparent;
    border:none;
    border-bottom:1px solid var(--lineStrong);
    border-right:1px solid var(--lineStrong);
    border-radius:0;
    padding:0;
    box-shadow:none;
    overflow:visible;
  }
  html[data-layout="quiet"] .post:last-child{ border-right:none }
  html[data-layout="quiet"] .post:hover{
    transform:none; box-shadow:none;
    background:rgba(20,184,138,0.04);
  }
  html[data-layout="quiet"] .post .cover{
    background:var(--bgWarm) !important;
    height:200px;
    border-bottom:1px solid var(--line);
    border-radius:0;
  }
  html[data-layout="quiet"] .post .cover.c1{ background:linear-gradient(180deg, #EFE9D8 0%, #E5DDC4 100%) !important }
  html[data-layout="quiet"] .post .cover.c2{ background:linear-gradient(180deg, #F0EBDD 0%, #E0D6BC 100%) !important }
  html[data-layout="quiet"] .post .cover.c3{ background:linear-gradient(180deg, #ECE7D6 0%, #DDD3B8 100%) !important }
  html[data-layout="quiet"] .post .cover .stamp{
    background:rgba(255,255,255,0.85);
    color:var(--ink);
  }
  html[data-layout="quiet"] .post .cover .num{ color:var(--ink3) }
  html[data-layout="quiet"] .post .cover-art img{ filter:none; opacity:0.95 }
  html[data-layout="quiet"] .post .body{ padding:32px 32px 40px }
  html[data-layout="quiet"] .post h3{
    font-size:22px; font-weight:700;
    letter-spacing:-0.02em; line-height:1.25;
    margin:8px 0 14px;
  }
  html[data-layout="quiet"] .post p{
    font-size:14.5px; line-height:1.65; color:var(--ink2);
  }
  html[data-layout="quiet"] .blog-foot{
    border-top:none;
    padding-top:48px;
    margin-top:0;
  }
  @media (max-width:900px){
    html[data-layout="quiet"] .blog-grid{ grid-template-columns:1fr }
    html[data-layout="quiet"] .post{ border-right:none }
  }

  /* ----- ABOUT: text-forward, no big stat boxes ----- */
  html[data-layout="quiet"] .about-wrap{
    grid-template-columns:1.3fr 1fr; gap:96px;
  }
  html[data-layout="quiet"] .about-lede{
    font-size:clamp(24px, 2.4vw, 32px);
    line-height:1.4;
    font-weight:500;
    letter-spacing:-0.015em;
    color:var(--ink);
    margin:0 0 48px;
    max-width:24ch;
  }
  html[data-layout="quiet"] .about-lede em{ font-style:normal; color:var(--mint) }
  html[data-layout="quiet"] .about-body{ font-size:15.5px; line-height:1.75 }
  html[data-layout="quiet"] .about-body p{ margin:0 0 20px }

  /* timeline as condensed inline list */
  html[data-layout="quiet"] .timeline{
    margin-top:64px; padding-top:32px;
    border-top:1px solid var(--lineStrong);
  }
  html[data-layout="quiet"] .timeline h4{
    font-family:var(--mono); font-size:11px; letter-spacing:2.2px;
    color:var(--ink3); margin:0 0 20px; text-transform:uppercase;
  }
  html[data-layout="quiet"] .tl-row{
    grid-template-columns:60px 1fr;
    gap:24px;
    padding:16px 0;
  }
  html[data-layout="quiet"] .tl-row .yr{
    font-family:var(--mono); font-size:13px; color:var(--ink);
  }

  /* about-side: compact stat cards stacked */
  html[data-layout="quiet"] .about-side{ gap:0 }
  html[data-layout="quiet"] .about-side .stat,
  html[data-layout="quiet"] .about-side .stat.dark{
    background:transparent !important;
    border:none;
    border-top:1px solid var(--lineStrong);
    border-radius:0;
    box-shadow:none;
    padding:32px 0;
    color:var(--ink);
    grid-template-columns:1fr;
    gap:12px;
  }
  html[data-layout="quiet"] .about-side .stat:last-child{
    border-bottom:1px solid var(--lineStrong);
  }
  html[data-layout="quiet"] .about-side .stat .big{
    font-size:clamp(48px, 4.4vw, 72px);
    font-weight:700; letter-spacing:-0.03em;
    line-height:1; margin:0;
    color:var(--ink);
  }
  html[data-layout="quiet"] .about-side .stat .big em{
    font-style:normal; color:var(--mint);
  }
  html[data-layout="quiet"] .about-side .stat .lbl{
    font-family:var(--mono); font-size:11px; letter-spacing:2px;
    color:var(--ink3); text-transform:uppercase;
  }
  html[data-layout="quiet"] .about-side .stat .side-text{
    font-size:14px; line-height:1.6; color:var(--ink2);
    margin-top:4px;
  }

  /* ----- COURSE CARD: full-width hero in quiet layout ----- */
  html[data-layout="quiet"] .feat-grid > .feat.span12{
    grid-column:1 / -1;
    border-right:none;
    padding:56px 0 60px;
    display:grid;
    grid-template-columns:minmax(280px, 340px) 1fr;
    gap:48px 64px;
    align-items:start;
  }
  html[data-layout="quiet"] .feat-grid > .feat.span12 .num{
    grid-column:1; margin-bottom:0;
    align-self:start;
  }
  html[data-layout="quiet"] .feat-grid > .feat.span12 h3{
    grid-column:1; grid-row:2;
    font-size:clamp(34px, 3.4vw, 48px);
    line-height:1.08;
    letter-spacing:-0.028em;
    margin:0 0 20px;
    max-width:14ch;
  }
  html[data-layout="quiet"] .feat-grid > .feat.span12 > p{
    grid-column:1; grid-row:3;
    font-size:15.5px; line-height:1.7;
    color:var(--ink2);
    max-width:36ch;
    margin:0;
  }
  html[data-layout="quiet"] .feat-grid > .feat.span12 .demo{
    grid-column:2; grid-row:1 / span 3;
    margin:0;
    padding:0;
    background:transparent;
    border:none;
    align-self:stretch;
  }

  /* Quiet course-stage: warm card, ink type */
  html[data-layout="quiet"] .course-stage{
    grid-template-columns:260px 1fr;
    gap:36px;
    padding:28px;
    background:#FBF7EC;
    border:1px solid var(--line);
    border-radius:2px;
  }
  html[data-layout="quiet"] .course-levels{ gap:4px }
  html[data-layout="quiet"] .course-levels .lvl{
    background:transparent;
    border:1px solid transparent;
    padding:9px 12px;
    border-radius:2px;
  }
  html[data-layout="quiet"] .course-levels .lvl.done{
    opacity:0.55;
    background:transparent;
  }
  html[data-layout="quiet"] .course-levels .lvl.active{
    background:rgba(20,184,138,0.08);
    border-color:rgba(20,184,138,0.28);
  }
  html[data-layout="quiet"] .course-levels .lvl .badge{
    width:28px; height:28px;
    background:rgba(20,24,28,0.06);
    color:var(--ink);
    font-size:10.5px;
    border-radius:2px;
    box-shadow:none;
  }
  html[data-layout="quiet"] .course-levels .lvl.done .badge{
    background:rgba(20,184,138,0.14); color:var(--mint);
  }
  html[data-layout="quiet"] .course-levels .lvl.active .badge{
    background:var(--mint); color:#06201A;
    box-shadow:none;
  }
  html[data-layout="quiet"] .course-levels .lvl .nm{
    color:var(--ink); font-size:13.5px;
  }
  html[data-layout="quiet"] .course-levels .lvl .nm small{
    color:var(--ink3);
  }
  html[data-layout="quiet"] .course-levels .lvl .check{
    color:var(--mint); font-family:var(--mono); font-size:12px;
  }

  html[data-layout="quiet"] .course-units .unit-head{
    border-bottom:1px solid var(--line);
    padding-bottom:14px;
  }
  html[data-layout="quiet"] .course-units .unit-head .ttl{
    color:var(--ink); font-size:14px;
  }
  html[data-layout="quiet"] .course-units .unit-head .progress{
    color:var(--ink3);
  }
  html[data-layout="quiet"] .course-units .unit-head .progress .bar{
    background:rgba(20,24,28,0.08);
  }
  html[data-layout="quiet"] .unit-list{ gap:4px }
  html[data-layout="quiet"] .unit-list .u{
    background:transparent;
    border:1px solid transparent;
    padding:8px 10px;
    border-radius:2px;
  }
  html[data-layout="quiet"] .unit-list .u.done{ opacity:0.55 }
  html[data-layout="quiet"] .unit-list .u.now{
    background:rgba(20,184,138,0.08);
    border-color:rgba(20,184,138,0.28);
  }
  html[data-layout="quiet"] .unit-list .u.lock{
    opacity:0.5;
  }
  html[data-layout="quiet"] .unit-list .u .ic{
    background:rgba(20,24,28,0.06); color:var(--ink2);
    border-radius:2px;
  }
  html[data-layout="quiet"] .unit-list .u.done .ic{
    background:rgba(20,184,138,0.14); color:var(--mint);
  }
  html[data-layout="quiet"] .unit-list .u.now .ic{
    background:var(--mint); color:#06201A;
  }
  html[data-layout="quiet"] .unit-list .u.lock .ic{
    background:transparent; color:var(--ink3);
  }
  html[data-layout="quiet"] .unit-list .u .nm{ color:var(--ink); font-size:13px }
  html[data-layout="quiet"] .unit-list .u.lock .nm{ color:var(--ink3) }
  html[data-layout="quiet"] .unit-list .u .nm small{ color:var(--ink3) }
  html[data-layout="quiet"] .unit-list .u .tag{
    color:var(--ink3);
    background:transparent;
    border:1px solid var(--line);
    padding:2px 6px;
  }
  html[data-layout="quiet"] .unit-list .u.done .tag{
    color:var(--mint); background:rgba(20,184,138,0.1);
    border-color:transparent;
  }
  html[data-layout="quiet"] .unit-list .u.now .tag{
    color:#06201A; background:var(--mint); border-color:transparent;
  }
  html[data-layout="quiet"] .course-meta{
    margin-top:auto;
    padding-top:24px;
    border-top:1px solid var(--line);
  }
  html[data-layout="quiet"] .course-meta .m{
    border-right-color:var(--line);
  }
  html[data-layout="quiet"] .course-meta .m .v{
    color:var(--ink); font-size:22px;
  }
  html[data-layout="quiet"] .course-meta .m .k{
    color:var(--ink3);
  }

  @media (max-width:980px){
    html[data-layout="quiet"] .feat-grid > .feat.span12{
      grid-template-columns:1fr; gap:32px;
      padding:48px 0 56px;
    }
    html[data-layout="quiet"] .feat-grid > .feat.span12 .demo{
      grid-column:1; grid-row:auto;
    }
    html[data-layout="quiet"] .course-stage{
      grid-template-columns:1fr; gap:32px; padding:24px;
    }
    html[data-layout="quiet"] .unit-list{ grid-template-columns:1fr }
  }

  /* ----- CTA STRIP: centered minimal ----- */
  html[data-layout="quiet"] .cta-strip{
    background:transparent;
    border:none; border-top:1px solid var(--lineStrong);
    border-radius:0;
    padding:120px 0 80px;
    text-align:center;
    box-shadow:none;
  }
  html[data-layout="quiet"] .cta-strip h3{
    font-size:clamp(36px, 4.4vw, 64px);
    font-weight:700;
    letter-spacing:-0.03em;
    margin:0 0 16px;
  }
  html[data-layout="quiet"] .cta-strip p{
    font-size:16px; color:var(--ink2);
    margin:0 0 36px;
  }

  /* ===================== SCATTERED PAGE-CARD STACK (hero) ===================== */
  .page-stack{
    position:relative;
    width:100%;
    height:560px;
    padding-top:56px;
    display:flex; align-items:center; justify-content:center;
  }
  .pg-card{
    --w: 220px;
    position:absolute;
    width:var(--w);
    border-radius:34px;
    overflow:hidden;
    background:#fff;
    padding:6px;
    border:1.5px solid var(--ink);
    box-shadow:
      0 30px 60px -28px rgba(14,18,32,0.45),
      0 8px 18px -10px rgba(14,18,32,0.18);
    transition:transform .45s cubic-bezier(.2,.7,.2,1.1), box-shadow .3s, z-index 0s;
    cursor:pointer;
    color:var(--ink);
    will-change:transform;
  }
  .pg-card img{
    width:100%; display:block;
    border-radius:28px;
    aspect-ratio: 9/19.5;
    object-fit:cover;
    object-position:top center;
  }
  /* casual scatter — tighter cluster, varied rotation. card 1 (学习) is on top */
  .pg-2{ z-index:2; transform:translate(-80px,  -6px) rotate(-10deg) }
  .pg-3{ z-index:3; transform:translate( 60px,  22px) rotate(  7deg) }
  .pg-4{ z-index:4; transform:translate(-30px,  40px) rotate( -3deg) }
  .pg-5{ z-index:5; transform:translate( 90px, -28px) rotate( 11deg) }
  .pg-1{ z-index:8; transform:translate(  4px, -16px) rotate( -2deg) scale(1.04) }

  .pg-card:hover{
    transform:translate(0, -50px) rotate(0deg) scale(1.08);
    z-index:20;
    box-shadow:
      0 40px 70px -28px rgba(14,18,32,0.55),
      0 10px 22px -10px rgba(14,18,32,0.25);
  }
  .pg-card.pg-top{
    z-index:15;
  }

  /* responsive tweaks */
  @media (max-width:980px){
    .page-stack{ height:520px }
    .pg-card{ --w:200px }
  }
  @media (max-width:640px){
    .page-stack{ height:480px }
    .pg-card{ --w:170px }
    .pg-2{ transform:translate(-62px,  -6px) rotate(-10deg) }
    .pg-3{ transform:translate( 48px,  20px) rotate(  7deg) }
    .pg-4{ transform:translate(-22px,  36px) rotate( -3deg) }
    .pg-5{ transform:translate( 70px, -22px) rotate( 11deg) }
    .pg-1{ transform:translate(  3px, -14px) rotate( -2deg) scale(1.04) }
  }
