:root{--bg-1:#ffe7f1;--bg-2:#d9f0ff;--bg-3:#fff7d6;--ink:#1f2350;--ink-soft:#4a4f80;--pink:#ff5eae;--blue:#3aa5ff;--yellow:#ffd23f;--green:#5fd07c;--purple:#9d6bff;--orange:#ff8a3c;--red:#ff5a5a;--card:#fff;--shadow:0 8px 0 #1f23501f,0 16px 32px #1f235014}*{box-sizing:border-box}html,body{color:var(--ink);background:linear-gradient(135deg,var(--bg-1),var(--bg-2)45%,var(--bg-3));overflow-x:hidden;background-attachment:fixed;min-height:100vh;margin:0;padding:0;font-family:Nunito,Comic Sans MS,Quicksand,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}#root{min-height:100vh}body:before,body:after{content:"";position:fixed;filter:blur(60px);opacity:.45;z-index:-1;pointer-events:none;border-radius:50%}body:before{background:var(--pink);animation:float1 14s ease-in-out infinite;width:380px;height:380px;top:-120px;left:-120px}body:after{background:var(--blue);animation:float2 18s ease-in-out infinite;width:460px;height:460px;bottom:-160px;right:-160px}@keyframes float1{0%,to{transform:translate(0)}50%{transform:translate(40px,60px)}}@keyframes float2{0%,to{transform:translate(0)}50%{transform:translate(-50px,-40px)}}.app{max-width:1100px;margin:0 auto;padding:24px 20px 80px}.topbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: center;gap:12px;margin-bottom:24px}.brand{display:flex;letter-spacing:-.5px;align-items: center;gap:10px;font-weight:900}.brand .emoji{animation:wiggle 2.4s ease-in-out infinite;font-size:32px}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-name{font-size:24px}.brand-tagline{color:var(--ink-soft);letter-spacing:0;font-size:12px;font-weight:700}@keyframes wiggle{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}.nav{display:flex;flex-wrap:wrap;gap:8px}.nav button{font:inherit;border:3px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:999px;padding:8px 14px;transition:transform .1s;font-size:14px;font-weight:800}.nav button:hover{transform:translateY(-2px)}.nav button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(1px)}.nav button.active{background:var(--yellow)}:focus-visible{outline:3px solid var(--purple);outline-offset:3px;border-radius:6px}.btn:focus-visible{outline:4px solid var(--purple);outline-offset:4px}.nav button:focus-visible{outline:4px solid var(--purple);outline-offset:4px}.chapter-card:focus-visible{outline:4px solid var(--purple);outline-offset:4px}.neuron:focus-visible{outline:4px solid var(--purple);outline-offset:4px}.quiz-option:focus-visible{outline:4px solid var(--purple);outline-offset:4px}.toggle:focus-visible{outline:4px solid var(--purple);outline-offset:4px}.neuron.hint{animation:wiggle 1.2s ease-in-out infinite}.card{background:var(--card);border:4px solid var(--ink);box-shadow:var(--shadow);border-radius:28px;margin-bottom:22px;padding:28px}.hero{text-align:center;background:#fff;padding:40px 28px}.hero h1{letter-spacing:-1px;margin:0 0 12px;font-size:clamp(36px,6vw,64px);line-height:1.05}.hero h1 .pop{display:inline-block;background:var(--yellow);border-radius:16px;padding:0 10px;transform:rotate(-2deg)}.hero p{color:var(--ink-soft);max-width:640px;margin:0 auto 24px;font-size:20px}h2{letter-spacing:-.5px;margin:0 0 6px;font-size:32px}.subtitle{color:var(--ink-soft);margin:0 0 22px;font-size:18px}p{font-size:17px;line-height:1.55}.kbd,code{background:#eef1ff;border-radius:8px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.95em}.chapters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:24px}.chapter-card{cursor:pointer;border:4px solid var(--ink);text-align:left;font:inherit;color:var(--ink);box-shadow:0 6px 0 var(--ink);background:#fff;border-radius:22px;padding:22px;transition:transform .15s,box-shadow .15s}.chapter-card:hover{box-shadow:0 9px 0 var(--ink);transform:translate(-2px,-3px)}.chapter-card .badge{display:block;margin-bottom:6px;font-size:36px}.chapter-card h3{margin:4px 0;font-size:20px}.chapter-card p{color:var(--ink-soft);margin:0;font-size:15px}.chapter-card.c1{background:#fff0f8}.chapter-card.c2{background:#e6f4ff}.chapter-card.c3{background:#eaffe7}.chapter-card.c4{background:#fff7d6}.btn{font:inherit;border:4px solid var(--ink);background:var(--yellow);color:var(--ink);cursor:pointer;box-shadow:0 5px 0 var(--ink);border-radius:999px;padding:14px 24px;transition:transform .1s;font-size:18px;font-weight:900}.btn:hover{transform:translateY(-2px)}.btn:active{box-shadow:0 2px 0 var(--ink);transform:translateY(2px)}.btn.pink{background:var(--pink);color:#fff}.btn.blue{background:var(--blue);color:#fff}.btn.green{background:var(--green);color:#fff}.btn.purple{background:var(--purple);color:#fff}.btn.ghost{background:#fff}.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.neuron-row{display:flex;flex-wrap:wrap;justify-content:center;align-items: center;gap:8px;padding:24px 0}.neuron{border:4px solid var(--ink);cursor:pointer;position:relative;display:flex;background:#f5f5ff;border-radius:50%;justify-content:center;align-items: center;width:64px;height:64px;transition:background .2s,transform .15s,box-shadow .2s;font-size:24px}.neuron.on{background:var(--yellow);box-shadow:0 0 0 6px #ffd23f59,0 0 22px var(--yellow);transform:scale(1.15)}.wire{background:var(--ink);position:relative;overflow:hidden;border-radius:4px;width:36px;height:6px}.wire.on:after{content:"";position:absolute;background:linear-gradient(90deg,var(--yellow),var(--orange),var(--yellow));animation:zap .6s linear;inset:0}@keyframes zap{0%{transform:translate(-100%)}to{transform:translate(100%)}}.lightbulb{filter:grayscale(1);margin-left:8px;transition:filter .3s,transform .3s;font-size:56px}.lightbulb.on{filter:grayscale(0)drop-shadow(0 0 14px var(--yellow));transform:scale(1.15)}.lab{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:22px}@media (max-width:760px){.lab{grid-template-columns:1fr}}.toggle-list{display:flex;flex-direction:column;gap:10px;margin:12px 0 0}.toggle{display:flex;border:3px solid var(--ink);cursor:pointer;user-select:none;background:#f3f6ff;border-radius:16px;align-items: center;gap:12px;padding:10px 14px;font-weight:700}.toggle .sw{position:relative;border:2px solid var(--ink);background:#ddd;border-radius:999px;flex-shrink:0;width:44px;height:24px;transition:background .2s}.toggle .sw:after{content:"";position:absolute;border:2px solid var(--ink);background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .18s;top:1px;left:1px}.toggle.on .sw{background:var(--green)}.toggle.on .sw:after{transform:translate(20px)}.toggle .ic{font-size:22px}.verdict{border:3px dashed var(--ink);text-align:center;background:#fffdf2;border-radius:18px;margin-top:16px;padding:16px;font-size:22px;font-weight:900}.verdict.yes{background:#e8ffe8}.verdict.no{background:#ffecec}.confidence-bar{border:3px solid var(--ink);overflow:hidden;background:#eee;border-radius:999px;height:14px;margin-top:10px}.confidence-bar>div{background:linear-gradient(90deg,var(--green),var(--yellow),var(--orange));height:100%;transition:width .4s}.scorecard{border:3px solid var(--ink);background:#fffdf2;border-radius:18px;margin-top:16px;padding:14px 16px}.scorecard-head{display:flex;flex-wrap:wrap;align-items: center;gap:10px;margin-bottom:8px;font-size:18px}.score-line{background:var(--yellow);border:2px solid var(--ink);border-radius:999px;margin-left:auto;padding:2px 10px;font-size:13px;font-weight:800}.score-empty{color:var(--ink-soft);margin:6px 0 4px;font-size:15px;font-weight:700}.score-rows{list-style:none;display:grid;gap:6px;margin:6px 0 10px;padding:0}.score-row{display:flex;border:2px solid var(--ink);background:#fff;border-radius:12px;align-items: center;gap:10px;padding:6px 10px;font-weight:800}.score-row .score-ic{font-size:20px}.score-row .score-label{flex:1}.score-chip{text-align:center;border:2px solid;border-radius:999px;min-width:44px;padding:2px 10px;font-size:16px;font-weight:900}.score-chip.pos{color:#1f7a3a;background:#eaffe7}.score-chip.neg{color:#a62525;background:#ffecec}.score-total{display:flex;border-top:2px dashed #d6d9ee;align-items:baseline;gap:8px;padding-top:8px;font-weight:900}.score-total-num{letter-spacing:-1px;font-size:28px}.score-total-unit{color:var(--ink-soft);font-size:13px}.net-svg{width:100%;height:320px}.net-node{stroke:var(--ink);stroke-width:3;transition:fill .25s,r .25s}.net-edge{stroke-linecap:round;fill:none;transition:opacity .3s,stroke .3s}.sim-wrap{position:relative;border:4px solid var(--ink);overflow:hidden;background:#eaf6ff;border-radius:22px}.sim-wrap canvas{display:block;width:100%;height:360px}.sim-banner{position:absolute;background:var(--yellow);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);animation:pop-in .25s ease-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:999px;max-width:92%;padding:8px 18px;font-size:15px;font-weight:900;top:14px;left:50%;transform:translate(-50%)}@keyframes pop-in{0%{transform:translate(-50%,-10px)scale(.85);opacity:0}to{transform:translate(-50%)scale(1);opacity:1}}.sim-legend{position:absolute;border:2px solid var(--ink);display:inline-flex;background:#ffffffd9;border-radius:12px;align-items: center;gap:8px;padding:4px 10px;font-size:12px;font-weight:800;bottom:10px;left:12px}.legend-line{display:inline-block;border-top:2px dashed var(--purple);width:22px;height:0}.sim-stats{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px;font-weight:800}.stat{border:3px solid var(--ink);background:#fff;border-radius:12px;padding:6px 12px}.quiz-q{margin:0 0 14px;font-size:22px;font-weight:900}.quiz-options{display:grid;gap:10px}.quiz-option{text-align:left;font:inherit;border:3px solid var(--ink);cursor:pointer;box-shadow:0 3px 0 var(--ink);display:flex;background:#fff;border-radius:14px;align-items: center;gap:10px;padding:14px 18px;font-weight:800}.quiz-option-text{flex:1}.quiz-mark{color:var(--ink);display:inline-flex;background:#ffffffd9;border-radius:50%;justify-content:center;align-items: center;width:28px;height:28px;font-size:20px;font-weight:900}.quiz-option:hover:not(:disabled){background:#f3f6ff}.quiz-option.correct{background:var(--green);color:#fff;animation:pop-in .3s ease-out}.quiz-option.wrong{background:var(--red);color:#fff}.quiz-option.locked{color:var(--ink-soft);opacity:.6;box-shadow:0 1px 0 var(--ink);background:#f3f3f8}.quiz-option:disabled{cursor:default}.quiz-score{margin-top:14px;font-size:18px;font-weight:900}.tip{border:3px dashed var(--ink);background:#fff7d6;border-radius:16px;margin-top:12px;padding:12px 16px}.tip strong{color:var(--orange)}.section-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: center;gap:12px;margin-bottom:8px}.footer{text-align:center;color:var(--ink-soft);margin-top:28px;font-size:14px}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important}}@media (max-width:480px){.app{padding:14px 12px 60px}.card{border-radius:22px;padding:20px 16px}.topbar{gap:8px;margin-bottom:18px}.brand-name{font-size:20px}.brand-tagline{font-size:11px}.brand .emoji{font-size:26px}.nav{gap:6px}.nav button{box-shadow:0 2px 0 var(--ink);border-width:2px;padding:6px 10px;font-size:13px}.hero{padding:28px 16px}.hero h1{font-size:32px}.hero p{font-size:16px}h2{font-size:24px}.subtitle,p{font-size:15px}.btn{padding:12px 18px;font-size:16px}.neuron{width:48px;height:48px;font-size:18px}.wire{width:22px;height:5px}.lightbulb{font-size:42px}.net-svg{height:260px}.sim-wrap canvas{height:280px}.sim-banner{padding:6px 12px;font-size:13px}.sim-stats{gap:6px 12px;font-size:13px}.quiz-q{font-size:18px}.quiz-option{padding:12px 14px;font-size:15px}}@media print{body:before,body:after{display:none}body{color:#000;background:#fff}.topbar,.btn-row,.nav,.sim-wrap,canvas,.footer{display:none!important}.card{box-shadow:none;page-break-inside:avoid;background:#fff;border:1px solid #333}.quiz-option{box-shadow:none;border:1px solid #333;color:#000!important;background:#fff!important}.quiz-option.correct,.quiz-option.wrong,.quiz-option.locked{color:#000!important;background:#fff!important}.tip{border-color:#333;background:#fff!important}a{color:#000;text-decoration:underline}}
