@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-ext-400-italic.C9HzH3YL.woff2)format("woff2"),url(/_astro/instrument-serif-latin-ext-400-italic.D7-lnxEk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-italic.DKMiL14s.woff2)format("woff2"),url(/_astro/instrument-serif-latin-400-italic.u__WvvIK.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fff;--ink:#14122b;--ink-2:#2a2745;--muted:#5d5a72;--faint:#716e86;--faint-line:#9592aa;--rule:#e9e7f0;--rule-strong:#d3d0de;--desk:#f5f4f9;--desk-2:#edebf4;--accent:#5b3df5;--accent-strong:#4426df;--accent-soft:#efebff;--beam:#d9f84a;--beam-soft:#f3fccc;--radius-sm:10px;--radius:16px;--radius-lg:24px;--shadow-sheet:0 1px 2px #14122b14, 0 22px 44px -22px #14122b61;--shadow-lift:0 18px 40px -22px #14122b52;--ease:cubic-bezier(.2, .7, .2, 1);--ease-spring:cubic-bezier(.34, 1.4, .5, 1);--cjk:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC";--font-display:"Space Grotesk Variable", var(--cjk), ui-sans-serif, system-ui, sans-serif;--font-body:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", var(--cjk), sans-serif;--font-serif:"Instrument Serif", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--gutter:16px;--section:clamp(80px, 11vw, 140px);color-scheme:light;interpolate-size:allow-keywords}@media (width>=720px){:root{--gutter:32px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font:16px/1.65 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}::selection{background:var(--beam);color:var(--ink)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:0 0 .5em;font-weight:600;line-height:1.12}h1{letter-spacing:-.035em;font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:1.04}h2{font-size:clamp(1.55rem,2.8vw,2.3rem)}h3{letter-spacing:-.015em;font-size:1.12rem}p{margin:0 0 1em}a{color:var(--accent);text-underline-offset:.2em}:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:6px}:lang(zh) body{line-height:1.8}:lang(zh) :is(h1,h2,h3){letter-spacing:0;word-break:keep-all;overflow-wrap:anywhere;line-break:strict}.wrap{width:100%;max-width:1240px;padding:0 var(--gutter);margin:0 auto}.section{margin-top:var(--section)}.narrow>:not(.section-head){max-width:880px}.lede{max-width:60ch;color:var(--muted);font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.65}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.reveal-ready [data-reveal]{opacity:0;transition:opacity .8s var(--ease) var(--d,0s), transform .8s var(--ease) var(--d,0s);transform:translateY(22px)}.reveal-ready [data-reveal].is-visible{opacity:1;transform:none}.site-header{z-index:50;-webkit-backdrop-filter:saturate(1.4)blur(14px);background:#ffffffd1;border-bottom:1px solid #0000;transition:border-color .3s,box-shadow .3s;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--rule);box-shadow:0 8px 30px -24px #14122b66}.header-inner{flex-wrap:wrap;align-items:center;gap:10px 20px;min-height:68px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.wordmark{font:700 1.32rem/1 var(--font-display);letter-spacing:-.055em;transform:translateY(-1px)}.wordmark-ufo{color:var(--accent)}.brand .logo{transition:transform .5s var(--ease-spring);flex-shrink:0}.brand .logo-beam path{transform-box:fill-box;transform-origin:50%;transition:transform .45s var(--ease-spring)}.brand:hover .logo{transform:translateY(-2px)rotate(-5deg)}.brand:hover .logo-beam path{animation:beam-print .9s var(--ease) both}.brand:hover .logo-beam path:nth-child(2){animation-delay:80ms}.brand:hover .logo-beam path:nth-child(3){animation-delay:.16s}@keyframes beam-print{0%{opacity:.4;transform:scaleX(.2)}60%{opacity:1;transform:scaleX(1.08)}to{transform:scaleX(1)}}.main-nav{margin-left:auto}.main-nav>ul{flex-wrap:wrap;gap:2px;margin:0;padding:0;list-style:none;display:flex}.main-nav a,.main-nav .nav-trigger{color:var(--ink-2);font:500 .95rem/1 var(--font-display);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:9px 14px;text-decoration:none;transition:background-color .2s,color .2s;display:flex}.main-nav a:hover,.main-nav .nav-trigger:hover{background:var(--desk);color:var(--ink)}.main-nav a[aria-current=page],.main-nav .nav-trigger[aria-current]{background:var(--ink);color:#fff}.nav-dropdown{position:relative}.nav-dropdown:after{content:"";height:12px;position:absolute;top:100%;left:0;right:0}.main-nav .nav-trigger .chevron{transition:transform .25s var(--ease);margin-right:-4px}.main-nav .nav-menu{visibility:hidden;opacity:0;transition:opacity .18s, transform .18s var(--ease), visibility 0s linear .18s;transform:translateY(-4px)}@media (hover:hover){.nav-dropdown:hover .nav-menu{visibility:visible;opacity:1;transition-delay:0s;transform:none}.nav-dropdown:hover .nav-trigger:not([aria-current]){background:var(--desk);color:var(--ink)}.nav-dropdown:hover .nav-trigger .chevron{transform:rotate(180deg)}}.nav-dropdown:has(:focus-visible) .nav-menu{visibility:visible;opacity:1;transition-delay:0s;transform:none}@media (hover:none){.main-nav .nav-trigger .chevron{display:none}}.nav-dropdown .dropdown-menu{min-width:200px}.main-nav .dropdown-menu a{font:500 .93rem/1.2 var(--font-body);border-radius:9px;justify-content:space-between;padding:10px 11px}.main-nav .dropdown-menu a[aria-current=page]{color:var(--accent);background:0 0;font-weight:600}.main-nav .dropdown-menu a:hover,.main-nav .dropdown-menu a:focus{background:var(--desk)}.badge{background:var(--desk-2);color:var(--muted);font:600 .66rem/1 var(--font-mono);letter-spacing:.02em;vertical-align:middle;border-radius:999px;padding:3px 7px;display:inline-block}.main-nav a[aria-current=page] .badge{color:inherit;background:#ffffff29}@media (width>=720px) and (width<=1099px),(width<=419px){.main-nav .badge{background:var(--faint);width:6px;height:6px;padding:0;font-size:0;overflow:hidden}.main-nav a[aria-current=page] .badge{background:var(--beam)}}@media (width<=719px){.header-inner{min-height:0;padding-top:10px;padding-bottom:8px}.lang{margin-left:auto}.main-nav{width:calc(100% + 2 * var(--gutter));margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);order:3}.main-nav a{padding:8px 12px}}.btn{border:1.5px solid var(--ink);min-height:50px;color:var(--ink);font:600 1rem/1 var(--font-display);letter-spacing:-.01em;cursor:pointer;transition:transform .25s var(--ease), background-color .25s, border-color .25s, color .25s, box-shadow .25s;background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 24px;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.btn:active{transform:translateY(0)scale(.98)}.btn:disabled{cursor:progress;opacity:.75;transform:none}.btn .arrow{transition:transform .3s var(--ease)}.btn:hover .arrow{transform:translate(4px)}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-accent.is-done{background:var(--beam);border-color:var(--beam);color:var(--ink)}.btn-ghost{border-color:var(--rule-strong)}.btn-ghost:hover{border-color:var(--ink)}.hero{padding:clamp(36px,6vw,72px) 0 clamp(48px,7vw,96px);position:relative;overflow:hidden}.hero-bg{background-image:linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px);opacity:.8;background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 70% at 72% 45%,#000 20%,#0000 72%);mask-image:radial-gradient(60% 70% at 72% 45%,#000 20%,#0000 72%)}.hero-grid{gap:24px;display:grid;position:relative}@media (width>=960px){.hero-grid{grid-template-columns:1.08fr .92fr;align-items:center;gap:40px}}.eyebrow{border:1px solid var(--rule-strong);color:var(--ink-2);font:500 .74rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#fff;border-radius:999px;align-items:center;gap:10px;margin-bottom:26px;padding:8px 14px 8px 12px;display:inline-flex}:lang(zh) .eyebrow{letter-spacing:.12em}.eyebrow-dot{background:var(--beam);width:8px;height:8px;animation:ping 2.4s var(--ease) infinite;border-radius:50%;box-shadow:0 0 #d9f84ab3}.display{letter-spacing:-.05em;max-width:13ch;font-size:clamp(2.7rem,7vw,5.6rem);font-weight:600;line-height:.96}.display em{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--accent);font-style:italic;font-weight:400}:lang(zh) .display{letter-spacing:0;max-width:12em;font-size:clamp(2.1rem,4.4vw,3.8rem);line-height:1.12}:lang(zh) .display em{letter-spacing:0;color:var(--ink);background:linear-gradient(transparent 58%, var(--beam) 58% 92%, transparent 92%);font-family:inherit;font-style:normal;font-weight:600}.hero-copy .lede{margin-top:26px}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.hero-note{font:.8rem/1.6 var(--font-mono);color:var(--muted);letter-spacing:.01em;margin:30px 0 0}.hero-art{--px:0;--py:0;width:100%;max-width:560px;height:clamp(340px,44vw,580px);margin-inline:auto;position:relative}.hero-art .layer{transform:translate3d(calc(var(--px) * var(--depth) * 14px), calc(var(--py) * var(--depth) * 10px), 0);transition:transform .6s var(--ease);pointer-events:none;position:absolute;inset:0}.ufo-layer{z-index:4}.ufo{width:min(58%,300px);animation:5.5s ease-in-out infinite alternate hover;position:absolute;top:2%;left:50%;translate:-50%}.ufo svg{filter:drop-shadow(0 18px 22px #14122b38);width:100%;height:auto;display:block}.ufo-light{animation:2.2s ease-in-out infinite blink;animation-delay:calc(var(--i) * .28s)}.beam-layer{z-index:3}.beam{clip-path:polygon(41% 0,59% 0,100% 100%,0 100%);mix-blend-mode:multiply;background:linear-gradient(#d9f84af2,#d9f84a59 55%,#d9f84a00 96%);width:84%;height:76%;animation:3.6s ease-in-out infinite alternate beam;position:absolute;top:20%;left:50%;translate:-50%}.sheet-layer{z-index:1}.sheet-layer.s1{z-index:2}.float-sheet{width:32%;box-shadow:var(--shadow-sheet);animation:7s ease-in-out infinite drift;position:absolute}.float-sheet svg{width:100%;height:auto;display:block}.s0 .float-sheet{--r:-14deg;animation-duration:7.5s;top:44%;left:12%}.s1 .float-sheet{--r:3deg;width:34%;animation-duration:6.2s;animation-delay:-2s;top:30%;left:34%}.s2 .float-sheet{--r:15deg;animation-duration:8s;animation-delay:-4s;top:47%;left:58%}.hero-ground{background:radial-gradient(#14122b29,#0000 70%);width:78%;height:34px;position:absolute;bottom:1%;left:50%;translate:-50%}@keyframes hover{0%{transform:translateY(0)rotate(-1.5deg)}to{transform:translateY(-14px)rotate(1.5deg)}}@keyframes drift{0%,to{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-18px) rotate(calc(var(--r,0deg) + 3deg))}}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes beam{0%{opacity:.7}to{opacity:1}}@keyframes ping{0%{box-shadow:0 0 #d9f84acc}80%,to{box-shadow:0 0 0 10px #d9f84a00}}.section-head{border-top:1px solid var(--ink);grid-template-columns:3.2rem 1fr;align-items:baseline;gap:4px 12px;margin-bottom:clamp(26px,3.4vw,40px);padding-top:18px;display:grid}.section-index{font:500 .78rem/1 var(--font-mono);color:var(--muted);letter-spacing:.04em}.section-head h2{max-width:28ch;margin:0}.section-head p{color:var(--muted);margin:10px 0 0}@media (width<=559px){.section-head{grid-template-columns:1fr}}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}}.card{border-radius:var(--radius);border:1px solid var(--rule);height:100%;color:var(--ink);transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;background:#fff;flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.card:hover{border-color:var(--rule-strong);box-shadow:var(--shadow-lift);transform:translateY(-4px)}.card-sheet{aspect-ratio:5/4.6;background:var(--desk);justify-content:center;align-items:flex-start;padding:22px 18% 0;display:flex;overflow:hidden}.card-sheet.is-landscape{align-items:center;padding:0 12%}.card-sheet svg{width:100%;height:auto;box-shadow:var(--shadow-sheet);transition:transform .55s var(--ease);flex-shrink:0;display:block;transform:rotate(-2.5deg)}.card:hover .card-sheet svg{transform:rotate(0)translateY(-4%)}.card-body{border-top:1px solid var(--rule);background:#fff;flex-direction:column;flex:1;padding:16px 18px 18px;display:flex;position:relative}.card-body h3{margin:0 0 4px;padding-right:28px}.card-body p{color:var(--muted);margin:0 0 12px;font-size:.92rem;line-height:1.5}.card-meta{font:.72rem/1.4 var(--font-mono);color:var(--faint);margin-top:auto}.card-go{background:var(--desk);width:28px;height:28px;color:var(--ink);transition:background-color .3s, transform .35s var(--ease);border-radius:50%;place-items:center;display:grid;position:absolute;top:16px;right:16px}.card:hover .card-go,.category-card:hover .card-go{background:var(--beam);transform:rotate(-45deg)}@media (width<=719px){.card-sheet{padding:14px 16% 0}.card-sheet.is-landscape{padding:0 10%}.card-body{padding:12px 12px 14px}.card-body h3{font-size:1rem}.card-body p{font-size:.85rem}.card-go{display:none}}.category-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.category-card{border-radius:var(--radius-lg);border:1px solid var(--rule);height:100%;color:var(--ink);transition:transform .35s var(--ease), box-shadow .35s var(--ease);background:#fff;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.category-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px)}.category-card-body{border-top:1px solid var(--rule);padding:20px 22px 24px;position:relative}.category-index{font:500 .75rem/1 var(--font-mono);color:var(--faint);margin-bottom:10px;display:block}.category-card-body h3{align-items:center;gap:8px;margin:0 0 6px;padding-right:32px;font-size:1.3rem;display:flex}.category-card-body p{color:var(--muted);margin:0;font-size:.95rem}.category-card-body .card-go{top:20px;right:20px}.category-art{background:radial-gradient(circle at 50% 120%, #d9f84a59, transparent 60%), var(--desk);place-items:center;height:230px;display:grid;position:relative;overflow:hidden}.category-card.is-soon .category-art{background:var(--desk)}.category-art svg{transition:transform .5s var(--ease)}.category-card:hover .category-art svg{transform:translateY(-6px)scale(1.04)}.category-art.has-sheets .art-sheet{width:104px;box-shadow:var(--shadow-sheet);transform:translateX(calc(-50% + (var(--i) - 1) * var(--spread,54px))) rotate(calc((var(--i) - 1) * 9deg));transition:transform .55s var(--ease);position:absolute;top:34px;left:50%}.category-art.has-sheets .art-sheet:nth-child(2){z-index:1}.category-card:hover .art-sheet{transform:translateX(calc(-50% + (var(--i) - 1) * (var(--spread,54px) + 10px))) rotate(calc((var(--i) - 1) * 13deg)) translateY(-8px)}.art-sheet svg{width:100%;height:auto;display:block}.features{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:28px 24px;margin:0;padding:0;list-style:none;display:grid}.features li{border-top:1px solid var(--rule-strong);padding-top:22px}.feature-icon{background:var(--beam);width:46px;height:46px;color:var(--ink);border-radius:14px;place-items:center;margin-bottom:18px;display:grid}.features h3{font-size:1.15rem}.features p{color:var(--muted);margin:0}.steps,.print-steps{counter-reset:none;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.steps li,.print-steps li{border-radius:var(--radius);background:var(--desk);padding:26px 24px 28px;position:relative}.step-num{font:600 2.4rem/1 var(--font-display);letter-spacing:-.04em;color:#0000;-webkit-text-stroke:1.2px var(--ink);margin-bottom:26px;display:inline-block}.steps h3{margin-bottom:6px}.steps p,.print-steps p{color:var(--muted);margin:0}.print-steps p{color:var(--ink-2)}.page-head{margin-bottom:clamp(24px,3vw,36px);padding-top:clamp(28px,4vw,52px)}.page-head h1{max-width:22ch;margin-bottom:18px}:lang(zh) .page-head h1{max-width:18em}.breadcrumbs ol{font:.8rem/1.4 var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:6px;margin:0 0 22px;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:center;gap:6px;display:inline-flex}.breadcrumbs li+li:before{content:"";opacity:.5;background:currentColor;width:12px;height:12px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 4l4 4-4 4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.breadcrumbs a{color:inherit;text-decoration:none}.breadcrumbs a:hover{color:var(--ink)}.tags{font:.78rem/1 var(--font-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.tag{border:1px solid var(--rule-strong);color:var(--ink);font:500 .82rem/1 var(--font-body);border-radius:999px;padding:6px 11px;text-decoration:none;transition:background-color .2s,border-color .2s}.tag:hover{background:var(--beam);border-color:var(--beam)}.browse{gap:14px;padding-bottom:8px;display:grid}.browse-row{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.browse-label{min-width:7.5em;font:500 .74rem/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.group{margin-top:clamp(56px,7vw,88px);scroll-margin-top:96px}.group-anchor{scroll-margin-top:96px;display:block}.group-head{border-top:1px solid var(--ink);grid-template-columns:auto 1fr;align-items:baseline;gap:4px 14px;margin-bottom:22px;padding-top:16px;display:grid}.group-head h2{margin:0}.group-count{font:500 .78rem/1 var(--font-mono);color:var(--faint)}.group-head p{color:var(--muted);grid-column:1/-1;margin:4px 0 0}.batch{border:1.5px solid var(--rule);background:#fff;border-radius:14px;margin-top:20px}.batch summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:0 14px;font-weight:600;list-style:none;display:flex}.batch summary::-webkit-details-marker{display:none}.batch summary .chevron{color:var(--muted);transition:transform .25s var(--ease)}.batch[open] summary .chevron{transform:rotate(180deg)}.batch-body{gap:8px;padding:0 14px;display:grid}.batch-body .hint{margin:0}.batch-count{min-height:1em;color:var(--accent);font:600 .8rem/1.2 var(--font-mono);margin:8px 14px 14px}.month-nav{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:18px;display:flex}.month-nav>span{font:500 .78rem/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.chip[aria-current=page]{background:var(--ink);border-color:var(--ink);color:#fff}.hub-more{color:var(--ink);transition:color .2s, gap .25s var(--ease);border-bottom:1.5px solid;align-items:center;gap:8px;margin-top:22px;padding-bottom:2px;font-weight:600;text-decoration:none;display:inline-flex}.hub-more:hover{color:var(--accent);gap:12px}.soon{border:1.5px dashed var(--rule-strong);border-radius:var(--radius-lg);align-items:center;gap:28px;padding:24px;display:grid}@media (width>=760px){.soon{grid-template-columns:300px 1fr;padding:36px}}.soon .category-art{border-radius:var(--radius)}.soon ul{color:var(--ink-2);margin:0 0 26px;padding-left:1.2em}.soon li+li{margin-top:6px}.table-scroll{margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.96rem}.data-table thead th{border-bottom:1px solid var(--ink);font:500 .72rem/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;text-align:left;color:var(--muted);padding:0 16px 12px 0}.data-table tbody th,.data-table td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:16px 16px 16px 0}.data-table tbody th{white-space:nowrap;font-weight:600}.data-table tbody th a{color:var(--ink);background:linear-gradient(var(--beam), var(--beam)) 0 100% / 0 40% no-repeat;transition:background-size .35s var(--ease);text-decoration:none}.data-table tbody th a:hover{background-size:100% 40%}.data-table .sub{font:400 .76rem/1.3 var(--font-mono);color:var(--faint);margin-top:4px;display:block}.data-table td{color:var(--ink-2)}.data-table td.num{font:.86rem/1.5 var(--font-mono)}.data-table tr.is-default>*{background:var(--beam-soft)}.data-table tr.is-default>:first-child{box-shadow:inset 3px 0 0 var(--beam);padding-left:14px}.data-table tbody th,.data-table thead th:first-child{padding-left:14px}.tag-default{background:var(--beam);font:600 .64rem/1 var(--font-mono);vertical-align:middle;border-radius:999px;margin-left:8px;padding:3px 7px;display:inline-block}.content-grid{gap:40px;display:grid}@media (width>=960px){.content-grid{grid-template-columns:1.45fr 1fr;align-items:start;gap:72px}}.about{max-width:62ch;color:var(--ink-2);font-size:clamp(1.06rem,1.3vw,1.18rem);line-height:1.8}.about:first-line{color:var(--ink)}.uses{border-radius:var(--radius-lg);background:var(--desk);padding:28px}.uses h3{margin-bottom:18px}.uses ul{gap:14px;margin:0;padding:0;list-style:none;display:grid}.uses li{color:var(--ink-2);padding-left:34px;position:relative}.uses li:before{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.2 8.4l2.6 2.5L11.8 5.4' fill='none' stroke='%2314122b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat, var(--beam);border-radius:50%;width:22px;height:22px;position:absolute;top:.15em;left:0}.faq details{border-bottom:1px solid var(--rule)}.faq details:first-child{border-top:1px solid var(--rule)}.faq summary{cursor:pointer;font:600 1.06rem/1.45 var(--font-display);letter-spacing:-.01em;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;list-style:none;transition:color .2s;display:flex}.faq summary:hover{color:var(--accent)}.faq summary::-webkit-details-marker{display:none}.faq summary .chevron{background:var(--desk);width:32px;height:32px;color:var(--ink);transition:transform .35s var(--ease), background-color .25s;border-radius:50%;flex-shrink:0;padding:8px}.faq details[open] summary .chevron{background:var(--beam);transform:rotate(180deg)}.faq details::details-content{height:0;transition:height .35s var(--ease), content-visibility .35s allow-discrete;overflow:clip}.faq details[open]::details-content{height:auto}.faq details p{max-width:68ch;color:var(--muted);margin:0 0 22px}.gen{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width>=960px){.gen{grid-template-columns:minmax(0,1fr) 360px;gap:24px}.gen-panel{position:sticky;top:88px}}.gen-stage{border-radius:var(--radius-lg);background:radial-gradient(circle at 50% 0%, #ffffffe6, transparent 60%), var(--desk);flex-direction:column;align-items:center;gap:18px;padding:clamp(30px,5vw,60px) clamp(18px,4vw,48px) 26px;display:flex;position:relative}.crop{border:0 solid var(--faint-line);width:16px;height:16px;position:absolute}.crop.tl{border-width:1px 0 0 1px;top:14px;left:14px}.crop.tr{border-width:1px 1px 0 0;top:14px;right:14px}.crop.bl{border-width:0 0 1px 1px;bottom:14px;left:14px}.crop.br{border-width:0 1px 1px 0;bottom:14px;right:14px}.sheet-frame{--ratio:.7071;width:min(100%, calc(70svh * var(--ratio) + 34px));grid-template-rows:30px auto;grid-template-columns:minmax(0,1fr) 34px;margin-left:34px;display:grid}.sheet{width:100%;aspect-ratio:var(--ratio);box-shadow:var(--shadow-sheet);transition:aspect-ratio .4s var(--ease);background:#fff;grid-area:2/1}.sheet svg{width:100%;height:100%;display:block}.sheet.is-updating{animation:settle .5s var(--ease-spring)}@keyframes settle{0%{transform:translateY(-8px)scale(.985)}to{transform:none}}.dim{color:var(--muted);font:500 .7rem/1 var(--font-mono);letter-spacing:.02em;place-items:center;display:grid;position:relative}.dim:before{content:"";position:absolute}.dim span{background:var(--desk);padding:2px 8px;position:relative}.dim-x{background:linear-gradient(var(--faint-line), var(--faint-line)) left center / 1px 10px no-repeat, linear-gradient(var(--faint-line), var(--faint-line)) right center / 1px 10px no-repeat;grid-area:1/1;margin-bottom:10px}.dim-x:before{border-top:1px solid var(--faint-line);top:50%;left:0;right:0}.dim-y{background:linear-gradient(var(--faint-line), var(--faint-line)) center top / 10px 1px no-repeat, linear-gradient(var(--faint-line), var(--faint-line)) center bottom / 10px 1px no-repeat;grid-area:2/2;margin-left:10px}.dim-y:before{border-left:1px solid var(--faint-line);top:0;bottom:0;left:50%}.dim-y span{writing-mode:vertical-rl;padding:8px 2px;transform:rotate(180deg)}.gen-summary{font:500 .8rem/1.4 var(--font-mono);color:var(--ink-2);text-align:center;background:#fff;border-radius:999px;margin:0;padding:6px 12px}.gen-panel{border-radius:var(--radius-lg);border:1px solid var(--rule);background:#fff;flex-direction:column;gap:18px;padding:22px;display:flex;box-shadow:0 24px 60px -48px #14122b80}.panel-heading{font:500 .72rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin:2px 0 -4px;display:flex}.panel-heading:after{content:"";border-top:1px solid var(--rule);flex:1}.fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:16px 12px;display:grid}.fields>.full{grid-column:1/-1}.field{border:0;flex-direction:column;gap:7px;min-width:0;margin:0;padding:0;display:flex}.field-label{font:600 .82rem/1.25 var(--font-display);letter-spacing:-.005em;color:var(--ink);padding:0}.field-unit{color:var(--faint);font-weight:500}fieldset.field>legend{float:left;width:100%;margin-bottom:7px}.field small{color:var(--faint);font-size:.78rem}input[type=number]{border:1.5px solid var(--rule);width:100%;min-height:44px;color:var(--ink);font:500 .95rem/1 var(--font-mono);background:#fff;border-radius:12px;padding:0 12px;transition:border-color .2s,box-shadow .2s}input[type=number]:hover{border-color:var(--rule-strong)}input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.seg{background:var(--desk);border-radius:12px;gap:4px;padding:4px;display:flex}.seg label{flex:1 1 0;min-width:0;position:relative}.seg input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg label>span{text-overflow:ellipsis;text-align:center;min-height:36px;color:var(--muted);font:500 .88rem/36px var(--font-body);white-space:nowrap;border-radius:9px;padding:0 8px;transition:background-color .2s,color .2s,box-shadow .2s;display:block;overflow:hidden}.seg label>span svg{vertical-align:middle;margin-top:-2px}.seg input:checked+span{color:var(--ink);background:#fff;box-shadow:0 1px 3px #14122b24}.seg input:focus-visible+span{outline:2.5px solid var(--accent);outline-offset:1px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1.5px solid var(--rule);min-height:34px;color:var(--ink);font:500 .85rem/1 var(--font-body);cursor:pointer;transition:border-color .2s, background-color .2s, transform .2s var(--ease);background:#fff;border-radius:999px;align-items:center;padding:0 13px;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--ink)}.chip:active{transform:scale(.96)}.chip[aria-pressed=true]{background:var(--beam);border-color:var(--beam)}.check{cursor:pointer;align-items:center;gap:10px;font-size:.94rem;display:flex}.check input{width:19px;height:19px;accent-color:var(--accent);margin:0}.colors{flex-wrap:wrap;align-items:center;gap:8px;display:flex}input[type=color]{border:1.5px solid var(--rule);cursor:pointer;background:#fff;border-radius:9px;width:44px;height:32px;padding:2px}.swatch{background:var(--swatch);width:26px;height:26px;box-shadow:0 0 0 1.5px var(--rule);cursor:pointer;transition:transform .25s var(--ease-spring), box-shadow .2s;border:2px solid #fff;border-radius:50%}.swatch:hover{transform:scale(1.12)}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink)}.actions{gap:10px;margin-top:4px;display:flex}@media (width<=959px){.actions{z-index:5;padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#fff 22%);margin:4px -22px -6px;position:sticky;bottom:0}}.actions .btn-accent{flex:1.4}.actions .btn-ghost{flex:1}.actions .btn{white-space:nowrap;min-height:52px;padding:0 16px}.hint{color:var(--faint);margin:-6px 0 0;font-size:.8rem}.gen{scroll-margin-top:88px}.tpl-toolbar{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:22px;display:flex}.tpl-toolbar .seg{min-width:min(100%,280px)}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}@media (width<=719px){.tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.tpl-card{border-radius:var(--radius);border:1px solid var(--rule);transition:transform .35s var(--ease), box-shadow .35s var(--ease);background:#fff;flex-direction:column;display:flex;overflow:hidden}.tpl-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-3px)}.tpl-sheet{aspect-ratio:1;background:var(--desk);place-items:center;padding:16%;display:grid}.tpl-sheet svg{width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:var(--shadow-sheet);transition:transform .5s var(--ease);display:block}.tpl-card:hover .tpl-sheet svg{transform:scale(1.04)}.tpl-body{border-top:1px solid var(--rule);flex-direction:column;flex:1;padding:14px 14px 16px;display:flex}.tpl-body h3{margin:0 0 3px;font-size:1rem}.tpl-meta{font:.72rem/1.4 var(--font-mono);color:var(--faint);margin:0 0 14px}.tpl-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;display:flex}.btn-sm{gap:7px;min-height:36px;padding:0 14px;font-size:.88rem}.btn-icon{width:36px;padding:0}.btn.is-done{background:var(--beam);border-color:var(--beam);color:var(--ink)}.tpl-edit{color:var(--ink-2);font:600 .86rem/1 var(--font-display);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-left:auto;padding:6px 2px;display:inline-flex}.tpl-edit .arrow{width:15px;height:15px;transition:transform .3s var(--ease)}.tpl-edit:hover{color:var(--accent)}.tpl-edit:hover .arrow{transform:translate(3px)}.link-button{color:var(--accent);font:inherit;text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.category-art.is-landscape{container-type:inline-size}.category-art.has-sheets.is-landscape .art-sheet{--spread:min(72px, 17cqi);width:min(150px,36cqi);top:50%;translate:0 -50%}input[type=text],textarea{border:1.5px solid var(--rule);width:100%;color:var(--ink);font:500 .95rem/1.5 var(--font-body);resize:vertical;background:#fff;border-radius:12px;padding:11px 12px;transition:border-color .2s,box-shadow .2s}input[type=text]{min-height:44px;padding-block:0}input[type=text]:hover,textarea:hover{border-color:var(--rule-strong)}input[type=text]:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}[hidden]{display:none!important}.tpl-open{border:1.5px solid var(--ink);background:var(--beam);width:100%;min-height:52px;color:var(--ink);font:600 1rem/1 var(--font-display);cursor:pointer;transition:transform .25s var(--ease), box-shadow .25s;border-radius:14px;align-items:center;gap:10px;padding:0 16px;display:flex}.tpl-open:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.tpl-open-count{background:var(--ink);color:#fff;font:600 .72rem/1 var(--font-mono);border-radius:999px;margin-left:auto;padding:4px 9px}.tpl-dialog{border-radius:var(--radius-lg);width:min(1040px,100vw - 32px);max-height:min(86vh,900px);color:var(--ink);background:#fff;border:0;padding:0;overflow:hidden;box-shadow:0 40px 120px -30px #14122b8c}.tpl-dialog[open]{animation:dialog-in .32s var(--ease);flex-direction:column;display:flex}.tpl-dialog::backdrop{-webkit-backdrop-filter:blur(6px);background:#14122b66}@keyframes dialog-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}.tpl-dialog-head{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.tpl-dialog-head h2{margin:0;font-size:1.35rem}.tpl-dialog-close{background:var(--desk);width:38px;height:38px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;place-items:center;transition:background-color .2s;display:grid}.tpl-dialog-close:hover{background:var(--beam)}.tpl-filter{border-bottom:1px solid var(--rule);padding:16px 24px}.tpl-pick-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:14px;margin:0;padding:22px 24px 28px;list-style:none;display:grid;overflow-y:auto}@media (width<=559px){.tpl-pick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px}}.tpl-pick{width:100%;color:var(--ink);font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:10px;padding:0;display:flex}.tpl-pick-sheet{aspect-ratio:4/3;border-radius:var(--radius);background:var(--desk);place-items:center;padding:10%;transition:background-color .25s,box-shadow .25s;display:grid}.tpl-pick-sheet svg{width:auto;max-width:100%;height:auto;max-height:100%;box-shadow:var(--shadow-sheet);transition:transform .4s var(--ease);display:block}.tpl-pick:hover .tpl-pick-sheet,.tpl-pick:focus-visible .tpl-pick-sheet{background:var(--beam-soft);box-shadow:inset 0 0 0 2px var(--beam)}.tpl-pick:hover .tpl-pick-sheet svg{transform:translateY(-3px)scale(1.03)}.tpl-pick-name{font:600 .92rem/1.3 var(--font-display)}.tpl-toolbar .tpl-filter{border:0;flex-basis:100%;padding:0}.dropdown{position:relative}.dropdown-trigger{border:1.5px solid var(--rule);width:100%;min-height:44px;color:var(--ink);font:500 .94rem/1 var(--font-body);text-align:left;white-space:nowrap;cursor:pointer;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:0 10px 0 12px;transition:border-color .2s,box-shadow .2s;display:flex}.dropdown-trigger>span{text-overflow:ellipsis;overflow:hidden}.dropdown-trigger:hover{border-color:var(--rule-strong)}.dropdown.is-open .dropdown-trigger,.dropdown-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.dropdown-trigger .chevron{color:var(--muted);transition:transform .25s var(--ease);flex-shrink:0}.dropdown.is-open .dropdown-trigger .chevron{transform:rotate(180deg)}.dropdown-menu{z-index:40;border:1px solid var(--rule);transform-origin:top;min-width:100%;max-height:300px;transition:opacity .18s, transform .18s var(--ease);background:#fff;border-radius:14px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 20px 48px -16px #14122b4d}@starting-style{.dropdown-menu:not([hidden]){opacity:0;transform:translateY(-4px)scale(.98)}}.dropdown-menu [data-dropdown-item]{color:var(--ink);white-space:nowrap;cursor:pointer;border-radius:9px;outline:none;justify-content:space-between;align-items:center;gap:14px;padding:10px 11px;font-size:.93rem;line-height:1.2;text-decoration:none;display:flex}.dropdown-menu [data-dropdown-item]:hover,.dropdown-menu [data-dropdown-item]:focus{background:var(--desk)}.dropdown-menu [aria-selected=true],.dropdown-menu [aria-current=page]{color:var(--accent);font-weight:600}.dropdown-menu [aria-selected=true]:after,.dropdown-menu [aria-current=page]:after{content:"";background:currentColor;flex-shrink:0;width:14px;height:14px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.lang .dropdown-trigger{width:auto;min-height:38px;font:500 .88rem/1 var(--font-display);border-radius:999px}.lang .globe{flex-shrink:0}.lang .dropdown-menu{min-width:170px;left:auto;right:0}.site-footer{margin-top:var(--section);background:var(--ink);color:#b9b5cf;padding:clamp(56px,7vw,88px) 0 28px;overflow:hidden}.site-footer .logo{--logo-fg:#fff;--logo-dome:#a99bff}.site-footer .wordmark{color:#fff}.site-footer .wordmark-ufo{color:#a99bff}.site-footer a{color:#fff;text-decoration:none;transition:color .2s}.site-footer a:hover{color:var(--beam)}.footer-top{gap:44px;display:grid}@media (width>=900px){.footer-top{grid-template-columns:1fr 2fr;gap:64px}}.footer-brand .brand{color:#fff}.footer-brand p{max-width:34ch;margin:16px 0 0}.footer-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;display:grid}@media (width>=720px){.footer-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}.footer-title{font:500 .72rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#8a86a3;margin:0 0 16px}.footer-cols ul{gap:10px;margin:0;padding:0;font-size:.93rem;list-style:none;display:grid}.footer-wordmark{font:700 clamp(4.5rem, 19vw, 15rem)/.95 var(--font-display);letter-spacing:-.065em;color:#0000;-webkit-text-stroke:1px #ffffff38;user-select:none;margin:clamp(48px,7vw,88px) 0 clamp(18px,3vw,36px)}.footer-wordmark span{-webkit-text-stroke-color:#d9f84a8c}.footer-bottom{font:.78rem/1.4 var(--font-mono);border-top:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;display:flex}.footer-langs{gap:18px;display:flex}.footer-langs a[aria-current]{color:var(--beam)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
