@charset "UTF-8";
:root{
  --paper:#f5f0e6;--paper-deep:#ece4d4;--card:#fcfaf5;
  --ink:#1e2a23;--ink-soft:#3c4a41;--muted:#5f665d;
  --line:#ddd3c1;--line-strong:#c9bca5;
  --pine:#2d5a45;--pine-deep:#214635;--pine-soft:#e3ebe2;
  --dai:#33506f;--dai-soft:#e2e7ee;
  --cinnabar:#b23f2a;--cinnabar-deep:#8a2f1e;--cinnabar-soft:#f4e3da;
  --night:#1d3328;
  --accent:var(--pine);--accent-soft:var(--pine-soft);
  --blue:var(--pine);--blue-dark:var(--pine-deep);--blue-soft:var(--pine-soft);--canvas:var(--paper-deep);
  --serif:"Noto Serif SC","Source Han Serif SC","Source Han Serif CN","Songti SC","STSong","STZhongsong","SimSun",serif;
  --sans:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans SC","Hiragino Sans GB",system-ui,sans-serif;
  --kai:"KaiTi","STKaiti","Kaiti SC","BiauKai",var(--serif);
  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow-sheet:0 1px 0 rgba(60,45,20,.04),0 28px 56px -28px rgba(50,40,20,.42);
  color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis-style:none
}
[data-accent="blue"]{--accent:var(--dai);--accent-soft:var(--dai-soft)}
[data-accent="green"]{--accent:var(--pine);--accent-soft:var(--pine-soft)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-size:16px;line-height:1.7;background:var(--paper);-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}
a{color:inherit;text-decoration:none}
button,a,input,summary,select,textarea{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button,summary{cursor:pointer}
button{color:inherit}
img{max-width:100%;height:auto;display:block}
button:disabled{cursor:not-allowed}
h1,h2,h3,p{margin:0}
h1,h2,h3{line-height:1.3;text-wrap:balance}
h2{font-family:var(--serif);font-size:clamp(28px,3vw,38px);font-weight:700;letter-spacing:.02em}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--pine);outline-offset:3px;border-radius:6px}
.container{width:min(1200px,calc(100% - 64px));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:10px 20px;background:var(--ink);color:#fff;transform:translateY(-160%);border-radius:999px;transition:transform .2s}
.skip-link:focus{transform:translateY(0)}

/* 印章 */
.seal{display:inline-grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;place-items:center;flex:none;width:44px;height:44px;padding:5px;border-radius:7px;background:var(--cinnabar);color:#fbf1e8;font-family:var(--serif);font-weight:700;font-size:15px;line-height:1;box-shadow:inset 0 0 0 2.5px var(--cinnabar),inset 0 0 0 3.5px rgba(251,241,232,.7);transform:rotate(-3deg)}
.seal-large{width:96px;height:96px;padding:11px;font-size:32px;border-radius:12px;box-shadow:inset 0 0 0 5px var(--cinnabar),inset 0 0 0 7px rgba(251,241,232,.7)}
.brand-mark{width:42px;height:42px;display:inline-grid;place-items:center;border-radius:8px;background:var(--cinnabar);color:#fbf1e8;font-family:var(--serif);font-size:22px;font-weight:700;box-shadow:inset 0 0 0 2.5px var(--cinnabar),inset 0 0 0 3.5px rgba(251,241,232,.7)}

/* 页头 */
.site-header{position:sticky;top:0;z-index:20;background:rgba(245,240,230,.86);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:0 8px 24px -20px rgba(50,40,20,.5)}
.header-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}
.brand-text{font-family:var(--serif);font-size:20px;font-weight:700;line-height:1.15;letter-spacing:.06em}
.brand-sub{display:block;margin-top:4px;font-family:var(--sans);font-size:12px;font-weight:400;letter-spacing:.32em;color:var(--muted)}
.site-nav{display:flex;align-items:center;gap:6px}
.site-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;font-size:15px;color:var(--ink-soft);transition:background .2s,color .2s}
.site-nav a:hover{background:rgba(45,90,69,.08);color:var(--ink)}

/* 通用标签 */
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.24em;color:var(--cinnabar)}
.kicker::before{content:"";width:22px;height:1px;background:currentColor}
.section-desc{margin-top:12px;font-size:16px;color:var(--muted)}

