:root{--bg: rgba(16, 20, 23, 1);--surface: rgba(25, 31, 36, 1);--surface-alt: rgba(44, 52, 62, .95);--border: rgba(122, 138, 153, .25);--border-light: rgba(122, 138, 153, .4);--text: rgba(230, 242, 255, 1);--text-dim: rgba(157, 170, 184, 1);--text-muted: rgba(230, 242, 255, .4);--text-utility: rgba(0, 156, 227, .8);--text-warning: rgba(242, 182, 0, .8);--chat-bg: #0c0c0c;--chat-surface: #141414;--chat-border: #1c1c1c;--chat-foreground: var(--text-dim);--chat-surface-user: rgba(0, 156, 227, .8);--chat-foreground-user: var(--text);--chat-dot-bg-active: #4caf50;--chat-dot-shadow-active: rgba(76, 175, 80, .4);--chat-dot-bg-offline: #666}[data-theme=light]{--bg: rgb(252, 251, 251);--surface: rgb(235, 238, 240);--surface-alt: rgba(220, 225, 230, 1);--border: rgba(211, 216, 222, .6);--border-light: rgba(211, 216, 222, .8);--text: rgba(19, 41, 63, 1);--text-dim: rgba(80, 98, 119, 1);--text-muted: rgba(19, 41, 63, .6);--chat-bg: var(--bg);--chat-surface: rgba(237, 235, 233, .6);--chat-border:rgba(224, 221, 221, .5);--chat-foreground-user: var(--bg);--chat-surface-user: rgba(18, 81, 176, .8)}:root{--body-size-100: .625rem;--body-size-200: .75rem;--body-size-300: .875rem;--body-size-400: 1rem;--body-size-500: 1.125rem;--body-size-600: 1.375rem;--font-weight-200: 200;--font-weight-300: 300;--font-weight-400: 400;--font-weight-500: 500;--font-weight-600: 600;--font-weight-700: 700;--font-weight-800: 800;--font-weight-900: 900;--line-height-set-solid: 1;--line-height-tight: 1.15;--line-height-body: 1.66;--line-height-caption: 1.3;--font-mono: "IBM Plex Mono", "Courier New", monospace;--font-serif: "IBM Plex Serif", Georgia, "Times New Roman", serif;--font-condensed: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;--font-sans: "Work Sans", sans-serif;--font-accent: "Space Grotesk", sans-serif}:root{--header-h: 80px;--chat-w: 360px;--section-space-bottom: 12rem;--section-space-inline: 4rem;--section-ch: 130ch;--section-body-gap: 2.5rem}.body--extra-large{font-family:var(--font-sans);font-size:30px;font-weight:200;line-height:var(--line-height-tight);font-optical-sizing:auto;font-style:normal;color:var(--text);font-style:oblique}.body--large{font-family:var(--font-sans);font-size:var(--body-size-500);font-weight:var(--font-weight-300);line-height:var(--line-height-body);font-optical-sizing:auto;font-style:normal;color:var(--text)}.body--default{font-family:var(--font-sans);font-size:var(--body-size-400);font-weight:var(--font-weight-400);line-height:var(--line-height-body);font-optical-sizing:auto;font-style:normal}.body--small{font-family:var(--font-sans);font-size:var(--body-size-200);font-weight:var(--font-weight-400);line-height:var(--line-height-body);font-optical-sizing:auto;font-style:normal}.body--micro{font-family:var(--font-sans);font-size:var(--body-size-100);font-weight:var(--font-weight-500);line-height:var(--line-height-body);font-optical-sizing:auto;font-style:normal}.accent--micro{font-family:var(--font-accent);font-size:var(--body-size-100);line-height:var(--line-height-set-solid);font-weight:var(--font-weight-400);font-optical-sizing:auto;font-style:normal}.accent--small{font-family:var(--font-accent);font-size:var(--body-size-300);line-height:var(--line-height-caption);font-weight:var(--font-weight-500);font-optical-sizing:auto;font-style:normal}.accent--medium{font-family:var(--font-accent);font-size:var(--body-size-500);line-height:var(--line-height-caption);font-weight:var(--font-weight-700);font-optical-sizing:auto;font-style:normal}.display--large{font-family:var(--font-accent);font-size:clamp(54px,6vw,72px);font-weight:var(--font-weight-600);line-height:var(--line-height-set-solid);letter-spacing:-.01em;text-transform:uppercase;text-wrap:balance;color:var(--text)}.display--medium{font-family:var(--font-accent);font-size:clamp(18px,3vw,30px);font-weight:var(--font-weight-400);line-height:var(--line-height-tight);letter-spacing:-.01em;text-transform:uppercase;text-wrap:balance;color:var(--text-muted)}.mono--extra-small{font-family:var(--font-mono);font-size:8.5px;font-weight:var(--font-weight-400);letter-spacing:.08em}.mono--small{font-family:var(--font-mono);font-size:var(--body-size-100);font-weight:var(--font-weight-500);letter-spacing:.18em}.mono--medium{font-family:var(--font-mono);font-size:11px;font-weight:var(--font-weight-400);line-height:1.75}.mono--large{font-family:var(--font-mono);font-size:var(--body-size-300);font-weight:var(--font-weight-300)}:root{interpolate-size:allow-keywords}*,*:before,*:after{box-sizing:border-box;-webkit-font-smoothing:antialiased}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh;line-height:1.5;margin:0}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}body{line-height:1.45;font-weight:400;background-color:var(--bg)}.l-page{display:grid;grid-template-areas:"header header" "main aside";grid-template-columns:1fr var(--chat-w);grid-template-rows:var(--header-h) 1fr;height:100svh;overflow:hidden}.scroll-mode__banner{position:sticky;top:0;z-index:5;background:var(--surface-alt);border-bottom:1px solid var(--border-light);padding:8px 24px;font-family:var(--font-accent);font-size:var(--body-size-100);font-weight:var(--font-weight-300);letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase;display:none;& strong{color:var(--text-utility)}}.scroll-mode .scroll-mode__banner{display:block}.main__content{grid-area:main;overflow-y:auto;overflow-x:hidden;position:relative;background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.main__content::-webkit-scrollbar{width:4px}.main__content::-webkit-scrollbar-track{background:transparent}.main__content::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.offline-section{display:none;min-height:calc(100vh - var(--header-h));flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px;opacity:0;transform:translateY(16px);transition:opacity .45s ease,transform .45s ease}.scroll-mode .offline-section{display:none!important}.offline-section.is-visible{display:flex;opacity:1;transform:translateY(0)}.offline-section.is-leaving{display:flex;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease}.offline-label{display:block;color:var(--text-dim);letter-spacing:.03em}.offline-title{margin-block-start:0}.offline-message{color:var(--text-dim)}.offline-cta{padding:12px 24px;width:40ch;background:var(--bg);color:var(--text-muted);border:none;cursor:pointer;transition:opacity .2s ease;border-radius:5px;corner-shape:bevel square;outline-style:solid;outline-width:1px;outline-offset:4px;outline-color:var(--border-light);transition:all .3s}.offline-cta:hover{opacity:.85;outline-color:var(--text-utility)}.offline-video{width:100%;max-width:70vw;aspect-ratio:16 / 9;margin-block-start:2rem;margin-block-end:2rem}.offline-video iframe{width:100%;height:100%;border:none}.playlist__text{margin-block-start:.5rem;color:var(--text-muted);max-width:60ch;text-wrap:pretty}.divider[data-astro-cid-msfbduky]{color:inherit;font-size:inherit;line-height:inherit}.site-header[data-astro-cid-3ef6ksr2]{position:relative;z-index:10;grid-area:header;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 24px;border-bottom:1px solid var(--border);background:var(--bg)}.header-brand[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:.06em;color:var(--text-dim);text-transform:uppercase}.header-brand[data-astro-cid-3ef6ksr2] .name[data-astro-cid-3ef6ksr2]{color:var(--text)}.header-brand[data-astro-cid-3ef6ksr2] .vol[data-astro-cid-3ef6ksr2]{margin-left:4px;color:var(--text-muted)}.header-section-label[data-astro-cid-3ef6ksr2]{display:flex;gap:1rem;min-height:14px;font-family:var(--font-mono);font-size:11px;font-weight:400;line-height:1;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;text-align:center;transition:opacity .3s ease;& h3[data-astro-cid-3ef6ksr2]{margin-block-start:0;font-size:inherit;font-weight:inherit;letter-spacing:.2em}}.header-nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:flex-end;gap:24px}.header-icon-btn[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;padding:6px;background:transparent;border:1px solid var(--border-light);cursor:pointer;color:var(--text-dim);transition:color .2s ease,border-color .2s ease}.header-icon-btn[data-astro-cid-3ef6ksr2]:hover{color:var(--text);border-color:var(--text-muted)}.header-icon-btn[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{display:block;width:17px;height:17px}.section-body>*+*{margin-top:2rem}.content-section{container-name:content-section;container-type:inline-size;display:none;opacity:0;min-height:calc(100vh - var(--header-h));transform:translateY(16px);transition:opacity .45s ease,transform .45s ease;&.is-visible{display:block;opacity:1;transform:translateY(0)}&.is-leaving{display:block;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}}.scroll-mode .content-section.is-visible{margin-bottom:var(--section-space-bottom)}.main-content.scroll-mode .content-section{display:block;opacity:1;transform:translateY(0)}.hero__type-block{padding-inline:var(--section-space-inline);>*+*{margin-block-start:1rem}}.hero__image-block{margin:0;margin-block-end:2rem}.section-body{max-width:var(--section-ch);padding-inline:var(--section-space-inline);border-inline-end:.5px solid var(--border-light);border-block-start:.5px solid var(--border-light);border-radius:20px;corner-shape:square bevel square;container-name:section-body;container-type:inline-size;@container content-section (width < 1040px){border-inline-width:0}}.section-body-content{columns:2;gap:var(--section-body-gap);@container section-body (width < 630px){columns:1;.section-image-caption{--caption-position-left: 0;--caption-position-top: -1rem}}}.section-label{display:none;letter-spacing:.18em;color:var(--text-muted)}.section-title{margin-block-start:1em;margin-block-end:-8px;padding-inline-start:3rem;text-indent:-3rem}.section-lead{max-width:38ch;text-wrap:balance}.section-paragraph{margin-block:0;text-wrap:pretty;&:first-of-type:first-letter{initial-letter:2;color:var(--text-warning);margin-inline-end:.25em;font-weight:var(--font-weight-200)}}.section-body-content>*:last-child{margin-bottom:0}.section-body-content>*+*{margin-block-start:1.5rem}.section-pullquote{margin:28px 0;padding-block-end:1.5rem;border-block-end:1px solid var(--border-light)}.section-image-block{position:relative;margin-inline:0;max-inline-size:40ch}.section-image-block img{display:block;width:100%;height:auto}.section-image-caption,.hero__image-caption{--caption-position-top: -1.75rem;--caption-position-left: 4rem;--caption-padding-block: 1.25rem;--caption-padding-inline: 1.25rem;--caption-margin-end: var(--caption-position-top);position:relative;top:var(--caption-position-top);left:var(--caption-position-left);padding-block:var(--caption-padding-block);padding-inline:var(--caption-padding-inline);margin-block-end:var(--caption-margin-end);color:var(--text-dim);background-color:var(--bg);border-radius:1.25rem;corner-shape:bevel square;outline-style:solid;outline-width:1px;outline-width:.5px;outline-offset:-6px;outline-color:var(--border-light)}.section-image-caption{font-size:90%;font-weight:300}.hero__image-caption{max-width:50ch}.section__tags{display:flex;gap:12px;margin-top:32px;padding-top:20px;padding-block-end:1rem}.section__tag{color:var(--text-muted);text-transform:uppercase}.misc{overflow:hidden;padding:1rem;padding-inline-start:3rem;padding-block-start:2rem;padding-block-end:2rem;background-color:var(--surface);border-radius:1.25rem;corner-shape:bevel square;outline-style:solid;outline-width:4px;outline-offset:-8px;outline-color:var(--bg);>*+*{margin-block-start:1rem}&::details-content{block-size:0;transition:block-size .15s ease-in-out,content-visibility .15s ease-out;transition-behavior:allow-discrete}&[open]::details-content{block-size:auto}}.misc__title{position:relative;margin:0;cursor:pointer;color:var(--text-utility);text-transform:uppercase;font-weight:var(--font-weight-500);letter-spacing:.08em;list-style-position:outside;transition:all .25s;&:hover{color:var(--text-muted)}&::marker{content:"⏩︎ ";color:var(--text-warning)}}.misc[open] summary::marker{content:"⏬︎ "}.misc__items{::marker{color:var(--text-warning)}margin:0;margin-block-start:1rem;padding:0;list-style-position:outside}.misc__item{color:var(--text-dim);+&{margin-block-start:.15rem}}.chat-panel{grid-area:aside;display:flex;flex-direction:column;background:var(--chat-bg);border-left:1px solid var(--border);overflow:hidden}.chat-header{padding:14px 16px 12px;border-bottom:1px solid var(--chat-border);flex-shrink:0}.chat-title{color:var(--text);text-transform:uppercase;margin-bottom:4px}.chat-status{color:var(--text-muted);text-transform:uppercase;display:flex;align-items:center;gap:6px}.chat-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0;transition:background .3s ease}.chat-status-dot.active{background:var(--chat-dot-bg-active);box-shadow:0 0 6px var(--chat-dot-shadow-active);animation:pulse 2s ease-in-out infinite}.chat-status-dot.offline{background:var(--chat-dot-bg-offline)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chat-messages::-webkit-scrollbar{width:3px}.chat-messages::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.chat-msg{display:flex;flex-direction:column;gap:0;animation:msgIn .3s ease forwards}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-msg-bubble{background-color:var(--chat-surface);border:1px solid var(--chat-border);padding:10px 12px;color:var(--chat-foreground);white-space:pre-wrap;word-break:break-word}.chat-msg-user{--chat-surface: var(--chat-surface-user);--chat-foreground: var(--chat-foreground-user)}.chat-msg-user{align-items:flex-end}.chat-msg-user .chat-msg-bubble{font-family:var(--font-sans);font-size:var(--body-size-200);font-weight:var(--font-weight-400);border-radius:6px;padding-block:.25rem;text-transform:capitalize}.chat-msg-timestamp{color:var(--text-muted);margin-top:6px;padding:0 2px}.chat-msg-user .chat-msg-timestamp{text-align:right}.chat-input-area{padding:12px 16px;border-top:1px solid var(--chat-border);flex-shrink:0}.chat-input-form{display:flex;gap:8px;align-items:center}.chat-input{flex:1;background:var(--chat-surface);border:1px solid var(--chat-border);color:var(--text);padding:9px 12px;outline:none;transition:border-color .2s ease;caret-color:var(--text)}.chat-input:focus{border-color:var(--border-light)}.chat-input::placeholder{color:var(--text-muted);font-style:normal}.chat-input:disabled{opacity:.4;cursor:not-allowed}.chat-submit{background:transparent;border:1px solid var(--chat-border);color:var(--text-muted);width:40px;height:40px;font-size:var(--body-size-500);cursor:pointer;transition:color .2s ease,border-color .2s ease;line-height:1;flex-shrink:0}.chat-submit:hover{color:var(--text);border-color:var(--border-light)}.chat-submit:disabled{opacity:.3;cursor:not-allowed}.chat-footer{padding:8px 16px 10px;border-top:1px solid var(--chat-border);display:flex;align-items:center;justify-content:flex-end;flex-shrink:0}.chat-clear-btn{text-transform:uppercase;color:var(--text-muted);background:transparent;border:none;cursor:pointer;padding:2px 0;transition:color .2s ease;display:none}.chat-clear-btn.has-history{display:block}.chat-clear-btn:hover{color:var(--text-dim)}.typing-indicator .chat-msg-bubble{display:flex;gap:4px;align-items:center;padding:12px 16px}.typing-dot{width:4px;height:4px;border-radius:50%;background:var(--text-muted);animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.mode-badge{font-family:var(--font-mono);text-transform:uppercase;color:var(--text-utility);border:1px solid var(--chat-border);padding:2px 6px;margin-left:auto}
