.fractional-page-hero { padding:10px 0 58px; }
.fractional-hero-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; align-items:center; }
.fractional-hero-copy { min-width:0; }
.page-hero h1.fractional-hero-title { max-width:none; font-size:clamp(49px,calc(4.5vw + 1px),57px); line-height:1.08; letter-spacing:-.035em; }
.fractional-hero-title span { display:block; white-space:nowrap; }
.fractional-hero-copy .page-lead { max-width:570px; }

.fractional-hero-visual { position:relative; min-height:540px; overflow:hidden; cursor:crosshair; touch-action:pan-y; isolation:isolate; }
.fractional-hero-visual::before { content:""; position:absolute; inset:0; z-index:-2; opacity:.28; background-image:radial-gradient(#8390a4 .65px,transparent .65px); background-size:22px 22px; mask-image:linear-gradient(90deg,transparent,#000 12%,#000 100%); }
.fractional-hero-visual::after { content:""; position:absolute; left:50%; top:10%; bottom:7%; z-index:-1; border-left:1px dashed rgba(91,105,128,.19); }
.fcmo-scene { position:absolute; left:50%; top:50%; width:620px; height:520px; transform:translate(-50%,-50%) scale(.88); transform-origin:center; }
.fcmo-item { position:absolute; z-index:4; will-change:transform; }
.fcmo-drift { animation:fcmo-drift var(--fcmo-speed,7s) ease-in-out infinite alternate; animation-delay:var(--fcmo-delay,0s); }
.fcmo-drift-1 { --fcmo-speed:8.4s; --fcmo-delay:-2s; --fcmo-r1:-1.1deg; --fcmo-r2:.5deg; }
.fcmo-drift-2 { --fcmo-speed:7.1s; --fcmo-delay:-4s; --fcmo-r1:.8deg; --fcmo-r2:-.5deg; }
.fcmo-drift-3 { --fcmo-speed:6.8s; --fcmo-delay:-1s; --fcmo-r1:.3deg; --fcmo-r2:1deg; }
.fcmo-drift-4 { --fcmo-speed:9.2s; --fcmo-delay:-4s; }
@keyframes fcmo-drift { from { transform:translate3d(-3px,-4px,0) rotate(var(--fcmo-r1,-.5deg)); } to { transform:translate3d(5px,6px,0) rotate(var(--fcmo-r2,.7deg)); } }

.fcmo-card { position:relative; width:194px; min-height:204px; overflow:hidden; border:1px solid rgba(255,255,255,.9); border-radius:5px; background:#fff; box-shadow:0 14px 38px rgba(25,37,57,.13),0 2px 5px rgba(25,37,57,.06); }
.fcmo-card::after { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(16,23,35,.035); pointer-events:none; }
.fcmo-card p { margin:0; padding:10px 11px 11px; color:#263044; font:700 10px/1.3 var(--font-mono); letter-spacing:.06em; text-transform:uppercase; }
.fcmo-card p span { display:block; margin-top:4px; color:#8a93a3; font-size:9px; font-weight:500; line-height:1.4; }
.fcmo-graphic { position:relative; height:110px; overflow:hidden; }
.fcmo-graphic::after { content:""; position:absolute; inset:0; opacity:.5; background-image:radial-gradient(rgba(50,72,111,.24) .6px,transparent .6px); background-size:10px 10px; mask-image:linear-gradient(135deg,#000,transparent 72%); }
.fcmo-area-1 { top:28px; left:7px; }
.fcmo-area-2 { top:28px; left:213px; }
.fcmo-area-3 { top:28px; right:7px; }

.fcmo-strategy { background:linear-gradient(145deg,#eaf1ff,#f8faff); }
.fcmo-road { position:absolute; z-index:1; left:25px; right:25px; top:58%; border-top:2px dashed #89a2d5; transform:rotate(-9deg); }
.fcmo-road-node { position:absolute; z-index:3; width:35px; height:35px; display:grid; place-items:center; border:1px solid #dce4f3; border-radius:50%; color:#496189; background:#fff; box-shadow:0 6px 14px rgba(37,65,112,.09); font:800 9px/1 var(--font-mono); }
.fcmo-r1 { left:15px; bottom:12px; }
.fcmo-r2 { left:50%; top:32px; transform:translateX(-50%); }
.fcmo-r3 { right:15px; top:11px; color:#fff; background:var(--accent); }
.fcmo-flag { position:absolute; z-index:4; right:9px; top:7px; width:2px; height:30px; background:#4f79d4; }
.fcmo-flag::after { content:""; position:absolute; left:2px; top:0; width:22px; height:13px; background:#f4ae39; clip-path:polygon(0 0,100% 0,80% 50%,100% 100%,0 100%); }

.fcmo-investment { background:linear-gradient(145deg,#fff3df,#fffbf2); }
.fcmo-donut { position:absolute; z-index:2; left:50%; top:50%; width:66px; height:66px; border-radius:50%; background:conic-gradient(var(--accent) 0 39%,#f2aa36 39% 66%,#8aa7e4 66% 84%,#d8deea 84% 100%); transform:translate(-50%,-50%); box-shadow:0 7px 17px rgba(87,66,29,.1); }
.fcmo-donut::after { content:"MIX"; position:absolute; inset:15px; display:grid; place-items:center; border-radius:50%; color:#7c642f; background:#fff; font:800 9px/1 var(--font-mono); }
.fcmo-invest-label { position:absolute; z-index:3; padding:4px 6px; border:1px solid #eadfca; border-radius:4px; color:#806731; background:#fff; box-shadow:0 5px 12px rgba(110,79,26,.08); font:800 9px/1 var(--font-mono); }
.fcmo-il1 { left:10px; top:14px; }
.fcmo-il2 { right:9px; top:18px; }
.fcmo-il3 { right:13px; bottom:10px; color:#fff; background:#d98918; }

.fcmo-team { background:linear-gradient(145deg,#eaf8f4,#f7fcfa); }
.fcmo-team-line { position:absolute; z-index:1; left:26px; right:26px; top:50%; height:1px; background:#75ae99; }
.fcmo-team-line::before,.fcmo-team-line::after { content:""; position:absolute; top:-16px; width:1px; height:32px; background:#75ae99; }
.fcmo-team-line::before { left:0; transform:rotate(-50deg); }
.fcmo-team-line::after { right:0; transform:rotate(50deg); }
.fcmo-team-hub { position:absolute; z-index:4; left:50%; top:50%; width:22px; height:22px; border:6px solid #2ba977; border-radius:50%; background:#fff; transform:translate(-50%,-50%); box-shadow:0 0 0 5px rgba(43,169,119,.08); }
.fcmo-team-node { position:absolute; z-index:3; width:48px; height:36px; display:grid; place-items:center; border:1px solid rgba(32,91,69,.18); border-radius:7px; color:#21684f; background:#fff; box-shadow:0 7px 16px rgba(37,93,73,.1); font:800 9px/1 var(--font-mono); }
.fcmo-t1 { left:8px; top:11px; }
.fcmo-t2 { left:50%; bottom:7px; transform:translateX(-50%); }
.fcmo-t3 { right:8px; top:11px; color:#fff; background:#2ba977; }

.fcmo-leadership { top:318px; left:50%; transform:translateX(-50%); }
.fcmo-leadership-panel { width:500px; padding:14px 17px 17px; border:1px solid rgba(45,62,89,.16); border-radius:6px; background:rgba(255,255,255,.97); box-shadow:0 18px 48px rgba(22,37,62,.14); }
.fcmo-leadership-title { margin-bottom:12px; padding-bottom:9px; border-bottom:1px solid #e7eaf0; color:#263044; font:700 9px/1 var(--font-mono); letter-spacing:.09em; text-transform:uppercase; }
.fcmo-outcomes { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.fcmo-outcome { min-height:92px; display:grid; grid-template-rows:48px auto; align-items:center; padding:8px 9px; border:1px solid #e2e7ef; border-radius:5px; background:#fafbfc; }
.fcmo-outcome strong { color:#263044; font:700 10px/1.3 var(--font-mono); letter-spacing:.035em; text-align:center; text-transform:uppercase; }
.fcmo-outcome-graphic { position:relative; width:78px; height:42px; margin:auto; }
.fcmo-priorities i { position:absolute; left:12px; right:12px; height:6px; border-radius:4px; background:#c4d2ec; transform-origin:left; animation:fcmo-priority 2.7s ease-in-out infinite alternate; }
.fcmo-priorities i:nth-child(1) { top:5px; width:36px; }
.fcmo-priorities i:nth-child(2) { top:18px; width:49px; background:#87a8ed; animation-delay:-.8s; }
.fcmo-priorities i:nth-child(3) { top:31px; width:60px; background:var(--accent); animation-delay:-1.5s; }
@keyframes fcmo-priority { from { transform:scaleX(.78); opacity:.72; } to { transform:scaleX(1); opacity:1; } }
.fcmo-coordinate::before { content:""; position:absolute; left:50%; top:50%; width:15px; height:15px; border:5px solid #2ba977; border-radius:50%; background:#fff; transform:translate(-50%,-50%); box-shadow:-25px 0 0 -3px #a8d8c7,25px 0 0 -3px #a8d8c7; }
.fcmo-coordinate::after { content:""; position:absolute; left:14px; right:14px; top:50%; height:1px; background:#75ae99; z-index:-1; }
.fcmo-decisions::before { content:""; position:absolute; left:50%; top:50%; width:38px; height:38px; border:1px solid #c9c0ea; border-radius:50%; transform:translate(-50%,-50%); box-shadow:inset 0 0 0 8px #f2effc,inset 0 0 0 9px #d9d1f2; }
.fcmo-decisions::after { content:""; position:absolute; left:50%; top:50%; width:8px; height:8px; border-radius:50%; background:#6e58c8; transform:translate(-50%,-50%); box-shadow:14px -14px 0 -1px var(--accent); animation:fcmo-decision 2.8s ease-in-out infinite alternate; }
@keyframes fcmo-decision { from { box-shadow:10px -10px 0 -1px var(--accent); } to { box-shadow:17px -17px 0 -1px var(--accent); } }

.fcmo-flow { position:absolute; z-index:1; height:1px; background:linear-gradient(90deg,transparent,rgba(102,116,139,.34) 15%,rgba(102,116,139,.34) 85%,transparent); transform-origin:left center; }
.fcmo-flow::after { content:""; position:absolute; left:12%; top:-2px; width:5px; height:5px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 5px rgba(37,95,230,.08); animation:fcmo-signal 3.6s ease-in-out infinite; animation-delay:var(--fcmo-flow-delay,0s); }
@keyframes fcmo-signal { 0% { left:12%; opacity:0; } 18% { opacity:1; } 82% { opacity:1; } 100% { left:86%; opacity:0; } }
.fcmo-flow-1 { top:236px; left:104px; width:121px; transform:rotate(42deg); --fcmo-flow-delay:-.5s; }
.fcmo-flow-2 { top:236px; left:310px; width:82px; transform:rotate(90deg); --fcmo-flow-delay:-1.6s; }
.fcmo-flow-3 { top:236px; left:516px; width:121px; transform:rotate(138deg); --fcmo-flow-delay:-2.4s; }
.fcmo-orbit { position:absolute; z-index:0; left:50%; top:49%; width:520px; height:300px; border:1px solid rgba(37,95,230,.08); border-radius:50%; transform:translate(-50%,-50%) rotate(-8deg); }
.fcmo-orbit::before { content:""; position:absolute; inset:34px 72px; border:1px solid rgba(37,95,230,.06); border-radius:inherit; }

@media (max-width:1100px) {
  .fractional-hero-grid { grid-template-columns:1fr; gap:32px; }
  .fractional-hero-copy { max-width:760px; }
  .fractional-hero-visual { min-height:520px; }
  .fcmo-scene { transform:translate(-50%,-50%) scale(.94); }
}

@media (max-width:720px) {
  .fractional-page-hero { padding:10px 0 42px; }
  .page-hero h1.fractional-hero-title { font-size:clamp(38px,10.5vw,48px); }
  .fractional-hero-title span { white-space:normal; }
  .fractional-hero-grid { gap:22px; }
}

@media (prefers-reduced-motion:reduce) {
  .fcmo-drift,.fcmo-flow::after,.fcmo-priorities i,.fcmo-decisions::after { animation:none !important; }
}
