:root{--tech-sidebar-bg:#f8fafc;--section-card-bg:#f8fafc;--code-inline-bg:rgba(100,116,139,0.16);--sidebar-group-hover:rgba(59,130,246,0.08);--sidebar-active-bg:rgba(59,130,246,0.14);--sidebar-border:rgba(100,116,139,0.22);--sidebar-scroll-thumb:rgba(100,116,139,0.4);--nav-card-bg:#f8fafc;--nav-next-grad-a:#3b82f6;--nav-next-grad-b:#7c3aed;--toc-border:rgba(100,116,139,0.18)}.dark-theme{--tech-sidebar-bg:#1e293b;--section-card-bg:#1f2937;--code-inline-bg:rgba(148,163,184,0.22);--sidebar-group-hover:rgba(59,130,246,0.15);--sidebar-active-bg:rgba(59,130,246,0.22);--sidebar-border:rgba(148,163,184,0.2);--sidebar-scroll-thumb:rgba(148,163,184,0.4);--nav-card-bg:#1e293b;--toc-border:rgba(148,163,184,0.18)}.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:1100;transform-origin:0 50%;transform:scaleX(0);will-change:transform;pointer-events:none}.back-to-top-btn{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1050;width:44px;height:44px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,visibility .25s}.back-to-top-btn.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.tech-sidebar{position:sticky;top:var(--tech-panel-top-gap);z-index:40;width:var(--tech-sidebar-width);min-width:var(--tech-sidebar-width);max-width:var(--tech-sidebar-width);height:var(--tech-panel-max-height);overflow-y:auto;overflow-x:hidden;padding:.9rem .75rem 1.5rem;transition:width .25s ease,min-width .25s ease,max-width .25s ease,padding .25s ease,opacity .2s ease;scrollbar-gutter:stable}.tech-sidebar.is-collapsed{width:0;min-width:0;max-width:0;padding-left:0;padding-right:0;opacity:0;border-right-width:0!important;overflow:hidden}.tech-sidebar-wrap{position:sticky;top:var(--tech-panel-top-gap);height:var(--tech-panel-max-height);display:flex;align-items:stretch;z-index:40}.tech-sidebar-wrap>.tech-sidebar:not(.tech-sidebar--drawer){height:100%}.tech-sidebar__toggle{line-height:1}@media (max-width:991.98px){.tech-sidebar-wrap{position:static;height:auto;display:contents}.tech-sidebar__toggle{display:none!important}}.tech-sidebar::-webkit-scrollbar{width:6px}.tech-sidebar::-webkit-scrollbar-thumb{background:var(--sidebar-scroll-thumb);border-radius:999px}.tech-sidebar::-webkit-scrollbar-track{background:transparent}.tech-sidebar--drawer{position:fixed;left:0;transform:translateX(-100%);visibility:hidden;width:var(--tech-sidebar-width);min-width:var(--tech-sidebar-width);max-width:var(--tech-sidebar-width);height:var(--tech-panel-max-height);padding:0 0 1.5rem;box-shadow:16px 0 40px rgba(0,0,0,.18);transition:transform .3s ease,visibility .3s}.tech-sidebar--drawer.is-open{transform:translateX(0);visibility:visible}.tech-sidebar__drawer-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;position:sticky;top:0;z-index:2;background:var(--tech-sidebar-bg);border-bottom:1px solid var(--sidebar-border)}.tech-sidebar__close{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--sidebar-border);background:var(--sidebar-group-hover);color:inherit;cursor:pointer;transition:background-color .2s ease}.tech-sidebar__close:hover{background:var(--sidebar-active-bg)}.tech-sidebar__header{border-radius:14px;padding:1rem;margin-bottom:.85rem}.tech-sidebar__progress{position:relative;width:58px;height:58px;flex-shrink:0}.tech-sidebar__progress span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700}.tech-sidebar__overview{margin-bottom:.35rem}.sidebar-group{margin-bottom:.2rem}.sidebar-group__header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem .6rem;border:none;background:transparent;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;text-align:left;transition:background-color .2s ease}.sidebar-group__header:hover{background:var(--sidebar-group-hover)}.sidebar-group__chevron{flex-shrink:0;transition:transform .2s ease}.sidebar-group__chevron.is-open{transform:rotate(90deg)}.sidebar-group__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-group__count{flex-shrink:0;font-size:.68rem;font-weight:700;line-height:1;padding:.25rem .45rem;border-radius:999px}.sidebar-group__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.sidebar-group__body.is-expanded{grid-template-rows:1fr}.sidebar-group__list{overflow:hidden;min-height:0;margin:0;padding:0;list-style:none}.tech-topic-item{position:relative;display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem .5rem .75rem;border-radius:8px;font-size:.84rem;line-height:1.35;text-decoration:none;color:var(--tech-sidebar-text,inherit);transition:background-color .2s ease,color .2s ease,transform .2s ease}.tech-topic-item:hover{background:var(--sidebar-group-hover);transform:translateX(2px);text-decoration:none}.tech-topic-item__icon{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--tech-accent,#3b82f6);opacity:.7}.sidebar-group__chevron-arrow{display:inline-block;width:.5em;height:.5em;border-right:2px solid;border-bottom:2px solid;transform:rotate(45deg)}.tech-topic-item__name{min-width:0;overflow:hidden;text-overflow:ellipsis}.tech-topic-item.is-active{background:var(--sidebar-active-bg);font-weight:600;color:var(--tech-accent,#3b82f6)}.tech-topic-item.is-active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:55%;border-radius:999px;background:var(--tech-accent,#3b82f6)}.sidebar-overlay{position:fixed;inset:0;z-index:1055;background:rgba(2,6,23,.55);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-overlay.is-visible{opacity:1;pointer-events:auto}@media (max-width:991.98px){.tech-sidebar:not(.tech-sidebar--drawer){display:none}}@media (max-width:575.98px){:root{--tech-sidebar-width:min(85vw,300px)}}.topic-nav{border-top:1px solid var(--toc-border)}.topic-nav__grid{display:flex;flex-direction:column;gap:.85rem}@media (min-width:576px){.topic-nav__grid{flex-direction:row}}.topic-nav-card{flex:1 1 0;display:flex;flex-direction:column;gap:.4rem;padding:1rem 1.25rem;border:1px solid var(--toc-border);border-radius:14px;cursor:pointer;text-align:left;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.topic-nav-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}.topic-nav-card--next{position:relative;text-align:right}.topic-nav-card--next:before{content:"";position:absolute;top:0;left:1.25rem;right:1.25rem;height:3px;border-radius:0 0 6px 6px;background:linear-gradient(90deg,var(--nav-next-grad-a),var(--nav-next-grad-b))}.topic-nav-card.is-disabled{opacity:.45;cursor:not-allowed}.topic-nav-card__label{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.topic-nav-card__label--next{justify-content:flex-end}.topic-nav-card__title{font-size:.95rem;font-weight:600;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.web-jupyter-cell table,.web-jupyter-cell table tbody tr:hover,.web-jupyter-cell table tbody tr:nth-child(2n),.web-jupyter-cell table thead{background:transparent;border:none;border-radius:0;margin:0}.web-jupyter-cell pre{border:none;border-radius:0;margin:0;padding:10px 14px}.web-jupyter-cell .web-jupyter-btn:hover{filter:brightness(1.08)}.data-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;font-size:1rem;border:1px solid var(--ui-border,#e2e8f0)}.data-table thead{background:var(--data-table-grad,linear-gradient(135deg,var(--ui-primary,#2563eb) 0,var(--ui-secondary,#7c3aed) 100%));color:#fff}.data-table th{padding:.7rem 1rem;text-align:left;font-weight:600;font-size:.86rem}.data-table td{padding:.6rem 1rem;border-top:1px solid var(--ui-border,#e2e8f0);color:var(--ui-text,#334155);vertical-align:top}.data-table tbody tr:nth-child(2n){background:var(--ui-surface-soft,#f8fafc)}.data-table tbody tr:hover{background:var(--ui-hover,rgba(37,99,235,.08))}.data-table td code{background:var(--ui-hover,rgba(100,116,139,.16));border:1px solid color-mix(in srgb,var(--data-table-accent,var(--ui-primary,#2563eb)) 18%,transparent);color:var(--data-table-accent,var(--ui-primary,#2563eb));padding:.1rem .35rem;border-radius:5px;font-size:.86em;font-family:var(--font-mono,Consolas,monospace)}.tutorial-content{font-size:1rem}.tutorial-content p{line-height:1.8}.tutorial-content ol,.tutorial-content ul{padding-left:1.5rem;line-height:1.8}.tutorial-content li{margin-bottom:.3rem}.tutorial-content code{background:var(--code-inline-bg);padding:.12rem .4rem;border-radius:6px;font-size:.9em}.tutorial-content h1,.tutorial-content h2:first-of-type{font-size:clamp(1.65rem,4vw,2.35rem);line-height:1.2;font-weight:800;margin-bottom:.5rem}.tutorial-content table{border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;width:100%;font-size:1rem}.tutorial-content table:not(.table){border:1px solid var(--border-color,#e2e8f0)}.tutorial-content table:not(.table) thead{background:linear-gradient(135deg,var(--primary-color,#2563eb) 0,color-mix(in srgb,var(--primary-color,#2563eb) 55%,#ffffff) 100%);color:#fff}.tutorial-content table:not(.table) th{padding:.7rem 1rem;text-align:left;font-weight:600;font-size:.86rem;border:none;color:inherit}.tutorial-content table:not(.table)>tbody>tr:first-child th,.tutorial-content table:not(.table)>tr:first-child th{background:linear-gradient(135deg,var(--primary-color,#2563eb) 0,color-mix(in srgb,var(--primary-color,#2563eb) 55%,#ffffff) 100%);color:#fff}.tutorial-content table:not(.table) td{padding:.6rem 1rem;border-top:1px solid var(--border-color,#e2e8f0);color:var(--text-color,#334155);vertical-align:top}.tutorial-content table:not(.table) tbody tr:nth-child(2n){background:color-mix(in srgb,var(--primary-color,#2563eb) 4%,transparent)}.tutorial-content table:not(.table) tbody tr:hover{background:color-mix(in srgb,var(--primary-color,#2563eb) 8%,transparent)}.tutorial-content table:not(.table) td code{background:var(--code-inline-bg,rgba(100,116,139,.16));border:1px solid color-mix(in srgb,var(--primary-color,#2563eb) 18%,transparent);color:var(--primary-color,#2563eb);padding:.1rem .35rem;border-radius:5px;font-size:.86em;font-family:var(--font-mono,"Fira Code","JetBrains Mono",Consolas,monospace)}.dark-theme .tutorial-content table:not(.table){border-color:var(--border-color,#334155)}.dark-theme .tutorial-content table:not(.table) thead,.dark-theme .tutorial-content table:not(.table)>tbody>tr:first-child th,.dark-theme .tutorial-content table:not(.table)>tr:first-child th{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-color,#60a5fa) 88%,#0f172a) 0,color-mix(in srgb,var(--primary-color,#60a5fa) 55%,#0f172a) 100%)}.dark-theme .tutorial-content table:not(.table) td{border-top-color:var(--border-color,#334155);color:var(--text-color,#e2e8f0)}.dark-theme .tutorial-content table:not(.table) td code{background:rgba(148,163,184,.22);border-color:color-mix(in srgb,var(--primary-color,#60a5fa) 25%,transparent);color:color-mix(in srgb,var(--primary-color,#60a5fa) 85%,#ffffff)}.hdr-action{display:inline-flex!important;align-items:center!important;gap:.5rem;padding:.6rem 1.4rem!important;border-radius:999px!important;font-weight:600;font-size:.92rem;line-height:1;background-color:var(--primary-color,#2563eb)!important;border:1px solid transparent!important;box-shadow:0 6px 18px rgba(99,102,241,.22);transition:transform .25s ease,box-shadow .25s ease}.hdr-action,.hdr-action:hover{color:#ffffff!important;text-decoration:none}.hdr-action:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(99,102,241,.4)}.hdr-action--outline{color:var(--primary-color,#2563eb)!important;background-color:transparent!important;border:1px solid var(--border-color,#dbd4c9)!important;box-shadow:none!important}.hdr-action--outline:hover{color:var(--primary-color,#2563eb)!important;background:var(--card-bg,#ffffff);border-color:var(--primary-color,#2563eb)!important;box-shadow:0 8px 20px rgba(37,99,235,.16)}.dark-theme .hdr-action--outline,.dark-theme .hdr-action--outline:hover{color:var(--primary-color,#60a5fa)!important}.hdr-action--block{width:100%;justify-content:center;border-radius:14px;padding:.78rem;box-shadow:none}.hdr-mobile{animation:hp-fade-in .22s ease both}.site-logo{z-index:0;border-radius:14px}.site-logo:after{content:"";position:absolute;inset:-4px;border-radius:18px;background:var(--primary-color,#2563eb);opacity:.25;filter:blur(8px);z-index:-1;transition:opacity .3s ease}.site-brand:hover .site-logo:after{opacity:.5}.site-hamburger,.site-theme-toggle{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.site-theme-toggle:hover{transform:rotate(12deg);box-shadow:0 0 0 4px rgba(99,102,241,.14)}.site-hamburger:hover,.site-theme-toggle:hover{border-color:var(--primary-color,#2563eb)!important}.site-hamburger:hover{transform:translateY(-1px)}.tech-item{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem 1rem;border-radius:999px;font-weight:500;font-size:.8rem;line-height:1.2;white-space:nowrap;flex-shrink:0;color:var(--text-color,#1e293b);background:var(--card-bg,#ffffff);border:1px solid var(--border-color,#dbd4c9);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease,color .22s ease}.tech-item:hover{transform:translateY(-1px);border-color:var(--cat-color,var(--primary-color,#2563eb));box-shadow:0 6px 16px color-mix(in srgb,var(--cat-color,var(--primary-color)) 22%,transparent);text-decoration:none}.tech-item__dot{width:8px;height:8px;border-radius:50%;background:var(--cat-color,var(--primary-color,#2563eb));flex-shrink:0;transition:transform .22s ease,box-shadow .22s ease}.tech-item:hover .tech-item__dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--cat-color,var(--primary-color)) 18%,transparent)}.tech-item[aria-current=page]{color:#ffffff;background:var(--cat-color,var(--primary-color));border-color:transparent;box-shadow:0 6px 16px color-mix(in srgb,var(--cat-color,var(--primary-color)) 32%,transparent)}.dark-theme .tech-item[aria-current=page]{color:#0f172a}.tech-item[aria-current=page] .tech-item__dot{background:#ffffff}.dark-theme .tech-item[aria-current=page] .tech-item__dot{background:#0f172a}.tech-nav-arrow{width:34px;height:34px;min-width:34px;flex-shrink:0;border-radius:50%;border:1px solid var(--border-color,#dbd4c9);background:var(--card-bg,#ffffff);color:var(--text-muted,#64748b);position:relative;z-index:4;cursor:pointer;transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .22s ease}.dark-theme .tech-nav-arrow{color:#94a3b8}.tech-nav-arrow:hover{background:var(--primary-color,#2563eb);border-color:var(--primary-color,#2563eb);color:#ffffff;transform:scale(1.06)}.tech-scroll-wrap{position:relative;display:flex;flex:1 1 auto;min-width:0}.tech-scroll-fade{position:absolute;top:2px;bottom:2px;width:30px;pointer-events:none;z-index:3}.tech-scroll-fade--left{left:0;background:linear-gradient(to right,var(--background-color,#ffffff),transparent)}.tech-scroll-fade--right{right:0;background:linear-gradient(to left,var(--background-color,#ffffff),transparent)}.dark-theme .tech-scroll-fade--left{background:linear-gradient(to right,var(--background-color,#0f172a),transparent)}.dark-theme .tech-scroll-fade--right{background:linear-gradient(to left,var(--background-color,#0f172a),transparent)}.sidebar-group__header{transition:background-color .2s ease,transform .2s ease}.sidebar-group__header:hover{transform:translateX(2px)}.sidebar-group__header:hover .sidebar-group__title{color:var(--tech-accent,var(--primary-color))}.sidebar-group__title{transition:color .2s ease}.sidebar-group__chevron{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--sidebar-group-hover,rgba(59,130,246,.08));transition:transform .2s ease,background-color .2s ease,color .2s ease}.sidebar-group__header:hover .sidebar-group__chevron{color:var(--tech-accent,var(--primary-color));background:color-mix(in srgb,var(--tech-accent,var(--primary-color)) 16%,transparent)}.sidebar-group__count{background:var(--sidebar-group-hover,rgba(59,130,246,.08));color:var(--tech-accent,var(--primary-color))}.tech-topic-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:16px;border-radius:3px;background:var(--primary-color,#2563eb);transition:transform .22s ease}.tech-topic-item.is-active:before,.tech-topic-item:hover:before{transform:translateY(-50%) scaleY(1)}.tech-topic-item.is-active .tech-topic-item__icon{opacity:1}.tech-sidebar__progress{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--tech-accent,#3b82f6) 30%,transparent))}.tech-sidebar__close{transition:background-color .2s ease,transform .2s ease}.tech-sidebar__close:hover{transform:rotate(90deg)}.tech-sidebar::-webkit-scrollbar{width:8px}.tech-sidebar::-webkit-scrollbar-thumb{border-radius:8px}.footer{border-top:none!important}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--primary-color,#2563eb);z-index:1}.footer .social-icon{box-shadow:0 4px 12px rgba(2,6,23,.08);transition:box-shadow .25s ease,transform .25s ease}.footer .social-icon:hover{box-shadow:0 10px 22px rgba(99,102,241,.3)}.footer a:not(.btn){transition:color .2s ease,transform .2s ease}@media (min-width:992px) and (max-width:1279.98px){.hdr-action{padding:.32rem .8rem!important;font-size:.78rem!important;gap:.3rem!important;letter-spacing:-.01em}.hdr-action i,.hdr-action svg{font-size:.78rem}.tech-item{padding:.28rem .6rem!important;font-size:.7rem!important;letter-spacing:-.01em}.tech-item__dot{width:6px;height:6px}.tech-nav-arrow{width:28px;height:28px;min-width:28px}.site-logo{width:36px;height:36px}.site-logo:after{inset:-3px;border-radius:14px}.site-hamburger,.site-theme-toggle{width:34px!important;height:34px!important}}@media (min-width:768px) and (max-width:991.98px){.hdr-action{padding:.28rem .65rem!important;font-size:.72rem!important;gap:.25rem!important}.tech-item{padding:.25rem .5rem!important;font-size:.68rem!important}.tech-item__dot{width:5px;height:5px}.tech-nav-arrow{width:26px;height:26px;min-width:26px}}@media (max-width:575.98px){.hdr-action{padding:.25rem .55rem!important;font-size:.7rem!important;gap:.2rem!important}.tech-item{padding:.22rem .45rem!important;font-size:.65rem!important}.tech-item__dot{width:5px;height:5px}}.py-kw{color:#3b82f6;font-weight:600}.py-str{color:#10b981}.py-cmt{color:#6b7280;font-style:italic}.py-num{color:#f59e0b}.py-bi{color:#8b5cf6}.py-dec{color:#ec4899}.dark-theme .py-kw{color:#60a5fa}.dark-theme .py-str{color:#34d399}.dark-theme .py-cmt{color:#6b7280}.dark-theme .py-num{color:#fbbf24}.dark-theme .py-bi{color:#a78bfa}.dark-theme .py-dec{color:#f472b6}.py-syn-kw{color:#3b82f6;font-weight:600}.py-syn-str{color:#10b981}.py-syn-cmt{color:#6b7280;font-style:italic}.py-syn-num{color:#f59e0b}.py-syn-bi{color:#8b5cf6}.py-syn-dec{color:#ec4899}.dark-theme .py-syn-kw{color:#60a5fa}.dark-theme .py-syn-str{color:#34d399}.dark-theme .py-syn-cmt{color:#6b7280}.dark-theme .py-syn-num{color:#fbbf24}.dark-theme .py-syn-bi{color:#a78bfa}.dark-theme .py-syn-dec{color:#f472b6}.py-jupyter-line:hover{background:rgba(59,130,246,.04)}.dark-theme .py-jupyter-line:hover{background:rgba(59,130,246,.08)}.py-jupyter-btn:hover{filter:brightness(1.1)}.py-jupyter-code::-webkit-scrollbar{width:6px;height:6px}.py-jupyter-code::-webkit-scrollbar-thumb{border-radius:3px;background:rgba(128,128,128,.3)}.py-jupyter-output pre::-webkit-scrollbar{width:6px}.py-jupyter-output pre::-webkit-scrollbar-thumb{border-radius:3px;background:rgba(128,128,128,.3)}@keyframes hp-fade-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.footer .social-icon,.hdr-action,.hdr-action:hover,.site-hamburger,.site-theme-toggle,.tech-item,.tech-item:hover,.tech-nav-arrow,.tech-topic-item{transform:none!important}}.static-page{--sp-surface:var(--ui-surface,#ffffff);--sp-surface-alt:var(--ui-primary-soft,#eff6ff);--sp-text:var(--ui-text,#0f172a);--sp-muted:var(--ui-text-muted,#64748b);--sp-border:var(--ui-border,#e2e8f0);--sp-primary:var(--ui-primary,#2563eb);--sp-shadow:var(--ui-shadow-md,0 10px 30px rgb(15 23 42/0.08));position:relative;color:var(--sp-text);background:var(--ui-bg,#f8fafc);overflow:hidden}.static-page:before{content:"";position:absolute;inset:0 0 auto 0;height:340px;pointer-events:none;background:radial-gradient(720px 260px at 18% -40px,color-mix(in srgb,var(--sp-primary) 16%,transparent),transparent 70%),radial-gradient(620px 240px at 85% -60px,color-mix(in srgb,var(--secondary-color,#7c3aed) 14%,transparent),transparent 70%)}.static-page__inner{position:relative;z-index:1}.sp-hero{text-align:center;padding:3.5rem 0 2.25rem}.sp-hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem 1rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;background:color-mix(in srgb,var(--sp-primary) 12%,transparent);border:1px solid var(--sp-border);color:var(--sp-primary)}.sp-hero__title{margin:1rem auto .85rem;max-width:760px;font-size:clamp(1.9rem,4vw,2.9rem);font-weight:800;line-height:1.12;letter-spacing:-.02em;color:var(--sp-text)}.sp-hero__title .sp-gradient{background:linear-gradient(120deg,var(--sp-primary),var(--secondary-color,#7c3aed));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sp-hero__lead{margin:0 auto;max-width:640px;font-size:1.06rem;line-height:1.75;color:var(--sp-muted)}.sp-body{max-width:860px;margin:0 auto;padding:2.5rem clamp(1.25rem,4vw,2.75rem);background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:24px;box-shadow:var(--sp-shadow)}.sp-prose p{margin:0 0 1rem;line-height:1.85;color:var(--sp-text)}.sp-prose ol,.sp-prose ul{margin:0 0 1.25rem;padding-left:1.4rem;line-height:1.85;color:var(--sp-text)}.sp-prose li{margin-bottom:.45rem}.sp-prose li::marker{color:var(--sp-primary)}.sp-prose strong{font-weight:700;color:var(--sp-text)}.sp-prose a{color:var(--sp-primary);font-weight:600;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--sp-primary) 35%,transparent);transition:border-color .2s ease,color .2s ease}.sp-prose a:hover{border-bottom-color:var(--sp-primary)}.sp-prose h2{margin:2.25rem 0 .9rem;font-size:1.3rem;font-weight:700;line-height:1.35;color:var(--sp-text);padding-top:.25rem}.sp-prose h2:first-child{margin-top:0}.sp-prose h2:before{content:"";display:inline-block;width:.55em;height:.55em;margin-right:.55em;border-radius:4px;background:linear-gradient(135deg,var(--sp-primary),var(--secondary-color,#7c3aed));vertical-align:.06em}.sp-prose h3{margin:1.6rem 0 .6rem;font-size:1.08rem;font-weight:700;color:var(--sp-text)}.sp-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;padding:.14em .45em;border-radius:6px;color:var(--sp-primary)}.sp-prose blockquote,.sp-prose code{background:var(--ui-primary-soft,#eff6ff)}.sp-prose blockquote{margin:1.25rem 0;padding:.9rem 1.15rem;border-left:3px solid var(--sp-primary);border-radius:0 12px 12px 0;color:var(--sp-muted)}.sp-prose blockquote p:last-child{margin-bottom:0}.sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.1rem;margin-top:1.5rem}.sp-card{padding:1.4rem 1.45rem;background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:18px;box-shadow:var(--ui-shadow-sm,0 1px 2px rgb(15 23 42/.06));transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.sp-card:hover{transform:translateY(-4px);border-color:var(--sp-primary);box-shadow:var(--sp-shadow)}.sp-card__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;font-size:1.2rem;margin-bottom:.8rem;color:var(--sp-primary);background:var(--ui-primary-soft,#eff6ff)}.sp-card__title{font-size:1rem;font-weight:700;margin-bottom:.4rem;color:var(--sp-text)}.sp-card__desc{margin:0;font-size:.86rem;line-height:1.6;color:var(--sp-muted)}.sp-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:999px;font-size:.75rem;font-weight:600;color:var(--sp-primary);background:var(--ui-primary-soft,#eff6ff)}.sp-chip,.sp-contact-card{border:1px solid var(--sp-border)}.sp-contact-card{padding:1.5rem;background:var(--sp-surface);border-radius:20px;box-shadow:var(--ui-shadow-sm,0 1px 2px rgb(15 23 42/.06));transition:transform .25s ease,box-shadow .25s ease}.sp-contact-card:hover{transform:translateY(-3px);box-shadow:var(--sp-shadow)}.sp-social-link{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;color:var(--sp-primary);background:var(--ui-primary-soft,#eff6ff);border:1px solid var(--sp-border);transition:transform .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.sp-social-link:hover{transform:translateY(-3px);color:#fff;background:var(--sp-primary);border-color:var(--sp-primary);box-shadow:0 8px 18px color-mix(in srgb,var(--sp-primary) 32%,transparent)}.sp-map-frame{border:0;border-radius:16px;width:100%;height:320px;box-shadow:var(--ui-shadow-sm,0 1px 2px rgb(15 23 42/.06));filter:saturate(.9)}@media (max-width:575.98px){.sp-hero{padding:2.5rem 0 1.75rem}.sp-body{padding:1.75rem 1.15rem;border-radius:18px}}.hub-card{position:relative;height:100%;display:flex;flex-direction:column;gap:.6rem;padding:1.35rem 1.4rem;border-radius:18px;background:var(--ui-surface,#ffffff);border:1px solid var(--ui-border,#e2e8f0);text-decoration:none;--accent:var(--card-accent,var(--ui-primary,#2563eb));transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.dark-theme .hub-card{--accent:color-mix(in srgb,var(--card-accent,var(--ui-primary,#2563eb)) 58%,#cbd5e1)}.hub-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent);text-decoration:none}.hub-card__top{justify-content:space-between}.hub-card__icon,.hub-card__top{display:flex;align-items:center}.hub-card__icon{width:46px;height:46px;border-radius:13px;justify-content:center;font-size:1.45rem;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.hub-card__arrow{font-size:.95rem;color:var(--ui-text-muted,#64748b);opacity:0;transform:translateX(-6px);transition:opacity .25s ease,transform .25s ease,color .25s ease}.hub-card:hover .hub-card__arrow{opacity:1;transform:translateX(0);color:var(--accent)}.hub-card__title{font-size:1.05rem;font-weight:700;color:var(--ui-text,#0f172a)}.hub-card__desc{flex-grow:1;margin:0;color:var(--ui-text-muted,#64748b);font-size:.85rem;line-height:1.55}.hub-card__meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;padding-top:.35rem;border-top:1px solid var(--ui-border,#e2e8f0)}.hub-card__meta-value{font-size:.74rem;font-weight:700;color:var(--accent)}.hub-card__meta-label{font-size:.74rem;color:var(--ui-text-muted,#64748b)}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}