*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;
  scroll-padding-top:var(--s7);interpolate-size:allow-keywords}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);
  font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-body);
  font-kerning:normal;-webkit-font-smoothing:antialiased;overflow-wrap:break-word;
  hyphens:manual;hyphenate-limit-chars:6 3 3;hyphenate-limit-lines:2;
  -webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;-webkit-hyphenate-limit-lines:2}
@media (max-width:40rem){
  body{hyphenate-limit-chars:5 2 3;hyphenate-limit-lines:no-limit;
    -webkit-hyphenate-limit-before:2;-webkit-hyphenate-limit-lines:no-limit}
}
.column,.prose{hyphens:auto}
::selection{background:var(--accent-line)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}

.page{padding:var(--s7) max(var(--s4),env(safe-area-inset-right)) var(--s7) max(var(--s4),env(safe-area-inset-left))}
.column{max-width:var(--column);margin-inline:auto}
.skip{position:absolute;left:var(--s4);top:var(--s4);z-index:9;padding:var(--s2) var(--s3);
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-s);transform:translateY(-300%)}
.skip:focus{transform:none}

h1,h2,h3,h4{margin:0;font-weight:var(--w-title);line-height:var(--lh-title);letter-spacing:var(--tracking-title);
  text-wrap:balance;hyphens:manual}
h1{font-size:var(--fs-h1);font-weight:var(--w-h1);letter-spacing:var(--tracking-h1);line-height:1.08}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);margin-top:var(--s5)}
h4{font-size:var(--fs-h4);margin-top:var(--s4)}
@media (max-width:40rem){ .column :is(h1,h2,h3,h4){hyphens:auto;hyphenate-limit-chars:10 4 4;-webkit-hyphenate-limit-before:4;-webkit-hyphenate-limit-after:4} }
h2+*,h3+*,h4+*{margin-top:var(--s2)}

p,ul,ol,dl,blockquote{margin:var(--s3) 0}
p{text-align:justify}
:is(.head,.block,figure,form,.decision,.sheet,.timeline) p{text-align:start}
.head h1+p{margin-top:var(--s4)}
.head p{color:var(--text-2);text-wrap:pretty}
.head .meta{font-size:var(--fs-dense);color:var(--text-3)}
.section{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line)}

a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:.18em;text-decoration-color:var(--accent-line)}
@media (hover:hover) and (pointer:fine){ a:hover{text-decoration-color:currentColor} }
strong,b{font-weight:var(--w-strong)}
small{font-size:var(--fs-micro)}
ul,ol{padding-left:var(--indent)}
li+li{margin-top:var(--s1)}
li>:is(ul,ol){margin:var(--s1) 0 0}
li::marker{color:var(--text-3);font-variant-numeric:tabular-nums}
dt{font-weight:var(--w-strong)}
dd{margin:0 0 var(--s3)}
hr{border:0;border-top:1px solid var(--line);margin:var(--s5) 0}

blockquote{margin-inline:0;padding-left:var(--s4);border-left:1px solid var(--line-2);color:var(--text-2)}
blockquote footer{font-size:var(--fs-dense);color:var(--text-3);margin-top:var(--s2)}
blockquote>:first-child{margin-top:0}
blockquote>:last-child{margin-bottom:0}

code,kbd,pre{font-family:var(--font-code);hyphens:manual}
code,kbd{font-size:var(--fs-inline-code)}
:not(pre)>code{padding:.1em .3em;background:var(--track);border-radius:calc(var(--radius-s)*.5)}
kbd{padding:.1em .4em;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:calc(var(--radius-s)*.5);background:var(--surface)}