/* 按钮 */
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);color:var(--ink);font-size:15px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .25s,transform .15s}
.button:hover{border-color:var(--ink-soft)}
.button:active{transform:translateY(1px)}
.button:disabled{opacity:.45;transform:none}
.button svg{flex:none;transition:translate .25s var(--ease)}
.button-primary{background:var(--pine);border-color:var(--pine);color:#fff}
.button-primary:hover{background:var(--pine-deep);border-color:var(--pine-deep);box-shadow:0 12px 26px -14px rgba(33,70,53,.8)}
.button-primary:hover svg{translate:3px 0}
.text-link{display:inline-flex;align-items:center;gap:6px;min-height:40px;color:var(--pine);font-size:14px;font-weight:600}
.text-link svg{width:16px;height:16px;transition:translate .25s var(--ease)}
.text-link:hover{text-decoration:underline;text-underline-offset:5px}
.text-link:hover svg{translate:3px 0}

/* 朱丝栏信笺底纹 */
.hero,.detail-hero{position:relative;isolation:isolate}
.hero::before,.detail-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:repeating-linear-gradient(90deg,transparent 0 71px,rgba(178,63,42,.085) 71px 72px);background-position:center top;-webkit-mask-image:linear-gradient(to bottom,#000 10%,transparent 92%);mask-image:linear-gradient(to bottom,#000 10%,transparent 92%)}

/* 首屏 */
.hero{padding-block:72px 104px;overflow:hidden}
.hero::after{content:"";position:absolute;left:50%;bottom:0;width:min(1200px,calc(100% - 64px));height:4px;transform:translateX(-50%);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.hero-inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) auto;gap:56px;align-items:center}
.hero-copy>*{animation:rise .8s var(--ease) both}
.hero-copy>:nth-child(2){animation-delay:.08s}
.hero-copy>:nth-child(3){animation-delay:.16s}
.hero-copy>:nth-child(4){animation-delay:.24s}
.hero-copy>:nth-child(5){animation-delay:.32s}
.hero h1{margin-top:22px;font-family:var(--serif);font-size:clamp(34px,4.4vw,58px);font-weight:700;line-height:1.28;letter-spacing:.02em}
.hero-lead{margin-top:24px;max-width:28em;font-size:18px;line-height:1.9;color:var(--ink-soft)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.hero-stats{display:flex;gap:48px;margin:44px 0 0;padding-top:24px;border-top:1px dashed var(--line-strong)}
.hero-stats dt{font-size:13px;letter-spacing:.12em;color:var(--muted)}
.hero-stats dd{margin:6px 0 0;font-family:var(--serif);font-size:24px;font-weight:700;line-height:1.3}
.hero-stats dd span{margin-left:4px;font-family:var(--sans);font-size:14px;font-weight:400;color:var(--muted)}
.hero-stats #software-total{font-size:32px;line-height:1.1}
.hero-vertical{writing-mode:vertical-rl;align-self:center;padding-top:18px;font-family:var(--kai);font-size:20px;letter-spacing:.42em;color:var(--ink-soft);position:relative;animation:rise 1s .4s var(--ease) both}
.hero-vertical::before{content:"";position:absolute;top:0;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--cinnabar)}

.hero-visual{position:relative;aspect-ratio:1.08/1;width:100%}
.sheet{position:absolute;margin:0;padding:10px 10px 38px;background:var(--card);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow-sheet);animation:rise 1s var(--ease) both}
.sheet img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:left top;border-radius:2px;background:var(--paper-deep)}
.sheet::before{content:"";position:absolute;top:-13px;left:50%;width:104px;height:28px;margin-left:-52px;background:rgba(222,208,176,.78);box-shadow:0 1px 3px rgba(60,45,20,.12);transform:rotate(-4deg)}
.sheet figcaption{position:absolute;left:16px;bottom:8px;font-family:var(--kai);font-size:16px;color:var(--muted)}
.sheet figcaption::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--accent);vertical-align:1px}
.sheet-back{top:3%;left:0;width:80%;rotate:-3.5deg;animation-delay:.2s}
.sheet-front{right:0;bottom:3%;width:74%;rotate:2.5deg;animation-delay:.38s}
.sheet-front::before{left:30%;transform:rotate(5deg)}
.sheet-single{top:12%;left:0;width:100%;rotate:-1.5deg;animation-delay:.2s}
@keyframes rise{from{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}

/* 区块 */
.section{padding-block:104px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:56px}
.section-head h2,.split-head h2{margin-top:14px}
.catalog-controls{display:flex;align-items:center;gap:12px}
.filter-tabs{display:flex;gap:2px;padding:4px;border-radius:999px;background:var(--paper-deep);border:1px solid var(--line)}
.filter{min-height:40px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:14px;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s}
.filter:hover{color:var(--ink)}
.filter.active{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(60,45,20,.16)}
.search-box{display:flex;align-items:center;gap:8px;min-height:50px;padding:0 18px;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);color:var(--muted);transition:border-color .2s,box-shadow .2s}
.search-box:focus-within{border-color:var(--pine);box-shadow:0 0 0 3px rgba(45,90,69,.18)}
.search-box input{width:170px;padding-block:10px;border:0;background:transparent;color:var(--ink);font-size:15px;outline:none}
.search-box input:focus-visible{outline:none}
.search-box input::placeholder{color:#7d8279}

/* 作品陈列 */
.exhibit-list{display:grid;gap:96px}
.exhibit{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:64px;align-items:center}
.exhibit:nth-child(even) .exhibit-media{order:2}
.exhibit-media{display:block;position:relative;padding:32px;border-radius:24px;background-color:var(--accent-soft);background-image:repeating-linear-gradient(0deg,transparent 0 31px,color-mix(in srgb,var(--accent) 10%,transparent) 31px 32px)}
.frame{display:block;padding:8px;border-radius:10px;background:var(--card);box-shadow:0 0 0 1px rgba(40,30,10,.05),0 32px 60px -30px rgba(30,40,30,.5);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.frame img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:left top;border-radius:4px;background:var(--paper)}
.exhibit-media:hover .frame{transform:translateY(-6px) rotate(-.6deg);box-shadow:0 0 0 1px rgba(40,30,10,.05),0 44px 70px -30px rgba(30,40,30,.55)}
.exhibit-body{position:relative}
.exhibit-index{position:absolute;top:-44px;right:0;font-family:var(--serif);font-size:128px;font-weight:700;line-height:1;color:var(--cinnabar);opacity:.1;pointer-events:none;user-select:none}
.exhibit-title{display:flex;align-items:center;gap:18px}
.app-icon{width:56px;height:56px;flex:none;border-radius:14px;object-fit:cover;background:var(--card);box-shadow:0 0 0 1px rgba(40,30,10,.07),0 8px 18px -8px rgba(40,30,10,.35)}
.exhibit-category{font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--accent)}
.exhibit h3{margin-top:2px;font-family:var(--serif);font-size:clamp(28px,2.6vw,38px);font-weight:700;letter-spacing:.02em}
.exhibit h3 a{transition:color .2s}
.exhibit h3 a:hover{color:var(--accent)}
.exhibit-summary{margin-top:22px;max-width:30em;font-size:17px;line-height:1.9;color:var(--ink-soft)}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none}
.tag{padding:4px 13px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-soft);font-size:13px}
.meta-list{display:flex;flex-wrap:wrap;gap:12px 36px;margin:30px 0 32px;padding-top:22px;border-top:1px dashed var(--line-strong)}
.meta-list dt{font-size:12px;letter-spacing:.16em;color:var(--muted)}
.meta-list dd{margin:4px 0 0;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}

