
:root{--color-bg:#fefefe;--color-surface:#fafafa;--color-text:#1a1a1a;--color-text-subtle:#525252;--color-primary:#0a0a0a;--color-accent:#6b6b6b;--color-border:#e0e0e0;--color-border-subtle:#f0f0f0;--color-sidenote:#737373;--color-highlight:#1f6769;--color-highlight-hover:#164e50;--color-highlight-subtle:#e6f2f2;--color-highlight-focus:#cce4e5;--color-link:var(--color-highlight);--color-link-hover:var(--color-highlight-hover);--color-code-bg:#f7f7f7;--color-selection:#cce4e5;--color-white:#ffffff;--color-syntax-comment:#6b6b6b;--color-syntax-punctuation:#999999;--color-syntax-property:#905090;--color-syntax-string:var(--color-highlight);--color-syntax-operator:#9a6e3a;--color-syntax-keyword:#0077aa;--color-syntax-function:#dd4a68;--color-syntax-variable:#ee9900;--color-header-bg:#fefefed9;--color-header-bg-dark:#0f0f0fe0;--font-base:'Heliotrope',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-mono:'IBM Plex Mono','SF Mono',Monaco,'Cascadia Code','Roboto Mono',Consolas,'Courier New',monospace;--font-header:'Heliotrope',sans-serif;--font-title:'Heliotrope',sans-serif;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--space-2xs:0.375rem;--space-xs:0.5rem;--space-s:1.5rem;--space-m:2.125rem;--space-l:3rem;--space-xl:4.25rem;--space-2xl:6rem;--max-width:720px;--content-width:65ch;--sidenote-width:35%;--sidenote-offset:-45%;--sidenote-breakpoint:1100px;--archive-badge-offset:-4rem;--border-radius:6px;--border-radius-sm:4px;--border-radius-lg:8px;--breakpoint-mobile:480px;--breakpoint-tablet:768px;--breakpoint-desktop:1024px;--transition-fast:150ms cubic-bezier(0.4, 0, 0.2, 1);--transition-base:200ms cubic-bezier(0.4, 0, 0.2, 1);--transition-slow:300ms cubic-bezier(0.4, 0, 0.2, 1);--transition-bounce:400ms cubic-bezier(0.34, 1.56, 0.64, 1);--shadow-xs:0 1px 2px 0 #0000000a;--shadow-sm:0 1px 3px 0 #0000000f,0 1px 2px 0 #0000000a;--shadow-md:0 4px 6px -1px #00000014,0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a;--shadow-xl:0 20px 25px -5px #00000014,0 10px 10px -5px #00000005;--z-base:1;--z-dropdown:100;--z-sticky:200;--z-modal:1000;--z-toast:2000}::selection{background:var(--color-selection);color:var(--color-text)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0f0f0f;--color-surface:#1a1a1a;--color-text:#e8e8e8;--color-text-subtle:#a1a1a1;--color-primary:#fafafa;--color-accent:#8a8a8a;--color-border:#2a2a2a;--color-border-subtle:#1a1a1a;--color-sidenote:#9a9a9a;--color-highlight:#5ebbaf;--color-highlight-hover:#7cc9be;--color-highlight-subtle:#1a3030;--color-highlight-focus:#2a4545;--color-code-bg:#1a1a1a;--color-selection:#2a4545;--color-syntax-comment:#8a8a8a;--color-syntax-punctuation:#888888;--color-syntax-property:#c792ea;--color-syntax-string:var(--color-highlight);--color-syntax-operator:#f9a86f;--color-syntax-keyword:#82aaff;--color-syntax-function:#f07178;--color-syntax-variable:#ffcb6b;--color-header-bg:var(--color-header-bg-dark);--shadow-xs:0 1px 2px 0 #0000004d;--shadow-sm:0 1px 3px 0 #00000066,0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #00000080,0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #00000099,0 4px 6px -2px #00000066;--shadow-xl:0 20px 25px -5px #000000b3,0 10px 10px -5px #00000066}}[data-theme=dark]{--color-bg:#0f0f0f;--color-surface:#1a1a1a;--color-text:#e8e8e8;--color-text-subtle:#a1a1a1;--color-primary:#fafafa;--color-accent:#8a8a8a;--color-border:#2a2a2a;--color-border-subtle:#1a1a1a;--color-sidenote:#9a9a9a;--color-highlight:#5ebbaf;--color-highlight-hover:#7cc9be;--color-highlight-subtle:#1a3030;--color-highlight-focus:#2a4545;--color-code-bg:#1a1a1a;--color-selection:#2a4545;--color-syntax-comment:#8a8a8a;--color-syntax-punctuation:#888888;--color-syntax-property:#c792ea;--color-syntax-string:var(--color-highlight);--color-syntax-operator:#f9a86f;--color-syntax-keyword:#82aaff;--color-syntax-function:#f07178;--color-syntax-variable:#ffcb6b;--color-header-bg:var(--color-header-bg-dark);--shadow-xs:0 1px 2px 0 #0000004d;--shadow-sm:0 1px 3px 0 #00000066,0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #00000080,0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #00000099,0 4px 6px -2px #00000066;--shadow-xl:0 20px 25px -5px #000000b3,0 10px 10px -5px #00000066}@font-face{font-family:heliotrope;src:url('/assets/fonts/heliotrope/heliotrope_ot_3_book.woff2') format('woff2');font-weight:350;font-style:normal;font-display:swap}@font-face{font-family:heliotrope;src:url('/assets/fonts/heliotrope/heliotrope_ot_3_book_italic.woff2') format('woff2');font-weight:350;font-style:italic;font-display:swap}@font-face{font-family:heliotrope;src:url('/assets/fonts/heliotrope/heliotrope_ot_4_medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:heliotrope;src:url('/assets/fonts/heliotrope/heliotrope_ot_4_medium_italic.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:heliotrope;src:url('/assets/fonts/heliotrope/heliotrope_ot_6_semibold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:heliotrope;src:url('/assets/fonts/heliotrope/heliotrope_ot_6_semibold_italic.woff2') format('woff2');font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:ibm-plex-mono;src:url('/assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:ibm-plex-mono;src:url('/assets/fonts/ibm-plex-mono/IBMPlexMono-BoldItalic.woff2') format('woff2');font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:ibm-plex-mono;src:url('/assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:ibm-plex-mono;src:url('/assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:unifraktur-maguntia;src:url('/assets/fonts/unifraktur-maguntia/UnifrakturMaguntia-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}*,::after,::before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}ol[role=list],ul[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--color-highlight);outline-offset:3px;border-radius:var(--border-radius-sm)}html{scroll-padding-top:5rem}@media (hover:none){*{-webkit-tap-highlight-color:transparent}}body{font-family:var(--font-base);color:var(--color-text);background-color:var(--color-bg);font-size:clamp(1rem, .95rem + .25vw, 1.125rem);line-height:1.7;text-rendering:optimizeLegibility;text-wrap:balance;text-wrap:pretty;font-feature-settings:"kern" 1,"liga" 1,"calt" 1;-webkit-text-size-adjust:100%;hanging-punctuation:first last}@media (prefers-reduced-data:reduce){body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}h1,h2,h3,h4,h5,h6{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}code,pre{font-family:'SF Mono',Monaco,'Cascadia Code','Roboto Mono',Consolas,'Courier New',monospace}}h1{font-family:var(--font-title);font-weight:600;font-size:clamp(2rem, 1.5rem + 2vw, 2.5rem);line-height:1.15;letter-spacing:-.025em;margin-bottom:var(--space-m);color:var(--color-primary);text-wrap:balance;max-width:var(--content-width);width:var(--content-width)}h2{font-family:var(--font-header);font-weight:600;font-size:clamp(1.5rem, 1.25rem + 1vw, 1.75rem);line-height:1.25;letter-spacing:-.02em;margin-top:var(--space-l);margin-bottom:var(--space-s);color:var(--color-primary);text-wrap:balance}h3{font-family:var(--font-header);font-weight:600;font-size:clamp(1.25rem, 1.125rem + .5vw, 1.375rem);line-height:1.35;letter-spacing:-.015em;margin-top:var(--space-m);margin-bottom:var(--space-xs);color:var(--color-primary);text-wrap:balance}h4,h5,h6{font-family:var(--font-header);font-weight:600;line-height:1.4;margin-top:var(--space-s);margin-bottom:var(--space-xs);color:var(--color-primary)}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none;font-weight:inherit}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{color:inherit;text-decoration:none}p{margin-bottom:var(--space-s);max-width:var(--content-width);text-wrap:balance;text-wrap:pretty;hanging-punctuation:first last}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-highlight);text-decoration-thickness:1px;text-underline-offset:0.18em;transition:color var(--transition-base),text-decoration-color var(--transition-base),text-decoration-thickness var(--transition-base),text-underline-offset var(--transition-fast);font-weight:500}a:hover{color:var(--color-link-hover);text-decoration-color:var(--color-link-hover);text-decoration-thickness:2px;text-underline-offset:0.2em}a:focus-visible{outline:2px solid var(--color-highlight);outline-offset:3px;border-radius:var(--border-radius-sm);background:var(--color-highlight-focus)}strong{font-weight:600}em{font-style:italic}.strikethrough,s{text-decoration:line-through;color:var(--color-accent);opacity:.7}blockquote.pull-quote,blockquote>p:only-child:not(.block-quote-content){margin:var(--space-m) auto;padding:0;border:none;text-align:center;font-size:1.5rem;line-height:1.4;font-weight:500;color:var(--color-primary);font-style:italic;max-width:35ch}blockquote.block-quote,blockquote:has(.block-quote-content),blockquote:has(> p + p){margin:var(--space-m) 0;padding:var(--space-s) var(--space-s) var(--space-s) var(--space-m);border-left:4px solid var(--color-highlight);background:var(--color-border-subtle);border-radius:0 var(--border-radius) var(--border-radius) 0;font-size:.95rem;line-height:1.6;color:var(--color-text);font-style:italic}.block-quote-content p,blockquote.block-quote p,blockquote:has(> p + p) p{margin-bottom:.5rem}.block-quote-content p:last-child,blockquote.block-quote p:last-child,blockquote:has(> p + p) p:last-child{margin-bottom:0}blockquote .attribution,blockquote cite{display:block;margin-top:var(--space-xs);font-size:.9em;font-style:normal;color:var(--color-text);text-align:right}blockquote .attribution::before,blockquote cite::before{content:"— "}@supports not selector(:has(> p)){blockquote:not(.pull-quote){margin:var(--space-m) 0;padding:var(--space-s) var(--space-s) var(--space-s) var(--space-m);border-left:4px solid var(--color-highlight);background:var(--color-border-subtle);border-radius:0 var(--border-radius) var(--border-radius) 0;font-size:.95rem;line-height:1.6;color:var(--color-text);font-style:italic}}blockquote{margin:var(--space-s) 0;padding-left:var(--space-s);border-left:3px solid var(--color-border);color:var(--color-accent);font-style:italic}code{font-family:var(--font-mono);font-size:.9em;background:var(--color-code-bg);padding:.2em .45em;border-radius:var(--border-radius-sm);border:1px solid var(--color-border);font-weight:450}pre{font-family:var(--font-mono);font-size:.875rem;line-height:1.65;background:var(--color-code-bg);padding:var(--space-s);border-radius:var(--border-radius);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow-x:auto;margin:var(--space-s) 0;tab-size:2;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;max-width:100%;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal}pre::-webkit-scrollbar{height:8px}pre::-webkit-scrollbar-track{background:0 0}pre::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}pre::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}pre code{background:0 0;padding:0;border:none}ol,ul{margin:var(--space-s) 0;padding-left:1.75rem}li{margin-bottom:.5rem;padding-left:.25rem;text-wrap:pretty}li::marker{color:var(--color-accent)}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-m) 0}@media (max-width:768px){body{font-size:1rem}h1{font-size:2rem;line-height:1.2;width:auto}h2{font-size:1.5rem}h3{font-size:1.25rem}blockquote.pull-quote,blockquote>p:only-child:not(.block-quote-content){font-size:1.25rem}}@media (max-width:480px){body{font-size:.9375rem}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}blockquote.pull-quote,blockquote>p:only-child:not(.block-quote-content){font-size:1.125rem}}body{display:flex;flex-direction:column;min-height:100vh}main{max-width:var(--max-width);margin-inline:auto;padding-inline:var(--space-s);padding-block-start:var(--space-m);padding-block-end:var(--space-2xl);inline-size:100%;flex:1}article{margin-block-end:var(--space-l)}footer{max-width:var(--max-width);margin-block-start:var(--space-2xl);margin-inline:auto;padding-block:var(--space-l);padding-inline:var(--space-s);border-block-start:1px solid var(--color-border);text-align:center;color:var(--color-text-subtle);font-size:var(--text-sm)}footer a{color:var(--color-text-subtle);text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:0.15em;transition:color var(--transition-base),text-decoration-color var(--transition-base);font-weight:500}footer a:hover{color:var(--color-highlight);text-decoration-color:var(--color-highlight)}footer a:focus-visible{outline:2px solid var(--color-highlight);outline-offset:2px;border-radius:var(--border-radius-sm);background:var(--color-highlight-focus)}.footer-divider{margin:0 .5rem;color:var(--color-border)}.privacy-notice{font-size:.85em;color:var(--color-accent)}@media (max-width:768px){.footer-divider{display:block;margin:.25rem 0}.privacy-notice{display:block;margin-top:.5rem}}.site-header{border-bottom:1px solid var(--color-border);padding:var(--space-s) 0;margin-bottom:var(--space-l);position:sticky;top:0;z-index:var(--z-sticky);backdrop-filter:saturate(180%) blur(12px);background:var(--color-header-bg);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.site-header.scrolled{box-shadow:var(--shadow-sm);border-bottom-color:transparent}.header-inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-s);display:flex;align-items:center;justify-content:space-between;gap:2rem}.navbar{display:flex;align-items:center;gap:2rem;flex:1}.site-logo{display:flex;align-items:center;text-decoration:none;transition:opacity var(--transition-base),transform var(--transition-bounce);flex-shrink:0;border-radius:var(--border-radius-sm)}.site-logo img{display:block;width:40px;height:40px;transition:filter var(--transition-base)}.site-logo:hover{opacity:.85;transform:scale(1.05)}.site-logo:hover img{filter:drop-shadow(0 2px 4px #2c7a7b33)}.site-logo:active{transform:scale(.98)}.site-logo:focus-visible{outline:2px solid var(--color-highlight);outline-offset:4px;background:var(--color-highlight-focus)}.nav-links{display:flex;align-items:center;gap:1.75rem;font-size:1rem}.nav-links a{color:var(--color-accent);text-decoration:none;position:relative;transition:color var(--transition-base);font-weight:500;padding:.25rem .5rem;margin:-.25rem -.5rem;border-radius:var(--border-radius-sm);white-space:nowrap}.nav-links a::after{content:'';position:absolute;bottom:0;left:.5rem;right:.5rem;height:2px;background:var(--color-highlight);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-bounce);border-radius:1px}.nav-links a:hover{color:var(--color-primary);background:var(--color-highlight-subtle)}.nav-links a[aria-current=page]{color:var(--color-primary);font-weight:700}.nav-links a:hover::after,.nav-links a[aria-current=page]::after{transform:scaleX(1)}.nav-links a:active{transform:translateY(1px)}.nav-links a:focus-visible{outline:2px solid var(--color-highlight);outline-offset:4px;border-radius:2px}#search{display:flex;align-items:center}.search-trigger{background:0 0;border:1px solid transparent;padding:.5rem;cursor:pointer;color:var(--color-accent);display:flex;align-items:center;justify-content:center;transition:color var(--transition-base),background var(--transition-base),border-color var(--transition-base),transform var(--transition-bounce);border-radius:var(--border-radius-sm)}.search-trigger:hover{color:var(--color-primary);background:var(--color-highlight-subtle);border-color:var(--color-border);transform:scale(1.05)}.search-trigger:active{transform:scale(.97)}.search-trigger:focus-visible{outline:2px solid var(--color-highlight);outline-offset:2px;background:var(--color-highlight-focus)}.search-trigger svg{display:block;transition:transform var(--transition-base)}.search-trigger:hover svg{transform:rotate(15deg)}.search-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;backdrop-filter:blur(12px) saturate(120%);z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding:10vh 1.5rem 1.5rem;animation:fadeIn var(--transition-slow);will-change:opacity}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.search-modal-content{background:var(--color-bg);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl),0 0 0 1px var(--color-border);width:100%;max-width:var(--max-width);animation:slideDown var(--transition-slow);overflow:hidden;will-change:transform,opacity}@keyframes slideDown{from{transform:translateY(-30px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}#search-modal{--pagefind-ui-scale:1;--pagefind-ui-primary:var(--color-highlight);--pagefind-ui-text:var(--color-text);--pagefind-ui-background:var(--color-bg);--pagefind-ui-border:var(--color-border);--pagefind-ui-tag:var(--color-border);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:8px;--pagefind-ui-font:var(--font-base)}.post-list{margin-bottom:var(--space-m);max-width:var(--content-width);width:var(--content-width)}.post-list h2{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);font-weight:600;margin-top:var(--space-m);margin-bottom:var(--space-s);padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.post-list ul{list-style:none;padding:0;margin:0}.post-list li{padding:.75rem;margin-bottom:.5rem;margin-left:-.75rem;margin-right:-.75rem;border-radius:var(--border-radius-sm);display:flex;justify-content:space-between;align-items:baseline;gap:1rem;transition:background var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base);position:relative}.post-list li:focus-within{outline:2px solid var(--color-highlight);outline-offset:2px;background:var(--color-highlight-subtle)}.post-list li::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--color-highlight);border-radius:0 2px 2px 0;transition:height var(--transition-bounce)}.post-list li:hover{background:var(--color-highlight-subtle);transform:translateX(4px)}.post-list li:hover::before{height:70%}.post-list li:active{transform:translateX(2px)}.post-list li:last-child{margin-bottom:0}.post-list a{text-decoration:none;color:var(--color-primary);font-weight:500;flex:1;transition:color var(--transition-base)}.post-list li:hover a{color:var(--color-highlight)}.date{color:var(--color-accent);font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-family:var(--font-mono);transition:color var(--transition-base)}.post-list li:hover .date{color:var(--color-text-subtle)}.view-all{margin-top:1rem;text-align:right;font-size:.9em}.view-all a{color:var(--color-highlight);text-decoration:none;font-weight:500;transition:color .2s ease}.view-all a:hover{color:var(--color-highlight-hover);text-decoration:underline}.tag-list{display:flex;flex-wrap:wrap;gap:.75rem;margin:var(--space-s) 0}.tag{display:inline-flex;align-items:center;padding:.25rem .65rem;background:0 0;color:var(--color-highlight);text-decoration:none;border-radius:var(--border-radius-sm);font-size:.8125rem;font-weight:500;font-family:var(--font-mono);border:1px solid var(--color-border);transition:all var(--transition-base)}.tag:hover{background:var(--color-highlight-subtle);color:var(--color-highlight-hover);border-color:var(--color-highlight);text-decoration:none;transform:translateY(-1px)}.tag:active{transform:translateY(0)}.tag:focus-visible{outline:2px solid var(--color-highlight);outline-offset:2px}.lang-tag{display:inline-block;padding:.25rem .75rem;background:var(--color-border);color:var(--color-text);border-radius:4px;font-size:.875rem;font-weight:500;font-family:var(--font-mono);text-transform:uppercase;margin-right:.5rem;user-select:none}.archive-badge{display:inline-block;padding:.25rem .75rem;background:var(--color-border);color:var(--color-text);border-radius:var(--border-radius-sm);font-size:.875rem;font-weight:500;font-family:var(--font-mono);text-transform:uppercase;margin-left:var(--archive-badge-offset);margin-right:.75rem;vertical-align:middle;user-select:none;white-space:nowrap}@media (max-width:768px){.navbar{gap:1rem}.nav-links{gap:1rem;font-size:.9rem}.archive-badge{margin-left:0;display:block;margin-bottom:.5rem}.post-list{width:auto}}@media (max-width:480px){.header-inner{gap:1rem}.nav-links{gap:.75rem;font-size:.85rem}.site-logo img{width:32px;height:32px}}#back-to-top{position:fixed;bottom:2rem;right:2rem;background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border);border-radius:50%;width:3rem;height:3rem;font-size:1.5rem;cursor:pointer;box-shadow:var(--shadow-md);transition:transform var(--transition-base),opacity var(--transition-base),visibility var(--transition-base);display:flex;align-items:center;justify-content:center;z-index:var(--z-sticky);opacity:0;visibility:hidden;transform:translateY(20px)}#back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}#back-to-top:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);background:var(--color-highlight-subtle);border-color:var(--color-highlight)}@media (max-width:768px){#back-to-top{bottom:1rem;right:1rem;width:2.5rem;height:2.5rem;font-size:1.25rem}}.theme-toggle-btn{background:0 0;border:none;color:var(--color-text-subtle);cursor:pointer;padding:0;font-size:1.1rem;line-height:1;vertical-align:middle;transition:color var(--transition-base),transform var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.theme-toggle-btn:hover{color:var(--color-highlight);transform:rotate(15deg)}.theme-toggle-btn:active{transform:scale(.9)}.fn-wrapper{position:relative;display:inline;cursor:default}.fn-ref{cursor:pointer;font-size:.85em;vertical-align:super;line-height:0;margin-left:.15em;color:var(--color-highlight);font-weight:600;transition:color var(--transition-base),transform var(--transition-bounce);display:inline-block;padding:.1em .2em;border-radius:2px}.fn-ref:hover{color:var(--color-highlight-hover);transform:scale(1.15);background:var(--color-highlight-subtle)}.fn-ref:active{transform:scale(1.05)}.fn-sidenote{float:right;clear:right;margin-right:var(--sidenote-offset);width:var(--sidenote-width);margin-top:.3rem;margin-bottom:0;font-size:var(--text-sm);line-height:1.5;vertical-align:baseline;position:relative;color:var(--color-sidenote)}.fn-number{font-weight:600;color:var(--color-highlight);margin-right:.35em;font-size:.95em}@media (max-width:1100px){.fn-sidenote{display:none;float:none;margin:1rem 0;width:100%;padding:1rem 1.25rem;background:var(--color-surface);border-radius:var(--border-radius);border-left:3px solid var(--color-highlight);border-top:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.fn-ref.active+.fn-sidenote,.fn-wrapper:hover .fn-sidenote{display:block}.fn-wrapper.active .fn-sidenote{display:block;animation:slideDown var(--transition-slow)}@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}}.toc{background:var(--color-surface);border-radius:var(--border-radius);padding:var(--space-s);margin:var(--space-m) 0;border:1px solid var(--color-border);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-base);container-type:inline-size;container-name:toc}.toc:hover{box-shadow:var(--shadow-sm)}#toc-list{display:none}.toc.toc-collapsed{padding:.5rem .75rem}.toc-title{font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem;user-select:none;cursor:pointer;transition:color var(--transition-base);padding:.25rem;margin:-.25rem -.25rem .5rem;border-radius:var(--border-radius-sm)}.toc.toc-collapsed .toc-title{margin-bottom:-.25rem}.toc-title:hover{color:var(--color-primary);background:var(--color-highlight-subtle)}.toc-title:focus-visible{outline:2px solid var(--color-highlight);outline-offset:2px}.toc-toggle-icon{font-size:.75em;line-height:1;transition:transform var(--transition-base)}.toc-items{list-style:none;padding:0;margin:0}.toc-item{margin:0}.toc-h1{margin-top:.5rem}.toc-h2{padding-left:1rem;margin-top:.25rem}.toc-h3{margin-top:.5rem;font-weight:600}.toc-h4{padding-left:1.5rem;margin-top:.25rem;font-size:.85rem}.toc-link{display:block;padding:.45rem .65rem;color:var(--color-text);text-decoration:none;font-size:.9rem;border-radius:var(--border-radius-sm);transition:all var(--transition-base);position:relative}.toc-link::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--color-highlight);border-radius:0 2px 2px 0;transition:height var(--transition-bounce)}.toc-link:hover{background:var(--color-bg);color:var(--color-highlight);transform:translateX(2px)}.toc-link:hover::before{height:60%}.toc-link:active{transform:translateX(1px)}.toc-link.active{background:var(--color-bg);color:var(--color-highlight);font-weight:500;box-shadow:var(--shadow-xs)}.toc-link.active::before{height:80%}@container toc (max-width:500px){.toc{font-size:.9rem}.toc-h2{padding-left:.75rem}.toc-h4{padding-left:1rem}}@supports not (container-type:inline-size){@media (max-width:768px){.toc{font-size:.9rem}.toc-h2{padding-left:.75rem}.toc-h4{padding-left:1rem}}}.subtitle{color:var(--color-accent);font-size:1.1rem;margin-bottom:var(--space-l);max-width:60ch}.experiments-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-m);margin-top:var(--space-l)}.experiment-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--space-m);transition:transform var(--transition-base),box-shadow var(--transition-base);display:flex;flex-direction:column}.experiment-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.experiment-card .icon{font-size:2rem;margin-bottom:var(--space-s)}.experiment-card h2{margin:0;font-size:1.25rem;color:var(--color-primary)}.experiment-card p{color:var(--color-text-subtle);font-size:.95rem;margin:0;line-height:1.5}.experiment-card a{color:var(--color-highlight);text-decoration:none;font-weight:500}.experiment-card a:hover{text-decoration:underline}.preset-buttons{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:var(--space-s)}.preset-btn{padding:var(--space-xs) var(--space-s);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;font-size:.8rem;font-weight:500;color:var(--color-primary);transition:all var(--transition-base)}.preset-btn:hover{background:var(--color-highlight-subtle);border-color:var(--color-highlight);color:var(--color-highlight);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.preset-btn.active{background:var(--color-highlight);color:var(--color-white);border-color:var(--color-highlight);font-weight:600}.switch{position:relative;display:inline-block;width:50px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border);transition:background-color var(--transition-slow)}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--color-bg);transition:transform var(--transition-slow)}input:checked+.slider{background-color:var(--color-highlight)}input:checked+.slider:before{transform:translateX(26px)}.slider.round{border-radius:24px}.slider.round:before{border-radius:50%}.fragment-shuffle-controls{background:var(--color-highlight-subtle);background:color-mix(in srgb,var(--color-highlight) 10%,var(--color-surface));border:2px solid var(--color-highlight);border-radius:var(--border-radius);padding:var(--space-m);margin-bottom:var(--space-l);display:flex;flex-direction:column;gap:var(--space-xs);align-items:flex-start;animation:fadeIn .3s ease-out}@keyframes fadeIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.shuffle-btn{background:var(--color-highlight);color:#fff;border:none;padding:.75em 1.5em;border-radius:calc(var(--border-radius)/ 2);font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5em;transition:all var(--transition-base);box-shadow:0 2px 4px #0000001a}.shuffle-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;background:var(--color-highlight-hover);background:color-mix(in srgb,var(--color-highlight) 90%,#000)}.shuffle-btn:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.shuffle-btn .icon{font-size:1.2em;line-height:1}.shuffle-hint{font-size:.85rem;color:var(--color-text-subtle);font-style:italic}.fragment-separator{margin:var(--space-l) 0;border:none;border-top:2px dashed var(--color-border);opacity:.5}.fragments-shuffled .fragment-separator{opacity:1;border-color:var(--color-highlight);animation:pulse-border 2s ease-in-out infinite}@keyframes pulse-border{0%,100%{opacity:.5}50%{opacity:1}}.shuffle-indicator{background:var(--color-highlight-subtle);background:color-mix(in srgb,var(--color-highlight) 15%,var(--color-surface));border:1px solid var(--color-highlight);border-radius:var(--border-radius);padding:var(--space-m);margin-bottom:var(--space-m);display:flex;flex-direction:column;gap:var(--space-s);animation:slideIn .3s ease-out}@keyframes slideIn{from{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.shuffle-status{font-weight:600;color:var(--color-primary);display:flex;align-items:center;gap:.5em}.shuffle-actions{display:flex;gap:var(--space-s);flex-wrap:wrap}.shuffle-indicator button{background:var(--color-highlight);color:#fff;border:none;padding:.5em 1em;border-radius:calc(var(--border-radius)/ 2);cursor:pointer;font-size:.9rem;font-weight:500;transition:all var(--transition-base)}.shuffle-indicator button:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.shuffle-indicator button.restore-order{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.shuffle-indicator button.restore-order:hover{border-color:var(--color-highlight)}@media (max-width:600px){.fragment-shuffle-controls{align-items:stretch}.shuffle-btn{width:100%;justify-content:center}.shuffle-actions{flex-direction:column}.shuffle-indicator button{width:100%}}.text-center{text-align:center}.hidden{display:none}.interactive-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.interactive-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.interactive-lift:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.interactive-scale{transition:transform var(--transition-bounce)}.interactive-scale:hover{transform:scale(1.05)}.interactive-scale:active{transform:scale(.98)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-highlight);color:var(--color-bg);padding:.75rem 1.5rem;text-decoration:none;font-weight:600;border-radius:0 0 var(--border-radius-sm) 0;transition:top var(--transition-base);z-index:10000}.skip-link:focus{top:0}.focus-ring:focus-visible{outline:2px solid var(--color-highlight);outline-offset:3px;border-radius:var(--border-radius-sm);background:var(--color-highlight-focus)}.theme-retro{--font-base:'ibm-plex-mono',monospace;--font-header:'unifraktur-maguntia',cursive;--font-title:'unifraktur-maguntia',cursive}.spin-logo{animation:spin 1s ease-in-out}@keyframes spin{0%{transform:rotate(0) scale(1.05)}100%{transform:rotate(360deg) scale(1.05)}}.font-comic{--font-base:'Comic Sans MS','Comic Sans',cursive!important;--font-header:'Comic Sans MS','Comic Sans',cursive!important;--font-title:'Comic Sans MS','Comic Sans',cursive!important;--font-mono:'Comic Sans MS','Comic Sans',cursive!important}.font-times{--font-base:'Times New Roman',Times,serif!important;--font-header:'Times New Roman',Times,serif!important;--font-title:'Times New Roman',Times,serif!important;--font-mono:'Times New Roman',Times,serif!important}.font-arial{--font-base:Arial,Helvetica,sans-serif!important;--font-header:Arial,Helvetica,sans-serif!important;--font-title:Arial,Helvetica,sans-serif!important;--font-mono:Arial,Helvetica,sans-serif!important}.ghost-emoji{position:fixed;bottom:-50px;left:50%;font-size:3rem;pointer-events:none;z-index:var(--z-toast);animation:floatUp 3s ease-in-out forwards;filter:drop-shadow(0 4px 8px #00000033);will-change:transform,opacity}@keyframes floatUp{0%{transform:translateX(-50%) translateY(0) rotate(0) scale(.8);opacity:0}10%{opacity:1;transform:translateX(-50%) translateY(-10vh) rotate(36deg) scale(1)}50%{transform:translateX(-50%) translateY(-50vh) rotate(180deg) scale(1.1)}100%{transform:translateX(-50%) translateY(-100vh) rotate(360deg) scale(.9);opacity:0}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.loading{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeInUp var(--transition-slow) ease-out}@media print{*,::after,::before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}body{font-size:12pt;line-height:1.5}a,a:visited{text-decoration:underline}a[href]::after{content:" (" attr(href) ")"}a[href^="#"]::after,a[href^="javascript:"]::after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.footer-divider,.ghost-emoji,.search-trigger,.site-header,.skip-link,footer{display:none!important}}