.block{margin:var(--s5) 0;padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.block>:first-child{margin-top:0}
.block>:last-child{margin-bottom:0}
.scroll,.code pre{overflow-x:auto;overscroll-behavior-x:contain;background:
  linear-gradient(to right,var(--surface) 40%,transparent) left/2rem 100% no-repeat local,
  linear-gradient(to left,var(--surface) 40%,transparent) right/2rem 100% no-repeat local,
  linear-gradient(to right,var(--edge),transparent) left/.6rem 100% no-repeat scroll,
  linear-gradient(to left,var(--edge),transparent) right/.6rem 100% no-repeat scroll}

.code{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:0;overflow:hidden}
.code pre{grid-area:1/1;margin:0;padding:var(--s4);
  font-size:var(--fs-code);line-height:var(--lh-dense);tab-size:2}
.code code{font-size:inherit}
.copy{grid-area:1/2;position:relative;align-self:start;margin:var(--s2) var(--s2) 0 0;
  min-height:var(--h-control-small);width:var(--h-control-small);padding:0;color:var(--text-2)}
@media (max-width:40rem){
  .code{grid-template-columns:minmax(0,1fr)}
  .copy{grid-area:1/1;justify-self:end}
  .code pre{grid-area:2/1;padding-top:var(--s2)}
}
.copy[data-done]{color:var(--ok)}

.table{padding:0;overflow:hidden}
.table-title{margin:0;padding:var(--s3) var(--s3) var(--s2);font-size:var(--fs-dense);line-height:var(--lh-dense);color:var(--text-2)}
table{width:100%;border-collapse:collapse;
  font-size:var(--fs-dense);line-height:var(--lh-dense);font-variant-numeric:tabular-nums}
th,td{padding:var(--s2) var(--s3);text-align:start;vertical-align:top;border-bottom:1px solid var(--line)}
th{font-weight:var(--w-strong);color:var(--text-2);white-space:nowrap;hyphens:manual}
tbody tr:last-child>*{border-bottom:0}
.wide table{width:max-content;min-width:100%;max-width:var(--table-max)}
.num{text-align:end;white-space:nowrap}
.prose table{width:max-content;min-width:100%;max-width:none}
.prose :is(th,td){min-width:9rem;max-width:26rem}
.prose td.long{min-width:18rem}
.prose tbody th{white-space:normal;hyphens:auto}
@media (min-width:64rem){
  .prose table{width:100%}
  .prose :is(th,td){max-width:none}
}

.stats{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:1px;margin:var(--s5) 0;
  background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
@media (max-width:40rem){ .stats{grid-template-columns:repeat(var(--n-narrow),minmax(0,1fr))} }
.stats div{min-width:0;padding:var(--s3) var(--s4);background:var(--surface)}
.stats dt{font-size:var(--fs-dense);font-weight:inherit;color:var(--text-2);line-height:var(--lh-title)}
.stats dd{margin:var(--s1) 0 0;font-size:var(--fs-h2);font-weight:var(--w-strong);line-height:var(--lh-title);
  font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-title)}

img{max-width:100%;height:auto}
figure{margin:var(--s5) 0}
figure :is(img,svg){display:block;max-width:100%;height:auto;border-radius:var(--radius-s)}
.plot{padding:var(--s4)}
.plot .scroll{margin-inline:calc(-1*var(--s4));padding-inline:var(--s4)}
@media (max-width:40rem){ .plot .drawing{min-width:40rem;max-width:none} }
figcaption{font-size:var(--fs-dense);line-height:var(--lh-dense);color:var(--text-2)}
figcaption:first-child{margin-bottom:var(--s3)}
figcaption:last-child{margin-top:var(--s2)}
.drawing{fill:none;stroke:var(--text-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.drawing text{fill:var(--text-2);stroke:none;font-family:var(--font-text)}
.drawing .mark{stroke:var(--accent)}
.drawing .faint{stroke:var(--line-2)}
.drawing text.mark{fill:var(--accent);stroke:none}
.drawing text.faint{fill:var(--text-3);stroke:none}
.drawing .label-back{fill:var(--surface);stroke:none}
.drawing .fill{fill:var(--c);stroke:none}
.drawing .line{stroke:var(--k)}
.drawing .tinted{fill:var(--w);stroke:var(--e)}
.drawing text.on{fill:var(--on-series)}
.drawing marker path{fill:none;stroke:var(--text-2);stroke-width:1.5}
.drawing marker.mark path{stroke:var(--accent)}

.stack{display:flex;gap:2px;height:var(--s4)}
.stack span{min-width:.5rem;border-radius:999px;background:var(--c);transition:opacity var(--t-fast)}
.legend{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);list-style:none;margin:var(--s3) 0 0;padding:0;
  font-size:var(--fs-dense);color:var(--text-2)}
.legend li{display:flex;align-items:center;gap:var(--s2);margin:0;transition:opacity var(--t-fast)}
.legend i{width:.75em;height:.75em;border-radius:50%;background:var(--c)}
.legend b{color:var(--text);font-variant-numeric:tabular-nums}
.chart[data-active] :is(.stack span,.legend li):not([data-on]){opacity:.3}
.c1{--c:var(--series-1);--k:var(--series-1-ink);--w:var(--series-1-wash);--e:var(--series-1-edge)} .c2{--c:var(--series-2);--k:var(--series-2-ink);--w:var(--series-2-wash);--e:var(--series-2-edge)}
.c3{--c:var(--series-3);--k:var(--series-3-ink);--w:var(--series-3-wash);--e:var(--series-3-edge)} .c4{--c:var(--series-4);--k:var(--series-4-ink);--w:var(--series-4-wash);--e:var(--series-4-edge)}
.c5{--c:var(--series-5);--k:var(--series-5-ink);--w:var(--series-5-wash);--e:var(--series-5-edge)} .c6{--c:var(--series-6);--k:var(--series-6-ink);--w:var(--series-6-wash);--e:var(--series-6-edge)}
.c7{--c:var(--series-7);--k:var(--series-7-ink);--w:var(--series-7-wash);--e:var(--series-7-edge)} .c8{--c:var(--series-8);--k:var(--series-8-ink);--w:var(--series-8-wash);--e:var(--series-8-edge)}
.c9{--c:var(--series-9);--k:var(--series-9-ink);--w:var(--series-9-wash);--e:var(--series-9-edge)}
.c0{--c:var(--series-other);--k:var(--series-other-ink)}

.share{display:inline-flex;align-items:center;gap:var(--s2);white-space:nowrap}
.share i{display:block;width:3rem;height:.375rem;border-radius:999px;background:var(--track);overflow:hidden}
.share i::before{content:"";display:block;height:100%;width:var(--w);background:var(--series-1-ink);border-radius:999px}

.note{--c:var(--tone-blue);--k:var(--tone-blue-ink);--w:var(--tone-blue-wash);--e:var(--tone-blue-edge);display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s3);
  font-size:var(--fs-dense);line-height:var(--lh-dense);
  background:var(--w);border-color:var(--e)}
.note>.icon{width:var(--icon-text);height:var(--icon-text);margin-top:calc((1lh - var(--icon-text))/2);color:var(--k)}
.note-title{font-weight:var(--w-strong);color:var(--k)}
.note :is(p,ul,ol){margin:0}
.note :is(p,ul,ol)+:is(p,ul,ol){margin-top:var(--s2)}
.note[data-kind="key"]{--c:var(--tone-lilac);--k:var(--tone-lilac-ink);--w:var(--tone-lilac-wash);--e:var(--tone-lilac-edge)}
.note[data-kind="example"]{--c:var(--tone-aqua);--k:var(--tone-aqua-ink);--w:var(--tone-aqua-wash);--e:var(--tone-aqua-edge)}
.note[data-kind="definition"]{--c:var(--tone-indigo);--k:var(--tone-indigo-ink);--w:var(--tone-indigo-wash);--e:var(--tone-indigo-edge)}
.note[data-kind="success"]{--c:var(--tone-sage);--k:var(--tone-sage-ink);--w:var(--tone-sage-wash);--e:var(--tone-sage-edge)}
.note[data-kind="warning"]{--c:var(--tone-apricot);--k:var(--tone-apricot-ink);--w:var(--tone-apricot-wash);--e:var(--tone-apricot-edge)}
.note[data-kind="error"]{--c:var(--tone-coral);--k:var(--tone-coral-ink);--w:var(--tone-coral-wash);--e:var(--tone-coral-edge)}

.timeline{list-style:none;margin:var(--s5) 0;padding:0}
.timeline li{position:relative;display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:0 var(--s5);margin:0;padding-bottom:var(--s4)}
.timeline li:last-child{padding-bottom:0}
.timeline time{grid-column:1;text-align:end;font-size:var(--fs-dense);font-weight:var(--w-strong);line-height:calc(var(--fs-body)*var(--lh-body));font-variant-numeric:tabular-nums;hyphens:manual}
.timeline li>div{grid-column:2;min-width:0}
.timeline li>div>:first-child{margin-top:0}
.timeline li>div>:last-child{margin-bottom:0}
.timeline li::before{content:"";position:absolute;left:calc(9rem + var(--s5)/2);top:calc(.5lh - .3rem);width:.6rem;height:.6rem;
  border-radius:50%;background:var(--surface);box-shadow:0 0 0 2px var(--series-1-ink);transform:translateX(-50%)}
.timeline li::after{content:"";position:absolute;left:calc(9rem + var(--s5)/2);top:calc(.5lh + .65rem);bottom:calc(-.5lh + .65rem);
  width:2px;border-radius:2px;background:var(--line-2);transform:translateX(-50%)}
.timeline li:last-child::after{display:none}
.timeline li[data-mark]::before{background:var(--series-1-ink)}
@media (max-width:40rem){
  .timeline li{grid-template-columns:minmax(0,1fr);padding-left:var(--s5)}
  .timeline time{text-align:start}
  .timeline li>div{grid-column:1}
  .timeline li::before,.timeline li::after{left:.3rem}
}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:var(--s3);margin:var(--s5) 0}
.cards>*{min-width:0;margin:0;padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.cards>*>:first-child{margin-top:0}
.cards>*>:last-child{margin-bottom:0}
.cards p{text-align:start}
.cards :is(h3,h4){font-size:var(--fs-h4)}

[data-status]{display:inline-flex;align-items:baseline;gap:.45em;hyphens:manual;font-size:var(--fs-dense);white-space:nowrap}
[data-status]::before{content:"";flex:none;width:.5em;height:.5em;border-radius:50%;background:var(--text-3);transform:translateY(-.12em)}
.store-status{align-items:center;gap:var(--s2);min-height:var(--h-control-small);padding:0 var(--s3);
  border:1px solid var(--line-2);border-radius:999px;background:var(--surface);font-size:var(--fs-micro);font-weight:var(--w-ui);color:var(--text-2)}
.store-status::before{transform:none}
.store-status:empty{display:none}
[data-status="ok"]::before{background:var(--ok)}
[data-status="warn"]::before{background:var(--warn)}
[data-status="error"]::before{background:var(--error)}
[data-status="running"]::before{background:var(--accent)}

progress{appearance:none;display:block;width:100%;height:.375rem;border:0;border-radius:999px;background:var(--track);overflow:hidden}
progress::-webkit-progress-bar{background:transparent}
progress::-webkit-progress-value{background:var(--accent);border-radius:999px}
progress::-moz-progress-bar{background:var(--accent);border-radius:999px}

details{margin:var(--s4) 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;overflow-anchor:none}
summary{display:flex;align-items:center;gap:var(--s2);min-height:var(--h-control);padding:0 var(--s4);cursor:pointer;
  list-style:none;font-size:var(--fs-dense);font-weight:var(--w-ui);hyphens:manual;touch-action:manipulation;
  user-select:none;-webkit-user-select:none;transition:background-color var(--t-fast)}
summary::-webkit-details-marker{display:none}
summary:active{background:var(--fill)}
summary:focus-visible{outline-offset:-2px;border-radius:var(--radius)}
summary .icon{color:var(--text-3);transition:transform var(--t-slow) var(--ease)}
details[open]:not([data-closing])>summary .icon{transform:rotate(90deg)}
.fold-body{overflow:hidden}
.fold-body>div{padding:var(--s1) var(--s4) var(--s4)}
.fold-body>div>:first-child{margin-top:0}
.fold-body>div>:last-child{margin-bottom:0}
@media (hover:hover) and (pointer:fine){ summary:hover{background:var(--fill)} }
@media (pointer:coarse){ summary{min-height:var(--h-touch)} }

.icon{width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  min-height:var(--h-control);margin:0;padding:0 var(--s4);border:1px solid var(--line-2);border-radius:var(--radius-s);
  background:var(--surface);color:var(--text);font-family:inherit;font-size:var(--fs-input);font-weight:var(--w-ui);
  line-height:var(--lh-title);white-space:nowrap;hyphens:manual;cursor:pointer;touch-action:manipulation;
  user-select:none;-webkit-user-select:none;
  transition:transform var(--t-fast) var(--ease),background-color var(--t-fast),opacity var(--t-fast)}
button:active{transform:scale(.97)}
button[data-kind="primary"]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}
button[data-kind="danger"]{color:var(--error)}
button[data-kind="small"]{min-height:var(--h-control-small);padding:0 var(--s3);font-size:var(--fs-dense);color:var(--text-2)}
button[aria-pressed="true"]{background:var(--accent-tint);border-color:var(--accent-line);color:var(--text)}
button:disabled{opacity:.5;pointer-events:none}
button[aria-busy="true"]{pointer-events:none}
button[aria-busy="true"]::before{content:"";width:.9em;height:.9em;border-radius:50%;
  border:2px solid var(--line-2);border-top-color:currentColor;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}