/* 时间线 */
.updates-section{background:var(--paper-deep);border-block:1px solid var(--line);--ring:var(--paper-deep)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.75fr);gap:80px;align-items:start}
.split-head{position:sticky;top:112px}
.timeline{margin:0;padding:0;list-style:none}
.timeline-item{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);gap:44px;padding-bottom:24px}
.timeline-item::before{content:"";position:absolute;left:129px;top:30px;width:11px;height:11px;border-radius:50%;background:var(--cinnabar);box-shadow:0 0 0 5px var(--ring,var(--paper))}
.timeline-item::after{content:"";position:absolute;left:134px;top:46px;bottom:-6px;width:1px;background:var(--line-strong)}
.timeline-item:last-child{padding-bottom:0}
.timeline-item:last-child::after{display:none}
.timeline-date{padding-top:22px;text-align:right;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.timeline-card{padding:22px 26px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.timeline-title{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:var(--serif);font-size:19px;font-weight:700}
.pill{padding:2px 10px;border-radius:999px;background:var(--cinnabar-soft);color:var(--cinnabar-deep);font-family:var(--sans);font-size:12px;font-weight:500}
.timeline-summary{margin-top:8px;color:var(--ink-soft);line-height:1.85}
.timeline-card .text-link{margin-top:6px}

/* 问答 */
.faq-list{border-top:1px solid var(--line-strong)}
.faq-list details{border-bottom:1px solid var(--line-strong)}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:80px;padding-block:14px;list-style:none;font-family:var(--serif);font-size:18px;font-weight:700;transition:color .2s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";flex:none;width:34px;height:34px;border:1px solid var(--line-strong);border-radius:50%;background:linear-gradient(var(--ink),var(--ink)) center/12px 1.5px no-repeat,linear-gradient(var(--ink),var(--ink)) center/1.5px 12px no-repeat;transition:transform .3s var(--ease),background-color .25s}
.faq-list summary:hover{color:var(--pine)}
.faq-list details[open] summary::after{transform:rotate(45deg);background-color:var(--pine-soft)}
.faq-list details p{padding:0 56px 26px 0;font-size:15.5px;line-height:1.95;color:var(--ink-soft)}

/* 页脚 */
.site-footer{background:var(--night);color:#d5ddd4}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:52px}
.footer-brand{display:flex;align-items:center;gap:18px}
.footer-brand strong{font-family:var(--serif);font-size:20px;letter-spacing:.08em;color:#fbf8f2}
.footer-brand p{margin-top:4px;font-size:14px;color:#b5c1b6}
.footer-nav{display:flex;flex-wrap:wrap;gap:4px}
.footer-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;font-size:14px;transition:background .2s,color .2s}
.footer-nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.site-footer :focus-visible{outline-color:#f0cfa9}

/* 状态 */
.loading-state,.empty-state{grid-column:1/-1;padding:48px 24px;border:1px dashed var(--line-strong);border-radius:18px;background:var(--card);color:var(--muted);text-align:center}
.empty-state h1,.empty-state h2,.empty-state h3{margin-bottom:8px;font-family:var(--serif);font-size:22px;color:var(--ink)}
.empty-state .button{margin-top:20px}

/* 详情页 */
.detail-main{padding-top:20px}
.back-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--muted);transition:color .2s}
.back-link:hover{color:var(--pine)}
.back-link svg{transition:translate .25s var(--ease)}
.back-link:hover svg{translate:-3px 0}
.detail-main>#detail-root>.container>.empty-state{margin-block:24px 96px}
.detail-hero{padding-block:28px 72px}
.detail-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:64px;align-items:start}
.detail-intro>*{animation:rise .8s var(--ease) both}
.detail-intro>:nth-child(2){animation-delay:.08s}
.detail-intro>:nth-child(3){animation-delay:.16s}
.detail-intro>:nth-child(4){animation-delay:.24s}
.detail-identity{display:flex;align-items:center;gap:24px}
.detail-identity .app-icon{width:88px;height:88px;border-radius:22px}
.detail-identity h1{margin-top:10px;font-family:var(--serif);font-size:clamp(32px,4vw,50px);font-weight:700;line-height:1.2;letter-spacing:.02em;overflow-wrap:anywhere}
.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 0;padding:0;list-style:none}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 13px;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);color:var(--ink-soft);font-size:13px}
.chip svg{width:15px;height:15px}
.chip-strong{border-color:var(--ink);background:var(--ink);color:var(--paper);font-weight:600;font-variant-numeric:tabular-nums}
.detail-description{margin-top:26px;max-width:36em;font-size:17.5px;line-height:1.95;color:var(--ink-soft)}
.download-panel{position:relative;overflow:hidden;padding:30px 28px 28px;border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:var(--shadow-sheet);animation:rise .9s .2s var(--ease) both}
.download-panel::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--accent),var(--cinnabar))}
.download-panel h2{margin-bottom:22px;font-size:21px}
.download-item+.download-item{margin-top:22px;padding-top:22px;border-top:1px dashed var(--line-strong)}
.download-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.download-head strong{display:block;font-size:15px}
.download-head div span{display:block;font-size:13px;color:var(--muted)}
.download-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent)}
.download-item .button{width:100%}
.download-pending{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border:1px dashed var(--line-strong);border-radius:999px;background:var(--paper);color:var(--muted);font-size:14px}
.download-note{margin-top:10px;font-size:13px;line-height:1.7;color:var(--muted)}
.download-item .download-note{text-align:center}

