html, body { min-height: 100%; overflow-x: hidden; overflow-y: auto; }
.assessment-shell { position: relative; width: min(1460px, 100%); min-height: 100dvh; display: grid; grid-template-rows: auto 1fr auto; margin: 0 auto; padding: clamp(22px, 4vw, 58px); }
.assessment-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 26px; border-bottom: 1px solid var(--ink); }
.assessment-brand { display: flex; align-items: center; gap: 16px; color: inherit; text-decoration: none; }
.assessment-brand img { width: clamp(54px, 5vw, 78px); }
.assessment-brand span { display: grid; gap: 5px; font: 12px/1.25 Consolas, "Courier New", monospace; letter-spacing: .05em; }
.assessment-brand b { letter-spacing: .14em; }
.return-link { color: inherit; font: 700 11px/1 Consolas, "Courier New", monospace; text-underline-offset: 4px; text-transform: uppercase; }
.assessment-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr); align-items: center; gap: clamp(48px, 8vw, 130px); padding: clamp(58px, 8vw, 120px) 0; }
.assessment-intro h1 { margin: 12px 0 30px; font-size: clamp(72px, 10vw, 150px); line-height: .78; letter-spacing: -.07em; text-transform: uppercase; }
.assessment-lead { max-width: 54ch; margin: 0; font-size: clamp(17px, 1.6vw, 24px); line-height: 1.45; }
.assessment-state { position: relative; min-height: 440px; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(28px, 4vw, 52px); border: 1px solid var(--line); background: rgba(255,255,255,.48); box-shadow: inset 0 1px rgba(255,255,255,.75), 0 28px 70px rgba(0,72,43,.1); }
.state-marker { position: absolute; top: 34px; left: 34px; width: 20px; height: 20px; border: 2px solid var(--danger); transform: rotate(45deg); }
.state-open .state-marker { border-color: var(--green); background: var(--green); animation: status-breathe 2.4s ease-in-out infinite alternate; }
.assessment-state h2 { margin: 10px 0 18px; font-size: clamp(38px, 4.4vw, 64px); line-height: .92; letter-spacing: -.055em; }
.assessment-state > p:not(.eyebrow) { max-width: 44ch; margin: 0 0 28px; font-size: 15px; line-height: 1.55; }
.assessment-action { align-self: flex-start; min-height: 46px; border: 0; padding: 13px 20px; color: #f8faf3; background: var(--green); font-weight: 700; }
.assessment-action:disabled { cursor: not-allowed; opacity: .44; }
.assessment-state small { margin-top: 12px; color: rgba(7,26,23,.62); line-height: 1.4; }
.qr-entry { display:grid; gap:12px; }
.entry-email { display:grid; gap:7px; font-size:11px; font-weight:700; }
.entry-email input { min-width:0; border:1px solid rgba(7,26,23,.32); padding:12px; background:#fff; font-size:16px; }
.entry-email small { margin:0; font-weight:400; }
.qr-entry video { width:100%; max-height:220px; display:none; object-fit:cover; border:1px solid var(--line); background:var(--ink); }
.qr-entry video.is-active { display:block; }
.qr-entry>p { margin:0; font:11px/1.4 Consolas,"Courier New",monospace; }
.qr-actions { display:flex; gap:9px; }
.assessment-secondary { min-height:46px; border:1px solid var(--ink); padding:12px 17px; color:inherit; background:transparent; font-weight:700; }
#assessment-code-form { display:grid; gap:7px; margin-top:4px; }
#assessment-code-form label { font-size:11px; font-weight:700; }
#assessment-code-form>div { display:grid; grid-template-columns:1fr auto; }
#assessment-code-form input { min-width:0; border:1px solid rgba(7,26,23,.32); padding:12px; background:rgba(255,255,255,.72); }
#assessment-code-form button { border:0; padding:12px 16px; color:#fff; background:var(--green); font-weight:700; }
.assessment-test-page { overflow:visible; background:#f4f6e9; background-image:none; }
.assessment-test-page::before { display:none; }
.test-shell { width:min(960px,100%); min-height:100dvh; margin:auto; padding:clamp(22px,4vw,54px); background:#eef2e5; }
.test-header { display:flex; justify-content:space-between; gap:25px; padding-bottom:25px; border-bottom:1px solid var(--ink); }
.test-header h1 { margin:7px 0 0; font-size:clamp(42px,7vw,76px); letter-spacing:-.06em; }
.participant-marker { text-align:right; font:11px/1.5 Consolas,monospace; }
.test-timer { position:sticky; top:max(0px,env(safe-area-inset-top)); z-index:10; display:flex; align-items:center; justify-content:space-between; gap:20px; margin:18px 0 0; padding:14px 18px; border:1px solid #075c37; color:#fff; background:#075c37; box-shadow:0 10px 24px rgba(0,72,43,.12); }
.test-timer>div { display:flex; align-items:baseline; gap:14px; }
.test-timer span { font:700 10px/1 Consolas,"Courier New",monospace; letter-spacing:.1em; text-transform:uppercase; }
.test-timer strong { min-width:5ch; color:inherit; font:700 clamp(26px,4vw,38px)/1 Consolas,"Courier New",monospace; font-variant-numeric:tabular-nums; }
.test-timer p { margin:0; font-size:12px; text-align:right; }
.timer-messages { display:grid; justify-items:end; gap:4px; }
.timer-messages [data-time-warning] { color:inherit; font-weight:800; }
.timer-messages [data-time-warning][data-level="final"] { padding:0; color:inherit; background:transparent; }
.test-timer p[data-state="offline"],.test-timer p[data-state="error"] { color:var(--danger); }
.test-timer.is-warning { border-color:#bd8200; color:#2b210b; background:#e7b84a; }
.test-timer.is-critical { border-color:#9f2f28; color:#fff; background:#9f2f28; }
#assessment-form { margin-top:22px; padding:clamp(20px,4vw,42px); border:1px solid rgba(7,26,23,.16); background:#fff; box-shadow:0 24px 60px rgba(0,72,43,.08); }
.email-block { display:grid; gap:8px; padding:0 0 28px; border-bottom:1px solid var(--line); }
.email-block input { width:min(520px,100%); border:1px solid rgba(7,26,23,.28); padding:14px; color:var(--ink); background:#f3f5ed; }
.question-field { margin:0; padding:32px 0; border:0; border-bottom:1px solid var(--line); background:#fff; }
.question-field legend { width:100%; padding:0; font-size:18px; font-weight:700; line-height:1.45; }
.question-number { margin-right:10px; color:var(--green); font:700 11px/1 Consolas,monospace; }
.choice-list { display:grid; gap:10px; margin-top:20px; }
.choice-list label { display:flex; gap:10px; padding:13px; border:1px solid var(--line); background:#fff; }
.choice-list label:has(input:checked) { border-color:var(--green); background:#edf4ed; box-shadow:inset 4px 0 var(--green); }
.choice-list label:active,.submit-test:active,.start-form button:active { transform:translateY(1px); }
.text-answer { width:100%; margin-top:18px; border:1px solid rgba(7,26,23,.35); padding:13px; background:#fff; resize:vertical; }
.submit-test { margin-top:32px; min-height:50px; border:0; padding:14px 24px; color:#fff; background:var(--green); font-weight:700; }
.result-panel { margin-top:50px; padding:36px; border:1px solid var(--line); background:rgba(255,255,255,.55); }
.result-panel h1 { margin:10px 0; font-size:clamp(52px,9vw,96px); letter-spacing:-.07em; }
.start-shell { width:min(1180px,100%); min-height:100dvh; margin:auto; padding:clamp(22px,5vw,64px); }
.start-brand { display:flex; align-items:center; gap:12px; width:max-content; color:inherit; text-decoration:none; font:700 11px/1 Consolas,monospace; letter-spacing:.12em; }
.start-brand img { width:58px; }
.start-panel { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); gap:clamp(44px,8vw,110px); align-items:center; padding:clamp(60px,10vw,130px) 0; }
.start-context h1 { max-width:9ch; margin:12px 0 24px; font-size:clamp(48px,7vw,88px); line-height:.9; letter-spacing:-.06em; }
.start-context>p:not(.eyebrow) { max-width:55ch; font-size:17px; line-height:1.6; }
.start-note { display:grid; gap:5px; margin-top:30px; padding:18px 0; border-block:1px solid var(--line); }
.start-note span { font-size:13px; line-height:1.5; }
.start-form { display:grid; gap:22px; padding:clamp(24px,4vw,42px); border:1px solid rgba(7,26,23,.18); background:#fff; box-shadow:0 26px 64px rgba(0,72,43,.1); }
.start-form label { display:grid; gap:8px; font-size:13px; font-weight:800; }
.start-form input { width:100%; min-height:52px; border:1px solid rgba(7,26,23,.3); padding:14px; color:var(--ink); background:#f8faf4; font-size:16px; }
.start-form input:focus,.text-answer:focus { outline:3px solid rgba(0,107,56,.16); border-color:var(--green); }
.start-form small,.start-form>p { margin:0; color:rgba(7,26,23,.64); font-size:12px; font-weight:400; line-height:1.5; }
.start-form button { min-height:54px; border:0; padding:14px 22px; color:#fff; background:var(--green); font-weight:800; }
.form-error { padding:13px 15px; border-left:4px solid #9f2f28; color:#7f231e; background:#f9e9e7; font-size:13px; font-weight:700; }
.assessment-footer { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); font: 700 10px/1.3 Consolas, "Courier New", monospace; letter-spacing: .07em; text-transform: uppercase; }
.assessment-footer span { padding: 18px 16px; border-left: 1px solid var(--line); }
.assessment-footer span:first-child { padding-left: 0; border-left: 0; }
@keyframes status-breathe { from { opacity: .45; transform: rotate(45deg) scale(.78); } to { opacity: 1; transform: rotate(45deg) scale(1); } }
@media (max-width: 760px) {
  .assessment-shell { padding: 20px 18px 34px; }
  .assessment-header { align-items: flex-start; }
  .assessment-brand span { display: none; }
  .assessment-layout { grid-template-columns: 1fr; gap: 42px; padding: 54px 0; }
  .assessment-intro h1 { font-size: clamp(58px, 19vw, 92px); }
  .assessment-state { min-height: 380px; }
  .assessment-footer { grid-template-columns: 1fr; }
  .assessment-footer span { padding: 13px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .test-shell { padding:18px 16px 44px; }
  .test-header { flex-direction:column; gap:12px; padding-bottom:18px; }
  .test-header h1 { font-size:clamp(42px,14vw,62px); }
  .participant-marker{text-align:left}
  .test-timer { top:0; align-items:flex-start; margin-inline:-16px; padding:12px 16px; border-left:0; border-right:0; }
  .test-timer>div { display:grid; gap:5px; }
  .test-timer p { max-width:25ch; font-size:10px; line-height:1.35; }
  .timer-messages { max-width:55%; }
  #assessment-form { margin-inline:-6px; padding:22px 18px; }
  .start-panel { grid-template-columns:1fr; gap:36px; padding:54px 0; }
  .start-context h1 { font-size:clamp(46px,15vw,70px); }
  .email-block { padding:24px 0; }
  .email-block input,.text-answer { min-height:48px; font-size:16px; }
  .question-field { padding:25px 0; }
  .question-field legend { font-size:16px; }
  .choice-list label { min-height:50px; align-items:center; padding:14px 12px; }
  .choice-list input { width:20px; height:20px; flex:0 0 auto; }
  .submit-test { width:100%; min-height:54px; font-size:16px; }
}
@media (max-width: 420px) {
  .test-timer { gap:10px; }
  .test-timer p { max-width:19ch; }
}
@media (prefers-reduced-motion: reduce) { .state-open .state-marker { animation: none; } }
