#fm-space{--fm-bg:var(--ground);--fm-surface:var(--ground-2);--fm-ink:var(--ink);--fm-muted:var(--muted);--fm-line:var(--line);--fm-gold:var(--gold);--fm-blue:var(--cobalt);font-family:var(--sans);color:var(--ink);background:var(--ground);position:relative;overflow:hidden;isolation:isolate}
#fm-space *{box-sizing:border-box}#fm-space button{font:inherit;color:inherit;cursor:pointer}#fm-space .ms-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 24px;border-bottom:1px solid var(--fm-line);position:relative;z-index:5;background:var(--fm-bg)}#fm-space .ms-brand{font:11px ui-monospace,monospace;letter-spacing:2px;white-space:nowrap}#fm-space .ms-poles{color:var(--fm-gold);letter-spacing:0}#fm-space .ms-poles b{color:var(--fm-blue);font-weight:400}#fm-space .ms-tools{display:flex;gap:5px;flex-wrap:wrap}#fm-space .ms-tools button{font:10px ui-monospace,monospace;min-height:40px;padding:8px 11px;border:1px solid transparent;background:transparent;color:var(--fm-muted);border-radius:3px}#fm-space .ms-tools button[aria-pressed=true]{border-color:var(--fm-line);color:var(--fm-ink);background:var(--fm-surface)}#fm-space .ms-room{position:relative;height:540px;touch-action:pan-y;background:radial-gradient(ellipse at 48% 50%,color-mix(in srgb,var(--fm-blue) 8%,transparent),transparent 55%),radial-gradient(ellipse at 38% 55%,color-mix(in srgb,var(--fm-gold) 5%,transparent),transparent 58%)}#fm-space canvas{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#fm-space .ms-heading{position:absolute;top:26px;left:28px;z-index:2;pointer-events:none;max-width:340px}#fm-space .ms-heading small{font:10px ui-monospace,monospace;color:var(--fm-muted);letter-spacing:2px}#fm-space .ms-heading h1{font-size:30px;line-height:1.1;font-weight:450;letter-spacing:-1.2px;margin:12px 0 9px}#fm-space .ms-heading p{font-size:12px;line-height:1.5;color:var(--fm-muted);margin:0}#fm-space .ms-labels{position:absolute;inset:0;pointer-events:none}#fm-space .ms-node{pointer-events:auto;position:absolute;top:0;left:0;min-height:44px;padding:6px 12px;background:color-mix(in srgb,var(--fm-bg) 90%,transparent);border:1px solid transparent;border-radius:4px;min-width:112px;white-space:nowrap;text-align:center;box-shadow:0 5px 22px color-mix(in srgb,var(--fm-bg) 50%,transparent);will-change:transform}#fm-space .ms-node strong{font-weight:450;font-size:16px;letter-spacing:-.45px;display:block}#fm-space .ms-node span{font:11px ui-monospace,monospace;color:var(--fm-muted);display:block;margin-top:4px;letter-spacing:.5px}#fm-space .ms-node:hover,#fm-space .ms-node[aria-pressed=true]{border-color:var(--fm-gold)}#fm-space .ms-node[aria-pressed=true] strong{color:var(--fm-gold)}#fm-space button:focus-visible,#fm-space a:focus-visible{outline:2px solid var(--fm-gold);outline-offset:4px}#fm-space .ms-bottom{position:relative;z-index:5;background:var(--fm-bg);border-top:1px solid var(--fm-line);padding:20px 28px;display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:116px}#fm-space .ms-detail{max-width:610px}#fm-space .ms-detail small{font:9px ui-monospace,monospace;color:var(--fm-gold);letter-spacing:1.5px}#fm-space .ms-detail h2{font-weight:450;font-size:20px;letter-spacing:-.6px;margin:7px 0 5px}#fm-space .ms-detail p{font-size:12px;color:var(--fm-muted);margin:0;line-height:1.6}#fm-space .ms-return{background:transparent;border:1px solid var(--fm-line);padding:11px 16px;min-height:44px;border-radius:3px;font:10px ui-monospace,monospace;white-space:nowrap}#fm-space .ms-foot{padding:12px 28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--fm-muted);font:9px ui-monospace,monospace;letter-spacing:.4px;background:var(--fm-surface)}#fm-space .ms-foot a{color:var(--fm-muted);min-height:28px;display:inline-flex;align-items:center}#fm-space .ms-help{position:absolute;right:22px;bottom:16px;font:9px ui-monospace,monospace;letter-spacing:.5px;color:var(--fm-muted);pointer-events:none}#fm-space .ms-status{font:9px ui-monospace,monospace;position:absolute;right:25px;top:28px;color:var(--fm-muted);letter-spacing:1px}
@media(max-width:600px){#fm-space .ms-head{padding:12px 14px;gap:8px;align-items:flex-start}#fm-space .ms-brand{font-size:9px;letter-spacing:1px;line-height:40px}#fm-space .ms-tools{justify-content:flex-end;gap:1px}#fm-space .ms-tools button{padding:7px;font-size:9px;min-height:40px}#fm-space .ms-room{height:570px}#fm-space .ms-heading{top:22px;left:20px;max-width:230px}#fm-space .ms-heading h1{font-size:26px}#fm-space .ms-heading small{font-size:9px}#fm-space .ms-status{top:125px;font-size:8px;right:17px}#fm-space .ms-node{min-width:102px;padding:6px 8px}#fm-space .ms-node strong{font-size:14px}#fm-space .ms-node span{font-size:11px}#fm-space .ms-bottom{padding:18px 20px;gap:16px;align-items:flex-start;flex-direction:column}#fm-space .ms-detail h2{font-size:19px}#fm-space .ms-foot{padding:10px 20px;font-size:8px}#fm-space .ms-help{left:20px;right:auto;font-size:8px}}

#fm-space .ms-room{height:clamp(540px,65vh,760px)}
#fm-space .ms-room:before{content:"";position:absolute;inset:0;background:url(matrix-night.webp) center/cover no-repeat;opacity:.23;pointer-events:none}
html[data-theme=light] #fm-space .ms-room:before{background-image:url(matrix-day.webp);opacity:.3}
#fm-space .ms-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
#fm-space .ms-open{padding:12px 18px;border:1px solid var(--fm-gold);min-height:44px;font-size:13px;color:var(--fm-ink)}
#fm-space [hidden]{display:none!important}#fm-space .ms-access{font-size:12px;margin-top:8px;color:var(--fm-muted)}
#fm-space .ms-foot a,#fm-space .ms-foot button{min-height:44px}#fm-space .ms-foot button{background:transparent;border:1px solid var(--fm-line);padding:8px 12px;font-size:11px}
#fm-space .ms-node svg{width:18px;height:18px;margin:0 auto 4px;display:block;stroke:var(--fm-gold);fill:none;stroke-width:1.3}
#fm-space .ms-node span{font-size:10px;margin-top:2px}#fm-space .ms-node strong{font-size:15px}
.ms-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#fm-space .ms-list{display:flex;flex-wrap:wrap;gap:12px;padding:16px 28px;border-top:1px solid var(--fm-line);font-size:12px}
#fm-space .ms-list a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:600px){#fm-space .ms-room{height:590px}#fm-space .ms-help{font-size:8px;max-width:260px}#fm-space .ms-actions{width:100%}#fm-space .ms-node strong{font-size:14px}#fm-space .ms-heading p{max-width:220px}}

/* The interactive surface is the cube face itself, projected into the scene. */
#fm-space .ms-node{width:180px!important;height:180px!important;min-width:0;min-height:0;padding:0;border:0!important;border-radius:0;background:none!important;box-shadow:none!important;transform-origin:0 0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;white-space:nowrap;will-change:transform;backface-visibility:hidden;color:var(--fm-ink)}
#fm-space .ms-node svg{width:38px;height:38px;margin:0;stroke:var(--cube-ink);stroke-width:1.15;flex-shrink:0}
#fm-space .ms-node strong{font-size:27px;letter-spacing:-.7px;font-weight:450;line-height:1.15;color:var(--fm-ink)}
#fm-space .ms-node .ms-enter{display:none;font-size:15px;letter-spacing:.5px;line-height:1.2;color:var(--cube-ink)}
#fm-space .ms-node[aria-pressed=true] .ms-enter{display:block}
#fm-space .ms-node:hover strong,#fm-space .ms-node[aria-pressed=true] strong{color:var(--fm-ink)}
#fm-space .ms-node:focus-visible{outline:2px solid var(--cube-ink);outline-offset:-5px}
#fm-space .ms-room:before{opacity:.09;filter:blur(5px);transition:opacity .6s}
html[data-theme=light] #fm-space .ms-room:before{opacity:.13}
#fm-space[data-selected] .ms-room:before,html[data-theme=light] #fm-space[data-selected] .ms-room:before{opacity:.035}
#fm-space .ms-heading h1{font-size:clamp(24px,2.5vw,34px);letter-spacing:-1.2px}
@media(max-width:600px){#fm-space .ms-heading{max-width:270px}#fm-space .ms-heading h1{font-size:26px}#fm-space .ms-help{max-width:285px;font-size:9px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){#fm-space .ms-room:before{transition:none}}


#fm-space .ms-help{max-width:440px;line-height:1.5}
@media(max-width:600px){#fm-space .ms-help{max-width:285px}}

#fm-space .ms-room{overflow:hidden}

/* Recessed, decorative previews, distinct from the front-face controls. */
#fm-space .ms-screen{position:absolute;left:0;top:0;width:180px;height:180px;pointer-events:none;transform-origin:0 0;opacity:calc(.29 * var(--plane-fade,1));transition:opacity .8s;will-change:transform}
#fm-space .ms-screen svg{width:180px;height:180px;overflow:hidden;fill:none;stroke:currentColor;stroke-width:1}
#fm-space .ms-screen[data-active=true],#fm-space .ms-screen[data-preview=on]{opacity:calc(.5 * var(--plane-fade,1))}
#fm-space .ms-node strong{text-shadow:0 0 9px var(--fm-bg),0 0 3px var(--fm-bg)}
#fm-space .ms-screen .pv-orbit{transform-origin:90px 90px;animation:ms-orbit 38s linear infinite}
#fm-space .ms-screen .pv-breathe{transform-origin:90px 90px;animation:ms-breathe 9s ease-in-out infinite}
#fm-space .ms-screen .pv-wave{animation:ms-wave 3.8s ease-in-out infinite;animation-delay:var(--delay,0s)}
#fm-space .ms-screen .pv-cell{animation:ms-cell 8s ease-in-out infinite;animation-delay:var(--delay,0s)}
#fm-space .ms-screen .pv-point{animation:ms-point 7s ease-in-out infinite;animation-delay:var(--delay,0s)}
#fm-space .ms-screen *{animation-play-state:paused!important}
#fm-space .ms-screen[data-active=true] *,#fm-space .ms-screen[data-preview=on] *{animation-play-state:running!important}
body[data-field-motion=off] #fm-space .ms-screen *,#fm-space[data-scene-visible=false] .ms-screen *{animation-play-state:paused!important}
@keyframes ms-orbit{to{transform:rotate(360deg)}}
@keyframes ms-breathe{0%,100%{transform:scale(.88);opacity:.6}50%{transform:scale(1.05);opacity:1}}
@keyframes ms-wave{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes ms-cell{0%,100%{opacity:.12}50%{opacity:.65}}
@keyframes ms-point{0%,100%{opacity:.25;transform:translateY(-2px)}50%{opacity:1;transform:translateY(2px)}}
#fm-space .ms-scene-controls{position:absolute;right:22px;top:16px;z-index:1500;display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--fm-bg) 80%,transparent);border-radius:4px;padding:2px}
#fm-space .ms-scene-controls .ms-tools{gap:0}
#fm-space .ms-scene-controls button{min-height:44px;font:10px var(--mono);padding:8px 10px;background:none;border:1px solid transparent;color:var(--fm-muted);cursor:pointer}
#fm-space .ms-scene-controls button[aria-pressed=true]{color:var(--fm-ink);border-color:var(--fm-line)}
#fm-space .ms-bottom{min-height:100px;padding-block:16px}
#fm-space .ms-foot{padding-block:4px}
#fm-space[data-selected] .ms-heading{opacity:.35;transition:opacity .6s}
#fm-space .ms-heading{transition:opacity .6s}
@media(max-width:600px){#fm-space .ms-scene-controls{right:12px;left:12px;top:auto;bottom:12px;gap:2px;justify-content:flex-end}#fm-space .ms-help{bottom:74px}#fm-space .ms-scene-controls button{padding:7px;font-size:9px}#fm-space .ms-heading{max-width:275px}#fm-space .ms-bottom{min-height:0;padding-block:14px}}
@media(prefers-reduced-motion:reduce){#fm-space .ms-screen *{animation:none!important}#fm-space .ms-screen,#fm-space .ms-heading{transition:none!important}}

/* Iteration 3: living cubes, clear labels, coordinated entry. */
#fm-space .ms-room{overflow:hidden;isolation:isolate}
#fm-space .ms-heading{z-index:30;transition:opacity .5s cubic-bezier(.2,.7,.2,1)}
#fm-space[data-selected] .ms-heading{opacity:.18}
#fm-space[data-opening] .ms-heading{opacity:0}
#fm-space .ms-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font:9px var(--mono);letter-spacing:.25px;color:var(--fm-muted)}
#fm-space .ms-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
#fm-space .ms-dot{display:inline-block;width:8px;height:8px;border:1px solid currentColor;border-radius:50%}
#fm-space .ms-dot-gold{color:var(--fm-gold)}#fm-space .ms-dot-blue{color:var(--fm-blue)}
#fm-space .ms-labels{z-index:1;pointer-events:none}
#fm-space .ms-node{z-index:1;cursor:pointer;transition:filter .5s cubic-bezier(.2,.7,.2,1);text-shadow:none}
#fm-space .ms-node:hover,#fm-space .ms-node:focus-visible{filter:drop-shadow(0 0 16px var(--cube-ink));}
#fm-space .ms-node strong{position:absolute;left:0;right:0;bottom:37px;color:var(--fm-ink);text-shadow:0 0 11px var(--fm-bg),0 0 4px var(--fm-bg);font-size:clamp(19px,2vw,29px);line-height:1.1;letter-spacing:-.55px}
#fm-space .ms-node .ms-enter{display:none;position:absolute;left:0;right:0;bottom:17px;margin:0;color:var(--cube-ink);font:10px var(--mono);letter-spacing:1.1px;text-shadow:0 0 8px var(--fm-bg)}
#fm-space .ms-node:hover .ms-enter,#fm-space .ms-node:focus-visible .ms-enter,#fm-space .ms-node[aria-pressed=true] .ms-enter{display:block}
#fm-space .ms-node[aria-pressed=true]{filter:drop-shadow(0 0 18px var(--cube-ink))}
#fm-space .ms-screen{z-index:1;opacity:.72;transition:opacity .45s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 0 5px currentColor)}
#fm-space .ms-screen svg{stroke-width:1.4}
#fm-space .ms-screen .pv-art{transform-origin:90px 90px}
#fm-space .ms-screen .pv-breathe{transform-origin:90px 90px;animation:ms-field-breathe 5s ease-in-out infinite}
#fm-space .ms-screen .pv-ripple{transform-origin:90px 90px;animation:ms-ripple 3.3s ease-out infinite;animation-delay:var(--delay,0s)}
#fm-space .ms-screen .pv-wave{transform-origin:center;animation:ms-wave 2.7s ease-in-out infinite;animation-delay:var(--delay,0s)}
#fm-space .ms-screen .pv-head{animation:ms-playhead 2.7s linear infinite;stroke:currentColor;opacity:.95}
#fm-space .ms-screen .pv-dial{transform-origin:90px 90px;animation:ms-dial 12.566s linear infinite}
#fm-space .ms-screen .pv-hand{transform-origin:90px 90px;animation:ms-hand 12.566s linear infinite}
#fm-space .ms-screen .pv-tick:nth-of-type(8n+1){animation:ms-tick 12.566s linear infinite}
#fm-space .ms-screen .pv-cell{animation:ms-cell 3.4s ease-in-out infinite;animation-delay:var(--delay,0s)}
#fm-space .ms-screen .pv-point{animation:ms-migrate 4.5s ease-in-out infinite;animation-delay:var(--delay,0s)}
#fm-space .ms-screen .pv-link{opacity:.45;stroke-width:.8}
body[data-field-motion=on] #fm-space[data-scene-visible=true] .ms-screen *{animation-play-state:running!important}
body[data-field-motion=off] #fm-space .ms-screen *,#fm-space[data-scene-visible=false] .ms-screen *{animation-play-state:paused!important}
@keyframes ms-field-breathe{0%,100%{transform:scale(.82) translate(-2px,1px);opacity:.72}50%{transform:scale(1.18) translate(2px,-1px);opacity:1}}
@keyframes ms-ripple{0%{transform:scale(.34);opacity:.95}85%,100%{transform:scale(1.12);opacity:0}}
@keyframes ms-wave{0%,100%{transform:scaleY(.3);opacity:.65}50%{transform:scaleY(1);opacity:1}}
@keyframes ms-playhead{from{transform:translateX(0)}to{transform:translateX(146px)}}
@keyframes ms-dial{to{transform:rotate(360deg)}}@keyframes ms-hand{to{transform:rotate(-360deg)}}@keyframes ms-tick{0%,70%,100%{opacity:.35}4%,12%{opacity:1}}
@keyframes ms-cell{0%,100%{opacity:.2}50%{opacity:.95}}
@keyframes ms-migrate{0%,100%{transform:translate(0,0);opacity:.65}50%{transform:translate(var(--dx),var(--dy));opacity:1}}
#fm-space .ms-help{position:relative;inset:auto;z-index:5;max-width:none;margin:0;padding:8px 22px 9px;text-align:right;border-bottom:1px solid var(--fm-line);font:9px var(--mono);letter-spacing:.25px;color:var(--fm-muted);pointer-events:none}
#fm-space .ms-scene-controls{z-index:40}
#fm-space .ms-transition{position:absolute;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .18s linear;color:var(--cube-ink,var(--fm-blue))}
#fm-space .ms-transition svg{width:100%;height:100%;overflow:visible;stroke-width:1.3;opacity:1}
#fm-space .ms-routes{position:relative;border-top:1px solid var(--fm-line);background:var(--fm-surface);color:var(--fm-muted)}
#fm-space .ms-routes summary{min-height:44px;padding:0 28px;display:flex;align-items:center;cursor:pointer;list-style:none;font:10px var(--mono);letter-spacing:.4px}
#fm-space .ms-routes summary::-webkit-details-marker{display:none}
#fm-space .ms-routes summary:focus-visible{outline:2px solid var(--fm-gold);outline-offset:-3px}
#fm-space .ms-routes[open] summary{color:var(--fm-ink)}
#fm-space .ms-routes .ms-list{padding:10px 28px 16px;border-top:1px solid var(--fm-line)}
@media(max-width:600px){#fm-space .ms-legend{gap:8px;margin-top:10px;font-size:8px}#fm-space .ms-help{padding:7px 20px;text-align:left;max-width:none;font-size:8px}#fm-space .ms-heading{z-index:30}#fm-space .ms-node strong{font-size:16px;bottom:30px}#fm-space .ms-node .ms-enter{font-size:8px;bottom:14px}#fm-space .ms-routes summary{padding-inline:20px}#fm-space .ms-routes .ms-list{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){#fm-space .ms-screen *{animation:none!important}#fm-space .ms-screen,#fm-space .ms-heading,#fm-space .ms-node,#fm-space .ms-transition{transition:none!important}}
#fm-space .ms-heading{background:color-mix(in srgb,var(--fm-bg) 88%,transparent);border:1px solid color-mix(in srgb,var(--fm-line) 72%,transparent);border-radius:3px;padding:10px 12px;backdrop-filter:blur(5px)}
@media(max-width:600px){#fm-space .ms-heading{top:12px;left:12px;max-width:260px;padding:8px 10px}#fm-space .ms-heading h1{font-size:24px;margin:7px 0 6px}#fm-space .ms-legend{font-size:7px;margin-top:7px}}

/* v027 — il motivo 3D vive nel volume del cubo (canvas); sulla faccia resta solo il nome, in basso. */
#fm-space .ms-screen{display:none!important}
#fm-space .ms-node{justify-content:flex-end;padding-bottom:16px;gap:4px}
#fm-space .ms-node strong{font-size:24px}
#fm-space .ms-node[aria-pressed=true] .ms-enter{display:block}