.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.detail-gallery[data-count="1"]{grid-template-columns:minmax(0,1fr)}
.detail-gallery[data-count="1"] .gallery-item{max-width:980px;width:100%;justify-self:center}
.gallery-item{margin:0}
.gallery-image-button{position:relative;display:block;width:100%;padding:26px;border:0;border-radius:22px;background-color:var(--accent-soft);background-image:repeating-linear-gradient(0deg,transparent 0 31px,color-mix(in srgb,var(--accent) 10%,transparent) 31px 32px);cursor:zoom-in}
.gallery-image-button .frame img{object-fit:contain;object-position:center;background:var(--card)}
.gallery-image-button:hover .frame{transform:translateY(-4px)}
.zoom-hint{position:absolute;right:38px;bottom:38px;display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;background:rgba(30,42,35,.84);color:#fff;font-size:13px;opacity:0;translate:0 4px;transition:opacity .2s,translate .2s}
.gallery-image-button:hover .zoom-hint,.gallery-image-button:focus-visible .zoom-hint{opacity:1;translate:0 0}
.gallery-item figcaption{margin-top:14px;text-align:center;font-family:var(--kai);font-size:16px;color:var(--muted)}

.detail-columns{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:64px;align-items:start;padding-block:88px 104px}
.detail-primary h2{margin-top:14px}
.feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:32px 0 0;padding:0;list-style:none}
.feature-item{padding:28px 26px 26px;border:1px solid var(--line);border-radius:18px;background:var(--card);transition:border-color .25s,box-shadow .25s}
.feature-item:hover{border-color:var(--line-strong);box-shadow:0 18px 36px -26px rgba(50,40,20,.45)}
.feature-index{display:inline-grid;place-items:center;width:38px;height:38px;margin-bottom:18px;border:1px solid var(--cinnabar);border-radius:50%;color:var(--cinnabar);font-family:var(--serif);font-size:16px;font-weight:700}
.feature-item h3{font-family:var(--serif);font-size:19px;font-weight:700}
.feature-item p{margin-top:8px;font-size:15.5px;line-height:1.85;color:var(--ink-soft)}
.callout{margin-top:40px;padding:24px 28px;border-left:3px solid var(--cinnabar);border-radius:4px 16px 16px 4px;background:var(--cinnabar-soft)}
.callout h2{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;color:var(--cinnabar-deep)}
.callout ul{margin:12px 0 0;padding-left:1.3em}
.callout li{line-height:1.85;color:var(--ink-soft)}
.callout li+li{margin-top:6px}
.detail-updates{margin-top:80px}
.detail-updates .timeline{margin-top:32px}
.requirements{position:sticky;top:104px;padding:30px 28px;border:1px solid var(--line);border-radius:20px;background:var(--card)}
.requirements h2{font-size:21px}
.requirements ul{margin:16px 0 0;padding:0;list-style:none}
.requirements li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;padding-block:14px;font-size:15px;line-height:1.75;color:var(--ink-soft)}
.requirements li+li{border-top:1px dashed var(--line-strong)}
.requirements li svg{margin-top:4px;color:var(--pine)}