@media (pointer:coarse){
  button[data-kind="small"]{position:relative}
  :is(.copy,.view-open,button[data-kind="small"])::after{content:"";position:absolute;left:0;right:0;top:50%;
    height:var(--h-touch);transform:translateY(-50%)}
}
@media (hover:hover) and (pointer:fine){
  button:hover{background:var(--fill)}
  button[data-kind="primary"]:hover{background:color-mix(in srgb,var(--accent) 88%,var(--bg))}
}
.buttons{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s4) 0}
.choices{display:flex;flex-wrap:wrap;gap:0 var(--s4);margin:var(--s3) 0}

label{font-size:var(--fs-dense);font-weight:var(--w-ui);hyphens:manual}
input,select,textarea{font-family:inherit;font-size:var(--fs-input);color:var(--text)}
input:is([type="text"],[type="search"],[type="number"],[type="email"],[type="password"],[type="date"]),select,textarea{
  appearance:none;display:block;width:100%;min-height:var(--h-control);margin:0;padding:0 var(--s3);
  border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--surface);line-height:var(--lh-title)}
textarea{padding-block:var(--s2);min-height:5rem;resize:vertical;line-height:var(--lh-dense)}
::placeholder{color:var(--text-3);opacity:1}
select{padding-right:var(--s6);background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);
  background-size:5px 5px;background-repeat:no-repeat;background-position:right 1rem center,right calc(1rem - 5px) center}
