*{box-sizing:border-box;margin:0;padding:0}body{color:#2d3748;background:linear-gradient(135deg,#ffe0f0 0%,#e8d5f5 50%,#d5e8f5 100%);min-height:100vh;font-family:Nunito,Segoe UI,sans-serif;overflow-x:hidden}body.no-scroll{height:100vh;overflow:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 10% 20%,#ff69b414 0%,#0000 50%),radial-gradient(circle at 90% 80%,#9370db14 0%,#0000 50%),radial-gradient(circle,#20b2aa0d 0%,#0000 50%);position:fixed;inset:0}.page-container{z-index:1;max-width:1100px;margin:0 auto;padding:20px;animation:.4s fadeIn;position:relative}.page-container.wide{max-width:1400px}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.card{background:#fff;border-radius:20px;margin-bottom:20px;padding:30px;box-shadow:0 8px 30px #00000014,0 2px 8px #0000000a}.menu-title{text-align:center;background:linear-gradient(135deg,#ff69b4,#9370db,#20b2aa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:5px;font-family:Fredoka One,cursive;font-size:clamp(2.5em,7vw,4em);line-height:1.2}.menu-subtitle{text-align:center;color:#666;margin-bottom:30px;font-size:1.2em;font-weight:600}.menu-stars{text-align:center;letter-spacing:8px;margin-bottom:10px;font-size:1.8em}.menu-map-preview{object-fit:contain;border:3px solid #e8d5f5;border-radius:15px;width:100%;max-height:300px;margin-bottom:20px}.btn{cursor:pointer;text-align:center;letter-spacing:.5px;border:none;border-radius:50px;padding:15px 40px;font-family:Fredoka One,cursive;font-size:1.3em;text-decoration:none;transition:all .2s;display:inline-block}.btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #00000026}.btn:active{transform:translateY(-1px)}.btn-primary{color:#fff;background:linear-gradient(135deg,#ff69b4,#ff1493);box-shadow:0 4px 15px #ff69b466}.btn-secondary{color:#fff;background:linear-gradient(135deg,#9370db,#7b68ee);box-shadow:0 4px 15px #9370db66}.btn-small{padding:10px 25px;font-size:1em}.btn-group{flex-wrap:wrap;justify-content:center;gap:15px;display:flex}.game-layout{align-items:stretch;gap:20px;height:calc(100vh - 40px);max-height:800px;display:flex}.game-map-panel{flex-direction:column;flex:1;min-width:0;display:flex}.game-question-panel{background:#fff;border-radius:20px;flex-direction:column;flex-shrink:0;width:280px;padding:20px;display:flex;box-shadow:0 8px 30px #00000014,0 2px 8px #0000000a}.game-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.progress-info{color:#555;font-size:1em;font-weight:700}.score-info{color:#9370db;font-size:1em;font-weight:700}.progress-bar-outer{background:#f0e6f6;border-radius:10px;width:100%;height:10px;margin-bottom:15px;overflow:hidden}.progress-bar-inner{background:linear-gradient(90deg,#ff69b4,#9370db,#20b2aa);border-radius:10px;height:100%;transition:width .5s}.timer-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.timer-label{color:#888;font-size:.75em;font-weight:700}.timer-countdown{color:#0000;font-family:Fredoka One,cursive;font-size:.95em;transition:color .2s}.timer-countdown.active{color:#e74c3c;animation:.4s cubic-bezier(.68,-.55,.27,1.55) countdownPop}@keyframes countdownPop{0%{transform:scale(1.6)}to{transform:scale(1)}}.timer-bar-outer{background:#f0e6f6;border-radius:8px;width:100%;height:8px;margin-bottom:15px;overflow:hidden}.timer-bar-inner{background:#2ecc71;border-radius:8px;width:100%;height:100%;transition:none}.question-box{text-align:center;background:linear-gradient(135deg,#fff5f9,#f5f0ff);border:2px solid #f0e0f5;border-radius:15px;flex-direction:column;flex-grow:1;justify-content:center;margin-bottom:15px;padding:15px 18px;display:flex}.question-text{color:#333;font-family:Fredoka One,cursive;font-size:clamp(1.2em,3vw,1.5em)}.question-hint{color:#9370db;margin-top:8px;font-size:.85em;font-weight:600}.question-category{border-radius:20px;margin-bottom:8px;padding:3px 12px;font-size:.75em;font-weight:700;display:inline-block}.game-instructions{text-align:center;color:#888;margin-top:auto;padding-top:10px;font-size:.85em}.admin-screen{max-width:95vw;padding:10px}.admin-screen .card{flex-direction:column;height:calc(100vh - 40px);padding:10px;display:flex;overflow:hidden}.admin-screen .btn-small{border-radius:5px;padding:3px 8px;font-size:.75em}.admin-screen h2{font-size:1.1em}.admin-screen .card>div:first-child{flex-shrink:0;margin-bottom:4px}.admin-instructions{flex-shrink:0;margin-bottom:4px;padding:4px 10px;font-size:.75em}.admin-toolbar{flex-shrink:0;margin-bottom:4px}.admin-content{flex:1;gap:8px;min-height:0;display:flex}.admin-map-zoom-wrapper{flex:1;min-height:0}.admin-map-container{height:auto}.admin-map-container img{object-fit:initial;height:auto}.admin-sidebar{flex-direction:column;flex:0 0 200px;min-height:0;display:flex}.admin-list{flex:1;min-height:0;overflow-y:auto}.admin-form{flex:0 0 190px;min-height:0;overflow-y:auto}.admin-form input,.admin-form select{border-width:1px!important;border-radius:5px!important;padding:2px 5px!important;font-size:.78em!important}.admin-form label{margin-bottom:0!important;font-size:.7em!important}.admin-form>div{margin-bottom:4px!important}.cat-stad{color:#c0392b;background:#ffe4e1}.cat-land{color:#27ae60;background:#e8f5e9}.cat-regio{color:#e67e22;background:#fff3e0}.cat-gebergte{color:#6b8e23;background:#f1f8e9}.cat-rivier{color:#2980b9;background:#e3f2fd}.cat-zee{color:#8e44ad;background:#f3e5f5}@media (max-width:800px){.page-container.wide{padding:5px 8px}.game-layout{flex-direction:column;gap:6px;height:auto;max-height:none;padding:0}.game-map-panel{flex:0 auto}.map-zoom-wrapper{height:auto!important}.map-container,.map-container img{height:auto}.game-question-panel{border-radius:12px;flex-shrink:0;width:100%;padding:10px 12px}.game-header{gap:6px;margin-bottom:4px;font-size:.85em}.progress-bar-outer,.timer-bar-outer{height:6px;margin-bottom:6px}.question-box{border-radius:10px;flex-grow:0;margin-bottom:6px;padding:8px 12px}.question-text{font-size:1.1em}.question-hint{margin-top:4px;font-size:.75em}.game-instructions{display:none}.answer-input{border-radius:12px;max-width:100%;padding:10px 14px;font-size:16px}.answer-input-container.active{flex-direction:row;justify-content:center;align-items:center;gap:8px}.answer-submit{min-height:40px;padding:8px 16px}.feedback-overlay{padding:10px;font-size:1.1em}.result-screen .card{max-height:100dvh;padding:15px}.result-number{font-size:3em}.result-stars{font-size:1.5em}.result-message{margin-bottom:8px;font-size:1em}.result-item{padding:6px 10px;font-size:.8em}.result-screen .btn-group{flex-wrap:wrap;gap:8px}}.map-container{cursor:crosshair;-webkit-user-select:none;user-select:none;background:#d4e6f1;border:3px solid #e0d0f0;border-radius:15px;width:100%;height:100%;position:relative;overflow:hidden}.map-container.no-click{cursor:default;pointer-events:none}.map-container img{object-fit:contain;width:100%;height:100%;display:block}.map-overlay{pointer-events:none;position:absolute;inset:0}.marker{pointer-events:none;z-index:10;position:absolute;transform:translate(-50%,-50%)}.marker-question{background:#9370db;border:3px solid #fff;border-radius:50%;width:28px;height:28px;animation:1.5s ease-in-out infinite markerPulse;box-shadow:0 0 0 3px #9370db4d,0 3px 10px #0003}.marker-question:after{content:"?";color:#fff;font-size:14px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes markerPulse{0%,to{box-shadow:0 0 0 3px #9370db4d,0 3px 10px #0003}50%{transform:translate(-50%,-50%)scale(1.15);box-shadow:0 0 0 8px #9370db26,0 3px 15px #00000040}}.marker-correct{background:#2ecc71;border:3px solid #fff;border-radius:50%;width:32px;height:32px;animation:.4s cubic-bezier(.68,-.55,.27,1.55) popIn;box-shadow:0 0 0 3px #2ecc714d,0 3px 10px #0003}.marker-correct:after{content:"✓";color:#fff;font-size:18px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.marker-wrong{background:#e74c3c;border:3px solid #fff;border-radius:50%;width:32px;height:32px;animation:.4s cubic-bezier(.68,-.55,.27,1.55) popIn;box-shadow:0 0 0 3px #e74c3c4d,0 3px 10px #0003}.marker-wrong:after{content:"✗";color:#fff;font-size:18px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.marker-target{background:0 0;border:3px dashed #2ecc71;border-radius:50%;width:36px;height:36px;animation:1s ease-in-out infinite targetPulse}.marker-label{white-space:nowrap;color:#333;background:#fffffff2;border-radius:10px;padding:3px 10px;font-size:12px;font-weight:700;position:absolute;top:110%;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}@keyframes popIn{0%{transform:translate(-50%,-50%)scale(0)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes targetPulse{0%,to{opacity:1;transform:translate(-50%,-50%)scale(1)}50%{opacity:.6;transform:translate(-50%,-50%)scale(1.3)}}.connect-line{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}.inset-highlight{pointer-events:none;z-index:3;border:4px solid #ff69b4;border-radius:50%;animation:2s ease-in-out infinite insetGlow;position:absolute;box-shadow:0 0 20px #ff69b466}@keyframes insetGlow{0%,to{box-shadow:0 0 20px #ff69b466}50%{box-shadow:0 0 35px #ff69b499}}.answer-input-container{text-align:center;margin-top:15px;display:none}.answer-input-container.active{flex-direction:column;align-items:center;gap:10px;display:flex}.answer-input{text-align:center;border:3px solid #e0d0f0;border-radius:50px;outline:none;width:100%;max-width:240px;padding:10px 15px;font-family:Nunito,sans-serif;font-size:1em;font-weight:700;transition:border-color .3s}.answer-input:focus{border-color:#9370db;box-shadow:0 0 0 4px #9370db26}.answer-submit{margin-left:0}.feedback-overlay{z-index:100;text-align:center;padding:15px;font-family:Fredoka One,cursive;font-size:1.4em;animation:.3s slideDown;display:none;position:fixed;top:0;left:0;right:0}.feedback-overlay.active{display:block}.feedback-correct{color:#1e8449;background:linear-gradient(135deg,#d4efdf,#a9dfbf);border-bottom:3px solid #27ae60}.feedback-wrong{color:#922b21;background:linear-gradient(135deg,#fadbd8,#f5b7b1);border-bottom:3px solid #e74c3c}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.result-screen .card{flex-direction:column;max-height:calc(100vh - 60px);display:flex;overflow:hidden}.result-grade{text-align:center;flex-shrink:0;margin:10px 0}.result-number{background:linear-gradient(135deg,#ff69b4,#9370db);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Fredoka One,cursive;font-size:clamp(3em,10vw,5em);line-height:1.1}.result-stars{letter-spacing:6px;margin:5px 0;font-size:2em}.result-message{color:#9370db;margin:5px 0 10px;font-family:Fredoka One,cursive;font-size:1.2em}.result-summary{color:#555;flex-shrink:0;margin-bottom:10px;font-size:1em;font-weight:600}.result-details{flex:1;min-height:0;margin-bottom:15px;overflow-y:auto}.result-item{border-radius:10px;align-items:center;gap:10px;margin-bottom:4px;padding:8px 12px;font-size:.85em;font-weight:600;display:flex}.result-item.correct{background:#eafaf1}.result-item.wrong{background:#fdedec}.result-icon{flex-shrink:0;font-size:1.1em}.result-answer{color:#e74c3c;font-weight:700}.result-screen .btn-group{border-top:1px solid #f0e0f5;flex-shrink:0;padding-top:10px}.score-table{border-collapse:separate;border-spacing:0 6px;width:100%}.score-table th{text-align:left;color:#9370db;padding:10px 15px;font-family:Fredoka One,cursive;font-size:.95em}.score-table td{background:#faf5ff;padding:10px 15px;font-weight:600}.score-table tr td:first-child{border-radius:10px 0 0 10px}.score-table tr td:last-child{border-radius:0 10px 10px 0}.empty-scoreboard{text-align:center;color:#aaa;padding:40px 20px;font-size:1.1em;font-weight:600}#confetti-canvas{pointer-events:none;z-index:200;width:100%;height:100%;position:fixed;top:0;left:0}.name-modal-overlay{z-index:150;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.name-modal-overlay.active{display:flex}.name-modal{text-align:center;background:#fff;border-radius:20px;width:350px;max-width:90%;padding:30px 40px;animation:.3s modalPop;box-shadow:0 10px 40px #0003}@keyframes modalPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.name-modal h2{color:#9370db;margin-bottom:15px;font-family:Fredoka One,cursive;font-size:1.6em}.name-modal p{color:#666;margin-bottom:20px}.name-input{text-align:center;border:3px solid #e0e0e0;border-radius:12px;width:100%;margin-bottom:20px;padding:12px 16px;font-family:Nunito,sans-serif;font-size:1.2em;transition:border-color .2s}.name-input:focus{border-color:#9370db;outline:none}.name-modal .btn-group{justify-content:center;gap:10px;display:flex}.map-loading{color:#999;justify-content:center;align-items:center;min-height:400px;font-size:1.1em;font-weight:600;display:flex}.map-error{text-align:center;background:#fff3cd;border:2px solid #ffc107;border-radius:15px;margin-top:10px;padding:15px;font-size:.9em;font-weight:600;display:none}.map-error.active{display:block}@media (max-width:700px){.card{padding:14px}.btn{min-height:44px;padding:12px 30px;font-size:1.1em}.btn-small{min-height:40px;padding:10px 20px}.marker-question,.marker-correct,.marker-wrong{width:22px;height:22px}.marker-question:after{font-size:11px}.marker-correct:after,.marker-wrong:after{font-size:14px}.marker-target{width:28px;height:28px}.marker-label{padding:3px 8px;font-size:11px}}
