.ftoc{--ftoc-ink:#423846;--ftoc-purple:#8c69ce;--ftoc-coral:#df7461;--ftoc-ease:cubic-bezier(.22,1,.36,1);--ftoc-time:400ms;position:relative;z-index:78;color:var(--ftoc-ink)}
.ftoc-trigger{position:fixed;left:var(--ftoc-left,230px);top:var(--ftoc-trigger-top,35vh);display:flex;align-items:center;gap:9px;padding:12px 12px 12px 10px;border:0!important;border-radius:0 18px 18px 0;background:linear-gradient(115deg,rgba(246,240,255,.92),rgba(255,250,248,.66));box-shadow:4px 8px 25px #57436110;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);color:#7c6497;font-size:11px;cursor:pointer;transition:opacity var(--ftoc-time),transform var(--ftoc-time) var(--ftoc-ease),background var(--ftoc-time)}
.ftoc-trigger svg{width:19px;height:19px}.ftoc-trigger i{width:2px;height:28px;display:block;border-radius:5px;background:linear-gradient(#b094dd,#eda18b);opacity:.7;margin-left:3px}.ftoc-trigger:hover{transform:translateX(3px);color:#79549f}.ftoc-trigger:focus-visible,.ftoc-actions button:focus-visible{outline:2px solid #a47dd0;outline-offset:3px}
.ftoc-panel{position:fixed;left:clamp(12px,calc(var(--ftoc-left,230px) + 44px),calc(100vw - 326px));top:var(--ftoc-top,120px);width:310px;max-height:calc(100dvh - var(--ftoc-top,120px) - 16px);display:flex;flex-direction:column;padding:15px 10px 13px;border:0!important;border-radius:24px;background:linear-gradient(140deg,rgba(251,247,255,.88),rgba(255,249,246,.77) 60%,rgba(250,247,255,.77));box-shadow:0 24px 72px #4a2c6c21,0 3px 13px #4a2c6c0c,inset 0 1px 1px #ffffffe6;backdrop-filter:blur(28px) saturate(165%);-webkit-backdrop-filter:blur(28px) saturate(165%);opacity:0;transform:translateX(-20px) scale(.97);transform-origin:left center;pointer-events:none;transition:opacity var(--ftoc-time) var(--ftoc-ease),transform var(--ftoc-time) var(--ftoc-ease)}
.ftoc-panel[hidden]{display:none!important}.ftoc[data-open="true"] .ftoc-panel{opacity:1;transform:translateX(0) scale(1);pointer-events:auto}.ftoc[data-open="true"] .ftoc-trigger{opacity:0;pointer-events:auto;transform:translateX(-5px)}
.ftoc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 7px 12px 13px}.ftoc-title{margin:0!important;font-size:12px!important;font-weight:620!important;letter-spacing:.02em;color:#7d658a;line-height:1.4!important}.ftoc-actions{display:flex;gap:3px}.ftoc-actions button{width:29px;height:29px;display:grid;place-items:center;border:0!important;border-radius:9px;background:transparent;color:#74697a;padding:5px;cursor:pointer;transition:color 240ms,background 240ms}.ftoc-actions button:hover{color:#825dac;background:#ffffff80}.ftoc-actions svg{width:18px;height:18px}.ftoc-pin[aria-pressed="true"]{background:#eae0f580;color:#805caf}
.ftoc-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#b6a1ce70 transparent;overscroll-behavior-y:contain;scroll-behavior:smooth;padding:0 6px 5px;max-height:none}.ftoc-scroll::-webkit-scrollbar{width:5px}.ftoc-scroll::-webkit-scrollbar-thumb{background:#b6a1ce70;border-radius:6px}.ftoc-scroll::-webkit-scrollbar-track{background:transparent}.ftoc-scroll a,.ftoc-scroll button{text-decoration:none}
.ftoc-scroll :is([aria-current="true"],[aria-current="page"],.is-selected){color:#9d5b55}.ftoc-scroll .ew-outline-item{padding:12px 13px;margin:0 0 3px;border-radius:14px;color:#65596d;transition:background 320ms,color 320ms,transform 400ms var(--ftoc-ease)}.ftoc-scroll .ew-outline-item>span{color:#766a7b;font-size:10px;letter-spacing:.045em}.ftoc-scroll .ew-outline-item strong{font-size:12px;font-weight:570;line-height:1.65}.ftoc-scroll .ew-outline-item:hover{background:#ffffff77;transform:translateX(2px)}.ftoc-scroll .ew-outline-item.is-selected{background:linear-gradient(95deg,#f8e8e3c9,#f5e9f080);color:#945f56}.ftoc-scroll .ew-outline-item.is-selected::before{left:0;width:2px;top:17px;bottom:17px;background:linear-gradient(#d98d7c,#ae88ce)}
.ftoc.is-narrow .ftoc-trigger{left:16px;top:auto;bottom:calc(16px + env(safe-area-inset-bottom));border-radius:16px;padding:11px 14px;background:#fbf7ffeb;box-shadow:0 9px 32px #55436b28;font-size:12px}.ftoc.is-narrow .ftoc-trigger i{height:20px}.ftoc.is-narrow .ftoc-panel{left:12px;right:12px;top:auto;bottom:calc(68px + env(safe-area-inset-bottom));width:auto;max-height:calc(100dvh - 84px - env(safe-area-inset-bottom));border-radius:24px;transform:translateY(15px) scale(.98);transform-origin:center bottom}.ftoc.is-narrow[data-open="true"] .ftoc-panel{transform:translateY(0) scale(1)}.ftoc.is-narrow .ftoc-scroll{padding-bottom:10px}.ftoc.is-narrow .ftoc-head{padding-bottom:12px}.ftoc.is-narrow .ftoc-title{font-size:13px!important}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ftoc-panel{background:#f9f4fcee}.ftoc-trigger{background:#f5effaee}}
@media(prefers-reduced-motion:reduce){.ftoc *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* The outline floats as text, without a surrounding card. */
.ftoc-panel,.ftoc.is-narrow .ftoc-panel{border:0!important;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.ftoc-panel::before{content:"";position:absolute;inset:-12px -16px;z-index:-1;background:rgba(253,250,255,.97);filter:blur(20px);pointer-events:none}
.ftoc-scroll :is(button,a),.ftoc-scroll .ew-outline-item{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
.ftoc-scroll .ew-outline-item:hover{color:#825dac}
.ftoc-scroll .ew-outline-item.is-selected{color:#945f56}
.ftoc-actions button,.ftoc-pin[aria-pressed="true"]{background:transparent;border-radius:0;box-shadow:none}
.ftoc-actions button:hover{background:transparent;color:#825dac}
.ftoc-pin[aria-pressed="true"]{color:#805caf}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ftoc-panel{background:transparent}}
/* Keep the narrow-screen directory controls below the fixed site navigation. */
.ftoc.is-narrow .ftoc-panel{max-height:calc(100dvh - 200px - env(safe-area-inset-bottom))}
