    /* ============================================================
       HANYA WAHYU (涵雅) — YUTORI DESIGN SYSTEM
       Japandi · warm cream · sakura · ink · soft gold
    ============================================================ */
    :root{
      --bg:#FAF7F1; --bg-warm:#F3EBDD; --bg-mist:#F7E9E6;
      --ink:#2E2A26; --ink-soft:#615A4F; --ink-faint:#6E6757;
      --gold:#B8902F; --gold-lt:#D7B25C; --gold-dk:#8E6E22;
      --sakura:#D98A93; --sakura-soft:#F0D2D5; --sakura-deep:#C06B76;
      --paper:#FFFFFF;
      --line:rgba(46,42,38,.14); --line-soft:rgba(46,42,38,.08);
      --shadow-sm:0 2px 12px rgba(46,42,38,.06);
      --shadow-md:0 10px 40px rgba(46,42,38,.10);
      --shadow-lg:0 24px 70px rgba(46,42,38,.14);
      --max:1240px; --narrow:880px;
      --r-sm:6px; --r-md:12px; --r-lg:22px;
      --t:.4s cubic-bezier(.4,0,.2,1);
      --serif:'Cormorant Garamond',Georgia,serif;
      --sans:'Inter','Noto Sans SC',system-ui,sans-serif;
      --zh:'Noto Sans SC','Inter',sans-serif;
      --nav-h:74px;
      --t-hero:clamp(2.8rem,6.5vw,5.6rem);
      --t-h1:clamp(2rem,4.4vw,3.4rem);
      --t-h2:clamp(1.5rem,2.6vw,2.1rem);
    }
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
    body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.75;
      -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
    img{max-width:100%;height:auto;display:block}
    a{color:inherit;text-decoration:none}
    ul,ol{list-style:none}
    button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}
    input,textarea,select{font-family:inherit;font-size:1rem}
    .zh{font-family:var(--zh);font-weight:300}
    ::selection{background:var(--sakura-soft);color:var(--ink)}

    .container{max-width:var(--max);margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);width:100%}
    .narrow{max-width:var(--narrow);margin:0 auto}
    .center{text-align:center}

    /* ---- Section frame ---- */
    .section{padding:clamp(4.5rem,10vw,8.5rem) 0;position:relative}
    .section--warm{background:var(--bg-warm)}
    .section--paper{background:var(--paper)}
    .eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-dk);
      font-weight:600;margin-bottom:1rem;display:block}
    .s-num{font-family:var(--serif);font-style:italic;color:var(--sakura-deep);font-size:1rem;letter-spacing:.1em;display:block;margin-bottom:.4rem}
    .s-head{font-family:var(--serif);font-weight:600;font-size:var(--t-h1);line-height:1.1;letter-spacing:.005em;color:var(--ink)}
    .s-sub{font-family:var(--serif);font-style:italic;font-weight:500;font-size:var(--t-h2);color:var(--gold-dk);margin-top:.5rem}
    .rule{width:64px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin:1.5rem 0}
    .rule--c{margin-inline:auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
    .lead{font-size:1.08rem;color:var(--ink-soft);max-width:62ch}
    .lead .zh{display:block;margin-top:.5rem;color:var(--ink-faint);font-size:.96rem}

    /* ---- Buttons ---- */
    .btn{display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.9rem;border-radius:var(--r-sm);
      font-weight:600;font-size:.92rem;letter-spacing:.02em;transition:var(--t);will-change:transform}
    .btn-primary{background:var(--ink);color:var(--bg)}
    .btn-primary:hover{background:var(--gold-dk);transform:translateY(-2px);box-shadow:var(--shadow-md)}
    .btn-ghost{border:1px solid var(--line);color:var(--ink);background:rgba(255,255,255,.4)}
    .btn-ghost:hover{border-color:var(--gold);color:var(--gold-dk);transform:translateY(-2px)}

    /* ============================================================ NAV */
    .nav-overlay{position:fixed;inset:0;background:rgba(46,42,38,.45);opacity:0;visibility:hidden;
      transition:var(--t);z-index:90;backdrop-filter:blur(2px)}
    .nav-overlay.visible{opacity:1;visibility:visible}
    #site-nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:100;transition:var(--t);
      background:transparent}
    #site-nav.scrolled{background:rgba(250,247,241,.88);backdrop-filter:saturate(140%) blur(14px);
      box-shadow:0 1px 0 var(--line-soft);border-bottom:1px solid var(--line-soft)}
    .nav-inner{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between}
    .nav-logo{display:flex;align-items:center;gap:.6rem}
    .nav-mark{width:30px;height:30px;flex:0 0 auto}
    .nav-name{font-family:var(--serif);font-weight:600;font-size:1.32rem;letter-spacing:.06em;line-height:1}
    .nav-name b{color:var(--gold-dk);font-weight:600}
    .nav-name .zh{font-size:.8rem;letter-spacing:.3em;color:var(--ink-soft);margin-left:.1rem}
    .nav-right{display:flex;align-items:center;gap:1.3rem}
    .nav-links{display:flex;align-items:center;gap:.35rem}
    .nav-link{position:relative;padding:.5rem .8rem;font-size:.82rem;font-weight:500;letter-spacing:.02em;
      color:var(--ink-soft);transition:var(--t);display:flex;flex-direction:column;align-items:center;line-height:1.3}
    .nav-link .zh{font-size:.62rem;letter-spacing:.12em;color:var(--ink-faint)}
    .nav-link:hover,.nav-link.active{color:var(--gold-dk)}
    .nav-link.active::after{content:"";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);
      width:18px;height:2px;background:var(--gold);border-radius:2px}
    .nav-cta{background:var(--ink);color:var(--bg)!important;border-radius:var(--r-sm);padding:.62rem 1.1rem}
    .nav-cta .zh{color:rgba(250,247,241,.7)}
    .nav-cta:hover{background:var(--gold-dk)}
    .hamburger{display:none;flex-direction:column;gap:5px;width:42px;height:42px;align-items:center;justify-content:center}
    .hamburger span{width:22px;height:2px;background:var(--ink);border-radius:2px;transition:var(--t)}
    .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .hamburger.open span:nth-child(2){opacity:0}
    .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

    /* ============================================================ HERO */
    .hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
    .hero-bg{position:absolute;inset:0;z-index:0}
    .hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
    .hero-bg::after{content:"";position:absolute;inset:0;
      background:linear-gradient(180deg,rgba(46,42,38,.28) 0%,rgba(46,42,38,.10) 35%,rgba(46,42,38,.34) 100%)}
    .hero-content{position:relative;z-index:2;width:100%;padding-top:var(--nav-h)}
    .hero-inner{max-width:760px;color:#fff;opacity:0;transform:translateY(24px);transition:1s cubic-bezier(.2,.7,.2,1)}
    .hero.loaded .hero-inner{opacity:1;transform:none}
    .hero-eyebrow{font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600;
      color:var(--gold-lt);margin-bottom:1.4rem}
    .hero h1{font-family:var(--serif);font-weight:600;font-size:var(--t-hero);line-height:1.02;letter-spacing:.04em;
      text-shadow:0 2px 30px rgba(0,0,0,.3)}
    .hero h1 .zh{display:block;font-size:.36em;letter-spacing:.5em;font-weight:300;margin-top:.4rem;color:var(--gold-lt)}
    .hero-rule{width:80px;height:2px;background:var(--gold-lt);margin:1.6rem 0;border-radius:2px}
    .hero-sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.9rem);color:#fff;font-weight:500}
    .hero-body{font-size:1.05rem;color:rgba(255,255,255,.9);max-width:55ch;margin-top:1rem}
    .hero-zh{margin-top:.6rem;color:rgba(255,255,255,.78);font-size:.96rem}
    .hero-actions{display:flex;gap:1rem;margin-top:2.2rem;flex-wrap:wrap}
    .hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.08)}
    .hero .btn-ghost:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.16)}
    .scroll-ind{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;width:26px;height:42px;
      border:2px solid rgba(255,255,255,.5);border-radius:14px}
    .scroll-ind::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:4px;height:8px;
      background:#fff;border-radius:2px;animation:scrolld 1.8s infinite}
    @keyframes scrolld{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,14px)}}

    /* ============================================================ ABOUT / YUTORI */
    .split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
    .split--rev .split-media{order:2}
    figure{margin:0}
    .figcard{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);background:var(--paper)}
    .figcard img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
    .figcard:hover img{transform:scale(1.035)}
    figcaption{font-size:.8rem;color:var(--ink-faint);padding:.7rem 1rem;background:var(--paper);
      border-top:1px solid var(--line-soft);line-height:1.5}
    .yutori-word{font-family:var(--serif);font-style:italic;color:var(--sakura-deep)}
    .about-p{color:var(--ink-soft);font-size:1.05rem;margin-top:1.2rem}
    .about-p .zh{display:block;color:var(--ink-faint);font-size:.95rem;margin-top:.45rem}
    .stat-row{display:flex;gap:2.4rem;margin-top:2.2rem;flex-wrap:wrap}
    .stat b{font-family:var(--serif);font-size:2.2rem;color:var(--gold-dk);font-weight:600;display:block;line-height:1}
    .stat span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}

    /* ---- brand divider band ---- */
    .brandband{position:relative;background:var(--bg-mist);overflow:hidden}
    .brandband-inner{max-width:760px;margin:0 auto;text-align:center;padding:clamp(3.5rem,8vw,6rem) 1.5rem}
    .brandband .mark{width:64px;margin:0 auto 1.4rem}
    .brandband h2{font-family:var(--serif);font-size:clamp(1.8rem,4vw,3rem);font-weight:500;font-style:italic;color:var(--ink);line-height:1.2}
    .brandband p{color:var(--ink-soft);margin-top:1rem}

    /* ============================================================ HIGHLIGHTS */
    .hl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;margin-top:3rem}
    .hl-card{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:1.6rem 1.4rem;
      transition:var(--t)}
    .hl-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--sakura-soft)}
    .hl-ico{width:44px;height:44px;border-radius:50%;background:var(--bg-mist);display:flex;align-items:center;justify-content:center;
      color:var(--gold-dk);margin-bottom:1rem}
    .hl-ico svg{width:24px;height:24px}
    .hl-card h3{font-size:.98rem;font-weight:600;letter-spacing:.01em;line-height:1.35}
    .hl-card .zh{display:block;font-size:.82rem;color:var(--ink-faint);margin-top:.3rem}
    .hl-figure{margin-top:3rem}

    /* ============================================================ LOCATION */
    .loc-map{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--line);aspect-ratio:16/10}
    .loc-map iframe{width:100%;height:100%;border:0;display:block}
    .conn-list{margin-top:1.4rem}
    .conn-list li{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line-soft);align-items:flex-start}
    .conn-list li:last-child{border-bottom:none}
    .conn-badge{flex:0 0 auto;font-family:var(--serif);font-style:italic;font-weight:600;color:var(--sakura-deep);min-width:64px;font-size:1.05rem}
    .conn-list h3{font-size:.98rem;font-weight:600}
    .conn-list p{font-size:.9rem;color:var(--ink-soft)}
    .conn-list .zh{color:var(--ink-faint)}

    /* ============================================================ LAYOUTS */
    .tabs{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:2.4rem 0}
    .tab-btn{padding:.7rem 1.5rem;border:1px solid var(--line);border-radius:40px;font-weight:600;font-size:.9rem;
      color:var(--ink-soft);transition:var(--t);background:var(--paper)}
    .tab-btn .zh{font-size:.72rem;color:var(--ink-faint);margin-left:.35rem}
    .tab-btn:hover{border-color:var(--gold)}
    .tab-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
    .tab-btn.active .zh{color:rgba(250,247,241,.7)}
    .tab-panel{display:none;animation:fade .5s ease}
    .tab-panel.active{display:block}
    @keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1}}
    .unit{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
    .unit-media{position:relative;cursor:zoom-in;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);
      background:var(--paper);border:1px solid var(--line-soft)}
    .unit-media img{width:100%}
    .unit-media::after{content:"⤢ Enlarge / 点击放大";position:absolute;right:12px;bottom:12px;font-size:.72rem;
      background:rgba(46,42,38,.78);color:#fff;padding:.3rem .7rem;border-radius:40px;opacity:0;transition:var(--t)}
    .unit-media:hover::after{opacity:1}
    .unit-type{font-family:var(--serif);font-size:3.4rem;font-weight:600;color:var(--gold-dk);line-height:1}
    .unit-size{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--ink)}
    .unit-specs{display:flex;gap:1.6rem;margin:1.2rem 0;flex-wrap:wrap}
    .unit-specs div b{display:block;font-size:1.5rem;font-family:var(--serif);color:var(--ink)}
    .unit-specs div span{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}
    .unit-ideal{color:var(--ink-soft);font-size:1rem;border-left:2px solid var(--sakura);padding-left:1rem;margin-top:.4rem}
    .unit-ideal .zh{display:block;color:var(--ink-faint);font-size:.9rem;margin-top:.35rem}
    .unit-dim{font-size:.8rem;color:var(--ink-faint);margin-top:1rem;letter-spacing:.03em}

    /* ============================================================ FAQ */
    .faq-list{max-width:var(--narrow);margin:2.6rem auto 0}
    .faq-item{border-bottom:1px solid var(--line)}
    .faq-q{width:100%;display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;
      padding:1.4rem 0;text-align:left;font-weight:600;font-size:1.05rem;color:var(--ink)}
    .faq-q .zh{display:block;font-size:.85rem;color:var(--ink-faint);font-weight:400;margin-top:.25rem}
    .faq-ico{flex:0 0 auto;width:24px;height:24px;position:relative;margin-top:4px}
    .faq-ico::before,.faq-ico::after{content:"";position:absolute;background:var(--gold-dk);transition:var(--t);border-radius:2px}
    .faq-ico::before{top:11px;left:2px;width:20px;height:2px}
    .faq-ico::after{top:2px;left:11px;width:2px;height:20px}
    .faq-item.open .faq-ico::after{transform:rotate(90deg);opacity:0}
    .faq-a{max-height:0;overflow:hidden;transition:max-height .45s ease}
    .faq-a-inner{padding:0 0 1.4rem;color:var(--ink-soft);font-size:1rem}
    .faq-a-inner .zh{display:block;color:var(--ink-faint);font-size:.92rem;margin-top:.5rem}

    /* ============================================================ REGISTER */
    .reg-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,4rem);align-items:start}
    .reg-trust{display:flex;flex-direction:column;gap:.6rem;margin-top:1.6rem}
    .reg-trust span{font-size:.9rem;color:var(--ink-soft)}
    .form-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.6rem);box-shadow:var(--shadow-md)}
    .fg{margin-bottom:1.15rem}
    .form-label{display:block;font-size:.82rem;font-weight:600;letter-spacing:.02em;margin-bottom:.5rem;color:var(--ink)}
    .req{color:var(--sakura-deep)}
    .opt{color:var(--ink-faint);font-weight:400}
    .form-input{width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);
      color:var(--ink);transition:var(--t)}
    .form-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--sakura-soft);background:#fff}
    .form-input.error{border-color:var(--sakura-deep);box-shadow:0 0 0 3px var(--sakura-soft)}
    textarea.form-input{resize:vertical;min-height:96px}
    .form-error{display:none;color:var(--sakura-deep);font-size:.78rem;margin-top:.35rem}
    .form-error.visible{display:block}
    .form-privacy{font-size:.74rem;color:var(--ink-faint);line-height:1.55;margin:.4rem 0 1rem}
    .form-captcha{display:flex;align-items:center;gap:.8rem;background:var(--bg-mist);padding:.7rem 1rem;border-radius:var(--r-sm);margin-bottom:1.2rem}
    .form-captcha-q{font-weight:600;font-size:.95rem;white-space:nowrap}
    .form-captcha input{width:110px;padding:.55rem .7rem;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
    .form-submit{width:100%;justify-content:center;font-size:1rem;padding:1.05rem}
    .is-hidden{display:none!important}
    .form-msg{padding:1rem 1.1rem;border-radius:var(--r-sm);font-size:.92rem;margin-top:1rem;line-height:1.6}
    .form-msg--ok{background:#EAF4EC;color:#2C6E49;border:1px solid #BcdCC4}
    .form-msg--err{background:var(--sakura-soft);color:var(--sakura-deep);border:1px solid var(--sakura)}

    /* ============================================================ FOOTER */
    footer{background:var(--ink);color:rgba(250,247,241,.78)}
    .foot-top{padding:clamp(3rem,6vw,4.5rem) 0 2.5rem;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2.5rem}
    .foot-name{font-family:var(--serif);font-size:1.5rem;color:var(--bg);letter-spacing:.06em}
    .foot-name .zh{font-size:.85rem;letter-spacing:.3em;color:var(--gold-lt);margin-left:.3rem}
    .foot-tag{font-style:italic;font-family:var(--serif);color:var(--gold-lt);margin:.4rem 0 1rem}
    .foot-desc{font-size:.9rem;max-width:38ch}
    .foot-addr{font-style:normal;font-size:.86rem;margin-top:1rem;color:rgba(250,247,241,.6);line-height:1.7}
    .foot-h{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:1rem}
    .foot-links li{margin-bottom:.6rem}
    .foot-links a{font-size:.9rem;color:rgba(250,247,241,.72);transition:var(--t)}
    .foot-links a:hover{color:var(--gold-lt)}
    .disclaimer-band{border-top:1px solid rgba(250,247,241,.12);background:rgba(0,0,0,.18)}
    .disclaimer-box{padding:2rem 0}
    .disclaimer-h{font-size:.74rem;letter-spacing:.18em;color:var(--gold-lt);margin-bottom:.8rem}
    .disclaimer-t{font-size:.78rem;color:rgba(250,247,241,.74);line-height:1.7;max-width:none}
    .disclaimer-t strong{color:rgba(250,247,241,.85)}
    .disclaimer-t+.disclaimer-t{margin-top:.8rem}
    .foot-bottom{border-top:1px solid rgba(250,247,241,.12);padding:1.4rem 0;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
    .foot-bottom p{font-size:.76rem;color:rgba(250,247,241,.72)}

    /* ---- back to top ---- */
    #back-to-top{position:fixed;right:20px;bottom:22px;z-index:80;width:44px;height:44px;border-radius:50%;
      background:var(--ink);color:var(--bg);font-size:1.2rem;opacity:0;visibility:hidden;transition:var(--t);box-shadow:var(--shadow-md)}
    #back-to-top.visible{opacity:1;visibility:visible}

    /* ---- lightbox ---- */
    .lb{position:fixed;inset:0;z-index:200;background:rgba(46,42,38,.92);display:flex;align-items:center;justify-content:center;
      padding:2rem;opacity:0;visibility:hidden;transition:var(--t)}
    .lb.open{opacity:1;visibility:visible}
    .lb img{max-width:96%;max-height:92vh;border-radius:var(--r-md);box-shadow:var(--shadow-lg)}
    .lb-close{position:absolute;top:18px;right:24px;font-size:2rem;color:#fff;line-height:1}

    /* ---- fade-in ---- */
    .fade-in{opacity:0;transform:translateY(30px);transition:.9s cubic-bezier(.2,.7,.2,1)}
    .fade-in.visible{opacity:1;transform:none}

    /* ============================================================ RESPONSIVE */
    @media(max-width:1180px){
      .nav-links{position:fixed;top:0;right:0;height:100dvh;width:min(320px,82vw);background:var(--bg);
        flex-direction:column;justify-content:center;gap:.4rem;padding:2rem;transform:translateX(100%);
        transition:var(--t);box-shadow:var(--shadow-lg);z-index:95}
      .nav-links.nav-open{transform:none}
      .nav-link{flex-direction:row;gap:.5rem;font-size:1rem;padding:.8rem}
      .nav-link .zh{font-size:.8rem}
      .hamburger{display:flex;z-index:96}
      .split,.unit,.reg-grid{grid-template-columns:1fr;gap:2rem}
      .split--rev .split-media{order:0}
      .foot-top{grid-template-columns:1fr;gap:2rem}
      .foot-bottom{flex-direction:column}
    }
    @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}
      .fade-in,.hero-inner{opacity:1!important;transform:none!important}}

    /* ============================================================
       V2 REFINEMENTS — readability, mobile robustness, 360
    ============================================================ */
    .hero{min-height:100vh;min-height:100svh}
    .hero-bg{background:linear-gradient(160deg,#c6d2dc 0%,#eef1ee 58%,#f3ece0 100%)}
    .hero-bg img{font-size:0;color:transparent}
    .nav-link .zh{font-size:.72rem}
    .eyebrow{font-size:.8rem}
    .hero-eyebrow{font-size:.82rem}
    .tab-btn .zh{font-size:.8rem}
    figcaption{font-size:.9rem;line-height:1.6}
    .hl-card h3{font-size:1.02rem}
    .hl-card .zh{font-size:.9rem}
    .conn-list h3{font-size:1.02rem}
    .conn-list p,.conn-list .zh{font-size:.96rem}
    .unit-dim{font-size:.9rem}
    .faq-q{font-size:1.1rem}
    .faq-q .zh{font-size:.9rem}
    .faq-a-inner{font-size:1.04rem}
    .faq-a-inner .zh{font-size:.96rem}
    .form-label{font-size:.88rem}
    .form-privacy{font-size:.82rem}
    .reg-trust span{font-size:.95rem}
    .disclaimer-t{font-size:.86rem;line-height:1.75}
    .foot-desc{font-size:.94rem}
    .foot-addr{font-size:.9rem}
    .foot-links a{font-size:.95rem}
    .foot-bottom p{font-size:.84rem}
    /* 360 / VR section */
    .vr-wrap{margin-top:2.6rem;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--line);height:clamp(360px,52vw,620px);background:var(--bg-warm)}
    .vr-wrap iframe{width:100%;height:100%;border:0;display:block}
    .vr-note{text-align:center;font-size:.85rem;color:var(--ink-faint);margin-top:1rem}
    /* Mobile readability + layout hardening */
    @media(max-width:600px){
      html{font-size:16.5px}
      .hero h1{font-size:clamp(2.4rem,10.5vw,3.3rem);letter-spacing:.02em}
      .hero h1 .zh{letter-spacing:.35em}
      .hero-body,.lead{font-size:1.02rem}
      .s-head{font-size:clamp(1.7rem,7vw,2.2rem)}
      .vr-wrap{height:440px}
      .unit-type{font-size:2.8rem}
      .stat-row{gap:1.4rem}
    }

    /* ============================================================
       V3 — overflow fix, hero contrast, nav fit, new sections
    ============================================================ */
    html{overflow-x:hidden}
    body{overflow-x:clip;max-width:100%}
    /* Nav: fit more items without overflow (the cream-edge bug) */
    .nav-links{gap:.12rem}
    .nav-link{padding:.5rem .62rem}
    /* Hero legibility (stronger scrim + text shadow) */
    .hero-bg::after{background:linear-gradient(180deg,rgba(40,36,32,.46) 0%,rgba(40,36,32,.22) 38%,rgba(40,36,32,.52) 100%)}
    .hero h1{text-shadow:0 2px 30px rgba(0,0,0,.5)}
    .hero-sub,.hero-body,.hero-eyebrow,.hero-zh{text-shadow:0 1px 16px rgba(0,0,0,.55)}
    /* Lifestyle band */
    .lifestyle{background:var(--bg-warm);padding:clamp(3rem,7vw,5.5rem) 0}
    .lifestyle-fig{position:relative;max-width:980px;margin:0 auto;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
    .lifestyle-fig img{width:100%;height:auto;display:block}
    .lifestyle-cap{position:absolute;inset:auto 0 0 0;padding:clamp(1.5rem,4vw,3rem);background:linear-gradient(180deg,transparent,rgba(40,36,32,.72));pointer-events:none}
    .lifestyle-cap h3{font-family:var(--serif);font-style:italic;font-weight:500;color:#fff;font-size:clamp(1.5rem,3.2vw,2.4rem)}
    .lifestyle-cap p{color:rgba(255,255,255,.92);max-width:62ch;margin-top:.6rem;font-size:.98rem}
    .lifestyle-cap .zh{display:block;color:rgba(255,255,255,.8);margin-top:.35rem;font-size:.9rem}
    /* Journal */
    .journal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.6rem;margin-top:3rem}
    .post{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:var(--t)}
    .post:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
    .post-img{aspect-ratio:16/10;overflow:hidden}
    .post-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
    .post:hover .post-img img{transform:scale(1.05)}
    .post-body{padding:1.5rem 1.5rem 1.7rem;display:flex;flex-direction:column;gap:.55rem}
    .post-meta{display:flex;gap:.7rem;align-items:center;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
    .post-meta .post-tag{color:var(--sakura-deep);font-weight:600}
    .post-meta time{color:var(--ink-faint)}
    .post h3{font-family:var(--serif);font-size:1.3rem;line-height:1.25;color:var(--ink)}
    .post-excerpt{font-size:.95rem;color:var(--ink-soft)}
    .post-excerpt .zh,.post-excerpt .ms{display:block;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--line-soft)}
    .post-excerpt .ms{font-style:italic;color:var(--ink-faint)}
    /* About developer */
    .dev-intro{max-width:760px;margin:0 auto 2.6rem;text-align:center;color:var(--ink-soft)}
    .dev-intro .zh{display:block;margin-top:.6rem;color:var(--ink-faint);font-size:.95rem}
    .dev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem}
    .dev-card{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--r-md);overflow:hidden;transition:var(--t)}
    .dev-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
    .dev-card-img{aspect-ratio:1/1;overflow:hidden}
    .dev-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
    .dev-card:hover .dev-card-img img{transform:scale(1.05)}
    .dev-card-body{padding:1.05rem 1.15rem 1.35rem}
    .dev-card-body h3{font-size:1.05rem;font-family:var(--serif);color:var(--ink)}
    .dev-card-body .loc{font-size:.78rem;color:var(--gold-dk);letter-spacing:.04em;margin:.25rem 0 .5rem;text-transform:uppercase}
    .dev-card-body p{font-size:.85rem;color:var(--ink-soft)}
    .dev-note{text-align:center;font-size:.78rem;color:var(--ink-faint);margin-top:1.8rem;max-width:70ch;margin-inline:auto}
    /* Floating Register button (replaces WhatsApp) */
    .reg-float{position:fixed;right:20px;bottom:22px;z-index:80;display:inline-flex;align-items:center;gap:.6rem;
      background:var(--ink);color:var(--bg);padding:.8rem 1.25rem;border-radius:40px;box-shadow:var(--shadow-lg);
      transition:var(--t);text-decoration:none;animation:rfpop .5s ease both}
    @keyframes rfpop{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
    .reg-float:hover{background:var(--gold-dk);transform:translateY(-2px)}
    .reg-float .rf-mark{width:18px;height:18px;flex:0 0 auto;fill:var(--gold-lt)}
    .reg-float:hover .rf-mark{fill:#fff}
    .reg-float .rf-text{display:flex;flex-direction:column;line-height:1.18}
    .reg-float .rf-en{font-size:.86rem;font-weight:600;white-space:nowrap}
    .reg-float .rf-zh{font-size:.68rem;opacity:.82;font-family:var(--zh)}
    #back-to-top{bottom:86px}
    @media(max-width:600px){
      .reg-float{left:12px;right:12px;bottom:12px;justify-content:center;border-radius:14px;padding:.95rem}
      #back-to-top{bottom:76px;right:14px;left:auto}
      .hero-bg::after{background:linear-gradient(180deg,rgba(38,34,30,.26) 0%,rgba(38,34,30,.12) 42%,rgba(38,34,30,.46) 100%)}
      .hero h1,.hero-sub,.hero-body,.hero-zh,.hero-eyebrow{text-shadow:0 2px 22px rgba(0,0,0,.78),0 1px 3px rgba(0,0,0,.6)}
    }

    /* ============================================================
       V4 — clickable images (lightbox), expandable news, project groups
    ============================================================ */
    button.post-img,button.dev-card-img,.figcard-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
    .figcard-btn img{transition:transform .7s ease}
    .figcard-btn:hover img{transform:scale(1.035)}
    .lifestyle-fig{cursor:default}
    .post-more{margin-top:.4rem}
    .post-more summary{cursor:pointer;font-size:.82rem;font-weight:600;color:var(--gold-dk);letter-spacing:.03em;list-style:none;display:inline-flex;align-items:center;gap:.35rem;padding:.2rem 0}
    .post-more summary::-webkit-details-marker{display:none}
    .post-more summary::after{content:"＋";font-size:.95em;font-weight:400}
    .post-more[open] summary::after{content:"－"}
    .post-full{margin-top:.8rem;font-size:.92rem;color:var(--ink-soft);display:flex;flex-direction:column;gap:.75rem;line-height:1.7}
    .post-full .zh{color:var(--ink-soft)}
    .post-full .ms{color:var(--ink-faint);font-style:italic}
    /* Developer project groups */
    .dev-group{margin-top:2.8rem}
    .dev-group-h{display:flex;align-items:center;gap:.9rem;margin-bottom:1.4rem}
    .dev-group-h span{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dk);font-weight:600;white-space:nowrap}
    .dev-group-h span b{color:var(--ink-faint);font-weight:400}
    .dev-group-h::after{content:"";flex:1;height:1px;background:var(--line)}
    .dev-card--text .dev-card-img{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-warm),var(--sakura-soft));cursor:default}
    .dev-card--text .dev-card-img span{font-family:var(--serif);font-size:1.5rem;font-style:italic;color:var(--gold-dk);padding:1rem;text-align:center}
    .dev-card--here{box-shadow:0 0 0 2px var(--gold)}
    .dev-here-badge{display:inline-block;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;background:var(--gold);color:#fff;padding:.16rem .55rem;border-radius:20px;margin-left:.45rem;vertical-align:middle}
