*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0d0d1a;--bg-panel:#10121eeb;--text-primary:#e8e8f0;--text-muted:#8888a0;--accent:#4fc3f7;--accent-warm:#ff8a65;--border:#ffffff14;--btn-bg:#ffffff0f;--btn-hover:#ffffff1f;--btn-active:#4fc3f733;--radius:8px;--font-size-base:13.5px;--font-size-lg:15px;--font-size-xl:20px}html,body,#root{width:100%;height:100%;font-family:Microsoft YaHei,PingFang SC,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;overflow:hidden}.app-root{flex-direction:column;width:100%;height:100%;display:flex}.app-header{border-bottom:1px solid var(--border);z-index:10;background:#0a0c16f2;flex-shrink:0;align-items:center;gap:14px;padding:8px 22px;display:flex}.app-title{font-size:var(--font-size-xl);letter-spacing:.04em;color:#fff;font-weight:700}.app-version{color:#aeb8c7;letter-spacing:.04em;border:1px solid #ffffff24;border-radius:999px;align-items:center;min-height:22px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}.app-subtitle{color:var(--text-muted);margin-left:auto;font-size:12px}.bug-feedback{color:#e6c8ad;white-space:nowrap;background:#ffb06b12;border:1px solid #ffb06b3d;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:4px 9px;font-size:10px;display:inline-flex}.bug-feedback strong{color:#ffe3c8;letter-spacing:.02em;font-size:11px}.teacher-guide-trigger{color:#dff6ff;cursor:pointer;background:#4fc3f714;border:1px solid #4fc3f747;border-radius:7px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.teacher-guide-trigger:hover{background:#4fc3f729;border-color:#4fc3f78f}.app-main{flex:1;min-height:0;display:flex;position:relative}.mobile-panel-toggle,.mobile-panel-backdrop{display:none}.app-sidebar{background:var(--bg-panel);border-right:1px solid var(--border);z-index:5;flex-direction:column;flex-shrink:0;gap:14px;width:248px;padding:12px;display:flex;overflow-y:auto}.sidebar-section-divider{background:linear-gradient(90deg,#0000,#4fc3f759,#0000);flex:0 0 1px;height:1px}.app-scene{opacity:1;transform-origin:50%;will-change:opacity, transform;flex:1;min-width:0;transition:opacity .18s,transform .22s cubic-bezier(.22,1,.36,1);position:relative;transform:scale(1)}.app-scene.scene-transitioning{opacity:.16;pointer-events:none;transform:scale(.985)}.panel-title{font-size:var(--font-size-lg);color:#fff;letter-spacing:.03em;margin-bottom:10px;font-weight:700}button:focus-visible{outline-offset:2px;outline:3px solid #fff}.view-mode-control{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff09;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:12px;padding:3px;display:grid}.view-mode-btn{min-width:0;min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:5px 3px;font-family:inherit;font-size:11px;display:flex}.view-mode-btn:hover{background:var(--btn-hover);color:var(--text-primary)}.view-mode-btn.active{background:var(--btn-active);color:#fff;box-shadow:inset 0 0 0 1px var(--accent)}.view-mode-btn span{white-space:normal;text-align:center;max-width:100%}.textbook-mode-note{color:#e8ddb7;background:#d7b85d17;border-left:3px solid #d7b85d;border-radius:0 7px 7px 0;margin:-3px 0 12px;padding:9px 10px;font-size:11.5px;line-height:1.65}.season-control{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff09;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:12px;padding:3px;display:grid}.season-btn{min-width:0;min-height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:5px 3px;font-family:inherit;font-size:11px;display:flex}.season-btn:hover:not(:disabled){background:var(--btn-hover);color:var(--text-primary)}.season-btn.active{background:var(--btn-active);color:#fff;box-shadow:inset 0 0 0 1px var(--accent)}.season-btn:disabled{opacity:.38;cursor:not-allowed}.projection-toggle{border:1px solid var(--border);border-radius:var(--radius);background:var(--btn-bg);width:100%;min-height:40px;color:var(--text-primary);font-family:inherit;font-size:var(--font-size-base);cursor:pointer;justify-content:center;align-items:center;gap:8px;margin:0 0 12px;font-weight:600;display:flex}.projection-toggle.active{color:#fff;border-color:var(--accent);background:var(--btn-active);box-shadow:0 0 12px #4fc3f733}.circulation-focus-control{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff09;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:12px;padding:3px;display:grid}.circulation-focus-control button{min-width:0;min-height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-family:inherit;font-size:11px;font-weight:600}.circulation-focus-control button:hover{color:var(--text-primary);background:var(--btn-hover)}.circulation-focus-control button.active{color:#fff;background:var(--btn-active);box-shadow:inset 0 0 0 1px var(--accent)}.concept-demo-button{border-radius:var(--radius);color:#ffd8c9;width:100%;min-height:42px;font-family:inherit;font-size:var(--font-size-base);cursor:pointer;background:linear-gradient(135deg,#ff8a651f,#ffbe5c0f);border:1px solid #ff8a655c;justify-content:center;align-items:center;gap:8px;margin:0 0 12px;font-weight:700;display:flex}.concept-demo-button:hover,.concept-demo-button.active{border-color:var(--accent-warm);color:#fff;background:linear-gradient(135deg,#ff8a6540,#ffbe5c1f);box-shadow:0 0 14px #ff8a652e}.concept-demo-button.polar-front-button{color:#ccecff;background:linear-gradient(135deg,#70c8ff21,#c4b7ff12);border-color:#70c8ff5c;margin-top:-6px}.concept-demo-button.polar-front-button:hover,.concept-demo-button.polar-front-button.active{color:#fff;background:linear-gradient(135deg,#70c8ff40,#c4b7ff24);border-color:#70c8ff;box-shadow:0 0 14px #70c8ff33}.concept-demo-button.pressure-comparison-button{color:#e4d3ff;background:linear-gradient(135deg,#c299ff21,#4fc3f712);border-color:#c299ff5c;margin-top:-6px}.concept-demo-button.pressure-comparison-button:hover,.concept-demo-button.pressure-comparison-button.active{color:#fff;background:linear-gradient(135deg,#c299ff40,#4fc3f721);border-color:#c299ff;box-shadow:0 0 14px #c299ff33}.toggle-list{flex-direction:column;gap:6px;display:flex}.toggle-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--btn-bg);width:100%;color:var(--text-primary);font-size:var(--font-size-base);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;transition:all .15s;display:flex}.toggle-btn:hover{background:var(--btn-hover)}.toggle-btn:disabled,.action-btn:disabled{opacity:.38;cursor:not-allowed}.toggle-btn.active{background:var(--btn-active);border-color:var(--accent);box-shadow:0 0 8px #4fc3f726}.toggle-indicator{border:2px solid #ffffff4d;border-radius:4px;flex-shrink:0;width:11px;height:11px;transition:all .15s}.toggle-btn.active .toggle-indicator{background:var(--accent);border-color:var(--accent);box-shadow:0 0 6px #4fc3f766}.toggle-label{text-align:left;flex:1;font-weight:500}.toggle-shortcut{color:var(--text-muted);letter-spacing:.05em;background:#ffffff0f;border-radius:4px;padding:2px 7px;font-size:9px}.panel-actions{gap:8px;margin-top:4px;display:flex}.action-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--btn-bg);color:var(--text-primary);cursor:pointer;flex:1;padding:8px 7px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s}.action-btn:hover{background:var(--btn-hover);border-color:#fff3}.reset-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--btn-bg);width:100%;color:var(--text-primary);font-size:var(--font-size-base);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:9px;font-family:inherit;font-weight:500;transition:all .15s;display:flex}.reset-btn:hover{background:var(--btn-hover);border-color:#fff3}.lesson-steps{flex-direction:column;gap:10px;display:flex}.lesson-heading-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.lesson-heading-row .panel-title{margin-bottom:0}.lesson-heading-row>span{color:#bcecff;white-space:nowrap;background:#4fc3f714;border:1px solid #4fc3f747;border-radius:999px;padding:3px 7px;font-size:10px}.step-indicators{justify-content:center;gap:8px;display:flex}.step-dot{border:2px solid var(--border);background:var(--btn-bg);width:30px;height:30px;color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:flex}.step-dot:hover{background:var(--btn-hover)}.step-dot.active{background:var(--accent);border-color:var(--accent);color:#000;box-shadow:0 0 12px #4fc3f766}.step-dot.dimmed{opacity:.35}.step-description{background:var(--btn-bg);border:1px solid var(--border);border-radius:var(--radius);min-height:64px;padding:10px}.step-title{font-size:var(--font-size-base);color:var(--accent-warm);margin-bottom:6px;font-weight:700;line-height:1.4}.step-text{color:#c8c8d8;font-size:13px;line-height:1.5}.step-text.muted{color:var(--text-muted);font-style:italic}.step-teaching-cue{border-top:1px solid #ffffff14;gap:4px;margin-top:8px;padding-top:8px;display:grid}.step-teaching-cue p{color:#d6e2ec;font-size:11px;line-height:1.45}.step-teaching-cue strong{color:#9edfff}.step-nav{gap:6px;display:flex}.nav-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--btn-bg);color:var(--text-primary);cursor:pointer;white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 5px;font-family:inherit;font-size:11px;font-weight:500;transition:all .15s;display:flex}.nav-btn:hover:not(:disabled){background:var(--btn-hover)}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.thermal-notes{border-radius:var(--radius);background:linear-gradient(135deg,#ff8a6514,#4fc3f714);border:1px solid #62d8ff3d;padding:12px}.thermal-notes ol{color:#cfd8e3;gap:10px;padding-left:20px;line-height:1.55;display:grid}.thermal-notes strong{color:#fff}.subtropical-notes{border-radius:var(--radius);background:linear-gradient(135deg,#ff8a651c,#ffc65c0d);border:1px solid #ff8a6552;padding:12px}.subtropical-notes ol{color:#e4d7d1;gap:8px;padding-left:20px;line-height:1.5;display:grid}.subtropical-notes li{border-radius:5px;padding:3px 5px;transition:color .15s,background .15s}.subtropical-notes li.active{color:#fff4ed;background:#ff8a652b;font-weight:700}.polar-front-notes li.active{color:#effaff;background:#70c8ff29}.subtropical-notes p{border-left:3px solid var(--accent-warm);color:#ffd6c8;background:#ff8a6514;margin-top:12px;padding:9px 10px;line-height:1.5}.polar-front-notes{background:linear-gradient(135deg,#70c8ff1a,#c4b7ff0f);border-color:#70c8ff52}.polar-front-notes ol{color:#d9e8f2}.polar-front-notes p{color:#d7f1ff;background:#70c8ff14;border-left-color:#70c8ff}.concept-exit-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--btn-bg);width:100%;min-height:38px;color:var(--text-primary);cursor:pointer;margin-top:10px;font-family:inherit;font-weight:600}.section-lock-badge{z-index:4;color:#aeeaff;pointer-events:none;background:#05121cd1;border:1px solid #65d7ff80;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:14px;right:14px}.subtropical-concept-overlay{z-index:3;pointer-events:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:min(760px,100% - 260px);display:grid;position:absolute;top:14px;left:50%;transform:translate(-50%)}.subtropical-concept-overlay button{color:#f4e7e1;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#0c111ad6;border:1px solid #ff8a6542;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:48px;padding:7px 8px;font-family:inherit;font-size:12px;font-weight:600;transition:border-color .15s,background .15s,transform .15s;display:flex}.subtropical-concept-overlay button:hover,.subtropical-concept-overlay button.active{background:#5c2d18e0;border-color:#ffb06be6;transform:translateY(-1px)}.subtropical-concept-overlay b{background:var(--accent-warm);color:#1a0e09;border-radius:50%;flex:none;justify-content:center;align-items:center;width:23px;height:23px;display:inline-flex}.polar-front-overlay button{color:#e6f5ff;border-color:#70c8ff47}.polar-front-overlay button:hover,.polar-front-overlay button.active{background:#11394fe6;border-color:#70c8ffe6}.polar-front-overlay b{color:#06131d;background:#70c8ff}.concept-playback-controls{z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#060b14e6;border:1px solid #ffffff2e;border-radius:12px;align-items:center;gap:6px;min-height:44px;padding:6px 8px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0000005c}.concept-playback-controls button{color:#eaf4ff;cursor:pointer;background:#ffffff0e;border:1px solid #ffffff1f;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-width:34px;height:32px;padding:0 8px;font-family:inherit;font-size:11px;display:inline-flex}.concept-playback-controls button:hover:not(:disabled),.concept-playback-controls button.active{background:#4fc3f72e;border-color:#4fc3f7a6}.concept-playback-controls button:disabled{opacity:.35;cursor:not-allowed}.concept-play-toggle{min-width:72px!important}.concept-speed-control{background:#ffffff09;border-radius:8px;gap:3px;padding:2px;display:flex}.concept-speed-control button{min-width:41px;padding-inline:5px}.concept-stage-status{color:#b7c4d2;text-align:center;white-space:nowrap;min-width:58px;font-size:11px}.subtropical-deflection-inset{z-index:4;color:#fff1e4;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);pointer-events:none;background:#070d16e0;border:1px solid #ffb06b57;border-radius:11px;width:360px;padding:10px 11px 9px;position:absolute;top:80px;left:16px}.subtropical-deflection-inset>strong{text-align:center;margin-bottom:3px;font-size:13px;display:block}.subtropical-deflection-inset svg{width:100%;height:auto;display:block;overflow:visible}.subtropical-deflection-inset text{fill:#b7c7d8;font-family:inherit;font-size:10px}.subtropical-deflection-inset .east-label{fill:#ffd1aa;text-anchor:middle;font-size:9px}.inset-latitude{stroke:#ffffff2e;stroke-width:1px;stroke-dasharray:4 5}.deflection-path{fill:none;stroke:#ffb06b;stroke-width:4px;stroke-linecap:round;filter:drop-shadow(0 0 4px #ff9754ad)}.moving-air-parcel{fill:#fff3d7;filter:drop-shadow(0 0 5px #ff9a58)}.accumulation-cluster circle{fill:#ff9654;stroke:#ffd0a0;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:1.35s ease-in-out infinite alternate accumulation-pulse}.accumulation-cluster circle:nth-child(2){animation-delay:.18s}.accumulation-cluster circle:nth-child(3){animation-delay:.36s}@keyframes accumulation-pulse{0%{opacity:.62;transform:scale(.82)}to{opacity:1;transform:scale(1.18)}}.subtropical-deflection-inset p{color:#d9c5b5;margin:-3px 2px 0;font-size:11px;line-height:1.4}.polar-front-inset{color:#e9f8ff;border-color:#70c8ff61}.polar-front-inset .front-ground{stroke:#ffffff6b;stroke-width:2px}.polar-front-inset .warm-air-mass{fill:#ffb06b1f}.polar-front-inset .cold-air-wedge{fill:#70c8ff4d;stroke:#a4e1ffc2;stroke-width:1.5px}.polar-front-inset .warm-flow-path,.polar-front-inset .cold-flow-path,.polar-front-inset .front-rising-path{fill:none;stroke-width:4px;stroke-linecap:round}.polar-front-inset .warm-flow-path{stroke:#ffb06b;filter:drop-shadow(0 0 4px #ffb06ba6)}.polar-front-inset .cold-flow-path{stroke:#70c8ff;filter:drop-shadow(0 0 4px #70c8ffad)}.polar-front-inset .front-rising-path{stroke:#fff0bd;stroke-width:3.5px;filter:drop-shadow(0 0 4px #fff0bd9e)}.polar-front-inset .warm-parcel{fill:#ffd0a1}.polar-front-inset .cold-parcel{fill:#b8e8ff;filter:drop-shadow(0 0 5px #70c8ff)}.polar-front-inset .rising-air-parcel{fill:#fff0bd;filter:drop-shadow(0 0 5px #fff0bd)}.polar-front-inset .front-collision{fill:#ffffff42;stroke:#fff;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:1.15s ease-in-out infinite alternate front-collision-pulse}.polar-front-inset .warm-label{fill:#ffc48f}.polar-front-inset .cold-label{fill:#a9ddff;text-anchor:middle}.polar-front-inset .front-label{fill:#fff0bd;text-anchor:middle}@keyframes front-collision-pulse{0%{opacity:.45;transform:scale(.78)}to{opacity:1;transform:scale(1.18)}}.polar-front-inset p{color:#c9deec}.concept-paused .accumulation-cluster circle,.concept-paused .front-collision{animation-play-state:paused}.pressure-comparison-overlay{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f1320f7,#070c17fb);border:1px solid #c299ff57;border-radius:16px;flex-direction:column;display:flex;position:absolute;inset:22px;overflow:hidden;box-shadow:0 24px 70px #00000094}.pressure-comparison-header{border-bottom:1px solid #ffffff17;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px 12px;display:flex}.pressure-comparison-header span{color:#c7a7f9;letter-spacing:.09em;margin-bottom:3px;font-size:10px;display:block}.pressure-comparison-header h2{color:#fff;font-size:21px}.pressure-comparison-header button{color:#eaf4ff;cursor:pointer;background:#ffffff0e;border:1px solid #ffffff1f;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.pressure-cause-legend{color:#c7d3df;background:#ffffff06;flex-wrap:wrap;gap:8px 18px;padding:10px 18px;font-size:11px;display:flex}.pressure-cause-legend span{align-items:center;gap:6px;display:inline-flex}.pressure-cause-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:0;padding:12px 18px;display:grid;overflow-y:auto}.pressure-cause-card{background:#ffffff09;border:1px solid #ffffff1a;border-radius:11px;flex-direction:column;gap:8px;padding:13px;display:flex}.pressure-cause-card.thermal{border-top:3px solid #ffb06b}.pressure-cause-card.dynamic{border-top:3px solid #70c8ff}.pressure-cause-card-top{grid-template-columns:52px 1fr auto;align-items:center;gap:10px;display:grid}.pressure-cause-card-top>b{color:#fff;font-size:24px}.pressure-cause-card h3{color:#f3f7fb;font-size:14px}.pressure-cause-animation{background:linear-gradient(#659ec70e,#ffffff04);border-radius:8px;height:92px;overflow:hidden}.pressure-cause-animation svg{width:100%;height:100%;display:block}.pressure-cause-animation text{fill:#9eacbb;font-family:inherit;font-size:9px}.pressure-cause-animation marker path{fill:currentColor}.pressure-cause-animation .animation-ground{fill:none;stroke:#d6e4ef57;stroke-width:2px}.pressure-cause-animation .warm-ground{stroke:#ff9f66;filter:drop-shadow(0 0 5px #ff8b5380)}.pressure-cause-animation .cold-ground{stroke:#91d7ff;filter:drop-shadow(0 0 5px #70c8ff7a)}.pressure-cause-animation .air-column,.pressure-cause-animation .surface-flow,.pressure-cause-animation .upper-flow,.pressure-cause-animation .front-slope,.pressure-cause-animation .rising-front-flow{fill:none;stroke-linecap:round;stroke-linejoin:round}.pressure-cause-animation .air-column{stroke:currentColor;stroke-width:3px}.thermal-rise-animation,.subtropical-sink-animation{color:#ffad72}.subpolar-rise-animation{color:#ffe6b0}.polar-sink-animation{color:#8ed7ff}.pressure-cause-animation .surface-flow,.pressure-cause-animation .upper-flow,.pressure-cause-animation .rising-front-flow{stroke-width:2.4px;stroke-dasharray:8 7;animation:1.15s linear infinite pressure-flow-dash}.pressure-cause-animation .warm-flow,.pressure-cause-animation .upper-flow{stroke:#ffad72}.pressure-cause-animation .cold-flow{stroke:#7cf}.pressure-cause-animation .divergence,.pressure-cause-animation .rising-front-flow{stroke:currentColor}.pressure-cause-animation .right-flow,.pressure-cause-animation .upper-flow-right,.pressure-cause-animation .front-cold-flow{animation-direction:reverse}.pressure-cause-animation .heat-waves path{fill:none;stroke:#ff8354;stroke-width:2px;stroke-linecap:round;stroke-dasharray:5 5;animation:1.4s ease-in-out infinite pressure-heat-wave}.pressure-cause-animation .heat-waves path:nth-child(2){animation-delay:.18s}.pressure-cause-animation .heat-waves path:nth-child(3){animation-delay:.36s}.pressure-cause-animation .air-particle{transform-box:fill-box;transform-origin:50%}.thermal-rise-animation .air-particle{fill:#ffb176;animation:2.1s ease-out infinite pressure-particle-rise}.thermal-rise-animation .p2{animation-delay:.7s}.thermal-rise-animation .p3{animation-delay:1.4s}.subtropical-sink-animation .accumulating-air circle{fill:#ff9a5f;stroke:#ffd0a7;stroke-width:1px;transform-box:fill-box;transform-origin:50%;animation:1.35s ease-in-out infinite alternate pressure-accumulate}.subtropical-sink-animation .accumulating-air circle:nth-child(2){animation-delay:.16s}.subtropical-sink-animation .accumulating-air circle:nth-child(3){animation-delay:.32s}.subtropical-sink-animation .accumulating-air circle:nth-child(4){animation-delay:.48s}.subtropical-sink-animation .accumulating-air circle:nth-child(5){animation-delay:.64s}.subtropical-sink-animation .sinking-particle{fill:#ffd0a7;animation:1.8s ease-in infinite pressure-particle-sink}.subtropical-sink-animation .sinking-particle.p2{animation-delay:.9s}.subpolar-rise-animation .cold-wedge{fill:#70c8ff38;stroke:#95dcffb3;stroke-width:1px}.subpolar-rise-animation .front-slope{stroke:#ffe9bc8c;stroke-width:1.5px}.subpolar-rise-animation .front-meeting-point{fill:#ffffff38;stroke:#fff;stroke-width:1px;transform-box:fill-box;transform-origin:50%;animation:1.15s ease-in-out infinite alternate pressure-front-pulse}.subpolar-rise-animation .warm-front-particle{fill:#ffae72;animation:2.2s ease-in-out infinite pressure-warm-converge}.subpolar-rise-animation .cold-front-particle{fill:#85d4ff;animation:2.2s ease-in-out infinite pressure-cold-converge}.subpolar-rise-animation .front-rise-particle{fill:#fff0bd;animation:2.2s ease-out infinite pressure-front-rise}.polar-sink-animation .cold-crystals path{fill:none;stroke:#a9e3ff;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite alternate pressure-cold-pulse}.polar-sink-animation .cold-crystals path:nth-child(2){animation-delay:.5s}.polar-sink-animation .cold-particle{fill:#8ed7ff;animation:2.25s ease-in infinite pressure-polar-sink}.polar-sink-animation .p2{animation-delay:.75s}.polar-sink-animation .p3{animation-delay:1.5s}@keyframes pressure-flow-dash{to{stroke-dashoffset:-30px}}@keyframes pressure-heat-wave{0%,to{opacity:.25;transform:translateY(3px)}50%{opacity:1;transform:translateY(-3px)}}@keyframes pressure-particle-rise{0%{opacity:0;transform:translateY(0)scale(.7)}18%{opacity:1}to{opacity:0;transform:translateY(-46px)scale(1.25)}}@keyframes pressure-accumulate{0%{opacity:.55;transform:scale(.75)}to{opacity:1;transform:scale(1.18)}}@keyframes pressure-particle-sink{0%{opacity:0;transform:translateY(0)scale(1.1)}18%{opacity:1}to{opacity:0;transform:translateY(28px)scale(.78)}}@keyframes pressure-front-pulse{0%{opacity:.45;transform:scale(.72)}to{opacity:1;transform:scale(1.2)}}@keyframes pressure-warm-converge{0%{opacity:0;transform:translate(0)}18%{opacity:1}72%{opacity:1;transform:translate(145px)}to{opacity:0;transform:translate(145px)}}@keyframes pressure-cold-converge{0%{opacity:0;transform:translate(0)}18%{opacity:1}72%{opacity:1;transform:translate(-82px)}to{opacity:0;transform:translate(-82px)}}@keyframes pressure-front-rise{0%,42%{opacity:0;transform:translate(0)}55%{opacity:1}to{opacity:0;transform:translate(76px,-45px)}}@keyframes pressure-cold-pulse{0%{opacity:.38;transform:rotate(0)scale(.82)}to{opacity:1;transform:rotate(25deg)scale(1.12)}}@keyframes pressure-polar-sink{0%{opacity:0;transform:translateY(0)scale(1.12)}18%{opacity:1}to{opacity:0;transform:translateY(48px)scale(.72)}}.pressure-cause-card-top div span{color:#9caaba;font-size:10px}.pressure-cause-card-top i{border-radius:999px;align-items:center;gap:3px;padding:5px 7px;font-size:10px;font-style:normal;font-weight:700;display:inline-flex}.pressure-cause-card-top i.high{color:#ffbd9f;background:#ff8a6524}.pressure-cause-card-top i.low{color:#a9e6ff;background:#4fc3f724}.pressure-cause-card p{color:#d5dee7;font-size:12px;line-height:1.55}.pressure-cause-card>strong{color:#fff;font-size:11px;line-height:1.5}.pressure-cause-card>button{color:#d6f2ff;cursor:pointer;background:#70c8ff1a;border:1px solid #70c8ff61;border-radius:7px;align-self:flex-start;min-height:32px;margin-top:auto;padding:5px 10px;font-family:inherit;font-size:11px;font-weight:700}.pressure-comparison-summary{color:#dce3ed;background:#c299ff0f;border-top:1px solid #ffffff17;padding:11px 18px 14px;font-size:12px;line-height:1.5}.pressure-comparison-summary b{color:#d6baff}.scene-legend{z-index:3;color:#eaf4ff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#050a14c7;border:1px solid #ffffff24;border-radius:10px;gap:7px;max-width:min(560px,100% - 32px);padding:10px 12px;font-size:12px;display:grid;position:absolute;bottom:16px;right:16px}.textbook-mode .app-scene{background:#f2efe5}.textbook-mode-heading{z-index:3;color:#1e3042;pointer-events:none;background:#fffdf6e6;border:1px solid #34475b47;border-radius:8px;flex-direction:column;gap:2px;padding:8px 11px;display:flex;position:absolute;top:14px;left:16px;box-shadow:0 4px 16px #3a372b17}.textbook-mode-heading strong{font-size:14px}.textbook-mode-heading span{color:#687581;font-size:10px}.textbook-latitude-marker{color:#445567;white-space:nowrap;background:#fffdf6e6;border:1px solid #44556733;border-radius:5px;justify-content:center;align-items:center;min-width:42px;padding:2px 5px;font-size:10px;font-weight:700;display:inline-flex;box-shadow:0 2px 7px #2d37401a}.textbook-mode .section-lock-badge{color:#26394b;background:#fffdf6eb;border-color:#34475b59;box-shadow:0 4px 16px #3a372b14}.textbook-mode .scene-legend{color:#243649;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffdf6eb;border-color:#34475b40;left:16px;right:auto;box-shadow:0 4px 16px #3a372b14}.textbook-mode .legend-title{color:#687581}.textbook-mode .legend-swatch.low-cell,.textbook-mode .legend-swatch.mid-cell,.textbook-mode .legend-swatch.high-cell{color:#30465c;background:#30465c}.textbook-mode .legend-arrow{background:#78601c}.textbook-mode .legend-arrow:after{border-left-color:#78601c}.legend-row{flex-wrap:wrap;align-items:center;gap:7px 12px;display:flex}.legend-row>span{align-items:center;gap:5px;display:inline-flex}.legend-title{color:#8da0b5;min-width:34px;font-weight:700}.legend-swatch{border-radius:99px;width:18px;height:4px;box-shadow:0 0 7px}.legend-swatch.low-cell{color:#62d8ff;background:#62d8ff}.legend-swatch.mid-cell{color:#9fc7ff;background:#9fc7ff}.legend-swatch.high-cell{color:#c4b7ff;background:#c4b7ff}.legend-swatch.high-pressure{color:#ff8a65;background:#ff8a65;height:8px}.legend-swatch.low-pressure{color:#4fc3f7;background:#4fc3f7;height:8px}.legend-arrow{background:#ffe66d;width:22px;height:2px;position:relative}.legend-arrow:after{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid #ffe66d;position:absolute;top:-4px;right:-1px}.season-shift-note strong{color:#ffe9a6}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.teacher-guide-backdrop{z-index:30;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#02050cc7;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.teacher-guide-dialog{background:linear-gradient(145deg,#121726fa,#080d19fc);border:1px solid #66cfff52;border-radius:14px;flex-direction:column;width:min(900px,100%);max-height:min(780px,100vh - 44px);display:flex;overflow:hidden;box-shadow:0 24px 80px #00000094,0 0 32px #4fc3f714}.teacher-guide-header{border-bottom:1px solid #ffffff17;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px 14px;display:flex}.teacher-guide-kicker{color:#8ddcff;letter-spacing:.06em;margin-bottom:4px;font-size:11px;display:block}.teacher-guide-header h2{color:#fff;letter-spacing:.03em;font-size:22px}.teacher-guide-close{border:1px solid var(--border);background:var(--btn-bg);width:38px;height:38px;color:var(--text-primary);cursor:pointer;border-radius:9px;flex:0 0 38px;place-items:center;display:grid}.teacher-guide-content{grid-template-columns:1.15fr .85fr;gap:18px 22px;padding:18px 20px;display:grid;overflow-y:auto}.teacher-guide-content>section:first-child,.teacher-guide-content>section:last-child{grid-column:1/-1}.teacher-guide-content h3{color:#fff;margin-bottom:9px;font-size:14px}.teacher-route-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:0;list-style:none;display:grid}.teacher-route-list li{color:#cfd9e5;background:#ffffff09;border:1px solid #ffffff17;border-radius:9px;flex-direction:column;gap:7px;min-height:96px;padding:10px;font-size:12px;line-height:1.5;display:flex}.teacher-route-list b{color:#8ddcff}.teacher-core-grid{gap:7px;display:grid}.teacher-core-grid p{border-left:3px solid var(--accent);color:#dce7ef;background:#4fc3f712;padding:8px 10px;line-height:1.5}.teacher-core-grid b{color:#a7e5ff}.teacher-warning-list{color:#d8d1ce;gap:7px;padding-left:18px;line-height:1.5;display:grid}.teacher-warning-list li::marker{color:var(--accent-warm)}.teacher-shortcuts p{color:#b9c4d1;line-height:2}.teacher-shortcuts kbd{color:#fff;background:#ffffff12;border:1px solid #ffffff2e;border-radius:5px;justify-content:center;align-items:center;min-width:25px;min-height:25px;margin:0 2px;padding:2px 6px;font-family:inherit;font-size:11px;display:inline-flex}.teacher-guide-footer{border-top:1px solid #ffffff17;justify-content:flex-end;gap:8px;padding:13px 20px 16px;display:flex}.teacher-guide-start,.teacher-guide-secondary{cursor:pointer;border-radius:8px;min-height:40px;padding:8px 15px;font-family:inherit;font-size:13px;font-weight:700}.teacher-guide-start{color:#06121a;background:#4fc3f7;border:1px solid #63d2ff}.teacher-guide-secondary{border:1px solid var(--border);background:var(--btn-bg);color:var(--text-primary)}.projection-mode{--font-size-base:16px;--font-size-lg:18px;--font-size-xl:24px}.projection-mode .app-sidebar{gap:18px;width:330px;padding:16px}.projection-mode .view-mode-btn,.projection-mode .season-btn,.projection-mode .circulation-focus-control button,.projection-mode .nav-btn{font-size:14px}.projection-mode .step-text,.projection-mode .action-btn{font-size:16px}.projection-mode .scene-legend{padding:12px 15px;font-size:15px}@media (width<=900px){.bug-feedback span{display:none}.app-sidebar{gap:12px;width:226px;padding:10px;font-size:12px}.panel-title{font-size:13px}.toggle-btn{padding:8px 10px}.teacher-route-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px),(height<=520px) and (orientation:landscape){.app-sidebar{border-right:none;border-right:1px solid var(--border);width:min(88vw,360px);max-height:none;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute;inset:0 auto 0 0;transform:translate(-105%);box-shadow:12px 0 32px #00000073}.app-sidebar.mobile-open{transform:translate(0)}.mobile-panel-toggle{border:1px solid var(--border);background:var(--btn-bg);min-height:36px;color:var(--text-primary);border-radius:7px;align-items:center;gap:5px;padding:5px 9px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.mobile-panel-backdrop{z-index:4;background:#00000075;border:0;width:100%;height:100%;position:absolute;inset:0}.mobile-panel-backdrop.visible{display:block}.app-header{padding-top:max(8px, env(safe-area-inset-top));padding-right:max(12px, env(safe-area-inset-right));padding-bottom:8px;padding-left:max(12px, env(safe-area-inset-left));gap:8px}.app-title{font-size:16px}.app-version{padding-inline:5px;font-size:9px}.bug-feedback{margin-left:auto;padding-inline:6px}.bug-feedback svg{display:none}.bug-feedback strong{font-size:9px}.app-subtitle{display:none}.teacher-guide-trigger{margin-left:0;padding-inline:8px}.teacher-guide-backdrop{padding:8px}.teacher-guide-dialog{border-radius:11px;max-height:calc(100vh - 16px)}.teacher-guide-header{padding:14px 14px 11px}.teacher-guide-header h2{font-size:18px}.teacher-guide-content{grid-template-columns:1fr;gap:18px;padding:14px}.teacher-guide-content>section:first-child,.teacher-guide-content>section:last-child{grid-column:auto}.teacher-route-list{grid-template-columns:1fr}.teacher-route-list li{min-height:0}.teacher-guide-footer{padding:11px 14px 13px}.scene-legend{max-width:calc(100% - 16px);padding:7px 9px;font-size:10px;bottom:8px;right:8px}.section-lock-badge{padding:5px 8px;font-size:10px;top:8px;right:8px}.textbook-mode-heading{max-width:56%;top:8px;left:8px}.textbook-mode-heading strong{font-size:11px}.textbook-latitude-marker{min-width:36px;padding:1px 4px;font-size:9px}.subtropical-concept-overlay{grid-template-columns:repeat(2,minmax(0,1fr));width:calc(100% - 16px);top:48px}.subtropical-concept-overlay button{min-height:38px;font-size:10px}.concept-playback-controls{gap:3px;max-width:calc(100% - 16px);padding:5px;bottom:10px}.concept-playback-controls button{min-width:30px;padding-inline:5px}.concept-play-toggle{min-width:42px!important}.concept-play-toggle span,.concept-stage-status{display:none}.concept-speed-control button{min-width:35px}.subtropical-deflection-inset{width:auto;padding:7px 8px;inset:auto 8px 82px}.subtropical-deflection-inset svg{max-height:118px}.subtropical-deflection-inset p{display:none}.pressure-comparison-overlay{border-radius:11px;inset:8px}.pressure-comparison-header{padding:12px 12px 9px}.pressure-comparison-header h2{font-size:17px}.pressure-cause-legend{padding:8px 12px}.pressure-cause-grid{grid-template-columns:1fr;padding:9px 12px}.pressure-comparison-summary{padding:9px 12px 11px;font-size:11px}}@media (width<=380px){.bug-feedback{display:none}.teacher-guide-trigger span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.teacher-guide-trigger{width:36px;padding:5px}}@media (prefers-reduced-motion:reduce){.app-scene,.app-scene.scene-transitioning{opacity:1;transition:none;transform:none}.app-sidebar{transition:none}.moving-air-parcel,.rising-air-parcel{display:none}.accumulation-cluster circle,.front-collision,.pressure-cause-animation *{animation:none}}