/* 大图 */
.image-dialog{width:min(1240px,94vw);max-height:94vh;padding:14px;border:0;border-radius:18px;background:var(--card);color:var(--ink);box-shadow:0 40px 100px -30px rgba(0,0,0,.6)}
.image-dialog[open]{display:flex;flex-direction:column;animation:pop .28s var(--ease)}
.image-dialog::backdrop{background:rgba(18,28,22,.72);backdrop-filter:blur(4px)}
.image-close{align-self:flex-end;min-height:40px;padding:0 18px;margin-bottom:10px;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper);font-size:14px}
.image-close:hover{border-color:var(--ink-soft)}
.image-dialog img{max-height:calc(94vh - 120px);width:auto;margin-inline:auto;object-fit:contain;border-radius:8px}
.image-dialog p{margin-top:12px;text-align:center;font-family:var(--kai);font-size:16px;color:var(--muted)}
@keyframes pop{from{opacity:0;scale:.97}to{opacity:1;scale:1}}

/* 404 */
.not-found{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:16px;padding-block:48px;text-align:center}
.not-found .seal{margin-bottom:18px}
.not-found h1{font-family:var(--serif);font-size:clamp(28px,4vw,40px)}
.not-found p:not(.kicker){color:var(--muted)}
.not-found .button{margin-top:12px}

