:root{--paper: #F9F3E7;--paper-deep: #F1E8D6;--polaroid: #FFFDF8;--ink: #1E1B18;--pencil: #7A746B;--vermilion: #DF6648;--vermilion-deep: #B8432A;--line: rgba(30, 27, 24, .14);--ease: cubic-bezier(.22, 1, .36, 1);--font: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "PingFang TC", "Noto Sans TC", "Noto Sans JP", "Microsoft JhengHei", sans-serif}.boo-klee{--font: "Klee One", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body.boo{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.5rem;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.boo:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px}img{display:block;max-width:100%;height:auto}a{color:inherit}h1,h2,h3{font-weight:600;text-wrap:balance}p,li{text-wrap:pretty}::selection{background:var(--vermilion);color:var(--polaroid)}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:4px}.skip{position:absolute;left:16px;top:-64px;z-index:100;padding:8px 12px;background:var(--ink);color:var(--polaroid);border-radius:8px;text-decoration:none}.skip:focus{top:16px}.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 24px}@media(max-width:480px){.wrap{padding:0 16px}}.kicker{display:inline-block;font-size:.875rem;line-height:1.25rem;font-weight:600;color:var(--vermilion-deep);letter-spacing:.02em;margin-bottom:12px}.js .reveal{opacity:0;transform:translateY(32px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.js .reveal.is-in{opacity:1;transform:none}.nav-wrap{position:sticky;top:0;z-index:50;display:flex;justify-content:center;padding:12px 16px 0;pointer-events:none}.nav{pointer-events:auto;display:flex;align-items:center;gap:16px;padding:4px 4px 4px 12px;background:#fffdf8b8;backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1.5px solid var(--ink);border-radius:9999px;box-shadow:2px 2px 0 var(--vermilion)}.nav-brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:600}.nav-brand img{border-radius:8px}.nav-langs{display:flex;list-style:none;gap:2px}.nav-langs a{display:inline-flex;align-items:center;min-height:36px;padding:0 8px;font-size:.875rem;line-height:1.25rem;color:var(--pencil);text-decoration:none;border-radius:9999px;transition:color .3s var(--ease),background-color .3s var(--ease)}.nav-langs a:hover{color:var(--ink);background:var(--paper-deep)}.nav-langs a[aria-current]{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--vermilion);text-decoration-thickness:2px;text-underline-offset:4px}.nav-cta{display:inline-flex;align-items:center;min-height:36px;padding:8px 12px;font-size:.875rem;line-height:1.25rem;font-weight:600;background:var(--ink);color:var(--polaroid);border-radius:9999px;text-decoration:none;transition:transform .3s var(--ease),background-color .3s var(--ease)}.nav-cta:hover{background:var(--vermilion-deep)}.nav-cta:active{transform:scale(.98)}@media(max-width:480px){.nav{gap:4px;padding-left:8px}.nav-brand span{display:none}.nav-langs a{padding:0 8px}}.badge{display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:8px 24px 8px 16px;background:var(--ink);color:var(--polaroid);border:1.5px solid var(--ink);border-radius:12px;box-shadow:4px 4px 0 var(--vermilion);text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}a.badge:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--vermilion)}a.badge:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--vermilion)}.badge svg{flex-shrink:0}.badge-text{display:flex;flex-direction:column;line-height:1;text-align:left}.badge-small{font-size:.75rem;line-height:1rem;opacity:.85}.badge-big{font-size:1.25rem;line-height:1.75rem;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;letter-spacing:-.01em}.badge.is-soon{background:var(--polaroid);color:var(--ink);box-shadow:4px 4px 0 var(--line);cursor:default}.foot{margin-top:96px;border-top:1.5px solid var(--ink)}.foot-inner{max-width:1120px;margin:0 auto;padding:48px 24px 64px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.foot-brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1.25rem;line-height:1.75rem;font-weight:600}.foot-brand img{border-radius:12px}.foot-links{display:flex;flex-wrap:wrap;justify-content:center;list-style:none;column-gap:24px}.foot-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px;transition:text-decoration-color .3s var(--ease)}.foot-links a:hover,.foot-links a[aria-current]{text-decoration-color:var(--vermilion);text-decoration-thickness:2px}.foot-note,.foot-copy{font-size:.875rem;line-height:1.25rem;color:var(--pencil)}.doc{max-width:720px;margin:0 auto;padding:64px 24px 0}@media(max-width:480px){.doc{padding:48px 16px 0}}.doc-head{position:relative;padding-bottom:32px;margin-bottom:32px;border-bottom:1.5px solid var(--ink)}.doc-head h1{font-size:2.25rem;line-height:2.5rem;margin-bottom:12px}.doc-head .meta{color:var(--pencil);font-size:.875rem;line-height:1.25rem}.doc-head .lead{font-size:1.125rem;line-height:1.75rem;max-width:520px}.doc-head img{position:absolute;right:0;bottom:16px;width:120px}@media(max-width:600px){.doc-head{padding-right:96px}.doc-head img{width:88px}.doc-head h1{font-size:1.875rem;line-height:2.25rem}}.doc h2{font-size:1.25rem;line-height:1.75rem;margin:40px 0 12px;scroll-margin-top:96px}.doc p,.doc li{font-size:1rem;line-height:1.75rem}.doc p+p{margin-top:12px}.doc ul{padding-left:24px;margin-top:12px}.doc li+li{margin-top:8px}.doc li::marker{color:var(--vermilion)}.doc a{color:var(--vermilion-deep);text-underline-offset:3px}.doc a:hover{color:var(--ink)}.doc-back{margin-top:48px}@media(prefers-reduced-motion:reduce){.js .reveal{transform:none;transition:opacity .4s var(--ease)}*,*:before,*:after{scroll-behavior:auto!important}}
