.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-2\.5{left:.625rem;right:.625rem}.bottom-1{bottom:.25rem}.top-0{top:0}.z-40{z-index:40}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-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-\[2px\]{height:2px}.h-full{height:100%}.h-px{height:1px}.min-h-screen{min-height:100vh}.w-16{width:4rem}.w-7{width:1.75rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-\[40rem\]{max-width:40rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.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-1{-moz-column-gap:.25rem;column-gap:.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-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-\[var\(--color-line\)\]>:not([hidden])~:not([hidden]){border-color:var(--color-line)}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.border{border-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[var\(--color-line\)\]{border-color:var(--color-line)}.bg-\[color-mix\(in_srgb\,var\(--color-panel\)_72\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-panel) 72%,transparent)}.bg-\[color-mix\(in_srgb\,var\(--color-paper\)_92\%\,transparent\)\]{background-color:color-mix(in srgb,var(--color-paper) 92%,transparent)}.bg-copper{background-color:var(--color-copper)}.bg-transparent{background-color:transparent}.bg-\[radial-gradient\(ellipse_75\%_70\%_at_50\%_45\%\,color-mix\(in_srgb\,var\(--color-paper\)_55\%\,transparent\)_0\%\,color-mix\(in_srgb\,var\(--color-paper\)_88\%\,transparent\)_72\%\)\]{background-image:radial-gradient(ellipse 75% 70% at 50% 45%,color-mix(in srgb,var(--color-paper) 55%,transparent),color-mix(in srgb,var(--color-paper) 88%,transparent) 72%)}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-\[color-mix\(in_srgb\,var\(--color-paper\)_92\%\,transparent\)\]{--tw-gradient-from: color-mix(in srgb,var(--color-paper) 92%,transparent) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[color-mix\(in_srgb\,var\(--color-paper\)_35\%\,transparent\)\]{--tw-gradient-to: color-mix(in srgb,var(--color-paper) 35%,transparent) var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-\[var\(--space-page-y\)\]{padding-top:var(--space-page-y);padding-bottom:var(--space-page-y)}.pt-10{padding-top:2.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-display{font-family:var(--font-display)}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.95rem\]{font-size:.95rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[1\.05rem\]{font-size:1.05rem}.text-\[clamp\(1\.15rem\,2\.4vw\,1\.45rem\)\]{font-size:clamp(1.15rem,2.4vw,1.45rem)}.text-\[clamp\(1\.35rem\,3\.2vw\,1\.85rem\)\]{font-size:clamp(1.35rem,3.2vw,1.85rem)}.text-\[clamp\(3\.1rem\,9\.5vw\,5\.35rem\)\]{font-size:clamp(3.1rem,9.5vw,5.35rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.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-\[0\.98\]{line-height:.98}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-brand{letter-spacing:.04em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[var\(--color-line\)\]{color:var(--color-line)}.text-copper{color:var(--color-copper)}.text-ink{color:var(--color-ink)}.text-paper{color:var(--color-paper)}.text-sage{color:var(--color-sage)}.text-stone{color:var(--color-stone)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-90{opacity:.9}.outline{outline-style:solid}.\!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)!important}.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-md{--tw-backdrop-blur: blur(12px);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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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}.\[relative\:StyleGroup\]{relative:StyleGroup}html[data-js-deploy="20261027c"]{--deploy-stamp: 20261027c}:root{color-scheme:light;--color-ink: #171c21;--color-mist: #4a545e;--color-paper: #f7f8fa;--color-copper: #0f58aa;--color-copper-deep: #0b4a90;--color-sage: #0b4a90;--color-stone: #667079;--color-line: rgba(23, 28, 33, .18);--color-panel: #ffffff;--color-surface: #f1f3f5;--color-code-bg: #ffffff;--color-code-fg: #383a42;--hmi-accent: #3a86f0;--hmi-accent-deep: #2a6cd8;--hmi-topbar: #21303f;--font-display: "IBM Plex Sans", "Syne", "Bahnschrift SemiBold", "Bahnschrift", "DIN Alternate", "Arial Narrow", "HarmonyOS Sans SC", "MiSans", "PingFang SC", "Microsoft YaHei", sans-serif;--font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", "HarmonyOS Sans SC", "MiSans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-mono: "IBM Plex Mono", "Cascadia Mono", "JetBrains Mono", Consolas, "Liberation Mono", "Courier New", monospace;--ease-out: cubic-bezier(.22, 1, .36, 1);--max-w: 72rem;--content-w: 52rem;--content-wide: 68rem;--space-page-x: clamp(1.35rem, 4.5vw, 2.5rem);--space-page-y: clamp(2.75rem, 5.5vw, 4rem);--space-section: clamp(5rem, 9vw, 7.5rem);--space-block: clamp(2rem, 3.5vw, 2.75rem);--header-h: 4rem}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}html{font-size:clamp(16px,.5vw + 9.5px,22px)}@media (min-width: 1700px){.prose{max-width:46rem}}body{margin:0;min-height:100vh;width:100%;overflow-x:clip;font-family:var(--font-body);color:var(--color-ink);background-color:var(--color-paper);line-height:1.7;-webkit-font-smoothing:antialiased}.site-frame{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--space-page-x)}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}::-moz-selection{background:color-mix(in srgb,var(--color-copper) 32%,transparent);color:var(--color-ink)}::selection{background:color-mix(in srgb,var(--color-copper) 32%,transparent);color:var(--color-ink)}.page-shell{width:100%;max-width:var(--content-w);margin-inline:auto}.page-shell--wide{width:100%;max-width:var(--content-wide);margin-inline:auto}.page-header{margin-bottom:var(--space-block)}.page-header--wide{max-width:var(--content-wide)}.page-kicker{margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-sage)}.page-title{margin:.65rem 0 0;font-family:var(--font-display);font-size:clamp(2.35rem,5.5vw,3.4rem);font-weight:800;line-height:1.08;letter-spacing:-.03em;color:var(--color-ink)}.page-subtitle{margin:.4rem 0 0;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--color-stone)}.page-lede{margin:1.1rem 0 0;max-width:34rem;color:var(--color-stone);font-size:1.05rem;line-height:1.65}.page-rule{display:block;margin-top:1.5rem;width:min(7.5rem,40%);height:2px;background:var(--color-copper)}.ip-callout{border:1px solid var(--color-line);background:color-mix(in srgb,var(--color-surface) 72%,transparent);border-left:3px solid var(--color-copper);border-radius:.5rem;padding:1.25rem 1.5rem}.hmi-accent{color:var(--hmi-accent)}.section-pad{padding-block:var(--space-section);padding-inline:var(--space-page-x)}.section-title{margin:0;font-family:var(--font-display);font-size:clamp(1.55rem,3vw,1.95rem);font-weight:700;letter-spacing:-.02em;color:var(--color-ink)}.section-intro{margin:.75rem 0 0;max-width:32rem;color:var(--color-stone)}.prose{max-width:42rem;font-size:1.02rem;line-height:1.8;color:color-mix(in srgb,var(--color-ink) 92%,var(--color-stone))}.prose>*:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--color-ink);line-height:1.25;margin-top:2.25rem;margin-bottom:.75rem}.prose h2{font-size:1.45rem}.prose h3{font-size:1.2rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose table{margin:0 0 1.15rem}.prose ul,.prose ol{padding-left:1.35rem}.prose li+li{margin-top:.35rem}.prose a{color:var(--color-sage);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.prose a:hover{color:var(--color-copper-deep)}.prose blockquote{margin-left:0;padding:.15rem 0 .15rem 1rem;border-left:2px solid var(--color-copper);color:var(--color-stone)}.prose code{font-size:.9em;padding:.12em .4em;background:color-mix(in srgb,var(--color-surface) 85%,transparent);border-radius:4px;color:var(--color-code-fg)}.prose pre{margin:0 0 1.35rem;padding:1.1rem 1.3rem .85rem;max-width:100%;min-width:0;overflow-x:auto;background:var(--color-code-bg)!important;color:var(--color-code-fg);border:1px solid var(--color-line);border-left:2px solid color-mix(in srgb,var(--color-sage) 55%,var(--color-line));border-radius:.5rem;font-family:var(--font-mono);font-size:1rem;line-height:1.25;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.prose pre::-webkit-scrollbar,.prose table::-webkit-scrollbar{-webkit-appearance:none;height:12px;width:12px}.prose pre::-webkit-scrollbar-track,.prose table::-webkit-scrollbar-track{background:color-mix(in srgb,var(--color-ink) 18%,var(--color-code-bg));border-radius:999px}.prose pre::-webkit-scrollbar-thumb,.prose table::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-sage) 82%,var(--color-ink));border-radius:999px;border:2px solid color-mix(in srgb,var(--color-ink) 18%,var(--color-code-bg));background-clip:padding-box}@supports not selector(::-webkit-scrollbar){.prose pre,.prose table{scrollbar-width:auto;scrollbar-color:color-mix(in srgb,var(--color-sage) 82%,var(--color-ink)) color-mix(in srgb,var(--color-ink) 18%,var(--color-code-bg))}}.prose .astro-code code{counter-reset:line}.prose .astro-code .line{line-height:1.25;display:block;counter-increment:line;width:-moz-max-content;width:max-content;min-width:calc(100% - 2.75rem);box-sizing:content-box;padding-right:2.75rem}.prose .astro-code .line:before{content:counter(line);display:inline-block;box-sizing:border-box;width:calc(2.4ch + 1.1em);padding-right:1.1em;text-align:right;color:color-mix(in srgb,var(--color-stone) 62%,transparent);-moz-user-select:none;user-select:none;-webkit-user-select:none;position:sticky;left:0;z-index:1;background:var(--color-code-bg)}.prose pre code{display:block;padding:0;background:none;border:none;border-radius:0;font-size:1em;color:inherit}.prose table{width:100%;border-collapse:collapse;font-size:.92rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--color-line);padding:.5rem .65rem;text-align:left}.prose th{background:var(--color-panel);font-weight:600}.prose img{margin:1.25rem 0;border:1px solid var(--color-line)}.prose hr{border:none;border-top:1px solid var(--color-line);margin:2rem 0}@keyframes rise-in{0%{opacity:0;transform:translateY(1.1rem)}to{opacity:1;transform:translateY(0)}}@keyframes draw-line{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fade-soft{0%{opacity:0}to{opacity:1}}.animate-rise{animation:rise-in .85s var(--ease-out) both}.animate-rise-delay-1{animation:rise-in .85s var(--ease-out) .1s both}.animate-rise-delay-2{animation:rise-in .85s var(--ease-out) .2s both}.animate-rise-delay-3{animation:rise-in .85s var(--ease-out) .3s both}.animate-fade{animation:fade-soft 1.1s var(--ease-out) both}.underline-draw{transform-origin:left;animation:draw-line .9s var(--ease-out) .45s both}.site-header__inner{position:relative}.site-brand{max-width:min(58%,14rem)}@media (min-width: 768px){.site-brand{max-width:none}}.site-nav-desktop{flex:0 1 auto;margin-left:auto}.site-nav-desktop ul{list-style:none;margin:0;padding:0}.site-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin-left:auto;border:1px solid var(--color-line);background:color-mix(in srgb,var(--color-paper) 70%,transparent);color:var(--color-ink);cursor:pointer;transition:border-color .2s var(--ease-out),background .2s var(--ease-out)}.site-menu-btn:hover{border-color:color-mix(in srgb,var(--color-copper) 45%,var(--color-line))}.site-menu-btn__bars,.site-menu-btn__bars:before,.site-menu-btn__bars:after{display:block;width:1.05rem;height:1.5px;background:currentColor;transition:transform .25s var(--ease-out),opacity .2s ease}.site-menu-btn__bars{position:relative}.site-menu-btn__bars:before,.site-menu-btn__bars:after{content:"";position:absolute;left:0}.site-menu-btn__bars:before{top:-5px}.site-menu-btn__bars:after{top:5px}.site-menu-btn.is-open .site-menu-btn__bars{background:transparent}.site-menu-btn.is-open .site-menu-btn__bars:before{top:0;transform:rotate(45deg)}.site-menu-btn.is-open .site-menu-btn__bars:after{top:0;transform:rotate(-45deg)}.site-menu{border-top:1px solid var(--color-line);background:color-mix(in srgb,var(--color-paper) 96%,transparent)}.site-menu__list{list-style:none;margin:0;padding:.5rem var(--space-page-x) .85rem}.site-menu__link{display:block;padding:.7rem 0;border-bottom:1px solid var(--color-line);font-size:1rem;color:var(--color-stone);transition:color .2s ease}.site-menu__list li:last-child .site-menu__link{border-bottom:none}.site-menu__link:hover,.site-menu__link.is-active{color:var(--color-ink)}.site-menu__link.is-active{font-weight:600;box-shadow:inset 0 -2px 0 var(--color-copper)}html.menu-open{overflow:hidden}.status-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 640px){.status-grid{grid-template-columns:1fr}}.status-metric{padding:1.1rem 0 0;border-top:1px solid var(--color-line)}.status-metric__label{margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-sage)}.status-metric__value{margin:.45rem 0 0;font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:800;letter-spacing:-.03em;color:var(--color-ink);line-height:1.1}.status-metric__value.is-ok{color:var(--color-sage)}.status-metric__value.is-warn{color:var(--color-ink)}.status-live{display:inline-flex;align-items:center;gap:.45rem;font-size:.875rem;color:var(--color-stone)}.status-live__dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--color-stone)}.status-live.is-connected .status-live__dot{background:var(--color-sage);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-sage) 22%,transparent)}.status-live.is-down .status-live__dot{background:var(--color-ink)}.status-device-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-line)}.status-device{display:grid;grid-template-columns:1fr auto;gap:.35rem 1.25rem;align-items:baseline;padding:1.15rem 0;border-bottom:1px solid var(--color-line)}.status-device__name{margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--color-ink)}.status-device__meta{margin:.2rem 0 0;font-size:.875rem;color:var(--color-stone)}.status-badge{display:inline-block;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-stone)}.status-badge.is-online{color:var(--color-sage)}.status-badge.is-warning{color:var(--color-ink)}.status-badge.is-offline{color:var(--color-stone)}.status-empty{padding:1.5rem 0;color:var(--color-stone)}.hmi-kpi{display:grid;gap:1px;margin-top:1.75rem;background:var(--color-line);border:1px solid var(--color-line);grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 900px){.hmi-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}}.hmi-kpi__tile{padding:.9rem 1rem 1rem;background:var(--color-panel)}.hmi-kpi__label{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-sage)}.hmi-kpi__value{margin:.4rem 0 0;font-family:var(--font-display);font-size:clamp(1.6rem,3.6vw,2.1rem);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.05;color:var(--color-ink)}.hmi-kpi__unit{margin-left:.35rem;font-size:.8rem;font-weight:600;letter-spacing:0;color:var(--color-stone)}.hmi-chart{margin:1.25rem 0 0;padding:.9rem 1rem .65rem;background:var(--color-panel);border:1px solid var(--color-line)}.hmi-chart__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;margin:0 0 .6rem;font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--color-ink)}.hmi-chart__hint{font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:0;color:var(--color-stone)}.hmi-chart svg{display:block;width:100%;height:auto}.hmi-chart__axis{stroke:var(--color-line);stroke-width:1}.hmi-chart__grid{stroke:#171c211a;stroke-width:1;stroke-dasharray:2 4}.hmi-chart__tick,.hmi-chart__rowlabel{font-family:var(--font-mono);font-size:11px;fill:var(--color-stone)}.hmi-chart__rowlabel{font-family:var(--font-display);font-size:12.5px;fill:var(--color-mist)}.hmi-chart__rowlabel.is-narrow{font-size:10.5px}.hmi-chart__bar{fill:var(--color-sage);opacity:.82}.hmi-chart__area{fill:#0f58aa14;stroke:none}.hmi-chart__line{fill:none;stroke:var(--color-sage);stroke-width:1.8;stroke-linejoin:round}.hmi-chart__dot{fill:var(--color-sage);stroke:var(--color-panel);stroke-width:1.5}.hmi-chart__rowbg{fill:#171c210d}.hmi-chart__pulse{fill:var(--color-sage);opacity:.78}.hmi-chart__pulse.is-alarm{fill:var(--color-ink);opacity:.9}.hmi-chart__empty{font-family:var(--font-mono);font-size:12px;fill:var(--color-stone)}.reveal{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.reveal--profile{width:100%}.reveal__btn--profile{display:block;width:100%;padding:.55rem .75rem;border:1px solid var(--color-line);border-radius:.7rem;background:color-mix(in srgb,var(--color-paper) 70%,transparent);font-family:var(--font-body);font-size:.92rem;color:var(--color-ink);cursor:pointer;transition:border-color .2s var(--ease-out),color .2s var(--ease-out),background .2s var(--ease-out)}.reveal__btn--profile:hover{border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));color:var(--color-copper-deep);background:color-mix(in srgb,var(--color-copper) 6%,transparent)}@media (max-height: 560px){.reveal__btn--profile{padding:.35rem .6rem;font-size:.82rem}}.reveal__btn--inline{font-family:inherit;font-size:inherit;font-weight:500;line-height:inherit;color:var(--color-ink);background:none;border:none;padding:0;cursor:pointer;text-underline-offset:4px;transition:color .2s ease}.reveal__btn--inline:hover{color:var(--color-copper);text-decoration:underline}.reveal__link{font-weight:500;color:var(--color-ink);text-underline-offset:4px;transition:color .2s ease}.reveal__link:hover{color:var(--color-copper);text-decoration:underline}.reveal__text{font-weight:500;color:var(--color-ink);font-variant-numeric:tabular-nums}.reveal__copy{padding:.12rem .6rem;border:1px solid var(--color-line);border-radius:999px;background:color-mix(in srgb,var(--color-paper) 70%,transparent);font-size:.78rem;color:var(--color-sage);cursor:pointer;transition:border-color .2s ease,color .2s ease}.reveal__copy:hover{border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));color:var(--color-copper-deep)}.code-wrap{position:relative;max-width:100%;min-width:0}.code-copy{position:absolute;top:.5rem;right:.5rem;padding:.22rem .65rem;font-family:var(--font-body);font-size:.75rem;color:var(--color-sage);background:color-mix(in srgb,var(--color-panel) 88%,transparent);border:1px solid var(--color-line);border-radius:.45rem;cursor:pointer;opacity:.35;transition:opacity .18s ease,color .18s ease,border-color .18s ease}.code-wrap:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{color:var(--color-copper-deep);border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line))}.code-copy.is-done{opacity:1;color:var(--color-sage);border-color:color-mix(in srgb,var(--color-sage) 55%,var(--color-line))}@media (hover: none){.code-copy{opacity:.85}}#to-top{position:fixed;right:1.25rem;bottom:1.25rem;z-index:50;display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid var(--color-line);background:color-mix(in srgb,var(--color-panel) 90%,transparent);color:var(--color-sage);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(.6rem);transition:opacity .25s var(--ease-out),transform .25s var(--ease-out),visibility .25s,border-color .18s ease,box-shadow .18s ease}#to-top.is-visible{opacity:1;visibility:visible;transform:none}#to-top:hover{border-color:color-mix(in srgb,var(--color-sage) 60%,var(--color-line))}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.animate-rise,.animate-rise-delay-1,.animate-rise-delay-2,.animate-rise-delay-3,.animate-drift,.animate-fade,.underline-draw{animation:none!important}}.before\:mx-2:before{content:var(--tw-content);margin-left:.5rem;margin-right:.5rem}.before\:text-copper:before{content:var(--tw-content);color:var(--color-copper)}.before\:content-\[\'\/\'\]:before{--tw-content: "/";content:var(--tw-content)}.first\:pt-5:first-child{padding-top:1.25rem}.first\:before\:mr-0:first-child:before{content:var(--tw-content);margin-right:0}.first\:before\:content-none:first-child:before{--tw-content: none;content:var(--tw-content)}.last\:pb-5:last-child{padding-bottom:1.25rem}.hover\:border-\[var\(--color-sage\)\]:hover{border-color:var(--color-sage)}.hover\:bg-\[var\(--color-copper-deep\)\]:hover{background-color:var(--color-copper-deep)}.hover\:text-\[var\(--color-copper-deep\)\]:hover{color:var(--color-copper-deep)}.hover\:text-\[var\(--color-sage\)\]:hover{color:var(--color-sage)}.hover\:text-copper:hover{color:var(--color-copper)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:underline:hover{text-decoration-line:underline}.group:hover .group-hover\:text-copper{color:var(--color-copper)}@media (min-width: 640px){.sm\:mt-14{margin-top:3.5rem}.sm\:grid-cols-\[6\.5rem_1fr\]{grid-template-columns:6.5rem 1fr}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-baseline{align-items:baseline}.sm\:justify-between{justify-content:space-between}.sm\:gap-10{gap:2.5rem}.sm\:gap-8{gap:2rem}.sm\: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))}.sm\:py-11{padding-top:2.75rem;padding-bottom:2.75rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:py-7{padding-top:1.75rem;padding-bottom:1.75rem}.sm\:pt-1{padding-top:.25rem}.sm\:text-right{text-align:right}.sm\:text-\[1\.05rem\]{font-size:1.05rem}.sm\:text-\[1\.35rem\]{font-size:1.35rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:first\:pt-6:first-child{padding-top:1.5rem}.sm\:last\:pb-6:last-child{padding-bottom:1.5rem}}@media (min-width: 768px){.md\:block{display:block}.md\:inline{display:inline}.md\:hidden{display:none}}@media (min-width: 1024px){.lg\:inset-x-3{left:.75rem;right:.75rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}}.nav-search[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-left:.35rem;border:1px solid var(--color-line);border-radius:999px;color:var(--color-stone);transition:color .18s ease,border-color .18s ease,background .18s ease}.nav-search[data-astro-cid-3ef6ksr2]:hover{color:var(--color-copper-deep);border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));background:color-mix(in srgb,var(--color-copper) 7%,transparent)}.nav-dd[data-astro-cid-3ef6ksr2]{position:relative}.nav-dd__trigger[data-astro-cid-3ef6ksr2]{background:none;border:none;font-family:inherit;cursor:pointer}.nav-dd__caret[data-astro-cid-3ef6ksr2]{transition:transform .2s var(--ease-out, ease)}.nav-dd[data-astro-cid-3ef6ksr2].is-open .nav-dd__caret[data-astro-cid-3ef6ksr2]{transform:rotate(180deg)}.nav-dd__menu[data-astro-cid-3ef6ksr2]{position:absolute;top:calc(100% + 2px);right:0;z-index:50;min-width:10.5rem;margin:0;padding:.4rem 0;list-style:none;background:color-mix(in srgb,var(--color-panel) 94%,var(--color-paper));border:1px solid var(--color-line);border-radius:.8rem;box-shadow:0 18px 40px -22px #171c2140;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .16s ease,transform .16s var(--ease-out, ease),visibility .16s}.nav-dd[data-astro-cid-3ef6ksr2].is-open .nav-dd__menu[data-astro-cid-3ef6ksr2]{opacity:1;visibility:visible;transform:translateY(0)}.nav-dd__link[data-astro-cid-3ef6ksr2]{display:block;padding:.5rem 1rem;font-size:.88rem;color:var(--color-stone);white-space:nowrap;transition:color .15s ease,background .15s ease}.nav-dd__link[data-astro-cid-3ef6ksr2]:hover{color:var(--color-copper-deep);background:color-mix(in srgb,var(--color-copper) 7%,transparent)}.nav-acc__trigger[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;background:none;border-bottom:1px solid var(--color-line);font-family:inherit;cursor:pointer}.nav-acc__caret[data-astro-cid-3ef6ksr2]{flex-shrink:0;transition:transform .2s ease}li[data-astro-cid-3ef6ksr2].is-open>.nav-acc__trigger[data-astro-cid-3ef6ksr2] .nav-acc__caret[data-astro-cid-3ef6ksr2]{transform:rotate(180deg)}.nav-acc__panel[data-astro-cid-3ef6ksr2]{margin:0;padding:.15rem 0 .35rem;list-style:none}.nav-acc__link[data-astro-cid-3ef6ksr2]{display:block;padding:.5rem 0 .5rem 1.1rem;font-size:.92rem;color:var(--color-stone);border-left:2px solid var(--color-line);margin-left:.35rem;transition:color .15s ease,border-color .15s ease}.nav-acc__link[data-astro-cid-3ef6ksr2]:hover{color:var(--color-copper-deep);border-left-color:var(--color-copper)}.footer-nav[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.85rem}.notfound[data-astro-cid-zetdm5md]{padding-block:clamp(2.5rem,8vw,5rem);text-align:center}.notfound__code[data-astro-cid-zetdm5md]{margin:0;font-family:var(--font-display);font-size:clamp(4rem,14vw,7rem);font-weight:800;line-height:1;letter-spacing:.02em;color:color-mix(in srgb,var(--color-copper) 62%,var(--color-stone));text-shadow:0 0 34px color-mix(in srgb,var(--color-copper) 45%,transparent)}.notfound__title[data-astro-cid-zetdm5md]{margin:.75rem 0 0;font-family:var(--font-display);font-size:clamp(1.4rem,4vw,1.9rem);font-weight:800;color:var(--color-ink)}.notfound__lede[data-astro-cid-zetdm5md]{margin:.6rem auto 0;max-width:34rem;font-size:.98rem;line-height:1.7;color:var(--color-stone)}.notfound__actions[data-astro-cid-zetdm5md]{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:1.75rem}.notfound-btn[data-astro-cid-zetdm5md]{padding:.55rem 1.1rem;border:1px solid var(--color-line);border-radius:.75rem;background:color-mix(in srgb,var(--color-paper) 70%,transparent);font-size:.92rem;font-weight:500;color:var(--color-ink);transition:border-color .18s ease,color .18s ease,background .18s ease,transform .18s ease}.notfound-btn[data-astro-cid-zetdm5md]:hover{border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));color:var(--color-copper-deep);background:color-mix(in srgb,var(--color-copper) 7%,transparent);transform:translateY(-1px)}.notfound-btn--primary[data-astro-cid-zetdm5md]{border-color:color-mix(in srgb,var(--color-sage) 45%,var(--color-line));background:color-mix(in srgb,var(--color-sage) 10%,transparent);color:var(--color-sage)}.notfound-btn--primary[data-astro-cid-zetdm5md]:hover{border-color:var(--color-sage);background:color-mix(in srgb,var(--color-sage) 16%,transparent);color:var(--color-sage)}.notfound__recent[data-astro-cid-zetdm5md]{margin:clamp(2.25rem,6vw,3.25rem) auto 0;max-width:32rem;text-align:left}.notfound__recent-title[data-astro-cid-zetdm5md]{margin:0 0 .5rem;font-size:.75rem;font-weight:600;letter-spacing:.14em;color:var(--color-sage)}.notfound__recent[data-astro-cid-zetdm5md] ul[data-astro-cid-zetdm5md]{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-line)}.notfound__recent[data-astro-cid-zetdm5md] li[data-astro-cid-zetdm5md]{border-bottom:1px solid var(--color-line)}.notfound__recent[data-astro-cid-zetdm5md] a[data-astro-cid-zetdm5md]{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.6rem .25rem}.notfound__recent[data-astro-cid-zetdm5md] a[data-astro-cid-zetdm5md]:hover .notfound__recent-name[data-astro-cid-zetdm5md]{color:var(--color-copper-deep)}.notfound__recent-name[data-astro-cid-zetdm5md]{min-width:0;font-size:.95rem;color:var(--color-ink);transition:color .15s ease}.notfound__recent[data-astro-cid-zetdm5md] time[data-astro-cid-zetdm5md]{flex-shrink:0;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.about-who[data-astro-cid-kh7btl4r]{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.25rem 1.5rem;align-items:start}.about-avatar[data-astro-cid-kh7btl4r]{display:grid;place-items:center;overflow:hidden;width:5.5rem;height:5.5rem;border-radius:50%;border:1px solid var(--color-line);background:color-mix(in srgb,var(--color-mist) 55%,var(--color-paper))}.about-avatar[data-astro-cid-kh7btl4r] img[data-astro-cid-kh7btl4r]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.about-avatar[data-astro-cid-kh7btl4r] span[data-astro-cid-kh7btl4r]{font-family:var(--font-display);font-size:1.6rem;font-weight:800;color:var(--color-sage)}.about-offers[data-astro-cid-kh7btl4r]{display:flex;flex-direction:column;gap:1.1rem;margin:1.5rem 0 0;padding:0;list-style:none}.about-offers__title[data-astro-cid-kh7btl4r]{margin:0;font-family:var(--font-display);font-weight:700;color:var(--color-ink)}.about-offers__body[data-astro-cid-kh7btl4r]{margin:.2rem 0 0;color:var(--color-stone);line-height:1.65}@media (max-width: 640px){.about-who[data-astro-cid-kh7btl4r]{grid-template-columns:1fr}}.cal{margin-top:clamp(1.75rem,4vw,2.5rem);padding:1.25rem 1.35rem 1.4rem;border:1px solid var(--color-line);border-radius:1rem;background:color-mix(in srgb,var(--color-paper) 78%,var(--color-mist))}.cal__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.cal__title{margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:800;color:var(--color-ink)}.cal__nav{display:flex;align-items:center;gap:.5rem}.cal__navbtn{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border:1px solid var(--color-line);border-radius:.55rem;background:transparent;color:var(--color-ink);font-size:.9rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.cal__navbtn:hover:not(:disabled){border-color:var(--color-copper);color:var(--color-copper-deep)}.cal__navbtn:disabled{opacity:.35;cursor:default}.cal__ym{min-width:7.5em;text-align:center;font-size:.95rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-ink)}.cal__week,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal__week{margin-bottom:4px}.cal__week span{text-align:center;font-size:.75rem;font-weight:600;color:var(--color-stone)}.cal__cell{display:inline-flex;align-items:center;justify-content:center;position:relative;aspect-ratio:1.6 / 1;border-radius:.5rem;font-size:.85rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.cal__day--plain{color:var(--color-ink)}.cal__day--has{border:0;background:color-mix(in srgb,var(--color-copper) 14%,transparent);color:var(--color-copper-deep);font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease}.cal__day--has:after{content:"";position:absolute;bottom:14%;width:4px;height:4px;border-radius:50%;background:var(--color-copper)}.cal__day--has:hover{background:color-mix(in srgb,var(--color-copper) 26%,transparent)}.cal__day.is-today{box-shadow:inset 0 0 0 1.5px var(--color-sage)}.cal__day.is-selected{background:var(--color-copper);color:var(--color-paper)}.cal__day.is-selected:after{background:var(--color-paper)}.cal__legend{display:flex;align-items:center;gap:.4rem;margin:.6rem 0 0;font-size:.75rem;color:var(--color-stone)}.cal__legend-dot{width:8px;height:8px;border-radius:50%;background:var(--color-copper)}.cal__result{margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--color-line)}.cal__result-head{margin:0 0 .4rem;font-size:.85rem;font-weight:700;letter-spacing:.02em;color:var(--color-sage)}.cal__posts{margin:0;padding:0;list-style:none}.cal__posts li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px dashed var(--color-line)}.cal__posts li:last-child{border-bottom:0}.cal__post-title{font-weight:600;color:var(--color-ink);text-underline-offset:3px}.cal__post-title:hover{color:var(--color-copper-deep);text-decoration:underline}.cal__post-tags{flex-shrink:0;font-size:.72rem;color:var(--color-sage);white-space:nowrap}@media (max-width: 640px){.cal__posts li{flex-direction:column;gap:.15rem}.cal__post-tags{white-space:normal}}.archive-year[data-astro-cid-qma2cssl]{margin-top:clamp(1.75rem,4vw,2.75rem)}.archive-year__title[data-astro-cid-qma2cssl]{display:flex;align-items:baseline;gap:.7rem;margin:0 0 .6rem;font-family:var(--font-display);font-size:1.5rem;font-weight:800;letter-spacing:.02em;color:var(--color-ink)}.archive-year__count[data-astro-cid-qma2cssl]{font-family:var(--font-body);font-size:.75rem;font-weight:500;letter-spacing:.06em;color:var(--color-stone)}.archive-list[data-astro-cid-qma2cssl]{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-line)}.archive-item[data-astro-cid-qma2cssl]{display:grid;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:baseline;gap:.35rem 1rem;padding:.6rem .25rem;border-bottom:1px solid var(--color-line);transition:background .15s ease}.archive-item[data-astro-cid-qma2cssl]:hover{background:color-mix(in srgb,var(--color-surface) 70%,transparent)}.archive-item__date[data-astro-cid-qma2cssl]{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.archive-item__title[data-astro-cid-qma2cssl]{min-width:0;font-size:.98rem;font-weight:500;color:var(--color-ink);transition:color .15s ease}.archive-item[data-astro-cid-qma2cssl]:hover .archive-item__title[data-astro-cid-qma2cssl]{color:var(--color-copper-deep)}.archive-item__tags[data-astro-cid-qma2cssl]{font-size:.72rem;color:var(--color-sage);white-space:nowrap}@media (max-width: 640px){.archive-item[data-astro-cid-qma2cssl]{grid-template-columns:3.25rem minmax(0,1fr)}.archive-item__tags[data-astro-cid-qma2cssl]{grid-column:2;white-space:normal}}.post-grid[data-astro-cid-7jjqptxk]{position:relative}@media (min-width: 1280px){.post[data-astro-cid-7jjqptxk]{max-width:min(100%,calc(var(--content-w) + 13rem + 2.75rem))}.post-grid[data-astro-cid-7jjqptxk]{display:grid;grid-template-columns:minmax(0,1fr) 13rem;gap:2.75rem;align-items:start}.post-grid[data-astro-cid-7jjqptxk]>.prose[data-astro-cid-7jjqptxk]{max-width:none;min-width:0}.post-grid[data-astro-cid-7jjqptxk]>.prose[data-astro-cid-7jjqptxk]>[data-astro-cid-7jjqptxk]:is(p,ul,ol,h2,h3,h4,blockquote){max-width:42rem}}@media (min-width: 1700px){.post-grid[data-astro-cid-7jjqptxk]>.prose[data-astro-cid-7jjqptxk]>[data-astro-cid-7jjqptxk]:is(p,ul,ol,h2,h3,h4,blockquote){max-width:46rem}}.post-toc[data-astro-cid-7jjqptxk]{display:none}@media (min-width: 1280px){.post-toc[data-astro-cid-7jjqptxk]{display:block;position:sticky;top:calc(var(--header-h, 4rem) + 1.5rem);max-height:calc(100vh - var(--header-h, 4rem) - 3rem);overflow-y:auto;padding-left:1rem;border-left:1px solid var(--color-line);font-size:.82rem;line-height:1.6}}.post-toc__title[data-astro-cid-7jjqptxk]{margin:0 0 .6rem;font-size:.72rem;font-weight:600;letter-spacing:.14em;color:var(--color-sage)}.post-toc[data-astro-cid-7jjqptxk] ul[data-astro-cid-7jjqptxk]{margin:0;padding:0;list-style:none}.post-toc__item[data-astro-cid-7jjqptxk].is-sub{padding-left:.85rem}.post-toc[data-astro-cid-7jjqptxk] a[data-astro-cid-7jjqptxk]{display:block;padding:.28rem 0;color:var(--color-stone);transition:color .15s ease}.post-toc[data-astro-cid-7jjqptxk] a[data-astro-cid-7jjqptxk]:hover{color:var(--color-copper-deep)}.post-toc[data-astro-cid-7jjqptxk] a[data-astro-cid-7jjqptxk].is-active{color:var(--color-copper-deep);font-weight:600}.post-tag[data-astro-cid-7jjqptxk]{color:var(--color-sage);text-underline-offset:3px;transition:color .15s ease}.post-tag[data-astro-cid-7jjqptxk]:hover{color:var(--color-copper-deep);text-decoration:underline}.post-nav[data-astro-cid-7jjqptxk]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:clamp(2.25rem,6vw,3.25rem)}@media (max-width: 640px){.post-nav[data-astro-cid-7jjqptxk]{grid-template-columns:1fr}}.post-nav__item[data-astro-cid-7jjqptxk]{display:flex;flex-direction:column;gap:.35rem;padding:.9rem 1rem;border:1px solid var(--color-line);border-radius:.9rem;background:color-mix(in srgb,var(--color-paper) 60%,transparent);transition:border-color .18s ease,background .18s ease,transform .18s ease}a[data-astro-cid-7jjqptxk].post-nav__item:hover{border-color:color-mix(in srgb,var(--color-copper) 50%,var(--color-line));background:color-mix(in srgb,var(--color-copper) 6%,transparent);transform:translateY(-1px)}.post-nav__item[data-astro-cid-7jjqptxk].is-next{text-align:right}.post-nav__item[data-astro-cid-7jjqptxk].is-empty{border:none;background:none}.post-nav__label[data-astro-cid-7jjqptxk]{font-size:.74rem;letter-spacing:.06em;color:var(--color-sage)}.post-nav__title[data-astro-cid-7jjqptxk]{font-size:.95rem;font-weight:500;line-height:1.5;color:var(--color-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-related[data-astro-cid-7jjqptxk]{margin-top:clamp(1.75rem,4vw,2.5rem)}.post-related__title[data-astro-cid-7jjqptxk]{margin:0 0 .5rem;font-size:.75rem;font-weight:600;letter-spacing:.14em;color:var(--color-sage)}.post-related[data-astro-cid-7jjqptxk] ul[data-astro-cid-7jjqptxk]{margin:0;padding:0;list-style:none;border-top:1px solid var(--color-line)}.post-related[data-astro-cid-7jjqptxk] li[data-astro-cid-7jjqptxk]{border-bottom:1px solid var(--color-line)}.post-related[data-astro-cid-7jjqptxk] a[data-astro-cid-7jjqptxk]{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.62rem .25rem}.post-related[data-astro-cid-7jjqptxk] a[data-astro-cid-7jjqptxk]:hover .post-related__name[data-astro-cid-7jjqptxk]{color:var(--color-copper-deep)}.post-related__name[data-astro-cid-7jjqptxk]{min-width:0;font-size:.95rem;color:var(--color-ink);transition:color .15s ease}.post-related[data-astro-cid-7jjqptxk] time[data-astro-cid-7jjqptxk]{flex-shrink:0;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.blog-hub[data-astro-cid-5tznm7mj]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.blog-hub__link[data-astro-cid-5tznm7mj]{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border:1px solid var(--color-line);border-radius:999px;background:color-mix(in srgb,var(--color-paper) 70%,transparent);font-size:.85rem;color:var(--color-ink);transition:border-color .18s ease,color .18s ease,background .18s ease}.blog-hub__link[data-astro-cid-5tznm7mj]:hover{border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));color:var(--color-copper-deep);background:color-mix(in srgb,var(--color-copper) 7%,transparent)}.blog-hub__icon[data-astro-cid-5tznm7mj]{display:inline-flex;color:var(--color-sage)}.blog-hub__count[data-astro-cid-5tznm7mj]{font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.blog-tags[data-astro-cid-5tznm7mj]{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 0;padding:0;list-style:none}.blog-tags__chip[data-astro-cid-5tznm7mj]{display:inline-flex;align-items:baseline;gap:.3rem;padding:.25rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--color-sage) 9%,transparent);font-size:.78rem;color:var(--color-sage);transition:background .18s ease,color .18s ease}.blog-tags__chip[data-astro-cid-5tznm7mj]:hover{background:color-mix(in srgb,var(--color-copper) 12%,transparent);color:var(--color-copper-deep)}.blog-tags__count[data-astro-cid-5tznm7mj]{font-size:.68rem;opacity:.7}.blog-tags__chip[data-astro-cid-5tznm7mj].is-more{background:none;color:var(--color-stone)}.post-tags[data-astro-cid-5tznm7mj]{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.25rem;font-size:.78rem}@media (min-width: 640px){.post-tags[data-astro-cid-5tznm7mj]{margin:-.5rem 0 1.25rem 8.5rem}}.post-tags__chip[data-astro-cid-5tznm7mj]{color:var(--color-sage);transition:color .15s ease}.post-tags__chip[data-astro-cid-5tznm7mj]:hover{color:var(--color-copper-deep);text-decoration:underline;text-underline-offset:3px}.contact-prep[data-astro-cid-uw5kdbxl]{display:flex;flex-direction:column;gap:1rem;margin:1.25rem 0 0;padding:0;list-style:none}.contact-prep__title[data-astro-cid-uw5kdbxl]{margin:0;font-family:var(--font-display);font-weight:700;color:var(--color-ink)}.contact-prep__body[data-astro-cid-uw5kdbxl]{margin:.15rem 0 0;color:var(--color-stone);line-height:1.65}.guestbook-waline{--waline-font-size: .95rem;--waline-white: var(--color-paper);--waline-light-grey: var(--color-mist);--waline-dark-grey: var(--color-stone);--waline-color: var(--color-ink);--waline-bg-color: var(--color-panel);--waline-bg-color-light: var(--color-surface);--waline-bg-color-hover: color-mix(in srgb, var(--color-surface) 72%, var(--color-mist));--waline-border-color: var(--color-line);--waline-border: 1px solid var(--color-line);--waline-box-shadow: none;--waline-disable-bg-color: color-mix(in srgb, var(--color-surface) 75%, transparent);--waline-disable-color: var(--color-stone);--waline-code-bg-color: var(--color-code-bg);--waline-theme-color: var(--color-sage);--waline-active-color: var(--color-copper-deep);--waline-badge-color: var(--color-copper);--waline-info-bg-color: var(--color-surface);--waline-info-color: var(--color-stone);--waline-bq-color: var(--color-stone)}.guestbook-waline .wl-panel,.guestbook-waline .wl-editor,.guestbook-waline .wl-card,.guestbook-waline .wl-input,.guestbook-waline textarea{border-radius:0;background-color:var(--waline-bg-color);color:var(--waline-color)}.guestbook-waline .wl-header-item input,.guestbook-waline .wl-editor{background-color:var(--waline-bg-color-light);color:var(--waline-color)}.guestbook-waline .wl-btn{border-radius:0}.guestbook-empty{margin:0;padding:1.25rem 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);color:var(--color-stone);line-height:1.65}.home[data-astro-cid-j7pv25f6]{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(3rem,7vw,5.5rem)}.home-hero[data-astro-cid-j7pv25f6] .page-title[data-astro-cid-j7pv25f6]{max-width:12em}.home-actions[data-astro-cid-j7pv25f6]{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.home-btn[data-astro-cid-j7pv25f6]{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.55rem 1.15rem;border-radius:999px;font-size:.95rem;font-weight:600;transition:background .2s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out)}.home-btn--primary[data-astro-cid-j7pv25f6]{background:var(--color-copper);color:var(--color-paper)}.home-btn--primary[data-astro-cid-j7pv25f6]:hover{background:var(--color-copper-deep)}.home-btn--ghost[data-astro-cid-j7pv25f6]{border:1px solid var(--color-line);color:var(--color-ink);background:color-mix(in srgb,var(--color-paper) 70%,transparent)}.home-btn--ghost[data-astro-cid-j7pv25f6]:hover{border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));color:var(--color-copper-deep)}.home-section[data-astro-cid-j7pv25f6]{margin-top:clamp(3.25rem,7vw,5rem)}.home-section__head--row[data-astro-cid-j7pv25f6]{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.home-more[data-astro-cid-j7pv25f6]{flex-shrink:0;font-size:.9rem;font-weight:500;color:var(--color-sage);text-underline-offset:4px}.home-more[data-astro-cid-j7pv25f6]:hover{color:var(--color-copper-deep);text-decoration:underline}.offer-list[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:1.5rem 0 0;padding:0;list-style:none}.offer-card[data-astro-cid-j7pv25f6]{display:flex;flex-direction:column;gap:.35rem;height:100%;padding:1.15rem 1.2rem 1.25rem;border:1px solid var(--color-line);border-radius:1rem;background:var(--color-panel);transition:border-color .2s var(--ease-out),transform .2s var(--ease-out)}.offer-card[data-astro-cid-j7pv25f6]:hover{border-color:color-mix(in srgb,var(--color-copper) 50%,var(--color-line));transform:translateY(-1px)}.offer-card__index[data-astro-cid-j7pv25f6]{font-size:.75rem;font-weight:600;letter-spacing:.08em;color:var(--color-copper)}.offer-card__title[data-astro-cid-j7pv25f6]{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--color-ink)}.offer-card__body[data-astro-cid-j7pv25f6]{color:var(--color-stone);font-size:.95rem;line-height:1.6}.note-list[data-astro-cid-j7pv25f6]{margin:.75rem 0 0;padding:0;list-style:none;border-top:1px solid var(--color-line)}.note-item[data-astro-cid-j7pv25f6]{display:flex;align-items:baseline;justify-content:space-between;gap:1.25rem;padding:.9rem .15rem;border-bottom:1px solid var(--color-line)}.note-item__title[data-astro-cid-j7pv25f6]{font-family:var(--font-display);font-weight:700;color:var(--color-ink)}.note-item[data-astro-cid-j7pv25f6]:hover .note-item__title[data-astro-cid-j7pv25f6]{color:var(--color-copper-deep)}.note-item[data-astro-cid-j7pv25f6] time[data-astro-cid-j7pv25f6]{flex-shrink:0;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}@media (max-width: 720px){.offer-list[data-astro-cid-j7pv25f6]{grid-template-columns:1fr}.note-item[data-astro-cid-j7pv25f6]{flex-direction:column;gap:.2rem}}.res-panel[data-astro-cid-3kblmlr2]{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:2.25rem;padding:1.1rem 1.25rem;border:1px solid var(--color-line);border-radius:.9rem;background:color-mix(in srgb,var(--color-sage) 6%,transparent)}.res-panel__cta[data-astro-cid-3kblmlr2]{display:inline-flex;align-items:center;padding:.5rem 1.1rem;border-radius:999px;background:var(--color-copper);color:var(--color-paper);font-size:.9rem;font-weight:600;transition:background .18s ease}.res-panel__cta[data-astro-cid-3kblmlr2]:hover{background:var(--color-copper-deep)}.res-panel__code[data-astro-cid-3kblmlr2]{margin:0;font-size:.9rem;color:var(--color-stone)}.res-panel__code[data-astro-cid-3kblmlr2] code[data-astro-cid-3kblmlr2],.res-panel__source[data-astro-cid-3kblmlr2] code[data-astro-cid-3kblmlr2]{padding:.1rem .4rem;border-radius:.35rem;background:color-mix(in srgb,var(--color-surface) 85%,transparent);font-size:.85rem;color:var(--color-ink)}.res-panel__empty[data-astro-cid-3kblmlr2]{margin:0;font-size:.9rem;color:var(--color-stone)}.res-panel__source[data-astro-cid-3kblmlr2]{margin:0;flex-basis:100%;font-size:.78rem;color:var(--color-stone)}.res-nav[data-astro-cid-3kblmlr2]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:clamp(2.25rem,6vw,3.25rem)}@media (max-width: 640px){.res-nav[data-astro-cid-3kblmlr2]{grid-template-columns:1fr}}.res-nav__item[data-astro-cid-3kblmlr2]{padding:.75rem 1rem;border:1px solid var(--color-line);border-radius:.9rem;background:color-mix(in srgb,var(--color-paper) 60%,transparent);transition:border-color .18s ease,background .18s ease}a[data-astro-cid-3kblmlr2].res-nav__item:hover{border-color:color-mix(in srgb,var(--color-copper) 50%,var(--color-line));background:color-mix(in srgb,var(--color-copper) 6%,transparent)}.res-nav__item[data-astro-cid-3kblmlr2].is-next{text-align:right}.res-nav__item[data-astro-cid-3kblmlr2].is-empty{border:none;background:none}.res-nav__label[data-astro-cid-3kblmlr2]{font-size:.85rem;color:var(--color-sage)}.res-stats[data-astro-cid-fmgelhwa]{display:flex;flex-wrap:wrap;gap:1.5rem;margin:0 0 1.75rem;padding:.9rem 0;list-style:none;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.res-stats__item[data-astro-cid-fmgelhwa]{display:flex;align-items:baseline;gap:.4rem}.res-stats__num[data-astro-cid-fmgelhwa]{font-family:var(--font-display);font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-copper-deep)}.res-stats__label[data-astro-cid-fmgelhwa]{font-size:.82rem;color:var(--color-stone)}.res-grid[data-astro-cid-fmgelhwa]{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.9rem;margin:0 0 2rem;padding:0;list-style:none}.res-card[data-astro-cid-fmgelhwa]{display:flex;flex-direction:column;gap:.55rem;height:100%;padding:1rem 1.1rem;border:1px solid var(--color-line);border-radius:.9rem;background:color-mix(in srgb,var(--color-paper) 60%,transparent);transition:border-color .18s ease,background .18s ease,transform .18s ease}.res-card[data-astro-cid-fmgelhwa]:hover{border-color:color-mix(in srgb,var(--color-copper) 50%,var(--color-line));background:color-mix(in srgb,var(--color-copper) 6%,transparent);transform:translateY(-2px)}.res-card__head[data-astro-cid-fmgelhwa]{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.res-card__title[data-astro-cid-fmgelhwa]{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--color-ink)}.res-card__badge[data-astro-cid-fmgelhwa]{flex-shrink:0;padding:.1rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--color-sage) 12%,transparent);font-size:.68rem;color:var(--color-sage)}.res-card__badge[data-astro-cid-fmgelhwa].is-empty{background:color-mix(in srgb,var(--color-stone) 12%,transparent);color:var(--color-stone)}.res-card__desc[data-astro-cid-fmgelhwa]{font-size:.85rem;line-height:1.55;color:var(--color-stone);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.res-card__foot[data-astro-cid-fmgelhwa]{display:flex;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.35rem;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.res-notes[data-astro-cid-fmgelhwa]{border-top:1px solid var(--color-line);padding-top:1rem}.res-notes__title[data-astro-cid-fmgelhwa]{margin:0 0 .5rem;font-size:.75rem;font-weight:600;letter-spacing:.14em;color:var(--color-sage)}.res-notes[data-astro-cid-fmgelhwa] ul[data-astro-cid-fmgelhwa]{margin:0;padding-left:1.1rem;font-size:.88rem;line-height:1.75;color:var(--color-stone)}.pagefind-ui{--pagefind-ui-primary: var(--color-copper);--pagefind-ui-text: var(--color-ink);--pagefind-ui-background: color-mix(in srgb, var(--color-paper) 70%, transparent);--pagefind-ui-border: var(--color-line);--pagefind-ui-tag: color-mix(in srgb, var(--color-sage) 12%, transparent);--pagefind-ui-border-radius: .9rem;--pagefind-ui-font: var(--font-body)}.search-mount[data-astro-cid-ipsxrsrh]:empty{min-height:4rem}.fallback[data-astro-cid-ipsxrsrh]{margin-top:1.25rem}.fallback__note[data-astro-cid-ipsxrsrh]{margin:0 0 .75rem;font-size:.85rem;color:var(--color-stone)}.fallback__input[data-astro-cid-ipsxrsrh]{width:100%;padding:.7rem .9rem;border:1px solid var(--color-line);border-radius:.8rem;background:color-mix(in srgb,var(--color-paper) 70%,transparent);font-family:var(--font-body);font-size:.95rem;color:var(--color-ink)}.fallback__input[data-astro-cid-ipsxrsrh]:focus{outline:2px solid color-mix(in srgb,var(--color-copper) 45%,transparent);outline-offset:1px}.fallback__list[data-astro-cid-ipsxrsrh]{margin:1rem 0 0;padding:0;list-style:none;border-top:1px solid var(--color-line)}.fallback__item[data-astro-cid-ipsxrsrh]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.3rem 1rem;padding:.7rem .25rem;border-bottom:1px solid var(--color-line)}.fallback__item[data-astro-cid-ipsxrsrh]:hover .fallback__title[data-astro-cid-ipsxrsrh]{color:var(--color-copper-deep)}.fallback__title[data-astro-cid-ipsxrsrh]{font-size:.98rem;font-weight:500;color:var(--color-ink)}.fallback__date[data-astro-cid-ipsxrsrh]{font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.fallback__tags[data-astro-cid-ipsxrsrh]{grid-column:1 / -1;font-size:.72rem;color:var(--color-sage)}.fallback__empty[data-astro-cid-ipsxrsrh]{padding:1rem .25rem;font-size:.9rem;color:var(--color-stone)}.tag-mini[data-astro-cid-tge3q7ae]{display:inline-flex;align-items:baseline;gap:.35rem;padding:.3rem .7rem;border:1px solid var(--color-line);border-radius:999px;font-size:.82rem;color:var(--color-stone);transition:color .18s ease,border-color .18s ease,background .18s ease}.tag-mini[data-astro-cid-tge3q7ae]:hover{color:var(--color-copper-deep);border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));background:color-mix(in srgb,var(--color-copper) 7%,transparent)}.tag-mini__count[data-astro-cid-tge3q7ae]{font-size:.7rem;font-variant-numeric:tabular-nums;opacity:.7}.tag-cloud[data-astro-cid-os4i7owy]{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none}.tag-chip[data-astro-cid-os4i7owy]{display:inline-flex;align-items:baseline;gap:.45rem;padding:.45rem .85rem;border:1px solid var(--color-line);border-radius:999px;background:color-mix(in srgb,var(--color-paper) 70%,transparent);font-size:.9rem;color:var(--color-ink);transition:border-color .18s var(--ease-out, ease),color .18s var(--ease-out, ease),background .18s var(--ease-out, ease),transform .18s var(--ease-out, ease)}.tag-chip[data-astro-cid-os4i7owy]:hover{border-color:color-mix(in srgb,var(--color-copper) 55%,var(--color-line));color:var(--color-copper-deep);background:color-mix(in srgb,var(--color-copper) 7%,transparent);transform:translateY(-1px)}.tag-chip__count[data-astro-cid-os4i7owy]{font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--color-stone)}.tag-chip[data-astro-cid-os4i7owy]:hover .tag-chip__count[data-astro-cid-os4i7owy]{color:var(--color-copper-deep)}
