:root{--blue:#105090;--blue-light:#4070b0;--gold:#d0b000;--red:#a8322a;--red-light:#c2453c;--green:#2f7d3b;--ink:#1a2333;--paper:#fdfcf8;--line:#d8d5cc;color:var(--ink);background:var(--paper);font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{margin:0;font-size:19px;line-height:1.55}@media (width<=700px){body{font-size:17px}}button,input{font:inherit}.app{flex-direction:column;max-width:760px;min-height:100dvh;margin:0 auto;padding:28px 28px 20px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pop{50%{transform:scale(1.02)}}@keyframes flow{to{stroke-dashoffset:-16px}}@keyframes pulse-node{0%,to{opacity:.3}50%{opacity:1}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.screen{animation:.28s ease-out rise}.question{animation:.22s ease-out rise}header{border-bottom:3px solid var(--blue);justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:16px;display:flex}.logo{height:44px;display:block}.header-title{color:var(--blue);font-size:1.2rem;font-style:italic;animation:.25s ease-out fade-in}.home{text-align:center;flex-direction:column;align-items:center;gap:18px;margin:auto 0;padding-bottom:8vh;display:flex}.glyph .links line{stroke:var(--blue-light);stroke-width:1px;stroke-dasharray:3 5;opacity:.55;animation:2.4s linear infinite flow}.glyph .node{fill:var(--blue);animation:2.6s ease-in-out infinite pulse-node}.glyph .out{fill:var(--gold)}.glyph .d1{animation-delay:.25s}.glyph .d2{animation-delay:.5s}.glyph .d3{animation-delay:.75s}.glyph .d4{animation-delay:1s}.glyph .d5{animation-delay:1.25s}h1{color:var(--blue);margin:0;font-size:2.6rem}.home-text{max-width:26em;color:var(--blue-light);margin:0;font-size:1.25rem}.levels{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.progress{color:var(--blue-light);align-items:baseline;gap:18px;margin-bottom:30px;font-size:1.05rem;display:flex}.progress span{white-space:nowrap;font-variant-numeric:tabular-nums}.progress-bar{background:var(--line);flex:1;height:8px}.progress-fill{background:var(--gold);height:100%;transition:width .25s}h2{margin:0 0 28px;font-size:1.6rem;line-height:1.4}.options{gap:14px;margin:0;padding:0;list-style:none;display:grid}.option,.image-option{text-align:left;border:2px solid var(--line);cursor:pointer;width:100%;color:inherit;-webkit-tap-highlight-color:transparent;background:#fff;padding:20px 22px;font-size:1.15rem;transition:border-color .15s}.option.selected,.image-option.selected{border-color:var(--blue);background:#10509012;animation:.3s pop}.image-pair{grid-template-columns:1fr 1fr;gap:16px;display:grid}.image-option{padding:8px}.image-option img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.image-caption{text-align:center;color:var(--blue-light);padding-top:8px;font-size:1rem;display:block}.nav{justify-content:space-between;margin-top:36px;display:flex}button.primary{background:var(--blue);color:#fff;border:2px solid var(--blue);cursor:pointer;padding:14px 28px;font-size:1.1rem}button.primary.big{margin-top:10px;padding:20px 44px;font-size:1.35rem;animation:1.8s ease-in-out infinite breathe}button.primary.big.danger{animation-delay:.9s}button.primary.danger{background:var(--red);border-color:var(--red)}button.primary.danger:active{background:var(--red-light);border-color:var(--red-light)}button.primary:active{background:var(--blue-light);border-color:var(--blue-light)}button.ghost{color:var(--blue-light);cursor:pointer;text-underline-offset:3px;-webkit-tap-highlight-color:transparent;background:0 0;border:2px solid #0000;padding:14px 18px;font-size:1.05rem;text-decoration:underline}button.ghost:disabled{opacity:.35;cursor:not-allowed}button.small{padding:8px 14px;font-size:.95rem}.restart{position:relative}.popover-backdrop{z-index:5;position:fixed;inset:0}.popover{z-index:6;border:2px solid var(--blue);background:#fff;min-width:240px;padding:14px 16px;animation:.18s ease-out rise;position:absolute;bottom:calc(100% + 10px);right:0;box-shadow:0 6px 20px #1050902e}.popover p{margin:0 0 10px}.popover-actions{justify-content:flex-end;gap:8px;display:flex}.results{text-align:center}.score{color:var(--blue);font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:5rem}.score-total{color:var(--blue-light);font-size:2.2rem}.verdict{margin:8px 0 32px;font-size:1.3rem;font-style:italic}.recap-scroll{text-align:left;max-height:72vh;overflow-y:auto}.recap{margin:0;padding-left:20px}.recap li{border-left:4px solid;margin:22px 0;padding-left:14px}.recap li.good{border-color:var(--green)}.recap li.bad{border-color:var(--red)}.recap-question{margin:0;font-weight:700}.recap-explanation{color:#555;margin:2px 0 0;font-size:.95rem}.review-answers{gap:12px;margin:10px 0;display:grid}.review-answers.two{grid-template-columns:1fr 1fr}.option.review{cursor:default;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 16px;font-size:1.05rem;display:flex}.review .mark{font-weight:700}.review.correct .mark{color:var(--green)}.review.wrong .mark{color:var(--red)}.image-option.review{cursor:default}.review-pair{margin:10px 0}.review.correct{border-color:var(--green);background:#2f7d3b14}.review.wrong{border-color:var(--red);background:#a8322a12}@media (width<=640px){.review-answers.two{grid-template-columns:1fr}}.contact{grid-template-columns:1fr 1fr;gap:12px;max-width:560px;margin:0 auto 28px;display:grid}.contact p,.contact button,.contact .thanks{grid-column:1/-1}.contact p{margin:0 0 6px;font-size:1.1rem}.contact input{border:2px solid var(--line);background:#fff;padding:16px 14px;font-size:1.1rem}.contact input:focus{border-color:var(--blue);outline:none}.contact.locked input{color:#8b8b8b;cursor:not-allowed;background:#f1efe9}.thanks{color:var(--blue);margin-bottom:28px;font-size:1.15rem;font-style:italic}.send-error{color:var(--red);margin:0;font-size:1rem}button.primary:disabled{opacity:.6;cursor:wait}@media (width<=700px){.app{padding:18px 16px 14px}header{margin-bottom:20px;padding-bottom:12px}.logo{height:36px}h1{font-size:2.1rem}.home-text{font-size:1.1rem}button.primary.big{padding:16px 28px;font-size:1.15rem}h2{margin-bottom:20px;font-size:1.3rem}.option{padding:14px 16px;font-size:1.05rem}.progress{margin-bottom:22px}.nav{margin-top:24px}.score{font-size:3.6rem}.score-total{font-size:1.8rem}.verdict{margin-bottom:24px;font-size:1.15rem}}@media (width<=560px){.image-pair,.contact{grid-template-columns:1fr}}
