*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--bg)}html,body{background-color:var(--bg);overflow-x:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:root{--bg:#f7f7f7;--bg-gradient-start:#f7f7f7;--bg-gradient-end:#f0f0f0;--text-primary:#111;--text-secondary:#5f6368;--text-tertiary:#6b7280;--text-status:#6b7280;--text-accent:#d81b60;--text-powder-blue:#4f79d1;--text-sea-glass-teal:#2f8f8b;--text-heading-accent:#4f79d1;--text-quote:#2f8f8b;--text-body:#2f3337;--border:#e5e7eb;--heading-accent:#7a5bd6;--accent-lavender:#8a63d2;--accent-sage:#4f8a68;--accent-blue:#4f79d1;--accent-peach:#d9744d;--accent-butter:#c79a1f;--accent-coral:#d96672;--accent-teal:#2f8f8b;--accent-rose:#d81b60}@media (prefers-color-scheme:dark){:root{--bg:#111;--bg-gradient-start:#0a0a0a;--bg-gradient-end:#1a1a1a;--text-primary:#ececec;--text-secondary:#a8aeb6;--text-tertiary:#7e8791;--text-status:#9ba2ab;--text-accent:#f199b7;--text-powder-blue:#c5dcff;--text-sea-glass-teal:#aaf1e8;--text-heading-accent:#c5dcff;--text-quote:#aaf1e8;--text-body:#d7dbe0;--border:#333;--heading-accent:#c7a8ff;--accent-lavender:#c8a8ff;--accent-sage:#c3edcd;--accent-blue:#c5dcff;--accent-peach:#ffcfb5;--accent-butter:#fff0ad;--accent-coral:#ffb7bd;--accent-teal:#aaf1e8;--accent-rose:#f199b7}}[data-theme=light]{--bg:#f7f7f7;--bg-gradient-start:#f7f7f7;--bg-gradient-end:#f0f0f0;--text-primary:#111;--text-secondary:#5f6368;--text-tertiary:#6b7280;--text-status:#6b7280;--text-accent:#d81b60;--text-powder-blue:#4f79d1;--text-sea-glass-teal:#2f8f8b;--text-heading-accent:#4f79d1;--text-quote:#2f8f8b;--text-body:#2f3337;--border:#e5e7eb;--heading-accent:#7a5bd6;--accent-lavender:#8a63d2;--accent-sage:#4f8a68;--accent-blue:#4f79d1;--accent-peach:#d9744d;--accent-butter:#c79a1f;--accent-coral:#d96672;--accent-teal:#2f8f8b;--accent-rose:#d81b60}[data-theme=dark]{--bg:#111;--bg-gradient-start:#0a0a0a;--bg-gradient-end:#1a1a1a;--text-primary:#ececec;--text-secondary:#a8aeb6;--text-tertiary:#7e8791;--text-status:#9ba2ab;--text-accent:#f199b7;--text-powder-blue:#c5dcff;--text-sea-glass-teal:#aaf1e8;--text-heading-accent:#c5dcff;--text-quote:#aaf1e8;--text-body:#d7dbe0;--border:#333;--heading-accent:#c7a8ff;--accent-lavender:#c8a8ff;--accent-sage:#c3edcd;--accent-blue:#c5dcff;--accent-peach:#ffcfb5;--accent-butter:#fff0ad;--accent-coral:#ffb7bd;--accent-teal:#aaf1e8;--accent-rose:#f199b7}body{width:100%;color:var(--text-primary);background:0 0;min-height:100dvh;margin:0;padding:80px 60px 40px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:1.6;transition:background-color .3s,color .3s;position:relative}main{width:100%;max-width:600px;margin:0 auto}@supports (-webkit-touch-callout:none){html,body{min-height:-webkit-fill-available}}@media (width>=768px){body{align-items:flex-start;padding-top:80px;padding-bottom:40px;display:flex}body.blog-page{padding-top:56px}main{width:100%}}body:before{content:"";background:var(--bg);z-index:-2;pointer-events:none;position:fixed;inset:-2px}body:after{content:"";opacity:.03;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;position:fixed;inset:-2px}@media (prefers-color-scheme:light){body:after{opacity:.02}}html[data-theme=light] body:after{opacity:.02}html[data-theme=dark] body:after{opacity:.03}body.blog-page:after{opacity:.01}html[data-theme=dark] body.blog-page:after{opacity:.015}h1,.status,.status-line,.row,.row span,.row a,.util-btn,.qr-panel,.qr-url,.location-name{transition:background-color .3s,color .3s,border-color .3s}h1{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:400}.contact-link{color:var(--text-tertiary);margin-bottom:32px;font-size:13px;text-decoration:none;display:block}.contact-link:hover{color:var(--text-primary)}.tabs{align-items:center;gap:0;margin-top:48px;margin-bottom:32px;display:flex}.tab{letter-spacing:.5px;cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;border-bottom:1px solid #0000;padding:2px 0;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s}.tab:hover{color:var(--text-secondary)}.tab.active{border-bottom-color:#0000}.tab:focus{outline:none}.tab-separator{color:var(--text-tertiary);letter-spacing:.5px;user-select:none;margin:0 8px;font-size:13px}.tab-panels{min-height:120px}.tab-panel{display:none}.tab-panel.active{padding-bottom:80px;display:block}body.rows-animated .tab-panel .row{opacity:0;transform:translateY(-8px)}body.rows-animated .tab-panel .row.visible{animation:.5s forwards slideFadeIn}.h1-decoration{color:var(--text-tertiary);cursor:pointer;margin-left:6px}.h1-decoration .char{opacity:0;animation:.4s forwards charFadeIn;display:inline-block}@keyframes charFadeIn{0%{opacity:0}to{opacity:1}}.line-left{padding-left:14px;position:relative}.line-left:before{content:"";background:var(--text-tertiary);transform-origin:top;width:1px;animation:.6s .15s forwards lineGrow;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.status.line-left:before{top:12px;bottom:32px}@keyframes lineGrow{to{transform:scaleY(1)}}.status{margin-bottom:0;padding-top:12px;padding-bottom:32px}.status.status-plain{padding-left:0}.status.status-plain:before{display:none}.status.status-plain .status-line a{align-items:center;gap:4px;font-size:12px;display:inline-flex}.back-icon-svg{flex-shrink:0;width:14px;height:14px}@keyframes borderGrow{to{height:100%}}.status-header,.status-line{opacity:0;transform:translateY(-8px)}.status-header.visible,.status-line.visible{animation:.5s forwards slideFadeIn}.status-header{color:var(--text-status);margin-bottom:2px;font-size:14px;line-height:1.25}.status-line{color:var(--text-status);font-size:14px;line-height:1.25}.location-name{color:var(--text-accent);cursor:pointer;text-decoration:none}.location-name:hover{color:var(--text-accent);text-decoration:none}.weather-icon{vertical-align:middle;opacity:0;width:20px;height:20px;margin-top:-4px;margin-left:-4px;transition:opacity .5s;display:inline-block}.weather-icon.loaded{opacity:1}nav{flex-direction:column;margin-bottom:16px;transition:opacity .2s;display:flex}.row{align-items:baseline;min-height:36px;padding:10px 0;display:flex}body.rows-animated .row.visible{animation:.5s forwards slideFadeIn}@keyframes slideFadeIn{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.row,.status-header,.status-line{opacity:1;transform:none}.row.visible,.status-header.visible,.status-line.visible{animation:none}.line-left:before{animation:none;transform:none}body:before,body:after{animation:none}.sig-text{clip-path:none;animation:none}.h1-decoration .char{opacity:1;animation:none}}.row span{flex-shrink:0;width:35%;padding-right:24px}.row .row-label,.row>.row-label:last-child{color:var(--text-primary)}.row .row-value,.row>span:last-child,.row a{color:var(--text-secondary);font-family:inherit;font-size:14px;font-weight:400;line-height:1.4}.row .row-value{flex:1;width:auto}.row a{text-decoration:none;position:relative}.music-row{cursor:pointer}.music-row .row-label{text-wrap:balance;width:200px;min-width:200px;max-width:200px}.music-row .music-short{flex-shrink:1;width:auto;padding-right:8px}.music-right{min-width:0;color:var(--text-secondary);flex-direction:column;flex:1;display:flex}.music-summary{align-items:center;display:inline-flex}.music-short{color:var(--text-secondary)}.music-play{width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:-9px;padding:0;display:inline-flex}.music-play:hover{color:var(--text-secondary)}.music-play:focus{outline:none}.music-play svg{cursor:pointer;width:14px;height:14px}.music-play .icon-pause,.music-row.is-playing .music-play .icon-play{display:none}.music-row.is-playing .music-play .icon-pause{display:block}.music-expand{max-width:500px;margin:0;padding:12px 0 8px}.music-expand p{color:var(--text-secondary);margin:0 0 14px;line-height:1.5}.music-expand a{color:var(--text-tertiary);text-decoration:none}.music-expand a:hover{color:var(--text-secondary);text-decoration:underline}.music-expand a:after{content:none}.row a[target=_blank]:after{content:"↗";color:inherit;opacity:0;margin-left:4px;font-size:.85em;transition:opacity .15s,transform .15s;position:absolute;transform:translate(-4px)}.row:hover a[target=_blank]:after{opacity:1;transform:translate(0)}@media (width<=480px){.row a[target=_blank]:after{opacity:.55;transform:translate(0)}html[data-theme=dark] .row a[target=_blank]:after,[data-theme=dark] .row a[target=_blank]:after{opacity:.82}}.row a:hover{text-decoration:underline}.row .post-lock{vertical-align:-2px;width:12px;height:12px;color:var(--text-accent);margin-right:5px}.row .post-title-text,.row .post-reading-time{width:auto;padding-right:0}.row .post-reading-time{color:var(--text-tertiary);margin-left:1ch;text-decoration:none;display:inline-block}.row a:has(.post-title-text):hover{text-decoration:none}.row a:has(.post-title-text):hover .post-title-text{text-decoration:underline}@media (prefers-color-scheme:dark){.row .post-reading-time{color:#6d707d}}[data-theme=dark] .row .post-reading-time{color:#6d707d}[data-theme=light] .row .post-reading-time{color:var(--text-tertiary)}.section-header{letter-spacing:1px;color:var(--text-tertiary);border:none;min-height:auto;margin-top:32px;padding-bottom:4px;font-size:11px}.section-header:first-child{margin-top:0}.section-header .resume-link{color:var(--text-tertiary);font-size:inherit;letter-spacing:inherit;text-transform:inherit;text-decoration:none}.section-header .resume-link:hover{text-decoration:underline}.section-header .resume-link:after{content:"↗";opacity:1;margin-left:2px;display:inline-block;transform:translate(0)}.censored{color:var(--text-secondary);filter:blur(3.5px);user-select:none;pointer-events:none}.source-icon{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;font-weight:500}@media (width<=480px){body{padding:40px 30px 20px}.tabs{margin-top:32px;margin-bottom:28px}.row{flex-direction:column;align-items:stretch;gap:2px}.row span{width:100%;padding-right:0}.section-header{flex-direction:row;align-items:baseline;gap:0;padding-top:0}.section-header:first-child{padding-top:10px}.music-row .row-label{text-wrap:nowrap}.music-right{width:100%}.music-expand{margin:0;padding:8px 0 4px}.row a{color:var(--text-secondary)}}body:not(.feature-global-player-enabled) .music-play{display:none!important}body:not(.feature-global-player-enabled) .music-summary{justify-content:flex-start}body.feature-global-player-enabled .global-player{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;background:color-mix(in srgb, var(--bg) 92%, transparent);border:1px solid var(--border);backdrop-filter:blur(8px);box-shadow:0 6px 20px color-mix(in srgb, var(--text-primary) 10%, transparent);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;transition:transform .18s,opacity .18s,border-color .16s;display:grid;position:fixed}body.feature-global-player-enabled .global-player__left{align-items:center;gap:8px;min-width:0;display:flex}body.feature-global-player-enabled .global-player__control,body.feature-global-player-enabled .global-player__close{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:8px;min-width:30px;height:30px;transition:border-color .15s,background-color .15s,transform .15s}body.feature-global-player-enabled .global-player__control:hover,body.feature-global-player-enabled .global-player__close:hover{border-color:var(--text-secondary);transform:translateY(-1px)}body.feature-global-player-enabled .global-player__control:focus,body.feature-global-player-enabled .global-player__close:focus{outline:none}body.feature-global-player-enabled .gp-icon--pause,body.feature-global-player-enabled #globalPlayerPlay.is-playing .gp-icon--play{display:none}body.feature-global-player-enabled #globalPlayerPlay.is-playing .gp-icon--pause{display:inline}body.feature-global-player-enabled .global-player__meta{flex-direction:column;min-width:0;display:flex}body.feature-global-player-enabled .global-player__title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}body.feature-global-player-enabled .global-player__sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}body.feature-global-player-enabled .global-player__right{align-items:center;gap:8px;display:flex}body.feature-global-player-enabled .global-player__time{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:12px}body.feature-global-player-enabled .global-player__seek{width:100%;accent-color:var(--text-primary);grid-column:1/-1}body.feature-global-player-enabled.has-global-player .utility-buttons{bottom:calc(94px + env(safe-area-inset-bottom,0px))}body.feature-global-player-enabled .tab-panel{opacity:0;transition:transform .17s,opacity .17s;transform:translateY(4px)}body.feature-global-player-enabled .tab-panel.active{opacity:1;transform:translateY(0)}.utility-buttons{bottom:calc(20px + env(safe-area-inset-bottom,0px));right:calc(20px + env(safe-area-inset-right,0px));gap:10px;display:flex;position:fixed}@media (width<=768px){body.blog-page .utility-buttons{transition:opacity .22s,transform .22s}body.blog-page .utility-buttons.scroll-hidden{opacity:0;pointer-events:none;transform:translateY(16px)}}.util-btn{background:var(--bg);border:1px solid var(--border);cursor:pointer;width:44px;height:44px;color:var(--text-primary);border-radius:100%;justify-content:center;align-items:center;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:flex}@media (hover:hover){.util-btn:hover{border-color:var(--text-secondary)}}.util-btn:focus{outline:none}.icon-sun{display:none}.icon-moon{display:block}@media (prefers-color-scheme:dark){.icon-sun{display:block}.icon-moon{display:none}}[data-theme=light] .icon-sun{display:none}[data-theme=light] .icon-moon,[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}.util-btn.active{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary)}@media (hover:hover){.util-btn.active:hover{border-color:var(--text-primary)}}nav.hidden{display:none}.qr-panel{opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:48px 0;display:none;transform:translateY(-8px)}.qr-panel.visible{animation:.3s forwards slideFadeIn;display:flex}.qr-panel.hiding{animation:.3s forwards slideUpFadeOut;display:flex}@keyframes slideUpFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.qr-card{border-radius:16px}@media (prefers-color-scheme:dark){.qr-card{background:#f5f0eb;padding:24px;box-shadow:0 2px 12px #00000026}}[data-theme=dark] .qr-card{background:#f5f0eb;padding:24px;box-shadow:0 2px 12px #00000026}[data-theme=light] .qr-card{box-shadow:none;background:0 0;padding:0}.qr-code{justify-content:center;align-items:center;width:240px;height:240px;display:flex}.qr-code svg{width:100%;height:100%}.qr-url{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;text-align:center;max-width:280px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;overflow:hidden}.finances-nav{flex-direction:column;margin-bottom:32px;transition:opacity .2s;display:flex}.finances-nav.hidden{display:none}.finances-nav .row{cursor:pointer;-webkit-tap-highlight-color:transparent}.finances-nav .row>span:first-child{flex-shrink:0;width:45%;padding-right:12px}.value-with-copy{flex-shrink:1;align-items:center;gap:6px;display:inline-flex;width:auto!important;padding-right:0!important}.copyable-value{white-space:nowrap;flex-shrink:1;color:var(--text-secondary)!important;width:auto!important;padding-right:0!important}.copy-btn{cursor:pointer;width:16px;height:16px;color:var(--text-tertiary);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;top:-1px}.copy-btn:hover{color:var(--text-secondary)}.copy-btn:focus{outline:none}.copy-btn:active{color:var(--text-tertiary)}.copy-btn .copy-icon{display:block}.copy-btn .check-icon{color:#22c55e;display:none}.copy-btn.copied .copy-icon{display:none}.copy-btn.copied .check-icon{display:block}@media (width<=480px){.finances-nav .row{flex-direction:column;align-items:stretch;gap:2px;padding:14px 0}.finances-nav .row>span:first-child{width:100%;padding-right:0}.copyable-value{font-size:12px}}.signature-spine{right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(80px + env(safe-area-inset-bottom,0px));writing-mode:vertical-lr;cursor:pointer;z-index:10;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:8px 0;position:fixed;transform:rotate(180deg)}.sig-text{color:var(--text-tertiary);letter-spacing:.5px;white-space:nowrap;clip-path:inset(0 0 100%);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:12px;transition:color .15s;animation:.8s .5s forwards revealUpward;display:inline-block}@keyframes revealUpward{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}.signature-spine:hover .sig-text{color:var(--text-secondary)}.signature-spine:focus{outline:none}.signature-spine.active .sig-text{color:var(--text-primary)}.signature-panel{opacity:0;flex-direction:column;justify-content:center;align-items:flex-start;padding:24px 0;display:none;transform:translateY(-8px)}.signature-panel.visible{animation:.5s forwards slideFadeIn;display:flex}.signature-panel.hiding{animation:.5s forwards slideUpFadeOut;display:flex}.signature-message{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.7}.signature-divider{background:var(--border);width:100%;height:1px;margin:20px 0}.signature-panel .signature-divider:first-child{margin-top:0}.signature-full{color:var(--text-tertiary);word-break:break-all;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;display:block}@media (width<=480px){.signature-spine{right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(72px + env(safe-area-inset-bottom,0px))}.sig-text{font-size:10px}.signature-message{font-size:12px}}.page-label{color:var(--text-secondary);margin-bottom:0;font-size:13px}.blog-page .status{padding-top:4px}.reading-progress{top:env(safe-area-inset-top,0px);z-index:50;pointer-events:none;height:2px;position:fixed;left:0;right:0}.reading-progress-bar{background:var(--text-accent);width:0;height:100%;box-shadow:0 0 5px var(--text-accent), 0 0 10px color-mix(in srgb, var(--text-accent) 50%, transparent);will-change:width;border-radius:0 1px 1px 0;transition:width 80ms linear,border-radius .15s}.reading-progress-bar.is-complete{border-radius:0}@media (prefers-reduced-motion:reduce){.reading-progress-bar{transition:none}}.status-bar-haze{height:env(safe-area-inset-top,0px);z-index:49;pointer-events:none;-webkit-backdrop-filter:blur();transition:-webkit-backdrop-filter .24s,backdrop-filter .24s;position:fixed;top:0;left:0;right:0}.status-bar-haze:before{content:"";background:var(--bg);opacity:0;pointer-events:none;transition:opacity .24s;position:absolute;inset:0}.status-bar-haze.scrolled{-webkit-backdrop-filter:blur(10px)saturate(140%)}.status-bar-haze.scrolled:before{opacity:.65}@media (prefers-reduced-motion:reduce){.status-bar-haze,.status-bar-haze:before{transition:none}}@media (width<=767.98px){body.blog-page{padding-top:calc(80px + env(safe-area-inset-top,0px))}}.blog-post{max-width:68ch;margin-bottom:56px}.blog-photo-wrap{max-width:72%;margin:28px auto}.blog-photo-wrap.photo-pair-wrap{max-width:88%}.photo-pair-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.photo-pair-img{aspect-ratio:4/3;object-fit:cover;width:100%}.photo-pair-caption{text-align:center;color:var(--text-secondary);margin-top:8px;font-size:12px}.blog-photo-wrap.portrait-photo{max-width:62%}.blog-photo-wrap.portrait-photo .blog-photo{aspect-ratio:4/5;object-fit:cover;max-height:520px}.blog-photo-wrap.ryan-photo,.blog-photo-wrap.demo-photo{max-width:72%}.blog-photo-wrap.demo-photo.portrait-photo{max-width:62%}.blog-photo{border-radius:10px;width:100%;height:auto;display:block}@media (width<=768px){.blog-photo-wrap{max-width:80%}.blog-photo-wrap.photo-pair-wrap{max-width:90%}.photo-pair-grid{gap:8px}.blog-photo-wrap.portrait-photo{max-width:72%}.blog-photo-wrap.ryan-photo,.blog-photo-wrap.demo-photo{max-width:80%}.blog-photo-wrap.demo-photo.portrait-photo{max-width:72%}.blog-photo-wrap.portrait-photo .blog-photo{max-height:420px}}.blog-post>header,.blog-post>section{opacity:0;transform:translateY(-8px)}.blog-post>header.visible,.blog-post>section.visible{animation:.45s forwards slideFadeIn}.blog-post h1{color:var(--text-primary);margin:0 0 4px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:26px;font-weight:750;line-height:1.2}.blog-post h2{color:var(--text-heading-accent);margin:32px 0 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:17px;font-weight:600;line-height:1.3}.blog-post>section:first-of-type h2{margin-top:0}.blog-post h3{color:var(--text-primary);margin:18px 0 8px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:15px;font-weight:600;line-height:1.35}.blog-post h3 .num{color:var(--text-primary)}.blog-post .post-meta{color:var(--text-secondary);margin:0 0 28px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.4}.blog-post .post-note{color:var(--text-secondary);margin:0 0 28px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.35}.blog-post p,.blog-post li{color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.55}.blog-post p{margin:0 0 12px}.blog-post ul,.blog-post ol{margin:8px 0 14px 22px;padding:0}.blog-post li{margin:0 0 6px;line-height:1.55}.blog-post li>ul,.blog-post li>ol{margin-top:8px;margin-bottom:8px}.blog-post a{color:var(--text-accent);text-underline-offset:2px;text-decoration:underline 1px}.blog-post strong{color:var(--text-primary);font-weight:600}.blog-post code{background:color-mix(in srgb, var(--text-tertiary) 15%, transparent);color:var(--text-primary);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.9em}.blog-post .quoted{color:var(--text-quote);background:color-mix(in srgb, var(--text-quote) 10%, transparent);border-radius:4px;padding:0 3px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1.08rem;line-height:1.62}.blog-post .highlight{color:var(--accent-sage);background:color-mix(in srgb, var(--accent-sage) 12%, transparent);border-radius:4px;padding:0 3px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1.08rem;line-height:1.62}.blog-post .my-take{color:var(--accent-rose);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1.08rem;font-style:italic;line-height:1.62}.blog-post .quoted+.my-take{margin-left:.35em}.blog-prose .blog-post p,.blog-prose .blog-post li{color:color-mix(in srgb, var(--text-primary) 88%, var(--bg) 12%);font-size:1.08rem;font-weight:400;line-height:1.62}.blog-prose .blog-post .post-note,.blog-prose .blog-post .post-meta{color:var(--text-secondary)}.blog-prose .blog-post .post-meta{font-size:13px}.blog-prose .blog-post .post-note{font-size:12px}.blog-prose .blog-post h1{color:var(--text-primary)}.blog-prose .blog-post h2{color:var(--heading-accent);margin-top:36px;margin-bottom:14px;font-size:22px;font-weight:750;line-height:1.25;position:relative}.blog-prose .blog-post h2:before{content:"";transform-origin:50%;filter:drop-shadow(0 0 3px)drop-shadow(0 0 6px);opacity:.42;pointer-events:none;background-color:currentColor;width:56px;height:56px;position:absolute;top:-31px;left:-32px;transform:rotate(14deg);-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' shape-rendering='crispEdges'><g fill='%23fff'><rect x='10' y='2' width='1' height='21'/><rect x='0' y='12' width='21' height='1'/><rect x='9' y='8' width='3' height='9'/><rect x='6' y='11' width='9' height='3'/><rect x='8' y='10' width='5' height='5'/><rect x='19' y='3' width='1' height='5'/><rect x='17' y='5' width='5' height='1'/></g></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' shape-rendering='crispEdges'><g fill='%23fff'><rect x='10' y='2' width='1' height='21'/><rect x='0' y='12' width='21' height='1'/><rect x='9' y='8' width='3' height='9'/><rect x='6' y='11' width='9' height='3'/><rect x='8' y='10' width='5' height='5'/><rect x='19' y='3' width='1' height='5'/><rect x='17' y='5' width='5' height='1'/></g></svg>");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media (width<=480px){.blog-prose .blog-post h2:before{width:38px;height:38px;top:-14px;left:-22px}}.blog-prose .blog-post h3{color:var(--text-primary);margin-top:28px;margin-bottom:12px;font-size:18px;font-weight:750;line-height:1.3}.blog-prose .blog-post .question{color:var(--text-primary);margin-top:2.1rem;margin-bottom:.9rem;font-size:1.08rem;font-weight:800;line-height:1.35}.blog-prose .blog-post .question>strong{color:inherit;font-weight:inherit}.blog-prose .blog-post strong{color:var(--text-primary);font-weight:800}.blog-prose .blog-post .quoted{background:color-mix(in srgb, var(--text-quote) 16%, transparent);border-radius:.18em;padding:.02em .12em}.blog-prose .blog-post .highlight{background:color-mix(in srgb, var(--accent-sage) 18%, transparent)}.link-confirm{background:var(--bg);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;width:min(420px,100vw - 32px);max-width:none;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.link-confirm::backdrop{-webkit-backdrop-filter:blur(2px);background:#0006}@media (prefers-color-scheme:dark){.link-confirm::backdrop{background:#0009}}[data-theme=dark] .link-confirm::backdrop{background:#0009}[data-theme=light] .link-confirm::backdrop{background:#0006}.link-confirm-inner{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.link-confirm-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.link-confirm-body{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.45}.link-confirm-url{color:var(--text-primary);word-break:break-all;margin:0;font-size:13px;line-height:1.45}.link-confirm-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.link-confirm-btn{background:var(--bg);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:13px;transition:border-color .15s,background-color .15s,color .15s,opacity .15s}.link-confirm-btn:hover{border-color:var(--text-secondary)}.link-confirm-btn:focus{border-color:var(--text-secondary);outline:none}.link-confirm-confirm{background:var(--accent-rose);color:var(--bg);border-color:var(--accent-rose)}.link-confirm-confirm:hover{border-color:var(--accent-rose);opacity:.85}@media (prefers-reduced-motion:reduce){.blog-post>header,.blog-post>section{opacity:1;transform:none}.blog-post>header.visible,.blog-post>section.visible{animation:none}}.ack-modal{background:var(--bg);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;width:min(420px,100vw - 32px);max-width:none;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.ack-modal::backdrop{-webkit-backdrop-filter:blur(6px);background:#0000008c}@media (prefers-color-scheme:dark){.ack-modal::backdrop{background:#000000b3}}[data-theme=dark] .ack-modal::backdrop{background:#000000b3}[data-theme=light] .ack-modal::backdrop{background:#0000008c}.ack-modal-inner{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.ack-modal-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.ack-modal-body{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.ack-modal-check{color:var(--text-primary);cursor:pointer;user-select:none;align-items:flex-start;gap:8px;font-size:13px;display:flex}.ack-modal-check input[type=checkbox]{-webkit-appearance:none;appearance:none;background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:3px;flex-shrink:0;place-content:center;width:14px;height:14px;margin:2px 0 0;transition:border-color .15s,background-color .15s;display:inline-grid}.ack-modal-check input[type=checkbox]:hover{border-color:var(--text-secondary)}.ack-modal-check input[type=checkbox]:focus-visible{border-color:var(--accent-rose);outline:none}.ack-modal-check input[type=checkbox]:before{content:"";background:var(--accent-rose);border-radius:1px;width:8px;height:8px;transition:transform .1s;transform:scale(0)}.ack-modal-check input[type=checkbox]:checked{border-color:var(--accent-rose)}.ack-modal-check input[type=checkbox]:checked:before{transform:scale(1)}.ack-modal-heart{color:var(--accent-rose);vertical-align:-1px;margin-left:5px}.ack-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.ack-modal-btn{background:var(--bg);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:13px;transition:border-color .15s,background-color .15s,color .15s,opacity .15s}.ack-modal-btn:hover{border-color:var(--text-secondary)}.ack-modal-btn:focus{border-color:var(--text-secondary);outline:none}.ack-modal-confirm{background:var(--accent-rose);color:var(--bg);border-color:var(--accent-rose)}.ack-modal-confirm:hover{border-color:var(--accent-rose);opacity:.85}.ack-modal-confirm:disabled{background:var(--bg);color:var(--text-tertiary);border-color:var(--border);cursor:not-allowed;opacity:1}.ack-modal-confirm:disabled:hover{border-color:var(--border);opacity:1}.blog-post h2[id]{scroll-margin-top:24px}.blog-divider{border:none;border-top:1px solid color-mix(in srgb, var(--text-tertiary) 40%, transparent);margin:40px 0}.blog-subscribe{border-top:1px solid color-mix(in srgb, var(--text-tertiary) 34%, transparent);margin:44px 0 36px;padding:28px 0 30px}.blog-subscribe-no-rule{border-top:0;margin-bottom:0;padding:20px 0 0}.blog-post .blog-subscribe-copy p{color:var(--text-secondary);margin-bottom:16px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.5}.blog-subscribe-form{flex-direction:column;gap:8px;display:flex}.blog-subscribe-slot{min-height:42px}.blog-subscribe-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px;display:grid}.blog-subscribe-row[hidden]{display:none}.blog-subscribe-input,.blog-subscribe-button{border:1px solid var(--border);border-radius:7px;min-height:42px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:13px}.blog-subscribe-input{width:100%;min-width:0;color:var(--text-primary);background:0 0;padding:10px 12px}.blog-subscribe-input::placeholder{color:var(--text-tertiary)}.blog-subscribe-input:focus{border-color:var(--text-accent);outline:none}.blog-subscribe-button{background:var(--accent-rose);border-color:var(--accent-rose);color:var(--bg);cursor:pointer;justify-content:center;align-items:center;min-width:106px;padding:10px 16px;transition:opacity .15s,border-color .15s;display:inline-flex}.blog-subscribe-button:hover,.blog-subscribe-button:focus-visible{border-color:var(--text-accent);opacity:.86;outline:none}.blog-subscribe-button:disabled{cursor:default;opacity:.62}.blog-subscribe-spinner,.blog-subscribe-button.is-loading .blog-subscribe-button-label{display:none}.blog-subscribe-button.is-loading .blog-subscribe-spinner{animation:.6s linear infinite blogSubscribeSpin;display:inline-block}@keyframes blogSubscribeSpin{to{transform:rotate(360deg)}}.blog-post .blog-subscribe .blog-subscribe-success{min-height:inherit;color:var(--accent-sage);text-align:left;justify-content:flex-start;align-items:center;margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:13px;font-weight:400;line-height:1.4;display:flex}.blog-post .blog-subscribe .blog-subscribe-success[hidden]{display:none}.blog-post .blog-subscribe-message{min-height:22px;color:var(--text-secondary);margin:2px 0 0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.4}.blog-post .blog-subscribe-message[data-state=success]{color:var(--accent-sage);font-size:12px}.blog-post .blog-subscribe-message[data-state=error]{color:var(--accent-rose);font-size:13px;font-weight:400}.blog-subscribe-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}@media (width<=520px){.blog-subscribe{margin:38px 0 30px;padding:24px 0 26px}.blog-subscribe-row{grid-template-columns:1fr}.blog-subscribe-button{width:100%}}.blog-end{text-align:center;margin:32px 0 120px;font-size:20px}.blog-end-decoration{color:var(--text-tertiary);letter-spacing:0;user-select:none;display:block}.blog-end-char{opacity:0;display:inline-block}.blog-end.visible .blog-end-char{animation:.5s forwards charFadeIn}.blog-end-back-to-top{color:var(--text-accent);opacity:0;margin-top:44px;font-size:14px;text-decoration:none;transition:opacity .4s .4s;display:inline-block}.blog-post-footer{--blog-footer-star-gap:44px;--blog-footer-end-offset:12px;margin:44px 0 120px}.blog-post-footer .blog-subscribe{margin:0;padding-bottom:0}.blog-post-footer .blog-end{margin:var(--blog-footer-end-offset) 0 0}.blog-post-footer .blog-end-back-to-top{margin-top:var(--blog-footer-star-gap)}.blog-end.visible .blog-end-back-to-top{opacity:1}.blog-end-back-to-top:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){.blog-end-char,.blog-end-back-to-top{opacity:1;transition:none;animation:none}}@media (width<=600px){.blog-post-footer{--blog-footer-star-gap:36px;--blog-footer-end-offset:4px;margin-bottom:96px}.blog-end{margin:24px 0 96px;font-size:18px}.blog-end-back-to-top{margin-top:36px;font-size:13px}}.blog-toc{display:none}@media (width>=1000px){.blog-toc{z-index:5;opacity:0;width:160px;animation:.5s .3s forwards slideFadeIn;display:block;position:fixed;top:140px;right:calc(50% + 324px)}.blog-toc-list{margin:0;padding:0;list-style:none}.blog-toc-list li{margin:0;padding:0}.blog-toc-link{color:color-mix(in srgb, var(--text-tertiary) 70%, transparent);padding:3px 0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:13px;line-height:1.5;text-decoration:none;transition:color .15s;display:block}.blog-toc-link:hover{color:var(--text-tertiary)}.blog-toc-link.active{color:var(--text-accent)}}@media (width>=1000px) and (prefers-color-scheme:dark){.blog-toc-link.active{color:var(--heading-accent)}}@media (width>=1000px){:root[data-theme=light] .blog-toc-link.active{color:var(--text-accent)}:root[data-theme=dark] .blog-toc-link.active{color:var(--heading-accent)}}@media (width>=1000px) and (prefers-reduced-motion:reduce){.blog-toc{opacity:1;animation:none}}
