@layer quartz-base{.btree-lab{--lab-accent:#55e6c1;--lab-blue:#6ca8ff;--lab-panel:color-mix(in srgb, var(--light) 96%, var(--dark));--lab-line:color-mix(in srgb, var(--gray) 22%, transparent);--lab-space-1:.25rem;--lab-space-2:.5rem;--lab-space-3:.75rem;--lab-space-4:1rem;--lab-radius-sm:4px;--lab-radius-md:7px;--lab-sidebar-width:clamp(13.5rem, 18vw, 16.5rem);--lab-content-max:100rem;width:100%;min-height:calc(100vh - 4.2rem);color:var(--darkgray);background:color-mix(in srgb, var(--light) 98%, var(--dark));margin:0}.lab-appbar{border-bottom:1px solid var(--lab-line);background:var(--light);justify-content:space-between;align-items:center;gap:1rem;min-height:4.25rem;padding:.7rem 1.25rem;display:flex}.lab-appbar__title{align-items:center;gap:.75rem;display:flex}.lab-appbar__mark{color:#062923;background:var(--lab-accent);width:2.15rem;height:2.15rem;font:900 1rem/1 var(--codeFont);box-shadow:0 0 22px color-mix(in srgb, var(--lab-accent) 22%, transparent);border-radius:8px;place-items:center;display:grid}.lab-appbar__title div{flex-direction:column;display:flex}.lab-appbar__title strong{font:750 .95rem/1.3 var(--headerFont)}.lab-appbar__title div span{color:var(--gray);font-size:.68rem}.lab-appbar__actions{align-items:center;gap:.6rem;display:flex}.lab-appbar__beta{color:var(--secondary);background:color-mix(in srgb, var(--secondary) 12%, transparent);font:800 .58rem/1 var(--codeFont);letter-spacing:.08em;border-radius:4px;padding:.25rem .42rem}.lab-appbar button,.lab-tabs button,.btree-lab button{font:inherit}.lab-appbar button{border:1px solid var(--lab-line);color:var(--darkgray);cursor:pointer;background:0 0;border-radius:7px;padding:.48rem .7rem;font-size:.72rem}.lab-layout{grid-template-columns:var(--lab-sidebar-width) minmax(0, 1fr);min-height:calc(100vh - 8.45rem);display:grid}.lab-sidebar{border-right:1px solid var(--lab-line);background:color-mix(in srgb, var(--light) 98%, var(--gray));flex-direction:column;min-width:0;display:flex}.lab-sidebar__search{border:1px solid var(--lab-line);height:2.25rem;color:var(--gray);background:var(--light);border-radius:7px;align-items:center;gap:.45rem;margin:1rem;padding:0 .65rem;display:flex}.lab-sidebar__search input{width:100%;color:var(--darkgray);font:.75rem var(--bodyFont);background:0 0;border:0;outline:0}.lab-sidebar nav{flex:1;padding:0 .65rem;overflow:auto}.lab-sidebar nav section{margin-bottom:1.25rem}.lab-sidebar nav h3{color:var(--gray);font:800 .58rem/1.5 var(--codeFont);letter-spacing:.1em;margin:0 0 .4rem;padding:0 .55rem}.lab-sidebar nav button{width:100%;color:var(--darkgray);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.55rem;margin:.15rem 0;padding:.55rem;display:grid}.lab-sidebar nav button.is-active{background:color-mix(in srgb, var(--lab-blue) 12%, transparent);box-shadow:inset 2px 0 var(--lab-blue)}.lab-sidebar nav button:disabled{opacity:.58}.lab-sidebar nav button>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.lab-sidebar nav strong{font-size:.74rem}.lab-sidebar nav small{color:var(--gray);text-overflow:ellipsis;white-space:nowrap;font-size:.61rem;overflow:hidden}.lab-sidebar nav button>i{color:var(--gray);font:700 .48rem/1 var(--codeFont);font-style:normal}.lab-sidebar nav button.is-active>i{color:var(--lab-accent)}.lab-tool-icon{border:1px solid var(--lab-line);width:1.8rem;height:1.8rem;color:var(--gray);font:800 .65rem/1 var(--codeFont);background:var(--light);border-radius:6px;place-items:center;display:grid}.lab-tool-icon.tree{color:var(--lab-blue);border-color:color-mix(in srgb, var(--lab-blue) 35%, transparent)}.lab-sidebar__footer{border-top:1px solid var(--lab-line);color:var(--gray);font:.58rem/1 var(--codeFont);padding:.85rem 1rem}.lab-sidebar__footer div{background:var(--lab-line);border-radius:4px;height:3px;margin-top:.5rem}.lab-sidebar__footer div i{border-radius:inherit;background:var(--lab-accent);width:100%;height:100%;display:block}.lab-workspace{background:color-mix(in srgb, var(--light) 96%, var(--dark));min-width:0}.lab-tabs{border-bottom:1px solid var(--lab-line);background:var(--light);align-items:stretch;height:2.7rem;display:flex}.lab-tabs button{border:0;border-right:1px solid var(--lab-line);color:var(--gray);background:0 0;padding:0 .85rem;font-size:.7rem}.lab-tabs button.is-active{color:var(--darkgray);background:var(--lab-panel);align-items:center;gap:.45rem;display:flex;position:relative}.lab-tabs button.is-active:after{content:"";border-bottom:2px solid var(--lab-accent);position:absolute;bottom:-1px;left:0;right:0}.lab-tabs button .lab-tool-icon{width:1.3rem;height:1.3rem}.lab-tabs button i{color:var(--gray);margin-left:.35rem;font-style:normal}.lab-tabs>span{flex:1}.lab-tabs__split{border-left:1px solid var(--lab-line)!important}.lab-content{box-sizing:border-box;width:100%;max-width:none;padding:clamp(1rem,2.2vw,2rem)}.lab-panel{display:none}.lab-panel.is-active{animation:.18s both lab-panel-in;display:block}.lab-content.is-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:none;display:grid}.lab-content.is-split .lab-panel{border:1px solid var(--lab-line);background:color-mix(in srgb, var(--light) 97%, var(--dark));border-radius:12px;min-width:0;padding:1rem}.lab-content.is-split .btree-lab__stage,.lab-content.is-split .concept-stage{min-height:25rem}.lab-content.is-split .btree-lab__header{flex-direction:column}.lab-content.is-split .btree-lab__controls{grid-template-columns:1fr 1fr}.lab-content.is-split .btree-lab__actions{grid-column:1/-1}.lab-content.is-split .raid-layout{grid-template-columns:1fr}.lab-content.is-split .oauth-stage{grid-template-columns:1fr 1fr}.lab-tabs__split.is-active{color:var(--lab-accent);background:color-mix(in srgb, var(--lab-accent) 8%, transparent)}.lab-tool-header{margin-bottom:1.3rem}.mini-controls{border:1px solid var(--lab-line);background:var(--light);border-radius:10px;align-items:end;gap:.55rem;margin-bottom:.8rem;padding:.85rem;display:flex}.mini-controls label{min-width:9rem}.mini-controls label>span,.raid-form label>span{color:var(--gray);margin-bottom:.32rem;font-size:.64rem;font-weight:700;display:block}.mini-controls input,.mini-controls select,.raid-form input,.raid-form select{box-sizing:border-box;border:1px solid var(--lab-line);width:100%;height:2.35rem;color:var(--darkgray);background:var(--lab-panel);border-radius:7px;padding:0 .65rem}.mini-controls button,.oauth-controls button{border:1px solid var(--lab-line);height:2.35rem;color:var(--darkgray);background:var(--lab-panel);cursor:pointer;border-radius:7px;padding:0 .8rem;font-weight:700}.mini-controls button.primary,.oauth-controls button.primary{color:#062923;border-color:var(--lab-accent);background:var(--lab-accent)}.concept-stage{border:1px solid var(--lab-line);background-color:var(--lab-panel);background-image:linear-gradient(color-mix(in srgb, var(--gray) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--gray) 7%, transparent) 1px, transparent 1px);background-size:24px 24px;border-radius:11px 11px 0 0;min-height:clamp(23rem,48vh,35rem);padding:2rem;position:relative;overflow:auto}.concept-log{border:1px solid var(--lab-line);background:var(--light);border-top:0;border-radius:0 0 11px 11px;align-items:center;gap:.8rem;padding:.85rem 1rem;display:flex}.concept-log span{color:var(--secondary);font:800 .58rem/1 var(--codeFont)}.concept-log p{margin:0;font-size:.76rem}.bplus-stage{flex-direction:column;justify-content:center;align-items:center;gap:5rem;display:flex}.bplus-root small,.bplus-leaf small{color:var(--gray);text-align:center;font:650 .52rem/1 var(--codeFont);margin-bottom:.4rem;display:block}.bplus-root>div,.bplus-leaf>div{border:1px solid var(--lab-blue);background:var(--light);border-radius:7px;display:inline-flex;overflow:hidden;box-shadow:0 8px 22px #00000014}.bplus-root span,.bplus-leaf span{border-right:1px solid var(--lab-line);min-width:2.8rem;height:2.55rem;font:750 .8rem/1 var(--codeFont);place-items:center;display:grid}.bplus-root span:last-child,.bplus-leaf span:last-child{border-right:0}.bplus-leaf span.is-found{color:#062923;background:var(--lab-accent);animation:.65s both btree-visit}.bplus-leaves{align-items:center;gap:2.4rem;display:flex;position:relative}.bplus-leaves:before{content:"";border-top:1px solid color-mix(in srgb, var(--lab-blue) 45%, transparent);position:absolute;top:-2.45rem;left:8%;right:8%}.bplus-leaf{position:relative}.bplus-leaf:before{content:"";border-left:1px solid color-mix(in srgb, var(--lab-blue) 45%, transparent);height:2.45rem;position:absolute;top:-2.45rem;left:50%}.bplus-leaf b{color:var(--lab-accent);font:800 1rem/1 var(--codeFont);margin-left:.65rem;position:absolute;top:2rem}.hash-stage{flex-direction:column;justify-content:center;gap:.55rem;max-width:none;display:flex}.hash-bucket{border:1px solid var(--lab-line);background:color-mix(in srgb, var(--light) 94%, var(--dark));border-radius:8px;grid-template-columns:3.25rem 1fr;align-items:center;min-height:3rem;transition:border-color .16s,transform .16s;display:grid}.hash-bucket.is-active{border-color:var(--lab-blue);box-shadow:0 0 0 3px color-mix(in srgb, var(--lab-blue) 12%, transparent);transform:translate(4px)}.hash-bucket>strong{border-right:1px solid var(--lab-line);height:100%;color:var(--gray);font:750 .7rem/1 var(--codeFont);place-items:center;display:grid}.hash-bucket>div{align-items:center;gap:.5rem;padding:.4rem .7rem;display:flex}.hash-bucket span{border:1px solid var(--lab-line);font:650 .67rem/1 var(--codeFont);background:var(--light);border-radius:6px;padding:.42rem .58rem}.hash-bucket span.is-found{color:#062923;border-color:var(--lab-accent);background:var(--lab-accent)}.hash-bucket em{color:var(--gray);font-size:.62rem}.hash-bucket i{color:var(--gray);font-style:normal}.raid-layout{grid-template-columns:minmax(15rem,.65fr) minmax(25rem,1.35fr);gap:.8rem;display:grid}.raid-form{border:1px solid var(--lab-line);background:var(--light);border-radius:11px;gap:.8rem;padding:1.2rem;display:grid}.raid-results{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.raid-results>div{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:11px;flex-direction:column;justify-content:center;min-height:8.5rem;padding:1.2rem;display:flex}.raid-results small{color:var(--gray);font:700 .62rem/1 var(--codeFont)}.raid-results strong{color:var(--lab-blue);font:750 clamp(1.35rem, 3vw, 2.15rem)/1 var(--headerFont);margin:.55rem 0}.raid-results span{color:var(--gray);font-size:.65rem}.raid-results .raid-error{text-align:center;grid-column:1/-1;align-items:center}.raid-results .raid-error strong{color:#fb7185}.lab-disclaimer{border-left:3px solid var(--secondary);color:var(--gray);background:color-mix(in srgb, var(--secondary) 6%, transparent);margin:.8rem 0 0;padding:.75rem .9rem;font-size:.68rem}.oauth-controls{gap:.5rem;margin-bottom:.8rem;display:flex}.oauth-stage{grid-template-columns:repeat(4,minmax(8rem,1fr));align-content:center;gap:clamp(1rem,4vw,4rem);display:grid;overflow:hidden}.oauth-actor{z-index:1;border:1px solid var(--lab-line);text-align:center;background:var(--light);border-radius:11px;flex-direction:column;align-items:center;padding:1.35rem .7rem;transition:transform .22s,border-color .22s,box-shadow .22s;display:flex;position:relative}.oauth-actor i{width:2.1rem;height:2.1rem;color:var(--gray);background:var(--lab-line);font:750 .7rem/1 var(--codeFont);border-radius:50%;place-items:center;margin-bottom:.55rem;font-style:normal;display:grid}.oauth-actor strong{font-size:.78rem}.oauth-actor small{color:var(--gray);font-size:.58rem}.oauth-actor.is-source{border-color:var(--lab-blue);box-shadow:0 0 0 4px color-mix(in srgb, var(--lab-blue) 14%, transparent)}.oauth-actor.is-target{border-color:var(--lab-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--lab-accent) 14%, transparent);transform:translateY(-5px)}.oauth-actor.is-target i{color:#062923;background:var(--lab-accent)}.oauth-message{border:1px solid var(--lab-accent);min-width:12rem;color:var(--darkgray);text-align:center;background:var(--light);font:650 .66rem/1 var(--codeFont);border-radius:999px;padding:.65rem .9rem;animation:.42s both oauth-message;position:absolute;bottom:18%;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000001a}@keyframes lab-panel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes oauth-message{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.btree-lab__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.15rem;display:flex}.btree-lab__header h1{margin:.15rem 0 .3rem;font-size:clamp(1.55rem,3vw,2.35rem)}.btree-lab__header p{color:var(--gray);margin:0}.btree-lab__eyebrow{font:750 .62rem/1.4 var(--codeFont);letter-spacing:.12em;color:var(--secondary)!important}.btree-lab__status{white-space:nowrap;border:1px solid color-mix(in srgb, var(--lab-accent) 32%, transparent);font:650 .66rem/1 var(--codeFont);background:color-mix(in srgb, var(--lab-accent) 6%, transparent);border-radius:999px;align-items:center;gap:.5rem;padding:.42rem .72rem;display:flex}.btree-lab__status-dot{background:var(--lab-accent);width:.42rem;height:.42rem;box-shadow:0 0 0 4px color-mix(in srgb, var(--lab-accent) 15%, transparent);border-radius:50%}.btree-lab__controls{border:1px solid var(--lab-line);background:var(--light);border-radius:10px;grid-template-columns:minmax(10rem,.75fr) minmax(7rem,.45fr) auto;align-items:end;gap:.7rem;margin-bottom:.8rem;padding:.85rem;display:grid}.btree-lab__controls label>span{color:var(--gray);margin-bottom:.32rem;font-size:.64rem;font-weight:700;display:block}.btree-lab__controls input,.btree-lab__controls select{box-sizing:border-box;border:1px solid var(--lab-line);width:100%;height:2.35rem;color:var(--darkgray);background:var(--lab-panel);border-radius:7px;padding:0 .65rem}.btree-lab__actions{flex-wrap:wrap;gap:.4rem;display:flex}.btree-lab__actions button{border:1px solid var(--lab-line);height:2.35rem;color:var(--darkgray);background:var(--lab-panel);cursor:pointer;border-radius:7px;padding:0 .78rem;font-weight:700;transition:transform .12s,border-color .12s}.btree-lab__actions button:hover{border-color:var(--secondary);transform:translateY(-1px)}.btree-lab__actions button.primary{color:#062923;border-color:var(--lab-accent);background:var(--lab-accent)}.btree-lab__actions button.ghost{color:var(--gray);background:0 0}.btree-lab button:disabled{cursor:not-allowed;opacity:.5;transform:none}.btree-lab.is-animating .btree-lab__actions button:disabled{cursor:wait}.btree-lab.is-animating .btree-lab__status-dot{animation:.9s ease-in-out infinite btree-status-pulse}.btree-lab__stage{border:1px solid var(--lab-line);background-color:var(--lab-panel);background-image:linear-gradient(color-mix(in srgb, var(--gray) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--gray) 7%, transparent) 1px, transparent 1px);background-size:24px 24px;border-radius:11px 11px 0 0;min-height:clamp(24rem,50vh,37rem);position:relative;overflow:auto}.btree-lab__stage-meta{color:var(--gray);font:600 .61rem/1.4 var(--codeFont);justify-content:space-between;gap:1rem;padding:.7rem .85rem;display:flex;position:sticky;left:0}.btree-lab__tree{justify-content:center;min-width:max-content;padding:clamp(3rem,8vh,6rem) 2rem 4rem;display:flex}.btree-lab__zoom{border:1px solid var(--lab-line);background:var(--light);border-radius:7px;display:flex;position:absolute;bottom:.75rem;right:.75rem;overflow:hidden}.btree-lab__zoom button,.btree-lab__zoom span{min-width:2rem;height:1.8rem;color:var(--gray);background:0 0;border:0;place-items:center;font-size:.62rem;display:grid}.btree-lab__zoom span{border-inline:1px solid var(--lab-line);padding:0 .35rem}.btree-node-branch{flex-direction:column;align-items:center;display:flex;position:relative}.btree-node{z-index:1;border:1px solid color-mix(in srgb, var(--lab-blue) 48%, var(--gray));background:color-mix(in srgb, var(--light) 93%, var(--lab-blue));border-radius:8px;min-height:2.65rem;transition:transform .22s,box-shadow .22s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 7px 18px #00000014}.btree-node span{border-right:1px solid color-mix(in srgb, var(--lab-blue) 30%, transparent);min-width:2.7rem;font:750 .86rem/1 var(--codeFont);place-items:center;padding:0 .25rem;display:grid}.btree-node span:last-child{border-right:0}.btree-node.is-visited{box-shadow:0 0 0 3px color-mix(in srgb, var(--lab-blue) 25%, transparent), 0 7px 18px #00000014;transform:translateY(-2px)}.btree-node.is-active{z-index:2;border-color:var(--lab-blue);animation:.65s both btree-visit}.btree-node.is-split{animation:.65s both btree-split}.btree-node .is-matched{color:#062923;background:var(--lab-accent)}.btree-children{gap:clamp(.8rem,3vw,2.5rem);padding-top:3.2rem;display:flex;position:relative}.btree-children:before{content:"";border-top:1px solid color-mix(in srgb, var(--lab-blue) 42%, transparent);position:absolute;top:1.55rem;left:8%;right:8%}.btree-children>.btree-node-branch:before{content:"";border-left:1px solid color-mix(in srgb, var(--lab-blue) 42%, transparent);height:1.65rem;position:absolute;top:-1.65rem}.btree-node-branch:has(>.btree-children):after{content:"";border-left:1px solid color-mix(in srgb, var(--lab-blue) 42%, transparent);height:1.55rem;position:absolute;top:2.65rem}.btree-lab__explain{border:1px solid var(--lab-line);background:var(--light);border-top:0;border-radius:0 0 11px 11px;grid-template-columns:auto minmax(15rem,1fr) auto;align-items:center;gap:1rem;padding:.75rem .9rem;display:grid}.btree-lab__timeline{align-items:center;gap:.35rem;display:flex}.btree-lab__timeline button{border:1px solid var(--lab-line);width:1.75rem;height:1.75rem;color:var(--gray);background:var(--lab-panel);border-radius:5px}.btree-lab__timeline button.play{color:var(--lab-accent)}.btree-lab__timeline div{background:var(--lab-line);border-radius:5px;width:4rem;height:3px;margin-left:.25rem}.btree-lab__timeline div span{background:var(--lab-blue);width:38%;height:100%;display:block}.btree-lab__timeline small{color:var(--gray);white-space:nowrap;font-size:.55rem}.btree-lab__log{border-left:1px solid var(--lab-line);align-items:center;gap:.7rem;min-width:0;padding-left:1rem;display:flex}.btree-lab__log>div{min-width:0}.btree-lab__log strong{color:var(--gray);font:650 .53rem/1.4 var(--codeFont);display:block}.btree-lab__log p{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.72rem;overflow:hidden}.btree-lab__log-index{color:var(--secondary);font:750 .7rem/1 var(--codeFont)}.btree-lab__legend{color:var(--gray);white-space:nowrap;gap:.7rem;font-size:.58rem;display:flex}.btree-lab__legend i{border-radius:2px;width:.5rem;height:.5rem;margin-right:.15rem;display:inline-block}.btree-lab__legend .visited{background:var(--lab-blue)}.btree-lab__legend .matched{background:var(--lab-accent)}.btree-lab__legend .split{border:2px solid var(--secondary)}.btree-lab:-webkit-full-screen{background:var(--light);overflow:auto}.btree-lab:fullscreen{background:var(--light);overflow:auto}.btree-lab:-webkit-full-screen .lab-layout{min-height:calc(100vh - 4.25rem)}.btree-lab:fullscreen .lab-layout{min-height:calc(100vh - 4.25rem)}@keyframes btree-split{0%{opacity:.5;transform:scale(.92)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes btree-visit{0%{transform:translateY(0)scale(1)}45%{box-shadow:0 0 0 5px color-mix(in srgb, var(--lab-blue) 24%, transparent), 0 12px 28px color-mix(in srgb, var(--lab-blue) 24%, transparent);transform:translateY(-5px)scale(1.04)}to{transform:translateY(-2px)scale(1)}}@keyframes btree-status-pulse{50%{opacity:.42;transform:scale(.78)}}@media (max-width:920px){.lab-layout{grid-template-columns:4rem minmax(0,1fr)}.lab-sidebar__search,.lab-sidebar nav button>span:nth-child(2),.lab-sidebar nav button>i,.lab-sidebar nav h3,.lab-sidebar__footer span{display:none}.lab-sidebar nav{padding:.7rem}.lab-sidebar nav button{grid-template-columns:1fr;justify-items:center;padding:.45rem;display:grid}.lab-sidebar__footer{padding:.75rem}.lab-sidebar__footer div i{width:20%}.btree-lab__explain{grid-template-columns:1fr}.btree-lab__log{border:0;padding:0}.btree-lab__legend{flex-wrap:wrap}.raid-layout{grid-template-columns:1fr}.oauth-stage{grid-template-columns:1fr 1fr;gap:1rem}.oauth-message{bottom:2rem}.lab-content.is-split{grid-template-columns:1fr}}@media (max-width:650px){.lab-appbar__title div span,.lab-appbar__beta,.lab-tabs__split,.lab-tabs>span{display:none}.lab-layout{display:block}.lab-sidebar{display:none}.lab-content{padding:.85rem}.btree-lab__header{flex-direction:column}.btree-lab__controls{grid-template-columns:1fr 1fr}.btree-lab__actions{grid-column:1/-1}.btree-lab__actions button{flex:35%}.btree-lab__stage{min-height:22rem}.btree-lab__stage-meta span:last-child{display:none}.mini-controls,.oauth-controls{flex-wrap:wrap}.mini-controls label{flex:100%}.bplus-leaves{gap:1.5rem}.raid-results{grid-template-columns:1fr}.oauth-stage{grid-template-columns:1fr;align-content:start}.oauth-message{grid-row:1;animation:none;position:sticky;bottom:auto;left:auto;transform:none}}.note-properties{border:1px solid var(--lightgray);border-radius:5px;margin:.5rem 0 1rem;font-size:.9rem}.note-properties[open]>.note-properties-header{border-bottom:1px solid var(--lightgray)}.note-properties .note-properties-header{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--darkgray);align-items:center;gap:.5rem;padding:.4rem .8rem;font-weight:600;list-style:none;display:flex}.note-properties .note-properties-header::-webkit-details-marker{display:none}.note-properties .note-properties-header:before{content:"";border-right:2px solid var(--darkgray);border-bottom:2px solid var(--darkgray);width:.5em;height:.5em;transition:transform .2s;display:inline-block;transform:rotate(-45deg)}.note-properties[open]>.note-properties-header:before{transform:rotate(45deg)}.note-properties .note-properties-count{color:var(--gray);margin-left:auto;font-size:.75rem;font-weight:400}.note-properties .note-properties-table{border-collapse:collapse;table-layout:fixed;width:100%}.note-properties .note-properties-row{border-bottom:1px solid var(--lightgray)}.note-properties .note-properties-row:last-child{border-bottom:none}.note-properties .note-properties-key{width:35%;color:var(--gray);vertical-align:top;word-break:break-word;padding:.35rem .8rem;font-size:.85rem}.note-properties .note-properties-value{vertical-align:top;word-break:break-word;padding:.35rem .8rem}.note-properties .note-properties-empty{color:var(--gray);font-style:italic}.note-properties .note-properties-boolean input[type=checkbox]{pointer-events:none;vertical-align:middle;margin:0}.note-properties .note-properties-number{font-family:var(--codeFont);font-size:.85em}.note-properties .note-properties-link{color:var(--secondary);text-decoration:none}.note-properties .note-properties-link:hover{text-decoration:underline}.note-properties .note-properties-separator{color:var(--gray)}.note-properties .note-properties-list{display:inline}.note-properties .note-properties-tags{display:inline-flex}.note-properties .note-properties-tags .tag-link{background:var(--highlight);color:var(--secondary);border-radius:3px;padding:.1rem .4rem;font-size:.85em;text-decoration:none;display:inline-block}.note-properties .note-properties-tags .tag-link:hover{background:var(--secondary);color:var(--light)}.note-properties .note-properties-object code{background:var(--highlight);word-break:break-all;border-radius:3px;padding:.1rem .3rem;font-size:.85em}.canvas-page{width:100%;max-width:none;height:100%;margin:0}.canvas-container{background-color:var(--light);background-image:radial-gradient(circle, var(--lightgray) 1px, transparent 1px);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background-size:20px 20px;border:none;border-radius:0;width:100%;height:100%;position:relative;overflow:hidden}.canvas-container:active{cursor:grabbing}.canvas-viewport{transform-origin:0 0;position:absolute;top:0;left:0}.canvas-nodes{position:absolute;top:0;left:0}.canvas-node{border:2px solid var(--canvas-node-color,var(--lightgray));background:var(--light);border-radius:6px;flex-direction:column;transition:box-shadow .15s;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 3px #00000014}.canvas-node:hover{box-shadow:0 2px 8px #00000026}.canvas-node-content{color:var(--darkgray);word-wrap:break-word;flex:1;min-height:0;padding:12px;font-size:.9rem;line-height:1.5;overflow-y:auto}.canvas-node-text .canvas-node-content{white-space:pre-wrap}.canvas-node-file{overflow:visible}.canvas-node-file .canvas-file-label{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;padding:2px 8px;font-size:.8rem;font-weight:500;display:flex;position:absolute;bottom:100%;left:0;right:0;overflow:hidden}.canvas-node-file .canvas-file-label a{color:var(--canvas-node-color,var(--secondary));align-items:center;gap:4px;text-decoration:none;display:inline-flex}.canvas-node-file .canvas-file-label a:before{content:"";background:var(--canvas-node-color,var(--secondary));flex-shrink:0;width:12px;height:12px;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.canvas-node-file .canvas-file-label a:hover{text-decoration:underline}.canvas-node-file .canvas-embed-content h1,.canvas-node-file .canvas-embed-content h2,.canvas-node-file .canvas-embed-content h3,.canvas-node-file .canvas-embed-content h4,.canvas-node-file .canvas-embed-content h5,.canvas-node-file .canvas-embed-content h6{margin-top:.8em;margin-bottom:.4em}.canvas-node-file .canvas-embed-content h1:first-child,.canvas-node-file .canvas-embed-content h2:first-child,.canvas-node-file .canvas-embed-content h3:first-child,.canvas-node-file .canvas-embed-content h4:first-child,.canvas-node-file .canvas-embed-content h5:first-child,.canvas-node-file .canvas-embed-content h6:first-child{margin-top:0}.canvas-node-file .canvas-embed-content p{margin:.5em 0}.canvas-node-file .canvas-embed-content ul,.canvas-node-file .canvas-embed-content ol{margin:.5em 0;padding-left:1.5em}.canvas-node-file .canvas-embed-content img{max-width:100%;height:auto}.canvas-node-file .canvas-embed-content pre{background:var(--lightgray);border-radius:4px;padding:.5em;overflow-x:auto}.canvas-node-file .canvas-embed-content code{font-size:.85em}.canvas-node-file .canvas-file-subpath{color:var(--gray);margin-left:auto;font-size:.75rem}.canvas-node-file .canvas-node-content>.canvas-file-link{height:100%;color:var(--secondary);justify-content:center;align-items:center;gap:6px;font-weight:500;text-decoration:none;display:flex}.canvas-node-file .canvas-node-content>.canvas-file-link:hover{text-decoration:underline}.canvas-node-link{overflow:visible}.canvas-node-link .canvas-node-content{padding:0;overflow:hidden}.canvas-node-link .canvas-link-label{white-space:nowrap;text-overflow:ellipsis;padding:2px 8px;font-size:.8rem;font-weight:500;position:absolute;bottom:100%;left:0;right:0;overflow:hidden}.canvas-node-link .canvas-link-label a{color:var(--canvas-node-color,var(--secondary));align-items:center;gap:4px;text-decoration:none;display:inline-flex}.canvas-node-link .canvas-link-label a:before{content:"";background:var(--canvas-node-color,var(--secondary));flex-shrink:0;width:12px;height:12px;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.canvas-node-link .canvas-link-label a:hover{text-decoration:underline}.canvas-node-link .canvas-iframe-wrapper{padding:0;position:relative;overflow:hidden}.canvas-node-link .canvas-iframe-wrapper iframe{background:var(--light);border:none;width:100%;height:100%}.canvas-node-link .canvas-iframe-wrapper .canvas-iframe-fallback{background:var(--light);justify-content:center;align-items:center;font-size:.85rem;display:none;position:absolute;inset:0}.canvas-node-link .canvas-iframe-wrapper .canvas-iframe-fallback a{color:var(--secondary);text-decoration:underline}.canvas-node-group{border-style:dashed;border-color:var(--canvas-node-color,var(--gray));background:0 0;border-radius:12px;overflow:visible}.canvas-node-group .canvas-group-label{background:var(--light);color:var(--canvas-node-color,var(--darkgray));padding:0 8px;font-size:.85rem;font-weight:600;position:absolute;top:-10px;left:16px}.canvas-edges{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.canvas-edge path{pointer-events:stroke}.canvas-edge-label-bg{fill:var(--light);fill-opacity:.85}.canvas-edge-label{fill:var(--darkgray);pointer-events:none;font-size:.8rem}.canvas-controls{z-index:25;flex-direction:column;gap:4px;transition:top .25s;display:flex;position:fixed;top:12px;right:12px}.canvas-controls button{border:1px solid var(--lightgray);background:var(--light);width:32px;height:32px;color:var(--darkgray);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:1rem;transition:background .1s;display:flex}.canvas-controls button:hover{background:var(--lightgray)}.canvas-controls button svg{pointer-events:none}.canvas-controls .canvas-zoom-group{border:1px solid var(--lightgray);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.canvas-controls .canvas-zoom-group button{border:none;border-radius:0}.canvas-controls .canvas-zoom-group button:first-child{border-bottom:1px solid var(--lightgray)}.page[data-frame=canvas]{--canvas-sidebar-width:300px}.page[data-frame=canvas] .canvas-frame{width:100%;height:100%;padding-left:0;transition:padding-left .2s;position:relative;overflow:hidden}.page[data-frame=canvas] .canvas-stage{width:100%;height:100%}.page[data-frame=canvas] .canvas-sidebar{height:100vh;width:var(--canvas-sidebar-width);box-sizing:border-box;background:var(--light);border-right:1px solid var(--lightgray);top:0;left:calc(-1 * var(--canvas-sidebar-width));z-index:20;transition:left .25s;position:fixed;overflow-y:hidden;box-shadow:8px 0 24px #0000001f}.page[data-frame=canvas] .canvas-sidebar-toggle{border:1px solid var(--lightgray);background:var(--light);width:32px;height:32px;color:var(--darkgray);cursor:pointer;z-index:30;border-radius:6px;justify-content:center;align-items:center;transition:background .1s,left .25s;display:flex;position:fixed;top:12px;left:12px}.page[data-frame=canvas] .canvas-sidebar-toggle:hover{background:var(--lightgray)}.page[data-frame=canvas] .canvas-sidebar-toggle svg{pointer-events:none}.page[data-frame=canvas] .canvas-sidebar-icon-close{display:none}.page[data-frame=canvas].canvas-sidebar-open .canvas-frame{padding-left:var(--canvas-sidebar-width)}.page[data-frame=canvas].canvas-sidebar-open .canvas-sidebar{left:0}.page[data-frame=canvas].canvas-sidebar-open .canvas-sidebar-toggle{left:calc(var(--canvas-sidebar-width) + 12px)}.page[data-frame=canvas].canvas-sidebar-open .canvas-sidebar-icon-open{display:none}.page[data-frame=canvas].canvas-sidebar-open .canvas-sidebar-icon-close{display:block}@media (max-width:800px){.page[data-frame=canvas]{--canvas-sidebar-width:calc(100vw - 56px)}.page[data-frame=canvas].canvas-sidebar-open .canvas-frame{padding-left:0}.page[data-frame=canvas].canvas-sidebar-open .canvas-sidebar-toggle{left:calc(var(--canvas-sidebar-width) + 12px)}.page[data-frame=canvas].canvas-sidebar-open .canvas-controls{top:48px}}.page[data-frame=canvas] .canvas-sidebar{flex-direction:column;gap:1rem;padding:1rem;display:flex}.page[data-frame=canvas] .canvas-sidebar .spacer{display:none}.page[data-frame=canvas] .canvas-sidebar .explorer button.desktop-explorer,.page[data-frame=canvas] .canvas-sidebar .explorer button.mobile-explorer{display:none!important}.page[data-frame=canvas] .canvas-sidebar .explorer{order:initial;flex:1 1 0;flex-shrink:initial;align-self:initial;min-height:0;margin-top:0;margin-bottom:0;overflow:hidden}.page[data-frame=canvas] .canvas-sidebar .explorer .explorer-content,.page[data-frame=canvas] .canvas-sidebar .explorer.collapsed>.explorer-content,.page[data-frame=canvas] .canvas-sidebar .explorer:not(.collapsed)>.explorer-content{z-index:auto;background-color:#0000;width:auto;max-width:none;height:100%;max-height:100%;padding:0;position:static;overflow-y:auto;visibility:visible!important;transform:none!important}.page[data-frame=canvas] .canvas-sidebar .explorer-content>.explorer-ul{overscroll-behavior:auto}.transclude .canvas-page{height:auto}.transclude .canvas-container{height:auto;min-height:400px}.transclude .canvas-controls{position:absolute}.popover-inner .canvas-page{height:auto}.popover-inner .canvas-container{height:auto;min-height:200px;max-height:300px}.popover-inner .canvas-controls,.page[data-frame=canvas] .canvas-fullscreen-toggle{display:none}.canvas-container:-webkit-full-screen{width:100vw;height:100vh;min-height:unset;background-color:var(--light)}.canvas-container:fullscreen{width:100vw;height:100vh;min-height:unset;background-color:var(--light)}.canvas-container:-webkit-full-screen .canvas-controls{position:fixed}.canvas-container:fullscreen .canvas-controls{position:fixed}.breadcrumb-container{flex-flow:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;display:flex}.breadcrumb-element p{margin:0 0 0 .5rem;padding:0;line-height:normal}.breadcrumb-element{flex-direction:row;justify-content:center;align-items:center;display:flex}.article-title{margin:2rem 0 0}.tags{flex-wrap:wrap;gap:.4rem;margin:1rem 0;padding-left:0;list-style:none;display:flex}.section-li>.section>.tags{justify-content:flex-end}.tags>li{white-space:nowrap;overflow-wrap:normal;margin:0;display:inline-block}a.internal.tag-link{background-color:var(--highlight);border-radius:8px;margin:0 .1rem;padding:.2rem .4rem}.related-posts{border-top:1px solid var(--lightgray);margin-top:2.5rem;padding-top:1.25rem}.related-posts>h3{font-size:1rem;font-family:var(--headerFont);margin:0 0 .75rem}.related-posts>ul{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.related-posts>ul>li{margin:0;padding:0}.search{min-width:fit-content;max-width:14rem}@media (max-width:800px){.search{flex-grow:.3}}.search>.search-button{border:1px var(--lightgray) solid;font-family:inherit;font-size:inherit;height:2rem;text-align:inherit;cursor:pointer;white-space:nowrap;background-color:#0000;border-radius:4px;align-items:center;width:100%;padding:0 1rem 0 0;display:flex}.search>.search-button>p{color:var(--gray);text-wrap:unset;display:inline}.search>.search-button svg{cursor:pointer;width:18px;min-width:18px;margin:0 .5rem}.search>.search-button svg .search-path{stroke:var(--darkgray);stroke-width:1.5px;transition:stroke .5s}.search>.search-container{contain:layout;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100vw;height:100vh;display:none;position:fixed;top:0;left:0;overflow-y:auto}.search>.search-container.active{display:inline-block}.search>.search-container>.search-space{width:65%;margin-top:12vh;margin-left:auto;margin-right:auto}@media not (min-width:1200px){.search>.search-container>.search-space{width:90%}}.search>.search-container>.search-space>*{background:var(--light);border-radius:7px;width:100%;margin-bottom:2em;box-shadow:0 14px 50px #1b21301f,0 10px 30px #1b213029}.search>.search-container>.search-space>input{box-sizing:border-box;font-family:var(--bodyFont);color:var(--dark);border:1px solid var(--lightgray);padding:.5em 1em;font-size:1.1em}.search>.search-container>.search-space>input:focus{outline:none}.search>.search-container>.search-space>.search-layout{border:1px solid var(--lightgray);box-sizing:border-box;flex-direction:row;flex:0 0 100%;display:none}.search>.search-container>.search-space>.search-layout.display-results{display:flex}.search>.search-container>.search-space>.search-layout[data-preview]>.results-container{flex:0 0 min(30%,450px)}@media not (max-width:800px){.search>.search-container>.search-space>.search-layout[data-preview] .result-card>p.preview{display:none}.search>.search-container>.search-space>.search-layout[data-preview]>div:first-child{border-right:1px solid var(--lightgray);border-top-right-radius:unset;border-bottom-right-radius:unset}.search>.search-container>.search-space>.search-layout[data-preview]>div:last-child{border-top-left-radius:unset;border-bottom-left-radius:unset}}.search>.search-container>.search-space>.search-layout>div{border-radius:5px;height:63vh}@media (max-width:800px){.search>.search-container>.search-space>.search-layout{flex-direction:column}.search>.search-container>.search-space>.search-layout>.preview-container{display:none!important}.search>.search-container>.search-space>.search-layout[data-preview]>.results-container{flex:0 0 100%;width:100%;height:auto}}.search>.search-container>.search-space>.search-layout .highlight{background:color-mix(in srgb, var(--tertiary) 60%, #fff0);border-radius:5px;scroll-margin-top:2rem}.search>.search-container>.search-space>.search-layout>.preview-container{color:var(--dark);flex-grow:1;padding:0 2rem;font-family:inherit;font-weight:400;line-height:1.5em;display:block;overflow:hidden auto}.search>.search-container>.search-space>.search-layout>.preview-container .preview-inner{width:min(800px,100%);margin:0 auto}.search>.search-container>.search-space>.search-layout>.preview-container a[role=anchor]{background-color:#0000}.search>.search-container>.search-space>.search-layout>.results-container{overflow-y:auto}.search>.search-container>.search-space>.search-layout>.results-container .result-card{cursor:pointer;border-bottom:1px solid var(--lightgray);box-sizing:border-box;text-transform:none;text-align:left;width:100%;font-family:inherit;font-size:100%;line-height:1.15;font-weight:inherit;outline:none;margin:0;padding:1em;transition:background .2s;display:block;overflow:hidden}.search>.search-container>.search-space>.search-layout>.results-container .result-card:hover,.search>.search-container>.search-space>.search-layout>.results-container .result-card:focus,.search>.search-container>.search-space>.search-layout>.results-container .result-card.focus{background:var(--lightgray)}.search>.search-container>.search-space>.search-layout>.results-container .result-card>h3{margin:0}@media not (max-width:800px){.search>.search-container>.search-space>.search-layout>.results-container .result-card>p.card-description{display:none}}.search>.search-container>.search-space>.search-layout>.results-container .result-card>ul.tags{margin-top:.45rem;margin-bottom:0}.search>.search-container>.search-space>.search-layout>.results-container .result-card>ul>li>p{background-color:var(--highlight);color:var(--secondary);border-radius:8px;margin:0 .1rem;padding:.2rem .4rem;font-weight:700;line-height:1.4rem}.search>.search-container>.search-space>.search-layout>.results-container .result-card>ul>li>p.match-tag{color:var(--tertiary)}.search>.search-container>.search-space>.search-layout>.results-container .result-card>p{margin-bottom:0}.darkmode{cursor:pointer;width:20px;height:32px;text-align:inherit;background:0 0;border:none;flex-shrink:0;margin:0;padding:0;position:relative}.darkmode svg{width:20px;height:20px;fill:var(--darkgray);transition:opacity .1s;position:absolute;top:calc(50% - 10px)}:root[saved-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[saved-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[saved-theme=dark] .darkmode>.dayIcon{display:none}:root[saved-theme=dark] .darkmode>.nightIcon,:root .darkmode>.dayIcon{display:inline}:root .darkmode>.nightIcon{display:none}.toc{flex-direction:column;flex:0 .5 auto;min-height:1.4rem;display:flex;overflow-y:hidden}.toc:has(button.toc-header.collapsed){flex:0 1.4rem}button.toc-header{text-align:left;cursor:pointer;color:var(--dark);background-color:#0000;border:none;align-items:center;padding:0;display:flex}button.toc-header h3{margin:0;font-size:1rem;display:inline-block}button.toc-header .fold{opacity:.8;margin-left:.5rem;transition:transform .3s}button.toc-header.collapsed .fold{transform:rotate(-90deg)}ul.toc-content.overflow{overscroll-behavior:contain;max-height:calc(100% - 2rem);margin:.5rem 0;padding:0;list-style:none;position:relative}ul.toc-content.overflow>li>a{color:var(--dark);opacity:.35;transition:opacity .5s,color .3s}ul.toc-content.overflow>li>a.in-view{opacity:.75}ul.toc-content.overflow .depth-0{padding-left:0}ul.toc-content.overflow .depth-1{padding-left:1rem}ul.toc-content.overflow .depth-2{padding-left:2rem}ul.toc-content.overflow .depth-3{padding-left:3rem}ul.toc-content.overflow .depth-4{padding-left:4rem}ul.toc-content.overflow .depth-5{padding-left:5rem}ul.toc-content.overflow .depth-6{padding-left:6rem}ul.section-ul{margin-top:2em;padding-left:0;list-style:none}li.section-li{margin-bottom:1em}li.section-li>.section{grid-template-columns:fit-content(8em) 3fr 1fr;display:grid}@media (max-width:600px){li.section-li>.section>.tags{display:none}}li.section-li>.section>.desc>h3>a{background-color:#0000}li.section-li>.section .meta{opacity:.6;margin:0 1em 0 0}.popover .section{grid-template-columns:fit-content(8em) 1fr!important}.popover .section>.tags{display:none}.section h3,.section>.tags{margin:0}.bases-page{flex-direction:column;gap:16px;width:100%;max-width:100%;display:flex;overflow:hidden}.bases-view-tabs{flex-wrap:wrap;gap:8px;display:flex}.bases-view-tabs button{border:1px solid var(--lightgray);background:var(--light);color:var(--darkgray);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.9rem}.bases-view-tabs button.is-active{background:var(--secondary);color:var(--light);border-color:var(--secondary)}.bases-view-container{flex-direction:column;gap:16px;display:flex}.bases-view{display:none}.bases-view.is-active{display:block}.bases-view-meta{color:var(--gray);margin-bottom:8px;font-size:.85rem}.bases-table-wrapper{width:100%;overflow-x:auto}.bases-table{border-collapse:collapse;border:1px solid var(--lightgray);border-radius:8px;width:100%;overflow:hidden}.bases-table th,.bases-table td{text-align:left;border-bottom:1px solid var(--lightgray);padding:10px 12px;font-size:.9rem}.bases-table thead th{background:var(--light);color:var(--dark);cursor:pointer;font-weight:600;position:sticky;top:0}.bases-table td .bases-empty{color:var(--gray);background:0 0;border:0;padding:0;display:inline}.bases-table td code{background:var(--highlight);word-break:break-all;border-radius:3px;padding:.1rem .3rem;font-size:.85em}.bases-table td .bases-list{flex-flow:wrap;gap:4px}.bases-table td input[type=checkbox]{margin-inline:0}.bases-table-header-sort{border-bottom:2px solid #0000;border-right:2px solid #0000;width:8px;height:8px;margin-left:6px;display:inline-block;position:absolute;top:calc(50% - 4px);right:8px}th.is-sorted-asc .bases-table-header-sort{border-right-color:var(--darkgray);border-bottom-color:var(--darkgray);transform:rotate(-45deg)}th.is-sorted-desc .bases-table-header-sort{border-right-color:var(--darkgray);border-bottom-color:var(--darkgray);transform:rotate(135deg)}.bases-summary-row td{background:var(--light);color:var(--darkgray);font-weight:600}.bases-table-group-header td{background:var(--lightgray);border-bottom:2px solid var(--gray);padding:8px 12px;font-weight:600}.bases-table-group-property{color:var(--gray);font-weight:400}.bases-table-group-label{margin-right:8px}.bases-table-group-count{background:var(--light);color:var(--darkgray);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:400}.bases-separator{color:var(--gray)}.bases-number{font-variant-numeric:tabular-nums}.bases-list{flex-wrap:wrap;gap:4px;display:inline-flex}.bases-list-group{width:100%}.bases-list-group-list{flex-direction:column;display:flex}.bases-list-item{padding:2px 0}.bases-list-item-properties{flex-wrap:wrap;align-items:baseline;gap:0;display:flex}.bases-list-property{align-items:baseline;gap:4px;display:inline-flex}.list-bullet{color:var(--darkgray);-webkit-user-select:none;user-select:none}.bases-list-separator{color:var(--gray);margin-right:4px}.bases-rendered-value{display:inline}.bases-cards{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:16px;display:grid}.bases-card{border:1px solid var(--lightgray);background:var(--light);color:inherit;border-radius:12px;flex-direction:column;text-decoration:none;transition:box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 2px 8px #00000014}.bases-card:hover{box-shadow:0 4px 16px #00000024}.bases-card-image{background:var(--lightgray);overflow:hidden}.bases-card-image img{object-fit:cover;width:100%;height:100%;display:block}.bases-card-color{min-height:60px}.bases-card-title{color:var(--dark);font-weight:600}.bases-card-body{flex-direction:column;gap:8px;padding:12px;display:flex}.bases-card-meta{gap:4px;display:grid}.bases-card-row{color:var(--darkgray);justify-content:space-between;font-size:.8rem;display:flex}.bases-card-label{color:var(--gray)}.bases-map-placeholder{border:1px dashed var(--lightgray);background:var(--light);border-radius:12px;padding:24px}.bases-map-message{color:var(--darkgray);margin-top:12px}.bases-empty{text-align:center;color:var(--darkgray);border:1px dashed var(--lightgray);background:var(--light);border-radius:12px;padding:24px}.bases-gallery{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:16px;display:grid}.bases-gallery-item{border:1px solid var(--lightgray);background:var(--light);border-radius:12px;position:relative;overflow:hidden}.bases-gallery-image{aspect-ratio:4/3;background:var(--lightgray);overflow:hidden}.bases-gallery-image img,.bases-gallery-placeholder{object-fit:cover;width:100%;height:100%;display:block}.bases-gallery-placeholder{background:linear-gradient(135deg, var(--lightgray), var(--highlight))}.bases-gallery-title{color:var(--light);background:linear-gradient(#0000 0%,#000000a6 100%);padding:10px 12px;font-weight:600;position:absolute;bottom:0;left:0;right:0}.bases-gallery-title a{color:inherit}.bases-board{gap:16px;padding-bottom:4px;display:flex;overflow-x:auto}.bases-board-column{border:1px solid var(--lightgray);background:var(--light);border-radius:12px;flex-direction:column;flex-shrink:0;min-width:min(250px,80vw);display:flex}.bases-board-column-header{background:var(--light);border-bottom:1px solid var(--lightgray);z-index:1;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-weight:600;display:flex;position:sticky;top:0}.bases-board-count{background:var(--lightgray);color:var(--darkgray);border-radius:999px;padding:2px 8px;font-size:.75rem}.bases-board-column-body{flex-direction:column;gap:8px;padding:8px;display:flex}.bases-board-card{border:1px solid var(--lightgray);background:var(--light);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex;box-shadow:0 1px 6px #00000014}.bases-board-card-meta{color:var(--darkgray);gap:4px;font-size:.8rem;display:grid}.bases-board-card-row{justify-content:space-between;gap:8px;display:flex}.bases-board-card-label{color:var(--gray)}code[data-theme*=\ ]{color:var(--shiki-light);background-color:var(--shiki-light-bg)}code[data-theme*=\ ] span{color:var(--shiki-light)}[saved-theme=dark] code[data-theme*=\ ]{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}[saved-theme=dark] code[data-theme*=\ ] span{color:var(--shiki-dark)}.callout{border:1px solid var(--border);background-color:var(--bg);box-sizing:border-box;border-radius:5px;padding:0 1rem;overflow-y:hidden}.callout>.callout-content{transition:grid-template-rows .1s cubic-bezier(.02,.01,.47,1);display:grid;overflow:hidden}.callout>.callout-content>:first-child{margin-top:0}.callout{--callout-icon-note:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"2\" x2=\"22\" y2=\"6\"></line><path d=\"M7.5 20.5 19 9l-4-4L3.5 16.5 2 22z\"></path></svg>");--callout-icon-abstract:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"></rect><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"></path><path d=\"M12 11h4\"></path><path d=\"M12 16h4\"></path><path d=\"M8 11h.01\"></path><path d=\"M8 16h.01\"></path></svg>");--callout-icon-info:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"></line></svg>");--callout-icon-todo:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z\"></path><path d=\"m9 12 2 2 4-4\"></path></svg>");--callout-icon-tip:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\"></path></svg> ");--callout-icon-success:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg> ");--callout-icon-question:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg> ");--callout-icon-warning:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"></line><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg>");--callout-icon-failure:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg> ");--callout-icon-danger:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon></svg> ");--callout-icon-bug:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"8\" height=\"14\" x=\"8\" y=\"6\" rx=\"4\"></rect><path d=\"m19 7-3 2\"></path><path d=\"m5 7 3 2\"></path><path d=\"m19 19-3-2\"></path><path d=\"m5 19 3-2\"></path><path d=\"M20 13h-4\"></path><path d=\"M4 13h4\"></path><path d=\"m10 4 1 2\"></path><path d=\"m14 4-1 2\"></path></svg>");--callout-icon-example:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"></line><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"></line><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"></line></svg> ");--callout-icon-quote:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z\"></path><path d=\"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z\"></path></svg>");--callout-icon-fold:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"%3E%3Cpolyline points=\"6 9 12 15 18 9\"%3E%3C/polyline%3E%3C/svg%3E")}.callout[data-callout]{--color:#448aff;--border:#448aff44;--bg:#448aff10;--callout-icon:var(--callout-icon-note)}.callout[data-callout=abstract]{--color:#00b0ff;--border:#00b0ff44;--bg:#00b0ff10;--callout-icon:var(--callout-icon-abstract)}.callout[data-callout=info],.callout[data-callout=todo]{--color:#00b8d4;--border:#00b8d444;--bg:#00b8d410;--callout-icon:var(--callout-icon-info)}.callout[data-callout=todo]{--callout-icon:var(--callout-icon-todo)}.callout[data-callout=tip]{--color:#00bfa5;--border:#00bfa544;--bg:#00bfa510;--callout-icon:var(--callout-icon-tip)}.callout[data-callout=success]{--color:#09ad7a;--border:#09ad7144;--bg:#09ad7110;--callout-icon:var(--callout-icon-success)}.callout[data-callout=question]{--color:#dba642;--border:#dba64244;--bg:#dba64210;--callout-icon:var(--callout-icon-question)}.callout[data-callout=warning]{--color:#db8942;--border:#db894244;--bg:#db894210;--callout-icon:var(--callout-icon-warning)}.callout[data-callout=failure],.callout[data-callout=danger],.callout[data-callout=bug]{--color:#db4242;--border:#db424244;--bg:#db424210;--callout-icon:var(--callout-icon-failure)}.callout[data-callout=bug]{--callout-icon:var(--callout-icon-bug)}.callout[data-callout=danger]{--callout-icon:var(--callout-icon-danger)}.callout[data-callout=example]{--color:#7a43b5;--border:#7a43b544;--bg:#7a43b510;--callout-icon:var(--callout-icon-example)}.callout[data-callout=quote]{--color:var(--secondary);--border:var(--lightgray);--callout-icon:var(--callout-icon-quote)}.callout.is-collapsed>.callout-title>.fold-callout-icon{transform:rotate(-90deg)}.callout.is-collapsed .callout-content>*{height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transition:height .1s cubic-bezier(.02,.01,.47,1),margin .1s cubic-bezier(.02,.01,.47,1),padding .1s cubic-bezier(.02,.01,.47,1);overflow-y:clip}.callout.is-collapsed .callout-content>:first-child{margin-top:-1rem}.callout-title{color:var(--color);--icon-size:18px;align-items:flex-start;gap:5px;padding:1rem 0;display:flex}.callout-title .fold-callout-icon{opacity:.8;cursor:pointer;--callout-icon:var(--callout-icon-fold);transition:transform .15s}.callout-title>.callout-title-inner>p{color:var(--color);margin:0}.callout-title .callout-icon,.callout-title .fold-callout-icon{width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background-size:var(--icon-size) var(--icon-size);background-position:50%;background-color:var(--color);-webkit-mask-image:var(--callout-icon);mask-image:var(--callout-icon);-webkit-mask-size:var(--icon-size) var(--icon-size);mask-size:var(--icon-size) var(--icon-size);padding:.2rem 0;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.callout-title .callout-title-inner{font-weight:600}html{scroll-behavior:smooth;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;width:100vw;overflow-x:hidden}@media (max-width:800px){html{scroll-padding-top:4rem}}body{box-sizing:border-box;background-color:var(--light);font-family:var(--bodyFont);color:var(--darkgray);margin:0}.text-highlight{background-color:var(--textHighlight);border-radius:5px;padding:0 .1rem}::selection{background:color-mix(in srgb, var(--tertiary) 60%, #fff0);color:var(--darkgray)}p,ul,text,a,tr,td,li,ol,ul,.katex,.math,.typst-doc,g[class~=typst-text]{color:var(--darkgray);fill:var(--darkgray);overflow-wrap:break-word;text-wrap:pretty}path[class~=typst-shape]{stroke:var(--darkgray)}.math.math-display{text-align:center}article>mjx-container.MathJax,article blockquote>div>mjx-container.MathJax{display:flex}article>mjx-container.MathJax>svg,article blockquote>div>mjx-container.MathJax>svg{margin-left:auto;margin-right:auto}article blockquote>div>mjx-container.MathJax>svg{margin-top:1rem;margin-bottom:1rem}strong{font-weight:600}a{color:var(--secondary);font-weight:600;text-decoration:none;transition:color .2s}a:hover{color:var(--tertiary)}a.internal{background-color:var(--highlight);border-radius:5px;padding:0 .1rem;line-height:1.4rem;text-decoration:none}a.internal.broken{color:var(--secondary);opacity:.5;transition:opacity .2s}a.internal.broken:hover{opacity:.8}a.internal:has(>img){background-color:#0000;border-radius:0;padding:0}a.internal.tag-link:before{content:"#"}a.external .external-icon{height:1ex;margin:0 .15em}a.external .external-icon>path{fill:var(--dark)}.flex-component{display:flex}.desktop-only{display:contents}.desktop-only.flex-component{display:flex}@media (max-width:800px){.desktop-only.flex-component,.desktop-only{display:none}}.mobile-only,.mobile-only.flex-component{display:none}@media (max-width:800px){.mobile-only.flex-component{display:flex}.mobile-only{display:contents}}.page{max-width:1500px;margin:0 auto}.page article>h1{font-size:2rem}.page article li:has(>input[type=checkbox]){padding-left:0;list-style-type:none}.page article li:has(>input[type=checkbox]:checked){text-decoration:line-through;-webkit-text-decoration-color:var(--gray);text-decoration-color:var(--gray);color:var(--gray)}.page article li>*{margin-top:0;margin-bottom:0}.page article p>strong{color:var(--dark)}.page>#quartz-body{grid-template:"grid-sidebar-left grid-header grid-sidebar-right""grid-sidebar-left grid-center grid-sidebar-right""grid-sidebar-left grid-footer grid-sidebar-right"/320px auto 320px;gap:5px;display:grid}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body{grid-template:"grid-sidebar-left grid-header""grid-sidebar-left grid-center""grid-sidebar-left grid-sidebar-right""grid-sidebar-left grid-footer"/320px auto;gap:5px}}@media (max-width:800px){.page>#quartz-body{grid-template:"grid-sidebar-left""grid-header""grid-center""grid-sidebar-right""grid-footer"/auto;gap:5px}}@media not (min-width:1200px){.page>#quartz-body{padding:0 1rem}}@media (max-width:800px){.page>#quartz-body{margin:0 auto}}.page>#quartz-body .sidebar{box-sizing:border-box;gap:1.2rem;height:100vh;padding:6rem 2rem 2rem;display:flex;position:sticky;top:0}.page>#quartz-body .sidebar.left{z-index:1;flex-direction:column;grid-area:grid-sidebar-left}@media (max-width:800px){.page>#quartz-body .sidebar.left{position:initial;height:unset;flex-direction:row;align-items:center;gap:0;padding:2rem 0 0;display:flex}}.page>#quartz-body .sidebar.right{flex-direction:column;grid-area:grid-sidebar-right;margin-right:0}@media (max-width:800px){.page>#quartz-body .sidebar.right{margin-left:inherit;margin-right:inherit}}@media not (min-width:1200px){.page>#quartz-body .sidebar.right{position:initial;height:unset;flex-direction:row;width:100%;padding:0}.page>#quartz-body .sidebar.right>*{flex:1;max-height:24rem}.page>#quartz-body .sidebar.right>.toc{display:none}}.page>#quartz-body .page-header,.page>#quartz-body .page-footer{margin-top:1rem}.page>#quartz-body .page-header{grid-area:grid-header;margin:6rem 0 0}@media (max-width:800px){.page>#quartz-body .page-header{margin-top:0;padding:0}}.page>#quartz-body .center>article{grid-area:grid-center}.page>#quartz-body footer{grid-area:grid-footer}.page>#quartz-body .center,.page>#quartz-body footer{min-width:100%;max-width:100%;margin-left:auto;margin-right:auto}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body .center,.page>#quartz-body footer{margin-right:0}}@media (max-width:800px){.page>#quartz-body .center,.page>#quartz-body footer{margin-left:0;margin-right:0}}.page>#quartz-body footer{margin-left:0}.page[data-frame=full-width]>#quartz-body{grid-template:"grid-header""grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=full-width]>#quartz-body{grid-template-columns:auto}}.page[data-frame=full-width]>#quartz-body .center.full-width{min-width:100%;max-width:100%}.page[data-frame=minimal]>#quartz-body{grid-template:"grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=minimal]>#quartz-body{grid-template-columns:auto}}.page[data-frame=minimal]>#quartz-body .center.minimal{min-width:100%;max-width:100%;margin:0}.footnotes{border-top:1px solid var(--lightgray);margin-top:2rem}input[type=checkbox]{color:var(--secondary);border:1px solid var(--lightgray);background-color:var(--light);appearance:none;border-radius:3px;width:16px;height:16px;margin-inline:-1.4rem .2rem;position:relative;transform:translateY(2px)}input[type=checkbox]:checked{border-color:var(--secondary);background-color:var(--secondary)}input[type=checkbox]:checked:after{content:"";border:solid var(--light);border-width:0 2px 2px 0;width:4px;height:8px;display:block;position:absolute;top:1px;left:4px;transform:rotate(45deg)}blockquote{border-left:3px solid var(--secondary);margin:1rem 0;padding-left:1rem;transition:border-color .2s}h1,h2,h3,h4,h5,h6,thead{font-family:var(--headerFont);color:var(--dark);font-weight:revert;margin-bottom:0}article>h1>a[role=anchor],article>h2>a[role=anchor],article>h3>a[role=anchor],article>h4>a[role=anchor],article>h5>a[role=anchor],article>h6>a[role=anchor],article>thead>a[role=anchor]{color:var(--dark);background-color:#0000}h1[id]>a[href^=\#],h2[id]>a[href^=\#],h3[id]>a[href^=\#],h4[id]>a[href^=\#],h5[id]>a[href^=\#],h6[id]>a[href^=\#]{opacity:0;font-family:var(--codeFont);-webkit-user-select:none;user-select:none;margin:0 .5rem;transition:opacity .2s;transform:translateY(-.1rem)}h1[id]:hover>a,h2[id]:hover>a,h3[id]:hover>a,h4[id]:hover>a,h5[id]:hover>a,h6[id]:hover>a{opacity:1}h1:not([id])>a[role=anchor],h2:not([id])>a[role=anchor],h3:not([id])>a[role=anchor],h4:not([id])>a[role=anchor],h5:not([id])>a[role=anchor],h6:not([id])>a[role=anchor]{display:none}h1{margin-top:2.25rem;margin-bottom:1rem;font-size:1.75rem}h2{margin-top:1.9rem;margin-bottom:1rem;font-size:1.4rem}h3{margin-top:1.62rem;margin-bottom:1rem;font-size:1.12rem}h4,h5,h6{margin-top:1.5rem;margin-bottom:1rem;font-size:1rem}figure[data-rehype-pretty-code-figure]{margin:0;line-height:1.6rem;position:relative}figure[data-rehype-pretty-code-figure]>[data-rehype-pretty-code-title]{font-family:var(--codeFont);border:1px solid var(--lightgray);width:fit-content;color:var(--darkgray);border-radius:5px;margin-bottom:-.5rem;padding:.1rem .5rem;font-size:.9rem}figure[data-rehype-pretty-code-figure]>pre{padding:0}pre{font-family:var(--codeFont);border:1px solid var(--lightgray);border-radius:5px;padding:0 .5rem;position:relative;overflow-x:auto}pre:has(>code.mermaid){border:none}pre>code{counter-reset:line;counter-increment:line 0;background:0 0;padding:.5rem 0;font-size:.85rem;display:grid;overflow-x:auto}pre>code [data-highlighted-chars]{background-color:var(--highlight);border-radius:5px}pre>code>[data-line]{box-sizing:border-box;border-left:3px solid #0000;padding:0 .25rem}pre>code>[data-line][data-highlighted-line]{background-color:var(--highlight);border-left:3px solid var(--secondary)}pre>code>[data-line]:before{content:counter(line);counter-increment:line;text-align:right;color:#738a9499;width:1rem;margin-right:1rem;display:inline-block}pre>code[data-line-numbers-max-digits="2"]>[data-line]:before{width:2rem}pre>code[data-line-numbers-max-digits="3"]>[data-line]:before{width:3rem}code{color:var(--dark);font-size:.9em;font-family:var(--codeFont);font-variant-ligatures:none;background:var(--lightgray);border-radius:5px;padding:.1rem .2rem}tbody,li,p{line-height:1.6rem}.table-container{overflow-x:auto}.table-container>table{border-collapse:collapse;margin:1rem;padding:1.5rem}.table-container>table th,.table-container>table td{min-width:75px}.table-container>table>*{line-height:2rem}th{text-align:left;border-bottom:2px solid var(--gray);padding:.4rem .7rem}td{padding:.2rem .7rem}tr{border-bottom:1px solid var(--lightgray)}tr:last-child{border-bottom:none}img{content-visibility:auto;border-radius:5px;max-width:100%;margin:1rem 0}p>img+em{display:block;transform:translateY(-1rem)}hr{background-color:var(--lightgray);border:none;width:100%;height:1px;margin:2rem auto}audio,video{border-radius:5px;width:100%}.spacer{flex:2 auto}div:has(>.overflow){max-height:100%;overflow-y:hidden}ul.overflow,ol.overflow{content:"";clear:both;width:100%;max-height:100%;margin-bottom:0;overflow-y:auto}ul.overflow>li.overflow-end,ol.overflow>li.overflow-end{height:.5rem;margin:0}ul.overflow.gradient-active,ol.overflow.gradient-active{-webkit-mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%)}.transclude ul{padding-left:1rem}.katex-display{display:initial;overflow:auto hidden}.external-embed.youtube,iframe.pdf{aspect-ratio:16/9;border-radius:5px;width:100%;height:100%}.navigation-progress{background:var(--secondary);z-index:9999;width:0;height:3px;transition:width .2s;position:fixed;top:0;left:0}:root{--light:#efece3;--lightgray:#c9c3b2;--gray:#8a8f85;--darkgray:#4a4e48;--dark:#0e1112;--secondary:#136a00;--tertiary:#6b8a3a;--highlight:#136a0014;--textHighlight:#b6ff5c55;--titleFont:"JetBrains Mono", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--headerFont:"JetBrains Mono", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bodyFont:"IBM Plex Sans KR", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--codeFont:"JetBrains Mono", ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace}:root[saved-theme=dark]{--light:#0b0d0c;--lightgray:#2a2f2c;--gray:#555a55;--darkgray:#8b918a;--dark:#e8ebe6;--secondary:#b6ff5c;--tertiary:#5a7a2e;--highlight:#b6ff5c1a;--textHighlight:#b6ff5c40}:root{--background-primary:var(--light);--background-primary-alt:var(--light);--background-secondary:var(--lightgray);--background-secondary-alt:var(--lightgray);--background-modifier-border:var(--lightgray);--background-modifier-border-hover:var(--gray);--background-modifier-border-focus:var(--secondary);--text-normal:var(--darkgray);--text-muted:var(--gray);--text-faint:var(--gray);--text-accent:var(--secondary);--text-accent-hover:var(--tertiary);--text-on-accent:var(--light);--text-on-accent-inverted:var(--dark);--text-highlight-bg:var(--textHighlight);--interactive-normal:var(--light);--interactive-hover:var(--lightgray);--interactive-accent:var(--secondary);--interactive-accent-hover:var(--tertiary);--color-base-00:var(--light);--color-base-05:var(--light);--color-base-10:var(--light);--color-base-20:var(--lightgray);--color-base-25:var(--lightgray);--color-base-30:var(--lightgray);--color-base-35:var(--lightgray);--color-base-40:var(--gray);--color-base-50:var(--gray);--color-base-60:var(--gray);--color-base-70:var(--darkgray);--color-base-100:var(--dark);--font-text:var(--bodyFont);--font-monospace:var(--codeFont);--font-interface:var(--bodyFont);--nav-item-color:var(--darkgray);--nav-item-color-hover:var(--dark);--nav-item-color-active:var(--secondary);--nav-item-background-hover:var(--lightgray);--nav-item-background-active:var(--highlight);--tag-background:var(--highlight);--tag-color:var(--secondary);--tag-background-hover:var(--lightgray);--icon-color:var(--darkgray);--icon-color-hover:var(--dark);--icon-color-active:var(--secondary);--divider-color:var(--lightgray);--link-color:var(--secondary);--link-color-hover:var(--tertiary);--accent-h:109;--accent-s:100%;--accent-l:21%}:root[saved-theme=dark]{--background-primary:var(--light);--background-primary-alt:var(--light);--background-secondary:var(--lightgray);--background-secondary-alt:var(--lightgray);--background-modifier-border:var(--lightgray);--background-modifier-border-hover:var(--gray);--background-modifier-border-focus:var(--secondary);--text-normal:var(--darkgray);--text-muted:var(--gray);--text-faint:var(--gray);--text-accent:var(--secondary);--text-accent-hover:var(--tertiary);--text-on-accent:var(--light);--text-on-accent-inverted:var(--dark);--text-highlight-bg:var(--textHighlight);--interactive-normal:var(--light);--interactive-hover:var(--lightgray);--interactive-accent:var(--secondary);--interactive-accent-hover:var(--tertiary);--color-base-00:var(--light);--color-base-05:var(--light);--color-base-10:var(--light);--color-base-20:var(--lightgray);--color-base-25:var(--lightgray);--color-base-30:var(--lightgray);--color-base-35:var(--lightgray);--color-base-40:var(--gray);--color-base-50:var(--gray);--color-base-60:var(--gray);--color-base-70:var(--darkgray);--color-base-100:var(--dark);--font-text:var(--bodyFont);--font-monospace:var(--codeFont);--font-interface:var(--bodyFont);--nav-item-color:var(--darkgray);--nav-item-color-hover:var(--dark);--nav-item-color-active:var(--secondary);--nav-item-background-hover:var(--lightgray);--nav-item-background-active:var(--highlight);--tag-background:var(--highlight);--tag-color:var(--secondary);--tag-background-hover:var(--lightgray);--icon-color:var(--darkgray);--icon-color-hover:var(--dark);--icon-color-active:var(--secondary);--divider-color:var(--lightgray);--link-color:var(--secondary);--link-color-hover:var(--tertiary);--accent-h:87;--accent-s:100%;--accent-l:68%}}code[data-theme*=\ ]{color:var(--shiki-light);background-color:var(--shiki-light-bg)}code[data-theme*=\ ] span{color:var(--shiki-light)}[saved-theme=dark] code[data-theme*=\ ]{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}[saved-theme=dark] code[data-theme*=\ ] span{color:var(--shiki-dark)}.callout{border:1px solid var(--border);background-color:var(--bg);box-sizing:border-box;border-radius:5px;padding:0 1rem;overflow-y:hidden}.callout>.callout-content{transition:grid-template-rows .1s cubic-bezier(.02,.01,.47,1);display:grid;overflow:hidden}.callout>.callout-content>:first-child{margin-top:0}.callout{--callout-icon-note:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"2\" x2=\"22\" y2=\"6\"></line><path d=\"M7.5 20.5 19 9l-4-4L3.5 16.5 2 22z\"></path></svg>");--callout-icon-abstract:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"></rect><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"></path><path d=\"M12 11h4\"></path><path d=\"M12 16h4\"></path><path d=\"M8 11h.01\"></path><path d=\"M8 16h.01\"></path></svg>");--callout-icon-info:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"></line></svg>");--callout-icon-todo:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z\"></path><path d=\"m9 12 2 2 4-4\"></path></svg>");--callout-icon-tip:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\"></path></svg> ");--callout-icon-success:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg> ");--callout-icon-question:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg> ");--callout-icon-warning:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"></line><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg>");--callout-icon-failure:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg> ");--callout-icon-danger:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon></svg> ");--callout-icon-bug:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"8\" height=\"14\" x=\"8\" y=\"6\" rx=\"4\"></rect><path d=\"m19 7-3 2\"></path><path d=\"m5 7 3 2\"></path><path d=\"m19 19-3-2\"></path><path d=\"m5 19 3-2\"></path><path d=\"M20 13h-4\"></path><path d=\"M4 13h4\"></path><path d=\"m10 4 1 2\"></path><path d=\"m14 4-1 2\"></path></svg>");--callout-icon-example:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"></line><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"></line><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"></line></svg> ");--callout-icon-quote:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z\"></path><path d=\"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z\"></path></svg>");--callout-icon-fold:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"%3E%3Cpolyline points=\"6 9 12 15 18 9\"%3E%3C/polyline%3E%3C/svg%3E")}.callout[data-callout]{--color:#448aff;--border:#448aff44;--bg:#448aff10;--callout-icon:var(--callout-icon-note)}.callout[data-callout=abstract]{--color:#00b0ff;--border:#00b0ff44;--bg:#00b0ff10;--callout-icon:var(--callout-icon-abstract)}.callout[data-callout=info],.callout[data-callout=todo]{--color:#00b8d4;--border:#00b8d444;--bg:#00b8d410;--callout-icon:var(--callout-icon-info)}.callout[data-callout=todo]{--callout-icon:var(--callout-icon-todo)}.callout[data-callout=tip]{--color:#00bfa5;--border:#00bfa544;--bg:#00bfa510;--callout-icon:var(--callout-icon-tip)}.callout[data-callout=success]{--color:#09ad7a;--border:#09ad7144;--bg:#09ad7110;--callout-icon:var(--callout-icon-success)}.callout[data-callout=question]{--color:#dba642;--border:#dba64244;--bg:#dba64210;--callout-icon:var(--callout-icon-question)}.callout[data-callout=warning]{--color:#db8942;--border:#db894244;--bg:#db894210;--callout-icon:var(--callout-icon-warning)}.callout[data-callout=failure],.callout[data-callout=danger],.callout[data-callout=bug]{--color:#db4242;--border:#db424244;--bg:#db424210;--callout-icon:var(--callout-icon-failure)}.callout[data-callout=bug]{--callout-icon:var(--callout-icon-bug)}.callout[data-callout=danger]{--callout-icon:var(--callout-icon-danger)}.callout[data-callout=example]{--color:#7a43b5;--border:#7a43b544;--bg:#7a43b510;--callout-icon:var(--callout-icon-example)}.callout[data-callout=quote]{--color:var(--secondary);--border:var(--lightgray);--callout-icon:var(--callout-icon-quote)}.callout.is-collapsed>.callout-title>.fold-callout-icon{transform:rotate(-90deg)}.callout.is-collapsed .callout-content>*{height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transition:height .1s cubic-bezier(.02,.01,.47,1),margin .1s cubic-bezier(.02,.01,.47,1),padding .1s cubic-bezier(.02,.01,.47,1);overflow-y:clip}.callout.is-collapsed .callout-content>:first-child{margin-top:-1rem}.callout-title{color:var(--color);--icon-size:18px;align-items:flex-start;gap:5px;padding:1rem 0;display:flex}.callout-title .fold-callout-icon{opacity:.8;cursor:pointer;--callout-icon:var(--callout-icon-fold);transition:transform .15s}.callout-title>.callout-title-inner>p{color:var(--color);margin:0}.callout-title .callout-icon,.callout-title .fold-callout-icon{width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background-size:var(--icon-size) var(--icon-size);background-position:50%;background-color:var(--color);-webkit-mask-image:var(--callout-icon);mask-image:var(--callout-icon);-webkit-mask-size:var(--icon-size) var(--icon-size);mask-size:var(--icon-size) var(--icon-size);padding:.2rem 0;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.callout-title .callout-title-inner{font-weight:600}html{scroll-behavior:smooth;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;width:100vw;overflow-x:hidden}@media (max-width:800px){html{scroll-padding-top:4rem}}body{box-sizing:border-box;background-color:var(--light);font-family:var(--bodyFont);color:var(--darkgray);margin:0}.text-highlight{background-color:var(--textHighlight);border-radius:5px;padding:0 .1rem}p,ul,text,a,tr,td,li,ol,ul,.katex,.math,.typst-doc,g[class~=typst-text]{color:var(--darkgray);fill:var(--darkgray);overflow-wrap:break-word;text-wrap:pretty}path[class~=typst-shape]{stroke:var(--darkgray)}.math.math-display{text-align:center}article>mjx-container.MathJax,article blockquote>div>mjx-container.MathJax{display:flex}article>mjx-container.MathJax>svg,article blockquote>div>mjx-container.MathJax>svg{margin-left:auto;margin-right:auto}article blockquote>div>mjx-container.MathJax>svg{margin-top:1rem;margin-bottom:1rem}strong{font-weight:600}a{color:var(--secondary);font-weight:600;text-decoration:none;transition:color .2s}a:hover{color:var(--tertiary)}a.internal{background-color:var(--highlight);border-radius:5px;padding:0 .1rem;line-height:1.4rem;text-decoration:none}a.internal.broken{color:var(--secondary);opacity:.5;transition:opacity .2s}a.internal.broken:hover{opacity:.8}a.internal:has(>img){background-color:#0000;border-radius:0;padding:0}a.internal.tag-link:before{content:"#"}a.external .external-icon{height:1ex;margin:0 .15em}a.external .external-icon>path{fill:var(--dark)}.flex-component{display:flex}.desktop-only{display:contents}.desktop-only.flex-component{display:flex}@media (max-width:800px){.desktop-only.flex-component,.desktop-only{display:none}}.mobile-only,.mobile-only.flex-component{display:none}@media (max-width:800px){.mobile-only.flex-component{display:flex}.mobile-only{display:contents}}.page{max-width:1500px;margin:0 auto}.page article>h1{font-size:2rem}.page article li:has(>input[type=checkbox]){padding-left:0;list-style-type:none}.page article li:has(>input[type=checkbox]:checked){text-decoration:line-through;-webkit-text-decoration-color:var(--gray);text-decoration-color:var(--gray);color:var(--gray)}.page article li>*{margin-top:0;margin-bottom:0}.page article p>strong{color:var(--dark)}.page>#quartz-body{grid-template:"grid-sidebar-left grid-header grid-sidebar-right""grid-sidebar-left grid-center grid-sidebar-right""grid-sidebar-left grid-footer grid-sidebar-right"/320px auto 320px;gap:5px;display:grid}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body{grid-template:"grid-sidebar-left grid-header""grid-sidebar-left grid-center""grid-sidebar-left grid-sidebar-right""grid-sidebar-left grid-footer"/320px auto;gap:5px}}@media (max-width:800px){.page>#quartz-body{grid-template:"grid-sidebar-left""grid-header""grid-center""grid-sidebar-right""grid-footer"/auto;gap:5px}}@media not (min-width:1200px){.page>#quartz-body{padding:0 1rem}}@media (max-width:800px){.page>#quartz-body{margin:0 auto}}.page>#quartz-body .sidebar{box-sizing:border-box;gap:1.2rem;height:100vh;padding:6rem 2rem 2rem;display:flex;position:sticky;top:0}.page>#quartz-body .sidebar.left{z-index:1;flex-direction:column;grid-area:grid-sidebar-left}@media (max-width:800px){.page>#quartz-body .sidebar.left{position:initial;height:unset;flex-direction:row;align-items:center;gap:0;padding:2rem 0 0;display:flex}}.page>#quartz-body .sidebar.right{flex-direction:column;grid-area:grid-sidebar-right;margin-right:0}@media (max-width:800px){.page>#quartz-body .sidebar.right{margin-left:inherit;margin-right:inherit}}@media not (min-width:1200px){.page>#quartz-body .sidebar.right{position:initial;height:unset;flex-direction:row;width:100%;padding:0}.page>#quartz-body .sidebar.right>*{flex:1;max-height:24rem}.page>#quartz-body .sidebar.right>.toc{display:none}}.page>#quartz-body .page-header,.page>#quartz-body .page-footer{margin-top:1rem}.page>#quartz-body .page-header{grid-area:grid-header;margin:6rem 0 0}@media (max-width:800px){.page>#quartz-body .page-header{margin-top:0;padding:0}}.page>#quartz-body .center>article{grid-area:grid-center}.page>#quartz-body footer{grid-area:grid-footer}.page>#quartz-body .center,.page>#quartz-body footer{min-width:100%;max-width:100%;margin-left:auto;margin-right:auto}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body .center,.page>#quartz-body footer{margin-right:0}}@media (max-width:800px){.page>#quartz-body .center,.page>#quartz-body footer{margin-left:0;margin-right:0}}.page>#quartz-body footer{margin-left:0}.page[data-frame=full-width]>#quartz-body{grid-template:"grid-header""grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=full-width]>#quartz-body{grid-template-columns:auto}}.page[data-frame=full-width]>#quartz-body .center.full-width{min-width:100%;max-width:100%}.page[data-frame=minimal]>#quartz-body{grid-template:"grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=minimal]>#quartz-body{grid-template-columns:auto}}.page[data-frame=minimal]>#quartz-body .center.minimal{min-width:100%;max-width:100%;margin:0}.footnotes{border-top:1px solid var(--lightgray);margin-top:2rem}input[type=checkbox]{color:var(--secondary);border:1px solid var(--lightgray);background-color:var(--light);appearance:none;border-radius:3px;width:16px;height:16px;margin-inline:-1.4rem .2rem;position:relative;transform:translateY(2px)}input[type=checkbox]:checked{border-color:var(--secondary);background-color:var(--secondary)}input[type=checkbox]:checked:after{content:"";border:solid var(--light);border-width:0 2px 2px 0;width:4px;height:8px;display:block;position:absolute;top:1px;left:4px;transform:rotate(45deg)}blockquote{border-left:3px solid var(--secondary);margin:1rem 0;padding-left:1rem;transition:border-color .2s}h1,h2,h3,h4,h5,h6,thead{font-family:var(--headerFont);color:var(--dark);font-weight:revert;margin-bottom:0}article>h1>a[role=anchor],article>h2>a[role=anchor],article>h3>a[role=anchor],article>h4>a[role=anchor],article>h5>a[role=anchor],article>h6>a[role=anchor],article>thead>a[role=anchor]{color:var(--dark);background-color:#0000}h1[id]>a[href^=\#],h2[id]>a[href^=\#],h3[id]>a[href^=\#],h4[id]>a[href^=\#],h5[id]>a[href^=\#],h6[id]>a[href^=\#]{opacity:0;font-family:var(--codeFont);-webkit-user-select:none;user-select:none;margin:0 .5rem;transition:opacity .2s;transform:translateY(-.1rem)}h1[id]:hover>a,h2[id]:hover>a,h3[id]:hover>a,h4[id]:hover>a,h5[id]:hover>a,h6[id]:hover>a{opacity:1}h1:not([id])>a[role=anchor],h2:not([id])>a[role=anchor],h3:not([id])>a[role=anchor],h4:not([id])>a[role=anchor],h5:not([id])>a[role=anchor],h6:not([id])>a[role=anchor]{display:none}h1{margin-top:2.25rem;margin-bottom:1rem;font-size:1.75rem}h2{margin-top:1.9rem;margin-bottom:1rem;font-size:1.4rem}h3{margin-top:1.62rem;margin-bottom:1rem;font-size:1.12rem}h4,h5,h6{margin-top:1.5rem;margin-bottom:1rem;font-size:1rem}figure[data-rehype-pretty-code-figure]{margin:0;line-height:1.6rem;position:relative}figure[data-rehype-pretty-code-figure]>[data-rehype-pretty-code-title]{font-family:var(--codeFont);border:1px solid var(--lightgray);width:fit-content;color:var(--darkgray);border-radius:5px;margin-bottom:-.5rem;padding:.1rem .5rem;font-size:.9rem}figure[data-rehype-pretty-code-figure]>pre{padding:0}pre{font-family:var(--codeFont);border:1px solid var(--lightgray);border-radius:5px;padding:0 .5rem;position:relative;overflow-x:auto}pre:has(>code.mermaid){border:none}pre>code{counter-reset:line;counter-increment:line 0;background:0 0;padding:.5rem 0;font-size:.85rem;display:grid;overflow-x:auto}pre>code [data-highlighted-chars]{background-color:var(--highlight);border-radius:5px}pre>code>[data-line]{box-sizing:border-box;border-left:3px solid #0000;padding:0 .25rem}pre>code>[data-line][data-highlighted-line]{background-color:var(--highlight);border-left:3px solid var(--secondary)}pre>code>[data-line]:before{content:counter(line);counter-increment:line;text-align:right;color:#738a9499;width:1rem;margin-right:1rem;display:inline-block}pre>code[data-line-numbers-max-digits="2"]>[data-line]:before{width:2rem}pre>code[data-line-numbers-max-digits="3"]>[data-line]:before{width:3rem}code{color:var(--dark);font-size:.9em;font-family:var(--codeFont);font-variant-ligatures:none;background:var(--lightgray);border-radius:5px;padding:.1rem .2rem}tbody,li,p{line-height:1.6rem}.table-container{overflow-x:auto}.table-container>table{border-collapse:collapse;margin:1rem;padding:1.5rem}.table-container>table th,.table-container>table td{min-width:75px}.table-container>table>*{line-height:2rem}th{text-align:left;border-bottom:2px solid var(--gray);padding:.4rem .7rem}td{padding:.2rem .7rem}tr{border-bottom:1px solid var(--lightgray)}tr:last-child{border-bottom:none}img{content-visibility:auto;border-radius:5px;max-width:100%;margin:1rem 0}p>img+em{display:block;transform:translateY(-1rem)}hr{background-color:var(--lightgray);border:none;width:100%;height:1px;margin:2rem auto}audio,video{border-radius:5px;width:100%}.spacer{flex:2 auto}div:has(>.overflow){max-height:100%;overflow-y:hidden}ul.overflow,ol.overflow{content:"";clear:both;width:100%;max-height:100%;margin-bottom:0;overflow-y:auto}ul.overflow>li.overflow-end,ol.overflow>li.overflow-end{height:.5rem;margin:0}ul.overflow.gradient-active,ol.overflow.gradient-active{-webkit-mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%)}.transclude ul{padding-left:1rem}.katex-display{display:initial;overflow:auto hidden}.external-embed.youtube,iframe.pdf{aspect-ratio:16/9;border-radius:5px;width:100%;height:100%}.navigation-progress{background:var(--secondary);z-index:9999;width:0;height:3px;transition:width .2s;position:fixed;top:0;left:0}@font-face{font-family:D2 Coding;src:url(https://cdn.jsdelivr.net/gh/naver/d2codingfont@1.3.2/D2Coding/D2Coding-Ver1.3.2-20180524.ttf)format("truetype");font-weight:400;font-style:normal}@font-face{font-family:D2 Coding;src:url(https://cdn.jsdelivr.net/gh/naver/d2codingfont@1.3.2/D2Coding/D2CodingBold-Ver1.3.2-20180524.ttf)format("truetype");font-weight:700;font-style:normal}:root{--bg:#0b0d0c;--bg-raised:#121414;--bg-sunken:#08090a;--fg:#e8ebe6;--fg-muted:#8b918a;--fg-subtle:#787d76;--line:#1f2321;--line-strong:#2a2f2c;--accent:#b6ff5c;--accent-dim:#5a7a2e;--warn:#ffb347;--code-bg:#0a0c0b;--code-fg:#d4e6b5;--selection:#b6ff5c38}:root[saved-theme=light]{--bg:#efece3;--bg-raised:#faf8f1;--bg-sunken:#e4e0d2;--fg:#0e1112;--fg-muted:#4a4e48;--fg-subtle:#5a5e54;--line:#c9c3b2;--line-strong:#8f8a79;--accent:#136a00;--accent-dim:#6b8a3a;--warn:#9a5400;--code-bg:#e4e0d2;--code-fg:#0e1112;--selection:#136a002e}:root[saved-theme=light] [style*="--shiki-light:#6A737D"]{color:#5a615a!important}:root[saved-theme=light] [style*="--shiki-light:#D73A49"]{color:#a51f29!important}:root[data-accent=amber]{--accent:#ffb347;--accent-dim:#8a5a1e;--selection:#ffb34738}:root[data-accent=cyan]{--accent:#7ce5ff;--accent-dim:#2e6a7a;--selection:#7ce5ff38}:root[data-accent=magenta]{--accent:#ff7eb6;--accent-dim:#7a2e5a;--selection:#ff7eb638}:root[data-accent=mono]{--accent:#e8ebe6;--accent-dim:#5a5f5a;--selection:#e8ebe638}:root[data-accent=lime]{--accent:#b6ff5c;--accent-dim:#5a7a2e;--selection:#b6ff5c38}:root[saved-theme=light][data-accent=amber]{--accent:#9a5400;--accent-dim:#b98a3e;--selection:#9a540029}:root[saved-theme=light][data-accent=cyan]{--accent:#0a5a72;--accent-dim:#3d8ca3;--selection:#0a5a7229}:root[saved-theme=light][data-accent=magenta]{--accent:#9c2e63;--accent-dim:#c08098;--selection:#9c2e6329}:root[saved-theme=light][data-accent=mono]{--accent:#0e1112;--accent-dim:#6a6e68;--selection:#0e111224}:root[saved-theme=light][data-accent=lime]{--accent:#136a00;--accent-dim:#6b8a3a;--selection:#136a002e}*{box-sizing:border-box}html,body{-webkit-font-smoothing:antialiased;width:100%;margin:0;padding:0;font-family:IBM Plex Sans KR,Inter,system-ui,sans-serif;font-size:15px;line-height:1.6;background:var(--bg)!important;color:var(--fg)!important;overflow:visible!important}body{background-image:linear-gradient(to right, color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px);background-position:-1px -1px;background-size:64px 64px}:root[saved-theme=light] body{background-image:linear-gradient(to right, color-mix(in srgb, var(--line) 70%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--line) 70%, transparent) 1px, transparent 1px)}body.tk-grid-off{background-image:none!important}::selection{background:var(--selection);color:inherit}a{color:inherit;text-decoration:none;background:0 0!important}a.internal{background-color:#0000!important;border-radius:0!important;padding:0!important}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.serif{font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif}.topbar{top:0;left:0;right:0;margin:0!important;position:fixed!important}body{padding-top:56px}#quartz-root.page{max-width:1600px;margin:0 auto;padding:0 clamp(16px,2vw,32px)}#quartz-root.page>#quartz-body{grid-template-columns:none!important;grid-template-areas:none!important;gap:0!important;padding:0!important}.page>#quartz-body>.left.sidebar{display:none!important}.page>#quartz-body>.center{min-width:0!important}.page>#quartz-body>footer{margin:0;display:none}.page>#quartz-body>.center>hr{display:none}.page-header{min-width:0;margin:0!important;padding:0!important}.page-header>*{min-width:0}.popover-hint{min-width:0;margin:0!important}body[data-slug=index] #quartz-root.page>#quartz-body{display:block!important}body[data-slug=index] .page>#quartz-body>.right.sidebar{display:none!important}body[data-slug=index] .page>#quartz-body>.center{width:100%;max-width:none}body[data-slug=index] .page>#quartz-body>.center>article{display:none}body:not([data-slug=index]) #quartz-root.page>#quartz-body{grid-template-columns:1fr 260px!important;column-gap:64px!important;display:grid!important}@media (max-width:960px){body:not([data-slug=index]) #quartz-root.page>#quartz-body{grid-template-columns:1fr!important;column-gap:0!important}}body[data-slug=tags\/index] #quartz-root.page>#quartz-body{grid-template-columns:1fr!important;column-gap:0!important}body[data-slug=tags\/index] .page>#quartz-body>.right.sidebar{display:none!important}body:not([data-slug=index]) .page>#quartz-body>.center{grid-area:unset!important;grid-area:1/1!important;width:100%!important;min-width:0!important;max-width:100%!important}body:not([data-slug=index]) .page>#quartz-body>footer{grid-area:unset!important;grid-column:1/-1!important}body:not([data-slug=index]) .page>#quartz-body>.right.sidebar{flex-direction:column;align-self:start;position:sticky;top:84px;grid-area:unset!important;grid-area:1/2!important;width:auto!important;height:auto!important;padding:48px 0!important;display:flex!important}@media (max-width:960px){body:not([data-slug=index]) .page>#quartz-body>.right.sidebar{position:static;grid-area:2/1!important;padding:0 0 48px!important}}body:not([data-slug=index]) .page>#quartz-body>.center>article{max-width:clamp(480px,68vw,1120px);padding-top:48px}.page-footer .darkmode{display:none!important}.page-footer .search>.search-button{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute!important;left:-99999px!important}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 96%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50;margin:0;padding:0 28px;position:sticky;top:0}.topbar-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:24px;max-width:1600px;height:56px;margin:0 auto;display:grid}.brand{letter-spacing:-.01em;color:var(--fg);align-items:center;gap:10px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:14px;font-weight:700;display:flex}.brand .blink{background:var(--accent);width:9px;height:16px;animation:1.1s steps(2,end) infinite tk-blink;display:inline-block;transform:translateY(2px)}@keyframes tk-blink{50%{opacity:0}}.brand .dot{color:var(--accent)}.brand .slash{color:var(--fg-subtle)}.navlinks{justify-self:start;gap:4px;margin-left:32px;display:flex}@media (max-width:960px){.navlinks{display:none}}.navlinks a{color:var(--fg-muted);border:1px solid #0000;padding:6px 10px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:12px;transition:all .15s}.navlinks a:hover{color:var(--fg);border-color:var(--line-strong)}.navlinks a.active{color:var(--accent);border-color:var(--accent-dim);background:color-mix(in srgb, var(--accent) 8%, transparent)}.top-tools{align-items:center;gap:10px;display:flex}.tk-search{border:1px solid var(--line);color:var(--fg-muted);background:var(--bg-sunken);cursor:pointer;align-items:center;gap:8px;min-width:200px;padding:6px 10px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:12px;display:flex}.tk-search:hover{border-color:var(--line-strong)}.tk-search kbd{border:1px solid var(--line-strong);color:var(--fg-subtle);background:0 0;margin-left:auto;padding:2px 5px;font-family:inherit;font-size:10px}.iconbtn{border:1px solid var(--line);background:var(--bg-sunken);width:32px;height:32px;color:var(--fg-muted);cursor:pointer;place-items:center;padding:0;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:13px;transition:all .15s;display:grid}.iconbtn:hover{color:var(--accent);border-color:var(--accent-dim)}.theme-toggle{letter-spacing:.15em;width:auto;min-width:64px;height:28px;color:var(--fg);background:var(--bg-sunken);padding:0 10px;font-size:10px;font-weight:600;position:relative;overflow:hidden}.theme-toggle:before{content:"";background:var(--accent);width:22px;transition:transform .25s cubic-bezier(.6,.2,.2,1),background .2s;position:absolute;top:3px;bottom:3px;left:3px}:root[saved-theme=light] .theme-toggle:before{transform:translate(34px)}.theme-toggle .tt-label{z-index:1;color:var(--fg);margin-left:18px;position:relative}.theme-toggle:hover{border-color:var(--accent-dim)}@media (max-width:650px){.topbar{padding-inline:12px}.topbar-inner{grid-template-columns:minmax(0,1fr) auto;gap:12px}.navlinks{display:none}.top-tools{gap:6px}.tk-search{justify-content:center;width:32px;min-width:32px;height:32px;padding:0}.tk-search>span:nth-child(2),.tk-search kbd{display:none}.theme-toggle{min-width:60px}}.tk-progress{background:var(--accent);z-index:100;width:0;height:2px;box-shadow:0 0 12px var(--accent);transition:width .1s;position:fixed;top:0;left:0}.navigation-progress{display:none!important}.tk-hero{border-bottom:1px dashed var(--line-strong);padding:72px 0 48px;position:relative}.tk-hero-grid{grid-template-columns:1fr auto;align-items:end;gap:48px;display:grid}@media (max-width:800px){.tk-hero-grid{grid-template-columns:1fr;gap:24px}}.tk-hero-meta{color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.12em;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;display:flex}.tk-hero-meta .chip{border:1px solid var(--line-strong);background:var(--bg-raised);color:var(--fg-muted);padding:3px 8px}.tk-hero-meta .live{color:var(--accent);align-items:center;gap:6px;display:flex}.tk-hero-meta .live:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:1.6s infinite tk-pulse}@keyframes tk-pulse{0%,to{opacity:1}50%{opacity:.3}}.tk-hero h1{word-break:keep-all;overflow-wrap:break-word;letter-spacing:-.035em!important;color:var(--fg)!important;margin:0 0 20px!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:clamp(40px,6vw,80px)!important;font-weight:700!important;line-height:.98!important}.tk-hero h1 .line{display:block}.tk-hero h1:after{display:none!important}.tk-hero h1 .acc{color:var(--accent)}.tk-hero h1 .strike{color:var(--fg-subtle);text-decoration:line-through;-webkit-text-decoration-color:var(--accent-dim);text-decoration-color:var(--accent-dim)}.tk-hero h1 .muted{color:var(--fg-subtle)}.tk-hero-sub{max-width:620px;color:var(--fg-muted);margin:0;font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif;font-size:19px;line-height:1.5}.tk-hero-sub em{color:var(--fg);font-style:italic}.tk-hero-sub-meta{color:var(--fg-subtle);font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:.9em}.tk-hero-side{color:var(--fg-muted);text-align:right;min-width:200px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;line-height:1.7}@media (max-width:800px){.tk-hero-side{text-align:left}}.tk-hero-side .row{border-bottom:1px dotted var(--line);justify-content:space-between;padding:4px 0;display:flex}.tk-hero-side .row span:first-child{color:var(--fg-subtle)}.tk-hero-side .row span:last-child{color:var(--fg)}.tk-hero-side .ascii{white-space:pre;color:var(--accent-dim);opacity:.7;text-align:left;margin-top:18px;font-size:9px;line-height:1.2}.tk-cats{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:960px){.tk-cats{grid-template-columns:1fr}}.tk-cat{border-right:1px solid var(--line);cursor:pointer;color:var(--fg);padding:28px 24px;transition:background .15s;position:relative}@media (max-width:960px){.tk-cat{border-right:0;border-bottom:1px solid var(--line)}}.tk-cat:last-child{border-right:0}.tk-cat:hover{background:var(--bg-raised)}.tk-cat:hover .cat-arrow{color:var(--accent);transform:translate(4px,-4px)}.cat-num{color:var(--fg-subtle);letter-spacing:.1em;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px}.cat-name{letter-spacing:-.02em;color:var(--fg);align-items:baseline;gap:10px;margin:8px 0 6px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:28px;font-weight:700;display:flex}.cat-name .count{color:var(--fg-subtle);font-size:13px;font-weight:400}.cat-desc{color:var(--fg-muted);max-width:90%;font-size:13px;line-height:1.55}.cat-arrow{color:var(--fg-subtle);font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;transition:all .2s;position:absolute;top:24px;right:20px}.cat-tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.cat-tag{color:var(--fg-muted);border:1px solid var(--line);background:var(--bg-sunken);padding:2px 6px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:10px}.tk-main{grid-template-columns:1fr 280px;gap:48px;padding:48px 0;display:grid}@media (max-width:960px){.tk-main{grid-template-columns:1fr}}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-bottom:24px;padding-bottom:12px;display:flex}.section-head h2{letter-spacing:.02em;color:var(--fg)!important;margin:0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:14px!important;font-weight:600!important}.section-head h2:before{content:"## ";color:var(--accent)}.section-head h2:after{display:none!important}.section-head .meta{color:var(--fg-subtle);font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px}.tk-posts,.tk-post-li{margin:0;padding:0;list-style:none}.tk-post{color:inherit;border-bottom:1px dashed var(--line);cursor:pointer;grid-template-columns:90px 1fr auto;align-items:baseline;gap:24px;padding:20px 0;text-decoration:none;transition:all .15s;display:grid;position:relative}@media (max-width:800px){.tk-post{grid-template-columns:1fr;gap:6px}}.tk-post:hover{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 60%);padding-left:12px}.tk-post:hover .post-title{color:var(--accent)}.tk-post:hover:before{content:">";color:var(--accent);font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-weight:700;position:absolute;top:20px;left:-4px}.post-date{color:var(--fg-subtle);letter-spacing:.02em;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px}.post-date .cat-label{color:var(--fg-subtle);display:block}.post-body{min-width:0}.post-title{letter-spacing:-.015em;color:var(--fg);margin-bottom:6px;font-size:19px;font-weight:600;transition:color .15s}.post-excerpt{color:var(--fg-muted);max-width:640px;margin-bottom:10px;font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif;font-size:14px;line-height:1.55}.post-tags{flex-wrap:wrap;gap:6px;display:flex}.tk-tag{color:var(--fg-muted);border:1px solid var(--line);text-transform:lowercase;background:0 0;padding:2px 6px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:10px}.tk-tag.primary{color:var(--accent);border-color:var(--accent-dim)}.post-read{color:var(--fg-subtle);white-space:nowrap;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px}.tk-sidebar{flex-direction:column;gap:32px;display:flex}.side-card{border:1px solid var(--line);background:var(--bg-raised)}.side-card-head{border-bottom:1px solid var(--line);letter-spacing:.08em;color:var(--fg-subtle);text-transform:uppercase;justify-content:space-between;align-items:center;padding:10px 14px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;display:flex}.side-card-head .dots{gap:4px;display:flex}.side-card-head .dots span{background:var(--line-strong);border-radius:50%;width:8px;height:8px}.side-card-head .dots span.on{background:var(--accent);box-shadow:0 0 8px var(--accent)}.side-card-body{padding:14px}.sys-line{color:var(--fg-muted);justify-content:space-between;padding:4px 0;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;display:flex}.sys-line .k{color:var(--fg-subtle)}.sys-line .v{color:var(--fg)}.sys-line .v.acc{color:var(--accent)}.tagcloud{flex-wrap:wrap;gap:4px;display:flex}.tagcloud a{border:1px solid var(--line);color:var(--fg-muted);padding:3px 7px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;transition:all .12s}.tagcloud a:hover{color:var(--accent);border-color:var(--accent-dim)}.tagcloud a .n{color:var(--fg-subtle);margin-left:4px}.graph-wrap{border:1px dashed var(--line-strong);background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%), var(--bg-sunken);height:160px;position:relative;overflow:hidden}body:not([data-slug=index]) .popover-hint{padding-top:48px}h1.article-title,body:not([data-slug=index]) article>h1:first-child{word-break:keep-all;overflow-wrap:anywhere;min-width:0;max-width:100%;letter-spacing:-.03em!important;color:var(--fg)!important;border:0!important;margin:0 0 20px!important;padding:0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:44px!important;font-weight:700!important;line-height:1.05!important}h1.article-title:after,body:not([data-slug=index]) article>h1:first-child:after{display:none!important}.breadcrumb-container{letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--accent)!important;margin-bottom:16px!important;padding:0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:11px!important}.breadcrumb-container a,.breadcrumb-container .breadcrumb-element{color:var(--accent)!important;background:0 0!important;border:0!important}.content-meta{color:var(--fg-subtle)!important;border-bottom:1px solid var(--line)!important;flex-wrap:wrap!important;gap:20px!important;margin-top:20px!important;padding-bottom:32px!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:11px!important;font-style:normal!important;display:flex!important}body:not([data-slug=index]) article h2{letter-spacing:-.01em!important;border:0!important;border-left:3px solid var(--accent)!important;color:var(--fg)!important;margin:48px 0 16px!important;padding:0 0 0 16px!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:22px!important;font-weight:700!important}body:not([data-slug=index]) article h2:before{content:""!important}body:not([data-slug=index]) article h3{color:var(--fg)!important;border:0!important;margin:32px 0 12px!important;padding:0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:16px!important;font-weight:600!important}body:not([data-slug=index]) article h3:before{color:var(--accent);content:"§ "!important}body:not([data-slug=index]) article p{color:var(--fg);margin:0 0 16px;line-height:1.75}body:not([data-slug=index]) article a{color:var(--accent)!important;border-bottom:1px dashed var(--accent-dim)!important}body:not([data-slug=index]) article strong{color:var(--fg);background:color-mix(in srgb, var(--accent) 18%, transparent);padding:0 3px;font-weight:600}body:not([data-slug=index]) article code:not(pre code){background:var(--bg-sunken)!important;border:1px solid var(--line)!important;color:var(--accent)!important;border-radius:0!important;padding:1px 6px!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:.88em!important}body:not([data-slug=index]) article ul,body:not([data-slug=index]) article ol{padding-left:20px}body:not([data-slug=index]) article li{color:var(--fg);margin:6px 0}body:not([data-slug=index]) article blockquote{border-left:3px solid var(--line-strong)!important;color:var(--fg-muted)!important;background:0 0!important;margin:24px 0!important;padding:4px 0 4px 20px!important;font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif!important}body:not([data-slug=index]) article th{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--fg)!important;border-bottom:2px solid var(--accent)!important}body:not([data-slug=index]) article td{color:var(--fg);border-bottom:1px solid var(--line)}.codeblock{border:1px solid var(--line-strong);background:var(--code-bg);margin:24px 0;position:relative;overflow:hidden}.codeblock-head{background:var(--bg-raised);border-bottom:1px solid var(--line-strong);color:var(--fg-subtle);justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;display:flex}.codeblock-head .dots{gap:5px;display:flex}.codeblock-head .dots span{background:var(--line-strong);border-radius:50%;width:10px;height:10px}.codeblock-head .filename{color:var(--fg-muted);flex:1}.codeblock-head .filename b{color:var(--fg);font-weight:500}.codeblock-head .copy{border:1px solid var(--line-strong);color:var(--fg-muted);cursor:pointer;background:0 0;padding:3px 8px;font-family:inherit;font-size:10px}.codeblock-head .copy:hover{color:var(--accent);border-color:var(--accent-dim)}.codeblock>pre{background:var(--code-bg)!important;color:var(--code-fg)!important;border:0!important;border-radius:0!important;margin:0!important;padding:14px 0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:13px!important;line-height:1.65!important;overflow-x:auto!important}article pre{background:var(--code-bg)!important;border:1px solid var(--line-strong)!important;color:var(--code-fg)!important;border-radius:0!important}article pre:has(>code.mermaid){background:var(--bg)!important;color:var(--fg)!important;border-color:var(--line)!important}.codeblock:has(>pre>code.mermaid){background:var(--bg)!important;color:var(--fg)!important;border-color:var(--line)!important}.codeblock:has(>pre>code.mermaid)>pre{background:var(--bg)!important;color:var(--fg)!important;border-color:var(--line)!important}.codeblock:has(>pre>code.mermaid)>.codeblock-head{background:var(--bg)!important;color:var(--fg-muted)!important;border-bottom-color:var(--line)!important}.callout{position:relative;border-left:3px solid var(--warn)!important;background:color-mix(in srgb, var(--warn) 8%, transparent)!important;color:var(--fg)!important;border-top:0!important;border-bottom:0!important;border-right:0!important;border-radius:0!important;margin:24px 0!important;padding:14px 18px!important;font-size:14px!important}.toc{font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:12px;position:sticky;top:84px}button.toc-header{text-align:left;width:100%;border:0!important;border-bottom:1px solid var(--line)!important;background:0 0!important;margin-bottom:12px!important;padding:0 0 8px!important}button.toc-header h3,button.toc-header h2{letter-spacing:.15em!important;color:var(--fg-subtle)!important;text-transform:uppercase!important;margin:0!important;font-size:10px!important}button.toc-header h3:before,button.toc-header h2:before{color:var(--fg-subtle);content:"// on this page"!important}button.toc-header h3,button.toc-header h2{font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-weight:400!important}ul.toc-content{margin:0;padding:0;list-style:none;border:0!important}ul.toc-content li{line-height:1.4;list-style:none;border-left:2px solid var(--line)!important;color:var(--fg-muted)!important;padding:5px 10px!important}ul.toc-content li>a{color:var(--fg-muted)!important;opacity:1!important;background:0 0!important;border:0!important;padding:0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:12px!important}ul.toc-content li>a.in-view{font-weight:600;color:var(--accent)!important}ul.toc-content li:has(>a.in-view){background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:var(--accent)!important}.cat-hero{border-bottom:1px solid var(--line);margin-bottom:32px;padding:40px 0 32px}.cat-hero .kicker{color:var(--fg-subtle);letter-spacing:.12em;text-transform:uppercase;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px}.cat-hero h1{letter-spacing:-.035em!important;color:var(--fg)!important;border:0!important;margin:12px 0 16px!important;padding:0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:72px!important;font-weight:800!important;line-height:.95!important}.cat-hero h1:after{display:none!important}.cat-hero h1 .acc{color:var(--accent)}.cat-hero p{color:var(--fg-muted);max-width:640px;margin:0;font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif;font-size:18px}body[data-slug^=dbms] .page-listing,body[data-slug^=os] .page-listing,body[data-slug^=dev] .page-listing,body[data-slug^=tags] .page-listing,.tk-cat-grid{border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:0;display:grid}@media (max-width:960px){body[data-slug^=dbms] .page-listing,body[data-slug^=os] .page-listing,body[data-slug^=dev] .page-listing,body[data-slug^=tags] .page-listing,.tk-cat-grid{grid-template-columns:1fr}}.page-listing>p,.page-listing>.page-listing-heading{border-bottom:1px solid var(--line);letter-spacing:0!important;color:var(--fg-subtle)!important;grid-column:1/-1!important;margin:0!important;padding:10px 14px!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:11px!important;font-weight:400!important}.page-listing>div,.page-listing ul.section-ul,.page-listing div>ul{display:contents!important}body[data-slug^=dbms] h1.article-title,body[data-slug^=os] h1.article-title,body[data-slug^=dev] h1.article-title,body[data-slug^=tags] h1.article-title{font-size:64px!important;line-height:.95!important}body[data-slug^=dbms] h1.article-title:before,body[data-slug^=os] h1.article-title:before,body[data-slug^=dev] h1.article-title:before,body[data-slug^=tags] h1.article-title:before{content:"// category";letter-spacing:.12em;color:var(--fg-subtle);text-transform:uppercase;margin-bottom:12px;font-size:11px;font-weight:400;display:block}body[data-slug=tags\/index] .center>.popover-hint>article,body[data-slug=tags\/index] .center>.popover-hint>p,body[data-slug=tags\/index] .center>.popover-hint>div:not(.tk-tags-catalog):not([data-tk-tags-catalog]){display:none!important}.tk-tags-catalog{padding:48px 0 96px}.tk-tags-catalog .article-back{color:var(--fg-muted);border:1px solid var(--line);align-items:center;gap:6px;margin-bottom:32px;padding:6px 10px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:12px;text-decoration:none;display:inline-flex}.tk-tags-catalog .article-back:hover{color:var(--accent);border-color:var(--accent-dim)}.tk-tags-catalog .cat-hero{border-bottom:1px solid var(--line);margin-bottom:32px;padding:8px 0 32px}.tk-tags-catalog .cat-hero h1 .slash{color:var(--fg-subtle)}.tk-tags-catalog .cat-hero .kicker{color:var(--fg-subtle);letter-spacing:.12em;text-transform:uppercase;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px}.tk-tags-catalog .cat-hero h1{letter-spacing:-.035em!important;color:var(--fg)!important;border:0!important;margin:12px 0 16px!important;padding:0!important;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace!important;font-size:clamp(40px,5.5vw,72px)!important;font-weight:800!important;line-height:.95!important}.tk-tags-catalog .cat-hero h1:after{display:none!important}.tk-tags-catalog .cat-hero h1 .acc{color:var(--accent)}.tk-tags-catalog .cat-hero p{color:var(--fg-muted);max-width:640px;margin:0;font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif;font-size:17px;line-height:1.55}.tk-tags-catalog .cat-filters{flex-wrap:wrap;gap:6px;margin-top:24px;display:flex}.tk-tags-catalog .cat-filter{border:1px solid var(--line);color:var(--fg-muted);cursor:pointer;background:0 0;align-items:baseline;gap:6px;padding:5px 10px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;text-decoration:none;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.tk-tags-catalog .cat-filter .count{color:var(--fg-subtle)}.tk-tags-catalog .cat-filter:hover{color:var(--accent);border-color:var(--accent-dim)}.tk-tags-catalog .cat-filter.active{color:var(--accent);border-color:var(--accent-dim);background:color-mix(in srgb, var(--accent) 10%, transparent)}.tk-tags-catalog .cat-grid{border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:0;display:grid}@media (max-width:960px){.tk-tags-catalog .cat-grid{grid-template-columns:1fr}}.tk-tags-catalog .cat-item{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;color:inherit;padding:24px;text-decoration:none;transition:all .15s;display:block;position:relative}.tk-tags-catalog .cat-item:nth-child(2n){border-right:0}@media (max-width:960px){.tk-tags-catalog .cat-item{border-right:0}}.tk-tags-catalog .cat-item:hover{background:var(--bg-raised)}.tk-tags-catalog .cat-item:hover .ci-title{color:var(--accent)}.tk-tags-catalog .ci-top{color:var(--fg-subtle);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;margin-bottom:16px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:10px;display:flex}.tk-tags-catalog .ci-id{color:var(--accent)}.tk-tags-catalog .ci-title{letter-spacing:-.015em;color:var(--fg);margin-bottom:10px;font-size:18px;font-weight:600;line-height:1.3;transition:color .15s}.tk-tags-catalog .ci-ex{color:var(--fg-muted);margin-bottom:14px;font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif;font-size:13px;line-height:1.55}.tk-tags-catalog .ci-tags{flex-wrap:wrap;gap:5px;display:flex}.page-listing li.section-li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;padding:24px;transition:all .15s;position:relative;margin:0!important;list-style:none!important}.page-listing li.section-li:nth-child(2n){border-right:0}.page-listing li.section-li:hover{background:var(--bg-raised)}.page-listing li.section-li:hover .page-listing-title,.page-listing li.section-li:hover h2 a,.page-listing li.section-li:hover h3 a{color:var(--accent)}.page-listing li.section-li>.section{grid-template-columns:none!important;display:block!important}.page-listing li.section-li h2,.page-listing li.section-li h3{letter-spacing:-.015em;line-height:1.3;border:0!important;margin:0 0 10px!important;padding:0!important;font-family:IBM Plex Sans KR,system-ui,sans-serif!important;font-size:18px!important;font-weight:600!important}.page-listing li.section-li h2:before,.page-listing li.section-li h3:before{content:""!important}.page-listing li.section-li h2 a,.page-listing li.section-li h3 a{transition:color .15s;color:var(--fg)!important}.page-listing li.section-li h2 a:after,.page-listing li.section-li h3 a:after{content:"";z-index:0;position:absolute;inset:0}.page-listing li.section-li .meta{color:var(--fg-muted);opacity:1;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:10px}.page-listing li.section-li ul.tags{z-index:1;flex-wrap:wrap;gap:5px;padding:0;list-style:none;position:relative;margin-top:12px!important;display:flex!important}.page-listing li.section-li ul.tags li{margin:0}.page-listing li.section-li ul.tags a.internal{border:1px solid var(--line);text-transform:lowercase;padding:2px 6px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:10px;color:var(--fg-muted)!important;background:0 0!important}.page-listing li.section-li ul.tags a.internal:before{content:""!important}.tk-footer{border-top:1px solid var(--line);color:var(--fg-subtle);margin-top:48px;padding:40px 0 32px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px}.tk-footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:32px;display:grid}@media (max-width:800px){.tk-footer-grid{grid-template-columns:1fr 1fr}}.tk-footer h4{letter-spacing:.15em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 10px;font-size:10px}.tk-footer a{color:var(--fg-muted);padding:3px 0;display:block}.tk-footer a:hover{color:var(--accent)}.tk-footer .tk-footer-brand{color:var(--fg);margin-bottom:10px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:13px;font-weight:700}.tk-footer .tk-footer-about{max-width:340px;line-height:1.6}.tk-footer .tk-footer-about .cc{color:var(--accent)}.tk-footer-sig{border-top:1px dashed var(--line);color:var(--fg-subtle);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;display:flex}.tk-footer-sig .acc{color:var(--accent)}.tweaks{background:var(--bg-raised);border:1px solid var(--line-strong);z-index:200;width:260px;font-family:JetBrains Mono,IBM Plex Sans KR,ui-monospace,monospace;font-size:11px;display:none;position:fixed;bottom:16px;right:16px;box-shadow:0 10px 40px #0006}.tweaks.on{display:block}.tweaks-head{border-bottom:1px solid var(--line);color:var(--fg-subtle);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:8px 12px;font-size:10px;display:flex}.tweaks-head .dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 6px var(--accent);border-radius:50%}.tweaks-body{padding:10px 12px 14px}.tweak-row{margin-bottom:14px}.tweak-row:last-child{margin-bottom:0}.tweak-label{color:var(--fg-subtle);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;margin-bottom:6px;font-size:10px;display:flex}.tweak-label b{color:var(--accent);font-weight:400}.tweak-opts{flex-wrap:wrap;gap:4px;display:flex}.tweak-opt{border:1px solid var(--line-strong);background:var(--bg-sunken);min-width:0;color:var(--fg-muted);cursor:pointer;text-align:center;flex:1;padding:5px 8px;font-family:inherit;font-size:10px}.tweak-opt.active{color:var(--accent);border-color:var(--accent-dim);background:color-mix(in srgb, var(--accent) 10%, transparent)}.tweak-swatch{border:1px solid var(--line-strong);cursor:pointer;flex:0 0 24px;width:24px;height:24px}.tweak-swatch.active{border-color:var(--fg);box-shadow:0 0 0 2px var(--bg-raised), 0 0 0 3px var(--accent)}body.v-brutal{background-size:48px 48px}body.v-brutal .tk-hero h1{text-transform:uppercase;letter-spacing:-.05em!important;font-weight:800!important}body.v-brutal .tk-cat{border:1px solid var(--line-strong)}body.v-brutal .tk-post:hover{transform:translate(4px)}body.v-min{background-image:none!important}body.v-min .tk-hero h1{font-style:italic;font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif!important;font-weight:400!important}body.v-min .cat-name{font-family:IBM Plex Serif,IBM Plex Sans KR,Georgia,serif!important;font-weight:500!important}body.v-min .brand .blink{background:var(--fg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-sunken)}::-webkit-scrollbar-thumb{background:var(--line-strong);border:2px solid var(--bg-sunken)}::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}hr{border-color:var(--line);background:var(--line)}article :where(h1,h2,h3,h4,h5,h6){scroll-margin-top:72px}.clipboard-button{float:right;color:var(--gray);border-color:var(--dark);background-color:var(--light);opacity:0;border:1px solid;border-radius:5px;margin:.3rem;padding:.4rem;transition:all .2s;display:flex;position:absolute;right:0}.clipboard-button>svg{fill:var(--light);filter:contrast(.3)}.clipboard-button:hover{cursor:pointer;border-color:var(--secondary)}.clipboard-button:focus{outline:0}pre:hover>.clipboard-button{opacity:1;transition:all .2s}.expand-button{float:right;color:var(--gray);border-color:var(--dark);background-color:var(--light);opacity:0;border:1px solid;border-radius:5px;margin:.3rem;padding:.4rem;transition:all .2s;display:flex;position:absolute;right:0}.expand-button>svg{fill:var(--light);filter:contrast(.3)}.expand-button:hover{cursor:pointer;border-color:var(--secondary)}.expand-button:focus{outline:0}pre:hover>.expand-button{opacity:1;transition:all .2s}#mermaid-container{contain:layout;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;width:100vw;height:100vh;display:none;position:fixed;top:0;left:0;overflow:hidden}#mermaid-container.active{display:inline-block}#mermaid-container>#mermaid-space{border:1px solid var(--lightgray);background-color:var(--light);border-radius:5px;width:80vw;height:80vh;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}#mermaid-container>#mermaid-space>.mermaid-content{transform-origin:0 0;min-width:200px;min-height:200px;transition:transform .1s;position:relative;overflow:visible}#mermaid-container>#mermaid-space>.mermaid-content pre{border:none;margin:0}#mermaid-container>#mermaid-space>.mermaid-content svg{max-width:none;height:auto}#mermaid-container>#mermaid-space>.mermaid-controls{background:var(--light);border:1px solid var(--lightgray);z-index:2;border-radius:6px;gap:8px;padding:8px;display:flex;position:absolute;bottom:20px;right:20px;box-shadow:0 2px 4px #0000001a}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button{border:1px solid var(--lightgray);background:var(--light);width:32px;height:32px;color:var(--dark);cursor:pointer;font-size:16px;font-family:var(--bodyFont);border-radius:4px;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:hover{background:var(--lightgray)}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:active{transform:translateY(1px)}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:nth-child(2){width:auto;padding:0 12px;font-size:14px}@layer quartz-fonts{:root{--titleFont:IBM Plex Serif;--bodyFont:IBM Plex Sans KR;--headerFont:JetBrains Mono;--codeFont:JetBrains Mono;--font-text:IBM Plex Sans KR;--font-interface:ui-sans-serif, -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Inter", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;--font-monospace:JetBrains Mono;--h1-font:JetBrains Mono;--h2-font:JetBrains Mono;--h3-font:JetBrains Mono;--h4-font:JetBrains Mono;--h5-font:JetBrains Mono;--h6-font:JetBrains Mono}}h1,h2,h3,h4,h5,h6{font-family:JetBrains Mono}