input:is([type="checkbox"],[type="radio"]):not([role="switch"]){appearance:none;position:relative;width:var(--box);height:var(--box);margin:0;flex:none;
  border:1.5px solid var(--text-3);border-radius:var(--radius-xs);background:var(--surface);cursor:pointer;
  transition:background-color var(--t-fast),border-color var(--t-fast)}
input[type="radio"]:not([role="switch"]){border-radius:50%}
input:is([type="checkbox"],[type="radio"]):not([role="switch"])::before{content:"";position:absolute;left:50%;top:50%;opacity:0;transition:opacity var(--t-fast)}
input[type="radio"]::before{width:.55rem;height:.55rem;border-radius:50%;background:var(--accent-text);transform:translate(-50%,-50%)}
input[type="checkbox"]:not([role="switch"])::before{width:.34rem;height:.62rem;border:solid var(--accent-text);border-width:0 2px 2px 0;
  border-radius:1px;transform:translate(-50%,-58%) rotate(45deg)}
input:is([type="checkbox"],[type="radio"]):not([role="switch"]):checked{background:var(--accent);border-color:var(--accent)}
input:is([type="checkbox"],[type="radio"]):checked::before{opacity:1}
input[type="range"]{width:100%;margin:0;accent-color:var(--accent);min-height:var(--h-control-small)}
input[role="switch"]{appearance:none;position:relative;width:2.6rem;height:1.55rem;border-radius:999px;
  background:var(--line-2);cursor:pointer;transition:background-color var(--t-fast)}
