:root{--north-_c-primary:#1bf2d4;--north-_c-text:#e1e0fe;--north-_c-primary-contrast:#080318;--north-_c-header-bg:#060016;--north-_c-bg:#09031b;--north-_c-surface:#100b24;--north-_c-border:#1c1837;--north-_c-header-text:#fffaff;--north-_c-heading:#fffaff;--north-_c-footer-bg:#060016;--north-_c-muted:#7e81ab;--north-_c-footer-text:#7e81ab;--north-_c-link-hover:#5efae5;--north-_c-accent:#ff3896;--north-_c-primary-hover:#5efae5;--north-_c-link:#1bf2d4;--north-container:1320px;--north-lh:1.6;--north-radius:4px;--north-font-heading:'Inter',system-ui,-apple-system,sans-serif;--north-font-body:'Lora',system-ui,-apple-system,sans-serif;--north-fs-base:16px}html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,*::before,*::after{box-sizing:inherit}body.north-theme{margin:0;background:var(--north-_c-bg);color:var(--north-_c-text);font-family:var(--north-font-body);font-size:var(--north-fs-base);line-height:var(--north-lh);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.north-theme img{max-width:100%;height:auto}body.north-theme a{color:var(--north-_c-link);text-decoration:underline;text-underline-offset:.15em;transition:color .15s ease}body.north-theme a:hover,body.north-theme a:focus{color:var(--north-_c-link-hover)}body.north-theme :focus-visible{outline:2px solid var(--north-_c-primary);outline-offset:2px}body.north-theme #page,body.north-theme .site-content,body.north-theme .ast-container,body.north-theme #primary,body.north-theme .content-area,body.north-theme .entry-content{max-width:none;padding:0;margin:0;background:transparent !important;box-shadow:none}body.north-theme #ast-scroll-top,body.north-theme .ast-scroll-top-icon{display:none}body.north-theme button.north-menu-trigger,body.north-theme button.north-back-up,body.north-theme button.north-btn{box-shadow:none;text-shadow:none;-webkit-appearance:none;appearance:none}body.north-theme .north-boundary{width:100%;max-width:var(--north-container);margin:0 auto;padding:0 1.25rem}body.north-theme .north-bypass-link{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}body.north-theme .north-bypass-link:focus{left:1rem;top:1rem;width:auto;height:auto;padding:.5rem 1rem;background:var(--north-_c-primary);color:var(--north-_c-primary-contrast);z-index:9999}body.north-theme .north-core-pane{min-height:60vh;padding:2.5rem 0;color:var(--north-_c-text);background:transparent !important}body.north-theme .north-page-region{padding:0}body.north-theme .north-content-piece{max-width:1180px;margin:0 auto}body.north-theme .north-single-header{margin-bottom:2rem}body.north-theme .north-main-title{font-family:var(--north-font-heading);font-size:clamp(1.75rem,1rem+2.5vw,2.75rem);line-height:1.15;color:var(--north-_c-heading);margin:0 0 .5rem;letter-spacing:-.02em;text-align:left}body.north-theme .north-writeup-body{color:var(--north-_c-text)}body.north-theme .north-writeup-body h1,body.north-theme .north-writeup-body h2,body.north-theme .north-writeup-body h3,body.north-theme .north-writeup-body h4,body.north-theme .north-writeup-body h5,body.north-theme .north-writeup-body h6{font-family:var(--north-font-heading);color:var(--north-_c-heading);line-height:1.25;margin:2.5rem 0 1rem;letter-spacing:-.01em}body.north-theme .north-writeup-body h1,body.north-theme .north-writeup-body h2{text-align:left}body.north-theme .north-writeup-body h3,body.north-theme .north-writeup-body h4,body.north-theme .north-writeup-body h5,body.north-theme .north-writeup-body h6{text-align:left}body.north-theme .north-writeup-body h2{font-size:1.875rem}body.north-theme .north-writeup-body h3{font-size:1.375rem}body.north-theme .north-writeup-body h4{font-size:1.125rem}body.north-theme .north-writeup-body p{margin:0 0 1.25rem;text-align:left}body.north-theme .north-writeup-body ul,body.north-theme .north-writeup-body ol{margin:0 0 1.5rem;padding-left:1.5rem}body.north-theme .north-writeup-body li{margin-bottom:.5rem}body.north-theme .north-writeup-body strong{color:var(--north-_c-heading)}body.north-theme .north-writeup-body blockquote{margin:2rem 0;padding:1.25rem 1.5rem;border-left:3px solid var(--north-_c-primary);background:var(--north-_c-surface,#100b24);color:var(--north-_c-muted);font-style:italic;border-radius:0 var(--north-radius) var(--north-radius) 0}body.north-theme .north-writeup-body img{border-radius:11px;margin:.5rem auto;display:block;max-width:100%;height:auto;padding:3px;border:2px solid var(--north-_c-primary);box-sizing:border-box}body.north-theme .north-writeup-body p:has(>img:only-child){margin:0}body.north-theme .north-writeup-body table{width:100%;border-collapse:collapse;margin:2rem 0;background:var(--north-_c-surface,#100b24);color:var(--north-_c-text);border-radius:var(--north-radius);overflow:hidden;border-top:1px solid var(--north-_c-border);border-right:1px solid var(--north-_c-border);border-bottom:1px solid var(--north-_c-border);border-left:1px solid var(--north-_c-border)}body.north-theme .north-writeup-body table th,body.north-theme .north-writeup-body table td{padding:.9rem 1rem;text-align:left;color:var(--north-_c-text);background:transparent;border-top:0;border-right:0;border-left:0;border-bottom:1px solid var(--north-_c-border)}body.north-theme .north-writeup-body table th{background:var(--north-_c-surface);color:var(--north-_c-heading);font-family:var(--north-font-heading);font-weight:700}body.north-theme .north-writeup-body table tr:last-child td{border-bottom:0}body.north-theme .north-table-scroll{width:100%;margin:2rem 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--north-radius)}body.north-theme .north-table-scroll>table{margin:0;border-radius:0}@media(max-width:700px){body.north-theme .north-table-scroll>table{min-width:560px}body.north-theme .north-table-scroll{background:linear-gradient(to right,var(--north-_c-surface,#100b24) 30%,transparent),linear-gradient(to right,transparent,var(--north-_c-surface,#100b24) 70%) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.15),transparent),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.15),transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}}body.north-theme .north-writeup-body details{background:var(--north-_c-surface,#100b24);border:1px solid var(--north-_c-border);border-radius:var(--north-radius);margin-bottom:.75rem;overflow:hidden}body.north-theme .north-writeup-body details>summary{cursor:pointer;padding:1rem 1.25rem;font-family:var(--north-font-heading);font-weight:600;color:var(--north-_c-heading);list-style:none;position:relative;padding-right:2.5rem}body.north-theme .north-writeup-body details>summary::-webkit-details-marker{display:none}body.north-theme .north-writeup-body details>summary::after{content:'+';position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);font-size:1.25rem;color:var(--north-_c-primary);transition:transform .15s ease}body.north-theme .north-writeup-body details[open]>summary::after{content:'−'}body.north-theme .north-writeup-body details>*:not(summary){padding:0 1.25rem 1.25rem}body.north-theme .north-btn,body.north-theme button.north-btn,body.north-theme a.north-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;border-radius:var(--north-radius);text-decoration:none;font-weight:600;border:0;cursor:pointer;background:transparent;color:inherit;transition:background .15s ease,transform .1s ease}body.north-theme .north-btn--primary,body.north-theme button.north-btn--primary,body.north-theme a.north-btn--primary{background:var(--north-_c-primary);color:var(--north-_c-primary-contrast)}body.north-theme .north-btn--primary:hover,body.north-theme button.north-btn--primary:hover,body.north-theme a.north-btn--primary:hover{background:var(--north-_c-primary-hover);color:var(--north-_c-primary-contrast);transform:translateY(-1px)}body.north-theme .north-primary-menu .north-menu-list{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem;align-items:center}body.north-theme .north-primary-menu .north-menu-list a{color:var(--north-_c-header-text);text-decoration:none;font-size:.95rem;transition:color .15s ease,background-color .2s ease,border-color .15s ease}body.north-theme .north-primary-menu .north-menu-list a{font-weight:600;padding:.25rem 0;font-variant:small-caps;letter-spacing:.05em;border-bottom:1px solid transparent}body.north-theme .north-primary-menu .north-menu-list a:hover,body.north-theme .north-primary-menu .north-menu-list .current-menu-item>a{color:var(--north-_c-primary);border-bottom-color:var(--north-_c-primary)}body.north-theme .north-menu-trigger{display:none;background:transparent;border:1px solid var(--north-_c-border);color:var(--north-_c-header-text);padding:0;width:44px;height:44px;border-radius:var(--north-radius);cursor:pointer;align-items:center;justify-content:center}body.north-theme .north-menu-trigger__icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;line-height:0}body.north-theme .north-menu-trigger__icon svg{display:block;width:100%;height:100%}body.north-theme .north-menu-trigger__icon--close{display:none}body.north-theme .north-menu-trigger[aria-expanded="true"] .north-menu-trigger__icon--open{display:none}body.north-theme .north-menu-trigger[aria-expanded="true"] .north-menu-trigger__icon--close{display:inline-flex}@media(max-width:900px){body.north-theme .north-menu-trigger{display:inline-flex}body.north-theme .north-primary-menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--north-_c-header-bg);border-top:1px solid var(--north-_c-border);padding:1rem 1.25rem}body.north-theme .north-main-header{position:relative}body.north-theme .north-primary-menu.is-open{display:block}body.north-theme .north-primary-menu .north-menu-list{flex-direction:column;align-items:flex-start;gap:.25rem}body.north-theme .north-primary-menu .north-menu-list li::before,body.north-theme .north-primary-menu .north-menu-list li::after,body.north-theme .north-primary-menu .north-menu-list a::after{content:none !important;display:none !important;background:none !important}body.north-theme .north-primary-menu .north-menu-list a{display:flex !important;align-items:center;gap:.75rem;padding:.65rem 0 !important;background:transparent !important;border:0 !important;border-radius:0 !important;text-transform:none !important;font-variant:normal !important;font-style:normal !important;letter-spacing:0 !important;font-weight:500 !important;font-size:1rem !important;line-height:1.4 !important;text-shadow:none !important;color:var(--north-_c-header-text)}body.north-theme .north-primary-menu .north-menu-list a:hover,body.north-theme .north-primary-menu .north-menu-list .current-menu-item>a{color:var(--north-_c-primary) !important;background:transparent !important}body.north-theme .north-primary-menu .north-menu-list a::before{content:'–' !important;flex:0 0 auto;display:inline-flex !important;align-items:center;justify-content:center;min-width:1em;line-height:1;color:var(--north-_c-primary);font-weight:600;opacity:.85;background:none !important;position:static !important;transform:none !important}body.north-theme .north-branding .custom-logo{max-height:36px;max-width:calc(100vw - 120px)}body.north-theme .north-site-name-text{font-size:1.05rem}}body.north-theme .north-lead-bottom{background:var(--north-_c-footer-bg);color:var(--north-_c-footer-text);padding:2.5rem 0 2rem;margin-top:0;border-top:1px solid var(--north-_c-border)}body.north-theme .north-ftr-pack{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.5rem;text-align:center}body.north-theme .north-ftr-text{font-size:.9rem;color:var(--north-_c-footer-text);text-align:center}body.north-theme .north-ftr-text a{color:var(--north-_c-footer-text)}body.north-theme button.north-back-up{position:fixed;right:1.25rem;bottom:1.25rem;width:44px;height:44px;min-width:0;padding:0;margin:0;border:0;border-radius:var(--north-radius);background:var(--north-_c-primary);color:var(--north-_c-primary-contrast);box-shadow:0 6px 24px rgba(0,0,0,.18);display:none;align-items:center;justify-content:center;cursor:pointer;line-height:0;z-index:50;transition:transform .2s ease,background .2s ease}body.north-theme button.north-back-up.is-visible{display:inline-flex}body.north-theme button.north-back-up:hover{background:var(--north-_c-primary-hover);transform:translateY(-2px)}body.north-theme button.north-back-up svg{width:20px;height:20px;color:var(--north-_c-primary-contrast)}body.north-theme .north-byline-top{display:flex;flex-direction:column;align-items:center;gap:8px;margin:14px 0 6px;text-align:center}body.north-theme .north-byline-top-avatar{width:64px;height:64px;border-radius:50%;background-size:cover;background-position:center;background-color:var(--north-_c-surface);border:1px solid var(--north-_c-border);flex:0 0 64px}body.north-theme .north-byline-top-name{font-size:1rem;font-weight:600;color:var(--north-_c-text);line-height:1.3}body.north-theme .north-single-header{margin-bottom:32px !important}body.north-theme .north-single-header>*{margin:0 !important}body.north-theme .north-single-header>*+*{margin-top:12px !important}body.north-theme .north-single-header>h1+*{margin-top:32px !important}body.north-theme .north-byline-top{gap:12px !important}body.north-theme .north-meta-pill-wrap{text-align:center !important}body.north-theme .north-writeup-body{padding-top:0 !important;margin-top:0 !important}body.north-theme .north-writeup-body>*:first-child,body.north-theme .north-writeup-body>*:first-child>*:first-child,body.north-theme .north-writeup-body>*:first-child>*:first-child>*:first-child{margin-top:0 !important;padding-top:0 !important}body.north-theme .north-meta-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:4px;background:var(--north-_c-surface);color:var(--north-_c-text);font-size:.875rem;line-height:1.2;border:1px solid var(--north-_c-border);vertical-align:middle}body.north-theme .north-meta-pill-icon{flex:0 0 16px;width:16px;height:16px;color:var(--north-_c-primary)}body.north-theme .north-meta-pill-label{font-weight:600}body.north-theme .north-meta-pill-date{font-weight:400;color:var(--north-_c-muted)}body.north-theme .north-main-header{background:var(--north-_c-header-bg);color:var(--north-_c-header-text);border-bottom:1px solid var(--north-_c-border)}body.north-theme .north-main-header.is-sticky{position:sticky;top:0;z-index:100;backdrop-filter:blur(8px)}body.north-theme .north-head-cluster{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.86rem 0}@media(min-width:901px){body.north-theme .north-h-v5{padding:0}body.north-theme .north-h-v5 .north-h-band{padding:.65rem 0}body.north-theme .north-h-v5 .north-h-band--top{background:var(--north-_c-header-bg);color:var(--north-_c-header-text)}body.north-theme .north-h-v5 .north-h-band--bottom{background:var(--north-_c-surface,#100b24);color:var(--north-_c-text);border-top:1px solid var(--north-_c-border)}body.north-theme .north-h-v5 .north-h-band-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.86rem 0}body.north-theme .north-h-v5 .north-h-band--bottom .north-primary-menu .north-menu-list{justify-content:center}body.north-theme .north-h-v5 .north-h-band--bottom .north-primary-menu .north-menu-list a{color:var(--north-_c-text)}}@media(max-width:900px){body.north-theme .north-main-header{position:relative}body.north-theme .north-head-cluster{flex-direction:row !important;align-items:center !important;justify-content:space-between !important;gap:1rem}body.north-theme .north-menu-trigger{position:absolute;right:1.25rem;top:50%;transform:translateY(-50%)}body.north-theme .north-h-v5 .north-h-band--bottom{display:none}body.north-theme .north-h-v6 .north-h-nav-left,body.north-theme .north-h-v6 .north-h-nav-right{display:none}body.north-theme .north-h-v6 .north-head-cluster{display:flex !important}body.north-theme .north-h-v4 .north-h-divider{display:none}body.north-theme .north-h-v7 .north-h-v7-label{display:none}}body.north-theme .north-branding .custom-logo-link{display:inline-block;max-width:100%}body.north-theme .north-branding .custom-logo{max-height:48px;width:auto;height:auto;max-width:100%}body.north-theme .north-site-name-text{font-family:var(--north-font-heading);font-size:1.25rem;font-weight:700;color:var(--north-_c-header-text);text-decoration:none;letter-spacing:-.01em}body.north-theme .north-site-name-text:hover{color:var(--north-_c-primary)}body.north-theme .north-error-404{padding:4rem 0;text-align:center}body.north-theme .north-error-inner{max-width:600px}body.north-theme .north-error-code{font-family:var(--north-font-heading);font-size:clamp(5rem,4rem+8vw,9rem);font-weight:800;line-height:1;color:var(--north-_c-primary);margin-bottom:1rem;letter-spacing:-.04em}body.north-theme .north-error-title{font-family:var(--north-font-heading);font-size:1.75rem;margin:0 0 .75rem;color:var(--north-_c-heading)}body.north-theme .north-error-text{color:var(--north-_c-muted);margin:0 0 2rem}body.north-theme .north-bio-panel-title+.north-bio-panel{margin-top:14px}body.north-theme .north-bio-panel{margin:32px 0 0;padding:22px 24px;background:var(--north-_c-surface);border:1px solid var(--north-_c-border);border-radius:8px;color:var(--north-_c-text)}body.north-theme .north-bio-panel-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}body.north-theme .north-bio-panel-avatar{width:64px;height:64px;border-radius:50%;background-size:cover;background-position:center;background-color:var(--north-_c-bg);flex:0 0 64px}body.north-theme .north-bio-panel-meta{display:flex;flex-direction:column;gap:2px;min-width:0}body.north-theme .north-bio-panel-name{font-size:1.125rem;font-weight:700;color:var(--north-_c-heading);line-height:1.25}body.north-theme .north-bio-panel-role{font-size:.875rem;color:var(--north-_c-primary);line-height:1.3}body.north-theme .north-bio-panel-bio{font-size:.95rem;line-height:1.6;color:var(--north-_c-text)}body.north-theme .north-bio-panel-bio p{margin:0 0 .6em}body.north-theme .north-bio-panel-bio p:last-child{margin-bottom:0}body.north-theme .north-bio-panel-links{display:flex;align-items:center;gap:10px;margin-top:14px}body.north-theme .north-bio-panel-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--north-_c-bg);color:var(--north-_c-text);text-decoration:none;transition:background .15s ease,color .15s ease}body.north-theme .north-bio-panel-link:hover,body.north-theme .north-bio-panel-link:focus{background:var(--north-_c-primary);color:var(--north-_c-primary-contrast)}