:root{--navy:#0b3c5d;--blue:#176b87;--teal:#0f8b8d;--mint:#e8f7f5;--coral:#ef6f61;--gold:#f4b942;--ink:#18232d;--muted:#60717c;--line:#cfdee4;--bg:#f4f9fb;--white:#fff;--ok:#19724d;--danger:#b63c3c;--shadow:0 18px 45px rgba(11,60,93,.13)}*{box-sizing:border-box}html{font-family:Inter,"Segoe UI",Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 5%,#e5f6f3 0,transparent 35%),radial-gradient(circle at 90% 8%,#fff0e8 0,transparent 32%),var(--bg)}button,input,select{font:inherit}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:12px max(18px,env(safe-area-inset-left));background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar strong{color:var(--navy);font-size:18px}.topbar span{margin-left:10px;color:var(--muted)}.status-pill{padding:7px 13px;border-radius:999px;background:var(--mint);color:var(--navy);font-weight:800;font-size:14px}.app{max-width:1180px;margin:0 auto;padding:24px 18px 70px}.card{background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:25px;box-shadow:var(--shadow)}.cover{overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;min-height:640px}.cover-copy{padding:48px}.eyebrow{display:inline-flex;gap:8px;align-items:center;padding:7px 11px;border-radius:999px;background:var(--mint);color:var(--teal);font-weight:900;letter-spacing:.04em;text-transform:uppercase;font-size:13px}.cover h1{font-size:clamp(38px,5vw,66px);line-height:1.03;color:var(--navy);margin:22px 0 18px}.lead{font-size:20px;line-height:1.65;color:#405561}.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:25px 0}.badge{padding:12px 14px;border-radius:15px;background:#f6fafb;border:1px solid var(--line);font-weight:750;color:var(--navy)}.cover-art{position:relative;background:linear-gradient(145deg,var(--navy),#176b87 58%,var(--teal));display:grid;place-items:center;min-height:420px;overflow:hidden}.cover-art:before,.cover-art:after{content:"";position:absolute;border-radius:50%;border:2px solid rgba(255,255,255,.22)}.cover-art:before{width:480px;height:480px}.cover-art:after{width:330px;height:330px}.audio-orb{position:relative;z-index:2;width:250px;height:250px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--navy);box-shadow:0 20px 60px rgba(0,0,0,.25)}.audio-orb .icon{font-size:86px}.audio-orb .wave{display:flex;gap:6px;align-items:center;height:50px}.audio-orb .wave i{display:block;width:7px;border-radius:10px;background:var(--coral);animation:pulse 1.2s infinite ease-in-out}.audio-orb .wave i:nth-child(1),.audio-orb .wave i:nth-child(7){height:16px}.audio-orb .wave i:nth-child(2),.audio-orb .wave i:nth-child(6){height:29px}.audio-orb .wave i:nth-child(3),.audio-orb .wave i:nth-child(5){height:43px}.audio-orb .wave i:nth-child(4){height:50px}@keyframes pulse{50%{transform:scaleY(.45)}}.section{padding:32px}.section-head{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.section h2{margin:0;color:var(--navy);font-size:clamp(28px,4vw,42px)}.section p{line-height:1.65}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.field label{display:block;color:var(--navy);font-weight:800;margin-bottom:7px}.field input,.field select{width:100%;padding:14px 15px;border:1.5px solid #b9ced6;border-radius:14px;background:#fff;color:var(--ink)}.field input:focus,.field select:focus{outline:3px solid rgba(15,139,141,.15);border-color:var(--teal)}.voice-panel{margin-top:22px;padding:20px;border-radius:19px;background:linear-gradient(135deg,#eff9f8,#f9fcfd);border:1px solid var(--line)}.voice-row{display:grid;grid-template-columns:1fr 180px auto;gap:12px;align-items:end}.voice-status{margin-top:10px;color:var(--muted);font-size:14px}.btn{border:0;border-radius:14px;padding:13px 18px;font-weight:900;cursor:pointer;transition:.18s transform,.18s opacity}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.48;cursor:not-allowed;transform:none}.btn.primary{background:var(--teal);color:#fff}.btn.navy{background:var(--navy);color:#fff}.btn.coral{background:var(--coral);color:#fff}.btn.outline{background:#fff;color:var(--navy);border:1.5px solid var(--line)}.actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.lab-head{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start;margin-bottom:18px}.progress-label{font-weight:900;color:var(--teal)}.progress-track{height:10px;border-radius:999px;background:#dbe9ed;overflow:hidden;margin-top:9px}.progress-bar{height:100%;background:linear-gradient(90deg,var(--teal),var(--coral));width:0}.story-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.chip{padding:7px 10px;border-radius:999px;background:#eef5f7;color:var(--navy);font-weight:800;font-size:13px}.audio-panel{position:relative;overflow:hidden;padding:22px;border-radius:22px;background:linear-gradient(135deg,var(--navy),#135b7a);color:#fff;margin-bottom:20px}.audio-panel:before{content:"";position:absolute;right:-80px;top:-100px;width:280px;height:280px;border-radius:50%;border:45px solid rgba(255,255,255,.08)}.audio-panel h3{position:relative;margin:0 0 8px;font-size:25px}.audio-panel p{position:relative;margin:0;color:#dcecf3}.audio-controls{position:relative;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.plays{font-weight:900;margin-left:auto}.question-list{display:grid;gap:16px}.question{position:relative;overflow:hidden;padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;isolation:isolate}.question:before{content:"";position:absolute;inset:0;z-index:-2;background-image:repeating-linear-gradient(15deg,rgba(15,139,141,.035) 0,rgba(15,139,141,.035) 1px,transparent 1px,transparent 16px),radial-gradient(rgba(11,60,93,.045) 1px,transparent 1px);background-size:auto,16px 16px}.question-number{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:900;margin-right:8px}.question h4{margin:0 0 16px;font-size:19px;color:var(--navy);line-height:1.45}.options{display:grid;gap:9px}.option{position:relative;display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;text-align:left;width:100%;padding:12px 14px;border-radius:14px;border:1.5px solid #c7d9df;background:#fbfdfe;color:var(--ink);cursor:pointer}.option:hover{border-color:var(--teal)}.option.selected{border-color:var(--teal);background:#e8f7f5;box-shadow:0 0 0 3px rgba(15,139,141,.1)}.slot{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e5eef2;color:var(--navy);font-weight:900}.selected .slot{background:var(--teal);color:#fff}.wm-layer{position:absolute;inset:-35%;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;transform:rotate(-22deg);pointer-events:none;user-select:none;z-index:5;opacity:.065}.wm-layer span{white-space:nowrap;color:var(--navy);font-size:12px;font-weight:900;letter-spacing:.03em}.trace{position:absolute;right:10px;bottom:7px;z-index:6;font-size:10px;color:rgba(11,60,93,.38);font-weight:900;pointer-events:none}.notranslate{-webkit-user-select:none;user-select:none}.summary-hero{text-align:center;padding:25px;border-radius:22px;background:linear-gradient(135deg,var(--navy),var(--teal));color:#fff}.score-big{font-size:70px;font-weight:950;line-height:1;margin:14px}.score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0}.score-card{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff;text-align:center}.score-card b{display:block;color:var(--teal);font-size:27px}.score-card span{color:var(--muted);font-size:13px}.evidence{margin-top:20px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#f9fcfd}.event-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.event{padding:12px;text-align:center;border-radius:14px;background:#fff;border:1px solid var(--line)}.event b{font-size:25px;color:var(--navy);display:block}.submit-status{margin-top:12px;padding:13px;border-radius:13px;background:#eef5f7;color:var(--navy);font-weight:750}.submit-status.ok{background:#e8f7ef;color:var(--ok)}.submit-status.error{background:#fff0f0;color:var(--danger)}.toast{position:fixed;z-index:100;left:50%;bottom:26px;transform:translate(-50%,30px);opacity:0;pointer-events:none;max-width:min(92vw,680px);padding:13px 18px;border-radius:14px;background:#142b3b;color:#fff;box-shadow:var(--shadow);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.warning-overlay{position:fixed;z-index:200;inset:0;background:rgba(7,23,34,.62);display:grid;place-items:center;padding:20px}.warning-overlay.hidden,.hidden{display:none!important}.warning-box{max-width:520px;background:#fff;border-radius:24px;padding:30px;text-align:center;box-shadow:0 25px 80px rgba(0,0,0,.3)}.warning-icon{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 10px;border-radius:50%;background:#fff1e9;color:var(--coral);font-weight:950;font-size:34px}.warning-box h2{color:var(--navy);margin:8px 0}.warning-box p{line-height:1.6;color:#405561}@media(max-width:850px){.cover{grid-template-columns:1fr}.cover-copy{padding:32px 24px}.cover-art{min-height:300px}.form-grid,.voice-row{grid-template-columns:1fr}.score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-head{grid-template-columns:1fr}.plays{margin-left:0}.section{padding:22px 16px}.question{padding:18px 14px}.option{grid-template-columns:34px 1fr;padding:11px}.topbar span{display:none}}@media(prefers-contrast:more){.wm-layer{opacity:.035}.question:before{opacity:.55}.option{border-width:2px}}@media print{body{display:none!important}}
.listen-gate{position:relative;margin-top:16px;padding:13px 15px;border:1px solid rgba(255,255,255,.32);border-radius:15px;background:rgba(255,255,255,.10)}
.listen-gate.met{background:rgba(36,181,117,.20);border-color:rgba(183,255,218,.55)}
.listen-gate-row{display:flex;justify-content:space-between;gap:12px;align-items:center}
.listen-gate-row strong{color:#fff}
.listen-gate-row span{font-weight:900;color:#fff}
.listen-meter{height:10px;margin:9px 0 7px;border-radius:999px;background:rgba(255,255,255,.22);overflow:hidden}
.listen-fill{height:100%;width:0;background:linear-gradient(90deg,#f4b942,#ef6f61);transition:width .25s ease}
.listen-gate.met .listen-fill{background:linear-gradient(90deg,#72e0ba,#b9f4d7)}
.listen-gate small{display:block;color:#dcecf3;line-height:1.45}
@media(max-width:600px){.listen-gate-row{align-items:flex-start;flex-direction:column;gap:4px}}

/* v1.2 Safari/iPad resilience */
.btn,.option{touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:48px}
.continue-state{margin-top:20px;padding:13px 15px;border-radius:14px;background:#fff4df;border:1px solid #eed49e;color:#70551f;font-weight:800;line-height:1.45}
.continue-state.ready{background:#e7f7ef;border-color:#a8dec2;color:#176241}
.ios-note{margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.55}
@media(max-width:850px){
  .sticky-actions{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));z-index:40;padding:10px;margin-left:-8px;margin-right:-8px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px rgba(11,60,93,.16)}
  .sticky-actions .btn{width:100%}
}

/* v1.3 unanswered-item guard */
.question.needs-answer{border:3px solid var(--danger);background:#fff6f6;box-shadow:0 0 0 5px rgba(182,60,60,.12),0 14px 30px rgba(182,60,60,.12)}
.question.needs-answer h4{color:var(--danger)}
.question.needs-answer:after{content:"Please answer this question before continuing";display:block;margin-top:14px;padding:10px 12px;border-radius:12px;background:#ffe9e9;color:var(--danger);font-weight:900;position:relative;z-index:7}
@media(prefers-reduced-motion:no-preference){.question.needs-answer{animation:missingPulse 1s ease-in-out 2}@keyframes missingPulse{50%{transform:translateY(-2px)}}}
