/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--page:#0b0d10;--surface:#111419;--surface-raised:#15191f;--line:#292e36;--line-soft:#1c2128;--text:#ebe8e0;--muted:#989ca5;--dim:#626872;--teal:#57d6cd;--blue:#75a7ff;--purple:#c099ff;--orange:#ffa25a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--page);color:var(--text);font-family:var(--font-geist-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--teal)}.shell{width:min(100% - 40px,960px);margin:0 auto}.site-header{border-bottom:1px solid var(--line-soft)}.header-inner{padding:clamp(54px,10vw,108px) 0 48px}.eyebrow,.section-overline,.focus-kicker,.entry-meta,.section-count,.site-meta,.footer-inner{font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.eyebrow,.section-overline{color:var(--dim);letter-spacing:.11em;text-transform:uppercase;margin:0;font-size:11px}.header-inner h1{letter-spacing:-.075em;margin:15px 0 5px;font-size:clamp(50px,10vw,96px);font-weight:640;line-height:.92}.site-subtitle{color:#c4c4c0;letter-spacing:-.025em;margin:18px 0 0;font-size:clamp(18px,2.5vw,23px)}.site-meta{color:var(--muted);letter-spacing:.035em;margin:18px 0 0;font-size:12px}.site-meta span{color:var(--dim);padding:0 5px}.content{padding:34px 0 78px}.focus-card{background:linear-gradient(135deg, #57d6cd14, transparent 52%), var(--surface);border:1px solid #27413f;border-radius:6px;grid-template-columns:116px minmax(0,1fr);gap:22px;padding:23px 25px;display:grid}.focus-kicker{color:var(--teal);letter-spacing:.08em;text-transform:uppercase;padding-top:4px;font-size:11px}.status-dot{background:var(--teal);border-radius:50%;width:7px;height:7px;margin:0 7px 1px 0;display:inline-block;box-shadow:0 0 0 4px #57d6cd1f}.focus-copy h2,.section-heading h2,.index-heading h2{letter-spacing:-.04em;margin:0}.focus-copy h2{font-size:19px}.focus-copy p{color:#bdc0c3;max-width:680px;margin:9px 0 0;font-size:15px;line-height:1.72}.focus-copy code{color:#d5e8e6;font-family:var(--font-geist-mono), monospace;background:#0d1517;border:1px solid #324149;border-radius:3px;padding:2px 5px;font-size:.88em}.focus-copy .focus-note{color:var(--muted);font-size:13px}.changelog{margin-top:70px}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:24px;padding-bottom:18px;display:flex}.section-heading h2,.index-heading h2{margin-top:6px;font-size:29px}.section-count{color:var(--dim);letter-spacing:.08em;white-space:nowrap;margin:0 0 3px;font-size:11px}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:1px;left:118px}.timeline-item{border-bottom:1px solid var(--line-soft);grid-template-columns:118px 28px minmax(0,1fr);padding:31px 0 37px;display:grid}.timeline-rail{grid-column:2;position:relative}.timeline-node{z-index:1;border:2px solid var(--page);background:var(--dim);width:11px;height:11px;box-shadow:0 0 0 1px var(--line);border-radius:50%;position:absolute;top:6px;left:50%;transform:translate(-50%)}.node-ship{background:var(--teal);box-shadow:0 0 0 1px #378984}.node-path{background:var(--blue);box-shadow:0 0 0 1px #547abe}.node-practiced{background:var(--purple);box-shadow:0 0 0 1px #8a65bd}.node-blocked{background:var(--orange);box-shadow:0 0 0 1px #a75a2d}.node-read{background:#8d929b;box-shadow:0 0 0 1px #595f69}.entry{grid-column:3;padding-left:20px}.entry-meta{color:var(--muted);letter-spacing:.035em;align-items:center;gap:10px;font-size:12px;display:flex}.entry-meta time{color:#b9bdc5}.status-pill{letter-spacing:.055em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;padding:3px 8px;font-size:10px;font-weight:580;line-height:1.1;display:inline-flex}.status-ship{color:var(--teal);background:#57d6cd12}.status-path{color:var(--blue);background:#75a7ff12}.status-practiced{color:var(--purple);background:#c099ff12}.status-blocked{color:var(--orange);background:#ffa25a12}.status-read{color:#a8adb6;background:#a8adb612}.entry h3{color:#efede7;letter-spacing:-.035em;margin:12px 0 0;font-size:clamp(18px,2.5vw,22px);font-weight:560;line-height:1.3}.entry-summary{margin-top:11px}.entry-summary p{color:var(--muted);margin:3px 0;font-size:14px;line-height:1.62}.entry-links{flex-wrap:wrap;gap:14px;margin-top:15px;display:flex}.entry-links a,.index-links a,.long-form-link{color:#c8d8f5;font-size:13px;text-decoration-color:#566b89}.index{border-top:1px solid var(--line);margin-top:70px;padding:27px 0 2px}.index-heading{margin-bottom:23px}.index-grid{grid-template-columns:1.25fr 1fr .82fr;gap:16px;display:grid}.index-grid>div{border:1px solid var(--line-soft);background:#15191f75;border-radius:5px;min-height:146px;padding:18px}.index-grid h3{color:#d5d3cc;font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:11px;font-weight:500}.index-description{color:var(--muted);margin:9px 0 0;font-size:12px;line-height:1.55}.tag-cloud{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.tag-cloud span{color:#afb4bc;font-family:var(--font-geist-mono), monospace;border:1px solid #30353d;border-radius:3px;padding:4px 7px;font-size:10px}.index-links{margin:11px 0 0;padding:0;list-style:none}.index-links li+li{margin-top:8px}.index-links a{font-size:12px}.long-form-link{margin-top:13px;display:inline-block}.site-footer{border-top:1px solid var(--line-soft)}.footer-inner{color:var(--dim);letter-spacing:.035em;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;padding:22px 0 27px;font-size:10px;display:flex}.footer-policy{color:#555b64}@media (width<=640px){.shell{width:min(100% - 32px,960px)}.header-inner{padding-bottom:38px}.focus-card{grid-template-columns:1fr;gap:9px;padding:20px}.changelog{margin-top:53px}.timeline:before{left:5px}.timeline-item{grid-template-columns:18px minmax(0,1fr);padding:25px 0 30px}.timeline-rail{grid-column:1}.timeline-node{left:5px;transform:none}.entry{grid-column:2;padding-left:12px}.entry-meta{gap:8px}.entry h3{margin-top:11px}.index{margin-top:54px}.index-grid{grid-template-columns:1fr;gap:10px}.index-grid>div{min-height:auto}.footer-inner{grid-template-columns:1fr;gap:7px;display:grid}}
