.fa{background:var(--paper);color:var(--text);border-top:1px solid var(--rule);position:relative;padding:clamp(56px,7vw,96px) 0;--cell:136px;--w:50px;--H:260px;--rest:.34;--sc:.78}
.fa-pin{position:relative;display:flex;align-items:center}
.fa-grid{width:100%;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:center}
.fa h2{font-size:clamp(32px,3.8vw,54px);line-height:1.02;color:var(--text)}
.fa h2 em{font-style:normal;background:linear-gradient(transparent 62%,rgba(15,223,216,.45) 62%)}
.fa-sub{font-family:var(--serif);font-size:clamp(16px,1.4vw,19px);line-height:1.45;margin-top:16px;color:var(--muted)}
.fa-hint-m{display:none}
.fa-legend{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px}
.fa-legend li{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text)}
.fa-legend i{width:12px;height:12px;border-radius:2px;background:var(--c);box-shadow:3px -3px 0 var(--ct)}
.fa-card{margin-top:22px;min-height:150px;background:#fff;border:1px solid var(--rule);border-left:3px solid var(--c,var(--cyan));border-radius:4px;padding:18px 20px;box-shadow:0 20px 50px -30px rgba(22,21,20,.35)}
.fa-card.pop{animation:faPop .5s var(--ease)}
@keyframes faPop{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.fc-k{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.fc-k i{width:10px;height:10px;border-radius:2px;background:var(--c,var(--cyan))}
.fa-card h3{font-size:clamp(20px,1.9vw,24px);line-height:1.15;color:var(--text);margin-top:6px}
.fa-card p.fc-p{font-size:15.5px;line-height:1.5;color:var(--muted);margin-top:8px}
.fa-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
/* 3D stage */
.fa-stage{position:relative;height:min(80vh,680px);perspective:1900px;perspective-origin:50% 30%}
.fa-cam{position:absolute;left:50%;top:58%;width:0;height:0;transform-style:preserve-3d;transform:scale(var(--sc,1))}
.fa-floor{position:absolute;width:calc(var(--cell) * 5);height:calc(var(--cell) * 4);left:calc(var(--cell) * -2.5);top:calc(var(--cell) * -2);transform-style:preserve-3d;transform:rotateX(60deg) rotateZ(var(--rz,-35deg));background:#F3F2EF;box-shadow:inset 0 0 0 1px var(--rule);background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:var(--cell) var(--cell)}
.fbx{position:absolute;width:var(--w);height:var(--w);padding:0;margin:0;border:0;background:none;cursor:pointer;transform-style:preserve-3d;-webkit-tap-highlight-color:transparent}
.fbx:focus-visible{outline:2px solid var(--cyan);outline-offset:6px}
.fbx-s{position:absolute;inset:0;transform-style:preserve-3d;transform:scaleZ(.02);transform-origin:50% 50% 0;transition:transform 1s var(--ease) calc(var(--i) * 45ms)}
.fa.on .fbx-s{transform:scaleZ(var(--rest))}
.fa.ready .fbx-s{transition:transform .6s cubic-bezier(.2,.9,.25,1.12)}
.fa.on .fbx.sel .fbx-s{transform:scaleZ(1)}
.fbx-s i{position:absolute;left:0;top:0;transform-origin:0 0;transition:filter .3s,opacity .35s}
.f-top{width:var(--w);height:var(--w);background:var(--ct);transform:translateZ(var(--H))}
.f-n,.f-sx{width:var(--w);height:var(--H)}
.f-n{background:var(--c);transform:rotateX(90deg)}
.f-sx{background:var(--c);transform:translateY(var(--w)) rotateX(90deg)}
.f-w,.f-e{width:var(--H);height:var(--w);background:var(--cs)}
.f-w{transform:rotateY(-90deg)}
.f-e{transform:translateX(var(--w)) rotateY(-90deg)}
.fbx:hover .fbx-s i{filter:brightness(1.1)}
.fa.has-sel .fbx:not(.sel) .fbx-s i{filter:saturate(.35) brightness(1.18)}
.fbx.sel .f-top{background:#fff;box-shadow:0 0 30px 8px rgba(15,223,216,.8)}
.fbx.sel .f-n,.fbx.sel .f-sx{background:linear-gradient(0deg,var(--cyan),var(--c))}
.fa-labels{position:absolute;inset:0;pointer-events:none}
.fa-labels span{position:absolute;left:0;top:0;white-space:nowrap;font-size:11.5px;font-weight:500;color:var(--muted);background:rgba(255,255,255,.82);padding:1px 5px;border-radius:2px;transform:translate(-50%,6px);transition:color .3s,background-color .3s,opacity .25s}
.fa-labels span.hide{opacity:0}
.fa-labels span.on{color:var(--cyan-ink);background:var(--cyan);z-index:2}
@media (prefers-reduced-motion:reduce){.fa *{transition-duration:0s!important;transition-delay:0s!important;animation:none!important}}
@media (max-width:1100px){.fa-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fa{--sc:.62}}
@media (max-width:860px){
.fa{--sc:.5;padding:48px 0 40px}
.fa-pin{align-items:stretch}
.fa-grid{display:flex;flex-direction:column;gap:0;padding-top:max(20px,env(safe-area-inset-top,0px));padding-bottom:16px}
.fa-hint-d{display:none}.fa-hint-m{display:inline}
.fa-side{display:contents}
.fa h2{font-size:28px;order:1}
.fa-sub{font-size:15px;margin-top:8px;order:2}
.fa-legend{order:3;margin-top:10px;gap:6px 14px}.fa-legend li{font-size:12.5px}
.fa-stage{order:4;height:min(62vw,340px);min-height:240px;margin-top:6px}
.fa-cam{top:50%}
.fa-labels span{display:none}.fa-labels span.on{display:block}
.fa-card{order:5;margin-top:4px;min-height:118px;padding:14px 16px}
.fa-card h3{font-size:19px}.fa-card p.fc-p{font-size:14.5px}
.fa-cta{display:none}
.fa-labels span{font-size:10px;padding:0 3px}
}
@media (max-width:420px){.fa{--sc:.44}}


/* sample audit PDF card */
.fa-pdf{margin-top:22px;display:flex;gap:16px;align-items:center;padding:12px;border:1px solid var(--rule);border-radius:8px;background:#fff;text-decoration:none;color:var(--text);transition:border-color .3s,box-shadow .4s var(--ease)}
.fa-pdf:hover{border-color:var(--text);box-shadow:0 18px 40px -28px rgba(22,21,20,.45)}
.fa-pdf:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.fa-pdf img{flex:0 0 auto;width:84px;height:auto;border:1px solid var(--rule);border-radius:3px;box-shadow:0 6px 16px -8px rgba(22,21,20,.4)}
.fa-pdf>span{display:flex;flex-direction:column;gap:6px;min-width:0}
.fa-pdf b{font-size:16px;font-weight:600}
.fa-pdf>span>span{font-size:14px;line-height:1.4;color:var(--muted)}
.fa-pdf .btn{align-self:flex-start;margin-top:4px;font-style:normal;padding:10px 16px;min-height:44px;display:inline-flex;align-items:center}
@media (max-width:860px){.fa-pdf{order:6;margin-top:10px}.fa-pdf img{width:64px}}
