:root{--c-bg:#fff;--c-bg-soft:#f6f7fb;--c-bg-elev:#fff;--c-text:#0b0f1a;--c-text-soft:#4b5468;--c-text-muted:#7a8294;--c-border:#e6e8ef;--c-border-soft:#eef0f5;--c-primary:#5b5bf6;--c-primary-dark:#4444e8;--c-primary-soft:#eef0ff;--c-accent:#0fb8a6;--c-accent-soft:#e3faf7;--c-warn:#f59e0b;--c-error:#ef4444;--c-success:#10b981;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:22px;--r-2xl:28px;--sh-sm:0 1px 2px #0b0f1a0d;--sh-md:0 4px 14px #0b0f1a12;--sh-lg:0 14px 40px #0b0f1a1a;--fs-1:clamp(2rem, 1.4rem + 2.5vw, 3.4rem);--fs-2:clamp(1.6rem, 1.15rem + 1.8vw, 2.4rem);--fs-3:clamp(1.3rem, 1.05rem + 1.2vw, 1.8rem);--fs-4:1.15rem;--fs-body:1.0625rem;--fs-small:.92rem;--container:1140px;--header-h:68px;--t-fast:.15s cubic-bezier(.4,0,.2,1);--t-base:.24s cubic-bezier(.4,0,.2,1);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--c-bg:#0a0c14;--c-bg-soft:#11141e;--c-bg-elev:#161a26;--c-text:#eef1f7;--c-text-soft:#b6bdcc;--c-text-muted:#8c93a4;--c-border:#232838;--c-border-soft:#1b1f2c;--c-primary:#7d7dff;--c-primary-dark:#6464ff;--c-primary-soft:#1c1f3a;--c-accent:#2ad4be;--c-accent-soft:#11302c;--sh-sm:0 1px 2px #0000004d;--sh-md:0 4px 14px #0006;--sh-lg:0 14px 40px #0000008c}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--c-text);background:var(--c-bg);flex-direction:column;min-height:100vh;margin:0;line-height:1.65;display:flex}img,svg,video{max-width:100%;height:auto;display:block}a{color:var(--c-primary);transition:color var(--t-fast);text-decoration:none}a:hover{color:var(--c-primary-dark);text-decoration:underline}h1,h2,h3,h4,h5,h6{letter-spacing:-.012em;color:var(--c-text);margin:0 0 .5em;font-weight:700;line-height:1.22}h1{font-size:var(--fs-1);letter-spacing:-.02em;font-weight:800}h2{font-size:var(--fs-2)}h3{font-size:var(--fs-3)}h4{font-size:var(--fs-4)}p{color:var(--c-text-soft);margin:0 0 1em}p:last-child{margin-bottom:0}button{font-family:inherit;font-size:inherit}::selection{background:var(--c-primary);color:#fff}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:4px}.wrap{width:100%;max-width:var(--container);margin:0 auto;padding:0 1.25rem}.section{padding:clamp(2.5rem,6vw,5rem) 0}.section-soft{background:var(--c-bg-soft)}.skip-link{background:var(--c-primary);color:#fff;z-index:100;padding:.5rem 1rem;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}.btn{border-radius:var(--r-md);cursor:pointer;transition:transform var(--t-fast), background var(--t-fast), color var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.55rem;padding:.8rem 1.4rem;font-size:1rem;font-weight:600;line-height:1.2;display:inline-flex;text-decoration:none!important}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--c-primary);color:#fff;box-shadow:0 6px 18px #5b5bf64d}.btn-primary:hover{background:var(--c-primary-dark);color:#fff}.btn-ghost{color:var(--c-text);border-color:var(--c-border);background:0 0}.btn-ghost:hover{background:var(--c-bg-soft);color:var(--c-text);border-color:var(--c-text-soft)}.btn-block{justify-content:center;width:100%}.card{background:var(--c-bg-elev);border:1px solid var(--c-border);border-radius:var(--r-lg);transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);padding:1.5rem}.card:hover{box-shadow:var(--sh-md);transform:translateY(-3px)}.card-link{color:inherit;text-decoration:none;display:block}.card-link:hover{border-color:var(--c-primary);text-decoration:none}.field{margin-bottom:1rem}.field label{color:var(--c-text);font-weight:600;font-size:var(--fs-small);margin-bottom:.35rem;display:block}.field .hint{color:var(--c-text-muted);margin-top:.25rem;font-size:.82rem}.input,select,textarea{border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-bg);width:100%;color:var(--c-text);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:.75rem .95rem;font-family:inherit;font-size:1rem}.input:focus,select:focus,textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft);outline:none}textarea{resize:vertical;min-height:120px}.row{gap:1rem;display:grid}.row-2{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.calc{grid-template-columns:minmax(0,1fr);gap:1.5rem;display:grid}@media (width>=880px){.calc{grid-template-columns:1fr 1fr}}.calc-panel{background:var(--c-bg-elev);border:1px solid var(--c-border);border-radius:var(--r-xl);box-shadow:var(--sh-sm);padding:1.75rem}.calc-panel h2{margin-bottom:1.1rem;font-size:1.4rem}.result{gap:1rem;display:grid}.result-key{background:var(--c-primary-soft);border-radius:var(--r-md);gap:.25rem;padding:1rem 1.2rem;display:grid}.result-key .label{color:var(--c-text-soft);font-size:.82rem;font-weight:600}.result-key .value{color:var(--c-primary-dark);font-size:1.4rem;font-weight:700}.result-row{border-bottom:1px dashed var(--c-border);justify-content:space-between;gap:1rem;padding:.65rem .25rem;font-size:.98rem;display:flex}.result-row:last-child{border-bottom:none}.result-row .lbl{color:var(--c-text-soft)}.result-row .val{color:var(--c-text);font-weight:600}.tag{background:var(--c-accent-soft);color:var(--c-accent);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:.2rem .7rem;font-size:.78rem;font-weight:700;display:inline-block}.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;display:grid}.hero{background:radial-gradient(circle at 12% -10%,#5b5bf638,#0000 55%),radial-gradient(circle at 88% 5%,#0fb8a62e,#0000 60%),radial-gradient(circle at 50% 110%,#5b5bf61a,#0000 60%);padding:clamp(3rem,8vw,6rem) 0 clamp(2rem,5vw,4rem);position:relative;overflow:hidden}.hero:before,.hero:after{content:"";pointer-events:none;z-index:0;filter:blur(60px);opacity:.55;border-radius:50%;position:absolute}.hero:before{background:radial-gradient(circle,#5b5bf68c,#0000 65%);width:360px;height:360px;top:-120px;left:-80px}.hero:after{background:radial-gradient(circle,#0fb8a673,#0000 65%);width:420px;height:420px;top:-60px;right:-120px}.hero>*{z-index:1;position:relative}@media (prefers-reduced-motion:no-preference){.hero:before{animation:14s ease-in-out infinite alternate heroFloat}.hero:after{animation:18s ease-in-out infinite alternate-reverse heroFloat}}@keyframes heroFloat{0%{transform:translate(0,0)}to{transform:translate(20px,30px)}}.hero h1{max-width:18ch}.hero p.lede{color:var(--c-text-soft);max-width:60ch;margin:0 0 1.5rem;font-size:1.15rem}.hero-cta{flex-wrap:wrap;gap:.75rem;display:flex}.prose{max-width:70ch;margin:0 auto}.prose h2{margin-top:2.2em}.prose h3{margin-top:1.8em}.prose ul,.prose ol{color:var(--c-text-soft);margin:0 0 1em;padding-left:1.4em}.prose li{margin-bottom:.35em}.prose blockquote{border-left:4px solid var(--c-primary);background:var(--c-bg-soft);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--c-text);margin:1.5em 0;padding:1em 1.2em}.tbl{border-collapse:collapse;border:1px solid var(--c-border);border-radius:var(--r-md);width:100%;font-size:.98rem;overflow:hidden}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--c-border);padding:.7rem .9rem}.tbl th{background:var(--c-bg-soft);font-weight:700}.tbl tr:last-child td{border-bottom:none}.faq details{border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-bg-elev);margin-bottom:.65rem;overflow:hidden}.faq summary{cursor:pointer;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--c-primary);font-size:1.4rem}.faq details[open] summary:after{content:"−"}.faq details[open] summary{border-bottom:1px solid var(--c-border)}.faq .ans{color:var(--c-text-soft);padding:1rem 1.1rem}.muted{color:var(--c-text-muted)}.center{text-align:center}.mt-0{margin-top:0}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-5{margin-top:3rem}.mb-0{margin-bottom:0}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.between{justify-content:space-between;align-items:center}.stack>*+*{margin-top:1rem}.site-header{z-index:50;background:color-mix(in srgb, var(--c-bg) 88%, transparent);-webkit-backdrop-filter:saturate(180%)blur(10px);border-bottom:1px solid var(--c-border-soft);position:sticky;top:0}.site-header .wrap{height:var(--header-h);justify-content:space-between;align-items:center;display:flex}.brand{color:var(--c-text);letter-spacing:-.01em;align-items:center;gap:.55rem;font-size:1.1rem;font-weight:800;text-decoration:none;display:inline-flex}.brand:hover{color:var(--c-text);text-decoration:none}.brand-mark{background:linear-gradient(135deg, var(--c-primary), var(--c-accent));color:#fff;border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;font-weight:800;display:inline-flex;box-shadow:0 4px 12px #5b5bf659}.nav{align-items:center;gap:.35rem;display:flex;position:relative}.nav a{color:var(--c-text-soft);border-radius:8px;padding:.5rem .8rem;font-size:.96rem;font-weight:500}.nav a:hover,.nav a[aria-current=page]{color:var(--c-text);background:var(--c-bg-soft);text-decoration:none}.nav-toggle{display:none}.menu-btn{border:1px solid var(--c-border);cursor:pointer;width:40px;height:40px;color:var(--c-text);background:0 0;border-radius:8px;display:none}.menu-btn svg{width:20px;height:20px;margin:auto}@media (width<=860px){.menu-btn{justify-content:center;align-items:center;display:inline-flex}.nav{background:var(--c-bg-elev);border:1px solid var(--c-border);border-radius:var(--r-md);min-width:220px;box-shadow:var(--sh-md);flex-direction:column;align-items:stretch;padding:.5rem;display:none;position:absolute;top:calc(100% + 4px);right:0}.nav-toggle:checked~.nav{display:flex}.nav a{width:100%}}.dropdown{position:relative}.dropdown>a:after{content:"▾";color:var(--c-text-muted);margin-left:.25rem;font-size:.7em}.dropdown-menu{background:var(--c-bg-elev);border:1px solid var(--c-border);border-radius:var(--r-md);min-width:240px;box-shadow:var(--sh-md);z-index:60;padding:.4rem;display:none;position:absolute;top:100%;left:0}.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{display:block}.dropdown-menu a{color:var(--c-text-soft);border-radius:6px;padding:.55rem .75rem;font-size:.94rem;display:block}.dropdown-menu a:hover{background:var(--c-bg-soft);color:var(--c-text);text-decoration:none}@media (width<=860px){.dropdown-menu{box-shadow:none;border:none;min-width:auto;padding:0 0 0 .8rem;display:block;position:static}}.site-footer{background:var(--c-bg-soft);border-top:1px solid var(--c-border-soft);margin-top:auto;padding:3rem 0 1.5rem;font-size:.95rem}.foot-grid{grid-template-columns:1.5fr repeat(3,1fr);gap:2rem;margin-bottom:2rem;display:grid}@media (width<=760px){.foot-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.foot-grid{grid-template-columns:1fr}}.foot-grid h4{text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-soft);font-size:.9rem}.foot-grid ul{margin:0;padding:0;list-style:none}.foot-grid li{margin-bottom:.45rem}.foot-grid a{color:var(--c-text-soft)}.foot-grid a:hover{color:var(--c-primary)}.foot-bottom{border-top:1px solid var(--c-border-soft);color:var(--c-text-muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.25rem;font-size:.88rem;display:flex}.notice{border:1px solid var(--c-border);border-left:4px solid var(--c-warn);background:var(--c-bg-soft);border-radius:var(--r-md);color:var(--c-text-soft);padding:1rem 1.2rem;font-size:.95rem}.notice strong{color:var(--c-text)}.kbd{border:1px solid var(--c-border);font:600 .85em var(--font-mono);background:var(--c-bg-soft);color:var(--c-text);border-bottom-width:2px;border-radius:4px;padding:0 .4em;display:inline-block}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
