.file-tree{--file-tree-line:var(--rule);--file-tree-hover:var(--plate-soft);--file-tree-selected:var(--plate);border:1px solid var(--rule);background-color:var(--surface);border-radius:.75rem;flex-direction:column;width:100%;display:flex;overflow:hidden;box-shadow:0 24px 60px -48px #0000004d}.file-tree__viewport{overscroll-behavior:none;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--muted) 35%, transparent) transparent;padding:.5rem;overflow-y:auto}.file-tree__viewport::-webkit-scrollbar{width:.375rem}.file-tree__viewport::-webkit-scrollbar-track{background:0 0}.file-tree__viewport::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--muted) 35%, transparent);border-radius:9999px}.file-tree__tree{font-family:var(--font-mono);font-size:.8125rem;line-height:1.5}.file-tree__group{flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}.file-tree__group[role=group]{padding-block:.25rem;margin-left:.5rem;padding-left:.75rem;position:relative}.file-tree__group[role=group]:before{background-color:var(--file-tree-line);content:"";width:1px;transition:background-color .18s var(--ease-out);border-radius:9999px;position:absolute;top:.25rem;bottom:.25rem;left:0}.file-tree__group[role=group]:hover:before{background-color:color-mix(in srgb, var(--muted) 55%, var(--file-tree-line))}.file-tree__node{margin:0;position:relative}.file-tree__item{width:100%;color:var(--ink-soft);font:inherit;text-align:left;cursor:pointer;user-select:none;transition:background-color .15s var(--ease-out), color .15s var(--ease-out);background:0 0;border:0;border-radius:.5rem;align-items:center;gap:.375rem;padding:.3125rem .375rem;text-decoration:none;display:flex}.file-tree__item:hover,.file-tree__item:focus-visible{background-color:var(--file-tree-hover);color:var(--ink)}.file-tree__item:focus-visible{outline-offset:-2px}.file-tree__item[aria-selected=true]{background-color:var(--file-tree-selected);color:var(--ink)}.file-tree__icon{width:1rem;height:1rem;color:var(--muted);transition:color .15s var(--ease-out);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.file-tree__item:hover .file-tree__icon,.file-tree__item:focus-visible .file-tree__icon,.file-tree__item[aria-selected=true] .file-tree__icon{color:var(--ink)}.file-tree__icon svg{width:100%;height:100%;transition:opacity .14s var(--ease-out), transform .18s var(--ease-out);position:absolute;inset:0}.file-tree__icon-open{opacity:0;transform:scale(.85)}.file-tree__item[data-state=open] .file-tree__icon-open{opacity:1;transform:none}.file-tree__item[data-state=open] .file-tree__icon-closed{opacity:0;transform:scale(.85)}.file-tree__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-tree__branch{transition:grid-template-rows .22s var(--ease-out);grid-template-rows:0fr;display:grid}.file-tree__branch[data-state=open]{grid-template-rows:1fr}.file-tree__branch-inner{min-height:0;overflow:hidden}.file-tree__branch .file-tree__group{opacity:0;transition:opacity .15s var(--ease-out), transform .18s var(--ease-out);transform:translateY(-2px)}.file-tree__branch[data-state=open]>.file-tree__branch-inner>.file-tree__group{opacity:1;transition-delay:40ms;transform:none}.file-tree__footer{color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem;padding:.4375rem .75rem;font-size:.6875rem;line-height:1.5;display:flex}.file-tree__toggle-all{color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;transition:background-color .15s var(--ease-out), color .15s var(--ease-out);background:0 0;border:0;border-radius:.375rem;padding:.125rem .375rem}.file-tree__toggle-all:hover,.file-tree__toggle-all:focus-visible{background-color:var(--plate-soft);color:var(--ink)}@media (prefers-reduced-motion:reduce){.file-tree__branch,.file-tree__branch .file-tree__group,.file-tree__icon svg,.file-tree__icon,.file-tree__item,.file-tree__group[role=group]:before,.file-tree__toggle-all{transition:none}}.site-views--sitemap{width:100%}.sitemap-section{flex-direction:column;margin-top:3rem;display:flex}.sitemap-intro{gap:.5rem;display:grid}.sitemap-title{color:var(--ink);font-size:1.125rem;font-weight:500;line-height:1.625}.sitemap-description{color:var(--muted);text-wrap:pretty;font-size:1.125rem;line-height:1.625}.sitemap-tree{margin-top:2.5rem}html:active-view-transition .sitemap-page .portfolio-enter{animation-play-state:paused}
