/* Hallmark · macrostructure: Workbench · tone: atmospheric · anchor hue: cyan · theme: custom · nav: N7 · footer: Ft4
 * vibe: midnight ink, lantern light, scrolls and strategy; paper oklch(16.6% .014 278); accent oklch(90.5% .155 194.8)
 * fonts: Noto Serif SC + Noto Sans SC · axes: dark / Chinese serif and grotesk / cyan-pink
 * pre-emit critique: P4 H5 E4 S5 R5 V4 */
@import url('tokens.css');
@font-face{font-family:'Noto Sans SC';src:url('fonts/noto-sans-sc.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Noto Serif SC';src:url('fonts/noto-serif-sc.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:112px;overflow-x:clip}body{margin:0;background:var(--color-paper);color:var(--color-body);font-family:var(--font-body);font-size:var(--text-base);line-height:1.8;overflow-x:clip}button,a{-webkit-tap-highlight-color:var(--color-transparent)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,summary,a{touch-action:manipulation}a:hover{color:var(--color-cyan)}:focus-visible{outline:2px solid var(--color-cyan);outline-offset:5px}h1,h2,h3,p,figure,dl{margin:0}h1,h2,h3{font-style:normal;color:var(--color-ink);line-height:1.3;min-width:0;overflow-wrap:anywhere}h2{font-size:clamp(1.65rem,3vw,2.6rem);font-weight:600;letter-spacing:-.04em}h3{font-size:1.25rem;font-weight:600}p+p{margin-top:var(--space-md)}img{display:block;width:100%;height:auto}figure{min-width:0}figcaption{font-size:var(--text-sm);color:var(--color-muted);padding-top:var(--space-sm)}[hidden]{display:none!important}.wrap{width:calc(100% - 40px);max-width:1240px;margin-inline:auto}.section{padding-block:var(--space-3xl)}.skip{position:fixed;top:0;left:16px;transform:translateY(-150%);background:var(--color-cyan);color:var(--color-paper);z-index:var(--z-modal);padding:12px}.skip:focus{transform:none}.announcement{display:flex;justify-content:space-between;gap:16px;padding:6px max(20px,calc((100% - 1240px)/2));font-size:12px;background:var(--color-cyan);color:var(--color-paper);font-weight:600}.announcement span:last-child{display:none}.site-header{position:sticky;top:0;z-index:var(--z-sticky);background:var(--color-paper);border-bottom:1px solid var(--color-rule)}.nav-main{max-width:1280px;padding:12px 20px;margin:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.wordmark{display:flex;align-items:center;gap:12px;color:var(--color-ink);font-weight:700;font-size:18px;line-height:1.5;white-space:nowrap}.wordmark small{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.09em;font-weight:400;color:var(--color-muted)}.seal{font-family:var(--font-display);font-size:28px;border:1px solid var(--color-cyan);color:var(--color-cyan);width:40px;height:44px;display:grid;place-items:center}.menu-toggle{display:flex;gap:8px;margin-left:auto;border:1px solid var(--color-rule);background:var(--color-surface);padding:8px 12px;min-height:44px}.menu-toggle[aria-expanded=true]{color:var(--color-cyan)}#navigation{display:none;width:100%;flex-direction:column;gap:4px;padding-bottom:8px}#navigation.open{display:flex}#navigation a{padding:8px 12px;white-space:nowrap;font-size:14px}#navigation a[aria-current=page]{color:var(--color-cyan);text-decoration:underline;text-underline-offset:8px}.nav-download{display:none!important}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;min-height:52px;padding:12px 22px;font-weight:700;font-size:15px;white-space:nowrap;border:1px solid var(--color-rule);position:relative;overflow:clip;transition:transform var(--dur-micro) var(--ease-out)}.button:active{transform:translateY(2px)}.primary{background:var(--color-pink);border-color:var(--color-pink);color:var(--color-button-ink)}.primary:hover{background:var(--color-pink-hover);color:var(--color-button-ink)}.primary:after{content:'';position:absolute;inset:0;background:var(--color-shine);transform:translateX(-140%) skew(-22deg);width:30%;pointer-events:none}.primary:hover:after{transform:translateX(500%) skew(-22deg);transition:transform .55s var(--ease-out)}.secondary{background:var(--color-paper);color:var(--color-ink)}.secondary:hover{border-color:var(--color-cyan)}.hero{position:relative;isolation:isolate;background:var(--color-paper)}.hero-scene{position:absolute;inset:0 0 0 auto;z-index:-2;height:100%;width:100%;object-fit:cover;object-position:center 55%;opacity:.6}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--color-shade),var(--color-clear)),linear-gradient(0deg,var(--color-paper),var(--color-transparent) 35%)}.hero-content{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl);min-height:620px;display:flex;align-items:center}.hero-copy{max-width:670px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.tags span{border:1px solid var(--color-rule);color:var(--color-cyan);font-size:12px;padding:3px 10px;background:var(--color-paper)}.hero h1{font-family:var(--font-display);font-size:var(--text-display);font-weight:800;letter-spacing:.03em;line-height:1.2}.hero h1 span{display:block;font-family:var(--font-body);font-size:clamp(1.6rem,3.5vw,3.1rem);letter-spacing:-.045em;font-weight:600;margin-top:12px}.subtitle{font-family:var(--font-mono);color:var(--color-cyan);font-size:12px;letter-spacing:.2em;margin-top:10px;text-transform:uppercase}.hero-lede{font-size:17px;line-height:1.95;margin-top:28px;max-width:510px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.hero-actions .button{flex:1}.download-note{font-size:12px;color:var(--color-muted);margin-top:14px}.scene-caption{display:none}.hero-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--color-rule);padding:16px 0;font-size:12px;color:var(--color-muted);gap:12px}.hero-foot a{white-space:nowrap;color:var(--color-cyan)}.hero-foot>span{max-width:180px}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-block:1px solid var(--color-rule);padding-block:20px;gap:20px}.facts span{display:block;font-size:12px;color:var(--color-muted);margin-bottom:6px}.facts strong{font-size:14px;color:var(--color-ink);font-weight:500}.story-grid{display:grid;gap:32px}.story-grid h2{font-family:var(--font-display);line-height:1.5;letter-spacing:.025em}.story-grid p{margin-top:20px}.large-copy{font-size:19px;color:var(--color-ink)}.text-link{display:inline-flex;min-height:44px;align-items:center;white-space:nowrap;font-size:14px;color:var(--color-cyan);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}.story-grid .text-link{margin-top:20px}.story-image{align-self:center}.story-image img{aspect-ratio:16/11;object-fit:cover;object-position:32% center}.section-head{display:flex;flex-direction:column;gap:16px;margin-bottom:28px}.section-head p{margin-top:10px;color:var(--color-muted)}.section-head>span{font-size:13px;color:var(--color-muted)}.systems{border-top:1px solid var(--color-rule)}.system-layout{display:grid;gap:28px}.feature-rows article{padding-block:20px;border-top:1px solid var(--color-rule)}.feature-rows article:first-child{padding-top:0;border-top:0}.feature-rows p{font-size:15px;margin-top:10px}.gallery-section{background:var(--color-surface)}.gallery-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px 20px}.image-button{display:block;width:100%;padding:0;border:0;background:var(--color-paper);position:relative;overflow:clip}.image-button img{aspect-ratio:16/9;object-fit:cover;transition:transform var(--dur-short) var(--ease-out)}.image-button:hover img{transform:scale(1.025)}.zoom-mark{position:absolute;right:8px;bottom:8px;display:grid;place-items:center;width:32px;height:32px;background:var(--color-paper);color:var(--color-cyan);font-size:20px}.gallery-item figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-ink);font-size:15px}.gallery-item figcaption small{color:var(--color-muted);font-size:12px}.split-info{display:grid;gap:40px}.reader-list{list-style:none;padding:0;margin:24px 0 0}.reader-list li{padding:20px 0;border-top:1px solid var(--color-rule)}.reader-list strong{display:block;color:var(--color-ink);font-weight:500}.reader-list span{display:block;font-size:14px;margin-top:6px;color:var(--color-muted)}.release-panel{background:var(--color-surface);padding:28px;align-self:start}.muted{color:var(--color-muted);font-size:13px}.release-panel h3{font-size:22px;margin-top:12px}.release-panel>p{margin-top:8px}.release-panel dl{margin-top:20px}dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--color-rule);padding:12px 0;font-size:14px}dt{color:var(--color-muted)}dd{margin:0;text-align:right;color:var(--color-ink)}.release-panel .text-link{margin-top:20px}.faq-section{border-top:1px solid var(--color-rule)}.faq details{border-bottom:1px solid var(--color-rule)}.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;color:var(--color-ink);padding:20px 0;list-style:none;font-size:16px}.faq summary::-webkit-details-marker{display:none}.faq summary>span{font-size:24px;color:var(--color-cyan);flex:none}.faq details[open] summary>span{transform:rotate(45deg)}.faq details[open] summary{color:var(--color-cyan)}.faq details p{max-width:900px;padding:0 20px 24px 0;font-size:15px;line-height:1.9}.closing{border-block:1px solid var(--color-cyan);padding:40px 0;display:flex;flex-direction:column;gap:24px}.closing h2{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.8rem)}.closing p{margin-top:12px;font-size:15px}.closing small{display:block;font-size:11px;margin-top:10px;color:var(--color-muted)}.closing .button{min-width:220px}.footer{max-width:1280px;padding:48px 20px 116px;margin:auto}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-brand{font-family:var(--font-display);font-size:26px;color:var(--color-ink);white-space:nowrap}.footer-top p{font-size:12px;margin-top:8px;color:var(--color-muted)}.footer-nav{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:24px}.footer-nav a,.related a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;white-space:nowrap}.related{display:flex;flex-wrap:wrap;gap:0 24px;border-block:1px solid var(--color-rule);margin-top:24px;padding-block:16px}.related>span{width:100%;font-size:12px;color:var(--color-muted)}.legal{font-size:11px;color:var(--color-muted);margin-top:24px;max-width:1000px}.legal p+p{margin-top:6px}.mobile-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;position:fixed;bottom:0;left:0;right:0;padding:10px 20px calc(10px + env(safe-area-inset-bottom));background:var(--color-paper);border-top:1px solid var(--color-rule);z-index:var(--z-sticky)}.mobile-cta>span{font-size:15px;line-height:1.5;color:var(--color-ink)}.mobile-cta small{display:block;font-size:11px;color:var(--color-muted)}.mobile-cta .button{min-height:44px;padding:8px 18px;gap:18px}.page-intro{padding-block:36px 40px}.breadcrumb{display:inline-flex;align-items:center;min-height:44px;color:var(--color-muted);font-size:12px;white-space:nowrap}.page-intro h1{font-family:var(--font-display);font-size:clamp(2.3rem,5vw,4.2rem);letter-spacing:.02em;margin-top:12px}.page-intro p{font-size:16px;color:var(--color-muted);margin-top:20px;max-width:800px}.gallery-page{padding-bottom:64px}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-bottom:1px solid var(--color-rule);padding-bottom:20px;margin-bottom:28px}.filter{min-height:44px;padding:8px 16px;background:var(--color-transparent);border:1px solid var(--color-rule);font-size:14px;white-space:nowrap}.filter[aria-pressed=true]{background:var(--color-cyan);color:var(--color-paper);border-color:var(--color-cyan)}.filter[aria-pressed=true]:before{content:'— ';font-weight:bold}.filter-count{color:var(--color-muted);font-size:12px;margin-left:auto}.gallery-help{font-size:13px;color:var(--color-muted);margin-top:28px}.download-grid{display:grid;gap:28px}.download-card{padding:28px;background:var(--color-surface);border-top:2px solid var(--color-pink)}.download-card h2{font-family:var(--font-display);font-size:38px}.en-title{font-size:14px;color:var(--color-muted);margin-top:12px}.download-card dl{margin-block:24px}.download-card .button{width:100%}.small{font-size:12px;color:var(--color-muted);margin-top:12px}.spec-panel{padding-block:12px}.spec-panel h2{font-size:25px;margin-bottom:24px}.spec-panel dl div{padding-block:16px}.steps{list-style:none;margin:28px 0;padding:0;display:grid;gap:28px}.steps>li{border-top:1px solid var(--color-rule);padding-top:20px}.steps>li>span{font-family:var(--font-mono);font-size:30px;color:var(--color-cyan)}.steps h3{margin-top:12px}.steps p{font-size:14px;color:var(--color-muted);margin-top:12px}.guide-toc{display:grid;gap:0;border-top:1px solid var(--color-rule)}.guide-toc>a{padding:24px 0;border-bottom:1px solid var(--color-rule)}.guide-toc h2{font-size:21px}.guide-toc p{font-size:14px;color:var(--color-muted);margin-top:10px}.guide-toc span{display:block;font-size:13px;color:var(--color-cyan);margin-top:16px;white-space:nowrap}.guide-toc>a:hover h2{color:var(--color-cyan)}.article-layout{display:grid;gap:40px;padding-block:48px 64px}.article-nav{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--color-cyan);padding-top:20px}.article-nav strong{color:var(--color-ink);margin-bottom:12px}.article-nav a{font-size:13px;min-height:44px;display:flex;align-items:center}.article{min-width:0}.article section{scroll-margin-top:112px;margin-bottom:56px}.article h2{font-size:28px;margin-bottom:24px}.article h3{margin-block:32px 16px}.article p{line-height:2;font-size:16px}.article img{margin-block:28px;aspect-ratio:16/9;object-fit:cover}.article strong{color:var(--color-ink);font-weight:600}.article-lead{font-size:20px!important;color:var(--color-ink);margin-bottom:48px!important}.definition-list div{display:block;padding-block:20px}.definition-list dt{font-size:19px;color:var(--color-cyan)}.definition-list dd{text-align:left;font-size:16px;margin-top:12px}.prose-list{padding-left:24px}.prose-list li{margin-bottom:20px}.article-end{border-top:1px solid var(--color-rule);padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.lightbox{border:1px solid var(--color-rule);padding:0;background:var(--color-paper);color:var(--color-body);width:min(1320px,calc(100% - 24px));max-width:none;max-height:95dvh}.lightbox::backdrop{background:var(--color-backdrop)}.lightbox-inner{padding:12px}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.lightbox-top{margin-bottom:12px}.lightbox-top span{color:var(--color-cyan);font-family:var(--font-mono);font-size:13px}.lightbox button{background:var(--color-surface);border:1px solid var(--color-rule);min-height:44px;padding:8px 12px;white-space:nowrap;font-size:13px}.lightbox button:hover{color:var(--color-cyan)}.lightbox-stage{position:relative;min-height:100px}.lightbox-stage img{max-height:72dvh;object-fit:contain}.lightbox-stage[data-state=loading] img{opacity:.25}.image-status:not(:empty){position:absolute;inset:40% 0 auto;text-align:center;background:var(--color-paper);padding:16px}.lightbox-stage[data-state=error]{color:var(--color-error)}.lightbox-stage[data-state=success] .image-status{display:none}.lightbox-bottom{margin-top:12px;flex-wrap:wrap}.lightbox-bottom p{font-size:13px;flex:1;text-align:center;min-width:70px}.lightbox button:disabled{opacity:.45;cursor:not-allowed}body.modal-open{overflow-y:hidden}.image-button:active,.filter:active,.menu-toggle:active{transform:translateY(1px)}
@media(min-width:640px){.wrap{width:calc(100% - 64px)}.announcement span:last-child{display:block}.hero-actions .button{flex:none}.facts{grid-template-columns:repeat(4,minmax(0,1fr));padding-block:24px}.facts>div+div{border-left:1px solid var(--color-rule);padding-left:20px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{flex-direction:row;justify-content:space-between;align-items:end}.hero-foot>span{max-width:none}.closing{flex-direction:row;align-items:center;justify-content:space-between}.guide-toc{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}.steps{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-count{padding-left:16px}.footer{padding-inline:32px}.nav-main{padding-inline:32px}}
@media(min-width:768px){.story-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px}.system-layout{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:36px;align-items:center}.system-layout figure img{aspect-ratio:16/11;object-fit:cover}.split-info{grid-template-columns:minmax(0,6fr) minmax(0,4fr);gap:64px}.download-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}.article-layout{grid-template-columns:220px minmax(0,1fr);gap:40px}.article-nav{position:sticky;top:112px;align-self:start}.article-nav a{font-size:12px}.hero-scene{width:66%;opacity:1}.hero-shade{background:linear-gradient(90deg,var(--color-paper) 20%,var(--color-shade) 38%,var(--color-clear) 72%),linear-gradient(0deg,var(--color-paper),var(--color-transparent) 25%)}.hero-content{min-height:650px}.scene-caption{display:block;position:absolute;right:max(32px,calc((100% - 1240px)/2));bottom:108px;text-align:right}.scene-caption>span{font-family:var(--font-display);font-size:26px;color:var(--color-ink)}.scene-caption>p{font-size:12px;color:var(--color-body);margin-top:6px}.hero-foot{padding-block:20px}.hero-lede{max-width:475px}}
@media(min-width:1024px){.nav-main{flex-wrap:nowrap;gap:28px;padding-block:14px}.menu-toggle{display:none}#navigation{display:flex!important;width:auto;flex-direction:row;margin-left:auto;padding:0;gap:4px}#navigation a{padding:8px 10px}.nav-download{display:inline-flex!important;min-height:44px;padding:8px 18px;gap:16px;font-size:14px}.mobile-cta{display:none}.footer{padding-bottom:40px}.section{padding-block:80px}.hero-content{min-height:670px}.hero-copy{padding-block:20px}.hero-lede{font-size:17px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.story-grid{gap:64px}.facts strong{font-size:16px}.article-layout{grid-template-columns:260px minmax(0,820px);gap:64px}.article-nav a{font-size:14px}.page-intro{padding-block:48px 56px}.closing{padding-block:48px}.story-image img{aspect-ratio:16/12}.filter{padding-inline:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.image-button:hover img{transform:none}}
