:root{--white:#fff;--gray-50:#fafafa;--gray-100:#f5f5f5;--gray-200:#e5e5e5;--gray-300:#d4d4d4;--gray-400:#a3a3a3;--gray-500:#737373;--gray-600:#525252;--gray-700:#404040;--gray-800:#262626;--gray-900:#171717;--orange-400:#fb923c;--orange-500:#f97316;--orange-600:#ea580c}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:var(--white);color:var(--gray-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange-400)!important}button:focus-visible,a:focus-visible{outline:2px solid var(--orange-500);outline-offset:2px}@supports (height:100dvh){html,body,#root{height:100dvh}}@keyframes spin{to{transform:rotate(360deg)}}.gv-content{color:#374151;word-wrap:break-word;font-size:15px;line-height:1.8}.gv-content h1{color:#111827;margin:20px 0 10px;font-size:20px;font-weight:700;line-height:1.3}.gv-content h2{color:#111827;margin:18px 0 10px;font-size:17px;font-weight:700;line-height:1.3}.gv-content h3{color:#111827;margin:14px 0 8px;font-size:15px;font-weight:700;line-height:1.3}.gv-content h4{color:#111827;margin:12px 0 6px;font-size:14px;font-weight:700;line-height:1.3}.gv-content p{margin:0 0 14px}.gv-content strong{color:#111827;font-weight:600}.gv-content em{color:#ea580c;font-style:italic}.gv-content code{color:#c2410c;background:#f1f5f9;border-radius:4px;padding:2px 6px;font-family:SF Mono,Monaco,Fira Code,monospace;font-size:13px}.gv-content pre{color:#e2e8f0;background:#1e293b;border-radius:10px;margin:12px 0;padding:14px 16px;font-family:SF Mono,Monaco,Fira Code,monospace;font-size:13px;line-height:1.6;overflow-x:auto}.gv-content pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.gv-content ul,.gv-content ol{margin:8px 0 14px 20px}.gv-content li{margin-bottom:4px}.gv-content table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14px}.gv-content thead{background:#f9fafb}.gv-content th{text-align:left;color:#374151;border-bottom:2px solid #e5e7eb;padding:10px 12px;font-weight:600}.gv-content td{color:#374151;border-bottom:1px solid #e5e7eb;padding:10px 12px}.gv-content hr{border:none;border-top:1px solid #e5e7eb;margin:20px 0}.gv-content img{border-radius:10px;max-width:100%;height:auto;margin:12px 0;box-shadow:0 2px 8px #00000014}.gv-content .katex-display{margin:16px 0;overflow-x:auto}.gv-content .katex{font-size:1.05em}.gv-content .gv-callout{background:#fff7ed;border-left:4px solid #f97316;border-radius:12px;margin:18px 0;padding:18px 20px}.gv-content .gv-callout-label{text-transform:uppercase;letter-spacing:.15em;color:#f97316;margin-bottom:6px;font-size:10px;font-weight:900}.gv-content .gv-callout-body{color:#171717;font-size:15px;line-height:1.8}.gv-content .gv-definition{background:#fff7ed;border-color:#f97316}.gv-content .gv-definition .gv-callout-label{color:#ea580c}.gv-content .gv-definition .gv-callout-body{color:#171717}.gv-content .gv-example{background:#fff7ed;border-color:#f97316}.gv-content .gv-example .gv-callout-label{color:#ea580c}.gv-content .gv-example .gv-callout-body{color:#171717}.gv-content .gv-tip{background:#fff7ed;border-color:#f97316}.gv-content .gv-tip .gv-callout-label{color:#ea580c}.gv-content .gv-tip .gv-callout-body{color:#171717}.gv-content .gv-warning{background:#fff7ed;border-color:#f97316}.gv-content .gv-warning .gv-callout-label{color:#ea580c}.gv-content .gv-warning .gv-callout-body{color:#171717}.gv-content .gv-stem{background:#f0fdf4;border-color:#22c55e}.gv-content .gv-stem .gv-callout-label{color:#16a34a}.gv-content .gv-stem .gv-callout-body{color:#171717}.gv-content .gv-collaborate{background:#eff6ff;border-color:#3b82f6}.gv-content .gv-collaborate .gv-callout-label{color:#2563eb}.gv-content .gv-collaborate .gv-callout-body{color:#171717}.gv-content .gv-checkpoint{background:#faf5ff;border-color:#8b5cf6}.gv-content .gv-checkpoint .gv-callout-label{color:#7c3aed}.gv-content .gv-checkpoint .gv-callout-body{color:#171717}.gv-content .gv-image{margin:16px 0}.gv-content .gv-image img{border-radius:10px;width:100%;box-shadow:0 2px 8px #00000014}.gv-content .gv-image-placeholder{color:#9ca3af;text-align:center;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border:2px dashed #e5e7eb;border-radius:10px;justify-content:center;align-items:center;min-height:160px;padding:20px;font-size:13px;font-style:italic;display:flex}.gv-content .gv-caption{color:#6b7280;border-left:2px solid #e5e7eb;margin-top:6px;padding:4px 0 4px 10px;font-size:12px;line-height:1.5}.gv-content [style*=display\:flex],.gv-content [style*="display: flex"]{align-items:flex-start;gap:16px}.gv-content .gv-two-col{grid-template-columns:1fr 1fr;gap:16px;margin:14px 0;display:grid}.gv-content .gv-step{align-items:flex-start;gap:12px;margin:10px 0;display:flex}.gv-content .gv-step-num{color:#fff;background:#f97316;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.gv-content .gv-definition-big{text-align:center;background:#fff7ed;border:2px solid #f97316;border-radius:12px;margin:16px 0;padding:20px}.gv-content .gv-definition-big .gv-term{color:#ea580c;margin-bottom:6px;font-size:18px;font-weight:700}.gv-content .gv-definition-big .gv-def-text{color:#171717;font-size:15px;line-height:1.7}.tmpl-a{max-width:680px;margin:0 auto;padding:24px 0}.tmpl-a-objective{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-left:4px solid #f97316;border-radius:10px;margin:0 0 24px;padding:18px 22px}.tmpl-a-objective strong{color:#ea580c;text-transform:uppercase;letter-spacing:.15em;margin-bottom:10px;font-size:12px;font-weight:800;display:block}.tmpl-a-objective ul{margin:0;padding:0 0 0 18px;list-style:none}.tmpl-a-objective li{color:#171717;padding:3px 0;font-size:15px;line-height:1.7;position:relative}.tmpl-a-objective li:before{content:"→";color:#f97316;font-weight:700;position:absolute;left:-18px}.tmpl-a-question{color:#171717;letter-spacing:-.02em;text-align:center;margin:20px 0;font-size:24px;font-weight:800;line-height:1.3}.tmpl-a-image{margin:24px 0}.tmpl-a-image img{border-radius:12px;width:100%}.tmpl-a-hook{color:#171717;margin:20px 0;padding:18px 0;font-size:15px;line-height:1.7}.tmpl-a-reflect{color:#525252;margin:20px 0;padding:20px 0;font-size:15px;line-height:1.7}.tmpl-b{grid-template-columns:1fr;gap:20px;padding:8px 0;display:grid}.tmpl-b-main{min-width:0}.tmpl-b-side{padding:4px 0}.tmpl-b-side img{border-radius:10px;width:100%;margin:12px 0}@media (width>=640px){.tmpl-b{grid-template-columns:1.4fr 1fr}}.tmpl-c{max-width:720px;margin:0 auto;padding:8px 0}.tmpl-c-instructions{margin:16px 0;padding:14px 0;font-size:15px;line-height:1.6}.tmpl-c-exercises{flex-direction:column;gap:16px;margin:16px 0;display:flex}.tmpl-c-exercise{border:1px solid #e5e5e5;border-radius:12px;align-items:flex-start;gap:14px;padding:18px;display:flex}.tmpl-c-num{color:#fff;background:#f97316;border-radius:50%;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.tmpl-c-problem{color:#171717;margin-bottom:8px;font-size:15px;font-weight:600;line-height:1.5}.tmpl-c-workspace{color:#737373;background:#fafafa;border:2px dashed #d4d4d4;border-radius:8px;min-height:60px;margin-top:8px;padding:12px;font-size:14px;line-height:1.6}.tmpl-d{max-width:720px;margin:0 auto;padding:8px 0}.tmpl-d-hero{text-align:center;margin:16px 0}.tmpl-d-hero img{border-radius:12px;width:100%}.tmpl-d-content{grid-template-columns:1fr;gap:16px;margin:20px 0;display:grid}@media (width>=640px){.tmpl-d-content{grid-template-columns:1fr 1fr}}.tmpl-d-connection{margin:16px 0;padding:20px 0}.gv-content .gv-animation{border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:100%;margin:20px 0;display:flex;position:relative;overflow:hidden}.gv-content .gv-animation-title{color:#fff;text-align:center;background:#0000008c;width:100%;padding:8px 14px;font-size:13px;font-weight:600}.gv-content .gv-dark-scene{background:radial-gradient(#1a1a3e 0%,#0d0d1a 100%);min-height:260px;padding:24px}.gv-content .gv-light-scene{background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 50%,#f0fdfa 100%);border:1px solid #d1fae5;min-height:260px;padding:24px}.gv-content .gv-water-scene{background:linear-gradient(#bfdbfe 0%,#dbeafe 30%,#93c5fd 60%,#3b82f6 100%);min-height:260px;padding:24px}@keyframes gv-orbit{0%{transform:rotate(0deg) translateX(var(--gv-orbit-r,80px)) rotate(0deg)}to{transform:rotate(360deg) translateX(var(--gv-orbit-r,80px)) rotate(-360deg)}}@keyframes gv-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes gv-glow{0%,to{box-shadow:0 0 8px var(--gv-glow-c,#fbbf24), 0 0 16px var(--gv-glow-c,#fbbf24)}50%{box-shadow:0 0 16px var(--gv-glow-c,#fbbf24), 0 0 32px var(--gv-glow-c,#fbbf24), 0 0 48px var(--gv-glow-c,#fbbf24)}}@keyframes gv-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes gv-float-up{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(-80px)}}@keyframes gv-fall-down{0%{opacity:0;transform:translateY(-10px)}10%{opacity:.8}to{opacity:.5;transform:translateY(140px)}}@keyframes gv-flow-right{0%{opacity:0;transform:translate(0)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(120px)}}@keyframes gv-wobble{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-6px)rotate(2deg)}75%{transform:translateY(4px)rotate(-1deg)}}.gv-content .gv-orbit-1{--gv-orbit-r:50px}.gv-content .gv-orbit-2{--gv-orbit-r:80px}.gv-content .gv-orbit-3{--gv-orbit-r:110px}.gv-content .gv-orbit-4{--gv-orbit-r:140px}.gv-content .gv-speed-1{animation-duration:2s}.gv-content .gv-speed-2{animation-duration:4s}.gv-content .gv-speed-3{animation-duration:6s}.gv-content .gv-speed-4{animation-duration:8s}.gv-content .gv-speed-5{animation-duration:12s}.gv-content .gv-delay-neg-1{animation-delay:-1s}.gv-content .gv-delay-neg-2{animation-delay:-2s}.gv-content .gv-delay-neg-3{animation-delay:-3s}.gv-content .gv-delay-neg-4{animation-delay:-4s}.gv-content .gv-orbit-ring{pointer-events:none;border:1.5px dashed #fff3;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gv-content .gv-orbit-ring-1{width:100px;height:100px}.gv-content .gv-orbit-ring-2{width:160px;height:160px}.gv-content .gv-orbit-ring-3{width:220px;height:220px}.gv-content .gv-orbit-ring-4{width:280px;height:280px}.gv-content .gv-center-body{z-index:5;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gv-content .gv-glowing{animation:3s ease-in-out infinite gv-glow}.gv-content .gv-orbit-item{animation:gv-orbit var(--gv-speed,4s) linear infinite;border-radius:50%;position:absolute;top:50%;left:50%}.gv-content .gv-pulse-item{animation:1s ease-in-out infinite gv-pulse}.gv-content .gv-breathe-anim{animation:3s ease-in-out infinite gv-breathe}.gv-content .gv-float-anim{animation:4s ease-in-out infinite gv-wobble}.gv-content .gv-float-particle{animation:gv-float-up var(--gv-speed,3s) ease-out infinite;border-radius:50%;position:absolute}.gv-content .gv-fall-particle{animation:gv-fall-down var(--gv-speed,1.5s) linear infinite;border-radius:50% 50% 50% 0;position:absolute;transform:rotate(45deg)}.gv-content .gv-flow-particle{animation:gv-flow-right var(--gv-speed,2s) linear infinite;border-radius:50%;position:absolute}.gv-content .gv-solar-system{aspect-ratio:16/9;width:100%;max-height:300px;position:relative}.gv-content .gv-atom-model{aspect-ratio:1;width:100%;max-width:280px;margin:0 auto;position:relative}.gv-content .gv-cell-diagram{aspect-ratio:4/3;width:100%;max-width:400px;margin:0 auto;position:relative}.gv-content .gv-cell-membrane{border:3px solid #86efac;border-radius:50%;position:absolute;inset:0}.gv-content .gv-nucleus{border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gv-content .gv-organelle{border-radius:50%;position:absolute}.gv-content .gv-heart-model{text-align:center;width:100%;max-width:280px;margin:0 auto;position:relative}.gv-content .gv-heart-shape{font-size:80px;line-height:1;display:inline-block}.gv-content .gv-energy-pyramid{flex-direction:column-reverse;align-items:center;gap:4px;max-width:400px;margin:20px auto;display:flex}.gv-content .gv-trophic-level{text-align:center;color:#fff;border-radius:8px;padding:14px 16px;font-size:14px;font-weight:600}.gv-content .gv-label{text-align:center;color:#6b7280;margin-top:4px;font-size:11px;font-weight:600}@media (width>=768px){.gv-content{font-size:16px}.gv-content h1{font-size:24px}.gv-content h2{font-size:20px}.tmpl-a-question{font-size:28px}}@media (width>=1024px){.gv-content{font-size:17px;line-height:1.9}.tmpl-a-question{font-size:32px}}.app-shell{background:#fafafa;flex-direction:column;width:100vw;height:100dvh;display:flex;overflow:hidden}.app-sidebar{display:none}.app-topbar{z-index:10;background:#fff;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;height:48px;min-height:48px;padding:0 16px;display:flex}.app-main{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.app-bottom-nav{height:56px;min-height:56px;padding-bottom:env(safe-area-inset-bottom,0px);z-index:10;background:#fff;border-top:1px solid #f0f0f0;justify-content:space-around;align-items:center;display:flex}.split-layout{flex-direction:column;flex:1;display:flex;overflow:hidden}.split-left{-webkit-overflow-scrolling:touch;background:#fff;border-bottom:1px solid #e5e7eb;width:100%;overflow:auto}.split-right{-webkit-overflow-scrolling:touch;background:#fff;flex:1;min-height:0;overflow:auto}@media (width>=1024px){.app-shell{flex-direction:row}.app-sidebar{background:#fff;border-right:1px solid #f0f0f0;flex-direction:column;width:220px;min-width:220px;height:100%;display:flex;overflow:hidden}.app-topbar,.app-bottom-nav{display:none}.split-layout{flex-direction:row}.split-left{border-bottom:none;border-right:1px solid #e5e7eb;width:30%;height:100%}.split-right{width:70%;height:100%}}
