:root{--navy:#15374b;--navy2:#244d63;--blue:#296281;--ink:#193247;--muted:#5b7383;--line:#dbe4ea;--pale:#f2f6f8;--white:#fff;--orange:#cf7e33;--shadow:0 10px 36px rgba(21,55,75,.07);--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f8fa;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}a{color:#145f83}a:hover{text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d69c45;outline-offset:3px}.skip-link{position:absolute;left:-10000px;top:10px;z-index:20;background:#fff;padding:10px}.skip-link:focus{left:10px}.shell{min-height:100vh;display:grid;grid-template-columns:268px minmax(0,1fr);grid-template-rows:72px 1fr}.topbar{grid-column:1/-1;position:sticky;top:0;z-index:11;display:flex;align-items:center;gap:18px;padding:10px 25px;background:#fff;border-bottom:1px solid var(--line)}.brand{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:13px;text-align:left;color:inherit}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--navy);color:#fff;font-size:29px;font-weight:700;letter-spacing:-2px}.brand-mark span{color:#e7a35f}.brand-text strong{display:block;letter-spacing:.13em;font-size:16px}.brand-text small{color:var(--muted);font-size:11px}.top-right{margin-left:auto;display:flex;align-items:center;gap:16px}.status-pill{font-size:11px;font-weight:700;letter-spacing:.07em;color:#85531c;background:#fff2dd;padding:7px 10px;border-radius:40px}.top-link{background:none;border:0;color:var(--navy2);font-weight:bold}.sidebar{border-right:1px solid var(--line);background:white;padding:28px 16px 22px;position:sticky;top:72px;height:calc(100vh - 72px);overflow:auto;display:flex;flex-direction:column;gap:14px}.nav-head{padding:0 12px;color:#6b8290;font-size:11px;letter-spacing:.17em;font-weight:700;display:flex;align-items:center;justify-content:space-between}.nav-item{display:flex;align-items:center;width:100%;gap:12px;padding:14px 11px;margin:3px 0;border:1px solid transparent;background:transparent;border-radius:13px;text-align:left;color:#445d6a}.nav-item:hover{background:#f1f5f7}.nav-item.active{background:#e9f2f6;border-color:#bcd5e1;color:var(--navy);font-weight:700}.nav-item.locked{opacity:.55}.nav-num{flex:0 0 30px;border:1px solid #bdcbd3;border-radius:10px;height:30px;display:grid;place-items:center;font-size:12px}.nav-item.complete .nav-num{background:#e8f6ef;color:#327a58;border-color:#b6dfca}.nav-txt{font-size:13px;line-height:1.3}.nav-txt small{display:block;margin-top:4px;color:#718a97;font-size:10px}.side-bottom{margin-top:auto;border-top:1px solid var(--line);padding:20px 12px}.sheet-link{display:block;font-size:13px;font-weight:700;text-decoration:none;margin-bottom:15px}.side-bottom p{font-size:11px;line-height:1.5;color:var(--muted)}.main{min-width:0;overflow-x:hidden}.content-width{max-width:990px;margin:0 auto;padding:40px 35px 90px}.eyebrow{letter-spacing:.14em;color:#4f7e98;text-transform:uppercase;font-weight:bold;font-size:11px;margin-bottom:12px}.hero{display:grid;grid-template-columns:1.4fr .6fr;gap:25px;padding:36px 38px;overflow:hidden;border-radius:22px;background:linear-gradient(135deg,#163d54,#275976);color:white;box-shadow:var(--shadow);position:relative}.hero:after{content:'DNA · RNA · PROTEIN';position:absolute;right:-25px;top:28px;transform:rotate(15deg);font-size:75px;font-weight:700;line-height:1.2;color:rgba(255,255,255,.045);width:350px;pointer-events:none}.hero h1{font-size:clamp(30px,4vw,48px);line-height:1.12;margin:12px 0 18px;letter-spacing:-.035em}.hero p{font-size:15px;color:#dceaf2;max-width:550px}.hero .eyebrow{color:#b4d1e2}.hero-art{display:grid;place-items:center;font-size:100px;color:#9ccce0;opacity:.6}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:11px;border:1px solid #c3d1d9;background:#fff;color:#183b50;text-decoration:none;font-size:13px;font-weight:700;transition:background .15s,transform .15s}.btn:hover:not(:disabled){background:#edf5f8}.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn.primary:hover:not(:disabled){background:#285a73}.hero .btn.primary{background:#f0fafc;border-color:#f0fafc;color:#173d52}.btn.secondary{background:#eef3f6;border-color:#dbe6ec}.btn.warn{border-color:#bdcacd;color:#785338}.btn.small{min-height:34px;padding:6px 11px;font-size:12px}.btn.full{width:100%}.progress-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 5px}.progress-label{font-size:13px;color:var(--muted)}.progress-label strong{color:var(--ink);font-size:21px;display:block}.progress-track{height:8px;background:#dfe7ec;border-radius:15px;overflow:hidden;width:50%}.progress-fill{height:100%;background:#4c947c;border-radius:15px;transition:width .2s}.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:12px 0 30px}.section-tile{text-align:left;min-height:151px;border:1px solid var(--line);border-radius:17px;background:#fff;padding:22px;box-shadow:var(--shadow);color:var(--ink)}.section-tile:hover:not(:disabled){border-color:#9fbdcb;background:#f9fcfd}.section-tile .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.tile-index{font-size:14px;font-weight:700;color:#42718b}.tile-state{font-size:11px;color:#6d8693}.tile-state.good{color:#28805b}.section-tile strong{display:block;font-size:17px;line-height:1.35;margin-bottom:6px}.section-tile p{font-size:12px;color:var(--muted);margin:0}.page-head{margin-bottom:25px}.back{border:0;background:none;color:#34718f;padding:0;margin-bottom:17px;font-size:13px;font-weight:700}.page-head h1{font-size:clamp(26px,4vw,39px);line-height:1.2;letter-spacing:-.03em;margin:8px 0}.page-head p{color:var(--muted);font-size:14px;margin:10px 0 0}.step-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:18px}.step-chip{padding:7px 11px;min-width:36px;text-align:center;border:1px solid #d2e1e8;background:#fff;color:#456878;border-radius:10px;font-size:12px}.step-chip.current{background:#1c4d65;color:#fff;border-color:#1c4d65}.step-chip.done{background:#eaf7ee;color:#257051;border-color:#9dccae}.learning-card{border:1px solid var(--line);background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:30px;margin:20px 0}.learning-card h2{font-size:22px;letter-spacing:-.02em;margin:0 0 12px}.learning-card h3{font-size:17px;margin:24px 0 10px}.learning-card p{font-size:15px;max-width:780px}.learning-card .step-meta{font-size:11px;color:#53819a;font-weight:bold;letter-spacing:.09em;margin-bottom:9px}.learn-text{background:#f5f8fa;padding:18px 20px;border-left:3px solid #7aa1b7;border-radius:0 10px 10px 0;margin:18px 0}.learn-text p{margin:0 0 9px}.learn-text p:last-child{margin-bottom:0}.visual{border:1px solid #e1e7ea;border-radius:14px;background:white;margin:20px 0;overflow:hidden}.visual img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain}.visual figcaption{font-size:11px;color:#6a7e89;background:#f5f8fa;padding:10px 16px}.question{margin-top:26px;border-top:1px solid #e0e8ed;padding-top:20px}.question-title{font-size:18px;font-weight:700;margin:0 0 15px}.option{display:flex;gap:11px;align-items:flex-start;border:1px solid #d9e4e9;border-radius:11px;padding:13px 16px;margin:9px 0;cursor:pointer;font-size:14px}.option:hover{background:#f5f9fa}.option input{accent-color:#246184;width:18px;height:18px;margin-top:1px;flex:0 0 auto}.option:has(input:checked){border-color:#719fb9;background:#eef5fa}.feedback{margin:17px 0 4px;padding:16px 19px;border-radius:12px;border:1px solid #b7d3c6;background:#eef8f2;font-size:14px}.feedback.wrong{border-color:#e3c4a8;background:#fff8ee}.feedback strong{display:block;margin-bottom:4px}.feedback p{margin:0}.step-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:25px;border-top:1px solid #e2e8ec;padding-top:20px}.step-actions .button-set{display:flex;gap:9px;flex-wrap:wrap}.select-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.65fr);gap:15px;padding:12px 0;border-bottom:1px solid #e7edf0;align-items:center}.select-line select{max-width:100%;padding:10px;border-radius:8px;border:1px solid #bfced6;background:white}.sort-card{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid #d7e3e9;background:#fff;border-radius:11px;margin:7px 0}.sort-index{flex:0 0 27px;display:grid;place-items:center;border-radius:8px;height:28px;background:#eef3f6;font-weight:bold;font-size:12px}.sort-card .sort-text{flex:1;font-size:13px}.sort-card .sort-btns{display:flex;gap:3px}.sort-btns button{height:34px;width:33px;border:1px solid #d0dce3;background:#f8fafb;border-radius:7px}.base-row{display:flex;gap:4px;align-items:center;margin:9px 0;max-width:620px}.base-end{flex:0 0 26px;font-weight:bold;font-size:13px}.base{flex:1;min-width:22px;border-radius:6px;display:grid;place-items:center;height:42px;font-weight:bold;color:#101b22;font-size:16px}.base.empty{background:#f2f4f6;border:1px dashed #bacbd4}.base.active{outline:3px solid #317eaa;outline-offset:1px}.base-A{background:#e77d80}.base-T{background:#e1c34d}.base-G{background:#76c394}.base-C{background:#7eb6d9}.base-U{background:#eab270}.base-buttons{display:flex;gap:7px;flex-wrap:wrap}.base-buttons .btn{min-width:54px}.free-answer{width:100%;min-height:125px;resize:vertical;border-radius:11px;border:1px solid #c5d4dd;padding:14px;font-size:14px;color:var(--ink)}.smallnote{font-size:12px;color:#5e7888}.model-answer{background:#f1f6f8;border-radius:12px;padding:17px 19px;margin-top:15px}.model-answer p{margin:7px 0}.check-row{display:flex;align-items:flex-start;gap:8px;margin:8px 0;font-size:13px}.check-row input{width:18px;height:18px;accent-color:#367c93}.sheet-prompt{margin-top:22px;padding:23px 25px;border-radius:17px;border:1px solid #b7d5e3;background:#eef6fa}.sheet-prompt h3{margin:0 0 8px}.sheet-prompt p{font-size:13px}.sheet-prompt label{display:flex;gap:10px;margin:16px 0;font-size:13px;font-weight:bold;align-items:center}.sheet-prompt input{width:20px;height:20px;accent-color:#2a718f}.notice{padding:14px 18px;border-left:3px solid #e7aa5c;background:#fff8ed;border-radius:0 10px 10px 0;font-size:13px;margin:18px 0}.external-box{margin-top:15px;background:#f5f8fa;border-radius:12px;padding:13px 16px;font-size:12px}.toast{position:fixed;bottom:18px;right:18px;background:#153a4c;color:white;border-radius:10px;padding:13px 18px;box-shadow:var(--shadow);font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:30}.toast.show{opacity:1}.icon-button{border:0;background:none;font-size:22px;color:var(--navy)}.mobile-only{display:none}.nav-backdrop{display:none}.data-grid{width:100%;border-collapse:collapse;font-size:13px}.data-grid th,.data-grid td{padding:11px;border-bottom:1px solid #dce5ea;text-align:left}.data-grid thead{background:#edf3f6}.task-figure{position:relative}.task-figure img{width:100%;height:auto;display:block}.hotspots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.hotspots label{display:flex;align-items:center;gap:8px;font-size:12px;border:1px solid #d4e2e9;border-radius:9px;padding:10px}.hotspots select{width:100%;max-width:190px}.section-end{background:#eff7f7;border-radius:14px;padding:19px;margin-top:20px}.section-end h3{margin-top:0}.closing-quote{padding:17px 20px;border-left:4px solid #6c94a8;margin:15px 0;background:#f5f8fa;font-size:15px}.mark-list{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.mark-list button{border:1px solid #c6d9e2;background:#fff;border-radius:10px;padding:10px 15px}.mark-list button.selected{background:#1c4d65;color:white}.mini-seq{font-family:monospace;font-weight:700;font-size:clamp(15px,2vw,20px);padding:12px 15px;border-radius:9px;background:#f1f6f8;letter-spacing:.05em}.foot-note{font-size:12px;color:var(--muted);text-align:center;padding:22px}
@media(max-width:900px){.shell{display:block}.topbar{height:65px;padding:9px 15px}.brand-text small{font-size:10px}.sidebar{position:fixed;top:65px;bottom:0;left:0;width:285px;height:auto;z-index:13;transform:translateX(-104%);transition:transform .2s;box-shadow:10px 0 32px rgba(0,0,0,.11)}.sidebar.open{transform:translateX(0)}.nav-backdrop{position:fixed;inset:65px 0 0;background:rgba(10,30,40,.3);z-index:12}.nav-backdrop:not([hidden]){display:block}.mobile-only{display:inline-flex}.content-width{padding:30px 20px 60px}.hero{padding:28px 26px}.topbar .top-link{display:none}}@media(max-width:600px){.brand-mark{width:40px;height:40px;border-radius:11px;font-size:24px}.brand-text strong{font-size:12px}.brand-text small{display:none}.status-pill{font-size:9px}.top-right{gap:3px}.content-width{padding:20px 12px 45px}.hero{grid-template-columns:1fr;gap:4px;padding:25px 21px}.hero-art{display:none}.hero h1{font-size:31px}.section-grid{grid-template-columns:1fr;gap:10px}.section-tile{min-height:120px;padding:18px}.learning-card{padding:20px 15px;border-radius:14px}.learning-card h2{font-size:20px}.select-line{grid-template-columns:1fr;gap:7px}.hotspots{grid-template-columns:1fr}.step-actions{align-items:stretch}.step-actions .button-set{width:100%;display:flex}.step-actions .button-set .btn{flex:1}.progress-strip{padding:19px 3px}.visual img{max-height:none}.base{height:36px;font-size:14px}.step-chip{min-width:33px}.data-grid{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
