.geogebra-shell{background:#fff;border:1px solid #d2d2d7e0;border-radius:30px;width:100%;position:relative;overflow:hidden}.geogebra-topbar{z-index:4;color:#fff;backdrop-filter:blur(12px);pointer-events:none;background:#1d1d1fdb;border-radius:999px;align-items:center;gap:12px;padding:10px 14px;display:inline-flex;position:absolute;top:18px;left:18px}.geogebra-topbar-label{letter-spacing:.02em;font-size:12px;font-weight:600}.geogebra-topbar-tip{color:#ffffffb3;font-size:12px}.geogebra-stage{background:linear-gradient(#fff 0%,#fbfbfd 100%);width:100%;height:100%}.geogebra-skeleton{z-index:3;background:radial-gradient(circle at 16% 18%,#0071e31a,#0000 24%),linear-gradient(#f7f8fb 0%,#f5f5f7 100%);justify-content:center;align-items:center;transition:opacity .24s,transform .24s;display:flex;position:absolute;inset:0}.geogebra-skeleton.is-leaving{opacity:0;transform:scale(1.01)}.skeleton-card{z-index:2;background:#ffffffeb;border:1px solid #d2d2d7e0;border-radius:30px;flex-direction:column;gap:18px;width:min(420px,100% - 48px);padding:28px;display:flex;position:relative}.skeleton-line{background:linear-gradient(90deg,#d2d2d757,#d2d2d7b3,#d2d2d757) 0 0/200% 100%;border-radius:999px;height:12px;animation:1.6s infinite skeleton-pulse}.skeleton-line.short{width:32%}.skeleton-line.medium{width:58%}.skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.skeleton-block{background:linear-gradient(#d2d2d775,#f5f5f7e6);border-radius:20px;height:110px;animation:1.6s infinite skeleton-pulse}.skeleton-orbit{filter:blur(14px);border-radius:999px;position:absolute}.orbit-one{background:#2997ff1f;width:180px;height:180px;top:16%;left:10%}.orbit-two{background:#d2d2d752;width:220px;height:220px;bottom:10%;right:6%}@keyframes skeleton-pulse{0%{opacity:.7;background-position:200% 0}50%{opacity:1}to{opacity:.7;background-position:-200% 0}}.loading-progress{background:#d2d2d7b8;border-radius:999px;height:8px;position:absolute;bottom:22px;left:24px;right:24px;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#0071e3 0%,#2997ff 100%);border-radius:999px;height:100%;transition:width .3s}.loading-text{z-index:2;text-align:left;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:46px;left:24px;right:24px}.loading-text p{color:#1d1d1f;font-size:15px;font-weight:600}.loading-hint{color:#6e6e73!important;font-size:13px!important;font-weight:400!important}.geogebra-error{z-index:5;text-align:center;background:linear-gradient(#fff8f8 0%,#fff 100%);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex;position:absolute;inset:0}.error-icon{color:#9f2f2f;background:#d65c5c1f;border-radius:22px;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;font-weight:700;display:inline-flex}.error-icon-image{border-radius:12px;width:38px;height:38px}.error-title{font-family:var(--display-font);letter-spacing:-.03em;color:#7d2525;font-size:26px;font-weight:600}.error-message{color:#9f2f2f;word-break:break-word;max-width:520px;line-height:1.7}.error-hint{color:#b15b5b;max-width:560px;line-height:1.6}.error-retry-btn{color:#fff;background:#1d1d1f;border-radius:999px;min-height:44px;padding:0 18px;font-weight:600;transition:background-color .22s,transform .22s}.error-retry-btn:hover{background:#000;transform:translateY(-1px)}.geogebra-ready-hint{z-index:4;color:#fff;backdrop-filter:blur(12px);background:#1d1d1fd6;border-radius:20px;flex-direction:column;gap:4px;padding:12px 14px;display:inline-flex;position:absolute;bottom:18px;right:18px}.geogebra-ready-hint span{font-size:13px;font-weight:600}.geogebra-ready-hint small{color:#ffffffb3;font-size:12px}@media (width<=768px){.geogebra-shell{border-radius:24px}.geogebra-topbar{gap:8px;padding:8px 12px;top:14px;left:14px}.geogebra-topbar-tip{display:none}.skeleton-card{width:calc(100% - 28px);padding:22px}.skeleton-grid{grid-template-columns:1fr}}@media (width<=480px){.geogebra-topbar,.geogebra-ready-hint{border-radius:16px}.loading-text{left:18px;right:18px}}.code-editor-shell{background:linear-gradient(#1f1f21 0%,#161617 100%);border:1px solid #424245e0;border-radius:28px;position:relative;overflow:hidden}.code-editor-topbar{background:linear-gradient(#2a2a2cfa,#1f1f21f0);border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:14px;min-height:54px;padding:14px 18px;display:flex}.code-editor-window-controls{align-items:center;gap:8px;display:inline-flex}.code-editor-window-controls span{background:#ffffff47;border-radius:50%;width:11px;height:11px}.code-editor-window-controls span:first-child{background:#ff5f57}.code-editor-window-controls span:nth-child(2){background:#ffbd2f}.code-editor-window-controls span:nth-child(3){background:#28c840}.code-editor-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.code-editor-badge{color:#ffffffd1;background:#ffffff14;border:1px solid #ffffff14;border-radius:999px;align-items:center;min-height:28px;padding:0 11px;font-size:12px;font-weight:500;display:inline-flex}.code-editor-surface{height:calc(100% - 54px)}@media (width<=768px){.code-editor-shell{border-radius:22px}.code-editor-topbar{padding:12px 14px}.code-editor-badge{min-height:26px;font-size:11px}}.control-panel{background:#f5f5f7;border:1px solid #d2d2d7e0;border-radius:28px;flex-direction:column;gap:18px;padding:22px;display:flex}.control-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.control-head-copy{flex-direction:column;gap:6px;display:flex}.panel-kicker{color:#6e6e73;letter-spacing:.02em;font-size:12px;font-weight:600}.control-head h3{font-family:var(--display-font);letter-spacing:-.03em;color:#1d1d1f;font-size:28px;font-weight:600;line-height:1.08}.control-head p,.canvas-mode-copy p{color:#6e6e73;line-height:1.6}.run-status{border:1px solid #0000;border-radius:22px;flex-direction:column;gap:6px;min-width:248px;padding:16px 18px;display:flex}.run-status strong{font-size:15px;font-weight:600}.run-status span{font-size:13px;line-height:1.55}.run-status-neutral{color:#424245;background:#fff;border-color:#d2d2d7e0}.run-status-accent{color:#06c;background:#0071e314;border-color:#0071e329}.run-status-success{color:#276738;background:#68c2841a;border-color:#68c28429}.run-status-danger{color:#9f2f2f;background:#d65c5c14;border-color:#d65c5c24}.canvas-mode-panel{background:#fff;border:1px solid #d2d2d7e0;border-radius:24px;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px;display:flex}.canvas-mode-copy{flex-direction:column;gap:6px;max-width:320px;display:flex}.canvas-mode-copy strong{font-family:var(--display-font);letter-spacing:-.03em;color:#1d1d1f;font-size:22px;font-weight:600;line-height:1.12}.canvas-mode-options{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.canvas-mode-chip{color:#1d1d1f;background:#f5f5f7;border:1px solid #d2d2d7e0;border-radius:22px;flex-direction:column;align-items:flex-start;gap:4px;min-width:144px;padding:14px 16px;transition:background-color .22s,border-color .22s,transform .22s;display:flex}.canvas-mode-chip:hover:not(:disabled){background:#fff;border-color:#0071e338;transform:translateY(-1px)}.canvas-mode-chip:disabled{opacity:.58;cursor:not-allowed}.canvas-mode-chip.active{color:#06c;background:#0071e314;border-color:#0071e342}.canvas-mode-chip-label{font-size:14px;font-weight:600}.canvas-mode-chip-meta{color:#6e6e73;font-size:12px;line-height:1.45}.control-buttons{flex-wrap:wrap;gap:12px;display:flex}.btn{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:44px;padding:0 18px;font-size:14px;font-weight:600;transition:transform .22s,background-color .22s,border-color .22s,color .22s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.58;cursor:not-allowed}.btn-primary{color:#fff;background:#0071e3}.btn-primary:hover:not(:disabled){background:#06c}.btn-secondary{color:#1d1d1f;background:#fff;border-color:#d2d2d7e0}.btn-secondary:hover:not(:disabled){color:#06c;border-color:#0071e338}.btn-icon{justify-content:center;align-items:center;width:20px;font-size:14px;display:inline-flex}.btn-icon-image{border-radius:6px;width:18px;height:18px}.control-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.summary-card{background:#fff;border:1px solid #d2d2d7e0;border-radius:22px;flex-direction:column;justify-content:space-between;gap:10px;min-height:108px;padding:16px 18px;display:flex}.summary-card-success{background:#fbfffc}.summary-card-danger{background:#fff9f9}.summary-card-accent{background:#f5f9ff}.summary-label{color:#6e6e73;letter-spacing:.02em;font-size:12px;font-weight:600}.summary-value{font-family:var(--display-font);letter-spacing:-.03em;color:#1d1d1f;font-size:26px;font-weight:600;line-height:1.08}@media (width<=900px){.control-head,.canvas-mode-panel{flex-direction:column}.run-status{width:100%;min-width:0}.canvas-mode-copy{max-width:none}.canvas-mode-options{justify-content:flex-start;width:100%}.control-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.control-panel{border-radius:24px;padding:18px}.control-head h3{font-size:24px}.control-buttons{flex-direction:column}.btn,.canvas-mode-chip{width:100%}.control-summary-grid{grid-template-columns:1fr}}.log-panel{background:#fff;border:1px solid #d2d2d7e0;border-radius:28px;flex-direction:column;min-height:340px;display:flex;overflow:hidden}.log-header{color:#fff;background:linear-gradient(#272729 0%,#1d1d1f 100%);border-bottom:1px solid #d2d2d7e0;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px;display:flex}.log-header-copy{flex-direction:column;gap:6px;display:flex}.log-header-copy h3{font-family:var(--display-font);letter-spacing:-.03em;font-size:28px;font-weight:600;line-height:1.08}.log-header-copy p{color:#ffffffb3;line-height:1.6}.log-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.badge{border:1px solid #0000;border-radius:999px;align-items:center;min-height:30px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.badge-status{background:#ffffff14;border-color:#ffffff1f}.badge-error{background:#d65c5c2e;border-color:#d65c5c38}.badge-warning{background:#ffb5452e;border-color:#ffb54538}.badge-info{background:#2997ff2e;border-color:#2997ff38}.log-content{flex:1;padding:10px 0;overflow-y:auto}.log-empty{text-align:center;color:#6e6e73;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:250px;padding:24px;display:flex}.log-empty strong{font-family:var(--display-font);letter-spacing:-.03em;color:#1d1d1f;font-size:24px;font-weight:600;line-height:1.1}.log-empty-steps{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.log-empty-steps span{color:#6e6e73;background:#f5f5f7;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:600}.log-entry{border-bottom:1px solid #d2d2d794;border-left:3px solid #0000;align-items:flex-start;gap:12px;padding:14px 22px;transition:background-color .2s;display:flex}.log-entry:hover{background:#fafafc}.log-timestamp{color:#86868b;min-width:66px;font-size:12px;font-family:var(--code-font)}.log-icon{width:28px;height:28px;font-size:13px;font-weight:700;font-family:var(--code-font);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.log-icon-image{border-radius:8px;width:18px;height:18px}.log-icon-success{color:#276738;background:#68c2841f}.log-icon-error{color:#9f2f2f;background:#d65c5c1f}.log-icon-warning{color:#b26b00;background:#ffb54524}.log-icon-info{color:#06c;background:#0071e31f}.log-body{flex-direction:column;flex:1;gap:4px;display:flex}.log-meta-row{align-items:center;gap:8px;display:flex}.log-level-label{color:#86868b;letter-spacing:.02em;font-size:11px;font-weight:600}.log-message,.log-error-message{color:#1d1d1f;word-break:break-word;line-height:1.6}.log-success{border-left-color:#68c284}.log-error{border-left-color:#d65c5c}.log-warning{border-left-color:#ffb545}.log-info{border-left-color:#0071e3}.log-section{padding:10px 0 0}.log-section-title{color:#9f2f2f;letter-spacing:.02em;background:#fff5f5;border-radius:16px;margin:0 22px 10px;padding:10px 12px;font-size:12px;font-weight:600}.log-error-content{flex-direction:column;flex:1;gap:8px;display:flex}.log-error-line{color:#9f2f2f;font-weight:600}.log-error-command{color:#424245;font-family:var(--code-font);word-break:break-all;background:#f5f5f7;border-radius:16px;padding:10px 12px;font-size:12px}.log-content::-webkit-scrollbar{width:8px}.log-content::-webkit-scrollbar-track{background:#d2d2d780}.log-content::-webkit-scrollbar-thumb{background:#6e6e7375;border-radius:999px}@media (width<=768px){.log-header{padding:18px}.log-header-copy h3{font-size:24px}.log-entry{padding:12px 18px}}@media (width<=560px){.log-panel{border-radius:24px;min-height:300px}.log-header{flex-direction:column}.log-badges{justify-content:flex-start}.log-entry{gap:10px}.log-timestamp{min-width:58px}}.app-shell{width:100%;padding:20px 0 48px}.app-container{width:min(1440px,100vw - 48px);margin:0 auto}.global-nav{color:#fff;backdrop-filter:blur(18px);background:#000000d1;border:1px solid #ffffff14;border-radius:999px;justify-content:space-between;align-items:center;gap:20px;min-height:56px;margin-bottom:18px;padding:10px 18px;display:flex}.global-nav-brand,.global-nav-copy,.global-nav-actions,.global-nav-meta{align-items:center;display:flex}.global-nav-brand{gap:12px}.global-nav-mark{color:#000;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:600;display:inline-flex}.global-nav-mark-image{border-radius:50%}.global-nav-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-left:auto}.global-nav-copy{flex-direction:column;align-items:flex-start;gap:1px}.global-nav-copy strong{letter-spacing:-.01em;font-size:14px;font-weight:600}.global-nav-copy span{color:#ffffffad;font-size:12px}.global-nav-meta{flex-wrap:wrap;justify-content:flex-end;gap:10px}.open-source-pill{color:#fff;background:linear-gradient(135deg,#2997ff47,#ffffff1f);border:1px solid #2997ff4d;border-radius:999px;align-items:center;gap:12px;max-width:min(100%,420px);min-height:40px;padding:8px 16px;transition:border-color .22s,background-color .22s,transform .22s;display:inline-flex;box-shadow:0 12px 30px #0000002e}.open-source-pill:hover{background:linear-gradient(135deg,#2997ff61,#ffffff29);border-color:#7adf965c;transform:translateY(-1px)}.open-source-pill-label{color:#ffffffbd;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.open-source-pill-path{overflow-wrap:anywhere;font-size:13px;font-weight:600}.nav-pill{color:#fff;letter-spacing:-.01em;background:#ffffff14;border:1px solid #ffffff1a;border-radius:999px;align-items:center;min-height:32px;padding:0 14px;font-size:12px;font-weight:600;display:inline-flex}.nav-pill-accent,.status-chip-accent{color:#2997ff;background:#0071e329;border-color:#2997ff52}.nav-pill-success,.status-chip-success{color:#7adf96;background:#68c2841f;border-color:#7adf9633}.nav-pill-danger,.status-chip-danger{color:#ffb4b4;background:#ff6b6b24;border-color:#ffb4b438}.nav-pill-warning{color:#ffd37c;background:#ffc85729;border-color:#ffd37c3d}.nav-pill-neutral,.status-chip-neutral{color:#ffffffd1;background:#ffffff14;border-color:#ffffff1f}.chapter,.workspace-shell,.app-footer{border-radius:36px}.chapter{border:1px solid #d2d2d7c7;margin-bottom:20px;padding:34px}.chapter-dark{color:#fff;background:linear-gradient(#060606 0%,#000 100%);border-color:#ffffff14}.chapter-light{background:#f5f5f7}.chapter-white,.workspace-shell{background:#fff}.hero-panel{grid-template-columns:minmax(0,1.35fr) minmax(360px,.95fr);align-items:stretch;gap:28px;display:grid}.hero-copy{flex-direction:column;justify-content:space-between;gap:22px;min-height:420px;display:flex}.hero-eyebrow,.section-kicker,.card-kicker{color:#ffffffd6;letter-spacing:.02em;background:#ffffff14;border:1px solid #d2d2d729;border-radius:999px;align-items:center;width:fit-content;min-height:28px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.chapter-light .section-kicker,.chapter-white .section-kicker,.workspace-shell .section-kicker,.chapter-light .card-kicker,.chapter-white .card-kicker,.workspace-shell .card-kicker{color:#6e6e73;background:#ffffffb8;border-color:#d2d2d7e0}.hero-copy h1{max-width:760px;font-family:var(--display-font);letter-spacing:-.06em;font-size:clamp(3.2rem,6vw,5.2rem);font-weight:600;line-height:1.02}.hero-description{color:#ffffffbd;letter-spacing:-.01em;max-width:760px;font-size:19px;line-height:1.5}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-btn,.banner-btn{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 20px;font-size:14px;font-weight:600;transition:background-color .22s,border-color .22s,color .22s,transform .22s;display:inline-flex}.hero-btn:hover:not(:disabled),.banner-btn:hover:not(:disabled),.starter-card:hover,.tab-button:hover,.workspace-head-note:hover{transform:translateY(-1px)}.hero-btn:disabled,.banner-btn:disabled{opacity:.6;cursor:not-allowed}.hero-btn-primary,.banner-btn-primary{color:#fff;background:#0071e3}.hero-btn-primary:hover:not(:disabled),.banner-btn-primary:hover:not(:disabled){background:#06c}.hero-btn-secondary{color:#fff;background:#ffffff0a;border-color:#ffffff2e}.hero-btn-secondary:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff42}.hero-tags{flex-wrap:wrap;gap:10px;display:flex}.hero-tag{color:#fffc;background:#ffffff0d;border:1px solid #ffffff24;border-radius:999px;align-items:center;min-height:34px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.hero-side{gap:14px;display:grid}.hero-status-card{background:linear-gradient(#272729e0,#1a1a1ce0);border:1px solid #ffffff14;border-radius:28px;padding:24px}.hero-status-card strong{font-family:var(--display-font);letter-spacing:-.03em;margin-top:12px;font-size:28px;font-weight:600;line-height:1.08;display:block}.hero-status-card p{color:#ffffffad;margin-top:10px;line-height:1.6}.hero-status-row{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.status-chip,.meta-pill{color:#1d1d1f;background:#f5f5f7c2;border:1px solid #d2d2d7e6;border-radius:999px;align-items:center;min-height:32px;padding:0 14px;font-size:12px;font-weight:600;display:inline-flex}.status-chip-warning,.meta-pill-warning{color:#b26b00;background:#fff3e0eb;border-color:#b26b0029}.meta-pill-accent{color:#0071e3;background:#0071e314;border-color:#0071e329}.meta-pill-success{color:#276738;background:#68c2841f;border-color:#68c28429}.meta-pill-neutral{color:#6e6e73;background:#fff;border-color:#d2d2d7e0}.workflow-list{color:#ffffffc2;margin-top:12px;padding-left:18px;line-height:1.75}.hero-brief-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.hero-brief-item{background:#ffffff0a;border:1px solid #ffffff14;border-radius:22px;flex-direction:column;gap:6px;padding:16px;display:flex}.hero-brief-item span,.metric-label,.workspace-head-label{letter-spacing:.02em;font-size:12px;font-weight:600}.hero-brief-item span{color:#ffffff9e}.metric-label,.workspace-head-label{color:#6e6e73}.hero-brief-item strong{margin:0;font-size:20px;line-height:1.15}.hero-brief-item small{color:#ffffff94;line-height:1.45}.chapter-header,.starter-intro,.section-heading,.workspace-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.chapter-header h2,.starter-intro h2,.section-heading h2,.workspace-head h2{font-family:var(--display-font);letter-spacing:-.04em;color:#1d1d1f;margin-top:10px;font-size:clamp(2rem,3vw,3rem);font-weight:600;line-height:1.08}.chapter-header p,.starter-intro p,.section-heading p,.workspace-head p,.metric-caption,.micro-card p,.canvas-sync-meta{color:#6e6e73;max-width:720px;line-height:1.65}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.metric-card,.starter-card,.micro-card{background:#fff;border:1px solid #d2d2d7e0;border-radius:28px}.metric-card{padding:22px}.metric-value{font-family:var(--display-font);letter-spacing:-.04em;color:#1d1d1f;margin-top:14px;font-size:clamp(1.85rem,3vw,2.5rem);font-weight:600;line-height:1.04;display:block}.metric-caption{margin-top:10px}.starter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.starter-card{text-align:left;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;transition:border-color .22s,background-color .22s,transform .22s;display:flex}.starter-card:hover{background:#fafafc;border-color:#0071e347}.starter-eyebrow{color:#6e6e73;background:#f5f5f7;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.starter-card strong{font-family:var(--display-font);letter-spacing:-.03em;color:#1d1d1f;font-size:28px;font-weight:600;line-height:1.12}.starter-card p{color:#6e6e73;line-height:1.65}.starter-action{color:#06c;font-size:14px;font-weight:600}.workspace-shell{border:1px solid #d2d2d7e0;margin-top:20px;padding:32px}.workspace-head{margin-bottom:22px}.workspace-head-note{background:#f5f5f7;border:1px solid #d2d2d7e0;border-radius:24px;flex-direction:column;gap:10px;min-width:min(460px,100%);padding:16px 18px;transition:transform .22s;display:flex}.workspace-head-note code,.footer-command{overflow-wrap:anywhere;color:#1d1d1f;font-size:12px;line-height:1.65;display:block}.workspace{grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:20px;display:grid}.editor-section,.canvas-section{border:1px solid #d2d2d7e0;border-radius:32px;flex-direction:column;gap:18px;min-width:0;padding:24px;display:flex}.editor-section{background:#f5f5f7}.canvas-section{background:#fff}.section-meta{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.editor-tip-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.micro-card{padding:18px}.micro-card strong{color:#1d1d1f;font-size:16px;font-weight:600}.micro-card p{margin-top:8px}.canvas-sync-banner{background:#f5f5f7;border:1px solid #d2d2d7e0;border-radius:28px;justify-content:space-between;align-items:center;gap:18px;padding:20px 22px;display:flex}.canvas-sync-banner.is-dirty{background:#fffaf2;border-color:#b26b002e}.canvas-sync-copy{flex-direction:column;gap:6px;display:flex}.canvas-sync-eyebrow{color:#6e6e73;letter-spacing:.02em;font-size:12px;font-weight:600}.canvas-sync-title{color:#1d1d1f;font-size:17px;font-weight:600;line-height:1.5}.canvas-sync-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.banner-btn-secondary{color:#1d1d1f;background:#fff;border-color:#d2d2d7e0}.banner-btn-secondary.active{color:#0071e3;background:#0071e314;border-color:#0071e338}.mobile-tabs{background:#f5f5f7;border:1px solid #d2d2d7e0;border-radius:999px;gap:8px;margin-bottom:12px;padding:6px;display:flex}.tab-button{color:#6e6e73;border-radius:999px;flex:1;min-height:40px;font-size:14px;font-weight:600;transition:background-color .22s,color .22s,transform .22s}.tab-button.active{color:#fff;background:#1d1d1f}.mobile-readonly-note{color:#6e6e73;background:#f5f5f7;border:1px solid #d2d2d7e0;border-radius:22px;margin-bottom:12px;padding:14px 16px;line-height:1.6}.app-footer{color:#1d1d1f;background:#f5f5f7;border:1px solid #d2d2d7e0;margin-top:20px;padding:24px 28px}.app-footer p{line-height:1.7}.footer-hint{color:#6e6e73;margin-top:8px}.footer-command{margin-top:10px}@media (width<=1280px){.hero-panel,.workspace{grid-template-columns:1fr}.chapter-header,.starter-intro,.workspace-head{flex-direction:column}.metric-grid,.starter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-brief-grid{grid-template-columns:1fr}}@media (width<=1024px){.workspace.mobile-mode{flex-direction:column;display:flex}.editor-section,.canvas-section{display:none}.editor-section.active,.canvas-section.active{display:flex}}@media (width<=768px){.app-container{width:min(100vw - 24px,1440px)}.chapter,.workspace-shell,.app-footer{border-radius:28px;padding:24px}.global-nav{border-radius:28px;flex-direction:column;align-items:flex-start}.global-nav-actions{justify-content:flex-start;width:100%}.open-source-pill{max-width:100%}.metric-grid,.starter-grid,.editor-tip-grid{grid-template-columns:1fr}.canvas-sync-banner,.section-heading{flex-direction:column}.section-meta,.canvas-sync-actions,.global-nav-actions,.global-nav-meta{justify-content:flex-start}}@media (width<=560px){.app-shell{padding-top:14px}.app-container{width:min(100vw - 16px,1440px)}.chapter,.workspace-shell,.editor-section,.canvas-section,.app-footer{border-radius:24px;padding:18px}.hero-copy{min-height:auto}.hero-copy h1{font-size:clamp(2.6rem,12vw,4rem)}.chapter-header h2,.starter-intro h2,.section-heading h2,.workspace-head h2,.starter-card strong{font-size:28px}.hero-actions,.canvas-sync-actions,.hero-btn,.banner-btn{width:100%}.workspace-head-note{width:100%;min-width:0}}:root{--display-font:"SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--text-font:"SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--code-font:"SF Mono", "Cascadia Mono", "JetBrains Mono", "Fira Code", monospace;--black:#000;--ink:#1d1d1f;--gray:#f5f5f7;--white:#fff;--blue:#0071e3;--blue-strong:#06c;--blue-bright:#2997ff;--text-secondary:#6e6e73;--border-soft:#d2d2d7;--border-mid:#86868b}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;font-family:var(--text-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ink);background:linear-gradient(#0a0a0a 0 220px,#f5f5f7 220px 58%,#fff 58% 100%)}#root{width:100%;min-height:100vh}::selection{color:var(--ink);background:#0071e333}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #0071e35c}a{color:var(--blue-strong);text-decoration:none}code,pre{font-family:var(--code-font)}img{max-width:100%;height:auto;display:block}.app-icon-image{object-fit:contain;width:100%;height:100%;display:block}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#d2d2d780}::-webkit-scrollbar-thumb{background:#6e6e7373;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#6e6e739e}*{scrollbar-width:thin;scrollbar-color:#6e6e7373 #d2d2d780}@media print{body{background:#fff}.no-print{display:none}}
