
/* CFD education page */
.cfd-hero{min-height:790px;display:grid;align-items:center;padding:86px 0 70px;border-bottom:1px solid var(--line)}
.cfd-hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:66px;align-items:center}
.cfd-hero h1{font-size:clamp(3rem,5.8vw,6.7rem);line-height:1.04;letter-spacing:-.06em;margin:0 0 24px}
.cfd-lead{color:var(--muted);font-size:1.08rem;line-height:1.9;max-width:820px}
.cfd-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.cfd-mini-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:22px}.cfd-mini-links a{color:var(--muted);font:800 .78rem Inter}.cfd-mini-links a:hover{color:var(--cyan)}
.cfd-visual{border:1px solid rgba(86,215,255,.25);border-radius:32px;background:linear-gradient(145deg,rgba(15,31,53,.96),rgba(8,18,33,.98));box-shadow:var(--shadow);padding:22px;overflow:hidden}
.cfd-visual svg{width:100%;height:auto}.domain{fill:#07131f;stroke:#56d7ff;stroke-width:2}.stream{fill:none;stroke:url(#cfdGrad);stroke-width:6;stroke-linecap:round;opacity:.9}.s2{opacity:.78}.s3{opacity:.65}.s4{opacity:.52}.cylinder{fill:#172a42;stroke:#ffb86b;stroke-width:5}.vortex{fill:none;stroke:url(#hotGrad);stroke-width:4;stroke-linecap:round;stroke-dasharray:7 8;opacity:.85}.mesh-lines path{fill:none;stroke:rgba(255,255,255,.09);stroke-width:1}.cfd-labels text{fill:#d9ecff;font:800 12px Inter;text-anchor:middle}.cfd-visual-caption{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.12);padding-top:14px;color:var(--muted)}.cfd-visual-caption strong{color:#fff;font-family:Inter}
.cfd-progress-wrap{padding:28px 0}.cfd-progress{display:grid;grid-template-columns:150px 1fr 270px;gap:20px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:21px;background:var(--panel)}.cfd-progress small{color:var(--muted)}.cfd-progress strong{display:block;font:900 2rem Inter;color:var(--cyan)}.progress-track{height:9px;background:var(--bg2);border-radius:999px;overflow:hidden}.progress-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--cyan),var(--violet));transition:.35s}.cfd-progress p{margin:0;color:var(--muted);font-size:.82rem}
.cfd-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:45px;padding-bottom:100px}.cfd-sidebar nav{position:sticky;top:110px;display:grid;gap:5px;padding:20px;border:1px solid var(--line);border-radius:21px;background:var(--panel)}.cfd-sidebar strong{margin-bottom:8px}.cfd-sidebar a{display:flex;gap:10px;padding:10px;border-radius:12px;color:var(--muted);font:800 .78rem Inter}.cfd-sidebar a:hover{background:var(--bg2);color:var(--text)}
.cfd-module{scroll-margin-top:110px;margin-bottom:25px;padding:42px;border:1px solid var(--line);border-radius:27px;background:var(--panel)}.cfd-module header{display:flex;gap:20px;align-items:flex-start;margin-bottom:22px}.cfd-module header>span{width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#123652,#17244d);border:1px solid rgba(86,215,255,.34);color:var(--cyan);font:900 .75rem Inter}.cfd-module h2{font-size:clamp(1.9rem,3vw,3.2rem);line-height:1.18;margin:0}.intro{font-size:1.03rem;line-height:1.9;color:var(--muted)}
.workflow-strip,.pfp-process{display:flex;align-items:stretch;gap:8px;overflow-x:auto;margin:25px 0}.workflow-strip div{min-width:120px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--bg2)}.workflow-strip span{font:900 .62rem Inter;color:var(--cyan)}.workflow-strip b{display:block;margin-top:4px}.workflow-strip i{align-self:center;color:var(--cyan);font-style:normal}
.cfd-note{padding:18px 20px;border-inline-start:3px solid var(--cyan);border-radius:14px;background:rgba(86,215,255,.055)}.cfd-note.warning{border-color:var(--amber);background:rgba(255,184,106,.06)}.cfd-note strong{color:var(--cyan)}.cfd-note.warning strong{color:var(--amber)}.cfd-note p{margin:5px 0 0;color:var(--muted)}
.equation-board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.equation-board article,.concept-grid-cfd article,.feature-list-cfd article,.mesh-quality-grid article,.bc-table article,.turbulence-ladder article,.convergence-grid article,.validation-grid article{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--bg2)}.equation-board small{color:var(--cyan);font:900 .66rem Inter}.equation-board strong{display:block;margin:12px 0;font:900 1.2rem Inter;color:#fff}.equation-board p,.concept-grid-cfd p,.feature-list-cfd p,.mesh-quality-grid p,.bc-table p,.turbulence-ladder p,.convergence-grid p,.validation-grid p{color:var(--muted);font-size:.84rem}
.concept-grid-cfd,.feature-list-cfd,.mesh-quality-grid,.bc-table,.turbulence-ladder,.convergence-grid,.validation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.concept-grid-cfd b,.mesh-quality-grid strong,.bc-table b,.validation-grid b{color:var(--cyan)}
.fvm-visual{margin:22px 0;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--bg2)}.cell-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;width:min(360px,100%);margin:auto}.cell-grid i{height:72px;border:1px solid rgba(86,215,255,.35);background:rgba(86,215,255,.06)}.cell-equation{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:18px}.cell-equation span{padding:8px 11px;border-radius:999px;background:rgba(139,109,255,.1);color:#d8d1ff;font:800 .72rem Inter}.cell-equation b{color:var(--cyan)}
.mesh-study{margin-top:18px;padding:22px;border:1px solid rgba(86,215,255,.22);border-radius:18px;background:linear-gradient(135deg,rgba(12,34,56,.88),rgba(20,24,49,.88))}.mesh-study div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mesh-study span{padding:8px 12px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);font:800 .72rem Inter}.mesh-study i{width:50px;height:2px;background:linear-gradient(90deg,var(--cyan),var(--violet))}.mesh-study b{color:var(--cyan)}
.bc-domain{position:relative;height:300px;border:1px solid var(--line);border-radius:21px;background:linear-gradient(145deg,#07131f,#101d32);margin:20px 0}.bc{position:absolute;padding:10px 13px;border-radius:12px;background:rgba(86,215,255,.1);border:1px solid rgba(86,215,255,.28);color:#dff7ff;font:900 .72rem Inter}.inlet{left:18px;top:126px}.outlet{right:18px;top:126px}.wall{left:50%;bottom:18px;transform:translateX(-50%)}.symmetry{left:50%;top:18px;transform:translateX(-50%)}.object{left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;width:96px;height:96px;display:grid;place-items:center;background:rgba(255,184,106,.12);border-color:rgba(255,184,106,.35)}
.turbulence-ladder article span{font:900 .72rem Inter;color:var(--violet)}.model-choice{margin-top:17px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--bg2)}.model-choice li{color:var(--muted);margin:6px 0}
.residual-chart{margin-top:20px;border:1px solid var(--line);border-radius:18px;background:var(--bg2);padding:18px}.residual-chart svg{width:100%;height:auto}.axis{fill:none;stroke:rgba(255,255,255,.45);stroke-width:2}.res{fill:none;stroke-width:5;stroke-linecap:round}.r1{stroke:#56d7ff}.r2{stroke:#8b6dff}.r3{stroke:#ffb86b}.residual-chart text{fill:var(--muted);font:800 13px Inter}
.openfoam-card{margin-top:22px;display:flex;justify-content:space-between;gap:22px;align-items:center;padding:24px;border:1px solid rgba(139,109,255,.28);border-radius:20px;background:linear-gradient(135deg,rgba(34,28,66,.88),rgba(9,18,33,.95))}.openfoam-card h3{font:900 1.6rem Inter;margin:8px 0}.openfoam-card p{color:var(--muted)}
.quiz-card-cfd{margin-top:25px;padding:25px;border:1px solid var(--line);border-radius:21px;background:var(--bg2)}.quiz-head{display:flex;justify-content:space-between}.quiz-head strong{font:900 1.3rem Inter;color:var(--cyan)}.q{padding:16px 0;border-top:1px solid var(--line)}.q p{font-weight:900}.q label{display:inline-flex;align-items:center;gap:7px;margin-inline-end:18px;color:var(--muted);font-size:.86rem}.q input{accent-color:var(--cyan)}#cfdQuizResult{font-weight:900;color:var(--cyan)}
.cfd-complete{margin-top:24px;min-height:44px;padding:0 17px;border:1px solid var(--line);border-radius:13px;background:var(--bg2);color:var(--text);font-weight:900;cursor:pointer}.cfd-complete.done{border-color:rgba(81,227,154,.45);background:rgba(81,227,154,.1);color:#75efad}.cfd-complete.done:before{content:"✓ "}
.cfd-sources{padding:30px;border:1px dashed var(--line);border-radius:21px;background:var(--panel)}.cfd-sources p{color:var(--muted)}
@media(max-width:1100px){.cfd-hero-grid,.cfd-layout{grid-template-columns:1fr}.cfd-sidebar{display:none}.equation-board,.concept-grid-cfd,.feature-list-cfd,.mesh-quality-grid,.bc-table,.turbulence-ladder,.convergence-grid,.validation-grid{grid-template-columns:repeat(2,1fr)}.cfd-progress{grid-template-columns:1fr}}
@media(max-width:720px){.cfd-hero{min-height:auto;padding-top:54px}.cfd-hero h1{font-size:3rem;letter-spacing:-.04em}.cfd-module{padding:24px}.cfd-module header{display:block}.cfd-module header>span{margin-bottom:14px}.equation-board,.concept-grid-cfd,.feature-list-cfd,.mesh-quality-grid,.bc-table,.turbulence-ladder,.convergence-grid,.validation-grid{grid-template-columns:1fr}.openfoam-card{display:grid}.q label{display:flex;margin:8px 0}}
html[dir=rtl] .cfd-hero h1{letter-spacing:-.035em}
