:root{font-family:Inter,Noto Sans,system-ui,sans-serif;line-height:1.5;color:#e6f1ff;background-color:#05070d;--bg-primary: #05070d;--bg-secondary: #0a1220;--panel: #0f1a2b;--panel-strong: #13233a;--border: #1d3350;--text-primary: #e6f1ff;--text-muted: #9fb4d6;--accent: #38bdf8;--accent-strong: #60a5fa;--accent-glow: rgba(56, 189, 248, .35);--accent-soft: rgba(56, 189, 248, .15);--warning-bg: #2a1a0c;--warning-border: #8a5a1f}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#0d1b33,#05070d 55%,#03060c)}a{text-decoration:none;color:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(120deg,#0c1628,#12223d);border-bottom:1px solid var(--border);padding:24px 40px;box-shadow:0 10px 24px #050f1ea6,0 0 20px #38bdf81f}.header__content{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:24px;font-weight:700}.subtitle{margin:4px 0 0;color:var(--text-muted)}.header__actions{display:flex;align-items:center;gap:16px}.nav{display:flex;gap:16px;flex-wrap:wrap}.nav__link{font-weight:500;color:var(--text-muted);padding:6px 8px;border-radius:999px;transition:background .2s ease,color .2s ease}.nav__link--active,.nav__link:hover{color:var(--accent);background:#38bdf82e}.link{font-weight:600;color:var(--accent-strong)}.main{padding:32px 40px 60px}.page{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:28px}.hero{display:flex;justify-content:space-between;gap:28px;background:linear-gradient(160deg,#0f1a2b,#12233c);border-radius:18px;padding:28px;border:1px solid var(--border);box-shadow:0 20px 40px #050f1e80,0 0 30px #38bdf814}.hero__actions{display:flex;gap:16px;flex-wrap:wrap}.banner{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;padding:28px;background:linear-gradient(135deg,#0c1628,#132a4b 55%,#0a1220);border-radius:20px;border:1px solid var(--border);box-shadow:0 20px 40px #050f1e8c,0 0 32px #60a5fa1f}.banner__graphic{position:relative;min-height:160px;border-radius:18px;background:linear-gradient(140deg,#0a1220,#101f36 60%,#0a1426);overflow:hidden;border:1px solid rgba(56,189,248,.2)}.orb{position:absolute;border-radius:999px;opacity:.85;animation:float 6s ease-in-out infinite}.orb--blue{width:80px;height:80px;background:radial-gradient(circle,#7dd3fc,#2563eb 70%);top:20px;left:20px}.orb--pink{width:60px;height:60px;background:radial-gradient(circle,#60a5fa,#1d4ed8 70%);top:60px;right:40px;animation-delay:1s}.orb--green{width:90px;height:90px;background:radial-gradient(circle,#22d3ee,#0284c7 70%);bottom:10px;left:90px;animation-delay:2s}.modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.module-card{background:var(--panel);border-radius:16px;padding:18px;border:1px solid var(--border);box-shadow:0 12px 24px #050f1e73}.module-card h3{margin:0 0 6px}.module-card p{margin:0;color:var(--text-muted)}.button{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:999px;border:none;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#031025;font-weight:600;cursor:pointer;text-decoration:none;box-shadow:0 0 18px #38bdf859}.button--ghost{background:transparent;color:var(--accent);border:1px solid rgba(56,189,248,.5);box-shadow:inset 0 0 12px #38bdf81f}.hero h1{margin:0 0 12px;font-size:32px}.hero p{margin:0;color:var(--text-muted)}.hero__panel{display:grid;gap:16px;min-width:220px}.stat{font-size:32px;font-weight:700;color:var(--accent)}.filters{display:flex;flex-direction:column;gap:16px}.unit{background:var(--panel);padding:20px;border-radius:16px;border:1px solid var(--border);box-shadow:0 12px 30px #050f1e73}.unit h2{margin:0 0 8px}.unit p{margin:0;color:var(--text-muted)}.search{display:flex;flex-direction:column;gap:8px;font-weight:600}.search input{padding:12px 16px;border-radius:12px;border:1px solid var(--border);font-size:16px;background:var(--bg-secondary);color:var(--text-primary)}.tags{display:flex;flex-direction:column;gap:10px}.tags__label{font-weight:600}.tags__list{display:flex;flex-wrap:wrap;gap:10px}.tag{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--panel);cursor:pointer;font-size:14px}.tag--active{background:#38bdf833;color:var(--accent);border-color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.card{background:var(--panel);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--border);box-shadow:0 12px 30px #050f1e73}.page__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.page__header p{margin:6px 0 0;color:var(--text-muted)}.badge{background:#38bdf833;color:var(--accent);padding:6px 12px;border-radius:999px;font-weight:700}.card__header h3{margin:0 0 6px}.card__header p{margin:0;color:var(--text-muted)}.card__tags{display:flex;flex-wrap:wrap;gap:8px;color:var(--text-muted)}.detail{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}.detail h2{margin-top:0}.detail__section{margin-top:18px}.detail__section h3{margin-bottom:8px}.equation{background:#38bdf826;color:var(--accent);padding:12px 16px;border-radius:12px;font-weight:600}.detail__visual{background:var(--panel);border-radius:18px;padding:20px;border:1px solid var(--border);box-shadow:0 16px 30px #050f1e73}.step-map{margin-top:16px;padding:14px;border-radius:14px;background:var(--bg-secondary);border:1px solid var(--border)}.step-map h4{margin:0 0 8px}.step-map__list{display:flex;flex-wrap:wrap;gap:8px}.step-map__list span{background:#38bdf81f;color:var(--text-muted);padding:4px 10px;border-radius:999px;font-size:12px}.visual{border-radius:16px;border:1px solid var(--border);padding:12px;background:var(--bg-secondary);cursor:pointer}.visualizer{border-radius:16px;background:var(--panel);padding:8px;border:1px solid var(--border)}.visual-panel{display:flex;flex-direction:column;gap:16px}.visual-panel__controls{display:grid;grid-template-columns:1fr 1fr;gap:16px}.visual-panel__reagents h4{margin:0 0 8px}.reagent-list{display:flex;flex-wrap:wrap;gap:8px}.reagent{padding:6px 12px;border-radius:999px;background:#38bdf833;color:var(--accent);font-weight:600;cursor:grab}.drop-zone{border:1px dashed rgba(56,189,248,.4);border-radius:16px;padding:16px;min-height:120px;background:var(--bg-secondary)}.drop-zone p{margin:0 0 12px;color:var(--text-muted)}.drop-items{display:flex;flex-wrap:wrap;gap:8px}.drop-items span{padding:4px 10px;border-radius:999px;background:#38bdf833;color:var(--accent);font-size:13px}.feedback{background:var(--panel);border-radius:20px;padding:24px;border:1px solid var(--border);box-shadow:0 16px 32px #050f1e73;display:grid;grid-template-columns:1fr 1fr;gap:20px}.feedback__form{display:grid;gap:12px}.feedback input,.feedback textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);font-size:14px;background:var(--bg-secondary);color:var(--text-primary)}.loading{position:fixed;top:0;right:0;bottom:0;left:0;background:#05070de6;display:grid;place-content:center;gap:12px;z-index:20;color:var(--text-primary);font-weight:600}.loading__spinner{width:40px;height:40px;border-radius:50%;border:4px solid rgba(56,189,248,.25);border-top-color:var(--accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.not-found{align-items:center;text-align:center}.detail__safety{background:var(--warning-bg);padding:18px;border-radius:16px;border:1px solid var(--warning-border)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.visual svg{width:100%;height:auto}.visual__note{margin-top:12px;color:var(--text-muted);font-size:14px}.toggle{border:1px solid var(--border);background:var(--panel);padding:8px 14px;border-radius:999px;cursor:pointer;font-weight:600}.button:focus-visible,.nav__link:focus-visible,.reagent:focus-visible,.link:focus-visible{outline:3px solid var(--accent-glow);outline-offset:2px}.footer{margin-top:40px;padding:32px 40px;background:#04070f;color:var(--text-primary);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer h4{margin:0 0 8px}.footer p{margin:0;color:var(--text-muted)}.footer__links{display:flex;gap:16px;flex-wrap:wrap;color:var(--text-muted)}@media (max-width: 960px){.header,.main{padding:24px}.header__content{flex-direction:column;align-items:flex-start}.hero{flex-direction:column}.detail,.banner,.visual-panel__controls,.feedback{grid-template-columns:1fr}.page__header{flex-direction:column;align-items:flex-start}.footer{padding:24px}}
