*,:after,:before{--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(147 197 253/0.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(147 197 253/0.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: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:rgb(var(--border)/1)}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-body),ui-sans-serif,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,pre,samp{font-family:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:rgb(var(--bg));color:rgb(var(--text));font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;padding-bottom:var(--resume-banner-h,0)}::-moz-selection{background-color:rgb(var(--accent)/.22)}::selection{background-color:rgb(var(--accent)/.22)}:focus-visible{outline:2px solid rgb(var(--accent));outline-offset:2px}[id]{scroll-margin-top:calc(var(--header-h) + var(--reading-bar-h, 0px) + 24px)}.\!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}}.prose{color:var(--tw-prose-body);max-width:68ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:18px}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:600;text-decoration-thickness:1px;text-decoration-color:rgb(var(--accent)/.4);text-underline-offset:3px;transition:text-decoration-color .15s ease}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:700}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:600;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:48px;margin-bottom:48px}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:400;font-style:normal;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;border-left-width:3px;padding-left:18px}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:44px;margin-top:0;margin-bottom:12px;line-height:1.08;letter-spacing:-.025em}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:27px;margin-top:64px;margin-bottom:16px;line-height:1.2;letter-spacing:-.02em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:750;font-size:20px;margin-top:36px;margin-bottom:10px;line-height:1.3;letter-spacing:-.01em}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;margin-top:28px;margin-bottom:8px;line-height:1.35;font-size:18px}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;border-radius:12px}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:400;font-size:.84em;font-family:var(--font-mono),ui-monospace,monospace;background-color:rgb(var(--surface-2));border-radius:6px;padding:3px 6px}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:14.5px;line-height:1.7;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:12px;padding-inline-end:1.1428571em;padding-inline-start:1.1428571em;font-family:var(--font-mono),ui-monospace,monospace;padding:16px 18px}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:0;margin-bottom:0;font-size:15px;line-height:1.45}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:rgb(var(--text));--tw-prose-headings:rgb(var(--text));--tw-prose-lead:rgb(var(--text-muted));--tw-prose-links:rgb(var(--accent));--tw-prose-bold:rgb(var(--text));--tw-prose-counters:rgb(var(--text-subtle));--tw-prose-bullets:rgb(var(--text-subtle));--tw-prose-hr:rgb(var(--border));--tw-prose-quotes:rgb(var(--text));--tw-prose-quote-borders:rgb(var(--border-strong));--tw-prose-captions:rgb(var(--text-subtle));--tw-prose-kbd:rgb(var(--text));--tw-prose-kbd-shadows:var(--border);--tw-prose-code:rgb(var(--text));--tw-prose-pre-code:rgb(var(--code-text));--tw-prose-pre-bg:rgb(var(--code-bg));--tw-prose-th-borders:rgb(var(--border));--tw-prose-td-borders:rgb(var(--border));--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:rgb(255 255 255/10%);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0/50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:18px;line-height:1.72}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:6px;margin-bottom:6px}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose{font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif}.prose :where(h1,h2,h3,h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:rgb(var(--text));text-wrap:balance}.prose :where(h2+*,h3+*,h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(ul,ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:18px;padding-left:1.3em}.prose :where(a code,h1 code,h2 code,h3 code,h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.edge-fade{--fade-top:0px;--fade-bottom:0px;-webkit-mask-image:linear-gradient(to bottom,transparent,rgb(0 0 0/.25) calc(var(--fade-top) / 2),#000 var(--fade-top),#000 calc(100% - var(--fade-bottom)),rgb(0 0 0/.25) calc(100% - var(--fade-bottom) / 2),transparent);mask-image:linear-gradient(to bottom,transparent,rgb(0 0 0/.25) calc(var(--fade-top) / 2),#000 var(--fade-top),#000 calc(100% - var(--fade-bottom)),rgb(0 0 0/.25) calc(100% - var(--fade-bottom) / 2),transparent);scroll-padding-block:44px}.edge-fade[data-fade-top]{--fade-top:32px}.edge-fade[data-fade-bottom]{--fade-bottom:32px}.btn{--edge:rgb(var(--border-strong));display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:6px 18px;border:2px solid rgb(var(--border-strong));border-radius:14px;background:rgb(var(--bg));box-shadow:0 3px 0 var(--edge);color:rgb(var(--text));font-size:15px;font-weight:800;line-height:1.25;letter-spacing:.005em;text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .12s var(--ease-press),box-shadow .12s var(--ease-press),background-color .15s ease,border-color .15s ease}.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}.btn:focus-visible{outline-offset:3px}.btn-primary{--edge:rgb(var(--btn-edge));border-color:rgb(var(--btn));background:rgb(var(--btn));color:#fff}.btn-ok{--edge:rgb(var(--success-btn-edge));border-color:rgb(var(--success-btn));background:rgb(var(--success-btn));color:#fff}.btn-lg{min-height:52px;padding:8px 26px;border-radius:16px;font-size:16px}.btn-sm{min-height:40px;padding:4px 14px;border-radius:12px;font-size:14.5px}@media (hover:hover) and (pointer:fine){.btn:hover{background:rgb(var(--surface))}.btn-primary:hover{background:rgb(var(--btn)/.92)}.btn-ok:hover{background:rgb(var(--success-btn)/.92)}}.chip{display:inline-flex;align-items:center;max-width:100%;min-height:28px;padding:2px 11px;border-radius:999px;background:rgb(var(--surface-2));color:rgb(var(--text-muted));font-size:13.5px;font-weight:600;line-height:1.3}.chip-accent{background:rgb(var(--accent-soft));color:rgb(var(--accent));font-weight:700}.chip-sm{min-height:24px;padding:1px 9px;font-size:12.5px}.ring{--size:56px;--hole:6px;position:relative;display:grid;flex:none;place-items:center;width:var(--size);height:var(--size);border-radius:50%;background:conic-gradient(rgb(var(--success-fill)) calc(var(--p) * 1%),rgb(var(--surface-2)) 0)}.ring:before{content:"";position:absolute;inset:var(--hole);border-radius:50%;background:rgb(var(--ring-hole,var(--bg)))}.ring>span{position:relative;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.ring small{margin-left:1px;font-size:11px;font-weight:700}.ring-sm{--size:34px;--hole:4px}.ring-sm>span{font-size:13px}.path{margin:0;padding:0;list-style:none}.path,.path-row{position:relative}.path-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start;padding:7px 8px;border-radius:12px;color:rgb(var(--text-muted));font-size:14.5px;line-height:1.4;text-decoration:none;transition:background-color .15s ease,color .15s ease}.path-item:not(:last-child)>.path-row:after{content:"";position:absolute;top:34px;bottom:-8px;left:21px;width:2px;border-radius:2px;background:rgb(var(--border))}.path-item.is-done:not(:last-child)>.path-row:after{background:rgb(var(--success-fill)/.45)}.path-item:has(>.path-sections):not(:last-child)>.path-row:after{display:none}.path-dot{position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;border:2px solid rgb(var(--border-strong));border-radius:50%;background:rgb(var(--bg));color:rgb(var(--text-subtle));font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.path-dot svg{width:15px;height:15px}.path-label{min-width:0;padding-top:3px}.is-done .path-dot{border-color:rgb(var(--success-fill));background:rgb(var(--success-fill));color:#fff}.is-current>.path-row{background:rgb(var(--accent-soft));color:rgb(var(--text));font-weight:700}.is-current .path-dot,.is-next .path-dot{border:2.5px solid rgb(var(--accent));background:rgb(var(--bg));box-shadow:0 0 0 4px rgb(var(--accent)/.15);color:rgb(var(--accent))}.path-sections{position:relative;margin:2px 0 6px 21px;padding:2px 0 2px 19px;border-left:2px solid rgb(var(--border));list-style:none}.path-sections a{display:block;padding:5px 8px;border-radius:8px;color:rgb(var(--text-subtle));font-size:14px;line-height:1.4;text-decoration:none;transition:background-color .15s ease,color .15s ease}.path-sections a[aria-current]{color:rgb(var(--text));font-weight:700}@media (hover:hover) and (pointer:fine){.path-item:not(.is-current)>.path-row:hover,.path-sections a:hover{background:rgb(var(--surface));color:rgb(var(--text))}}.seg{display:inline-flex;gap:2px;padding:4px;border-radius:14px;background:rgb(var(--surface-2))}.seg button{min-height:36px;padding:0 16px;border-radius:10px;background:transparent;color:rgb(var(--text-muted));font-size:15px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.seg button[aria-checked=true],.seg button[aria-pressed=true]{background:rgb(var(--bg));box-shadow:0 0 0 1px rgb(var(--border-strong)),0 2px 0 rgb(var(--border-strong));color:rgb(var(--text))}@media (hover:hover) and (pointer:fine){.seg button:hover{color:rgb(var(--text))}}@media (pointer:coarse){.seg button{min-height:40px}}.seg button:focus-visible{outline-offset:0}.page-title{color:rgb(var(--text));font-size:32px;font-weight:800;line-height:1.08;letter-spacing:-.025em;text-wrap:balance}.page-lead{max-width:60ch;margin-top:16px;color:rgb(var(--text-muted));font-size:17px;line-height:1.6}.section-title{color:rgb(var(--text));font-size:25px;font-weight:800;line-height:1.15;letter-spacing:-.025em}@media (min-width:640px){.page-title{font-size:clamp(32px,4.2vw,44px)}.page-lead{font-size:19px}.section-title{font-size:30px}}.goals code{font-family:var(--font-mono),ui-monospace,monospace;font-size:.9em}.selfcheck .btn[aria-pressed=true]{transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}.card{border:1.5px solid rgb(var(--border));border-radius:16px;background:rgb(var(--bg))}a.card{transition:border-color .15s ease,background-color .15s ease}@media (hover:hover) and (pointer:fine){a.card:hover{border-color:rgb(var(--border-strong));background:rgb(var(--surface))}}.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}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.left-0{left:0}.top-0{top:0}.top-\[2px\]{top:2px}.top-\[calc\(var\(--header-h\)-2px\)\]{top:calc(var(--header-h) - 2px)}.top-header{top:var(--header-h)}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[35\]{z-index:35}.z-\[41\]{z-index:41}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2/span 2}.m-0{margin:0}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.-my-\[10px\]{margin-top:-10px;margin-bottom:-10px}.-my-\[5px\]{margin-top:-5px;margin-bottom:-5px}.-my-\[9px\]{margin-top:-9px;margin-bottom:-9px}.mx-auto{margin-left:auto;margin-right:auto}.-ml-0\.5{margin-left:-.125rem}.-ml-2{margin-left:-.5rem}.-ml-px{margin-left:-1px}.-mt-2{margin-top:-.5rem}.-mt-3{margin-top:-.75rem}.-mt-6{margin-top:-1.5rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-3\.5{margin-bottom:.875rem}.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}.mb-9{margin-bottom:2.25rem}.mb-\[18px\]{margin-bottom:18px}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-\[18px\]{margin-top:18px}.mt-\[22px\]{margin-top:22px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-3{-webkit-line-clamp:3}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[22px\]{height:22px}.h-\[3px\]{height:3px}.h-\[52px\]{height:52px}.h-full{height:100%}.h-header{height:var(--header-h)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[calc\(100vh-var\(--header-h\)-var\(--resume-banner-h\2c 0px\)\)\]{max-height:calc(100vh - var(--header-h) - var(--resume-banner-h,0px))}.max-h-full{max-height:100%}.max-h-none{max-height:none}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-12{min-height:3rem}.min-h-\[55px\]{min-height:55px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-6{min-width:1.5rem}.max-w-\[180px\]{max-width:180px}.max-w-\[18ch\]{max-width:18ch}.max-w-\[440px\]{max-width:440px}.max-w-\[460px\]{max-width:460px}.max-w-\[46ch\]{max-width:46ch}.max-w-\[54ch\]{max-width:54ch}.max-w-\[60ch\]{max-width:60ch}.max-w-\[640px\]{max-width:640px}.max-w-\[68ch\]{max-width:68ch}.max-w-\[720px\]{max-width:720px}.max-w-\[760px\]{max-width:760px}.max-w-\[calc\(100\%\+2rem\)\]{max-width:calc(100% + 2rem)}.max-w-content{max-width:1200px}.max-w-full{max-width:100%}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-none{max-width:none}.max-w-wide{max-width:1320px}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[1_1_8rem\]{flex:1 1 8rem}.shrink-0{flex-shrink:0}.basis-64{flex-basis:16rem}.origin-left{transform-origin:left}.scale-x-0{--tw-scale-x:0}.scale-x-0,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.scroll-mt-\[calc\(var\(--header-h\)\+16px\)\]{scroll-margin-top:calc(var(--header-h) + 16px)}.\!grid-cols-\[28px_minmax\(0\2c 1fr\)_auto\]{grid-template-columns:28px minmax(0,1fr) auto!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[44px_minmax\(0\2c 1fr\)\]{grid-template-columns:44px minmax(0,1fr)}.grid-cols-\[52px_minmax\(0\2c 1fr\)\]{grid-template-columns:52px minmax(0,1fr)}.grid-cols-\[minmax\(0\2c 1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[repeat\(auto-fill\2c minmax\(260px\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-7{-moz-column-gap:1.75rem;column-gap:1.75rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-x-\[18px\]{-moz-column-gap:18px;column-gap:18px}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-4{row-gap:1rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-center{align-self:center}.justify-self-start{justify-self:start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.text-balance{text-wrap:balance}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[14px\]{border-radius:14px}.rounded-\[20px\]{border-radius:20px}.rounded-\[22px\]{border-radius:22px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-\[22px\]{border-top-left-radius:22px;border-top-right-radius:22px}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-accent{--tw-border-opacity:1;border-color:rgb(var(--accent)/var(--tw-border-opacity,1))}.border-accent\/20{border-color:rgb(var(--accent)/.2)}.border-accent\/45{border-color:rgb(var(--accent)/.45)}.border-border{--tw-border-opacity:1;border-color:rgb(var(--border)/var(--tw-border-opacity,1))}.border-flame\/70{border-color:rgb(var(--flame)/.7)}.border-success-fill{--tw-border-opacity:1;border-color:rgb(var(--success-fill)/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.bg-\[rgb\(15_23_36\/0\.35\)\]{background-color:rgb(15 23 36/.35)}.bg-\[rgba\(15\2c 20\2c 28\2c 0\.45\)\]{background-color:rgba(15,20,28,.45)}.bg-accent-soft{--tw-bg-opacity:1;background-color:rgb(var(--accent-soft)/var(--tw-bg-opacity,1))}.bg-accent-soft\/50{background-color:rgb(var(--accent-soft)/.5)}.bg-bg{--tw-bg-opacity:1;background-color:rgb(var(--bg)/var(--tw-bg-opacity,1))}.bg-bg\/95{background-color:rgb(var(--bg)/.95)}.bg-bg\/\[0\.92\]{background-color:rgb(var(--bg)/.92)}.bg-border-strong{--tw-bg-opacity:1;background-color:rgb(var(--border-strong)/var(--tw-bg-opacity,1))}.bg-btn{--tw-bg-opacity:1;background-color:rgb(var(--btn)/var(--tw-bg-opacity,1))}.bg-flame{--tw-bg-opacity:1;background-color:rgb(var(--flame)/var(--tw-bg-opacity,1))}.bg-success-fill{--tw-bg-opacity:1;background-color:rgb(var(--success-fill)/var(--tw-bg-opacity,1))}.bg-surface{--tw-bg-opacity:1;background-color:rgb(var(--surface)/var(--tw-bg-opacity,1))}.bg-surface-2{--tw-bg-opacity:1;background-color:rgb(var(--surface-2)/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.fill-accent{fill:rgb(var(--accent)/1)}.stroke-bg{stroke:rgb(var(--bg)/1)}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.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}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[18px\]{padding-left:18px;padding-right:18px}.px-\[9px\]{padding-left:9px;padding-right:9px}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[18px\]{padding-top:18px;padding-bottom:18px}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.pb-1\.5{padding-bottom:.375rem}.pb-10{padding-bottom:2.5rem}.pb-14{padding-bottom:3.5rem}.pb-16{padding-bottom:4rem}.pb-3\.5{padding-bottom:.875rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pb-\[max\(20px\2c env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(20px,env(safe-area-inset-bottom))}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-3\.5{padding-top:.875rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-\[18px\]{padding-top:18px}.pt-\[3px\]{padding-top:3px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-body{font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif}.\!text-\[16px\]{font-size:16px!important}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15\.5px\]{font-size:15.5px}.text-\[15px\]{font-size:15px}.text-\[16\.5px\]{font-size:16.5px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[19px\]{font-size:19px}.text-\[21px\]{font-size:21px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[25px\]{font-size:25px}.text-\[26px\]{font-size:26px}.text-\[32px\]{font-size:32px}.text-\[36px\]{font-size:36px}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-semibold{font-weight:600}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-\[1\.04\]{line-height:1.04}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.08\]{line-height:1.08}.leading-\[1\.15\]{line-height:1.15}.leading-\[1\.35\]{line-height:1.35}.leading-\[1\.3\]{line-height:1.3}.leading-\[1\.45\]{line-height:1.45}.leading-\[1\.4\]{line-height:1.4}.leading-\[1\.6\]{line-height:1.6}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.025em\]{letter-spacing:-.025em}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.tracking-\[-0\.035em\]{letter-spacing:-.035em}.text-accent{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity,1))}.text-flame{--tw-text-opacity:1;color:rgb(var(--flame)/var(--tw-text-opacity,1))}.text-success{--tw-text-opacity:1;color:rgb(var(--success)/var(--tw-text-opacity,1))}.text-text{--tw-text-opacity:1;color:rgb(var(--text)/var(--tw-text-opacity,1))}.text-text-muted{--tw-text-opacity:1;color:rgb(var(--text-muted)/var(--tw-text-opacity,1))}.text-text-subtle{--tw-text-opacity:1;color:rgb(var(--text-subtle)/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.decoration-accent\/40{text-decoration-color:rgb(var(--accent)/.4)}.decoration-text-subtle\/50{text-decoration-color:rgb(var(--text-subtle)/.5)}.underline-offset-\[3px\]{text-underline-offset:3px}.shadow-\[0_1px_0_rgb\(var\(--border\)\)\]{--tw-shadow:0 1px 0 rgb(var(--border));--tw-shadow-colored:0 1px 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-\[0_24px_64px_-16px_rgba\(15\2c 20\2c 28\2c 0\.45\)\]{--tw-shadow:0 24px 64px -16px rgba(15,20,28,0.45);--tw-shadow-colored:0 24px 64px -16px 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-\[0_4px_0_rgb\(var\(--success-edge\)\)\]{--tw-shadow:0 4px 0 rgb(var(--success-edge));--tw-shadow-colored:0 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)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.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)}.backdrop-blur-\[10px\]{--tw-backdrop-blur:blur(10px)}.backdrop-blur-\[10px\],.backdrop-saturate-\[1\.4\]{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-saturate-\[1\.4\]{--tw-backdrop-saturate:saturate(1.4)}.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}.\[--reading-bar-h\:56px\]{--reading-bar-h:56px}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[scrollbar-width\:thin\]{scrollbar-width:thin}:root{color-scheme:light;--bg:255 255 255;--surface:247 248 250;--surface-2:238 240 244;--border:228 231 236;--border-strong:205 210 219;--text:22 27 38;--text-muted:72 81 97;--text-subtle:99 108 124;--accent:43 87 230;--accent-soft:236 241 255;--accent-segment:157 180 242;--on-accent:255 255 255;--btn:43 87 230;--btn-edge:29 61 170;--success:20 128 68;--success-fill:34 168 94;--success-edge:22 122 66;--success-btn:20 128 68;--success-btn-edge:12 90 46;--tip-bg:234 248 240;--danger:200 40 56;--danger-bg:254 239 240;--warn:150 88 0;--warn-bg:255 246 226;--flame:232 98 6;--code-bg:20 26 38;--code-text:226 232 242;--expl:109 60 192;--expl-bg:246 242 253;--header-h:56px;--ease-press:cubic-bezier(0.23,1,0.32,1)}:root[data-theme=dark]{color-scheme:dark;--bg:15 19 26;--surface:22 27 36;--surface-2:31 37 48;--border:41 48 61;--border-strong:62 71 88;--text:233 237 243;--text-muted:176 185 199;--text-subtle:145 155 171;--accent:132 163 255;--accent-soft:29 37 64;--accent-segment:61 91 181;--on-accent:255 255 255;--btn:63 101 235;--btn-edge:38 64 166;--success:92 210 140;--success-fill:38 160 94;--success-edge:24 112 64;--success-btn:28 125 72;--success-btn-edge:16 82 46;--tip-bg:20 41 31;--danger:255 128 136;--danger-bg:49 23 28;--warn:244 184 84;--warn-bg:46 35 17;--flame:255 145 60;--code-bg:10 13 19;--code-text:226 232 242;--expl:190 164 255;--expl-bg:33 28 52}@media (min-width:1024px){:root{--header-h:64px}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn:active{transform:none}}.prose{overflow-wrap:break-word}@media (hover:hover) and (pointer:fine){.prose a:hover{text-decoration-color:currentColor}}.prose>:first-child{margin-top:0}.prose :not(pre)>code{-webkit-box-decoration-break:clone;box-decoration-break:clone}@media (max-width:639px){.prose{font-size:17px;line-height:1.7}.prose h1{font-size:32px}.prose h2{margin-top:52px;font-size:23px}.prose h3{font-size:19px}}.chapter-num{display:inline-grid;place-items:center;min-width:1.5em;margin-right:12px;padding:0 8px;border-radius:10px;background:rgb(var(--accent-soft));color:rgb(var(--accent));font-size:.8em;line-height:1.5;font-variant-numeric:tabular-nums;vertical-align:.08em}.callout{--c-ink:rgb(var(--text-muted));--c-bg:rgb(var(--surface));--c-line:rgb(var(--border));position:relative;margin:28px 0;padding:18px 22px 16px 62px;border:1px solid var(--c-line);border-radius:16px;background:var(--c-bg);color:rgb(var(--text));font-size:17px;line-height:1.65}.callout-important{--c-ink:rgb(var(--accent));--c-bg:rgb(var(--accent-soft));--c-line:rgb(var(--accent)/0.22)}.callout-tip{--c-ink:rgb(var(--success));--c-bg:rgb(var(--tip-bg));--c-line:rgb(var(--success)/0.25)}.callout-caution{--c-ink:rgb(var(--danger));--c-bg:rgb(var(--danger-bg));--c-line:rgb(var(--danger)/0.22)}.callout-warning{--c-ink:rgb(var(--warn));--c-bg:rgb(var(--warn-bg));--c-line:rgb(var(--warn)/0.25)}.callout>.callout-icon{position:absolute;top:17px;left:20px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c-ink);color:#fff}:root[data-theme=dark] .callout>.callout-icon{color:rgb(var(--bg))}.callout>.callout-label{display:block;margin:2px 0 6px;color:var(--c-ink);font-size:15.5px;font-weight:800;letter-spacing:-.005em}.callout>p{margin:0 0 10px}.callout>:last-child{margin-bottom:0}.callout>ol,.callout>ul{margin:0 0 10px}.callout .code-block,.callout .table-frame{margin:14px 0}.callout-exercise{--c-ink:rgb(var(--text));--c-bg:rgb(var(--bg));--c-line:rgb(var(--border-strong));padding:22px 24px;border-width:1.5px;border-radius:18px;transition:border-color .2s ease,background-color .2s ease}.callout-exercise>.callout-icon{display:none}.callout-exercise>.callout-label{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 10px;color:rgb(var(--text));font-size:18px;line-height:1.35}.ex-num{min-height:26px;padding:1px 10px;border-radius:999px;background:rgb(var(--accent-soft));color:rgb(var(--accent));font-size:13px;font-weight:800;white-space:nowrap}.ex-num,.ex-state{display:inline-flex;align-items:center}.ex-state{gap:6px;margin-left:auto;font-size:13.5px;font-weight:700}.ex-state-ok{color:rgb(var(--success))}.ex-state-retry{color:rgb(var(--warn))}.callout-exercise.is-ok{--c-line:rgb(var(--success-fill));--c-bg:rgb(var(--tip-bg)/0.55)}.callout-icon:before,.ex-state:before{content:"";flex:none;width:16px;height:16px;background-color:currentColor;-webkit-mask:var(--icon) center /contain no-repeat;mask:var(--icon) center /contain no-repeat}.callout-important>.callout-icon{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.8l1.9 3.9 4.3.6-3.1 3 .7 4.3L8 11.6l-3.8 2 .7-4.3-3.1-3 4.3-.6z' fill='black'/%3E%3C/svg%3E")}.callout-tip>.callout-icon{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6a4.6 4.6 0 0 0-2.7 8.3c.5.4.8.9.8 1.5v.4h3.8v-.4c0-.6.3-1.1.8-1.5A4.6 4.6 0 0 0 8 1.6zM6.2 13.4h3.6M6.7 15h2.6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}.callout-caution>.callout-icon{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 4.5l7 7M11.5 4.5l-7 7' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E")}.callout-warning>.callout-icon{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3.5v6' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='12.6' r='1.3' fill='black'/%3E%3C/svg%3E")}.callout-note>.callout-icon{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='4.2' r='1.3' fill='black'/%3E%3Cpath d='M8 7.2v5.6' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E")}.ex-state-ok{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.ex-state-retry{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8a5 5 0 1 0 1.6-3.7M3 2.5v2.8h2.8' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.callout-exercise:not(.is-ok) .ex-state-ok,.callout-exercise:not(.is-retry) .ex-state-retry{display:none}.solution{margin:16px 0}.callout-exercise>.solution+.solution{margin-top:12px}.solution>summary{list-style:none}.solution>summary::-webkit-details-marker{display:none}.solution:not([open])>summary .when-open,.solution[open]>summary .when-closed{display:none}.solution-body{margin-top:18px;padding-top:18px;border-top:1px dashed rgb(var(--border-strong))}.solution-body>:first-child{margin-top:0}.solution-body>:last-child{margin-bottom:0}.solution-body>ol,.solution-body>p,.solution-body>ul{margin:0 0 12px}.selfcheck{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding:14px 16px;border-radius:14px;background:rgb(var(--surface))}.selfcheck>p{margin:0 auto 0 0;font-size:15.5px;font-weight:700}@media print{.solution::details-content{content-visibility:visible;display:block}.selfcheck,.solution>summary{display:none}}.scroll-fade{--fade-bg:var(--bg);--fade-top:1px;--fade-inset:1px;position:relative}.scroll-fade:after,.scroll-fade:before{content:"";position:absolute;z-index:1;top:var(--fade-top);bottom:var(--fade-inset);width:40px;opacity:0;pointer-events:none;transition:opacity .15s ease}.scroll-fade:before{left:var(--fade-inset);border-radius:11px 0 0 11px;background:linear-gradient(to left,rgb(var(--fade-bg)/0),rgb(var(--fade-bg)/.8) 60%,rgb(var(--fade-bg)))}.scroll-fade:after{right:var(--fade-inset);border-radius:0 11px 11px 0;background:linear-gradient(to right,rgb(var(--fade-bg)/0),rgb(var(--fade-bg)/.8) 60%,rgb(var(--fade-bg)))}.scroll-fade[data-more-left]:before,.scroll-fade[data-more-right]:after{opacity:1}.scroll-fade:has(>:focus-visible):after,.scroll-fade:has(>:focus-visible):before{opacity:0}.code-block.scroll-fade{--fade-bg:var(--code-bg);--fade-top:38px;--fade-inset:0px}.code-block.scroll-fade:before{border-radius:0 0 0 12px}.code-block.scroll-fade:after{border-radius:0 0 12px 0}@media print{.scroll-fade:after,.scroll-fade:before{display:none}}.code-block{max-width:100%;margin:24px 0;border-radius:12px;background:rgb(var(--code-bg));color:rgb(var(--code-text))}@media screen{.code-block{content-visibility:auto;contain-intrinsic-size:auto 280px}}:root[data-theme=dark] .code-block{box-shadow:inset 0 0 0 1px rgb(var(--border))}.code-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 0 18px}.code-lang{color:rgb(var(--code-text)/.55);font-size:12.5px;font-weight:700;line-height:1}.code-copy{position:relative;display:inline-flex;align-items:center;gap:6px;height:30px;margin-left:auto;padding:0 10px;border-radius:8px;color:rgb(var(--code-text)/.75);font-size:13px;font-weight:600;line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease}.code-copy svg{width:14px;height:14px}@media (hover:hover) and (pointer:fine){.code-copy:hover{background:rgb(255 255 255/.08);color:rgb(var(--code-text))}}@media (pointer:coarse){.code-copy:after{content:"";position:absolute;inset:-5px -2px}}.code-block :focus-visible{outline-color:#8aa8ff}.code-copy:focus-visible{outline-offset:0}.code-block pre{margin:0;padding:8px 18px 18px;border-radius:0 0 12px 12px;background:transparent;color:inherit;font-family:var(--font-mono),ui-monospace,monospace;font-size:14.5px;line-height:1.7;overflow-x:auto;scrollbar-color:#3a4658 transparent}.code-block pre code{color:rgb(var(--code-text))}.code-block pre:focus-visible{outline-offset:-2px}code{font-variant-ligatures:none}.table-frame{width:-moz-fit-content;width:fit-content;max-width:100%;margin:20px 0 28px;border:1px solid rgb(var(--border));border-radius:12px;overflow:hidden}.table-wrap{overflow-x:auto}.table-wrap:focus-visible{outline-offset:-2px}.prose .table-wrap>table{width:auto;margin:0;border-collapse:collapse;font-size:15px;line-height:1.45;font-variant-numeric:tabular-nums}.prose .table-wrap th{padding:10px 16px;border-bottom:1px solid rgb(var(--border));background:rgb(var(--surface));color:rgb(var(--text-muted));font-size:14px;font-weight:700;text-align:left;white-space:nowrap}.prose .table-wrap td{padding:9px 16px;border-top:1px solid rgb(var(--border));vertical-align:top}.prose .table-wrap tbody tr:first-child td{border-top:0}.prose .table-wrap tbody tr{border-bottom:0}.code-block+.table-frame{margin-top:-12px}.prose .callout .code-block+.table-frame{margin-top:0}@media (max-width:639px){.callout{padding:16px 16px 14px 52px;font-size:16.5px}.callout>.callout-icon{top:15px;left:14px;width:26px;height:26px}.callout-exercise{padding:18px 16px}.selfcheck .btn{flex:1}.prose .code-block,.prose .schema,.prose .table-frame{max-width:none;margin-right:-16px;margin-left:-16px;border-radius:0}.prose .table-frame{width:auto;border-right:0;border-left:0}.prose .code-block pre{padding:6px 16px 16px;font-size:13px;line-height:1.6;border-radius:0}.prose .code-bar{padding-left:16px}.prose .code-block+.table-frame{margin-top:-24px}.prose .callout .code-block+.table-frame{margin-top:0}.prose .callout .code-block,.prose .callout .schema,.prose .callout .table-frame{margin-right:0;margin-left:0;border-radius:12px}.prose .callout .table-frame{width:-moz-fit-content;width:fit-content;max-width:100%;border-right:1px solid rgb(var(--border));border-left:1px solid rgb(var(--border))}.prose .callout .code-block pre{border-radius:0 0 12px 12px}}.schema{margin:32px 0}.schema-scroll{overflow-x:auto;padding:20px;border:1px solid rgb(var(--border));border-radius:16px;background:rgb(var(--bg))}.schema-scroll:focus-visible{outline-offset:2px}.schema-svg{display:block;width:100%;max-width:calc(var(--schema-w) * 1px);min-width:calc(var(--schema-w) * .86px);height:auto;margin:0 auto;overflow:visible;fill:rgb(var(--text));stroke:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif;font-size:15px}.schema-hint{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 0 0;color:rgb(var(--text-subtle));font-size:14px;line-height:1.4}.schema-hint>svg{flex:none}.schema figcaption{margin:10px 0 0;color:rgb(var(--text-subtle));font-size:15px;line-height:1.5;text-align:center}.schema-svg .s-box{fill:rgb(var(--surface));stroke:rgb(var(--text-subtle)/.8)}.schema-svg .s-box-accent{fill:rgb(var(--accent-soft));stroke:rgb(var(--accent))}.schema-svg .s-box-ok{fill:rgb(var(--tip-bg));stroke:rgb(var(--success))}.schema-svg .s-box-ko{fill:rgb(var(--danger-bg));stroke:rgb(var(--danger))}.schema-svg .s-accent{fill:rgb(var(--accent));stroke:none}.schema-svg .s-solid{fill:rgb(var(--text-muted));stroke:none}.schema-svg .s-bg{fill:rgb(var(--bg));stroke:none}.schema-svg :is(.s-line,.s-arrow,.s-inherit,.s-compose,.s-aggregate){fill:none;stroke:rgb(var(--text-muted))}.schema-svg :is(.s-line-accent,.s-arrow-accent){fill:none;stroke:rgb(var(--accent))}.schema-svg :is(.s-line-ok,.s-arrow-ok){fill:none;stroke:rgb(var(--success))}.schema-svg :is(.s-line-ko,.s-arrow-ko){fill:none;stroke:rgb(var(--danger))}.schema-svg .s-dashed{stroke-dasharray:6 5}.schema-svg .s-thick{stroke-width:2.5}.schema-svg .s-head{fill:rgb(var(--text-muted));stroke:none}.schema-svg .s-head-accent{fill:rgb(var(--accent));stroke:none}.schema-svg .s-head-ok{fill:rgb(var(--success));stroke:none}.schema-svg .s-head-ko{fill:rgb(var(--danger));stroke:none}.schema-svg .s-head-hollow{fill:rgb(var(--bg));stroke:rgb(var(--text-muted))}.schema-svg .s-text{fill:rgb(var(--text));stroke:none}.schema-svg .s-muted{fill:rgb(var(--text-subtle));stroke:none}.schema-svg .s-text-accent{fill:rgb(var(--accent));stroke:none}.schema-svg .s-text-ok{fill:rgb(var(--success));stroke:none}.schema-svg .s-text-ko{fill:rgb(var(--danger));stroke:none}.schema-svg .s-on-accent{fill:rgb(var(--on-accent));stroke:none}.schema-svg .s-mono{font-family:var(--font-mono),ui-monospace,monospace}.schema-svg .s-strong{font-weight:700}@media (max-width:639px){.schema-scroll{padding:8px}.prose .schema-scroll{border-right:0;border-left:0;border-radius:0}.prose .callout .schema-scroll{border-right:1px solid rgb(var(--border));border-left:1px solid rgb(var(--border));border-radius:16px}}@media print{.schema-scroll{overflow:visible}.schema-svg{min-width:0}.schema-hint{display:none}}.hljs{background:transparent!important;padding:0!important;color:inherit}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-variable.language_{color:#82aaff;font-weight:600}.hljs-addition,.hljs-char.escape_,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a8d99b}.hljs-bullet,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#f4b97b}.hljs-comment,.hljs-quote{color:#8b98ad;font-style:italic}.hljs-operator{color:#aeb8c7}.hljs-section,.hljs-title,.hljs-title.function_{color:#e9c46a}.hljs-built_in,.hljs-selector-class,.hljs-selector-id,.hljs-title.class_,.hljs-type{color:#c3a6ff}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-template-variable,.hljs-variable{color:#9ed8db}.hljs-meta,.hljs-tag{color:#a9b3c2}.hljs-subst{color:inherit}.hljs-deletion{color:#ff9e9e}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}.hljs-link{text-decoration:underline}.callout>.callout-heading{margin:-2px 0 8px;color:rgb(var(--text));font-size:17px;font-weight:800;line-height:1.4;letter-spacing:-.005em}.callout-expl{--c-ink:rgb(var(--expl));--c-bg:rgb(var(--expl-bg));--c-line:rgb(var(--expl)/0.2);margin:16px 0 24px;padding:14px 20px 14px 22px;border-width:0 0 0 3px;border-color:rgb(var(--expl)/.55);border-radius:4px 14px 14px 4px;font-size:16.5px}.callout-expl>.callout-icon{display:none}.callout-expl>.callout-label{display:inline;margin:0 8px 0 0;font-size:14px;font-style:italic}.callout-expl>.callout-label+p{display:inline}.callout-expl>.callout-label+p+*{margin-top:10px}.code-block.code-output{--fade-bg:var(--surface);border-left:4px solid rgb(var(--success-fill));border-radius:6px 12px 12px 6px;background:rgb(var(--surface));color:rgb(var(--text))}:root[data-theme=dark] .code-block.code-output{box-shadow:inset 0 0 0 1px rgb(var(--border))}.code-output .code-bar{min-height:30px;padding-top:10px}.code-output .code-lang{color:rgb(var(--success));font-size:13px}.code-output pre{scrollbar-color:rgb(var(--border-strong)) transparent}.code-block.code-output pre code{color:rgb(var(--text))}.callout-chat{margin:18px 0 22px;padding:12px 16px 14px;border-color:rgb(var(--border-strong));border-radius:16px 16px 16px 4px;background:rgb(var(--bg))}.callout-chat>.callout-label{display:flex;align-items:center;min-height:30px;margin:0 72px 4px 0;color:rgb(var(--text-subtle));font-size:13.5px}.callout-chat>.chat-message>p{margin:0;font-weight:700}.callout-chat>.chat-message>p+p{margin-top:8px}.chat-copy{position:absolute;top:10px;right:8px;color:rgb(var(--text-muted))}@media (hover:hover) and (pointer:fine){.chat-copy:hover{background:rgb(var(--surface-2));color:rgb(var(--text))}}.chat-copy:focus-visible{outline-color:rgb(var(--accent))}.callout-livrable{--c-ink:rgb(var(--accent));--c-bg:rgb(var(--bg));--c-line:rgb(var(--border-strong));padding:20px 24px;border-width:1.5px;border-radius:18px;transition:border-color .2s ease,background-color .2s ease}.callout-livrable>.callout-icon{display:none}.callout-livrable>.callout-label{display:inline-flex;align-items:center;min-height:26px;margin:0 0 10px;padding:1px 10px;border-radius:999px;background:rgb(var(--accent-soft));font-size:13px}.callout-livrable.is-done{--c-ink:rgb(var(--success));--c-line:rgb(var(--success-fill));--c-bg:rgb(var(--tip-bg)/0.55)}.callout-livrable.is-done>.callout-label{background:rgb(var(--tip-bg))}.livrable-check{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:16px;padding-top:14px;border-top:1px dashed rgb(var(--border-strong))}.livrable-check .btn{gap:8px}.livrable-check .btn[aria-pressed=true]{transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}.livrable-count{color:rgb(var(--text-subtle));font-size:14px;font-weight:600}@media (max-width:639px){.callout-expl{padding:12px 16px}.callout-chat{padding:12px 14px 14px}.callout-livrable{padding:18px 16px}}@media print{.chat-copy,.livrable-check{display:none}}.tp-steps{display:flex;flex-wrap:wrap;gap:8px}.tp-steps a{display:inline-flex;align-items:center;min-height:36px;padding:4px 14px;border:1.5px solid rgb(var(--border));border-radius:999px;color:rgb(var(--text-muted));font-size:14.5px;font-weight:700;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.tp-steps a[aria-current=page]{border-color:rgb(var(--accent));background:rgb(var(--accent-soft));color:rgb(var(--accent))}@media (hover:hover) and (pointer:fine){.tp-steps a:not([aria-current]):hover{border-color:rgb(var(--border-strong));color:rgb(var(--text))}}.tp-steps-fiche{margin-left:6px;padding-left:14px;border-left:1px solid rgb(var(--border))}.tp-days{display:grid;gap:0}.tp-day{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:16px;padding:18px 18px 20px 14px;border-radius:16px;transition:background-color .15s ease}.tp-day+.tp-day:before{content:"";position:absolute;top:-10px;left:31px;height:26px;border-left:2px solid rgb(var(--border))}.tp-day-num{display:grid;place-items:center;width:36px;height:36px;border:2px solid rgb(var(--border-strong));border-radius:50%;background:rgb(var(--bg));color:rgb(var(--text));font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}.tp-day.is-done .tp-day-num{border-color:rgb(var(--success-fill));background:rgb(var(--success-fill));color:#fff}.tp-day-link:after{content:"";position:absolute;inset:0;border-radius:16px}.tp-day-link:focus-visible{outline:none}.tp-day:has(.tp-day-link:focus-visible){outline:2px solid rgb(var(--accent));outline-offset:2px}@media (hover:hover) and (pointer:fine){.tp-day:hover{background:rgb(var(--surface))}.tp-day:hover .tp-day-link{color:rgb(var(--accent))}}.callout-sortie{margin:16px 0 24px;padding:12px 18px 14px 20px;border-width:0 0 0 4px;border-color:rgb(var(--success-fill));border-radius:6px 12px 12px 6px;background:rgb(var(--surface))}.callout-sortie>.callout-icon{display:none}.callout-sortie>.callout-label{margin:0 0 4px;color:rgb(var(--success));font-size:13px}.prose p:has(>img[src^="/tp-figures/"]){margin:28px 0;overflow-x:auto;border:1px solid rgb(var(--border));border-radius:14px;background:#fff}.prose img[src^="/tp-figures/"]{display:block;margin:0 auto;max-width:100%;height:auto;border-radius:13px}.prose img[src^="/tp-figures/"][src$=".svg"]{width:100%;min-width:520px;padding:14px 16px}.prose p:has(>img[src^="/tp-figures/"])+p>em:only-child{display:block;margin-top:-14px;color:rgb(var(--text-muted));font-size:15px}.prose table thead:not(:has(th:not(:empty))){display:none}.placeholder\:text-text-subtle::-moz-placeholder{--tw-text-opacity:1;color:rgb(var(--text-subtle)/var(--tw-text-opacity,1))}.placeholder\:text-text-subtle::placeholder{--tw-text-opacity:1;color:rgb(var(--text-subtle)/var(--tw-text-opacity,1))}.backdrop\:bg-transparent::backdrop{background-color:transparent}.first\:mt-8:first-child{margin-top:2rem}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.focus-within\:shadow-\[inset_0_-2px_0_rgb\(var\(--accent\)\)\]:focus-within{--tw-shadow:inset 0 -2px 0 rgb(var(--accent));--tw-shadow-colored:inset 0 -2px 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)}@media (hover:hover) and (pointer:fine){.hover\:border-accent:hover{--tw-border-opacity:1;border-color:rgb(var(--accent)/var(--tw-border-opacity,1))}.hover\:border-border-strong:hover{--tw-border-opacity:1;border-color:rgb(var(--border-strong)/var(--tw-border-opacity,1))}.hover\:bg-surface:hover{--tw-bg-opacity:1;background-color:rgb(var(--surface)/var(--tw-bg-opacity,1))}.hover\:bg-surface-2:hover{--tw-bg-opacity:1;background-color:rgb(var(--surface-2)/var(--tw-bg-opacity,1))}.hover\:text-accent:hover{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity,1))}.hover\:text-text:hover{--tw-text-opacity:1;color:rgb(var(--text)/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-current:hover{text-decoration-color:currentColor}}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:fixed:focus{position:fixed}.focus\:left-4:focus{left:1rem}.focus\:top-3:focus{top:.75rem}.focus\:z-50:focus{z-index:50}.focus\:rounded-lg:focus{border-radius:.5rem}.focus\:bg-btn:focus{--tw-bg-opacity:1;background-color:rgb(var(--btn)/var(--tw-bg-opacity,1))}.focus\:px-4:focus{padding-left:1rem;padding-right:1rem}.focus\:py-2:focus{padding-top:.5rem;padding-bottom:.5rem}.focus\:font-bold:focus{font-weight:700}.focus\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}@supports (height:100dvh){.supports-\[height\:100dvh\]\:max-h-\[85dvh\]{max-height:85dvh}}@media (prefers-reduced-motion:no-preference){@keyframes fade-in{0%{opacity:0}}.motion-safe\:animate-fade-in{animation:fade-in .16s ease-out}}@media (max-width:374px){.max-\[374px\]\: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}}@media (min-width:430px){.min-\[430px\]\:gap-1{gap:.25rem}.min-\[430px\]\:px-1{padding-left:.25rem;padding-right:.25rem}.min-\[430px\]\:px-2{padding-left:.5rem;padding-right:.5rem}.min-\[430px\]\:text-\[15px\]{font-size:15px}}@media (min-width:640px){.sm\:col-start-2{grid-column-start:2}.sm\:m-0{margin:0}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:mb-10{margin-bottom:2.5rem}.sm\:mb-12{margin-bottom:3rem}.sm\:ml-0{margin-left:0}.sm\:ml-\[52px\]{margin-left:52px}.sm\:ml-auto{margin-left:auto}.sm\:mt-0{margin-top:0}.sm\:mt-9{margin-top:2.25rem}.sm\:mt-\[72px\]{margin-top:72px}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-14{height:3.5rem}.sm\:min-h-0{min-height:0}.sm\:min-h-8{min-height:2rem}.sm\:w-auto{width:auto}.sm\:max-w-full{max-width:100%}.sm\:flex-none{flex:none}.sm\:shrink{flex-shrink:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[44px_minmax\(0\2c 1fr\)_auto\]{grid-template-columns:44px minmax(0,1fr) auto}.sm\:grid-cols-\[auto_minmax\(0\2c 1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:gap-1{gap:.25rem}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:gap-\[0\.28em\]{gap:.28em}.sm\:overflow-visible{overflow:visible}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-2\.5{padding-left:.625rem;padding-right:.625rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:px-\[26px\]{padding-left:26px;padding-right:26px}.sm\:py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:py-5{padding-top:1.25rem}.sm\:pb-5,.sm\:py-5{padding-bottom:1.25rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pb-8{padding-bottom:2rem}.sm\:pt-10{padding-top:2.5rem}.sm\:pt-14{padding-top:3.5rem}.sm\:pt-16{padding-top:4rem}.sm\:pt-6{padding-top:1.5rem}.sm\:pt-7{padding-top:1.75rem}.sm\:pt-\[12vh\]{padding-top:12vh}.sm\:pt-px{padding-top:1px}.sm\:\!text-\[16\.5px\]{font-size:16.5px!important}.sm\:text-\[17px\]{font-size:17px}.sm\:text-\[19px\]{font-size:19px}.sm\:text-\[20px\]{font-size:20px}.sm\:text-\[24px\]{font-size:24px}.sm\:text-\[28px\]{font-size:28px}.sm\:text-\[30px\]{font-size:30px}.sm\:text-\[clamp\(32px\2c 4\.2vw\2c 44px\)\]{font-size:clamp(32px,4.2vw,44px)}.sm\:text-\[clamp\(38px\2c 4\.6vw\2c 56px\)\]{font-size:clamp(38px,4.6vw,56px)}}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.lg\:col-start-2{grid-column-start:2}.lg\:mb-10{margin-bottom:2.5rem}.lg\:mb-7{margin-bottom:1.75rem}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-\[26px\]{height:26px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[26px\]{width:26px}.lg\:max-w-none{max-width:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[260px_minmax\(0\2c 1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\2c 1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}.lg\:grid-cols-\[minmax\(0\2c 1fr\)_380px\]{grid-template-columns:minmax(0,1fr) 380px}.lg\:justify-start{justify-content:flex-start}.lg\:gap-12{gap:3rem}.lg\:gap-14{gap:3.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-8{gap:2rem}.lg\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.lg\:px-3\.5{padding-left:.875rem;padding-right:.875rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:pb-20{padding-bottom:5rem}.lg\:pt-10{padding-top:2.5rem}.lg\:pt-\[52px\]{padding-top:52px}.lg\:pt-\[72px\]{padding-top:72px}.lg\:\[--reading-bar-h\:0px\]{--reading-bar-h:0px}}@media (min-width:1240px){.min-\[1240px\]\:block{display:block}.min-\[1240px\]\:grid-cols-\[272px_minmax\(0\2c 1fr\)\]{grid-template-columns:272px minmax(0,1fr)}.min-\[1240px\]\:grid-cols-\[272px_minmax\(0\2c 1fr\)_208px\]{grid-template-columns:272px minmax(0,1fr) 208px}.min-\[1240px\]\:gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}}.dark\:block:where([data-theme=dark],[data-theme=dark] *){display:block}.dark\:hidden:where([data-theme=dark],[data-theme=dark] *){display:none}.dark\:bg-\[rgba\(0\2c 0\2c 0\2c 0\.6\)\]:where([data-theme=dark],[data-theme=dark] *){background-color:rgba(0,0,0,.6)}.dark\:bg-black\/60:where([data-theme=dark],[data-theme=dark] *){background-color:rgb(0 0 0/.6)}.\[\&_strong\]\:text-text strong{--tw-text-opacity:1;color:rgb(var(--text)/var(--tw-text-opacity,1))}