html,body{width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#1a1a2e;cursor:crosshair}#root{width:100%;height:100%}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}*{transition:opacity .3s ease}body{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(180deg,#87ceeb,#e0f6ff,#b3d9ff)}#root{width:100%;height:100vh}// Deployment verification Tue Feb 17 04:18:47 PST 2026 .scene{padding:30px;max-width:1400px;margin:0 auto;font-family:Arial,sans-serif}.scene h2{color:#333;text-align:center;margin-bottom:30px;font-size:28px}.scene-content{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:40px}.canvas-container{display:flex;flex-direction:column;gap:20px}.canvas-container canvas{border:2px solid #333;background:#fff;border-radius:4px}.challenge-info{background:#f5f5f5;padding:20px;border-radius:4px;border-left:4px solid #2196F3}.challenge-info h3{margin-top:0;color:#333}.challenge-info p{color:#666;line-height:1.5}.angle-display{background:#fff;padding:15px;border-radius:4px;margin:15px 0 0;font-family:monospace}.angle-display p{margin:5px 0;color:#333}.angle-display strong{color:#2196f3}.message{padding:10px;border-radius:4px;margin-top:15px;font-weight:700}.message.success{background-color:#4caf50;color:#fff}.message.info{background-color:#2196f3;color:#fff}.controls-container{overflow-y:auto;max-height:800px}.navigation-buttons{display:flex;gap:10px;justify-content:center;margin-bottom:40px}.btn{padding:12px 24px;font-size:16px;border:none;border-radius:4px;cursor:pointer;font-weight:700;transition:all .3s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:#2196f3;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0b7dda}.btn-secondary{background-color:#757575;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#616161}.educational-content{background:#e3f2fd;padding:25px;border-radius:4px;border-left:4px solid #2196F3;margin-top:20px}.educational-content h3{margin-top:0;color:#1976d2}.educational-content p{color:#333;line-height:1.6}.educational-content ul{color:#333;line-height:1.8}.educational-content li{margin-bottom:8px}.boat-diagram-container{display:flex;flex-direction:column;gap:20px}.boat-diagram{background:#fff;border:2px solid #333;border-radius:4px}.boat-parts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px}.part-button{padding:10px;background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-weight:700;transition:all .3s ease}.part-button:hover{border-color:#2196f3;background:#f0f0f0}.part-button.selected{background:#2196f3;color:#fff;border-color:#2196f3}.part-details{background:#fff;padding:20px;border:2px solid #ddd;border-radius:4px;min-height:200px}.part-details h3{margin-top:0;color:#333}.part-details p{color:#666;line-height:1.6}.quiz-container{background:#fff;padding:30px;border-radius:4px;border:2px solid #ddd;max-width:600px;margin:0 auto}.quiz-container h3{text-align:center;color:#333}.quiz-question{margin:20px 0}.question-text{font-size:18px;font-weight:700;color:#333;margin-bottom:20px;line-height:1.4}.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quiz-option{padding:15px;background:#f0f0f0;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;font-weight:700;transition:all .3s ease}.quiz-option:hover{background:#e0e0e0;border-color:#2196f3}.quiz-result{text-align:center;padding:30px;background:#f5f5f5;border-radius:4px}.quiz-result h4{color:#333;margin-bottom:15px}.quiz-result p{font-size:16px;color:#666;margin:10px 0}.quiz-result strong{color:#2196f3;font-size:20px}.action-buttons{text-align:center;margin:20px 0}@media(max-width:1024px){.scene-content{grid-template-columns:1fr}.controls-container{max-height:none}}@media(max-width:768px){.scene{padding:15px}.boat-parts-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.navigation-buttons{flex-direction:column}.btn{width:100%}.quiz-options{grid-template-columns:1fr}}.boat-controls{background-color:#f5f5f5;border:1px solid #ddd;border-radius:8px;padding:20px;margin:20px 0;font-family:Arial,sans-serif}.controls-section{margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #ddd}.controls-section:last-child{border-bottom:none}.controls-section h3{margin:0 0 15px;color:#333;font-size:16px;font-weight:700}.control-group{margin-bottom:15px;padding:10px;background:#fff;border-radius:4px}.control-group label{display:flex;align-items:center;margin-bottom:8px;font-weight:500;color:#333}.slider{margin:0 10px;flex:1;max-width:300px}.control-hint{font-size:12px;color:#666;margin-left:10px;font-style:italic}.toggle-btn{display:inline-block;margin-top:8px;padding:8px 16px;background-color:#ddd;border:2px solid #999;border-radius:4px;cursor:pointer;font-weight:700;transition:all .3s ease}.toggle-btn:hover{background-color:#ccc}.toggle-btn.active{background-color:#4caf50;color:#fff;border-color:#45a049}.stats{background-color:#f9f9f9}.stat-group{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{display:flex;justify-content:space-between;padding:8px;background:#fff;border-radius:4px;border-left:4px solid #2196F3}.stat label{font-weight:600;color:#333;margin-right:10px}.stat span{color:#2196f3;font-weight:700}.tips{background-color:#e3f2fd;border-left:4px solid #2196F3}.tips p{margin:8px 0;color:#333;font-size:14px}@media(max-width:768px){.stat-group{grid-template-columns:1fr}.control-group label{flex-direction:column;align-items:flex-start}.slider{width:100%;margin-top:8px}}.emergency-trainer{display:grid;grid-template-columns:250px 1fr;gap:30px;margin:30px 0}.scenario-selector{background:#fff;padding:20px;border:2px solid #ddd;border-radius:4px;height:fit-content;position:sticky;top:20px}.scenario-selector h3{margin-top:0;color:#333}.scenario-buttons{display:flex;flex-direction:column;gap:10px}.scenario-btn{padding:12px;background:#fff;border:2px solid #ddd;border-radius:4px;text-align:left;cursor:pointer;font-weight:700;color:#333;transition:all .3s ease;font-size:14px}.scenario-btn:hover{border-color:#ff6b6b;background:#fff5f5}.scenario-btn.active{background:#ff6b6b;color:#fff;border-color:#ff6b6b}.scenario-content{background:#fff;padding:30px;border:2px solid #ddd;border-radius:4px}.scenario-content h3{margin-top:0;color:#333}.scenario-description{background:#ffebee;padding:15px;border-left:4px solid #FF6B6B;margin:20px 0;color:#333;font-weight:700}.progress-bar{margin:30px 0;padding:20px;background:#f5f5f5;border-radius:4px}.progress-item{margin-bottom:20px}.progress-item:last-child{margin-bottom:0}.progress-item label{display:block;font-weight:700;color:#333;margin-bottom:8px}.progress{height:24px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:5px}.progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);transition:width .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px}.progress-item span{color:#666;font-size:12px}.scenario-procedures,.scenario-checklist{margin:30px 0}.scenario-procedures h4,.scenario-checklist h4{color:#333;margin-bottom:15px;font-size:16px}.procedure-list,.checklist-items{display:flex;flex-direction:column;gap:10px}.procedure-item,.checklist-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#f9f9f9;border-radius:4px;cursor:pointer;transition:all .3s ease}.procedure-item:hover,.checklist-item:hover{background:#f0f0f0}.procedure-item input[type=checkbox],.checklist-item input[type=checkbox]{margin-top:3px;cursor:pointer;width:18px;height:18px}.procedure-text,.checklist-text{color:#333;line-height:1.5;flex:1}.procedure-item input[type=checkbox]:checked~.procedure-text,.checklist-item input[type=checkbox]:checked~.checklist-text{text-decoration:line-through;color:#999}.completion-message{margin-top:30px;padding:20px;background:#c8e6c9;border-left:4px solid #4CAF50;border-radius:4px;color:#2e7d32;font-weight:700;text-align:center;font-size:16px}@media(max-width:1024px){.emergency-trainer{grid-template-columns:1fr}.scenario-selector{position:static}.scenario-buttons{flex-direction:row;flex-wrap:wrap}.scenario-btn{flex:1;min-width:120px}}@media(max-width:768px){.scenario-content{padding:15px}.scenario-btn{padding:10px;font-size:12px}}.skill-progress{background:#fff;padding:20px;border-radius:8px;margin-bottom:30px;box-shadow:0 2px 4px #0000001a}.skill-progress h3{margin-top:0;color:#333;margin-bottom:15px}.skill-progress .progress{height:24px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:10px}.skill-progress .progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);transition:width .3s ease}.skill-progress p{color:#666;margin:0}.skill-layout{display:grid;grid-template-columns:250px 1fr;gap:30px;margin:30px 0}.skill-selector{background:#fff;padding:20px;border:2px solid #ddd;border-radius:4px;height:fit-content;position:sticky;top:20px}.skill-selector h3{margin-top:0;color:#333;margin-bottom:15px}.skill-list{display:flex;flex-direction:column;gap:8px}.skill-btn{text-align:left;padding:12px 15px;background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-weight:700;color:#333;transition:all .3s ease;display:flex;align-items:center;gap:10px;position:relative}.skill-btn:hover{border-color:#2196f3;background:#f0f0f0}.skill-btn.active{background:#2196f3;color:#fff;border-color:#2196f3}.skill-btn.completed .skill-check{display:inline-block;width:20px;height:20px;background:#4caf50;color:#fff;border-radius:50%;text-align:center;line-height:20px;font-size:12px}.skill-check{display:none}.skill-display{background:#fff;padding:30px;border:2px solid #ddd;border-radius:4px}.skill-display h3{margin-top:0;color:#333}.skill-description{color:#666;font-style:italic;margin-bottom:20px}.skill-content{margin:20px 0}.skill-content h4{color:#333;margin-bottom:15px;font-size:16px}.knot-list,.rigging-guide{display:grid;gap:15px;margin-bottom:20px}.knot-item,.rigging-box{background:#f9f9f9;padding:15px;border-left:4px solid #2196F3;border-radius:4px}.knot-item h5,.rigging-box h5{margin-top:0;color:#2196f3}.knot-item p,.rigging-box p{margin:8px 0;color:#666;font-size:14px;line-height:1.5}.knot-item ul,.rigging-box ul{margin:10px 0;padding-left:20px;color:#666}.knot-item li,.rigging-box li{margin-bottom:5px;font-size:14px}.procedure-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:20px}.step-detail{background:#f9f9f9;padding:20px;border-radius:4px;display:flex;gap:15px}.step-number{width:40px;height:40px;background:#2196f3;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0}.step-detail h5{margin-top:0;color:#333}.step-detail p{margin:8px 0;color:#666;font-size:13px;line-height:1.5}.weather-signs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:20px}.weather-card{background:#f9f9f9;padding:15px;border-radius:4px;border-left:4px solid #FF9800}.weather-card h5{margin-top:0;color:#ff9800}.weather-card ul{margin:10px 0;padding-left:20px;color:#666;font-size:13px}.weather-card li{margin-bottom:8px;line-height:1.4}.skill-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px;margin-bottom:20px}.skill-box{background:#f9f9f9;padding:15px;border-radius:4px;border-left:4px solid #4CAF50}.skill-box h5{margin-top:0;color:#4caf50}.skill-box p{margin:8px 0;color:#666;font-size:13px;line-height:1.5}.btn-success{background-color:#4caf50;color:#fff}.btn-success:hover:not(:disabled){background-color:#45a049}@media(max-width:1024px){.skill-layout{grid-template-columns:1fr}.skill-selector{position:static}.skill-list{flex-direction:row;flex-wrap:wrap}.skill-btn{flex:1;min-width:120px;justify-content:center}}@media(max-width:768px){.procedure-steps,.weather-signs,.skill-boxes{grid-template-columns:1fr}}.wind-presets{background:#f9f9f9;padding:15px;border-radius:4px;margin:15px 0;border-left:4px solid #FF9800}.wind-presets h4{margin-top:0;color:#333;margin-bottom:12px}.preset-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}.preset-btn{padding:10px;background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-weight:700;color:#333;transition:all .3s ease;font-size:12px}.preset-btn:hover{border-color:#ff9800;background:#fff9f5}.preset-btn.active{background:#ff9800;color:#fff;border-color:#ff9800}.sailing-stats{background:#fff;border:2px solid #ddd;border-radius:4px;padding:15px;margin-top:15px}.stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0}.stat-row label{font-weight:600;color:#333}@media(max-width:768px){.preset-buttons{grid-template-columns:repeat(2,1fr)}.sailing-stats{padding:10px}.stat-row{padding:6px 0;font-size:14px}}.scene-content{display:grid;grid-template-columns:1fr 250px;gap:20px}.canvas-container{display:flex;flex-direction:column;gap:15px}.challenge-info{background:linear-gradient(to bottom,#f8f9fa,#fff);padding:20px;border-radius:8px;border:2px solid #e0e0e0;border-left:5px solid #2196F3}.challenge-info h3{margin:0 0 10px;color:#1976d2;font-size:18px}.challenge-info p{margin:0 0 15px;color:#666;font-size:14px;line-height:1.5}.challenge-status{display:flex;gap:10px;margin:10px 0 15px}.status-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}.status-badge.completed{background:#4caf50;color:#fff}.status-badge.active{background:#ff9800;color:#fff;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.objective-box{background:#e3f2fd;border-left:4px solid #2196F3;padding:12px;border-radius:4px;margin:15px 0;color:#1565c0;font-size:14px;font-weight:700}.instructions-box{background:#f5f5f5;padding:15px;border-radius:4px;margin:15px 0}.instructions-box strong{display:block;margin-bottom:10px;color:#333}.instructions-box ul{margin:0;padding-left:20px;color:#555;font-size:13px;line-height:1.6}.instructions-box li{margin:5px 0}.sailing-stats{background:#fff;border:1px solid #ddd;border-radius:4px;padding:12px;margin:15px 0}.stat-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee;font-size:14px}.stat-row:last-child{border-bottom:none}.stat-row label{font-weight:700;color:#666}.stat-row span{color:#2196f3;font-weight:700;font-family:monospace}.feedback-message{padding:12px;margin:15px 0;border-radius:4px;font-weight:700;text-align:center;animation:fadeIn .3s ease}.feedback-message{background:#e8f5e9;color:#2e7d32;border-left:4px solid #4CAF50}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.maneuver-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.maneuver-btn{padding:12px;border:none;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s ease;color:#fff;text-transform:uppercase}.tack-btn{background:#2196f3}.tack-btn:hover:not(:disabled){background:#1976d2;transform:translateY(-2px);box-shadow:0 4px 8px #2196f34d}.jibe-btn{background:#ff9800}.jibe-btn:hover:not(:disabled){background:#f57c00;transform:translateY(-2px);box-shadow:0 4px 8px #ff98004d}.maneuver-btn:disabled{opacity:.5;cursor:not-allowed}.challenges-panel{background:#f5f5f5;border-radius:8px;padding:15px;border:2px solid #e0e0e0;height:fit-content;position:sticky;top:20px}.challenges-panel h4{margin:0 0 15px;color:#333;font-size:14px;text-transform:uppercase;letter-spacing:1px}.challenges-list{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.challenge-btn{padding:10px 12px;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;text-align:left;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease;color:#555}.challenge-btn:hover{border-color:#2196f3;background:#f0f7ff}.challenge-btn.active{background:#2196f3;color:#fff;border-color:#2196f3}.challenge-btn.completed{border-color:#4caf50}.challenge-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.challenge-status-icon{font-size:16px;margin-left:5px;flex-shrink:0}.challenges-progress{text-align:center;padding:10px;background:#fff;border-radius:4px;border:1px solid #ddd}.challenges-progress p{margin:0;font-size:12px;color:#666;font-weight:700}@media(max-width:1024px){.scene-content{grid-template-columns:1fr}.challenges-panel{position:relative;top:auto}}@media(max-width:768px){.maneuver-buttons{grid-template-columns:1fr}.challenge-btn{font-size:11px;padding:8px 10px}}