input[role="switch"]::before{content:"";position:absolute;top:2px;left:2px;width:calc(1.55rem - 4px);height:calc(1.55rem - 4px);
  border-radius:50%;background:var(--knob);box-shadow:0 1px 2px var(--scrim);transition:transform var(--t-fast) var(--ease)}
input[role="switch"]:checked{background:var(--accent)}
input[role="switch"]:checked::before{transform:translateX(1.05rem)}

.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--s4)}
.fields+.choice{margin-top:var(--s3)}
.field{display:grid;gap:var(--s1);align-content:start;min-width:0}
.field small{color:var(--text-3)}
.field output{font-variant-numeric:tabular-nums;font-weight:400;color:var(--text-2)}
.field label{display:flex;justify-content:space-between;gap:var(--s2)}
.choice{display:flex;align-items:center;gap:var(--s2);min-height:var(--h-control-small);font-weight:400;cursor:pointer}
.choice.switch{justify-content:space-between}
@media (pointer:coarse){ .choice{min-height:var(--h-touch)} }
fieldset{min-width:0;margin:var(--s5) 0;border:0}
fieldset.block{border:1px solid var(--line)}
fieldset.block>legend{float:left;width:100%;margin:0 0 var(--s3);padding:0;font-size:var(--fs-dense);font-weight:var(--w-strong)}
fieldset.block>legend+*{clear:both}

