@charset "UTF-8";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sky: #4FC3F7;--sun: #FFD54F;--coral: #FF7043;--mint: #66BB6A;--lavender: #CE93D8;--cream: #FFF8E1;--deep: #1A237E;--card-bg: #ffffff;--shadow: 0 8px 32px rgba(26,35,126,.13);--radius-card: 32px;--radius-btn: 50px;--ease-spring: cubic-bezier(.34,1.56,.64,1);--ease-out: cubic-bezier(.4,0,.2,1)}body{font-family:sans-serif}#app header{position:relative;z-index:10;text-align:center;padding:20px 16px 4px}#app main{position:relative;z-index:10;display:flex;justify-content:center;padding:20px 16px 32px}#app .app-title{font-size:clamp(1.8rem,5.5vw,3rem);font-weight:900;color:var(--deep);text-shadow:3px 3px 0 rgba(79,195,247,.35);letter-spacing:-1px}#app .app-title span{color:var(--coral)}#app .mode-switcher{position:relative;z-index:10;display:flex;justify-content:center;gap:12px;padding:14px 16px 4px;flex-wrap:wrap}#app .mode-btn{background:#ffffffbf;border:3px solid transparent;border-radius:var(--radius-btn);padding:10px 22px;font-family:inherit;font-size:1rem;font-weight:800;color:#7986cb;cursor:pointer;transition:all .22s var(--ease-spring);box-shadow:0 3px 12px #00000012}#app .mode-btn:hover{transform:translateY(-2px);border-color:var(--sky)}#app .mode-btn.active{background:linear-gradient(135deg,var(--deep),#3949AB);color:#fff;border-color:transparent;box-shadow:0 6px 20px #1a237e47;transform:translateY(-2px)}#app .score-bar{position:relative;z-index:10;display:flex;justify-content:center;align-items:center;gap:20px;padding:10px 16px 4px;flex-wrap:wrap}#app .score-pill{background:#fff;border-radius:var(--radius-btn);padding:8px 22px;box-shadow:var(--shadow);font-size:1.1rem;font-weight:700;color:var(--deep);display:flex;align-items:center;gap:7px;transition:transform .2s}#app .score-pill.bounce{animation:pillBounce .4s cubic-bezier(.36,.07,.19,.97)}#app .score-pill .icon{font-size:1.3rem}#app .progress-wrap{position:relative;z-index:10;width:min(500px,90vw);margin:8px auto 0;background:#ffffff8c;border-radius:20px;height:14px;overflow:hidden;box-shadow:inset 0 2px 6px #00000014}#app .progress-fill{height:100%;background:linear-gradient(90deg,var(--sky),var(--lavender));border-radius:20px;transition:width .6s var(--ease-out)}#app .quiz-card{background:var(--card-bg);border-radius:var(--radius-card);box-shadow:0 12px 48px #1a237e24,0 2px 8px #0000000f;width:min(540px,100%);overflow:hidden;animation:cardIn .5s var(--ease-spring)}#app .img-wrap{position:relative;background:linear-gradient(135deg,#e3f2fd,#f8bbd0);padding:28px;text-align:center;min-height:210px;display:flex;align-items:center;justify-content:center}#app .img-wrap:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:28px;background:var(--card-bg);border-radius:50% 50% 0 0/100% 100% 0 0}#app .quiz-img{max-width:180px;max-height:180px;border-radius:20px;object-fit:cover;box-shadow:0 8px 28px #0000002e;transition:transform .3s;background-color:#fff;padding:1rem}#app .quiz-img:hover{transform:scale(1.04) rotate(1deg)}#app .img-placeholder{font-size:6rem;filter:drop-shadow(0 4px 12px rgba(0,0,0,.15))}#app .card-body{padding:24px 28px 28px}#app .tashkeel-body{padding:20px 20px 28px}#app .question-label{text-align:center;font-size:1rem;color:#7986cb;font-weight:600;margin-bottom:18px}#app .feedback{margin-top:16px;padding:12px 16px;border-radius:18px;text-align:center;font-size:1.05rem;font-weight:700;opacity:0;transform:translateY(10px);transition:all .3s;min-height:48px;line-height:1.6}#app .feedback.show{opacity:1;transform:translateY(0)}#app .feedback.success{background:linear-gradient(135deg,#c8e6c9,#dcedc8);color:#2e7d32}#app .feedback.error{background:linear-gradient(135deg,#ffcdd2,#ffe0b2);color:#c62828}#app .action-btn,#app .check-btn{display:block;margin:18px auto 0;background:linear-gradient(135deg,var(--deep),#3949AB);color:#fff;border:none;border-radius:var(--radius-btn);padding:13px 40px;font-family:inherit;font-size:1.1rem;font-weight:800;cursor:pointer;box-shadow:0 6px 20px #1a237e4d;transition:all .2s;opacity:.45;pointer-events:none}#app .action-btn.ready,#app .check-btn.ready{opacity:1;pointer-events:all}#app .action-btn.ready:hover,#app .check-btn.ready:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 10px 28px #1a237e66}#app .action-btn.next-ready{background:linear-gradient(135deg,var(--mint),#43A047);box-shadow:0 6px 20px #66bb6a59;opacity:1;pointer-events:all}#app .action-btn.next-ready:hover{transform:translateY(-3px) scale(1.05)}#app .reset-btn{background:linear-gradient(135deg,#FF8A65,var(--coral));color:#fff;border:none;border-radius:var(--radius-btn);padding:13px 28px;font-family:inherit;font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 4px 14px #ff704340;transition:all .2s}#app .reset-btn:hover{transform:translateY(-2px)}#app .choices{display:grid;grid-template-columns:1fr 1fr;gap:14px}#app .choice-btn{background:linear-gradient(135deg,#f3f4ff,#eef6ff);border:3px solid transparent;border-radius:22px;padding:16px 10px;font-family:inherit;font-size:clamp(1.3rem,4vw,1.8rem);font-weight:800;color:var(--deep);cursor:pointer;transition:all .18s var(--ease-spring);box-shadow:0 4px 14px #00000012;text-align:center;position:relative;overflow:hidden}#app .choice-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.7),transparent);border-radius:inherit}#app .choice-btn:hover:not(:disabled){transform:translateY(-4px) scale(1.04);box-shadow:0 10px 28px #1a237e26;border-color:var(--sky);background:linear-gradient(135deg,#e3f2fd,#ede7f6)}#app .choice-btn:active:not(:disabled){transform:scale(.97)}#app .choice-btn.correct{background:linear-gradient(135deg,#c8e6c9,#a5d6a7)!important;border-color:var(--mint)!important;color:#1b5e20;animation:correctPop .5s var(--ease-spring)}#app .choice-btn.wrong{background:linear-gradient(135deg,#ffcdd2,#ef9a9a)!important;border-color:var(--coral)!important;color:#b71c1c;animation:shake .45s ease}#app .timer-wrap{display:flex;justify-content:center;margin-bottom:12px}#app .timer-ring{position:relative;width:56px;height:56px}#app .timer-ring svg{transform:rotate(-90deg)}#app .timer-ring circle{fill:none;stroke-width:5}#app .timer-bg{stroke:#e8eaf6}#app .timer-fg{stroke:var(--sky);stroke-linecap:round;transition:stroke-dashoffset .9s linear,stroke .3s}#app .timer-fg.warning{stroke:var(--sun)}#app .timer-fg.danger{stroke:var(--coral)}#app .timer-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:900;color:var(--deep)}#app .listen-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 22px;background:linear-gradient(135deg,#e8eaf6,#ede7f6);border:3px solid var(--lavender);border-radius:var(--radius-btn);padding:12px 28px;font-family:inherit;font-size:1.1rem;font-weight:800;color:var(--deep);cursor:pointer;transition:all .2s var(--ease-spring);box-shadow:0 4px 16px #ce93d840}#app .listen-btn:hover{transform:scale(1.06);box-shadow:0 8px 24px #ce93d866}#app .listen-btn.playing{background:linear-gradient(135deg,#ce93d8,#b39ddb);color:#fff;border-color:transparent}#app .speaker-icon{font-size:1.6rem}#app .listen-btn.playing .speaker-icon{animation:speakerPulse .5s ease infinite alternate}#app .word-display{display:flex;justify-content:center;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:22px;direction:rtl;padding:4px 0 8px}#app .letter-slot{display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;cursor:pointer;transition:transform .15s}#app .letter-slot[data-needsmark=false]{cursor:default}#app .letter-slot:hover[data-needsmark=true]{transform:scale(1.1)}#app .bare-letter{font-size:clamp(2rem,7vw,3rem);font-weight:900;color:var(--deep);font-family:Tajawal,serif;padding:6px 10px;background:linear-gradient(135deg,#f3f4ff,#eef6ff);border-radius:14px;min-width:46px;text-align:center;border:2.5px solid transparent;transition:all .2s;-webkit-user-select:none;user-select:none;line-height:1}#app .letter-slot.selected .bare-letter{border-color:var(--lavender);background:#ede7f6}#app .letter-slot.done-correct .bare-letter{border-color:var(--mint);background:#e8f5e9;color:#2e7d32}#app .letter-slot.done-wrong .bare-letter{border-color:var(--coral);background:#fff3e0}#app .mark-display{font-size:1.3rem;min-height:30px;line-height:30px;color:#9575cd;font-weight:900;text-align:center;min-width:46px;font-family:Tajawal,serif;transition:color .2s}#app .mark-display.correct-mark{color:var(--mint)}#app .mark-display.wrong-mark{color:var(--coral)}#app .mark-display.pending{color:#bdbdbd;font-size:1.1rem}#app .revealed-word{font-family:Tajawal,serif;font-size:2.2rem;font-weight:900;color:var(--deep);letter-spacing:3px}#app .diacritic-picker{display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);z-index:200;background:#fff;border-radius:20px;padding:10px;gap:6px;box-shadow:0 8px 32px #0000002e;border:2px solid #E8EAF6;grid-template-columns:repeat(3,1fr);white-space:nowrap}#app .diacritic-picker.open{display:grid;animation:pickerIn .2s var(--ease-spring)}#app .mark-btn{background:#f3f4ff;border:2px solid transparent;border-radius:12px;padding:8px 6px;font-size:1.5rem;font-weight:900;cursor:pointer;font-family:Tajawal,serif;color:var(--deep);transition:all .15s;text-align:center;min-width:42px;line-height:1.5}#app .mark-btn:hover{background:#ede7f6;border-color:var(--lavender);transform:scale(1.12)}#app .mark-btn.selected-mark{background:linear-gradient(135deg,var(--deep),#5C6BC0);color:#fff;border-color:transparent}#app .word-row{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;direction:rtl;margin-bottom:24px}#app .letter-tile{width:54px;height:62px;display:flex;align-items:center;justify-content:center;font-family:Tajawal,serif;font-size:2.2rem;font-weight:900;color:var(--deep);background:linear-gradient(135deg,#f3f4ff,#e8eaf6);border-radius:16px;border:2.5px solid #C5CAE9;box-shadow:0 3px 10px #1a237e14;-webkit-user-select:none;user-select:none}#app .blank-slot{width:54px;height:62px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}#app .blank-btn{width:54px;height:62px;display:flex;align-items:center;justify-content:center;font-family:Tajawal,serif;font-size:2.2rem;font-weight:900;color:var(--deep);background:linear-gradient(135deg,#fff8e1,#fff3e0);border-radius:16px;border:3px dashed #FFB74D;box-shadow:0 3px 10px #ff98001f;cursor:pointer;transition:all .18s var(--ease-spring);position:relative}#app .blank-btn:hover{transform:translateY(-3px) scale(1.08);border-color:var(--coral);box-shadow:0 8px 22px #ff704333}#app .blank-btn.filled{background:linear-gradient(135deg,#ede7f6,#e8eaf6);border:3px solid var(--lavender)}#app .blank-btn.correct-slot{background:linear-gradient(135deg,#c8e6c9,#a5d6a7)!important;border:3px solid var(--mint)!important;color:#1b5e20;animation:correctPop .5s var(--ease-spring)}#app .blank-btn.wrong-slot{background:linear-gradient(135deg,#ffcdd2,#ef9a9a)!important;border:3px solid var(--coral)!important;color:#b71c1c;animation:shake .45s ease}#app .letter-picker{display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);z-index:200;background:#fff;border-radius:24px;padding:12px;gap:7px;box-shadow:0 10px 40px #0000002e;border:2px solid #EDE7F6;grid-template-columns:repeat(4,1fr);min-width:240px}#app .letter-picker.open{display:grid;animation:pickerIn .22s var(--ease-spring)}#app .ltr-btn{background:#f3f4ff;border:2.5px solid transparent;border-radius:13px;padding:10px 6px;font-size:1.5rem;font-weight:900;cursor:pointer;font-family:Tajawal,serif;color:var(--deep);transition:all .14s;text-align:center;min-width:48px;line-height:1.3}#app .ltr-btn:hover{background:#ede7f6;border-color:var(--lavender);transform:scale(1.15)}#app .ltr-btn.chosen{background:linear-gradient(135deg,var(--deep),#5C6BC0);color:#fff;border-color:transparent}#app .connect-arena{background:var(--card-bg);border-radius:var(--radius-card);box-shadow:0 12px 48px #1a237e21,0 2px 8px #0000000f;width:min(700px,100%);padding:24px 16px 28px;animation:cardIn .5s var(--ease-spring);position:relative}#app .arena-title{text-align:center;font-size:1rem;color:#7986cb;font-weight:700;margin-bottom:12px}#app .columns{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start;position:relative}#app .col-words{display:flex;flex-direction:column;gap:14px;padding:0 8px 0 0;align-items:flex-start}#app .col-images{display:flex;flex-direction:column;gap:14px;padding:0 0 0 8px;align-items:flex-end}#app .action-row{display:flex;justify-content:center;gap:14px;margin-top:22px;flex-wrap:wrap}#app .word-card{background:linear-gradient(135deg,#f3f4ff,#eef6ff);border:3px solid #C5CAE9;border-radius:20px;padding:12px 20px;font-family:Tajawal,serif;font-size:clamp(1.2rem,4vw,1.8rem);font-weight:900;color:var(--deep);cursor:pointer;transition:all .2s var(--ease-spring);box-shadow:0 3px 10px #1a237e12;width:50%;text-align:center;position:relative;-webkit-user-select:none;user-select:none}#app .word-card:hover:not(.locked){transform:translate(-4px) scale(1.04);border-color:var(--lavender);box-shadow:0 6px 20px #1a237e21}#app .word-card.selected{border-color:var(--deep)!important;box-shadow:0 0 0 4px #1a237e2e,0 6px 20px #1a237e26;transform:scale(1.06)}#app .word-card.locked{cursor:default;opacity:.85}#app .word-card.correct-card{background:linear-gradient(135deg,#c8e6c9,#a5d6a7)!important;border-color:var(--mint)!important;color:#1b5e20}#app .word-card.wrong-card{background:linear-gradient(135deg,#ffcdd2,#ef9a9a)!important;border-color:var(--coral)!important;color:#b71c1c;animation:shake .45s ease}#app .word-card:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #C5CAE9;transition:all .2s}#app .word-card.selected:before{background:var(--deep);border-color:var(--deep)}#app .word-card.correct-card:before{background:var(--mint);border-color:var(--mint)}#app .word-card.wrong-card:before{background:var(--coral);border-color:var(--coral)}#app .image-card{background:linear-gradient(135deg,#fff8e1,#fff3e0);border:3px solid #FFE082;border-radius:20px;padding:10px;cursor:pointer;transition:all .2s var(--ease-spring);box-shadow:0 3px 10px #ff98001a;width:50%;position:relative;display:flex;align-items:center;justify-content:center}#app .image-card:hover:not(.locked){transform:translate(4px) scale(1.04);border-color:var(--sun);box-shadow:0 6px 20px #ff98002e}#app .image-card.targeted{border-color:var(--deep)!important;box-shadow:0 0 0 4px #1a237e2e;transform:scale(1.06)}#app .image-card.locked{cursor:default;opacity:.85}#app .image-card.correct-card{background:linear-gradient(135deg,#c8e6c9,#dcedc8)!important;border-color:var(--mint)!important}#app .image-card.wrong-card{background:linear-gradient(135deg,#ffcdd2,#ffe0b2)!important;border-color:var(--coral)!important;animation:shake .45s ease}#app .image-card img{width:100%;max-width:110px;height:90px;object-fit:cover;border-radius:14px;box-shadow:0 4px 12px #0000001f;display:block;transition:transform .2s;padding:1rem;background-color:#fff}#app .image-card:hover:not(.locked) img{transform:scale(1.05)}#app .img-fallback{font-size:3.5rem;text-align:center;line-height:90px}#app .image-card:before{content:"";position:absolute;right:-10px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #FFE082;transition:all .2s;z-index:2}#app .image-card.targeted:before{background:var(--deep);border-color:var(--deep)}#app .image-card.correct-card:before{background:var(--mint);border-color:var(--mint)}#app .image-card.wrong-card:before{background:var(--coral);border-color:var(--coral)}#app .svg-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}#app .conn-path{fill:none;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12));transition:stroke .3s,opacity .3s;opacity:.85}#app .conn-path.drawing{stroke-dasharray:8 4;animation:dashMove .6s linear infinite}#app .conn-path.confirmed{opacity:1;stroke-dasharray:none}#app .conn-path.correct-path{stroke:var(--mint)}#app .conn-path.wrong-path{stroke:var(--coral)}#app .drag-line{stroke:#7986cb;stroke-width:3.5;fill:none;stroke-dasharray:8 4;animation:dashMove .5s linear infinite;stroke-linecap:round}#app .star{position:fixed;font-size:1.5rem;animation:starFloat linear infinite;pointer-events:none;z-index:0;opacity:.5}#app #celebrate{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:999;overflow:hidden}#app .confetti-piece{position:absolute;top:-20px;border-radius:3px;animation:confettiFall linear forwards}#app .burst-star{position:absolute;font-size:2.5rem;animation:burstOut .8s cubic-bezier(.36,.07,.19,.97) forwards}#app .trophy-screen{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:linear-gradient(135deg,#fff8e1,#fce4ec,#e3f2fd);flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;animation:trophyIn .6s var(--ease-spring)}#app .trophy-screen.active{display:flex}#app .trophy-icon{font-size:clamp(5rem,18vw,9rem);animation:trophySpin 1.2s var(--ease-spring) .3s both;filter:drop-shadow(0 8px 24px rgba(255,213,79,.5))}#app .trophy-title{font-size:clamp(2rem,7vw,3.5rem);font-weight:900;color:var(--deep);margin:16px 0 8px}#app .trophy-sub{font-size:clamp(1rem,3.5vw,1.4rem);color:#5c6bc0;font-weight:600;margin-bottom:28px}#app .final-score-box{background:#fff;border-radius:28px;padding:24px 48px;box-shadow:var(--shadow);margin-bottom:32px}#app .final-score-num{font-size:clamp(3rem,10vw,5rem);font-weight:900;color:var(--coral);line-height:1}#app .final-score-label{font-size:1rem;color:#90a4ae;font-weight:600;margin-top:4px}#app .restart-btn{background:linear-gradient(135deg,var(--coral),#FF8A65);color:#fff;border:none;border-radius:var(--radius-btn);padding:16px 48px;font-family:inherit;font-size:1.3rem;font-weight:800;cursor:pointer;box-shadow:0 6px 24px #ff704359;transition:all .2s}#app .restart-btn:hover{transform:translateY(-3px) scale(1.05)}#app .loading-msg{text-align:center;padding:48px 24px;color:#9fa8da;font-size:1.1rem;font-weight:600}#app .loading-msg .big{font-size:3.5rem;display:block;margin-bottom:12px}@keyframes float1{0%,to{transform:translate(0)}50%{transform:translate(20px,30px)}}@keyframes float2{0%,to{transform:translate(0)}50%{transform:translate(-15px,25px)}}@keyframes starFloat{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.5}90%{opacity:.5}to{transform:translateY(-100px) rotate(360deg);opacity:0}}@keyframes confettiFall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}@keyframes burstOut{0%{transform:translate(-50%,-50%) scale(0);opacity:1}60%{transform:translate(var(--tx),var(--ty)) scale(1.2);opacity:1}to{transform:translate(calc(var(--tx) * 1.5),calc(var(--ty) * 1.5)) scale(.8);opacity:0}}@keyframes trophyIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes trophySpin{0%{transform:scale(0) rotate(-180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes pillBounce{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}@keyframes cardIn{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardOut{to{opacity:0;transform:translateY(-20px) scale(.97)}}@keyframes correctPop{0%{transform:scale(1)}40%{transform:scale(1.18) rotate(-3deg)}70%{transform:scale(.96) rotate(2deg)}to{transform:scale(1) rotate(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes speakerPulse{0%{transform:scale(1)}to{transform:scale(1.35)}}@keyframes pickerIn{0%{opacity:0;transform:translate(-50%) scale(.82)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes dashMove{to{stroke-dashoffset:-24}}@media (max-width: 420px){#app .card-body,#app .tashkeel-body{padding:14px 12px 20px}#app .choices{gap:10px}#app .choice-btn{padding:12px 6px;font-size:1.2rem;border-radius:16px}#app .bare-letter{font-size:1.9rem;min-width:38px;padding:4px 6px}#app .letter-tile,#app .blank-btn{font-size:1.7rem;border-radius:13px}#app .letter-tile,#app .blank-btn,#app .blank-slot{width:44px;height:52px}#app .word-row{gap:4px}#app .ltr-btn{min-width:40px;font-size:1.3rem}#app .letter-picker{min-width:200px}}@media (max-width: 480px){#app .word-card{font-size:1.2rem;padding:10px 14px;border-radius:16px}#app .image-card img{height:72px;max-width:88px}#app .col-words,#app .col-images{gap:10px}#app .connect-arena{padding:18px 10px 22px}}
