:root{--ink:#0A0A0A;--yellow:#F5C400;--yellow-dark:#D4A800;--red:#DC2626;--red-light:#FEF2F2;--amber:#D97706;--amber-light:#FFFBEB;--green:#059669;--green-light:#ECFDF5;--gray-100:#F5F5F5;--gray-200:#E5E5E5;--gray-400:#A3A3A3;--gray-500:#737373;--gray-700:#404040;--gray-900:#0A0A0A;--text-xs:11px;--text-sm:14px;--text-base:16px;--text-lg:20px;--text-xl:28px;--text-2xl:42px;--text-3xl:64px;--lh-tight:1.05;--lh-snug:1.5;--lh-reading:1.7;--ls-label:0.08em;--ls-display:-0.04em;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;--s8:128px;--mono:'IBM Plex Mono',monospace;--sans:'IBM Plex Sans',sans-serif;--radius:6px;--radius-lg:10px}*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden}body{font-family:var(--sans);background:#111111;color:var(--gray-900);min-height:100vh;font-size:var(--text-base);line-height:var(--lh-reading);overflow-x:hidden}.header{background:var(--ink);padding:0 2rem;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.logo{font-family:var(--mono);font-size:var(--text-base);font-weight:500;color:#fff;letter-spacing:0}.logo .accent{color:var(--yellow)}.header-right{display:flex;align-items:center;gap:12px}.framework-tag{font-size:var(--text-xs);font-weight:500;color:rgba(255,255,255,0.55);background:transparent;border:1px solid rgba(255,255,255,0.15);padding:6px 10px;border-radius:var(--radius);text-decoration:none;transition:color 0.2s,border-color 0.2s}.framework-tag:hover{color:#fff;border-color:rgba(255,255,255,0.35)}.hero{background:var(--ink);padding:var(--s8) 2rem 0;text-align:center;border-bottom:1px solid rgba(255,255,255,0.07)}.urgency-pill{display:inline-flex;align-items:center;gap:7px;background:rgba(245,196,0,0.12);border:1px solid rgba(245,196,0,0.4);color:var(--yellow);font-family:var(--mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--ls-label);padding:6px 16px;border-radius:99px;margin-bottom:var(--s4)}.urgency-pill .u-dot{width:7px;height:7px;border-radius:50%;background:var(--yellow);animation:upulse 1.8s ease-in-out infinite;flex-shrink:0}@keyframes upulse{0%,100%{opacity:1}50%{opacity:0.2}}.hero-title{font-size:var(--text-3xl);font-weight:600;color:#fff;letter-spacing:var(--ls-display);margin-bottom:var(--s3);line-height:var(--lh-tight)}.hero-title strong{font-weight:600;color:var(--yellow)}.hero-sub{font-size:var(--text-lg);color:rgba(255,255,255,0.7);margin-bottom:var(--s5);font-weight:400;line-height:var(--lh-reading);max-width:580px;margin-left:auto;margin-right:auto}.stakes-strip{max-width:640px;margin:2.5rem auto 0;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);overflow:hidden}.stake{padding:22px 22px;border-right:1px solid rgba(255,255,255,0.08);text-align:left}.stake:last-child{border-right:none}.stake-num{font-family:var(--mono);font-size:var(--text-xl);font-weight:600;color:#fff;margin-bottom:var(--s2);line-height:var(--lh-tight)}.stake-label{font-size:var(--text-sm);color:rgba(255,255,255,0.65);line-height:var(--lh-snug)}.how-it-works{display:block;margin-bottom:var(--s5)}.example-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.example-badge{font-family:var(--mono);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--yellow);background:rgba(245,196,0,0.1);border:1px solid rgba(245,196,0,0.3);padding:4px 12px;border-radius:99px}.example-note{font-size:var(--text-base);color:rgba(255,255,255,0.6)}.business-impact-box{border-top:1px solid var(--gray-100);padding:var(--s2) 0;margin-bottom:0;font-size:var(--text-base);color:var(--gray-700);line-height:var(--lh-reading)}.impact-label{font-weight:600;font-size:var(--text-base);color:var(--gray-900);display:block;margin-bottom:4px;text-transform:none;letter-spacing:0;font-family:var(--sans)}.scan-input-wrap{max-width:640px;margin:0 auto;display:flex;gap:0;background:#fff;border-radius:var(--radius-lg);overflow:hidden;border:1.5px solid rgba(255,255,255,0.12);transition:border-color 0.2s}.scan-input-wrap:focus-within{border-color:rgba(255,255,255,0.5);box-shadow:0 0 0 3px rgba(255,255,255,0.08)}.scan-protocol{background:var(--gray-100);border-right:1px solid var(--gray-200);padding:0 12px;font-family:var(--mono);font-size:var(--text-xs);color:#595959;display:flex;align-items:center;white-space:nowrap}#urlInput{flex:1;border:none;outline:none;padding:12px 14px;font-family:var(--mono);font-size:var(--text-sm);color:var(--gray-900);background:transparent}#urlInput::placeholder{color:var(--gray-400)}.scan-btn{background:var(--yellow);color:var(--ink);border:none;padding:0 28px;font-family:var(--sans);font-size:var(--text-base);font-weight:700;cursor:pointer;letter-spacing:0;transition:background 0.15s;white-space:nowrap}.scan-btn:hover{background:var(--yellow-dark)}.scan-btn:active{background:#BF9700}.scan-btn:disabled{background:#E5E5E5;color:#A3A3A3;cursor:not-allowed}.consent-check{max-width:640px;margin:var(--s3) auto 0;display:flex;align-items:center;gap:var(--s1);cursor:pointer;font-size:var(--text-sm);color:rgba(255,255,255,0.65);user-select:none}.consent-check input[type="checkbox"]{accent-color:var(--ink);width:14px;height:14px;cursor:pointer}.progress-wrap{max-width:640px;margin:28px auto 0;display:none}.progress-bar-bg{height:2px;background:rgba(255,255,255,0.1);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--yellow);border-radius:2px;width:0%;transition:width 0.4s ease}.progress-status{font-family:var(--mono);font-size:var(--text-xs);color:rgba(255,255,255,0.7);margin-top:var(--s1);text-align:left}.progress-status::before{content:'▶ ';color:var(--yellow)}.hero-or{display:flex;align-items:center;gap:var(--s2);max-width:640px;margin:var(--s4) auto var(--s3);color:rgba(255,255,255,0.6);font-family:var(--mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--ls-label)}.hero-or::before,.hero-or::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.1)}.alt-option{max-width:640px;margin:0 auto var(--s4);border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius-lg);padding:var(--s3);display:flex;align-items:center;gap:var(--s3);background:rgba(255,255,255,0.02);text-align:left}.alt-option-text{flex:1}.alt-option-title{font-size:var(--text-base);font-weight:600;color:#fff;margin-bottom:4px}.alt-option-sub{font-size:var(--text-sm);color:rgba(255,255,255,0.55);line-height:var(--lh-reading)}.alt-option-btn{background:transparent;border:1px solid var(--yellow);color:var(--yellow);padding:10px 20px;border-radius:var(--radius);font-family:var(--sans);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:background 0.15s,color 0.15s;white-space:nowrap;display:inline-block}.alt-option-btn:hover{background:var(--yellow);color:var(--ink)}.main{max-width:900px;margin:0 auto;padding:var(--s7) 2rem}.empty-state{text-align:center;padding:4rem 2rem;color:rgba(255,255,255,0.25)}.empty-state-icon{width:48px;height:48px;margin:0 auto 1rem;opacity:0.15}.empty-state p{font-size:var(--text-sm);line-height:var(--lh-reading);max-width:320px;margin:0 auto}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);margin-bottom:var(--s6)}.metric-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--s4);text-align:center;cursor:pointer;user-select:none;transition:transform 0.15s ease,box-shadow 0.15s ease,border-color 0.15s ease;position:relative}.metric-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,0.35)}.metric-card:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.metric-card.is-active{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}.metric-card.is-empty{opacity:0.45;cursor:not-allowed}.metric-card.is-empty:hover{transform:none;box-shadow:none}.metric-num{font-size:var(--text-2xl);font-weight:600;line-height:var(--lh-tight);font-family:var(--mono)}.metric-label{font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--gray-500);margin-top:var(--s1)}.metric-critical{border-top:3px solid var(--red)}.metric-high{border-top:3px solid var(--amber)}.metric-medium{border-top:3px solid var(--gray-400)}.metric-total{border-top:3px solid var(--yellow)}.metric-critical .metric-num{color:var(--gray-900)}.metric-high .metric-num{color:var(--gray-900)}.metric-medium .metric-num{color:var(--gray-900)}.metric-total .metric-num{color:var(--gray-900)}.two-col{display:grid;grid-template-columns:320px minmax(0,1fr);gap:2.5rem;align-items:start;max-width:1120px;margin:0 auto}.two-col>:first-child>.panel{position:sticky;top:var(--s3)}.panel{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.panel-title{padding:var(--s2) var(--s3);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--gray-500);border-bottom:1px solid var(--gray-100);background:var(--gray-100)}.posture-row{display:flex;align-items:center;justify-content:space-between;padding:var(--s2) var(--s3);border-bottom:1px solid var(--gray-100);font-size:var(--text-sm)}.posture-row:last-child{border-bottom:none}.posture-label{color:var(--gray-700)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-red{background:var(--red)}.dot-amber{background:var(--amber)}.dot-green{background:var(--green)}.status-pill{font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:99px;letter-spacing:var(--ls-label)}.pill-red{background:var(--red-light);color:var(--red)}.pill-amber{background:var(--amber-light);color:var(--amber)}.pill-green{background:var(--green-light);color:var(--green)}.findings-wrap{display:flex;flex-direction:column;gap:var(--s2)}.finding-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;opacity:0;transform:translateY(6px);transition:opacity 0.3s ease,transform 0.3s ease}.finding-card.visible{opacity:1;transform:translateY(0)}.finding-head{padding:var(--s3);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s2);cursor:pointer}.finding-id{font-family:var(--mono);font-size:var(--text-xs);font-weight:600;margin-bottom:5px}.finding-card.critical .finding-id{color:var(--red)}.finding-card.high .finding-id{color:#92400e}.finding-card.medium .finding-id{color:var(--gray-400)}.finding-title{font-size:var(--text-base);font-weight:500;color:var(--gray-900);line-height:var(--lh-snug)}.sev-pill{font-family:var(--mono);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);white-space:nowrap;flex-shrink:0;padding-top:2px}.sev-critical{color:var(--red)}.sev-high{color:#92400e}.sev-medium{color:var(--gray-400)}.finding-body{padding:0 var(--s3) var(--s3);border-top:1px solid var(--gray-100);display:none}.finding-body.open{display:block}.finding-desc{font-size:var(--text-base);color:var(--gray-700);line-height:var(--lh-reading);padding:var(--s2) 0}.finding-meta-row{display:flex;gap:var(--s2);flex-wrap:wrap;border-top:1px solid var(--gray-100);padding:var(--s2) 0}.finding-meta-item{font-size:var(--text-xs);color:var(--gray-500)}.finding-meta-item strong{color:var(--gray-700);font-weight:500}.rule-chip{display:inline;font-family:var(--mono);font-size:var(--text-xs);font-weight:500;color:var(--gray-500);border-top:1px solid var(--gray-100);padding-top:var(--s2);margin-bottom:var(--s2);display:block}.remediation-box{border-top:1px solid var(--gray-100);padding:var(--s2) 0 0;font-size:var(--text-base);color:var(--gray-700);line-height:var(--lh-reading);background:none}.remediation-box .rem-label{font-weight:600;display:block;margin-bottom:4px;font-size:var(--text-base);text-transform:none;letter-spacing:0;color:var(--gray-900);font-family:var(--sans)}.cta-block{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);padding:var(--s5);margin-top:var(--s5);display:flex;align-items:center;justify-content:space-between;gap:var(--s4);display:none}.cta-text .cta-eyebrow{font-family:var(--mono);font-size:var(--text-xs);color:rgba(255,255,255,0.62);text-transform:uppercase;letter-spacing:var(--ls-label);margin-bottom:var(--s1)}.cta-text .cta-headline{font-size:var(--text-lg);font-weight:600;color:#fff;margin-bottom:var(--s1);line-height:var(--lh-snug)}.cta-text .cta-sub{font-size:var(--text-sm);color:rgba(255,255,255,0.7);line-height:var(--lh-snug);max-width:420px}.cta-action-btn{background:var(--yellow);color:var(--ink);border:none;padding:var(--s2) var(--s4);border-radius:var(--radius);font-family:var(--sans);font-size:var(--text-base);font-weight:700;cursor:pointer;white-space:nowrap;transition:background 0.15s}.cta-action-btn:hover{background:var(--yellow-dark)}.scan-target-bar{display:none;align-items:center;gap:var(--s1);padding:var(--s2) var(--s3);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:var(--s5);font-family:var(--mono);font-size:var(--text-xs);color:var(--gray-700)}.scan-target-bar .target-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}.scan-time{margin-left:auto;font-size:var(--text-xs);color:var(--gray-400)}.nav-link{font-size:var(--text-xs);font-weight:500;color:rgba(255,255,255,0.75);background:transparent;border:1px solid rgba(255,255,255,0.2);padding:6px 12px;border-radius:var(--radius);text-decoration:none;transition:color 0.2s,border-color 0.2s;white-space:nowrap}.nav-link:hover{color:#fff;border-color:rgba(255,255,255,0.4)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;backdrop-filter:blur(2px)}.modal-card{background:#fff;border-radius:var(--radius-lg);padding:2.5rem;max-width:440px;width:100%;box-shadow:0 24px 64px rgba(0,0,0,0.28)}.modal-eyebrow{font-family:var(--mono);font-size:var(--text-xs);color:var(--gray-400);text-transform:uppercase;letter-spacing:var(--ls-label);margin-bottom:var(--s1)}.modal-title{font-size:var(--text-xl);font-weight:600;color:var(--gray-900);margin-bottom:var(--s1);line-height:var(--lh-snug)}.modal-sub{font-size:var(--text-base);color:var(--gray-500);margin-bottom:var(--s3);line-height:var(--lh-snug)}.modal-form{display:flex;flex-direction:column;gap:var(--s2)}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field label{font-size:var(--text-xs);font-weight:500;color:var(--gray-700)}.field-opt{font-weight:400;color:var(--gray-400)}.field-req{color:var(--red)}.modal-field input{border:1.5px solid var(--gray-200);border-radius:var(--radius);padding:var(--s2) var(--s2);font-family:var(--sans);font-size:var(--text-base);color:var(--gray-900);outline:none;transition:border-color 0.2s}.modal-field input:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(245,196,0,0.15)}.modal-submit{background:var(--yellow);color:var(--ink);border:none;padding:var(--s2);border-radius:var(--radius);font-family:var(--sans);font-size:var(--text-base);font-weight:700;cursor:pointer;transition:background 0.15s;margin-top:4px}.modal-submit:hover{background:var(--yellow-dark)}.modal-success{text-align:center;padding:var(--s2) 0;color:var(--gray-700);font-size:var(--text-sm);line-height:var(--lh-reading)}.modal-success-tick{font-size:var(--text-xl);color:var(--green);margin-bottom:var(--s1)}.modal-dismiss{display:block;width:100%;text-align:center;margin-top:var(--s2);font-size:var(--text-xs);color:var(--gray-400);background:none;border:none;cursor:pointer;padding:4px;text-decoration:underline;font-family:var(--sans)}.modal-dismiss:hover{color:var(--gray-700)}.notice-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.72);display:none;align-items:center;justify-content:center;z-index:1100;padding:1rem;backdrop-filter:blur(4px)}.notice-overlay.is-open{display:flex}.notice-card{background:#0F0F10;border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);padding:var(--s4) var(--s4) var(--s3);max-width:420px;width:100%;box-shadow:0 24px 64px rgba(0,0,0,0.55);color:#fff}.notice-eyebrow{font-family:var(--mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--yellow);margin-bottom:var(--s1);display:flex;align-items:center;gap:6px}.notice-eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--yellow);box-shadow:0 0 8px var(--yellow)}.notice-card.is-error .notice-eyebrow{color:var(--red)}.notice-card.is-error .notice-eyebrow::before{background:var(--red);box-shadow:0 0 8px var(--red)}.notice-message{font-size:var(--text-base);line-height:var(--lh-snug);color:rgba(255,255,255,0.92);margin-bottom:var(--s3)}.notice-actions{display:flex;justify-content:flex-end}.notice-ok{background:var(--yellow);color:var(--ink);border:none;padding:8px 20px;border-radius:var(--radius);font-family:var(--sans);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:background 0.15s}.notice-ok:hover{background:var(--yellow-dark)}.notice-ok:focus-visible{outline:2px solid #fff;outline-offset:2px}.zero-findings{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--s4);color:var(--gray-900)}.zero-findings-eyebrow{font-family:var(--mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--gray-500);margin-bottom:var(--s1)}.zero-findings-title{font-size:var(--text-lg);font-weight:600;line-height:var(--lh-snug);margin-bottom:var(--s2)}.zero-findings-lede{font-size:var(--text-base);color:var(--gray-700);line-height:var(--lh-reading);margin-bottom:var(--s3)}.zero-findings-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-bottom:var(--s2)}.zero-col h4{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--gray-700);margin:0 0 var(--s1)}.zero-col ul{margin:0;padding-left:1.1rem;color:var(--gray-700);font-size:var(--text-sm);line-height:var(--lh-reading)}.zero-col li{margin-bottom:4px}.zero-col.checked ul{list-style:'✓  '}.zero-col.unchecked ul{list-style:'—  ';color:var(--gray-500)}.site-footer{border-top:1px solid rgba(255,255,255,0.07);padding:var(--s5) 2rem;margin-top:var(--s5);display:flex;align-items:center;justify-content:space-between;gap:var(--s2);font-size:var(--text-xs);color:rgba(255,255,255,0.55);flex-wrap:wrap}.site-footer a{color:rgba(255,255,255,0.55);text-decoration:none}.site-footer a:hover{color:rgba(255,255,255,0.65)}.faq-section{max-width:720px;margin:var(--s7) auto 0;padding-top:var(--s5);border-top:1px solid rgba(255,255,255,0.07)}.faq-heading{font-size:var(--text-xl);font-weight:600;color:#fff;margin-bottom:var(--s4);letter-spacing:var(--ls-display)}.faq-list{display:flex;flex-direction:column;gap:var(--s1)}.faq-item{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-lg);overflow:hidden}.faq-question{padding:var(--s3);font-size:var(--text-base);font-weight:600;color:#fff;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;transition:background 0.15s}.faq-question::-webkit-details-marker{display:none}.faq-question::after{content:'+';font-family:var(--mono);font-size:var(--text-lg);color:var(--yellow);transition:transform 0.2s;flex-shrink:0;width:1.2em;text-align:center}.faq-item[open] .faq-question::after{content:'−'}.faq-question:hover{background:rgba(255,255,255,0.04)}.faq-answer{padding:0 var(--s3) var(--s3);font-size:var(--text-sm);color:rgba(255,255,255,0.7);line-height:var(--lh-reading)}.faq-answer p{margin-bottom:var(--s1)}.faq-answer p:last-child{margin-bottom:0}@media (max-width:860px){.two-col{grid-template-columns:1fr;gap:var(--s3)}.two-col>:first-child>.panel{position:static}}@media (max-width:680px){.two-col{grid-template-columns:1fr}.summary-strip{grid-template-columns:repeat(2,1fr)}.hero{padding:var(--s6) 1.25rem 0}.main{padding:var(--s4) 1.25rem}.cta-block{flex-direction:column;padding:var(--s4)}.stakes-strip{grid-template-columns:1fr}.stake{border-right:none;border-bottom:1px solid rgba(255,255,255,0.08);padding:var(--s3)}.stake:last-child{border-bottom:none}.how-it-works{grid-template-columns:1fr}.how-step{padding:var(--s3)}.hero-title{font-size:36px;letter-spacing:var(--ls-display)}.metric-card{padding:var(--s3)}.finding-head{padding:var(--s2) var(--s2) var(--s1)}.finding-body{padding:0 var(--s2) var(--s3)}.faq-section{margin:var(--s4) auto 0;padding-top:var(--s4)}}@media (max-width:620px){.alt-option{flex-direction:column;align-items:stretch;text-align:center}.alt-option-text{text-align:center}.zero-findings-cols{grid-template-columns:1fr}}

.urgency-pills .urgency-pill{margin-bottom:0}


/* Countdown strip */
.countdown-strip{background:rgba(220,38,38,0.06);border:1px solid rgba(220,38,38,0.15);border-radius:var(--radius);max-width:720px;margin:var(--s4) auto 0;padding:var(--s3) var(--s4);text-align:center}
.countdown-label{font-family:var(--mono);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:#ef4444;margin-bottom:var(--s2)}
.countdown-timer{display:flex;align-items:center;justify-content:center;gap:var(--s1);margin-bottom:var(--s1)}
.countdown-unit{display:flex;flex-direction:column;align-items:center;min-width:64px}
.countdown-num{font-family:var(--mono);font-size:var(--text-2xl);font-weight:700;color:var(--red);line-height:1}
.countdown-sub{font-size:var(--text-xs);color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:var(--ls-label);margin-top:4px}
.countdown-sep{font-family:var(--mono);font-size:var(--text-2xl);font-weight:700;color:rgba(220,38,38,0.3);padding-bottom:18px}
.countdown-subtext{font-size:var(--text-xs);color:rgba(255,255,255,0.7);font-style:italic}

/* Trust strip */
.trust-strip{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin:var(--s5) auto 0;padding:var(--s3) var(--s4);background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:var(--radius);max-width:720px}
.trust-item{display:flex;flex-direction:column;align-items:center;gap:2px}
.trust-num{font-family:var(--mono);font-size:var(--text-xl);font-weight:700;color:var(--yellow)}
.trust-label{font-size:var(--text-xs);color:rgba(255,255,255,0.45)}
.trust-divider{width:1px;height:40px;background:rgba(255,255,255,0.08)}
@media (max-width:680px){.trust-strip{flex-wrap:wrap;gap:var(--s3) var(--s4);padding:var(--s3) var(--s3)}.trust-item{min-width:calc(50% - 32px)}.trust-divider{display:none}}

/* Urgency pills row */
.urgency-pills{display:flex;align-items:center;justify-content:center;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s4)}
.urgency-pill-secondary{background:rgba(96,165,250,0.1);border-color:rgba(96,165,250,0.35);color:#60A5FA}
.urgency-pill-secondary .u-dot-dora{background:#60A5FA}

/* Who section — dark glass cards so axe-core sees solid dark backgrounds throughout */
.who-section{max-width:960px;margin:var(--s7) auto 0;padding:0 2rem}
.who-heading{font-size:var(--text-xl);font-weight:600;color:#EFEFEF;text-align:center;margin-bottom:var(--s5);letter-spacing:var(--ls-display)}
.who-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
.who-card{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.10);border-radius:var(--radius-lg);padding:var(--s4)}
.who-icon{font-size:var(--text-2xl);margin-bottom:var(--s2);color:var(--yellow)}
.who-title{font-size:var(--text-base);font-weight:600;color:#EBEBEB;margin-bottom:var(--s1)}
.who-desc{font-size:var(--text-sm);color:#BCBCBC;line-height:var(--lh-reading)}

/* Diff section — solid light text so axe-core detects correct contrast on dark body bg */
.diff-section{max-width:960px;margin:var(--s7) auto 0;padding:0 2rem}
.diff-heading{font-size:var(--text-xl);font-weight:600;color:#EFEFEF;text-align:center;margin-bottom:var(--s5);letter-spacing:var(--ls-display)}
.diff-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-lg)}
.diff-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.diff-table thead{background:#0D0D0D}
.diff-table th{padding:var(--s2) var(--s3);text-align:left;font-size:var(--text-xs);font-weight:600;color:#ADADAD;text-transform:uppercase;letter-spacing:var(--ls-label)}
.diff-table th.diff-juro{color:var(--yellow)}
.diff-table td{padding:var(--s2) var(--s3);border-top:1px solid rgba(255,255,255,0.08);color:#CACACA}
.diff-table td.diff-juro{color:#EFEFEF;font-weight:600;background:rgba(245,196,0,0.10)}
.diff-table td:first-child{font-weight:500;color:#ADADAD}

@media(max-width:680px){
  .urgency-pills{flex-direction:column;gap:var(--s1)}
}


/* Regulatory sources */
.reg-sources{max-width:720px;margin:var(--s4) auto 0;text-align:center}
.reg-sources-label{font-family:var(--mono);font-size:var(--text-xs);color:rgba(255,255,255,0.55);text-transform:uppercase;letter-spacing:var(--ls-label);margin-bottom:var(--s1)}
.reg-sources-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;font-size:var(--text-xs)}
.reg-sources-links a{display:inline-block;padding:4px 8px;color:rgba(255,255,255,0.5);text-decoration:none;transition:color 0.2s}
.reg-sources-links a:hover{color:var(--yellow)}
.reg-sources-sep{color:rgba(255,255,255,0.15)}
@media(max-width:680px){.reg-sources-links{gap:8px}.reg-sources-links a{font-size:10px;padding:4px 6px}}

/* Posture Score panel — Tier 1 surface scan headline metric.
   Anti-overclaim discipline: scope above, denominator + rule pack + scanned date visible alongside the number.
   Contract: juro-platform/contracts/posture-score.md. */
.posture-score-panel{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--s3) var(--s4);margin-bottom:var(--s4)}
.posture-score-panel .ps-scope{font-size:var(--text-xs);font-family:var(--mono);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--gray-500);margin-bottom:var(--s2);line-height:var(--lh-snug)}
.posture-score-panel .ps-body{display:flex;align-items:center;gap:var(--s4)}
.posture-score-panel .ps-score-block{display:flex;align-items:baseline;gap:6px;flex-shrink:0}
.posture-score-panel .ps-score{font-family:var(--mono);font-size:var(--text-3xl);font-weight:600;line-height:1;color:var(--gray-900)}
.posture-score-panel.ps-warn .ps-score{color:var(--amber)}
.posture-score-panel.ps-fail .ps-score{color:var(--red)}
.posture-score-panel.ps-pass .ps-score{color:var(--green)}
.posture-score-panel .ps-score-out-of{font-family:var(--mono);font-size:var(--text-lg);color:var(--gray-400);font-weight:500}
.posture-score-panel .ps-meta{display:flex;flex-direction:column;gap:4px;min-width:0}
.posture-score-panel .ps-brand{font-size:var(--text-base);font-weight:600;color:var(--gray-900);line-height:var(--lh-tight)}
.posture-score-panel .ps-denom{font-size:var(--text-sm);color:var(--gray-700);font-family:var(--mono);line-height:var(--lh-snug)}
.posture-score-panel .ps-pack{font-size:var(--text-xs);color:var(--gray-500);font-family:var(--mono);line-height:var(--lh-snug);overflow:hidden;text-overflow:ellipsis}
@media (max-width:680px){.posture-score-panel .ps-body{flex-direction:column;align-items:flex-start;gap:var(--s2)}}

/* Hero results — scan output rendered inside the dark hero, above stakes/countdown/trust */
.hero-results{max-width:1120px;margin:var(--s6) auto 0;padding:0 0 var(--s5);text-align:left}
.results-header{max-width:1120px;margin:0 auto var(--s4);text-align:left;display:flex;flex-direction:column;gap:6px}
.results-eyebrow{font-family:var(--mono);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--yellow)}
.results-headline{font-size:var(--text-xl);font-weight:600;color:#fff;letter-spacing:var(--ls-display);line-height:var(--lh-tight);margin:0}
.hero-results .scan-target-bar{font-size:var(--text-sm)}
.hero-results .scan-time{font-size:var(--text-sm)}
@media(max-width:860px){.hero-results{padding:0 0 var(--s4)}.results-headline{font-size:var(--text-lg)}} (feat(homepage): render scan report above DPDP timer; add seconds to timer)

/* ── Scan Progress Pipeline + Fact Card ── */
.scan-progress { max-width: 640px; margin: 28px auto 0; display: none; }
.step-pipeline { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 16px; }
.step { display: flex; flex-direction: column; align-items: center; gap: 4px; font-family: var(--mono); font-size: 10px; color: rgba(255,255,255,0.3); min-width: 60px; }
.step.is-active { color: var(--yellow); }
.step.is-done { color: rgba(255,255,255,0.6); }
.step-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.15); }
.step.is-active .step-dot { background: var(--yellow); box-shadow: 0 0 6px var(--yellow); }
.step.is-done .step-dot { background: rgba(255,255,255,0.4); }
.step-label { white-space: nowrap; }
.step-connector { flex: 1; height: 1px; background: rgba(255,255,255,0.1); margin: 4px 4px 0; }
.fact-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--radius); padding: 12px 16px; margin-top: 12px; }
.fact-prefix { font-family: var(--mono); font-size: var(--text-xs); color: var(--yellow); text-transform: uppercase; letter-spacing: var(--ls-label); margin-bottom: 4px; }
.fact-text { font-family: var(--sans); font-size: var(--text-sm); color: rgba(255,255,255,0.75); line-height: var(--lh-reading); margin-bottom: 8px; transition: opacity 0.4s ease; }
.fact-source { font-family: var(--mono); font-size: 10px; color: rgba(255,255,255,0.45); text-decoration: underline; display: block; margin-bottom: 2px; transition: color 0.2s; }
.fact-source:hover { color: var(--yellow); }
.fact-detail { font-family: var(--mono); font-size: 10px; color: rgba(255,255,255,0.3); }

/* Scan modal — reuse notice-overlay/notice-card dark theme */
.scan-notice-card {
  max-width: 560px;
  width: 100%;
}
.scan-notice-card .scan-progress {
  margin-top: 1.5rem;
}
.scan-notice-card .step {
  min-width: 0;
  flex: 0 0 auto;
}
.scan-notice-card .step-label {
  color: rgba(255,255,255,0.7);
  font-size: 9px;
  font-family: var(--sans);
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  text-align: center;
}
.scan-notice-card .step.is-active .step-label {
  color: #fff;
}
.scan-notice-card .step.is-done .step-label {
  color: rgba(255,255,255,0.4);
}
.scan-notice-card .step-dot {
  background: rgba(255,255,255,0.2);
}
.scan-notice-card .step.is-active .step-dot {
  background: var(--yellow);
  box-shadow: 0 0 8px var(--yellow);
}
.scan-notice-card .step.is-done .step-dot {
  background: var(--green);
  box-shadow: 0 0 6px rgba(5,150,105,0.5);
}
.scan-notice-card .step-connector {
  background: rgba(255,255,255,0.1);
}
.scan-notice-card .progress-status {
  color: rgba(255,255,255,0.7);
  font-family: var(--mono);
  font-size: var(--text-xs);
}
.scan-notice-card .progress-status::before {
  color: var(--yellow);
}
.scan-notice-card .fact-card {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.08);
  margin-top: 1.5rem;
}
.scan-notice-card .fact-prefix {
  color: var(--yellow);
  font-family: var(--mono);
  font-size: var(--text-xs);
}
.scan-notice-card .fact-text {
  color: rgba(255,255,255,0.92);
  font-size: var(--text-sm);
  line-height: var(--lh-reading);
}
.scan-notice-card .fact-detail {
  color: rgba(255,255,255,0.6);
  font-size: var(--text-xs);
}
.scan-notice-card .fact-source {
  color: rgba(255,255,255,0.5);
}
.scan-notice-card .fact-source:hover {
  color: rgba(255,255,255,0.75);
}

/* Unified dark modal: override white modal-card to match notice-card dark theme */
.modal-overlay {
  background: rgba(0,0,0,0.72);
  backdrop-filter: blur(4px);
}
.modal-card {
  background: #0F0F10;
  border: 1px solid rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.92);
  box-shadow: 0 24px 64px rgba(0,0,0,0.55);
}
.modal-eyebrow {
  color: var(--yellow) !important;
}
.modal-title {
  color: #fff !important;
}
.modal-sub {
  color: rgba(255,255,255,0.65) !important;
}
.modal-sub a {
  color: rgba(255,255,255,0.55) !important;
}
.modal-sub a:hover {
  color: rgba(255,255,255,0.75) !important;
}
.modal-field label {
  color: rgba(255,255,255,0.7) !important;
}
.modal-field input {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.15) !important;
  color: #fff !important;
}
.modal-field input::placeholder {
  color: rgba(255,255,255,0.3) !important;
}
.modal-field input:focus {
  border-color: var(--yellow) !important;
  box-shadow: 0 0 0 3px rgba(245,196,0,0.15) !important;
}
.modal-submit {
  background: var(--yellow) !important;
  color: var(--ink) !important;
}
.modal-submit:hover {
  background: var(--yellow-dark) !important;
}
.modal-submit:disabled {
  background: rgba(255,255,255,0.12) !important;
  color: rgba(255,255,255,0.4) !important;
}
.modal-success {
  color: rgba(255,255,255,0.7) !important;
}
.modal-success-tick {
  color: var(--green) !important;
}
.modal-dismiss {
  color: rgba(255,255,255,0.4) !important;
}
.modal-dismiss:hover {
  color: rgba(255,255,255,0.65) !important;
}

