@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Lora:ital,wght@0,400;0,600;1,400&display=swap";:root{--bg: #ffffff;--bg-subtle: #f7f7f5;--ink: #1a1a1a;--ink-mid: #4b5563;--ink-dim: #9ca3af;--border: #e5e7eb;--accent: #0f766e;--accent-hover: #0b5b54;--warn: #b45309;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;--font-code: "Courier New", Courier, monospace;--font-sans: "Lora", Georgia, serif;--measure: 56rem;--site-width: 78rem;--radius: 4px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}.post-content a{color:var(--accent);text-decoration:none;font-weight:500;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.post-content a[href^=http]:not([href*="juliendelattre.com"]):after{content:"↗";font-size:.75em;margin-left:.15em;opacity:.7}.post-content a:hover{background:color-mix(in srgb,var(--accent) 15%,transparent);border-radius:3px;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.site-header{border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.site-nav{max-width:var(--site-width);margin:0 auto;padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{font-weight:600;font-size:1rem;color:var(--ink);letter-spacing:-.01em;border-bottom:none}.brand:hover{text-decoration:none;color:var(--accent)}.nav-right{display:flex;align-items:center;gap:1.5rem}.nav-links{display:flex;gap:1.75rem;font-size:.9rem}.nav-links a{color:var(--ink-mid);font-weight:500}.nav-links a:hover{color:var(--ink);text-decoration:none}.nav-search{margin:0}.nav-search input[type=search]{width:9rem;max-width:40vw;box-sizing:border-box;padding:.3rem .6rem;font-size:.85rem;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.nav-search input[type=search]:focus{outline:none;border-color:var(--accent)}.nav-search input[type=search]::placeholder{color:var(--ink-dim)}.nav-toggle{display:none;width:44px;height:44px;margin-right:-.5rem;padding:0;border:0;background:none;color:var(--ink);cursor:pointer}.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .18s ease,opacity .18s ease}.nav-toggle-bars{position:relative;margin:0 auto}.nav-toggle-bars:before,.nav-toggle-bars:after{content:"";position:absolute;left:0}.nav-toggle-bars:before{top:-6px}.nav-toggle-bars:after{top:6px}.nav-toggle.is-open .nav-toggle-bars{background:transparent}.nav-toggle.is-open .nav-toggle-bars:before{transform:translateY(6px) rotate(45deg)}.nav-toggle.is-open .nav-toggle-bars:after{transform:translateY(-6px) rotate(-45deg)}@media(max-width:800px){.site-nav{padding:.6rem 1rem;gap:.5rem}.nav-toggle{display:block}.site-nav .build-stamp{display:none}.nav-right{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:.5rem 1rem 1rem;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 8px 16px -12px #00000059}.nav-right.is-open{display:flex}.nav-links{flex-direction:column;gap:0;font-size:1rem}.nav-links a{display:block;padding:.7rem 0;border-bottom:1px solid var(--border);color:var(--ink)}.nav-search{margin-top:.9rem}.nav-search input[type=search]{width:100%;max-width:none;padding:.6rem .75rem;font-size:1rem}}.site-main{max-width:var(--site-width);margin:0 auto;padding:3rem 1.5rem 5rem}.site-footer{border-top:1px solid var(--border);margin-top:4rem;padding:1.5rem;text-align:center;font-size:.85rem;color:var(--ink-dim)}.site-footer a{color:var(--ink-dim)}.site-footer a:hover{color:var(--ink)}.build-stamp{margin:.6rem 0 0;font-size:.72rem;color:var(--ink-dim);opacity:.85}.build-stamp code{font-family:var(--font-code);font-weight:600}.site-nav .build-stamp{margin:0 auto 0 0;margin-left:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.hero{padding:3rem 0;margin-bottom:3rem;border-bottom:1px solid var(--border)}.hero h1{font-size:2.2rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .75rem;line-height:1.2}.hero-subtitle{color:var(--ink-mid);font-size:1.1rem;max-width:34rem;margin:0}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:640px){.home-grid{grid-template-columns:1fr}}.home-card{display:block;border:1px solid var(--border);border-radius:8px;padding:1.5rem;color:var(--ink);transition:border-color .15s,box-shadow .15s}.home-card:hover{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent);text-decoration:none}.home-card h2{font-size:1.05rem;font-weight:600;margin:0 0 .4rem}.home-card p{color:var(--ink-mid);margin:0;font-size:.95rem}.section-header{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.back-link{display:inline-block;margin-bottom:.5rem;font-size:.85rem;color:var(--ink-mid);text-decoration:none}.back-link:hover{color:var(--ink)}.section-header h1{font-size:1.6rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .4rem;padding-left:.9rem;border-left:4px solid var(--accent)}.section-subtitle{color:var(--ink-mid);margin:0}.post-list{list-style:none;margin:0;padding:0;position:relative}.post-list:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--border)}.post-list-item{position:relative;padding:0 0 2rem 2.25rem}.post-list-item:first-child{padding-top:0}.post-list-item:before{content:"";position:absolute;left:0;top:8px;width:14px;height:14px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 0 0 1px var(--border)}.post-list-item h2{font-size:1.15rem;font-weight:600;margin:0 0 .35rem;letter-spacing:-.01em}.post-list-item a{color:var(--ink);border-bottom:none}.post-list-item a:hover{text-decoration:none}.post-list-item a:hover h2{color:var(--accent)}.post-list[data-list-variant]>.post-list-item:first-child{position:relative;z-index:1;isolation:isolate;padding:1.4rem 1.5rem 1.4rem 1.6rem;margin-bottom:1.1rem;border:1px solid var(--border);border-radius:12px;box-shadow:inset 4px 0 0 0 var(--accent);background:var(--bg);background:color-mix(in srgb,var(--accent) 5%,var(--bg))}.post-list[data-list-variant]>.post-list-item:first-child:before{display:none}.post-list[data-list-variant]>.post-list-item:first-child h2{font-size:1.6rem;line-height:1.25;padding-right:4.5rem}.post-list[data-list-variant]>.post-list-item:first-child .post-excerpt{font-size:1rem;-webkit-line-clamp:4}.post-list[data-list-variant]>.post-list-item:first-child:after{content:"Latest";position:absolute;top:1rem;right:1rem;font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--accent);padding:.15rem .5rem;border-radius:999px}.post-excerpt{color:var(--ink-mid);margin:0 0 .5rem;font-size:.95rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;mask-image:linear-gradient(to bottom,black 50%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.post-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:.82rem;color:var(--ink-dim)}.section-nav{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.tag,.badge{background:transparent!important;border:1px solid transparent!important;border-radius:0;padding:0 .15rem 0 0;font-family:var(--font-mono);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);text-decoration:none;cursor:pointer}a.tag:hover,a.tag-section:hover,a.badge:hover{text-decoration:underline;text-underline-offset:3px;opacity:1;color:var(--ink)}.tag-section{font-weight:600}.tag-section[href*="/goldengate/"]{background:#fed7aa;color:#9a3412;border-color:#fdba74}.tag-section[href*="/mongodb/"]{background:#bbf7d0;color:#14532d;border-color:#86efac}.tag-section[href*="/oracle/"]{background:#fecaca;color:#991b1b;border-color:#fca5a5}.tag-section[href*="/cloud/"]{background:#bfdbfe;color:#1e3a8a;border-color:#93c5fd}.badge-draft{background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.badge-internal{background:color-mix(in srgb,var(--ink-mid) 14%,transparent);color:var(--ink-mid);border:1px solid color-mix(in srgb,var(--ink-mid) 32%,transparent)}.badge-review{background:#fce7f3;color:#9d174d;border:1px solid #f9a8d4}.badge-pending{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.badge-scheduled{background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd}.badge-published{background:#dcfce7;color:#166534;border:1px solid #86efac}.badge-accessible{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.badge-protected{background:#ccfbf1;color:#0f766e;border:1px solid #5eead4}.badge-obsolete{background:#f3f4f6;color:#6b7280;border:1px solid #d1d5db}.badge-todo{background:#fbeae9;color:#b3261e;border:1px solid #f1c3bf}.todo-list{list-style:none;margin:.75rem 0;padding:.75rem 1rem;background:#fbeae9;border:1px solid #f1c3bf;border-radius:8px;font-size:.9rem;color:#7a1f1a}.todo-list li+li{margin-top:.35rem}.todo-line{font-weight:600;margin-right:.4rem}html[data-preview-build] .badge-attn-open{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}html[data-preview-build] .badge-attn-resolved{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}html[data-preview-build] .attn-marker{border-bottom:2px dashed #f59e0b;cursor:help}html[data-preview-build] .attn-marker.attn-resolved{border-bottom-color:#34d399}html[data-preview-build] .attn-block{border-left:3px solid #f59e0b;padding:.5rem .75rem;margin:.75rem 0;background:#fffbeb;border-radius:0 6px 6px 0}html[data-preview-build] .attn-block.attn-resolved{border-left-color:#34d399;background:#ecfdf5}html[data-preview-build] .post-content.has-attn-margin{position:relative}html[data-preview-build] .attn-margin-rail{position:absolute;top:0;left:100%;width:220px;margin-left:1.5rem}html[data-preview-build] .attn-card{position:absolute;left:0;width:100%;padding:.5rem .6rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;font-size:.8rem;color:#78350f;line-height:1.35;opacity:.75;transition:opacity .15s ease}html[data-preview-build] .attn-card p{margin:.3rem 0 0}html[data-preview-build] .attn-card-resolved{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}html[data-preview-build] .attn-card-active{opacity:1;box-shadow:0 2px 8px #00000014}html[data-preview-build] .attn-card-id{font-weight:700;margin-right:.4rem}html[data-preview-build] .attn-card-status{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;opacity:.7}@media(max-width:1100px){html[data-preview-build] .attn-margin-rail{display:none}}html[data-hide-annotations] .attn-marker,body.prod-viewing .attn-marker{border-bottom:none;cursor:text}html[data-hide-annotations] .attn-block,body.prod-viewing .attn-block{border-left:none;padding:0;margin:0;background:none;border-radius:0}html[data-hide-annotations] .attn-margin-rail,html[data-hide-annotations] .badge-attn-open,html[data-hide-annotations] .badge-attn-resolved,body.prod-viewing .attn-margin-rail,body.prod-viewing .badge-attn-open,body.prod-viewing .badge-attn-resolved{display:none!important}html[data-preview-build] .proof-marker{border-bottom:1px dotted color-mix(in srgb,var(--accent) 60%,transparent)}html[data-preview-build] .proof-block{border-left:3px solid color-mix(in srgb,var(--accent) 45%,transparent);padding:.5rem .75rem;margin:.75rem 0;border-radius:0 6px 6px 0;background:color-mix(in srgb,var(--accent) 6%,transparent)}html[data-preview-build] .proof-link{display:inline-block;margin-left:.25rem;font-size:.75em;text-decoration:none;opacity:.6;transition:opacity .15s ease}html[data-preview-build] .proof-link:hover{opacity:1}html[data-preview-build] .proof-block>.proof-link{display:block;margin:.4rem 0 0}html[data-hide-proofs] .proof-marker,body.prod-viewing .proof-marker{border-bottom:none}html[data-hide-proofs] .proof-block,body.prod-viewing .proof-block{border-left:none;padding:0;margin:0;border-radius:0;background:none}html[data-hide-proofs] .proof-link,body.prod-viewing .proof-link{display:none!important}.notebook-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:.6rem;padding:.35rem .75rem;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);color:var(--accent);font-size:.85rem;font-weight:600;text-decoration:none}.notebook-link:hover{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:var(--accent)}.seo-meta-preview{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:.35rem}.seo-meta-row{display:flex;gap:.5rem;font-size:.78rem;line-height:1.4}.seo-meta-row dt{flex:0 0 auto;color:var(--ink-dim);font-weight:600}.seo-meta-row dd{margin:0;color:var(--ink-mid)}.seo-meta-row dd.seo-meta-empty{color:var(--warn);font-style:italic}.wp-copy-toolbar{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border);flex-wrap:wrap}.wp-copy-label{font-size:.78rem;color:var(--ink-dim)}.wp-copy-btn{padding:3px 10px;font-family:var(--font-sans);font-size:.78rem;font-weight:600;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--ink-mid);cursor:pointer;transition:opacity .15s,border-color .15s,color .15s}.wp-copy-btn:hover,.wp-copy-btn.copied{border-color:var(--accent);color:var(--accent)}.wp-copy-btn.copy-error{border-color:var(--warn);color:var(--warn)}.wp-copy-error{flex-basis:100%;margin:.25rem 0 0;padding:.5rem .75rem;font-size:.78rem;line-height:1.5;background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);border-radius:var(--radius)}.wp-copy-error code{font-family:var(--font-code);font-weight:600}.wp-copy-error-item+.wp-copy-error-item{margin-top:.5rem;padding-top:.5rem;border-top:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.related-posts{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.related-posts h2{font-size:1rem;margin:0 0 .6rem}.related-posts ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.related-posts li{display:flex;align-items:center;gap:.5rem}.link-audit{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.link-audit h2{font-size:1rem;margin:0 0 .35rem}.link-audit-note{font-size:.72rem;font-weight:400;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.03em}.link-audit-desc{font-size:.8rem;color:var(--ink-dim);margin:0 0 .9rem}.link-audit-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.5rem}.link-audit-col h3{font-size:.82rem;color:var(--ink-mid);margin:0 0 .5rem}.link-audit-table{width:100%;border-collapse:collapse;font-size:.82rem}.link-audit-table th,.link-audit-table td{text-align:left;padding:4px 8px 4px 0;border-bottom:1px solid var(--border);vertical-align:middle}.link-audit-table th{font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-dim);font-weight:600}.link-audit-empty{font-size:.82rem;font-style:italic;color:var(--ink-dim);margin:0}.publish-cascade{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}.publish-cascade-label{display:block;font-size:.78rem;color:var(--ink-dim);margin-bottom:.4rem}.publish-cascade-waves{display:flex;flex-direction:column;gap:.75rem;list-style:none;margin:0;padding:0}.publish-cascade-wave{display:flex;flex-direction:column;gap:.3rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle)}.publish-cascade-wave-label{font-size:.68rem;font-weight:600;color:var(--ink-mid);text-transform:uppercase;letter-spacing:.03em}.publish-cascade-wave.pcw-pos1{background:#bce8d1;border-color:#7ecc9f}.publish-cascade-wave.pcw-pos2{background:#dcf3e6;border-color:#b0e0c4}.publish-cascade-wave.pcw-pos3{background:#f0faf4;border-color:#d7eee0}.publish-cascade-wave.pcw-neg1{background:#bcd6f9;border-color:#82aeed}.publish-cascade-wave.pcw-neg2{background:#dce8fb;border-color:#b4cef6}.publish-cascade-wave.pcw-neg3{background:#f0f5fe;border-color:#dae6fb}.publish-cascade-wave.pcw-tangled{background:#fbebe9;border-color:#f1c3bf}.pcw-pos1 .publish-cascade-wave-label{color:#12442a}.pcw-pos2 .publish-cascade-wave-label{color:#2f7a53}.pcw-pos3 .publish-cascade-wave-label{color:#66a382}.pcw-neg1 .publish-cascade-wave-label{color:#123c73}.pcw-neg2 .publish-cascade-wave-label{color:#3f76b8}.pcw-neg3 .publish-cascade-wave-label{color:#6c95cc}.pcw-tangled .publish-cascade-wave-label{color:#b3261e}.publish-cascade-wave ul{display:flex;flex-direction:column;gap:.35rem;list-style:none;margin:0;padding:0}.publish-cascade-wave ul li{display:block}.publish-cascade-wave ul li a{display:inline-block}.tag-draft{background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent);font-weight:600}a.tag-draft:hover{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.tag-scheduled{background:#ede9fe;color:#5b21b6;border-color:#c4b5fd;font-weight:600}a.tag-scheduled:hover{background:#ddd6fe;color:#5b21b6}.tag-published{background:#dcfce7;color:#166534;border-color:#86efac;font-weight:600}a.tag-published:hover{background:#bbf7d0;color:#166534}.tag-status-active{outline:2px solid currentColor;outline-offset:1px}.post-header{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.post-header h1{font-size:2rem;font-weight:600;line-height:1.25;letter-spacing:-.02em;margin:0 0 .75rem}.notice{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--radius);font-size:.9rem}.notice-draft{border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,transparent)}.notice-info{border:1px solid var(--border);color:var(--ink-mid);background:var(--bg-subtle)}.notice a{color:inherit;text-decoration:underline}.notebook-toc{max-width:var(--measure);background:var(--bg-subtle);border:1px solid var(--border);border-radius:10px;padding:.9rem 1.1rem;margin:1.25rem 0}.notebook-toc-title{margin:0 0 .4rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim)}.notebook-toc ul{margin:0;padding-left:1.1rem}.notebook-toc li{font-size:.9rem}.notebook-toc a{color:var(--ink-mid)}.notebook-toc a:hover{color:var(--ink)}.post-content{max-width:var(--measure);font-size:1.05rem}.post-content h2{font-size:1.35rem;font-weight:600;letter-spacing:-.01em;margin-top:2.5rem;margin-bottom:.5rem;scroll-margin-top:5rem}.post-content h3{font-size:1.1rem;font-weight:600;margin-top:2rem;margin-bottom:.4rem;scroll-margin-top:5rem}.post-content p{margin:1rem 0}.post-content ul,.post-content ol{margin:1rem 0;padding-left:1.5rem}.post-content li{margin:.4rem 0}.post-content img{max-width:100%;border-radius:6px;border:1px solid var(--border);display:block;margin:0 auto}.tool-controls{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));grid-auto-flow:row dense;align-items:start;gap:.75rem 1.25rem;margin-bottom:1.3rem;padding-bottom:1.2rem;border-bottom:1px solid var(--border)}.tool-controls>label:not(.c):not(.r){display:block;margin-bottom:0;min-width:0}.tool-controls>h3,.tool-controls>p,.tool-controls>textarea,.tool-controls>.tool-break,.tool-controls>label.tool-field-wide:not(.c):not(.r){grid-column:1 / -1;margin:0}.tool-controls>h3{margin-top:.4rem}.tool-controls>label.c:not(.tool-break),.tool-controls>label.r:not(.tool-break){display:flex;align-items:center;gap:.4rem;grid-column:span 2;margin-bottom:0;min-width:0}.tool-controls label.c input,.tool-controls label.r input{flex:0 0 auto;margin:0;width:auto}.tool-controls>fieldset{margin:0;min-width:0}@media(max-width:640px){.tool-controls{grid-template-columns:1fr}.tool-controls>label.c:not(.tool-break),.tool-controls>label.r:not(.tool-break){grid-column:1 / -1}}.post-content .table-scroll{overflow-x:auto;margin:1.6rem 0}.post-content table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.45;margin:0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.post-content thead.is-empty{display:none}.post-content th,.post-content td{text-align:left;vertical-align:top}.post-content th{padding:.55rem .8rem;font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.09em;border-bottom:1px solid var(--ink)}.post-content td{padding:.65rem .8rem;border-bottom:1px solid var(--border)}.post-content tbody tr:last-child td{border-bottom:none}.post-content code{font-family:var(--font-code);font-size:.87em;background:var(--bg-subtle);border:1px solid var(--border);padding:.15em .4em;border-radius:var(--radius);color:var(--ink)}.post-content pre{border:1px solid #c8ccd1;border-radius:6px;padding:1.1rem 1.3rem;overflow-x:auto;margin:1.5rem 0;font-size:.875rem;line-height:var(--code-line-height, 1.25)}:root{--code-vividness: 100%;--code-extra-filter: saturate(200%) brightness(112%)}.astro-code,.astro-code span{color:color-mix(in srgb,var(--shiki-vivid) var(--code-vividness),var(--shiki-pastel))}.astro-code{filter:var(--code-extra-filter)}.astro-code{background-color:color-mix(in srgb,var(--shiki-vivid-bg) var(--code-vividness),var(--shiki-pastel-bg))}.astro-code .sqlplus-prompt{color:var(--ink-dim)}.editorial-diagram{overflow-x:auto;width:fit-content;max-width:100%;margin:1rem auto;border:1px solid #c8ccd1;border-radius:8px}.editorial-diagram svg{display:block}.editorial-diagram-id{font-family:Geist Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;color:#8a93a3;text-align:right;padding:.2rem .6rem .4rem;user-select:text}.editorial-diagram.editorial-diagram-zoomable{cursor:zoom-in}.editorial-zoom-overlay{display:none;position:fixed;inset:0;z-index:1000;background:#141414eb}.editorial-zoom-overlay.open{display:block}.editorial-zoom-toolbar{position:absolute;top:.75rem;right:.75rem;z-index:1001;display:flex;gap:.5rem}.editorial-zoom-toolbar button{background:#fff;border:1px solid #e5e7eb;border-radius:.4rem;padding:.4rem .75rem;font-size:.85rem;cursor:pointer}.editorial-zoom-toolbar button[data-action=close]{font-size:1.1rem;line-height:1;padding:.3rem .65rem}.editorial-zoom-stage{width:100%;height:100%;overflow:hidden;cursor:grab;touch-action:none}.editorial-zoom-stage.dragging{cursor:grabbing}.editorial-zoom-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:center center}.editorial-zoom-content svg{max-width:none;max-height:none}.tool-code-output .shiki{border:1px solid #c8ccd1;border-radius:6px;padding:1.1rem 1.3rem;overflow-x:auto;margin:0;font-size:.875rem;line-height:1.5}.tool-code-output .shiki code{font-family:var(--font-mono)}.tool-code-output pre.shiki-fallback{border:1px solid #c8ccd1;border-radius:6px;padding:1.1rem 1.3rem;overflow-x:auto;margin:0;font-size:.875rem;line-height:1.5;font-family:var(--font-mono);background:var(--bg-subtle);color:var(--ink)}.code-block-wrapper{position:relative;margin:1.5rem 0}.code-block-wrapper pre{margin:0}.copy-code-btn{position:absolute;top:.6rem;right:.6rem;padding:3px 10px;font-family:var(--font-sans);font-size:.72rem;font-weight:600;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--ink-mid);cursor:pointer;opacity:0;transform:translate(8px);transition:opacity .15s,transform .15s,border-color .15s,color .15s}.code-block-wrapper:hover .copy-code-btn,.copy-code-btn:focus-visible,.copy-code-btn.copied{opacity:1;transform:translate(0)}.copy-code-btn:hover,.copy-code-btn.copied{border-color:var(--accent);color:var(--accent)}.post-content pre code{background:none;border:none;padding:0;font-size:.875rem;line-height:var(--code-line-height, 1.25)}.post-content blockquote{border-left:3px solid var(--border);margin:1.5rem 0;padding:.25rem 0 .25rem 1.2rem;color:var(--ink-mid);font-style:italic}.post-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.9rem;color:var(--ink-mid)}.tool-page code,.tool-card code,.tool-body pre,.tool-body code,.tool-body textarea,.tool-body input[type=text],.tool-body input[type=number],.tool-body input[type=datetime-local],.tool-body select{font-family:var(--font-code)}.tool-body input[type=text],.tool-body input[type=number],.tool-body input[type=datetime-local],.tool-body select,.tool-body textarea{font-size:.8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);box-sizing:border-box;color:var(--ink)}.tool-body input[type=text],.tool-body input[type=number],.tool-body input[type=datetime-local],.tool-body select{padding:4px 8px}.tool-body textarea{padding:.6rem .75rem;resize:vertical;max-height:32rem;overflow-y:auto;scrollbar-gutter:stable}.tool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1100px){.tool-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:860px){.tool-grid{grid-template-columns:repeat(2,1fr)}}.tool-card{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:1.3rem;color:var(--ink);transition:border-color .15s,box-shadow .15s}.tool-card:hover{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.tool-card h2{font-size:1rem;font-weight:600;margin:0 0 .35rem}.tool-card p{color:var(--ink-mid);font-size:.9rem;margin:0}.tool-card p,.tool-card code{overflow-wrap:anywhere}.tool-body{max-width:none}.jq-tool{border:1px solid var(--border);border-radius:8px;padding:1.5rem;background:var(--bg-subtle)}.jq-tool-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}@media(max-width:640px){.jq-tool-row{grid-template-columns:1fr}}.jq-tool-col{display:flex;flex-direction:column}.jq-tool label,.jq-filter-row label{font-size:.78rem;color:var(--ink-dim);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.05em}#jq-input,#jq-output,#jq-filter{font-family:var(--font-code);font-size:.875rem;background:var(--bg);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem}#jq-input{min-height:220px;max-height:32rem;resize:vertical;overflow-y:auto;scrollbar-gutter:stable}#jq-output{min-height:220px;margin:0;overflow:auto;white-space:pre-wrap;word-break:break-word}.jq-filter-row{margin-top:1.2rem;display:flex;flex-direction:column}.jq-status{font-size:.8rem;min-height:1.2rem;margin:.6rem 0 0;color:var(--ink-dim)}.jq-status-error{color:var(--warn)}.post-content code,.post-content a,.post-content li,.post-content p{overflow-wrap:break-word}.post-content pre code{overflow-wrap:normal}@media(max-width:800px){.site-main{padding:2rem 1rem 3.5rem}.site-footer{padding:1.5rem 1rem}.hero{padding:2rem 0;margin-bottom:2rem}.hero h1{font-size:1.75rem}.hero-subtitle{font-size:1rem}.section-header{margin-bottom:1.75rem;padding-bottom:1.1rem}.post-header h1{font-size:1.55rem}.post-content{font-size:1rem}.post-content h2{font-size:1.2rem;margin-top:2rem}.post-content h3{font-size:1.05rem;margin-top:1.5rem}.post-content pre{padding:.9rem 1rem;font-size:.8rem}.post-content ul,.post-content ol{padding-left:1.2rem}.post-content blockquote{padding-left:.9rem}.home-card{padding:1.2rem}.post-list-item{padding:1.2rem 0 1.2rem 2.25rem}.post-list-item h2{font-size:1.08rem}.post-list[data-list-variant]>.post-list-item:first-child h2{font-size:1.3rem;padding-right:4.25rem}.tag,.badge{padding:.3rem .7rem;font-size:.8rem}.section-nav{gap:.5rem}.post-meta{gap:.5rem .7rem}.copy-code-btn,.wp-copy-btn{padding:6px 12px;font-size:.75rem}.tool-card{padding:1.1rem}.tool-grid{grid-template-columns:1fr}.tool-body input[type=text],.tool-body input[type=number],.tool-body input[type=datetime-local],.tool-body select,.tool-body textarea{font-size:16px;max-width:100%}.tool-body input[type=text],.tool-body input[type=number],.tool-body input[type=datetime-local],.tool-body select{padding:8px 10px}.tool-body button{min-height:40px}.tool-body code:not(pre code){overflow-wrap:anywhere}.tool-body pre,.tool-body table{max-width:100%;overflow-x:auto}.tool-body table{display:block}}.maintenance-screen[data-astro-cid-37fxchfa]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.maintenance-card[data-astro-cid-37fxchfa]{max-width:28rem;text-align:center}.maintenance-kicker[data-astro-cid-37fxchfa]{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 1rem}.maintenance-card[data-astro-cid-37fxchfa] h1[data-astro-cid-37fxchfa]{font-size:1.6rem;margin:0 0 .75rem;color:var(--ink)}.maintenance-card[data-astro-cid-37fxchfa] p[data-astro-cid-37fxchfa]{color:var(--ink-mid);line-height:1.6;margin:0}
