@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500&family=Noto+Sans+SC:wght@400;500;600&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-sm:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist", "Noto Sans SC", system-ui, sans-serif;--default-mono-font-family:"Geist Mono", ui-monospace, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-9{margin-bottom:calc(var(--spacing) * 9)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-10{margin-left:calc(var(--spacing) * 10)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-\[4\/3\]{aspect-ratio:4/3}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-28{min-height:calc(var(--spacing) * 28)}.\!w-auto{width:auto!important}.w-2\/5{width:40%}.w-4\/5{width:80%}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[34rem\]{max-width:34rem}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.scroll-mt-8{scroll-margin-top:calc(var(--spacing) * 8)}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block:0}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-9>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 9) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 9) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)){border-color:var(--page-line)}.self-center{align-self:center}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded-panel{border-radius:3px}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-accent{border-color:var(--page-accent)}.border-line{border-color:var(--page-line)}.bg-paper{background-color:var(--page-paper)}.bg-surface{background-color:var(--page-bg)}.object-contain{object-fit:contain}.p-3{padding:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-7{padding-bottom:calc(var(--spacing) * 7)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:Geist Mono,ui-monospace,monospace}.font-sans{font-family:Geist,Noto Sans SC,system-ui,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--page-accent)}.text-ink{color:var(--page-text)}.text-muted{color:var(--page-subtle)}.text-warm{color:var(--page-warm)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.group-hover\:text-ink:is(:where(.group):hover *){color:var(--page-text)}.hover\:text-accent:hover{color:var(--page-accent)}.hover\:text-ink:hover{color:var(--page-text)}.hover\:text-warm:hover{color:var(--page-warm)}.hover\:underline:hover{text-decoration-line:underline}}@media (width>=40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[1fr_1fr_auto\]{grid-template-columns:1fr 1fr auto}}@media (width>=48rem){.md\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.md\:pt-14{padding-top:calc(var(--spacing) * 14)}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[220px_minmax\(0\,1fr\)\]{grid-template-columns:220px minmax(0,1fr)}}.border-line.border{border-width:var(--border-hairline)}.border-line.border-t{border-top-width:var(--border-hairline)}.border-line.border-r{border-right-width:var(--border-hairline)}.border-line.border-b{border-bottom-width:var(--border-hairline)}.border-line.border-l{border-left-width:var(--border-hairline)}.border-line.border-x{border-inline-width:var(--border-hairline)}.border-line.border-y{border-block-width:var(--border-hairline)}}:root{--border-hairline:1px;--page-bg:oklch(99% .001 95);--page-paper:oklch(97.5% .0015 95);--color-paper:var(--page-paper);--page-text:#34312e;--page-body:#5d5954;--page-subtle:#77736e;--page-line:oklch(91% .0025 92);--column-guide-ink:oklch(56% .004 78);--column-guide-opacity:.5;--page-accent:#34312e;--page-warm:#aa563d;--page-signal:#c96a40;--page-selection-bg:#dce8ad;--preferences-control-bg:oklch(95% .002 95);--preferences-panel-bg:var(--page-paper)}@supports (color:color-mix(in lab, red, red)){:root{--preferences-panel-bg:color-mix(in oklab, var(--page-paper) 97%, transparent)}}:root{--dock-bg:var(--page-bg)}@supports (color:color-mix(in lab, red, red)){:root{--dock-bg:color-mix(in oklab, var(--page-bg) 92%, transparent)}}:root{--ruler-major-ink:#ffffff2e;--ruler-minor-ink:#ffffff1f;--preferences-panel-shadow:0 2px 5px #34312e14, 0 12px 28px #34312e14;--portrait-ink:#34312e;--project-ghost-ink:var(--page-text)}@supports (color:color-mix(in lab, red, red)){:root{--project-ghost-ink:color-mix(in oklab, var(--page-text) 5%, transparent)}}:root{--project-grid-ink:var(--page-text)}@supports (color:color-mix(in lab, red, red)){:root{--project-grid-ink:color-mix(in oklab, var(--page-text) 3.5%, transparent)}}:root{--project-shader-opacity:.14;--shelf-shadow-rgb:27 22 17;--shelf-front-bottom:oklch(61% .065 64);--shelf-front-top:oklch(79% .05 74);--shelf-grain:#472a1114;--shelf-top-back:oklch(77% .045 75);--shelf-top-front:oklch(84% .04 78);--book-color-0:#e8e6db;--book-ink-0:#333630;--book-color-1:#a73f40;--book-ink-1:#fff4ed;--book-color-2:#e9cb42;--book-ink-2:#383620;--book-color-3:#4b766b;--book-ink-3:#f4f1e7;--book-color-4:#a9c7d0;--book-ink-4:#253940;--book-color-5:#343837;--book-ink-5:#f4efe5;--page-width:600px;--page-content-width:552px;--ease-swift:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--editor-chat-width:400px;--editor-code-font:"Geist Mono", ui-monospace, monospace;--editor-assistant-radius:18px;--editor-assistant-shadow:0 8px 32px #00000014;--editor-diff-added:#70b7e5}@supports (color:color-mix(in lab, red, red)){:root{--editor-diff-added:color-mix(in srgb, #70b7e5 24%, var(--page-bg))}}:root{--editor-diff-removed:#df6358}@supports (color:color-mix(in lab, red, red)){:root{--editor-diff-removed:color-mix(in srgb, #df6358 18%, var(--page-bg))}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:oklch(16% .006 80);--page-paper:oklch(19% .007 80);--page-text:oklch(94% .006 92);--page-body:oklch(78% .008 88);--page-subtle:oklch(61% .01 84);--page-line:oklch(27% .009 80);--column-guide-ink:oklch(61% .01 84);--column-guide-opacity:.4;--page-accent:var(--page-text);--page-warm:#e79f82;--page-signal:oklch(70% .17 48);--page-selection-bg:oklch(80% .14 105/.28);--preferences-control-bg:oklch(22% .008 80);--preferences-panel-bg:var(--page-paper)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--preferences-panel-bg:color-mix(in oklab, var(--page-paper) 97%, transparent)}}:root[data-theme=dark]{--dock-bg:var(--page-paper)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--dock-bg:color-mix(in oklab, var(--page-paper) 92%, transparent)}}:root[data-theme=dark]{--preferences-panel-shadow:0 2px 5px #0003, 0 12px 28px #0000003d;--portrait-ink:oklch(87% .007 90);--project-ghost-ink:var(--page-text)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--project-ghost-ink:color-mix(in oklab, var(--page-text) 6.5%, transparent)}}:root[data-theme=dark]{--project-grid-ink:var(--page-text)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--project-grid-ink:color-mix(in oklab, var(--page-text) 4.2%, transparent)}}:root[data-theme=dark]{--project-shader-opacity:.12;--shelf-shadow-rgb:0 0 0;--shelf-front-bottom:oklch(29% .035 49);--shelf-front-top:oklch(43% .04 59);--shelf-grain:#00000026;--shelf-top-back:oklch(38% .035 56);--shelf-top-front:oklch(47% .035 62)}@media (resolution>=192dpi){:root{--border-hairline:.5px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}html{background:var(--page-bg);color:var(--page-text)}body{-webkit-font-smoothing:antialiased;isolation:isolate;min-width:320px;margin:0}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}:focus-visible{outline:1px solid var(--page-accent);outline-offset:3px}::selection{background:var(--page-selection-bg)}.theme-control{border:var(--border-hairline) solid var(--page-line);border-radius:4px;gap:2px;margin-top:18px;padding:3px;display:inline-flex}.theme-control button{width:27px;height:27px;color:var(--page-subtle);border-radius:2px;place-items:center;display:grid}.theme-control button[aria-pressed=true]{background:var(--page-paper);color:var(--page-text)}.theme-control-compact{flex:none;margin-top:0}:root[data-theme=dark] .pixel-mark i{background:var(--page-subtle)}:root[data-theme=dark] .site-dock{border-color:var(--page-line);background:var(--dock-bg);box-shadow:0 7px 24px #00000040}:root[data-theme=dark] .site-dock a:hover,:root[data-theme=dark] .site-dock a[data-status=active]{background:var(--preferences-control-bg);color:var(--page-text)}:root[data-theme=dark] .catalog-row-leader{background-image:radial-gradient(circle, var(--page-subtle) .5px, transparent .5px)}:root[data-theme=dark] .markdown-source .cm-editor{background:var(--page-paper);color:var(--page-text)}:root[data-theme=dark] .markdown-source .cm-gutters{background:var(--page-paper);color:var(--page-subtle);border-color:var(--page-line)}:root[data-theme=dark] .markdown-source .cm-cursor{border-left-color:var(--page-text)}:root[data-theme=dark] .markdown-source .cm-selectionBackground{background:var(--page-selection-bg)}:root[data-theme=dark] .article-reader .article-prose pre.shiki,:root[data-theme=dark] .prose-blog pre.shiki{border-color:var(--page-line);background:var(--page-paper)!important;color:var(--page-text)!important}:root[data-theme=dark] .shiki span{color:var(--shiki-dark)!important}:root[data-theme=dark] .skeleton-line{background-image:linear-gradient(90deg, var(--page-paper), var(--preferences-control-bg), var(--page-paper))}:root[data-theme=dark] .button-primary{color:var(--page-bg)}:root[data-theme=dark] .button-primary:hover{background:var(--portrait-ink)}:root[data-theme=dark] ::selection{background:var(--page-selection-bg);color:var(--page-text)}.public-width,.reading-width{width:min(100% - 48px, var(--page-content-width));margin-inline:auto}.muted{color:var(--page-subtle)}.eyebrow{color:var(--page-subtle);font-family:var(--font-mono);text-transform:uppercase;font-size:.75rem;font-weight:400}.eyebrow:before{content:"// ";color:#aaa59d}.section-rule{border-top:var(--border-hairline) solid var(--page-line)}.column-guides{pointer-events:none;z-index:-1;width:min(100%, var(--page-width));-webkit-user-select:none;user-select:none;opacity:var(--column-guide-opacity);margin-inline:auto;position:fixed;inset:0}.column-guides:before,.column-guides:after{content:"";background:repeating-linear-gradient(to bottom, color-mix(in oklab, var(--column-guide-ink) 45%, transparent) 0, color-mix(in oklab, var(--column-guide-ink) 45%, transparent) 2px, transparent 2px, transparent 4px);width:1px;position:absolute;top:0;bottom:0}.column-guides:before{left:0}.column-guides:after{right:0}@media (width<=640px){.column-guides{width:min(100% - 32px, var(--page-width))}}.viewport-edge-fade{z-index:90;pointer-events:none;-webkit-user-select:none;user-select:none;height:4.5rem;position:fixed;left:0;right:0}.viewport-edge-fade-top{background:linear-gradient(to bottom, color-mix(in oklab, var(--page-bg) 62%, transparent), transparent);top:0;-webkit-mask-image:linear-gradient(#000 15%,#0000);mask-image:linear-gradient(#000 15%,#0000)}.viewport-edge-fade-bottom{background:linear-gradient(to top, color-mix(in oklab, var(--page-bg) 62%, transparent), transparent);bottom:0;-webkit-mask-image:linear-gradient(#0000,#000 85%);mask-image:linear-gradient(#0000,#000 85%)}.pixel-mark{flex:none;grid-template-rows:repeat(3,4px);grid-template-columns:repeat(3,4px);gap:2px;display:inline-grid}.pixel-mark i{background:#b8b4ad;width:4px;height:4px}.pixel-mark i:nth-child(2),.pixel-mark i:nth-child(4),.pixel-mark i:nth-child(8){opacity:.35}.pixel-mark i:nth-child(5){background:var(--page-signal)}.section-tag{font-family:var(--font-mono);color:var(--page-subtle);align-items:center;font-size:.75rem;display:inline-flex}.section-tag-index{border:var(--border-hairline) solid var(--page-line);font-variant-numeric:tabular-nums;padding:1px 6px}.section-tag-hatch{border-block:var(--border-hairline) solid var(--page-line);border-right:var(--border-hairline) solid var(--page-line);background:repeating-linear-gradient(-45deg,#b6b1a9 0 1px,#0000 1px 4px);width:12px;height:20px}.section-tag-label{padding-left:10px}.catalog-row{border-top:var(--border-hairline) solid var(--page-line);align-items:center;gap:12px;min-height:48px;font-size:.9375rem;display:flex}.catalog-row-title{view-transition-class:article-title-morph;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.article-print-pile{isolation:isolate;pointer-events:none;-webkit-user-select:none;user-select:none;flex:none;width:4rem;height:2.75rem;margin-block:.5rem;display:block;position:relative}.article-print-sheet{background:var(--page-paper);box-shadow:0 0 0 1px color-mix(in oklab, var(--page-text) 22%, transparent);border-radius:3px;position:absolute;inset:1px}.article-print-sheet:first-child{opacity:.62;transform:translate(-2px,1px)rotate(-1.6deg)}.article-print-sheet:nth-child(2){opacity:.82;transform:translate(2px,-1px)rotate(1.1deg)}.article-print-thumb{view-transition-class:article-cover-morph;width:100%;height:100%;box-shadow:0 0 0 1px var(--page-line);background:var(--page-paper);border-radius:3px;display:block;position:relative;overflow:hidden}.article-print-thumb img,.article-print-dither{object-fit:cover;width:100%;height:100%;display:block}.article-print-dither{opacity:0;transition:opacity .24s var(--ease-swift);position:absolute;inset:0}.article-print-dither.is-ready{opacity:1}.catalog-row:hover .article-print-dither,.catalog-row:focus-visible .article-print-dither{opacity:0}@media (prefers-reduced-motion:reduce){.article-print-dither{transition:none}}.catalog-row-leader{background:radial-gradient(circle,#aaa59d .5px,#0000 .5px) 0 0/6px 1px repeat-x;flex:1;min-width:12px;height:1px}.catalog-row-date{color:var(--page-subtle);font-variant-numeric:tabular-nums;flex:none;font-size:.8125rem}.catalog-row:hover .catalog-row-title,.catalog-row:focus-visible .catalog-row-title{text-decoration:underline;-webkit-text-decoration-color:var(--page-line);text-decoration-color:var(--page-line);text-underline-offset:4px}.site-dock{z-index:100;bottom:max(18px, env(safe-area-inset-bottom));border:var(--border-hairline) solid var(--page-line);background:var(--dock-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:999px;align-items:center;gap:2px;padding:6px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 7px 24px #34312e1a}.site-dock>a,.site-dock .preferences-trigger{width:42px;height:38px;color:var(--page-subtle);transition:background .15s var(--ease-swift), color .15s var(--ease-swift);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.site-dock>a:hover,.site-dock>a[data-status=active],.site-dock>a[data-section-active=true],.site-dock .preferences-trigger:hover,.site-dock .preferences-trigger[aria-expanded=true]{background:var(--preferences-control-bg);color:var(--page-text)}.site-dock-home-avatar{object-fit:contain;transform-origin:50% 85%;width:28px;height:28px;transition:transform .18s var(--ease-swift);flex:none;display:block}.site-dock>a:hover .site-dock-home-avatar,.site-dock>a:focus-visible .site-dock-home-avatar{transform:translateY(-1px)rotate(-6deg)}@media (prefers-reduced-motion:reduce){.site-dock-home-avatar{transition:none}.site-dock>a:hover .site-dock-home-avatar,.site-dock>a:focus-visible .site-dock-home-avatar{transform:none}}.page-rulers{z-index:95;pointer-events:none;-webkit-user-select:none;user-select:none;mix-blend-mode:difference;position:fixed;inset:0}.page-ruler{position:absolute;left:0}.page-ruler-top{top:0}.page-ruler-bottom{bottom:0}.page-ruler-major{stroke:var(--ruler-major-ink)}.page-ruler-minor{stroke:var(--ruler-minor-ink)}.site-dock-divider{background:var(--page-line);width:1px;height:18px;margin-inline:5px}.site-preferences{position:relative}.preferences-trigger{background:0 0;border:0;padding:0;position:relative}.site-dock>a{position:relative}.dock-tooltip{z-index:1;border:var(--border-hairline) solid var(--page-line);background:var(--preferences-panel-bg);box-shadow:var(--preferences-panel-shadow);color:var(--page-text);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--ease-swift), transform .15s var(--ease-swift);border-radius:7px;align-items:center;gap:6px;padding:5px 6px 5px 9px;font-size:14px;line-height:1.5;display:inline-flex;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%)translateY(3px)scale(.95)}.dock-tooltip-keys{gap:3px;display:inline-flex}.dock-tooltip kbd{border:var(--border-hairline) solid var(--page-line);background:var(--preferences-control-bg);min-width:20px;height:22px;color:var(--page-subtle);border-radius:5px;justify-content:center;align-items:center;padding-inline:4px;font-family:inherit;font-size:12px;line-height:1;display:inline-flex}.site-dock>a:focus-visible .dock-tooltip,.preferences-trigger:focus-visible[aria-expanded=false] .dock-tooltip{opacity:1;transform:translate(-50%)translateY(0)scale(1)}@media (hover:hover) and (pointer:fine){.site-dock>a:hover .dock-tooltip,.preferences-trigger:hover[aria-expanded=false] .dock-tooltip{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.site-dock>a:first-child .dock-tooltip{transform-origin:0 100%;left:0;translate:50%}.preferences-panel{inset:auto max(12px,50% - 143px) auto auto;bottom:calc(max(18px, env(safe-area-inset-bottom)) + 66px);border:var(--border-hairline) solid var(--page-line);background:var(--preferences-panel-bg);width:min(264px,100vw - 24px);color:var(--page-text);box-shadow:var(--preferences-panel-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;margin:0;padding:16px;position:fixed;overflow:visible}.preferences-panel:popover-open{animation:preferences-enter .15s var(--ease-swift)}.preferences-row+.preferences-row{margin-top:6px}.preferences-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.preferences-row-label{color:var(--page-subtle);font-size:15px}.theme-control-preferences{background:var(--preferences-control-bg);border:0;border-radius:999px;gap:2px;margin:0;padding:4px}.theme-control-preferences button{border-radius:50%;width:44px;height:44px;transition:background .15s,color .15s}.theme-control-preferences button:hover{color:var(--page-text)}.theme-control-preferences button[aria-pressed=true]{background:var(--page-text);color:var(--page-bg)}@keyframes preferences-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (width<=380px){.site-dock>a,.site-dock .preferences-trigger{width:36px}.site-dock-divider{margin-inline:3px}}@media (prefers-reduced-motion:reduce){.preferences-panel:popover-open{animation:none}.dock-tooltip,.theme-control-preferences button{transition:none}}.site-dock[data-projects-enabled=true] .preferences-panel{right:max(12px,50% - 165px)}.admin-login{background:var(--page-bg);justify-content:center;align-items:center;min-height:100dvh;padding:32px 24px;display:flex}.admin-app{background:var(--page-bg);grid-template-columns:224px minmax(0,1fr);height:100dvh;min-height:580px;display:grid}.admin-app-writing{display:block}.admin-app-writing .admin-sidebar{display:none}.admin-sidebar{border-right:var(--border-hairline) solid var(--page-line);background:var(--color-paper);flex-direction:column;min-height:0;padding:24px 14px;display:flex}.admin-sidebar-brand{justify-content:space-between;align-items:flex-start;padding:0 10px 25px;display:flex}.admin-sidebar-nav{flex-direction:column;gap:3px;display:flex}.admin-sidebar-nav a{min-height:40px;color:var(--page-subtle);border-radius:3px;align-items:center;gap:12px;padding:0 12px;font-size:.875rem;display:flex}.admin-sidebar-nav a:hover,.admin-sidebar-nav a.is-active{background:var(--preferences-control-bg);color:var(--page-text)}.admin-sidebar-footer{border-top:var(--border-hairline) solid var(--page-line);flex-direction:column;gap:17px;margin-top:auto;padding:20px 12px 4px;display:flex}.admin-main{min-width:0;min-height:0;overflow-y:auto}.admin-main-standard{padding:0 32px 48px}.admin-main-editor{overflow:hidden}.markdown-editor{background:#fff}.markdown-commandbar{border-bottom:1px solid #e4e7eb;flex:none;align-items:center;gap:12px;min-height:68px;padding:10px 22px;display:flex}.markdown-back,.markdown-settings-button{color:#65707b;background:0 0;border:0;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.markdown-back:hover,.markdown-settings-button:hover,.markdown-settings-button[aria-pressed=true]{color:var(--page-text);background:#f1f3f5}.markdown-title{color:#313943;background:0 0;border:0;flex:1;width:100%;min-width:0;font-size:1.35rem;font-weight:500}.markdown-title:focus-visible{outline:0}.markdown-title::placeholder{color:#99a3ae}.markdown-save-status{color:#88929d;text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:280px;font-size:.75rem;overflow:hidden}.markdown-commandbar .button-primary,.markdown-commandbar .button-secondary{flex:none;padding:.48rem .8rem;font-size:.875rem}.markdown-tool-row{border-bottom:1px solid #e4e7eb;flex:none;justify-content:space-between;align-items:center;min-height:44px;padding:3px 14px;display:flex}.markdown-toolbar{flex-wrap:wrap;gap:2px;display:flex}.markdown-toolbar button{color:#49525d;background:0 0;border:0;border-radius:3px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.markdown-toolbar button:hover{background:#eef1f4}.markdown-format-label{color:#a1aab3;font-family:var(--font-mono);font-size:.65rem}.markdown-editor .editor-workspace{min-height:0}.markdown-source{background:#f7f8fa;overflow:hidden}.markdown-source>div,.markdown-source .cm-editor{height:100%}.markdown-source .cm-editor{font-family:var(--font-mono);background:0 0;font-size:.875rem;line-height:1.8}.markdown-source .cm-editor.cm-focused{outline:none}.markdown-source .cm-scroller{padding:28px 32px 90px;font-family:inherit}.markdown-source .cm-content{min-height:100%;padding:0}.markdown-source .cm-line{padding:0}.markdown-editor .editor-preview-pane{background:#fff;border-left-color:#e4e7eb}.markdown-editor .editor-preview-content{padding-top:54px}.markdown-statusbar{color:#87919a;min-height:27px;font-family:var(--font-mono);border-top:1px solid #e4e7eb;flex:none;justify-content:space-between;align-items:center;padding:3px 14px;font-size:.6875rem;display:flex}.markdown-settings-layer{z-index:120;position:fixed;inset:0}.markdown-settings-scrim{background:#181f2747;border:0;width:100%;position:absolute;inset:0}.markdown-settings-panel{background:#fff;flex-direction:column;gap:24px;width:min(380px,100%);padding:24px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-10px 0 30px #181f2717}.markdown-editor .editor-view-switch{margin:8px 14px}.prose-blog hr{border:0;border-top:var(--border-hairline) solid var(--page-line);margin:2rem 0}.prose-blog code:not(pre code){font-family:var(--font-mono);background:#edf0f2;border-radius:2px;padding:.1em .3em;font-size:.9em}.prose-blog table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose-blog th,.prose-blog td{border:var(--border-hairline) solid var(--page-line);text-align:left;padding:.35rem .65rem}.prose-blog ul,.prose-blog ol{padding-left:1.5rem}.prose-blog pre.shiki{border:1px solid #e4e7eb;color:#24292f!important;background:#f7f8fa!important}.article-editor-shell{flex-direction:column;height:100%;min-height:0;display:flex}.editor-commandbar{border-bottom:var(--border-hairline) solid var(--page-line);flex:none;justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:12px 24px;display:flex}.editor-status{border-bottom:var(--border-hairline) solid var(--page-line);min-height:27px;color:var(--page-subtle);flex:none;padding:4px 24px;font-size:.75rem}.editor-workspace{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;display:grid}.editor-pane{min-width:0;min-height:0;overflow-y:auto}.editor-preview-pane{isolation:isolate;border-left:var(--border-hairline) solid var(--page-line);background:var(--page-bg);position:relative}.editor-pane-heading{z-index:1;border-bottom:var(--border-hairline) solid var(--page-line);background:var(--color-paper);height:38px;color:var(--page-subtle);font-family:var(--font-mono);padding:10px 24px;font-size:.6875rem;position:sticky;top:0}.editor-edit-content{flex-direction:column;gap:28px;padding:24px 28px 80px;display:flex}.editor-document{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg)}.editor-document:focus-within{border-color:var(--page-accent)}.editor-canvas{min-height:460px;padding:12px 28px 28px}.editor-canvas .tiptap:focus-visible{outline:none}.editor-preview-content{z-index:1;width:min(100% - 64px, var(--page-content-width));margin-inline:auto;padding:54px 0 100px;position:relative}.editor-view-switch{border:var(--border-hairline) solid var(--page-line);border-radius:3px;padding:2px;display:none}.editor-view-switch button{min-width:64px;color:var(--page-subtle);padding:6px 10px;font-size:.8125rem}.editor-view-switch button[aria-pressed=true]{background:var(--page-text);color:#fff}.editor-draft-notice{border-bottom:var(--border-hairline) solid var(--page-line);color:var(--page-warm);padding:10px 16px;font-size:12px}.field{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:100%;color:var(--page-text);border-radius:3px;padding:.75rem .85rem;font-size:1rem}.field:focus{border-color:var(--page-accent);outline:1px solid var(--page-accent)}.button-primary{border:1px solid var(--page-accent);background:var(--page-accent);color:#fff;border-radius:3px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1rem;font-weight:600;display:inline-flex}.button-primary:hover{background:#514d49}.button-secondary{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);color:var(--page-text);border-radius:3px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1rem;font-weight:600;display:inline-flex}.button-secondary:hover{border-color:var(--page-accent)}.button-primary:disabled,.button-secondary:disabled{opacity:.5;cursor:not-allowed}.prose-blog{color:var(--page-text);font-family:var(--font-sans);overflow-wrap:anywhere;font-size:.9375rem;line-height:1.9}.prose-blog h2,.prose-blog h3,.prose-blog h4{font-family:var(--font-sans);margin-top:2.2em;margin-bottom:.6em;line-height:1.4}.prose-blog p{margin:1.2em 0}.prose-blog a{color:var(--page-accent);text-underline-offset:3px;text-decoration:underline}.prose-blog img{border-radius:4px;max-width:100%;height:auto}.prose-blog pre{color:#f5f3ee;background:#302e2b;border-radius:4px;padding:1.1rem;font:.9rem/1.7 ui-monospace,monospace;overflow:auto}.prose-blog blockquote{border-left:3px solid var(--page-accent);color:var(--page-subtle);margin-inline:0;padding-left:1.25rem}@media (width<=640px){.reading-width,.public-width{width:min(100% - 64px, var(--page-content-width))}.catalog-row-title{white-space:normal;overflow-wrap:anywhere}.catalog-row-leader{min-width:6px}}@media (width<=900px){.admin-app{flex-direction:column;height:auto;min-height:100dvh;display:flex}.admin-app-writing{height:100dvh;min-height:0;display:block}.admin-app-writing .admin-main-editor{height:100%;overflow:hidden}.admin-sidebar{border-right:0;border-bottom:var(--border-hairline) solid var(--page-line);flex:none;padding:12px 16px}.admin-sidebar-brand{padding:0 0 12px}.admin-sidebar-nav{flex-direction:row;overflow-x:auto}.admin-sidebar-nav a{flex:none;padding-inline:10px}.admin-sidebar-footer{flex-flow:wrap;align-items:center;gap:20px;margin-top:12px;padding:12px 0 0}.admin-sidebar-footer span{flex-basis:100%}.admin-main{flex:1}.admin-main-standard{padding:0 20px 40px}.admin-main-editor{overflow:visible}}@media (width<=1100px){.editor-view-switch{display:flex}.editor-workspace{display:block;overflow-y:auto}.markdown-editor .editor-view-switch{align-self:flex-start;display:flex}.editor-pane{height:100%}.article-editor-shell[data-view=edit] .editor-preview-pane,.article-editor-shell[data-view=preview] .editor-edit-pane{display:none}.editor-preview-pane{border-left:0}}@media (width<=900px){.article-editor-shell{height:auto}.editor-workspace,.editor-pane{overflow:visible}.editor-pane{height:auto}.markdown-editor{height:100%}.markdown-editor .editor-workspace,.markdown-editor .editor-pane{min-height:0;overflow:hidden}.markdown-editor .editor-workspace{overflow-y:auto}.markdown-editor .editor-pane{height:100%}.markdown-editor .editor-preview-pane{overflow-y:auto}}@media (width<=640px){.markdown-commandbar{flex-wrap:wrap;gap:8px;padding:9px 12px}.markdown-commandbar .markdown-title{flex-basis:calc(100% - 60px);font-size:1.05rem}.markdown-save-status{flex:1}.markdown-format-label{display:none}.markdown-source .cm-scroller{padding:20px 16px 60px}.editor-commandbar{flex-wrap:wrap;padding:12px 16px}.editor-commandbar>:last-child{justify-content:flex-start;width:100%}.editor-status{padding-inline:16px}.editor-edit-content{padding:20px 16px 64px}.editor-canvas{padding:12px 18px 24px}.editor-preview-content{width:min(100% - 32px, var(--page-content-width));padding-block:36px 80px}}@media (prefers-reduced-motion:reduce){.site-dock a{transition:none}}.article-reader{--article-body-size:.875rem;--article-code-size:.8125rem;--article-heading-size:1.125rem;--article-leading:1.9;color:var(--page-text)}.article-title-card h1{letter-spacing:-.03em;overflow-wrap:anywhere;text-wrap:balance;margin:0;font-size:clamp(1.75rem,3vw,2rem);font-weight:600;line-height:1.18}.article-title-card .pixel-mark{margin-top:6px}.article-cover{background:var(--color-paper);border:var(--border-hairline) solid var(--page-line);margin:0 0 40px;padding:2% 2% 0;box-shadow:0 2px 4px -1px #00000024}.article-cover-photo{aspect-ratio:16/9;background:var(--page-paper);view-transition-class:article-cover-morph;position:relative;overflow:hidden}.article-cover-photo img{object-fit:cover;width:100%;height:100%}@keyframes article-photo-develop{0%{opacity:0;filter:blur(4px);transform:scale(.96)}to{opacity:1;filter:blur();transform:scale(1)}}.article-cover-image.is-developed{animation:article-photo-develop .35s var(--ease-swift) both}.article-cover-unavailable{color:var(--page-subtle);place-items:center;font-size:.75rem;display:grid;position:absolute;inset:0}.article-title-card h1{view-transition-class:article-title-morph}@keyframes article-enter-develop{0%{opacity:0;filter:blur(4px)}}.article-route-enter .article-spec-plate{animation:article-enter-develop .25s var(--ease-swift) .32s backwards}.article-route-enter>.article-summary,.article-route-enter>.article-prose{animation:article-enter-develop .35s var(--ease-swift) .52s backwards}html:active-view-transition-type(article)::view-transition-group(root){animation:none}html:active-view-transition-type(article)::view-transition-old(root){animation:article-route-defocus .25s var(--ease-swift) both}html:active-view-transition-type(article)::view-transition-new(root){animation:article-enter-develop .3s var(--ease-swift) both}@keyframes article-route-defocus{to{opacity:0;filter:blur(2px)}}::view-transition-group(.article-cover-morph){animation-duration:.32s;animation-timing-function:var(--ease-swift)}::view-transition-group(.article-title-morph){animation-duration:.32s;animation-timing-function:var(--ease-swift)}@media (prefers-reduced-motion:reduce){.article-cover-image.is-developed,.article-route-enter .article-spec-plate,.article-route-enter>.article-summary,.article-route-enter>.article-prose{animation:none}::view-transition-group(.article-cover-morph){animation-duration:0s!important}::view-transition-group(.article-title-morph){animation-duration:0s!important}html:active-view-transition-type(article)::view-transition-group(root){animation-duration:0s!important}html:active-view-transition-type(article)::view-transition-old(root){animation-duration:0s!important}html:active-view-transition-type(article)::view-transition-new(root){animation-duration:0s!important}}.article-cover figcaption{height:28px;font-family:var(--font-mono);color:var(--page-subtle);text-overflow:ellipsis;white-space:nowrap;padding-top:5px;font-size:11px;overflow:hidden}.article-cover-photo img,.article-reader .article-prose img:not(.article-link-icon){cursor:zoom-in}.article-cover-photo img:focus-visible,.article-reader .article-prose img:focus-visible{outline:2px solid var(--page-text);outline-offset:3px}.article-reader .article-prose .article-image{margin:1.75em 0}.article-reader .article-prose .article-image img{max-width:100%;margin:0 auto;display:block}.article-reader .article-prose .article-image figcaption{color:var(--page-subtle);font:11px/1.5 var(--font-mono);overflow-wrap:anywhere;padding:9px 0 0}.article-lightbox{z-index:200;cursor:zoom-out;background:#11131200;transition:background .28s;position:fixed;inset:0}.article-lightbox.is-open{background:#111312e0}.article-lightbox-image{object-fit:contain;cursor:default;max-width:none;transition:left .28s,top .28s,width .28s,height .28s;position:absolute}.article-lightbox-close{z-index:1;color:#fff;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:18px;right:18px}@media (prefers-reduced-motion:reduce){.article-lightbox,.article-lightbox-image{transition:none}}.article-spec-plate{border-block:var(--border-hairline) solid var(--page-line);font-family:var(--font-mono);font-variant-numeric:tabular-nums;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:24px 0 0;padding-block:12px;display:grid}.article-spec-plate dt{color:var(--page-subtle);font-size:10px}.article-spec-plate dd{color:var(--page-subtle);align-items:center;gap:5px;margin:4px 0 0;font-size:12px;display:flex}.article-spec-plate i{background:var(--page-signal);width:5px;height:5px}.article-summary{color:var(--page-subtle);font-size:var(--article-body-size);line-height:var(--article-leading);margin:24px 0 0}.article-reader .article-prose{font-size:var(--article-body-size);line-height:var(--article-leading);color:var(--page-body);counter-reset:article-section;margin-top:36px}.article-reader .article-prose>:first-child{margin-top:0}.article-reader .article-prose p{margin:1.25em 0}.article-reader .article-prose h1{margin:2em 0 .8em;font-size:1.5rem;font-weight:600}.article-reader .article-prose h2{font-size:var(--article-heading-size);color:var(--page-text);counter-increment:article-section;letter-spacing:-.02em;margin:2.5em 0 1em;font-weight:600;line-height:1.35}.article-reader .article-title-card h1,.article-reader .article-prose h2,.article-reader .article-prose h3{scroll-margin-top:96px}.article-reader .article-prose h2:before{content:counter(article-section, decimal-leading-zero);border:var(--border-hairline) solid var(--page-line);background:repeating-linear-gradient(-45deg, var(--page-subtle) 0 1px, transparent 1px 3.5px) right center/12px 100% no-repeat;color:var(--page-subtle);font:10px/1 var(--font-mono);font-variant-numeric:tabular-nums;vertical-align:2px;margin-right:10px;padding:3px 19px 3px 6px;display:inline-block}.article-reader .article-prose h3{color:var(--page-text);margin:2em 0 .75em;font-size:1rem;font-weight:600;line-height:1.45}.article-reader .article-prose h4,.article-reader .article-prose h5,.article-reader .article-prose h6{margin:1.7em 0 .6em;font-size:.875rem;font-weight:600}.article-reader .article-prose strong{color:var(--page-text);font-weight:600}.article-reader .article-prose a{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--page-subtle);text-decoration-color:var(--page-subtle)}.article-reader .article-prose .article-link-icon{vertical-align:-2px;object-fit:contain;border:0;border-radius:0;width:14px;height:14px;margin-right:5px;display:inline-block}.article-reader .article-prose .article-link-icon[hidden]{display:none}.article-link-card{z-index:50;pointer-events:none;border:var(--border-hairline) solid var(--page-line);background:var(--color-paper);width:min(260px,100vw - 24px);font-size:12px;line-height:1.5;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000029}.article-link-card-image{aspect-ratio:16/9;object-fit:cover;width:100%}.article-link-card-domain{color:var(--page-subtle);align-items:center;gap:6px;padding:10px 12px 3px;display:flex}.article-link-card-domain img{width:16px;height:16px}.article-link-card strong{color:var(--page-text);padding:4px 12px 12px;font-weight:600;display:block}.article-link-card-description{color:var(--page-subtle);padding:0 12px 12px;display:block}.article-preview-locked .article-prose{min-height:80px;display:flow-root;position:relative}.article-preview-locked .article-prose>:last-child{margin-bottom:0}.article-preview-locked .article-prose:after{content:"";background:linear-gradient(to bottom, transparent, var(--page-bg) 92%);pointer-events:none;height:min(112px,75%);position:absolute;inset:auto 0 -1px}.article-paywall{border-bottom:var(--border-hairline) solid var(--page-line);text-align:center;color:var(--page-text);justify-items:center;gap:12px;padding:20px 0 40px;display:grid}.article-paywall-heading{justify-content:center;align-items:center;gap:8px;max-width:100%;display:flex}.article-paywall-heading>svg{color:var(--page-subtle);flex:none}.article-paywall h2{overflow-wrap:anywhere;margin:0;font-size:1rem;font-weight:600;line-height:1.5}.article-paywall p{color:var(--page-subtle);text-wrap:balance;margin:0;font-size:.8125rem;line-height:1.7}.article-paywall .button-primary{max-width:100%;min-height:40px;margin-top:6px}@media (hover:none){.article-link-card{display:none}}.article-reader .article-prose ul{padding-left:1.375rem;list-style:square}.article-reader .article-prose ol{padding-left:1.75rem;list-style:decimal-leading-zero}.article-reader .article-prose li::marker{color:var(--page-subtle);font-family:var(--font-mono);font-size:.8em}.article-reader .article-prose li+li{margin-top:.5em}.article-reader .article-prose blockquote{color:var(--page-subtle);border-left:0;margin:1.5em 0;padding-left:1.25rem;position:relative}.article-reader .article-prose blockquote:before{content:"";border:var(--border-hairline) solid var(--page-line);background:repeating-linear-gradient(-45deg, var(--page-subtle) 0 1px, transparent 1px 3.5px);width:6px;position:absolute;inset:4px auto 4px 0}.article-reader .article-prose img{border:var(--border-hairline) solid var(--page-line);border-radius:0}.article-reader .article-prose code:not(pre code){background:var(--color-paper);border:var(--border-hairline) solid var(--page-line);font-size:var(--article-code-size);padding:1px 4px}.article-reader .article-prose pre{border:var(--border-hairline) solid var(--page-line);font:var(--article-code-size)/1.7 var(--font-mono);border-radius:0;margin:1.5em 0;padding:18px;background:var(--color-paper)!important;color:var(--page-text)!important}.article-code-frame{border:var(--border-hairline) solid var(--page-line);background:var(--color-paper);margin:1.5em 0}.article-code-frame figcaption{border-bottom:var(--border-hairline) solid var(--page-line);color:var(--page-subtle);font:11px/1.5 var(--font-mono);justify-content:space-between;align-items:center;padding:7px 12px;display:flex}.article-code-frame button{text-align:right;min-width:4em}.article-reader .article-code-frame pre{border:0;margin:0;padding:16px}.article-reader .article-prose table{font-size:var(--article-body-size);margin-block:1.5em}.article-reader .article-prose th{background:var(--color-paper);font-weight:500}.article-reader .article-prose input[type=checkbox]{accent-color:var(--page-text);margin-right:7px}.article-outline-toggle{z-index:80;width:32px;height:32px;color:var(--page-subtle);place-items:center;display:grid;position:fixed;top:26px;left:24px}.article-outline-toggle:hover,.article-outline-toggle:focus-visible{color:var(--page-text)}.article-outline-progress{fill:none;stroke-width:1.5px;width:32px;height:32px;position:absolute;inset:0;transform:rotate(-90deg)}.article-outline-track{stroke:var(--page-line)}.article-outline-value{stroke:var(--page-text);transition:stroke-dasharray .18s linear}.article-outline-panel{z-index:79;width:224px;max-height:calc(100dvh - 115px);color:var(--page-subtle);flex-direction:column;font-size:12px;display:flex;position:fixed;top:82px;left:24px}.article-outline-panel[hidden]{display:none}.article-outline-utility{min-height:38px;color:var(--page-subtle);flex:none;align-self:flex-start;align-items:center;gap:6px;display:inline-flex}.article-outline-utility:hover,.article-outline-utility:focus-visible{color:var(--page-text)}.article-outline-list{scrollbar-width:thin;min-height:0;margin:12px 0 0;padding:0 8px 0 0;list-style:none;overflow-y:auto}.article-outline-list li{min-width:0}.article-outline-list a{min-height:24px;color:var(--page-subtle);align-items:baseline;gap:9px;padding:5px 0;line-height:1.35;display:flex}.article-outline-list a:hover,.article-outline-list a:focus-visible,.article-outline-list a[aria-current=location]{color:var(--page-text)}.article-outline-tick{background:var(--page-line);width:20px;height:1px;transition:width .15s var(--ease-swift), background .15s var(--ease-swift);flex:none;display:block;transform:translateY(-3px)}.article-outline-list a[aria-current=location] .article-outline-tick,.article-outline-list a:hover .article-outline-tick{background:var(--page-text);width:30px}.article-outline-label{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.article-outline-list li[data-level="1"] a{font-weight:600}.article-outline-list li[data-level="3"] a{padding-left:16px}@media (width<=1099px){.article-outline-toggle{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:38px;height:38px;top:18px;left:auto;right:16px}.article-outline-progress{inset:3px}.article-outline-panel{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:min(300px,100vw - 32px);max-height:calc(100dvh - 120px);padding:8px 14px;top:64px;left:auto;right:16px;box-shadow:0 8px 24px #34312e1a}}.column-chapter{border-bottom:var(--border-hairline) solid var(--page-line);color:var(--page-text);align-items:center;gap:14px;padding:18px 0;display:flex}.column-chapter>span:nth-child(2){flex:1;min-width:0}.column-chapter strong{overflow-wrap:anywhere;font-size:.9375rem;font-weight:600;display:block}.column-chapter small{color:var(--page-subtle);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.column-chapter:hover strong{text-underline-offset:4px;text-decoration:underline}.column-heading{margin-top:42px}.column-heading h1{overflow-wrap:anywhere;margin-top:12px;font-size:1.75rem;font-weight:600;line-height:1.25}.column-heading>p:not(.eyebrow){color:var(--page-subtle);white-space:pre-wrap;margin-top:16px;font-size:.875rem;line-height:1.8}.column-purchase{border-block:var(--border-hairline) solid var(--page-line);align-items:center;gap:18px;margin-top:28px;padding:18px 0;display:flex}.column-purchase strong{font-variant-numeric:tabular-nums;font-size:1.125rem}.column-purchase button,.column-purchase a{margin-left:auto}.column-purchase span{color:var(--page-subtle);margin-left:auto;font-size:.8125rem}.column-chapters{margin-top:42px}.column-chapters h2{justify-content:space-between;padding-bottom:14px;font-size:.875rem;font-weight:600;display:flex}.column-chapters h2 span{color:var(--page-subtle);font-weight:400}.column-chapters>a:first-of-type{border-top:var(--border-hairline) solid var(--page-line)}.column-chapter-number{width:24px;color:var(--page-subtle);font:.75rem var(--font-mono);flex:none}.column-chapter>svg{color:var(--page-warm);flex:none}.column-free-label{color:var(--page-subtle);flex:none;align-items:center;gap:5px;font-size:.75rem;display:inline-flex}.column-checkout-backdrop{z-index:150;background:#00000094;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.column-checkout{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);text-align:center;width:min(100%,330px);padding:25px;position:relative;box-shadow:0 18px 48px #0000002e}.column-checkout h2{font-size:1rem;font-weight:600}.column-checkout p{color:var(--page-subtle);margin:8px 0 18px;font-size:.8125rem}.column-checkout canvas{max-width:100%;height:auto;margin-inline:auto}.column-checkout p:last-child{margin-bottom:0}.column-checkout-close{color:var(--page-subtle);position:absolute;top:12px;right:12px}.reader-account{width:min(100%,370px);margin:50px auto 0}.reader-account h1{margin-top:9px;font-size:1.5rem;font-weight:600}.reader-mode{border-bottom:var(--border-hairline) solid var(--page-line);gap:20px;margin:28px 0 24px;display:flex}.reader-mode button{color:var(--page-subtle);padding:0 0 10px;font-size:.875rem}.reader-mode button[aria-pressed=true]{border-bottom:2px solid var(--page-text);color:var(--page-text)}@media (width<=550px){.column-chapter{gap:10px}.column-purchase{flex-wrap:wrap}}.column-bookshelves{grid-template-columns:minmax(0,1fr);gap:36px;display:grid}.column-bookshelf{min-width:0;position:relative}.bookshelf-viewport{--bookshelf-scale:1;z-index:2;width:100%;height:216px;position:relative;overflow:clip}.shelf3{width:var(--bookshelf-layout-width);height:216px;transform:scale(var(--bookshelf-scale));transform-origin:0 100%;align-items:flex-end;gap:1px;margin:0;padding:0;list-style:none;display:flex}.book3-frame{flex-shrink:0;width:24px;height:210px;position:relative}.book3-contact-shadow{background:radial-gradient(ellipse at center, rgb(var(--shelf-shadow-rgb)/38%), transparent 84%);pointer-events:none;width:148px;height:9px;transform:scaleX(var(--book-contact-scale));transform-origin:0;position:absolute;bottom:-3px;left:0}.book3{perspective:1200px;cursor:pointer;touch-action:manipulation;width:100%;height:100%;transition:transform .18s var(--ease-swift);background:0 0;border:0;padding:0;display:block;position:relative}.book3:focus-visible{outline:1px solid var(--page-text);outline-offset:3px}.book3:before{content:"";inset-block:0;width:max(var(--book-projected-width), 44px / var(--bookshelf-scale));position:absolute;left:0}.book3-inner{width:148px;height:100%;transform-style:preserve-3d;transform-origin:0;pointer-events:none;position:absolute;top:0;left:0}.book3-cover{backface-visibility:hidden;box-shadow:0 0 0 1px #00000017, 1px 2px 3px -1px rgb(var(--shelf-shadow-rgb)/20%), 4px 9px 16px -9px rgb(var(--shelf-shadow-rgb)/30%);-webkit-user-select:none;user-select:none;border-radius:2px 4px 4px 2px;position:absolute;inset:0;overflow:hidden;transform:translateZ(24px)}.book3-cover-blank{background:var(--book-color);height:100%;color:var(--book-ink);text-align:left;border-left:5px solid #0000001f;flex-direction:column;gap:16px;padding:18px 16px;display:flex}.book3-cover-number,.book3-cover-imprint{font:9px var(--font-mono);opacity:.75}.book3-cover-blank strong{overflow-wrap:anywhere;-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:16px;font-weight:600;line-height:1.6;display:-webkit-box;overflow:hidden}.book3-cover-imprint{border-top:1px solid;margin-top:auto;padding-top:10px}.book3-spine{width:24px;height:100%;color:var(--book-ink);background:linear-gradient(to right, #0000001f, transparent 35%, #ffffff1f 75%, #00000014), var(--book-color);transform-origin:0;backface-visibility:hidden;border-radius:2px;flex-direction:column;align-items:center;gap:4px;padding:10px 0;display:flex;position:absolute;top:0;left:0;transform:rotateY(-90deg);box-shadow:inset 0 0 0 1px #00000014}.book3-spine-title{white-space:nowrap;text-overflow:ellipsis;writing-mode:vertical-rl;flex:1;min-height:0;font-size:10px;font-weight:500;overflow:hidden}.book3-spine-author{font:8px var(--font-mono);opacity:.72;writing-mode:vertical-rl;flex:none}.room-shelf-plank{z-index:1;background:radial-gradient(ellipse 22% 38% at 12% 22%, transparent 0 92%, var(--shelf-grain) 93% 95%, transparent 96%), radial-gradient(ellipse 32% 42% at 67% 70%, transparent 0 93%, var(--shelf-grain) 94% 96%, transparent 97%), linear-gradient(92deg, transparent 0 8%, var(--shelf-grain) 14%, transparent 22% 54%, var(--shelf-grain) 61%, transparent 72%), linear-gradient(180deg, var(--shelf-front-top), var(--shelf-front-bottom));height:12px;box-shadow:inset 0 1px 0 #ffffff47, inset 0 -1px 0 #331c0a33, 1px 3px 3px -2px rgb(var(--shelf-shadow-rgb)/24%), 3px 10px 16px -8px rgb(var(--shelf-shadow-rgb)/34%), 6px 24px 34px -18px rgb(var(--shelf-shadow-rgb)/28%);border-radius:1px 1px 2px 2px;display:block;position:relative}.room-shelf-plank:before{content:"";clip-path:polygon(.8% 0,99.2% 0,100% 100%,0 100%);background:linear-gradient(91deg, transparent 0 16%, var(--shelf-grain) 25%, transparent 34% 67%, var(--shelf-grain) 75%, transparent 83%), linear-gradient(180deg, var(--shelf-top-front), var(--shelf-top-back));height:6px;position:absolute;top:-6px;left:0;right:0;box-shadow:inset 0 1px #ffffff52,inset 0 -1px #341d0b2e}.bookshelf-caption{grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:8px 16px;min-height:112px;padding-top:12px;display:grid}.shelf-annotation{max-width:100%;min-height:28px;color:var(--page-subtle);grid-column:1/-1;justify-self:center;align-items:center;gap:4px;font-size:14px;display:inline-flex}.bookshelf-caption-compact{min-height:40px}.shelf-annotation span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shelf-annotation svg{flex:none}.shelf-annotation:hover{color:var(--page-text)}.bookshelf-description{min-height:42px;color:var(--page-subtle);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:21px;display:-webkit-box;overflow:hidden}.bookshelf-price{color:var(--page-subtle);font:11px/21px var(--font-mono);font-variant-numeric:tabular-nums}@media (hover:hover) and (pointer:fine){.book3:not([data-open]):hover{transform:translateY(-5px)}}@media (prefers-reduced-motion:reduce){.book3{transition:none}}.archive-year{isolation:isolate;position:relative}.archive-taxonomy{border-block:var(--border-hairline) solid var(--page-line);color:var(--page-subtle);flex-wrap:wrap;gap:6px 14px;padding-block:10px;font-size:12px;display:flex}.archive-taxonomy a:hover,.archive-taxonomy a:focus-visible{color:var(--page-text);text-underline-offset:3px;text-decoration:underline}.archive-year-folio{z-index:-1;color:color-mix(in srgb, var(--page-subtle) 9%, transparent);font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:-.08em;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:4.5rem;line-height:1;position:absolute;top:-18px;right:0}.site-footer{color:var(--page-subtle);margin-top:96px;padding-bottom:112px}.site-footer-grid{border-top:var(--border-hairline) solid var(--page-line);grid-template-columns:1.3fr 1fr 1fr;gap:24px;padding-top:28px;display:grid}.site-footer-grid>div{overflow-wrap:anywhere;min-width:0}@media (width<=640px){.site-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer-introduction{grid-column:1/-1}}.site-footer h2{font-size:11px;font-family:var(--font-mono)}.site-footer ul{margin-top:12px;font-size:12px}.site-footer li{border-left:var(--border-hairline) solid var(--page-line);padding:4px 0 4px 16px;position:relative}.site-footer li:before{content:"";border-top:var(--border-hairline) solid var(--page-line);width:9px;position:absolute;top:14px;left:0}.site-footer a:hover{color:var(--page-text)}.contact-preview{display:inline-block;position:relative}.contact-preview-card{inset:auto;top:var(--contact-top,auto);bottom:var(--contact-bottom,auto);left:var(--contact-left,16px);border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:294px;max-width:calc(100vw - 32px);color:var(--page-text);opacity:1;pointer-events:none;border-radius:4px;flex-direction:column;gap:11px;margin:0;padding:15px;font-size:12px;transition:none;display:flex;position:fixed;transform:translateY(5px);box-shadow:0 12px 30px #34312e1f}.contact-card-email{background:#f5f1e8;padding:0;overflow:hidden}.contact-envelope{color:#4d4540;background:#f5f1e8;height:148px;display:block;position:relative}.contact-envelope:before{z-index:3;content:"";pointer-events:none;background:repeating-linear-gradient(135deg,#b9655c 0 7px,#0000 7px 14px,#5f8299 14px 21px,#0000 21px 28px) top/100% 3px no-repeat,repeating-linear-gradient(135deg,#b9655c 0 7px,#0000 7px 14px,#5f8299 14px 21px,#0000 21px 28px) bottom/100% 3px no-repeat;position:absolute;inset:0}.contact-envelope-flap{clip-path:polygon(0 100%,0 75%,50% 25%,100% 75%,100% 100%);background:#eae6dd;height:66%;position:absolute;inset:auto 0 0}.contact-envelope-return{max-width:145px;font:8px/1.5 var(--font-mono);overflow-wrap:anywhere;position:absolute;top:17px;left:17px}.contact-envelope-stamp{background:#e8d6cf;border:3px dotted #f5f1e8;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:49px;height:56px;display:flex;position:absolute;top:13px;right:14px;transform:rotate(2deg);box-shadow:0 0 0 1px #9d8f85}.contact-envelope-stamp small{font:6px var(--font-mono)}.contact-envelope-postmark{border:1px solid #8e8176;border-radius:50%;width:35px;height:35px;position:absolute;top:26px;right:59px;transform:rotate(-8deg)}.contact-envelope-postmark:after{content:"";background:repeating-linear-gradient(#8e8176 0 1px,#0000 1px 5px);width:39px;height:15px;position:absolute;top:10px;left:27px}.contact-envelope-address{font:12px/1.4 var(--font-mono);overflow-wrap:anywhere;flex-direction:column;display:flex;position:absolute;top:88px;left:40px;right:10px}.contact-envelope-address small{margin-bottom:3px;font-size:7px}.contact-identity{align-items:center;gap:10px;display:flex}.contact-identity-avatar{background:var(--page-text);width:40px;height:40px;color:var(--page-bg);border-radius:50%;flex:none;place-items:center;font-size:23px;display:grid}.contact-identity-avatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%}.contact-avatar-youtube{color:#fff;background:#d93832}.contact-avatar-telegram{color:#fff;background:#2a9ccd}.contact-identity-names{flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.contact-identity-names strong{font-size:14px}.contact-identity-names small{color:var(--page-subtle);font:11px var(--font-mono)}.contact-service-glyph{color:var(--page-subtle);flex:none;align-self:flex-start;font-size:18px}.contact-identity-bio{color:var(--page-text);white-space:pre-line;overflow-wrap:anywhere;font-size:13px;line-height:1.5}.contact-card-foot{border-top:var(--border-hairline) solid var(--page-line);min-height:23px;color:var(--page-subtle);font:11px var(--font-mono);justify-content:space-between;align-items:center;gap:8px;margin-top:2px;padding-top:8px;display:flex}.contact-card-foot b{color:var(--page-text)}.contact-profile-head{justify-content:space-between;gap:8px;display:flex}.contact-profile-head span{color:var(--page-subtle);font:11px var(--font-mono)}.contact-preview-card:not(:popover-open){display:none}.contact-preview-card:popover-open{transform:translateY(0)}.contact-preview-heading{overflow-wrap:anywhere;justify-content:space-between;gap:8px;display:flex}.contact-preview-heading>span,.contact-preview-stat{color:var(--page-subtle);font-family:var(--font-mono);font-size:10px}.contact-preview-description{overflow-wrap:anywhere;line-height:1.6}.contact-contributions{grid-template-rows:repeat(7,6px);grid-template-columns:repeat(26,1fr);grid-auto-flow:column;gap:3px;display:grid}.contact-contributions i{background:#e6e5df;border-radius:1px}.contact-contributions i[data-level="1"]{background:#c3d1ac}.contact-contributions i[data-level="2"]{background:#8cae7a}.contact-contributions i[data-level="3"]{background:#588b62}.contact-contributions i[data-level="4"]{background:#326247}@keyframes contribution-enter{0%{opacity:0;transform:translateY(4px)scale(.92)}}.contact-contributions i{animation:contribution-enter .48s var(--ease-swift) backwards}.contact-preview-loading{width:100%;height:64px}.skeleton-line{background:linear-gradient(90deg,#eae9e3 0%,#f5f4f0 45%,#eae9e3 100%) 0 0/200% 100%;border-radius:2px;animation:1.5s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-row{border-top:var(--border-hairline) solid var(--page-line);justify-content:space-between;align-items:center;min-height:48px;display:flex}@keyframes skeleton-shimmer{to{background-position-x:-200%}}.reveal-pending{opacity:0;transform:translateY(14px)}.reveal-in{animation:.38s ease-out both content-reveal}@keyframes content-reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.skeleton-line,.reveal-in{animation:none}.reveal-pending{opacity:1;transform:none}.contact-preview-card{transition:none}.contact-contributions i{animation:none}}@media (width<=640px){.contact-preview-card{top:auto;right:16px;bottom:max(90px, env(safe-area-inset-bottom) + 74px);width:auto;position:fixed;left:16px}}.admin-app-writing{height:100dvh;min-height:0}.admin-app-writing .admin-main-editor{height:100%;overflow:hidden}.markdown-editor{background:var(--page-bg);height:100%;min-height:0}.markdown-commandbar{border-color:var(--page-line);min-height:58px;padding:8px 16px}.markdown-title{color:var(--page-text);font-size:1.125rem}.markdown-title:focus-visible{outline:1px solid var(--page-line);outline-offset:4px}.markdown-tool-row{border-color:var(--page-line);min-height:40px;padding-block:1px}.markdown-source{background:var(--color-paper)}.markdown-source .cm-scroller{padding:20px 24px 28px;overflow:auto}.markdown-source .cm-focused{box-shadow:inset 2px 0 var(--page-line)}.markdown-editor .editor-workspace{flex:1;min-height:0;overflow:hidden}.markdown-editor .editor-preview-pane{background:var(--page-bg);border-color:var(--page-line);overflow-y:auto}.markdown-editor .editor-preview-content{padding:24px 0 48px}.markdown-statusbar{border-color:var(--page-line)}.editor-history-menu{position:relative}.editor-history-menu summary{cursor:pointer;color:var(--page-subtle);padding:8px;list-style:none}.editor-history-menu>div{z-index:5;border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:250px;max-height:320px;padding:12px;position:absolute;top:35px;right:0;overflow:auto;box-shadow:0 5px 20px #00000014}.editor-history-menu button{text-align:left;align-items:center;gap:8px;width:100%;padding:8px;font-size:12px;display:flex}.publish-dialog{border:var(--border-hairline) solid var(--page-line);width:min(560px,100% - 32px);max-height:calc(100dvh - 48px);color:var(--page-text);background:var(--page-bg);margin:auto;padding:0;position:fixed;inset:0}.publish-dialog::backdrop{background:#23201d59}.publish-dialog form{flex-direction:column;max-height:calc(100dvh - 48px);display:flex}.publish-heading{border-bottom:var(--border-hairline) solid var(--page-line);flex:none;justify-content:space-between;align-items:center;padding:24px;display:flex}.publish-fields{flex-direction:column;gap:24px;padding:24px;display:flex;overflow-y:auto}.publish-actions{border-top:var(--border-hairline) solid var(--page-line);flex:none;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.publish-cover img{aspect-ratio:16/9;object-fit:cover;width:100%}.publish-cover button{color:var(--page-subtle);margin-top:8px;font-size:12px;text-decoration:underline}.cover-choice{border:2px solid #0000}.cover-choice[aria-pressed=true]{border-color:var(--page-accent)}.cover-choice img{aspect-ratio:16/9;object-fit:cover;width:100%}@media (width>=960px){.markdown-editor .editor-workspace{grid-template-columns:minmax(0, var(--editor-split,50%)) 6px minmax(0, 1fr);display:grid}.markdown-editor .editor-workspace[data-preview=false]{grid-template-columns:minmax(0,1fr)}.markdown-editor .editor-workspace[data-preview=false] .markdown-source .cm-content{flex:0 840px;width:min(100%,840px);min-width:0;max-width:840px;margin-inline:auto}.markdown-editor .editor-pane{height:100%;display:block!important}.markdown-editor .editor-view-switch{display:none}}.editor-writing-layout{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.editor-writing-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.editor-writing-main>.editor-workspace{min-width:0}.markdown-tool-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;width:100%;min-width:0;display:flex}.markdown-tool-row[data-preview=false] .markdown-tool-content{max-width:840px;margin-inline:auto}@media (width>=960px){.markdown-tool-row[data-preview=false] .markdown-tool-content{width:calc(100% - 20px)}}.editor-resize-handle{z-index:2;cursor:col-resize;touch-action:none;background:var(--page-bg);position:relative}.editor-resize-handle:hover,.editor-resize-handle:focus-visible{background:var(--page-line);outline:none}.markdown-view-controls{flex:none;gap:6px;display:flex}.markdown-view-controls button{color:var(--page-subtle);border-radius:6px;align-items:center;gap:6px;padding:6px 9px;font-size:12px;display:inline-flex}.markdown-view-controls button:hover,.markdown-view-controls button[aria-pressed=true]{background:var(--color-paper);color:var(--page-text)}@media (width<=959px){.editor-resize-handle{display:none}.markdown-editor .editor-view-switch{align-self:flex-start;display:flex}.markdown-editor .editor-workspace{display:block}.markdown-editor[data-view=edit] .editor-preview-pane,.markdown-editor[data-view=preview] .editor-edit-pane{display:none}}@media (width<=640px){.markdown-source .cm-scroller{padding:16px}.markdown-commandbar .markdown-title{flex-basis:calc(100% - 60px)}}.markdown-editor{--writing-control-line:#e4e7eb;--writing-control-focus:#a1aab3;--writing-control-active:#49525d;--writing-control-selected:#f1f3f5}:root[data-theme=dark] .markdown-editor{--writing-control-line:var(--page-line);--writing-control-focus:var(--page-subtle);--writing-control-active:var(--page-accent);--writing-control-selected:var(--page-paper)}.markdown-source{position:relative}.writing-selection-actions{z-index:110;border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);box-shadow:var(--editor-assistant-shadow);color:var(--page-subtle);border-radius:10px;align-items:center;gap:4px;padding:4px 6px;display:flex;position:fixed;height:auto!important}.writing-selection-actions button{color:var(--page-text);white-space:nowrap;padding:5px 7px;font-size:12px}.writing-selection-actions button:hover{background:var(--color-paper);border-radius:5px}.writing-inline-prompt{border:1px solid var(--writing-control-line);background:var(--page-bg);min-width:0;font-family:var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);border-radius:16px;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;margin:8px 0 12px;padding:9px 10px;transition:border-color .18s,box-shadow .18s;display:grid;box-shadow:0 2px 4px #00000005,0 8px 24px #00000008}.writing-ai-badge{border:var(--border-hairline) solid var(--page-line);width:30px;height:30px;color:var(--page-text);background:var(--page-bg);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.writing-ai-avatar{object-fit:contain;mix-blend-mode:multiply;flex:none;width:28px;height:28px;display:block}:root[data-theme=dark] .writing-ai-avatar{filter:invert();mix-blend-mode:screen}.writing-prompt-status{color:var(--page-subtle);margin-right:auto;font-size:13px}.writing-generating-prompt .writing-ai-badge{border-color:#0000}.writing-inline-prompt textarea{resize:none;width:100%;min-width:0;min-height:24px;max-height:180px;color:var(--page-text);font:13px/24px var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);background:0 0;border:0;outline:0;padding:0;display:block}.writing-inline-prompt textarea::placeholder{color:var(--page-subtle);opacity:.65}.writing-generating-prompt{align-items:center;min-height:52px;display:flex}.writing-chat{flex-direction:column;flex:0 0 var(--editor-chat-width);border-left:var(--border-hairline) solid var(--page-line);background:var(--page-bg);min-width:300px;min-height:0;color:var(--page-text);font-family:var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);font-size:13px;display:flex;position:relative;overflow:hidden}.writing-chat[data-mode=sidebar]{max-width:calc(100% - 320px)}.writing-sidebar-resize{z-index:4;cursor:col-resize;touch-action:none;width:8px;position:absolute;inset:0 auto 0 0}.writing-sidebar-resize:hover,.writing-sidebar-resize:focus-visible{background:var(--page-line);outline:none}.writing-chat[data-mode=floating]{z-index:115;resize:both;border:var(--border-hairline) solid var(--page-line);width:min(460px,100vw - 32px);min-width:min(320px,100vw - 32px);max-width:calc(100vw - 16px);height:min(720px,100dvh - 48px);min-height:320px;max-height:calc(100dvh - 16px);box-shadow:var(--editor-assistant-shadow);border-radius:22px;position:fixed;bottom:24px;right:24px}.writing-chat[data-mode=fullscreen]{z-index:115;border:var(--border-hairline) solid var(--page-line);min-width:0;box-shadow:var(--editor-assistant-shadow);border-radius:18px;position:fixed;inset:16px}.writing-chat-header{flex:none;align-items:center;gap:8px;height:54px;padding:10px 14px;display:flex}.writing-chat[data-mode=floating] .writing-chat-header{cursor:move;touch-action:none}.writing-chat-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.writing-chat-header button,.writing-mode-menu summary{width:28px;height:28px;color:var(--page-subtle);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:2px;display:inline-flex}.writing-chat-header button:hover,.writing-mode-menu summary:hover{background:var(--color-paper);color:var(--page-text)}.writing-mode-menu{position:relative}.writing-mode-menu summary{list-style:none}.writing-mode-menu summary::-webkit-details-marker{display:none}.writing-mode-menu>div{z-index:5;border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:170px;box-shadow:var(--editor-assistant-shadow);border-radius:12px;padding:5px;position:absolute;top:34px;right:0}.writing-mode-menu>div button{justify-content:flex-start;gap:10px;width:100%;height:34px;padding:6px 9px}.writing-mode-menu>div button svg:last-child:not(:first-child){margin-left:auto}.writing-chat-messages{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;padding:10px 20px 24px;overflow:auto}.writing-chat-message{overflow-wrap:anywhere;margin-bottom:28px}.writing-chat-message[data-role=user]{justify-content:flex-end;display:flex}.writing-user-bubble{background:var(--color-paper);white-space:pre-wrap;border-radius:18px;max-width:90%;margin:0;padding:10px 14px}.writing-chat-markdown{color:var(--page-body);font-size:14px;line-height:1.85}.writing-chat-markdown p{margin:0 0 14px}.writing-chat-markdown h1,.writing-chat-markdown h2,.writing-chat-markdown h3{color:var(--page-text);margin:20px 0 10px;font-size:1.1em;font-weight:650}.writing-chat-markdown ul,.writing-chat-markdown ol{margin-block:12px;padding-left:22px}.writing-chat-markdown ul{list-style-type:disc}.writing-chat-markdown ol{list-style-type:decimal}.writing-chat-markdown hr{border-top:var(--border-hairline) solid var(--page-line);margin-block:20px}.writing-chat-markdown img{border-radius:8px;max-width:100%}.writing-chat-markdown li{margin-block:6px}.writing-chat-markdown pre{background:var(--color-paper);font:12px/1.7 var(--editor-code-font);border-radius:12px;margin:16px 0;padding:16px;overflow:auto}.writing-chat-markdown code:not(pre code){color:var(--page-warm);font-family:var(--editor-code-font);background:var(--page-paper);border-radius:4px;padding:2px 4px;font-size:.85em}.writing-code-block{border:var(--border-hairline) solid var(--page-line);background:var(--page-paper);border-radius:12px;margin:16px 0;overflow:hidden}.writing-code-block figcaption{border-bottom:var(--border-hairline) solid var(--page-line);color:var(--page-subtle);font:10px/1.6 var(--editor-code-font);padding:6px 12px}.writing-chat-markdown .writing-code-block pre{border-radius:0;margin:0;background:0 0!important}:root[data-theme=dark] .writing-code-block .shiki,:root[data-theme=dark] .writing-code-block .shiki span{color:var(--shiki-dark)!important}.writing-chat-markdown a{color:var(--page-warm);text-decoration:underline}.writing-chat-markdown blockquote{border-left:2px solid var(--page-line);color:var(--page-subtle);padding-left:12px}.writing-progress{color:var(--page-subtle);margin-bottom:16px;font-size:12px}.writing-progress summary{cursor:pointer}.writing-progress>div{border-left:var(--border-hairline) solid var(--page-line);margin:12px 0 0 4px;padding-left:12px}.writing-progress p{white-space:pre-wrap;max-height:220px;margin:5px 0;overflow:auto}.writing-generating{color:var(--page-subtle);align-items:center;gap:8px;margin-top:12px;display:flex}.writing-reply-actions{color:var(--page-subtle);align-items:center;gap:6px;margin-top:10px;display:flex}.writing-reply-actions button{border-radius:6px;align-items:center;gap:5px;min-height:28px;padding:4px 6px;font-size:11px;display:inline-flex}.writing-reply-actions button:hover{background:var(--color-paper);color:var(--page-text)}.writing-chat-composer{border:1px solid var(--writing-control-line);border-radius:var(--editor-assistant-radius);background:var(--page-bg);flex:none;margin:10px 16px 16px;padding:10px 12px;box-shadow:0 2px 6px #00000008}.writing-context-chip{border:var(--border-hairline) solid var(--page-line);color:var(--page-subtle);border-radius:14px;align-items:center;gap:5px;padding:4px 7px;font-size:10px;display:inline-flex}.writing-chat-composer textarea{resize:none;width:100%;min-height:24px;max-height:180px;color:var(--page-text);font:13px/24px var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);background:0 0;border:0;outline:0;margin-bottom:6px;padding:0;display:block}.writing-chat-composer textarea::placeholder{color:var(--page-subtle);opacity:.6}.writing-composer-footer{width:100%;min-width:0;color:var(--page-subtle);align-items:center;gap:8px;font-size:10px;display:flex}.writing-send{background:var(--page-text);width:30px;height:30px;color:var(--page-bg);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.writing-send:disabled{opacity:.25}.writing-chat-empty{text-align:center;color:var(--page-subtle);justify-items:center;gap:10px;padding:48px 10px;display:grid}.writing-chat-empty p{color:var(--page-text);font-size:17px}.writing-message-status{color:var(--page-subtle);margin-top:8px;font-size:12px}.writing-assistant-error{color:var(--page-warm);margin:8px 16px;font-size:12px}.writing-inline-review{color:var(--page-text);font:12px/1.7 var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);background:0 0;border:0;margin:12px 0;overflow:hidden}.writing-inline-heading{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);color:var(--page-subtle);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;box-shadow:0 3px 12px #0000000a}.writing-inline-diff{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-height:360px;padding:10px 14px;overflow:auto}.writing-inline-actions{justify-content:flex-end;gap:12px;padding:0;display:flex}.writing-inline-actions button{background:var(--color-paper);width:27px;height:27px;color:var(--page-text);border-radius:50%}.writing-inline-actions button:first-child:not(:disabled){background:var(--editor-diff-added);color:var(--page-text);font-weight:600}.writing-inline-actions button:disabled{opacity:.45}.writing-diff-added{background:var(--editor-diff-added);color:var(--page-text)}.writing-diff-removed{background:var(--editor-diff-removed);color:var(--page-subtle);text-decoration:line-through}@keyframes writing-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.writing-generating svg,.writing-generating-prompt .writing-ai-badge{animation:none}}@media (width<=959px){.writing-sidebar-resize{display:none}.writing-chat[data-mode=sidebar]{z-index:115;border:var(--border-hairline) solid var(--page-line);width:min(400px,100vw - 24px);min-width:0;max-width:none;box-shadow:var(--editor-assistant-shadow);border-radius:18px;position:fixed;top:12px;bottom:12px;right:12px}}@media (width<=640px){.writing-chat[data-mode=floating]{width:calc(100vw - 16px);min-height:260px;bottom:8px;right:8px}.markdown-tool-row{flex-wrap:wrap;gap:4px}}.writing-sources{border:var(--border-hairline) solid var(--page-line);border-radius:10px;margin:12px 0;padding:12px;font-size:12px}.writing-sources h4{align-items:center;gap:6px;margin-bottom:10px;font-weight:600;display:flex}.writing-sources ol{gap:10px;display:grid}.writing-sources-expanded{overscroll-behavior:contain;max-height:320px;overflow-y:auto}.writing-source-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.writing-sources li p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.writing-sources-toggle{color:var(--page-accent);margin-top:12px;padding:4px 0;font-size:12px}.writing-search-toggle{border:1px solid var(--writing-control-line);min-height:28px;color:var(--page-subtle);white-space:nowrap;cursor:pointer;border-radius:20px;flex:none;align-items:center;gap:5px;padding:4px 9px;font-size:12px;display:inline-flex;position:relative}.writing-search-toggle input{opacity:0;width:100%;height:100%;cursor:inherit;position:absolute;inset:0}.writing-search-toggle:has(input:checked){color:var(--writing-control-active);border-color:var(--writing-control-focus);background:var(--writing-control-selected)}.writing-search-toggle:has(input:disabled){opacity:.45;cursor:not-allowed}.writing-composer-error{color:var(--page-warm);font-size:12px}.writing-inline-prompt>[hidden]{display:none}.writing-sources a{color:var(--page-text);overflow-wrap:anywhere;align-items:start;gap:6px;display:flex}.writing-sources a:hover{color:var(--page-accent)}.writing-sources a svg{flex-shrink:0;margin-top:3px}.writing-sources li p,.writing-source-group{color:var(--page-subtle);margin:4px 0 0 28px;font-size:11px}.writing-source-index{color:var(--page-accent);flex-shrink:0;font-family:monospace}.writing-composer-menu{flex:none}.writing-composer-icon{width:28px;height:28px;color:var(--page-subtle);font:18px/1 var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;list-style:none;display:inline-flex}.writing-composer-icon::-webkit-details-marker{display:none}.writing-composer-icon:hover,.writing-composer-menu[open]>summary{background:var(--page-paper);color:var(--page-text)}.writing-composer-options{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:min(228px,100vw - 16px);color:var(--page-text);box-shadow:var(--editor-assistant-shadow);font-family:var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);border-radius:12px;margin:0;padding:5px;position:fixed;inset:auto}.writing-composer-options button{text-align:left;white-space:nowrap;width:100%;min-height:36px;font:12px/20px var(--font-sans,"Geist", "Noto Sans SC", system-ui, sans-serif);border-radius:7px;align-items:center;gap:8px;padding:8px 10px;display:flex}.writing-composer-options button:hover{background:var(--page-paper)}.writing-composer-context{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.writing-composer-controls{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.writing-composer-footer>.writing-send{margin-left:auto}.writing-composer-notice{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.writing-composer-options button[aria-pressed=true]{background:var(--page-paper);color:var(--page-accent)}.writing-composer-options button:disabled{opacity:.45;cursor:not-allowed}.writing-image-list{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.writing-image-list>div{position:relative}.writing-image-list img{object-fit:contain;border:var(--border-hairline) solid var(--page-line);border-radius:12px;width:72px;height:72px}.writing-image-list button{background:var(--page-bg);border:var(--border-hairline) solid var(--page-line);border-radius:50%;padding:3px;position:absolute;top:-5px;right:-5px}.writing-inline-prompt:focus-within,.writing-chat-composer:focus-within{border-color:var(--writing-control-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--writing-control-focus) 10%, transparent), 0 8px 24px #0000000a}.writing-inline-prompt>.writing-image-list,.writing-inline-prompt>.writing-composer-error{grid-column:1/-1}.writing-inline-prompt>.writing-composer-footer{width:auto}.writing-inline-prompt[data-expanded=true]>textarea{grid-column:2/-1}.writing-inline-prompt[data-expanded=true]>.writing-composer-footer{grid-column:1/-1;margin-top:2px}.writing-inline-prompt .writing-search-label{display:none}.writing-inline-prompt[data-expanded=true] .writing-search-label{display:inline}.writing-inline-prompt .writing-composer-menu{align-self:start}.writing-wand{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:32px;height:32px;color:var(--page-text);border-radius:50%;box-shadow:0 2px 6px #0000000d}.writing-chat-input-row{align-items:start;gap:10px;margin-bottom:12px;display:flex}.writing-chat-input-row textarea{min-width:0;margin-top:3px}.writing-search-toggle:has(input:focus-visible){outline:2px solid var(--writing-control-focus);outline-offset:2px}.writing-attach{background:var(--page-paper);border-radius:50%}.writing-attach:disabled{opacity:.4;cursor:not-allowed}.writing-chat-composer .writing-attach{margin-left:auto}.writing-chat-composer .writing-send{margin-left:0}.writing-send:not(:disabled){background:var(--page-text);box-shadow:0 2px 5px #0000001a}.writing-progress summary{align-items:center;gap:7px;list-style:none;display:flex}.writing-progress summary:after{content:"⌄";transition:transform .18s}.writing-progress[open] summary:after{transform:rotate(180deg)}.writing-thinking-text{background:linear-gradient(100deg, var(--page-subtle) 15%, var(--page-subtle) 32%, var(--writing-control-active) 45%, var(--page-text) 50%, var(--writing-control-active) 55%, var(--page-subtle) 68%);color:#0000;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:2.4s ease-in-out infinite writing-shimmer}.writing-generating svg{animation:2s linear infinite writing-orbit}@keyframes writing-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes writing-orbit{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.writing-thinking-text,.writing-generating svg{animation:none}.writing-thinking-text{color:var(--page-subtle);background:0 0}}.home-intro-container{width:100%;min-width:0;container-type:inline-size}.home-intro{flex-direction:column-reverse;justify-content:space-between;align-items:flex-start;gap:2rem;display:flex}.home-intro-copy{width:100%;min-width:0;max-width:20rem}.home-intro-body{color:var(--page-body);overflow-wrap:anywhere;margin-top:1rem;font-size:.875rem;line-height:1.75}.home-intro-body ul,.home-intro-body ol{margin-block:.75rem;padding-left:1.25rem}.home-intro-body ul{list-style:outside}.home-intro-body ol{list-style:decimal}@container (width>=28rem){.home-intro{flex-direction:row;gap:clamp(1rem,4cqi,2.5rem)}.home-intro-copy{flex:1}.home-intro .home-portrait-stage{width:clamp(9rem,28cqi,15rem)}}.home-intro-body p+p{margin-top:.75rem}.home-intro-body .contact-preview-trigger{border-bottom:var(--border-hairline) solid var(--page-line);color:var(--page-text);transition:border-color .15s}.home-intro-body .contact-preview-trigger:hover{border-color:var(--page-text)}@keyframes home-writing-swing{0%{opacity:0;filter:blur(2px);transform:translateY(12px)rotate(-2deg)}}.home-writing-enter{animation:home-writing-swing .4s var(--ease-swift) backwards}@media (prefers-reduced-motion:reduce){.home-writing-enter{animation:none}}.home-content-summary{width:min(100vw, var(--page-width));margin-top:3.5rem;margin-inline:calc((100% - min(100vw, var(--page-width))) / 2);border-block:var(--border-hairline) solid var(--page-line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.home-content-summary[data-projects-enabled=false]{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{min-width:0;animation:home-writing-swing .4s var(--ease-swift) backwards;flex-direction:column;align-items:center;gap:.25rem;padding:1.5rem .75rem 1.25rem;display:flex}.summary-card+.summary-card{border-left:var(--border-hairline) solid var(--page-line)}.summary-card:active{transform:scale(.985)}.summary-card:focus-visible{outline:2px solid var(--page-text);outline-offset:-4px}.summary-vignette{place-items:center;width:100%;height:3.5rem;margin-bottom:.375rem;display:grid;position:relative}.summary-sheets span{background:repeating-linear-gradient(to bottom, transparent 0 7px, color-mix(in oklab, var(--page-text) 35%, transparent) 7px 7.5px) 50% 60%/70% 60% no-repeat, var(--page-paper);width:2.375rem;height:2.875rem;box-shadow:0 0 0 1px color-mix(in oklab, var(--page-text) 12%, transparent), 0 1px 2px #0000001f;transition:transform .3s var(--ease-spring);position:absolute}.summary-sheets span:first-child{transform:rotate(-7deg)translate(-9px)}.summary-sheets span:nth-child(2){transform:rotate(4deg)translate(9px)}.summary-sheets span:nth-child(3){transform:rotate(-1deg)translateY(-2px)}.summary-books span{background:var(--page-paper);width:2.125rem;height:2.875rem;box-shadow:0 0 0 1px color-mix(in oklab, var(--page-text) 18%, transparent), 0 2px 3px #00000026;transition:transform .3s var(--ease-spring);border-radius:1px 3px 3px 1px;position:absolute}.summary-books span:before{content:"";border-left:var(--border-hairline) solid var(--page-line);position:absolute;inset:0 auto 0 4px}.summary-books span:after{content:"";border-block:1px solid color-mix(in oklab, var(--page-text) 35%, transparent);height:5px;position:absolute;top:13px;left:10px;right:6px}.summary-books span:first-child{transform:translate(-15px)rotate(-12deg)}.summary-books span:nth-child(2){transform:translateY(-3px)}.summary-books span:nth-child(3){transform:translate(15px)rotate(12deg)}.summary-project-icon{isolation:isolate;border:var(--border-hairline) solid color-mix(in oklab, var(--page-text) 20%, var(--page-line));background:color-mix(in oklab, var(--page-text) 4%, var(--page-bg));width:3.25rem;height:3.25rem;transition:transform .3s var(--ease-spring);border-radius:.75rem;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0000001f}.summary-construction-guides{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.summary-guide-solid{stroke:color-mix(in oklab, var(--page-text) 25%, transparent);stroke-width:.65px;vector-effect:non-scaling-stroke}.summary-project-mark{width:30px;height:30px;color:var(--page-text);position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.summary-explode-a,.summary-explode-b,.summary-explode-c{transform-box:fill-box;transform-origin:50%;transition:transform .3s var(--ease-spring)}.summary-label{color:var(--page-text);font-size:.875rem;font-weight:500}.summary-count{color:var(--page-subtle);font-variant-numeric:tabular-nums;font-size:.875rem}@media (hover:hover) and (pointer:fine){.summary-card:hover .summary-sheets span:first-child{transform:rotate(-13deg)translate(-16px)translateY(-2px)}.summary-card:hover .summary-sheets span:nth-child(2){transform:rotate(9deg)translate(16px)translateY(-1px)}.summary-card:hover .summary-sheets span:nth-child(3){transform:rotate(-2deg)translateY(-5px)}.summary-card:hover .summary-books span:first-child{transform:translate(-22px,-2px)rotate(-18deg)}.summary-card:hover .summary-books span:nth-child(2){transform:translateY(-6px)}.summary-card:hover .summary-books span:nth-child(3){transform:translate(22px,-2px)rotate(18deg)}.summary-card:hover .summary-project-icon{transform:translate(-50%,calc(-50% - 2px))}.summary-card:hover .summary-explode-a{transform:translate(1.5px,-1.5px)rotate(3deg)}.summary-card:hover .summary-explode-b{transform:translate(-2.5px,-2px)rotate(-6deg)}.summary-card:hover .summary-explode-c{transform:translate(2px,2.5px)rotate(5deg)}}@media (width<=639px){.summary-card{gap:.125rem;padding:1.25rem .375rem 1rem}.summary-vignette{height:3.25rem;margin-bottom:.25rem}.summary-label{font-size:.8125rem;line-height:1.25}.summary-count{font-size:.75rem;line-height:1.25}}@media (prefers-reduced-motion:reduce){.summary-card{animation:none}.summary-sheets span,.summary-books span,.summary-project-icon,.summary-explode-a,.summary-explode-b,.summary-explode-c{transition:none}}.contact-avatar-xiaohongshu{color:#fff;background:#d93842;font-size:18px;font-weight:600}.contact-xhs-wordmark{color:#d93842;flex:none;align-self:flex-start;font-size:11px;font-weight:600}.home-portrait-stage{isolation:isolate;aspect-ratio:1;flex:none;width:9.35rem;display:block;position:relative}.home-portrait-trigger{z-index:1;cursor:default;touch-action:manipulation;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;display:block;position:relative}.home-portrait-trigger:focus-visible{outline:1px solid var(--page-text);outline-offset:4px}.home-portrait{width:100%;height:100%;display:block;position:relative;overflow:hidden}.home-portrait-field{pointer-events:none;opacity:0;transform-origin:45% 44%;width:156%;height:159%;transition:opacity .32s var(--ease-swift), transform .32s var(--ease-swift);position:absolute;inset:-24% -36% -35% -20%;transform:scale(.2);-webkit-mask-image:radial-gradient(at 45% 44%,#0000 0 19%,#0000007a 34%,#000000e6 65%,#0000 90%);mask-image:radial-gradient(at 45% 44%,#0000 0 19%,#0000007a 34%,#000000e6 65%,#0000 90%)}.home-portrait-field[data-active=true]{opacity:1;transform:scale(1)}.home-portrait-contours,.home-portrait-shader,.home-portrait-shader-canvas{width:100%;height:100%;position:absolute;inset:0}.home-portrait-shader{opacity:0}.home-portrait-shader[data-ready=true]{opacity:.1}.home-portrait-source,.home-portrait-canvas{width:100%;height:100%;position:absolute;inset:0}.home-portrait-source{object-fit:cover;filter:grayscale()contrast(1.35);opacity:.8}.home-portrait-source.is-ready{opacity:0}.home-portrait-canvas{display:block}@media (prefers-reduced-motion:reduce){.home-portrait-field{transition:none;transform:none}}.home-intro-editor{align-items:start;gap:2.5rem;display:grid}.home-intro-editor-fields{gap:1.25rem;min-width:0;max-width:40rem;display:grid}.home-intro-profile-fields{gap:1rem;display:grid}.home-intro-rich-editor{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);min-width:0}.home-intro-rich-toolbar{border-bottom:var(--border-hairline) solid var(--page-line);align-items:center;gap:3px;padding:5px;display:flex}.home-intro-rich-toolbar button{width:32px;height:32px;color:var(--page-subtle);place-items:center;display:grid}.home-intro-rich-toolbar button:hover,.home-intro-rich-toolbar button[aria-pressed=true]{background:var(--page-paper);color:var(--page-text)}.home-intro-rich-toolbar button:disabled{cursor:default;opacity:.35}.home-intro-rich-toolbar-divider{border-left:var(--border-hairline) solid var(--page-line);height:20px;margin-inline:5px}.home-intro-rich-editor .tiptap{overflow-wrap:anywhere;min-height:220px;max-height:45vh;color:var(--page-body);padding:16px;font-size:14px;line-height:1.8;overflow-y:auto}.home-intro-rich-editor .tiptap:focus{outline:none}.home-intro-rich-editor .tiptap p+p{margin-top:.75rem}.home-intro-rich-editor .tiptap a{border-bottom:1px solid var(--page-subtle);color:var(--page-text)}.home-intro-link-form{border-top:var(--border-hairline) solid var(--page-line);gap:9px;padding:12px;display:grid}.home-intro-editor-preview{border-top:var(--border-hairline) solid var(--page-line);min-width:0;padding-top:1.25rem}@media (width>=1180px){.home-intro-editor{grid-template-columns:minmax(0,26rem) minmax(0,1fr)}.home-intro-editor-preview{border-top:0;border-left:var(--border-hairline) solid var(--page-line);max-width:43rem;padding:1rem 1.5rem;position:sticky;top:2rem}}.home-intro-rich-editor .tiptap ul{padding-left:1.25rem;list-style:outside}.home-intro-rich-editor .tiptap ol{padding-left:1.25rem;list-style:decimal}.home-intro-editor-preview .prose-blog{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){.home-portrait-field{transition:none}}.agent-workspace{max-width:1440px;padding-top:36px}.agent-workspace-header,.agent-skill-intro{justify-content:space-between;align-items:center;gap:24px;display:flex}.agent-label{border:var(--border-hairline) solid var(--page-line);color:var(--page-subtle);border-radius:3px;flex-shrink:0;padding:6px 10px;font-size:12px}.agent-tabs{border-bottom:var(--border-hairline) solid var(--page-line);flex-wrap:wrap;gap:8px;margin:28px 0;padding-bottom:20px;display:flex}.agent-skill-intro{margin-bottom:24px}.agent-skills-grid{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.agent-skill-library,.agent-skill-editor{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);border-radius:5px;min-width:0;padding:24px}.agent-skill-library{padding:20px}.agent-search{border:var(--border-hairline) solid var(--page-line);color:var(--page-subtle);border-radius:3px;align-items:center;gap:8px;margin:20px 0 10px;padding:10px;display:flex}.agent-search input{outline:none;width:100%;min-width:0;font-size:13px}.agent-search:focus-within{border-color:var(--page-accent)}.agent-skill-list{gap:8px;max-height:560px;margin-top:18px;display:grid;overflow:auto}.agent-skill-list li{border:var(--border-hairline) solid var(--page-line);border-radius:3px;padding:14px}.agent-skill-list li.is-selected{border-color:var(--page-accent);background:var(--page-paper)}.agent-skill-select{text-align:left;overflow-wrap:anywhere;gap:7px;width:100%;display:grid}.agent-skill-description{-webkit-line-clamp:2;color:var(--page-subtle);-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.agent-skill-switch{border:var(--border-hairline) solid var(--page-line);color:var(--page-subtle);border-radius:20px;margin-top:12px;padding:3px 10px;font-size:12px}.agent-skill-switch[aria-checked=true]{border-color:var(--page-accent);color:var(--page-text);background:var(--page-paper)}.agent-workspace button:disabled{cursor:not-allowed;opacity:.5}.agent-library-message{color:var(--page-subtle);padding:28px 0;font-size:13px}.agent-skill-fields{gap:22px;margin-top:24px;font-size:14px;display:grid}.agent-instructions{resize:vertical;min-height:320px;font-family:var(--font-mono,monospace);tab-size:2;font-size:13px;line-height:1.8}.agent-editor-actions{border-top:var(--border-hairline) solid var(--page-line);flex-wrap:wrap;gap:10px;padding-top:20px;display:flex}.agent-editor-actions button:last-child:not(:first-child){margin-left:auto}.agent-notice{border-left:2px solid var(--page-accent);background:var(--page-paper);margin-bottom:20px;padding:10px 14px;font-size:14px}.agent-empty{border:var(--border-hairline) dashed var(--page-line);text-align:center;border-radius:5px;padding:64px 24px}.agent-package-upload{border:var(--border-hairline) dashed var(--page-line);border-radius:4px;justify-items:start;gap:12px;padding:24px;display:grid}.agent-skill-editor h3,.agent-skill-editor>p{overflow-wrap:anywhere;min-width:0}.agent-package-upload input{width:100%;font-size:13px}.agent-package-actions{flex-wrap:wrap;gap:10px;margin:24px 0;display:flex}.agent-package-files{border-top:var(--border-hairline) solid var(--page-line);grid-template-columns:minmax(150px,210px) minmax(0,1fr);gap:20px;padding-top:24px;display:grid}.agent-package-files nav{border-right:var(--border-hairline) solid var(--page-line);max-height:600px;padding-right:12px;overflow:auto}.agent-package-files nav button{text-align:left;border-radius:3px;gap:4px;width:100%;padding:10px 8px;display:grid}.agent-package-files nav button[aria-current=page]{background:var(--page-paper);color:var(--page-text)}.agent-package-files nav button span{font-family:var(--font-mono,monospace);overflow-wrap:anywhere;align-items:start;gap:6px;font-size:12px;display:flex}.agent-package-files nav button svg{flex-shrink:0;margin-top:2px}.agent-package-files nav button small{color:var(--page-subtle);font-size:11px}.agent-file-preview{white-space:pre-wrap;overflow-wrap:anywhere;border:var(--border-hairline) solid var(--page-line);min-height:360px;max-height:640px;font-family:var(--font-mono,monospace);padding:18px;font-size:13px;line-height:1.8;overflow:auto}@media (width<=1100px){.agent-package-files{grid-template-columns:1fr}.agent-package-files nav{border-right:none;border-bottom:var(--border-hairline) solid var(--page-line);max-height:220px;padding:0 0 12px}.agent-skills-grid{grid-template-columns:240px minmax(0,1fr);gap:16px}}@media (width<=760px){.agent-workspace-header,.agent-skill-intro{flex-direction:column;align-items:start;gap:16px}.agent-skills-grid{grid-template-columns:1fr}.agent-skill-list{max-height:280px}.agent-skill-editor{padding:18px}}.agent-tools-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.agent-tool-fields{gap:20px;display:grid}:is(.agent-tool-fields>label:not(:has(input[type=checkbox])),.agent-tool-pair>label){gap:8px;font-size:13px;display:grid}.agent-tool-fields input:not([type=checkbox]),.agent-tool-fields select{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:100%;min-width:0;color:var(--page-text);border-radius:3px;padding:10px 12px}.agent-tool-fields input:focus,.agent-tool-fields select:focus{outline-color:var(--page-accent)}.agent-tool-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.agent-search-results{gap:16px;margin-top:16px;display:grid}.agent-search-results li{border:var(--border-hairline) solid var(--page-line);overflow-wrap:anywhere;border-radius:3px;padding:16px}.agent-search-results a{color:var(--page-accent)}@media (width<=900px){.agent-tools-layout{grid-template-columns:minmax(0,1fr)}}@media (width<=480px){.agent-tool-pair{grid-template-columns:minmax(0,1fr)}}.project-row{border-top:var(--border-hairline) solid var(--page-line);grid-template-columns:2.75rem minmax(0,9rem) minmax(0,1fr);align-items:start;gap:.25rem 1rem;min-height:4.75rem;padding-block:.875rem;font-size:.875rem;display:grid}.page-introduction{color:var(--gray-10,var(--page-text));font-size:.875rem;line-height:1.7}.project-row:focus-visible{outline:1px solid var(--page-accent);outline-offset:3px;border-radius:2px}.project-icon-frame{isolation:isolate;place-items:center;width:2.75rem;height:2.75rem;display:grid;position:relative}.project-icon-frame:before{color:var(--page-text);content:"";opacity:0;transition:opacity .15s ease, transform .3s var(--ease-swift);background:linear-gradient(currentColor,currentColor) 0 0/7px 1px no-repeat,linear-gradient(currentColor,currentColor) 0 0/1px 7px no-repeat,linear-gradient(currentColor,currentColor) 100% 0/7px 1px no-repeat,linear-gradient(currentColor,currentColor) 100% 0/1px 7px no-repeat,linear-gradient(currentColor,currentColor) 0 100%/7px 1px no-repeat,linear-gradient(currentColor,currentColor) 0 100%/1px 7px no-repeat,linear-gradient(currentColor,currentColor) 100% 100%/7px 1px no-repeat,linear-gradient(currentColor,currentColor) 100% 100%/1px 7px no-repeat;position:absolute;inset:0;transform:scale(.82)}.project-icon{z-index:1;object-fit:cover;width:2.25rem;height:2.25rem;box-shadow:0 0 0 1px color-mix(in oklab, var(--page-text) 10%, transparent);transition:transform .3s var(--ease-swift);border-radius:.5rem;position:relative}.project-identity{flex-direction:column;align-items:flex-start;gap:.125rem;min-width:0;line-height:1.4;display:flex}.project-name{max-width:100%;color:var(--page-text);text-wrap:balance}.project-domain{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:color .15s;overflow:hidden}.project-description{min-width:0;color:var(--page-subtle);text-wrap:balance;line-height:1.55}@media (hover:hover) and (pointer:fine){.project-row:hover .project-icon-frame:before{opacity:.34;transform:scale(1)}.project-row:hover .project-icon{transform:translateY(-1px)}.project-row:hover .project-domain{color:var(--page-text)}}.project-row:focus-visible .external-label .external-mark{opacity:.6;transition:none}@media (width<=39.99rem){.project-row{grid-template-columns:2.75rem minmax(0,1fr);align-items:start;row-gap:.375rem;min-height:0;padding-block:1rem}.project-icon-frame{grid-row:1/span 2}.project-identity,.project-description{grid-column:2}.project-domain{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;overflow:visible}}@media (prefers-reduced-motion:reduce){.project-icon-frame:before,.project-icon,.project-domain{transition:none}.project-row:hover .project-icon,.project-row:hover .project-icon-frame:before{transform:none}}.projects-page{isolation:isolate;position:relative}.project-schematic{z-index:-1;pointer-events:none;width:224px;color:var(--project-ghost-ink);position:absolute;top:16px;right:0}.project-icon{background:var(--page-paper);place-items:center;display:grid}.project-icon img{border-radius:inherit;object-fit:cover;width:36px;height:36px}.project-name{overflow-wrap:anywhere;display:inline}.project-external{opacity:0;margin-left:4px;transition:opacity .15s,transform .15s;display:inline;transform:translate(-2px,2px)}.project-domain{max-width:100%;color:var(--page-subtle);font-size:14px}.project-row:is(:hover,:focus-visible) .project-external{opacity:.6;transform:none}.project-row:focus-visible .project-icon-frame:before{opacity:.34;transform:none}.project-stage{isolation:isolate;position:relative}.projects-list{position:relative}.project-stage-field{pointer-events:none;color:var(--page-text);opacity:0;transition:opacity .18s var(--ease-swift), transform .18s var(--ease-swift);position:absolute;inset:0;overflow:hidden;transform:scale(.985)}.project-stage[data-active=true] .project-stage-field{opacity:1;transition-duration:.26s;transition-delay:.12s;transform:scale(1)}.project-blueprint-static,.project-shader,.project-shader-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.project-blueprint-static{background-image:linear-gradient(var(--project-grid-ink) 1px, transparent 1px), linear-gradient(90deg, var(--project-grid-ink) 1px, transparent 1px);background-size:24px 24px}.project-blueprint-static[data-hidden=true],.project-shader{opacity:0}.project-shader[data-ready=true]{opacity:var(--project-shader-opacity)}.project-registration{opacity:.26;width:58px;height:58px;position:absolute;transform:translate(-50%,-50%)}.project-registration :is(path,circle){stroke:currentColor;stroke-width:1px;vector-effect:non-scaling-stroke}@media (hover:hover) and (pointer:fine){.projects-list>li{transition:opacity .18s var(--ease-swift)}.projects-list:has(.project-row:hover)>li:not(:hover):not(:focus-within){opacity:.44}}@media (width<=639px){.project-schematic{display:none}}@media (prefers-reduced-motion:reduce){.project-stage-field,.project-external,.projects-list>li{transition:none}.project-stage-field{transform:none}.projects-list:has(.project-row:hover)>li:not(:hover):not(:focus-within){opacity:1}}.image-generator-dialog{border:var(--border-hairline) solid var(--page-line);background:var(--page-bg);width:min(520px,100vw - 32px);max-height:min(92vh,740px);color:var(--page-text);box-shadow:var(--preferences-panel-shadow);border-radius:8px;margin:auto;padding:22px;overflow:auto}.image-generator-dialog::backdrop{background:#0000008c}.image-generator-preview{border:var(--border-hairline) solid var(--page-line);background:var(--page-paper);margin-inline:0;padding:8px}.image-generator-preview img{object-fit:contain;width:100%;max-height:360px;display:block}
