:root{--primary:#d1bef0;--on-primary:#1f1330;--secondary:#fbfafd;--accent:#6f55a0;--slot:#d1bef06b;--background:#f8f5fc;--surface:#fff;--surface-variant:#e9e1f8;--on-surface:#1e1a24;--on-surface-variant:#6b6478;--outline:#e4dbf3;--ink:#9a90ae;--paper:#f5f1fb;--glass:#ffffffdb;--shadow:0 2px 8px #281c4014;--shadow-lifted:0 18px 48px #281c4024;--not-started:#9e9e9e;--in-progress:#3d9be9;--completed:#1e9e58;--radius-card:22px;--radius-kpi:18px;--radius-tile:16px;--radius-sheet:26px;--radius-bar:32px;--radius-control:999px;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--script:"Caveat", var(--sans);--gutter:20px;--measure:1120px;--reading-measure:68ch}@media (prefers-color-scheme:dark){:root{--primary:#d1bef0;--on-primary:#1f1330;--secondary:#ebe3f8;--accent:#d1bef0;--slot:#d1bef02e;--background:#161418;--surface:#1e1b22;--surface-variant:#322c3e;--on-surface:#efeaf5;--on-surface-variant:#a49cb2;--outline:#2f2939;--ink:#8a8199;--paper:#221e29;--glass:#1e1b22e0;--shadow:0 2px 8px #00000080;--shadow-lifted:0 18px 48px #0000008c;--not-started:#b0b0b0;--in-progress:#64b5f6;--completed:#34c36f}}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Caveat;src:url(/fonts/Caveat-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Caveat;src:url(/fonts/Caveat-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--background);color:var(--on-surface);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.15}p{margin:0}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}img{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.shell{width:100%;max-width:var(--measure);padding-inline:var(--gutter);margin-inline:auto}.skip{z-index:100;background:var(--surface);border-radius:var(--radius-control);padding:10px 16px;position:absolute;top:0;left:-9999px}.skip:focus{left:var(--gutter);top:10px}.chrome{z-index:20;background:var(--glass);backdrop-filter:blur(18px);border-bottom:1px solid var(--outline);position:sticky;top:0}.chrome__inner{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.wordmark{align-items:center;line-height:0;display:inline-flex}.wordmark img{width:auto;height:34px}.languages{position:relative}.languages__summary{border:1px solid var(--outline);border-radius:var(--radius-control);background:var(--surface);min-height:40px;color:var(--on-surface);font:inherit;cursor:pointer;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;list-style:none;display:inline-flex}.languages__summary::-webkit-details-marker{display:none}.languages__summary svg{width:16px;height:16px;color:var(--on-surface-variant)}.languages__menu{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius-kpi);min-width:190px;box-shadow:var(--shadow-lifted);margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);right:0}.languages__link{border-radius:var(--radius-control);color:var(--on-surface);justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;font-size:14px;text-decoration:none;display:flex}.languages__link:hover{background:var(--slot)}.languages__link[aria-current=true]{background:var(--slot);font-weight:600}.languages__code{font-family:var(--mono);text-transform:uppercase;color:var(--on-surface-variant);font-size:11px}.hero{padding-block:clamp(48px,8vw,96px) clamp(40px,6vw,72px);position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(closest-side, var(--slot), transparent);pointer-events:none;height:780px;position:absolute;inset:-40% 30% auto -20%}.hero__inner{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(32px,6vw,64px);display:grid;position:relative}.hero__title{font-family:var(--script);letter-spacing:0;text-wrap:balance;font-size:clamp(42px,6.4vw,72px);font-weight:700;line-height:1.04}.hero__lead{max-width:54ch;color:var(--on-surface-variant);margin-top:20px;font-size:clamp(16px,1.3vw,18px)}.hero__note{font-family:var(--mono);letter-spacing:.02em;color:var(--on-surface-variant);margin-top:18px;font-size:12px}.stores{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.store{border-radius:var(--radius-control);background:var(--primary);min-height:56px;color:var(--on-primary);border:1px solid #0000;align-items:center;gap:12px;padding:0 22px 0 18px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.store svg{flex:none;width:22px;height:22px}.store--pending{background:var(--surface);border-color:var(--outline);color:var(--on-surface-variant);cursor:default}.store__soon{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-control);background:var(--surface-variant);color:var(--on-surface-variant);white-space:nowrap;padding:3px 8px;font-size:10px;font-weight:600}.section{padding-block:clamp(48px,7vw,88px)}.section__label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}.section__title{text-wrap:balance;max-width:22ch;margin-top:12px;font-size:clamp(28px,3.4vw,40px)}.features{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:40px;display:grid}.feature{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:24px}.feature__icon{border-radius:var(--radius-tile);background:var(--slot);width:44px;height:44px;color:var(--accent);place-items:center;display:grid}.feature__icon svg{width:22px;height:22px}.feature__title{margin-top:18px;font-size:19px;font-weight:600}.feature__body{color:var(--on-surface-variant);margin-top:8px;font-size:15px}.promise{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius-sheet);box-shadow:var(--shadow);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;padding:clamp(28px,4vw,48px);display:grid}.promise__body{max-width:58ch;color:var(--on-surface-variant);margin-top:14px}.button{border-radius:var(--radius-control);border:1px solid var(--outline);background:var(--surface);min-height:48px;color:var(--on-surface);white-space:nowrap;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.button:hover{background:var(--slot)}.button--filled{background:var(--primary);color:var(--on-primary);border-color:#0000;font-weight:600}.button--filled:hover{background:var(--primary);filter:brightness(.97)}.footer{border-top:1px solid var(--outline);margin-top:clamp(32px,5vw,64px);padding-block:40px 48px}.footer__inner{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:32px;display:grid}.footer__heading{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-surface-variant);font-size:11px;font-weight:600}.footer__list{gap:9px;margin:14px 0 0;padding:0;font-size:15px;list-style:none;display:grid}.footer__list a{color:var(--on-surface);text-decoration:none}.footer__list a:hover{color:var(--accent);text-decoration:underline}.footer__publisher{color:var(--on-surface-variant);margin-top:16px;font-size:14px}.doc{padding-block:clamp(36px,5vw,64px) clamp(24px,4vw,48px)}.doc__shell{max-width:var(--reading-measure);margin-inline:auto}.doc__title{font-family:var(--script);font-size:clamp(34px,5vw,52px);font-weight:700;line-height:1.06}.doc__body{margin-top:28px;font-size:17px;line-height:1.7}.doc__body h2{margin-top:40px;font-size:22px}.doc__body h3{margin-top:28px;font-size:18px}.doc__body p,.doc__body ul,.doc__body ol{margin-top:14px}.doc__body ul,.doc__body ol{padding-left:22px}.doc__body li{margin-top:6px}.doc__body li::marker{color:var(--accent)}.doc__body strong{font-weight:600}.doc__body hr{border:0;border-top:1px solid var(--outline);margin-top:36px}.doc__body code{font-family:var(--mono);font-size:.9em}.doc__back{margin-top:44px}.doc__siblings{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.chip{border-radius:var(--radius-control);border:1px solid var(--outline);background:var(--surface);min-height:38px;color:var(--on-surface);align-items:center;padding:0 16px;font-size:14px;text-decoration:none;display:inline-flex}.chip:hover{background:var(--slot)}.chip[aria-current=page]{background:var(--primary);color:var(--on-primary);border-color:#0000;font-weight:600}.blank{text-align:center;place-items:center;padding-block:clamp(72px,14vw,160px);display:grid}.blank__title{font-family:var(--script);font-size:clamp(36px,6vw,56px);font-weight:700}.blank__body{max-width:44ch;color:var(--on-surface-variant);margin-top:12px}.blank .button{margin-top:28px}@media (width<=1000px){.features{grid-template-columns:repeat(2,minmax(0,1fr))}.hero__inner{grid-template-columns:minmax(0,1fr)}.hero__art{justify-self:center}.promise{grid-template-columns:minmax(0,1fr)}}@media (width<=680px){:root{--gutter:16px}body{font-size:16px}.features{grid-template-columns:minmax(0,1fr)}.footer__inner{grid-template-columns:minmax(0,1fr);gap:28px}.store{flex:100%;gap:10px;padding-inline:16px;font-size:14px}}
