@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.email-form[data-astro-cid-vnocuw34]{margin-top:1.4rem}.email-form[data-astro-cid-vnocuw34] .row[data-astro-cid-vnocuw34]{flex-wrap:wrap;gap:10px;display:flex}.email-form[data-astro-cid-vnocuw34] input[data-astro-cid-vnocuw34][type=email]{min-width:0;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);flex:220px;padding:11px 15px;font-size:14px}.email-form[data-astro-cid-vnocuw34] input[data-astro-cid-vnocuw34][type=email]:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.email-form[data-astro-cid-vnocuw34] .privacy[data-astro-cid-vnocuw34]{margin:10px 0 0;font-size:12px}:root{--brand:#64788f;--a1:#857566;--a2:#6b7f6d;--soft:#edf1f5;--deep:#445671;--ink:#2a2d31;--ink-soft:#5d656e;--paper:#fbfaf7;--paper-alt:#f2f1ec;--btn-text:#fff;--aurora-op:.22;--web-surface:var(--paper);--web-text:var(--ink);--web-muted:var(--ink-soft);--web-line:color-mix(in srgb, var(--brand) 20%, transparent);--web-silver:color-mix(in srgb, var(--paper) 93%, var(--brand));--web-light-cyan:color-mix(in srgb, var(--brand) 52%, var(--a2));--web-light-blue:color-mix(in srgb, var(--brand) 60%, var(--paper));--web-light-violet:color-mix(in srgb, var(--brand) 75%, var(--a1));--web-mist:#60728857;--web-ripple:#4a5c7280;--web-aurora-op:.22;--font-body:"Inter", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-heading:"LXGW WenKai TC", "Kaiti TC", "BiauKai", "DFKai-SB", serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--content-width:42rem;--radius:10px}:root[data-theme=dark]{--brand:#a8d4ff;--a1:#f5c79a;--a2:#b6ecc0;--soft:#2c3f55;--deep:#d4ebff;--ink:#f2f3f5;--ink-soft:#cdd2d9;--paper:#17191d;--paper-alt:#292e37;--btn-text:#17191d;--aurora-op:.27;--web-surface:color-mix(in srgb, var(--paper) 89%, var(--brand));--web-text:color-mix(in srgb, var(--ink) 95%, var(--brand));--web-muted:color-mix(in srgb, var(--ink-soft) 83%, var(--ink));--web-line:color-mix(in srgb, var(--brand) 20%, transparent);--web-silver:color-mix(in srgb, var(--web-surface) 95%, var(--brand));--web-light-cyan:color-mix(in srgb, var(--brand) 52%, var(--a2));--web-light-blue:color-mix(in srgb, var(--brand) 60%, var(--paper));--web-light-violet:color-mix(in srgb, var(--brand) 75%, var(--a1));--web-mist:#a0bac821;--web-ripple:#b5cad147;--web-aurora-op:.15}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--brand:#a8d4ff;--a1:#f5c79a;--a2:#b6ecc0;--soft:#2c3f55;--deep:#d4ebff;--ink:#f2f3f5;--ink-soft:#cdd2d9;--paper:#17191d;--paper-alt:#292e37;--btn-text:#17191d;--aurora-op:.27;--web-surface:color-mix(in srgb, var(--paper) 89%, var(--brand));--web-text:color-mix(in srgb, var(--ink) 95%, var(--brand));--web-muted:color-mix(in srgb, var(--ink-soft) 83%, var(--ink));--web-line:color-mix(in srgb, var(--brand) 20%, transparent);--web-silver:color-mix(in srgb, var(--web-surface) 95%, var(--brand));--web-light-cyan:color-mix(in srgb, var(--brand) 52%, var(--a2));--web-light-blue:color-mix(in srgb, var(--brand) 60%, var(--paper));--web-light-violet:color-mix(in srgb, var(--brand) 75%, var(--a1));--web-mist:#a0bac821;--web-ripple:#b5cad147;--web-aurora-op:.15}}*{box-sizing:border-box}html{color-scheme:light dark;scroll-behavior:smooth}::selection{background:color-mix(in srgb, var(--brand) 26%, transparent)}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}body{scrollbar-color:color-mix(in srgb, var(--brand) 40%, transparent) transparent}.reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(14px)}.reveal.in{opacity:1;transform:none}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.85}main{max-width:var(--content-width);z-index:1;margin:0 auto;padding:2.5rem 1.25rem 5rem;position:relative}h1,h2,h3{font-family:var(--font-heading);color:var(--deep);font-weight:650;line-height:1.4}h1{margin:0 0 1.5rem;font-size:1.75rem}h2{margin:2.5rem 0 .75rem;font-size:1.3rem}h3{margin:2rem 0 .5rem;font-size:1.1rem}p{margin:0 0 1.25rem}article p,article li{color:color-mix(in srgb, var(--ink) 72%, var(--ink-soft));font-size:.95rem}a{color:var(--brand);text-decoration:none;transition:color .4s}a:hover{color:var(--deep)}article a{text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--brand) 40%, transparent);text-underline-offset:.25em}code{font-family:var(--font-mono);background:var(--paper-alt);border-radius:6px;padding:.15em .4em;font-size:.9em}pre{border-radius:var(--radius);padding:1.1rem 1.3rem;line-height:1.7;overflow-x:auto;background:linear-gradient(135deg, color-mix(in srgb, var(--paper-alt) 90%, var(--brand) 10%), color-mix(in srgb, var(--paper-alt) 92%, var(--a2) 8%))!important}pre code{background:0 0;padding:0}[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important}}details.impl{margin:.6rem 0 1.6rem}details.impl>summary{cursor:pointer;color:var(--brand);font-size:.92em;list-style:none}details.impl>summary::-webkit-details-marker{display:none}details.impl>summary:before{content:"▸";width:1.1em;transition:transform .15s;display:inline-block}details.impl[open]>summary:before{transform:rotate(90deg)}details.impl>summary:hover{text-underline-offset:.25em;text-decoration:underline}details.impl>p:first-of-type{color:var(--ink-soft);margin:.8rem 0 .4rem;font-size:.85em}@media (prefers-reduced-motion:reduce){details.impl>summary:before{transition:none}}blockquote{background:linear-gradient(120deg, color-mix(in srgb, var(--soft) 90%, var(--a1) 10%), color-mix(in srgb, var(--soft) 88%, var(--a2) 12%));color:var(--ink-soft);border-radius:55% 45% 60% 40%/45% 55% 40% 60%;margin:1.5rem 0;padding:.1rem 1.3rem}.post-body>blockquote:first-child{color:var(--ink-soft);background:0 0;border-radius:0;margin:0 0 1.75rem;padding:0;font-size:.9rem;font-style:italic}.stain{background:color-mix(in srgb, var(--soft) 80%, var(--brand) 6%);filter:drop-shadow(0 0 14px color-mix(in srgb, var(--brand) 12%, transparent));border-radius:58% 42% 50% 50%/42% 52% 48% 58%;margin:1.75rem 0;padding:1.1rem 1.4rem;transition:background .6s,border-radius 1.4s;position:relative}.stain:hover{background:color-mix(in srgb, var(--soft) 70%, var(--brand) 14%);border-radius:46% 54% 58% 42%/54% 44% 56% 46%}.btn{background:color-mix(in srgb, var(--soft) 82%, var(--brand) 10%);color:var(--deep);border-radius:999px;padding:.5em 1.3em;font-size:.95rem;transition:background .5s,color .5s;display:inline-block}.btn:hover{background:color-mix(in srgb, var(--soft) 65%, var(--brand) 22%);color:var(--deep)}.btn.primary{background:var(--brand);color:var(--btn-text)}.btn.primary:hover{background:var(--deep);color:var(--btn-text)}hr{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ink-soft) 30%, transparent), transparent);border:none;height:1px;margin:3rem 0}img{border-radius:var(--radius);max-width:100%}.muted{color:var(--ink-soft)}:root{--mist:#60728857;--ripple:#4a5c7280}:root[data-theme=dark]{--mist:#c8d6e842;--ripple:#becee26b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--mist:#c8d6e842;--ripple:#becee26b}}.aurora{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.aurora:before{content:"";opacity:var(--aurora-op);background:radial-gradient(38% 30% at 22% 25%, var(--brand), transparent 68%), radial-gradient(32% 26% at 78% 18%, var(--a2), transparent 68%), radial-gradient(36% 30% at 62% 80%, var(--a1), transparent 68%);filter:blur(48px);animation:36s ease-in-out infinite alternate aurora-drift;position:absolute;inset:-20%}.aurora:after{content:"";background:radial-gradient(40% 32% at 26% 24%, var(--mist), transparent 62%), radial-gradient(36% 30% at 74% 70%, var(--mist), transparent 64%);filter:blur(30px);transform-origin:50%;animation:7.5s ease-in-out infinite alternate aurora-breathe;position:absolute;inset:-10%}.aurora .ripple{left:var(--x);top:var(--y);width:0;height:0;position:absolute}.aurora .ripple:before,.aurora .ripple:after{content:"";border:1.5px solid var(--ripple);opacity:0;filter:blur(.5px);width:240px;height:240px;animation:ripple var(--dur) ease-out infinite;animation-delay:var(--delay);border-radius:50%;margin:-120px 0 0 -120px;position:absolute;transform:scale(.04)}.aurora .ripple:after{animation-delay:calc(var(--delay) + 1.1s);filter:blur(1.2px)}.aurora .ripple:first-child{--x:26%;--y:32%;--dur:12s;--delay:0s}.aurora .ripple:nth-child(2){--x:72%;--y:22%;--dur:15s;--delay:4s}.aurora .ripple:nth-child(3){--x:58%;--y:74%;--dur:19s;--delay:9s}@keyframes aurora-drift{0%{transform:translate(-3%,-2.5%)scale(1)}to{transform:translate(3%,2.5%)scale(1.08)}}@keyframes aurora-breathe{0%{opacity:.45;transform:scale(1)}to{opacity:1;transform:scale(1.06)}}@keyframes ripple{0%{opacity:0;transform:scale(.04)}3%{opacity:.9}30%{opacity:0;transform:scale(1)}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.aurora:before,.aurora:after,.aurora .ripple:before,.aurora .ripple:after{animation:none}*{transition:none!important}}.scroll-x,.diagram{overscroll-behavior-x:contain;contain:inline-size;margin:1.8rem 0;overflow-x:auto}.scroll-x>*{min-width:max-content}.diagram svg{height:auto;margin-inline:auto;display:block}.diagram-dark,[data-theme=dark] .diagram-light{display:none}[data-theme=dark] .diagram-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .diagram-light{display:none}:root:not([data-theme=light]) .diagram-dark{display:block}}.diagram-row{overscroll-behavior-x:contain;contain:inline-size;scrollbar-color:color-mix(in srgb, var(--brand) 40%, transparent) transparent;scrollbar-width:thin;gap:1.6rem;margin:1.8rem 0;padding-bottom:14px;display:flex;overflow-x:auto}.diagram-row::-webkit-scrollbar{height:8px}.diagram-row::-webkit-scrollbar-track{background:0 0}.diagram-row::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--brand) 40%, transparent);border-radius:999px}.diagram-row::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--brand) 55%, transparent)}.diagram-row .diagram-item{flex:0 0 300px;margin:0}.diagram-row .diagram-item figcaption{color:var(--ink);text-align:center;margin:0 0 .6rem;font-weight:600}.diagram-row .diagram-item svg{height:auto;margin-inline:auto;display:block}.diagram .node rect,.diagram .node polygon{rx:12px;ry:12px;filter:drop-shadow(0 2px 8px color-mix(in srgb, var(--brand) 16%, transparent))}.diagram .edgeLabel rect{rx:6px;ry:6px}.diagram foreignObject{overflow:visible}.diagram .flowchart-link{stroke-dasharray:7 5;animation:1.8s linear infinite diagram-flow}.diagram .node{opacity:0;animation:.9s ease-out forwards diagram-in}.diagram .node:nth-child(2){animation-delay:.12s}.diagram .node:nth-child(3){animation-delay:.24s}.diagram .node:nth-child(4){animation-delay:.36s}.diagram .node:nth-child(5){animation-delay:.48s}.diagram .node:nth-child(6){animation-delay:.6s}.diagram .node:nth-child(7){animation-delay:.72s}.diagram .node:nth-child(n+8){animation-delay:.84s}.diagram .edgeLabel{opacity:0;animation:.9s ease-out .9s forwards diagram-in}.diagram .removedStep{animation:8s ease-in-out infinite mermaid-step-fade-out}.diagram .addedStep{animation:8s ease-in-out infinite mermaid-step-fade-in}@keyframes mermaid-step-fade-out{0%,35%{opacity:1}55%,to{opacity:.25}}@keyframes mermaid-step-fade-in{0%,35%{opacity:.25}55%,to{opacity:1}}@keyframes diagram-flow{to{stroke-dashoffset:-24px}}@keyframes diagram-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.diagram .flowchart-link{stroke-dasharray:none;animation:none}.diagram .node,.diagram .edgeLabel{opacity:1;animation:none}}:root{--surface:var(--web-surface,var(--paper));--text:var(--web-text,var(--ink));--muted:var(--web-muted,var(--ink-soft));--line:var(--web-line,color-mix(in srgb, var(--brand) 20%, transparent));--silver:var(--web-silver,color-mix(in srgb, var(--paper) 93%, var(--brand)));--light-cyan:var(--web-light-cyan,color-mix(in srgb, var(--brand) 52%, var(--a2)));--light-blue:var(--web-light-blue,color-mix(in srgb, var(--brand) 60%, var(--paper)));--light-violet:var(--web-light-violet,color-mix(in srgb, var(--brand) 75%, var(--a1)))}:root[data-theme=dark]{--surface:var(--web-surface,color-mix(in srgb, var(--paper) 89%, var(--brand)));--text:var(--web-text,color-mix(in srgb, var(--ink) 95%, var(--brand)));--muted:var(--web-muted,color-mix(in srgb, var(--ink-soft) 83%, var(--ink)));--silver:var(--web-silver,color-mix(in srgb, var(--surface) 95%, var(--brand)));--mist:var(--web-mist,#a0bac821);--ripple:var(--web-ripple,#b5cad147);--aurora-op:var(--web-aurora-op,.15)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface:var(--web-surface,color-mix(in srgb, var(--paper) 89%, var(--brand)));--text:var(--web-text,color-mix(in srgb, var(--ink) 95%, var(--brand)));--muted:var(--web-muted,color-mix(in srgb, var(--ink-soft) 83%, var(--ink)));--silver:var(--web-silver,color-mix(in srgb, var(--surface) 95%, var(--brand)));--mist:var(--web-mist,#a0bac821);--ripple:var(--web-ripple,#b5cad147);--aurora-op:var(--web-aurora-op,.15)}}body{background:var(--surface);color:var(--text)}[hidden]{display:none!important}button,summary{font:inherit}button{cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}h1,h2,h3{color:var(--text);text-wrap:balance;font-weight:400}p,.muted{color:var(--muted)}html{scroll-padding-top:100px}section[id],h1[id],h2[id]{scroll-margin-top:100px}.skip-link{z-index:100;background:var(--surface);padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.reading-progress{background:var(--brand);transform-origin:0;z-index:60;pointer-events:none;height:2px;position:fixed;inset:0 0 auto;transform:scaleX(0)}.site-header{z-index:40;background:color-mix(in srgb, var(--surface) 86%, transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:16px 6% 16px 9%;transition:transform .3s;display:flex;position:sticky;top:0}.site-header[data-hidden=true]{transform:translateY(-110%)}.site-header:focus-within{transform:none}.brand-wordmark{align-items:center;display:inline-flex}.brand-wordmark svg{width:auto;height:34px;display:block;overflow:visible}.brand-wordmark path{fill:none;stroke-linecap:round;stroke-linejoin:round}.mila-base{stroke:var(--deep);stroke-width:5px;stroke-dasharray:1000;stroke-dashoffset:0}.mila-aurora-load,.mila-aurora-hover{stroke:url(#mila-aurora-grad);stroke-width:7px;opacity:.85;filter:blur(.8px);stroke-dasharray:130 1010;stroke-dashoffset:135px}.mila-dot{fill:var(--deep);opacity:0}@media (prefers-reduced-motion:no-preference){.mila-base{stroke-dashoffset:1000px;animation:1.3s ease-out .2s forwards mila-write}.mila-aurora-load{animation:1.1s ease-in-out 1.7s forwards mila-aurora-sweep}.brand-wordmark:hover .mila-aurora-hover{animation:1.1s ease-in-out forwards mila-aurora-sweep}.mila-dot{animation:.3s ease-out 1.1s forwards mila-dot-in}}@media (prefers-reduced-motion:reduce){.mila-dot{opacity:1}}@keyframes mila-write{to{stroke-dashoffset:0}}@keyframes mila-aurora-sweep{0%{stroke-dashoffset:135px}to{stroke-dashoffset:-1005px}}@keyframes mila-dot-in{to{opacity:1}}.site-header nav{align-items:center;gap:24px;font-size:13px;display:flex}.site-header nav a,.site-header nav button{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.site-header nav a{color:var(--muted)}#theme-toggle{color:var(--text);background:0 0;border:0;width:44px;font-size:22px}.side-menu{z-index:45;background:color-mix(in srgb, var(--surface) 88%, transparent);backdrop-filter:blur(18px);scrollbar-width:thin;border-radius:24px;width:52px;max-height:calc(100dvh - 180px);padding:5px;transition:width .3s,box-shadow .3s;position:fixed;top:150px;left:20px;overflow:auto}.side-menu[data-open=true]{width:210px;box-shadow:0 12px 35px color-mix(in srgb, var(--brand) 12%, transparent);border-radius:18px}.side-toggle{width:100%;height:44px;color:var(--brand);background:0 0;border:0;align-items:center;gap:18px;padding:8px;font-size:19px;display:flex}.side-label{font-size:14px;display:none}.side-menu[data-open=true] .side-label{display:inline}.side-links nav{padding:10px 0}.side-links a{min-height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:16px;padding:11px 12px;font-size:14px;display:flex}.side-links a:hover,.side-links a[aria-current]{background:var(--silver);color:var(--text)}.side-links a>span:first-child{text-align:center;width:20px}.page-toc{border-top:1px solid var(--line)}.page-toc a{font-size:12px}main{width:calc(100% - 140px);max-width:850px;margin-inline:auto;padding:70px 35px}.home-page main{width:calc(100% - 100px);max-width:1550px;margin:0 0 0 100px;padding:0}.post-page main{max-width:900px}@media (width<=767px){.post-page main{overflow-x:clip}}.post-hero,.post-body>:not(.post-hero):not(.post-back){max-width:700px;margin-inline:auto}.post-body>.evolution-card,.post-body>.diagram-row,.post-body>.timeline-diagram,.post-body>pre,.post-body>table{max-width:900px}.inner-page main>h1,.page-heading h1{margin-bottom:24px;font-size:clamp(32px,4vw,50px)}.inner-page main>h2{margin-top:70px;font-size:28px}.page-heading{margin-bottom:45px}.overline{font:10px/1.8 var(--font-body);letter-spacing:.25em;color:var(--muted);text-transform:uppercase;margin-bottom:20px;display:block}.cover{isolation:isolate;flex-direction:column;justify-content:center;align-items:flex-start;min-height:calc(100svh - 78px);padding:80px 8% 110px;display:flex;position:relative;overflow:hidden}.cover-bg{z-index:-3;background:url(/img/cover-aurora-light.jpg) 50%/cover;animation:26s ease-in-out infinite alternate cover-drift;position:absolute;inset:-5%}.cover:after{content:"";z-index:-1;background:linear-gradient(90deg, color-mix(in srgb, var(--surface) 64%, transparent), color-mix(in srgb, var(--surface) 24%, transparent) 38%, transparent 76%), linear-gradient(0deg, var(--surface), transparent 24%);pointer-events:none;position:absolute;inset:0}.cover-glow{z-index:-2;background:radial-gradient(ellipse at 60% 24%, color-mix(in srgb, var(--light-cyan) 55%, transparent), transparent 45%), radial-gradient(ellipse at 25% 35%, color-mix(in srgb, var(--light-blue) 50%, transparent), transparent 40%);filter:blur(32px);mix-blend-mode:screen;translate:0 var(--scroll-light,0px);pointer-events:none;animation:9s ease-in-out infinite alternate cover-glow;position:absolute;inset:-15%}:root[data-theme=dark] .cover-bg{background-image:url(/img/cover-aurora-dark.jpg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .cover-bg{background-image:url(/img/cover-aurora-dark.jpg)}}.brand-name{letter-spacing:-.045em;background:linear-gradient(110deg, var(--text) 0%, var(--text) 32%, var(--light-cyan) 43%, var(--light-blue) 49%, var(--light-violet) 54%, var(--text) 66%, var(--text) 100%);color:#0000;background-size:280% 100%;-webkit-background-clip:text;background-clip:text;width:fit-content;margin:-.08em 0 .03em -.1em;padding:.08em .2em .1em .1em;font:italic clamp(100px,13vw,190px)/1.28 Georgia,serif;animation:1.1s both title-in,5s ease-in-out 1.1s infinite alternate text-light}.brand-name:hover{animation-duration:1.1s,3s}.hero-tagline{max-width:780px;margin:0 0 22px;font-size:clamp(25px,3vw,44px);line-height:1.55}.tagline-line{display:block}.title-piece{animation:.85s cubic-bezier(.16,1,.3,1) both piece-in;animation-delay:calc(.35s + var(--i) * 45ms);display:inline-block}.hero-sub{letter-spacing:.08em;margin:0;font-size:14px}.blog-hero{isolation:isolate;flex-direction:column;justify-content:center;align-items:flex-start;min-height:330px;margin:0 -35px 24px;padding:60px 43px 62px;display:flex;position:relative;overflow:hidden}.blog-hero-bg{z-index:-3;opacity:.93;-webkit-mask-composite:source-in;background:url(/img/cover-aurora-light.jpg) 72% 22%/cover;animation:26s ease-in-out infinite alternate cover-drift;position:absolute;inset:-4%;-webkit-mask-image:linear-gradient(90deg,#0000 0% 20%,#0000001f 38%,#000000a6 65%,#000 100%),linear-gradient(#0000 0%,#000 12% 62%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0% 20%,#0000001f 38%,#000000a6 65%,#000 100%),linear-gradient(#0000 0%,#000 12% 62%,#0000 100%);mask-composite:intersect}:root[data-theme=dark] .blog-hero-bg{background-image:url(/img/cover-aurora-dark.jpg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .blog-hero-bg{background-image:url(/img/cover-aurora-dark.jpg)}}.blog-hero-glow{z-index:-2;background:radial-gradient(ellipse at 78% 32%, color-mix(in srgb, var(--light-cyan) 45%, transparent), transparent 45%), radial-gradient(ellipse at 62% 48%, color-mix(in srgb, var(--light-blue) 40%, transparent), transparent 40%);filter:blur(36px);mix-blend-mode:screen;opacity:.15;pointer-events:none;animation:12s ease-in-out infinite alternate cover-glow;position:absolute;inset:0 -8% 0 45%;mask-image:linear-gradient(#0000,#000 20% 60%,#0000)}.blog-hero-title{font:600 clamp(28px, 4vw, 46px) / 1.4 var(--font-heading);max-width:760px;margin:0 0 14px}.blog-hero-title .title-piece{margin-inline-end:.22em}.blog-hero-sweep{background:linear-gradient(100deg, var(--muted) 0%, var(--muted) 28%, var(--light-cyan) 42%, var(--light-blue) 50%, var(--light-violet) 58%, var(--muted) 72%, var(--muted) 100%);color:#0000;background-size:320% 100%;-webkit-background-clip:text;background-clip:text;animation:7s ease-in-out infinite alternate blog-title-sweep}.blog-hero-sub{letter-spacing:.06em;color:var(--muted);max-width:620px;margin:0;font-size:14px}@media (width<=700px){.blog-hero{min-height:0;margin:0 -20px 16px;padding:48px 26px 52px}.blog-hero-bg{background-position:68% 18%;-webkit-mask-image:linear-gradient(90deg,#0000 0% 12%,#0003 48%,#000000b3 100%),linear-gradient(#0000,#000 15% 58%,#0000);mask-image:linear-gradient(90deg,#0000 0% 12%,#0003 48%,#000000b3 100%),linear-gradient(#0000,#000 15% 58%,#0000)}}.blog-filters{flex-wrap:wrap;gap:26px;margin:0 0 32px;display:flex}.blog-filter{color:var(--muted);border-bottom:2px solid #0000;padding:12px 0;font-size:14px;text-decoration:none;display:inline-block}.blog-filter:hover{color:var(--text)}.blog-filter.is-active{color:var(--text);border-bottom-color:var(--brand)}.blog-context{color:var(--muted);margin:0 0 4px;font-size:13px;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:13px;margin-top:35px;display:flex}.btn{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 72%, transparent);padding:12px 24px;font-size:14px}.btn:hover{transform:translateY(-3px)}.scroll-note{letter-spacing:.22em;color:var(--muted);align-items:center;gap:20px;font-size:10px;display:flex;position:absolute;bottom:35px;left:8%}.scroll-note:before{content:"";background:var(--brand);transform-origin:top;width:1px;height:32px;animation:2.4s ease-in-out infinite scroll-hint}.home-section{border-top:1px solid var(--line);padding:100px 8%}.section-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px;display:flex}.section-heading h2,.about-intro h2{margin:0;font-size:clamp(30px,3.4vw,48px);line-height:1.5}.section-heading>p{max-width:270px;margin:0;font-size:13px}.text-link{border-bottom:1px solid var(--line);white-space:nowrap;padding-bottom:7px;font-size:13px}.tools-more{margin-top:25px;display:inline-block}.tools-section{background:linear-gradient(130deg, var(--surface), var(--silver), var(--surface));overflow:hidden}.about-intro{grid-template-columns:1fr 1.15fr;align-items:center;gap:9%;display:grid}.about-intro>div:first-child{padding-block:30px;position:relative}.about-intro>div:first-child:before{content:"M";z-index:-1;color:var(--brand);opacity:.08;font:italic 230px/1 Georgia,serif;position:absolute;top:-55px;left:-20px}.about-sign{font:21px/1.7 var(--font-heading);color:var(--brand);margin-top:18px}.about-intro p{font-size:15px;line-height:2}.about-links{flex-wrap:wrap;gap:24px;display:flex}.tool-track{gap:25px;display:grid}.tool-card{isolation:isolate;border:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--surface) 94%, var(--brand)), color-mix(in srgb, var(--surface) 98%, var(--brand)));border-radius:5px 5px 44px;min-width:0;padding:35px;position:relative;overflow:hidden;box-shadow:0 5px 18px #00000004}.tool-card:before{content:"";background:linear-gradient(90deg, transparent, var(--light-cyan), var(--light-blue), var(--light-violet), transparent);opacity:.65;height:2px;position:absolute;inset:0 0 auto}.tool-meta{justify-content:space-between;align-items:center;gap:15px;margin-bottom:30px;display:flex}.tool-symbol{background:var(--silver);width:64px;height:64px;color:var(--brand);border-radius:50%;place-items:center;font-size:26px;display:grid}.tool-status{color:var(--muted);border:1px solid var(--line);border-radius:30px;padding:5px 12px;font-size:11px}.tool-card h3{margin:0 0 12px;font-size:27px}.tool-card p{font-size:15px;line-height:1.9}.tool-card details{border-top:1px solid var(--line);margin-top:26px;padding-top:15px}.tool-card summary{color:var(--brand);cursor:pointer;padding-block:8px;font-size:13px}.tool-card details p{margin-top:15px}.tool-description{margin-top:25px}.tool-custom{color:var(--ink-soft);margin-top:22px;font-size:14px}.is-carousel .tool-track{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;gap:26px;padding:8px 0 18px;display:flex;position:relative;overflow-x:auto}.is-carousel .tool-track::-webkit-scrollbar{display:none}.is-carousel .tool-card{scroll-snap-align:start;flex:0 0 72%;min-height:330px}.is-carousel .tool-card:last-child{margin-right:28%}.tool-track.dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}.tool-card.current h3{color:var(--brand);animation:.65s both tool-title}.carousel-controls{color:var(--muted);justify-content:space-between;align-items:center;gap:15px;margin-top:15px;font-size:12px;display:flex}.carousel-controls>div{align-items:center;gap:20px;display:flex}.carousel-controls button{border:1px solid var(--line);width:48px;height:48px;color:var(--brand);background:0 0;border-radius:50%;font-size:22px}.carousel-controls button:hover{background:var(--surface)}.carousel-controls button:disabled{opacity:.3;cursor:default}.carousel-controls [data-position]{text-align:center;font-variant-numeric:tabular-nums;min-width:40px}.subscribe-wrap{z-index:1;max-width:1150px;margin:0 auto 0 max(100px,50% - 575px);position:relative}.subscribe{isolation:isolate;border-top:1px solid var(--line);grid-template-columns:1fr 160px;align-items:start;gap:30px;padding:80px 8%;display:grid;position:relative;overflow:hidden}.subscribe>.overline{grid-column:1/-1;margin:0 0 24px}.subscribe-body{max-width:640px}.subscribe h2{margin:0 0 15px;font-size:clamp(26px,3vw,38px)}.subscribe p{font-size:14px}.subscribe:before,.subscribe:after{content:"";pointer-events:none;z-index:-1;filter:blur(40px);background:radial-gradient(ellipse at 70% 50%, color-mix(in srgb, var(--light-cyan) 22%, transparent), transparent 42%), radial-gradient(ellipse at 40% 65%, color-mix(in srgb, var(--light-blue) 20%, transparent), transparent 40%);animation:16s ease-in-out infinite alternate rss-light;position:absolute;inset:-30%}.subscribe:after{background:linear-gradient(110deg, transparent 30%, color-mix(in srgb, var(--light-violet) 12%, transparent) 50%, transparent 65%);animation-duration:12s}.blog-page .subscribe{overflow:visible}.subscribe-disclosure{justify-self:end}.subscribe-disclosure[open]{grid-column:1/-1;justify-self:stretch}.subscribe-disclosure[open] .subscribe-panel{max-width:480px}.subscribe-disclosure>summary{cursor:pointer;text-align:center;border:1px solid var(--line);width:100px;min-height:100px;color:var(--brand);border-radius:50%;place-items:center;padding:16px;font-size:14px;display:grid}.subscribe-disclosure>summary::-webkit-details-marker{display:none}.subscribe-disclosure>summary:hover{background:var(--silver)}.subscribe-disclosure[open]>summary{border-radius:24px;width:auto;min-height:44px;margin-bottom:24px;display:inline-flex}.feed-info{overflow-wrap:anywhere;margin-top:20px;font-size:13px}.site-footer{z-index:1;border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:20px;max-width:1150px;margin:0 auto;padding:28px 35px 45px 100px;font-size:12px;display:flex;position:relative}.site-footer .channels{flex-wrap:wrap;gap:15px;display:flex}.inner-page .post-body h1{font-family:var(--font-heading);letter-spacing:.01em;color:var(--deep);max-width:14ch;margin-bottom:0;font-size:clamp(34px,4.8vw,50px);font-weight:700;line-height:1.45}.post-body>p,.post-body>ul>li,.post-body>ol>li{color:color-mix(in srgb, var(--ink) 72%, var(--ink-soft));font-size:15px;line-height:1.9}.post-body>p{margin:0 0 1.5em}.post-body>ul,.post-body>ol{margin:0 0 1.5em;padding-left:1.3em;font-size:15px}.post-body>ul>li,.post-body>ol>li{margin-bottom:.6em}.post-body>ul>li:last-child,.post-body>ol>li:last-child{margin-bottom:0}.post-body>ol{counter-reset:post-ol;padding-left:0;list-style:none}.post-body>ol>li{counter-increment:post-ol;margin-bottom:0}.post-body>ol>li+li{margin-top:2em}.post-body>ol>li:before{content:counter(post-ol, decimal-leading-zero);font-family:var(--font-mono);letter-spacing:.12em;color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.post-body>h2{font-family:var(--font-heading);color:var(--ink);margin:76px 0 18px;font-size:21px;font-weight:600;line-height:1.6}.post-body>h2:before{content:"";background:color-mix(in srgb, var(--ink) 22%, transparent);width:28px;height:1px;margin-bottom:16px;display:block}.post-body>h3{font-family:var(--font-heading);color:var(--ink);margin:44px 0 12px;font-size:17px;font-weight:600;line-height:1.6}.post-body>p strong,.post-body>ul strong,.post-body>ol strong{color:var(--ink);font-weight:600}.post-body>img{height:auto}.post-body>table{border-collapse:collapse;max-width:100%;font-size:14px;display:block;overflow-x:auto}.post-body>table th,.post-body>table td{border-bottom:1px solid var(--line);padding:10px 14px}.post-body>pre{border-radius:8px;margin:32px 0;padding:20px;font-size:13px;line-height:1.7;background:var(--silver)!important}.post-body code{font-family:var(--font-mono);background:var(--silver);border-radius:5px;padding:.12em .38em}.post-body pre code{background:0 0;padding:0}.post-body>blockquote{border-left:1px solid color-mix(in srgb, var(--ink) 18%, transparent);color:var(--ink-soft);background:0 0;border-radius:0;margin:32px 0;padding:2px 0 2px 22px;font-size:15px;line-height:1.9}.post-body>blockquote>p{margin:0}.post-body>.post-rule+blockquote{color:var(--muted);border-left:none;margin:0 0 36px;padding:0;font-size:14px}.callout{margin:88px 0 72px}.callout p{color:color-mix(in srgb, var(--ink) 72%, var(--ink-soft));margin:0;font-size:15px;line-height:1.9}.callout .pull{font-family:var(--font-heading);letter-spacing:.02em;color:var(--ink);margin:0 0 32px;font-size:26px;font-weight:400;line-height:1.7}.incident{margin:96px 0 88px}.incident-title{font-family:var(--font-heading);color:var(--ink);margin:0 0 22px;font-size:24px;font-weight:600;line-height:1.5}.incident-lede{color:color-mix(in srgb, var(--ink) 72%, var(--ink-soft));margin:0 0 40px;font-size:15px;line-height:1.9}.collision{margin:0 0 40px}.collision svg{width:100%;max-width:460px;height:auto;margin:0 auto;display:block;overflow:visible}.collision .c-line{fill:none;stroke:color-mix(in srgb, var(--ink) 34%, transparent);stroke-width:1.2px;stroke-linecap:round}.collision .c-label{font-family:var(--font-mono);fill:var(--ink-soft);font-size:15px}.collision .c-cap{font-family:var(--font-body);fill:var(--muted);font-size:12px}.collision .c-focus{font-family:var(--font-heading);fill:var(--ink);font-size:21px}.collision .c-dot{fill:var(--ink)}.collision .c-haze{opacity:.6}.collision .c-ring,.collision .c-ripple{fill:none;stroke:color-mix(in srgb, var(--light-blue) 75%, var(--ink));stroke-width:1px}.collision .c-ring{opacity:.3}.collision .c-ripple{opacity:0;transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:no-preference){.collision.will-play .c-line{stroke-dasharray:100;stroke-dashoffset:100px}.collision.will-play .c-dot,.collision.will-play .c-haze,.collision.will-play .c-ring{opacity:0}.collision.is-playing .c-line{animation:.8s cubic-bezier(.4,0,.2,1) forwards c-draw}.collision.is-playing .c-dot{animation:.25s ease-out .78s forwards c-dot}.collision.is-playing .c-ripple{animation:1.4s ease-out .8s forwards c-ripple}.collision.is-playing .c-haze{animation:1.8s ease-out .8s forwards c-haze}.collision.is-playing .c-ring{animation:.9s ease-out 1.5s forwards c-ring}}@keyframes c-draw{to{stroke-dashoffset:0}}@keyframes c-dot{to{opacity:1}}@keyframes c-ripple{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(12)}}@keyframes c-haze{0%{opacity:0}35%{opacity:1}to{opacity:.6}}@keyframes c-ring{to{opacity:.3}}.incident-checks{color:var(--ink-soft);grid-template-columns:max-content max-content minmax(0,max-content);justify-content:center;align-items:baseline;gap:10px 22px;margin:0 0 52px;font-size:14px;display:grid}.incident-checks>div{display:contents}.incident-checks .c-name{font-family:var(--font-mono);color:var(--ink);font-size:13px}.incident-checks .ok,.incident-checks .no{font-family:var(--font-mono)}.incident-checks .ok{color:color-mix(in srgb, var(--a2) 70%, var(--ink))}.incident-checks .no{color:color-mix(in srgb, var(--a1) 75%, var(--ink))}.incident-lesson{font-family:var(--font-heading);color:var(--ink);margin:0;font-size:19px;font-weight:400;line-height:1.8}@media (width<=640px){.callout .pull{font-size:22px}.incident-title{font-size:21px}}.timeline-diagram{text-align:center;margin:8px 0 36px}.timeline-diagram figcaption{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:10px;font-size:12px}.post-page .subscribe-wrap{border-top:1px solid var(--line);margin-top:12px;padding-top:56px}.inner-page .stain{background:var(--silver);border-radius:8px 30px 8px 8px}.inner-page main{overflow-wrap:anywhere}.inner-page input,.inner-page textarea{background:var(--silver);color:var(--text)}.aurora .ripple:before,.aurora .ripple:after{border-width:1px}.aurora .ripple:first-child{--dur:19s;--delay:2s}.aurora .ripple:nth-child(2){--dur:27s;--delay:10s}.aurora .ripple:nth-child(3){--dur:33s;--delay:21s}@keyframes cover-drift{to{transform:scale(1.06)translate(1%,-1%)}}@keyframes cover-glow{0%{opacity:.08;transform:translate(-2%)}to{opacity:.3;transform:translate(2%,-1%)}}@keyframes text-light{0%{background-position:0%}to{background-position:100%}}@keyframes title-in{0%{opacity:0;filter:blur(6px);transform:translateY(12px)}to{opacity:1;filter:none;transform:none}}@keyframes blog-title-sweep{0%{background-position:0%}to{background-position:100%}}@keyframes piece-in{0%{opacity:0;filter:blur(5px);transform:translateY(.65em)}to{opacity:1;filter:none;transform:none}}@keyframes scroll-hint{0%,to{opacity:.35;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes rss-light{0%{opacity:.4;transform:translate(-3%,2%)scale(.95)}to{opacity:.7;transform:translate(4%,-3%)scale(1.1)}}@keyframes tool-title{0%{opacity:.3;transform:translate(12px)}to{opacity:1;transform:none}}@media (width>=1650px){.home-page main{margin-inline:auto}.cover{min-height:850px}}@media (width<=900px){.section-heading{flex-direction:column;align-items:flex-start}.about-intro{gap:35px}.home-section{padding:75px 6%}.cover{padding-inline:6%}.tool-card{padding:28px}}@media (width<=700px){html{scroll-padding-top:85px}.site-header{gap:10px;padding:10px 20px}.brand-wordmark svg{height:27px}.site-header nav{gap:12px;font-size:12px}.site-header .pagelink{font-size:11px}.site-header nav button{width:28px}.side-menu{max-height:calc(100dvh - 100px);top:auto;bottom:16px;left:16px}main,.home-page main{width:100%;margin:0}.inner-page main{padding:45px 7% 60px}.cover{min-height:calc(100svh - 65px);padding:55px 7% 100px}.brand-name{font-size:104px}.hero-tagline{font-size:clamp(23px,6vw,34px)}.hero-sub{letter-spacing:.03em;font-size:12px}.cover:after{background:linear-gradient(90deg, color-mix(in srgb, var(--surface) 64%, transparent), color-mix(in srgb, var(--surface) 20%, transparent)), linear-gradient(0deg, var(--surface), transparent 30%)}.scroll-note{left:7%}.home-section{padding:65px 7%}.section-heading{gap:20px}.section-heading h2,.about-intro h2{font-size:30px}.overline{letter-spacing:.18em;font-size:9px}.about-intro{grid-template-columns:1fr;gap:20px}.about-intro>div:first-child:before{font-size:180px;top:-20px}.is-carousel .tool-card{flex-basis:90%;min-height:350px}.is-carousel .tool-card:last-child{margin-right:10%}.is-carousel .tool-track{gap:16px}.carousel-controls>div{gap:10px}.carousel-controls button{width:42px;height:42px}.carousel-controls>span{max-width:110px;font-size:11px}.subscribe-wrap{margin:0}.subscribe{grid-template-columns:1fr;padding:60px 7%}.subscribe h2{font-size:27px}.site-footer{padding:25px 7% 95px;line-height:1.8}.site-footer .channels{gap:12px}.hero-actions .btn{padding:11px 17px;font-size:13px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}.brand-name{color:var(--text);background:0 0}.title-piece{opacity:1;transform:none}.cover-glow{translate:none}.blog-hero-sweep{color:var(--text);background:0 0}}
