@font-face{font-family:Olilo Headline;src:url(/fonts/OliloHeadline-Light.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Olilo Headline;src:url(/fonts/OliloHeadline-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Olilo Headline;src:url(/fonts/OliloHeadline-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Olilo Text;src:url(/fonts/OliloText-Light.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Olilo Text;src:url(/fonts/OliloText-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Olilo Text;src:url(/fonts/OliloText-Bold.woff2)format("woff2");font-weight:700;font-display:swap}:root{color-scheme:light;--bg:#f6f5fa;--surface:#fff;--surface-raised:#f0eef7;--surface-sunk:#fff;--line:#dcd9e6;--line-strong:#c4c0d4;--text:#15121f;--text-muted:#55506a;--text-faint:#6f6a85;--text-fade:#8a85a0;--primary:#15121f;--primary-hover:#2a2540;--primary-ink:#fff;--accent:#63e;--accent-hover:#5326d6;--accent-ink:#fff;--accent-wash:#6633ee14;--accent-glow:#6633ee24;--lime:#c8f560;--peach:#ffcfb3;--glow:#63e;--violet-wash:#6633ee1a;--violet-edge:#63e;--violet-band:#63e;--edge:linear-gradient(#63e, #63e);--field-teal:#63e;--rings:none;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 5l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--bar-bg:#ffffffeb;--qr-bg:#fff;--add:#1f7a3d;--add-wash:#1f7a3d1a;--del:#c0262d;--del-wash:#c0262d14;--del-ink:#9b1c22;--danger-ink:#fff;--ok:var(--accent);--ok-wash:var(--accent-wash);--warn:#7a4f00;--warn-wash:#f2c94c47;--font-display:"Olilo Headline", system-ui, sans-serif;--font-body:"Olilo Text", system-ui, -apple-system, "Segoe UI", sans-serif;--font-code:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-xl:28px;--radius-lg:20px;--radius:14px;--radius-sm:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:72px;--page:1280px;--narrow:600px;--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100dvh;font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:1rem;line-height:1.55;display:flex}main{flex:1}img{max-width:100%}svg{flex:none}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}h1,h2,h3{font-family:var(--font-display);letter-spacing:0;text-wrap:balance;margin:0;font-weight:500;line-height:1.05}h1{font-size:clamp(2.4rem,7vw,4rem)}h2{font-size:clamp(1.9rem,5vw,3.25rem)}h3{letter-spacing:0;font-size:1.15rem;font-weight:700;line-height:1.2}p{text-wrap:pretty;margin:0}.fade{color:var(--text-fade)}.page{width:100%;max-width:var(--page);padding-inline:var(--space-4);margin-inline:auto}@media (width>=900px){.page{padding-inline:var(--space-7)}}.narrow{width:100%;max-width:var(--narrow);padding:var(--space-6) var(--space-4) var(--space-8);margin-inline:auto}.stack>*+*{margin-top:var(--space-4)}.stack-lg>*+*{margin-top:var(--space-6)}.row{gap:var(--space-3);justify-content:space-between;align-items:center;display:flex}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:.875rem}.code{font-family:var(--font-code);letter-spacing:.02em}.skip-link{left:var(--space-4);z-index:30;padding:var(--space-3) var(--space-4);background:var(--primary);color:var(--primary-ink);border-radius:var(--radius-sm);font-weight:700;position:absolute;top:-100px}.skip-link:focus{top:var(--space-3);color:var(--primary-ink)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header,.site-footer{--ink:#15121f;--lime:#c8f560;--peach:#ffcfb3;--violet:#63e;--chrome-muted:#b9b3cf;font-family:var(--font-body)}.site-header{z-index:20;background:var(--ink);position:sticky;top:0}.site-header .page{align-items:center;gap:var(--space-6);min-height:72px;display:flex}.nav-left,.nav-right{align-items:center;gap:var(--space-5);display:flex}.nav-right{gap:var(--space-4);margin-left:auto}.logo{align-items:center;gap:var(--space-3);color:#fff;order:-1;text-decoration:none;display:inline-flex}.logo img{width:auto;height:30px;display:block}.logo span{color:var(--chrome-muted);padding-left:var(--space-3);border-left:1px solid #ffffff4d;align-self:stretch;align-items:center;font-size:1rem;display:flex}.site-header nav a,.site-header nav button{color:#fff;font-family:inherit;font-size:1rem;text-decoration:none;position:relative}.site-header nav>a:not(.btn):after{content:"";background:var(--lime);transform-origin:0;height:3px;transition:transform .3s var(--ease-out);border-radius:2px;position:absolute;bottom:-8px;left:0;right:0;transform:scaleX(0)}.site-header nav>a:not(.btn):hover:after,.site-header nav>a[aria-current=page]:after{transform:none}.site-header nav a:hover,.site-header nav button:hover{color:#fff}.site-header .btn{min-height:44px;padding-inline:var(--space-5);background:var(--lime);color:var(--ink);font:700 1rem/1 var(--font-body);border-radius:999px}.site-header nav a.btn:hover{color:var(--ink);background:#d8fb86}.site-header nav .btn-ghost,.site-header nav .btn-ghost:hover{color:#fff;background:0 0;border-color:#ffffff4d}.site-header :focus-visible{outline-color:var(--lime)}.menu{color:#fff;display:none;position:relative}.menu>summary{cursor:pointer;border-radius:50%;place-items:center;width:44px;height:44px;list-style:none;display:grid}.menu>summary::-webkit-details-marker{display:none}.menu-panel{z-index:30;left:0;top:calc(100% + var(--space-2));min-width:220px;padding:var(--space-2);background:var(--ink);border-radius:var(--radius-lg);border:1px solid #ffffff29;display:grid;position:absolute}.menu-panel a,.menu-panel button{padding:var(--space-3) var(--space-4);border-radius:var(--radius);text-align:left}.menu-panel a:hover,.menu-panel button:hover{background:#ffffff1a}@media (width<=799px){.nav-left>:not(.menu),.nav-right>.nav-wide{display:none}.menu{order:-2;display:block}.nav-left{display:contents}.site-header .page{gap:var(--space-3)}}.site-footer{margin-top:var(--space-8);background:var(--ink);padding-block:var(--space-8) var(--space-6);color:var(--chrome-muted);font-size:.875rem}.site-footer .page>*+*{margin-top:var(--space-7)}.footer-bars{align-items:flex-end;gap:8px;height:64px;display:flex}.footer-bars i{border-radius:10px;width:20px}.footer-bars i:first-child{background:var(--peach);height:25%}.footer-bars i:nth-child(2){background:var(--lime);height:50%}.footer-bars i:nth-child(3){background:var(--violet);height:75%}.footer-bars i:nth-child(4){background:#fff;height:100%}.site-footer .page>.footer-sign{margin-top:var(--space-5);font-family:var(--font-display);letter-spacing:-.01em;color:#fff;font-size:clamp(1.9rem,5vw,3.25rem);font-weight:500;line-height:1.05}.footer-cols{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.footer-cols h2{font-family:var(--font-body);letter-spacing:0;color:#fff;margin-bottom:var(--space-4);font-size:1rem;font-weight:700}.footer-cols ul{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.site-footer a{color:var(--chrome-muted);font-size:1rem;text-decoration:none}.site-footer a:hover{color:var(--lime)}.site-footer :focus-visible{outline-color:var(--lime)}.footer-legal{padding-top:var(--space-5);gap:var(--space-2);border-top:1px solid #ffffff24;display:grid}.footer-legal img{opacity:.5;width:auto;height:40px;margin-bottom:var(--space-3)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:52px;padding:0 var(--space-5);background:var(--primary);color:var(--primary-ink);font:700 1rem/1 var(--font-body);cursor:pointer;white-space:nowrap;transition:background-color .16s var(--ease-out), transform .16s var(--ease-out), border-color .16s var(--ease-out), box-shadow .2s var(--ease-out);border:1px solid #0000;border-radius:999px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--primary-hover);color:var(--primary-ink)}.btn:active{transform:translateY(1px)}.btn:disabled{background:var(--surface-raised);color:var(--text-faint);cursor:not-allowed;border-color:var(--line)}.btn .arrow{transition:transform .2s var(--ease-out)}.btn:hover .arrow{transform:translate(3px)}.btn-block{width:100%}.btn-ghost{color:var(--text);border-color:var(--line-strong);background:0 0}.btn-ghost:hover{background:var(--surface-raised);color:var(--text);border-color:var(--text-faint)}.btn-danger{background:var(--del);color:var(--danger-ink)}.btn-danger:hover{background:var(--del-ink);color:var(--danger-ink)}.btn-link{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.btn-link:hover{color:var(--accent-hover)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5)}.panel>*+*{margin-top:var(--space-4)}.panel>h2{margin-bottom:var(--space-5)}.panel h2{letter-spacing:0;font-size:clamp(1.25rem,3vw,1.5rem)}.panel-tight{padding:var(--space-4)}.slab{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-5);position:relative;overflow:hidden}@media (width>=900px){.slab{padding:var(--space-8) var(--space-7)}}.slab-teal{background:var(--field-teal);border-color:var(--accent);color:#fff}.divided>*+*{border-top:1px solid var(--line)}.glow-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);position:relative}.glow-card-violet{border:2px solid var(--accent)}.tile{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-3) var(--space-4)}.tile-label{color:var(--text-muted);align-items:center;gap:6px;font-size:.8125rem;display:flex}.tile-label svg{color:var(--accent)}.tile-value{font-family:var(--font-display);letter-spacing:0;margin-top:2px;font-size:1.5rem;font-weight:500;line-height:1.2}.tile-value small{font-family:var(--font-body);color:var(--text-muted);letter-spacing:0;font-size:.8125rem;font-weight:400}.tiles{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--line-strong);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.8125rem;display:inline-flex}.chip-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.chip-glass{background:var(--surface-raised);border-color:var(--line)}.chip svg{width:15px;height:15px}.edge{border-radius:999px;position:relative}.edge:before{content:"";border-radius:inherit;background:var(--edge);-webkit-mask-composite:xor;pointer-events:none;padding:1.5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.checks{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.checks li{gap:var(--space-3);align-items:flex-start;display:flex}.checks li:before{content:"";background:var(--accent-wash) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%236633ee' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 10.5l2.6 2.5L14 7.5'/%3E%3C/svg%3E") center / 20px no-repeat;border-radius:50%;flex:none;width:20px;height:20px;margin-top:1px}.rings:after{content:"";background:var(--rings);-webkit-mask:radial-gradient(circle at 100% 0,#000 0%,#0000 70%);pointer-events:none;position:absolute;inset:0;mask:radial-gradient(circle at 100% 0,#000 10%,#0000 75%)}label{margin-bottom:var(--space-2);font-size:1rem;font-weight:700;display:block}.field+.field{margin-top:var(--space-4)}.hint{color:var(--text-muted);font-size:.875rem;font-weight:400}input[type=text],input[type=email],input[type=tel],input[type=date],input[type=search],textarea,select{width:100%;min-height:52px;padding:var(--space-3) var(--space-4);font:inherit;color:var(--text);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm);transition:border-color .16s var(--ease-out), box-shadow .16s var(--ease-out)}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:hover,textarea:hover,select:hover{border-color:var(--text-faint)}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}input:disabled{color:var(--text-muted);background:var(--surface)}textarea{resize:vertical;min-height:104px}input[type=date]{color-scheme:light}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--space-4);padding:0}.choice{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:border-color .16s var(--ease-out), background-color .16s var(--ease-out), box-shadow .2s var(--ease-out);align-items:flex-start;margin:0;font-weight:400;display:flex}.choice+.choice{margin-top:var(--space-2)}.choice:hover{border-color:var(--line-strong)}.choice:has(input:checked){background:var(--accent-wash);border-color:#6633eeb3}.choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.choice input{accent-color:var(--accent);flex:none;width:18px;height:18px;margin:3px 0 0}.choice-body{flex:1;gap:2px;display:grid}.pill{background:var(--surface-raised);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.875rem;font-weight:700;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill-ok{color:var(--ok);background:var(--ok-wash)}.pill-ok:before{box-shadow:0 0 0 3px #6633ee40}.pill-wait{color:var(--warn);background:var(--warn-wash)}.pill-bad{color:var(--del);background:var(--del-wash)}.notice{padding:var(--space-4);border-radius:var(--radius);background:var(--accent-wash);border:1px solid #6633ee4d}.notice>*+*{margin-top:var(--space-3)}.notice-error{background:var(--del-wash);border-color:#f8717159}.notice-error,.notice-error a{color:var(--del-ink)}.notice-warn{background:var(--warn-wash);border-color:#f2c94c59}.notice ul{margin:0;padding-left:1.2em}.meter{background:var(--surface-raised);height:6px;margin-top:var(--space-2);border-radius:999px;overflow:hidden}.meter>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.meter-high>span{background:var(--warn);box-shadow:none}dl.facts{gap:var(--space-3) var(--space-4);grid-template-columns:auto 1fr;margin:0;display:grid}dl.facts dt{color:var(--text-muted)}dl.facts dd{text-align:right;overflow-wrap:anywhere;margin:0}details.action{border-top:1px solid var(--line)}details.action:first-of-type{border-top:0}details.action>summary{align-items:center;gap:var(--space-4);cursor:pointer;min-height:64px;font-weight:700;list-style:none;display:flex}details.action>summary::-webkit-details-marker{display:none}details.action>summary>span:not(.action-icon){flex:1}details.action>summary .action-icon{flex:none}details.action>summary:after{content:"";background:var(--text-faint);width:14px;height:14px;-webkit-mask:var(--chevron) center / contain no-repeat;mask:var(--chevron) center / contain no-repeat;transition:transform .2s var(--ease-out);flex:none}details.action[open]>summary:after{transform:rotate(180deg)}details.action>summary .hint{font-size:.85rem;display:block}details.action>summary .action-icon{border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--line);width:36px;height:36px;color:var(--accent);place-items:center;display:grid}details.action>:not(summary){padding-bottom:var(--space-5)}details.action>:not(summary)>*+*{margin-top:var(--space-3)}.back{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:.9rem;text-decoration:none;display:inline-flex}.back:hover{color:var(--text)}.big-code{font-family:var(--font-code);letter-spacing:.08em;color:var(--text);font-size:clamp(1.6rem,7vw,2.2rem)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}.sample-banner{background:var(--warn-wash);color:var(--warn);text-align:center;padding:var(--space-1) var(--space-4);font-size:.875rem}.link-list{margin:0;padding:0;list-style:none}.link-list li{border-top:1px solid var(--line)}.link-list li:last-child{border-bottom:1px solid var(--line)}.link-list a{justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;color:var(--text);transition:color .16s var(--ease-out);text-decoration:none;display:flex}.link-list a:after{content:"→";color:var(--text-faint);transition:transform .2s var(--ease-out), color .16s var(--ease-out)}.link-list a:hover{color:var(--accent)}.link-list a:hover:after{color:var(--accent);transform:translate(3px)}.crumbs{gap:var(--space-2);color:var(--text-muted);flex-wrap:wrap;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.crumbs li+li:before{content:"/";margin-right:var(--space-2);color:var(--text-faint)}.crumbs a{color:var(--text-muted);text-decoration:none}.crumbs a:hover{color:var(--text)}.prose{font-size:1.0625rem;line-height:1.7}.prose>*+*{margin-top:var(--space-4)}.prose ul,.prose ol{margin-bottom:0;padding-left:1.3em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:var(--space-2)}.prose li::marker{color:var(--accent)}.prose strong{color:var(--text)}.prose code{font-family:var(--font-code);border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--line-strong);color:var(--accent-hover);padding:1px 6px;font-size:.875rem}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem;line-height:1.5;display:block;overflow-x:auto}.prose th{text-align:left;padding:var(--space-2) var(--space-4) var(--space-2) 0;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:700}.prose td{padding:var(--space-3) var(--space-4) var(--space-3) 0;border-bottom:1px solid var(--line);vertical-align:top;min-width:9rem}.prose h2{margin-top:var(--space-6);font-size:1.35rem}.prose h3{margin-top:var(--space-5);font-size:1.1rem}
