@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/inter-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/inter-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/inter-latin-600-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/inter-latin-ext-400-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/inter-latin-ext-500-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/inter-latin-ext-600-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/geist-mono-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/geist-mono-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--ob-bg:#08090b;--ob-well:#050506;--ob-surface-hi:#15161b;--ob-surface-lo:#0e0f12;--ob-surface-2-hi:#1e1f25;--ob-surface-2-lo:#14151a;--ob-text-1:#f4f5f7;--ob-text-2:#9d9fa6;--ob-text-3:#5e6068;--ob-text-4:#3a3c43;--ob-hairline:#ffffff0e;--ob-hairline-strong:#ffffff1c;--ob-divider:#ffffff0a;--ob-gold:#e8b04f;--ob-gold-hi:#f6d488;--ob-gold-deep:#d6952f;--ob-gold-text:#e9c177;--ob-gold-rgb:232, 176, 79;--ob-ok:#62c173;--ob-ok-soft:#62c1731f;--ob-warn:#e07b39;--ob-warn-soft:#e07b3921;--ob-danger:#e5564d;--ob-danger-hover:#ef6f67;--ob-danger-soft:#e5564d1f;--ob-grad-slab:linear-gradient(180deg, var(--ob-surface-hi), var(--ob-surface-lo));--ob-grad-thumb:linear-gradient(180deg, var(--ob-surface-2-hi), var(--ob-surface-2-lo));--ob-grad-gold:linear-gradient(180deg, var(--ob-gold-hi), var(--ob-gold-deep));--ob-shadow-device:inset 0 1px 0 #ffffff12, inset 0 -1px 0 #0006, 0 1px 2px #0203058c, 0 12px 24px -12px #02030599, 0 48px 96px -32px #0203058c;--ob-shadow-card:inset 0 1px 0 #ffffff0d, inset 0 -1px 0 #0000004d, 0 1px 2px #02030580, 0 8px 20px -10px #02030580;--ob-shadow-well:inset 0 2px 4px #0000008c, inset 0 6px 14px #0000004d, inset 0 0 0 1px #ffffff08, 0 1px 0 #ffffff0b;--ob-shadow-thumb:inset 0 1px 0 #ffffff17, 0 1px 2px #02030580, 0 4px 10px -2px #02030580;--ob-shadow-card-hover:inset 0 1px 0 #ffffff12, inset 0 -1px 0 #0000004d, 0 2px 4px #02030580, 0 12px 28px -10px #02030599;--ob-shadow-gold-btn:inset 0 1px 0 #ffffff73, 0 1px 2px #02030580, 0 4px 14px -4px rgba(var(--ob-gold-rgb), .4);--ob-ring-gold:inset 0 0 0 1px rgba(var(--ob-gold-rgb), .38), 0 0 0 1px rgba(var(--ob-gold-rgb), .16), 0 0 28px -6px rgba(var(--ob-gold-rgb), .18);--ob-font-sans:"Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--ob-font-mono:"Geist Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--ob-text-2xs:.6875rem;--ob-text-xs:.75rem;--ob-text-sm:.8125rem;--ob-text-base:.875rem;--ob-text-md:.9375rem;--ob-text-lg:1.125rem;--ob-text-xl:1.375rem;--ob-track-display:-.038em;--ob-track-value:-.02em;--ob-track-label:.09em;--ob-s1:4px;--ob-s2:8px;--ob-s3:12px;--ob-s4:16px;--ob-s5:20px;--ob-s6:24px;--ob-s7:28px;--ob-s8:32px;--ob-s10:40px;--ob-s12:48px;--ob-s16:64px;--ob-s20:80px;--ob-r-device:28px;--ob-r-card:20px;--ob-r-well:14px;--ob-r-ctl:10px;--ob-r-pill:999px;--ob-ease:cubic-bezier(.23, 1, .32, 1);--ob-dur-1:.12s;--ob-dur-2:.2s;--ob-dur-3:.28s}@property --val{syntax:"<number>";inherits:true;initial-value:0}.ob-root,.ob-root *,.ob-root :before,.ob-root :after{box-sizing:border-box}.ob-root{font-family:var(--ob-font-sans);background:var(--ob-bg);color:var(--ob-text-2);min-height:100vh;font-size:var(--ob-text-base);font-feature-settings:"cv01", "ss03";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.5;overflow-x:hidden}.ob-root ::selection{background:rgba(var(--ob-gold-rgb), .25);color:var(--ob-text-1)}.ob-root ::-webkit-scrollbar{width:10px}.ob-root ::-webkit-scrollbar-track{background:var(--ob-bg)}.ob-root ::-webkit-scrollbar-thumb{border:2px solid var(--ob-bg);background:#232529;border-radius:5px}.ob-root :focus-visible{outline:2px solid rgba(var(--ob-gold-rgb), .6);outline-offset:3px;border-radius:var(--ob-s1)}.ob-bg{z-index:0;pointer-events:none;background:radial-gradient(100% 55% at 50% -8%, #ffffff0b, transparent 58%), radial-gradient(42% 28% at 50% 18%, rgba(var(--ob-gold-rgb), .04), transparent 65%), var(--ob-bg);position:fixed;inset:0}.ob-bg:after{content:"";background:radial-gradient(120% 90% at 50% 20%,#0000 55%,#0000006b 100%);position:absolute;inset:0}.ob-grain{z-index:99;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;position:fixed;inset:0}.ob-shell{z-index:1;width:100%;max-width:1024px;padding:var(--ob-s10) var(--ob-s5) var(--ob-s16);margin:0 auto;position:relative}.ob-shell--narrow{max-width:880px}.ob-slab{background:linear-gradient(180deg, var(--ob-surface-hi), var(--ob-surface-lo));border:1px solid var(--ob-hairline);border-radius:var(--ob-r-card);box-shadow:var(--ob-shadow-card)}.ob-well{background:var(--ob-well);border-radius:var(--ob-r-well);box-shadow:var(--ob-shadow-well)}.ob-device{background:linear-gradient(180deg, var(--ob-surface-hi), var(--ob-surface-lo) 60%, #0d0e11);border:1px solid var(--ob-hairline);border-radius:var(--ob-r-device);box-shadow:var(--ob-shadow-device);overflow:hidden}.ob-device__zone{padding:var(--ob-s6) var(--ob-s7)}.ob-device__zone+.ob-device__zone{border-top:1px solid var(--ob-divider)}.ob-label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);font-weight:500}.ob-section-label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:.12em;margin:var(--ob-s10) 0 var(--ob-s4) var(--ob-s3);font-weight:500}.ob-eyebrow{align-items:center;gap:var(--ob-s3);font-size:var(--ob-text-2xs);letter-spacing:var(--ob-track-label);text-transform:uppercase;color:var(--ob-text-3);font-weight:500;display:inline-flex}.ob-led{background:var(--ob-gold);width:5px;height:5px;box-shadow:0 0 6px rgba(var(--ob-gold-rgb), .8), 0 0 14px rgba(var(--ob-gold-rgb), .35);animation:ob-standby 3.2s var(--ob-ease) infinite alternate;border-radius:50%}@keyframes ob-standby{0%{opacity:1}to{opacity:.55}}.ob-h1{letter-spacing:var(--ob-track-display);color:var(--ob-text-1);margin:0;font-size:clamp(1.9rem,1.45rem + 2.1vw,2.65rem);font-weight:600;line-height:1.08}.ob-h1--sm{font-size:clamp(1.4rem,1.2rem + 1vw,1.75rem)}.ob-fade{background:linear-gradient(100deg, var(--ob-text-1) 10%, #777a82 90%);-webkit-text-fill-color:transparent;color:#0000;background-clip:text}.ob-lede{margin:var(--ob-s4) 0 0;font-size:var(--ob-text-md);color:var(--ob-text-2);max-width:58ch;line-height:1.6}.ob-gold-text{color:var(--ob-gold-text)}.ob-gold-value{background:linear-gradient(180deg, var(--ob-gold-hi), var(--ob-gold-deep));-webkit-text-fill-color:transparent;color:#0000;filter:drop-shadow(0 0 16px rgba(var(--ob-gold-rgb), .22));background-clip:text}.ob-mono{font-family:var(--ob-font-mono)}.ob-note{color:var(--ob-text-3);font-size:var(--ob-text-xs);line-height:1.65}.ob-note a,.ob-link{color:var(--ob-text-2);border-bottom:1px solid var(--ob-hairline-strong);transition:color var(--ob-dur-2) var(--ob-ease);text-decoration:none}.ob-note a:hover,.ob-link:hover{color:var(--ob-text-1)}.ob-masthead{padding:var(--ob-s2) var(--ob-s2) var(--ob-s8)}.ob-masthead__row{justify-content:space-between;align-items:center;gap:var(--ob-s4);margin-bottom:var(--ob-s6);display:flex}.ob-btn{align-items:center;gap:var(--ob-s2);padding:7px var(--ob-s4);border-radius:var(--ob-r-pill);border:1px solid var(--ob-hairline);color:var(--ob-text-2);cursor:pointer;font-family:inherit;font-size:var(--ob-text-xs);transition:color var(--ob-dur-2) var(--ob-ease), border-color var(--ob-dur-2) var(--ob-ease), background-color var(--ob-dur-2) var(--ob-ease);background:0 0;font-weight:500;text-decoration:none;display:inline-flex}.ob-btn:hover{color:var(--ob-text-1);border-color:var(--ob-hairline-strong);background:#ffffff06}.ob-btn:active{transform:scale(.98)}.ob-btn svg{width:13px;height:13px}.ob-btn--gold{background:var(--ob-grad-gold);color:#1d1505;box-shadow:var(--ob-shadow-gold-btn);border-color:#0000;font-weight:600}.ob-btn--gold:hover{color:#1d1505;filter:brightness(1.06);background:linear-gradient(180deg, var(--ob-gold-hi), var(--ob-gold-deep));border-color:#0000}.ob-btn--sm{padding:5px var(--ob-s3);font-size:var(--ob-text-2xs)}.ob-badge{text-transform:uppercase;letter-spacing:.08em;border-radius:var(--ob-r-pill);color:var(--ob-text-3);border:1px solid var(--ob-hairline);background:#ffffff05;align-items:center;gap:5px;padding:2px 8px;font-size:.575rem;font-weight:600;line-height:1.5;display:inline-flex}.ob-badge:before{content:"";background:var(--ob-text-3);border-radius:50%;width:4px;height:4px}.ob-badge--gold{color:var(--ob-gold-text);border-color:rgba(var(--ob-gold-rgb), .28);background:rgba(var(--ob-gold-rgb), .07)}.ob-badge--gold:before{background:var(--ob-gold);box-shadow:0 0 5px rgba(var(--ob-gold-rgb), .7)}.ob-badge--ring{color:var(--ob-text-2);border-color:var(--ob-hairline-strong)}.ob-badge--ring:before{box-shadow:inset 0 0 0 1px var(--ob-gold);background:0 0}.ob-badge--ok{color:var(--ob-ok);background:var(--ob-ok-soft);border-color:#62c1734d}.ob-badge--ok:before{background:var(--ob-ok)}.ob-badge--warn{color:var(--ob-warn);background:var(--ob-warn-soft);border-color:#e07b394d}.ob-badge--warn:before{background:var(--ob-warn)}.ob-badge--danger{color:var(--ob-danger);background:var(--ob-danger-soft);border-color:#e5564d4d}.ob-badge--danger:before{background:var(--ob-danger)}.ob-segmented{background:var(--ob-well);border-radius:var(--ob-r-pill);box-shadow:var(--ob-shadow-well);gap:2px;padding:3px;display:inline-flex}.ob-segmented__option{padding:7px var(--ob-s5);cursor:pointer;font-family:inherit;font-size:var(--ob-text-sm);color:var(--ob-text-3);border-radius:var(--ob-r-pill);transition:color var(--ob-dur-2) var(--ob-ease);background:0 0;border:none;font-weight:500;position:relative}.ob-segmented__option:hover{color:var(--ob-text-2)}.ob-segmented__option:before{content:"";border-radius:inherit;background:linear-gradient(180deg, var(--ob-surface-2-hi), var(--ob-surface-2-lo));box-shadow:var(--ob-shadow-thumb);opacity:0;transition:opacity var(--ob-dur-2) var(--ob-ease), transform var(--ob-dur-2) var(--ob-ease);position:absolute;inset:0;transform:scale(.96)}.ob-segmented__option>span{z-index:1;position:relative}.ob-segmented__option.is-active{color:var(--ob-text-1)}.ob-segmented__option.is-active:before{opacity:1;transform:scale(1)}.ob-segmented--sm .ob-segmented__option{padding:6px var(--ob-s4);font-size:var(--ob-text-xs)}.ob-stepper{align-items:center;gap:var(--ob-s2);padding:7px var(--ob-s4);background:var(--ob-well);border-radius:var(--ob-r-pill);box-shadow:var(--ob-shadow-well);font-size:var(--ob-text-sm);transition:box-shadow var(--ob-dur-2) var(--ob-ease);display:inline-flex}.ob-stepper:focus-within{box-shadow:var(--ob-shadow-well), inset 0 0 0 1px rgba(var(--ob-gold-rgb), .3)}.ob-stepper label{color:var(--ob-text-3);white-space:nowrap;font-size:var(--ob-text-xs)}.ob-stepper input{color:var(--ob-text-1);font-family:var(--ob-font-mono);font-size:var(--ob-text-sm);text-align:right;-moz-appearance:textfield;width:3.2ch;caret-color:var(--ob-gold);background:0 0;border:none;font-weight:500}.ob-stepper input.ob-w-wide{width:5ch}.ob-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ob-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ob-stepper input:focus{outline:none}.ob-stepper input[readonly]{color:var(--ob-text-3)}.ob-stepper .ob-unit{color:var(--ob-text-3);font-family:var(--ob-font-mono);font-size:var(--ob-text-xs)}.ob-field{background:var(--ob-well);border-radius:var(--ob-r-well);box-shadow:var(--ob-shadow-well);padding:var(--ob-s4) var(--ob-s5);transition:box-shadow var(--ob-dur-2) var(--ob-ease)}.ob-field.is-focused{box-shadow:var(--ob-shadow-well), var(--ob-ring-gold)}.ob-field__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);margin-bottom:var(--ob-s3);transition:color var(--ob-dur-2) var(--ob-ease);font-weight:500}.ob-field.is-focused .ob-field__label{color:var(--ob-gold-text)}.ob-field__input{align-items:baseline;gap:var(--ob-s2);display:flex}.ob-field__input input{color:var(--ob-text-1);letter-spacing:var(--ob-track-value);-moz-appearance:textfield;width:100%;min-width:0;caret-color:var(--ob-gold);background:0 0;border:none;font-family:inherit;font-size:clamp(1.45rem,1.2rem + 1.1vw,1.8rem);font-weight:600}.ob-field__input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ob-field__input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ob-field__input input:focus{outline:none}.ob-field__unit{font-size:var(--ob-text-md);color:var(--ob-text-3);flex-shrink:0}.ob-field__hint{font-size:var(--ob-text-2xs);color:var(--ob-text-3);margin-top:var(--ob-s3);font-family:var(--ob-font-mono)}.ob-kpi{border:1px solid var(--ob-divider);border-radius:var(--ob-r-well);padding:var(--ob-s4) var(--ob-s5);background:linear-gradient(#ffffff06,#fff0 55%)}.ob-kpi__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);margin-bottom:var(--ob-s3);font-weight:500}.ob-kpi__value{font-size:var(--ob-text-lg);color:var(--ob-text-1);letter-spacing:var(--ob-track-value);font-weight:600}.ob-kpi__value--xl{font-size:var(--ob-text-xl)}.ob-kpi__sub{font-size:var(--ob-text-2xs);color:var(--ob-text-3);margin-top:var(--ob-s2);font-family:var(--ob-font-mono);line-height:1.5}.ob-kpi__row{justify-content:space-between;align-items:center;gap:var(--ob-s3);display:flex}.ob-kpi--hero{background:linear-gradient(180deg, rgba(var(--ob-gold-rgb), .05), rgba(var(--ob-gold-rgb), .012) 60%);border-color:rgba(var(--ob-gold-rgb), .14)}.ob-kpi--hero .ob-kpi__value{background:linear-gradient(180deg, var(--ob-gold-hi), var(--ob-gold-deep));-webkit-text-fill-color:transparent;color:#0000;filter:drop-shadow(0 0 16px rgba(var(--ob-gold-rgb), .22));background-clip:text}.ob-kpi--well{background:var(--ob-well);box-shadow:var(--ob-shadow-well);border:none}.ob-dial{background:radial-gradient(circle at 35% 28%,#1b1c21,#0c0d10 74%);border-radius:50%;flex-shrink:0;width:52px;height:52px;position:relative;box-shadow:inset 0 1px #ffffff14,inset 0 -2px 4px #00000073,0 2px 6px #02030573}.ob-dial:before{content:"";background:conic-gradient(from -135deg, rgba(var(--ob-gold-rgb), .85) calc(var(--val) * 270deg), #ffffff1a calc(var(--val) * 270deg) 270deg, transparent 270deg);-webkit-mask:repeating-conic-gradient(from -135deg, #000 0 2.5deg, transparent 2.5deg 11.25deg), radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 5px));-webkit-mask-composite:source-in;mask:repeating-conic-gradient(from -135deg, #000 0 2.5deg, transparent 2.5deg 11.25deg), radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 5px));transition:--val var(--ob-dur-3) var(--ob-ease);border-radius:50%;position:absolute;inset:5px;mask-composite:intersect}.ob-dial--lg{width:72px;height:72px}.ob-meter{background:var(--ob-well);border-radius:var(--ob-r-pill);height:38px;box-shadow:var(--ob-shadow-well);padding:3px;display:flex;overflow:hidden}.ob-meter__seg{min-width:3px;transition:filter var(--ob-dur-2) var(--ob-ease);position:relative}.ob-meter__seg:first-child{border-radius:var(--ob-r-pill) 0 0 var(--ob-r-pill)}.ob-meter__seg:last-child{border-radius:0 var(--ob-r-pill) var(--ob-r-pill) 0}.ob-meter__seg:only-child{border-radius:var(--ob-r-pill)}.ob-meter__seg:hover{filter:brightness(1.15)}.ob-meter__seg--accent{background:linear-gradient(180deg, var(--ob-gold-hi), var(--ob-gold-deep));box-shadow:inset 0 1px #ffffff73,inset 0 -2px 3px #783c0066}.ob-meter__seg--hi{background:#6b6e76;box-shadow:inset 0 1px #ffffff1a}.ob-meter__seg--mid{background:#41434b;box-shadow:inset 0 1px #ffffff12}.ob-meter__seg--low{background:#24262c;box-shadow:inset 0 1px #ffffff0d}.ob-legend{gap:var(--ob-s3) var(--ob-s5);margin-top:var(--ob-s5);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.ob-legend__item{align-items:center;gap:var(--ob-s3);color:var(--ob-text-2);font-size:var(--ob-text-sm);display:flex}.ob-legend__swatch{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ob-legend__swatch--accent{background:var(--ob-gold);box-shadow:0 0 8px rgba(var(--ob-gold-rgb), .5)}.ob-legend__swatch--hi{background:#6b6e76}.ob-legend__swatch--mid{background:#41434b}.ob-legend__swatch--low{background:#24262c;box-shadow:inset 0 0 0 1px #ffffff1a}.ob-legend__value{color:var(--ob-text-3);font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);margin-left:auto}.ob-panel{overflow:hidden}.ob-panel+.ob-panel{margin-top:var(--ob-s3)}.ob-panel>summary{cursor:pointer;user-select:none;padding:var(--ob-s4) var(--ob-s6);transition:background-color var(--ob-dur-2) var(--ob-ease);justify-content:space-between;align-items:center;list-style:none;display:flex}.ob-panel>summary::-webkit-details-marker{display:none}.ob-panel>summary:hover{background:#ffffff05}.ob-panel__title{align-items:center;gap:var(--ob-s4);font-size:var(--ob-text-md);color:var(--ob-text-1);letter-spacing:var(--ob-track-value);font-weight:500;display:flex}.ob-panel__icon,.ob-icon-well{background:var(--ob-well);width:34px;height:34px;box-shadow:var(--ob-shadow-well);color:var(--ob-text-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ob-panel__icon svg,.ob-icon-well svg{width:15px;height:15px}.ob-icon-well--sm{width:30px;height:30px}.ob-icon-well--sm svg{width:14px;height:14px}.ob-panel__chevron{width:16px;height:16px;color:var(--ob-text-4);transition:transform var(--ob-dur-2) var(--ob-ease);flex-shrink:0}.ob-panel[open] .ob-panel__chevron{transform:rotate(180deg)}.ob-panel__body{padding:var(--ob-s1) var(--ob-s6) var(--ob-s6)}.ob-panel[open] .ob-panel__body{animation:ob-reveal var(--ob-dur-3) var(--ob-ease)}@keyframes ob-reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ob-rows{border-top:1px solid var(--ob-divider);flex-direction:column;display:flex}.ob-row{gap:var(--ob-s4);padding:9px var(--ob-s2);border-bottom:1px solid var(--ob-divider);font-size:var(--ob-text-sm);transition:background-color var(--ob-dur-1) var(--ob-ease);grid-template-columns:1fr auto auto;align-items:baseline;display:grid}.ob-row:hover{background:#ffffff05}.ob-row:last-child{border-bottom:none}.ob-row__name{color:var(--ob-text-2)}.ob-row__meta{color:var(--ob-text-3);font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs)}.ob-row__value{color:var(--ob-text-1);text-align:right;min-width:90px;font-weight:500}.ob-row--total{border-top:1px solid var(--ob-hairline-strong);margin-top:var(--ob-s2);padding-top:var(--ob-s4);font-size:var(--ob-text-base);border-bottom:none;font-weight:600}.ob-row--total .ob-row__name{color:var(--ob-text-1)}.ob-row--total .ob-row__value{color:var(--ob-gold-text)}.ob-items{gap:var(--ob-s2);flex-direction:column;display:flex}.ob-item{align-items:center;gap:var(--ob-s3);padding:10px var(--ob-s4) 10px var(--ob-s3);background:linear-gradient(180deg, var(--ob-surface-hi), var(--ob-surface-lo));border:1px solid var(--ob-hairline);border-radius:var(--ob-r-well);box-shadow:var(--ob-shadow-card);color:var(--ob-text-2);transition:border-color var(--ob-dur-2) var(--ob-ease), transform var(--ob-dur-2) var(--ob-ease), box-shadow var(--ob-dur-2) var(--ob-ease);text-decoration:none;display:flex}.ob-item:hover{border-color:var(--ob-hairline-strong);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff12,inset 0 -1px #0000004d,0 2px 4px #02030580,0 12px 28px -10px #02030599}.ob-item__info{flex:1;min-width:0}.ob-item__name{font-size:var(--ob-text-sm);color:var(--ob-text-1);letter-spacing:var(--ob-track-value);align-items:center;gap:var(--ob-s2);flex-wrap:wrap;font-weight:500;display:flex}.ob-item__desc{font-size:var(--ob-text-2xs);color:var(--ob-text-3);margin-top:2px}.ob-item__arrow{color:var(--ob-text-4);transition:color var(--ob-dur-2) var(--ob-ease), transform var(--ob-dur-2) var(--ob-ease);flex-shrink:0}.ob-item:hover .ob-item__arrow{color:var(--ob-text-2);transform:translate(2px)}.ob-card{background:linear-gradient(180deg, var(--ob-surface-hi), var(--ob-surface-lo));border:1px solid var(--ob-hairline);border-radius:var(--ob-r-card);box-shadow:var(--ob-shadow-card);padding:var(--ob-s5) var(--ob-s6)}.ob-card--quiet{border-color:var(--ob-divider);box-shadow:none;background:#ffffff03}.ob-card h3{font-size:var(--ob-text-md);color:var(--ob-text-1);margin:0 0 var(--ob-s3);letter-spacing:var(--ob-track-value);font-weight:600}.ob-card p,.ob-card ul{font-size:var(--ob-text-sm);color:var(--ob-text-2);margin:0;line-height:1.7}.ob-card p+p,.ob-card ul+p,.ob-card p+ul{margin-top:var(--ob-s3)}.ob-card ul{padding-left:var(--ob-s5)}.ob-card li{margin:var(--ob-s1) 0}.ob-card strong{color:var(--ob-text-1);font-weight:500}.ob-input{background:var(--ob-well);border-radius:var(--ob-r-well);width:100%;box-shadow:var(--ob-shadow-well);color:var(--ob-text-1);font-family:inherit;font-size:var(--ob-text-sm);caret-color:var(--ob-gold);transition:box-shadow var(--ob-dur-2) var(--ob-ease);border:1px solid #0000;padding:8px 14px;display:block}.ob-input::placeholder{color:var(--ob-text-3)}.ob-input:focus{box-shadow:var(--ob-shadow-well), var(--ob-ring-gold);outline:none}.ob-input--error{box-shadow:var(--ob-shadow-well), inset 0 0 0 1px #e5564d73, 0 0 0 1px #e5564d33}.ob-toggle{cursor:pointer;border-radius:var(--ob-r-pill);background:var(--ob-well);width:44px;height:24px;box-shadow:var(--ob-shadow-well);transition:background var(--ob-dur-2) var(--ob-ease), box-shadow var(--ob-dur-2) var(--ob-ease);border:none;flex-shrink:0;align-items:center;display:inline-flex;position:relative}.ob-toggle:after{content:"";background:var(--ob-grad-thumb);width:20px;height:20px;box-shadow:var(--ob-shadow-thumb);transition:transform var(--ob-dur-2) var(--ob-ease), background var(--ob-dur-2) var(--ob-ease);border-radius:50%;transform:translate(2px)}.ob-toggle.is-on{background:var(--ob-grad-gold);box-shadow:inset 0 1px #ffffff73,inset 0 -2px 3px #783c0066}.ob-toggle.is-on:after{background:#1d1505;transform:translate(22px);box-shadow:inset 0 1px #ffffff26,0 1px 2px #00000080}.ob-alert{border-radius:var(--ob-r-ctl);font-size:var(--ob-text-sm);border:1px solid var(--ob-hairline);color:var(--ob-text-2);background:#ffffff05;padding:8px 12px;line-height:1.5}.ob-alert--ok{background:var(--ob-ok-soft);color:var(--ob-ok);border-color:#62c17359}.ob-alert--warn{background:var(--ob-warn-soft);color:var(--ob-warn);border-color:#e07b3959}.ob-alert--danger{background:var(--ob-danger-soft);color:var(--ob-danger);border-color:#e5564d59}.ob-modal-backdrop{z-index:50;padding:var(--ob-s4);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ob-modal{background:var(--ob-grad-slab);border:1px solid var(--ob-hairline);border-radius:var(--ob-r-device);width:100%;max-width:28rem;box-shadow:var(--ob-shadow-device);padding:var(--ob-s6)}.ob-footer{margin-top:var(--ob-s12);padding:var(--ob-s6) var(--ob-s4) 0;border-top:1px solid var(--ob-divider);text-align:center}.ob-footer p,.ob-footer span{font-size:var(--ob-text-xs);color:var(--ob-text-4);max-width:820px;margin:0 auto;line-height:1.9}.ob-footer strong{color:var(--ob-text-3);font-weight:500}.ob-footer a{color:var(--ob-text-3);border-bottom:1px solid var(--ob-hairline);transition:color var(--ob-dur-2) var(--ob-ease);text-decoration:none}.ob-footer a:hover{color:var(--ob-text-2)}.ob-grid-2{gap:var(--ob-s4);grid-template-columns:repeat(2,1fr);display:grid}.ob-grid-3{gap:var(--ob-s4);grid-template-columns:repeat(3,1fr);display:grid}.ob-grid-4{gap:var(--ob-s4);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=920px){.ob-grid-3{grid-template-columns:1fr}.ob-grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.ob-shell{padding:var(--ob-s6) var(--ob-s4) var(--ob-s12)}.ob-device__zone{padding:var(--ob-s5) var(--ob-s5)}.ob-masthead{padding:var(--ob-s1) var(--ob-s1) var(--ob-s6)}.ob-grid-2,.ob-grid-4{grid-template-columns:1fr}.ob-panel>summary{padding:var(--ob-s4) var(--ob-s5)}.ob-panel__body{padding:var(--ob-s1) var(--ob-s5) var(--ob-s5)}}@media (prefers-reduced-motion:reduce){.ob-led{animation:none}.ob-root *,.ob-root :before,.ob-root :after{transition-duration:.001ms!important;animation-duration:.001ms!important}}:root{--ob-well:#0a0c10;--ob-bg:#0f1216;--ob-surface-lo:#161a21;--ob-surface-hi:#1c212b;--ob-surface-2-lo:#1e232d;--ob-surface-2-hi:#272d39;--ob-hairline:#ffffff13;--ob-hairline-strong:#ffffff24;--ob-divider:#ffffff0f;--pf-accent:#83a6ff;--pf-accent-hi:#aac3ff;--pf-accent-soft:#83a6ff24;--pf-accent-rgb:131, 166, 255;--pf-focus-ring:0 0 0 2px var(--ob-bg), 0 0 0 4px #83a6ffbf;--pf-text-2xl:1.75rem;--pf-text-3xl:2.25rem;--pf-text-4xl:3.25rem;--pf-lh-tight:1.1;--pf-lh-snug:1.3}.ob-root{--ob-text-1:#f5f6f8;--ob-text-2:#ced2da;--ob-text-3:#a0a6b1;--ob-text-4:#5c616b;--pf-reading-size:1rem;--pf-reading-lh:1.75;--pf-measure:68ch}.ob-shell--wide{max-width:1280px}[id]{scroll-margin-top:84px}body.ob-root{overflow-x:clip}.ob-bg{background:radial-gradient(100% 55% at 50% -8%, #ffffff08, transparent 58%), radial-gradient(42% 28% at 50% 18%, rgba(var(--ob-gold-rgb), .025), transparent 65%), var(--ob-bg)}.ob-bg:after{background:radial-gradient(120% 90% at 50% 20%,#0000 60%,#0003 100%)}.ob-skiplink{left:var(--ob-s4);top:var(--ob-s3);z-index:200;padding:7px var(--ob-s4);border-radius:var(--ob-r-pill);background:var(--ob-grad-slab);border:1px solid var(--ob-hairline-strong);box-shadow:var(--ob-shadow-card);color:var(--ob-text-1);font-size:var(--ob-text-xs);opacity:0;transition:transform var(--ob-dur-2) var(--ob-ease), opacity var(--ob-dur-2) var(--ob-ease);font-weight:500;text-decoration:none;position:fixed;transform:translateY(-200%)}.ob-skiplink:focus-visible{opacity:1;transform:none}.pf-topbar{z-index:100;backdrop-filter:blur(14px);border-bottom:1px solid var(--ob-divider);background:#0f1216d1;position:sticky;top:0}.ob-sitenav{justify-content:space-between;align-items:center;gap:var(--ob-s4);max-width:1280px;padding:var(--ob-s3) var(--ob-s5);margin:0 auto;display:flex}.ob-sitenav__brand{align-items:center;gap:var(--ob-s3);font-size:var(--ob-text-sm);color:var(--ob-text-1);letter-spacing:var(--ob-track-value);white-space:nowrap;transition:color var(--ob-dur-2) var(--ob-ease);font-weight:500;text-decoration:none;display:inline-flex}.ob-sitenav__brand:hover{color:var(--ob-gold-text)}.ob-sitenav__kind{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);text-transform:uppercase;letter-spacing:var(--ob-track-label);color:var(--ob-text-3);padding-left:var(--ob-s3);border-left:1px solid var(--ob-hairline-strong);font-weight:500}.ob-sitenav__dot{background:var(--ob-grad-gold);width:6px;height:6px;box-shadow:0 0 6px rgba(var(--ob-gold-rgb), .55);border-radius:50%;flex-shrink:0}.ob-sitenav__links{align-items:center;gap:var(--ob-s2) var(--ob-s5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex;position:relative}.ob-sitenav__links>li>a:not(.ob-btn){font-size:var(--ob-text-2xs);text-transform:uppercase;letter-spacing:var(--ob-track-label);color:var(--ob-text-3);transition:color var(--ob-dur-2) var(--ob-ease);padding:2px 0;font-weight:500;text-decoration:none;position:relative}.ob-sitenav__links>li>a:not(.ob-btn):after{content:"";background:var(--ob-gold);transform-origin:0;height:2px;transition:transform var(--ob-dur-2) var(--ob-ease);border-radius:2px;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.ob-sitenav__links>li>a:not(.ob-btn):hover,.ob-sitenav__links>li>a:not(.ob-btn)[aria-current]{color:var(--ob-text-1)}.ob-sitenav__links>li>a:not(.ob-btn)[aria-current]:after{animation:pf-navslide var(--ob-dur-3) var(--ob-ease);transform:scaleX(1)}@keyframes pf-navslide{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.ob-sitenav__links.has-js>li>a:not(.ob-btn):after{content:none}.ob-sitenav__bar{background:var(--ob-gold);opacity:0;width:0;height:2px;transition:transform var(--ob-dur-3) var(--ob-ease), width var(--ob-dur-3) var(--ob-ease), opacity var(--ob-dur-2) var(--ob-ease);border-radius:2px;position:absolute;bottom:-1px;left:0}.ob-sitenav__infra{font-size:var(--ob-text-xs);text-transform:uppercase;letter-spacing:var(--ob-track-label);color:var(--ob-text-3);padding:7px var(--ob-s4);border-radius:var(--ob-r-pill);border:1px solid var(--ob-hairline);transition:color var(--ob-dur-2) var(--ob-ease), border-color var(--ob-dur-2) var(--ob-ease);align-items:center;gap:5px;font-weight:500;text-decoration:none;display:inline-flex}@media (width<=768px){.pf-topbar__left .ob-sitenav__infra{display:none}}.ob-sitenav__infra:hover{color:var(--ob-gold-text);border-color:rgba(var(--ob-gold-rgb), .4)}[data-infra-link][hidden]{display:none!important}.pf-contact{position:relative}.pf-contact>summary{user-select:none;list-style:none}.pf-contact>summary::-webkit-details-marker{display:none}.pf-contact[open]>summary.ob-btn:not(.ob-btn--gold){color:var(--ob-text-1);border-color:var(--ob-hairline-strong)}.pf-contact>summary svg:last-child{transition:transform var(--ob-dur-2) var(--ob-ease)}.pf-contact[open]>summary svg:last-child{transform:rotate(180deg)}.pf-contact__panel{top:calc(100% + var(--ob-s2));z-index:140;background:var(--ob-grad-slab);border:1px solid var(--ob-hairline-strong);border-radius:var(--ob-r-well);min-width:272px;box-shadow:var(--ob-shadow-card);padding:var(--ob-s4) var(--ob-s5);gap:var(--ob-s4);flex-direction:column;display:flex;position:absolute;left:0}.pf-contact--right .pf-contact__panel{left:auto;right:0}.pf-contact__row{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.pf-contact__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);font-weight:500}.pf-contact__value{font-size:var(--ob-text-sm);color:var(--ob-text-1);border-bottom:1px solid var(--ob-hairline-strong);transition:color var(--ob-dur-2) var(--ob-ease), border-color var(--ob-dur-2) var(--ob-ease);text-decoration:none}.pf-contact__value:hover{color:var(--ob-gold-text);border-bottom-color:rgba(var(--ob-gold-rgb), .5)}.pf-contact__value svg{vertical-align:-1.5px;border-radius:2px;margin-right:6px}.pf-burger{display:none;position:relative}.pf-burger>summary{cursor:pointer;user-select:none;border:1px solid var(--ob-hairline);border-radius:var(--ob-r-ctl);width:44px;height:44px;color:var(--ob-text-2);transition:color var(--ob-dur-2) var(--ob-ease), border-color var(--ob-dur-2) var(--ob-ease), background-color var(--ob-dur-2) var(--ob-ease);justify-content:center;align-items:center;list-style:none;display:inline-flex}.pf-burger>summary::-webkit-details-marker{display:none}.pf-burger[open]>summary{color:var(--ob-text-1);border-color:var(--ob-hairline-strong);background:#ffffff08}.pf-burger__panel{z-index:140;backdrop-filter:blur(14px);border:1px solid var(--ob-hairline-strong);border-radius:var(--ob-r-card);width:min(320px,100vw - 32px);box-shadow:var(--ob-shadow-card);padding:var(--ob-s3);background:#0f1216fa;position:absolute;top:calc(100% + 10px);right:0}.pf-burger__link{padding:var(--ob-s3) var(--ob-s4);border-radius:var(--ob-r-ctl);font-size:var(--ob-text-md);color:var(--ob-text-2);transition:color var(--ob-dur-2) var(--ob-ease), background-color var(--ob-dur-2) var(--ob-ease);font-weight:500;text-decoration:none;display:block}.pf-burger__link:hover{color:var(--ob-text-1);background:#ffffff08}.pf-burger__link[aria-current]{color:var(--ob-text-1)}.pf-burger__infra{margin-top:var(--ob-s2);padding-top:var(--ob-s3);border-top:1px solid var(--ob-divider);color:var(--ob-text-3);align-items:center;gap:6px;display:flex}.pf-burger__infra:hover{color:var(--ob-gold-text)}.pf-burger__contact{margin-top:var(--ob-s2);padding:var(--ob-s4) var(--ob-s4) var(--ob-s2);border-top:1px solid var(--ob-divider);align-items:flex-start;gap:var(--ob-s2);flex-direction:column;display:flex}.pf-burger__contact-label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);font-weight:500}.pf-burger__contact a{font-size:var(--ob-text-sm);color:var(--ob-text-2);transition:color var(--ob-dur-2) var(--ob-ease);text-decoration:none}.pf-burger__contact a:hover{color:var(--ob-text-1)}@media (width<=720px){.ob-sitenav{padding:var(--ob-s3) var(--ob-s4)}.ob-sitenav__links{display:none}.pf-burger{display:block}}.pf-section+.pf-section{margin-top:var(--ob-s12)}.pf-section>.ob-section-label{margin-top:0}.ob-masthead+.pf-section{margin-top:var(--ob-s6)}.ob-masthead:has(+#profil){padding-bottom:var(--ob-s2)}.ob-masthead+#profil{margin-top:var(--ob-s2)}.ob-h1:has(.ob-h1__suffix){align-items:baseline;column-gap:var(--ob-s4);row-gap:var(--ob-s1);flex-wrap:wrap;display:flex}.ob-h1__suffix{color:var(--ob-text-3);letter-spacing:var(--ob-track-value);font-size:.46em;font-weight:500}.pf-actions{gap:var(--ob-s2);margin-top:var(--ob-s6);flex-wrap:wrap;display:flex}.pf-note{margin:var(--ob-s4) 0 0}.pf-journal{gap:var(--ob-s2);margin-top:var(--ob-s5);display:grid}.pf-journal>.ob-panel{border-radius:var(--ob-r-well)}.pf-journal>.ob-panel+.ob-panel{margin-top:0}.pf-journal>.ob-panel>summary{padding:12px var(--ob-s4)}.pf-journal>.ob-panel .ob-panel__body{padding:var(--ob-s1) var(--ob-s5) var(--ob-s5)}.pf-projects{align-items:stretch}.pf-project{gap:var(--ob-s2);padding:var(--ob-s4) var(--ob-s5);background:linear-gradient(180deg, var(--ob-surface-hi), var(--ob-surface-lo));border:1px solid var(--ob-hairline);border-radius:var(--ob-r-well);box-shadow:var(--ob-shadow-card);color:var(--ob-text-2);transition:border-color var(--ob-dur-2) var(--ob-ease), transform var(--ob-dur-2) var(--ob-ease), box-shadow var(--ob-dur-2) var(--ob-ease);flex-direction:column;text-decoration:none;display:flex;position:relative}.pf-project:hover{border-color:var(--ob-hairline-strong);box-shadow:var(--ob-shadow-card-hover);transform:translateY(-1px)}.pf-project__head{justify-content:space-between;align-items:baseline;gap:var(--ob-s3);padding-right:var(--ob-s6);flex-wrap:wrap;display:flex}.pf-project__name{font-size:var(--ob-text-md);color:var(--ob-text-1);letter-spacing:var(--ob-track-value);font-weight:600}.pf-project__meta{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);color:var(--ob-text-3);letter-spacing:.02em}.pf-project__desc{font-size:var(--ob-text-sm);color:var(--ob-text-3);line-height:1.55}.pf-project__stack{gap:var(--ob-s1);flex-wrap:wrap;margin-top:auto;display:flex}.pf-project__arrow{top:var(--ob-s4);right:var(--ob-s4);color:var(--ob-text-4);transition:color var(--ob-dur-2) var(--ob-ease), transform var(--ob-dur-2) var(--ob-ease);position:absolute}.pf-project:hover .pf-project__arrow{color:var(--ob-gold-text);transform:translate(2px)}.pf-lang{align-items:center;gap:6px;display:inline-flex}.pf-lang__opt{border:1px solid var(--ob-hairline);opacity:.4;transition:opacity var(--ob-dur-2) var(--ob-ease), box-shadow var(--ob-dur-2) var(--ob-ease), border-color var(--ob-dur-2) var(--ob-ease);border-radius:6px;place-items:center;padding:3px;display:grid}.pf-lang__opt svg{border-radius:2.5px;display:block}.pf-lang__opt:hover{opacity:.85}.pf-lang__opt[aria-current]{opacity:1;box-shadow:0 0 0 1px rgba(var(--ob-gold-rgb), .55), 0 0 10px -2px rgba(var(--ob-gold-rgb), .35);border-color:#0000}.pf-topbar__left{align-items:center;gap:var(--ob-s4);min-width:0;display:inline-flex}.pf-fact__more{margin:var(--ob-s3) 0 0}.pf-columns{gap:var(--ob-s4) var(--ob-s6);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=768px){.pf-columns{grid-template-columns:1fr}}.pf-columns .ob-section-label{margin:var(--ob-s6) 0 var(--ob-s3) var(--ob-s3)}.pf-columns .ob-section-label:first-child{margin-top:0}.ob-crumb{align-items:center;gap:var(--ob-s2);font-family:var(--ob-font-mono);font-size:var(--ob-text-xs);color:var(--ob-text-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ob-crumb a{color:var(--ob-text-3);transition:color var(--ob-dur-2) var(--ob-ease);text-decoration:none}.ob-crumb a:hover{color:var(--ob-text-1)}.ob-crumb__sep{color:var(--ob-text-4);user-select:none}.ob-crumb [aria-current=page]{color:var(--ob-text-2)}.pf-readtime{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);color:var(--ob-text-3);white-space:nowrap}.ob-masthead .ob-lenses{margin-top:var(--ob-s5)}.ob-detail-alert{margin:var(--ob-s4) 0 0}.pf-securenote{align-items:flex-start;gap:var(--ob-s4);margin:var(--ob-s6) 0 0;padding:var(--ob-s4) var(--ob-s5);background:linear-gradient(90deg, rgba(var(--ob-gold-rgb), .07), rgba(var(--ob-gold-rgb), .015) 65%, transparent);border:1px solid rgba(var(--ob-gold-rgb), .22);border-radius:var(--ob-r-well);display:flex}.pf-securenote__icon{background:rgba(var(--ob-gold-rgb), .12);width:34px;height:34px;color:var(--ob-gold-text);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.pf-securenote__label{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);letter-spacing:var(--ob-track-label);text-transform:uppercase;color:var(--ob-gold-text);margin-bottom:4px;font-weight:500;display:block}.pf-securenote__body p{font-size:var(--ob-text-md);color:var(--ob-text-2);margin:0;line-height:1.65}.ob-lenses{align-items:center;gap:var(--ob-s2);flex-wrap:wrap;display:flex}.ob-lens{border-radius:var(--ob-r-pill);border:1px solid var(--ob-hairline);font-size:var(--ob-text-2xs);text-transform:uppercase;letter-spacing:var(--ob-track-label);color:var(--ob-text-2);background:#ffffff05;align-items:center;gap:6px;padding:4px 12px 4px 8px;font-weight:500;display:inline-flex}.ob-lens svg{width:12px;height:12px;color:var(--ob-text-3);flex-shrink:0}.ob-tldr{background:var(--ob-well);border-radius:var(--ob-r-well);box-shadow:var(--ob-shadow-well);padding:var(--ob-s5) var(--ob-s6);margin:var(--ob-s6) 0 0}.ob-tldr__label{align-items:center;gap:var(--ob-s2);font-size:var(--ob-text-2xs);text-transform:uppercase;letter-spacing:var(--ob-track-label);color:var(--ob-gold-text);margin-bottom:var(--ob-s3);font-weight:600;display:flex}.ob-tldr__label svg{width:12px;height:12px}.ob-tldr__body{font-size:var(--pf-reading-size);color:var(--ob-text-1);max-width:var(--pf-measure);margin:0;line-height:1.7}.ob-tldr__body strong{font-weight:600}.pf-toc{align-items:baseline;gap:var(--ob-s2) var(--ob-s5);margin-top:var(--ob-s5);padding:var(--ob-s4) var(--ob-s1) 0;border-top:1px solid var(--ob-divider);flex-wrap:wrap;display:flex}.pf-toc__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);white-space:nowrap;font-weight:500}.pf-toc ol{align-items:baseline;gap:var(--ob-s2) var(--ob-s5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.pf-toc a{font-size:var(--ob-text-sm);color:var(--ob-text-2);transition:color var(--ob-dur-2) var(--ob-ease);align-items:baseline;gap:6px;text-decoration:none;display:inline-flex}.pf-toc a:hover{color:var(--ob-text-1)}.pf-toc__num{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);color:var(--ob-gold-text)}.ob-prose{max-width:var(--pf-measure);counter-reset:pf-section}.ob-prose>:first-child{margin-top:0}.ob-prose h2{counter-increment:pf-section;align-items:baseline;gap:var(--ob-s3);margin:var(--ob-s10) 0 var(--ob-s4);padding-top:var(--ob-s6);border-top:1px solid var(--ob-divider);font-size:var(--ob-text-lg);letter-spacing:var(--ob-track-value);color:var(--ob-text-1);font-weight:600;line-height:1.3;display:flex}.ob-prose h2:before{content:counter(pf-section, decimal-leading-zero);font-family:var(--ob-font-mono);font-size:var(--ob-text-xs);color:var(--ob-gold-text);flex-shrink:0;font-weight:500}.ob-prose>h2:first-child{border-top:none;padding-top:0}.ob-prose h3{margin:var(--ob-s7) 0 var(--ob-s2);letter-spacing:var(--ob-track-value);color:var(--ob-text-1);font-size:1.0625rem;font-weight:600}.ob-prose p{margin:var(--ob-s4) 0;font-size:var(--pf-reading-size);line-height:var(--pf-reading-lh);color:var(--ob-text-2)}.ob-prose strong{color:var(--ob-text-1);font-weight:500}.ob-prose em{color:var(--ob-text-1)}.ob-prose a{color:var(--pf-accent);border-bottom:1px solid rgba(var(--pf-accent-rgb), .4);transition:border-color var(--ob-dur-2) var(--ob-ease), color var(--ob-dur-2) var(--ob-ease);text-decoration:none}.ob-prose a:hover{border-bottom-color:var(--pf-accent);color:var(--pf-accent-hi)}.ob-prose ul,.ob-prose ol{margin:var(--ob-s4) 0;padding-left:var(--ob-s5);font-size:var(--pf-reading-size);line-height:var(--pf-reading-lh);color:var(--ob-text-2)}.ob-prose li{margin:var(--ob-s2) 0}.ob-prose li::marker{color:var(--ob-text-4)}.ob-prose code{font-family:var(--ob-font-mono);color:var(--ob-text-1);background:var(--ob-well);border-radius:5px;padding:1.5px 6px;font-size:.85em;box-shadow:inset 0 0 0 1px #ffffff0a}.ob-prose pre{border-radius:var(--ob-r-well);box-shadow:var(--ob-shadow-well);padding:var(--ob-s4) var(--ob-s5);margin:var(--ob-s5) 0;font-size:var(--ob-text-sm);line-height:1.7;overflow-x:auto;background:var(--ob-well)!important}.ob-prose pre code{box-shadow:none;font-size:inherit;background:0 0;padding:0}.ob-prose blockquote{margin:var(--ob-s4) 0;padding:var(--ob-s3) var(--ob-s5);border-left:2px solid rgba(var(--ob-gold-rgb), .35);color:var(--ob-text-3);font-size:var(--ob-text-base);line-height:1.7}.ob-prose blockquote p{color:inherit;font-size:inherit;margin:var(--ob-s2) 0}.ob-prose hr{border:none;border-top:1px solid var(--ob-divider);margin:var(--ob-s8) 0}.ob-prose table{border-collapse:collapse;width:100%;margin:var(--ob-s4) 0;font-size:var(--ob-text-sm)}.ob-prose th{text-align:left;font-size:var(--ob-text-2xs);text-transform:uppercase;letter-spacing:var(--ob-track-label);color:var(--ob-text-3);padding:var(--ob-s2) var(--ob-s3);border-bottom:1px solid var(--ob-hairline-strong);font-weight:500}.ob-prose td{padding:var(--ob-s2) var(--ob-s3);border-bottom:1px solid var(--ob-divider);color:var(--ob-text-2)}.ob-prose .ob-panel{margin:var(--ob-s4) 0}.ob-prose .ob-panel p,.ob-prose .ob-panel ul,.ob-prose .ob-panel ol{font-size:var(--ob-text-base);line-height:1.7}.ob-prose .ob-panel p:first-child{margin-top:0}.ob-skillgroup{padding:var(--ob-s3) 0}.ob-skillgroup+.ob-skillgroup{border-top:1px solid var(--ob-divider)}.ob-skillgroup__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);margin-bottom:var(--ob-s3);font-weight:500}.ob-skills{gap:var(--ob-s2);flex-wrap:wrap;display:flex}.ob-skill{border-radius:var(--ob-r-pill);border:1px solid var(--ob-hairline);font-size:var(--ob-text-sm);color:var(--ob-text-2);background:#ffffff05;align-items:center;padding:3px 11px;font-weight:500;line-height:1.6;display:inline-flex}.ob-skill--learning{border-style:dashed;border-color:var(--ob-hairline-strong);color:var(--ob-text-3);background:0 0}.ob-diagram{padding-bottom:var(--ob-s2);overflow-x:auto}.ob-diagram svg{width:100%;min-width:720px;height:auto;display:block}.ob-diagram__hint{margin:var(--ob-s2) 0 0;font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-align:center;display:none}@media (width<=820px){.ob-diagram__hint{display:block}}.ob-device{box-shadow:none;background:0 0}.diag-box{fill:var(--ob-surface-hi);stroke:var(--ob-hairline)}.diag-box--well{fill:var(--ob-well);stroke:var(--ob-hairline-strong)}.diag-site{fill:var(--ob-surface-lo);stroke:var(--ob-hairline-strong)}.diag-zone{fill:#ffffff0a;stroke:var(--ob-hairline-strong);stroke-dasharray:4 4}.diag-zone--private{fill:var(--ob-well);stroke:var(--ob-hairline)}.diag-zone--public{fill:rgba(var(--ob-gold-rgb), .05);stroke:rgba(var(--ob-gold-rgb), .3)}.diag-edge--soft{stroke-dasharray:3 5}.diag-label--gold{fill:var(--ob-gold-text)}.diag-title{font-family:var(--ob-font-sans);fill:var(--ob-text-1);letter-spacing:-.02em;font-size:13px;font-weight:600}.diag-title--sm{font-size:12px}.diag-tech{font-family:var(--ob-font-mono);fill:var(--ob-text-3);font-size:10.5px;font-weight:400}.diag-tech--ink{fill:var(--ob-text-2)}.diag-label{font-family:var(--ob-font-mono);fill:var(--ob-text-3);letter-spacing:.09em;font-size:9.5px;font-weight:500}.diag-edge{stroke:var(--ob-hairline-strong);fill:none}.diag-edge-label{font-family:var(--ob-font-mono);fill:var(--ob-text-3);font-size:9.5px}.diag-arrhead{fill:none;stroke:var(--ob-hairline-strong);stroke-width:1.2px}.diag-node{cursor:pointer}.diag-node .diag-box{fill:var(--ob-surface-2-hi);stroke:var(--ob-hairline-strong);transition:stroke var(--ob-dur-2) var(--ob-ease), filter var(--ob-dur-2) var(--ob-ease)}.diag-node .diag-arrow{fill:none;stroke:var(--ob-text-3);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;transition:stroke var(--ob-dur-2) var(--ob-ease)}.diag-node:hover .diag-box,.diag-node:focus-visible .diag-box{stroke:rgba(var(--ob-gold-rgb), .55);filter:brightness(1.18)}.diag-node:hover .diag-arrow,.diag-node:focus-visible .diag-arrow{stroke:var(--ob-gold-text)}.diag-node:focus-visible{outline:2px solid rgba(var(--ob-gold-rgb), .6);outline-offset:2px;border-radius:6px}.pf-diaglegend{align-items:center;gap:var(--ob-s2);font-size:var(--ob-text-xs);color:var(--ob-text-3);margin:0;display:flex}.pf-diaglegend svg{stroke-width:3px;width:12px;height:12px;color:var(--ob-text-3);flex-shrink:0}.pf-doc{gap:var(--ob-s8);grid-template-columns:190px minmax(0,1fr);align-items:start;display:grid}.pf-docnav{flex-direction:column;gap:2px;display:flex;position:sticky;top:84px}.pf-docnav__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);margin:0 0 var(--ob-s2) var(--ob-s3);font-weight:500}.pf-docnav a{padding:7px var(--ob-s3);border-left:2px solid var(--ob-divider);font-size:var(--ob-text-sm);color:var(--ob-text-2);transition:color var(--ob-dur-2) var(--ob-ease), border-color var(--ob-dur-2) var(--ob-ease);text-decoration:none;display:block}.pf-docnav a:hover{color:var(--ob-text-1)}.pf-docnav a.is-active{color:var(--ob-text-1);border-left-color:var(--ob-gold)}.pf-doc__content>section+section{margin-top:var(--ob-s12)}.pf-doc__content section>.ob-section-label{margin-top:0}@media (width<=980px){.pf-doc{gap:var(--ob-s6);grid-template-columns:minmax(0,1fr)}.pf-docnav{gap:var(--ob-s2);flex-direction:row;padding-bottom:4px;position:static;overflow-x:auto}.pf-docnav__label{display:none}.pf-docnav a{border-left:none;border-bottom:2px solid var(--ob-divider);white-space:nowrap}.pf-docnav a.is-active{border-bottom-color:var(--ob-gold)}}.ob-related{margin-top:var(--ob-s10);padding-top:var(--ob-s6);border-top:1px solid var(--ob-divider);justify-content:space-between;align-items:flex-start;gap:var(--ob-s4);flex-wrap:wrap;display:flex}.ob-item__desc{font-size:var(--ob-text-sm);margin-top:3px;line-height:1.55}.ob-card p,.ob-card ul{font-size:var(--ob-text-base);line-height:1.7}.ob-note{font-size:var(--ob-text-sm)}.ob-lede{font-size:var(--pf-reading-size)}.pf-xp{margin:0;padding:0;list-style:none}.pf-xp__item{padding:var(--ob-s4) 0;gap:var(--ob-s4);grid-template-columns:60px minmax(0,1fr);align-items:start;display:grid}.pf-xp__item:first-child{padding-top:0}.pf-xp__item:last-child{padding-bottom:0}.pf-xp__item+.pf-xp__item{border-top:1px solid var(--ob-divider)}.pf-logo{justify-content:flex-start;align-items:center;width:60px;height:44px;display:flex}.pf-logo img{object-fit:contain;filter:grayscale()invert()brightness(1.65)contrast(.95);opacity:.9;max-width:100%;max-height:100%;display:block}.pf-logo--wide{width:96px;height:30px}.pf-logo--light img{filter:grayscale()brightness(.95)}.pf-xp__head{align-items:center;gap:var(--ob-s3);flex-wrap:wrap;display:flex}.pf-xp__role{font-size:var(--ob-text-md);letter-spacing:var(--ob-track-value);color:var(--ob-text-1);font-weight:600}.pf-xp__meta{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);color:var(--ob-text-3);margin-top:3px}.pf-xp__summary{margin:var(--ob-s2) 0 0;font-size:var(--ob-text-sm);color:var(--ob-text-2);line-height:1.65}.pf-fact+.pf-fact{margin-top:var(--ob-s4);padding-top:var(--ob-s4);border-top:1px solid var(--ob-divider)}.pf-skillmini+.pf-skillmini{margin-top:var(--ob-s4)}.pf-skillmini__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);margin-bottom:var(--ob-s2);font-weight:500}.pf-fact .ob-skill{font-size:var(--ob-text-xs);padding:2px 9px}.pf-fact__label{font-size:var(--ob-text-2xs);color:var(--ob-text-3);text-transform:uppercase;letter-spacing:var(--ob-track-label);margin-bottom:var(--ob-s2);font-weight:500}.pf-fact__row{flex-direction:column;align-items:flex-start;gap:1px;display:flex}.pf-fact__row+.pf-fact__row{margin-top:var(--ob-s3)}.pf-fact__name{font-size:var(--ob-text-sm);color:var(--ob-text-1);font-weight:500}.pf-fact__detail{font-size:var(--ob-text-xs);color:var(--ob-text-2);line-height:1.5}.pf-fact__meta{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);color:var(--ob-text-3)}.ob-root a:not(.diag-node):focus-visible,.ob-root button:focus-visible,.ob-root summary:focus-visible,.ob-root [tabindex]:focus-visible{box-shadow:var(--pf-focus-ring);border-radius:var(--ob-r-ctl);outline:none}.ob-root #contenu:focus-visible{box-shadow:none}@media (prefers-reduced-motion:reduce){.ob-root *,.ob-root :before,.ob-root :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-motion:no-preference){::view-transition-old(pf-main){animation:pf-vt-out .14s var(--ob-ease) both}::view-transition-new(pf-main){animation:pf-vt-in .26s var(--ob-ease) both}}@keyframes pf-vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes pf-vt-in{0%{opacity:0;transform:translateY(12px)}}.pf-topbar{view-transition-name:pf-header}::view-transition-group(pf-header){z-index:300}.pf-credrow{gap:var(--ob-s4);margin-top:var(--ob-s6);flex-wrap:wrap;display:flex}.pf-credrow .pf-credential{margin-top:0}.pf-credential{align-items:center;gap:var(--ob-s4);margin-top:var(--ob-s6);padding:var(--ob-s3) var(--ob-s6) var(--ob-s3) var(--ob-s3);background:var(--ob-grad-slab);border:1px solid var(--ob-hairline-strong);border-radius:var(--ob-r-card);box-shadow:var(--ob-shadow-card);max-width:100%;text-decoration:none;display:inline-flex}.pf-credential__logo{background:var(--ob-well);border:1px solid var(--ob-hairline);border-radius:var(--ob-r-well);width:60px;height:60px;box-shadow:var(--ob-shadow-well);flex-shrink:0;place-items:center;display:grid}.pf-credential__logo img{object-fit:contain;filter:grayscale()invert()brightness(1.65)contrast(.95);opacity:.92;max-width:40px;max-height:40px}.pf-credential__figure{font-family:var(--ob-font-mono);font-size:var(--ob-text-md);color:var(--ob-gold-text);letter-spacing:var(--ob-track-value);font-weight:600}.pf-credential--link{transition:border-color var(--ob-dur-2) var(--ob-ease), transform var(--ob-dur-2) var(--ob-ease), box-shadow var(--ob-dur-2) var(--ob-ease);position:relative}.pf-credential--link:hover{border-color:var(--ob-hairline-strong);box-shadow:var(--ob-shadow-card-hover);transform:translateY(-1px)}.pf-credential__arrow{top:var(--ob-s2);right:var(--ob-s2);color:var(--ob-text-4);transition:color var(--ob-dur-2) var(--ob-ease), transform var(--ob-dur-2) var(--ob-ease);position:absolute}.pf-credential--link:hover .pf-credential__arrow{color:var(--ob-gold-text);transform:translate(2px)}.pf-credential__body{flex-direction:column;gap:3px;min-width:0;display:flex}.pf-credential__eyebrow{font-family:var(--ob-font-mono);font-size:var(--ob-text-2xs);letter-spacing:var(--ob-track-label);text-transform:uppercase;color:var(--ob-gold-text)}.pf-credential__title{font-size:var(--ob-text-md);color:var(--ob-text-1);letter-spacing:var(--ob-track-value);font-weight:600;line-height:1.25}.pf-credential__meta{font-family:var(--ob-font-mono);font-size:var(--ob-text-xs);color:var(--ob-text-3);letter-spacing:.01em}@media (width<=520px){.pf-credential{gap:var(--ob-s3);padding:var(--ob-s3)}.pf-credential__logo{width:48px;height:48px}.pf-credential__logo img{max-width:32px;max-height:32px}}@media (width<=640px){.pf-actions .ob-btn,.ob-related .ob-btn{min-height:44px}.pf-burger__contact a{padding-block:8px}.pf-contact__panel{left:var(--ob-s4);right:var(--ob-s4);margin-top:var(--ob-s2);min-width:0;position:fixed;top:auto}}html{overflow-x:clip}.ob-footer{z-index:1;padding:var(--ob-s6) var(--ob-s5) var(--ob-s7);margin-top:0;position:relative}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
