@font-face{font-family:Space Grotesk;src:url(../fonts/SpaceGrotesk.ttf)format("truetype");font-weight:300 700;font-style:normal;font-display:swap}:root{--brand-ink:#101114;--brand-paper:#f5f5f2;--brand-blue:#2930ff;--brand-blue-dark:#7a80ff;--bg:var(--brand-paper);--fg:var(--brand-ink);--fg-muted:#5b5d63;--accent:var(--brand-blue);--on-accent:var(--brand-paper);--ghost:#c9cac4;--rule:#10111429;--wash:#1011140f;--code-keyword:var(--accent);--code-string:color-mix(in oklab, var(--accent) 55%, var(--fg));--code-comment:var(--fg-muted);--font-sans:"Space Grotesk", "Apple SD Gothic Neo", "Pretendard Variable", Pretendard, "Noto Sans KR", "Malgun Gothic", ui-sans-serif, system-ui, sans-serif;--font-code:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--step-small:.875rem;--step-body:1.0625rem;--step-h3:1.1875rem;--step-h2:1.5rem;--step-h1:clamp(2rem, 1.4rem + 2.2vw, 3rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2.5rem;--space-7:4rem;--gutter:clamp(1rem, .4rem + 2.4vw, 2.5rem);--topbar:3.5rem;--measure:68ch;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:var(--brand-ink);--fg:var(--brand-paper);--fg-muted:#a3a5ab;--accent:var(--brand-blue-dark);--on-accent:var(--brand-ink);--ghost:#3a3c42;--rule:#f5f5f22e;--wash:#f5f5f212}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-color:var(--rule) transparent}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--step-body);font-variant-numeric:tabular-nums;margin:0;line-height:1.6}html:lang(ko) body{word-break:keep-all;overflow-wrap:break-word;line-height:1.75}html:lang(ko) h1,html:lang(ko) h2,html:lang(ko) h3{letter-spacing:0;line-height:1.35}html:lang(ko) code,html:lang(ko) pre,html:lang(ko) kbd{word-break:normal}::selection{background:var(--accent);color:var(--on-accent)}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input{caret-color:var(--accent)}h1,h2,h3{text-wrap:balance}code,kbd,pre{font-family:var(--font-code);font-size:.9em}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:30;padding:var(--space-2) var(--space-3);background:var(--fg);color:var(--bg);position:absolute;inset-block-start:var(--space-2);inset-inline-start:var(--space-2);transform:translateY(-300%)}.skip-link:focus{transform:none}.sq{border:1.5px solid var(--fg);background:0 0;flex:none;block-size:.875rem;inline-size:.875rem;display:inline-block}.sq[data-state=idle]{border-color:var(--ghost);background:var(--ghost)}.sq[data-state=ink]{background:var(--fg)}.sq[data-state=under]{border-color:var(--accent);background:var(--accent)}.sq[data-state=over]{border-color:var(--accent);border-width:3px}.sq[data-state=selected]{border-color:var(--accent);background:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.topbar{z-index:10;align-items:center;gap:var(--space-5);block-size:var(--topbar);padding-inline:var(--gutter);background:var(--bg);border-block-end:1px solid var(--rule);display:flex;position:sticky;inset-block-start:0}.site-name{--mark-height:1.75rem;flex:none;align-items:center;text-decoration:none;display:inline-flex}.site-name img{block-size:var(--mark-height);inline-size:auto;display:block}.site-name-suffix{border-inline-start:1px solid var(--rule);color:var(--fg-muted);font-size:var(--step-small);margin-inline-start:calc(var(--mark-height) * .39);padding-inline-start:calc(var(--mark-height) * .39);font-weight:500}.search{inline-size:min(26rem,100%);margin-inline-start:auto;position:relative}.search input{block-size:2.5rem;inline-size:100%;padding-inline:var(--space-3) 2.5rem;border:1px solid var(--rule);color:inherit;font:inherit;font-size:var(--step-small);background:0 0;border-radius:0}.search input::placeholder{color:var(--fg-muted);opacity:1}.search input:focus-visible{border-color:var(--accent);outline-offset:0}.search-hint{border:1px solid var(--rule);color:var(--fg-muted);font-size:var(--step-small);pointer-events:none;padding:0 .4rem;position:absolute;inset-block-start:50%;inset-inline-end:var(--space-3);transform:translateY(-50%)}.search-results{z-index:20;background:var(--bg);border:1px solid var(--fg);margin:0;padding:0;list-style:none;position:absolute;inset-block-start:calc(100% + var(--space-1));inset-inline:0}.search-results li,.search-empty{padding:var(--space-2) var(--space-3);font-size:var(--step-small);gap:.125rem;display:grid}.search-results li strong{font-weight:700}.search-results li span{color:var(--fg-muted)}.search-results li[aria-selected=true]{background:var(--accent);color:var(--on-accent)}.search-results li[aria-selected=true] span{color:inherit}.search-empty{color:var(--fg-muted)}.main{grid-template-columns:minmax(20rem,28rem) minmax(0,1fr);align-items:start;display:grid}.map{max-block-size:calc(100dvh - var(--topbar));padding:var(--space-4) var(--space-5) var(--space-5);border-inline-end:1px solid var(--rule);position:sticky;inset-block-start:var(--topbar);overflow-y:auto}.products{flex-wrap:wrap;gap:.375rem;margin-block-end:var(--space-3);display:flex}.product{border:1px solid var(--rule);align-items:center;gap:.4rem;min-block-size:2.25rem;padding-inline:.5rem;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}.product[aria-current=page]{border-color:var(--fg);font-weight:700}.product:hover{background:var(--wash)}.map-toggle{min-block-size:2.75rem;inline-size:100%;padding-inline:var(--space-3);border:1px solid var(--rule);color:inherit;font:inherit;font-size:var(--step-small);background:0 0;justify-content:space-between;align-items:center;margin-block-end:var(--space-4);display:flex}.map-toggle span:last-child{color:var(--fg-muted)}.stack-group+.stack-group{margin-block-start:var(--space-4)}.stack-group>h2{margin:0 0 var(--space-1);color:var(--fg-muted);font-size:var(--step-small);font-weight:500}.tier-list,.tier-row{margin:0;padding:0;list-style:none}.tier{border-block-start:1px solid var(--rule);padding-block:.125rem}.tier-row{column-gap:var(--space-4);flex-wrap:wrap;display:flex}.mod{align-items:center;gap:.625rem;min-block-size:2.5rem;padding-inline:.375rem;font-size:.9375rem;text-decoration:none;display:inline-flex}.mod:hover{background:var(--wash)}@media (pointer:fine){.mod{min-block-size:2.125rem}}.mod[data-state=idle]{color:var(--fg-muted)}.mod[data-state=selected]{font-weight:700}.legend{color:var(--fg-muted);font-size:var(--step-small);margin-block-end:var(--space-4)}.legend summary{cursor:pointer;align-items:center;min-block-size:2.25rem;display:flex}.legend ul{gap:var(--space-2);padding:var(--space-2) 0 var(--space-3);margin:0;list-style:none;display:grid}.legend li{align-items:center;gap:.625rem;display:flex}.page{min-inline-size:0;padding:var(--space-6) var(--gutter) var(--space-7)}.page:focus{outline:none}.page-inner{max-inline-size:46rem}.module-head h1{font-size:var(--step-h1);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-weight:700;line-height:1.05}.module-meta{margin:var(--space-3) 0 0;color:var(--fg-muted);font-size:var(--step-small)}.module-summary{margin:var(--space-4) 0 0;max-inline-size:var(--measure);font-size:var(--step-h3);line-height:1.45}.relations{gap:var(--space-4) var(--space-5);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));margin-block-start:var(--space-5);display:grid}.relations h2{margin:0 0 var(--space-2);color:var(--fg-muted);font-size:var(--step-small);font-weight:500}.relations ul{margin:0;padding:0;font-size:.9375rem;list-style:none}.relations li{overflow-wrap:anywhere;padding-block:.125rem}.relations .quiet{color:var(--fg-muted)}.layers{gap:var(--space-5);border-block-end:1px solid var(--rule);margin-block-start:var(--space-6);display:flex}.layer-link{border-block-end:2px solid #0000;align-items:center;min-block-size:2.75rem;margin-block-end:-1px;font-weight:500;text-decoration:none;display:inline-flex}.layer-link:hover{border-block-end-color:var(--rule)}.layer-link[aria-current=page]{border-block-end-color:var(--accent);font-weight:700}.layer-body{padding-block-start:var(--space-5)}.empty h2{font-size:var(--step-h3);margin:0}.empty p{margin:var(--space-2) 0 0;max-inline-size:var(--measure);color:var(--fg-muted)}.sources{border-block-start:1px solid var(--rule);font-size:var(--step-small);margin-block-start:var(--space-6);padding-block-start:var(--space-4)}.sources summary{min-block-size:2.5rem;color:var(--fg-muted);font-size:var(--step-small);cursor:pointer;align-items:center;margin-block-end:var(--space-2);font-weight:500;display:flex}.contents{margin-block-end:var(--space-5)}.contents ul{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.sources ul{margin:0;padding:0;list-style:none}.sources li{padding-block:var(--space-2);border-block-start:1px solid var(--rule);gap:.125rem;display:grid}.source-path{color:var(--fg-muted);overflow-wrap:anywhere}.source-symbol{font-weight:500}.prose{max-inline-size:var(--measure)}.prose>:first-child{margin-block-start:0}.prose h2{margin:var(--space-6) 0 var(--space-3);font-size:var(--step-h2);letter-spacing:-.01em;scroll-margin-block-start:calc(var(--topbar) + var(--space-4));line-height:1.2}.prose h2:before{content:"";background:var(--accent);block-size:.5em;inline-size:.5em;margin-inline-end:.55em;display:inline-block}.prose h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--step-h3);line-height:1.3}.prose p,.prose ul,.prose ol{margin:0 0 var(--space-4)}.prose li+li{margin-block-start:var(--space-1)}.prose :not(pre)>code{background:var(--wash);overflow-wrap:anywhere;padding:.05em .3em}.prose pre{margin:0 0 var(--space-4);padding:var(--space-4);background:var(--wash);border:1px solid var(--rule);tab-size:4;font-size:.875rem;line-height:1.65;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose table{inline-size:100%;border-collapse:collapse;font-size:var(--step-small);margin-block-end:var(--space-4)}.prose th,.prose td{padding:var(--space-3) var(--space-3) var(--space-3) 0;border-block-end:1px solid var(--rule);text-align:start;vertical-align:top;line-height:1.45}.prose th{border-block-end-color:var(--fg);color:var(--fg-muted);white-space:nowrap;font-weight:500}.prose td :not(pre)>code,.prose td>code{overflow-wrap:break-word}.prose .table-scroll{margin-block-end:var(--space-4)}.prose .table-scroll table{margin-block-end:0}.hljs-keyword,.hljs-meta{color:var(--code-keyword);font-weight:600}.hljs-literal{color:var(--code-keyword)}.hljs-title{font-weight:600}.hljs-string,.hljs-number{color:var(--code-string)}.hljs-comment{color:var(--code-comment);font-style:italic}@media (width<=859px){.main{grid-template-columns:minmax(0,1fr)}.map{max-block-size:none;padding-block:var(--space-4);border-inline-end:0;border-block-end:1px solid var(--rule);position:static}.tier-row{flex-direction:column;padding-inline-start:calc(var(--depth,0) * .75rem)}.topbar{gap:var(--space-3)}.site-name{--mark-height:1.25rem}.site-name-suffix,.search-hint{display:none}.search input{padding-inline-end:var(--space-3)}.page{padding-block-start:var(--space-5)}.layers{gap:var(--space-4)}}.lang-toggle{min-block-size:2.5rem;padding-inline:var(--space-3);border:1px solid var(--rule);color:inherit;font:inherit;font-size:var(--step-small);background:0 0;flex:none;font-weight:500}.lang-toggle:hover{background:var(--wash)}.notice{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--rule);color:var(--fg-muted);font-size:var(--step-small)}.playground{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.playground .lab,.playground .result-tabs,.playground .tabpanel{min-inline-size:0}.playground .lab code{overflow-wrap:anywhere}.playground h2{margin:0 0 var(--space-3);font-size:var(--step-h2);line-height:1.2}.playground h2:before{content:"";background:var(--accent);block-size:.5em;inline-size:.5em;margin-inline-end:.55em;display:inline-block}.playground h3{margin:0 0 var(--space-2);font-size:var(--step-h3);line-height:1.3}.playground p{margin:0 0 var(--space-3);max-inline-size:var(--measure)}.step-list{gap:var(--space-2);margin:0 0 var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.step-button{min-block-size:2.5rem;padding-inline:var(--space-3);border:1px solid var(--rule);color:inherit;font:inherit;font-size:var(--step-small);text-align:start;background:0 0;align-items:center;gap:.5rem;font-weight:500;display:inline-flex}.step-button:hover{background:var(--wash)}.step-button[aria-current=step]{border-color:var(--fg);font-weight:700}.step-detail{max-inline-size:46rem}.step-detail code,.note code,.playground td code,.playground th code{background:var(--wash);overflow-wrap:anywhere;padding:.05em .3em}.step-hint{color:var(--fg-muted);font-size:var(--step-small);margin-block-end:var(--space-3)}.step-hint summary{cursor:pointer;align-items:center;min-block-size:2.25rem;display:flex}.step-actions{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.step-actions .step-done{align-items:center;gap:.5rem;margin:0;font-weight:600;display:inline-flex}.button{min-block-size:2.5rem;padding-inline:var(--space-4);border:1px solid var(--fg);color:inherit;font:inherit;font-size:var(--step-small);background:0 0;font-weight:500}.button:hover{background:var(--wash)}.editor-label{color:var(--fg-muted);font-size:var(--step-small);margin-block-end:var(--space-2);font-weight:500;display:block}.code-editor{inline-size:100%;padding:var(--space-4);border:1px solid var(--rule);background:var(--wash);color:inherit;font-family:var(--font-code);tab-size:4;white-space:pre;resize:vertical;font-size:.875rem;line-height:1.65;display:block;overflow:auto}.code-editor:focus-visible,.playground input[type=text]:focus-visible,.playground textarea:focus-visible{border-color:var(--accent);outline-offset:0}.note{margin:var(--space-2) 0 0;color:var(--fg-muted);font-size:var(--step-small)}.tablist{column-gap:var(--space-5);border-block-end:1px solid var(--rule);flex-wrap:wrap;display:flex}.tab{min-block-size:2.75rem;color:var(--fg-muted);font:inherit;background:0 0;border:0;border-block-end:2px solid #0000;margin-block-end:-1px;padding:0;font-weight:500}.tab:hover{color:var(--fg)}.tab[aria-selected=true]{border-block-end-color:var(--accent);color:var(--fg);font-weight:700}.tabpanel{padding-block-start:var(--space-4)}.status-ok,.status-error{align-items:center;gap:.625rem;font-weight:600;display:flex}.status-ok:before,.status-error:before{content:"";border:1.5px solid var(--accent);background:var(--accent);flex:none;block-size:.875rem;inline-size:.875rem}.status-error:before{border:3px solid var(--fg);background:0 0}.diagnostics{gap:var(--space-3);margin:0 0 var(--space-3);padding:0;list-style:none;display:grid}.diagnostics li{padding:var(--space-3) var(--space-4);border:2px solid var(--fg)}.diag-message{font-family:var(--font-code);overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.55}.diag-meta{gap:var(--space-3);margin:var(--space-2) 0 0;color:var(--fg-muted);font-size:var(--step-small);display:flex}.out-code{margin:0 0 var(--space-3);padding:var(--space-4);background:var(--wash);border:1px solid var(--rule);font-size:.875rem;line-height:1.65;overflow-x:auto}.bytes-section{margin-block-end:var(--space-5)}.samples{border-collapse:collapse;inline-size:100%;font-size:var(--step-small)}.samples th,.samples td{padding:var(--space-2) var(--space-3) var(--space-2) 0;border-block-end:1px solid var(--rule);text-align:start;vertical-align:top;font-weight:500}.samples thead th{border-block-end-color:var(--fg);color:var(--fg-muted);white-space:nowrap}.samples tr[data-omitted=true] th,.samples tr[data-omitted=true] td{color:var(--fg-muted);text-decoration:line-through}.value-cell{gap:.25rem;min-inline-size:12rem;display:grid}.value-cell small,.field small{color:var(--fg-muted);font-size:.8125rem}.playground input[type=text],.playground textarea:not(.code-editor),.playground select{border:1px solid var(--rule);min-block-size:2.25rem;inline-size:100%;color:inherit;font-family:var(--font-code);background:0 0;border-radius:0;padding:.25rem .5rem;font-size:.875rem}.playground input:disabled,.playground textarea:disabled,.playground select:disabled{opacity:.5}.check{font-size:var(--step-small);align-items:center;gap:.5rem;display:inline-flex}.check input{block-size:1.125rem;inline-size:1.125rem;accent-color:var(--accent)}.field{font-size:var(--step-small);gap:.25rem;margin-block-start:var(--space-4);display:grid}.field input[type=range]{inline-size:100%;max-inline-size:28rem;accent-color:var(--accent)}.hex-editor{max-inline-size:46rem}.byte-controls{margin-block-start:var(--space-3)}.tag{border:1px solid var(--rule);color:var(--fg-muted);margin-inline-start:.5rem;padding:0 .375rem;font-size:.8125rem;font-style:normal;font-weight:500}.hexdump{font-family:var(--font-code);flex-wrap:wrap;gap:.25rem;margin-block-end:var(--space-3);font-size:.875rem;display:flex}.seg{flex-wrap:wrap;gap:.375rem;max-inline-size:100%;padding:.125rem .5rem;display:inline-flex}.seg[data-tone="0"],.swatch[data-tone="0"]{background:color-mix(in oklab, var(--accent) 26%, transparent)}.seg[data-tone="1"],.swatch[data-tone="1"]{background:color-mix(in oklab, var(--fg) 14%, transparent)}.seg[data-tone="2"],.swatch[data-tone="2"]{background:color-mix(in oklab, var(--accent) 12%, color-mix(in oklab, var(--fg) 8%, transparent))}.seg-legend{border-collapse:collapse;font-size:var(--step-small)}.seg-legend th,.seg-legend td{padding:.25rem var(--space-4) .25rem 0;text-align:start;vertical-align:baseline;font-weight:400}.swatch{block-size:.75rem;inline-size:.75rem;margin-inline-end:.5rem;display:inline-block}.table-scroll{overflow-x:auto}.catalog{border-collapse:collapse;inline-size:100%;min-inline-size:52rem;font-size:var(--step-small)}.catalog th,.catalog td{padding:var(--space-2) var(--space-3) var(--space-2) 0;border-block-end:1px solid var(--rule);text-align:start;vertical-align:top;font-weight:400}.catalog thead th{border-block-end-color:var(--fg);color:var(--fg-muted);white-space:nowrap;font-weight:500}.catalog tbody th{font-weight:600}@media (width<=859px){.playground{gap:var(--space-5)}.value-cell{min-inline-size:0}.samples th,.samples td{padding-inline-end:var(--space-2)}}
