:root{--ink:#224e58;--teal:#079d9b;--cream:#fff8e8;--gold:#ffc75a;--shadow:0 6px 0 #d3b991,0 12px 24px #24422b24;--radius:28px}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:17px/1.5 Tahoma,Arial,sans-serif;background:#d3ebe0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0;transition:transform .18s,box-shadow .18s,filter .18s;-webkit-tap-highlight-color:transparent}button:hover{transform:translateY(-3px);filter:brightness(1.025)}button:active{transform:scale(.97)}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible{outline:4px solid #fcb435;outline-offset:4px}button svg{pointer-events:none}a{color:#078c91}h1,h2,h3,p{margin-top:0}h1{font-size:38px;line-height:1.4}h2{font-size:25px}small{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.world{min-height:100dvh;position:relative;background-size:cover;background-position:center;background-attachment:fixed;isolation:isolate}.world:before{content:'';position:fixed;inset:0;background:linear-gradient(#f5f9ee22,#f4ead945);z-index:-1;pointer-events:none}.page{max-width:1400px;margin:auto;padding:24px 5% 50px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0 24px}.brand-small{font-weight:900;font-size:36px;letter-spacing:-2px;color:#039a98;background:#fff8e7f5;border:3px solid white;border-radius:22px;padding:0 18px;box-shadow:0 4px 0 #d6c59b}.header-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.iconbutton{background:#fff8e8;border:3px solid white;box-shadow:0 4px 0 #cdbb95;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;color:#067e85}.iconbutton svg{width:22px;height:22px;fill:currentColor}.chip{background:#fff8e9ed;border:2px solid white;border-radius:25px;padding:9px 16px;display:flex;align-items:center;gap:9px;font-size:14px}.chip strong{color:#0d9f91}.primary{background:linear-gradient(#19c7bc,#018b97);border:4px solid #fff9e9;border-radius:26px;color:white;font-weight:bold;font-size:21px;padding:16px 27px;box-shadow:0 6px 0 #026e7b,0 10px 20px #1633}.secondary{background:#fff7e9;border:2px solid #fff;border-radius:21px;color:#30646a;padding:12px 19px;font-weight:bold;box-shadow:0 4px 0 #d5bd92}.textbutton{background:transparent;color:#137f84;padding:8px;font-size:14px}.glass{background:#fff9ebf2;border:3px solid #fffdf3;border-radius:var(--radius);box-shadow:var(--shadow)}.eyebrow{font-size:13px;color:#3b9d8c;font-weight:bold;display:block;margin-bottom:9px}.muted{color:#7d948e}.hero{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:30px 38px;margin-bottom:26px}.hero p{margin-bottom:0;color:#6a8783;line-height:1.9;max-width:650px}.hero-art{flex:0 0 160px;width:160px;height:160px;display:grid;place-items:center}.hero-art .visual{width:160px;height:160px}.hero h1{margin-bottom:12px}.hero-buttons{display:flex;gap:12px;align-items:center;margin-top:22px;flex-wrap:wrap}.welcome{height:100dvh;min-height:650px;background-image:url(assets/welcome-bg.webp?v=1cde5227eb46);overflow:hidden}.welcome:before{position:absolute;background:none}.welcome .brand{font-weight:900;font-size:clamp(90px,11vw,155px);color:#039f9d;text-shadow:4px 6px 0 #fff5d9,-3px -3px 0 #fff5d9,0 10px 0 #d5b980;letter-spacing:-5px}.welcome-content{position:absolute;top:11%;left:28%;right:28%;text-align:center}.welcome-tagline{background:#fff9e8ee;border:3px solid white;box-shadow:0 4px 0 #d6bc91;padding:12px;border-radius:28px;font-size:24px}.welcome-start{position:absolute;left:33%;right:33%;bottom:10%;display:grid;gap:17px;text-align:center}.welcome-start .primary{font-size:32px;border-radius:45px;padding:22px}.welcome-note{position:absolute;bottom:15px;width:100%;font-size:12px;text-align:center;color:white;text-shadow:0 1px 5px #173}.catalog-header{display:flex;justify-content:space-between;align-items:center;margin:30px 0 20px;gap:15px}.catalog-header h2{margin:0;background:#fff9e9de;padding:9px 20px;border-radius:20px}.section-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.section-card{overflow:hidden;background:#fff8eaf7;border:4px solid white;border-radius:28px;box-shadow:var(--shadow);text-align:right;position:relative;padding:0}.section-cover{height:170px;background:linear-gradient(145deg,#fff9e9,var(--card-tint));display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.section-cover:before,.section-cover:after{content:'';position:absolute;border-radius:50%;background:#fff6;width:110px;height:110px;top:-45px;right:-25px}.section-cover:after{width:65px;height:65px;left:15px;right:auto;top:110px}.section-cover .visual{width:145px;height:145px;z-index:1;filter:drop-shadow(0 7px 3px #8643)}.section-info{padding:16px 18px}.section-info h3{margin:0 0 4px;font-size:20px}.section-info p{margin:0;color:#7f9289;font-size:12px}.section-meta{display:flex;justify-content:space-between;font-size:12px;margin-top:17px;color:#628276}.progress{height:7px;border-radius:10px;background:#e4e4d5;overflow:hidden;margin-top:9px}.progress>i{height:100%;background:linear-gradient(90deg,#36caa5,#079e9c);display:block;border-radius:10px}.ribbon{position:absolute;top:13px;left:13px;background:#fff8e8ee;border:2px solid white;border-radius:17px;font-size:11px;padding:5px 10px;z-index:2}.visual{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;max-width:100%;position:relative}.visual.sprite{background-image:var(--atlas);background-size:400% 400%;background-position:var(--sx) var(--sy);background-repeat:no-repeat;aspect-ratio:1;width:120px;clip-path:inset(3% 5%);flex-shrink:0}.visual.letter{font-size:72px;font-weight:bold;color:#e46d7e;line-height:1.5;min-width:70px;text-align:center}.visual.letter.en{font-family:Arial,sans-serif;direction:ltr}.visual.color{width:95px;aspect-ratio:1;border-radius:50%;background:var(--swatch);border:5px solid #fff9e9;box-shadow:inset -8px -10px 0 #0001,inset 6px 6px 0 #fff5,0 6px 0 #a2826144}.visual.shape{width:110px;aspect-ratio:1;filter:drop-shadow(0 5px 1px #b1855a55)}.visual.shape svg{width:100%;height:100%}.visual.word{font-size:26px;font-weight:bold;color:#205f69;text-align:center;line-height:1.8}.map-overview{background-image:linear-gradient(270deg,#fff8e9f5 0%,#fff8e9dd 40%,transparent 65%),url(assets/map-bg.webp?v=ea18b7bd0c2c);background-size:cover;background-position:center;height:260px;position:relative;overflow:hidden;padding:30px 38px;display:flex;align-items:center}.map-overview>div{width:48%;margin-left:auto}.map-overview h2{font-size:30px}.map-overview p{font-size:14px;line-height:1.9}.utility-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.utility{padding:22px;display:flex;align-items:center;gap:15px;text-align:right}.utility .visual{width:75px;height:75px}.utility h3{font-size:19px;margin-bottom:5px}.utility p{font-size:12px;color:#7c9188;margin:0}.filterbar{display:flex;gap:10px;overflow:auto;padding:7px 3px 13px;margin-bottom:18px;scrollbar-width:thin}.filter{flex-shrink:0;white-space:nowrap;border-radius:19px;background:#fff8e9f5;border:2px solid white;padding:10px 18px;font-size:14px;color:#668179;box-shadow:0 3px 0 #cbb48b}.filter.active{background:#0caaa3;color:white;box-shadow:0 3px 0 #087a7f}.chapter-panel{padding:24px;margin:22px 0}.chapter-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.chapter-heading h2{margin:0;font-size:21px}.level-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:14px}.level{aspect-ratio:.9;border-radius:23px;background:linear-gradient(#fffef7,#f6e5ba);border:3px solid white;box-shadow:0 5px 0 #d8bd8f;color:#8a7248;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative}.level b{font-size:26px}.level small{font-size:11px;letter-spacing:1px}.level.done{background:linear-gradient(#dbf6d4,#a7dfad);color:#3e8354;box-shadow:0 5px 0 #72a97d}.level.recommended{background:linear-gradient(#33d0be,#079b9d);color:white;box-shadow:0 5px 0 #057883;outline:4px solid #ffe4a7;outline-offset:3px}.level.extension:after{content:'+';position:absolute;top:2px;left:8px;font-weight:bold;color:#9175b8}.chapter-note{font-size:13px;color:#789086;margin-top:15px;margin-bottom:0}.game-page{max-width:1250px;margin:auto;padding:18px 4% 28px}.game-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.game-title{flex:1;text-align:center;padding:14px 25px;max-width:700px}.game-title h1{font-size:25px;margin:0}.game-title p{font-size:12px;margin:4px 0 0;color:#79928a}.stage-counter{padding:10px 14px;border-radius:20px;background:#fff7e9;border:2px solid white;font-size:14px;white-space:nowrap}.gamebody{padding:23px 4%;min-height:560px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:22px;position:relative}.instruction{background:#fff9eaf2;border:3px solid white;border-radius:25px;padding:13px 25px;font-size:22px;line-height:1.7;text-align:center;max-width:900px;box-shadow:0 4px 0 #d3bc9255;color:#285c64}.instruction.en{direction:ltr}.display-area{display:flex;align-items:center;justify-content:center;gap:25px;min-height:180px;width:100%;padding:6px}.display-area>.visual.sprite{width:210px;height:210px;filter:drop-shadow(0 9px 4px #3653)}.display-area>.visual.letter{font-size:132px;background:#fff8e9;border:4px solid white;border-radius:30px;min-width:180px;box-shadow:var(--shadow);padding:0 25px}.display-area>.visual.word{background:#fff8e9ed;padding:25px;border:3px solid white;border-radius:25px;max-width:680px;font-size:32px}.display-area>.visual.color,.display-area>.visual.shape{width:155px;height:155px}.choice-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:19px;max-width:100%;width:100%}.answer-card{background:#fff9ecf7;border:4px solid #fff;border-radius:28px;box-shadow:var(--shadow);padding:15px 22px;min-width:135px;min-height:110px;color:#26606a;display:flex;align-items:center;justify-content:center;position:relative;max-width:270px}.answer-card .visual.sprite{width:130px;height:130px}.answer-card .visual.letter{font-size:66px}.answer-card .visual.word{font-size:22px}.answer-card.correct{background:#d8f4cc;outline:4px solid #35b58e}.answer-card.wrong{background:#ffe4db;animation:wiggle .3s}.status{background:#fff9e9eb;padding:9px 20px;border-radius:20px;font-size:16px;text-align:center;min-height:40px;max-width:850px}.status:empty{visibility:hidden}.game-footer{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:12px}.game-footer .secondary{font-size:14px}.quantity{background:#fff9ecef;border-radius:30px;padding:20px;display:flex;flex-wrap:wrap;gap:2px;justify-content:center;max-width:600px;border:3px solid white;min-width:160px;min-height:140px;align-items:center}.count-item{background:transparent;padding:0}.count-item .visual.sprite{width:70px;height:70px}.count-item.counted{filter:grayscale(.7);opacity:.6;transform:translateY(-5px)}.zero-basket{width:140px;height:140px}.quantity-words{width:100%;font-size:15px;color:#578374;text-align:center}.math-scene{display:flex;align-items:center;gap:18px;background:#fff8eaf5;border:3px solid white;border-radius:30px;padding:22px;direction:ltr;flex-wrap:wrap;justify-content:center}.math-scene .operator{font-size:40px;font-weight:bold;color:#248a8a}.math-group{display:flex;flex-wrap:wrap;justify-content:center;max-width:260px;gap:0}.math-group .visual.sprite{width:55px;height:55px}.math-group .removed{opacity:.2;filter:grayscale(1)}.math-symbol{font-size:55px;font-weight:bold;color:#ce8b52;min-width:60px;text-align:center}.math-label{display:block;width:100%;text-align:center;font-size:16px;color:#728b7a}.pattern{display:flex;align-items:center;gap:15px;padding:20px;border-radius:26px;background:#fff8e9f0;border:3px solid white;direction:ltr;flex-wrap:wrap;justify-content:center}.pattern .visual{width:72px;height:72px;font-size:38px}.pattern .question{font-size:45px;color:#bf9867;padding:0 15px}.mixture{display:flex;align-items:center;gap:25px;background:#fff8e9ee;border:3px solid white;border-radius:30px;padding:25px}.mixture b{font-size:35px}.compare{display:flex;gap:30px;background:#fff8e9;border:3px solid white;border-radius:25px;padding:25px}.compare b{font-size:65px}.story-panel{background:#fff8eaf5;padding:20px 26px;border:3px solid white;border-radius:28px;display:flex;align-items:center;gap:25px;max-width:880px}.story-panel p{font-size:21px;line-height:2;margin:0}.story-panel .visual{flex:0 0 160px;width:160px;height:160px}.order-lane{display:flex;gap:14px;align-items:stretch;justify-content:center;flex-wrap:wrap;min-height:90px;width:100%;padding:15px;border:3px dashed #fff8e9;border-radius:25px;background:#fff8e966}.order-slot{background:#fff8e9;border:2px solid white;border-radius:19px;padding:12px;display:flex;align-items:center;justify-content:center;gap:10px;min-width:90px;box-shadow:0 3px 0 #ceb88d}.order-slot b{background:#19aa9e;color:white;border-radius:50%;padding:4px 10px;font-size:14px}.order-slot .visual.word{font-size:17px}.order-slot .visual.letter{font-size:35px}.order-choice.selected{opacity:.3;pointer-events:none}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;max-width:650px;width:100%;direction:ltr}.memory-card{background:linear-gradient(135deg,#18b9ae,#078e9f);aspect-ratio:1;border:4px solid #fff9e9;border-radius:25px;box-shadow:0 5px 0 #047a87;display:flex;align-items:center;justify-content:center;font-size:42px;color:#fff9e8;max-height:145px}.memory-card .visual{width:92%;height:92%}.memory-card.face{background:#fff9e9;box-shadow:0 5px 0 #d3bd91}.memory-card.matched{background:#e4f7d6;opacity:.65}.collect-item{background:#fff9e9bb;border:3px solid white;border-radius:20px;padding:4px;box-shadow:0 4px 0 #c9b38c}.collect-item .visual{width:75px;height:75px}.collect-item.picked{outline:4px solid #10b4a5;background:#caf2d5}.maze-layout{display:flex;align-items:center;justify-content:center;gap:25px;flex-wrap:wrap;width:100%}.maze-board{display:grid;grid-template-columns:repeat(var(--size),1fr);width:min(510px,75vw);aspect-ratio:1;gap:3px;background:#fff4d8;border:8px solid #fff9e9;border-radius:25px;padding:8px;direction:ltr;box-shadow:var(--shadow)}.maze-cell{aspect-ratio:1;min-width:0;min-height:0;padding:0;border-radius:6px;background:#e8d5a7;position:relative;display:grid;place-items:center;font-size:clamp(10px,2vw,27px);transition:none}.maze-cell.wall{background:linear-gradient(#8aba68,#528747);box-shadow:inset 0 3px 0 #b1d083}.maze-cell.trail{background:#c7e4a4}.maze-cell.current{background:#ffdb7b;outline:2px solid #ffb53b;z-index:1}.maze-cell.hint{background:#f4d37d}.maze-cell .visual{width:100%;height:100%;position:absolute;inset:0}.maze-controls{display:grid;grid-template-columns:repeat(3,52px);gap:8px;direction:ltr}.maze-controls button{height:49px;background:#fff8e9;border:3px solid white;box-shadow:0 4px 0 #c7b085;border-radius:15px;color:#159a97;font-size:26px}.maze-info{text-align:center;background:#fff8e9;padding:12px 20px;border-radius:20px;margin-bottom:20px;font-size:14px}.studio-board{width:100%;height:380px;background:linear-gradient(#aee3ee 0%,#e4f3df 70%,#a4cb6e 70%);border:6px solid white;box-shadow:var(--shadow);border-radius:28px;position:relative;overflow:hidden;touch-action:none}.sticker{position:absolute;width:85px;height:85px;transform:translate(-50%,-50%);touch-action:none;cursor:grab;user-select:none}.sticker .visual{width:100%;height:100%;pointer-events:none}.sticker.selected{outline:3px dashed #079e9b;border-radius:12px}.sticker-palette{display:flex;gap:8px;overflow:auto;max-width:100%;background:#fff9e9;padding:12px;border-radius:23px}.sticker-palette button{background:#f4ecd6;min-width:65px;height:65px;border-radius:14px;padding:4px}.sticker-palette .visual{width:55px;height:55px}.studio-toolbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.modal-overlay{position:fixed;inset:0;z-index:50;background:#173f556b;backdrop-filter:blur(7px);display:grid;place-items:center;padding:20px;overflow:auto}.modal{background:#fff8e9;border:6px solid #fff;border-radius:38px;box-shadow:0 25px 90px #153b4a55;padding:32px;text-align:center;max-width:570px;width:100%;animation:rise .3s;position:relative}.modal h2{font-size:32px;margin:8px 0}.modal p{font-size:16px;line-height:1.9;color:#718c81}.modal-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}.modal .prize{width:125px;height:125px;margin:auto;display:grid;place-items:center}.modal .prize .visual{width:125px;height:125px;animation:bob 2.5s infinite}.stars{font-size:36px;color:#e9ad2a;letter-spacing:8px;margin:12px 0}.stars .off{color:#dacdb2}.confetti{position:fixed;top:-30px;left:var(--x);width:10px;height:16px;background:var(--c);animation:fall var(--d) linear forwards;animation-delay:var(--delay);z-index:51;pointer-events:none}.certificate{padding:40px;text-align:center;border:8px double #e4bb65;background:#fffbef;border-radius:25px}.certificate .visual{width:130px;height:130px}.certificate h2{font-size:32px}.garden-plot{height:470px;background:linear-gradient(#a9dbef 0%,#e2f2d0 64%,#97c269 64%);border:6px solid white;border-radius:32px;box-shadow:var(--shadow);position:relative;overflow:hidden}.garden-plot:before{content:'';position:absolute;bottom:0;left:0;right:0;height:32%;background:radial-gradient(ellipse at center,#fff4bd55,transparent 65%)}.garden-item{position:absolute;width:100px;height:110px;background:transparent;transform:translate(-50%,-50%)}.garden-item .visual{width:100%;height:100%}.garden-item:hover{transform:translate(-50%,-58%)}.reward-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:13px;margin-top:25px}.reward-card{padding:12px;text-align:center}.reward-card .visual{width:90px;height:90px}.reward-card.locked .visual{filter:grayscale(1);opacity:.35}.reward-card p{font-size:12px;margin:4px 0}.encyclopedia-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px}.discovery-card{padding:15px;text-align:center;min-width:0;color:#245a62}.discovery-card .visual{width:125px;height:125px;max-width:100%}.discovery-card .visual.letter{font-size:70px}.discovery-card h3{font-size:17px;margin:6px 0}.discovery-card p{font-size:11px;color:#82968a;margin:0}.teacher-shell{display:flex;gap:25px;align-items:flex-start}.teacher-nav{width:175px;flex-shrink:0;padding:15px;position:sticky;top:20px}.teacher-nav button{width:100%;background:transparent;padding:14px 10px;text-align:right;border-radius:15px;color:#678579;font-size:14px;margin:3px 0}.teacher-nav button.active{background:#c7ede1;color:#117f83}.teacher-main{flex:1;min-width:0}.teacher-panel{padding:25px;margin-bottom:23px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px}.stat{padding:20px}.stat b{font-size:34px;display:block;color:#128f8d}.stat span{font-size:13px;color:#799183}.children-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.child-card{padding:18px 10px;text-align:center;background:#fffaf0;border:3px solid #eee3cd;border-radius:23px;color:#275d62}.child-card.active{background:#ddf4df;border-color:#18b5a4}.child-card .child-avatar{font-size:40px;display:block}.child-card strong{display:block;margin-top:7px}.child-card small{color:#839588}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:right;font-size:14px}th,td{padding:14px 10px;border-bottom:1px solid #e5e5d6}th{color:#698e81;font-size:12px}td small{display:block;color:#9aaa9c}.badge{padding:5px 10px;background:#dff2d3;color:#5a8a49;border-radius:15px;font-size:11px;white-space:nowrap}.field{width:100%;border:2px solid #d6e5d9;background:white;padding:13px 15px;border-radius:15px;color:#265c62;margin:10px 0 18px;font-size:18px}.setting{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8e6d6;padding:18px 0;gap:20px}.setting p{font-size:12px;color:#88998d;margin:5px 0 0}.setting .secondary{white-space:nowrap;font-size:13px}.note{font-size:12px;color:#7c9185;line-height:1.9;margin-top:20px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:99;background:#185d66;color:#fff;border:2px solid #fff;border-radius:23px;padding:14px 25px;text-align:center;box-shadow:0 7px 25px #1733;font-size:14px;max-width:90vw;white-space:normal}.empty-state{padding:40px;text-align:center;color:#81968c;font-size:16px;line-height:1.9}.search-field{background:#fff8e9;border:2px solid white;border-radius:20px;padding:12px 18px;max-width:270px;min-width:0;color:#245f65}.milestone{background:#ffedb6;border:3px solid white;padding:15px 20px;border-radius:22px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin:25px 0}.milestone p{margin:0;font-size:14px}.profile-avatar{font-size:30px}.profile-choice{display:flex;gap:15px;align-items:center;width:100%;background:#fff9ec;border:2px solid #e5dfc9;border-radius:18px;padding:13px 20px;margin-top:10px;color:#305f64}.profile-choice.active{background:#d7f0df;border-color:#18a998}.profile-choice small{margin-right:auto}.section-cover img{width:100%;height:100%;object-fit:cover}.quiet *{animation:none!important;transition:none!important}@keyframes bob{50%{transform:translateY(-7px)}}@keyframes rise{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes wiggle{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes fall{to{top:110vh;transform:rotate(600deg)}}
@media(min-width:1600px){.gamebody{min-height:650px;gap:28px}.display-area{min-height:230px}.game-page{max-width:1400px}.section-cover{height:190px}}
@media(max-width:1100px){.section-grid{grid-template-columns:repeat(3,1fr)}.level-grid{grid-template-columns:repeat(5,1fr)}.level{aspect-ratio:1.1}.hero h1{font-size:31px}.hero{padding:24px}.reward-grid{grid-template-columns:repeat(4,1fr)}.encyclopedia-grid{grid-template-columns:repeat(4,1fr)}.game-title h1{font-size:22px}.gamebody{min-height:570px}.teacher-nav{width:140px}.children-grid{grid-template-columns:repeat(2,1fr)}.topbar{gap:8px}.brand-small{font-size:30px}.chip{padding:8px 12px;font-size:12px}.header-tools{gap:7px}}
@media(max-width:760px){.page{padding:15px 4% 35px}.section-grid{grid-template-columns:repeat(2,1fr);gap:17px}.section-cover{height:150px}.section-info{padding:13px}.section-info h3{font-size:18px}.hero{padding:22px;gap:12px}.hero-art{flex-basis:110px;width:110px;height:110px}.hero-art .visual{width:110px;height:110px}.hero h1{font-size:27px}.hero p{font-size:13px}.hero-buttons .primary{font-size:17px;padding:13px 20px}.utility-grid{grid-template-columns:1fr}.utility{padding:15px}.utility .visual{width:60px;height:60px}.welcome-content{left:19%;right:19%;top:18%}.welcome-start{left:24%;right:24%}.welcome-tagline{font-size:18px}.welcome .brand{font-size:105px}.topbar{flex-wrap:wrap}.header-tools .chip{font-size:11px}.iconbutton{width:42px;height:42px}.game-page{padding:15px 3% 25px}.game-header{gap:10px;flex-wrap:wrap;justify-content:center}.game-title{order:-1;flex-basis:100%;max-width:none;padding:13px}.gamebody{padding:15px 2%;gap:18px;min-height:590px}.instruction{font-size:18px;padding:12px 18px}.display-area{min-height:160px}.display-area>.visual.sprite{width:165px;height:165px}.display-area>.visual.letter{font-size:95px;min-width:130px}.choice-grid{gap:13px}.answer-card{min-width:115px;min-height:100px;padding:12px 14px;border-radius:23px;max-width:230px}.answer-card .visual.sprite{width:100px;height:100px}.answer-card .visual.letter{font-size:54px}.answer-card .visual.word{font-size:18px}.story-panel{padding:18px;gap:15px}.story-panel p{font-size:17px}.story-panel .visual{flex-basis:95px;width:95px;height:95px}.teacher-shell{flex-direction:column;gap:15px}.teacher-nav{position:static;width:100%;display:flex;overflow:auto;padding:8px;gap:6px}.teacher-nav button{width:auto;white-space:nowrap;padding:10px 14px;margin:0}.teacher-main{width:100%}.stats-grid{gap:10px}.stat{padding:15px}.stat b{font-size:27px}.stat span{font-size:11px}.map-overview{height:230px;padding:22px;background-image:linear-gradient(270deg,#fff8e9f5 0%,#fff8e9dc 50%,#fff8e955 100%),url(assets/map-bg.webp?v=ea18b7bd0c2c)}.map-overview>div{width:65%}.map-overview h2{font-size:25px}.map-overview p{font-size:12px}.milestone{flex-wrap:wrap}.catalog-header{flex-wrap:wrap}.encyclopedia-grid{grid-template-columns:repeat(3,1fr)}.search-field{max-width:100%}.studio-board{height:350px}.garden-plot{height:400px}.garden-item{width:75px;height:85px}.pattern{gap:10px;padding:13px}.pattern .visual{width:55px;height:55px}.math-scene{padding:16px;gap:12px}.math-group{max-width:185px}.math-group .visual.sprite{width:43px;height:43px}}
@media(max-width:440px){.brand-small{font-size:27px;padding:0 12px}.topbar{padding:12px 0 20px}.header-tools{gap:6px}.header-tools .chip{padding:7px 10px}.header-tools .iconbutton{width:35px;height:35px;border-width:2px}.header-tools .iconbutton svg{width:17px;height:17px}.hero{padding:19px;position:relative}.hero-art{flex-basis:80px;width:80px;height:100px}.hero-art .visual{width:90px;height:90px}.hero h1{font-size:24px}.hero p{font-size:12px}.hero-buttons{gap:8px}.hero-buttons .primary{font-size:15px;padding:12px 15px}.hero-buttons .secondary{font-size:13px;padding:11px 14px}.eyebrow{font-size:11px}.section-grid{gap:13px}.section-cover{height:125px}.section-cover .visual{width:110px;height:110px}.section-info h3{font-size:16px}.section-info p{font-size:10px}.section-meta{font-size:10px;margin-top:12px}.section-info{padding:12px 10px}.ribbon{font-size:9px;top:8px;left:8px;padding:4px 6px}.chapter-panel{padding:17px 12px}.chapter-heading h2{font-size:18px}.chapter-heading span{font-size:11px}.level-grid{gap:10px}.level{border-radius:17px;aspect-ratio:.85}.level b{font-size:20px}.level small{font-size:9px}.filter{font-size:12px;padding:9px 13px}.welcome-content{left:12%;right:12%;top:22%}.welcome .brand{font-size:95px}.welcome-start{left:15%;right:15%}.welcome-start .primary{font-size:27px}.welcome-tagline{font-size:16px}.header-tools .child-name{display:none}.map-overview>div{width:85%}.map-overview h2{font-size:24px}.map-overview{height:230px}.game-title h1{font-size:21px}.gamebody{gap:16px;min-height:575px}.instruction{font-size:17px}.answer-card{min-width:95px;max-width:165px;padding:10px 12px}.answer-card .visual.sprite{width:90px;height:90px}.answer-card .visual.letter{font-size:46px}.answer-card .visual.word{font-size:16px}.choice-grid{gap:13px}.display-area>.visual.word{font-size:25px;padding:18px}.display-area>.visual.letter{font-size:85px;min-width:115px;padding:0 15px}.quantity{max-width:330px;padding:12px}.count-item .visual.sprite{width:55px;height:55px}.math-scene{gap:7px;padding:12px}.math-group{max-width:138px}.math-group .visual.sprite{width:33px;height:33px}.math-symbol{font-size:35px;min-width:40px}.math-scene .operator{font-size:29px}.math-label{font-size:13px}.pattern{gap:7px}.pattern .visual{width:40px;height:40px}.pattern .question{font-size:30px;padding:0 5px}.mixture{padding:15px;gap:12px}.mixture .visual{width:70px}.story-panel{flex-direction:column;gap:5px;padding:14px 18px}.story-panel .visual{flex-basis:auto;width:105px;height:105px}.story-panel p{font-size:16px;line-height:1.9}.memory-grid{gap:10px}.memory-card{border-radius:18px;border-width:3px;font-size:30px}.game-footer{gap:8px}.game-footer .secondary{padding:10px 12px;font-size:12px}.status{font-size:14px}.collect-item .visual{width:55px;height:55px}.maze-board{width:92vw;gap:2px;border-width:5px;padding:5px;border-radius:18px}.maze-cell{border-radius:3px}.maze-controls{grid-template-columns:repeat(3,46px)}.maze-controls button{height:43px}.maze-info{font-size:12px;padding:10px}.game-title p{font-size:11px}.order-slot .visual.word{font-size:14px}.order-slot{padding:9px;min-width:65px}.order-lane{gap:9px;padding:10px}.reward-grid{gap:9px}.reward-card{padding:8px}.reward-card .visual{width:65px;height:65px}.reward-card p{font-size:10px}.encyclopedia-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.discovery-card{padding:12px}.discovery-card h3{font-size:15px}.discovery-card .visual{width:100px;height:100px}.teacher-panel{padding:18px 13px}.teacher-panel h2{font-size:21px}.stats-grid{grid-template-columns:1fr}.stat{display:flex;justify-content:space-between;align-items:center;padding:13px 18px}.stat b{font-size:25px}.stats-grid{gap:8px}.children-grid{gap:10px}.child-card{padding:12px}.setting{gap:12px;font-size:14px}.setting .secondary{padding:9px 12px;font-size:12px}.setting p{font-size:11px}.garden-item{width:65px;height:75px}.garden-plot{height:350px}.studio-board{height:340px}.sticker{width:70px;height:70px}.modal{padding:23px 18px}.modal h2{font-size:26px}.modal .primary{font-size:17px}.modal-actions{gap:12px}.modal p{font-size:14px}.certificate{padding:25px}.profile-choice{padding:11px 14px}.toast{font-size:12px}.catalog-header h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{.topbar,.teacher-nav,.hero-buttons,.setting,.primary,.secondary{display:none!important}.world{background:white!important}.world:before{display:none}.glass{box-shadow:none;border:1px solid #ccc}.page{max-width:none}.teacher-shell{display:block}.teacher-panel{break-inside:avoid}.modal-overlay{position:static;background:white}.modal{box-shadow:none}}

.instruction svg{width:22px;height:22px;vertical-align:middle;fill:#169c9c;margin-inline-end:8px}.profile-choice>span .visual,.child-card>span .visual{width:100%;height:100%}.profile-choice>span{display:block;flex-shrink:0}.level.done small{font-size:10px}

.match-board{width:100%;max-width:680px;display:grid;grid-template-columns:1fr 1fr;gap:40px;direction:rtl}.match-column{display:flex;flex-direction:column;gap:14px}.match-card{background:#fff9e9f5;border:4px solid white;box-shadow:var(--shadow);border-radius:24px;padding:9px;min-height:100px;display:flex;justify-content:center;align-items:center}.match-card .visual.sprite{width:95px;height:95px}.match-card .visual.color{width:75px;height:75px}.match-card .visual.letter{font-size:54px}.match-card .visual.word{font-size:21px}.match-card.picked{outline:4px solid #14b9a9;background:#d7f6e8}.match-card.matched{opacity:.45;background:#d8f2c7;pointer-events:none}.companion{position:fixed;width:190px;height:230px;bottom:13%;pointer-events:none;z-index:-1}.companion.left{left:0}.companion.right{right:0}.companion .visual{width:100%;height:100%;filter:drop-shadow(0 12px 5px #2333)}.gamebody{max-width:1000px;margin:auto}.offline-idea{font-size:14px;background:#edf4d8;padding:12px 17px;border-radius:18px;margin-top:17px;color:#638254}
@media(max-width:1100px){.companion{width:125px;height:175px;bottom:8%}.match-board{max-width:570px;gap:25px}}@media(max-width:760px){.companion{display:none}.match-board{max-width:500px;gap:20px}.match-card{min-height:85px;padding:6px}.match-card .visual.sprite{width:80px;height:80px}.match-card .visual.letter{font-size:44px}}@media(max-width:440px){.match-board{gap:15px}.match-card .visual.word{font-size:17px}.match-card .visual.sprite{width:70px;height:70px}.match-card .visual.color{width:60px;height:60px}.match-card{border-radius:20px;min-height:80px}.match-column{gap:12px}}

body{font-family:Dubai,Tahoma,Arial,sans-serif}.visual.letter{font-family:Tahoma,Arial,sans-serif}.visual.letter.en{font-family:Arial,sans-serif}.gamebody:has(.match-board){min-height:620px}

.visual.standalone{width:120px;height:120px;object-fit:contain}.match-card .visual.standalone{width:95px;height:95px}.answer-card .visual.standalone{width:130px;height:130px}.display-area>.visual.standalone{width:210px;height:210px}@media(max-width:440px){.match-card .visual.standalone{width:70px;height:70px}.answer-card .visual.standalone{width:90px;height:90px}}

.visual.sceneimage{width:190px;height:190px;background-repeat:no-repeat;border-radius:23px;border:4px solid white;box-shadow:0 5px 0 #cfb98f;flex-shrink:0}.story-panel .visual.sceneimage{width:220px;height:220px;flex-basis:220px}.display-area>.visual.sceneimage{width:240px;height:240px}
@media(max-width:760px){.story-panel .visual.sceneimage{width:160px;height:160px;flex-basis:160px}}@media(max-width:440px){.story-panel .visual.sceneimage{width:190px;height:190px;flex-basis:auto}.display-area>.visual.sceneimage{width:200px;height:200px}}

@media(max-height:850px) and (min-width:761px){.game-page{padding-top:12px;padding-bottom:16px}.game-header{margin-bottom:10px}.game-title{padding:9px 20px}.game-title h1{font-size:23px}.gamebody,.gamebody:has(.match-board){min-height:0;gap:12px;padding:10px 3%}.instruction{font-size:19px;padding:9px 20px}.story-panel{padding:13px 20px}.story-panel p{font-size:19px}.story-panel .visual.sceneimage{width:165px;height:165px;flex-basis:165px}.answer-card{min-height:90px;padding:10px 18px}.answer-card .visual.sprite,.answer-card .visual.standalone{width:105px;height:105px}.answer-card .visual.letter{font-size:58px}.display-area{min-height:155px}.display-area>.visual.sprite,.display-area>.visual.standalone{width:170px;height:170px}.display-area>.visual.letter{font-size:105px}.display-area>.visual.sceneimage{width:185px;height:185px}.game-footer{margin-top:8px}.game-footer .secondary{padding:9px 15px}.memory-card{max-height:115px}.match-card{min-height:82px;padding:5px}.match-card .visual.sprite,.match-card .visual.standalone{width:75px;height:75px}.match-card .visual.letter{font-size:43px}.match-column{gap:10px}.maze-board{width:min(460px,calc(100dvh - 285px))}.studio-board{height:300px}.companion{width:165px;height:200px;bottom:10%}}

.option-shell{display:flex;flex-direction:column;gap:9px;max-width:270px;min-width:125px}.option-shell .answer-card{width:100%;flex:1}.option-audio{background:#fff8e9e8;color:#338a8a;border:2px solid white;border-radius:15px;font-size:12px;padding:5px 12px;min-height:34px;align-self:center}.option-audio svg{width:14px;height:14px;fill:currentColor;vertical-align:middle;margin-inline-end:5px}@media(max-width:440px){.option-shell{max-width:165px;min-width:95px}.option-audio{font-size:11px}}
/* Adventure navigation v3: separated worlds, ten-step paths and Saudi companions. */
.city-heading,.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:4px 0 18px}.city-heading h1,.journey-heading h1{font-size:38px;margin:4px 0;color:#215e59}.city-heading p,.journey-heading p{margin:0;color:#51776d}.region-tabs{display:flex;justify-content:center;gap:12px;margin-bottom:16px}.region-tabs button{border-radius:22px;padding:11px 24px;background:#fff9e9;color:#52776a;border:3px solid #fff;font-size:16px}.region-tabs button.active{background:#168f85;color:white;box-shadow:0 4px 0 #0c716c}.adventure-map{position:relative;isolation:isolate;height:580px;max-height:65vw;min-height:480px;border:7px solid #fff9e7;border-radius:42px;box-shadow:0 15px 45px #27573b26;overflow:hidden;background:linear-gradient(#bdeac966,#80bca12b),url(assets/adventure-map.webp?v=883c2f4c104b) center/cover}.map-caption{position:absolute;top:18px;right:28px;padding:9px 20px;background:#fff8e9ed;border-radius:20px;display:grid;z-index:2}.map-caption b{font-size:20px}.map-caption span{font-size:12px;color:#6e8872}.city-trails{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.city-trails path{fill:none;stroke:#ffefbd;stroke-width:23;stroke-linecap:round;stroke-dasharray:1 29;filter:drop-shadow(0 4px 0 #8a9f7150)}.world-destination{position:absolute;transform:translate(-50%,-50%);background:none;display:flex;align-items:center;flex-direction:column;color:#285a51;min-width:140px;transition:transform .2s;z-index:2}.world-destination:hover{transform:translate(-50%,-54%) scale(1.05)}.destination-island{width:135px;height:98px;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 60%,#e3f1a3 15%,#a7cb71 65%,#6eaa6d 68%);border-radius:50%;box-shadow:0 10px 0 #688a51,0 16px 8px #203e392b;border:4px solid #f1f8c7}.destination-icon{font-size:76px;line-height:1;transform:translateY(-17px);filter:drop-shadow(0 5px 0 #48503220)}.world-destination strong{background:#fff8e9;border:3px solid white;padding:5px 20px;border-radius:16px;box-shadow:0 4px 0 #b1a37d;font-size:19px;margin-top:12px;white-space:nowrap}.world-destination small{margin-top:7px;padding:2px 15px;border-radius:20px;background:#2e6555e8;color:#fff5d7;font-size:11px}.place-0{left:19%;top:36%}.place-1{left:49%;top:30%}.place-2{left:81%;top:40%}.place-3{left:65%;top:75%}.place-4{left:32%;top:74%}.map-region-arrow{position:absolute;top:53%;border:3px solid white;border-radius:50%;background:#fff5dd;color:#167f75;width:44px;height:44px;font-size:24px;z-index:5}.map-region-arrow.prev{right:8px}.map-region-arrow.next{left:8px}.city-companions{position:absolute;bottom:3%;right:0;width:220px;height:190px;z-index:3;pointer-events:none}.saudi-hero{display:block;width:160px;height:190px;transform-origin:50% 90%;animation:hero-idle 4s ease-in-out infinite}.saudi-hero img{width:100%;height:100%;object-fit:contain;pointer-events:none}.city-companions .saudi-hero{position:absolute;right:0;bottom:0;width:150px;height:190px}.city-companions .second{right:78px;bottom:-10px;animation-delay:-1s}.companion-change{position:absolute;right:10px;bottom:0;z-index:4;border-radius:18px;background:#fff9e9;padding:6px 17px;color:#227768;border:2px solid white;pointer-events:auto;font-size:12px}.explorer-dock{display:flex;justify-content:center;gap:18px;margin-top:22px}.explorer-dock button{background:#fff7e7;color:#407968;padding:12px 24px;border:3px solid white;border-radius:22px;font-size:16px;box-shadow:0 5px 0 #d0ceaf}.hero-choices{display:flex;justify-content:center;gap:14px;margin:20px 0}.hero-choice{background:#e6f1db;border:3px solid white;border-radius:28px;padding:10px;color:#27675e;display:grid;width:45%;font-size:22px}.hero-choice img{width:100%;height:220px;object-fit:contain}.journey-heading{text-align:center}.journey-map{position:relative;width:min(850px,100%);height:660px;margin:auto;isolation:isolate;border:7px solid #fff8e5;border-radius:42px;overflow:hidden;background:linear-gradient(#edf4d9b8,#d6e9b9d6),var(--journey-bg) center/cover;box-shadow:0 12px 35px #34573c25}.journey-label{position:absolute;right:20px;top:20px;display:grid;background:#fff8e9e8;padding:10px 18px;border-radius:18px;z-index:1}.journey-label b{font-size:17px}.journey-label small{font-size:11px;color:#6d8a71}.journey-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.journey-thread path{fill:none;stroke:#fff4d6;stroke-width:3.8;stroke-linecap:round;filter:drop-shadow(0 2px 1px #997b4a70)}.journey-thread path{stroke-dasharray:.3 1;stroke-width:2.2}.path-node.level{position:absolute;transform:translate(-50%,-50%);width:73px;height:73px;aspect-ratio:1;border-radius:50%;border:5px solid #fffbea;background:linear-gradient(#ffe9a6,#f6c65e);box-shadow:0 7px 0 #c99743,0 11px 12px #48744833;display:grid;place-content:center;gap:0;padding:0;color:#74502f;z-index:3}.path-node.level b{font-size:26px;line-height:1.1}.path-node.level small{font-size:13px;line-height:1.1}.path-node.level.done{background:linear-gradient(#a8e5af,#61c694);box-shadow:0 7px 0 #418d6f;color:#245e54}.path-node.level.recommended{background:linear-gradient(#64d4cb,#18aaa3);box-shadow:0 7px 0 #147b7a,0 0 0 8px #fff6be96;color:white;animation:node-glow 2.5s infinite}.path-traveller{position:absolute;transform:translate(-50%,-91%);width:100px;height:125px;z-index:4;pointer-events:none;transition:left 1.25s ease-in-out,top 1.25s ease-in-out}.path-traveller .saudi-hero{width:100%;height:100%;filter:drop-shadow(0 7px 3px #1c564530)}.guide-bee{position:absolute;right:-24px;top:15px;font-size:29px;animation:bee-float 2s infinite}.path-decoration{position:absolute;z-index:0;font-size:58px;opacity:.85;pointer-events:none}.d1{left:9%;top:30%}.d2{left:82%;top:61%}.d3{left:41%;top:10%}.journey-footer{display:flex;justify-content:center;align-items:center;gap:30px;margin:22px auto;text-align:center}.journey-footer span{font-size:19px}.journey-footer small{font-size:12px;color:#638475}.journey-footer button:disabled{opacity:.35;cursor:default}.saudi-hero.wave{animation:hero-wave .24s ease-in-out 4}.saudi-hero.walking{animation:hero-walk .2s ease-in-out infinite}.saudi-hero.celebrate{animation:hero-celebrate .6s ease-in-out infinite}.saudi-hero.thinking{animation:hero-think 3s ease-in-out infinite}.saudi-hero.encourage{animation:hero-wave .45s ease-in-out 3}.game-hero{position:fixed;bottom:10%;right:10px;z-index:1;pointer-events:none}.game-hero .saudi-hero{width:150px;height:190px}.companion.right{display:none}.visual.sprite{clip-path:none}.visual.fixed-asset{background:none!important;object-fit:contain!important;clip-path:none!important;padding:4px}.game-title p{font-size:13px}.game-footer .textbutton{display:none}.world:has(.adventure-map):before{background:#eef6e57a}.world:has(.journey-map):before{background:#f2f5dfad}
@keyframes hero-idle{50%{transform:translateY(-4px) rotate(1deg)}}@keyframes hero-wave{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(9deg) translateY(-5px)}}@keyframes hero-walk{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-8px) rotate(5deg)}}@keyframes hero-celebrate{50%{transform:translateY(-16px) rotate(5deg)}}@keyframes hero-think{50%{transform:rotate(-5deg)}}@keyframes bee-float{50%{transform:translate(5px,-10px) rotate(8deg)}}@keyframes node-glow{50%{outline:6px solid #fff0a744}}
@media(min-width:1000px) and (max-height:850px){.world:has(.adventure-map) .page{padding-top:10px}.world:has(.adventure-map) .topbar{padding-bottom:10px}.city-heading h1{font-size:30px}.adventure-map{height:460px;min-height:430px}.city-heading{margin-bottom:10px}.region-tabs{margin-bottom:12px}.journey-map{height:520px;width:740px}.journey-heading h1{font-size:30px}.path-node.level{width:64px;height:64px}.path-traveller{width:90px;height:110px}.journey-footer{margin:17px auto}.city-companions{height:170px}.explorer-dock{margin-top:15px}}
@media(max-width:760px){.city-heading h1{font-size:29px}.city-heading{gap:10px}.city-heading p{font-size:13px}.city-heading .primary{font-size:14px;padding:12px 15px}.region-tabs{gap:6px}.region-tabs button{font-size:12px;padding:9px 11px;flex:1}.adventure-map{min-height:620px;border-radius:29px;border-width:5px}.map-caption{right:12px;top:12px;padding:8px 13px}.map-caption b{font-size:16px}.map-caption span{font-size:10px}.destination-island{width:105px;height:78px}.destination-icon{font-size:61px}.world-destination strong{font-size:15px;padding:5px 13px}.world-destination small{font-size:10px}.world-destination{min-width:110px}.place-0{left:27%;top:27%}.place-1{left:74%;top:36%}.place-2{left:26%;top:56%}.place-3{left:74%;top:67%}.place-4{left:27%;top:82%}.city-trails{display:none}.city-companions{width:170px;height:140px;right:-5px;bottom:2%}.city-companions .saudi-hero{width:115px;height:145px}.city-companions .second{right:55px}.companion-change{font-size:10px;padding:5px 9px}.map-region-arrow{top:47%;width:34px;height:40px;font-size:18px}.explorer-dock{gap:7px}.explorer-dock button{font-size:11px;padding:11px 8px;flex:1;border-radius:16px}.journey-heading{gap:8px}.journey-heading h1{font-size:24px}.journey-heading .secondary{font-size:12px;padding:10px}.journey-heading p{font-size:11px}.journey-heading .eyebrow{font-size:10px}.journey-map{height:650px;border-radius:28px;border-width:5px}.path-node.level{width:59px;height:59px;border-width:4px}.path-node.level b{font-size:23px}.path-traveller{width:84px;height:108px}.journey-label{right:10px;top:10px;padding:8px 10px}.journey-label b{font-size:13px}.journey-label small{font-size:9px}.path-decoration{font-size:40px}.d3{left:75%;top:8%}.journey-footer{gap:12px}.journey-footer .primary,.journey-footer .secondary{font-size:12px;padding:12px}.journey-footer span{font-size:15px}.game-hero{position:static;height:65px;display:flex;justify-content:center;order:-1}.game-hero .saudi-hero{width:75px;height:85px}.game-page{display:flex;flex-direction:column}.gamebody{width:100%;min-height:0!important}.game-footer{margin-top:15px}.hero-choice img{height:170px}}
@media(prefers-reduced-motion:reduce){.path-traveller{transition:none}}
.saudi-hero{position:relative}.saudi-hero img{position:absolute;inset:0}.hero-walk-frame,.hero-wave-frame{opacity:0}.saudi-hero.walking .hero-base{animation:frame-hide .4s steps(1,end) infinite}.saudi-hero.walking .hero-walk-frame{animation:frame-show .4s steps(1,end) infinite}.saudi-hero.wave .hero-base,.saudi-hero.encourage .hero-base{animation:frame-hide .4s steps(1,end) infinite}.saudi-hero.wave .hero-wave-frame,.saudi-hero.encourage .hero-wave-frame{animation:frame-show .4s steps(1,end) infinite}.tutorial-demo{font-size:52px;padding:24px;direction:ltr;background:#e6f2d7;border:3px solid white;border-radius:25px;animation:demo-point 1.6s ease-in-out infinite}.chapter-scene-1{background-position:25% center}.chapter-scene-2{background-position:75% center}.chapter-scene-0{background-position:center bottom}.chapter-scene-2 .d1{left:65%;top:12%}.chapter-scene-0 .d2{left:5%;top:42%}.quiet .hero-walk-frame,.quiet .hero-wave-frame{opacity:0!important}.quiet .hero-base{opacity:1!important}@keyframes frame-hide{0%,49%{opacity:1}50%,100%{opacity:0}}@keyframes frame-show{0%,49%{opacity:0}50%,100%{opacity:1}}@keyframes demo-point{50%{transform:translateX(-8px)}}
.destination-island:has(.landmark-art){background:none;box-shadow:none;border:none;width:175px;height:120px;overflow:visible;position:relative}.landmark-art{position:absolute;width:200px;height:175px;object-fit:contain;left:50%;bottom:-20px;transform:translateX(-50%);filter:drop-shadow(0 10px 5px #345b4030)}.world-destination strong{margin-top:0}.region-1{background-image:linear-gradient(#83d59e12,#679c6e33),url(assets/adventure-map.webp?v=883c2f4c104b);background-position:75% center}.region-2{background-image:linear-gradient(#f3db8e22,#dfb67233),url(assets/adventure-map.webp?v=883c2f4c104b);background-position:15% center}@media(max-width:760px){.destination-island:has(.landmark-art){width:130px;height:90px}.landmark-art{width:160px;height:145px;bottom:-20px}.world-destination strong{margin-top:0}}
.journey-map.short-path{height:400px;max-width:650px}.short-path .d3{display:none}.short-path .d2{top:20%}@media(max-width:760px){.journey-map.short-path{height:450px}}.world:has(.adventure-map),.world:has(.journey-map){background-attachment:fixed}.city-heading,.journey-heading{background:#fff9e5b3;border:2px solid #fff8;border-radius:25px;padding:12px 20px}.journey-heading .eyebrow{color:#3f776a}@media(max-width:760px){.city-heading,.journey-heading{padding:11px 10px}.city-heading h1{font-size:26px}.journey-heading h1{font-size:22px}}
.stage-counter{direction:ltr}.destination-island .landmark-art{max-width:none}.world-destination:focus-visible,.path-node:focus-visible{outline:5px solid #fa9b56;outline-offset:6px}.game-hero{z-index:1}.companion.left{z-index:0}.gamebody,.game-footer,.game-header{position:relative;z-index:2}.game-hero,.companion{pointer-events:none}@media(min-width:1000px) and (max-height:850px){.world:has(.adventure-map) .topbar{padding-top:0}.world:has(.adventure-map) .page{padding-bottom:20px}.adventure-map{min-height:410px;height:430px}.city-heading{padding:8px 18px}.city-heading h1{font-size:29px}.region-tabs button{padding:8px 22px}.landmark-art{height:155px;width:185px}.destination-island:has(.landmark-art){height:106px}.city-companions{height:150px}.city-companions .saudi-hero{height:160px}}
/* Fullscreen illustrated world map. Each name is painted into its island asset. */
.city-scene{position:relative;isolation:isolate;width:100%;height:100dvh;min-height:360px;overflow:hidden;background:var(--city-background) center/cover no-repeat;background-color:#b7dfb4}.city-controls{position:absolute;z-index:10;inset:12px 24px auto;pointer-events:none}.city-controls .topbar{padding:0 0 10px;max-width:1500px;margin:auto;pointer-events:auto}.city-controls .brand-small{font-size:30px}.city-controls .header-tools{gap:8px}.city-controls .chip{padding:6px 12px;background:#fff8e9df}.city-controls .iconbutton{height:42px;width:42px}.city-controls .region-tabs{gap:10px;margin:0 auto;pointer-events:auto;width:max-content;max-width:100%}.city-controls .region-tabs button{padding:7px 22px;font-size:15px;border-width:2px;box-shadow:0 3px 0 #8b9f6b55;background:#fffae8e8}.city-controls .region-tabs button.active{background:#168f85}.world-canvas{position:absolute;inset:116px max(50px,4vw) 86px;--island-size:min(23vw,calc((100dvh - 215px)*.47),290px)}.painted-world{position:absolute;width:var(--island-size);height:var(--island-size);padding:0;background:transparent;border:0;transform:translate(-50%,-50%);filter:drop-shadow(0 12px 7px #1f493a30);transition:filter .2s,transform .2s;touch-action:manipulation}.painted-world img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.painted-world:hover{transform:translate(-50%,-53%) scale(1.045);filter:drop-shadow(0 15px 9px #20563d50) brightness(1.04)}.painted-world:active{transform:translate(-50%,-50%) scale(.97)}.painted-world:focus-visible{outline:5px dashed #fff0a7;outline-offset:3px;border-radius:35%}.position-0{left:18%;top:25%}.position-1{left:50%;top:25%}.position-2{left:82%;top:25%}.position-3{left:34%;top:76%}.position-4{left:66%;top:76%}.destinations-4 .position-0{left:28%;top:25%}.destinations-4 .position-1{left:72%;top:25%}.destinations-4 .position-2{left:28%;top:76%}.destinations-4 .position-3{left:72%;top:76%}.scene-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:43px;height:56px;background:#fff8e9e8;border:3px solid white;border-radius:23px;color:#21877d;font-size:25px;box-shadow:0 4px 0 #9ca97f55}.scene-arrow:hover{transform:translateY(-50%) scale(1.06)}.scene-prev{right:14px}.scene-next{left:14px}.scene-companions{position:absolute;z-index:7;bottom:75px;right:15px;width:185px;height:170px;pointer-events:none}.scene-companions .saudi-hero{position:absolute;width:125px;height:165px;right:0;bottom:0}.scene-companions .second{right:65px;bottom:-3px}.scene-companions .companion-change{right:24px;bottom:0;pointer-events:auto;background:#fff9e9e6}.scene-dock{position:absolute;z-index:10;bottom:17px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;white-space:nowrap}.scene-dock button{border:3px solid #fff9e5;border-radius:20px;background:#fff8e9e8;padding:11px 22px;box-shadow:0 4px 0 #758f6855;color:#347366;font-size:15px;font-weight:bold}.scene-dock .resume-adventure{background:linear-gradient(#1db9ae,#078f90);color:white}.city-scene .saudi-hero{animation-duration:5s}
@media(min-width:1600px){.world-canvas{--island-size:min(23vw,calc((100dvh - 215px)*.47),360px)}}
@media(max-width:700px){.city-controls{inset:10px 12px auto}.city-controls .topbar{flex-wrap:nowrap;gap:8px;padding-bottom:11px}.city-controls .brand-small{font-size:24px;padding:2px 9px;border-radius:16px;flex-shrink:0}.city-controls .header-tools{gap:5px;flex-wrap:nowrap}.city-controls .chip{font-size:11px;padding:6px 8px;gap:4px}.city-controls .child-name,.city-controls .header-tools>.chip:not(button){display:none}.city-controls .iconbutton{width:34px;height:34px;border-width:2px}.city-controls .iconbutton svg{width:17px;height:17px}.city-controls .region-tabs{gap:5px;width:100%}.city-controls .region-tabs button{font-size:11px;padding:8px 6px;flex:1;white-space:nowrap}.world-canvas{inset:112px 8px 73px;--island-size:min(47vw,calc((100dvh - 190px)/3))}.position-0,.destinations-4 .position-0{left:25%;top:17%}.position-1,.destinations-4 .position-1{left:75%;top:17%}.position-2,.destinations-4 .position-2{left:25%;top:50%}.position-3,.destinations-4 .position-3{left:75%;top:50%}.position-4{left:25%;top:83%}.destinations-4{--island-size:min(47vw,calc((100dvh - 190px)/2.35))}.destinations-4 .position-0,.destinations-4 .position-1{top:27%}.destinations-4 .position-2,.destinations-4 .position-3{top:74%}.scene-companions{right:8px;bottom:79px;width:45vw;height:calc((100dvh - 190px)/3);max-height:165px}.scene-companions .saudi-hero{height:100%;width:65%;right:0}.scene-companions .second{right:35%}.scene-companions .companion-change{right:15px;padding:4px 12px;font-size:10px}.scene-dock{bottom:14px;gap:5px;width:calc(100% - 16px);justify-content:center}.scene-dock button{padding:10px 8px;font-size:11px;border-width:2px;border-radius:16px;flex:1}.scene-dock .resume-adventure{flex:1.4}.scene-arrow{width:29px;height:43px;border-width:2px;font-size:17px;top:49%}.scene-prev{right:2px}.scene-next{left:2px}}
@media(max-height:520px) and (min-width:701px){.city-controls{top:7px}.city-controls .topbar{padding-bottom:4px}.city-controls .brand-small{font-size:23px}.city-controls .iconbutton{width:32px;height:32px}.city-controls .region-tabs button{padding:4px 18px;font-size:12px}.world-canvas{inset:86px 35px 57px;--island-size:min(22vw,calc((100dvh - 150px)*.49))}.scene-dock{bottom:8px}.scene-dock button{padding:7px 15px;font-size:12px}.scene-companions{height:105px;width:130px;bottom:54px}.scene-companions .saudi-hero{height:105px;width:80px}.scene-companions .second{right:45px}.scene-companions .companion-change{font-size:9px;right:0;padding:3px 8px}}
.biome-desert .region-tabs button.active{background:#b27435;border-color:#fff1d4}.biome-desert .scene-dock .resume-adventure{background:linear-gradient(#d6a554,#a96a30)}.biome-desert .scene-arrow{color:#99642e}.biome-volcano .region-tabs button.active{background:#7c4f80;border-color:#ffe7c3}.biome-volcano .scene-dock .resume-adventure{background:linear-gradient(#dc8c50,#ae5a4f)}.biome-volcano .scene-arrow{color:#975f61}.biome-volcano .painted-world{filter:drop-shadow(0 12px 7px #391e4945)}
/* Hidden live regions must not add one pixel of scroll to the fullscreen map. */
.sr-only{top:0;left:0}
/* Reserve the bottom-right space for the companions at every aspect ratio. */
.scene-companions{width:clamp(100px,14vw,185px)}.scene-companions .saudi-hero{width:65%;height:100%}.scene-companions .second{right:35%}
@media(max-width:700px){.destinations-4{--island-size:min(47vw,calc((100dvh - 190px)/3))}.destinations-4 .position-0,.destinations-4 .position-1{top:17%}.destinations-4 .position-2,.destinations-4 .position-3{top:50%}.scene-companions{width:45vw}}
/* Six illustrated companions and generated biome medallions. */
.companion-portal{background:none;border:0;padding:0;display:block;width:100%;height:100%;pointer-events:auto;filter:drop-shadow(0 5px 4px #243c372c);transition:filter .2s,transform .2s}.companion-portal img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.companion-portal:hover{transform:translateY(-4px) scale(1.035);filter:drop-shadow(0 9px 7px #243c3740)}.companion-portal:focus-visible{outline:4px dashed #ffe4a0;border-radius:25px}.scene-companions{height:155px;bottom:72px}.journey-heading>.companion-portal{width:160px;height:105px;flex-shrink:0}.journey-heading{padding:4px 16px;gap:12px}.hero-roster{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0 22px}.modal:has(.hero-roster){max-width:850px;max-height:calc(100dvh - 30px);overflow:auto;padding:25px}.roster-choice{position:relative;border:3px solid #fff;border-radius:25px;background:linear-gradient(#edf5e5,#fff5df);box-shadow:0 5px 0 #d3c5a0;padding:8px 10px 11px;display:flex;flex-direction:column;align-items:center;color:#285f58;min-width:0}.roster-choice img{height:160px;width:100%;object-fit:contain;pointer-events:none}.roster-choice strong{font-size:21px;line-height:1.4}.roster-choice small{font-size:11px;line-height:1.6;min-height:20px}.roster-choice.selected{border-color:#1ab7a6;background:linear-gradient(#dcf2e5,#ecf8d9);box-shadow:0 5px 0 #4eab90}.roster-selected{font-size:11px;display:block;margin-top:6px;color:#5b8371}.roster-choice.selected .roster-selected{background:#158e7f;color:white;padding:3px 14px;border-radius:15px}.saudi-hero .companion-frame{position:absolute;inset:0;opacity:0;object-fit:contain}.saudi-hero .frame-idle{opacity:1}.saudi-hero.walking .frame-idle,.saudi-hero.wave .frame-idle,.saudi-hero.encourage .frame-idle,.saudi-hero.celebrate .frame-idle{opacity:0}.saudi-hero.walking .frame-walk1{animation:companion-a .44s steps(1,end) infinite}.saudi-hero.walking .frame-walk2{animation:companion-b .44s steps(1,end) infinite}.saudi-hero.wave .frame-wave1,.saudi-hero.encourage .frame-wave1{animation:companion-a .38s steps(1,end) infinite}.saudi-hero.wave .frame-wave2,.saudi-hero.encourage .frame-wave2{animation:companion-b .38s steps(1,end) infinite}.saudi-hero.celebrate .frame-celebrate{opacity:1}.quiet .saudi-hero .companion-frame{opacity:0!important}.quiet .saudi-hero .frame-idle{opacity:1!important}@keyframes companion-a{0%,49%{opacity:1}50%,100%{opacity:0}}@keyframes companion-b{0%,49%{opacity:0}50%,100%{opacity:1}}
.journey-map{border:3px solid #fff8dc9c;background:linear-gradient(#fff9e911,#fff9e911),var(--journey-bg) center/cover;box-shadow:0 12px 38px #274c3940;backdrop-filter:none}.world:has(.journey-map):before{background:#f6f2df22}.world:has(.journey-map.biome-desert):before{background:#9c642211}.world:has(.journey-map.biome-volcano):before{background:#2e183b22}.journey-map.biome-volcano{border-color:#ffdb9d96;background:linear-gradient(#3b224530,#3b224511),var(--journey-bg) center/cover;box-shadow:0 12px 38px #2d163b55}.journey-map.biome-desert{border-color:#fff1cfbf}.journey-map .path-node.level,.journey-map .path-node.level.done,.journey-map .path-node.level.recommended{width:102px;height:102px;border:0;background:transparent;box-shadow:none;border-radius:50%;padding:0;display:block;overflow:visible;aspect-ratio:1;color:#365c4b}.path-node .level-medallion{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 3px #193d3440)}.path-node b{position:absolute;inset:0;display:grid;place-items:center;font-size:29px!important;line-height:1!important;text-shadow:0 1px 0 #fff8;z-index:1}.path-node .node-status{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:25px;height:25px;background:#fff7d9;border:2px solid white;border-radius:50%;display:grid;place-items:center;font-size:15px!important;color:#147d68;z-index:2;box-shadow:0 2px 0 #627e6150}.path-node.done .node-status{background:#269d80;color:white}.path-node.recommended .node-status{background:#f7c652;color:#764d2c}.journey-map .path-node.recommended{animation:none;outline:0}.path-node.recommended .level-medallion{filter:drop-shadow(0 0 9px #ffe99d) drop-shadow(0 4px 3px #193d3440);animation:medallion-current 2.5s ease-in-out infinite}.path-node.done .level-medallion{filter:drop-shadow(0 4px 3px #193d3440) saturate(.9)}.biome-desert .path-node b{color:#5c623f}.biome-volcano .path-node b{color:#fff0c5;text-shadow:0 2px 3px #3b174a}.biome-volcano .journey-thread path{stroke:#ffd88c;filter:drop-shadow(0 1px 4px #ff812f);stroke-dasharray:.1 1;stroke-width:1.8}.biome-desert .journey-thread path{stroke:#d5f1e7;filter:drop-shadow(0 2px 1px #9f692d);stroke-width:1.9}.biome-garden .journey-thread path{stroke:#fff3c4;filter:drop-shadow(0 2px 1px #6a8d3b);stroke-width:1.9}.journey-label{background:#fff8e9eb;border:2px solid white}.path-traveller{width:120px;height:148px;transform:translate(-50%,-89%)}.guide-bee{right:-8px;top:25px;font-size:23px}.journey-map.biome-volcano .guide-bee{filter:drop-shadow(0 0 4px #fff4a9)}@keyframes medallion-current{50%{transform:scale(1.055);filter:drop-shadow(0 0 15px #fff0b9) drop-shadow(0 4px 3px #193d3440)}}
@media(min-width:761px) and (max-height:850px){.journey-map .path-node.level{width:91px;height:91px}.path-node b{font-size:26px!important}.path-traveller{width:105px;height:130px}.journey-heading>.companion-portal{height:85px;width:145px}.journey-heading h1{font-size:27px}.journey-heading p{font-size:13px}.journey-map{height:520px}}
@media(max-width:760px){.journey-heading>.companion-portal{width:105px;height:80px}.journey-heading{padding:3px 8px;gap:6px}.journey-heading .eyebrow{display:none}.journey-heading h1{font-size:19px}.journey-heading p{font-size:10px}.journey-map .path-node.level{width:80px;height:80px}.path-node b{font-size:24px!important}.path-node .node-status{width:21px;height:21px;bottom:2px;font-size:12px!important}.path-traveller{width:98px;height:122px}.guide-bee{right:-2px;font-size:20px}.scene-companions{height:calc((100dvh - 190px)/3);max-height:160px}.hero-roster{grid-template-columns:repeat(2,1fr);gap:12px}.modal:has(.hero-roster){padding:18px 13px;border-width:4px;max-height:calc(100dvh - 20px)}.roster-choice img{height:125px}.roster-choice strong{font-size:18px}.roster-choice small{font-size:10px}.roster-choice{padding:6px 7px 9px;border-radius:20px}.roster-selected{font-size:10px}.modal:has(.hero-roster) h2{font-size:25px;margin:3px 0}.modal:has(.hero-roster)>p{font-size:12px;margin:5px 0}.journey-label b{font-size:12px}}
@media(max-width:370px){.journey-heading>.companion-portal{width:87px;height:69px}.journey-heading h1{font-size:17px}.journey-heading .secondary{font-size:11px;padding:8px}.journey-map .path-node.level{width:73px;height:73px}.path-node b{font-size:22px!important}}
@media(prefers-reduced-motion:reduce){.saudi-hero .companion-frame{opacity:0!important}.saudi-hero .frame-idle{opacity:1!important}}
/* One continuous biome scene behind the route, without repeating a second landscape. */
.world:has(.journey-map) .page{padding:12px 4% 18px;max-width:1400px}.world:has(.journey-map) .topbar{padding:0 0 8px}.world:has(.journey-map) .brand-small{font-size:30px}.world:has(.journey-map) .journey-heading{margin:0 0 8px;background:#fff9e9df;border-radius:24px}.journey-map,.journey-map.biome-desert,.journey-map.biome-volcano{background:transparent;border:0;box-shadow:none;backdrop-filter:none;height:max(480px,calc(100dvh - 245px));overflow:visible}.journey-map.short-path{height:360px}.world:has(.journey-map):before{background:#fff5d51c}.world:has(.journey-map.biome-volcano):before{background:#2c17392b}.world:has(.journey-map.biome-desert):before{background:#f8e7c022}.journey-footer{margin:10px auto 0;gap:25px}.journey-footer>span{background:#fff8e9e3;border:2px solid white;border-radius:18px;padding:4px 16px;font-size:15px}.journey-footer .primary,.journey-footer .secondary{font-size:14px;padding:10px 18px}.journey-map .guide-bee{display:none}.game-biome-volcano:before{background:#2c173933}.game-biome-desert:before{background:#fff4d51c}
@media(max-width:760px){.world:has(.journey-map) .page{padding:12px 3% 20px}.world:has(.journey-map) .brand-small{font-size:25px}.journey-map{height:max(480px,calc(100dvh - 245px))}.journey-footer{gap:10px}.journey-footer>span{padding:4px 10px;font-size:13px}.journey-footer .primary,.journey-footer .secondary{padding:10px;font-size:11px}.journey-map.short-path{height:420px}}
.companion-frame{transform:translateY(var(--frame-y,0%));backface-visibility:hidden}.path-traveller.facing-left .saudi-hero{scale:-1 1}.path-node b.three-digits{font-size:24px!important}@media(max-width:760px){.path-node b.three-digits{font-size:21px!important}}
.modal:has(.hero-roster){padding:18px 22px}.modal:has(.hero-roster) h2{font-size:28px;margin:3px 0}.modal:has(.hero-roster)>p{font-size:13px;line-height:1.6;margin:5px 0 10px}.hero-roster{gap:12px;margin:10px 0 14px}.roster-choice img{height:145px}.modal:has(.hero-roster)>.secondary{font-size:15px;padding:10px 20px}@media(max-width:760px){.modal:has(.hero-roster){padding:16px 12px}.roster-choice img{height:115px}.modal:has(.hero-roster) h2{font-size:25px}.hero-roster{gap:10px}}
.path-traveller.travelling{transition:none!important}
.path-traveller{transform:translate(-50%,-108%)}@media(min-width:761px){.journey-map{height:max(410px,calc(100dvh - 275px))}}
.scene-companions{width:clamp(110px,17vw,230px)}@media(max-width:700px){.scene-companions{width:45vw}}
/* Leave headroom for the companion even on the highest node. */
.route-surface{position:absolute;top:100px;left:0;right:0;bottom:0}.journey-label{top:8px;right:10px}.journey-map{isolation:auto}.path-traveller{z-index:5}@media(max-width:760px){.journey-map{height:max(550px,calc(100dvh - 245px))}.journey-map.short-path{height:420px}}
.saudi-hero .companion-frame{width:100%;height:auto;aspect-ratio:1;top:50%;left:0;right:auto;bottom:auto;object-fit:contain;transform:translateY(calc(-50% + var(--frame-y,0%)))}
/* Keep the route height consistent for all three biome selectors. */
@media(min-width:761px){.world .journey-map{height:max(410px,calc(100dvh - 275px))}.world .journey-map.short-path{height:360px}}
@media(max-width:760px){.world .journey-map{height:max(550px,calc(100dvh - 245px))}.world .journey-map.short-path{height:420px}}

/* Ibtikari illustrated welcome */
.world.ibtikari-welcome{min-height:100svh;height:100svh;background-image:url(assets/ibtikari-welcome.webp?v=386fad08e159);background-size:cover;background-position:center;overflow:hidden;position:relative}
.ibtikari-welcome .welcome-content{position:absolute;left:50%;right:auto;top:1%;width:min(510px,42vw);transform:translateX(-50%);text-align:center;z-index:1}
.ibtikari-wordmark{display:block;width:100%;height:auto;max-height:43svh;object-fit:contain;filter:drop-shadow(0 5px 12px #fff9)}
.ibtikari-welcome .welcome-start{position:absolute;left:50%;right:auto;top:40%;bottom:auto;transform:translateX(-50%);width:min(325px,80vw);display:grid;gap:9px;z-index:2}
.ibtikari-welcome .welcome-start .primary{font-size:27px;padding:13px 26px;border:3px solid #fff7d9;box-shadow:0 5px 0 #087f76,0 9px 24px #185c4933}
.ibtikari-welcome .welcome-start .secondary{font-size:15px;padding:10px 14px;background:#fff9e9ed}
.ibtikari-welcome .welcome-start .textbutton{font-size:13px;background:#fff8e9e8;border-radius:20px;padding:9px 12px;color:#315e5e}
.ibtikari-welcome .welcome-note{position:absolute;bottom:9px;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:92%;font-size:12px;background:#fff9e9df;border-radius:20px;padding:7px 15px;color:#386851}
@media(max-width:760px){.world.ibtikari-welcome{background-size:auto 100%;background-position:center}.ibtikari-welcome .welcome-content{top:7%;width:min(490px,92vw)}.ibtikari-welcome .welcome-start{top:42%}.ibtikari-wordmark{max-height:32svh}}
@media(max-height:600px) and (min-width:761px){.ibtikari-welcome .welcome-content{top:0;width:34vw}.ibtikari-welcome .welcome-start{top:38%;gap:6px;width:270px}.ibtikari-welcome .welcome-start .primary{font-size:22px;padding:9px}.ibtikari-welcome .welcome-start .secondary{padding:7px}.ibtikari-welcome .welcome-start .textbutton{padding:6px}}

@media(min-width:761px){.ibtikari-welcome .welcome-content{top:0;width:min(440px,37vw)}.ibtikari-wordmark{max-height:29svh}.ibtikari-welcome .welcome-start{top:28%;width:420px;grid-template-columns:1fr 1fr;gap:8px}.ibtikari-welcome .welcome-start .primary{grid-column:1/-1;width:280px;justify-self:center}.ibtikari-welcome .welcome-start .secondary,.ibtikari-welcome .welcome-start .textbutton{font-size:12px;padding:8px}}

@media(max-width:760px){.world.ibtikari-welcome{background-size:100% auto;background-repeat:no-repeat;background-position:center bottom;background-color:#80d2f5}.ibtikari-welcome .welcome-content{top:3%;width:92vw}.ibtikari-welcome .welcome-start{top:37%;gap:9px}.ibtikari-welcome .welcome-note{font-size:10px;padding:5px 9px}}

.auth-scene{min-height:100svh;background:linear-gradient(100deg,#1f7d8233,#7bc0bf33),url(assets/ibtikari-welcome.webp?v=386fad08e159) center/cover fixed;display:grid;place-items:center;padding:25px}.auth-card{width:min(440px,96vw);padding:25px 34px;background:#fffbedf5;border:3px solid white;border-radius:32px;box-shadow:0 20px 70px #164d4744}.auth-logo{display:block;width:200px;height:125px;object-fit:contain;margin:auto}.auth-card h1,.auth-card p{text-align:center}.auth-card h1{font-size:28px;margin:7px}.auth-card p{font-size:14px}.auth-card label{font-size:13px}.auth-card .field{margin:6px 0 13px;font-size:17px;padding:11px}.auth-card small{display:block;font-size:11px;line-height:1.9;margin-top:15px;color:#658276}.auth-card form>.primary{width:100%;font-size:18px}.auth-tabs{display:flex;background:#e8f0dd;border-radius:15px;margin:15px 0;padding:4px;gap:4px}.auth-tabs button{flex:1;border-radius:12px;background:transparent;padding:10px;font-size:13px;color:#285c62}.auth-tabs button[aria-pressed=true]{background:white;box-shadow:0 3px 10px #2a625322}#auth-error{color:#a43d49;font-size:13px;min-height:18px}.learning-intro{margin:15px auto;padding:30px;max-width:1050px;background:#fff9eeef;border:3px solid white;border-radius:32px}.learning-intro>h1{text-align:center;font-size:36px;margin:15px 0}.learning-intro>p{text-align:center;color:#6b8678}.learning-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:30px 0}.learning-card{background:linear-gradient(#fffdf5,#e9f5df);border:3px solid white;box-shadow:0 7px 0 #c4d9bc,0 15px 30px #456a3820;border-radius:28px;padding:30px 18px;color:#285e64;transition:transform .2s}.learning-card:hover{transform:translateY(-5px)}.learning-card h2{font-size:27px}.learning-card p{font-size:15px;line-height:1.8}.learning-card b{font-size:13px;color:#148b87}.learning-symbol{display:block;color:#129e9b;font-size:65px;font-weight:900;white-space:pre}.word-workshop{max-width:850px;width:100%;text-align:center}.word-reference{background:#fff6da;border:2px solid white;border-radius:23px;padding:15px 20px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px}.word-reference strong{font-size:45px;color:#137f84}.word-reference>span{font-size:14px;color:#778565}.word-reference .secondary{font-size:13px}.word-slots{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:25px 0 12px}.word-slot{display:grid;place-items:center;min-width:67px;height:80px;border:3px dashed #e6aa44;border-radius:19px;background:#fff5dc;color:#225f70;font-size:42px;font-family:inherit}.word-slot.fixed{border:3px solid #d0e5cf;background:#f6fff1}.word-slot.active{border:3px solid #11a9a1;box-shadow:0 0 0 5px #11a9a122}.word-joined{font-size:39px;min-height:65px;color:#367789;letter-spacing:0}.letter-bank{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:20px}.letter-tile{min-width:65px;height:70px;background:linear-gradient(#fffefa,#ffe6ac);border:3px solid white;border-radius:18px;box-shadow:0 5px 0 #d4ac65;font-size:38px;color:#315e6a}.letter-tile:disabled{opacity:.3;box-shadow:none;transform:translateY(4px)}.word-workshop .studio-toolbar{justify-content:center;flex-wrap:wrap}.fruit-art{width:55px;height:55px;display:block;flex-shrink:0;filter:drop-shadow(0 2px 2px #244e4220)}.math-group>span:not(.math-label){display:inline-block}.math-group .removed{opacity:.5!important;filter:none!important;position:relative}.math-group .removed:after{content:'×';position:absolute;inset:0;color:#943b4d;font-size:40px;text-align:center;font-weight:bold}.everyday-art{width:140px;height:140px;display:block;max-width:100%}.display-area>.everyday-art{width:200px;height:200px}.answer-card .everyday-art{width:110px;height:110px}.rating-panel{padding:25px;margin:22px 0;background:#fff9edee;border-radius:28px}.rating-panel h2{font-size:26px;margin:8px 0}.rating-panel p{font-size:13px;line-height:1.9}.rating-stats{display:flex;gap:15px;flex-wrap:wrap;margin:20px 0}.rating-stats span{flex:1;min-width:130px;background:#e6f4dd;border-radius:17px;padding:15px;text-align:center;font-size:13px}.rating-stats b{display:block;font-size:29px;color:#14908c}.skill-bars{display:grid;grid-template-columns:1fr 1fr;gap:15px}.skill-bars>div{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:8px;font-size:12px}.skill-bars small{grid-column:2;color:#6e897c}.skill-bars progress{width:100%;height:12px;accent-color:#13a69c}.library-tabs{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:30px 0}.library-tabs button{padding:16px 25px;background:#e9eedb;border-radius:19px;color:#38666b;font-size:18px;border:2px solid white}.library-tabs button.active{background:#119d98;color:white}.library-tools{background:#edf4e6;padding:20px;border-radius:22px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}.library-tools .note{max-width:480px;margin:0}.library-tools label{cursor:pointer;display:inline-block}.library-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:25px}.library-empty{grid-column:1/-1;text-align:center;padding:40px 10px}.library-empty>span{font-size:65px}.library-empty h2{font-size:24px}.library-empty p{font-size:15px;color:#7b9180}.media-card{padding:20px;background:#fff9e9;border:2px solid white;border-radius:22px;min-width:0}.media-card h2{font-size:19px;overflow-wrap:anywhere}.media-card audio,.media-card video{width:100%;max-height:350px;display:block;margin:15px 0}.word-route-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:12px;background:#fff9e9e8;border-radius:20px}.word-route-tools button,.word-route-tools select{background:#dff3dc;color:#295c65;padding:10px 14px;border:2px solid white;border-radius:14px;font-family:inherit}.word-route-tools select{max-width:220px}.scene-dock{max-width:calc(100% - 20px)}
@media(max-width:760px){.auth-card{padding:22px}.auth-scene{padding:15px}.learning-intro{padding:20px 15px;margin:12px 8px}.learning-intro>h1{font-size:28px}.learning-grid{gap:17px}.learning-card{padding:20px 12px}.learning-card h2{font-size:22px}.learning-card p{font-size:12px}.learning-symbol{font-size:46px}.word-slot{min-width:43px;height:60px;font-size:30px;border-radius:13px}.word-slots{gap:6px}.letter-tile{min-width:48px;height:57px;font-size:30px}.letter-bank{gap:9px;padding:15px 5px}.word-reference{gap:10px;padding:12px}.word-reference strong{font-size:35px}.word-reference>span{font-size:11px}.word-joined{font-size:31px}.skill-bars{grid-template-columns:1fr}.library-items{grid-template-columns:1fr}.library-tabs{gap:7px}.library-tabs button{font-size:14px;padding:12px 15px}.rating-panel{padding:19px}.fruit-art{width:36px;height:36px}.scene-dock{gap:3px;flex-wrap:wrap;justify-content:center}.scene-dock button{font-size:11px!important;padding:9px 10px!important}}
@media(max-width:440px){.learning-grid{grid-template-columns:1fr;margin-top:20px}.learning-card{padding:15px}.learning-card h2{margin:8px}.learning-symbol{font-size:40px}.learning-card p{margin:7px}.word-workshop .studio-toolbar button{font-size:14px;padding:10px 13px}.auth-logo{height:105px}.auth-card h1{font-size:24px}.word-route-tools select{max-width:160px}}

.word-workshop>.note{background:#fff9e9df;border-radius:13px;padding:8px 12px;display:inline-block;color:#436d62}.math-group{gap:3px}.collect-item .fruit-art{width:68px;height:68px}@media(max-width:760px){.collect-item .fruit-art{width:45px;height:45px}}

/* Dedicated portrait composition; landscape keeps its original scene. */
@media (orientation:portrait) and (max-width:900px){
 .world.ibtikari-welcome{height:100svh;min-height:100svh;background-image:url(assets/ibtikari-welcome-portrait.webp?v=03bf8752e7ff);background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:scroll}
 .ibtikari-welcome .welcome-content{top:2%;left:50%;right:auto;width:min(88vw,430px);transform:translateX(-50%)}
 .ibtikari-welcome .ibtikari-wordmark{max-height:27svh;width:100%;height:auto;object-fit:contain}
 .ibtikari-welcome .welcome-start{top:32%;bottom:auto;left:50%;right:auto;width:min(330px,82vw);transform:translateX(-50%);display:grid;grid-template-columns:1fr;gap:10px}
 .ibtikari-welcome .welcome-start .primary{width:100%;grid-column:auto;justify-self:stretch;font-size:25px;padding:12px 20px}
 .ibtikari-welcome .welcome-start .secondary{font-size:14px;padding:10px 12px;background:#fff9e9ed}
 .ibtikari-welcome .welcome-start .textbutton{font-size:12px;padding:9px 12px;background:#fff9e9e8}
 .ibtikari-welcome .welcome-note{bottom:max(8px,env(safe-area-inset-bottom));font-size:10px;padding:5px 10px;max-width:94%;white-space:normal;text-align:center}
}
@media (orientation:portrait) and (max-height:640px){.ibtikari-welcome .welcome-start{gap:7px}.ibtikari-welcome .welcome-start .primary{font-size:22px;padding:9px 15px}.ibtikari-welcome .welcome-start .secondary{font-size:12px;padding:8px 10px}.ibtikari-welcome .welcome-start .textbutton{font-size:11px;padding:7px}}

/* Illustrated companion gallery: each card contains its own painted Arabic type. */
.world.companion-gallery{background-image:linear-gradient(#0e555a5c,#123f544d),var(--gallery-background);background-size:cover;background-position:center;background-attachment:fixed;min-height:100svh;padding:20px 24px 0}
.companion-gallery:before{background:none}
.gallery-shell{max-width:1020px;margin:0 auto}
.gallery-header{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff9e9f2;border:3px solid #fff8df;border-radius:27px;padding:17px 24px;box-shadow:0 7px 24px #174b4526;text-align:center}
.gallery-header h1{font-size:31px;margin:0 0 4px;color:#166e74}.gallery-header p{font-size:13px;margin:0;color:#6b8577}.gallery-header .eyebrow{margin:0 0 3px;color:#b18738;font-size:11px}.gallery-header>.secondary{font-size:13px;padding:11px 14px}.gallery-star{color:#e8b64c;font-size:47px;width:100px}.illustrated-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:24px 52px}.illustrated-companion{background:none;border:0;padding:0;border-radius:24px;position:relative;display:block;min-width:0;box-shadow:0 10px 22px #163f403d;outline:0;transition:transform .2s,filter .2s,box-shadow .2s}.illustrated-companion img{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;display:block;border-radius:24px;pointer-events:none}.illustrated-companion:hover{transform:translateY(-5px) rotate(-.4deg)}.illustrated-companion:focus-visible{outline:4px solid #ffe9a1;outline-offset:6px}.illustrated-companion.selected{box-shadow:0 0 0 5px #fff4bc,0 0 0 9px #1ac4b1,0 12px 30px #143e4a5c;transform:translateY(-2px)}.companion-check{position:absolute;top:10px;left:10px;width:36px;height:36px;display:grid;place-items:center;border:3px solid #fff8de;border-radius:50%;background:#109d8e;color:white;box-shadow:0 4px 12px #164e4550;font-size:23px;opacity:0;transform:scale(.6);transition:opacity .2s,transform .2s}.selected .companion-check{opacity:1;transform:scale(1)}.gallery-footer{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff9e9f5;border:3px solid #fff7dd;border-radius:25px 25px 0 0;padding:12px 23px max(15px,env(safe-area-inset-bottom));box-shadow:0 -5px 25px #24555129}.gallery-current{display:flex;align-items:center;gap:12px;color:#6f8271;font-size:12px}.gallery-current strong{display:block;color:#176f73;font-size:25px;line-height:1.2}.gallery-current-check{width:41px;height:41px;border-radius:50%;display:grid;place-items:center;background:#d9efe0;color:#15968a;font-size:25px}.gallery-footer>.primary{font-size:17px;padding:13px 25px}
@media(min-width:761px) and (min-height:650px){.illustrated-roster{max-width:clamp(600px,calc(100svh - 70px),810px);margin:auto;gap:18px;padding:23px 40px}.illustrated-companion img{width:100%;object-fit:contain}.gallery-header{padding:12px 24px}.gallery-header h1{font-size:28px}}
@media(max-width:760px){.world.companion-gallery{padding:12px 12px 0}.gallery-header{border-radius:22px;padding:16px 12px;gap:10px;flex-wrap:wrap}.gallery-header>div{flex-basis:100%;order:-1}.gallery-header h1{font-size:26px}.gallery-header p{font-size:12px}.gallery-header>.secondary{font-size:12px;padding:9px 13px}.gallery-star{font-size:25px;width:35px}.illustrated-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 15px;padding:23px 6px 25px}.illustrated-companion,.illustrated-companion img{border-radius:18px}.companion-check{width:28px;height:28px;font-size:18px;top:7px;left:7px;border-width:2px}.gallery-footer{padding:11px 12px max(14px,env(safe-area-inset-bottom));gap:8px;margin:0 -3px}.gallery-footer>.primary{font-size:13px;padding:11px 13px}.gallery-current{font-size:10px;gap:7px}.gallery-current strong{font-size:21px}.gallery-current-check{width:30px;height:30px;font-size:20px}.illustrated-companion.selected{box-shadow:0 0 0 3px #fff4bc,0 0 0 6px #1ac4b1,0 9px 22px #143e4a5c}}
@media(max-width:350px){.gallery-header h1{font-size:23px}.gallery-header p{font-size:10px}.illustrated-roster{gap:16px 13px}.gallery-footer>.primary{font-size:11px;padding:10px}.gallery-current-check{display:none}}

.speech-status{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:150;max-width:90vw;max-height:100px;overflow:hidden;background:#fffbeef2;border:2px solid white;border-radius:18px;box-shadow:0 4px 18px #1e5b4530;padding:9px 18px;text-align:center;font-size:13px;color:#167d79;pointer-events:none}.speech-status.speech-error{color:#8b4550;background:#fff1e7}.option-shell .option-audio{display:flex;justify-content:center;align-items:center;gap:5px;min-height:36px;padding:7px 12px;background:#fff9e9ed;border:2px solid #fff;border-radius:17px;color:#247c80;font-size:12px;margin:7px auto 0}.option-audio svg{width:15px;height:15px;fill:currentColor}

/* Painted Arabic learning entry cards: image contains the heading. */
.illustrated-learning-grid{gap:25px;align-items:start}.learning-grid .learning-card.learning-picture{padding:0;overflow:hidden;border:3px solid #fffcdf;border-radius:26px;background:#fff4d7;box-shadow:0 7px 0 #c9b280,0 14px 25px #254c3829;text-align:center;display:block;min-width:0}.learning-picture img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;pointer-events:none}.learning-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 17px;background:linear-gradient(#fff9e6,#f4edd3);border-top:2px solid #ead5a6;color:#527565;font-size:12px}.learning-caption b{color:#138b85;font-size:12px;white-space:nowrap}.illustrated-language>p{margin-bottom:10px}
@media(max-width:760px){.illustrated-learning-grid{gap:18px}.learning-caption{padding:11px 13px;font-size:11px;gap:8px}.learning-caption b{font-size:11px}.learning-grid .learning-card.learning-picture{border-radius:22px}}
@media(max-width:440px){.illustrated-language{padding:18px 12px}.illustrated-language>h1{margin:12px 0 7px}.illustrated-language>p{font-size:12px;line-height:1.7}.illustrated-learning-grid{margin:18px 0 8px;gap:19px}.learning-caption{font-size:11px;padding:10px 12px}}

/* Keep the child-built word readable without revealing the target. */
.word-workshop .word-joined{display:table;min-width:180px;max-width:100%;margin:12px auto 4px;padding:10px 24px;background:#fff2ad;color:#143f4a;border:2px solid #d69a28;border-radius:18px;box-shadow:0 4px 0 #d69a2833;font-weight:800;font-size:42px;line-height:1.6;overflow-wrap:anywhere}
@media(max-width:440px){.word-workshop .word-joined{font-size:34px;min-width:145px;padding:8px 16px}}

.illustrated-gallery-header{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;background:transparent;border:0;box-shadow:none;padding:0 8px;gap:22px}.gallery-title-card{min-width:0}.gallery-title-card h1{margin:0}.gallery-title-card h1 img{display:block;width:100%;height:auto}.gallery-title-card p{display:table;margin:5px auto 0;padding:7px 18px;border-radius:22px;background:#fff9e9ed;color:#275b60;font-weight:700}.gallery-return-card{display:block;border:0;background:transparent;padding:0;cursor:pointer;transition:transform .2s;filter:drop-shadow(0 5px 5px #174b4533)}.gallery-return-card img{display:block;width:100%;height:auto}.gallery-return-card:hover{transform:translateY(-3px)}.gallery-return-card:focus-visible{outline:4px solid #ffe49a;outline-offset:5px;border-radius:20px}
@media(max-width:760px){.illustrated-gallery-header{display:flex;flex-direction:column;gap:8px;padding:0}.illustrated-gallery-header>.gallery-title-card{order:-1;flex-basis:auto;width:100%}.gallery-title-card p{font-size:11px;padding:7px 12px}.gallery-return-card{width:170px;align-self:flex-start}.illustrated-roster{padding-top:18px}}

/* Each island has its own two-pose animal guardian. */
.world-guardian{display:block;pointer-events:none;user-select:none;position:relative;isolation:isolate}.guardian-frame{display:block;position:relative;width:100%;height:100%;overflow:hidden}.world-guardian .guardian-sheet{display:block;position:absolute;inset:0 auto auto 0;width:200%;height:100%;max-width:none;object-fit:fill;transform:translateX(0);filter:drop-shadow(0 4px 3px #173e4133)}.guardian-island{position:absolute;width:47%;height:63%;left:-9%;bottom:18%;z-index:3;transform-origin:50% 90%}.guardian-cheer{position:absolute;inset:0 -15% auto;font-size:clamp(16px,2vw,30px);font-weight:900;color:#fff4a6;text-shadow:0 2px 3px #357c64;opacity:0}.guardian-welcoming{z-index:5}.guardian-welcoming .guardian-sheet{transform:translateX(-50%)}.guardian-welcoming .guardian-island{animation:guardian-yes .32s ease-in-out 3}.guardian-welcoming .guardian-cheer{opacity:1;animation:guardian-spark .8s ease-out both}.painted-world:hover .guardian-island{rotate:-5deg}.guardian-resident{width:90px;height:120px;margin:0 auto}.journey-heading .guardian-resident{width:65px;height:87px;display:inline-block;vertical-align:middle;margin:0 8px}.learning-intro>.guardian-resident{margin:-8px auto -7px;width:76px;height:102px}.guardian-resident .guardian-sheet{transform:translateX(-50%)}
@keyframes guardian-yes{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-14px) rotate(6deg)}}@keyframes guardian-spark{0%{transform:translateY(15px) scale(.6);opacity:0}35%,85%{opacity:1}100%{transform:translateY(-18px) scale(1.12);opacity:0}}
@media(max-width:700px){.guardian-island{width:43%;height:57.5%;left:-1%;bottom:19%}.guardian-cheer{font-size:18px}.learning-intro>.guardian-resident{width:62px;height:83px}}
@media(prefers-reduced-motion:reduce){.guardian-welcoming .guardian-island,.guardian-welcoming .guardian-cheer{animation:none}.guardian-welcoming .guardian-cheer{opacity:1}.painted-world:hover .guardian-island{rotate:0deg}}.quiet .guardian-welcoming .guardian-island,.quiet .guardian-welcoming .guardian-cheer{animation:none}
.guardian-island{width:40%;height:53.333%;left:-7%;bottom:38%}@media(max-width:700px){.guardian-island{width:38%;height:50.667%;left:0;bottom:38%}}

/* Painted navigation assets, retaining real accessible buttons. */
.topbar .brand-small.illustrated-brand{width:175px;height:65px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;flex-shrink:0}.illustrated-brand img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.painted-topbar .header-tools{gap:7px}.painted-topbar .iconbutton.illustrated-tool{background:none;border:0;box-shadow:none;padding:0;width:49px;height:49px;flex-shrink:0}.painted-tool{display:block;width:100%;height:100%;background-image:var(--painted-tools);background-size:300% 200%;border-radius:50%;pointer-events:none}.tool-sound{background-position:0 0}.tool-mute{background-position:50% 0}.tool-full{background-position:100% 0}.tool-teacher{background-position:0 100%}.tool-logout{background-position:50% 100%}.tool-star{background-position:100% 100%}.painted-reward{position:relative;width:49px;height:49px;flex-shrink:0;display:block}.painted-reward strong{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);border:2px solid #ffe5a2;border-radius:12px;background:#176975;color:#fff9de;line-height:1.2;padding:1px 7px;font-size:13px;min-width:27px;text-align:center}.city-controls .topbar.painted-topbar{padding-bottom:4px}.city-controls .region-tabs{gap:12px}.city-scene .region-tabs button{display:block;width:195px;max-width:31vw;padding:0;border:0;border-radius:20px;background:none;box-shadow:none;filter:drop-shadow(0 4px 3px #1c49374d);position:relative;opacity:.78}.city-scene .region-tabs button img{display:block;width:100%;height:auto;pointer-events:none}.city-scene .region-tabs button.active{background:none;opacity:1;filter:drop-shadow(0 0 5px #fff2a0) brightness(1.08)}.city-scene .region-tabs button.active:after{content:'◆';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);font-size:15px;line-height:1;color:#fff3ba;text-shadow:0 2px 2px #2b5b51}.city-scene .world-canvas{top:137px}.city-scene .illustrated-dock{width:min(960px,82vw);gap:12px;bottom:12px;display:flex;flex-wrap:nowrap}.city-scene .illustrated-dock .painted-nav{flex:1;min-width:0;padding:0!important;border:0;border-radius:18px;background:none;box-shadow:none;filter:drop-shadow(0 4px 3px #1f4b3d44)}.painted-nav img{width:100%;height:auto;display:block;pointer-events:none}.city-scene .illustrated-dock .resume-adventure{flex:1.2;background:none}.city-scene .illustrated-dock button:focus-visible,.city-scene .region-tabs button:focus-visible{outline:3px solid #fff6ab;outline-offset:2px}
@media(max-width:700px){.topbar .brand-small.illustrated-brand{width:96px;height:44px}.painted-topbar{gap:5px}.painted-topbar .header-tools{gap:4px;flex-wrap:nowrap}.painted-topbar .iconbutton.illustrated-tool{width:35px;height:35px}.painted-topbar .painted-reward{width:35px;height:35px}.painted-topbar .painted-reward strong{font-size:10px;padding:0 4px;bottom:-4px}.painted-topbar .chip{padding:5px 9px;font-size:11px}.painted-topbar .child-name{display:none}.city-controls .region-tabs{gap:4px;width:100%;max-width:100%}.city-scene .region-tabs button{width:auto;max-width:none;flex:1;min-width:0;border-radius:12px}.city-scene .world-canvas{top:115px;bottom:115px;--island-size:min(47vw,calc((100dvh - 240px)/3))}.city-scene .destinations-4{--island-size:min(47vw,calc((100dvh - 240px)/2.35))}.city-scene .illustrated-dock{width:calc(100% - 16px);bottom:9px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px 6px;align-items:center;justify-content:center}.city-scene .illustrated-dock .painted-nav{grid-column:span 2;border-radius:12px}.city-scene .illustrated-dock .painted-nav:nth-child(n+4){grid-column:span 3;width:75%;justify-self:center}.city-scene .scene-companions{bottom:113px}}
@media(max-width:360px){.topbar .brand-small.illustrated-brand{width:77px}.painted-topbar .header-tools{gap:2px}.painted-topbar .iconbutton.illustrated-tool,.painted-topbar .painted-reward{width:31px;height:31px}.painted-topbar .chip{padding:5px 7px}.city-scene .world-canvas{top:109px}}
@media(max-height:520px) and (min-width:701px){.city-controls .topbar .brand-small.illustrated-brand{height:40px;width:112px}.city-controls .painted-topbar .illustrated-tool,.city-controls .painted-reward{width:33px;height:33px}.city-scene .region-tabs button{width:140px}.city-scene .world-canvas{top:99px;bottom:58px}.city-scene .illustrated-dock{width:min(780px,80vw);bottom:5px}}
.tales-banner{display:block;width:min(900px,100%);height:auto;border-radius:24px;margin:18px auto 0;box-shadow:0 8px 24px #48346c22}.library-items:has(.tales-shelf){display:block}.tales-shelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:740px;margin:25px auto 15px}.tale-cover-card{display:block;padding:0;overflow:hidden;text-align:right;background:#fff9ed;border:3px solid #fff4d6;border-radius:24px;box-shadow:0 7px 0 #bd9d6444,0 15px 30px #243d4d22;color:#244c5a}.tale-cover-card>img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain}.tale-card-copy{display:flex;flex-direction:column;gap:12px;padding:15px 18px;font-size:13px;line-height:1.8}.tale-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#6e617d}.tale-card-copy>strong{display:block;background:linear-gradient(#1db1a7,#07878d);color:#fff8dd;border-radius:17px;text-align:center;padding:10px;font-size:18px;border:2px solid #f6dc9d}.library-tools summary{cursor:pointer;font-weight:700;color:#46666e;padding-bottom:8px}.library-tools label{display:inline-block;margin-top:8px}.tale-heading{display:flex;align-items:center;gap:25px;justify-content:space-between;margin:5px 0 24px;background:#fff9eaf2;padding:18px 24px;border-radius:26px;border:2px solid #fff6df}.tale-heading h1{font-size:30px;margin:0}.tale-heading .eyebrow{margin:0 0 4px}.tale-heading>.secondary{font-size:14px;white-space:nowrap}.tale-duration{background:#ebe6ff;border-radius:16px;padding:8px 13px;white-space:nowrap;font-size:15px;color:#625282}.tale-reader{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:22px;align-items:start}.tale-picture{padding:0;overflow:hidden}.tale-picture>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#e7e0f1}.tale-page-caption{padding:16px 22px;position:relative}.tale-page-caption h2{font-size:23px;margin:0 0 8px}.tale-page-caption p{font-size:14px;line-height:1.9;margin:0;color:#577276;padding-left:35px}.tale-page-caption>span{position:absolute;left:15px;top:17px;background:#ece5fa;color:#6a5588;border-radius:13px;padding:5px 10px;font-size:12px}.tale-listening{padding:23px;text-align:center}.tale-listening h2{font-size:25px;margin:4px 0 13px}.tale-play{display:grid;place-items:center;margin:0 auto;width:86px;height:86px;border-radius:50%;border:5px solid #fff5d5;color:#fff9e4;background:linear-gradient(#19b7af,#087f8c);font-size:33px;box-shadow:0 5px 0 #09636b,0 10px 20px #225b6333}.tale-listening #tale-play-label{margin:12px 0;font-weight:700;font-size:14px;color:#156d78}.story-audio{display:block;width:100%;max-width:100%;height:42px;margin:12px 0}.tale-audio-actions{display:flex;gap:8px;justify-content:center;margin:12px 0}.tale-audio-actions .secondary{font-size:11px;padding:10px 8px;flex:1}.tale-speed{display:flex;justify-content:center;align-items:center;gap:12px;font-size:13px;margin:18px 0 8px}.tale-speed select{padding:6px 10px;border:1px solid #c4d6d1;border-radius:10px;color:#295c68;background:#fffdf6;font-size:13px}.tale-listen-status{font-size:12px;line-height:1.8;color:#536f69;background:#ecf5e6;border-radius:14px;padding:10px;margin:12px 0 0}.tale-scenes,.tale-talk,.tale-text{padding:24px 28px;margin:24px 0}.tale-scenes h2,.tale-talk h2{margin:0 0 8px;font-size:25px}.tale-scenes>p{font-size:13px;color:#60767c}.tale-scene-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.tale-scene-buttons button{background:#fff9ef;border:3px solid transparent;border-radius:17px;overflow:hidden;padding:0;color:#395e67}.tale-scene-buttons img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.tale-scene-buttons span{display:block;padding:10px;font-size:13px}.tale-scene-buttons button[aria-pressed=true]{border-color:#13a999;box-shadow:0 0 0 3px #13a99922}.tale-question{padding:18px 0 5px;border-bottom:1px solid #dfdecf}.tale-question h3{font-size:18px;margin:0 0 12px}.tale-question>div{display:flex;gap:12px;flex-wrap:wrap}.tale-question button{font-size:14px}.tale-question button.correct{background:#d9f3de;border-color:#1caa82;color:#145a46}.tale-feedback{min-height:22px;font-size:13px;color:#247568;margin:12px 0 0}.tale-text summary{cursor:pointer;font-weight:700;font-size:18px}.tale-text p{line-height:2.3;font-size:17px;margin:20px 0 0}.tales-world-link{display:block;margin:12px auto 20px;font-size:18px}
@media(max-width:900px){.tale-reader{grid-template-columns:minmax(0,1fr)}.tale-listening{max-width:100%}.tale-play{width:72px;height:72px;font-size:29px}.tale-heading{flex-wrap:wrap;gap:12px}.tale-heading>div{order:-1;width:100%}.tale-heading h1{font-size:27px}.tales-shelf{gap:18px}.tale-card-copy{font-size:12px;padding:12px}.tale-meta{font-size:10px}.tale-card-copy>strong{font-size:16px}.tale-scenes,.tale-talk,.tale-text{padding:20px}.tale-scene-buttons{gap:8px}.tale-scene-buttons span{font-size:11px;padding:7px 4px}}
@media(max-width:500px){.tales-shelf{grid-template-columns:minmax(0,1fr);max-width:330px;gap:25px}.tales-banner{border-radius:15px}.tale-heading{padding:15px}.tale-heading h1{font-size:23px}.tale-heading .eyebrow{font-size:11px}.tale-heading>.secondary{font-size:12px;padding:10px}.tale-duration{font-size:12px}.tale-page-caption{padding:13px 15px}.tale-page-caption h2{font-size:19px;padding-left:48px}.tale-page-caption p{font-size:12px;padding:0}.tale-scenes h2,.tale-talk h2{font-size:22px}.tale-scene-buttons{grid-template-columns:1fr}.tale-scene-buttons button{display:flex;align-items:center;text-align:right}.tale-scene-buttons img{width:40%;height:auto}.tale-scene-buttons span{font-size:13px;padding:10px}.tale-question button{font-size:13px;width:100%}.tale-text p{font-size:15px}.tale-card-copy{padding:14px 18px;font-size:13px}.tale-meta{font-size:12px}}

.learning-intro:has(>.tales-banner){display:flex;flex-direction:column;position:relative}.learning-intro:has(>.tales-banner)>.secondary{align-self:flex-start}.learning-intro:has(>.tales-banner)>.tales-banner{max-height:185px;width:auto;max-width:100%;object-fit:contain;margin:5px auto 0}.learning-intro:has(>.tales-banner)>.library-tabs{margin:18px 0 0}.learning-intro:has(>.tales-banner)>.library-tools{order:4;margin-top:18px}.learning-intro:has(>.tales-banner) .tales-shelf{margin-top:22px;max-width:660px}.learning-intro:has(>.tales-banner) .library-items{width:100%}
@media(max-width:500px){.learning-intro:has(>.tales-banner)>.tales-banner{max-height:none;width:100%;margin-top:15px}.learning-intro:has(>.tales-banner)>.library-tabs{gap:5px}.learning-intro:has(>.tales-banner)>.library-tabs button{font-size:12px;padding:10px 9px}.tale-reader .tale-listening{padding:20px}}

/* Six approved girl characters share the same card and animation identity. */
.approved-hero .companion-frame{overflow:visible}.approved-hero .pose-art{position:absolute;display:block;width:130%;aspect-ratio:1;left:-15%;bottom:0;background-image:var(--approved-motion);background-size:300% 200%;background-repeat:no-repeat;pointer-events:none}.approved-hero .pose-0{background-position:0 0}.approved-hero .pose-1{background-position:50% 0}.approved-hero .pose-2{background-position:100% 0}.approved-hero .pose-3{background-position:0 100%}.approved-hero .pose-4{background-position:50% 100%}.approved-hero .pose-5{background-position:100% 100%}

.world.ibtikari-welcome{background-image:url(assets/approved-welcome.webp?v=e9f52f9085b0)}.auth-scene{background-image:linear-gradient(100deg,#1f7d8233,#7bc0bf33),url(assets/approved-welcome.webp?v=e9f52f9085b0)}
@media(max-width:900px) and (orientation:portrait){.world.ibtikari-welcome{background-image:url(assets/approved-welcome-portrait.webp?v=937f8f3db484)}}
@media(min-width:761px) and (min-height:650px){.illustrated-gallery-header .gallery-title-card h1 img{max-width:520px;margin:auto}.illustrated-roster{max-width:min(810px,calc((100svh - 260px)*1.2));padding:18px 20px;gap:16px}.illustrated-gallery-header{grid-template-columns:165px minmax(0,1fr)}}
@media(min-width:761px) and (min-height:650px){.illustrated-gallery-header .gallery-title-card h1 img{max-width:400px}.illustrated-roster{max-width:min(810px,calc((100svh - 290px)*1.2))}}
/* Calm map: reduce painted controls and destinations by 30%, preserving map anchors. */
.city-scene{--map-control-scale:.7}.city-scene .painted-world{width:calc(var(--island-size)*var(--map-control-scale));height:calc(var(--island-size)*var(--map-control-scale))}.city-scene .region-tabs button{min-height:44px;display:grid;place-items:center}.city-scene .region-tabs button img{width:70%;margin:auto}.city-scene .region-tabs button.active:after{bottom:0;font-size:11px}.city-scene .illustrated-dock .painted-nav img{width:70%;margin:auto}.city-scene .illustrated-dock .painted-nav{min-height:44px;display:grid;place-items:center}.city-scene .scene-companions{display:flex;align-items:flex-end;justify-content:flex-end}.city-scene .scene-companions .companion-portal{width:70%;height:70%}.city-scene .painted-topbar .painted-tool{transform:scale(.7)}.city-scene .painted-topbar .painted-reward strong{font-size:10px;bottom:0;padding:0 5px}.city-scene .illustrated-brand img{width:70%;margin-inline-start:auto}.city-scene .guardian-cheer{font-size:clamp(12px,1.4vw,21px)}
@media(max-width:700px){.city-scene .painted-topbar .painted-reward strong{font-size:8px;min-width:21px}.city-scene .region-tabs button.active:after{bottom:1px;font-size:9px}.city-scene .guardian-cheer{font-size:13px}}

.guest-entry{text-align:center;margin:15px 0 0;border-top:1px solid #c7dac9;padding-top:10px}.guest-entry>span{display:block;font-size:12px;color:#6f8273;margin-bottom:8px}.auth-card .guest-play{display:block;width:100%;background:linear-gradient(#fff4ce,#f5dda4);color:#245b65;border:2px solid #fffaf0;font-size:19px;padding:12px 18px;border-radius:21px;box-shadow:0 4px 0 #c3aa70}.guest-entry p{font-size:11px;line-height:1.8;margin:10px 0 0;color:#55756c}.auth-card:has(.guest-entry){margin:auto}.auth-scene{min-height:100svh;height:auto}
@media(max-width:500px){.auth-card .guest-play{font-size:18px}.auth-card .guest-entry{margin-top:12px}.auth-card:has(.guest-entry){padding:18px 23px}.auth-card:has(.guest-entry) .auth-logo{height:90px}.auth-card:has(.guest-entry) small{margin-top:11px}}
/* Child profiles: square portraits, separate progress, direct add action. */
.profile-square{display:block;position:relative;width:100%;aspect-ratio:1;border-radius:17px;border:3px solid #fff9e3;background:linear-gradient(145deg,#c3f1dd,#78cabb);box-shadow:0 5px 0 #367b7930;overflow:hidden}.profile-portrait{display:block;width:100%;height:100%;background-size:300% 200%;background-position:0 0;background-repeat:no-repeat;pointer-events:none}.palette-1{background:linear-gradient(145deg,#f6e1aa,#a8dcca)}.palette-2{background:linear-gradient(145deg,#d4edbe,#91cdd6)}.palette-3{background:linear-gradient(145deg,#eee0ff,#b4bce6)}.palette-4{background:linear-gradient(145deg,#e6d8ff,#b9dcdf)}.palette-5{background:linear-gradient(145deg,#dfd3ff,#e5c5dc)}.child-profile{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0;background:none;padding:3px;color:#285d68;min-width:0;border-radius:18px}.child-profile>strong{font-size:17px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.child-profile.selected .profile-square{border-color:#0b9b91;box-shadow:0 0 0 3px #fff5bb,0 6px 0 #17897a33}.profile-tick{display:none;position:absolute;right:5px;top:5px;border:2px solid #fff6d3;border-radius:50%;width:24px;height:24px;background:#098b83;color:white;place-items:center;font-size:14px}.selected .profile-tick{display:grid}.profile-add .profile-square{border:3px dashed #48a69d;background:#f8ffeddd;display:grid;place-items:center}.profile-add .profile-square>b{font-size:55px;color:#1a988c;line-height:1}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,155px));justify-content:center;gap:25px 20px;margin:28px 0}.profile-screen{display:grid;place-items:center;min-height:100svh;padding:30px;background-size:cover;background-position:center}.profiles-panel{width:min(950px,100%);padding:26px 35px;text-align:center}.profiles-panel>.secondary{display:block;font-size:13px;padding:10px 15px}.profiles-panel h1{font-size:32px;margin:14px 0 6px}.profiles-panel>p{font-size:14px;color:#69817c}.profiles-panel>.primary{font-size:19px;padding:12px 26px}.welcome-profiles{padding:10px 15px 9px;width:100%;border:2px solid #fff9df;border-radius:23px;background:#fff9eae8;box-shadow:0 6px 20px #28574422}.welcome-profiles h2{font-size:14px;margin:0 0 5px;color:#2e6a70;text-align:center}.welcome-profile-row{display:flex;justify-content:safe center;gap:13px;overflow-x:auto;padding:5px 6px 3px;max-width:100%}.welcome-profile-row .child-profile{width:76px;gap:5px}.welcome-profile-row .profile-square{border-radius:14px}.welcome-profile-row .child-profile>strong{font-size:12px}.welcome-profile-row .profile-add .profile-square>b{font-size:35px}.welcome-profile-row .profile-tick{width:19px;height:19px;font-size:11px;top:3px;right:3px}.ibtikari-welcome .welcome-start{top:24%;width:min(650px,70vw);display:flex;flex-direction:column;align-items:center;gap:9px}.ibtikari-welcome .welcome-start>.primary{width:270px;font-size:24px;padding:10px 22px}.teacher-glow{position:relative;isolation:isolate;overflow:hidden;color:#fff8ec!important;background:linear-gradient(135deg,#ff746a 0%,#e62e43 42%,#b91338 100%)!important;border:2px solid #ffe6bc;border-radius:19px;font-weight:800;text-shadow:0 1px 2px #8f183c;padding:11px 26px;box-shadow:0 4px 0 #971c35,0 7px 19px #aa20483b}.teacher-glow:before{content:'';position:absolute;inset:-50% auto -50% -60%;width:35%;background:linear-gradient(90deg,transparent,#fff9,transparent);transform:skewX(-22deg);animation:teacher-shine 6s ease-in-out infinite;pointer-events:none}.ibtikari-welcome .welcome-start .teacher-glow{font-size:18px;min-width:220px}.teacher-glow:focus-visible{outline:4px solid #fff3b4;outline-offset:4px}@keyframes teacher-shine{0%,60%{left:-60%}85%,100%{left:145%}}
@media(max-width:760px){.profile-screen{padding:15px}.profiles-panel{padding:18px 16px}.profiles-panel h1{font-size:26px}.profile-grid{grid-template-columns:repeat(2,minmax(0,145px));gap:20px 16px}.child-profile>strong{font-size:16px}.ibtikari-welcome .welcome-start{top:28%;width:min(365px,92vw);gap:8px}.ibtikari-welcome .welcome-start>.primary{width:82%;font-size:22px;padding:10px 16px}.welcome-profiles{padding:8px 9px}.welcome-profile-row{justify-content:safe center;gap:10px}.welcome-profile-row .child-profile{width:65px}.welcome-profiles h2{font-size:12px}.ibtikari-welcome .welcome-start .teacher-glow{font-size:16px;min-width:190px;padding:9px 22px}}
@media(orientation:portrait) and (max-width:900px){.ibtikari-welcome .welcome-start{top:28%;width:min(365px,92vw);display:flex;flex-direction:column;align-items:center}}
@media(orientation:portrait) and (max-height:640px){.ibtikari-welcome .welcome-start{top:29%;gap:6px}.welcome-profile-row .child-profile{width:53px}.welcome-profiles{padding:6px 8px}.welcome-profiles h2{font-size:11px}.ibtikari-welcome .welcome-start>.primary{font-size:19px;padding:7px 16px}.ibtikari-welcome .welcome-start .teacher-glow{font-size:14px;padding:7px 17px}}
@media(prefers-reduced-motion:reduce){.teacher-glow:before{animation:none;display:none}}.quiet .teacher-glow:before{animation:none;display:none}

/* Compact illustrated back arrow, without a footer strip. */
.app-back{position:fixed;left:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:85;width:56px;height:56px;min-width:44px;min-height:44px;border:0;padding:0;background:none;box-shadow:none;cursor:pointer;display:grid;place-items:center}.app-back img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 2px #24483e55)}.app-back:focus-visible{outline:3px solid #ffc84c;outline-offset:2px;border-radius:12px}.app-back:disabled{opacity:.35;cursor:default}
@media(max-width:600px){.app-back{width:48px;height:48px;bottom:calc(116px + env(safe-area-inset-bottom));left:8px}.world:not(.city-scene) .page{padding-bottom:68px}body:not(:has(.city-scene)) .app-back{bottom:calc(12px + env(safe-area-inset-bottom))}}
.city-scene .scene-arrow{width:44px;height:56px;padding:10px;border:0;border-radius:0;background:none;box-shadow:none;color:#fff;filter:drop-shadow(0 1px 2px #245944);display:grid;place-items:center}.city-scene .scene-arrow svg{width:22px;height:36px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.city-scene .scene-prev{left:2px;right:auto}.city-scene .scene-next{right:2px;left:auto}.city-scene .scene-arrow:focus-visible{outline:2px solid #ffd25c;outline-offset:0}
/* Twenty smaller stage circles and a clean illustrated header. */
.journey-heading.compact-journey-heading{background:none;border:0;box-shadow:none;border-radius:0;display:flex;align-items:center;justify-content:center;gap:24px;padding:0;margin:0 auto 8px;min-height:100px}
.journey-art-label{position:relative;display:block;width:240px;height:130px;overflow:hidden;flex-shrink:0}
.journey-art-label>span{display:block;width:100%;height:100%;background-repeat:no-repeat;background-size:400% 800%}
.journey-companion-label,.journey-page-label{border:0;background:none;box-shadow:none;padding:0;display:grid;place-items:center;cursor:pointer}
.journey-companion-label .journey-art-label{width:195px;height:105px}
.journey-page-label .journey-art-label{width:150px;height:82px}
.journey-page-label:disabled{opacity:.35;cursor:default}
.journey-map .path-node.level,.journey-map .path-node.level.done,.journey-map .path-node.level.recommended{width:51px;height:51px;min-width:44px;min-height:44px}
.journey-map .path-node b{font-size:18px!important}.journey-map .path-node b.three-digits{font-size:15px!important}
.journey-map .path-node .node-status{width:15px;height:15px;font-size:10px!important;border-width:1px;bottom:0}
.journey-map .path-traveller{width:66px;height:82px;transform:translate(-50%,-100%)}
.journey-map .route-surface{top:52px;bottom:12px}.journey-map .journey-label{top:6px;padding:3px 12px;font-size:12px}
.journey-map{height:max(470px,calc(100dvh - 295px))}.journey-map.short-path{height:430px}
.journey-footer{margin-top:0;gap:12px}.journey-footer>span{background:none;border:0;text-shadow:0 1px 2px white;font-weight:800}
/* A single clean star and warmer victory card. */
.modal.victory-card{background:linear-gradient(145deg,#fff0f7,#ffd1e6);border:0;box-shadow:0 18px 60px #57305745;color:#713f68;border-radius:34px}
.victory-card .prize{width:145px;height:145px;margin:0 auto}.victory-star{width:100%;height:100%;object-fit:contain}
.victory-card .modal-actions .primary{background:linear-gradient(135deg,#f26073,#cf254e);color:white;border:0;box-shadow:0 5px 0 #a62043}
.victory-card .modal-actions .secondary{background:linear-gradient(135deg,#bcecff,#72c5ed);color:#18516e;border:0;box-shadow:0 5px 0 #54a3ca}
.victory-card .modal-actions button{border:0}.victory-card .stars{color:#f4a52d}
/* Premium illustrated reverse side is used by every memory game. */
.memory-card:not(.face){padding:0;border:0;background:none;box-shadow:none;overflow:hidden;aspect-ratio:4/5;max-height:none;border-radius:20px}
.premium-card-back{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.memory-grid{max-width:650px;grid-template-columns:repeat(4,minmax(0,1fr))}
/* Shared, non-interactive shine layer; existing absolute positions stay intact. */
button{position:relative}.button-shine{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:8}.button-shine:after{content:'';position:absolute;top:-50%;left:-80%;width:38%;height:200%;background:linear-gradient(90deg,transparent,#fff9,transparent);transform:skewX(-24deg);animation:button-gloss 7s ease-in-out infinite}
button:disabled .button-shine{display:none}button:hover .button-shine:after,button:focus-visible .button-shine:after{animation-duration:2s}
@keyframes button-gloss{0%,70%{left:-80%;opacity:0}73%{opacity:.8}87%{left:150%;opacity:0}100%{left:150%;opacity:0}}
.quiet .button-shine{display:none}@media(prefers-reduced-motion:reduce){.button-shine{display:none}}
@media(max-width:600px){.journey-heading.compact-journey-heading{gap:0;min-height:88px;justify-content:space-between}.journey-heading>.journey-art-label{width:185px;height:100px}.journey-companion-label .journey-art-label{width:140px;height:76px}.journey-map .path-node.level,.journey-map .path-node.level.done,.journey-map .path-node.level.recommended{width:44px;height:44px}.journey-map .path-node b{font-size:16px!important}.journey-map .path-traveller{width:55px;height:68px}.journey-map,.journey-map.short-path{height:480px}.journey-page-label .journey-art-label{width:112px;height:61px}.journey-footer{gap:3px}.journey-footer>span{padding:0;font-size:12px}.memory-grid{gap:8px}.memory-card:not(.face){border-radius:12px}}
.app-back img{transform:scaleX(-1)}.world .journey-heading.compact-journey-heading{background:transparent;border:0;border-radius:0;box-shadow:none}.journey-art-label>span{background-size:400% 700%}
.memory-card{aspect-ratio:4/5;max-height:none}
.world .journey-heading.compact-journey-heading>.journey-art-label{width:150px;height:82px}.world .journey-heading.compact-journey-heading>.companion-portal{width:150px;height:100px;flex-shrink:0}.world .journey-heading.compact-journey-heading{gap:20px;min-height:100px}@media(max-width:600px){.world .journey-heading.compact-journey-heading>.journey-art-label,.journey-page-label .journey-art-label{width:130px;height:71px}.world .journey-heading.compact-journey-heading>.companion-portal{width:130px;height:92px}.world .journey-heading.compact-journey-heading{justify-content:center;gap:30px}}
.welcome-start>button.primary,.profiles-panel>button.primary,.profiles-panel [data-action="hub"]{background:linear-gradient(140deg,#68d785 0%,#27ae6b 48%,#138350 100%);border:1px solid #b6f0b5;border-radius:25px;color:#fffde5;box-shadow:inset 0 2px 1px #ffffff50,inset 0 -2px 3px #0c744842,0 5px 0 #0d7048,0 9px 20px #163f352b;padding:16px 46px;min-width:270px;min-height:62px;text-shadow:0 2px 1px #0d674750;font-weight:900;letter-spacing:.2px}.welcome-start>button.primary:hover,.profiles-panel [data-action="hub"]:hover{filter:brightness(1.07)}@media(max-width:600px){.welcome-start>button.primary,.profiles-panel [data-action="hub"]{min-width:245px;min-height:56px;padding:13px 34px}}
.welcome-quick-links{display:flex;direction:rtl;align-items:center;justify-content:center;gap:12px;width:100%;max-width:590px}.welcome-quick-links>button{flex:1;width:auto;min-width:0;min-height:53px;padding:11px 19px;font-size:19px;border-radius:20px}.bedtime-premium{background:linear-gradient(145deg,#333039,#111015 60%,#24212a);color:#ff596d;border:1px solid #6c3d4b;font-weight:900;box-shadow:inset 0 1px 1px #ffffff30,0 5px 0 #08070b,0 8px 20px #25142340;text-shadow:0 0 14px #fa37542e;cursor:pointer}.bedtime-premium:hover{filter:brightness(1.12)}@media(max-width:600px){.welcome-quick-links{gap:9px;max-width:350px}.welcome-quick-links>button{font-size:15px;padding:10px 9px;min-height:48px;border-radius:17px}}
.journey-map .path-traveller{width:33px;height:41px;pointer-events:none}.journey-map .path-traveller .saudi-hero{width:100%;height:100%;min-width:0;min-height:0}@media(max-width:600px){.journey-map .path-traveller{width:28px;height:34px}}
.premium-avatar.profile-portrait{background-size:500% 200%;border-radius:inherit}.child-profile .profile-square,.child-profile.selected .profile-square{border:0;border-radius:16px;background:none;box-shadow:0 4px 13px #21474722}.child-profile.selected .profile-square{box-shadow:0 4px 16px #35b68b38}.child-profile.selected .profile-square:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#fff8 46%,transparent 65%);transform:translateX(-120%);animation:profile-arrival 1.1s ease-out both;pointer-events:none}.child-profile.profile-add .profile-square{border:0;background:none;box-shadow:none;border-radius:0;display:grid;place-items:center}.profile-add .profile-square>b{font-weight:200!important;color:#217b70}.avatar-picker{border:0;padding:0;margin:18px 0}.avatar-picker legend{font-weight:800;padding:0 0 10px}.avatar-picker-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.avatar-choice{display:block;position:relative;aspect-ratio:1;border-radius:15px;cursor:pointer;box-shadow:0 3px 10px #244e4420}.avatar-choice input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.avatar-choice .premium-avatar{border-radius:15px}.avatar-choice:has(input:checked){outline:3px solid #30b489;outline-offset:3px;box-shadow:0 0 18px #38bb8b55}.avatar-choice:has(input:focus-visible){outline:3px solid #d49b2b;outline-offset:3px}@keyframes profile-arrival{to{transform:translateX(120%)}}@media(max-width:500px){.avatar-picker-grid{gap:8px}.avatar-choice,.avatar-choice .premium-avatar{border-radius:10px}}@media(prefers-reduced-motion:reduce){.child-profile.selected .profile-square:after{animation:none;display:none}}
.child-profile.profile-add>strong,.welcome-profile-row .child-profile.profile-add>strong{white-space:normal;overflow:visible;text-overflow:clip;display:block;width:100%;max-width:none;line-height:1.5;min-height:2.8em;word-break:normal;overflow-wrap:normal}.child-profile.profile-add{min-width:76px}.welcome-profile-row .child-profile.profile-add{width:82px;min-width:82px;flex-shrink:0}@media(max-width:600px){.welcome-profile-row .child-profile.profile-add{width:76px;min-width:76px}}
.student-profile-chip{display:flex;align-items:center;gap:9px;padding:4px 12px 4px 5px!important}.student-avatar{display:block;width:42px;height:42px;flex-shrink:0;border-radius:50%;overflow:hidden}.student-avatar .premium-avatar{border-radius:50%}.start-arrow-art{width:39px;height:29px;object-fit:contain;transform:scaleX(-1);vertical-align:middle;pointer-events:none}.welcome-start>button.primary,.profiles-panel [data-action="hub"]{display:flex;align-items:center;justify-content:center;gap:15px}@media(max-width:600px){.student-profile-chip{gap:5px;padding:3px 7px 3px 3px!important}.student-avatar{width:32px;height:32px}.start-arrow-art{width:32px;height:25px}}
.start-arrow-art,.app-back img{filter:brightness(0) invert(1) drop-shadow(0 1px 2px #174d4933)}

@media(max-width:600px) and (orientation:portrait){.world.ibtikari-welcome{background-image:url(assets/approved-welcome-portrait-mobile.webp?v=f67188f1c2ee)}}
.app-back[hidden]{display:none!important}.world:has(.journey-map)>.page,.world:has(.tale-reader)>.page,.world:has(.library-items)>.page{padding-bottom:88px}.journey-footer{padding-inline-end:64px}@media(max-width:600px){.journey-footer{padding-inline-end:48px}.world:has(.journey-map)>.page,.world:has(.tale-reader)>.page,.world:has(.library-items)>.page{padding-bottom:80px}}

/* Scoped, approved refinements to the original application. */
.auth-card .primary{background:#0aa99d;color:#fff9e9;border:1px solid #fff9;border-radius:23px;box-shadow:0 4px 0 #8ba47c44}
.auth-logo{object-fit:contain}
.welcome-quick-links .bedtime-premium{white-space:nowrap;overflow:visible;text-overflow:clip}
@media(max-width:600px){.welcome-quick-links .bedtime-premium{font-size:clamp(11px,3.4vw,15px);padding-inline:6px}.welcome-quick-links .teacher-glow{min-width:0!important;white-space:nowrap;font-size:clamp(12px,3.7vw,16px)!important}}
.approved-art{display:inline-flex!important;width:140px;height:140px;align-items:center;justify-content:center;vertical-align:middle;line-height:0;flex-shrink:0;overflow:visible;background:none;border:0;box-shadow:none;pointer-events:none}
.answer-card>.approved-art{width:125px;height:125px}.display-area>.approved-art{width:180px;height:180px}.match-card>.approved-art{width:85px;height:85px}.memory-card>.approved-art{width:90px;height:90px}.count-item>.approved-art,.collect-item>.approved-art{width:54px;height:54px}.pattern>.approved-art{width:65px;height:65px}.mixture>.approved-art{width:90px;height:90px}
.approved-crop{display:block;position:relative;overflow:hidden;width:var(--art-fit-w);height:var(--art-fit-h);pointer-events:none;flex-shrink:0}
.approved-crop>img{position:absolute!important;inset:auto!important;left:var(--art-left)!important;top:var(--art-top)!important;width:var(--art-img-width)!important;height:var(--art-img-height)!important;max-width:none!important;max-height:none!important;object-fit:fill!important;pointer-events:none;user-select:none}
.approved-number{display:inline-flex!important;align-items:center;justify-content:center;vertical-align:middle;direction:ltr;unicode-bidi:isolate;line-height:1}
.approved-number-row{display:inline-flex;align-items:center;justify-content:center;gap:.06em;direction:ltr;unicode-bidi:isolate;font-size:var(--number-size,90px)}
.approved-number-digit{display:block;flex-shrink:0}.approved-number-digit>.approved-art{width:100%!important;height:100%!important}
.approved-digit>.approved-crop{width:100%;height:100%}
.word-slot .approved-letter{width:31px!important;height:37px!important}.letter-tile .approved-letter{width:27px!important;height:32px!important}
.word-slots{align-items:center}.missing-letter-dots{font-size:25px;letter-spacing:2px;line-height:1;color:#65887d;display:inline-block}
.word-slots{flex-wrap:nowrap;max-width:100%}.word-slot{min-width:0;flex:0 1 67px;width:67px}.word-slot .approved-letter{max-width:100%}
.word-joined{color:#165f65;background:#fff0b5}
.display-area>.approved-letter{width:150px;height:150px}.answer-card>.approved-letter{width:100px;height:100px}
.approved-letter-pair{display:inline-flex;align-items:center;justify-content:center;gap:12px;direction:ltr;width:240px;height:140px}.approved-letter-pair>.approved-art{width:100px;height:120px}
.math-group .approved-art{width:43px;height:43px}.math-group .math-symbol>.approved-number{width:95px;height:95px}.math-group .math-symbol .approved-number-row{font-size:65px}
.math-group .approved-art img{opacity:1!important;filter:none!important}
.refresh-island-window{position:absolute;inset:0 0 auto;height:65%;width:100%;overflow:hidden;display:block;mask-image:linear-gradient(#000 0 83%,transparent 100%);pointer-events:none}
.painted-world .refresh-island-window>img{position:absolute;left:0;top:0;width:100%;height:auto;max-width:none;object-fit:contain}
.refresh-world-label{position:absolute;isolation:isolate;overflow:hidden;top:59%;left:50%;transform:translateX(-50%);width:112%;min-height:42px;padding:7px 6px;display:flex;align-items:center;justify-content:center;white-space:nowrap;background:linear-gradient(140deg,var(--pill-light),var(--pill-mid) 48%,var(--pill-dark));border:1px solid #ffffff75;border-radius:24px;color:#fffde9;box-shadow:inset 0 2px 1px #ffffff55,inset 0 -2px 3px #164f4030,0 4px 0 var(--pill-shadow),0 7px 13px #163f352b;font-size:clamp(11px,1.5vw,19px);font-weight:900;text-shadow:0 2px 1px #164f4050;line-height:1.25;pointer-events:none}
.refresh-world-label:after{content:'';position:absolute;top:-65%;bottom:-65%;left:-65%;width:32%;background:linear-gradient(90deg,transparent,#fff8,transparent);transform:skewX(-22deg);animation:teacher-shine 6s ease-in-out infinite;pointer-events:none}
.painted-world>.button-shine{display:none}.painted-world .guardian-island{bottom:31%;height:58%;width:44%;left:-12%}
.city-scene .scene-dock.illustrated-dock{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;grid-template-rows:auto!important;flex-wrap:nowrap!important;align-items:end;gap:8px;width:min(790px,86vw);bottom:8px}
.city-scene .scene-dock.illustrated-dock>.painted-nav{grid-column:auto!important;grid-row:auto!important;justify-self:stretch!important;width:100%!important}
.city-scene .illustrated-dock .painted-nav{width:100%;min-width:0;min-height:44px;padding:0!important;display:grid;place-items:center;background:none;box-shadow:none;border:0;overflow:visible}
.city-scene .illustrated-dock .painted-nav>.approved-art{width:100%;height:112px}
.city-scene .illustrated-dock .painted-nav>.button-shine{display:none}
.city-scene .scene-companions{bottom:126px}.city-scene .world-canvas{bottom:126px}
@media(max-width:700px){.city-scene .scene-dock.illustrated-dock{grid-template-columns:repeat(5,minmax(0,1fr));width:calc(100% - 14px);gap:3px;bottom:7px}.city-scene .illustrated-dock .painted-nav>.approved-art{height:clamp(58px,18vw,100px)}.city-scene .scene-companions{bottom:calc(min(18vw,100px) + 16px)}.city-scene .world-canvas{bottom:calc(min(18vw,100px) + 18px)}.refresh-world-label{min-height:31px;padding:6px 4px;border-radius:18px;font-size:clamp(10px,2.7vw,14px)}.word-slot .approved-letter{width:25px!important;height:31px!important}.letter-tile .approved-letter{width:24px!important;height:29px!important}}
@media(prefers-reduced-motion:reduce){.refresh-world-label:after{animation:none;display:none}}
@media(max-width:700px){.answer-card .approved-number-row{font-size:calc(var(--number-size,90px)*.72)}}
.quiet .refresh-world-label:after{animation:none;display:none}
/* These two source plaques start higher: enlarge only the illustration so
   the original lettering stays entirely below the clipped image window. */
.painted-world[data-section="maze"] .refresh-island-window,
.painted-world[data-section="thinking"] .refresh-island-window{height:59%;mask-image:linear-gradient(#000 0 88%,transparent 100%)}
.painted-world[data-section="maze"] .refresh-island-window>img{width:122%;left:-11%}
.painted-world[data-section="thinking"] .refresh-island-window>img{width:112%;left:-6%}
.refresh-journey-label{display:inline-block;width:min(230px,53vw);margin:8px}.refresh-journey-label>.refresh-world-label{position:relative;inset:auto;transform:none;width:100%;font-size:19px;min-height:48px}