/* 滚动显现 */
.reveal-ready [data-reveal]{opacity:0;translate:0 30px;transition:opacity .8s var(--ease),translate .8s var(--ease)}
.reveal-ready [data-reveal].is-visible{opacity:1;translate:0 0}

@media (max-width:1080px){
  .hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px}
  .hero-vertical{display:none}
  .exhibit{gap:40px}
  .exhibit-media{padding:22px}
  .split{gap:48px}
  .detail-hero-inner,.detail-columns{grid-template-columns:minmax(0,1fr) 310px;gap:40px}
  .feature-list{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:820px){
  .container,.hero::after{width:calc(100% - 40px)}
  .header-inner{height:66px}
  .seal{width:40px;height:40px;font-size:14px;padding:4px}
  .brand{gap:11px}
  .brand-text{font-size:18px}
  .site-nav a{padding:0 10px;font-size:14px}
  .hero{padding-block:40px 72px}
  .hero-inner{grid-template-columns:minmax(0,1fr);gap:48px}
  .hero-visual{max-width:560px;justify-self:center;aspect-ratio:1.2/1}
  .section{padding-block:72px}
  .section-head{flex-direction:column;align-items:stretch;gap:24px;margin-bottom:40px}
  .catalog-controls{flex-wrap:wrap}
  .search-box{flex:1;min-width:200px}
  .search-box input{width:100%;min-width:0}
  .exhibit-list{gap:72px}
  .exhibit{grid-template-columns:minmax(0,1fr);gap:28px}
  .exhibit:nth-child(even) .exhibit-media{order:0}
  .exhibit-media{padding:16px;border-radius:18px}
  .exhibit-index{top:-12px;font-size:96px}
  .split{grid-template-columns:minmax(0,1fr);gap:36px}
  .split-head{position:static}
  .timeline-item{grid-template-columns:minmax(0,1fr);gap:8px;padding-left:30px;padding-bottom:28px}
  .timeline-item::before{left:0;top:6px}
  .timeline-item::after{left:5px;top:22px}
  .timeline-date{padding-top:0;text-align:left}
  .faq-list details p{padding-right:8px}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:20px;padding-block:40px}
  .footer-nav{margin-left:-14px}
  .detail-hero{padding-block:16px 56px}
  .detail-hero-inner,.detail-columns{grid-template-columns:minmax(0,1fr);gap:36px}
  .detail-gallery{grid-template-columns:minmax(0,1fr);gap:32px}
  .gallery-image-button{padding:16px;border-radius:18px}
  .zoom-hint{right:26px;bottom:26px}
  .detail-columns{padding-block:64px 80px}
  .feature-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .requirements{position:static}
  .detail-updates{margin-top:64px}
}
@media (max-width:560px){
  .container,.hero::after{width:calc(100% - 32px)}
  .site-nav a:last-child{display:none}
  .brand-sub{letter-spacing:.2em}
  .hero h1{font-size:34px}
  .hero-lead{font-size:16.5px}
  .hero-actions .button{flex:1}
  .hero-stats{gap:32px}
  .sheet{padding:6px 6px 28px}
  .sheet figcaption{font-size:13px;left:10px;bottom:5px}
  .sheet::before{width:72px;height:22px;margin-left:-36px;top:-10px}
  .filter-tabs{width:100%}
  .filter{flex:1;padding:0 10px}
  .search-box{flex-basis:100%}
  .exhibit-title{gap:14px}
  .app-icon{width:50px;height:50px}
  .exhibit-summary{font-size:16px}
  .meta-list{gap:12px 28px}
  .exhibit-body>.button{width:100%}
  .timeline-card{padding:18px 20px}
  .faq-list summary{font-size:17px;min-height:72px}
  .detail-identity{gap:16px}
  .detail-identity .app-icon{width:64px;height:64px;border-radius:17px}
  .detail-identity h1{font-size:28px}
  .detail-description{font-size:16px}
  .download-panel,.requirements{padding:24px 20px}
  .feature-list{grid-template-columns:minmax(0,1fr)}
  .callout{padding:20px}
}
@media (hover:none){.zoom-hint{opacity:1;translate:0 0}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready [data-reveal]{opacity:1;translate:none}}
