:root{--bg: #F2F4F3;--bg-panel: #F9F9FC;--bg-card: #FFFFFF;--bg-card-hover: #F9F9FC;--accent: #005EB8;--accent-dark: #005EB8;--accent-hover: #005EB8;--success: #005EB8;--error: #BA1A1A;--warning: #D29922;--text-primary: #1A1C1E;--text-secondary:#424752;--text-muted: #727783;--border: #C2C6D4;--border-hover: #727783;--font-family: "Inter", "Noto Sans TC", sans-serif;--ui-font-size: 18px;--ui-font-scale: 1;--ui-font-weight: 400;--ui-font-medium-weight: 600;--ui-font-heading-weight: 700;--radius-s: 8px;--radius-m: 8px;--radius-l: 16px;--radius-xl: 24px;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--shadow-ambient: 0px 4px 20px rgba(0, 94, 184, .08)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text-primary);font-family:var(--font-family);font-size:var(--ui-font-size);font-weight:var(--ui-font-weight);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-layout{font-size:var(--ui-font-size);font-weight:var(--ui-font-weight)}body[data-ui-font-bold=true] .app-layout :where(a,button,input,label,li,p,select,small,span,strong,textarea,td,th,h1,h2,h3,h4){font-weight:800!important}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.app-layout{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--bg)}.app-loading{width:100vw;height:100vh;background:var(--bg)}.app-footer{display:flex;justify-content:center;gap:8px;padding:6px 12px 8px;font-size:12px;color:var(--text-muted);background:var(--bg)}.app-footer a{color:var(--accent);text-decoration:none}.app-footer a:hover{text-decoration:underline}.page-content{flex:1;overflow-y:auto;padding:48px 24px;display:flex;flex-direction:column;align-items:center;width:100%}.page-content>*{max-width:1280px;width:100%}.page-content>.config-modal-overlay{max-width:none}@media(max-width:768px){.page-content{padding:24px 20px}}.navbar{display:flex;align-items:center;justify-content:center;height:64px;padding:0 48px;background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0;box-shadow:0 1px 4px #00000005;position:relative;z-index:100}.navbar-inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1440px}.navbar-toggle{display:none;background:none;border:none;color:var(--text-primary);cursor:pointer;padding:8px}.navbar-menu{display:flex;align-items:center;gap:24px;min-width:0}.navbar-tools{display:flex;align-items:center;gap:16px;min-width:0}.navbar-records{display:flex;align-items:center;gap:10px;max-width:340px;min-width:0}.navbar-download-btn{min-height:40px;padding:8px 14px;border-radius:var(--radius-m);flex:0 0 auto}.navbar-backup-reminder{display:block;flex:1 1 120px;min-width:150px;max-width:200px;color:var(--text-muted);font-size:12px;line-height:1.35;overflow-wrap:break-word}.navbar-overlay{display:none}@media(max-width:1120px){.navbar{padding:0 20px}.navbar-toggle{display:flex;align-items:center;justify-content:center;z-index:102}.navbar-menu{position:fixed;top:0;right:-280px;width:280px;height:100vh;background:var(--bg-card);flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:80px 24px 24px;box-shadow:-4px 0 16px #0000001a;transition:right .3s ease;z-index:101;gap:32px}.navbar-menu.is-open{right:0}.navbar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100;backdrop-filter:none;-webkit-backdrop-filter:none}.navbar-links{flex-direction:column;width:100%}.navbar-tools{flex-direction:column;align-items:flex-start;gap:16px;width:100%}.navbar-records{flex-direction:column;align-items:flex-start;max-width:none;width:100%}.navbar-download-btn{width:100%}.navbar-backup-reminder{display:block;max-width:none;font-size:13px;line-height:1.5}.navbar-link{width:100%;text-align:left;padding:12px 16px}}.navbar.navbar-sidebar{padding:0 20px}.navbar.navbar-sidebar .navbar-toggle{display:flex;align-items:center;justify-content:center;z-index:102}.navbar.navbar-sidebar .navbar-menu{position:fixed;top:0;right:-280px;width:280px;height:100vh;background:var(--bg-card);flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:80px 24px 24px;box-shadow:-4px 0 16px #0000001a;transition:right .3s ease;z-index:101;gap:32px}.navbar.navbar-sidebar .navbar-menu.is-open{right:0}.navbar.navbar-sidebar .navbar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100;backdrop-filter:none;-webkit-backdrop-filter:none}.navbar.navbar-sidebar .navbar-menu .navbar-links{flex-direction:column;width:100%}.navbar.navbar-sidebar .navbar-menu .navbar-tools{flex-direction:column;align-items:flex-start;gap:16px;width:100%}.navbar.navbar-sidebar .navbar-menu .navbar-records{flex-direction:column;align-items:flex-start;max-width:none;width:100%}.navbar.navbar-sidebar .navbar-menu .navbar-download-btn{width:100%}.navbar.navbar-sidebar .navbar-menu .navbar-backup-reminder{display:block;max-width:none;font-size:calc(13px * var(--ui-font-scale));line-height:1.5}.navbar.navbar-sidebar .navbar-menu .navbar-link{width:100%;text-align:left;padding:12px 16px}.navbar-measure{position:fixed;top:-1000px;left:-1000px;z-index:-1;width:max-content;max-width:none;display:flex;align-items:center;gap:24px;visibility:hidden;pointer-events:none;white-space:nowrap}.navbar-measure-menu{display:flex;align-items:center;gap:24px}.navbar-brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;color:var(--accent-dark);text-decoration:none;letter-spacing:-.01em}.navbar-brand svg{color:var(--accent)}.font-setting-control{min-width:min(420px,100%);display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.font-setting-control .setting-value{min-width:64px;text-align:center}.typography-setting-control,.sound-setting-control{min-width:min(560px,100%)}.font-setting-control .btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.app-layout .navbar-brand{font-size:calc(20px * var(--ui-font-scale));font-weight:var(--ui-font-heading-weight)}.app-layout .navbar-link{font-size:calc(16px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .navbar-user{font-size:calc(14px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .navbar-backup-reminder,.app-layout .app-footer,.app-layout .key-hint,.app-layout .webgazer-calibration-message,.app-layout .webgazer-pl-message,.app-layout .webgazer-cancel-btn,.app-layout .acuity-intro-hint,.app-layout .webgazer-pl-badge,.app-layout .drawing-defense-upload-action,.app-layout .drawing-defense-background-card-header strong{font-size:calc(12px * var(--ui-font-scale))}.app-layout .btn{font-size:calc(16px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .btn-sm{font-size:calc(14px * var(--ui-font-scale))}.app-layout .btn-lg{font-size:calc(18px * var(--ui-font-scale))}.app-layout .input,.app-layout .training-number-input,.app-layout .voice-vocabulary-tools input{font-size:calc(14px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .user-selector select{font-size:calc(16px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .label{font-size:calc(13px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .section-title{font-size:calc(28px * var(--ui-font-scale));font-weight:var(--ui-font-heading-weight)}.app-layout .section-subtitle{font-size:calc(14px * var(--ui-font-scale))}.app-layout .settings-tab{font-size:calc(16px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .setting-info h3{font-size:calc(14px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}.app-layout .setting-info p{font-size:calc(11px * var(--ui-font-scale))}.app-layout .setting-value{font-size:calc(18px * var(--ui-font-scale));font-weight:var(--ui-font-heading-weight)}.app-layout .card-title{font-size:calc(24px * var(--ui-font-scale));font-weight:var(--ui-font-heading-weight)}.app-layout .card-desc,.app-layout .assessment-disclaimer,.app-layout .card-expand-hint,.app-layout .empty-state{font-size:calc(16px * var(--ui-font-scale))}.app-layout .card-meta{font-size:calc(14px * var(--ui-font-scale))}.app-layout .cal-info,.app-layout .drawing-defense-controls label,.app-layout .webgazer-calibration-steps ol,.app-layout .webgazer-fullscreen-stage .jspsych-btn,.app-layout .webgazer-pl-intro,.app-layout .drawing-defense-hud div,.app-layout .drawing-defense-hud .voice-listening-error{font-size:calc(13px * var(--ui-font-scale))}.app-layout .training-panel h1,.app-layout .acuity-intro h1{font-size:calc(36px * var(--ui-font-scale));font-weight:var(--ui-font-heading-weight)}.app-layout .training-panel p,.app-layout .voice-browser-notice p,.app-layout .acuity-intro p,.app-layout .webgazer-jspsych-instructions p{font-size:calc(17px * var(--ui-font-scale))}.app-layout .training-config-label,.app-layout .training-config-summary span,.app-layout .training-config-summary strong,.app-layout .training-setting-header p,.app-layout .training-setting-header>span,.app-layout .training-option-meta,.app-layout .voice-model-status,.app-layout .voice-start-validation p,.app-layout .voice-start-validation ul,.app-layout .voice-vocabulary-tools label,.app-layout .voice-vocabulary-warning,.app-layout .voice-volume-meter-label{font-size:calc(13px * var(--ui-font-scale))}.app-layout .training-config h1{font-size:calc(32px * var(--ui-font-scale));font-weight:var(--ui-font-heading-weight)}.app-layout .training-setting-header h2,.app-layout .training-option-title,.app-layout .drawing-defense-background-card-header,.app-layout .voice-start-validation strong,.app-layout .voice-browser-notice h2,.app-layout .webgazer-jspsych-instructions h2,.app-layout .webgazer-calibration-steps h4{font-size:calc(16px * var(--ui-font-scale));font-weight:var(--ui-font-heading-weight)}.app-layout .voice-vocabulary-row label{font-size:calc(15px * var(--ui-font-scale));font-weight:var(--ui-font-medium-weight)}@media(max-width:640px){.font-setting-control{width:100%;justify-content:flex-start}.font-setting-control .setting-value{min-width:0;text-align:left}.font-setting-control .btn{flex:1 1 auto}}.navbar-links{display:flex;flex:0 0 auto;gap:8px}.navbar-link{padding:8px 16px;border-radius:var(--radius-m);font-size:16px;font-weight:500;color:var(--text-secondary);text-decoration:none;white-space:nowrap;transition:all var(--transition-fast);border:1px solid transparent}.navbar-link:hover{color:var(--text-primary);background:var(--bg-panel)}.navbar-link.active{color:var(--accent-dark);background:#005eb814;font-weight:600}.navbar-user{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text-secondary)}.navbar-user-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-l);padding:32px;transition:all var(--transition-fast);cursor:pointer;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000005}.card:hover{background:var(--bg-card);border-color:var(--border-hover);transform:translateY(-2px);box-shadow:var(--shadow-ambient)}.card-active{border-color:var(--success)!important;background:var(--bg-card)!important;transform:translateY(-2px);box-shadow:var(--shadow-ambient)}.card-title{font-size:24px;font-weight:600;margin-bottom:12px;color:var(--text-primary);letter-spacing:-.01em}.card-desc{font-size:16px;color:var(--text-secondary);line-height:1.5}.card-icon{font-size:32px;margin-bottom:16px;color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;min-height:48px;border-radius:var(--radius-l);font-family:var(--font-family);font-size:16px;font-weight:600;cursor:pointer;border:2px solid transparent;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-ambient)}.btn-secondary{background:transparent;color:var(--success);border-color:var(--success)}.btn-secondary:hover{background:#005eb81a}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-panel);color:var(--text-primary)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#93000a}.btn-sm{padding:8px 16px;font-size:14px;min-height:40px;border-radius:var(--radius-m)}.btn-lg{padding:16px 32px;font-size:18px;min-height:56px}.input{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-m);padding:10px 16px;font-family:var(--font-family);font-size:14px;color:var(--text-primary);outline:none;transition:border-color var(--transition-fast);width:100%}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;display:block}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-m);margin-bottom:12px}.setting-info h3{font-size:14px;font-weight:600;margin-bottom:2px}.setting-info p{font-size:11px;color:var(--text-muted)}.setting-value{font-size:18px;font-weight:700;color:var(--accent)}.section-title{font-size:28px;font-weight:700;margin-bottom:8px;letter-spacing:.5px;text-align:center}.section-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:28px;text-align:center}.user-selector{display:flex;align-items:center;gap:12px;padding:16px 24px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-l);margin-bottom:32px;width:100%}.user-selector select{flex:1;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-m);padding:8px 32px 8px 12px;font-family:var(--font-family);font-size:16px;color:var(--text-primary);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238B949E' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.user-selector select:focus{border-color:var(--accent)}.training-grid,.assessment-grid{display:grid;grid-template-columns:1fr;gap:24px;width:100%}@media(min-width:768px){.training-grid,.assessment-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.training-grid,.assessment-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:520px){.color-settings-row,.shape-selector{grid-template-columns:1fr}}.module-config-panel{width:100%;max-width:800px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-l);padding:32px;margin-top:20px}.config-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:24px;background:#f2f4f3d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.config-modal-panel{max-height:min(82vh,760px);overflow-y:auto;margin-top:0;box-shadow:0 24px 72px #00000073}.config-section{margin-bottom:24px}.config-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:1.5px}.difficulty-selector{display:flex;flex-wrap:wrap;gap:10px}.diff-btn{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 12px;border-radius:var(--radius-m);border:2px solid var(--border);background:var(--bg-card);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family)}.diff-btn:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.diff-btn.active{background:#58a6ff1a;border-color:var(--accent)}.diff-btn-label{font-size:16px;font-weight:700;color:var(--text-primary)}.diff-btn.active .diff-btn-label{color:var(--accent)}.diff-btn-desc{font-size:11px;color:var(--text-muted)}.diff-btn.active .diff-btn-desc{color:var(--text-secondary)}.rounds-selector{display:flex;gap:8px;align-items:center}.rounds-btn{width:52px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-m);border:2px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font-family);font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.rounds-btn:hover{background:var(--bg-card-hover);border-color:var(--accent);color:var(--text-primary)}.rounds-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.rounds-custom-input{width:72px;height:42px;padding:0 12px;border-radius:var(--radius-m);border:2px solid var(--border);background:var(--bg);color:var(--text-primary);font-family:var(--font-family);font-size:14px;text-align:center;outline:none;transition:border-color var(--transition-fast)}.rounds-custom-input:focus{border-color:var(--accent)}.rounds-custom-input::placeholder{color:var(--text-muted);font-size:12px}.rounds-custom-input::-webkit-outer-spin-button,.rounds-custom-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.color-settings-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.color-field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:var(--radius-m);border:2px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:13px;font-weight:600}.color-field input[type=color]{width:52px;height:34px;padding:0;border:1px solid var(--border-hover);border-radius:var(--radius-s);background:transparent;cursor:pointer}.shape-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shape-btn{min-height:42px;border-radius:var(--radius-m);border:2px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font-family);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.shape-btn:hover{background:var(--bg-card-hover);border-color:var(--accent);color:var(--text-primary)}.shape-btn.active{background:#58a6ff1a;border-color:var(--accent);color:var(--accent)}.custom-image-field{margin-top:12px}.custom-image-preview{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg)}.custom-image-preview img{width:48px;height:48px;object-fit:contain;border-radius:var(--radius-s);background:var(--bg-card)}.config-actions{display:flex;gap:12px;margin-top:28px}.config-start-btn{position:relative}.ready-dot{width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block;margin-left:4px;animation:pulse 2s infinite}.config-summary{margin-top:16px;font-size:12px;color:var(--text-muted);text-align:center}.config-summary strong{color:var(--text-secondary)}.experiment-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--bg)}.acuity-test-container{background:#fff}.experiment-instructions{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:32px;text-align:center;animation:fadeIn .5s ease}.experiment-instructions h1{font-size:36px;margin-bottom:16px}.experiment-instructions p{color:var(--text-secondary);font-size:16px;max-width:500px;margin-bottom:32px;line-height:1.8}.experiment-results{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:32px;text-align:center;animation:fadeIn .5s ease;overflow-y:auto}.results-score{font-size:64px;font-weight:700;color:var(--accent);margin:16px 0}.training-result-summary{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:12px;width:min(720px,100%);margin:16px 0 18px}.training-result-summary span{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card)}.training-result-summary small{color:var(--text-muted);font-size:12px;font-weight:700}.training-result-summary strong{color:var(--accent-dark);font-size:20px;font-weight:800}.results-table{width:100%;max-width:600px;border-collapse:collapse;margin:24px 0}.results-table th{padding:10px 16px;background:var(--bg-panel);color:var(--text-secondary);font-size:13px;font-weight:600;text-align:center;border:1px solid var(--border)}.results-table td{padding:8px 16px;background:var(--bg-card);color:var(--text-primary);font-size:13px;text-align:center;border:1px solid var(--border)}.results-table td.rt-fast{color:var(--success);font-weight:600}.results-table td.rt-slow{color:var(--warning)}.results-table td.result-success{color:var(--success);font-weight:700}.results-table td.result-fail{color:var(--error);font-weight:700}.drawing-defense-results-container .results-table{max-width:760px}.results-actions{display:flex;gap:16px;margin-top:24px}.jspsych-display-element{width:100%;height:100%;background:var(--bg)!important}.jspsych-content-wrapper{width:100%;height:100%;padding:0!important}.jspsych-content{max-width:none!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.fade-in{animation:fadeIn .4s ease both}.fade-in-up{animation:fadeInUp .5s ease both}.card:nth-child(1){animation-delay:.05s}.card:nth-child(2){animation-delay:.1s}.card:nth-child(3){animation-delay:.15s}.card:nth-child(4){animation-delay:.2s}.card:nth-child(5){animation-delay:.25s}.settings-container{width:100%;max-width:100%}.settings-tabs{display:flex;gap:12px;margin-bottom:32px;flex-wrap:wrap}.settings-tab{padding:10px 24px;border-radius:var(--radius-l);font-size:16px;font-weight:500;cursor:pointer;border:2px solid transparent;background:var(--bg-card);color:var(--text-secondary);transition:all var(--transition-fast);box-shadow:0 1px 4px #00000005}.settings-tab:hover{background:var(--bg-panel);color:var(--text-primary)}.settings-tab.active{background:#005eb814;color:var(--accent-dark);border-color:var(--accent);font-weight:600}.webgazer-calibration-panel{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card);padding:16px}.webgazer-calibration-steps{color:var(--text-primary)}.webgazer-calibration-steps h4{margin-bottom:8px;font-size:15px;font-weight:700}.webgazer-calibration-steps ol{padding-left:20px;color:var(--text-secondary);font-size:14px;line-height:1.7}.webgazer-calibration-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px}.webgazer-calibration-message,.webgazer-pl-message{margin-top:12px;color:var(--text-secondary);font-size:13px;line-height:1.6;text-align:center}.webgazer-calibration-message.error,.webgazer-pl-message.error{color:var(--error)}.webgazer-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:99999;background:var(--bg, #0d1117);overflow:hidden;isolation:isolate}.webgazer-fullscreen-stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden}.webgazer-fullscreen-stage>.jspsych-display-element,.webgazer-fullscreen-stage .jspsych-display-element{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;background:var(--bg, #0d1117)!important;overflow:hidden!important}.webgazer-fullscreen-stage .jspsych-content-wrapper{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.webgazer-fullscreen-stage .jspsych-content{max-width:none!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;text-align:center}body .webgazer-fullscreen-stage #webgazer-calibrate-container,.webgazer-fullscreen-overlay #webgazer-calibrate-container{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;transform:none!important}.webgazer-fullscreen-stage #webgazer-init-container{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}.webgazer-fullscreen-stage #webgazer-init-container>div{position:relative!important;left:auto!important;top:auto!important;width:min(720px,calc(100vw - 40px))!important;transform:none!important;margin-top:120px!important}body #webgazerVideoContainer{top:20px!important;left:50%!important;transform:translate(-50%)!important;margin:0!important}.webgazer-fullscreen-stage #calibration-point,body #webgazer-calibrate-container #calibration-point{transform:translate(-50%,-50%)!important;border:2px solid #fff!important;background:var(--accent, #58a6ff)!important;box-shadow:0 0 0 8px #005eb82e}.webgazer-jspsych-instructions{width:min(680px,calc(100vw - 40px));padding:28px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-ambient);margin:0 auto 16px}.webgazer-jspsych-instructions h2{margin-bottom:14px;font-size:24px;line-height:1.25}.webgazer-jspsych-instructions p{margin:10px 0;color:var(--text-secondary);font-size:16px;line-height:1.7}.webgazer-fullscreen-stage .jspsych-btn{background:var(--accent, #58a6ff);color:#fff;border:none;padding:10px 28px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s}.webgazer-fullscreen-stage .jspsych-btn:disabled{opacity:.4;cursor:not-allowed}.webgazer-fullscreen-stage .jspsych-btn:hover:not(:disabled){opacity:.85}.webgazer-cancel-btn{position:fixed;top:16px;right:16px;z-index:10001;background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-secondary, #8b949e);border:1px solid rgba(255,255,255,.15);padding:8px 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.webgazer-cancel-btn:hover{background:#f553;border-color:#f556;color:var(--error, #f85149)}.cal-card-outline{border:2px solid var(--accent);border-radius:8px;background:#58a6ff14;position:relative;margin:16px auto;transition:all var(--transition-normal)}.cal-ruler-bar{height:8px;border-radius:4px;background:var(--accent);margin:16px auto}.cal-controls{display:flex;gap:12px;justify-content:center;margin-top:16px}.cal-info{text-align:center;margin-top:16px;font-size:13px;color:var(--text-secondary)}.empty-state{text-align:center;padding:48px;color:var(--text-muted);font-size:16px}.assessment-disclaimer{display:flex;align-items:center;gap:12px;margin-bottom:32px;padding:16px 24px;background:#d299221a;border:1px solid var(--warning);border-radius:var(--radius-m);font-size:16px;color:var(--warning);width:100%;line-height:1.6}.card-meta{display:flex;gap:8px;margin-top:16px;font-size:14px;color:var(--text-muted)}.card-expand-hint{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:16px;color:var(--accent);font-weight:600}.acuity-intro{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:32px;text-align:center;animation:fadeIn .5s ease}.acuity-intro h1{font-size:36px;font-weight:700;margin-bottom:16px}.acuity-intro p{color:var(--text-secondary);font-size:16px;max-width:520px;margin-bottom:24px;line-height:1.8}.acuity-intro-keys{margin-bottom:32px}.acuity-intro-hint{margin-top:16px;font-size:12px;color:var(--text-muted)!important}.webgazer-pl-intro{display:flex;flex-direction:column;gap:8px;max-width:520px;margin:8px 0 28px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card);color:var(--text-secondary);font-size:14px;line-height:1.7}.webgazer-pl-intro strong{color:var(--text-primary)}.webgazer-pl-badge{position:fixed;top:16px;right:16px;z-index:20;padding:6px 10px;border:1px solid rgba(75,85,99,.28);border-radius:var(--radius-s);background:#ffffff47;color:#4b5563b8;font-size:12px;font-weight:600;pointer-events:none}.key-hints-grid-8,.key-hints-grid-4{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px);gap:6px}.key-hints-letters{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:400px}.key-hint{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-m);border:2px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:20px;font-weight:600}.key-hint-empty{border-color:transparent;background:transparent}.acuity-touch-controls{position:fixed;bottom:0;left:0;right:0;pointer-events:none;z-index:100;--acuity-overlay-font-size: 12px;--acuity-overlay-color: rgba(75, 85, 99, .58);--acuity-overlay-border: rgba(75, 85, 99, .28);--acuity-overlay-bg: rgba(255, 255, 255, .18)}.touch-btn-ring{position:fixed;bottom:14px;right:14px;width:108px;height:108px;pointer-events:auto}.touch-btn-cross{position:fixed;bottom:14px;right:14px;width:92px;height:92px;pointer-events:auto;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px}.touch-btn-letters{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:6px;pointer-events:auto}.direction-btn{position:absolute;width:24px;height:24px;border-radius:50%;border:1px solid var(--acuity-overlay-border);background:var(--acuity-overlay-bg);color:var(--acuity-overlay-color);font-size:var(--acuity-overlay-font-size);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);transition:all var(--transition-fast);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:auto}.direction-btn:hover{border-color:#4b55636b;background:#ffffff47;color:#4b5563b8;transform:translate(-50%,-50%) scale(1.1)}.direction-btn:active{transform:translate(-50%,-50%) scale(.95)}.touch-btn-cross .direction-btn{position:relative;transform:none;border-radius:var(--radius-m)}.touch-btn-cross .direction-btn:hover{transform:scale(1.05)}.touch-btn-cross .direction-btn:active{transform:scale(.95)}.dir-up{grid-column:2;grid-row:1}.dir-left{grid-column:1;grid-row:2}.dir-right{grid-column:3;grid-row:2}.dir-down{grid-column:2;grid-row:3}.letter-btn{position:relative;transform:none;border-radius:var(--radius-m);font-size:var(--acuity-overlay-font-size);width:24px;height:24px}.letter-btn:hover{transform:scale(1.05)}.letter-btn:active{transform:scale(.95)}.acuity-abort-btn{position:fixed;top:14px;right:14px;width:24px;height:24px;border-radius:50%;border:1px solid rgba(75,85,99,.28);background:#ffffff2e;color:#4b556394;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:200;transition:all var(--transition-fast);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.acuity-abort-btn:hover{border-color:#4b55636b;color:#4b5563b8;background:#ffffff47}.acuity-results{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:32px;text-align:center;animation:fadeIn .5s ease}.acuity-results h1{font-size:32px;font-weight:700;margin-bottom:24px}.acuity-result-cards{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap;justify-content:center}.acuity-result-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-l);padding:20px 28px;min-width:140px;transition:all var(--transition-fast)}.acuity-result-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.acuity-result-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.acuity-result-value{font-size:32px;font-weight:700;color:var(--accent)}.acuity-result-meta{display:flex;gap:24px;margin-bottom:24px;font-size:14px;color:var(--text-secondary);flex-wrap:wrap;justify-content:center}.acuity-disclaimer-footer{margin-top:32px;font-size:12px;color:var(--text-muted);max-width:500px;line-height:1.6}.reading-qa-trial{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;background:var(--bg-panel)!important;padding:40px!important}.reading-qa-question{font-size:32px;font-weight:700;color:var(--text-primary);margin-bottom:48px;text-align:center;max-width:800px;line-height:1.4;letter-spacing:-.01em;animation:fadeInUp .6s ease}.reading-qa-trial .jspsych-html-button-response-btngroup{display:flex!important;flex-direction:column!important;gap:16px!important;width:100%!important;max-width:500px!important;margin:0 auto!important}.reading-qa-btn{width:100%;padding:20px 24px;font-size:18px;font-weight:600;color:var(--text-secondary);background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-l);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px #00000005;display:flex;justify-content:center;align-items:center;animation:fadeInUp .6s ease;animation-fill-mode:backwards;font-family:var(--font-family)}.reading-qa-trial .jspsych-html-button-response-button:nth-child(1) .reading-qa-btn{animation-delay:.1s}.reading-qa-trial .jspsych-html-button-response-button:nth-child(2) .reading-qa-btn{animation-delay:.15s}.reading-qa-trial .jspsych-html-button-response-button:nth-child(3) .reading-qa-btn{animation-delay:.2s}.reading-qa-trial .jspsych-html-button-response-button:nth-child(4) .reading-qa-btn{animation-delay:.25s}.reading-qa-btn:hover{background:var(--bg-card);border-color:var(--accent);color:var(--accent);transform:translateY(-4px);box-shadow:0 12px 24px #005eb81f}.reading-qa-btn:active{transform:translateY(0);box-shadow:0 4px 8px #005eb814}.training-module-button{text-align:left;font-family:var(--font-family)}.cognitive-module-focus{width:fit-content;min-height:34px;display:inline-flex;align-items:center;padding:5px 10px;border:1px solid rgba(0,94,184,.22);border-radius:var(--radius-s);background:#005eb814;color:var(--accent-dark);font-size:14px;font-weight:800}.drawing-defense{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;height:100vh;overflow:hidden;background:#f6f7f8;background-position:center;background-size:cover;background-repeat:no-repeat;touch-action:none}.drawing-defense-stage,.drawing-defense-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh}.drawing-defense-canvas{display:block;width:100vw;height:100vh}.drawing-defense-input{z-index:2;cursor:crosshair}.drawing-defense-phase-results .drawing-defense-input{pointer-events:none}.drawing-defense-results-container{z-index:7;background:#fff}.drawing-defense-hud{position:fixed;top:10px;right:12px;z-index:4;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:min(560px,calc(100vw - 24px));padding:0;border:0;border-radius:0;background:transparent;color:#4247526b;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}.drawing-defense-hud div{min-height:20px;display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1.2;white-space:nowrap}.drawing-defense-hud .voice-listening-indicator{white-space:normal}.drawing-defense-hud .voice-listening-error{max-width:min(360px,calc(100vw - 48px));color:var(--error);font-size:11px;font-weight:800;white-space:normal}.drawing-defense-hud strong{color:#42475280;font-weight:700}.drawing-defense-hud .btn{pointer-events:auto;min-height:28px;padding:4px 8px;border-width:1px;background:transparent;color:#4247528f;opacity:1}.training-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px;background:#f2f4f3d1;color:var(--text-primary);text-align:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}.training-panel h1{font-size:36px;line-height:1.2}.training-panel p{max-width:640px;color:var(--text-secondary);font-size:17px;line-height:1.7}.training-config{width:min(940px,calc(100vw - 48px));max-height:min(88vh,760px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(194,198,212,.92);border-radius:var(--radius-m);background:#fffffff5;box-shadow:0 20px 48px #1a1c1e2e;text-align:left}.training-config-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:26px 28px 22px;border-bottom:1px solid var(--border)}.training-config-label{display:block;margin-bottom:6px;color:var(--text-muted);font-size:13px;font-weight:700;letter-spacing:0}.training-config h1{margin:0;color:var(--text-primary);font-size:32px;font-weight:800;line-height:1.15;letter-spacing:0}.training-config-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.training-config-summary span,.training-config-summary strong{min-height:34px;display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-panel);color:var(--text-secondary);font-size:13px;font-weight:700;white-space:nowrap}.training-config-summary strong{color:var(--accent-dark)}.training-config-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;padding:6px 28px 2px;overflow-y:auto}.training-setting{min-width:0;padding:22px 0;border-bottom:1px solid rgba(194,198,212,.72)}.training-setting-wide{grid-column:1 / -1}.training-setting-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.training-setting-header h2{margin:0 0 4px;color:var(--text-primary);font-size:16px;font-weight:800;line-height:1.25;letter-spacing:0}.training-setting-header p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.45}.training-setting-header>span{flex:0 0 auto;min-height:30px;display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:var(--radius-m);background:#005eb814;color:var(--accent-dark);font-size:13px;font-weight:800;white-space:nowrap}.training-option-grid{display:grid;gap:8px}.training-option-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.training-duration-grid{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}.training-option-grid-four,.training-speed-grid,.training-wait-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.training-option{min-width:0;min-height:62px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card);color:var(--text-primary);cursor:pointer;font-family:var(--font-family);text-align:left;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.training-option:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.training-option.active{border-color:var(--accent);background:#005eb812;box-shadow:inset 0 0 0 1px var(--accent)}.training-option-title{width:100%;color:inherit;font-size:16px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.training-option-meta{width:100%;color:var(--text-muted);font-size:12px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.training-option.active .training-option-title{color:var(--accent-dark)}.training-option-custom{cursor:pointer}.drawing-defense-background-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.drawing-defense-background-card{min-width:0;min-height:62px;display:grid;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.drawing-defense-upload-action{width:fit-content;min-height:28px;display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-s);color:var(--accent-dark);background:#fff;font-size:12px;font-weight:800}.drawing-defense-background-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.drawing-defense-background-card.active{border-color:var(--accent);background:#005eb812;box-shadow:inset 0 0 0 1px var(--accent)}.drawing-defense-background-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-primary);font-size:16px;font-weight:800}.drawing-defense-background-card-header strong{color:var(--text-muted);font-size:12px;font-weight:700}.training-number-input{width:100%;height:30px;margin-top:3px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-s);background:#fff;color:var(--text-primary);font-family:var(--font-family);font-size:14px;font-weight:700;text-align:center;outline:none}.training-number-input:focus{border-color:var(--accent)}.training-number-input::-webkit-outer-spin-button,.training-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.training-slider{width:100%;height:34px;accent-color:var(--accent)}.training-config-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 28px;border-top:1px solid var(--border);background:#f9f9fcf5}.training-config-actions{display:flex;justify-content:flex-end;gap:10px;flex:0 0 auto}.training-config-actions .btn{border-radius:var(--radius-m)}.training-panel-compact{gap:14px}.drawing-defense-controls{width:min(640px,100%);display:grid;gap:16px;padding:22px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card)}.drawing-defense-controls label{display:grid;gap:8px;color:var(--text-secondary);font-size:14px;font-weight:700;text-align:left}.drawing-defense-controls input[type=range]{width:100%;accent-color:var(--accent)}.drawing-defense-wait-options{display:grid;gap:8px;color:var(--text-secondary);font-size:14px;font-weight:700;text-align:left}.drawing-defense-wait-options>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.drawing-defense-wait-options .rounds-btn{width:64px}.drawing-defense-wait-options .rounds-custom-input{width:96px}.training-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.drawing-defense-results{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px;width:min(560px,100%)}.drawing-defense-results span{padding:16px;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-card);font-size:16px;font-weight:700}.cognitive-reference-game{--cognitive-game-accent: var(--accent);position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;height:100vh;overflow:hidden;background:var(--bg);color:var(--text-primary);font-family:var(--font-family)}.cognitive-pixi-stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh}.cognitive-reference-phase-menu .cognitive-pixi-stage,.cognitive-reference-phase-paused .cognitive-pixi-stage,.cognitive-reference-phase-results .cognitive-pixi-stage{pointer-events:none}.cognitive-pixi-canvas{display:block;width:100vw;height:100vh}.cognitive-game-hud{position:fixed;top:12px;left:50%;z-index:4;display:flex;align-items:center;justify-content:center;gap:8px;max-width:calc(100vw - 24px);padding:8px;border:1px solid var(--border);border-radius:var(--radius-m);background:#fffffff5;box-shadow:0 8px 24px #0f172a1f;transform:translate(-50%);flex-wrap:wrap}.cognitive-game-hud div{min-height:34px;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid rgba(100,116,139,.32);border-radius:var(--radius-s);background:#fff;color:var(--text-primary);font-size:14px;font-weight:700;white-space:nowrap}.cognitive-game-hud strong{color:var(--cognitive-game-accent);font-weight:800}.cognitive-config .training-option.active .training-option-title{color:var(--cognitive-game-accent)}.cognitive-config .training-option.active{border-color:var(--cognitive-game-accent);background:color-mix(in srgb,var(--cognitive-game-accent) 9%,white);box-shadow:inset 0 0 0 1px var(--cognitive-game-accent)}.cognitive-results-container .results-table{max-width:720px}.minesweeper-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.minesweeper-game{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;height:100vh;overflow:hidden;background:var(--bg);color:var(--text-primary);font-family:var(--font-family)}.minesweeper-phase-menu{overflow-y:auto}.minesweeper-hud{position:fixed;top:12px;left:50%;z-index:4;display:flex;align-items:center;justify-content:center;gap:8px;max-width:calc(100vw - 24px);padding:8px;border:1px solid var(--border);border-radius:var(--radius-m);background:#fffffff5;box-shadow:0 8px 24px #0f172a1f;transform:translate(-50%);flex-wrap:wrap}.minesweeper-hud div{min-height:34px;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid rgba(100,116,139,.32);border-radius:var(--radius-s);background:#fff;color:var(--text-primary);font-size:14px;font-weight:700;white-space:nowrap}.minesweeper-hud strong{color:var(--accent-dark);font-weight:800}.minesweeper-board-stage{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;padding:84px 24px 24px;overflow:auto}.minesweeper-canvas{display:block;flex:0 0 auto;border:4px solid #111827;border-radius:var(--radius-s);background:#fff;box-shadow:0 20px 48px #0f172a38;cursor:pointer;touch-action:none}.minesweeper-canvas.flag-mode{cursor:crosshair}.minesweeper-results-container .results-table{max-width:720px}.voice-defender{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;height:100vh;overflow:hidden;background:#f6f7f8;background-position:center;background-size:cover;background-repeat:no-repeat;color:var(--text-primary);font-family:var(--font-family);touch-action:none}.voice-defender-stage,.voice-defender-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.voice-browser-notice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;background:#f2f4f3d1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.voice-browser-notice{width:min(520px,100%);padding:30px;border:1px solid rgba(194,198,212,.92);border-radius:var(--radius-m);background:#fff;color:var(--text-primary);box-shadow:0 20px 48px #1a1c1e2e;text-align:center}.voice-browser-notice h2{margin:0 0 12px;font-size:24px}.voice-browser-notice p{margin:0 auto 22px;color:var(--text-secondary);font-size:17px;line-height:1.7}.voice-defender-config{width:min(1100px,calc(100vw - 48px));max-height:min(92vh,900px)}.voice-defender-config-body{grid-template-columns:repeat(2,minmax(0,1fr))}.voice-model-status{min-width:230px;display:grid;gap:8px;margin-top:0;color:var(--text-secondary);font-size:13px;font-weight:700}.training-config-header .voice-model-status{flex:0 1 320px;align-self:center}.voice-model-status progress{width:100%;height:10px;overflow:hidden;border:0;border-radius:999px;background:var(--bg-panel);accent-color:var(--accent)}.voice-model-status-ready{color:var(--success)}.voice-model-status-fallback{color:#b45309}.voice-model-status-error{color:var(--error)}.voice-start-invalid{position:relative;border-radius:var(--radius-m);background:#dc26260f;outline:3px solid rgba(220,38,38,.88);outline-offset:-3px;box-shadow:0 0 0 5px #dc26261a}.voice-start-invalid .training-setting-header h2{color:var(--error)}.voice-start-validation{flex:0 0 auto;margin:14px 28px 0;padding:14px 16px;border:2px solid var(--error);border-radius:var(--radius-m);background:#fff1f2;color:#991b1b}.voice-start-validation strong{font-size:16px}.voice-start-validation p{margin:4px 0 8px;color:inherit;font-size:13px}.voice-start-validation ul{display:grid;gap:4px;margin:0;padding-left:20px;font-size:13px;font-weight:700}.voice-background-color-picker{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.voice-background-color-picker input{width:36px;height:28px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-s);background:#fff;cursor:pointer}.voice-vocabulary-editor{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);gap:18px}.voice-vocabulary-list{max-height:280px;display:grid;align-content:start;gap:8px;padding:10px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--bg-panel)}.voice-vocabulary-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 8px 7px 12px;border:1px solid transparent;border-radius:var(--radius-s);background:var(--bg-card)}.voice-vocabulary-row.active{border-color:#005eb847}.voice-vocabulary-row label{min-width:0;display:flex;align-items:center;gap:10px;color:var(--text-primary);font-size:15px;font-weight:700;cursor:pointer}.voice-vocabulary-row input{width:18px;height:18px;accent-color:var(--accent)}.voice-vocabulary-tools{display:grid;align-content:start;gap:10px}.voice-vocabulary-tools form{display:grid;gap:8px;margin-bottom:4px}.voice-vocabulary-tools label{color:var(--text-secondary);font-size:13px;font-weight:800}.voice-vocabulary-tools input{width:100%;min-height:42px;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-s);background:#fff;color:var(--text-primary);font:inherit;outline:none}.voice-vocabulary-tools input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #005eb81a}.voice-vocabulary-tools input[aria-invalid=true]{border-color:var(--error);box-shadow:0 0 0 3px #dc26261a}.voice-vocabulary-warning{margin:0;color:var(--error);font-size:13px;font-weight:800;line-height:1.45}.voice-vocabulary-empty{margin:0;padding:28px 12px;color:var(--text-muted);text-align:center}.voice-microphone-setting .btn{min-width:180px}.voice-microphone-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}.voice-volume-meter-group{display:grid;gap:8px}.voice-volume-meter-label{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-secondary);font-size:13px;font-weight:700}.voice-volume-meter-label strong{color:var(--text-primary)}.voice-volume-meter{height:16px;overflow:hidden;border:1px solid var(--border);border-radius:999px;background:var(--bg-panel)}.voice-volume-meter>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#84cc16 55%,#f59e0b 82%,#ef4444);transition:width 70ms linear}.voice-microphone-ready .training-setting-header>span{background:#22c55e1f;color:#15803d}.voice-microphone-silent .training-setting-header>span,.voice-microphone-testing .training-setting-header>span{background:#f59e0b1f;color:#a16207}.voice-microphone-muted .training-setting-header>span,.voice-microphone-disconnected .training-setting-header>span,.voice-microphone-denied .training-setting-header>span{background:#dc26261a;color:var(--error)}.voice-defender-hud{position:fixed;top:12px;left:50%;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;max-width:calc(100vw - 24px);padding:8px;border:1px solid rgba(56,189,248,.42);border-radius:var(--radius-m);background:#07152be6;color:#e2e8f0;box-shadow:0 10px 30px #0208174d;transform:translate(-50%);flex-wrap:wrap}.voice-defender-hud>div{min-height:34px;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid rgba(148,163,184,.3);border-radius:var(--radius-s);background:#0f233ceb;white-space:nowrap}.voice-defender-hud strong{color:#67e8f9}.voice-listening-indicator span{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e8c;animation:voice-listening-pulse 1.4s infinite}.voice-listening-muted span,.voice-listening-disconnected span,.voice-listening-denied span{background:#ef4444;animation:none;box-shadow:none}.voice-listening-testing span,.voice-listening-silent span{background:#f59e0b;animation:none;box-shadow:none}.voice-defender-results-container{z-index:8;background:#fff}.voice-defender-results-container .training-result-summary{grid-template-columns:repeat(4,minmax(130px,1fr))}@keyframes voice-listening-pulse{0%{box-shadow:0 0 #22c55e8c}70%{box-shadow:0 0 0 9px #22c55e00}to{box-shadow:0 0 #22c55e00}}.training-option-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.gesture-battler{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;width:100vw;height:100vh;overflow:hidden;background:#dce9c8;color:#17201a;font-family:var(--font-family)}.gesture-battler-stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh}.gesture-battler-canvas{display:block;width:100vw;height:100vh;image-rendering:pixelated}.gesture-menu-panel{background:linear-gradient(#f2f4f3db,#f2f4f3db),repeating-linear-gradient(0deg,transparent 0 7px,rgba(23,32,26,.08) 7px 8px)}.gesture-privacy-note{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid #b8c99e;border-radius:var(--radius-m);background:#f4f9ec}.gesture-privacy-note strong{flex:0 0 auto;color:#365314;font-size:14px}.gesture-privacy-note span{color:#52634b;font-size:13px;line-height:1.5}.gesture-error{margin:14px 28px 0;padding:12px 14px;border:1px solid rgba(220,38,38,.32);border-radius:var(--radius-m);background:#fee2e2e0;color:#991b1b;font-size:14px;font-weight:700}.gesture-camera{position:fixed;top:18px;left:18px;z-index:8;width:min(260px,24vw);aspect-ratio:4 / 3;overflow:hidden;border:4px solid #f8faf0;border-radius:4px;background:#17201a;box-shadow:0 0 0 3px #273329,8px 8px #17201a33}.gesture-camera-hidden{display:none}.gesture-camera video,.gesture-camera canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.gesture-camera canvas{pointer-events:none}.gesture-camera>span{position:absolute;right:6px;bottom:6px;left:6px;padding:5px 7px;background:#0f172ac7;color:#f8fafc;font-family:Courier New,monospace;font-size:11px;font-weight:700;text-align:center}.gesture-calibration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;display:grid;place-items:center;padding:28px;background:linear-gradient(#e2edcfe6,#e2edcfe6),repeating-linear-gradient(0deg,transparent 0 7px,rgba(23,32,26,.1) 7px 8px)}.gesture-loading-card,.gesture-calibration-card{width:min(760px,calc(100vw - 48px));padding:30px;border:4px solid #f8faf0;border-radius:5px;background:#f8faf0;box-shadow:0 0 0 4px #273329,12px 12px #27332933}.gesture-loading-card{display:grid;justify-items:center;gap:12px;text-align:center}.gesture-loading-card h1,.gesture-calibration-card h1{margin:0;color:#17201a;font-family:Courier New,monospace;font-size:clamp(26px,4vw,42px);letter-spacing:-1px}.gesture-loading-card p,.gesture-calibration-card p{margin:0;color:#52634b;font-size:17px;line-height:1.65}.gesture-loader{width:54px;height:54px;border:8px solid #cbd9b5;border-top-color:#4d7c0f;border-radius:50%;animation:gesture-spin .8s steps(8) infinite}@keyframes gesture-spin{to{transform:rotate(360deg)}}.gesture-calibration-card{display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:28px}.gesture-calibration-actions{grid-column:1 / -1;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.gesture-calibration-copy{display:grid;gap:15px}.gesture-step-count{width:fit-content;padding:6px 9px;border:2px solid #273329;background:#e7f2d5;color:#365314;font-family:Courier New,monospace;font-size:13px;font-weight:800}.gesture-calibration-progress{height:22px;overflow:hidden;border:3px solid #273329;background:#d7dfcb}.gesture-calibration-progress span{display:block;height:100%;background:repeating-linear-gradient(90deg,#65a30d 0,#65a30d 12px,#84cc16 12px,#84cc16 24px);transition:width 80ms linear}.gesture-calibration-copy>strong{color:#365314;font-size:15px}.gesture-calibration-notice{padding:9px 11px;border:2px solid #a16207;background:#fef3c7;color:#713f12;font-size:13px;font-weight:800;line-height:1.45}.gesture-cue{position:relative;width:200px;height:230px;display:grid;place-items:center}.gesture-cue svg{width:180px;height:220px;overflow:visible;fill:#8fa79a;stroke:#273329;stroke-width:4;stroke-linejoin:round}.gesture-cue svg .extended{fill:#f3c98b}.gesture-cue>strong{position:absolute;right:3px;bottom:4px;width:58px;height:58px;display:grid;place-items:center;border:4px solid #273329;background:#fef08a;color:#17201a;font-family:Courier New,monospace;font-size:34px}.gesture-combat-controls{position:fixed;top:18px;left:50%;z-index:5;display:flex;align-items:center;gap:10px;padding:7px 8px 7px 12px;border:3px solid #273329;background:#f8faf0f0;color:#365314;font-family:Courier New,monospace;font-size:12px;font-weight:800;transform:translate(-50%)}.gesture-combat-controls button{padding:4px 8px;border:2px solid #273329;background:#d9e8c5;color:#17201a;cursor:pointer;font:inherit}.gesture-enemy-status{position:fixed;top:8%;right:5%;z-index:4;width:min(360px,34vw);padding:12px 16px;border:4px solid #f8faf0;background:#f8faf0f0;box-shadow:0 0 0 3px #273329;font-family:Courier New,monospace}.gesture-enemy-status>div:first-child,.gesture-hp-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.gesture-enemy-status>div:first-child strong{font-size:clamp(16px,2vw,23px)}.gesture-enemy-status>div:first-child span{font-size:13px;font-weight:700}.gesture-hp-row{margin-top:8px}.gesture-hp-row>span{color:#a16207;font-size:12px;font-weight:900}.gesture-hp-row>div{flex:1;height:16px;padding:2px;border:2px solid #273329;background:#314038}.gesture-hp-row i{display:block;height:100%;background:#65a30d;transition:width .26s steps(6)}.gesture-hp-row>strong{min-width:52px;font-size:12px;text-align:right}.gesture-battle-dialogue,.gesture-move-menu{position:fixed;z-index:4;bottom:4.5%;min-height:190px;border:5px solid #f8faf0;background:#f8faf0f7;box-shadow:0 0 0 4px #273329;font-family:Courier New,monospace}.gesture-battle-dialogue{left:4%;width:42%;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:26px}.gesture-battle-dialogue strong{font-size:clamp(18px,2.2vw,30px);line-height:1.35}.gesture-battle-dialogue span{color:#52634b;font-size:14px;font-weight:700}.gesture-move-menu{right:4%;width:44%;padding:14px 16px}.gesture-move-menu header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:9px;border-bottom:3px solid #273329;font-size:14px;font-weight:900}.gesture-move-menu header strong{color:#9a3412}.gesture-move-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;padding-top:9px}.gesture-move{min-height:30px;display:grid;grid-template-columns:18px 24px minmax(0,1fr) 25px;align-items:center;gap:4px;padding:3px 4px;color:#273329;font-size:clamp(12px,1.35vw,17px);font-weight:800}.gesture-move.selected{background:#e7f2d5;color:#17201a}.gesture-move.disabled{color:#8a9587}.gesture-pointer{color:#9a3412;font-size:16px}.gesture-move b{color:#365314}.gesture-cast-ring{width:22px;height:22px;border:2px solid #273329;border-radius:50%;background:conic-gradient(#65a30d var(--gesture-progress),#d7dfcb 0)}.gesture-pause-panel{z-index:12;background:#e2edcfe6}.gesture-results-container{z-index:12;background:linear-gradient(#fffffff2,#fffffff2),repeating-linear-gradient(0deg,transparent 0 7px,rgba(23,32,26,.08) 7px 8px)}.gesture-result-summary{grid-template-columns:repeat(4,minmax(130px,1fr))}@media(max-width:720px){.voice-start-validation{margin:12px 18px 0}.drawing-defense-hud{top:8px;right:8px;left:auto;max-width:calc(100vw - 16px);justify-content:flex-end}.training-panel{padding:24px 18px}.training-panel h1{font-size:30px}.training-config{width:min(100%,calc(100vw - 24px));max-height:min(90vh,760px)}.training-config-header,.training-config-footer{flex-direction:column;align-items:stretch;padding:18px}.training-config h1{font-size:28px}.training-config-body{grid-template-columns:1fr;padding:2px 18px 0}.training-option-grid-three,.training-option-grid-four,.training-option-grid-two,.training-speed-grid,.training-duration-grid,.training-wait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.training-setting{padding:18px 0}.drawing-defense-background-controls{grid-template-columns:1fr}.training-config-actions{width:100%}.training-config-actions .btn{flex:1 1 140px}.training-actions{width:100%}.training-actions .btn{flex:1 1 180px}.drawing-defense-results,.training-result-summary{grid-template-columns:1fr}.cognitive-game-hud{left:8px;right:8px;transform:none;max-width:calc(100vw - 16px)}.minesweeper-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.voice-defender-config{width:min(100%,calc(100vw - 24px))}.voice-defender-config-body,.voice-vocabulary-editor{grid-template-columns:1fr}.voice-model-status{min-width:0;width:100%}.voice-vocabulary-list{max-height:240px}.voice-microphone-controls{grid-template-columns:1fr}.voice-microphone-setting .btn{width:100%}.voice-defender-results-container .training-result-summary{grid-template-columns:1fr}.gesture-privacy-note{flex-direction:column}.gesture-calibration-card{grid-template-columns:1fr;gap:12px;padding:22px}.gesture-cue{width:150px;height:170px;justify-self:center}.gesture-cue svg{width:130px;height:160px}.gesture-cue>strong{width:44px;height:44px;font-size:25px}.gesture-camera{top:9px;left:9px;width:120px;border-width:2px}.gesture-camera>span{padding:3px;font-size:8px}.gesture-combat-controls{top:9px;right:9px;left:auto;max-width:calc(100vw - 150px);transform:none}.gesture-enemy-status{top:20%;right:12px;width:min(270px,calc(100vw - 150px))}.gesture-battle-dialogue,.gesture-move-menu{min-height:0;right:12px;left:12px;width:auto}.gesture-battle-dialogue{bottom:238px;padding:13px 16px}.gesture-battle-dialogue strong{font-size:16px}.gesture-move-menu{bottom:12px;padding:9px 10px}.gesture-move{font-size:12px}.gesture-result-summary{grid-template-columns:1fr}}