/* ── Download PDF button ── */
.download-pdf-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: 12px;
  padding: 4px 12px;
  background: transparent;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--gray-500);
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
  white-space: nowrap;
}
.download-pdf-btn:hover {
  border-color: var(--ink);
  color: var(--ink);
  background: var(--gray-100);
}

/* ── Print report (screen: hidden; print: only visible element) ── */
#printReport { display: none; }

/* ── Print styles ── */
@media print {
  @page { size: A4 portrait; margin: 0; }

  /* Nuclear hide: all screen UI disappears */
  html { background: #fff !important; }
  body > *:not(#printReport) { display: none !important; }

  #printReport {
    display: block !important;
    font-family: 'IBM Plex Sans', -apple-system, sans-serif;
    font-size: 10.5pt;
    line-height: 1.55;
    color: #0A0A0A;
    background: #fff;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ── Nav logo band ── */
  .prh {
    background: #0A0A0A;
    color: #fff;
    padding: 10mm 14mm;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8mm;
    break-inside: avoid;
    border-bottom: 2px solid #F5C400;
  }
  .prh-logo {
    display: flex;
    align-items: center;
    gap: 3mm;
    flex-shrink: 0;
  }
  .prh-icon {
    width: 8mm;
    height: 8mm;
    flex-shrink: 0;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .prh-brand {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 16pt;
    font-weight: 600;
    letter-spacing: -0.03em;
    color: #fff;
    line-height: 1;
  }
  .prh-dot { color: #F5C400; }
  .prh-product {
    font-family: 'IBM Plex Sans', sans-serif;
    font-size: 8pt;
    font-weight: 500;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding-left: 3mm;
    border-left: 1px solid rgba(255,255,255,0.15);
    margin-left: 1mm;
    line-height: 1.2;
  }
  .prh-right {
    text-align: right;
    flex-shrink: 0;
  }
  .prh-date {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 8pt;
    color: rgba(255,255,255,0.6);
    margin-bottom: 1.5mm;
  }
  .prh-scope {
    font-size: 7pt;
    color: rgba(255,255,255,0.3);
    text-transform: uppercase;
    letter-spacing: 0.09em;
  }

  /* ── Report heading section ── */
  .prh-heading {
    padding: 9mm 14mm 8mm;
    background: #F7F7F5;
    border-bottom: 1px solid #E5E5E5;
    break-inside: avoid;
  }
  .prh-heading-eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 6.5pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: #A3A3A3;
    margin-bottom: 2.5mm;
  }
  .prh-domain {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 22pt;
    font-weight: 600;
    color: #0A0A0A;
    letter-spacing: -0.03em;
    overflow-wrap: break-word;
    word-break: break-all;
    line-height: 1.1;
    margin-bottom: 2mm;
  }
  .prh-tagline {
    font-size: 9pt;
    color: #737373;
    font-style: italic;
    font-family: 'IBM Plex Sans', sans-serif;
  }

  /* ── Summary section ── */
  .pr-summary {
    padding: 8mm 14mm 6mm;
    border-bottom: 1px solid #E5E5E5;
  }
  .pr-summary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5mm;
  }
  .pr-box {
    border: 1px solid #E5E5E5;
    border-radius: 4pt;
    padding: 5mm;
  }
  .pr-box-title {
    font-size: 6.5pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #A3A3A3;
    margin-bottom: 4mm;
    padding-bottom: 2.5mm;
    border-bottom: 1px solid #F0F0F0;
  }

  /* Score box */
  .pr-score-num {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 38pt;
    font-weight: 600;
    color: #0A0A0A;
    line-height: 1;
    margin-bottom: 1mm;
  }
  .pr-score-denom {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9pt;
    color: #A3A3A3;
    margin-bottom: 3mm;
  }
  .pr-score-brand {
    font-size: 8pt;
    font-weight: 600;
    color: #404040;
    margin-bottom: 1.5mm;
  }
  .pr-score-detail {
    font-size: 7pt;
    color: #737373;
    line-height: 1.4;
  }

  /* Posture box */
  .pr-posture-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2.5mm 0;
    border-bottom: 1px solid #F5F5F5;
    font-size: 8.5pt;
  }
  .pr-posture-row:last-child { border-bottom: none; }
  .pr-posture-label { color: #404040; }
  .pr-posture-fail .pr-posture-status {
    color: #DC2626;
    font-weight: 700;
    font-size: 7.5pt;
  }
  .pr-posture-pass .pr-posture-status {
    color: #059669;
    font-weight: 700;
    font-size: 7.5pt;
  }

  /* Counts box */
  .pr-count-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2.5mm 0;
    border-bottom: 1px solid #F5F5F5;
    font-size: 8.5pt;
  }
  .pr-count-row:last-child { border-bottom: none; }
  .pr-count-total {
    font-weight: 700;
    margin-top: 1mm;
    padding-top: 3mm;
    border-top: 1.5px solid #E5E5E5;
    border-bottom: none;
  }
  .pr-count-num {
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 700;
    font-size: 9.5pt;
  }
  .pr-sev-critical { color: #DC2626; font-weight: 600; }
  .pr-sev-high { color: #B45309; font-weight: 600; }
  .pr-sev-medium { color: #737373; font-weight: 600; }

  /* ── Findings section ── */
  .pr-findings {
    padding: 7mm 14mm 0;
  }
  .pr-findings-label {
    font-size: 6.5pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: #A3A3A3;
    margin-bottom: 5mm;
    padding-bottom: 2.5mm;
    border-bottom: 1.5px solid #0A0A0A;
  }

  /* Finding card */
  .pr-finding {
    border: 1px solid #E5E5E5;
    border-radius: 4pt;
    margin-bottom: 4.5mm;
    break-inside: avoid;
    page-break-inside: avoid;
    overflow: hidden;
  }
  .pr-finding-critical { border-left: 3.5pt solid #DC2626; }
  .pr-finding-high     { border-left: 3.5pt solid #D97706; }
  .pr-finding-medium   { border-left: 3.5pt solid #A3A3A3; }
  .pr-finding-info     { border-left: 3.5pt solid #60A5FA; }

  .pr-finding-head {
    padding: 3.5mm 5mm;
    background: #F9F9F9;
    border-bottom: 1px solid #E5E5E5;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 3mm;
    align-items: baseline;
  }
  .pr-finding-id {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 7.5pt;
    font-weight: 700;
    color: #A3A3A3;
    white-space: nowrap;
  }
  .pr-finding-title {
    font-size: 9.5pt;
    font-weight: 600;
    color: #0A0A0A;
    line-height: 1.35;
  }
  .pr-finding-sev {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 7pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
  .pr-finding-critical .pr-finding-sev { color: #DC2626; }
  .pr-finding-high     .pr-finding-sev { color: #B45309; }
  .pr-finding-medium   .pr-finding-sev { color: #737373; }
  .pr-finding-info     .pr-finding-sev { color: #3B82F6; }

  .pr-finding-body { padding: 4mm 5mm; }
  .pr-finding-desc {
    font-size: 9pt;
    color: #404040;
    line-height: 1.55;
    margin-bottom: 3mm;
  }
  .pr-finding-impact {
    font-size: 8.5pt;
    color: #404040;
    line-height: 1.5;
    margin-bottom: 3mm;
    padding: 3mm 4mm;
    border-left: 2.5pt solid #F5C400;
    background: #FEFDF0;
  }
  .pr-finding-impact strong { font-weight: 700; color: #0A0A0A; }
  .pr-finding-rule {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 7.5pt;
    color: #737373;
    margin-bottom: 3mm;
    padding: 2mm 3mm;
    background: #F5F5F5;
    border-radius: 2pt;
  }
  .pr-finding-rem {
    background: #F5F5F5;
    border-radius: 3pt;
    padding: 3mm 4mm;
    font-size: 9pt;
    color: #404040;
    line-height: 1.5;
  }
  .pr-rem-label {
    font-size: 7pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #0A0A0A;
    margin-bottom: 1.5mm;
    display: block;
  }
  .pr-rem-text { display: block; }

  /* ── Disclaimer footer ── */
  .pr-disclaimer {
    padding: 5mm 14mm;
    font-size: 7pt;
    color: #A3A3A3;
    border-top: 1px solid #E5E5E5;
    margin-top: 7mm;
    text-align: center;
    letter-spacing: 0.03em;
  }

  .pr-no-findings {
    font-size: 9pt;
    color: #737373;
    padding: 4mm 0;
  }
}

/* ────────────────────────────────────────────────
   Accessibility: contrast fixes
   All values below bring text on dark (#0A0A0A / #111111)
   backgrounds to ≥4.5:1 (WCAG AA). Opacity math:
     0.45 → ~2.7:1 FAIL | 0.65 → ~5.1:1 PASS
   ──────────────────────────────────────────────── */

/* trust strip label: 0.45 → 0.72 (4.6:1) */
.trust-label { color: rgba(255,255,255,0.72); }

/* scan progress fact card source/detail link: 0.45 → 0.72 */
.fact-source { color: rgba(255,255,255,0.72); }
.fact-detail { color: rgba(255,255,255,0.55); }

/* site footer: 0.55 → 0.72 */
.site-footer, .site-footer a { color: rgba(255,255,255,0.72); }

/* header nav framework tags: 0.55 → 0.72 */
.framework-tag { color: rgba(255,255,255,0.72); }

/* hero "— OR —" divider text: 0.6 → 0.72 */
.hero-or { color: rgba(255,255,255,0.72); }

/* alt-option subtitle: 0.55 → 0.72 */
.alt-option-sub { color: rgba(255,255,255,0.72); }

/* cta eyebrow: 0.62 → 0.75 */
.cta-text .cta-eyebrow { color: rgba(255,255,255,0.75); }

/* gray-500 (#737373) is 4.29:1 on white — fails WCAG AA (need ≥4.5:1).
   Override to #5C5C5C which is 5.74:1 on white. */
.how-step-desc { color: #5C5C5C; }
.rule-chip { color: #5C5C5C; }

/* countdown-num: --red (#DC2626) on dark strip bg (~#170C0C) = 3.97:1 → FAIL.
   Boost to #FF4444 which gives 5.63:1 on the same bg. */
.countdown-num { color: #FF4444; }

/* ────────────────────────────────────────────────
   Mobile-first enhancements
   Target: high-end phones (iPhone 15 Pro 393px,
           Samsung S24 360px) and up.
   Strategy: override desktop-first base rules with
   mobile-optimised values; tablet+ restores where
   needed via min-width guards.
   ──────────────────────────────────────────────── */

/* iOS dynamic viewport — prevents bottom-bar overlap */
@supports (min-height: 100dvh) {
  body { min-height: 100dvh; }
}

/* iOS safe-area insets for notch / home indicator */
@supports (padding: env(safe-area-inset-bottom)) {
  .header {
    padding-left: max(1.25rem, env(safe-area-inset-left));
    padding-right: max(1.25rem, env(safe-area-inset-right));
  }
  .site-footer {
    padding-bottom: calc(var(--s5) + env(safe-area-inset-bottom));
  }
}

/* ── Mobile nav: hamburger + slide-down drawer ── */
.nav-hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  flex-shrink: 0;
}
.nav-hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: rgba(255,255,255,0.85);
  border-radius: 1px;
}
.mobile-nav-drawer {
  display: none;
  position: fixed;
  top: 56px;
  left: 0;
  right: 0;
  background: var(--ink);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: var(--s2) 1.25rem;
  z-index: 99;
  flex-direction: column;
  gap: 0;
}
.mobile-nav-drawer.is-open { display: flex; }
.drawer-link {
  font-size: var(--text-sm);
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  padding: var(--s2) 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  display: block;
}
.drawer-link:last-child { border-bottom: none; }
.drawer-link:hover { color: #fff; }

/* ── Header: show hamburger; hide desktop nav on narrow viewports ── */
@media (max-width:640px) {
  .header { padding: 0 1.25rem; }
  .header-right { display: none; }
  .nav-hamburger { display: flex; }
}

/* ── Hero: scale heading + padding for phone screens ── */
@media (max-width:640px) {
  .hero { padding: var(--s5) 1.25rem 0; }
  .hero-title { font-size: clamp(28px, 8vw, 36px); }
  .hero-sub { font-size: var(--text-base); margin-bottom: var(--s4); }
}

/* ── Scan input: prevent iOS auto-zoom (≥16px) + full-width button ── */
@media (max-width:600px) {
  #urlInput { font-size: 16px; }
  .scan-input-wrap {
    flex-direction: column;
    border-radius: var(--radius-lg);
    overflow: visible;
    background: transparent;
    border: none;
    gap: 10px;
  }
  .scan-protocol { display: none; }
  #urlInput {
    border-radius: var(--radius-lg);
    border: 1.5px solid rgba(255,255,255,0.2);
    background: #fff;
    padding: 14px;
    width: 100%;
  }
  .scan-btn {
    border-radius: var(--radius-lg);
    width: 100%;
    padding: 16px;
    font-size: var(--text-base);
    min-height: 52px;
  }
  .consent-check { font-size: var(--text-xs); }
  .scan-input-wrap:focus-within { box-shadow: none; border: none; }
}

/* ── Countdown: 2×2 grid on very narrow phones (<420px) ── */
@media (max-width:420px) {
  .countdown-timer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s2);
    justify-items: center;
  }
  .countdown-sep { display: none; }
  .countdown-unit { min-width: 0; width: 100%; }
  .countdown-num { font-size: 32px; }
}

/* ── Posture score: tighter on phones ── */
@media (max-width:480px) {
  .posture-score-panel { padding: var(--s2) var(--s3); }
  .posture-score-panel .ps-score { font-size: clamp(40px, 12vw, 64px); }
}

/* ── Scan modal: full-screen on phones ── */
@media (max-width:600px) {
  .scan-notice-card { max-width: 100%; }
  .notice-card { padding: var(--s3); }
  .step-pipeline { gap: 2px; }
  .step { min-width: 0; flex: 1; }
  .step-label { font-size: 8px; }
}

/* ── FAQ tap targets: ensure 44px minimum ── */
@media (max-width:640px) {
  .faq-question { min-height: 44px; padding: 14px var(--s3); }
}

/* ── Footer: stack on narrow screens ── */
@media (max-width:480px) {
  .site-footer { flex-direction: column; align-items: flex-start; gap: var(--s1); }
}

/* ── Scan log (de-vibe: replaces 3-card How It Works grid) ── */
.scan-log {
  background: #0D0D0D;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-lg);
  padding: var(--s3) var(--s4);
  font-family: var(--mono);
  font-size: var(--text-xs);
  overflow-x: hidden;
  margin-bottom: var(--s3);
  width: 100%;
  box-sizing: border-box;
}
.scan-log-header {
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  letter-spacing: var(--ls-label);
  margin-bottom: var(--s2);
  padding-bottom: var(--s2);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.log-line {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 3px 0;
  color: rgba(255,255,255,0.65);
  line-height: 1.6;
  min-width: 0;
}
.log-line--done {
  color: var(--green);
}
.log-ts {
  color: rgba(255,255,255,0.5);
  min-width: 72px;
  flex-shrink: 0;
}
.log-icon {
  min-width: 14px;
  flex-shrink: 0;
}
.log-icon-run { color: rgba(255,255,255,0.45); }
.log-icon-warn { color: var(--amber); }
.log-icon-ok { color: var(--green); }
.log-msg {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}
.log-tag {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 99px;
  white-space: nowrap;
  flex-shrink: 0;
}
.log-tag--pre {
  background: rgba(220,38,38,0.15);
  color: #f87171;
  border: 1px solid rgba(220,38,38,0.3);
}

.how-note {
  font-size: var(--text-xs);
  color: rgba(255,255,255,0.45);
  line-height: var(--lh-reading);
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--s5);
}
.stat-cite {
  color: rgba(255,255,255,0.55);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.stat-cite:hover { color: var(--yellow); }
.stat-source {
  font-style: normal;
  color: rgba(255,255,255,0.55);
}

/* ── Diff callout — pull quote above comparison table ── */
.diff-callout {
  font-size: var(--text-lg);
  color: rgba(255,255,255,0.85);
  line-height: var(--lh-snug);
  border-left: 3px solid var(--yellow);
  padding: var(--s2) 0 var(--s2) var(--s3);
  margin: 0 0 var(--s5);
  font-style: normal;
  max-width: 780px;
}

@media (max-width:680px) {
  .scan-log { padding: var(--s2) var(--s2); font-size: 10px; }
  .log-ts { min-width: 52px; font-size: 9px; }
  .log-icon { min-width: 12px; font-size: 10px; }
  .diff-callout { font-size: var(--text-base); }
  .how-note { font-size: 11px; padding: 0 var(--s1); }
}
