.modular-section{background:#eef8f7;border-radius:26px;padding:30px;overflow:hidden}.modular-heading{align-items:center}.module-counter{min-width:190px;text-align:center;background:#073c4c;color:#fff;border-radius:18px;padding:16px 22px}.module-counter span{display:block;font-size:10px;letter-spacing:1.6px}.module-counter strong{display:block;font-size:48px;line-height:1}.module-counter small{font-size:13px;color:#addad9}.pace-presets{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.pace-presets button{flex:1;min-width:150px;border:1px solid #cfe3e1;background:#fff;border-radius:15px;padding:14px;text-align:left;color:#163d4c;transition:transform .2s,border-color .2s,background .2s}.pace-presets button b,.pace-presets button span,.pace-presets button strong,.pace-presets button small{display:block}.pace-presets button b{font-size:15px}.pace-presets button span{font-size:11px;color:#79908f}.pace-presets button strong{font-size:21px;margin-top:8px}.pace-presets button small{font-size:11px;color:#66807f;margin-top:2px}.pace-presets button.active{background:#083d4d;color:#fff;border-color:#083d4d;transform:translateY(-2px)}.pace-presets button.active span,.pace-presets button.active small{color:#b9dbd9}.modular-visual{display:flex;gap:18px;align-items:stretch;flex-wrap:wrap}.subject-map-card{flex:2;min-width:420px;background:#fff;border-radius:20px;padding:22px;border:1px solid #d4e7e4}.subject-map-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}.subject-map-head span{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#758c8b}.subject-map-head strong{display:block;font-size:20px;color:#0e4351;margin-top:2px}.subject-grid{display:flex;gap:7px;flex-wrap:wrap}.subject-grid i{width:calc(10% - 6.5px);aspect-ratio:1;border-radius:7px;background:#dfe9e9;position:relative;overflow:hidden;transition:background .4s,transform .4s}.subject-grid i.completed{background:#18a7a0}.subject-grid i.current{background:#0d6fca;transform:scale(1.08);box-shadow:0 0 0 4px rgba(13,111,202,.12)}.subject-grid i.current:after{content:"";position:absolute;inset:-80% -40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:rotate(30deg);animation:subjectSweep 1.8s linear infinite}@keyframes subjectSweep{from{translate:-80% 0}to{translate:100% 0}}.subject-caption{margin-top:14px;font-size:11px;color:#718887;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.current{background:#0d6fca}.dot.completed{background:#18a7a0}.dot.pending{background:#dfe9e9}.control-idea-card{flex:1;min-width:270px;background:#073c4c;color:#fff;border-radius:20px;padding:22px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}.control-orbit{width:220px;height:220px;position:relative;margin-bottom:12px}.orbit-ring{position:absolute;border:1px solid rgba(127,231,220,.38);border-radius:50%;animation:spinRing 16s linear infinite}.ring-one{inset:18px}.ring-two{inset:44px;animation-direction:reverse;animation-duration:11s}@keyframes spinRing{to{transform:rotate(360deg)}}.center-student{position:absolute;inset:72px 54px;border-radius:50%;background:#fff;color:#083d4d;display:flex;flex-direction:column;align-items:center;justify-content:center}.center-student small{font-size:8px;letter-spacing:1px}.center-student strong{font-size:19px}.orbit-item{position:absolute;font-size:10px;letter-spacing:1px;font-weight:700;color:#93efe4}.item-one{top:7px;left:84px}.item-two{right:4px;top:99px}.item-three{bottom:6px;left:86px}.item-four{left:4px;top:99px}.control-idea-card h3{font-family:"PT Serif",Georgia,serif;font-size:24px;font-weight:500}.control-idea-card p{font-size:13px;line-height:1.5;color:#b8dbdb;margin-top:8px}
@media(max-width:780px){.modular-section{padding:18px;border-radius:18px}.subject-map-card{min-width:100%}.subject-grid i{width:calc(8.333% - 6.5px)}.control-idea-card{min-width:100%}.pace-presets button{min-width:calc(50% - 5px)}}
@media(max-width:480px){.subject-grid i{width:calc(10% - 6.5px)}}
