*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #FFFFFF;--bg-secondary: #F5F5F5;--bg-tertiary: #FAFAFA;--bg-elevated: #FFFFFF;--bg-surface: #F5F5F5;--text-primary: #111111;--text-secondary: #555555;--text-muted: #888888;--text-tertiary: #AAAAAA;--border: #E5E5E5;--border-light: #F0F0F0;--border-strong: #D0D0D0;--accent: #0055FF;--accent-hover: #0044CC;--accent-subtle: rgba(0, 85, 255, .06);--accent-mid: rgba(0, 85, 255, .14);--accent-strong: rgba(0, 85, 255, .25);--on-accent: #FFFFFF;--warning: #B86A00;--overlay-scrim: rgba(0, 0, 0, .5);--hover-surface: color-mix(in srgb, var(--text-primary) 8%, transparent);--code-bg: #F8F8F8;--code-text: #111111;--code-border: #E8E8E8;--space-3xs: .25rem;--space-2xs: .375rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4.5rem;--space-4xl: 6rem;--font-body: "IBM Plex Sans", "Noto Sans JP", "Noto Sans KR", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", ui-monospace, monospace;--font: var(--font-body);--text-xs: clamp(.75rem, .8vw, .8125rem);--text-sm: clamp(.8125rem, .9vw, .875rem);--text-base: clamp(.9375rem, 1vw, 1rem);--text-md: clamp(1rem, 1.1vw, 1.0625rem);--text-lg: clamp(1.125rem, 1.3vw, 1.25rem);--text-xl: clamp(1.375rem, 2vw, 1.75rem);--text-2xl: clamp(1.75rem, 3vw, 2.25rem);--text-3xl: clamp(2rem, 4vw, 2.75rem);--sidebar-w: 260px;--nav-h: 72px;--content-max: 960px;--toc-w: 200px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--duration: .15s;--duration-slow: .25s}[data-theme=dark]{--bg-primary: #0A0A0A;--bg-secondary: #111111;--bg-tertiary: #141414;--bg-elevated: #1A1A1A;--bg-surface: #111111;--text-primary: #E8E8E8;--text-secondary: #A0A0A0;--text-muted: #707070;--text-tertiary: #505050;--border: #222222;--border-light: #1A1A1A;--border-strong: #333333;--accent-subtle: rgba(0, 85, 255, .1);--accent-mid: rgba(0, 85, 255, .2);--accent-strong: rgba(0, 85, 255, .35);--warning: #E0A03B;--overlay-scrim: rgba(0, 0, 0, .6);--code-bg: #0D0D0D;--code-text: #D4D4D4;--code-border: #222222}::selection{background:var(--accent);color:var(--on-accent)}html{font-size:16px;scroll-behavior:smooth;overflow-x:hidden}body{font-family:var(--font-body);font-weight:400;font-size:var(--text-base);color:var(--text-primary);background:var(--bg-primary);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums;overflow-wrap:break-word;word-break:break-word;overflow-x:hidden}.nav-logo:focus-visible,.nav-links a:focus-visible,.control-btn:focus-visible,.lang-btn:focus-visible,.github-star:focus-visible,.ph-badge:focus-visible,.sidebar-link:focus-visible,.search-result:focus-visible,.toc-link:focus-visible,.copy-code-btn:focus-visible,.doc-action-btn:focus-visible,.doc-action-option:focus-visible,.mobile-menu-btn:focus-visible,.anchor-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mobile-menu-btn{display:none;position:fixed;top:max(env(safe-area-inset-top,0px),.75rem);left:max(env(safe-area-inset-left,0px),.75rem);z-index:200;min-width:44px;min-height:44px;padding:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:3px;color:var(--text-secondary);align-items:center;justify-content:center;cursor:pointer;transition:color var(--duration) var(--ease),border-color var(--duration) var(--ease),background var(--duration) var(--ease)}.mobile-menu-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-scrim);z-index:98;opacity:0;transition:opacity .3s var(--ease)}body.mobile-menu-open .mobile-overlay{display:block;opacity:1}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.25rem max(env(safe-area-inset-right,0px),3rem) 1.25rem max(env(safe-area-inset-left,0px),3rem);padding-top:max(env(safe-area-inset-top,0px),1.25rem);background:var(--bg-primary);transition:padding var(--duration) var(--ease),background var(--duration-slow) var(--ease),color var(--duration-slow) var(--ease)}.nav-left{display:flex;align-items:center;gap:3rem}.nav-logo{font-family:var(--font);font-weight:700;font-size:1.1rem;color:var(--text-primary);text-decoration:none;letter-spacing:0;display:flex;align-items:center;gap:.6rem;min-width:44px;min-height:44px}.logo-mark{flex-shrink:0;transform:translateY(-1px)}.logo-mark path:nth-child(3){stroke:var(--accent)}.nav-section{display:inline-flex;align-items:center;height:28px;padding:0 .625rem;border-left:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;white-space:nowrap}.nav-links{display:flex;align-items:center;gap:2rem}.nav-links a{color:var(--text-secondary);text-decoration:none;font-weight:500;font-size:1rem;transition:color var(--duration) var(--ease);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.nav-links a:hover{color:var(--text-primary)}.nav-controls{display:flex;align-items:stretch;gap:.5rem}.control-btn{background:transparent;border:none;color:var(--text-secondary);padding:.55rem;border-radius:3px;cursor:pointer;transition:color var(--duration) var(--ease);display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.control-btn:hover{color:var(--text-primary)}.theme-icon{display:none}[data-theme=dark] .theme-moon,[data-theme=light] .theme-sun{display:block}.lang-switcher{display:flex;align-items:center;gap:2px;background:var(--bg-elevated);border-radius:3px;padding:3px;border:none}.lang-btn{background:transparent;border:none;color:var(--text-muted);padding:.35rem .55rem;border-radius:3px;font-family:var(--font-body);font-size:.7rem;font-weight:600;cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease);min-width:44px;min-height:44px}.lang-btn:hover{color:var(--text-primary)}.lang-btn.active{background:var(--text-primary);color:var(--bg-primary)}.github-star{display:inline-flex;align-items:center;gap:2px;padding:3px;background:var(--bg-elevated);border:none;border-radius:3px;overflow:hidden;text-decoration:none;transition:opacity var(--duration) var(--ease);min-height:44px}.github-star:hover{opacity:.8}.github-star .gh-logo{display:flex;align-items:center;padding:.35rem .45rem;border-radius:3px;color:var(--text-primary)}.github-star .gh-stars{display:flex;align-items:center;gap:.3rem;padding:.35rem .5rem;background:var(--bg-secondary);border-radius:3px;color:var(--text-secondary);font-family:var(--font-mono);font-size:.78rem;font-weight:600}.github-star .gh-stars:has(.star-count:empty){display:none}.ph-badge{display:inline-flex;align-items:center;min-height:44px;transition:opacity var(--duration) var(--ease)}.ph-badge:hover{opacity:.8}.ph-badge img{display:block;border-radius:5px}.search-results{max-height:320px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-top:none;border-radius:0 0 3px 3px;box-shadow:0 4px 16px #0000001a}[data-theme=dark] .search-results{box-shadow:0 4px 16px #0006}.search-result{display:block;min-height:44px;padding:var(--space-sm) var(--space-md);text-decoration:none;border-bottom:1px solid var(--border-light);transition:background .15s var(--ease)}.search-result:last-child{border-bottom:none}.search-result:hover{background:var(--bg-secondary)}.search-result-title{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:.15rem}.search-result-snippet{display:block;font-size:var(--text-xs);color:var(--text-muted);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-empty{padding:var(--space-md);font-size:var(--text-sm);color:var(--text-muted)}.layout{display:flex;min-height:100vh;padding-top:var(--nav-h)}.sidebar{width:var(--sidebar-w);background:var(--bg-secondary);border-right:1px solid var(--border);position:fixed;top:var(--nav-h);left:0;bottom:0;overflow-y:auto;z-index:90;transition:background var(--duration-slow) var(--ease),border-color var(--duration-slow) var(--ease);display:flex;flex-direction:column;contain:layout style}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.sidebar-search{position:relative;padding:var(--space-md);border-bottom:1px solid var(--border);background:var(--bg-secondary)}.sidebar-search input{width:100%;min-height:44px;padding:var(--space-sm) var(--space-md);padding-left:2.25rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);outline:none;transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.sidebar-search input::placeholder{color:var(--text-muted)}.sidebar-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.search-icon{position:absolute;left:calc(var(--space-md) + .5rem);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.sidebar-nav{flex:1;padding:var(--space-md) var(--space-sm)}.sidebar-section{margin-bottom:var(--space-lg)}.sidebar-heading{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:var(--space-xs);padding:0 var(--space-sm)}.sidebar-link{display:flex;align-items:center;justify-content:space-between;min-height:44px;color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:500;padding:var(--space-xs) var(--space-sm);margin-bottom:1px;border-radius:3px;transition:color var(--duration) var(--ease),background var(--duration) var(--ease);line-height:1.4}.sidebar-link:hover{color:var(--text-primary);background:var(--bg-primary)}.sidebar-link.active{color:var(--text-primary);background:var(--bg-primary);font-weight:600;border-radius:3px}.sidebar-footer{padding:var(--space-md) var(--space-sm);border-top:1px solid var(--border);background:var(--bg-secondary)}.sidebar-easter{display:block;font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-xs) var(--space-sm);margin-top:var(--space-xs);font-style:italic;opacity:.7}.content-area{flex:1;width:calc(100% - var(--sidebar-w));min-width:0;margin-left:var(--sidebar-w);display:flex;gap:clamp(1.5rem,3vw,3rem);justify-content:center;transition:margin-left .3s;position:relative}main{flex:1;max-width:var(--content-max);padding:var(--space-2xl) var(--space-xl) var(--space-3xl);margin:0 auto;min-width:0}main h1{font-family:var(--font-body);font-size:var(--text-3xl);font-weight:500;letter-spacing:-.02em;margin-bottom:var(--space-lg);line-height:1.2;color:var(--text-primary);text-wrap:balance}main h2{font-family:var(--font-body);font-size:var(--text-xl);font-weight:600;margin-top:var(--space-3xl);margin-bottom:var(--space-md);letter-spacing:-.01em;color:var(--text-primary);line-height:1.35;text-wrap:balance;position:relative}main h2:first-of-type{margin-top:var(--space-lg)}main h3{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;margin-top:var(--space-2xl);margin-bottom:var(--space-sm);color:var(--text-primary);line-height:1.35;letter-spacing:-.01em}main h4{font-family:var(--font-body);font-size:var(--text-md);font-weight:600;margin-top:var(--space-xl);margin-bottom:var(--space-xs);color:var(--text-primary);line-height:1.4}main h5{font-family:var(--font-body);font-size:var(--text-base);font-weight:500;margin-top:var(--space-lg);margin-bottom:var(--space-2xs);color:var(--text-primary);line-height:1.4}.anchor-link{margin-left:var(--space-xs);width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;opacity:0;color:var(--text-muted);text-decoration:none;font-weight:400;transition:opacity var(--duration) var(--ease)}main h2:hover .anchor-link,main h3:hover .anchor-link,main h4:hover .anchor-link{opacity:.5}main h2:hover .anchor-link:hover,main h3:hover .anchor-link:hover,main h4:hover .anchor-link:hover{opacity:1;color:var(--accent)}.anchor-link.copied{opacity:1!important;color:var(--accent)}.doc-meta{display:flex;align-items:center;justify-content:space-between;margin-top:calc(var(--space-sm) * -1);margin-bottom:var(--space-xl);gap:var(--space-md)}.doc-meta .page-path{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;transition:color var(--duration) var(--ease);-webkit-user-select:all;user-select:all}.doc-meta .page-path:hover{color:var(--accent)}.doc-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.doc-action-wrapper{position:relative}.doc-action-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;border-radius:2px;color:var(--text-muted);cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease)}.doc-action-btn:hover{color:var(--text-primary)}main p{margin-bottom:var(--space-md);color:var(--text-secondary);line-height:1.8;font-size:var(--text-base)}main h1+p,main .doc-meta+p{font-size:var(--text-md);color:var(--text-secondary);margin-bottom:var(--space-xl);line-height:1.7}main h2+p,main h3+p{margin-top:0}main ul,main ol{margin-bottom:var(--space-md);padding-left:1.5rem}main li{margin-bottom:var(--space-2xs);color:var(--text-secondary);line-height:1.7}main li::marker{color:var(--accent)}main ul ul,main ol ol,main ul ol,main ol ul{margin-top:var(--space-xs);margin-bottom:var(--space-xs)}main strong{font-weight:700;color:var(--text-primary)}main em{font-style:italic;color:var(--text-secondary)}main a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-weight:500;text-decoration:none;transition:color var(--duration) var(--ease);border-bottom:1px solid transparent}main a:hover{color:var(--accent-hover);border-bottom-color:var(--accent-mid)}main hr{border:none;height:1px;background:var(--border);margin:var(--space-3xl) 0;position:relative}main hr:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:1px;background:var(--accent);opacity:.3}.content-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:3px;padding:var(--space-lg);margin-bottom:var(--space-lg);transition:border-color .2s var(--ease)}.content-card:hover{border-color:color-mix(in srgb,var(--accent) 15%,var(--border))}.content-card-title{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:var(--space-xs)}.content-card-icon{color:var(--accent);flex-shrink:0}.content-loading{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-lg) 0}.content-card p:last-child{margin-bottom:0}.info-card{background:var(--accent-subtle);border-left:3px solid var(--accent);border-radius:0 3px 3px 0;padding:var(--space-md);margin:var(--space-xl) 0}.info-card p{margin:0;color:var(--text-secondary)}.info-card p+p{margin-top:var(--space-sm)}.warning-card{background:color-mix(in srgb,var(--warning) 10%,transparent);border-left:3px solid var(--warning);border-radius:0 3px 3px 0;padding:var(--space-md);margin:var(--space-xl) 0}[data-theme=dark] .warning-card{background:#eab3081f}main blockquote{background:var(--bg-secondary);border-left:3px solid var(--border-strong);border-radius:0 3px 3px 0;padding:var(--space-md) var(--space-lg);margin:var(--space-xl) 0;color:var(--text-secondary);font-style:italic}main blockquote p{margin:0;color:inherit}main blockquote p+p{margin-top:var(--space-sm)}main code{font-family:var(--font-mono);font-size:.85em;background:var(--accent-subtle);color:var(--accent);padding:.15em .4em;border-radius:3px;font-weight:500}[data-theme=dark] main code{background:#0055ff26}.code-wrapper{position:relative;margin-bottom:var(--space-lg);border-radius:3px;overflow:hidden;border:1px solid var(--code-border);background:var(--code-bg)}.code-wrapper pre{background:var(--code-bg);color:var(--code-text);font-family:var(--font-mono);font-size:.82rem;line-height:1.75;padding:var(--space-md) var(--space-lg);overflow-x:auto;margin:0}.code-wrapper pre code{background:none;padding:0;font-size:inherit;color:inherit;font-family:inherit;font-weight:inherit}.code-wrapper .code-header{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--bg-elevated);border-bottom:1px solid var(--code-border)}.code-header+pre{border-radius:0}.dot{width:8px;height:8px;border-radius:50%}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.code-filename{margin-left:var(--space-xs);font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted)}.code-badge{margin-left:auto;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;background:var(--bg-primary);border-radius:3px}.code-wrapper pre::-webkit-scrollbar{height:6px}.code-wrapper pre::-webkit-scrollbar-track{background:transparent}.code-wrapper pre::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.code-wrapper pre{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.copy-code-btn{position:absolute;top:var(--space-sm);right:var(--space-sm);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);width:44px;height:44px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--duration-slow) var(--ease),color var(--duration) var(--ease),background var(--duration) var(--ease),border-color var(--duration) var(--ease)}.code-wrapper:hover .copy-code-btn{opacity:.7}.copy-code-btn:hover{opacity:1!important;color:var(--text-primary);border-color:var(--text-muted);background:var(--bg-primary)}.copy-code-btn.copied{background:var(--accent);color:var(--on-accent);border-color:var(--accent);opacity:1}@media(hover:none){.copy-code-btn{opacity:.5}}.tk-kw,.tk-str,.tk-num,.tk-type,.tk-op{color:var(--text-primary)}.tk-fn{color:var(--accent)}.tk-cm{color:var(--text-muted);font-style:italic}.table-wrapper{overflow-x:auto;margin-bottom:var(--space-lg);border:1px solid var(--border);border-radius:3px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.table-wrapper::-webkit-scrollbar{height:6px}.table-wrapper::-webkit-scrollbar-track{background:transparent}.table-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}main table{width:100%;border-collapse:collapse;font-size:var(--text-sm);background:var(--bg-primary)}main th{text-align:left;font-weight:700;padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);color:var(--text-primary);border-bottom:2px solid var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}main td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-light);vertical-align:top;color:var(--text-secondary)}main tr:last-child td{border-bottom:none}main tr:hover td{background:var(--bg-secondary)}main td code{font-size:.8em}.toc{width:var(--toc-w);flex-shrink:0;position:sticky;top:calc(var(--nav-h) + var(--space-lg));align-self:flex-start;max-height:calc(100vh - var(--nav-h) - var(--space-xl));overflow-y:auto;padding:0 var(--space-md);border-left:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.toc::-webkit-scrollbar{width:4px}.toc::-webkit-scrollbar-track{background:transparent}.toc::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.toc-heading{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-light)}.toc-nav{display:flex;flex-direction:column;gap:2px}.toc-link{display:flex;align-items:center;min-height:44px;font-size:.8rem;color:var(--text-muted);text-decoration:none;padding:var(--space-2xs) var(--space-sm);border-left:2px solid transparent;line-height:1.5;transition:color var(--duration) var(--ease),border-left-color var(--duration) var(--ease)}.toc-link:hover{color:var(--text-primary);border-left-color:var(--border)}.toc-link.active{color:var(--accent);border-left-color:var(--accent);font-weight:500}.toc-link.toc-h2{font-weight:500}.toc-link.toc-h3{padding-left:var(--space-md);font-size:.75rem}.toc-link.toc-h4{padding-left:var(--space-lg);font-size:.7rem}.toc-group{display:flex;flex-direction:column;gap:2px;overflow:hidden}.toc-group[data-collapsed=true]{display:none}.doc-action-dropdown{position:absolute;top:calc(100% + var(--space-xs) + 4px);right:0;min-width:160px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:3px;box-shadow:0 4px 16px #0000001a;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--duration) var(--ease),visibility var(--duration) var(--ease),transform var(--duration) var(--ease);z-index:50}[data-theme=dark] .doc-action-dropdown{box-shadow:0 4px 16px #0006}.doc-action-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.doc-action-option{display:flex;align-items:center;gap:var(--space-xs);width:100%;min-height:44px;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--text-secondary);font-family:var(--font-body);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:color var(--duration) var(--ease),background var(--duration) var(--ease);white-space:nowrap}.doc-action-option:first-child{border-radius:3px 3px 0 0}.doc-action-option:last-child{border-radius:0 0 3px 3px}.doc-action-option:hover{background:var(--bg-secondary);color:var(--text-primary)}.doc-action-option svg{flex-shrink:0;color:var(--text-muted)}.pattern-section{margin:var(--space-3xl) 0}.pattern-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:3px;overflow:hidden;margin-bottom:var(--space-lg)}.pattern-header{padding:var(--space-md) var(--space-lg);background:var(--bg-elevated);border-bottom:1px solid var(--border)}.pattern-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:var(--space-xs)}.pattern-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.pattern-body{display:grid;grid-template-columns:1fr 1.2fr;gap:0;min-height:0}.pattern-description{padding:var(--space-lg);border-right:1px solid var(--border)}.pattern-description p:last-child{margin-bottom:0}.pattern-code-wrapper{background:var(--code-bg);min-width:0}.pattern-code-wrapper pre{background:none;border:none;padding:var(--space-lg);margin:0;overflow-x:auto}.pattern-code-wrapper code{font-family:var(--font-mono);font-size:.85rem;line-height:1.7;color:var(--code-text)}.comparison-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-xl) 0;align-items:start}.comparison-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:3px;overflow:hidden}.comparison-label{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--bg-elevated);border-bottom:1px solid var(--border);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.comparison-item.compressed .comparison-label{color:var(--accent)}.comparison-item pre{background:var(--code-bg);padding:var(--space-md);margin:0;overflow-x:auto;font-size:.8rem;line-height:1.6}.comparison-item code{font-family:var(--font-mono);color:var(--code-text)}.x-cut{opacity:.3;text-decoration:line-through;text-decoration-color:currentColor}.x-keep{color:var(--accent);font-weight:500}.x-id{color:var(--accent)}.error-page{text-align:center;padding:var(--space-4xl) var(--space-xl);max-width:500px;margin:0 auto}.error-page h1{font-size:var(--text-3xl);color:var(--accent);margin-bottom:var(--space-md)}.error-page p{font-size:var(--text-md);color:var(--text-secondary);margin-bottom:var(--space-xl)}.error-page a{display:inline-block;padding:var(--space-sm) var(--space-lg);background:var(--accent);color:var(--on-accent);border-radius:3px;font-weight:600;text-decoration:none;transition:opacity var(--duration) var(--ease),transform var(--duration) var(--ease)}.error-page a:hover{opacity:.9;transform:translateY(-1px)}.docs-footer{margin-left:var(--sidebar-w);padding:3rem clamp(1.5rem,4vw,3.5rem);border-top:1px solid var(--border);background:var(--bg-secondary);transition:background var(--duration-slow) var(--ease),border-color var(--duration-slow) var(--ease)}.docs-footer .footer-inner{max-width:var(--content-max);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg)}.docs-footer .footer-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.95rem;color:var(--text-primary)}.docs-footer .footer-links{display:flex;gap:2rem}.docs-footer .footer-links a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:500;transition:color var(--duration) var(--ease)}.docs-footer .footer-links a:hover{color:var(--text-primary)}.docs-footer .footer-right{display:flex;align-items:center}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:1200px){.toc{display:none}main{margin:0 auto}}@media(max-width:1024px){main{padding:var(--space-2xl) var(--space-lg) var(--space-3xl)}main h2{margin-top:var(--space-2xl)}.pattern-body{grid-template-columns:1fr}.pattern-description{border-right:none;border-bottom:1px solid var(--border)}.comparison-pair{grid-template-columns:1fr}}@media(max-width:768px){:root{--nav-h: 56px}.mobile-menu-btn{display:flex}.content-area{margin-left:0;width:100%;min-width:0;overflow-x:hidden}.docs-footer{margin-left:0}.docs-footer .footer-inner{margin:0 auto;flex-direction:column;gap:var(--space-md);text-align:center}.nav{padding:.875rem max(env(safe-area-inset-right,0px),1rem) .875rem max(env(safe-area-inset-left,0px),3.5rem);padding-top:max(env(safe-area-inset-top,0px),.875rem)}.nav-links,.nav-section{display:none}.sidebar{transform:translate(-100%);transition:transform .3s var(--ease-out);top:0;padding-top:calc(var(--nav-h) + env(safe-area-inset-top,0px));padding-bottom:env(safe-area-inset-bottom,0px);z-index:99;background:var(--bg-primary);width:85vw;max-width:320px}body.mobile-menu-open .sidebar{transform:translate(0)}main{width:100%;max-width:100%;min-width:0;margin:0;padding:var(--space-lg) max(env(safe-area-inset-right,0px),1.5rem) var(--space-3xl) max(env(safe-area-inset-left,0px),1.5rem);padding-bottom:max(env(safe-area-inset-bottom,0px),var(--space-3xl))}main h1{font-size:var(--text-2xl)}main h2{font-size:var(--text-lg);margin-top:var(--space-2xl)}main h3{font-size:var(--text-md)}.content-card{padding:var(--space-md)}.code-wrapper .code-header{padding:var(--space-2xs) var(--space-sm)}.code-wrapper pre{padding:var(--space-sm) var(--space-md);font-size:.75rem;max-width:100%;min-width:0;overflow-x:auto}.code-wrapper,.content-card,.table-wrapper{max-width:100%;min-width:0}.doc-meta{flex-direction:column;align-items:flex-start;gap:var(--space-xs);margin-bottom:var(--space-lg)}.doc-action-dropdown{right:auto;left:0}}@media(max-width:480px){.github-star{display:none}main{padding:var(--space-md) max(env(safe-area-inset-right,0px),1rem) var(--space-2xl) max(env(safe-area-inset-left,0px),1rem);padding-bottom:max(env(safe-area-inset-bottom,0px),var(--space-2xl))}main h1{font-size:1.5rem}.code-wrapper pre{font-size:.7rem}.copy-code-btn{display:none}}
