@font-face{font-family:JZ Display;src:url(/fonts/jz-display.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JZ Display;src:url(/fonts/jz-display-r.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--ink:#0f1412;--ink-2:#151b18;--ink-3:#1c2320;--ink-4:#232b27;--rule:#262f2b;--rule-strong:#35403b;--type:#e9ede9;--type-2:#9ba69f;--type-3:#6e7973;--red:#c8452e;--red-text:#e9614a;--red-wash:#c8452e21;--red-line:#c8452e5c;--paper:#f7f4ec;--f-display:"JZ Display", "JZ Serif", "Source Han Serif SC", "Songti SC", "SimSun", serif;--f-sans:"PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC", "Microsoft YaHei", "Segoe UI", system-ui, -apple-system, sans-serif;--f-mono:"Cascadia Mono", ui-monospace, "SF Mono", Consolas, "Liberation Mono", monospace;--f-latin:-apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-display:clamp(38px, 6vw, 62px);--fs-1:clamp(27px, 3.2vw, 34px);--fs-2:20px;--fs-3:15px;--fs-4:12px;--s1:4px;--s2:8px;--s3:16px;--s4:24px;--s5:32px;--s6:48px;--s7:64px;--s8:96px;--s9:128px;--r1:4px;--r2:10px;--r3:16px;--shadow-lift:0 18px 44px -22px #000000b8;--shadow-paper:0 2px 6px #00000047, 0 22px 48px -26px #000000b3;--topbar-h:56px;--content-max:1080px;--ease:cubic-bezier(.2, .7, .3, 1);--dur:.22s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ink);min-height:100vh;color:var(--type);font-family:var(--f-sans);font-size:var(--fs-3);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;line-break:strict;overflow-wrap:break-word;margin:0;line-height:1.72}h1,h2,h3,h4{letter-spacing:.015em;text-wrap:balance;margin:0;font-weight:700;line-height:1.28}p{text-wrap:pretty;margin:0}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--red-text);outline-offset:2px;border-radius:var(--r1)}::selection{background:var(--red-wash);color:var(--type)}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.lat{font-family:var(--f-latin)}.sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--s3);z-index:100;padding:var(--s2) var(--s3);background:var(--red);color:#fff;border-radius:var(--r1);transition:top var(--dur) var(--ease);position:absolute;top:-60px}.skip-link:focus{top:var(--s3)}.grain-bg:before{content:"";pointer-events:none;z-index:0;opacity:.035;background-image:url(/textures/grain.png);background-size:180px 180px;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.nav{z-index:40;height:var(--topbar-h);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.nav.is-lifted{background:color-mix(in srgb, var(--ink) 86%, transparent);backdrop-filter:saturate(140%)blur(12px);border-bottom-color:var(--rule)}.nav__inner{max-width:var(--content-max);height:100%;padding:0 var(--s5);align-items:center;gap:var(--s6);margin:0 auto;display:flex}.nav__brand{align-items:center;gap:10px;display:flex}.nav__mark{background:var(--paper);border-radius:2px;flex-direction:column;justify-content:center;gap:3px;width:22px;height:26px;padding:0 4px;display:flex}.nav__mark span{background:#232120;border-radius:1px;height:2px;display:block}.nav__mark span:first-child{background:var(--red);width:100%}.nav__mark span:nth-child(2){opacity:.7;width:76%}.nav__mark span:nth-child(3){opacity:.45;width:48%}.nav__name{font-family:var(--f-display);letter-spacing:.08em;font-size:19px;font-weight:700}.nav__links{gap:var(--s4);flex:1;display:flex}.nav__links a{color:var(--type-2);transition:color var(--dur) var(--ease);font-size:13.5px}.nav__links a:hover,.nav__links a[aria-current=page]{color:var(--type)}.nav__cta{border-radius:var(--r1);border:1px solid var(--rule-strong);height:34px;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), transform var(--dur) var(--ease);align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}.nav__cta svg{transition:transform var(--dur) var(--ease)}.nav__cta:hover{border-color:var(--red-line);background:var(--red-wash);color:var(--type)}.nav__cta:hover svg{transform:translate(3px)}.sec{padding:var(--s8) 0;scroll-margin-top:calc(var(--topbar-h) + var(--s4));position:relative}.sec__inner{max-width:var(--content-max);padding:0 var(--s5);margin:0 auto}.sec--wide .sec__inner{max-width:1360px}.sec__head{max-width:62ch;margin-bottom:var(--s6)}.sec__eyebrow{margin-bottom:var(--s3);font-size:var(--fs-4);letter-spacing:.24em;color:var(--red-text);text-transform:uppercase;font-weight:700}.sec__title{font-family:var(--f-display);font-size:var(--fs-1);letter-spacing:.02em}.sec__lead{margin-top:var(--s3);font-size:var(--fs-3);color:var(--type-2);line-height:1.85}.sec__lead strong{color:var(--type);font-weight:700}.foot{border-top:1px solid var(--rule);padding:var(--s7) 0 var(--s6);margin-top:var(--s8)}.foot__inner{max-width:var(--content-max);padding:0 var(--s5);gap:var(--s5) var(--s6);grid-template-columns:minmax(0,1fr) auto;align-items:start;margin:0 auto;display:grid}.foot__name{font-family:var(--f-display);font-size:var(--fs-2);letter-spacing:.08em}.foot__brand p{color:var(--type-3);margin-top:6px;font-size:13px}.foot__links{gap:var(--s4);color:var(--type-2);font-size:13px;display:flex}.foot__links a:hover{color:var(--type)}.foot__legal{padding-top:var(--s4);border-top:1px solid var(--rule);font-size:var(--fs-4);color:var(--type-3);grid-column:1/-1;line-height:1.8}@media (width<=760px){.nav__inner{gap:var(--s4);padding:0 var(--s4)}.nav__links{gap:var(--s3)}.sec{padding:var(--s7) 0}.sec__inner,.foot__inner{padding:0 var(--s4)}.foot__inner{grid-template-columns:minmax(0,1fr)}}.seo-ratio{min-height:300px;margin:var(--s6) 0;padding:var(--s5);border:1px solid var(--rule);border-radius:var(--r3);background:var(--ink-2);justify-content:center;align-items:center;display:flex}.seo-ratio__box{border:1px solid var(--red-line);background:linear-gradient(160deg,#c8452e1a,#0000 70%);border-radius:2px;place-items:center;display:grid}.seo-ratio__box span{font-size:var(--fs-4);letter-spacing:.08em;color:var(--type-2)}.seo-table{margin:var(--s6) 0 var(--s5);-webkit-overflow-scrolling:touch;overflow-x:auto}.seo-table .marks{min-width:34rem;margin:0}.seo-spec{max-width:30rem}.seo-spec td:first-child{width:8rem;color:var(--type-3)}.seo-note{max-width:62ch;margin:var(--s4) 0;color:var(--type-2);font-size:14px;line-height:1.9}.seo-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px;margin:0;padding:0;list-style:none;display:grid}.seo-list a{justify-content:space-between;align-items:baseline;gap:var(--s3);border-radius:var(--r1);color:var(--type-2);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);padding:10px 12px;font-size:13.5px;display:flex}.seo-list a:hover{background:var(--ink-3);color:var(--type)}.seo-list .mono{font-size:var(--fs-4);color:var(--type-3)}.btn{justify-content:center;align-items:center;gap:var(--s2);border-radius:var(--r1);letter-spacing:.02em;white-space:nowrap;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);font-weight:700;display:inline-flex}.btn:disabled{opacity:.42;cursor:not-allowed}.btn--sm{height:30px;padding:0 var(--s2);font-size:var(--fs-4)}.btn--md{height:38px;padding:0 var(--s3);font-size:13.5px}.btn--lg{height:48px;padding:0 var(--s4);font-size:var(--fs-3)}.btn--full{width:100%}.btn--solid{background:var(--red);color:#fff;border:1px solid var(--red)}.btn--solid:hover:not(:disabled){background:#d64f37;border-color:#d64f37;transform:translateY(-1px)}.btn--outline{color:var(--type);border:1px solid var(--rule-strong);background:0 0}.btn--outline:hover:not(:disabled){border-color:var(--type-3);background:var(--ink-3)}.btn--ghost{color:var(--type-2);background:0 0;border:1px solid #0000}.btn--ghost:hover:not(:disabled){color:var(--type);background:var(--ink-3)}.field+.field{margin-top:var(--s4)}.field__label{margin-bottom:var(--s2);font-size:var(--fs-4);letter-spacing:.1em;color:var(--type-2);font-weight:700;display:block}.field__hint{margin-top:var(--s2);font-size:var(--fs-4);color:var(--type-3);line-height:1.6}.input,.textarea{background:var(--ink);border:1px solid var(--rule);border-radius:var(--r1);width:100%;padding:var(--s2) 10px;color:var(--type);transition:border-color var(--dur) var(--ease);font-size:13.5px}.input:hover,.textarea:hover{border-color:var(--rule-strong)}.input:focus,.textarea:focus{border-color:var(--red-line);outline:none}.input::placeholder,.textarea::placeholder{color:var(--type-3)}.toggle{justify-content:space-between;align-items:flex-start;gap:var(--s3);display:flex}.toggle+.toggle{margin-top:var(--s3)}.toggle.is-disabled{opacity:.45}.toggle__text label{cursor:pointer;font-size:13.5px;display:block}.toggle__hint{font-size:var(--fs-4);color:var(--type-3);margin-top:2px;line-height:1.5}.switch{background:var(--ink-4);border:1px solid var(--rule-strong);width:38px;height:22px;transition:background var(--dur) var(--ease);border-radius:999px;flex:none;margin-top:2px;position:relative}.switch[aria-checked=true]{background:var(--red);border-color:var(--red)}.switch__dot{background:var(--type-2);width:16px;height:16px;transition:transform var(--dur) var(--ease), background var(--dur) var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.switch[aria-checked=true] .switch__dot{background:#fff;transform:translate(16px)}.seg{background:var(--ink);border:1px solid var(--rule);border-radius:var(--r1);gap:2px;padding:2px;display:flex}.seg__item{height:28px;font-size:var(--fs-4);color:var(--type-3);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:3px;flex:1;font-weight:700}.seg__item:hover{color:var(--type-2)}.seg__item.is-on{background:var(--ink-4);color:var(--type)}.slider+.slider{margin-top:var(--s3)}.slider__head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.slider__head label{color:var(--type-2);font-size:13.5px}.slider__val{font-size:var(--fs-4);color:var(--type-3)}.slider input[type=range]{appearance:none;background:0 0;width:100%;height:20px}.slider input[type=range]::-webkit-slider-runnable-track{background:var(--rule-strong);border-radius:2px;height:2px}.slider input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--type);cursor:grab;border:0;border-radius:50%;width:14px;height:14px;margin-top:-6px}.slider input[type=range]::-moz-range-track{background:var(--rule-strong);border-radius:2px;height:2px}.slider input[type=range]::-moz-range-thumb{background:var(--type);cursor:grab;border:0;border-radius:50%;width:14px;height:14px}.dlg{z-index:90;padding:var(--s4);animation:dlg-in .2s var(--ease);background:#060908b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes dlg-in{0%{opacity:0}}.dlg__panel{background:var(--ink-2);border:1px solid var(--rule);border-radius:var(--r3);width:min(460px,100%);max-height:min(84vh,760px);box-shadow:var(--shadow-lift);flex-direction:column;display:flex;overflow:hidden}.dlg__panel--wide{width:min(920px,100%)}.dlg__head{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s4) var(--s4) var(--s3);border-bottom:1px solid var(--rule);display:flex}.dlg__head h2{font-size:var(--fs-2)}.dlg__x{border-radius:var(--r1);width:32px;height:32px;color:var(--type-3);place-items:center;display:grid}.dlg__x:hover{color:var(--type);background:var(--ink-3)}.dlg__body{padding:var(--s4);overflow:auto}.toasts{left:50%;bottom:var(--s5);z-index:120;gap:var(--s2);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:center;gap:var(--s2);padding:10px var(--s3);background:var(--ink-3);border:1px solid var(--rule-strong);box-shadow:var(--shadow-lift);animation:toast-in .24s var(--ease);border-radius:999px;font-size:13.5px;display:flex}.toast--ok{color:var(--type)}.toast--warn{color:#f0c15c;border-color:#f0c15c59}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.page{position:relative;overflow-x:clip}.demo{gap:var(--s5);grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.demo__code{padding:var(--s4);border:1px solid var(--rule);border-radius:var(--r2);background:var(--ink-2);overflow:auto}.demo__code pre{font-family:var(--f-mono);color:var(--type-2);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.95}.demo__out{justify-content:center;display:flex}.marks{border-collapse:collapse;width:100%;font-size:13.5px}.marks th{padding:0 var(--s3) var(--s2) 0;text-align:left;font-size:var(--fs-4);letter-spacing:.14em;color:var(--type-3);border-bottom:1px solid var(--rule-strong);font-weight:700}.marks td{padding:11px var(--s3) 11px 0;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--type-2)}.marks td:first-child{color:var(--red-text);white-space:nowrap}.marks td.dim{color:var(--type-3)}.marks td.mono{color:var(--type-2);white-space:nowrap}.note{margin-top:var(--s3);font-size:var(--fs-4);color:var(--type-3)}.tips{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.tip{padding:var(--s4);border:1px solid var(--rule);border-radius:var(--r2);background:var(--ink-2)}.tip h3{font-size:var(--fs-3);margin-bottom:var(--s2)}.tip p{color:var(--type-3);font-size:13.5px;line-height:1.85}.craftlist{gap:var(--s5) var(--s6);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.craftlist h3{font-size:var(--fs-3);margin-bottom:var(--s2);padding-top:var(--s3);border-top:1px solid var(--rule)}.craftlist p{color:var(--type-3);max-width:46ch;font-size:13.5px;line-height:1.85}.closing{padding:var(--s9) 0;text-align:center}.closing__inner{max-width:var(--content-max);padding:0 var(--s5);align-items:center;gap:var(--s5);flex-direction:column;margin:0 auto;display:flex}.closing__line{font-family:var(--f-display);font-size:var(--fs-1);letter-spacing:.04em}@media (width<=880px){.demo{grid-template-columns:minmax(0,1fr)}.marks{font-size:13px}.marks td,.marks th{padding-right:var(--s2)}.closing{padding:var(--s7) 0}}
