Spaces:
Sleeping
Sleeping
| :root{ | |
| --ink:#1B2430; --ink-soft:#4A5568; --paper:#F4F6F8; --panel:#FFFFFF; | |
| --line:#D7DDE3; --teal:#0F9B8E; --teal-soft:#E4F5F3; | |
| --indigo:#3A4FC2; --indigo-soft:#EAEDFB; --amber:#B8720B; --amber-soft:#FBF0DE; | |
| --danger:#C0392B; --danger-soft:#FBE9E7; | |
| --radius:12px; | |
| } | |
| *{box-sizing:border-box;} | |
| @media (prefers-reduced-motion: reduce){ *{animation-duration:0.001ms ; transition-duration:0.001ms ;} } | |
| body{ | |
| margin:0; background:var(--paper); color:var(--ink); | |
| font-family:'IBM Plex Sans',sans-serif; line-height:1.55; font-size:17px; | |
| } | |
| .wrap{max-width:640px; margin:0 auto; padding:28px 20px 60px;} | |
| h1,h2,h3{font-family:'Space Grotesk',sans-serif; font-weight:600;} | |
| h1{font-size:1.8rem; margin:0 0 6px;} | |
| h2{font-size:1.3rem;} | |
| .sub{color:var(--ink-soft); margin:0 0 24px; font-size:0.98rem;} | |
| .badge{ | |
| display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; | |
| text-transform:uppercase; letter-spacing:0.08em; color:var(--amber); | |
| background:var(--amber-soft); border:1px solid #ECD8AE; padding:4px 10px; border-radius:999px; | |
| margin-bottom:16px; | |
| } | |
| .card{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:26px; margin-bottom:16px;} | |
| .hidden{display:none ;} | |
| /* ---- Consent / demographics form ---- */ | |
| .field-label{display:block; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft); margin:18px 0 8px;} | |
| .field-input{width:100%; padding:10px 12px; border:1.5px solid var(--line); border-radius:8px; font-family:'IBM Plex Sans',sans-serif; font-size:0.95rem; background:#fff; color:var(--ink);} | |
| .field-input:focus-visible{outline:3px solid var(--indigo); outline-offset:2px;} | |
| .radio-group{display:flex; flex-wrap:wrap; gap:8px;} | |
| .radio-pill{position:relative;} | |
| .radio-pill input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer;} | |
| .radio-pill label{ | |
| display:block; padding:9px 16px; border:1.5px solid var(--line); border-radius:999px; | |
| font-size:0.92rem; cursor:pointer; transition:all 0.15s ease; user-select:none; | |
| } | |
| .radio-pill input:checked + label{background:var(--ink); color:#fff; border-color:var(--ink);} | |
| .radio-pill input:focus-visible + label{outline:3px solid var(--indigo); outline-offset:2px;} | |
| .consent-list{color:var(--ink-soft); font-size:0.94rem; padding-left:20px; margin:0 0 6px;} | |
| .consent-list li{margin-bottom:8px;} | |
| .consent-list strong{color:var(--ink);} | |
| .consent-check{display:flex; align-items:flex-start; gap:10px; font-size:0.92rem; margin:20px 0; cursor:pointer;} | |
| .consent-check input{margin-top:3px; width:18px; height:18px; accent-color:var(--teal);} | |
| .big-btn{ | |
| font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:1rem; | |
| background:var(--ink); color:#fff; border:none; border-radius:10px; | |
| padding:16px 24px; cursor:pointer; width:100%; margin-top:8px; | |
| } | |
| .big-btn:hover{background:#000;} | |
| .big-btn:disabled{opacity:0.5; cursor:not-allowed;} | |
| .big-btn:focus-visible{outline:3px solid var(--indigo); outline-offset:3px;} | |
| /* ---- Progress + prompt ---- */ | |
| .progress-row{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px;} | |
| .progress-label{font-family:'IBM Plex Mono',monospace; font-size:0.75rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.06em; white-space:nowrap;} | |
| .progress-bar{height:4px; background:var(--line); border-radius:2px; overflow:hidden; flex:1; margin-left:16px;} | |
| .progress-fill{height:100%; background:var(--teal); border-radius:2px; transition:width 0.4s ease;} | |
| .prompt-eyebrow{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--teal); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:10px;} | |
| .prompt-text{font-family:'Space Grotesk',sans-serif; font-size:1.3rem; font-weight:600; margin:0 0 26px; line-height:1.3;} | |
| /* ---- Recording control -- a real custom control, not a framework's default ---- */ | |
| .rec-zone{display:flex; flex-direction:column; align-items:center; gap:16px; padding:24px 0;} | |
| .rec-btn{ | |
| width:84px; height:84px; border-radius:50%; border:none; cursor:pointer; | |
| background:var(--ink); color:#fff; font-size:1.6rem; | |
| display:flex; align-items:center; justify-content:center; | |
| transition:transform 0.15s ease, background 0.2s ease; | |
| } | |
| .rec-btn:hover{transform:scale(1.05);} | |
| .rec-btn:focus-visible{outline:3px solid var(--indigo); outline-offset:3px;} | |
| .rec-btn.recording{background:var(--danger); animation:pulse 1.1s infinite;} | |
| .rec-btn:disabled{opacity:0.5; cursor:not-allowed; transform:none;} | |
| @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(192,57,43,0.4);} 70%{box-shadow:0 0 0 14px rgba(192,57,43,0);} 100%{box-shadow:0 0 0 0 rgba(192,57,43,0);}} | |
| .rec-hint{font-size:0.85rem; color:var(--ink-soft);} | |
| .analyzing{display:flex; align-items:center; gap:10px; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; font-size:0.85rem; padding:24px 0;} | |
| .spinner{width:16px; height:16px; border:2px solid var(--line); border-top-color:var(--indigo); border-radius:50%; animation:spin 0.7s linear infinite;} | |
| @keyframes spin{to{transform:rotate(360deg);}} | |
| /* ---- Prediction + legend ---- */ | |
| .prediction-box{background:var(--indigo-soft); border-radius:10px; padding:18px 20px; margin:18px 0; display:flex; flex-direction:column; gap:14px;} | |
| .prediction-field{display:flex; flex-direction:column; gap:4px;} | |
| .prediction-field + .prediction-field{border-top:1px solid rgba(58,79,194,0.15); padding-top:12px;} | |
| .prediction-label{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--indigo);} | |
| .prediction-value{font-family:'IBM Plex Mono',monospace; font-size:1.05rem; font-weight:600; color:var(--ink);} | |
| .prediction-value.empty{color:var(--ink-soft); font-weight:400; font-style:italic;} | |
| .timing-caption{color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; font-size:0.82rem; font-style:italic; margin:6px 0 0;} | |
| .legend-box{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 20px; margin:18px 0;} | |
| .legend-title{font-weight:600; margin-bottom:10px;} | |
| .legend-item{margin-bottom:8px; font-size:0.95rem;} | |
| .legend-item:last-child{margin-bottom:0;} | |
| /* ---- Judgement ---- */ | |
| .judgement-block{margin:20px 0;} | |
| .judgement-question{font-weight:500; margin-bottom:10px;} | |
| /* ---- UMUX / feedback ---- */ | |
| .umux-item{margin-bottom:22px;} | |
| .umux-question{font-size:0.98rem; margin-bottom:10px;} | |
| .umux-scale{display:flex; gap:6px; flex-wrap:wrap;} | |
| .umux-scale .radio-pill label{padding:8px 14px; font-size:0.88rem;} | |
| .umux-anchors{display:flex; justify-content:space-between; font-size:0.76rem; color:var(--ink-soft); margin-top:4px;} | |
| .start-screen,.end-screen{text-align:center; padding:20px 0;} | |
| .error-msg{ | |
| background:var(--danger-soft); color:var(--danger); border:1px solid #F0C5BF; | |
| border-radius:8px; padding:12px 16px; font-size:0.9rem; margin-bottom:16px; | |
| } | |