.segment{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:var(--segment-inset);gap:var(--segment-inset);margin:0;
  border:0;border-radius:var(--radius-s);background:var(--track)}
.segment label{display:flex;align-items:center;justify-content:center;min-height:calc(var(--h-control) - 2*var(--segment-inset));padding:0 var(--s2);
  border-radius:calc(var(--radius-s) - 2px);color:var(--text-2);text-align:center;cursor:pointer;
  transition:background-color var(--t-fast),color var(--t-fast)}
.segment label>input[type]{position:absolute;opacity:0;pointer-events:none}
.segment label:has(:checked){background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line-2)}
[data-scheme="dark"] .segment label:has(:checked){background:color-mix(in srgb,var(--text) 16%,var(--surface))}
.segment label:has(:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
@media (pointer:coarse){ .segment label{min-height:var(--h-touch)} }

.decision{margin:var(--s5) 0}
.decision h3{margin-top:0}
.tag{font-size:var(--fs-dense);color:var(--text-3);font-variant-numeric:tabular-nums}
.options{display:grid;margin:var(--s4) 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s1) var(--s3);align-items:start;padding:var(--s3) var(--s4);
  font-weight:400;line-height:var(--lh-dense);hyphens:auto;cursor:pointer;transition:background-color var(--t-fast)}
.option+.option{border-top:1px solid var(--line)}
.option input:is([type="checkbox"],[type="radio"]){grid-row:1;margin-top:calc((var(--fs-body)*var(--lh-dense) - var(--box))/2)}
.option-head{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s2);min-height:calc(var(--fs-body)*var(--lh-dense));
  font-size:var(--fs-body);font-weight:var(--w-strong);line-height:var(--lh-dense)}
.option-head .tag{min-width:1.1em;font-weight:var(--w-strong);line-height:inherit}
.option-text{grid-column:2;color:var(--text-2);line-height:var(--lh-dense)}
.suggested{display:inline-flex;align-items:center;font-size:var(--fs-micro);font-weight:var(--w-ui);line-height:1.5;color:var(--text-2);
  padding:0 .6em;border:1px solid var(--line-2);border-radius:999px}
