/* 1100px and under (the phone layer, 3 October 2026): the legal pages' Contents control, moved out of world-legal.css
   unchanged and linked with media="(max-width:1100px)" immediately after it, before world-legal-phone.css. interior.js
   loads legal-contents.js only at these widths, so the list marker, the pill and the sheet exist only here; at 1101px and
   wider the static list is exactly as it was. */

/* Contents control (3 October 2026, owner-approved from an Impeccable audit; legal-contents.js, mounted by interior.js).
   Everything here waits for html.legal-cx-js, which the module sets: without it the static list above stays as it was.
   The current section is marked in the list at every width (a gold marker beside the entry, its number in ink); at
   1101px and wider that list is the sticky one beside the document. Below 1101px a dark pill (the Features page's
   Contents bar in look) docks bottom centre, between the Pause pill (bottom left, right edge about 102px) and
   back-to-top (bottom right), above the home bar, and opens a bottom sheet of every section. */
html.legal-cx-js .superstrate-interior-page .legal-toc{margin-left:-12px;padding-left:12px}
html.legal-cx-js .superstrate-interior-page .legal-toc li{position:relative}
html.legal-cx-js .superstrate-interior-page .legal-toc li::after{content:"";position:absolute;left:-12px;top:.12em;bottom:.12em;width:3px;border-radius:2px;background:#e2b400;opacity:0;transition:opacity .2s}
html.legal-cx-js .superstrate-interior-page .legal-toc li.is-current::after{opacity:1}
html.legal-cx-js .superstrate-interior-page .legal-toc li.is-current::before{color:#1c1b1f;font-weight:700}
.superstrate-interior-page .legal-cx{display:none}
@media (max-width:1100px){
 html.legal-cx-js .superstrate-interior-page .legal-toc{margin-left:0;padding-left:22px}
 /* The pill: fixed width (the label never makes it jump), clear of both corner controls. */
 html.legal-cx-js .superstrate-interior-page .legal-cx{
  --lc-h:44px;--lc-b:14px;--lc-side:110px;
  position:fixed;left:50%;bottom:calc(var(--lc-b) + env(safe-area-inset-bottom,0px));z-index:41;
  display:flex;align-items:center;gap:8px;box-sizing:border-box;width:min(360px,calc(100vw - 2 * var(--lc-side)));height:var(--lc-h);
  margin:0;padding:0 12px 0 8px;border:0;border-radius:14px;overflow:hidden;
  background:#1c1b1f;color:#f6f3ec;box-shadow:0 12px 28px -10px rgba(28,27,31,.45);font:inherit;text-align:left;cursor:pointer;
  opacity:0;visibility:hidden;transform:translate(-50%,10px);
  transition:opacity .2s,transform .25s cubic-bezier(.16,1,.3,1),visibility 0s linear .25s;
 }
 html.legal-cx-js .superstrate-interior-page .legal-cx.is-shown{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .2s,transform .25s cubic-bezier(.16,1,.3,1),visibility 0s}
 html.legal-cx-js .superstrate-interior-page .legal-cx:focus-visible{outline:2px solid #ffd700;outline-offset:3px}
 html.legal-cx-js .superstrate-interior-page .legal-cx-num{
  flex:0 0 auto;min-width:22px;box-sizing:border-box;padding:2px 6px;border-radius:999px;background:#ffd64e;color:#1c1b1f;
  font-size:12px;line-height:1.35;font-weight:700;text-align:center;font-variant-numeric:tabular-nums;
 }
 html.legal-cx-js .superstrate-interior-page .legal-cx-now{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.3;font-weight:600;letter-spacing:-.01em}
 html.legal-cx-js .superstrate-interior-page .legal-cx-chev{flex:0 0 auto;color:rgba(246,243,236,.7)}
 /* The reader's place in the document: a 2px track along the foot of the pill, filled in gold (--lc-p, 0 to 1). */
 html.legal-cx-js .superstrate-interior-page .legal-cx-progress{position:absolute;left:12px;right:12px;bottom:5px;height:2px;border-radius:2px;background:rgba(246,243,236,.14);overflow:hidden}
 html.legal-cx-js .superstrate-interior-page .legal-cx-progress::after{content:"";position:absolute;inset:0;background:#ffd64e;transform-origin:left;transform:scaleX(var(--lc-p,0));transition:transform .3s cubic-bezier(.16,1,.3,1)}
 /* The document's end clears the pill: its last lines can always be read above it. */
 html.legal-cx-js .superstrate-interior-page .legal-doc{padding-bottom:max(clamp(72px,8vw,128px),calc(82px + env(safe-area-inset-bottom,0px)))}
}
/* The sheet: a modal dialog rising from the bottom edge, every section in the list's order, the current one marked. */
.superstrate-interior-page .legal-sheet{
 position:fixed;inset:auto 0 0;box-sizing:border-box;width:min(560px,100%);max-width:100%;max-height:min(80svh,680px);
 margin:0 auto;padding:0;border:0;border-radius:20px 20px 0 0;background:#fffbf2;color:#1c1b1f;
 box-shadow:0 -18px 50px rgba(28,27,31,.28);overflow:hidden;
}
.superstrate-interior-page .legal-sheet[open]{display:flex;flex-direction:column}
.superstrate-interior-page .legal-sheet::backdrop{background:rgba(28,27,31,.34)}
html.legal-sheet-open{overflow:hidden}
.superstrate-interior-page .legal-sheet-inner{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.superstrate-interior-page .legal-sheet-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 10px 6px 22px;border-bottom:1px solid #e3decf}
.superstrate-interior-page .legal-sheet-grip{position:absolute;left:50%;top:7px;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:rgba(28,27,31,.18)}
.superstrate-interior-page .legal-sheet-title{margin:0;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#45473f}
.superstrate-interior-page .legal-sheet-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:#1c1b1f}
.superstrate-interior-page .legal-sheet-close:focus-visible{outline:2px solid #1c1b1f;outline-offset:-2px}
.superstrate-interior-page .legal-sheet-list{flex:1 1 auto;min-height:0;margin:0;padding:8px 10px calc(14px + env(safe-area-inset-bottom,0px));list-style:none;overflow-y:auto;overscroll-behavior:contain}
.superstrate-interior-page .legal-sheet-list a{
 position:relative;display:grid;grid-template-columns:2.4em minmax(0,1fr);align-items:baseline;box-sizing:border-box;min-height:44px;
 padding:11px 12px;border-radius:10px;font-size:16px;line-height:1.35;color:#1c1b1f;text-decoration:none;
}
.superstrate-interior-page .legal-sheet-num{color:#45473f;font-variant-numeric:tabular-nums}
.superstrate-interior-page .legal-sheet-list a[aria-current]{background:rgba(255,214,78,.3);font-weight:600}
.superstrate-interior-page .legal-sheet-list a[aria-current]::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:#e2b400}
.superstrate-interior-page .legal-sheet-list a[aria-current] .legal-sheet-num{color:#1c1b1f;font-weight:700}
.superstrate-interior-page .legal-sheet-list a:focus-visible{outline:2px solid #1c1b1f;outline-offset:-2px}
@media (hover:hover){
 .superstrate-interior-page .legal-sheet-list a:hover,.superstrate-interior-page .legal-sheet-close:hover{background:rgba(28,27,31,.05)}
 .superstrate-interior-page .legal-sheet-list a[aria-current]:hover{background:rgba(255,214,78,.4)}
}
/* It slides up and back down; under reduced motion it simply appears and goes (no slide, no fade). */
@media (prefers-reduced-motion:no-preference){
 .superstrate-interior-page .legal-sheet{transform:translateY(100%);transition:transform .34s cubic-bezier(.16,1,.3,1),overlay .34s allow-discrete,display .34s allow-discrete}
 .superstrate-interior-page .legal-sheet[open]{transform:none}
 .superstrate-interior-page .legal-sheet::backdrop{opacity:0;transition:opacity .34s,overlay .34s allow-discrete,display .34s allow-discrete}
 .superstrate-interior-page .legal-sheet[open]::backdrop{opacity:1}
 @starting-style{
  .superstrate-interior-page .legal-sheet[open]{transform:translateY(100%)}
  .superstrate-interior-page .legal-sheet[open]::backdrop{opacity:0}
 }
}
@media (prefers-reduced-motion:reduce){
 html.legal-cx-js .superstrate-interior-page .legal-cx,html.legal-cx-js .superstrate-interior-page .legal-cx.is-shown,
 html.legal-cx-js .superstrate-interior-page .legal-cx-progress::after,html.legal-cx-js .superstrate-interior-page .legal-toc li::after{transition:none}
 html.legal-cx-js .superstrate-interior-page .legal-cx{transform:translate(-50%,0)}
}
@media print{
 .superstrate-interior-page .legal-cx,.superstrate-interior-page .legal-sheet{display:none!important}
}
