.fde-story{--fde-purple:#bcb3ff;--fde-blue:#99c9ff;--fde-gold:#edd58b;--fde-green:var(--accent)}
[data-theme=light] .fde-story{--fde-purple:#6b50b6;--fde-blue:#2b659d;--fde-gold:#7d5b0e}
.fde-jumps{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0 30px;font-size:12px}.fde-jumps>span{color:var(--text-muted);margin-right:auto}.fde-jumps a{border:1px solid var(--border-strong);border-radius:30px;padding:12px 16px;color:var(--text-secondary);transition:background .2s,border-color .2s}.fde-jumps a:hover{border-color:var(--accent);background:var(--accent-wash)}
.fde-chapter{padding-block:65px;scroll-margin-top:100px}.fde-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:55px;align-items:end;margin-bottom:36px}.fde-eyebrow{font-size:11px;letter-spacing:.13em;line-height:1.7;color:var(--accent);margin:0 0 12px}.fde-heading h2{font-size:clamp(29px,3.4vw,46px);font-weight:500;line-height:1.25;letter-spacing:-.035em;margin:0}.fde-heading>p{font-size:15px;line-height:1.85;color:var(--text-secondary);margin:0;max-width:450px}
.fde-architecture{display:grid;grid-template-columns:1fr 220px 1fr;gap:18px;align-items:stretch}.fde-zone{background:var(--surface-raised);border:1px solid var(--border-strong);padding:27px;border-radius:14px;position:relative;overflow:hidden}.fde-zone::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--fde-blue)}.fde-cloud::before{background:var(--fde-purple)}.fde-zone-label{font-size:10px;letter-spacing:.07em;color:var(--text-muted)}.fde-zone h3{font-size:24px;font-weight:500;margin:17px 0 25px}.fde-zone ul{list-style:none;padding:0;margin:0}.fde-zone li{padding:15px 0;border-top:1px solid var(--border);line-height:1.7}.fde-zone li b{font-size:14px;display:block;color:var(--text-primary);font-weight:500}.fde-zone li span{font-size:12px;color:var(--text-secondary)}
.fde-bridge{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:20px 0}.fde-gate{border:1px solid var(--accent);border-radius:18px;background:var(--surface-raised);text-align:center;padding:24px 14px;z-index:1;width:100%;box-shadow:0 0 55px color-mix(in srgb,var(--accent) 6%,transparent)}.fde-gate-icon{width:47px;height:47px;display:grid;place-items:center;margin:auto;border-radius:50%;border:1px solid var(--border-strong);font-size:25px;color:var(--accent);animation:fde-breathe 4s ease-in-out infinite}.fde-gate h3{font-size:21px;font-weight:500;margin:18px 0 9px}.fde-gate p{font-size:12px;margin:0 0 17px;color:var(--accent)}.fde-gate-pills{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.fde-gate-pills span{font-size:10px;padding:6px 8px;border-radius:5px;background:var(--surface-overlay);border:1px solid var(--border)}.fde-bridge>small{color:var(--text-muted);font-size:11px;line-height:1.8;text-align:center;position:absolute;bottom:5px}.fde-wire{position:absolute;top:43%;height:1px;left:-18px;right:-18px;background:var(--border-strong)}.fde-wire::after{content:"";position:absolute;width:9px;height:3px;background:var(--accent);top:-1px;animation:fde-packet 3s linear infinite}.fde-wire.reverse{top:58%}.fde-wire.reverse::after{animation-direction:reverse;animation-delay:-1.4s}.fde-caption{display:flex;gap:12px;align-items:flex-start;margin-top:20px}.fde-caption p{font-size:12px;color:var(--text-muted);line-height:1.8;margin:0}.fde-live-dot{flex:0 0 6px;width:6px;height:6px;border-radius:50%;margin-top:8px;background:var(--accent);animation:fde-breathe 3s ease-in-out infinite}
.fde-order-section{background:var(--surface-raised);border-block:1px solid var(--border)}.fde-step-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.fde-step-button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:9px;min-width:0;min-height:158px;padding:18px;border:1px solid var(--border-strong);border-radius:10px;position:relative;background:var(--surface);transition:border-color .25s,background .25s,transform .25s;cursor:pointer}.fde-step-button:hover{transform:translateY(-3px);border-color:var(--accent)}.fde-step-button[aria-selected=true]{border-color:var(--accent);background:var(--accent-wash)}.fde-step-number{font-family:"Bricolage",var(--font-body);font-size:23px;font-variant-numeric:tabular-nums;color:var(--text-muted)}.fde-step-button[aria-selected=true] .fde-step-number{color:var(--accent)}.fde-step-button b{font-size:15px;font-weight:500}.fde-step-button small{font-size:11px;color:var(--text-secondary);line-height:1.5}.fde-step-owner{position:absolute;top:23px;right:14px;color:var(--text-muted);font-size:10px}.fde-step-button[aria-selected=true]::after{content:"";height:2px;background:var(--accent);position:absolute;bottom:0;left:18px;right:18px}
.fde-panels{margin-top:22px}.fde-panel{border:1px solid var(--border-strong);background:var(--surface);border-radius:14px;padding:30px;margin-top:15px}.fde-panel[hidden]{display:none}.fde-panel-heading{display:flex;align-items:center;gap:24px}.fde-panel-number{font-family:"Bricolage",var(--font-body);font-size:64px;line-height:1;letter-spacing:-.05em;color:var(--accent)}.fde-panel-heading .fde-eyebrow{display:block;margin-bottom:7px}.fde-panel h3{font-weight:500;font-size:25px;margin:0}.fde-panel>p{font-size:15px;color:var(--text-secondary);line-height:1.9;max-width:850px;margin:24px 0}.fde-panel-facts{display:grid;grid-template-columns:1fr 1fr;gap:25px;border-top:1px solid var(--border);padding-top:20px}.fde-panel-facts span{font-size:10px;color:var(--text-muted);display:block;margin-bottom:9px}.fde-panel-facts b{font-size:13px;line-height:1.7;font-weight:500}.fde-panel-facts>div:last-child b{color:var(--fde-gold)}.fde-enhanced .fde-panel{animation:fde-detail-in .3s ease-out}.fde-step-controls{display:flex;justify-content:space-between;align-items:center;margin:18px 0 0}.fde-step-controls[hidden]{display:none}.fde-step-controls button{font-size:12px;min-height:44px;padding:10px 15px;border:1px solid var(--border-strong);border-radius:30px;cursor:pointer}.fde-step-controls button:disabled{opacity:.4;cursor:default}.fde-step-controls button:not(:disabled):hover{border-color:var(--accent)}.fde-step-controls>span{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.fde-success{display:flex;align-items:center;gap:20px;padding:27px 30px;border:1px solid var(--border-strong);border-radius:12px;margin-top:34px}.fde-success>span{font-size:26px;color:var(--accent);border:1px solid var(--accent);border-radius:50%;width:46px;height:46px;flex-shrink:0;display:grid;place-items:center}.fde-success h3{font-size:19px;font-weight:500;margin:0 0 10px}.fde-success p{font-size:13px;color:var(--text-secondary);line-height:1.8;margin:0}
.fde-knowledge-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:25px}.fde-ontology{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:14px;padding:24px;display:flex;flex-direction:column;justify-content:center}.fde-ontology svg{width:100%;height:auto;display:block;overflow:visible}.fde-edges path{fill:none;stroke:var(--border-strong);stroke-width:2}.fde-traces path{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:10 170;animation:fde-trace 5s linear infinite}.fde-graph-labels text{fill:var(--text-muted);font-size:13px;text-anchor:middle}.fde-graph-nodes rect{fill:var(--surface-overlay);stroke:var(--border-strong)}.fde-graph-nodes text{fill:var(--text-primary);font-size:16px;text-anchor:middle}.fde-graph-nodes .fde-central-node{fill:var(--accent);stroke:var(--accent)}.fde-graph-nodes .fde-central-text{fill:var(--accent-ink);font-size:22px;font-weight:500}.fde-ontology>p{font-size:12px;color:var(--text-muted);line-height:1.8;margin:0}.fde-layers{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.fde-layers li{border:1px solid var(--border-strong);background:var(--surface-raised);border-radius:10px;padding:21px;display:flex;align-items:center;gap:19px;transition:transform .3s,border-color .3s}.fde-layers li:hover{transform:translateX(-5px);border-color:var(--accent)}.fde-layers li>span{font-family:"Bricolage",var(--font-body);font-size:21px;color:var(--accent);min-width:29px}.fde-layers li:nth-child(2)>span{color:var(--fde-blue)}.fde-layers li:nth-child(3)>span{color:var(--fde-purple)}.fde-layers li:nth-child(4)>span{color:var(--text-muted)}.fde-layers h3{font-size:15px;font-weight:500;margin:0 0 9px}.fde-layers p{font-size:12px;line-height:1.7;color:var(--text-secondary);margin:0}.fde-support-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:28px}.fde-support-grid article{border-top:1px solid var(--border-strong);padding:25px 0}.fde-support-grid h3{font-size:19px;line-height:1.5;font-weight:500;margin:12px 0}.fde-support-grid p{font-size:14px;color:var(--text-secondary);line-height:1.9;margin:0}.fde-source-note{border-left:2px solid var(--accent);background:var(--surface-raised);padding:22px 28px;margin-top:12px;border-radius:0 10px 10px 0}.fde-source-note h3{font-size:14px;font-weight:500;margin:0 0 10px}.fde-source-note p{font-size:12px;color:var(--text-muted);line-height:1.85;margin:10px 0 0}
.fde-story button:focus-visible,.fde-story a:focus-visible,.fde-panel:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@keyframes fde-packet{from{left:0;opacity:0}15%,85%{opacity:1}to{left:calc(100% - 9px);opacity:0}}@keyframes fde-breathe{50%{opacity:.55;box-shadow:0 0 22px color-mix(in srgb,var(--accent) 18%,transparent)}}@keyframes fde-trace{to{stroke-dashoffset:-180}}@keyframes fde-detail-in{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.fde-architecture{grid-template-columns:1fr 180px 1fr;gap:12px}.fde-zone{padding:22px 18px}.fde-zone h3{font-size:21px}.fde-step-button{padding:15px}.fde-step-owner{right:10px;font-size:9px}}
@media(max-width:760px){.fde-chapter{padding-block:42px;scroll-margin-top:90px}.fde-heading{grid-template-columns:1fr;gap:20px;margin-bottom:25px}.fde-heading h2{font-size:31px}.fde-heading>p{font-size:14px}.fde-jumps{gap:8px;padding-bottom:8px}.fde-jumps>span{width:100%;margin-bottom:5px}.fde-jumps a{padding:10px 12px;font-size:11px}.fde-architecture{grid-template-columns:1fr;gap:12px}.fde-zone{padding:22px}.fde-zone h3{margin:14px 0 18px}.fde-zone li{padding:10px 0}.fde-zone li b{display:inline-block;width:45%;font-size:12px;vertical-align:top}.fde-zone li span{font-size:11px;display:inline-block;width:55%}.fde-bridge{padding:16px 15px 44px}.fde-gate{padding:19px;display:grid;grid-template-columns:43px 1fr;gap:7px 15px;text-align:left;align-items:center}.fde-gate-icon{grid-row:1/span 3;width:43px;height:43px}.fde-gate h3{font-size:20px;margin:0}.fde-gate p{margin:0}.fde-gate-pills{justify-content:flex-start}.fde-wire{top:-12px;bottom:-12px;left:50%;right:auto;width:1px;height:auto}.fde-wire::after{width:3px;height:9px;left:-1px!important;animation:fde-packet-vertical 3s linear infinite}.fde-wire.reverse{display:none}.fde-bridge>small{bottom:5px;line-height:1.7;font-size:10px}.fde-bridge>small br{display:none}.fde-bridge>small br::after{content:" · "}.fde-step-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fde-step-button{min-height:146px;padding:15px 13px}.fde-step-button b{font-size:13px}.fde-step-button small{font-size:10px}.fde-step-owner{top:21px;right:10px;font-size:9px}.fde-panel{padding:23px 20px}.fde-panel-number{font-size:51px}.fde-panel-heading{gap:18px}.fde-panel h3{font-size:21px}.fde-panel>p{font-size:14px;margin:19px 0}.fde-panel-facts{grid-template-columns:1fr;gap:20px}.fde-success{padding:23px 19px;gap:15px;align-items:flex-start}.fde-success h3{font-size:17px;line-height:1.6}.fde-success p{font-size:12px}.fde-success>span{width:35px;height:35px;font-size:20px}.fde-knowledge-grid,.fde-support-grid{grid-template-columns:1fr;gap:17px}.fde-ontology{padding:20px 12px}.fde-ontology>.fde-zone-label,.fde-ontology>p{padding-inline:8px}.fde-layers li{padding:18px}.fde-support-grid{margin-top:16px}.fde-support-grid article{padding-block:20px}.fde-source-note{padding:20px}.fde-story{overflow-wrap:break-word}}
@keyframes fde-packet-vertical{from{top:0;opacity:0}15%,85%{opacity:1}to{top:calc(100% - 9px);opacity:0}}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .fde-story *,html:not([data-motion=on]) .fde-story *::after{animation:none;transition:none}}