.option:has(:checked){background:var(--accent-tint)}
.option:active{background:var(--fill)}
.remarks{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s3) 0}

.toc{margin:var(--s6) 0 0;padding:var(--s3) var(--s2) var(--s2);font-size:var(--fs-dense);line-height:var(--lh-dense)}
.toc-title{margin:0;padding:0 var(--s2) var(--s2);font-weight:var(--w-strong);color:var(--text-2)}
.toc ol,.sheet ol{list-style:none;margin:0;padding:0}
.toc ol{counter-reset:toc}
.toc li,.sheet li{margin:0}
.toc a{counter-increment:toc;display:flex;align-items:baseline;gap:var(--s3);padding:var(--s1) var(--s2);border-radius:var(--radius-s);
  color:var(--text);text-decoration:none;hyphens:manual;transition:background-color var(--t-fast)}
.toc a::before{content:counter(toc);flex:none;min-width:1.4em;color:var(--text-3);font-variant-numeric:tabular-nums;text-align:end}
.toc a:active{background:var(--fill)}
@media (pointer:coarse){ .toc a{align-items:center;min-height:var(--h-touch)} }
@media (hover:hover) and (pointer:fine){ .toc a:hover{background:var(--fill)} }

.nav-open,.sheet-head button{flex:none;width:var(--h-touch);min-height:var(--h-touch);padding:0;color:var(--text-2)}
:is(.nav-open,.sheet-head button) .icon{width:1.3em;height:1.3em}
.nav-open{position:fixed;left:var(--float);top:var(--float-top);z-index:5;box-shadow:var(--shadow)}
@media (max-width:40rem){ .nav-open{top:auto;bottom:var(--float-bottom)} }

.sheet{position:fixed;inset:calc(var(--float-top) - var(--s2)) auto auto calc(var(--float) - var(--s2));
  width:min(24rem,calc(100vw - 2*(var(--float) - var(--s2))));max-width:none;
  max-height:calc(100dvh - 2*(var(--float-top) - var(--s2)));margin:0;padding:0;
  border:0;border-radius:var(--radius-l);background:var(--surface);color:var(--text);box-shadow:var(--shadow);
  overflow:auto;overscroll-behavior:contain;font-size:var(--fs-input);line-height:var(--lh-dense);
  opacity:0;transform:scale(.96);transform-origin:top left;
  transition:transform var(--t-slow) var(--ease),opacity var(--t-slow),overlay var(--t-slow) allow-discrete,display var(--t-slow) allow-discrete}
.sheet[open]{opacity:1;transform:none}
@starting-style{ .sheet[open]{opacity:0;transform:scale(.96)} }
.sheet::backdrop{background:var(--scrim);opacity:0;transition:opacity var(--t-slow),overlay var(--t-slow) allow-discrete,display var(--t-slow) allow-discrete}
.sheet[open]::backdrop{opacity:1}
@starting-style{ .sheet[open]::backdrop{opacity:0} }
.sheet-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s2);
  background:var(--surface)}
.zoom{display:flex;align-items:center;gap:var(--s1)}
:is(.sheet-head,.view-panel) .zoom-value{width:auto;min-width:4.2em;padding:0 var(--s2);font-size:var(--fs-dense);font-variant-numeric:tabular-nums;color:var(--text)}
.sheet-search{padding:0 var(--s2) var(--s2)}
.sheet ol{padding:0 var(--s2) var(--s2)}
.sheet li[data-level="3"] a,.sheet li[data-level="4"] a{color:var(--text-2)}
.sheet-none{margin:0;padding:var(--s2) calc(var(--s2) + var(--s3)) var(--s4);color:var(--text-3)}
.sheet a{display:flex;align-items:center;min-height:var(--h-touch);padding:var(--s1) var(--s3);border-radius:var(--radius-s);
  color:var(--text);text-decoration:none;hyphens:manual;transition:background-color var(--t-fast)}
