/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-font-weight: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{:host,:root{--font-sans:-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-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-semibold:600;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@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;overflow:hidden}.absolute,.sr-only{position:absolute}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.pt-0{padding-top:0}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.lowercase{text-transform:lowercase}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:100px;display:flex}.brand{letter-spacing:-.05em;align-items:center;gap:10px;font-size:21px;font-weight:650;display:inline-flex}.brand,.brand:hover{color:var(--foreground)}.brand:hover{text-decoration:none}.brand-mark{object-fit:cover;outline:8px solid var(--background);border-radius:50%;width:28px;height:28px}.main-nav{align-items:center;gap:30px;min-height:44px;margin-left:auto;margin-right:30px;font-size:14px;display:flex;position:relative}.nav-link{color:var(--muted)}.main-nav .nav-link{align-self:stretch;align-items:center;text-decoration:none;display:inline-flex}.nav-link[aria-current=page]{color:var(--foreground)}.main-nav:not([data-indicator-ready]) .nav-link[aria-current=page]:after{content:"";background:var(--accent);width:100%;height:2px;position:absolute;bottom:0;left:0}.nav-indicator{background:var(--accent);pointer-events:none;opacity:0;transform-origin:0;width:100%;height:2px;transform:translateX(var(--nav-x,0)) scaleX(var(--nav-scale,0));position:absolute;bottom:0;left:0}.theme-toggle{border:1px solid var(--border-ui);background:var(--background);min-width:44px;min-height:44px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:6px 9px;font-size:12px;display:flex}.theme-toggle:hover{background:var(--surface-2);color:var(--highlight)}.theme-icons{width:16px;height:16px;display:grid}.theme-label-mobile{display:none}.theme-icon{opacity:0;transition:transform var(--dur-base) var(--ease-feedback),opacity var(--dur-base) var(--ease-feedback);grid-area:1/1;transform:rotate(-180deg)}[data-theme-choice=dark] .theme-icon-moon,[data-theme-choice=light] .theme-icon-sun,[data-theme-choice=system] .theme-icon-system{opacity:1;transform:rotate(0)}.site-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;gap:20px;padding-block:28px;font-size:12px;display:flex}.footer-links{flex-wrap:wrap;gap:10px 24px;display:flex}.hush-button{background:var(--transparent);color:var(--accent);text-underline-offset:.25em;border:0;padding:0}.hush-button:hover{color:var(--highlight);text-decoration:underline;-webkit-text-decoration-color:var(--secondary);text-decoration-color:var(--secondary);text-decoration-thickness:1px}.hero{padding:76px 0 68px}.hero-grid{grid-template-columns:1.6fr 1fr;align-items:end;gap:80px;margin-top:28px;display:grid}.hero h1{font-family:var(--font-serif);letter-spacing:-.01em;font-size:clamp(42px,6vw,68px);font-weight:500;line-height:1.35}.hero h1 span,.hero-description{color:var(--muted)}.hero-description{max-width:34ch;margin-bottom:12px;font-size:16px}.hero-illustration{filter:brightness(5)saturate(.3);width:224px;height:auto;margin-bottom:20px;display:block}:root[data-theme=light] .hero-illustration{filter:none}.hero-note{color:var(--muted);align-items:center;gap:9px;margin-top:34px;font-size:12px;display:flex}.status-dot{background:var(--muted);border-radius:50%;width:6px;height:6px}.home-latest{border-top:1px solid var(--border);padding-top:28px}.empty-state{border-block:1px solid var(--border);color:var(--muted);padding:50px 0}.post-row{border-bottom:1px solid var(--border);cursor:pointer;transform:translateY(var(--card-lift,0)) scale(var(--press-scale,1));grid-template-columns:140px minmax(0,1fr) 30px;gap:20px;padding:29px 0;display:grid}.home-latest .post-row:last-child{border-bottom-color:#0000}.post-row[data-navigating]{--card-lift:-2px;border-color:var(--card-feedback-border)}.post-date{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:4px;font-size:13px}.post-title{letter-spacing:-.025em;word-break:auto-phrase;text-wrap:balance;font-size:22px;font-weight:600;line-height:1.5}.post-title a,.post-title a:hover{color:var(--foreground)}.post-summary{color:var(--muted);max-width:64ch;margin:9px 0 16px;font-size:14px}.post-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:9px;font-size:12px;display:flex}.post-arrow{color:var(--muted);transition:color var(--dur-fast) var(--ease-feedback),transform var(--dur-fast) var(--ease-feedback);padding-top:4px;font-size:20px}.post-row:focus-within{--card-lift:-2px;border-color:var(--card-feedback-border)}.post-row:focus-within .post-arrow{color:var(--accent);transform:translate(2px,-2px)}@media (hover:hover) and (pointer:fine){.post-row:hover{--card-lift:-2px;border-color:var(--card-feedback-border)}.post-row:hover .post-arrow{color:var(--accent);transform:translate(2px,-2px)}}.topics{flex-wrap:wrap;gap:8px;display:flex}.topics-section{margin-top:48px}.filter-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-bottom:24px;display:flex}.about-layout{grid-template-columns:minmax(0,68ch) 1fr;gap:80px;padding-top:60px;display:grid}.about-aside{padding-top:12px}.about-aside img{outline:8px solid var(--background);object-fit:cover;border-radius:50%;margin-bottom:18px}.about-aside p{color:var(--muted);margin:6px 0;font-size:14px}.error-page{max-width:620px;padding-block:90px}.error-page h1{font-family:var(--font-serif);letter-spacing:-.01em;margin:16px 0;font-size:46px;font-weight:500}.error-page p{color:var(--muted);margin-bottom:28px}@media (min-width:641px){.main-nav{border:1px solid var(--border);background:var(--surface);isolation:isolate;border-radius:26px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:240px;height:52px;padding:3px;display:grid}.main-nav .nav-link{z-index:1;border-radius:22px;justify-content:center;min-width:44px;min-height:44px}.main-nav .nav-link:focus-visible{outline-offset:-3px}.main-nav .nav-indicator{border-radius:calc(20px / var(--nav-scale,.25)) /20px;background:var(--selection-background);z-index:0;height:40px;top:5px;bottom:auto}.main-nav:not([data-indicator-ready]) .nav-link[aria-current=page]:after{background:var(--selection-background);z-index:-1;border-radius:20px;height:auto;inset:2px 0}}@media (max-width:800px){.hero-grid{grid-template-columns:1fr;gap:26px}.hero-description{max-width:46ch}.about-layout{grid-template-columns:1fr;gap:32px}}@media (max-width:640px){.site-header{height:80px}.main-nav{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + var(--mobile-nav-gap));z-index:50;height:var(--mobile-nav-height);border:1px solid var(--border);border-radius:calc(var(--mobile-nav-height) / 2);background:var(--surface);isolation:isolate;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:3px;display:grid;position:fixed}.main-nav .nav-link{min-width:44px;min-height:44px;color:var(--muted);z-index:1;border-radius:22px;justify-content:center;font-size:14px}.main-nav .nav-link[aria-current=page]{color:var(--foreground)}.main-nav .nav-link:focus-visible{outline-offset:-3px}.main-nav .nav-indicator{height:calc(var(--mobile-nav-height) - 12px);border-radius:calc(20px / var(--nav-scale,.25)) /20px;background:var(--selection-background);z-index:0;top:5px;bottom:auto}.main-nav:not([data-indicator-ready]) .nav-link[aria-current=page]:after{background:var(--selection-background);z-index:-1;border-radius:20px;height:auto;inset:2px 0}.theme-icons,.theme-label{display:none}.theme-label-mobile{display:inline}.hush-hint{display:none}.hero{padding-block:36px}.hero h1{font-size:34px;line-height:1.35}.hero-grid{margin-top:22px}.hero-note{display:none}.hero-illustration{width:144px;margin-bottom:16px}.post-row{grid-template-columns:minmax(0,1fr) 24px;gap:12px;padding-block:24px}.post-date{grid-column:1/-1;padding:0;font-size:12px}.post-title{font-size:19px}.post-summary{font-size:14px}.site-footer{flex-direction:column;gap:12px}.error-page h1{font-size:36px}}.article-glyph{margin-inline-end:1px}.article-page .article-body-layout,.home-latest{border-top-color:var(--transparent);position:relative}.topics-section{position:relative}.hairline-rule{pointer-events:none;width:100%;height:6px;display:block;position:absolute;top:-3px;left:0}.topics-section>.hairline-rule{top:-24px}.hush-notice{--hush-notice-duration:1.5s;--hush-notice-fade:.15s;z-index:60;background:var(--surface);max-width:calc(100vw - 48px);color:var(--foreground);border:1px solid var(--border);pointer-events:none;opacity:0;transition:opacity var(--hush-notice-fade) var(--ease-feedback);border-radius:6px;padding:8px 14px;font-size:14px;position:fixed;bottom:24px;right:24px}.hush-notice[data-visible=true]{opacity:1}@media (max-width:640px){.hush-notice{top:24px;bottom:auto}}.article-page{padding-top:48px}.article-header{max-width:68ch;padding-bottom:40px}.article-header>.text-link{align-items:center;min-height:44px;padding-block:10px;display:inline-flex}.article-header h1{font-family:var(--font-serif);letter-spacing:-.01em;word-break:auto-phrase;margin:16px 0;font-size:clamp(30px,4.5vw,44px);font-weight:500;line-height:1.35}.article-summary{color:var(--muted);font-size:17px;line-height:1.75}.article-body-layout{border-top:1px solid var(--border);grid-template-columns:minmax(0,68ch) minmax(0,200px);gap:80px;padding-top:40px;display:grid}.article-content{grid-area:1/1;min-width:0}.prose{line-break:strict;counter-reset:section;max-width:68ch;font-size:18px;line-height:1.75}.prose>*+*{margin-top:1.25em}.prose h2{font-family:var(--font-serif);letter-spacing:-.01em;counter-increment:section;margin-top:2em;font-size:27px;font-weight:500;line-height:1.35}.article-page .prose h2:before{content:counter(section,decimal-leading-zero);letter-spacing:0;color:var(--accent);vertical-align:.35em;font-variant-numeric:tabular-nums;margin-right:.8em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.5em;font-weight:400;display:inline-block}.prose h3{margin-top:1.8em;font-size:21px;font-weight:600}.prose>:first-child{margin-top:0}.prose a{text-decoration:underline}.prose ol,.prose ul{padding-left:1.5em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:.5em}.prose blockquote{border-left:3px solid var(--secondary);background:var(--surface);color:var(--muted);margin-inline:0;padding:15px 22px}.prose img{border-radius:6px;max-width:100%;height:auto;display:block}.prose .article-illustration{margin-block:2em;margin-inline:0}.article-illustration img{border-radius:0;width:100%}.article-illustration figcaption{color:var(--muted);text-align:center;margin-top:12px;font-size:13px;line-height:1.75}.prose code{overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.85em}.prose :not(pre)>code{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.16em .35em}.prose pre{background:var(--code-background);border:1px solid var(--border);tab-size:2;border-radius:7px;max-width:100%;padding:20px;font-size:14px;line-height:1.8;overflow-x:auto}.prose pre,.prose pre code{color:var(--code-foreground)}.prose pre code{font-size:inherit;overflow-wrap:normal}.prose pre [data-line]{padding-right:20px}.prose [data-rehype-pretty-code-title]{color:var(--code-comment);background:var(--code-background);border:1px solid var(--border);border-bottom:0;border-radius:7px 7px 0 0;padding:10px 20px;font-family:Consolas,monospace;font-size:12px}.prose [data-rehype-pretty-code-title]+pre{border-radius:0 0 7px 7px}.table-scroll{border:1px solid var(--border);border-radius:6px;max-width:100%;overflow-x:auto}.prose table{border-collapse:collapse;white-space:normal;width:100%;min-width:420px;font-size:15px}.prose td,.prose th{text-align:left;border-bottom:1px solid var(--border);padding:12px 16px}.prose th{background:var(--surface);font-weight:600}.prose tr:last-child td{border-bottom:0}.prose hr{border:0;border-top:1px solid var(--border);margin-block:2em}.toc{grid-area:1/2;align-self:start;font-size:13px;position:sticky;top:30px}.toc summary{cursor:pointer;margin-bottom:14px;font-weight:600;list-style:none}.toc summary::-webkit-details-marker{display:none}.toc ol{color:var(--muted);margin:0;padding:0 0 0 17px;list-style:none;position:relative}.toc ol:before{content:"";background:var(--accent);opacity:0;width:3px;height:22px;transform:translateY(var(--toc-offset,0));transition:transform var(--dur-base) var(--ease-feedback);position:absolute;top:0;left:0}.toc ol[data-active]:before{opacity:1}.toc a{color:var(--muted)}.toc a.is-active{color:var(--accent)}.toc li+li{margin-top:10px}.toc .toc-subheading{padding-left:12px;font-size:12px}.article-signature{font-family:var(--font-hand);color:var(--muted);margin-top:32px;font-size:16px}.article-end{align-items:center;gap:10px;margin-block:48px;font-size:13px;display:flex}.article-end,.article-end span{color:var(--muted)}.post-updated{color:var(--accent)}.semantic-desktop{display:contents}.semantic-mobile{display:none}.prose .pull-quote{border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-family:var(--font-serif);letter-spacing:-.01em;color:var(--foreground);text-wrap:balance;margin-block:2.2em;padding-block:1.1em;font-size:23px;font-weight:500;line-height:1.5}.prose .pull-quote>*{font-size:inherit;line-height:inherit;margin:0}@media (min-width:1024px){.prose .pull-quote{margin-left:-24px;padding-left:24px}}.post-navigation{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:26px;padding-top:26px;display:grid}.post-navigation span{color:var(--muted);margin-bottom:8px;font-size:12px;display:block}.post-navigation strong{font-size:15px;font-weight:500}.post-navigation a,.post-navigation a:hover{color:var(--foreground)}.next-post{text-align:right}@media (max-width:900px){.article-body-layout{grid-template-columns:minmax(0,1fr);gap:32px}.article-body-layout,.article-header{max-width:68ch;margin-inline:auto}.toc{background:var(--surface);border:1px solid var(--border);border-radius:6px;grid-area:auto/1;padding:14px 18px;position:static}.toc ol:before{display:none}.article-content{grid-row:auto}.toc summary:after{content:" ↕";float:right;color:var(--muted)}.toc details:not([open]) summary{margin:0}}@media (max-width:640px){.article-page{padding-top:30px}.article-header{padding-bottom:28px}.article-header>.post-meta{color:var(--foreground);grid-template-columns:max-content max-content max-content minmax(0,1fr);gap:6px 9px;font-size:13px;display:grid}.article-header .post-updated-separator{display:none}.article-header .post-updated{color:var(--muted);grid-column:2/-1;font-size:12px}.article-header h1,.prose .pull-quote{word-break:keep-all}.semantic-desktop{display:none}.semantic-mobile{display:contents}.article-body-layout{padding-top:24px}.prose{font-size:17px}.prose h2{font-size:24px}.prose pre{padding:16px;font-size:13px}}.home-entry{display:none}:root[data-home-entry=leaving],:root[data-home-entry=pending]{scrollbar-gutter:stable;overflow:hidden}:root[data-home-entry=leaving] .skip-link,:root[data-home-entry=pending] :is(.site-header,.site-footer,.skip-link,.home-entry-content){visibility:hidden}:root:is([data-home-entry=pending],[data-home-entry=leaving]) .home-entry{z-index:55;background:var(--transparent);isolation:isolate;color:var(--foreground);touch-action:pan-x pinch-zoom;grid-template-rows:auto minmax(0,1fr) auto;padding:clamp(24px,5vw,64px);display:grid;position:fixed;inset:0}.home-entry:before{content:"";z-index:-1;background:var(--background);opacity:calc(1 - var(--entry-reveal,0));position:absolute;inset:0}.entry-top{color:var(--muted);justify-content:space-between;align-items:baseline;gap:20px;font-size:12px;display:flex}.entry-top>:first-child{letter-spacing:-.05em;color:var(--foreground);font-size:21px;font-weight:650}.entry-scene{grid-template-columns:1.4fr 1fr;align-items:center;gap:60px;width:min(100%,1000px);margin-inline:auto;display:grid}.entry-title-stack{width:max-content;max-width:100%;font-family:var(--font-serif);letter-spacing:-.01em;text-align:left;transform-origin:0 0;will-change:transform;margin-top:20px;font-size:clamp(48px,7vw,88px);font-weight:500;line-height:1.35;display:inline-block;position:relative}.entry-title-stack h1{font:inherit;letter-spacing:inherit;white-space:nowrap;margin:0}.entry-title-character{display:inline-block;position:relative}.entry-title-line{color:var(--muted);display:block;position:relative}.entry-word-out{opacity:var(--entry-word-out,1)}.entry-word-in{opacity:var(--entry-word-in,0);position:absolute;top:0;left:0}.entry-description{color:var(--muted);margin-top:24px;font-size:15px}.entry-illustration{filter:brightness(5)saturate(.3);transform-origin:0 0;will-change:transform;width:min(100%,360px);height:auto}:root[data-theme=light] .entry-illustration{filter:none}.entry-bottom{justify-items:center;gap:12px;padding-top:24px;display:grid}.entry-button{border:1px solid var(--border-ui);background:var(--background);min-height:48px;color:var(--accent);border-radius:6px;justify-content:space-between;align-items:center;gap:36px;padding:10px 22px;font-size:14px;display:inline-flex}.entry-button:hover{color:var(--highlight);background:var(--surface)}.entry-bottom p{color:var(--muted);font-size:12px}.entry-swipe-hint{display:none}:root:is([data-home-entry=pending],[data-home-entry=leaving]) .home-entry-content{opacity:1}:root:is([data-home-entry=pending],[data-home-entry=leaving]) :is(.home-entry-content #intro-title,.home-entry-content .hero-illustration){opacity:0}.entry-bottom p,.entry-description,.entry-scene>div>.eyebrow,.entry-top{opacity:var(--entry-chrome,1)}:root:is([data-home-entry=pending],[data-home-entry=leaving]) :is(.hero-description,.hero-grid .text-link,.hero-note){opacity:var(--entry-details,0)}@media (max-width:640px){.entry-scroll-hint{display:none}.entry-swipe-hint{display:inline}.entry-top{gap:12px;font-size:11px}.entry-scene{text-align:center;grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;gap:28px}.entry-title-stack{margin-top:12px;font-size:clamp(42px,12vw,56px)}.entry-description{margin-top:16px;font-size:14px}.entry-illustration{width:200px}.entry-bottom{padding-bottom:env(safe-area-inset-bottom)}}@media (max-height:560px){.entry-scene{text-align:left;grid-template-columns:1.4fr 1fr;gap:24px}.entry-title-stack{margin-top:8px;font-size:36px}.entry-scene .eyebrow{display:none}.entry-description{margin-top:8px;font-size:12px}.entry-illustration{width:160px}.entry-bottom{gap:6px;padding-top:12px}}.guestbook-page{max-width:68ch;margin-inline:auto}.comments-panel{border-top:1px solid var(--border);margin-top:40px;padding-top:28px}.guestbook-page .comments-panel{margin-top:0}.comments-heading{margin-bottom:24px}.comments-heading h2{font-size:20px;font-weight:600}.comments-heading p{color:var(--muted);margin-top:6px;font-size:14px}.comments-notice{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:14px 16px;font-size:14px;display:flex}.comment-more,.comment-reply-button,.comment-reply-context button,.comments-notice button{color:var(--accent);background:var(--transparent);border:0;padding:4px 0;font-size:13px}.comment-more:hover,.comment-reply-button:hover,.comment-reply-context button:hover,.comments-notice button:hover{color:var(--highlight);text-decoration:underline}.comment-form{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:22px}.comment-name{gap:8px;font-size:14px;display:grid}.comment-form input[type=text],.comment-form textarea,.comment-name input{border:1px solid var(--border-ui);background:var(--background);width:100%;min-width:0;color:var(--foreground);font:inherit;border-radius:5px;padding:10px 12px;font-size:15px;line-height:1.75}.comment-form input::placeholder,.comment-form textarea::placeholder{color:var(--muted);opacity:1}.comment-avatar-picker{border:0;min-width:0;margin:20px 0 14px;padding:0}.comment-avatar-picker legend{margin-bottom:10px;padding:0;font-size:14px}.comment-avatar-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:360px;display:grid}.comment-avatar-option{border:1px solid var(--border);cursor:pointer;color:var(--muted);touch-action:manipulation;border-radius:6px;justify-items:center;gap:6px;padding:10px 4px 7px;font-size:12px;display:grid;position:relative}.comment-avatar-option:has(input:checked){border-color:var(--accent);color:var(--foreground);background:var(--background)}.comment-avatar-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.comment-avatar-option input{opacity:0;width:1px;height:1px;position:absolute}.comment-avatar{object-fit:contain;background:var(--surface-2);border-radius:50%;padding:3px;display:block}.comment-remember{color:var(--muted);cursor:pointer;touch-action:manipulation;align-items:center;gap:8px;font-size:12px;display:inline-flex;position:relative}.comment-remember input{opacity:0;width:16px;height:16px;margin:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.comment-remember-box{border:1px solid var(--border-ui);background:var(--background);width:16px;height:16px;transition:transform var(--dur-base) cubic-bezier(.34,1.56,.64,1);border-radius:3px;flex-shrink:0;position:relative}.comment-remember-box:before{content:"";border-radius:inherit;background:var(--accent);opacity:0;transition:opacity var(--dur-fast) var(--ease-feedback) calc(var(--dur-base) + var(--dur-fast));position:absolute;inset:-1px}.comment-remember-tick{position:absolute;inset:0}.comment-remember-tick:after,.comment-remember-tick:before{content:"";background:var(--background);transform-origin:0;border-radius:1px;height:2px;position:absolute}.comment-remember-tick:before{width:4.5px;transition:transform var(--dur-fast) var(--ease-feedback) var(--dur-base);top:6px;left:2px;transform:rotate(45deg)scaleX(0)}.comment-remember-tick:after{width:8.5px;transition:transform var(--dur-base) var(--ease-feedback);top:9px;left:5px;transform:rotate(-45deg)scaleX(0)}.comment-remember input:checked+.comment-remember-box:before{opacity:1;transition-delay:0s}.comment-remember input:checked+.comment-remember-box .comment-remember-tick:before{transition-delay:var(--dur-fast);transform:rotate(45deg)scaleX(1)}.comment-remember input:checked+.comment-remember-box .comment-remember-tick:after{transition-delay:calc(var(--dur-fast) + var(--dur-fast));transform:rotate(-45deg)scaleX(1)}.comment-remember input:focus-visible+.comment-remember-box{outline:2px solid var(--accent);outline-offset:3px}.comment-remember:active .comment-remember-box{transition-duration:var(--dur-fast);transform:scale(.9)}[data-hush=on] .comment-remember-box:before,[data-hush=on] .comment-remember-tick:after,[data-hush=on] .comment-remember-tick:before{transition-delay:0s!important}.comment-body-label{margin:20px 0 8px;font-size:14px;display:block}.comment-form textarea{resize:vertical;min-height:140px;display:block}.comment-form-note{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:8px;font-size:12px;display:flex}.comment-submit{border:1px solid var(--border-ui);background:var(--background);min-height:44px;color:var(--accent);border-radius:5px;margin-top:16px;padding:9px 18px;font-size:14px}.comment-submit:hover:not(:disabled){color:var(--highlight);background:var(--surface-2)}.comment-form button:disabled{cursor:not-allowed;color:var(--muted)}.comment-error,.comment-status{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.comment-error:not(:empty),.comment-status:not(:empty){margin-top:12px}.comment-reply-context{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:12px 0 0;font-size:13px;display:flex}.comment-list{margin-top:32px}.comment-item{border-bottom:1px solid var(--border);gap:14px;padding:24px 0;display:flex}.comment-item-content{flex:1;min-width:0}.comment-item-meta{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.comment-item-meta strong{overflow-wrap:anywhere;font-size:14px;font-weight:600}.comment-item-meta span,.comment-item-meta time,.comment-reply-to{color:var(--muted);font-size:12px}.comment-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0;font-size:15px}.comment-reply-to{margin-top:6px}.comments-empty{color:var(--muted);margin-top:24px;font-size:14px}.comment-more{min-height:44px;margin:20px auto 0;display:block}@media (max-width:640px){.comment-form{padding:16px}.comment-avatar-options{gap:8px}.comment-avatar-option{padding-inline:2px}.comment-item{gap:10px}.comment-item-meta time{flex-basis:100%}}:root .route-fade[data-route-native],:root[data-route-reveal] .route-fade[data-route-enter]{animation:none}:root[data-route-reveal]::view-transition{pointer-events:none}:root[data-route-reveal]::view-transition-group(root){animation:none}:root[data-route-reveal]::view-transition-image-pair(root){isolation:auto}:root[data-route-reveal]::view-transition-old(root){mix-blend-mode:normal}:root[data-route-reveal]::view-transition-new(root){mix-blend-mode:normal}:root[data-route-reveal]::view-transition-old(root){z-index:1;animation:none}:root[data-route-reveal]::view-transition-new(root){z-index:2;animation:route-reveal var(--dur-slow) var(--ease-feedback) both}@keyframes route-reveal{0%{clip-path:circle(0 at var(--route-x) var(--route-y))}to{clip-path:circle(var(--route-radius) at var(--route-x) var(--route-y))}}.brand-name,.brand-name:hover{color:var(--foreground);text-decoration:none}.avatar-secret{display:inline-flex;position:relative}.avatar-secret-button{background:var(--transparent);border:0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:-8px;padding:8px;display:inline-flex;overflow:visible}.avatar-secret-button .brand-mark{outline:none}.avatar-secret-hint{z-index:60;white-space:nowrap;position:absolute;top:40px;left:-8px}.avatar-secret-hint>span{border:1px solid var(--border-ui);background:var(--surface);color:var(--foreground);letter-spacing:0;animation:secret-hello var(--dur-base) var(--ease-feedback);border-radius:4px 16px 16px;padding:9px 14px;font-size:13px;font-weight:400;display:block}@keyframes secret-hello{0%{opacity:0;transform:translateY(-5px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}:root{--font-serif:"Songti SC","Noto Serif SC","Source Han Serif SC","SimSun",serif;--font-hand:"LXGW WenKai","Kaiti SC","KaiTi","STKaiti",cursive;--background:#101426;--surface:#171e35;--surface-2:#202943;--foreground:#e2e6f3;--muted:#a0abc8;--border:#7a94d657;--border-ui:#65759b;--accent:#7a94d6;--highlight:#9db9fd;--secondary:#cdafbe;--selection-background:#263456;--code-background:#0e1226;--code-foreground:#dae2fc;--code-comment:#8d9bc0;--code-blue:#a6bef2;--code-violet:#b9aaf2;--code-rose:#d8a7c3;--transparent:transparent;--theme-color-scheme:dark;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.6s;--dur-route:80ms;--ease-feedback:cubic-bezier(.2,0,0,1);--card-feedback-border:var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--card-feedback-border:color-mix(in srgb,var(--accent) 40%,transparent)}}:root{color-scheme:var(--theme-color-scheme)}:root[data-theme=light]{--background:#eef0f7;--surface:#f3f5fa;--surface-2:#f8f9fc;--foreground:#26314b;--muted:#56617d;--border:#b0b9d2;--border-ui:#7a859f;--accent:#445a97;--highlight:#2f447f;--secondary:#785d6b;--selection-background:#dbe3f8;--theme-color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.75}::selection{background:var(--selection-background);color:var(--foreground)}a{color:var(--accent);text-underline-offset:.25em;transition:color var(--dur-fast) var(--ease-feedback),text-decoration-color var(--dur-fast) var(--ease-feedback);text-decoration:none}a:hover{color:var(--highlight);text-decoration:underline;-webkit-text-decoration-color:var(--secondary);text-decoration-color:var(--secondary);text-decoration-thickness:1px}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:2px}a,button{-webkit-tap-highlight-color:var(--transparent)}button{color:inherit}.post-row,a,button{touch-action:manipulation}:is(button,.nav-link,.pill,.post-row){--press-scale:1;transform:translateY(var(--card-lift,0)) scale(var(--press-scale));transition:transform var(--dur-fast) var(--ease-feedback),border-color var(--dur-fast) var(--ease-feedback),color var(--dur-fast) var(--ease-feedback),text-decoration-color var(--dur-fast) var(--ease-feedback)}:is(button,.nav-link,.pill,.post-row).is-key-pressed,:is(button,.nav-link,.pill,.post-row):active{--press-scale:.97}:is(button,.nav-link,.pill){isolation:isolate;position:relative;overflow:hidden}.nav-link{display:inline-block}.ripple{left:var(--rx);top:var(--ry);width:var(--ripple-size);height:var(--ripple-size);background:var(--accent);pointer-events:none;z-index:-1;opacity:.18;animation:ripple-spread var(--dur-slow) var(--ease-feedback) forwards;border-radius:50%;position:absolute;transform:translate(-50%,-50%)scale(0)}@keyframes ripple-spread{0%{opacity:.18;transform:translate(-50%,-50%)scale(0)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}svg{flex-shrink:0}.shell{width:min(1120px,100% - 80px);margin-inline:auto}.site-main{min-height:calc(100svh - 220px);padding-bottom:100px}.skip-link{z-index:50;background:var(--foreground);color:var(--background);padding:10px 20px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.eyebrow{letter-spacing:.08em;font-size:12px;font-weight:500}.eyebrow,.muted{color:var(--muted)}.text-link{color:var(--accent);font-size:14px}.text-link:hover{color:var(--highlight);text-decoration:underline}.section-heading{justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:22px;display:flex}.section-heading h2{letter-spacing:-.04em;font-size:20px;font-weight:600}.page-heading{padding:70px 0 40px}.page-heading h1{font-family:var(--font-serif);letter-spacing:-.01em;margin:12px 0;font-size:clamp(36px,6vw,52px);font-weight:500;line-height:1.35}.page-heading p{color:var(--muted);max-width:58ch}.pill{background:var(--transparent);border:1px solid var(--border);border-radius:5px;align-items:center;gap:6px;padding:3px 11px;font-size:12px;line-height:1.7;display:inline-flex}.pill,a.pill:hover{color:var(--secondary)}a.pill:hover{border-color:var(--accent)}.pill[aria-current=page]{background:var(--surface-2);color:var(--secondary);border-color:var(--secondary)}:where(.theme-anim *):after,:where(.theme-anim *):before,:where(.theme-anim *):not(.theme-icon),:where(.theme-anim){transition:background-color var(--dur-base) var(--ease-feedback),color var(--dur-base) var(--ease-feedback),border-color var(--dur-base) var(--ease-feedback)!important}:where(.theme-anim) :is(button,.nav-link,.pill,.post-row){transition:transform var(--dur-fast) var(--ease-feedback),background-color var(--dur-base) var(--ease-feedback),color var(--dur-base) var(--ease-feedback),border-color var(--dur-base) var(--ease-feedback),text-decoration-color var(--dur-fast) var(--ease-feedback)!important}.nav-indicator{transition:transform var(--dur-base) var(--ease-feedback),opacity var(--dur-base) var(--ease-feedback)!important}.route-fade[data-route-enter]{animation:route-enter var(--dur-base) var(--ease-feedback)}@keyframes route-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}[data-hush=on]{scroll-behavior:auto!important}:root[data-hush=on]::view-transition-new(root){animation:none!important}[data-hush=on] *,[data-hush=on] :after,[data-hush=on] :before{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (max-width:640px){:root{--mobile-nav-height:52px;--mobile-nav-gap:10px}body{padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px))}.shell{width:calc(100% - 40px)}.site-main{padding-bottom:60px}.page-heading{padding-top:42px}.eyebrow{letter-spacing:.08em;font-size:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}:root,:root *,:root :after,:root :before{transition-property:color,background-color,border-color,text-decoration-color!important;transition-duration:0s!important;animation:none!important}.post-arrow,.theme-icon,:is(button,.nav-link,.pill,.post-row){transform:none!important}.nav-indicator{transition:none!important}.comment-remember:active .comment-remember-box{transform:none}.route-fade{animation:none!important;transform:none!important}:root::view-transition-new(root){animation:none!important}.entry-illustration,.entry-title-stack,.home-entry,.home-entry-content{transform:none!important}.ripple{display:none!important}}@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-font-weight{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}