  :root{
    --ink:#1c1a17;
    --ink-soft:#3a352e;
    --paper:#f5f1e8;
    --paper-2:#ece5d6;
    --paper-3:#e2d9c6;
    --seal:#b03a2e;
    --jade:#2f6f5e;
    --jade-soft:#5a9b88;
    --muted:#6b6256;
    --line:rgba(28,26,23,.14);
    --font-serif:"Noto Serif SC","Songti SC","STSong",serif;
    --font-sans:"Noto Sans SC",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
    --font-mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--font-sans);
    color:var(--ink);
    background:var(--paper);
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:var(--font-serif);font-weight:600;letter-spacing:.04em}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
  .reveal.visible{opacity:1;transform:none}

  /* ---------- nav ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:50;
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 24px;
    background:rgba(245,241,232,.82);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .brand{display:flex;align-items:center;gap:10px;font-family:var(--font-serif);font-weight:700;font-size:20px}
  .seal-mark{
    width:30px;height:30px;border-radius:6px;background:var(--seal);
    color:#fff;display:flex;align-items:center;justify-content:center;
    font-size:15px;font-weight:700;
  }
  nav.links{display:flex;gap:26px;font-size:15px;color:var(--ink-soft)}
  nav.links a{position:relative;padding:4px 0}
  nav.links a:hover{color:var(--seal)}
  nav.links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--seal);transition:width .3s}
  nav.links a:hover::after{width:100%}
  .nav-domain{font-family:var(--font-mono,monospace);font-size:13px;color:var(--jade);border:1px solid var(--jade-soft);padding:4px 10px;border-radius:20px}
  .nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;background:none;border:none;cursor:pointer;padding:9px}
  .nav-toggle span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .3s,opacity .3s}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* ---------- hero ---------- */
  .hero{
    position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;
    overflow:hidden;
    background-color:var(--paper);
    background-image:
      linear-gradient(rgba(245,241,232,.62), rgba(245,241,232,.62)),
      url('../images/hero.jpg');
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
  }
  .hero .wrap{position:relative;z-index:2;text-align:center}
  .hero .tag{display:inline-block;font-size:14px;letter-spacing:.3em;color:var(--jade);border:1px solid var(--jade-soft);padding:6px 18px;border-radius:30px;margin-bottom:28px;background:rgba(245,241,232,.55)}
  .hero h1{font-size:clamp(48px,10vw,104px);line-height:1.05;color:var(--ink);text-shadow:0 2px 12px rgba(245,241,232,.7)}
  .hero .sub{font-family:var(--font-serif);font-size:clamp(18px,3.5vw,30px);color:var(--ink-soft);margin-top:18px;letter-spacing:.18em;text-shadow:0 1px 8px rgba(245,241,232,.7)}
  .domain-box{
    margin:38px auto 0;display:inline-flex;align-items:center;gap:14px;
    background:#fff;border:1px solid var(--line);border-radius:14px;
    padding:16px 22px;box-shadow:0 10px 40px rgba(28,26,23,.08);
  }
  .domain-box .dom{font-family:var(--font-mono,monospace);font-size:clamp(20px,4.5vw,34px);font-weight:600;color:var(--ink);letter-spacing:.02em}
  .copy-btn{
    border:none;cursor:pointer;background:var(--jade);color:#fff;
    font-family:var(--font-sans);font-size:13px;padding:8px 14px;border-radius:9px;transition:background .2s;
  }
  .copy-btn:hover{background:var(--ink)}
  .dom-note{font-size:14px;color:var(--ink-soft);margin-top:14px;letter-spacing:.04em}
  .cta-row{margin-top:40px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
  .btn{font-family:var(--font-sans);font-size:16px;padding:14px 32px;border-radius:40px;cursor:pointer;border:1px solid transparent;transition:all .25s}
  .btn-primary{background:var(--seal);color:#fff}
  .btn-primary:hover{background:#8f2c22}
  .btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
  .btn-ghost:hover{background:var(--ink);color:var(--paper)}
  .scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);font-size:13px;color:var(--muted);z-index:2;animation:bob 2s infinite}
  @keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

  /* ---------- generic section ---------- */
  section.block{padding:96px 0}
  section[id]{scroll-margin-top:72px}
  .sec-head{text-align:center;margin-bottom:56px}
  .sec-head .kicker{font-size:14px;letter-spacing:.3em;color:var(--jade)}
  .sec-head h2{font-size:clamp(30px,5vw,44px);margin-top:10px}
  .sec-head .rule{width:60px;height:3px;background:var(--seal);margin:18px auto 0;border-radius:3px}

  /* about */
  #about{background:var(--paper-2);position:relative;overflow:hidden}
  .poem-lead{font-family:var(--font-serif);font-size:clamp(22px,4.2vw,36px);color:var(--ink);letter-spacing:.22em;text-align:center;margin:-4px 0 40px;opacity:.92}
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  .about-grid p{color:var(--ink-soft);font-size:17px;margin-bottom:18px}
  .value-line{font-family:var(--font-serif);font-size:22px;color:var(--ink);border-left:4px solid var(--seal);padding-left:18px;margin-top:10px}
  .ink-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 8px 30px rgba(28,26,23,.06)}
  .ink-card h3{margin-bottom:14px}
  .ink-card p.mini{font-size:15px;color:var(--muted);margin-bottom:8px}
  .ink-card .what-list p.mini::before{content:"· ";color:var(--jade-soft);font-weight:700}
  .what-list{display:flex;flex-direction:column;gap:6px}
  .what-list p.mini{margin:0}
  .site-url{font-family:var(--font-mono);color:var(--jade)}
  .footer-note{margin-top:12px;opacity:.7}
  .modal-title{font-family:var(--font-serif);font-size:18px;margin-bottom:6px}
  .modal-note{margin-bottom:14px}

  /* core modules */
  .mod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .mod{
    background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 18px;text-align:center;
    transition:transform .3s,box-shadow .3s;border-top:4px solid var(--jade);
  }
  .mod:hover{transform:translateY(-6px);box-shadow:0 14px 36px rgba(28,26,23,.1)}
  .mod .ico{width:54px;height:54px;margin:0 auto 16px;border-radius:50%;background:rgba(47,111,94,.1);display:flex;align-items:center;justify-content:center}
  .mod h3{font-size:20px;margin-bottom:8px}
  .mod p{font-size:14px;color:var(--muted)}

  /* value */
  #value{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
  #value .sec-head .kicker{color:var(--jade-soft)}
  #value .sec-head h2{color:var(--paper)}
  #value .sec-head .rule{background:var(--seal)}
  .val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .val{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:30px}
  .val .num{font-family:var(--font-serif);font-size:40px;color:var(--jade-soft)}
  .val h3{font-size:21px;margin:12px 0 10px;color:#fff}
  .val p{font-size:15px;color:rgba(245,241,232,.75)}

  /* contact */
  #contact{background:var(--paper-2)}
  .contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
  .contact-info p{font-size:16px;color:var(--ink-soft);margin-bottom:14px}
  .contact-info .big{font-family:var(--font-serif);font-size:22px;color:var(--ink)}
  .mail-link{color:var(--seal);font-weight:500;border-bottom:1px solid var(--seal)}
  .qr-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;text-align:center;box-shadow:0 8px 30px rgba(28,26,23,.06)}
  .qr-card .qr{width:180px;height:180px;margin:0 auto 14px;background:
     repeating-conic-gradient(var(--ink) 0% 25%, #fff 0% 50%) 0/24px 24px;border-radius:10px}
  .qr-card .qr-note{font-size:14px;color:var(--muted)}
  .qr-img{width:180px;height:180px;margin:0 auto 14px;object-fit:contain;border-radius:10px;background:#fff;padding:8px;box-shadow:0 4px 16px rgba(28,26,23,.10)}

  /* footer */
  footer{background:var(--ink-soft);color:rgba(245,241,232,.8);padding:40px 0;text-align:center;font-size:14px}
  footer .f-brand{font-family:var(--font-serif);font-size:20px;color:var(--paper);margin-bottom:10px}
  footer a{color:var(--jade-soft);margin:0 8px}

  /* modal */
  .modal{position:fixed;inset:0;background:rgba(28,26,23,.6);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
  .modal.open{display:flex}
  .modal .box{background:var(--paper);border-radius:18px;padding:30px;text-align:center;max-width:340px;width:100%}
  .modal .box .qr{width:200px;height:200px;margin:0 auto 16px;background:repeating-conic-gradient(var(--ink) 0% 25%, #fff 0% 50%) 0/24px 24px;border-radius:10px}
  .modal .qr-img{width:200px;height:200px;margin:0 auto 16px;object-fit:contain;border-radius:10px;background:#fff;padding:8px;box-shadow:0 4px 16px rgba(28,26,23,.10)}
  .modal .close{margin-top:10px;background:var(--ink);color:#fff;border:none;padding:10px 24px;border-radius:30px;cursor:pointer;font-family:var(--font-sans)}

  /* paper grain (global, very faint) */
  body::before{
    content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
    opacity:.04;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size:140px 140px;
  }

  /* brush divider between sections */
  .brush-divider{height:30px;max-width:640px;margin:0 auto;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 30' preserveAspectRatio='none'%3E%3Cpath d='M20 18 C160 6 300 26 470 14 C520 11 580 18 620 13' stroke='%231c1a17' stroke-width='3' fill='none' stroke-linecap='round' opacity='0.32'/%3E%3C/svg%3E") center/100% 30px no-repeat;}

  /* about decorations: faint poem + seal */
  #about .wrap{position:relative;z-index:2}
  .about-deco{position:absolute;top:0;right:0;height:100%;width:240px;pointer-events:none}
  .about-deco .poem{writing-mode:vertical-rl;position:absolute;top:48px;right:46px;font-family:'Ma Shan Zheng',var(--font-serif);font-size:30px;letter-spacing:.3em;color:var(--ink);opacity:.14;line-height:1.4}
  .about-deco .seal{position:absolute;bottom:54px;right:70px;width:48px;height:48px;border-radius:7px;background:var(--seal);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:24px;opacity:.9;transform:rotate(-5deg);box-shadow:0 2px 10px rgba(176,58,46,.3)}

  /* value section layering */
  #value .wrap{position:relative;z-index:2}

  /* accessibility: keyboard focus */
  a:focus-visible,button:focus-visible,.btn:focus-visible,.copy-btn:focus-visible,.nav-toggle:focus-visible{
    outline:2px solid var(--jade);outline-offset:3px;
  }

  /* respect reduced motion */
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    .reveal{transition:none}
    .scroll-hint{animation:none}
    .mod{transition:none}
  }

  /* ---------- responsive ---------- */
  @media (max-width:880px){
    .nav-toggle{display:flex}
    nav.links{
      position:absolute;top:100%;right:0;left:0;
      flex-direction:column;gap:0;
      background:rgba(245,241,232,.98);
      -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
      border-bottom:1px solid var(--line);
      padding:6px 0;display:none;
    }
    nav.links.open{display:flex}
    nav.links a{padding:14px 24px;border-bottom:1px solid var(--line)}
    nav.links a:last-child{border-bottom:none}
    .about-deco{display:none}
    .about-grid,.contact-grid{grid-template-columns:1fr;gap:32px}
    .what-card p.mini{margin:0}
    .what-card .what-list{display:grid;grid-template-columns:1fr;gap:8px}
    .mod-grid{grid-template-columns:repeat(2,1fr)}
    .val-grid{grid-template-columns:1fr}
    section.block{padding:64px 0}
    .hero{min-height:88svh}
  }
  @media (max-width:480px){
    .mod-grid{grid-template-columns:repeat(2,1fr);gap:12px}
    .mod{padding:22px 10px}
    .mod .ico{width:44px;height:44px;margin-bottom:12px}
    .mod h3{font-size:17px}
    .mod p{font-size:12.5px}
    .what-card .what-list{font-size:13px}
    .domain-box{flex-direction:column;gap:10px}
    .nav-domain{display:none}
  }
