@font-face{font-family:Gabarito;src:url(/fonts/lab/Gabarito-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Gabarito;src:url(/fonts/lab/Gabarito-500.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Gabarito;src:url(/fonts/lab/Gabarito-800.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:Lab Thaana;src:url(/fonts/lab/NotoSansThaana-700.woff2)format("woff2");font-weight:700;font-display:swap;unicode-range:U+780-7B1,U+60C,U+61B,U+61F,U+FDF2,U+FDFD}@font-face{font-family:Lab Muraka;src:url(/fonts/DhivehiMuraka-Thaana.8841e69d.woff2)format("woff2");font-weight:400;font-display:swap;unicode-range:U+780-7B1}.lab{--green:#0b4d3b;--green-deep:#073a2c;--reef:#2e7e6b;--shell:#f6f1e6;--shell-deep:#ebe3d2;--ink:#16302a;--muted:#5b716a;--gold:#d39a3a;--shell-soft:color-mix(in oklab, var(--shell) 74%, var(--green));--latin:"Gabarito", system-ui, sans-serif;--thaana-display:"Lab Thaana", "Gabarito", sans-serif;--thaana-text:"Lab Muraka", "Gabarito", sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--trunk-x:clamp(.75rem, 2.2vw, 1.75rem);--gutter:calc(var(--trunk-x) + clamp(1.25rem, 3.5vw, 3rem));--gutter-end:clamp(1.25rem, 4vw, 4rem);--lab-trunk:var(--reef);background:var(--lab-bg,var(--green-deep));min-height:100svh;color:var(--lab-fg,var(--shell));font-family:var(--latin);font-kerning:normal;font-variant-numeric:normal;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;caret-color:var(--gold);font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem);font-weight:400;line-height:1.5;position:relative;overflow-x:clip}html:has(.lab){scrollbar-color:color-mix(in oklab, var(--lab-scroll,#2e7e6b) 80%, transparent) transparent;scroll-padding-top:0}html:has(.lab) body{color:#f6f1e6;background:#073a2c;font-family:Gabarito,system-ui,sans-serif}.lab[lang=dv]{font-family:var(--thaana-text);line-height:1.9}.lab [lang=en],.lab bdi[dir=ltr]{font-family:var(--latin)}.lab :where(h1,h2,h3,h4,h5,p,ul,ol,li,figure,blockquote,dl,dd,pre,code){font:inherit;letter-spacing:inherit;color:inherit;text-wrap:pretty;margin:0;padding:0}.lab :where(h1,h2,h3){text-wrap:balance}.lab :where(ul,ol){list-style:none}.lab a{color:inherit;text-underline-offset:.22em;text-decoration-color:currentColor;text-decoration-thickness:1px;transition:none}.lab a:where(:hover){color:inherit;text-decoration-color:currentColor}.lab ::selection{background:var(--gold);color:var(--green-deep)}.lab :focus-visible{outline-offset:4px;border-radius:2px;outline:2px solid}.lab .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lab .thaana-display{font-family:var(--thaana-display);font-weight:700;line-height:1.35}.lab[lang=dv] :is(h1,h2,h3).lab-h{font-family:var(--thaana-display);letter-spacing:0;font-weight:700;line-height:1.4}.lab-open{color:var(--open-fg,currentColor);justify-items:start;gap:.15em;line-height:1;display:inline-grid}.lab-open--row{grid-auto-flow:column;align-items:end;gap:.4em}.lab-open-thaana{fill:currentColor;stroke:currentColor;stroke-width:0;stroke-linejoin:round;width:auto;height:2.6em;display:block;overflow:visible}.lab-mark{font-family:var(--latin);letter-spacing:-.03em;align-items:baseline;font-weight:800;line-height:1;display:inline-flex}.lab-mark-l{overflow-clip-margin:.12em;margin-bottom:-.08em;padding-bottom:.08em;display:inline-block;overflow:clip}.lab-mark-l>span{display:inline-block}.lab-mark-dot,.lab-wordmark-dot{background:var(--gold);border-radius:50%;width:.2em;height:.2em;margin-inline-start:.06em;display:inline-block}html.lab-motion .lab-open-thaana path{stroke-width:10px;stroke-dasharray:1 1;stroke-dashoffset:1px;fill-opacity:0;animation:lab-trace 1.3s var(--ease-in-out) calc(var(--d,0s) + var(--i) * .22s) forwards, lab-fill .7s ease-out calc(var(--d,0s) + 1.15s + var(--i) * 80ms) forwards}@keyframes lab-trace{to{stroke-dashoffset:0}}@keyframes lab-fill{to{fill-opacity:1;stroke-width:0}}html.lab-motion .lab-mark-l>span{animation:lab-rise .75s var(--ease-out) calc(var(--d,0s) + 1.55s + var(--i) * 80ms) forwards;transform:translateY(110%)}@keyframes lab-rise{to{transform:none}}html.lab-motion .lab-mark-dot{opacity:0;animation:lab-dot-drop .9s linear calc(var(--d,0s) + 2.05s) forwards;transform:translateY(-4em)}@keyframes lab-dot-drop{0%{opacity:1;animation-timing-function:cubic-bezier(.55,0,1,.45);transform:translateY(-4em)}48%{animation-timing-function:cubic-bezier(0,.55,.45,1);transform:translateY(0)scale(1.3,.7)}66%{animation-timing-function:cubic-bezier(.55,0,1,.45);transform:translateY(-.5em)scale(.95,1.05)}80%{animation-timing-function:cubic-bezier(0,.55,.45,1);transform:translateY(0)scale(1.12,.88)}90%{transform:translateY(-.12em)}to{opacity:1;transform:none}}.lab-wordmark{font-family:var(--latin);letter-spacing:-.03em;align-items:baseline;font-weight:800;line-height:1;display:inline-flex}.lab-trunk{z-index:60;pointer-events:none;width:2px;color:var(--lab-trunk);position:fixed;inset-block:0;inset-inline-start:var(--trunk-x)}.lab-trunk-line{inset-inline-start:0;transform-origin:0 0;background:currentColor;width:1.5px;height:100%;position:absolute;top:0}.lab-trunk ol{position:absolute;inset:0}.lab-trunk-node{top:calc((100% - 28px) * var(--f));background:var(--lab-trunk-hole,var(--green-deep));border:1.5px solid;border-radius:50%;width:12px;height:12px;margin-top:-6px;position:absolute;inset-inline-start:-5px}.lab-trunk-fill{background:currentColor;border-radius:50%;position:absolute;inset:1.5px}.lab-trunk-node a{pointer-events:auto;border-radius:50%;position:absolute;inset:-10px}.lab-trunk-label{inset-inline-start:calc(100% + .25rem);white-space:nowrap;background:var(--shell);color:var(--ink);opacity:0;border-radius:4px;padding:.1rem .5rem;font-size:.8125rem;font-weight:500;transition:opacity .2s;position:absolute;top:50%;translate:0 -50%}.lab-trunk-node a:is(:hover,:focus-visible) .lab-trunk-label{opacity:1}.lab-trunk-tip{top:calc(100% - 28px);background:var(--gold);border-radius:50%;width:12px;height:12px;margin-top:-6px;position:absolute;inset-inline-start:-5.25px}.lab-trunk.is-live .lab-trunk-line{height:1px;transform:scaleY(0)}.lab-trunk.is-live .lab-trunk-node,.lab-trunk.is-live .lab-trunk-tip{top:0}.lab-trunk.is-live .lab-trunk-fill{transform:scale(0)}.lab-trunk.is-live:not(.is-landed) .lab-trunk-tip,.lab-trunk.is-live:not(.is-landed) .lab-trunk-node,.lab-trunk.is-live .lab-trunk-tip{opacity:0}.lab-trunk.is-live.is-landed .lab-trunk-tip{opacity:1}.lab-trunk.is-live .lab-trunk-node{transition:opacity .4s}.term{--term-bg:var(--green-deep);--term-fg:var(--shell);--term-dim:color-mix(in oklab, var(--shell) 58%, var(--green-deep));background:var(--term-bg);width:min(100%,44rem);color:var(--term-fg);font-family:var(--latin);text-align:start;border-radius:14px;position:relative;overflow:hidden;box-shadow:0 1.5rem 3rem -1.5rem #041c158c}.term-bar{border-bottom:1px solid color-mix(in oklab, var(--shell) 14%, transparent);color:var(--term-dim);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1.1rem;font-size:.8125rem;display:flex}.term-title{color:var(--term-fg);letter-spacing:.01em;font-weight:800}.term-note[lang=dv]{font-family:var(--thaana-text);font-size:.875rem}.term-body{font-family:var(--latin);white-space:pre-wrap;overflow-wrap:anywhere;font-variant-ligatures:none;tab-size:2;margin:0;padding:1.1rem 1.1rem 1.4rem;font-size:clamp(.8125rem,.72rem + .45vw,1.0625rem);line-height:1.75;position:relative}.term-line{min-height:1.75em;display:block}.term .tk-c{color:var(--term-dim)}.term .tk-k{font-weight:800}.term .tk-s{color:var(--shell-deep);font-weight:500}.term .tk-f{text-underline-offset:.25em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in oklab, var(--shell) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--shell) 40%, transparent);font-weight:500}.term .tk-v,.term .tk-p{color:var(--term-fg)}.term-out{align-items:baseline;gap:.5rem;margin-top:.6rem;display:flex}.term-prompt{color:var(--term-dim)}.term-thaana{font-family:var(--thaana-display);font-size:1.6em;font-weight:700;line-height:1.5}.term-caret{background:var(--gold);opacity:0;pointer-events:none;width:2px;height:1.3em;position:absolute;top:0;left:0}html.lab-motion .term-caret{opacity:1;margin-top:.2em}html.lab-motion .term.is-visible.is-done .term-caret{animation:1.05s step-end infinite lab-blink}@keyframes lab-blink{50%{opacity:0}}.lab-toggle{border:1px solid color-mix(in oklab, currentColor 40%, transparent);border-radius:999px;align-items:center;min-height:2.75rem;padding:0 1rem;font-size:1rem;font-weight:500;line-height:1;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.lab-toggle[lang=dv]{font-family:var(--thaana-display);font-size:1.05rem;font-weight:700}.lab-toggle[lang=en]{font-family:var(--latin)}.lab-toggle:hover{background:var(--lab-fg,var(--shell));color:var(--lab-bg,var(--green-deep))}@media (prefers-reduced-motion:no-preference){html[data-wipe]::view-transition-old(root){animation:lab-dim .75s var(--ease-in-out,ease) both}html[data-wipe]::view-transition-new(root){animation:.75s cubic-bezier(.76,0,.24,1) both lab-wipe-ltr}html[data-wipe=to-rtl]::view-transition-new(root){animation-name:lab-wipe-rtl}}@keyframes lab-wipe-ltr{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes lab-wipe-rtl{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}@keyframes lab-dim{to{opacity:.6}}.lab-bar{z-index:70;padding:.75rem var(--gutter-end) .75rem var(--gutter);padding-inline:var(--gutter) var(--gutter-end);pointer-events:none;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed;inset-block-start:0;inset-inline:0}.lab-bar>*{pointer-events:auto}.lab-bar .lab-wordmark{font-size:1.375rem;text-decoration:none}.lab-bar-end{align-items:center;gap:.75rem;display:flex}.lab-bar-index{opacity:.8;font-size:.875rem;font-weight:500;text-decoration:none}.lab-bar-index:hover{opacity:1;text-decoration:underline}@media (max-width:540px){.lab-bar-index{display:none}}.lab-pin{position:relative}html.lab-motion .lab-pin{height:var(--pin,300svh)}html.lab-motion .lab-stick{height:100svh;position:sticky;top:0;overflow:clip}.lab-index{--lab-bg:var(--shell);--lab-fg:var(--ink)}html:has(.lab-index) body{background:#f6f1e6}.li{max-width:72rem;margin-inline:auto;padding:clamp(1.25rem,4vw,3rem) clamp(1.25rem,5vw,4rem) 6rem}.li-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.li-mark{color:var(--green);font-size:clamp(1.5rem,1rem + 2vw,2.25rem)}.li-mark .lab-open-thaana{height:1.4em}.li-title{letter-spacing:-.035em;max-width:16ch;color:var(--green);margin-top:clamp(4rem,12vh,8rem);font-size:clamp(2.5rem,1.2rem + 5vw,5.5rem);font-weight:800;line-height:.98}.lab[lang=dv] .li-title{max-width:18ch;font-size:clamp(2rem,1rem + 4vw,4.25rem)}.li-note{max-width:44ch;color:var(--muted);margin-top:1.5rem;font-size:1.125rem}.li-list{border-top:1px solid color-mix(in oklab, var(--ink) 18%, transparent);margin-top:clamp(3rem,8vh,5rem)}.li-list li{border-bottom:1px solid color-mix(in oklab, var(--ink) 18%, transparent)}.li-link{transition:background-color .25s var(--ease-out), padding .35s var(--ease-out);grid-template-columns:3.5rem minmax(0,18rem) minmax(0,1fr);align-items:baseline;gap:1rem 2rem;padding:1.6rem .5rem;text-decoration:none;display:grid}.li-link:hover{background:var(--shell-deep);padding-inline-start:1.25rem}.li-id{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}.li-name{letter-spacing:-.02em;color:var(--green);font-size:clamp(1.5rem,1.1rem + 1.2vw,2.125rem);font-weight:800;line-height:1.1}.li-line{color:var(--ink);max-width:52ch}@media (max-width:720px){.li-link{grid-template-columns:2.5rem minmax(0,1fr)}.li-line{grid-column:2}}
