.omap{--omap-primary:#173c67;--omap-accent:#167d69;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20364d;background:#f3f7fa;border:1px solid #dce6ee;border-radius:24px;margin:24px auto;max-width:1120px;overflow:hidden;line-height:1.55;text-align:left;font-size:16px;isolation:isolate}.omap *{box-sizing:border-box}.omap .omap-body{padding:clamp(20px,4vw,48px)}.omap .omap-top{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #dbe4eb;padding-bottom:20px;margin-bottom:30px}.omap .omap-brand{font-size:13px;text-transform:uppercase;letter-spacing:2px;font-weight:800;color:var(--omap-primary)}.omap h2,.omap h3,.omap p{font-family:inherit;color:inherit;margin:0 0 14px;line-height:1.45}.omap h2{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-1px}.omap h3{font-size:21px;font-weight:700}.omap .omap-kicker{color:var(--omap-accent);letter-spacing:2px;font-size:11px;font-weight:800;margin-bottom:10px}.omap .omap-muted{color:#607287}.omap .omap-intro{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(180px,1fr);gap:36px;margin-top:25px}.omap .omap-guide{text-align:center;background:#e7f0f2;border-radius:22px;padding:20px;align-self:start}.omap .omap-guide strong{display:block;font-size:20px;margin:12px}.omap .omap-guide p{font-size:14px;color:#486375}.omap .omap-dribu{width:100%;max-width:210px;height:auto;animation:omap-bob 4s ease-in-out infinite}.omap .omap-eyes{transform-origin:100px 87px;animation:omap-blink 6s infinite}.omap .omap-tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.omap .omap-tags span{background:white;border:1px solid #d6e2e7;border-radius:30px;padding:6px 12px;font-size:12px;font-weight:650}.omap .omap-instructions,.omap .omap-question,.omap .omap-feedback p,.omap .omap-review-item p{white-space:pre-wrap;overflow-wrap:anywhere}.omap .omap-form{display:grid;gap:16px}.omap .omap-form label{display:block;color:#20364d;font-size:14px;font-weight:650;margin:0}.omap .omap-form input:not([type=checkbox]){font:inherit;display:block;width:100%;border:1px solid #bfced9;border-radius:10px;background:white;color:#20364d;padding:12px;margin-top:7px;min-height:46px}.omap .omap-form label.omap-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;font-weight:400}.omap .omap-consent input{flex:0 0 18px;width:18px;height:18px;margin:2px 0}.omap .omap-small{font-size:12px;color:#607287}.omap .omap-button{appearance:none;font:inherit;font-weight:700;font-size:14px;border:1px solid transparent;border-radius:10px;padding:12px 18px;background:var(--omap-primary);color:white;cursor:pointer;line-height:1.4;text-transform:none;letter-spacing:0;box-shadow:none;min-height:44px;white-space:normal}.omap .omap-button:hover{filter:brightness(1.08);transform:translateY(-1px)}.omap .omap-secondary{background:#fff;color:var(--omap-primary);border-color:#c8d8e2}.omap button:disabled{opacity:.5;cursor:not-allowed;transform:none}.omap button:focus-visible,.omap input:focus-visible,.omap summary:focus-visible{outline:3px solid #d39a31;outline-offset:3px}.omap .omap-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}.omap .omap-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1px;background:#dce6ed;border:1px solid #dce6ed;border-radius:13px;overflow:hidden;margin:24px 0}.omap .omap-metrics>div{background:white;padding:14px}.omap .omap-metrics small{display:block;color:#64778a;font-size:11px}.omap .omap-metrics strong{display:block;font-size:20px;color:var(--omap-primary)}.omap .omap-map{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}.omap .omap-map span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e2e9ef;color:#566d83;font-size:11px;font-weight:700}.omap .omap-map .done{background:var(--omap-accent);color:white}.omap .omap-map .active{background:var(--omap-primary);color:white;box-shadow:0 0 0 3px #cbdce8}.omap .omap-work{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:24px}.omap .omap-card{background:white;border:1px solid #dbe4eb;border-radius:16px;padding:clamp(18px,3vw,30px)}.omap .omap-options{display:grid;gap:10px;margin:24px 0}.omap .omap-option{display:flex;gap:14px;align-items:center;text-align:left;appearance:none;width:100%;background:white;border:1px solid #cdd9e2;border-radius:12px;padding:13px;font:inherit;color:#20364d;cursor:pointer;text-transform:none;letter-spacing:0;white-space:normal;overflow-wrap:anywhere;line-height:1.45}.omap .omap-option.selected{background:#eaf3f6;border:2px solid var(--omap-primary);padding:12px}.omap .omap-letter{border-radius:7px;display:grid;place-items:center;flex:0 0 32px;height:32px;background:#edf2f6;font-weight:800;color:var(--omap-primary)}.omap .omap-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.omap .omap-feedback:empty{display:none}.omap .omap-feedback{padding:18px;border-radius:12px;background:#f1f5f8;margin-top:18px;font-size:14px}.omap .omap-feedback strong{display:block;margin-bottom:10px}.omap .omap-feedback.good{background:#e8f5ee;border-left:4px solid #23875c}.omap .omap-feedback.review{background:#fff5e4;border-left:4px solid #bc832c}.omap .omap-question-image{display:block;max-width:100%;max-height:400px;width:auto;height:auto;margin:16px 0}.omap .omap-error{color:#a12e30;background:#fff0ef;padding:15px;border-radius:10px;margin-top:15px}.omap .omap-result{display:grid;grid-template-columns:200px 1fr;gap:30px;align-items:center;background:#fff;border:1px solid #d4e1e8;border-top:6px solid var(--omap-primary);border-radius:16px;padding:30px;margin:24px 0}.omap .omap-grade{font-size:56px;display:block;color:var(--omap-primary);letter-spacing:-2px}.omap .omap-award{color:white;border-radius:20px;padding:7px 16px;display:inline-block;font-size:13px;font-weight:700}.omap .omap-mail{padding:16px;background:#e7eef4;border-radius:10px;font-size:13px}.omap .omap-review{background:white;padding:20px;border:1px solid #dbe4eb;border-radius:12px;margin-top:25px}.omap .omap-review summary{cursor:pointer;font-weight:700}.omap .omap-review-item{padding:24px 0;border-bottom:1px solid #dce5ed;font-size:14px}.omap .omap-review-item h3{font-size:17px}@keyframes omap-bob{50%{transform:translateY(-5px)}}@keyframes omap-blink{0%,46%,50%,100%{transform:scaleY(1)}48%{transform:scaleY(.08)}}@media(prefers-reduced-motion:reduce){.omap *{animation:none!important;transition:none!important}}@media(max-width:700px){.omap .omap-intro,.omap .omap-work{grid-template-columns:1fr}.omap .omap-guide{display:none}.omap .omap-top{align-items:flex-start}.omap .omap-top .omap-button{font-size:11px;padding:8px}.omap .omap-result{grid-template-columns:90px 1fr;gap:15px;padding:20px}.omap .omap-grade{font-size:40px}.omap .omap-metrics strong{font-size:17px}.omap .omap-actions .omap-button{flex:1 1 150px}}
@media(max-width:480px){.omap .omap-result{grid-template-columns:1fr;text-align:center;gap:10px}.omap .omap-result .omap-dribu{max-width:105px}.omap .omap-grade{white-space:nowrap}.omap .omap-intro>.omap-guide{display:flex;align-items:center;gap:10px;padding:12px}.omap .omap-intro>.omap-guide .omap-dribu{width:70px;flex-shrink:0}.omap .omap-intro>.omap-guide p{display:none}.omap .omap-intro>.omap-guide strong{font-size:16px}}
.omap .katex-display{overflow-x:auto;overflow-y:hidden;padding:6px 0;max-width:100%}.omap .omap-option>span:last-child{min-width:0;overflow-x:auto;padding:3px}.omap .katex{white-space:normal}.omap .katex .katex-html{white-space:nowrap}
.omap .omap-rules{background:#fff;border:1px solid #d5e2e9;border-radius:12px;padding:16px;margin:18px 0}.omap .omap-rules summary{font-weight:700;color:var(--omap-primary);cursor:pointer}.omap .omap-rules[open] summary{margin-bottom:14px}.omap .omap-rules p{font-size:14px}.omap .omap-route{display:grid;gap:10px;margin:18px 0}.omap .omap-route>div{display:grid;grid-template-columns:32px 1fr;gap:2px 12px;align-items:center;background:#fff;padding:12px;border-radius:12px}.omap .omap-route-number{grid-row:span 2;display:grid;place-items:center;background:var(--omap-accent);color:white;border-radius:50%;width:28px;height:28px;font-weight:700}.omap .omap-route small{color:#5d7281}.omap .omap-progress{height:7px;background:#dce7ee;border-radius:9px;margin-bottom:22px;overflow:hidden}.omap .omap-progress span{display:block;height:100%;background:var(--omap-accent);border-radius:9px;transition:width .3s ease}.omap .omap-stage-transition{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:center;background:white;border-radius:18px;padding:28px;border:1px solid #d9e5eb;margin:25px 0}.omap .omap-time-low{color:#ad4627!important}.omap .omap-section-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:20px 0}.omap .omap-section-results>div{background:#fff;border:1px solid #d6e4e9;border-radius:12px;padding:16px}.omap .omap-option{transition:background .15s,border-color .15s,transform .15s}.omap .omap-option:not(:disabled):hover{transform:translateX(3px);border-color:var(--omap-accent)}.omap .omap-button{transition:transform .15s,filter .15s}.omap .omap-option:disabled{opacity:.8}.omap .omap-form{margin-top:20px}@media(max-width:700px){.omap .omap-stage-transition{grid-template-columns:1fr;padding:20px}.omap .omap-stage-transition .omap-guide{display:block;padding:10px;background:none}.omap .omap-stage-transition .omap-dribu{max-width:100px}.omap .omap-stage-transition .omap-guide p{display:none}.omap .omap-metrics{grid-template-columns:1fr 1fr}}
.omap [hidden]{display:none!important}.omap .omap-time,.omap .omap-elapsed{font-variant-numeric:tabular-nums}@media(max-width:480px){.omap .omap-metrics{grid-template-columns:1fr 1fr}.omap .omap-metrics>div{padding:10px}.omap .omap-metrics strong{font-size:17px}.omap .omap-work>.omap-guide{display:flex;align-items:center;gap:8px;padding:10px}.omap .omap-work>.omap-guide .omap-dribu{width:55px}.omap .omap-work>.omap-guide strong{font-size:13px;margin:0}.omap .omap-work>.omap-guide p{display:none}}
.omap select{width:100%;padding:12px;border:1px solid #b8cbd7;border-radius:9px;background:white;color:#173c67;font:inherit}.omap .omap-map{display:flex;flex-wrap:wrap;gap:7px}.omap .omap-item-button{width:42px;height:42px;border:1px solid #b8cbd7;background:white;border-radius:8px;color:#173c67;cursor:pointer;font-weight:bold}.omap .omap-item-button.answered{background:#d3efe5;border-color:#167d69}.omap .omap-item-button.omitted{background:#fff0ce;border-color:#b7831e}.omap .omap-item-button.active{outline:3px solid #173c67;outline-offset:1px}.omap .omap-item-button:disabled{opacity:1;cursor:default}.omap .omap-form{max-width:640px}.omap .omap-card{margin-bottom:18px}.omap .omap-intro>div>label{display:block;margin:15px 0}.omap button:focus-visible{outline:3px solid #167d69;outline-offset:3px}.omap .omap-option:disabled{cursor:default}.omap .omap-actions{flex-wrap:wrap}@media(max-width:600px){.omap .omap-item-button{width:40px;height:40px}.omap .omap-actions>.omap-button{flex:1 1 150px}}
@media(max-width:700px){.omap .omap-work>.omap-guide,.omap .omap-intro>.omap-guide{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 12px;text-align:left;padding:14px}.omap .omap-work>.omap-guide .omap-dribu,.omap .omap-intro>.omap-guide .omap-dribu{grid-row:span 2;width:56px;align-self:center}.omap .omap-work>.omap-guide strong,.omap .omap-intro>.omap-guide strong{font-size:14px;margin:0}.omap .omap-work>.omap-guide p,.omap .omap-intro>.omap-guide p{display:block;grid-column:2;font-size:13px;margin:0;overflow-wrap:anywhere}}
/* Keep content-sized answer buttons independent of theme button heights. */
.omap,.omap .omap-body,.omap .omap-work,.omap .omap-intro,.omap .omap-card,.omap .omap-options,.omap .omap-feedback,.omap .omap-review,.omap .omap-result{min-width:0;max-width:100%}
.omap .omap-option{height:auto!important;min-height:48px!important;max-height:none!important;overflow:visible!important;align-items:flex-start;white-space:normal!important;text-overflow:clip!important;line-height:1.55!important;flex-wrap:nowrap;box-sizing:border-box}
.omap .omap-option .omap-option-text{display:block;flex:1 1 0%;min-width:0;max-width:100%;height:auto!important;max-height:none!important;white-space:pre-wrap!important;overflow-wrap:anywhere;word-break:normal;overflow:visible;padding:3px 2px;text-overflow:clip!important}
.omap .omap-letter{flex:0 0 30px;min-width:30px;margin-top:2px}
.omap .katex{white-space:normal}.omap .katex-display{margin:.5em 0;overflow-x:auto;overflow-y:hidden;padding:10px 2px;max-width:100%;text-align:left}
.omap .katex-display>.katex{text-align:left}
.omap .omap-option-text .katex,.omap .omap-question .katex,.omap .omap-feedback .katex{display:inline-block;vertical-align:middle;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:8px 2px;white-space:nowrap}
.omap .omap-button{height:auto!important;max-height:none!important;overflow-wrap:anywhere}
.omap .omap-tags span,.omap .omap-heading,.omap .omap-route>div,.omap .omap-section-results>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:480px){.omap .omap-body{padding:16px}.omap .omap-card{padding:14px}.omap .omap-option{gap:8px;padding:10px}.omap .omap-option.selected{padding:9px}.omap .omap-letter{flex-basis:26px;min-width:26px;height:28px}.omap .omap-section-results{grid-template-columns:minmax(0,1fr)}}

.omap .katex-display>.katex{display:block;overflow:visible;max-width:none}
.omap .omap-options{grid-template-columns:minmax(0,1fr);width:100%}
.omap .omap-option{min-width:0!important;max-width:100%!important}

/* 1.7: authored text, calm practice and a decorative welcome. */
.omap{background:#f5f7f8;border-color:#d5e2e5;box-shadow:0 18px 50px -30px #173c6755}
.omap .omap-body{position:relative}
.omap h2,.omap h3,.omap p,.omap .omap-option-text{text-transform:none}
.omap .omap-question{font-size:clamp(18px,2.1vw,21px);font-weight:400!important;text-transform:none!important;font-variant:normal;letter-spacing:normal!important;line-height:1.65;margin-bottom:22px}
.omap .omap-review-item .omap-question{font-size:17px}
.omap .omap-dribu,.omap .omap-eyes{animation:none}
.omap .omap-top{flex-wrap:wrap;gap:10px;border-bottom-color:#d5e2e5}
.omap .omap-brand{flex:1 1 200px}
.omap .omap-top .omap-button{font-size:12px;padding:9px 13px;min-height:40px}
.omap .omap-button{border-radius:12px;background:linear-gradient(125deg,var(--omap-primary),#235e78);box-shadow:0 4px 12px #173c671c;border-color:transparent;transition:box-shadow .18s,filter .18s,transform .18s}
.omap .omap-button:hover{box-shadow:0 6px 16px #173c672a}
.omap .omap-button.omap-secondary{background:#fff;color:var(--omap-primary);border-color:#b9cfd8;box-shadow:0 2px 5px #173c6708}
.omap .omap-card{border-color:#d4e1e6;box-shadow:0 8px 24px -16px #173c6740}
.omap .omap-guide{background:linear-gradient(155deg,#e5f2ef,#eaf0f7);border:1px solid #d7e6e4}
.omap .omap-option{border-color:#c3d5df;border-radius:14px;box-shadow:0 2px 5px #173c6706}
.omap .omap-option:not(:disabled):hover{transform:none;background:#f2f8f7;border-color:var(--omap-accent);box-shadow:0 0 0 1px var(--omap-accent)}
.omap .omap-option.selected{background:#e9f5ef;border-color:var(--omap-accent)}
.omap .omap-letter{background:#edf3f7;border:1px solid #dce7ee;border-radius:9px}
.omap .omap-option.selected .omap-letter{background:var(--omap-accent);color:#fff;border-color:transparent}
.omap .omap-item-button{font:inherit;font-size:14px;font-weight:700;padding:0;border-radius:11px;min-width:40px;line-height:1;text-transform:none}
.omap .omap-map .active{background:var(--omap-primary);color:#fff}
.omap .omap-metrics{border-color:#d2e2e6;gap:8px;background:transparent;border:0;overflow:visible}
.omap .omap-metrics>div{border:1px solid #d2e2e6;border-radius:13px;border-top:3px solid #87b6b2}
.omap .omap-metrics>div:nth-child(2){border-top-color:#baacd7}
.omap .omap-metrics>div:nth-child(3){border-top-color:#dbbc7d}
.omap .omap-metrics>div:nth-child(4){border-top-color:#8db3d6}
.omap .omap-form input:focus-visible,.omap select:focus-visible{outline:3px solid #167d69;outline-offset:2px}
.omap.omap-welcome{background:radial-gradient(ellipse at 100% 0%,#d9eae8 0%,transparent 52%),linear-gradient(130deg,#f5f9fb,#f5f3fb 65%,#fff9ec)}
.omap.omap-welcome .omap-heading{position:relative;background:linear-gradient(115deg,#173c67,#176e71);color:#fff;border-radius:20px;padding:clamp(24px,4vw,40px);padding-right:clamp(60px,12vw,150px);overflow:hidden}
.omap.omap-welcome .omap-heading:after{content:'';position:absolute;width:150px;height:150px;right:-50px;top:-65px;border-radius:50%;border:25px solid #ffffff12;pointer-events:none}
.omap.omap-welcome .omap-heading .omap-kicker{color:#f2d69a}
.omap.omap-welcome .omap-heading .omap-muted{color:#e0f1f3;margin-bottom:0}
.omap.omap-welcome .omap-intro{position:relative;z-index:1}
.omap.omap-welcome .omap-intro>.omap-guide{background:#ffffffde;border-color:#ffffff;box-shadow:0 10px 30px #173c6710}
.omap.omap-welcome .omap-route>div{border:1px solid #dce5eb;box-shadow:0 3px 9px #173c6705}
.omap.omap-welcome .omap-tags span:nth-child(3n+1){background:#e8f4ef;border-color:#bdded1;color:#175747}
.omap.omap-welcome .omap-tags span:nth-child(3n+2){background:#f0ecf8;border-color:#d9cfea;color:#594579}
.omap.omap-welcome .omap-tags span:nth-child(3n){background:#fff5dc;border-color:#e9d6a7;color:#735521}
.omap .omap-number-rain{position:absolute;right:18px;top:20px;width:110px;height:130px;pointer-events:none;overflow:hidden;z-index:1;opacity:.38}
.omap .omap-number-rain span{position:absolute;top:-30px;left:42%;font:600 20px/1.2 Georgia,serif;color:#fff;animation:omap-spiral 9s linear infinite;animation-delay:calc(var(--i)*-.75s)}
@keyframes omap-spiral{0%{transform:translate(0,-10px) rotate(0deg);opacity:0}15%{opacity:1}25%{transform:translate(30px,30px) rotate(90deg)}50%{transform:translate(0,70px) rotate(180deg)}75%{transform:translate(-30px,110px) rotate(270deg);opacity:1}100%{transform:translate(0,155px) rotate(360deg);opacity:0}}
.omap.omap-reduced *{animation:none!important;transition:none!important}
.omap.omap-reduced .omap-number-rain{display:none}
.omap.omap-reduced .omap-button:hover{transform:none}
@media(prefers-reduced-motion:reduce){.omap .omap-number-rain{display:none}.omap .omap-button:hover{transform:none}}
@media(max-width:700px){.omap .omap-number-rain{right:0;top:20px;width:70px;height:110px}.omap.omap-welcome .omap-heading{padding-right:68px}.omap .omap-top{margin-bottom:20px}.omap .omap-top .omap-brand{flex-basis:100%}.omap .omap-intro{gap:20px}}

.omap-time-warning{padding:12px 16px;border-left:4px solid #ad5a00;background:#fff4df;color:#593000;font-weight:600}.omap-time-warning[hidden]{display:none}