.sheet a[aria-current]{background:var(--track);font-weight:var(--w-strong)}
.sheet a:active{background:var(--fill)}
@media (hover:hover) and (pointer:fine){ .sheet a:hover{background:var(--fill)} }
@media (max-width:40rem){
  .sheet{inset:auto auto calc(var(--float-bottom) - var(--s2)) calc(var(--float) - var(--s2));display:flex;flex-direction:column-reverse;
    max-height:calc(100dvh - var(--float-bottom) - var(--float-top));transform:none}
  @starting-style{ .sheet[open]{transform:none} }
  .sheet:not([open]){display:none}
  .sheet-head{top:auto;bottom:0;flex:none}
  .sheet-search{flex:none;padding-top:var(--s2)}
  .sheet ol{overflow:auto;padding-top:var(--s2)}
}

.tool{min-height:100dvh;padding:max(var(--s4),env(safe-area-inset-top)) max(var(--s4),env(safe-area-inset-right)) max(var(--s5),env(safe-area-inset-bottom)) max(var(--s4),env(safe-area-inset-left))}
.tool p{text-align:start}
.tool h1{font-size:var(--fs-h2);line-height:var(--lh-title);letter-spacing:var(--tracking-title)}
.view{position:relative;display:inline-flex}
.view-open{position:relative;flex:none;width:var(--h-control-small);min-height:var(--h-control-small);padding:0;color:var(--text-2)}
.view-panel{position:absolute;z-index:6;top:calc(100% + var(--s1));display:flex;align-items:center;gap:var(--s1);padding:var(--s2);
  border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);transition:opacity var(--t-fast)}
@starting-style{ .view-panel{opacity:0} }
.view[data-side="end"] .view-panel{right:0}
.view[data-side="start"] .view-panel{left:0}
.view[data-up] .view-panel{top:auto;bottom:calc(100% + var(--s1))}
.view-panel button{flex:none;width:var(--h-control);padding:0;color:var(--text-2)}
.toast{position:fixed;left:50%;top:var(--float-top);z-index:20;padding:var(--s2) var(--s4);
  border-radius:999px;background:var(--text);color:var(--bg);font-size:var(--fs-dense);font-weight:var(--w-ui);
  box-shadow:var(--shadow);pointer-events:none;opacity:0;transform:translate(-50%,-.75rem);
  transition:opacity var(--t-slow),transform var(--t-slow) var(--ease)}
.toast[data-on]{opacity:1;transform:translate(-50%,0)}
.toast[popover],.offer{right:auto;bottom:auto;margin:0;border:0;overflow:visible}
.offer{position:fixed;left:50%;top:auto;bottom:var(--float-bottom);z-index:20;display:flex;align-items:center;gap:var(--s3);
  padding:var(--s1) var(--s1) var(--s1) var(--s4);border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:var(--shadow);
  font-size:var(--fs-dense);transform:translate(-50%,0);transition:opacity var(--t-slow),transform var(--t-slow) var(--ease)}
.offer:not(:popover-open){display:none}
@starting-style{ .offer:popover-open{opacity:0;transform:translate(-50%,var(--s2))} }

.katex{font-size:var(--fs-math);hyphens:manual}
.formula{margin:var(--s5) 0;padding-block:2px;overflow-x:auto;overflow-y:hidden;text-align:center}
.formula .katex-display{margin:0}
.katex-display{margin:var(--s5) 0}

@media (prefers-reduced-motion:reduce){ :root{--t-fast:1ms;--t-slow:1ms} }
@media print{
  .nav-open,.sheet,.toast,.offer,.copy,.skip,.view{display:none!important}
  .page{padding:0}
  .section{break-inside:avoid-page}
  .wide table,.prose table{width:100%;max-width:none}
  .prose :is(th,td),.prose td.long{min-width:0;max-width:none}
  .fold-body{height:auto!important}
}
