:root{--bg:#fafafa;--ink:#222126;--muted:#66636a;--accent:#865561;--line:#e7e3e5;--soft:#f3f0f2;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:3px}::selection{background:#e9d6dd;color:#271e23}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}h1,h2{font-weight:400}h3{font-weight:500}strong{font-weight:600}img{max-width:100%;display:block}.wrap{max-width:1240px;margin-inline:auto;padding-inline:56px}.skip{position:fixed;top:12px;left:20px;z-index:100;padding:10px 18px;background:#fff;transform:translateY(-180%)}.skip:focus{transform:none}.site-header{height:92px;background:rgba(250,250,250,.92);border-bottom:1px solid rgba(231,227,229,.7);position:relative;z-index:10}.header-inner{max-width:1240px;margin:auto;padding-inline:56px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:inline-flex;align-items:baseline;gap:16px;white-space:nowrap;font-family:var(--serif);font-size:27px;letter-spacing:.12em}.brand span{font-family:var(--sans);font-size:11px;letter-spacing:.24em;font-weight:400;color:var(--muted)}.site-header nav{display:flex;align-items:center;gap:38px;font-size:14px}.nav-contact{display:flex;align-items:center;gap:18px}.hero{position:relative;min-height:650px;display:flex;align-items:center;overflow:hidden}.hero-copy{z-index:1;position:relative;padding-block:96px 114px;max-width:570px}.eyebrow{font-size:13px;font-weight:500;letter-spacing:.15em;color:var(--accent);line-height:1.8;margin-bottom:24px}.hero h1{font-family:var(--serif);font-size:clamp(38px,4.7vw,61px);line-height:1.48;letter-spacing:.015em}.hero-description{margin-top:28px;font-size:17px;color:var(--muted);line-height:1.95}.button{margin-top:32px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:40px;padding:10px 24px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:5px;font-size:14px;transition:background .2s,transform .2s}.button:hover{background:#4e3942;border-color:#4e3942;color:#fff;transform:translateY(-2px)}h2{font-family:var(--serif);font-size:clamp(28px,3vw,38px);line-height:1.6;letter-spacing:.02em}.privacy-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:104px}.privacy-copy{padding-top:6px}.privacy-copy p{font-size:16px;line-height:2;color:var(--muted)}.privacy-copy p+p{margin-top:20px}.text-link{display:inline-flex;gap:32px;border-bottom:1px solid #cdbfc6;font-size:14px;padding-bottom:7px;margin-top:27px;color:var(--accent)}.contact-section{border-top:1px solid var(--line);padding-block:52px 60px;display:flex;align-items:center;justify-content:space-between;gap:32px}.contact-section .eyebrow{margin-bottom:10px}.contact-section h2{font-size:26px}.contact-email{font-size:16px;display:flex;gap:32px;align-items:center;overflow-wrap:anywhere}.site-footer{max-width:1128px;margin:auto;padding:34px 0 26px;border-top:1px solid var(--line)}.footer-top,.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px}.footer-links{display:flex;gap:30px;font-size:13px;color:var(--muted)}.footer-bottom{font-size:12px;color:#888089;margin-top:25px}.site-footer .brand{font-size:23px}.site-footer .brand span{font-size:10px}.legal-main{padding-top:46px;padding-bottom:85px}.back-link{font-size:13px;color:var(--muted);display:inline-block;margin-bottom:58px}.legal-heading .eyebrow{font-size:12px;margin-bottom:14px}.legal-heading h1{font-family:var(--serif);font-size:49px;line-height:1.5;letter-spacing:.04em}.legal-date{display:flex;gap:26px;flex-wrap:wrap;color:#8a7f87;font-size:12px;margin-top:21px}.legal-summary{font-size:16px;color:var(--muted);max-width:690px;margin-top:22px}.legal-layout{display:grid;grid-template-columns:238px minmax(0,1fr);gap:72px;margin-top:58px;padding-top:42px;border-top:1px solid var(--line)}.legal-aside nav{position:sticky;top:35px}.toc-title{font-size:12px;color:#8b7f87;margin:0 0 18px}.legal-aside a{font-size:13px;line-height:1.65;display:flex;gap:12px;padding:9px 0;color:var(--muted)}.legal-aside a:hover{color:var(--accent)}.legal-aside a span{font-size:11px;flex-shrink:0;padding-top:2px;color:#a2939c}.legal-body section{margin-bottom:43px;scroll-margin-top:40px}.legal-body h2{font-family:var(--sans);font-size:21px;font-weight:500;line-height:1.65;margin-bottom:20px;display:flex;gap:16px;align-items:baseline;letter-spacing:0}.legal-body h2 span{font-size:12px;color:#a4949d;flex-shrink:0}.legal-body p{font-size:16px;color:#5f5962;line-height:2;margin-top:15px;overflow-wrap:anywhere}.legal-body h3{font-size:16px;margin-top:23px}.legal-body a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.provider{padding:0 0 17px;border-bottom:1px solid var(--line)}.provider>a{font-size:13px;display:inline-block;margin-top:10px}.permission-list{margin:0}.permission-list>div{padding:15px 0;border-bottom:1px solid var(--line)}.permission-list dt{font-size:16px;font-weight:500}.permission-list dd{font-size:16px;line-height:2;color:#5f5962;margin:7px 0 0}.legal-end{padding:25px 28px;background:#f1edf0;border-radius:5px}.legal-end p{margin:0 0 10px}.legal-end a{font-size:14px;overflow-wrap:anywhere}.not-found{padding-block:130px;min-height:65vh}.not-found h1{font-family:var(--serif);font-size:42px}.not-found>p:not(.eyebrow){margin-top:15px;color:var(--muted)}@media(min-width:1500px){.hero{min-height:690px}}@media(max-width:1000px){.wrap,.header-inner{padding-inline:32px}.hero{min-height:610px}.hero-copy{max-width:470px}.hero h1{font-size:47px}.privacy-section{gap:40px}.site-footer{margin-inline:32px}.legal-layout{grid-template-columns:200px minmax(0,1fr);gap:38px}.contact-email{font-size:14px;gap:16px}}@media(max-width:700px){html{scroll-padding-top:25px}.wrap,.header-inner{padding-inline:24px}.site-header{height:76px}.brand{font-size:25px;gap:10px}.brand span{font-size:10px}.site-header nav{gap:22px;font-size:13px}.site-header .nav-contact{display:none}.hero{min-height:790px;align-items:flex-start}.hero-copy{padding-top:56px;padding-bottom:0;max-width:100%}.hero h1{font-size:42px;line-height:1.5}.hero .eyebrow{font-size:12px;letter-spacing:.1em;margin-bottom:18px}.hero-description{font-size:16px;margin-top:20px}.button{margin-top:25px}h2{font-size:28px}.privacy-section{grid-template-columns:1fr;gap:34px}.privacy-section{padding-block:62px;gap:23px}.privacy-section .eyebrow{margin-bottom:16px}.privacy-copy p{font-size:16px}.contact-section{padding-block:35px 43px;display:block}.contact-section h2{font-size:24px}.contact-email{margin-top:23px;font-size:14px;justify-content:space-between;gap:12px}.site-footer{margin-inline:24px;padding-top:28px}.footer-top{align-items:flex-start;flex-direction:column;gap:23px}.footer-links{gap:28px;font-size:12px}.footer-bottom{font-size:11px;gap:10px}.legal-main{padding-top:29px;padding-bottom:55px}.back-link{margin-bottom:33px}.legal-heading h1{font-size:38px}.legal-summary{font-size:16px}.legal-date{gap:5px 18px;font-size:12px}.legal-layout{display:block;margin-top:30px;padding-top:25px}.legal-aside{border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:34px}.legal-aside nav{position:static;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.toc-title{grid-column:1/-1;margin-bottom:8px}.legal-aside a{font-size:12px;gap:7px;padding:7px 0}.legal-body section{margin-bottom:33px}.legal-body h2{font-size:20px;gap:12px}.legal-body p,.permission-list dd{font-size:16px}.legal-end{padding:21px}.not-found h1{font-size:32px}.not-found{padding-block:100px}}@media(max-width:370px){.hero h1{font-size:36px}.hero{min-height:770px}.brand span{display:none}.legal-aside nav{grid-template-columns:1fr}.footer-links{gap:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}@media print{body{background:white}.site-header,.site-footer,.legal-aside,.back-link,.skip{display:none}.legal-main{max-width:none;padding:0}.legal-layout{display:block;margin-top:25px}.legal-heading h1{font-size:32px}.legal-body section{break-inside:avoid}.legal-body p{color:#222;font-size:11pt}.legal-body a{color:#222}.legal-date{font-size:10pt}}
.hero{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:76px;align-items:center;padding-block:84px 92px;overflow:visible}
.hero-copy{max-width:none;padding-block:0;z-index:auto}
.hero h1{font-family:var(--serif);font-size:clamp(30px,3.6vw,44px);line-height:1.5;letter-spacing:.01em}
.hero-description{margin-top:26px;font-size:17px;color:var(--muted);line-height:1.95;max-width:30em}

.hero-shot{margin:0}

.shot-frame,.hero-shot img,.shot-row figure img{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 26px 60px -40px rgba(102,83,96,.42);transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s cubic-bezier(.2,.7,.3,1)}
.hero-shot img:hover,.shot-row figure img:hover{transform:translateY(-6px);box-shadow:0 34px 70px -38px rgba(102,83,96,.5)}
.shot-row figure{margin:0}

.shots{padding-block:88px 94px;border-top:1px solid var(--line)}
.shots>h2{font-size:clamp(23px,2.5vw,29px)}
.shot-row{margin-top:64px;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:76px;align-items:center}
.shot-row.reverse{grid-template-columns:280px minmax(0,1fr)}
.shot-row.reverse figure{grid-area:1/1}
.shot-row.reverse .shot-copy{grid-area:1/2}
.shot-copy h3{font-size:20px;margin-bottom:15px}
.shot-copy p{font-size:16px;line-height:1.95;color:var(--muted);max-width:34em}
.shots-note{margin-top:60px;font-size:13px;color:#8a8087}

/* 动效。站点 CSP 是 script-src 'none'，没有 JS 可用，全部靠 CSS。
   两条底线：
   1. 不支持 animation-timeline 的浏览器里，.reveal 不能是隐藏的——
      所以初始状态就是可见，动画只在 @supports 命中时才接管。
   2. 用户在系统里关了动效就整个不放。 */
@keyframes yj-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:no-preference){
.rise{animation:yj-rise .8s cubic-bezier(.2,.7,.3,1) both}
.hero-shot.rise{animation-delay:.12s}
@supports (animation-timeline:view()){
.reveal{animation:yj-rise linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
}
}

@media(max-width:900px){
.hero{grid-template-columns:1fr;gap:44px;padding-block:56px 64px}
.hero h1{font-size:27px}
.hero-shot{max-width:296px}
.shots{padding-block:58px 64px}
.shot-row,.shot-row.reverse{grid-template-columns:1fr;gap:30px;margin-top:46px}
.shot-row.reverse figure,.shot-row.reverse .shot-copy{grid-area:auto}
.shot-row figure{max-width:276px}
.shots-note{margin-top:42px}
}

/* Legal page colors mirror YingjiPalette; the policy text and document layout are retained. */
:root {
  color-scheme: light dark;
  --bg: #ffffff;
  --ink: #242124;
  --muted: #636363;
  --accent: #8a5616;
  --line: #dcdcdc;
  --soft: #f5f5f5;
  --field: #eeeeee;
  --selection: #f8ce86;
  --on-accent: #4a3111;
}
body { background: var(--bg); color: var(--ink); }
.site-header { background: var(--bg); border-bottom-color: var(--line); }
.skip { background: var(--bg); color: var(--ink); }
::selection { background: var(--selection); color: var(--on-accent); }
.legal-date, .toc-title, .legal-aside a span, .legal-body h2 span,
.footer-bottom, .legal-body p, .permission-list dd { color: var(--muted); }
.legal-body strong { color: var(--ink); }
.legal-end { background: var(--soft); border: 1px solid var(--line); }
.text-link { color: var(--accent); border-bottom-color: var(--accent); }
a:focus-visible { outline-color: var(--accent); }
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #000000;
    --ink: #f5f5f5;
    --muted: #b5b5b5;
    --accent: #d8b8ff;
    --line: #383838;
    --soft: #191919;
    --field: #292929;
    --selection: #ffbefb;
    --on-accent: #3f2263;
  }
}
@media print {
  :root { color-scheme: light; --bg: #ffffff; --ink: #242124; --muted: #636363; --accent: #8a5616; --line: #dcdcdc; --soft: #f5f5f5; }
}
