*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.\!visible{visibility:visible!important}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-24{bottom:6rem}.left-0{left:0}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-10{top:2.5rem}.top-16{top:4rem}.isolate{isolation:isolate}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.\!h-44{height:11rem!important}.h-12{height:3rem}.h-24{height:6rem}.h-28{height:7rem}.h-36{height:9rem}.h-screen{height:100vh}.max-h-\[80vh\]{max-height:80vh}.min-h-\[60vh\]{min-height:60vh}.min-h-\[70vh\]{min-height:70vh}.min-h-screen{min-height:100vh}.w-12{width:3rem}.w-28{width:7rem}.w-64{width:16rem}.w-full{width:100%}.min-w-0{min-width:0px}.\!max-w-none{max-width:none!important}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.resize{resize:both}.scroll-mt-24{scroll-margin-top:6rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[var\(--rule\)\]{border-color:var(--rule)}.bg-\[var\(--accent-strong\)\]{background-color:var(--accent-strong)}.bg-\[var\(--bg-elev\)\]{background-color:var(--bg-elev)}.bg-\[var\(--bg-main\)\]{background-color:var(--bg-main)}.bg-\[var\(--inline-code-bg\)\]{background-color:var(--inline-code-bg)}.bg-black\/50{background-color:#00000080}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-\[var\(--accent\)\]{--tw-gradient-from: var(--accent) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-\[var\(--accent-soft\)\]{--tw-gradient-to: var(--accent-soft) var(--tw-gradient-to-position)}.p-3{padding:.75rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[2\.5rem\]{font-size:2.5rem}.text-\[3\.25rem\]{font-size:3.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-\[var\(--accent-ink\)\]{color:var(--accent-ink)}.text-\[var\(--ink\)\]{color:var(--ink)}.text-\[var\(--ink-soft\)\]{color:var(--ink-soft)}.text-\[var\(--muted\)\]{color:var(--muted)}.text-\[var\(--on-accent\)\]{color:var(--on-accent)}.opacity-60{opacity:.6}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[var\(--shadow-2\)\]{--tw-shadow-color: var(--shadow-2);--tw-shadow: var(--tw-shadow-colored)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--bg-main: #fbfaf7;--bg-elev: #ffffff;--bg-code: #1a1a1a;--ink: #1a1a1a;--ink-soft: #2a2a2a;--muted: #6b6b6b;--rule: #e7e4dc;--accent: #10b981;--accent-ink: #047857;--accent-strong: #047857;--on-accent: #ffffff;--accent-hover: color-mix(in oklch, var(--accent-strong) 88%, black);--accent-press: color-mix(in oklch, var(--accent-strong) 76%, black);--accent-ring: color-mix(in oklch, var(--accent) 45%, transparent);--accent-soft: #ecfdf5;--danger: #b91c1c;--star: #a06a00;--rest: #c2703c;--rest-ink: #a0522d;--rest-soft: #fdf1e9;--chip-bg: #f3f0e8;--chip-ink: #5c5c5c;--inline-code-bg: #f1ede4;--inline-code-ink: #7a1f52;--shadow-tint: 30 24% 22%;--shadow-1: 0 1px 1px -1px hsl(var(--shadow-tint) / .1), 0 2px 6px -2px hsl(var(--shadow-tint) / .07);--shadow-2: 0 1px 2px -1px hsl(var(--shadow-tint) / .09), 0 4px 10px -3px hsl(var(--shadow-tint) / .08), 0 12px 26px -12px hsl(var(--shadow-tint) / .1);--shadow-3: 0 1px 2px -1px hsl(var(--shadow-tint) / .08), 0 6px 14px -4px hsl(var(--shadow-tint) / .09), 0 18px 36px -14px hsl(var(--shadow-tint) / .11), 0 34px 60px -28px hsl(var(--shadow-tint) / .13);--shadow: var(--shadow-1)}:root.dark{--bg-main: #0e0e10;--bg-elev: #17171a;--bg-code: #0a0a0a;--ink: #ebe9e4;--ink-soft: #c8c5bf;--muted: #8a867e;--rule: #2a2a2e;--accent: #34d399;--accent-ink: #34d399;--accent-strong: #34d399;--on-accent: #0b0b0d;--accent-hover: color-mix(in oklch, var(--accent-strong) 88%, white);--accent-press: color-mix(in oklch, var(--accent-strong) 76%, white);--accent-ring: color-mix(in oklch, var(--accent) 45%, transparent);--accent-soft: #064e3b33;--danger: #f87171;--star: #e0a500;--rest: #e0a06a;--rest-ink: #e0a06a;--rest-soft: #2a1d14;--chip-bg: #222226;--chip-ink: #b5b2ab;--inline-code-bg: #242428;--inline-code-ink: #f0a1c3;--shadow-tint: 240 32% 3%;--shadow-1: 0 1px 1px -1px hsl(var(--shadow-tint) / .55), 0 2px 6px -2px hsl(var(--shadow-tint) / .45);--shadow-2: 0 1px 2px -1px hsl(var(--shadow-tint) / .5), 0 4px 10px -3px hsl(var(--shadow-tint) / .45), 0 12px 26px -12px hsl(var(--shadow-tint) / .55);--shadow-3: 0 1px 2px -1px hsl(var(--shadow-tint) / .5), 0 6px 14px -4px hsl(var(--shadow-tint) / .5), 0 18px 36px -14px hsl(var(--shadow-tint) / .6), 0 34px 60px -28px hsl(var(--shadow-tint) / .65);--shadow: var(--shadow-1)}:root{--step--1: .9rem;--step--2: .8rem;--step--3: .7rem;--step--4: .62rem;--step-0: clamp(1rem, .949rem + .227vw, 1.125rem);--step-1: clamp(1.125rem, 1.033rem + .409vw, 1.35rem);--step-2: clamp(1.35rem, 1.186rem + .727vw, 1.75rem);--step-3: clamp(1.5rem, 1.255rem + 1.09vw, 2.1rem);--step-4: clamp(2rem, 1.55rem + 2vw, 3rem);--step-5: clamp(2.4rem, 1.7rem + 3.1vw, 3.75rem);--ease-out: cubic-bezier(.22, .61, .36, 1);--block-gap: clamp(3rem, 5vw, 4.5rem);--dur-fast: .15s;--dur-base: .22s;interpolate-size:allow-keywords}:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}html{font-family:Inter,system-ui,sans-serif;background-color:var(--bg-main);color:var(--ink);font-feature-settings:"ss01","cv11";transition:background-color .25s ease,color .25s ease}body{overflow-x:hidden;position:relative;isolation:isolate}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.045;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>")}:root.dark body:before{opacity:.07;mix-blend-mode:screen}.serif{font-family:Fraunces,Georgia,serif;font-feature-settings:"ss01"}.sidebar-rail{position:relative;background:linear-gradient(180deg,transparent 0%,transparent 6%,var(--rule) 18%,var(--rule) 82%,transparent 96%,transparent 100%) right / 1px 100% no-repeat}.sidebar-item{position:relative;display:block;padding:.4rem .6rem .4rem 1rem;border-radius:.5rem;font-size:var(--step--1);color:var(--ink);transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.sidebar-item:before{content:"";position:absolute;left:.4rem;top:.5rem;bottom:.5rem;width:2px;border-radius:1px;background:transparent;transition:background var(--dur-base) var(--ease-out)}.sidebar-item:hover{color:var(--accent-ink);background:color-mix(in oklch,var(--ink) 5%,transparent)}.sidebar-item:hover:before{background:color-mix(in oklch,var(--accent) 45%,transparent)}.sidebar-item:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.sidebar-item.active{color:var(--accent-ink);font-weight:600;background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--accent) 22%,transparent)}.sidebar-item.active:before{background:var(--accent)}.search-trigger{display:flex;align-items:center;gap:.55rem;width:100%;min-height:2.5rem;padding:0 .5rem 0 .7rem;border:1px solid var(--rule);border-radius:.6rem;background:var(--chip-bg);color:var(--chip-ink);text-align:left;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.search-trigger-icon{flex:none;color:var(--muted);transition:color var(--dur-fast) var(--ease-out)}.search-trigger-label{flex:1;font-size:var(--step--2);letter-spacing:.01em}.search-trigger-key{flex:none;display:grid;place-items:center;min-width:1.4rem;height:1.4rem;padding:0 .3rem;border:1px solid var(--rule);border-bottom-width:2px;border-radius:.35rem;background:var(--bg-elev);color:var(--muted);font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--3);line-height:1}.search-trigger:hover{color:var(--accent-ink);background:var(--bg-elev);border-color:color-mix(in oklch,var(--accent) 45%,var(--rule));box-shadow:var(--shadow-1)}.search-trigger:hover .search-trigger-icon{color:var(--accent-ink)}.search-trigger:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.sidebar-author{padding-left:.05rem}.sidebar-author-name{font-size:var(--step--1);font-weight:600;letter-spacing:-.01em;color:var(--ink);line-height:1.2}.sidebar-author-role{margin-top:.2rem;font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--3);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.sidebar-now{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .75rem;border-left:2px solid var(--accent-ink);background:color-mix(in oklch,var(--accent-soft) 55%,transparent);border-radius:0 .35rem .35rem 0}.sidebar-now-label{font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--4);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);font-weight:600}.sidebar-now-text{font-size:var(--step--2);color:var(--ink);line-height:1.4}.sidebar-section-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem;font-size:var(--step--4);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.sidebar-section-rule{flex:1;height:1px;background:linear-gradient(90deg,var(--rule),transparent)}.sidebar-footer{border-top:1px solid var(--rule)}.sidebar-footer-row{display:flex;align-items:center;gap:.15rem}.sidebar-footer-row--wip{justify-content:flex-end}.sidebar-footer-link{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:.35rem;color:var(--muted);transition:color .15s ease,background .15s ease}.sidebar-footer-link:hover{color:var(--accent-ink);background:var(--chip-bg)}.sidebar-footer-spacer{flex:1}.sidebar-copyright{margin-top:.6rem;font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--4);color:var(--muted);letter-spacing:.04em;opacity:.75}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--rule);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.reveal{opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:translateY(0)}.post-block{margin-top:var(--block-gap)}.post-block-ruled{padding-top:2rem;border-top:1px solid var(--rule)}.prose-post{color:var(--ink-soft);font-size:var(--step-0);line-height:1.75;max-width:74ch}.prose-post>*+*{margin-top:1.25em}.prose-post h2,.prose-post h3{font-family:Fraunces,Georgia,serif;letter-spacing:-.01em;color:var(--ink);position:relative}.prose-post h2{font-weight:600;font-size:var(--step-3);font-variation-settings:"opsz" 72,"wght" 600,"SOFT" 20;margin-top:2.5em;margin-bottom:.6em}.prose-post h3{font-weight:600;font-size:var(--step-1);font-variation-settings:"opsz" 36,"wght" 600;margin-top:2.4em;margin-bottom:.5em}.prose-post h2 a.heading-anchor,.prose-post h3 a.heading-anchor{opacity:0;color:var(--muted);text-decoration:none;padding-left:.4rem;font-size:.7em;font-family:Inter,system-ui,sans-serif;transition:opacity .15s ease}.prose-post h2:hover a.heading-anchor,.prose-post h3:hover a.heading-anchor{opacity:.6}.prose-post h2 a.heading-anchor:hover,.prose-post h3 a.heading-anchor:hover{color:var(--accent-ink);opacity:1}.prose-post p{margin-bottom:1.25em}.prose-post>p:first-of-type:first-letter{font-family:Fraunces,Georgia,serif;font-weight:700;font-variation-settings:"opsz" 144,"wght" 700,"SOFT" 50;float:left;font-size:3.6em;line-height:.86;padding-right:.14em;padding-top:.06em;color:var(--accent-ink);text-shadow:0 1px 0 color-mix(in oklch,var(--accent) 40%,transparent),0 6px 18px color-mix(in oklch,var(--accent) 18%,transparent)}.prose-post ul{list-style:disc;padding-left:1.4rem}.prose-post ol{list-style:decimal;padding-left:1.4rem}.prose-post li{margin-bottom:.4em}.prose-post li>p{margin-bottom:.35em}.prose-post strong{color:var(--ink);font-weight:600}.prose-post a:not(.heading-anchor){color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in oklch,var(--accent-ink) 40%,transparent);text-underline-offset:3px;transition:text-decoration-thickness var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out)}.prose-post a:not(.heading-anchor):hover,.prose-post a:not(.heading-anchor):focus-visible{text-decoration-thickness:3px;text-decoration-color:var(--accent-ink)}.prose-post code:not(pre code){background-color:var(--inline-code-bg);color:var(--inline-code-ink);padding:.12em .4em;border-radius:.3rem;font-size:.88em;font-family:ui-monospace,Cascadia Code,Menlo,monospace}.prose-post pre{background-color:var(--bg-code)!important;padding:1.1rem 1.3rem;border-radius:.6rem;overflow-x:auto;margin:1.5em 0;font-size:var(--step--1);line-height:1.6;border:1px solid var(--rule)}.prose-post pre code{font-family:ui-monospace,Cascadia Code,Menlo,monospace;background:transparent;padding:0}.prose-post pre.astro-code,.prose-post pre.astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.prose-post blockquote{border-left:2px solid var(--accent-ink);padding:.4em 0 .4em 1.25rem;margin:2.75em 0;color:var(--ink-soft);font-family:Fraunces,Georgia,serif;font-size:1.1em;font-weight:500}.prose-post blockquote p{margin-bottom:.5em}.prose-post blockquote p:last-child{margin-bottom:0}.prose-post table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;margin:1.5em 0;font-size:.95em}.prose-post th,.prose-post td{border-bottom:1px solid var(--rule);padding:.6em .8em;text-align:left;vertical-align:top;word-break:break-word;overflow-wrap:anywhere}.prose-post th{font-weight:600;color:var(--ink)}.prose-post table td code,.prose-post table th code{white-space:normal!important;word-break:break-all;overflow-wrap:anywhere;font-size:.82em}.prose-post hr{border:none;border-top:1px solid var(--rule);margin:2.5em auto;width:40%}.about-prose>hr+p{color:var(--muted)}.tag-chip{display:inline-flex;align-items:center;font-size:var(--step--3);padding:.22rem .6rem;border-radius:9999px;background:var(--chip-bg);color:var(--chip-ink);font-weight:500;transition:background .15s ease,color .15s ease,transform .18s ease}.tag-chip:hover{background:var(--accent-soft);color:var(--accent-ink);transform:translateY(-1px) scale(1.04)}.tag-chip.active{background:var(--accent-strong);color:var(--on-accent)}.back-link{display:inline-flex;align-items:center;gap:.45rem;min-height:2rem;padding:.3rem .8rem .3rem .65rem;border:1px solid var(--rule);border-radius:9999px;background:var(--chip-bg);color:var(--chip-ink);font-size:var(--step--2);letter-spacing:.01em;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.back-link-arrow{display:inline-block;font-size:.9em}.back-link:hover{color:var(--accent-ink);background:var(--accent-soft);border-color:color-mix(in oklch,var(--accent) 40%,var(--rule))}.back-link:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}@media(prefers-reduced-motion:no-preference){.back-link-arrow{transition:transform var(--dur-base) var(--ease-out)}.back-link:hover .back-link-arrow{transform:translate(-2px)}}.variant-switch{display:inline-flex;gap:.25rem;padding:.25rem;margin:0 0 2rem;border:1px solid var(--rule);border-radius:9999px;background:var(--bg-elev);position:sticky;top:.75rem;z-index:30;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg-elev) 88%,transparent);box-shadow:var(--shadow-2)}.variant-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font-size:var(--step--2);font-weight:500;padding:.4rem .95rem;border-radius:9999px;cursor:pointer;transition:background .15s ease,color .15s ease}.variant-chip:hover{color:var(--ink)}.variant-chip.active{background:var(--accent-strong);color:var(--on-accent)}.variant-hidden{display:none}.reading-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--accent),color-mix(in oklch,var(--accent) 55%,white) 60%,color-mix(in oklch,var(--accent) 80%,white));box-shadow:0 0 8px color-mix(in oklch,var(--accent) 50%,transparent);z-index:60;width:0;transition:width .1s linear}:root.dark .reading-progress{background:linear-gradient(90deg,var(--accent),color-mix(in oklch,var(--accent) 70%,#064e3b) 60%,color-mix(in oklch,var(--accent) 85%,white))}@supports (animation-timeline: scroll()){.reading-progress{width:100%;transform:scaleX(0);transform-origin:0 50%;transition:none;animation:reading-progress-grow linear both;animation-timeline:scroll(root block)}@keyframes reading-progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}.toc{position:relative;padding:.25rem 0}.toc-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.85rem;padding-left:1rem}.toc-label{font-size:var(--step--4);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.toc-count{font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--4);color:var(--muted);padding:.05rem .4rem;border:1px solid var(--rule);border-radius:999px;opacity:.75}.toc-list{position:relative;list-style:none;padding:0;margin:0}.toc-list:before{content:"";position:absolute;left:.22rem;top:.6rem;bottom:.6rem;width:1px;background:var(--rule);pointer-events:none}.toc-fill{position:absolute;left:.22rem;top:.6rem;width:1px;height:0;background:linear-gradient(to bottom,color-mix(in oklch,var(--accent) 30%,transparent),var(--accent));pointer-events:none;transition:height .35s cubic-bezier(.4,0,.2,1);box-shadow:0 0 6px color-mix(in oklch,var(--accent) 60%,transparent)}.toc-item{margin:0;padding:0}.toc-item a{position:relative;display:flex;align-items:flex-start;gap:.7rem;padding:.4rem 0 .4rem 1rem;color:var(--muted);font-size:var(--step--2);line-height:1.4;transition:color .18s ease}.toc-item a:hover{color:var(--ink)}.toc-marker{position:absolute;left:0;top:.75rem;width:.45rem;height:.45rem;border-radius:999px;border:1px solid var(--rule);background:var(--bg-main);transition:all .2s ease;transform:translate(0)}.toc-item.depth-3 a{padding-left:1.6rem;font-size:var(--step--2)}.toc-item.depth-3 .toc-marker{left:.75rem;width:.32rem;height:.32rem;top:.82rem;opacity:.7}.toc-item a:hover .toc-marker{border-color:var(--muted)}.toc-item a.active{color:var(--accent-ink);font-weight:500}.toc-item a.active .toc-marker{background:var(--accent);border-color:var(--accent-ink);box-shadow:0 0 0 .18rem var(--accent-soft)}.toc-item a.active .toc-text{position:relative}.toc-item a.active .toc-text:after{content:"";position:absolute;left:-.7rem;top:50%;width:.25rem;height:1px;background:var(--accent);transform:translateY(-50%);opacity:.55}:root{--pagefind-ui-scale: .85;--pagefind-ui-primary: var(--accent);--pagefind-ui-text: var(--ink);--pagefind-ui-background: var(--bg-elev);--pagefind-ui-border: var(--rule);--pagefind-ui-tag: var(--chip-bg);--pagefind-ui-border-radius: .6rem;--pagefind-ui-font: "Inter", system-ui, sans-serif}.prose-post pre{position:relative}.prose-post pre code .line{display:inline-block;width:100%;padding:0 1rem;margin:0 -1rem}.prose-post pre code .highlighted{background-color:#34d3991f;box-shadow:inset 2px 0 0 var(--accent)}.prose-post pre code .highlighted-word{background-color:#34d39926;border-radius:4px;padding:1px 3px;margin:0 -2px}.prose-post pre code .focused{opacity:1}.prose-post pre:has(.focused) code .line:not(.focused){opacity:.35;filter:blur(.3px);transition:opacity .2s,filter .2s}.prose-post pre:hover:has(.focused) code .line:not(.focused){opacity:.7;filter:none}.prose-post pre code .diff.add{background-color:#34d3991f;box-shadow:inset 2px 0 #22c55e}.prose-post pre code .diff.add:before{content:"+";color:#22c55e;position:absolute;left:.35rem;font-weight:600}.prose-post pre code .diff.remove{background-color:#f871711f;box-shadow:inset 2px 0 #ef4444;opacity:.8}.prose-post pre code .diff.remove:before{content:"−";color:#ef4444;position:absolute;left:.35rem;font-weight:600}.prose-post pre code .highlighted.error{background-color:#ef444426;box-shadow:inset 2px 0 #ef4444}.prose-post pre code .highlighted.warning{background-color:#eab30826;box-shadow:inset 2px 0 #eab308}.code-wrap{position:relative}.code-copy{position:absolute;top:.55rem;right:.55rem;background:#ffffff14;color:#e7e4dc;border:1px solid rgba(255,255,255,.12);border-radius:.4rem;padding:.25rem .55rem;font-size:var(--step--3);font-family:ui-monospace,monospace;cursor:pointer;opacity:0;transition:opacity .15s,background .15s}.code-wrap:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{background:#ffffff24}.code-copy.copied{background:var(--accent-strong);color:var(--on-accent);border-color:var(--accent-strong);opacity:1}.code-wrap[data-title]:before{content:attr(data-title);display:block;background:#0f0f12;color:var(--muted);font-size:var(--step--3);font-family:ui-monospace,monospace;padding:.4rem 1rem;border:1px solid var(--rule);border-bottom:none;border-top-left-radius:.6rem;border-top-right-radius:.6rem}.code-wrap[data-title] pre{border-top-left-radius:0;border-top-right-radius:0;margin-top:0!important}.mermaid{margin:1.75em 0;text-align:center;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.6rem;padding:1rem;overflow-x:auto}.mermaid svg{max-width:100%;height:auto}.term{border-bottom:1px dotted var(--accent-ink);cursor:help;position:relative}.term:hover,.term:focus-visible{color:var(--accent-ink)}.term-popup{position:absolute;z-index:40;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-elev);color:var(--ink-soft);border:1px solid var(--rule);border-radius:.55rem;box-shadow:var(--shadow);padding:.7rem .9rem;font-size:var(--step--1);line-height:1.45;width:-moz-max-content;width:max-content;max-width:22rem;font-style:normal;font-weight:400;font-family:Inter,system-ui,sans-serif}.term-popup strong{color:var(--ink);font-weight:600}.newsletter-form{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.newsletter-form input[type=email]{flex:1;min-width:0;padding:.6rem .9rem;background:var(--bg-main);border:1px solid var(--rule);border-radius:.5rem;font-size:var(--step--1);color:var(--ink)}.newsletter-form input[type=email]:focus-visible{outline:none;border-color:var(--accent-ink);box-shadow:0 0 0 3px var(--accent-ring)}.newsletter-form button{padding:.6rem 1.1rem;background:var(--accent-strong);color:var(--on-accent);border:none;border-radius:.5rem;font-size:var(--step--1);font-weight:500;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.newsletter-form button:hover{background:var(--accent-hover)}.newsletter-form button:active{background:var(--accent-press)}.newsletter-status{margin-top:.5rem;font-size:var(--step--2);color:var(--muted)}.newsletter-status.success{color:var(--accent-ink)}.newsletter-status.error{color:var(--danger)}codapi-snippet{display:block;margin:-.5em 0 1.5em;border:1px solid var(--rule);border-top:none;border-radius:0 0 .6rem .6rem;padding:.5rem .9rem;background:var(--bg-elev);font-size:var(--step--2)}.wordmark{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.045em;line-height:.95;color:var(--ink);font-feature-settings:"ss01","cv11";transition:color .2s ease}.wordmark:hover,.wordmark .wordmark-szymon{color:var(--ink)}.wordmark .wordmark-says{color:var(--accent-ink);font-style:italic;font-weight:500}.wordmark .wordmark-dot{display:inline-block;width:.42em;height:.42em;border-radius:999px;background:var(--accent);margin-right:.32em;transform:translateY(-.08em);box-shadow:0 0 0 .12em var(--accent-soft);transition:transform .25s cubic-bezier(.5,1.7,.4,.9)}.wordmark:hover .wordmark-dot{transform:translateY(-.08em) scale(1.15)}.hero-plate{position:relative;padding:2.5rem 0 2rem;isolation:isolate}.hero-plate:before{content:"";position:absolute;top:-1rem;left:-3rem;width:18rem;height:18rem;z-index:-1;background:radial-gradient(circle at 30% 30%,var(--accent-soft),transparent 65%);opacity:.9;pointer-events:none;filter:blur(4px)}:root.dark .hero-plate:before{opacity:.55}.hero-kicker{display:inline-flex;align-items:center;gap:.45rem;font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--3);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding:.35rem .7rem;border-radius:999px;border:1px solid var(--rule);background:var(--bg-elev);margin-bottom:1.25rem}.hero-kicker:before{content:"";width:.42em;height:.42em;border-radius:999px;background:var(--accent);box-shadow:0 0 0 .15em var(--accent-soft);animation:hero-pulse 2.4s ease-in-out infinite}@keyframes hero-pulse{0%,to{opacity:1}50%{opacity:.55}}.post-title{font-family:Fraunces,Georgia,serif;font-size:var(--step-5);font-variation-settings:"opsz" 144,"wght" 600,"SOFT" 40;font-weight:600;line-height:1.04;letter-spacing:-.03em;color:var(--ink);text-wrap:balance;margin:0 0 1.25rem}.hero-motto{font-family:Fraunces,Georgia,serif;font-size:var(--step-4);font-variation-settings:"opsz" 120,"wght" 600,"SOFT" 40;line-height:1.08;letter-spacing:-.03em;color:var(--ink);max-width:26ch;text-wrap:balance}.hero-lede{font-size:var(--step-1);line-height:1.65;color:var(--muted);max-width:56ch}.btn-accent,.btn-quiet{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.2rem;border-radius:9999px;border:1px solid transparent;font-size:var(--step--1);font-weight:500;text-decoration:none;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn-accent{background:var(--accent-strong);color:var(--on-accent);box-shadow:var(--shadow-1)}.btn-accent:hover{background:var(--accent-hover);box-shadow:var(--shadow-2);transform:translateY(-1px)}.btn-accent:active{background:var(--accent-press);box-shadow:var(--shadow-1);transform:translateY(0)}.btn-quiet{border-color:var(--rule);color:var(--ink)}.btn-quiet:hover{border-color:var(--accent-ink);color:var(--accent-ink);background:var(--accent-soft)}.btn-quiet:active{background:var(--chip-bg)}.postcard{display:grid;grid-template-columns:6px 1fr;gap:1.25rem;padding:1.4rem 1rem;margin:0 -1rem;border-radius:.7rem;border-bottom:1px solid var(--rule);align-items:stretch;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}.postcard:last-child{border-bottom:none}.postcard:hover{background:color-mix(in srgb,var(--bg-elev) 70%,transparent);transform:translateY(-1px);box-shadow:var(--shadow-2)}.postcard-strip{border-radius:999px;min-height:3rem;align-self:stretch;opacity:.85;transition:opacity .2s ease,transform .25s ease,filter .25s ease}.postcard:hover .postcard-strip{opacity:1;transform:scaleY(1.04);filter:saturate(1.1)}.postcard-title{font-family:Fraunces,serif;font-size:var(--step-3);font-variation-settings:"opsz" 72,"wght" 600;line-height:1.2;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:0 0 .35rem;transition:color .2s ease}.postcard-title a{color:inherit;text-decoration:none}.postcard:hover .postcard-title{color:var(--accent-ink)}.postcard-desc{color:var(--muted);line-height:1.55;font-size:var(--step--1);margin:0 0 .6rem}.postcard-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--3);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}@media(min-width:768px){.postcard{padding:1.6rem 0}}@property --shimmer-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@property --shimmer-glow{syntax: "<percentage>"; inherits: false; initial-value: 0%;}.featured-card{display:grid;grid-template-columns:1fr;gap:1.25rem;padding:1.25rem;border:1px solid transparent;border-radius:1.2rem;position:relative;isolation:isolate;background:linear-gradient(var(--bg-elev),var(--bg-elev)) padding-box,conic-gradient(from var(--shimmer-angle, 0deg),transparent 0 50%,color-mix(in oklch,var(--accent) var(--shimmer-glow, 0%),transparent) 68%,transparent 82%) border-box,linear-gradient(var(--shimmer-rule, var(--rule)),var(--shimmer-rule, var(--rule))) border-box;transition:--shimmer-glow var(--dur-base) var(--ease-out),transform .25s ease,box-shadow var(--dur-base) var(--ease-out)}.featured-card:hover{--shimmer-glow: 70%;--shimmer-rule: color-mix(in oklch, var(--accent) 35%, var(--rule));transform:translateY(-2px);box-shadow:var(--shadow-2);animation:shimmer-spin 4.5s linear infinite}@keyframes shimmer-spin{to{--shimmer-angle: 360deg}}.featured-shell{container-type:inline-size}@container (min-width: 34rem){.featured-card{grid-template-columns:14rem 1fr;gap:1.75rem;padding:1.5rem}.featured-card .cover{height:100%!important;min-height:11rem}}.recent-item{display:grid;grid-template-columns:.45rem 1fr;gap:.7rem;align-items:start;padding:.1rem 0}.recent-dot{width:.42rem;height:.42rem;border-radius:999px;margin-top:.5rem;opacity:.8;box-shadow:0 0 0 0 transparent;transition:opacity .2s ease,transform .2s ease,box-shadow .25s ease}.recent-item:hover .recent-dot{opacity:1;transform:scale(1.3);box-shadow:0 0 0 .22rem color-mix(in oklch,var(--accent) 16%,transparent)}.action-bar{margin:var(--block-gap) 0 0;padding:1rem 1.1rem;border:1px solid var(--rule);border-radius:1rem;background:var(--bg-elev);display:flex;flex-direction:column;gap:.9rem}@media(min-width:900px){.action-bar{flex-direction:row;align-items:center;justify-content:space-between;gap:1.5rem}}.action-bar .reactions{margin:0}.action-bar .share-links{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.cover{display:flex;align-items:center;justify-content:center;isolation:isolate;box-shadow:var(--shadow)}.cover .cover-glyph{font-size:3.5rem;color:#ffffffd1;text-shadow:0 2px 20px rgba(0,0,0,.18);mix-blend-mode:screen;z-index:1;filter:drop-shadow(0 0 12px rgba(255,255,255,.25))}.cover.cover-ticket{display:grid;grid-template-columns:auto 1fr;align-items:center;padding:0 1.25rem 0 1.85rem;gap:1rem;box-shadow:var(--shadow),inset 0 1px #ffffff2e,inset 0 -1px #0000002e}.cover.cover-ticket:before{content:"";position:absolute;left:.95rem;top:.6rem;bottom:.6rem;width:2px;border-left:2px dotted rgba(255,255,255,.55);z-index:2;pointer-events:none}.ticket-scrim{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to left,#00000094,#00000085 34%,#0000 70%)}.ticket-glyph{font-size:3.6rem;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.25));z-index:1}@media(min-width:768px){.ticket-glyph{font-size:4.2rem}}.ticket-meta{z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;color:#fffffff5;text-shadow:0 1px 6px rgba(0,0,0,.25)}.ticket-brand{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.03em;font-size:1.1rem;opacity:.95}.ticket-brand em{font-style:italic;font-weight:500;opacity:.85}.ticket-line{display:inline-flex;gap:.4rem;align-items:baseline;font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--3);letter-spacing:.08em;text-transform:uppercase;opacity:.9}.ticket-dot{opacity:.7}.cover .cover-noise{position:absolute;inset:0;opacity:.15;mix-blend-mode:overlay;pointer-events:none;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.35) 0,transparent 45%),radial-gradient(circle at 80% 70%,rgba(0,0,0,.22) 0,transparent 50%)}:root.dark .cover .cover-glyph{color:#ffffffb8}.link-preview{position:absolute;z-index:60;max-width:320px;padding:.9rem 1rem;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.8rem;box-shadow:var(--shadow);font-size:var(--step--1);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease}.link-preview.visible{opacity:1;transform:translateY(0)}.link-preview-title{font-family:Fraunces,serif;font-weight:600;color:var(--ink);margin-bottom:.3rem;line-height:1.2}.link-preview-desc{color:var(--muted);line-height:1.45}.link-preview-meta{margin-top:.5rem;font-family:ui-monospace,monospace;font-size:var(--step--3);color:var(--muted)}.reactions{display:flex;gap:.5rem;flex-wrap:wrap;margin:2rem 0}.reaction-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:999px;border:1px solid var(--rule);background:var(--bg-elev);color:var(--ink);font-size:var(--step--1);cursor:pointer;transition:border-color .15s,transform .1s}.reaction-btn:hover{border-color:var(--accent-ink)}.reaction-btn:active{transform:scale(.96)}.reaction-btn.active{border-color:var(--accent-ink);background:var(--accent-soft);color:var(--accent-ink)}.reaction-count{font-family:ui-monospace,monospace;font-size:var(--step--2);color:var(--muted)}.reaction-btn.active .reaction-count{color:var(--accent-ink)}.not-found-stage{position:relative;display:inline-block;padding:.5rem 1.5rem}.not-found-num{display:inline-block;background:linear-gradient(180deg,var(--accent) 0%,color-mix(in oklch,var(--accent) 70%,transparent) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;animation:not-found-float 4.5s ease-in-out infinite;letter-spacing:-.04em;text-shadow:0 8px 24px color-mix(in oklch,var(--accent) 22%,transparent)}.not-found-plane{position:absolute;top:.6rem;right:-.4rem;color:var(--accent-ink);opacity:.8;animation:not-found-plane 6s ease-in-out infinite;transform-origin:50% 50%}@media(prefers-reduced-motion:reduce){.not-found-num,.not-found-plane{animation:none}}@keyframes not-found-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes not-found-plane{0%{transform:translate(0) rotate(-12deg);opacity:.85}35%{transform:translate(-18px,8px) rotate(-22deg);opacity:1}70%{transform:translate(8px,-10px) rotate(-4deg);opacity:.7}to{transform:translate(0) rotate(-12deg);opacity:.85}}.not-found-suggestions{list-style:none;padding:0;margin-top:1rem}.not-found-suggestions li{padding:.7rem .9rem;border:1px solid var(--rule);border-radius:.6rem;margin-bottom:.5rem;background:var(--bg-elev);transition:border-color .15s}.not-found-suggestions li:hover{border-color:var(--accent-ink)}.search-modal{position:fixed;inset:0;background:#0000008c;z-index:9999;display:none;align-items:flex-start;justify-content:center;padding:4rem 1rem 1rem;backdrop-filter:blur(6px);isolation:isolate}.search-modal.open{display:flex}.search-modal-content{position:relative;z-index:1;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.9rem;max-width:640px;width:100%;max-height:80vh;overflow:auto;box-shadow:var(--shadow);padding:1rem}.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.9rem}.rec-section{margin-bottom:3.5rem}.rec-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.rec-section-title{font-family:var(--font-serif, "Fraunces", serif);font-size:1.4rem;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.rec-section-link{font-size:var(--step--2);color:var(--muted);text-decoration:none;transition:color .15s ease}.rec-section-link:hover{color:var(--accent-ink)}.rec-card{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.05rem 1.05rem;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.75rem;text-decoration:none;color:inherit;position:relative;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}a.rec-card:hover{border-color:var(--accent-ink);transform:translateY(-2px);box-shadow:var(--shadow-2)}.rec-card-head{display:flex;align-items:center;gap:.5rem;font-size:var(--step--3);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.rec-card-glyph{font-size:1rem;filter:saturate(1.1)}.rec-card-kind{font-family:ui-monospace,Menlo,monospace;font-weight:600}.rec-card-rating{margin-left:auto;letter-spacing:0;color:var(--star);font-size:var(--step--2)}.rec-card-rating-dim{color:var(--rule)}.rec-card-title{font-family:var(--font-serif, "Fraunces", serif);font-size:1.05rem;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--ink)}a.rec-card:hover .rec-card-title{color:var(--accent-ink)}.rec-card-subtitle{font-size:var(--step--2);color:var(--muted);font-style:italic;margin-top:-.25rem}.rec-card-note{font-size:var(--step--1);color:var(--ink-soft, var(--ink));line-height:1.55}.rec-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.35rem}.rec-card-tag{font-size:var(--step--3);font-family:ui-monospace,Menlo,monospace;color:var(--muted);padding:.1rem .45rem;border:1px solid var(--rule);border-radius:999px}.rec-card--book{border-left:3px solid #b06a3b}.rec-card--youtube{border-left:3px solid #c8383d}.rec-card--link{border-left:3px solid #3c7ab8}.wip-badge{display:inline-flex;align-items:center;gap:.55rem;font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--3);letter-spacing:.22em;color:var(--muted);padding:.35rem .8rem;border-radius:999px;border:1px dashed var(--rule);background:repeating-linear-gradient(45deg,var(--bg-elev),var(--bg-elev) 6px,color-mix(in oklch,var(--accent-soft, var(--accent)) 35%,transparent) 6px,color-mix(in oklch,var(--accent-soft, var(--accent)) 35%,transparent) 12px)}.wip-badge-dot{width:.5em;height:.5em;border-radius:999px;background:var(--accent);box-shadow:0 0 0 .16em color-mix(in oklch,var(--accent) 25%,transparent);animation:hero-pulse 2.4s ease-in-out infinite}.quiz-trigger,.challenge-trigger{display:flex;align-items:center;gap:1rem;width:100%;text-align:left;padding:1rem 1.1rem;border:1px solid var(--rule);border-radius:.9rem;background:var(--bg-elev);cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.quiz-trigger:hover,.challenge-trigger:hover{border-color:var(--accent-ink);transform:translateY(-1px);box-shadow:var(--shadow-2)}.quiz-trigger-icon,.challenge-trigger-icon{flex-shrink:0;width:2.4rem;height:2.4rem;border-radius:.7rem;background:var(--accent-soft);color:var(--accent-ink);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--font-serif, "Fraunces", serif);font-size:1.15rem}.challenge-trigger-icon{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--1)}.quiz-trigger-body,.challenge-trigger-body{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.quiz-trigger-title,.challenge-trigger-title{font-family:var(--font-serif, "Fraunces", serif);font-size:1.05rem;font-weight:600;color:var(--ink)}.quiz-trigger-meta,.challenge-trigger-meta{font-size:var(--step--2);color:var(--muted)}.quiz-trigger-cta,.challenge-trigger-cta{font-size:var(--step--2);color:var(--accent-ink);font-weight:500;flex-shrink:0}.quiz-modal,.challenge-modal{position:fixed;inset:0;background:#0000008c;z-index:9999;display:none;align-items:flex-start;justify-content:center;padding:3rem 1rem 1rem;backdrop-filter:blur(6px);isolation:isolate}.quiz-modal.open,.challenge-modal.open{display:flex}.quiz-modal-content,.challenge-modal-content{position:relative;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.9rem;width:100%;max-width:720px;max-height:88vh;overflow:auto;box-shadow:var(--shadow-3)}.challenge-modal-content{max-width:860px}.quiz-modal-head,.challenge-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.3rem .6rem;position:sticky;top:0;background:color-mix(in srgb,var(--bg-elev) 92%,transparent);backdrop-filter:blur(6px);z-index:2;border-bottom:1px solid var(--rule)}.quiz-modal-eyebrow,.challenge-modal-eyebrow{font-size:var(--step--3);font-family:var(--font-mono, ui-monospace, monospace);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0}.quiz-modal-title,.challenge-modal-title{font-family:var(--font-serif, "Fraunces", serif);font-size:1.35rem;font-weight:600;color:var(--ink);margin:.15rem 0 0;letter-spacing:-.01em}.quiz-close,.challenge-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid var(--rule);color:var(--muted);width:2rem;height:2rem;border-radius:9999px;font-size:1.2rem;line-height:1;cursor:pointer;flex-shrink:0;transition:color .15s ease,border-color .15s ease}.quiz-close:hover,.challenge-close:hover{color:var(--ink);border-color:var(--accent-ink)}.quiz-form{padding:1rem 1.3rem 1.3rem;display:flex;flex-direction:column;gap:1.4rem}.quiz-question{border:none;margin:0;padding:0}.quiz-question-text{font-size:1rem;color:var(--ink);font-weight:500;line-height:1.5;padding:0;margin-bottom:.6rem}.quiz-question-num{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--2);color:var(--accent-ink);margin-right:.25rem}.quiz-options{display:flex;flex-direction:column;gap:.45rem}.quiz-option{display:flex;align-items:flex-start;gap:.65rem;padding:.6rem .8rem;border:1px solid var(--rule);border-radius:.55rem;cursor:pointer;font-size:var(--step--1);color:var(--ink);transition:border-color .15s ease,background .15s ease}.quiz-option:hover{border-color:var(--accent-ink);background:color-mix(in oklch,var(--accent-soft) 35%,transparent)}.quiz-option input[type=radio]{margin-top:.18rem;accent-color:var(--accent);cursor:pointer}.quiz-question.is-checked .quiz-option{cursor:default}.quiz-question.is-checked .quiz-option:hover{background:transparent}.quiz-option.is-correct{border-color:#16a34a;background:color-mix(in srgb,#16a34a 12%,transparent)}.quiz-option.is-wrong{border-color:#dc2626;background:color-mix(in srgb,#dc2626 12%,transparent)}.quiz-explanation{margin-top:.5rem;padding:.6rem .8rem;font-size:var(--step--1);color:var(--muted);background:var(--bg-main);border-left:3px solid var(--accent-ink);border-radius:.3rem}.quiz-actions,.challenge-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.5rem}.quiz-btn,.challenge-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--rule);background:var(--bg-elev);color:var(--ink);font-size:var(--step--1);padding:.55rem 1.1rem;border-radius:9999px;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.quiz-btn:hover,.challenge-btn:hover{border-color:var(--accent-ink);color:var(--accent-ink)}.quiz-btn-primary,.challenge-btn-primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.quiz-btn-primary:hover,.challenge-btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.quiz-btn-primary:active,.challenge-btn-primary:active{background:var(--accent-press);border-color:var(--accent-press)}.quiz-result{padding:.9rem 1rem;border:1px solid var(--rule);border-radius:.6rem;background:var(--bg)}.quiz-result-score{font-family:var(--font-serif, "Fraunces", serif);font-size:1.25rem;font-weight:600;color:var(--ink);margin:0 0 .25rem}.quiz-result-msg{font-size:var(--step--1);color:var(--muted);margin:0}.challenge-modal-body{padding:1rem 1.3rem 1.3rem;display:flex;flex-direction:column;gap:1rem}.challenge-description{font-size:var(--step--1);color:var(--ink);line-height:1.55}.challenge-description p{margin:0;white-space:pre-wrap}.challenge-hints summary{cursor:pointer;font-size:var(--step--1);color:var(--accent-ink);padding:.4rem 0}.challenge-hints::details-content,.challenge-stdin::details-content{block-size:0;overflow:hidden;transition:block-size var(--dur-base) var(--ease-out),content-visibility var(--dur-base) allow-discrete}.challenge-hints[open]::details-content,.challenge-stdin[open]::details-content{block-size:auto}.challenge-hints ol{margin:.4rem 0 0 1.2rem;padding:0;font-size:var(--step--1);color:var(--muted);display:flex;flex-direction:column;gap:.3rem}.challenge-editor-wrap{border:1px solid var(--rule);border-radius:.6rem;overflow:hidden;background:var(--inline-code-bg)}.challenge-editor-bar{display:flex;align-items:center;justify-content:space-between;padding:.4rem .7rem;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--bg-elev) 60%,transparent)}.challenge-editor-lang{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--3);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.challenge-editor-actions{display:flex;gap:.3rem}.challenge-btn-mini{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--rule);background:var(--bg-elev);color:var(--muted);font-size:var(--step--3);padding:.2rem .55rem;border-radius:.3rem;cursor:pointer;transition:color .15s ease,border-color .15s ease}.challenge-btn-mini:hover{color:var(--accent-ink);border-color:var(--accent-ink)}.challenge-editor{display:block;width:100%;min-height:18rem;max-height:60vh;padding:.9rem 1rem;border:none;outline:none;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--1);line-height:1.55;color:var(--ink);background:transparent;resize:vertical;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.challenge-editor:focus-visible{outline:2px solid var(--accent-ink);outline-offset:-2px}.challenge-stdin summary{cursor:pointer;font-size:var(--step--2);color:var(--muted);padding:.3rem 0}.challenge-stdin summary:hover{color:var(--accent-ink)}.challenge-stdin summary code{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--2)}.challenge-stdin-hint{font-size:var(--step--2);color:var(--muted);margin:.3rem 0}.challenge-stdin-hint code{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--3);background:var(--inline-code-bg);padding:.05rem .3rem;border-radius:.2rem}.challenge-stdin-input{display:block;width:100%;min-height:4rem;padding:.5rem .7rem;border:1px solid var(--rule);border-radius:.4rem;background:var(--inline-code-bg);font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--2);line-height:1.5;color:var(--ink);resize:vertical}.challenge-output{border:1px solid var(--rule);border-radius:.6rem;overflow:hidden}.challenge-output[data-kind=ok]{border-color:#16a34a}.challenge-output[data-kind=error]{border-color:#dc2626}.challenge-output-head{display:flex;align-items:center;justify-content:space-between;padding:.4rem .8rem;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--bg-elev) 60%,transparent)}.challenge-output[data-kind=ok] .challenge-output-head{background:color-mix(in srgb,#16a34a 14%,transparent)}.challenge-output[data-kind=error] .challenge-output-head{background:color-mix(in srgb,#dc2626 14%,transparent)}.challenge-output-label{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--3);color:var(--ink);text-transform:uppercase;letter-spacing:.08em}.challenge-output-meta{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--3);color:var(--muted)}.challenge-output-body{margin:0;padding:.8rem 1rem;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--2);line-height:1.55;color:var(--ink);background:var(--bg);white-space:pre-wrap;word-break:break-word;max-height:22rem;overflow:auto}.challenge-btn:disabled,.challenge-btn-primary:disabled{opacity:.6;cursor:progress}.challenge-solution{border:1px solid var(--rule);border-radius:.6rem;background:var(--bg);padding:.7rem .9rem}.challenge-solution-label{font-size:var(--step--3);font-family:var(--font-mono, ui-monospace, monospace);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .4rem}.challenge-solution pre{margin:0;overflow:auto}.challenge-solution code{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--step--1);line-height:1.55;color:var(--ink);white-space:pre}@media(max-width:640px){.quiz-modal,.challenge-modal{padding:1rem .5rem .5rem}.quiz-modal-content,.challenge-modal-content{max-height:92vh}}@keyframes card-enter{0%{opacity:0;translate:0 1.5rem}to{opacity:1;translate:0 0}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.reveal:has(.postcard,a.rec-card){opacity:1;transform:none;transition:none}.postcard,a.rec-card{animation:card-enter var(--dur-base) linear both;animation-timeline:view();animation-range:entry 5% entry 45%}}}@media(hover:hover)and (pointer:fine){.postcard,a.rec-card{position:relative;isolation:isolate}.postcard:after,.featured-card:after,a.rec-card:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity var(--dur-base) var(--ease-out);background:radial-gradient(16rem circle at var(--mx, 50%) var(--my, 50%),color-mix(in oklch,var(--accent) 16%,transparent),transparent 68%)}.postcard:hover:after,.featured-card:hover:after,a.rec-card:hover:after{opacity:1}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.hero-kicker:before{animation:none}.postcard:hover,.postcard:hover .postcard-strip,.featured-card:hover,a.rec-card:hover,.btn-accent:hover,.quiz-trigger:hover,.challenge-trigger:hover,.tag-chip:hover,.wordmark:hover .wordmark-dot,.recent-item:hover .recent-dot{transform:none}.challenge-hints::details-content,.challenge-stdin::details-content{transition:none}.featured-card:hover{animation:none}html{scroll-behavior:auto}}.corner-dock{position:fixed;top:1rem;right:1rem;z-index:45;display:flex;align-items:flex-start;gap:.5rem}.focus-timer{--phase-ink: var(--accent-ink);--phase-tint: var(--accent-soft);--phase-glow: var(--accent);position:relative;display:none}.focus-timer.ready{display:block}.focus-timer[data-phase=break],.focus-timer[data-phase=long]{--phase-ink: var(--rest-ink);--phase-tint: var(--rest-soft);--phase-glow: var(--rest)}.focus-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem .4rem .55rem;border-radius:9999px;border:1px solid var(--rule);background:var(--bg-elev);box-shadow:var(--shadow-2);color:var(--ink);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.focus-pill:hover{border-color:var(--phase-ink);transform:translateY(-1px)}.focus-pill-time{font-family:Fraunces,Georgia,serif;font-variation-settings:"opsz" 24,"wght" 600;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-size:var(--step--1);letter-spacing:-.01em;line-height:1}.focus-pill-label{font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--4);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.focus-timer[data-state=paused] .focus-pill-time{color:var(--muted)}.focus-timer[data-state=running] .focus-pill{border-color:color-mix(in oklch,var(--phase-ink) 45%,var(--rule))}.focus-ring{transform:rotate(-90deg)}.focus-ring circle{fill:none;stroke-linecap:round}.focus-ring-track{stroke:var(--rule)}.focus-ring-value{stroke:var(--phase-ink);transition:stroke-dashoffset var(--dur-base) linear,stroke var(--dur-base) var(--ease-out)}.focus-ring-mini{width:1.4rem;height:1.4rem;flex:none}.focus-ring-mini circle{stroke-width:2.6}.focus-ring-big{width:100%;height:100%}.focus-ring-big circle{stroke-width:7}.focus-ring-big .focus-ring-value{filter:drop-shadow(0 0 6px color-mix(in oklch,var(--phase-glow) 45%,transparent))}.focus-panel{width:min(19.5rem,calc(100vw - 2rem));padding:.95rem 1.05rem .85rem;border:1px solid var(--rule);border-radius:1.1rem;background:var(--bg-elev);box-shadow:var(--shadow-3);display:grid;gap:.8rem}.focus-panel[hidden],.focus-timer[data-open=true] .focus-pill{display:none}.focus-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.focus-phase{font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--4);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--phase-ink);background:var(--phase-tint);padding:.3rem .6rem;border-radius:999px}.focus-close{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.6rem;color:var(--muted);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.focus-close:hover{color:var(--ink);background:var(--chip-bg)}.focus-dial{position:relative;width:8.6rem;height:8.6rem;margin:.1rem auto 0}.focus-dial-face{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:.5rem}.focus-time{font-family:Fraunces,Georgia,serif;font-variation-settings:"opsz" 96,"wght" 600;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-size:1.95rem;font-weight:600;line-height:1;letter-spacing:-.02em;color:var(--ink)}.focus-dots{display:inline-flex;gap:.32rem}.focus-dot{width:.34rem;height:.34rem;border-radius:999px;background:var(--rule);transition:background var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.focus-dot.done{background:var(--phase-ink);transform:scale(1.2)}.focus-status{margin:0;min-height:2.1rem;font-size:var(--step--3);line-height:1.45;text-align:center;color:var(--muted)}.focus-actions{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:.4rem}.focus-btn{min-height:2.4rem;padding:.5rem .4rem;border-radius:.6rem;border:1px solid var(--rule);background:transparent;color:var(--ink-soft);font-size:var(--step--2);font-weight:500;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.focus-btn:hover{border-color:var(--phase-ink);color:var(--phase-ink);background:var(--phase-tint)}.focus-btn-primary{background:var(--phase-ink);border-color:var(--phase-ink);color:var(--on-accent)}.focus-btn-primary:hover{background:color-mix(in oklch,var(--phase-ink) 88%,black);border-color:color-mix(in oklch,var(--phase-ink) 88%,black);color:var(--on-accent)}.focus-btn-primary:active{background:color-mix(in oklch,var(--phase-ink) 76%,black)}.focus-presets{display:flex;gap:.35rem}.focus-preset{flex:1;min-height:2.1rem;padding:.3rem .2rem;border:1px solid transparent;border-radius:999px;background:var(--chip-bg);color:var(--chip-ink);font-size:var(--step--3);font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.focus-preset:hover{background:var(--phase-tint);color:var(--phase-ink)}.focus-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.focus-field{display:grid;gap:.25rem;font-family:ui-monospace,Cascadia Code,monospace;font-size:var(--step--4);letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--muted)}.focus-field input{width:100%;min-height:2.3rem;padding:.4rem .3rem;border:1px solid var(--rule);border-radius:.5rem;background:var(--bg-main);color:var(--ink);font-family:inherit;font-size:var(--step--1);font-variant-numeric:tabular-nums;text-align:center}.focus-field input:focus-visible{outline:2px solid var(--phase-ink);outline-offset:1px}.focus-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid var(--rule);padding-top:.55rem}.focus-mute{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .4rem;border:0;border-radius:.5rem;background:none;color:var(--muted);font-size:var(--step--3);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.focus-mute:hover{color:var(--ink);background:var(--chip-bg)}.focus-hint{font-size:var(--step--4);color:var(--muted);text-align:right}.focus-timer[data-muted=true] .focus-mute-on,.focus-timer[data-muted=false] .focus-mute-off{display:none}@media(prefers-reduced-motion:no-preference){.focus-timer[data-state=running] .focus-pill{animation:focus-breathe 4s ease-in-out infinite}.focus-timer.chiming .focus-pill{animation:focus-knock .6s var(--ease-out) 3}}@keyframes focus-breathe{0%,to{box-shadow:var(--shadow-2)}50%{box-shadow:var(--shadow-2),0 0 0 .3rem color-mix(in oklch,var(--phase-glow) 14%,transparent)}}@keyframes focus-knock{0%,to{transform:none}35%{transform:scale(1.06)}}@media(max-width:640px){.corner-dock{top:.75rem;right:.75rem}.focus-pill-label{display:none}.focus-btn,.focus-preset,.focus-field input{min-height:2.75rem}.focus-close{width:2.75rem;height:2.75rem}}@media print{.corner-dock{display:none!important}}.progress-track{display:block;width:100%;height:.3rem;border-radius:9999px;background:var(--chip-bg);overflow:hidden}.progress-fill{display:block;height:100%;width:var(--value, 0%);border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-strong))}@media(prefers-reduced-motion:no-preference){.progress-fill{transition:width var(--dur-base) var(--ease-out)}}.read-sentinel{height:1px;margin:0}.course-level{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:9999px;background:var(--chip-bg);color:var(--chip-ink);font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.course-level.is-exam{background:var(--accent-soft);color:var(--accent-ink)}.course-resume{display:inline-flex;align-items:center;gap:.4rem;min-height:2.4rem;padding:.45rem 1rem;border-radius:9999px;background:var(--accent-strong);color:var(--on-accent);font-size:var(--step--2);font-weight:500;text-decoration:none;box-shadow:var(--shadow-1);transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.course-resume:hover{background:var(--accent-hover);box-shadow:var(--shadow-2);transform:translateY(-1px)}.course-resume:active{background:var(--accent-press);box-shadow:var(--shadow-1);transform:translateY(0)}.course-grid{display:grid;gap:1rem}@media(min-width:52rem){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.course-card{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1.15rem 1.15rem;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.75rem;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.course-card:hover{border-color:var(--accent-ink);box-shadow:var(--shadow-2)}.course-card-head{display:flex;align-items:center;gap:.5rem}.course-card-title{font-family:var(--font-serif, "Fraunces", serif);font-size:1.15rem;font-weight:600;line-height:1.25;letter-spacing:-.01em}.course-card-title a{color:var(--ink);text-decoration:none}.course-card-title a:hover{color:var(--accent-ink)}.course-card-desc{font-size:var(--step--1);line-height:1.55;color:var(--ink-soft, var(--ink))}.course-card-meta{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);color:var(--muted)}.course-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;margin-top:auto;padding-top:.35rem}.course-card-link{font-size:var(--step--2);color:var(--muted);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}.course-card-link:hover{color:var(--accent-ink)}.course-summary{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:.9rem 1.05rem;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.75rem}.course-summary-progress{display:grid;gap:.4rem;flex:1 1 12rem;min-width:0}.course-nav-count{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);color:var(--muted)}.course-nav{display:grid;gap:.7rem;margin-bottom:2rem;padding:1rem 1.15rem;background:var(--bg-elev);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:.75rem}.course-nav-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.1rem .7rem}.course-nav-emoji{font-size:1.35rem;line-height:1}.course-nav-ident{min-width:0}.course-nav-head .course-nav-count{justify-self:end;white-space:nowrap}.course-nav-eyebrow{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.course-nav-title{display:block;font-family:var(--font-serif, "Fraunces", serif);font-size:1rem;font-weight:600;line-height:1.3;color:var(--ink);text-decoration:none}.course-nav-title:hover{color:var(--accent-ink)}.course-nav-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;border-top:1px solid var(--rule);padding-top:.7rem}.course-nav-step{display:grid;gap:.15rem;min-width:0;color:var(--accent-ink);text-decoration:none}.course-nav-step-label{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--4);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.course-nav-step-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:var(--step--2);line-height:1.35}.course-nav-step:hover .course-nav-step-title{text-decoration:underline}.course-nav-step:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px;border-radius:.3rem}.course-nav-step.is-next{justify-items:end;text-align:right}.course-nav-step.is-muted{color:var(--muted)}@media(max-width:30rem){.course-nav-head{grid-template-columns:auto minmax(0,1fr)}.course-nav-head .course-nav-count{grid-column:2;justify-self:start}.course-nav-foot{grid-template-columns:minmax(0,1fr);gap:.85rem}.course-nav-step.is-next{justify-items:start;text-align:left}}.lesson-list{list-style:none;margin:2.5rem 0 0;padding:0;border-top:1px solid var(--rule)}.lesson-row{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;align-items:start;gap:.9rem;padding:1rem .2rem;border-bottom:1px solid var(--rule)}.lesson-number{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--2);color:var(--muted);padding-top:.15rem}.lesson-row.is-done .lesson-number{color:var(--accent-ink)}.lesson-body{display:grid;gap:.3rem;min-width:0}.lesson-title{font-family:var(--font-serif, "Fraunces", serif);font-size:1rem;font-weight:600;line-height:1.3;color:var(--ink);text-decoration:none}.lesson-title:hover{color:var(--accent-ink)}.lesson-desc{font-size:var(--step--1);line-height:1.5;color:var(--muted)}.lesson-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);color:var(--muted)}.lesson-chip{display:inline-flex;align-items:center;padding:.05rem .45rem;border:1px solid var(--rule);border-radius:9999px;font-family:ui-monospace,Menlo,monospace;font-size:var(--step--4);color:var(--muted)}.lesson-chip-score{border-color:transparent;background:var(--accent-soft);color:var(--accent-ink)}.lesson-chip-score[hidden]{display:none}.lesson-check{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:1px solid var(--rule);border-radius:9999px;background:none;color:transparent;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.lesson-check-mark{font-size:var(--step--1);line-height:1}.lesson-check:hover{border-color:var(--accent-ink);color:var(--accent-ink)}.lesson-check[aria-pressed=true]{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.lesson-check[aria-pressed=true]:hover{background:var(--accent-hover)}.lesson-check:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.course-exam{display:grid;gap:.9rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--rule)}.course-exam-title{font-family:var(--font-serif, "Fraunces", serif);font-size:var(--step-2);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.course-exam-badge{justify-self:start;padding:.3rem .7rem;border-radius:9999px;background:var(--accent-soft);color:var(--accent-ink);font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3)}.course-exam-badge[hidden]{display:none}.course-exam-empty{padding:1rem 1.1rem;border:1px dashed var(--rule);border-radius:.75rem;font-size:var(--step--1);line-height:1.6;color:var(--muted);max-width:56ch}.resume-panel{margin-bottom:2.5rem;padding:.95rem 1.1rem;background:var(--accent-soft);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:.75rem}.resume-eyebrow{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}.resume-link{font-family:var(--font-serif, "Fraunces", serif);font-size:1.1rem;font-weight:600;line-height:1.3;color:var(--ink);text-decoration:none}.resume-link:hover{color:var(--accent-ink)}.resume-meta{margin-top:.25rem;font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);color:var(--muted)}.saved-heading{font-family:var(--font-serif, "Fraunces", serif);font-size:var(--step-2);font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-bottom:1rem}.saved-empty{font-size:var(--step--1);line-height:1.6;color:var(--muted);max-width:56ch}.saved-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.saved-list[hidden]{display:none}.saved-item{display:flex;align-items:baseline;flex-wrap:wrap;gap:.6rem;padding:.75rem .2rem;border-bottom:1px solid var(--rule)}.saved-item a{font-family:var(--font-serif, "Fraunces", serif);font-size:1rem;font-weight:600;color:var(--ink);text-decoration:none}.saved-item a:hover{color:var(--accent-ink)}.saved-meta{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--3);color:var(--muted)}.saved-reset{margin-top:1.25rem;min-height:2.4rem;padding:.45rem 1rem;border:1px solid var(--rule);border-radius:9999px;background:none;color:var(--muted);font-size:var(--step--2);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.saved-reset:hover{color:var(--danger);border-color:var(--danger)}.saved-reset:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.75rem;margin-bottom:1.5rem}.stat-cell{display:grid;gap:.2rem;padding:.85rem .95rem;background:var(--bg-elev);border:1px solid var(--rule);border-radius:.75rem}.stat-value{font-family:var(--font-serif, "Fraunces", serif);font-size:1.6rem;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}.stat-label{font-family:ui-monospace,Menlo,monospace;font-size:var(--step--4);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.stat-courses{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.stat-course{display:grid;gap:.3rem}.stat-course a{font-size:var(--step--1);font-weight:500;color:var(--ink);text-decoration:none}.stat-course a:hover{color:var(--accent-ink)}.stat-weak{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--rule)}.stat-weak ul{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.35rem}.stat-weak a{font-size:var(--step--1);color:var(--accent-ink);text-decoration:none}.stat-weak a:hover{text-decoration:underline}@media(min-width:40rem){.stat-course{grid-template-columns:minmax(0,1fr) 7rem auto;align-items:center;gap:.9rem}}@media(max-width:640px){.lesson-row{grid-template-columns:1.5rem minmax(0,1fr) auto}.lesson-check{width:2.75rem;height:2.75rem}.course-resume,.saved-reset{min-height:2.75rem}}.theme-switch{--track-w: 3rem;--track-h: 1.5rem;--thumb: 1.125rem;--thumb-pad: .1875rem;display:inline-flex;align-items:center;justify-content:center;gap:.2rem;padding:.15rem;border:0;border-radius:9999px;background:none;color:var(--muted);cursor:pointer}.theme-switch-track{position:relative;display:block;width:var(--track-w);height:var(--track-h);border:1px solid var(--rule);border-radius:9999px;background:var(--chip-bg)}.theme-switch:hover .theme-switch-track{border-color:var(--accent)}.theme-switch:active .theme-switch-track{background:color-mix(in oklch,var(--chip-bg) 88%,var(--ink))}.theme-switch:focus-visible{outline:none}.theme-switch:focus-visible .theme-switch-track{outline:2px solid var(--accent-ink);outline-offset:2px}.theme-switch-thumb{position:absolute;top:var(--thumb-pad);left:var(--thumb-pad);display:grid;place-items:center;width:var(--thumb);height:var(--thumb);border-radius:9999px;background:var(--bg-elev);box-shadow:var(--shadow-1);color:var(--accent-ink)}:root.dark .theme-switch .theme-switch-thumb{transform:translate(calc(var(--track-w) - var(--thumb) - 2 * var(--thumb-pad) - 2px))}.theme-switch-icon{width:.8rem;height:.8rem}.theme-switch-hint{position:absolute;top:50%;width:.7rem;height:.7rem;margin-top:-.35rem;color:var(--muted)}.theme-switch-hint.is-sun{left:.28rem}.theme-switch-hint.is-moon{right:.28rem}.theme-switch .theme-switch-hint.is-sun,.theme-switch .theme-switch-icon.is-moon{display:none}:root.dark .theme-switch .theme-switch-hint.is-sun,:root.dark .theme-switch .theme-switch-icon.is-moon{display:block}:root.dark .theme-switch .theme-switch-hint.is-moon,:root.dark .theme-switch .theme-switch-icon.is-sun{display:none}.theme-switch.is-dock{--track-w: 3.25rem;--track-h: 1.6rem;--thumb: 1.2rem;padding:.3rem .32rem;border:1px solid var(--rule);border-radius:9999px;background:var(--bg-elev);box-shadow:var(--shadow-2)}.theme-switch.is-dock:hover{border-color:var(--accent-ink);transform:translateY(-1px)}.theme-switch.is-stacked{flex-direction:column;gap:.22rem;min-width:2.75rem;min-height:2.75rem;padding:.15rem .5rem}.theme-switch-text{font-size:var(--step--4);line-height:1.1;color:var(--muted)}@media(max-width:767px){.theme-switch.is-dock{display:none}}@media(prefers-reduced-motion:no-preference){.theme-switch,.theme-switch-track{transition:background var(--dur-base) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.theme-switch-thumb{transition:transform var(--dur-base) var(--ease-out)}}@media(forced-colors:active){.theme-switch-thumb{border:1px solid CanvasText}}.hover\:border-\[var\(--accent-ink\)\]:hover{border-color:var(--accent-ink)}.hover\:\!bg-\[var\(--accent-strong\)\]:hover{background-color:var(--accent-strong)!important}.hover\:bg-\[var\(--accent-hover\)\]:hover{background-color:var(--accent-hover)}.hover\:\!text-\[var\(--on-accent\)\]:hover{color:var(--on-accent)!important}.hover\:text-\[var\(--accent-ink\)\]:hover{color:var(--accent-ink)}.hover\:text-\[var\(--ink\)\]:hover{color:var(--ink)}.hover\:text-emerald-600:hover{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.hover\:opacity-90:hover{opacity:.9}.group:hover .group-hover\:text-\[var\(--accent-ink\)\]{color:var(--accent-ink)}@media(min-width:768px){.md\:mb-0{margin-bottom:0}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-28{height:7rem}.md\:h-40{height:10rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:p-12{padding:3rem}.md\:p-8{padding:2rem}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-9xl{font-size:8rem;line-height:1}.md\:text-\[1\.6rem\]{font-size:1.6rem}.md\:text-\[1\.9rem\]{font-size:1.9rem}.md\:text-\[3\.25rem\]{font-size:3.25rem}.md\:text-\[4\.5rem\]{font-size:4.5rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:block{display:block}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:grid-cols-\[minmax\(0\,1fr\)_14rem\]{grid-template-columns:minmax(0,1fr) 14rem}.lg\:gap-12{gap:3rem}.lg\:p-16{padding:4rem}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
