@font-face{font-family:GameArabic;src:url(assets/arabic-regular.ttf);font-weight:400;font-display:swap}@font-face{font-family:GameArabic;src:url(assets/arabic-bold.ttf);font-weight:700 900;font-display:swap}
:root{font-family:GameArabic,Tahoma,sans-serif;color:#fff8dc;background:#09252b;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;filter:grayscale(.7);opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid #fff;outline-offset:5px}button{transition:transform .12s,filter .12s}button:not(:disabled):active{transform:translateY(5px) scale(.97)}button:not(:disabled):hover{filter:brightness(1.12)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:800}a{color:#fcd76b}#viewport{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at center,#326150,#081b24)}#world{position:absolute;width:1280px;height:720px;overflow:hidden;transform-origin:center;box-shadow:0 0 90px #0009;background:#41829b}#scene,#ui,#fx{position:absolute;inset:0;width:100%;height:100%}#ui{pointer-events:none}#ui button,#ui input,#ui select,#ui .interactive{pointer-events:auto}#fx{pointer-events:none;overflow:hidden}button{border:0}.gold,.green,.blue,.wood,.icon-button{font-weight:800;color:#453010;border:3px solid #fff0a1;border-radius:22px;background:linear-gradient(#ffe77e,#fbc73f 53%,#eaa728);box-shadow:inset 0 3px 0 #fff7bc,inset 0 -5px 0 #d19120,0 6px 0 #765426,0 10px 18px #0005;text-shadow:0 1px #fff7;min-height:62px;padding:8px 25px;font-size:24px;line-height:1.5}.green{color:#fff;border-color:#baee9a;background:linear-gradient(#6dbc61,#33854d);box-shadow:inset 0 3px #d3ffb8,inset 0 -5px #276239,0 6px #163f2a,0 10px 18px #0004;text-shadow:0 2px #215934}.blue{color:white;border-color:#9aeaff;background:linear-gradient(#45bace,#197b9e);box-shadow:inset 0 3px #c0f3ff,inset 0 -5px #14617b,0 6px #153f55,0 10px 18px #0004;text-shadow:0 2px #104d68}.wood{color:#fff4ce;border-color:#d6b676;background:linear-gradient(#996b44,#68462e);box-shadow:inset 0 2px #e8b77c,inset 0 -5px #533822,0 5px #322718;text-shadow:0 2px #422b1b}.icon-button{min-width:65px;height:65px;border-radius:50%;padding:6px;font-size:29px;color:#144649;border-color:#ffe584;background:radial-gradient(circle at 30% 20%,#e7ffff,#5fc9c5 70%);box-shadow:inset 0 3px #fff,0 4px #876329,0 7px 14px #0005}.menu-tools{position:absolute;top:22px;left:25px;display:flex;gap:13px}.credits-button{font-size:19px;min-width:100px;border-radius:19px}.school-sign{position:absolute;left:457px;top:394px;width:294px;min-height:87px;background:linear-gradient(110deg,#0b6c48,#12482e);border:4px solid #efe5ae;box-shadow:0 6px 0 #23432e,5px 10px 15px #0004;transform:rotate(-1deg);text-align:center;padding:7px;color:white;pointer-events:none}.school-sign small{font-size:12px;display:block}.school-sign strong{font-size:22px;display:block;line-height:1.3}.school-sign span{font-size:14px}.home-title{position:absolute;left:326px;top:34px;width:605px;text-align:center;filter:drop-shadow(0 7px 0 #234234) drop-shadow(0 8px 12px #1239);transform:rotate(-2deg)}.home-title .overline{display:inline-block;background:#23654bdd;border:2px solid #ebcb75;border-radius:40px;font-size:18px;padding:0 25px;color:#fff4bd;letter-spacing:1px;text-shadow:none}.home-title h1{line-height:.94;padding-top:18px}.home-title .title-top{display:block;font-size:42px;color:#fffde8;text-shadow:3px 3px #7d6235;-webkit-text-stroke:1px #836834}.home-title strong{display:block;font-size:105px;line-height:1.18;color:#ffe46b;-webkit-text-stroke:2px #805a25;text-shadow:0 6px #a97527,2px 9px #fff0a8}.home-title .title-bottom{font-size:34px;color:#fff9d7;display:block;line-height:1.1;text-shadow:2px 3px #57672d}.home-key{position:absolute;font-size:61px;top:88px;filter:drop-shadow(0 4px 1px #75491c);animation:bob 3s ease-in-out infinite}.home-key:first-child{left:14px;transform:rotate(-30deg)}.home-key:last-child{right:18px;animation-delay:-1.4s}.home-start{position:absolute;bottom:105px;left:385px;width:510px;text-align:center}.home-start .gold{font-size:31px;min-height:76px;min-width:320px;animation:buttonPulse 3s ease-in-out infinite}.home-start .sub{display:block;font-size:19px;margin-top:11px;text-shadow:0 2px 4px #122d22,0 1px 2px #000;font-weight:bold}.home-start .resume-row{display:flex;justify-content:center;align-items:center;gap:14px}.home-start .small-button{min-width:0;font-size:17px;padding:9px 15px;min-height:48px}.credits-strip{position:absolute;bottom:0;width:100%;min-height:88px;padding:10px 22px;background:linear-gradient(#103e35d9,#08291eef);border-top:2px solid #d7bb60;display:flex;align-items:center;gap:19px;text-align:center;backdrop-filter:blur(7px)}.credit-student{width:240px;border-left:1px solid #dec56a6b;padding-left:18px;flex-shrink:0}.credit-student small{font-size:13px;display:block;color:#dbc887}.credit-student strong{font-size:20px;display:block;line-height:1.4;color:#ffe481}.credit-student span{font-size:13px}.credit-supervisors{display:flex;align-items:center;justify-content:space-around;gap:17px;flex:1}.credit-supervisors>span{font-size:15px;line-height:1.4}.credit-supervisors small{display:block;font-size:12px;margin-top:4px;color:#d2debc}.credit-supervisors .supervisor-label{color:#f1d779;font-size:14px;width:32px}.scene-label{position:absolute;right:24px;bottom:120px;background:#143f36d9;border:2px solid #efd789;border-radius:20px;padding:10px 20px;max-width:285px;font-size:19px;box-shadow:0 4px 0 #072a22}.scene-label:after{content:'';position:absolute;right:50px;bottom:-13px;border:7px solid transparent;border-top-color:#efd789}.hud{position:absolute;top:19px;right:22px;width:380px;display:flex;direction:rtl;align-items:center;gap:12px;background:linear-gradient(#1f7274,#123e4e);border:4px solid #f2d57f;border-radius:48px 23px 23px 48px;padding:10px 14px 10px 20px;box-shadow:0 5px #725528,0 8px 15px #0005;height:102px}.portrait{width:77px;height:77px;border:4px solid #ffe393;border-radius:50%;background:#bceade;overflow:hidden;flex-shrink:0;position:relative}.portrait img{position:absolute;width:385px;height:auto;max-width:none;left:-9px;top:-8px}.hud-info{flex:1;min-width:0}.hud-name{font-size:21px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-meta{font-size:15px;color:#f4df9d;display:flex;justify-content:space-between}.meter{height:10px;background:#062a3e;border:1px solid #8cb598;border-radius:10px;margin-top:4px;overflow:hidden;direction:ltr}.meter i{height:100%;display:block;background:linear-gradient(#fff28a,#e6b238);transition:width .5s}.hud-hearts{color:#ffb7a5;font-size:21px;letter-spacing:3px;line-height:1.2}.key-belt{position:absolute;top:30px;left:452px;display:flex;gap:8px;direction:rtl}.key-slot{width:58px;height:63px;border:3px solid #e5c974;border-radius:17px;background:linear-gradient(#224f4d,#102f35);display:grid;place-items:center;font-size:29px;box-shadow:0 4px #6e532c;position:relative}.key-slot.empty{border-color:#a99e7c;filter:grayscale(.7);color:#ffffff4d}.key-slot.empty span{opacity:.25}.key-slot.owned span{animation:bob 3s infinite;filter:drop-shadow(0 0 6px #ffca4b)}.key-slot small{position:absolute;bottom:-24px;white-space:nowrap;font-size:12px;background:#183d32c9;border-radius:7px;padding:1px 4px}.play-tools{position:absolute;left:22px;top:20px;display:flex;gap:10px}.play-tools .icon-button{height:60px;min-width:60px;font-size:24px}.quest-banner{position:absolute;top:139px;left:305px;width:670px;text-align:center;background:linear-gradient(#fff4d6,#f0ddb0);border:4px solid #ad7842;box-shadow:inset 0 0 0 2px #ffeec6,0 5px #674628,0 9px 15px #0003;border-radius:18px;padding:9px 22px;color:#573c25}.quest-banner .location{position:absolute;right:19px;top:-17px;background:#236654;color:#ffeba9;font-size:16px;border:2px solid #e5c374;border-radius:10px;padding:0 15px}.quest-banner h2{font-size:24px;line-height:1.5}.quest-banner p{font-size:18px;line-height:1.4}.quest-banner .count{position:absolute;left:14px;top:10px;background:#dbbd7b;border-radius:10px;padding:2px 10px;font-size:15px}.math{font-size:35px;direction:ltr;unicode-bidi:isolate;font-weight:800;line-height:1.4;margin-top:3px}.bottom-hint{position:absolute;bottom:16px;left:325px;width:630px;min-height:68px;background:linear-gradient(#164e58ed,#173744ef);border:3px solid #8fd5ca;border-radius:20px;padding:10px 24px;font-size:20px;line-height:1.5;text-align:center;box-shadow:0 5px #102d35;display:flex;align-items:center;justify-content:center;gap:12px}.bottom-hint .gold{font-size:20px;min-height:46px;padding:3px 20px;white-space:nowrap;border-width:2px;border-radius:13px}.move-pad{position:absolute;bottom:22px;left:28px;width:192px;display:grid;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(2,58px);gap:6px;direction:ltr}.move-pad button{background:linear-gradient(#2f8688ce,#174350e6);border:3px solid #a1cabc;border-radius:17px;color:#fff4be;box-shadow:0 4px #113842;font-size:31px;text-shadow:0 2px #122c35}.move-pad .up{grid-column:2}.move-pad .left{grid-row:2;grid-column:1}.move-pad .down{grid-row:2;grid-column:2}.move-pad .right{grid-row:2;grid-column:3}.interact-button{position:absolute;bottom:30px;right:35px;min-width:150px;border-radius:50%;min-height:78px;font-size:23px}.floating-choice{position:absolute;width:126px;min-height:100px;border:4px solid #f4d797;background:linear-gradient(#c49855,#8a5b2d);border-radius:17px;color:#fff5c8;box-shadow:inset 0 3px #f8df9a,inset 0 -8px #654526,0 7px 0 #4c341f,0 11px 18px #0005;font-size:34px;font-weight:bold;text-shadow:0 2px #744b26}.floating-choice:before{content:'✦';display:block;font-size:19px;line-height:1;color:#ffe587}.floating-choice.selected{box-shadow:0 0 0 5px #fff09a,0 0 28px #ffc44d}.code-token{position:absolute;left:44px;top:145px;display:flex;gap:8px;direction:ltr}.code-token span{width:55px;height:61px;background:#123d39e8;border:3px solid #e3c673;border-radius:12px;display:grid;place-items:center;font-size:31px;color:#ffe17e}.challenge-surface{position:absolute;left:280px;top:273px;width:720px;bottom:113px;text-align:center;pointer-events:none}.challenge-surface>*{pointer-events:auto}.floor-tiles{position:absolute;left:418px;top:340px;display:grid;grid-template-columns:repeat(3,128px);gap:15px;direction:ltr;transform:perspective(750px) rotateX(15deg)}.floor-tile{height:86px;background:linear-gradient(#e6d59c,#bcaa6b);border:3px solid #fff0bf;border-bottom:8px solid #847b4b;border-radius:12px;color:#374e34;font-size:35px;font-weight:800;box-shadow:0 6px 10px #0003}.floor-tile.chosen{background:linear-gradient(#b9ee7c,#6fa956);border-color:#ffffb3;box-shadow:0 0 25px #c9fd72}.item-tray{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.item{min-width:90px;min-height:74px;border:3px solid #ffe7aa;border-radius:18px;background:linear-gradient(#fff3ce,#e1c28b);box-shadow:0 5px #967444;color:#493a26;font-size:22px;font-weight:700;padding:5px 13px;cursor:grab;line-height:1.3}.item .emoji{font-size:36px;display:block}.item.picked{outline:5px solid #6ddfed;transform:translateY(-7px)}.drop-zone{border:3px dashed #fff0ae;border-radius:22px;background:#164941c9;box-shadow:0 6px 15px #0003;color:#fff4d3;padding:12px;min-height:100px;min-width:130px;font-size:21px}.plant-zone{height:188px;width:230px;position:absolute;left:245px;top:0;background:radial-gradient(#f6ffb44d,#184c3b9c)}.plant-zone .plant{font-size:92px;display:block;line-height:1.1;transition:transform .6s}.plant-zone small{font-size:17px}.lab-tray{position:absolute;bottom:0;left:-150px;right:-150px}.bins{display:flex;gap:23px;justify-content:center;margin-top:15px}.bins .drop-zone{width:190px;height:162px}.bins .drop-zone span{font-size:45px;display:block}.sentence{min-height:85px;background:#f6e7bcf2;border:3px dashed #94753c;border-radius:17px;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;padding:9px;color:#63482e;font-size:21px}.sentence button{background:#2c755b;color:#fff8d6;padding:7px 16px;border:2px solid #bfd08c;border-radius:12px;font-size:22px;box-shadow:0 3px #153a2b}.sentence-tray{margin:18px -150px 20px}.word-confirm{min-height:56px;font-size:21px}.memory-grid{display:grid;grid-template-columns:repeat(3,123px);justify-content:center;gap:13px}.memory-card{height:115px;border-radius:19px;border:4px solid #e2bc70;background:linear-gradient(130deg,#31527b,#17384e);box-shadow:0 6px #132637;font-size:51px;color:#f3d785}.memory-card.revealed{background:linear-gradient(#fff4c8,#debb79);color:#24494c}.pattern{display:flex;justify-content:center;direction:ltr;gap:14px;background:#fff2cde8;border:3px solid #c3954f;border-radius:22px;padding:10px;font-size:40px;margin:8px 0 26px}.shape-options{display:flex;justify-content:center;gap:17px}.shape-options button{font-size:42px;min-width:94px}.maze{position:absolute;top:-18px;left:165px;display:grid;grid-template-columns:repeat(7,48px);grid-auto-rows:42px;gap:3px;direction:ltr;padding:9px;border:5px solid #efd687;border-radius:18px;background:#647d49;box-shadow:0 9px #2e4a2f}.maze-cell{background:#e9d7a0;border-radius:5px;font-size:26px;display:grid;place-items:center;padding:0}.maze-cell.wall{background:linear-gradient(#547c43,#2d5034);box-shadow:inset 0 3px #7e9b55}.maze-cell.goal{background:#f3c654}.maze-cell.player{background:#bbdb77;box-shadow:inset 0 0 0 3px #fff1a2}.maze-mini-avatar{height:43px;width:38px;object-fit:none;object-position:left}.lanterns{position:absolute;left:30px;top:145px;display:flex;gap:5px}.lantern{font-size:35px;filter:grayscale(1);opacity:.4}.lantern.lit{filter:none;opacity:1;text-shadow:0 0 20px #ffc64c;animation:bob 4s infinite}.value-options{display:flex;flex-direction:column;gap:16px;align-items:center;margin-top:10px}.value-options button{width:640px;min-height:65px;font-size:25px}.shadow{font-size:96px;filter:grayscale(1) brightness(0);line-height:1.4;display:block}.map-panel{position:absolute;left:160px;right:160px;top:142px;bottom:35px;background:linear-gradient(130deg,#f1e2b4f5,#d8c391f5);border:7px solid #936839;border-radius:30px;color:#594329;box-shadow:0 10px #4b3829,0 25px 50px #0005;padding:20px;text-align:center}.map-panel h2{font-size:28px}.map-panel p{font-size:18px}.map-path{position:absolute;inset:0;pointer-events:none;width:100%;height:100%}.map-path path{fill:none;stroke:#a68b52;stroke-width:6;stroke-dasharray:10 10}.map-node{position:absolute;width:155px;height:119px;border:3px solid #bdb28a;border-radius:24px;background:linear-gradient(#eee5c8,#beb18c);color:#675e45;box-shadow:0 6px #887b57;font-size:20px;font-weight:800}.map-node .symbol{display:block;font-size:35px;line-height:1.15}.map-node.current{border-color:#fff4ac;background:linear-gradient(#80bb69,#39744b);color:#fff7cc;box-shadow:0 6px #284d34,0 0 25px #ffc63f;animation:buttonPulse 3s infinite}.map-node.done{background:linear-gradient(#d6dfa0,#90af6e)}.key-map{display:flex;gap:15px;flex-wrap:wrap;justify-content:center;margin-top:25px}.key-map .drop-zone{width:126px;min-width:126px;font-size:17px;min-height:150px}.key-map .drop-zone span{display:block;font-size:43px}.key-map .drop-zone.done{background:#77742ecc;border-style:solid;box-shadow:0 0 25px #f7d860}.gold-lines{position:absolute;top:55px;left:0;width:720px;height:160px;pointer-events:none}.gold-lines path{fill:none;stroke:#ffe68b;stroke-width:4;stroke-dasharray:2000;stroke-dashoffset:2000;animation:draw 2s forwards}.door-pair{display:flex;width:290px;height:217px;margin:0 auto 20px;perspective:700px;direction:ltr}.door-leaf{width:50%;background:linear-gradient(90deg,#214f3e,#3b7951,#163d31);border:9px ridge #d5b35b;border-radius:65px 0 0 0;display:grid;place-items:center;font-size:65px;color:#f7d875;transform-origin:left;transition:transform 1.7s;box-shadow:inset 0 0 25px #062b22}.door-leaf+div{border-radius:0 65px 0 0;transform-origin:right}.door-pair.open .door-leaf:first-child{transform:rotateY(-80deg)}.door-pair.open .door-leaf:last-child{transform:rotateY(80deg)}.door-sockets{display:flex;justify-content:center;gap:12px}.socket{min-width:91px;min-height:69px;border:3px solid #e8c474;border-radius:15px;background:#143a30;color:#f3d078;font-size:32px;box-shadow:0 5px #665226}.socket small{display:block;font-size:13px}.socket.done{background:#93772c;box-shadow:0 0 23px #ffcf62}.treasure-chest{font-size:140px;background:none;border:0;filter:drop-shadow(0 0 30px #ffe48b);animation:bob 3s infinite;line-height:1.5}.treasure-glow{position:absolute;width:450px;height:450px;background:conic-gradient(from 0deg,transparent,#ffe17f70,transparent,#ffe17f70,transparent,#ffe17f70,transparent);border-radius:50%;left:135px;top:-50px;animation:spin 18s linear infinite;pointer-events:none}.result-panel{position:absolute;top:36px;left:245px;width:790px;bottom:35px;background:linear-gradient(#fff5d9f5,#e5d09ef5);border:7px solid #c9953f;border-radius:37px;box-shadow:0 10px #78552d,0 20px 80px #0007;color:#194e42;text-align:center;padding:25px 38px}.result-panel .trophy{font-size:76px;line-height:1}.result-panel h1{font-size:40px;line-height:1.5}.result-panel .message{font-size:24px;line-height:1.5}.rank{display:inline-block;background:#286447;color:#ffe28a;border-radius:30px;padding:2px 23px;font-size:21px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:20px 0}.result-stat{background:#fff8e2;border:2px solid #d3bd80;border-radius:17px;padding:9px}.result-stat strong{display:block;font-size:29px;line-height:1.2}.result-stat small{font-size:16px}.actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.result-panel .actions button{font-size:20px;min-height:55px}.flying-particle{position:absolute;left:50%;top:40%;font-size:28px;animation:confetti 1.8s ease-out forwards}.transition-flash{position:absolute;inset:0;background:#fff5c2;animation:flash 1s both}.pickup-label{position:absolute;top:30%;width:100%;text-align:center;font-size:58px;color:#fff29e;text-shadow:0 4px #715425;animation:pickup 1.4s forwards}#toast{position:absolute;bottom:105px;left:290px;width:700px;text-align:center;z-index:10;background:#173d38f5;border:3px solid #ffd572;border-radius:20px;padding:13px 22px;font-size:24px;transform:translateY(15px);opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translateY(0)}dialog{font-family:GameArabic,Tahoma,sans-serif;border:4px solid #d6b663;border-radius:28px;background:linear-gradient(#fff7df,#e8d5aa);color:#214b40;max-width:min(640px,94vw);max-height:92dvh;padding:28px 35px;box-shadow:0 12px 0 #715330,0 35px 90px #0009;font-size:18px}dialog::backdrop{background:#061e27b3;backdrop-filter:blur(5px)}dialog h1,dialog h2{font-size:29px;text-align:center}dialog p{font-size:19px;line-height:1.7;margin:10px 0}dialog .dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}dialog .close{background:#236153;border:2px solid #c8e4b4;border-radius:50%;width:44px;height:44px;color:#fff4bd;font-size:25px;flex-shrink:0}dialog label{display:block;font-size:20px;font-weight:bold;margin:13px 0 5px}dialog input,dialog select{width:100%;border:2px solid #b9b585;border-radius:13px;background:#fffbec;color:#244a3e;padding:9px 14px;font-size:21px;min-height:52px}.avatar-choices{display:flex;gap:10px;margin:12px 0 20px;justify-content:center}.avatar-choice{width:90px;height:84px;overflow:hidden;background:#cddca3;border:3px solid #94aa6b;border-radius:20px;position:relative}.avatar-choice img{position:absolute;width:360px;height:auto;left:0;top:-2px}.avatar-choice.selected{border:4px solid #c29428;background:#ffe39a;box-shadow:0 0 0 3px #fff5bf}.avatar-choice span{position:absolute;bottom:0;right:0;left:0;font-size:13px;color:#fff;background:#18452cd9}.avatar-choice:nth-child(2) img{filter:hue-rotate(45deg)}.avatar-choice:nth-child(3) img{filter:hue-rotate(145deg)}.avatar-choice:nth-child(4) img{filter:hue-rotate(245deg)}.privacy{font-size:14px!important;text-align:center;opacity:.75}dialog .gold,dialog .green,dialog .blue{font-size:21px;min-height:54px}.credits-drawer{position:fixed;margin:0;right:12px;left:auto;top:12px;bottom:12px;max-height:calc(100dvh - 24px);width:550px;max-width:calc(100vw - 24px)}.credit-section{border-top:1px solid #b9a970;padding:17px 0 5px}.credit-section h3{font-size:23px;color:#21624d}.credit-person strong{display:block;font-size:20px}.credit-person small{display:block;font-size:16px;color:#5e7653}.credits-drawer a{color:#21624d}.tech-tags{display:flex;gap:6px;flex-wrap:wrap;direction:ltr;margin:10px 0}.tech-tags span{background:#cfdbb1;border-radius:8px;padding:4px 8px;font:14px Arial}.reward{text-align:center;min-width:360px}.reward .reward-art{font-size:96px;line-height:1.5;display:block;animation:bob 2s infinite}.reward .score{color:#9c7022;font-size:28px;font-weight:bold}.hint-box{background:#fff5d8;border-radius:15px;padding:15px;border:2px solid #cbb87c}.keypad{display:grid;grid-template-columns:repeat(3,66px);gap:12px;justify-content:center;direction:ltr;margin:18px}.keypad button{min-height:56px;padding:2px;font-size:26px}.digits{display:flex;justify-content:center;gap:10px;direction:ltr;margin:14px}.digits span{width:55px;height:59px;background:#164a3b;color:#f7dd8a;border:2px solid #b9ab67;border-radius:12px;font-size:32px;display:grid;place-items:center}.code-entered{font-size:33px;text-align:center;letter-spacing:12px;direction:ltr;background:#fff9e7;border:2px solid #c4b174;border-radius:12px;padding:4px}.center{text-align:center}#rotate{display:none;position:fixed;inset:0;z-index:100;background:radial-gradient(#245f57,#092631);padding:28px;text-align:center;align-items:center;justify-content:center;flex-direction:column;color:#fff3c9;font-family:GameArabic,Tahoma,sans-serif}#rotate h1{font-size:32px}#rotate p{font-size:21px;line-height:1.7;margin:15px}#rotate small{font-size:15px;max-width:250px;margin-top:20px}.rotate-icon{font-size:85px;color:#f6d771;animation:turnPhone 2s ease-in-out infinite}.loading-assets{position:absolute;inset:0;display:grid;place-items:center;z-index:99;background:#174c43;color:#fff2bb;font-size:28px}.assets-error{font-size:18px;max-width:500px;text-align:center}#world.loading #ui{visibility:hidden}.landscape-tip{position:absolute;right:25px;top:25px;font-size:17px;color:white;background:#194431bc;border:2px solid #e7c976;border-radius:16px;padding:5px 16px}.map-node small{font-size:13px;display:block}.gate-open-effect{position:absolute;left:850px;top:351px;width:113px;height:220px;background:linear-gradient(90deg,#ffe69111,#ffeb9bcc,#fff8cf);box-shadow:0 0 35px #ffe383;border-radius:5px;animation:gateReveal 1.2s both}.game-resume{position:absolute;inset:0;display:grid;place-items:center;background:#123b3388;backdrop-filter:blur(2px)}
@keyframes bob{0%,100%{translate:0 0;rotate:-3deg}50%{translate:0 -7px;rotate:3deg}}@keyframes buttonPulse{0%,100%{filter:drop-shadow(0 0 0 #ffc54d)}50%{filter:drop-shadow(0 0 12px #ffe680)}}@keyframes spin{to{rotate:360deg}}@keyframes flash{0%{opacity:0}35%{opacity:.9}100%{opacity:0}}@keyframes pickup{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1.1)}75%{opacity:1}100%{opacity:0;transform:translateY(-90px)}}@keyframes confetti{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(270deg)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes gateReveal{from{opacity:0;transform:scaleX(.1)}to{opacity:1;transform:scaleX(1)}}@keyframes turnPhone{0%,100%{rotate:0deg}50%{rotate:90deg}}
@media(orientation:portrait) and (max-width:900px) and (pointer:coarse){#rotate{display:flex}#viewport{visibility:hidden}}@media(max-height:500px){dialog{padding:15px 25px}dialog h1,dialog h2{font-size:24px}dialog p{font-size:17px}dialog label{font-size:18px;margin-top:8px}.avatar-choices{margin:8px 0}.avatar-choice{height:65px}dialog form{display:grid;grid-template-columns:1fr 1fr;gap:7px 20px}dialog form .avatar-group,dialog form .actions,dialog form .privacy{grid-column:1/-1}.reward .reward-art{font-size:62px}.reward{min-width:320px}.keypad{margin:10px;gap:8px}.keypad button{min-height:43px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.gold-lines path{stroke-dashoffset:0}}

/* Final art alignment */
.school-sign{left:562px;top:359px;width:192px;min-height:58px;padding:3px 2px;background:transparent;border:0;box-shadow:none;transform:none;text-shadow:0 1px #173e36}.school-sign small{font-size:8px}.school-sign strong{font-size:16px;line-height:1.2}.school-sign span{font-size:10px}.home-title{left:276px;top:16px;width:542px}.home-title strong{font-size:99px}.home-title .title-top{font-size:37px}.home-title .title-bottom{font-size:28px}.home-title .home-key{font-size:50px}.home-start{bottom:112px}.scene-label{right:18px;bottom:112px;max-width:250px;font-size:17px}.treasure-chest img{width:300px;height:280px;object-fit:contain}.portrait img{width:424px;left:-6px;top:-28px}.avatar-choice img{width:440px;left:-8px;top:-31px}.maze-hero{display:block;width:28px;height:39px;background-image:url(assets/hero.png);background-size:140px auto;background-position:-3px -8px;background-repeat:no-repeat}.gate-open-effect{left:835px;top:348px;width:137px;height:130px}.key-map{margin-top:27px}


.school-sign{left:520px;top:394px;width:220px;min-height:83px;background:linear-gradient(105deg,#0a684a,#0c4637);border:3px solid #b4c7a1;border-right:27px solid #f3f0d7;box-shadow:0 5px 0 #183b2b,0 7px 15px #0004;transform:rotate(-1deg);padding:6px 3px}.school-sign small{font-size:9px}.school-sign strong{font-size:18px;line-height:1.2}.school-sign span{font-size:12px}.school-sign:after{content:"وزارة التعليم";position:absolute;right:-25px;top:17px;writing-mode:vertical-rl;font-size:8px;color:#3c6860}.home-title{left:335px}.credits-strip{min-height:94px}.home-start{bottom:113px}.scene-label{bottom:145px}.gate-open-effect{left:850px;top:351px;width:113px;height:220px}
@media(pointer:coarse){.play-tools .icon-button{min-width:78px;height:78px}.play-tools{gap:8px}.menu-tools .icon-button{min-width:78px;height:78px}.key-belt{top:27px;left:472px}.key-slot{width:54px}.move-pad{grid-template-columns:repeat(3,77px);grid-template-rows:repeat(2,69px);width:249px;gap:5px}.interact-button{min-height:89px;min-width:165px;font-size:26px}.item{min-height:84px;font-size:25px}.quest-banner p{font-size:24px}.bottom-hint{font-size:25px}.bottom-hint .gold{min-height:68px;font-size:24px}.key-slot small{font-size:17px;bottom:-31px}.map-node{font-size:24px}.map-node small{font-size:18px}.socket{min-height:84px}.socket small{font-size:20px}.quest-banner{top:145px}.sentence button{font-size:25px;min-height:59px}}


.mixed-question{font-size:30px;line-height:1.4;font-weight:800;margin:6px 0;unicode-bidi:plaintext}.floating-choice{width:172px;font-size:24px;min-height:106px;padding:7px;line-height:1.5}.floor-tiles{left:383px;top:390px;grid-template-columns:repeat(3,158px);gap:17px}.floor-tile{height:125px;font-size:26px;padding:8px;line-height:1.4}.quest-banner h2{font-size:24px}


.school-sign{left:214px;top:363px;width:184px;height:87px;min-height:0;padding:4px 4px;background:transparent;border:0;box-shadow:none;transform:rotate(-1deg);text-shadow:0 1px 2px #123f2f;display:flex;flex-direction:column;align-items:center;justify-content:center}.school-sign small{font-size:8px;line-height:1.3}.school-sign strong{font-size:17px;line-height:1.25;margin:3px 0}.school-sign span{font-size:11px;line-height:1.3}.school-sign:after{content:none}.ministry-logo{position:absolute;left:192px;top:30px;width:34px;height:27px;object-fit:contain}.gate-open-effect{left:874px;top:353px;width:90px; height:210px}

/* No glyph strokes: Arabic joining strokes must remain clean. */
.home-title .title-top,.home-title strong{-webkit-text-stroke:0;paint-order:normal}
.home-title .title-top{text-shadow:0 3px 0 #76592d}
.home-title strong{text-shadow:0 4px 0 #a97527,0 7px 0 #795526}
.home-start{bottom:140px}
.home-start .sub{font-size:17px;line-height:1.4;margin-top:14px}

/* Fill wide phones with scenery; keep characters and controls undistorted. */
html,body{width:100%;height:100%;overscroll-behavior:none}
#viewport{inset:auto;left:0;top:0;overflow:hidden;width:100vw;height:100dvh}
#world{--world-offset:0px;--art-scale:1;--art-top:0px;right:auto;bottom:auto}
.home-title{left:calc(335px + var(--world-offset))}
.home-start{left:calc(385px + var(--world-offset))}
.quest-banner{left:calc(305px + var(--world-offset))}
.bottom-hint{left:calc(325px + var(--world-offset))}
.challenge-surface{left:calc(280px + var(--world-offset))}
.floor-tiles{left:calc(383px + var(--world-offset))}
.key-belt{left:calc(452px + var(--world-offset))}
.result-panel{left:calc(245px + var(--world-offset))}
.map-panel{left:calc(160px + var(--world-offset));right:auto;width:960px}
#toast{left:calc(290px + var(--world-offset))}
.school-sign{left:calc(214px * var(--art-scale));top:calc(363px * var(--art-scale) + var(--art-top));transform:scale(var(--art-scale)) rotate(-1deg);transform-origin:top left}
.gate-open-effect{left:calc(874px * var(--art-scale));top:calc(353px * var(--art-scale) + var(--art-top));transform:scale(var(--art-scale));transform-origin:top left}
.wide-screen .home-title{scale:1.08;transform-origin:top center}
.wide-screen .home-start{scale:1.16;transform-origin:bottom center}
.wide-screen .menu-tools,.wide-screen .play-tools{scale:1.12;transform-origin:top left}
.wide-screen .hud{scale:1.12;transform-origin:top right}
.wide-screen .move-pad{scale:1.12;transform-origin:bottom left}
.wide-screen .interact-button{scale:1.12;transform-origin:bottom right}
.menu-tools,.play-tools{margin-left:calc(env(safe-area-inset-left,0px) / var(--screen-scale,1))}
.hud,.scene-label,.interact-button{margin-right:calc(env(safe-area-inset-right,0px) / var(--screen-scale,1))}
.install-steps{padding-inline-start:26px;line-height:1.8;font-size:19px}
.install-steps li{margin:12px 0}
@media(pointer:coarse){.key-belt{left:calc(472px + var(--world-offset))}}



#actors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}#scene{z-index:0}#ui{z-index:auto}#fx{z-index:8}.hud,.play-tools,.key-belt,.quest-banner,.bottom-hint,.menu-tools,.home-title,.home-start,.credits-strip,.scene-label,.move-pad,.interact-button,.map-panel,.result-panel{z-index:5}.school-sign,.floor-tiles,.floating-choice,.challenge-surface{z-index:1}.floor-tile{padding-bottom:52px}#toast{z-index:12}.code-token,.lanterns{z-index:5}


.treasure-chest.opening{animation:chestReveal 1.1s ease-out both}.treasure-chest.opening img{filter:brightness(1.7) drop-shadow(0 0 45px #fff5b1)}@keyframes chestReveal{0%{transform:scale(1)}30%{transform:scale(.9) rotate(-4deg)}65%{transform:scale(1.2) rotate(3deg)}100%{transform:scale(1.4);opacity:0}}

