@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Noto+Sans+Bengali:wght@400;600;700;800&family=Noto+Sans+Devanagari:wght@400;600;700;800&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700;6..12,800;6..12,900&display=swap');

:root{
  --night:#0d2734;--night-2:#163b47;--paper:#fff9ea;--cream:#f5ead0;--ink:#17383b;--muted:#6c7b79;
  --gold:#ffc75a;--saffron:#f19b38;--coral:#ff7868;--lotus:#ff9fb0;--teal:#37c7b3;--blue:#62b4e9;--violet:#a997ff;--leaf:#83c86a;
  --glass:rgba(11,36,47,.78);--glass-line:rgba(255,255,255,.17);--shadow:0 24px 80px rgba(3,16,24,.35);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--night);color:white;font-family:"DM Sans",system-ui,sans-serif}body{overflow:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.skip-link{position:fixed;z-index:200;left:12px;top:12px;padding:10px 14px;color:var(--ink);background:white;border-radius:8px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.loading-screen{position:fixed;z-index:300;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;background:linear-gradient(145deg,#0c2633,#163c48);transition:opacity .45s ease,visibility .45s ease}.loading-lotus{display:grid;width:82px;height:82px;place-items:center;color:var(--gold);font-size:44px;border:1px solid rgba(255,255,255,.2);border-radius:50%;box-shadow:0 0 0 12px rgba(255,199,90,.08),0 0 45px rgba(255,199,90,.28);animation:loadPulse 1.3s ease-in-out infinite}.loading-screen strong{font-size:13px;letter-spacing:.12em;text-transform:uppercase}.is-ready .loading-screen{opacity:0;visibility:hidden}.app-shell{height:100dvh;min-height:600px;opacity:0;transition:opacity .4s ease}.is-ready .app-shell{opacity:1}
.game-topbar{position:relative;z-index:50;height:78px;padding:0 clamp(18px,3vw,46px);display:grid;grid-template-columns:1fr minmax(270px,.65fr) 1fr;align-items:center;gap:25px;background:rgba(6,26,35,.93);border-bottom:1px solid var(--glass-line);backdrop-filter:blur(18px)}.brand-button,.deck-button,.round-button{border:0;cursor:pointer}.brand-button{justify-self:start;display:flex;align-items:center;gap:12px;padding:0;background:none;text-align:left}.brand-lotus{display:grid;width:44px;height:44px;place-items:center;color:var(--night);background:radial-gradient(circle at 35% 30%,#fff4bb,var(--gold) 60%,#e18d2e);border-radius:50%;font-size:21px;box-shadow:0 0 0 5px rgba(255,199,90,.09)}.brand-button>span:last-child{display:grid}.brand-button strong{font-family:"Fraunces",Georgia,serif;font-size:20px;line-height:1}.brand-button small{margin-top:4px;color:rgba(255,255,255,.54);font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.journey-progress{align-self:center}.progress-copy{display:flex;justify-content:space-between;margin-bottom:7px;color:rgba(255,255,255,.62);font-size:9px;font-weight:700;letter-spacing:.13em}.progress-copy b{color:var(--gold);letter-spacing:0}.lotus-meter{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}.lotus-meter i{height:7px;background:rgba(255,255,255,.13);border-radius:10px;transition:.3s ease}.lotus-meter i.complete{background:linear-gradient(90deg,var(--coral),var(--gold));box-shadow:0 0 10px rgba(255,190,70,.38)}.top-actions{justify-self:end;display:flex;align-items:center;gap:10px}.deck-button{display:flex;align-items:center;gap:10px;padding:8px 12px;color:white;background:rgba(255,255,255,.08);border:1px solid var(--glass-line);border-radius:12px;text-align:left}.deck-button>span:first-child{color:var(--gold);font-size:21px}.deck-button>span:last-child{display:grid}.deck-button small{color:rgba(255,255,255,.5);font-size:7px;font-weight:800;letter-spacing:.16em}.deck-button strong{font-size:11px}.round-button{display:grid;width:43px;height:43px;place-items:center;color:white;background:rgba(255,255,255,.08);border:1px solid var(--glass-line);border-radius:50%;font-size:19px}.round-button:hover,.round-button:focus-visible,.deck-button:hover,.deck-button:focus-visible{background:rgba(255,255,255,.16);outline:2px solid var(--gold);outline-offset:2px}
main{height:calc(100dvh - 78px)}.screen{position:absolute;inset:78px 0 0;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease;transform:scale(1.02)}.screen.active{opacity:1;pointer-events:auto;transform:none}.map-screen{background:#163a46 url("assets/sloka-quest-world-v3.jpg") center/cover no-repeat}.world-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,28,39,.9) 0%,rgba(7,32,42,.55) 28%,rgba(6,26,34,.15) 63%,rgba(4,22,29,.38) 100%),linear-gradient(0deg,rgba(4,23,31,.83) 0%,transparent 28%)}.map-overlay{position:relative;z-index:2;height:calc(100% - 45px);padding:clamp(22px,4vh,42px) clamp(18px,3vw,46px);display:grid;grid-template-columns:minmax(265px,350px) 1fr;gap:clamp(28px,5vw,75px);align-items:stretch}.continue-panel{align-self:center;padding:28px;color:var(--ink);background:linear-gradient(155deg,rgba(255,251,237,.97),rgba(244,226,190,.94));border:1px solid rgba(255,255,255,.9);border-radius:24px;box-shadow:var(--shadow);position:relative;overflow:hidden}.continue-panel::before{content:"";position:absolute;width:180px;height:180px;right:-80px;top:-90px;border:1px solid rgba(241,155,56,.25);border-radius:50%;box-shadow:0 0 0 30px rgba(241,155,56,.05),0 0 0 60px rgba(241,155,56,.035)}.kicker{margin:0 0 10px;color:var(--coral);font-size:9px;font-weight:800;letter-spacing:.17em;text-transform:uppercase}.current-verse-row{display:flex;align-items:center;gap:15px}.verse-emblem{display:grid;width:55px;height:55px;place-items:center;color:#fff;background:linear-gradient(145deg,var(--coral),#cb554c);border-radius:18px;font-family:Georgia,serif;font-size:25px;box-shadow:0 9px 25px rgba(203,85,76,.25)}.current-verse-row small{font-size:9px;font-weight:800;letter-spacing:.12em;color:var(--muted)}.current-verse-row h1{margin:1px 0 0;font-family:"Fraunces",Georgia,serif;font-size:34px;line-height:1}.continue-panel>p:not(.kicker){min-height:46px;margin:22px 0;color:#4f6663;font-family:"Fraunces",Georgia,serif;font-size:18px;line-height:1.3}.continue-button{width:100%;min-height:54px;padding:0 13px 0 18px;display:flex;align-items:center;justify-content:space-between;color:white;background:linear-gradient(100deg,#143b42,#216756);border:0;border-radius:14px;cursor:pointer;font-weight:800;box-shadow:0 10px 24px rgba(19,67,61,.22)}.continue-button b{display:grid;width:34px;height:34px;place-items:center;color:var(--ink);background:var(--gold);border-radius:10px;font-size:24px}.continue-button:hover,.continue-button:focus-visible{transform:translateY(-2px);outline:3px solid rgba(255,199,90,.55)}.verse-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:15px}.verse-choice{min-height:42px;color:var(--ink);background:rgba(255,255,255,.62);border:1px solid rgba(23,56,59,.15);border-radius:11px;cursor:pointer;font-weight:800}.verse-choice.selected{color:white;background:var(--coral);border-color:var(--coral);box-shadow:0 6px 16px rgba(255,120,104,.24)}
.quest-map{position:relative;display:grid;grid-template-rows:auto 1fr;min-width:0}.map-heading{align-self:start;padding:18px 22px;width:max-content;max-width:100%;color:white;background:rgba(6,28,37,.68);border:1px solid var(--glass-line);border-radius:18px;backdrop-filter:blur(12px);box-shadow:0 14px 45px rgba(0,0,0,.18)}.map-heading h2{margin:0;font-family:"Fraunces",Georgia,serif;font-size:clamp(27px,3vw,42px);line-height:1}.map-heading>p:last-child{margin:6px 0 0;color:rgba(255,255,255,.66);font-size:12px}.quest-nodes{align-self:center;display:grid;grid-template-columns:repeat(4,minmax(135px,1fr));gap:clamp(12px,1.7vw,24px);perspective:900px}.quest-node{--accent:var(--gold);min-width:0;min-height:150px;padding:10px 8px;display:grid;justify-items:center;align-content:center;gap:8px;color:white;background:rgba(9,35,44,.76);border:1px solid rgba(255,255,255,.18);border-radius:22px;box-shadow:0 15px 35px rgba(3,16,24,.25);backdrop-filter:blur(10px);cursor:pointer;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}.quest-node:nth-child(2n){transform:translateY(24px)}.quest-node:hover,.quest-node:focus-visible{transform:translateY(-7px) scale(1.035);background:rgba(10,45,54,.92);box-shadow:0 18px 45px rgba(3,16,24,.4),0 0 0 3px var(--accent);outline:0}.quest-node:nth-child(2n):hover,.quest-node:nth-child(2n):focus-visible{transform:translateY(17px) scale(1.035)}.node-orbit{position:relative;display:grid;width:70px;height:70px;place-items:center}.node-orbit::before,.node-orbit::after{content:"";position:absolute;inset:0;border:1px solid color-mix(in srgb,var(--accent),transparent 40%);border-radius:50%;animation:orbitPulse 2.8s ease-in-out infinite}.node-orbit::after{inset:-7px;opacity:.35;animation-delay:.5s}.node-icon{display:grid;width:56px;height:56px;place-items:center;color:var(--night);background:radial-gradient(circle at 35% 25%,white,var(--accent) 65%);border-radius:50%;font-family:Georgia,serif;font-size:25px;box-shadow:0 0 30px color-mix(in srgb,var(--accent),transparent 45%)}.node-orbit i{position:absolute;right:3px;bottom:5px;width:14px;height:14px;background:rgba(255,255,255,.18);border:2px solid white;border-radius:50%}.quest-node.complete .node-orbit i{background:var(--gold)}.node-copy{display:grid;min-width:0;text-align:center}.node-copy strong{font-family:"Fraunces",Georgia,serif;font-size:17px;line-height:1.1}.node-copy small{margin-top:3px;color:rgba(255,255,255,.62);font-size:9px;line-height:1.2}.node-lines{--accent:var(--gold)}.node-words{--accent:var(--lotus)}.node-pairs{--accent:var(--teal)}.node-speaker{--accent:var(--blue)}.node-reference{--accent:var(--violet)}.node-jewel{--accent:var(--coral)}.node-catch{--accent:#7ddaf1}.node-meaning{--accent:var(--leaf)}.map-footer{position:absolute;z-index:3;left:0;right:0;bottom:0;height:45px;padding:0 clamp(18px,3vw,46px);display:flex;align-items:center;justify-content:space-between;color:rgba(255,255,255,.6);background:rgba(5,26,34,.8);border-top:1px solid var(--glass-line);font-size:9px}.map-footer b{color:var(--gold)}
.play-screen{background:linear-gradient(150deg,#102f3b,#18515b)}.play-backdrop{position:absolute;inset:0;background:linear-gradient(rgba(6,29,38,.84),rgba(8,38,46,.9)),url("assets/sloka-quest-world-v3.jpg") center/cover;filter:saturate(.75)}.play-topbar{position:relative;z-index:2;height:78px;padding:0 clamp(18px,3vw,46px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--glass-line)}.back-button{justify-self:start;min-height:44px;padding:0 14px;display:flex;align-items:center;gap:7px;color:white;background:rgba(255,255,255,.08);border:1px solid var(--glass-line);border-radius:12px;cursor:pointer;font-weight:700}.back-button span{font-size:24px}.play-title{display:flex;align-items:center;gap:11px}.play-icon{display:grid;width:46px;height:46px;place-items:center;color:var(--night);background:var(--gold);border-radius:15px;font-family:Georgia,serif;font-size:22px}.play-title small{color:var(--gold);font-size:8px;font-weight:800;letter-spacing:.15em}.play-title h1{margin:0;font-family:"Fraunces",Georgia,serif;font-size:26px;line-height:1}.play-topbar .round-button{justify-self:end}.play-body{position:relative;z-index:2;height:calc(100% - 78px);padding:clamp(16px,3vh,30px) clamp(18px,3vw,46px) clamp(20px,4vh,40px);display:grid;grid-template-columns:minmax(230px,295px) minmax(0,1fr);gap:24px}.mission-card{padding:24px;color:var(--ink);background:linear-gradient(165deg,#fff9ea,#efdfbc);border:1px solid rgba(255,255,255,.8);border-radius:24px;box-shadow:var(--shadow);display:flex;flex-direction:column}.mission-reference{display:flex;justify-content:space-between;align-items:center}.mission-reference span{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.14em}.mission-reference strong{color:var(--coral);font-size:12px}.mission-icon{display:grid;width:92px;height:92px;margin:26px auto 22px;place-items:center;color:var(--ink);background:radial-gradient(circle at 36% 28%,white,var(--gold) 62%);border-radius:50%;font-family:Georgia,serif;font-size:38px;box-shadow:0 0 0 10px rgba(255,199,90,.12),0 18px 35px rgba(181,111,28,.18)}.mission-card h2{margin:0;font-family:"Fraunces",Georgia,serif;font-size:28px;line-height:1.12}.mission-card>p:not(.kicker){margin:13px 0 22px;color:#536966;font-size:13px}.mission-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.mission-steps span{height:6px;background:rgba(23,56,59,.13);border-radius:10px}.mission-steps span.active,.mission-steps span.done{background:linear-gradient(90deg,var(--coral),var(--gold))}.small-action{margin-top:auto;min-height:43px;color:var(--ink);background:transparent;border:1px solid rgba(23,56,59,.18);border-radius:11px;cursor:pointer;font-size:11px;font-weight:700}.small-action:hover,.small-action:focus-visible{background:white;outline:2px solid var(--coral)}.game-board{position:relative;min-width:0;padding:20px 24px 24px;color:var(--ink);background:linear-gradient(180deg,rgba(255,252,240,.98),rgba(239,225,192,.98));border:1px solid rgba(255,255,255,.85);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.board-sky{position:absolute;inset:0 0 auto;height:115px;background:linear-gradient(180deg,#d6f5ef,#eff4d7 72%,transparent)}.board-sky::after{content:"";position:absolute;left:-2%;right:-2%;bottom:-18px;height:44px;background:radial-gradient(ellipse at 50% 100%,transparent 63%,#ebddb8 65%);opacity:.8}.board-sky i{position:absolute;width:7px;height:7px;background:white;border-radius:50%;box-shadow:0 0 12px white;animation:twinkle 2.2s ease-in-out infinite}.board-sky i:nth-child(1){left:14%;top:25px}.board-sky i:nth-child(2){left:61%;top:35px;animation-delay:.7s}.board-sky i:nth-child(3){right:12%;top:17px;animation-delay:1.3s}.board-progress{position:relative;z-index:2;display:flex;align-items:center;gap:13px}.board-progress>span{min-width:70px;color:#54706d;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.board-progress>div{height:7px;flex:1;background:rgba(23,56,59,.12);border-radius:10px;overflow:hidden}.board-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--coral),var(--gold));border-radius:inherit;transition:width .3s ease}.stage{position:relative;z-index:2;height:calc(100% - 68px);min-height:390px;margin-top:20px;display:grid;align-content:center}.game-feedback{position:absolute;z-index:8;left:50%;bottom:18px;max-width:min(520px,80%);padding:11px 16px;color:white;background:rgba(13,39,52,.94);border:1px solid rgba(255,255,255,.18);border-radius:12px;box-shadow:0 12px 28px rgba(0,0,0,.18);font-size:12px;font-weight:700;opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:.2s ease}.game-feedback.show{opacity:1;transform:translate(-50%,0)}.game-feedback.error{background:#8d3d42}
/* Line Bridge */
.bridge-world{display:grid;gap:20px}.bridge-river{position:relative;min-height:150px;padding:20px;display:flex;align-items:center;background:linear-gradient(180deg,#8be0e2,#3ca8bd);border-radius:24px;overflow:hidden;box-shadow:inset 0 8px 24px rgba(19,86,104,.2)}.bridge-river::before,.bridge-river::after{content:"";position:absolute;left:-10%;width:120%;height:15px;border-top:2px solid rgba(255,255,255,.32);border-radius:50%;animation:waterMove 4s linear infinite}.bridge-river::before{top:36px}.bridge-river::after{bottom:24px;animation-delay:-1.8s}.bridge-slots{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.bridge-slot{min-height:102px;padding:10px;display:grid;place-items:center;color:rgba(255,255,255,.9);background:rgba(8,60,72,.25);border:2px dashed rgba(255,255,255,.5);border-radius:18px;text-align:center;font-family:Georgia,serif;font-size:12px;line-height:1.35}.bridge-slot.filled{color:var(--ink);background:linear-gradient(145deg,#ffe68e,#e9a947);border-style:solid;border-color:#fff0ae;box-shadow:0 10px 25px rgba(7,72,84,.25);animation:stoneIn .35s ease both}.line-tray{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.line-tile{min-height:54px;padding:10px 13px;color:var(--ink);background:#fffdf5;border:1px solid #c9b98e;border-radius:13px;box-shadow:0 5px 0 #d8c69a;cursor:pointer;text-align:left;font-family:Georgia,serif;font-size:13px}.line-tile:hover,.line-tile:focus-visible{transform:translateY(-2px);outline:3px solid rgba(55,199,179,.35)}.line-tile.used{opacity:.28;pointer-events:none;box-shadow:none}.line-tile.wrong{animation:shake .3s ease;background:#ffe1dd;border-color:var(--coral)}
/* Word Garden */
.word-garden{display:grid;gap:22px}.garden-heading{display:flex;justify-content:space-between;align-items:center}.garden-heading strong{font-family:"Fraunces",Georgia,serif;font-size:18px}.garden-heading span{color:var(--muted);font-size:11px}.word-slots{min-height:88px;padding:15px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,#b5e7c1,#75c491);border-radius:22px;box-shadow:inset 0 -10px 22px rgba(30,117,77,.12)}.word-slot{min-width:78px;min-height:44px;padding:8px;display:grid;place-items:center;color:rgba(21,73,49,.5);background:rgba(255,255,255,.34);border:2px dashed rgba(255,255,255,.65);border-radius:50% 50% 45% 45%;font-size:10px}.word-slot.filled{color:#573c3d;background:radial-gradient(circle at 35% 25%,#fff8ef,#ffacbd 70%);border:0;font-family:Georgia,serif;font-size:13px;font-weight:700;box-shadow:0 7px 16px rgba(71,72,42,.18);animation:petalLand .32s ease}.petal-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.word-petal{min-width:105px;min-height:54px;padding:10px 16px;color:#633e42;background:linear-gradient(145deg,#fff7f3,#ffa8bb);border:1px solid white;border-radius:55% 55% 45% 45%;box-shadow:0 7px 0 #dc7891,0 12px 22px rgba(89,54,60,.18);cursor:pointer;font-family:Georgia,serif;font-size:14px;font-weight:700}.word-petal:hover,.word-petal:focus-visible{transform:translateY(-3px) rotate(-1deg);outline:3px solid rgba(255,255,255,.8)}.word-petal.used{opacity:.2;pointer-events:none;box-shadow:none}.word-petal.wrong{animation:shake .3s ease;filter:saturate(.55)}.next-line-button{justify-self:center;min-height:48px;padding:0 20px;color:white;background:var(--ink);border:0;border-radius:13px;cursor:pointer;font-weight:800}
/* Pairs */
.pairs-board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:720px;margin:auto}.memory-card{min-height:125px;padding:10px;display:grid;place-items:center;color:white;background:linear-gradient(145deg,#2b7b75,#174c54);border:1px solid rgba(255,255,255,.48);border-radius:18px;cursor:pointer;box-shadow:0 8px 0 #103a42,0 15px 25px rgba(15,58,66,.18);transform-style:preserve-3d;transition:.35s ease;text-align:center}.memory-card::after{content:"🪷";font-size:32px;color:var(--gold)}.memory-card span{display:none;font-family:Georgia,serif;font-size:13px;line-height:1.4}.memory-card.flipped,.memory-card.matched{transform:rotateY(180deg);color:var(--ink);background:#fffaf0;box-shadow:0 8px 0 #dccb9f}.memory-card.flipped::after,.memory-card.matched::after{display:none}.memory-card.flipped span,.memory-card.matched span{display:block;transform:rotateY(180deg)}.memory-card.matched{background:linear-gradient(145deg,#bff0cf,#7dd4a5);border-color:white}.memory-card.matched span::before{content:"✓ ";color:#167655;font-weight:800}
/* Who Said */
.dialogue-game{position:relative;min-height:390px;display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.dialogue-art{position:relative;min-height:360px;background:linear-gradient(rgba(11,39,48,.05),rgba(11,39,48,.38)),url("assets/krishna-gita-dialogue.jpg") center/cover;border-radius:24px;overflow:hidden}.speech-scroll{position:absolute;left:20px;right:20px;bottom:18px;padding:14px 16px;color:var(--ink);background:rgba(255,249,231,.94);border:1px solid white;border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.25)}.speech-scroll small{color:var(--coral);font-size:8px;font-weight:800;letter-spacing:.13em}.speech-scroll p{margin:4px 0 0;font-family:"Fraunces",Georgia,serif;font-size:17px}.dialogue-choices{align-self:center;display:grid;gap:10px}.dialogue-choices>p{margin:0 0 3px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em}.character-choice{min-height:67px;padding:9px 12px;display:flex;align-items:center;gap:12px;color:var(--ink);background:white;border:1px solid #cfbe91;border-radius:16px;cursor:pointer;text-align:left;box-shadow:0 5px 0 #d7c599}.character-choice>span:first-child{display:grid;width:44px;height:44px;place-items:center;background:var(--cream);border-radius:50%;font-size:21px}.character-choice strong{display:block}.character-choice small{color:var(--muted)}.character-choice:hover,.character-choice:focus-visible{transform:translateY(-2px);outline:3px solid rgba(55,199,179,.28)}.character-choice.selected{color:white;background:var(--ink);border-color:var(--ink)}
/* Reference Hunt */
.reference-hunt{display:grid;grid-template-columns:1fr 1.2fr;gap:26px;align-items:center}.reference-clue{padding:24px;color:white;background:linear-gradient(150deg,#654f88,#433665);border-radius:22px;box-shadow:0 12px 30px rgba(65,49,98,.25)}.reference-clue span{font-size:9px;font-weight:800;letter-spacing:.15em;color:#ead9ff}.reference-clue p{margin:15px 0 0;font-family:"Fraunces",Georgia,serif;font-size:25px;line-height:1.2}.scroll-shelf{position:relative;padding:34px 20px 26px;display:grid;grid-template-columns:repeat(2,1fr);gap:13px;background:linear-gradient(180deg,#7f5231,#4b2c1e);border:7px solid #c8904d;border-radius:20px;box-shadow:inset 0 0 0 2px #3c2115,0 14px 30px rgba(64,39,23,.25)}.reference-scroll{min-height:85px;padding:12px;color:#5d3e29;background:linear-gradient(90deg,#e5c684,#fff1bd 14%,#fff7d2 50%,#fff1bd 86%,#e5c684);border:0;border-radius:8px;box-shadow:0 6px 0 #3b241a;cursor:pointer;font-family:"Fraunces",Georgia,serif;font-size:18px}.reference-scroll:hover,.reference-scroll:focus-visible{transform:translateY(-4px) rotate(-1deg);outline:3px solid var(--gold)}.reference-scroll.wrong{animation:shake .3s ease;filter:saturate(.6)}
/* Missing Jewel */
.jewel-game{display:grid;gap:24px}.jewel-line{min-height:105px;padding:20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;color:#fff;background:linear-gradient(140deg,#344a73,#222f55);border:1px solid #8792c4;border-radius:22px;font-family:Georgia,serif;font-size:20px;box-shadow:0 14px 30px rgba(38,49,91,.22)}.jewel-line .missing{display:grid;min-width:110px;height:49px;place-items:center;color:var(--gold);background:rgba(255,255,255,.08);border:2px dashed rgba(255,255,255,.45);border-radius:12px}.jewel-line .missing.filled{color:white;background:linear-gradient(145deg,#ff846f,#c94b70);border-style:solid;animation:gemGlow .45s ease}.gem-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:15px}.word-gem{position:relative;min-width:130px;min-height:70px;padding:12px 20px;color:white;background:linear-gradient(145deg,#ff9a7c,#c74670);border:1px solid #ffd7d1;border-radius:20px 20px 34px 34px;box-shadow:0 8px 0 #7f3157,0 15px 26px rgba(89,43,75,.2);cursor:pointer;font-family:Georgia,serif;font-size:14px}.word-gem::before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.25);border-radius:14px 14px 26px 26px}.word-gem:hover,.word-gem:focus-visible{transform:translateY(-4px);outline:3px solid rgba(255,199,90,.45)}.word-gem.wrong{animation:shake .3s ease;filter:grayscale(.3)}
/* Verse Catch */
.catch-game{position:relative;min-height:390px;border-radius:24px;background:linear-gradient(180deg,#9edcf0,#dff4e7 68%,#8dcb83 69%,#5da46d);overflow:hidden}.catch-game::before{content:"";position:absolute;inset:auto 0 0;height:48px;background:radial-gradient(ellipse at center,#8ed08b 0 45%,transparent 47%) 0 0/90px 45px}.catch-prompt{position:absolute;z-index:5;left:20px;top:16px;padding:10px 14px;color:white;background:rgba(13,39,52,.82);border-radius:12px;font-size:11px}.caught-row{position:absolute;z-index:5;left:18px;right:18px;bottom:15px;min-height:56px;padding:8px;display:flex;align-items:center;justify-content:center;gap:7px;background:rgba(255,255,255,.83);border:1px solid white;border-radius:15px}.caught-row span{padding:6px 9px;color:var(--ink);background:var(--gold);border-radius:8px;font-family:Georgia,serif;font-size:12px}.word-cloud{position:absolute;min-width:110px;min-height:55px;padding:8px 15px;color:var(--ink);background:white;border:0;border-radius:40px;box-shadow:0 10px 20px rgba(43,97,112,.16);cursor:pointer;font-family:Georgia,serif;font-weight:700;animation:cloudFloat var(--speed,5s) ease-in-out infinite alternate}.word-cloud::before,.word-cloud::after{content:"";position:absolute;z-index:-1;background:white;border-radius:50%}.word-cloud::before{width:35px;height:35px;left:14px;top:-14px}.word-cloud::after{width:43px;height:43px;right:13px;top:-18px}.word-cloud:hover,.word-cloud:focus-visible{outline:4px solid var(--gold);transform:scale(1.05)}.word-cloud.wrong{animation:shake .3s ease;background:#ffd9d4}.word-cloud.caught{animation:cloudCatch .35s ease forwards}
/* Meaning match */
.meaning-game{display:grid;gap:20px}.meaning-orb{max-width:620px;margin:auto;padding:20px 28px;color:white;background:radial-gradient(circle at 30% 20%,#6bd8bf,#267f79 65%);border:1px solid #a1f0dc;border-radius:60px;text-align:center;box-shadow:0 14px 34px rgba(38,127,121,.24)}.meaning-orb small{font-size:8px;font-weight:800;letter-spacing:.15em}.meaning-orb p{margin:5px 0 0;font-family:"Fraunces",Georgia,serif;font-size:21px}.meaning-paths{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.meaning-path{min-height:145px;padding:15px;color:var(--ink);background:linear-gradient(160deg,#fffdf6,#e9dcb9);border:2px solid white;border-radius:20px;box-shadow:0 8px 0 #c8b789,0 16px 24px rgba(63,73,52,.15);cursor:pointer;text-align:left}.meaning-path span{display:grid;width:39px;height:39px;place-items:center;color:white;background:var(--teal);border-radius:50%;font-weight:800}.meaning-path p{margin:14px 0 0;font-family:Georgia,serif;font-size:14px;line-height:1.45}.meaning-path:hover,.meaning-path:focus-visible{transform:translateY(-4px);outline:3px solid rgba(55,199,179,.36)}.meaning-path.wrong{animation:shake .3s ease;background:#ffe1dc}
/* Dialogs and states */
.app-dialog,.success-dialog{padding:0;color:var(--ink);background:linear-gradient(160deg,#fffaf0,#eddfbd);border:1px solid white;border-radius:24px;box-shadow:0 25px 90px rgba(0,0,0,.5)}dialog::backdrop{background:rgba(3,18,25,.72);backdrop-filter:blur(8px)}.app-dialog form{position:relative;width:min(520px,calc(100vw - 30px));padding:30px}.app-dialog h2,.success-dialog h2{margin:0;font-family:"Fraunces",Georgia,serif;font-size:35px}.app-dialog form>p:not(.kicker){color:var(--muted);font-size:13px}.dialog-close{position:absolute;right:16px;top:14px;display:grid;width:36px;height:36px;place-items:center;color:var(--ink);background:rgba(23,56,59,.08);border:0;border-radius:50%;cursor:pointer;font-size:24px}.deck-option{width:100%;min-height:75px;margin-top:10px;padding:10px 12px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;color:var(--ink);background:rgba(255,255,255,.65);border:1px solid #cfbf98;border-radius:15px;cursor:pointer;text-align:left}.deck-option>span:first-child{display:grid;width:44px;height:44px;place-items:center;color:white;background:var(--night);border-radius:13px;font-weight:800}.deck-option>span:nth-child(2){display:grid}.deck-option small{color:var(--muted)}.deck-option>b{color:var(--coral);font-size:9px;letter-spacing:.12em}.deck-option.active{background:#dff2e5;border-color:#6cb387}.help-demo{height:100px;margin:20px 0;background:linear-gradient(145deg,#9addda,#f4d78f);border-radius:18px;position:relative;overflow:hidden}.help-demo::before{content:"1";position:absolute;left:20%;top:25px;display:grid;width:50px;height:50px;place-items:center;color:white;background:var(--coral);border-radius:15px;box-shadow:80px 0 0 var(--gold),160px 0 0 var(--teal)}.help-dialog ol{padding-left:25px;color:#49615e}.help-dialog li{margin:9px 0;padding-left:5px}.dialog-primary{width:100%;min-height:50px;color:white;background:var(--ink);border:0;border-radius:13px;cursor:pointer;font-weight:800}.success-dialog{position:relative;width:min(430px,calc(100vw - 30px));padding:42px 30px 30px;text-align:center;overflow:hidden}.success-rays{position:absolute;inset:-90%;background:repeating-conic-gradient(from 0deg,rgba(255,199,90,.18) 0 8deg,transparent 8deg 18deg);animation:raySpin 16s linear infinite}.success-lotus{position:relative;display:grid;width:95px;height:95px;margin:0 auto 23px;place-items:center;color:var(--night);background:radial-gradient(circle at 35% 25%,white,var(--gold) 62%);border-radius:50%;font-size:44px;box-shadow:0 0 0 12px rgba(255,199,90,.13),0 16px 35px rgba(160,96,23,.24);animation:successPop .5s cubic-bezier(.2,1.6,.4,1)}.success-dialog>*:not(.success-rays){position:relative}.success-dialog>p:not(.kicker){color:var(--muted)}.success-actions{display:grid;gap:8px;margin-top:22px}.success-actions button{min-height:49px;border-radius:13px;cursor:pointer;font-weight:800}.success-actions button:first-child{color:white;background:var(--ink);border:0}.success-actions button:last-child{color:var(--ink);background:transparent;border:1px solid rgba(23,56,59,.2)}.toast{position:fixed;z-index:250;left:50%;bottom:30px;max-width:calc(100vw - 32px);padding:12px 17px;color:white;background:rgba(9,35,45,.96);border:1px solid var(--glass-line);border-radius:12px;box-shadow:0 15px 35px rgba(0,0,0,.28);opacity:0;transform:translate(-50%,20px);pointer-events:none;transition:.25s ease;font-size:12px;font-weight:700}.toast.show{opacity:1;transform:translate(-50%,0)}.petal-burst{position:fixed;z-index:260;left:50%;top:50%;pointer-events:none}.petal-burst i{position:absolute;width:13px;height:20px;background:var(--petal,var(--lotus));border-radius:80% 20% 80% 20%;animation:petalBurst .9s ease-out both}
@keyframes loadPulse{50%{transform:scale(1.08) rotate(45deg);box-shadow:0 0 0 18px rgba(255,199,90,.05),0 0 60px rgba(255,199,90,.42)}}@keyframes orbitPulse{50%{transform:scale(1.08);opacity:.45}}@keyframes twinkle{50%{transform:scale(.4);opacity:.35}}@keyframes waterMove{to{transform:translateX(10%)}}@keyframes stoneIn{from{opacity:0;transform:translateY(-25px) scale(.8)}to{opacity:1;transform:none}}@keyframes petalLand{from{opacity:0;transform:translateY(-20px) rotate(-12deg)}to{opacity:1;transform:none}}@keyframes gemGlow{50%{box-shadow:0 0 30px var(--coral)}}@keyframes cloudFloat{to{transform:translate(14px,-12px)}}@keyframes cloudCatch{to{opacity:0;transform:translateY(130px) scale(.5)}}@keyframes raySpin{to{transform:rotate(360deg)}}@keyframes successPop{from{transform:scale(.3) rotate(-35deg);opacity:0}to{transform:none;opacity:1}}@keyframes petalBurst{to{opacity:0;transform:translate(var(--x),var(--y)) rotate(480deg)}}@keyframes shake{25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}
@media(max-width:1050px){.game-topbar{grid-template-columns:1fr .8fr 1fr}.map-overlay{grid-template-columns:270px 1fr;gap:24px}.quest-nodes{grid-template-columns:repeat(4,minmax(105px,1fr));gap:10px}.quest-node{min-height:138px}.node-copy strong{font-size:15px}.play-body{grid-template-columns:220px 1fr}.mission-card{padding:18px}.mission-icon{width:75px;height:75px;margin:18px auto}.mission-card h2{font-size:23px}.dialogue-game{grid-template-columns:1fr}.dialogue-art{min-height:240px}.dialogue-choices{grid-template-columns:repeat(3,1fr)}.dialogue-choices>p{grid-column:1/-1}.character-choice{display:grid;justify-items:center;text-align:center}.reference-hunt{grid-template-columns:1fr}.reference-clue p{font-size:20px}}
@media(max-width:760px){body{overflow:auto;background:#102b38}.app-shell{height:auto;min-height:100dvh}.game-topbar{position:fixed;z-index:80;left:0;right:0;top:0;height:66px;padding:0 14px;grid-template-columns:1fr auto}.brand-lotus{width:39px;height:39px}.brand-button small,.journey-progress,.deck-button span:nth-child(2){display:none}.top-actions{gap:7px}.deck-button{width:42px;height:42px;padding:0;justify-content:center;border-radius:50%}.deck-button>span:first-child{font-size:19px}.round-button{width:42px;height:42px}.screen{position:relative;inset:auto!important;min-height:100dvh;padding-top:66px;display:none;overflow:visible;opacity:1;transform:none}.screen.active{display:block}.map-screen{background-position:57% center}.world-wash{position:fixed;background:linear-gradient(180deg,rgba(6,28,37,.32),rgba(6,28,37,.8) 48%,#0d2b38 100%)}.map-overlay{height:auto;min-height:calc(100dvh - 45px);padding:24px 14px 75px;display:flex;flex-direction:column;gap:22px}.continue-panel{align-self:stretch;padding:20px;border-radius:20px}.continue-panel>p:not(.kicker){min-height:0;margin:14px 0}.current-verse-row h1{font-size:29px}.continue-button{min-height:50px}.quest-map{display:block}.map-heading{width:100%;padding:15px 17px}.map-heading h2{font-size:27px}.quest-nodes{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;perspective:none}.quest-node,.quest-node:nth-child(2n){min-height:155px;padding:12px 7px;transform:none}.quest-node:hover,.quest-node:focus-visible,.quest-node:nth-child(2n):hover,.quest-node:nth-child(2n):focus-visible{transform:translateY(-3px)}.map-footer{position:absolute;height:auto;min-height:45px;padding:10px 14px;gap:8px;flex-direction:column;align-items:flex-start}.play-screen{min-height:100dvh;background:#113441}.play-backdrop{position:fixed}.play-topbar{height:66px;padding:0 14px;position:sticky;top:66px;z-index:30;grid-template-columns:auto 1fr auto;background:rgba(8,32,41,.92);backdrop-filter:blur(14px)}.back-button{width:44px;padding:0;justify-content:center;font-size:0}.back-button span{font-size:27px}.play-title{justify-self:center}.play-icon{width:40px;height:40px}.play-title small{display:none}.play-title h1{font-size:20px}.play-body{height:auto;min-height:calc(100dvh - 132px);padding:14px;display:flex;flex-direction:column;gap:12px}.mission-card{padding:16px;display:grid;grid-template-columns:1fr auto;gap:6px 12px;border-radius:18px}.mission-reference{grid-column:1}.mission-icon{grid-column:2;grid-row:1/4;width:61px;height:61px;margin:0;font-size:27px}.mission-card .kicker{grid-column:1;margin:5px 0 0}.mission-card h2{grid-column:1;font-size:21px}.mission-card>p:not(.kicker){grid-column:1/-1;margin:6px 0 10px}.mission-steps{grid-column:1/-1}.small-action{grid-column:1/-1;margin-top:6px}.game-board{min-height:540px;padding:16px 13px 22px;border-radius:20px}.stage{height:auto;min-height:430px;align-content:center}.game-feedback{position:fixed;bottom:18px}.bridge-river{padding:10px;min-height:320px}.bridge-slots{grid-template-columns:1fr;gap:6px}.bridge-slot{min-height:66px}.line-tray{grid-template-columns:1fr}.line-tile{min-height:50px}.word-slots{padding:10px;gap:6px}.word-slot{min-width:64px}.word-petal{min-width:95px}.pairs-board{grid-template-columns:repeat(2,1fr);gap:9px}.memory-card{min-height:115px}.dialogue-game{grid-template-columns:1fr}.dialogue-art{min-height:265px}.dialogue-choices{grid-template-columns:1fr}.character-choice{display:flex;justify-items:initial;text-align:left}.reference-hunt{grid-template-columns:1fr;gap:14px}.reference-clue{padding:18px}.scroll-shelf{padding:25px 12px 18px;gap:8px}.reference-scroll{font-size:15px}.jewel-line{font-size:16px}.word-gem{min-width:110px}.meaning-paths{grid-template-columns:1fr}.meaning-path{min-height:105px}.catch-game{min-height:430px}.app-dialog form{padding:28px 20px}.success-dialog{padding:38px 22px 24px}}
@media(max-width:390px){.quest-node{min-height:145px}.node-orbit{width:62px;height:62px}.node-icon{width:50px;height:50px}.node-copy strong{font-size:15px}.continue-panel{padding:17px}.game-board{min-height:520px}.pairs-board{gap:7px}.memory-card{min-height:105px;padding:7px}.memory-card span{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.word-cloud{animation:none!important}}

/* V4 · guided, multilingual, repetition-first practice */
.lotus-meter{grid-template-columns:repeat(var(--segments,8),1fr)}.lotus-meter i.current{background:var(--gold);box-shadow:0 0 0 2px rgba(255,199,90,.25),0 0 14px rgba(255,199,90,.55)}
.v4-map-overlay{grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:clamp(28px,5vw,78px)}
.setup-panel{align-self:center;padding:clamp(22px,3vw,30px)}.setup-panel>p:not(.kicker){margin:17px 0 14px;min-height:42px}.setup-panel>p small{display:block;margin-top:5px;color:#8a6a58;font-family:"DM Sans",system-ui,sans-serif;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.quick-settings{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 14px}.quick-settings label{min-width:0;display:grid;gap:4px}.quick-settings label>span{color:#63736f;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.quick-settings select{width:100%;height:43px;padding:0 34px 0 11px;color:var(--ink);background:rgba(255,255,255,.72);border:1px solid rgba(23,56,59,.18);border-radius:11px;font-size:12px;font-weight:800;cursor:pointer}.quick-settings select:focus{outline:3px solid rgba(55,199,179,.35);border-color:var(--teal)}.quick-settings label[hidden]{display:none}.start-practice-button{min-height:58px;margin-top:5px;font-size:14px}.text-action{width:100%;min-height:38px;margin-top:7px;color:#315b58;background:transparent;border:0;border-radius:10px;cursor:pointer;font-size:11px;font-weight:800;text-decoration:underline;text-decoration-color:rgba(49,91,88,.32);text-underline-offset:4px}.text-action:hover,.text-action:focus-visible{background:rgba(255,255,255,.55);outline:2px solid rgba(55,199,179,.3)}
.practice-journey{align-self:center;min-width:0;display:grid;gap:20px}.journey-heading{width:min(600px,100%);padding:17px 21px}.journey-heading h2{font-size:clamp(29px,3.3vw,48px)}
.journey-route{position:relative;width:min(750px,100%);display:grid;grid-template-columns:minmax(130px,1fr) 34px minmax(130px,1fr) 34px minmax(130px,1fr) 34px minmax(130px,1fr);align-items:center}.journey-stop{--stop:var(--gold);position:relative;min-height:185px;padding:18px 13px;display:grid;justify-items:center;align-content:center;gap:8px;color:white;background:rgba(8,35,44,.78);border:1px solid rgba(255,255,255,.2);border-radius:26px;text-align:center;box-shadow:0 20px 45px rgba(2,17,23,.28);backdrop-filter:blur(12px)}.journey-stop:nth-of-type(even){transform:translateY(26px)}.journey-stop::before{content:"";position:absolute;inset:8px;border:1px solid color-mix(in srgb,var(--stop),transparent 64%);border-radius:20px;pointer-events:none}.stop-rebuild{--stop:var(--coral)}.stop-repeat{--stop:var(--teal)}.stop-final{--stop:var(--violet)}.stop-number{position:absolute;left:12px;top:11px;display:grid;width:25px;height:25px;place-items:center;color:var(--night);background:white;border-radius:50%;font-size:10px;font-weight:900}.stop-icon{display:grid;width:74px;height:74px;place-items:center;color:var(--night);background:radial-gradient(circle at 32% 25%,#fff,var(--stop) 68%);border-radius:50%;box-shadow:0 0 0 8px color-mix(in srgb,var(--stop),transparent 86%),0 0 30px color-mix(in srgb,var(--stop),transparent 40%);font-family:Georgia,serif;font-size:28px;animation:orbitPulse 3s ease-in-out infinite}.journey-stop strong{display:block;font-family:"Fraunces",Georgia,serif;font-size:19px}.journey-stop small{display:block;margin-top:4px;color:rgba(255,255,255,.64);font-size:9px;line-height:1.35}.route-trail{height:5px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.75) 0 7px,transparent 7px 13px);filter:drop-shadow(0 0 5px rgba(255,255,255,.45));animation:trailGlow 2s ease-in-out infinite}.repetition-note{justify-self:center;max-width:690px;padding:12px 16px;display:flex;align-items:center;gap:12px;color:white;background:rgba(7,30,39,.72);border:1px solid var(--glass-line);border-radius:15px;backdrop-filter:blur(10px)}.repetition-note>span{display:grid;min-width:40px;height:40px;place-items:center;color:var(--night);background:var(--gold);border-radius:50%;font-family:"Fraunces",Georgia,serif;font-size:24px}.repetition-note p{margin:0;font-size:11px;line-height:1.5}.repetition-note strong{color:var(--gold)}
.session-badge{margin:0 0 14px;padding:9px 11px;color:#fff;background:linear-gradient(100deg,#215960,#2f8a77);border-radius:10px;font-size:9px;font-weight:800;letter-spacing:.07em;text-align:center;text-transform:uppercase}.back-label{font-size:inherit}
.game-library-dialog{width:min(850px,calc(100vw - 30px));max-height:min(760px,calc(100dvh - 30px))}.library-shell{position:relative;padding:30px}.library-shell>h2{margin:0;font-family:"Fraunces",Georgia,serif;font-size:35px}.library-shell>p:not(.kicker){color:var(--muted);font-size:13px}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.library-game{--accent:var(--gold);min-height:84px;padding:10px 13px;display:flex;align-items:center;gap:12px;color:var(--ink);background:rgba(255,255,255,.67);border:1px solid #d1c19c;border-radius:17px;cursor:pointer;text-align:left}.library-game>span:first-child{display:grid;min-width:50px;height:50px;place-items:center;color:var(--night);background:var(--accent);border-radius:15px;font-family:Georgia,serif;font-size:21px}.library-game>span:last-child{display:grid}.library-game strong{font-family:"Fraunces",Georgia,serif;font-size:17px}.library-game small{margin-top:3px;color:var(--muted);font-size:10px}.library-game:hover,.library-game:focus-visible{transform:translateY(-2px);background:white;outline:3px solid color-mix(in srgb,var(--accent),transparent 50%)}.library-game.node-words{--accent:var(--lotus)}.library-game.node-pairs{--accent:var(--teal)}.library-game.node-speaker{--accent:var(--blue)}.library-game.node-reference{--accent:var(--violet)}.library-game.node-jewel{--accent:var(--coral)}.library-game.node-catch{--accent:#7ddaf1}.library-game.node-meaning{--accent:var(--leaf)}
/* Final recall */
.final-recall{width:min(840px,100%);margin:auto;display:grid;gap:15px}.recall-orb{padding:13px 17px;display:flex;align-items:center;gap:13px;color:white;background:linear-gradient(115deg,#5d4b8c,#293e72);border:1px solid rgba(255,255,255,.55);border-radius:18px;box-shadow:0 10px 24px rgba(49,47,104,.2)}.recall-orb>span{display:grid;min-width:49px;height:49px;place-items:center;color:var(--night);background:radial-gradient(circle at 35% 25%,#fff,var(--gold));border-radius:50%;font-size:23px}.recall-orb div{display:grid}.recall-orb small{color:#e7dcff;font-size:9px;font-weight:900;letter-spacing:.12em}.recall-orb strong{margin-top:3px;font-family:"Fraunces",Georgia,serif;font-size:20px}.recall-input-wrap{padding:16px;background:rgba(255,255,255,.63);border:1px solid white;border-radius:20px}.recall-input-wrap textarea{width:100%;min-height:122px;padding:16px;color:var(--ink);background:#fffcf3;border:2px solid #d8c79d;border-radius:15px;resize:vertical;font-family:Georgia,serif;font-size:17px;line-height:1.6}.recall-input-wrap textarea:focus{outline:4px solid rgba(55,199,179,.25);border-color:var(--teal)}.recall-actions{display:grid;grid-template-columns:minmax(125px,.34fr) 1fr;gap:9px;margin-top:10px}.recall-actions button,.recall-result-actions button{min-height:50px;border-radius:13px;cursor:pointer;font-weight:800}.speak-button{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ink);background:#fff;border:1px solid #c8b98f}.speak-button>span:first-child{color:var(--coral);font-size:17px}.speak-button.listening{color:white;background:var(--coral);border-color:var(--coral);box-shadow:0 0 0 5px rgba(255,120,104,.15);animation:listenPulse 1.2s ease-in-out infinite}.check-recall-button{color:white;background:linear-gradient(100deg,#153e46,#236d5b);border:0}.speech-status{margin:9px 2px 0;color:var(--muted);font-size:10px}.recall-result{padding:17px;background:#fffaf0;border:1px solid #d7c59a;border-radius:20px;box-shadow:0 13px 28px rgba(61,63,50,.13)}.recall-result[hidden]{display:none}.recall-score{display:flex;align-items:center;gap:14px}.recall-score>span{display:grid;min-width:70px;height:70px;place-items:center;color:white;background:var(--teal);border-radius:50%;font-size:20px;font-weight:900}.recall-result.close .recall-score>span{background:#d99b2c}.recall-result.practice .recall-score>span{background:var(--coral)}.recall-score h3{margin:0;font-family:"Fraunces",Georgia,serif;font-size:25px}.recall-score p{margin:3px 0 0;color:var(--muted);font-size:11px}.recall-legend{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0 10px;color:#546865;font-size:9px;font-weight:800;text-transform:uppercase}.recall-legend span{display:flex;align-items:center;gap:5px}.recall-legend i{width:10px;height:10px;border-radius:50%;background:#58ba83}.recall-legend .close i{background:#e1a33d}.recall-legend .needs i{background:#ef7a6d}.word-review{display:flex;flex-wrap:wrap;gap:6px;padding:12px;background:#f1e8d4;border-radius:13px}.review-word{padding:6px 9px;color:#275f48;background:#c9edd5;border:1px solid #8dceaa;border-radius:9px;font-family:Georgia,serif;font-size:12px}.review-word.close{color:#765315;background:#ffe2a4;border-color:#e5b451}.review-word.needs{color:#813b38;background:#ffd4cd;border-color:#e98b7f}.review-word small{display:block;margin-top:2px;font-family:"DM Sans",system-ui,sans-serif;font-size:7px;font-weight:800}.recall-result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}.recall-result-actions button{min-height:43px;color:var(--ink);background:white;border:1px solid #cdbd96;font-size:10px}.recall-result-actions button:first-child{color:white;background:var(--ink);border-color:var(--ink)}
@keyframes trailGlow{50%{opacity:.35}}@keyframes listenPulse{50%{transform:scale(1.02)}}

@media(max-width:1180px){.v4-map-overlay{grid-template-columns:320px 1fr;gap:24px}.journey-route{grid-template-columns:repeat(4,1fr);gap:10px}.route-trail{display:none}.journey-stop{min-height:175px}.journey-stop:nth-of-type(even){transform:none}}
@media(max-width:900px) and (min-width:761px){.v4-map-overlay{grid-template-columns:285px 1fr}.journey-route{grid-template-columns:repeat(2,1fr)}.journey-stop{min-height:145px}.repetition-note{max-width:100%}.setup-panel{padding:20px}}
@media(max-width:760px){.v4-map-overlay{display:flex;gap:18px}.practice-journey{align-self:stretch;gap:12px}.journey-heading h2{font-size:27px}.journey-route{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.journey-stop,.journey-stop:nth-of-type(even){min-height:145px;padding:13px 9px;transform:none;border-radius:20px}.stop-icon{width:59px;height:59px;font-size:23px}.journey-stop strong{font-size:17px}.journey-stop small{font-size:8px}.repetition-note{align-items:flex-start}.quick-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.library-shell{padding:27px 16px 19px}.library-grid{grid-template-columns:1fr;max-height:63dvh;overflow:auto}.game-library-dialog{max-height:90dvh}.session-badge{grid-column:1/-1;margin-bottom:5px}.recall-orb strong{font-size:17px}.recall-actions{grid-template-columns:1fr}.recall-score>span{min-width:60px;height:60px}.recall-score h3{font-size:21px}.recall-result-actions{grid-template-columns:1fr}.final-recall{align-self:start}.recall-input-wrap textarea{min-height:150px}.back-label{display:none}}
@media(max-width:390px){.quick-settings{grid-template-columns:1fr 1fr}.quick-settings select{font-size:11px}.journey-stop{min-height:138px}.journey-stop small{display:none}.recall-orb{padding:10px}.recall-orb strong{font-size:15px}.word-review{gap:4px}.review-word{padding:5px 7px;font-size:11px}}

/* V5 · randomized mastery loop, hard-mode restraint, and readable final recall */
.auto-next-status{min-height:24px;display:grid;place-items:center;color:#356b61;font-size:12px;font-weight:900;letter-spacing:.06em;opacity:0;transform:translateY(5px);transition:.2s ease}.auto-next-status.show{opacity:1;transform:none}.next-line-button{display:none}
.hard-jewel .jewel-line{gap:10px;font-size:18px;letter-spacing:.02em}.jewel-line .missing{transition:.2s ease}.jewel-line .missing:not(.active){opacity:.58}.jewel-line .missing.active{background:rgba(255,199,90,.13);border-color:rgba(255,220,145,.84);box-shadow:0 0 0 5px rgba(255,199,90,.08),0 0 25px rgba(255,199,90,.18)}.jewel-line .initial-hint{min-width:32px;padding:7px 5px;color:#dce7ff;border-bottom:1px solid rgba(220,231,255,.35);font-weight:800;text-align:center}.jewel-line .restored-word{padding:6px 9px;color:#153a32;background:#b9ebc9;border-radius:9px;box-shadow:0 4px 11px rgba(0,0,0,.1)}

.final-choice-dialog{width:min(640px,calc(100vw - 28px));padding:0;color:var(--ink);background:transparent;border:0;border-radius:27px;box-shadow:0 30px 90px rgba(0,0,0,.42)}.final-choice-dialog::backdrop{background:rgba(4,24,31,.76);backdrop-filter:blur(7px)}.final-choice-shell{padding:34px;background:linear-gradient(155deg,#fffaf0,#efe0bc);border:1px solid rgba(255,255,255,.92);border-radius:27px;text-align:center}.choice-lotus{display:grid;width:76px;height:76px;margin:0 auto 16px;place-items:center;color:var(--night);background:radial-gradient(circle at 32% 25%,#fff,var(--gold) 65%);border-radius:50%;box-shadow:0 0 0 10px rgba(255,199,90,.14),0 18px 35px rgba(166,104,28,.22);font-size:31px}.final-choice-shell h2{margin:5px 0 10px;font-family:"Fraunces",Georgia,serif;font-size:clamp(28px,4vw,40px);line-height:1.08}.final-choice-shell>p:not(.kicker){max-width:490px;margin:0 auto;color:#536966;font-size:15px;line-height:1.55}.final-choice-actions{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.final-choice-actions button{min-height:54px;padding:10px 15px;color:var(--ink);background:white;border:1px solid #c9b98e;border-radius:14px;cursor:pointer;font-size:13px;font-weight:900}.final-choice-actions #take-final-button{color:white;background:linear-gradient(100deg,#153e46,#236d5b);border-color:transparent}.final-choice-actions #final-choice-map-button{grid-column:1/-1;min-height:42px;color:#5b6d69;background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px}

.final-mode .play-body{grid-template-columns:minmax(0,1fr)}.final-mode .mission-card{display:none}.final-mode .game-board{width:100%;max-width:1380px;min-height:0;margin:0 auto;padding:24px 30px 30px;overflow-x:hidden;overflow-y:auto}.final-mode .stage{height:auto;min-height:calc(100dvh - 225px);align-content:start;padding:18px 0 10px}.final-mode .board-progress{position:sticky;top:0}.final-recall{width:min(1120px,100%);margin:0 auto;gap:18px;align-self:start}.recall-orb{padding:16px 20px;border-radius:20px}.recall-orb>span{min-width:58px;height:58px;font-size:27px}.recall-orb small{font-size:11px}.recall-orb strong{font-size:clamp(22px,2.1vw,30px)}.recall-input-wrap{padding:20px;border-radius:22px}.recall-input-wrap textarea{min-height:165px;padding:19px;font-size:20px;line-height:1.65}.recall-actions{grid-template-columns:minmax(180px,.34fr) 1fr;gap:11px;margin-top:13px}.recall-actions button,.recall-result-actions button{min-height:55px;font-size:15px}.speech-status{margin:11px 4px 0;font-size:12px;line-height:1.45}.final-recall.has-result .recall-input-wrap{display:none}.recall-result{padding:25px;border-radius:23px}.recall-score{gap:20px}.recall-score>span{min-width:88px;height:88px;font-size:25px}.recall-score h3{font-size:34px}.recall-score p{margin-top:6px;font-size:15px;line-height:1.5}.recall-legend{gap:17px;margin:19px 0 13px;font-size:11px}.recall-legend i{width:12px;height:12px}.word-review{gap:9px;padding:17px;border-radius:15px}.review-word{padding:9px 12px;border-radius:10px;font-size:16px;line-height:1.25}.review-word small{margin-top:4px;font-size:10px}.recall-result-actions{gap:10px;margin-top:17px}.recall-result-actions button{min-height:52px;font-size:14px}.recall-result-actions.requires-redo{grid-template-columns:1.15fr 1fr}

@media(max-width:760px){.final-mode .play-body{padding:10px}.final-mode .game-board{min-height:calc(100dvh - 142px);padding:15px 12px 22px}.final-mode .stage{min-height:0;padding-top:8px}.final-recall{gap:12px}.recall-orb{padding:13px 14px}.recall-orb>span{min-width:50px;height:50px}.recall-orb small{font-size:9px}.recall-orb strong{font-size:19px}.recall-input-wrap{padding:12px}.recall-input-wrap textarea{min-height:190px;padding:14px;font-size:18px}.recall-actions{grid-template-columns:1fr}.speech-status{font-size:11px}.recall-result{padding:17px}.recall-score{align-items:flex-start;gap:12px}.recall-score>span{min-width:68px;height:68px;font-size:20px}.recall-score h3{font-size:25px}.recall-score p{font-size:13px}.review-word{font-size:14px}.recall-result-actions,.recall-result-actions.requires-redo{grid-template-columns:1fr}.final-choice-shell{padding:28px 18px 21px}.final-choice-actions{grid-template-columns:1fr}.final-choice-actions #final-choice-map-button{grid-column:1}.hard-jewel .jewel-line{font-size:16px}.jewel-line .missing{min-width:76px}}

/* V6 · immediate recovery, four-line Verse Catch, and meaning practice */
.stage.round-restarting>*{pointer-events:none;filter:saturate(.55);opacity:.68}.stage.round-restarting::after{content:"↻";position:absolute;z-index:20;left:50%;top:50%;display:grid;width:78px;height:78px;place-items:center;color:white;background:rgba(13,39,52,.92);border:4px solid var(--gold);border-radius:50%;box-shadow:0 16px 36px rgba(0,0,0,.28);font-size:38px;transform:translate(-50%,-50%);animation:restartTurn .8s ease-in-out infinite}
.catch-prompt{display:grid;gap:2px}.catch-prompt strong{font-size:12px}.catch-prompt span{font-size:9px;opacity:.82}.caught-row{flex-wrap:wrap}.speak-button.starting{color:var(--ink);background:#fff5d9;border-color:var(--gold);box-shadow:0 0 0 5px rgba(255,199,90,.16)}
.library-game.node-wordMeaning{--accent:#f1bf57}.library-game.node-lineMeaning{--accent:#72c7b0}
.meaning-lotus-game,.line-meaning-game{width:min(960px,100%);margin:auto;display:grid;gap:20px}.meaning-challenge,.line-meaning-scroll{position:relative;min-height:132px;padding:22px 28px;display:grid;place-items:center;align-content:center;gap:8px;color:white;background:linear-gradient(135deg,#214d56,#2e8a78);border:1px solid #8ce0c8;border-radius:28px;text-align:center;box-shadow:0 16px 36px rgba(35,102,93,.22);overflow:hidden}.meaning-challenge::before,.line-meaning-scroll::before{content:"🪷";position:absolute;right:25px;top:16px;color:rgba(255,255,255,.16);font-size:64px}.meaning-challenge small,.line-meaning-scroll small{font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.meaning-challenge strong,.line-meaning-scroll strong{position:relative;font-family:"Fraunces",Georgia,serif;font-size:clamp(25px,3vw,38px);line-height:1.15}.meaning-challenge em,.line-meaning-scroll em{color:#dff8f0;font-size:9px;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.meaning-lotus-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.meaning-lotus-option{position:relative;min-height:135px;padding:20px 15px 17px;display:grid;place-items:center;align-content:center;gap:9px;color:#523a32;background:radial-gradient(circle at 35% 20%,#fffaf0,#ffc2b0 72%);border:2px solid white;border-radius:52% 52% 42% 42%;box-shadow:0 8px 0 #d77983,0 17px 28px rgba(81,52,58,.17);cursor:pointer}.meaning-lotus-option>span{color:#a94c63;font-size:21px}.meaning-lotus-option strong{font-family:Georgia,serif;font-size:15px;line-height:1.35}.meaning-lotus-option:hover,.meaning-lotus-option:focus-visible{transform:translateY(-4px);outline:4px solid rgba(255,199,90,.45)}.meaning-lotus-option.selected{color:#1d5846;background:radial-gradient(circle at 35% 20%,#fff,#a9e0bc 74%);box-shadow:0 8px 0 #58a77c,0 17px 28px rgba(47,104,76,.18)}
.line-meaning-scroll{background:linear-gradient(135deg,#4e477e,#304a82);border-color:#aaa7df}.line-meaning-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.line-meaning-option{min-height:112px;padding:15px;display:flex;align-items:center;gap:15px;color:var(--ink);background:linear-gradient(145deg,#fffdf6,#eee2c3);border:2px solid white;border-radius:20px;box-shadow:0 7px 0 #cbbb91,0 15px 25px rgba(55,64,51,.14);cursor:pointer;text-align:left}.line-meaning-option>span{display:grid;min-width:42px;height:42px;place-items:center;color:white;background:var(--teal);border-radius:50%;font-weight:900}.line-meaning-option strong{font-family:Georgia,serif;font-size:15px;line-height:1.45}.line-meaning-option:hover,.line-meaning-option:focus-visible{transform:translateY(-4px);outline:4px solid rgba(55,199,179,.27)}.line-meaning-option.selected{background:linear-gradient(145deg,#e9ffef,#a8dfbb);box-shadow:0 7px 0 #5ea97d}.meaning-round-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;color:#60716e;font-size:10px;font-weight:800}.meaning-source{color:#315e58;text-decoration:underline;text-decoration-color:rgba(49,94,88,.35);text-underline-offset:3px}
@keyframes restartTurn{50%{transform:translate(-50%,-50%) rotate(160deg) scale(1.05)}}
@media(max-width:900px){.meaning-lotus-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.meaning-lotus-game,.line-meaning-game{gap:13px}.meaning-challenge,.line-meaning-scroll{min-height:112px;padding:17px}.meaning-challenge strong,.line-meaning-scroll strong{font-size:23px}.meaning-lotus-options,.line-meaning-options{grid-template-columns:1fr}.meaning-lotus-option{min-height:85px;border-radius:22px;display:flex;justify-content:center}.line-meaning-option{min-height:86px}.meaning-round-note{font-size:9px}.catch-prompt{left:11px;right:11px;top:11px}.word-cloud{min-width:96px}.stage.round-restarting::after{width:65px;height:65px;font-size:31px}}

/* V7 · light, calm, high-retention visual system */
:root{--night:#183b45;--night-2:#285966;--paper:#faf8f1;--cream:#f3ecd9;--ink:#183b45;--muted:#61767a;--gold:#f6b73c;--saffron:#ed9b2d;--coral:#ff786c;--lotus:#ffadc0;--teal:#21b7a8;--blue:#67b9e8;--violet:#8f83e6;--leaf:#86c76f;--glass:rgba(255,255,255,.78);--glass-line:rgba(24,59,69,.12);--shadow:0 22px 60px rgba(33,74,84,.14)}
html,body{background:var(--paper);color:var(--ink);font-family:"Nunito Sans","Noto Sans Devanagari","Noto Sans Bengali",system-ui,sans-serif}button,input,select,textarea{font-family:inherit}button{min-height:44px}.app-shell{min-height:680px}.loading-screen{color:var(--ink);background:radial-gradient(circle at 50% 35%,#fff,#e9f7f1 46%,#f8efdc)}.loading-lotus{color:var(--ink);background:#ffd36f;border-color:white}.loading-screen strong{font-size:14px}
[hidden]{display:none!important}
.game-topbar{height:78px;color:var(--ink);background:rgba(250,248,241,.9);border-bottom:1px solid rgba(24,59,69,.1);box-shadow:0 8px 30px rgba(33,74,84,.07)}.brand-button{color:var(--ink)}.brand-button small{color:var(--muted);font-size:9px}.brand-button strong{font-size:22px}.progress-copy{color:var(--muted)}.progress-copy b{color:#b16818}.lotus-meter i{background:rgba(24,59,69,.11)}.deck-button{color:var(--ink);background:#fff;border-color:rgba(24,59,69,.12);box-shadow:0 4px 0 #d9e6df}.deck-button small{color:var(--muted)}.round-button{color:var(--ink);background:#fff;border-color:rgba(24,59,69,.12);box-shadow:0 4px 0 #d9e6df}.round-button:hover,.round-button:focus-visible,.deck-button:hover,.deck-button:focus-visible{background:#fff;outline-color:var(--teal)}
.map-screen{background:linear-gradient(145deg,#f8f7ed 0%,#ebf8f1 48%,#e2f4f6 100%)}.world-wash{background:radial-gradient(circle at 82% 14%,rgba(246,183,60,.2),transparent 24%),radial-gradient(circle at 68% 78%,rgba(33,183,168,.13),transparent 25%),linear-gradient(90deg,rgba(255,255,255,.58),transparent 52%)}
.ambient-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none}.ambient-ring{position:absolute;border:1px solid rgba(33,183,168,.13);border-radius:50%;animation:ambientOrbit 18s linear infinite}.ring-one{width:480px;height:480px;right:-80px;top:-150px;box-shadow:0 0 0 46px rgba(255,255,255,.24),0 0 0 92px rgba(255,255,255,.15)}.ring-two{width:310px;height:310px;right:18%;bottom:-170px;border-color:rgba(246,183,60,.18);animation-direction:reverse}.ambient-token{position:absolute;display:grid;width:72px;height:72px;place-items:center;color:rgba(24,59,69,.22);background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.85);border-radius:24px;font-family:"Noto Sans Devanagari","Noto Sans Bengali",sans-serif;font-size:31px;box-shadow:0 18px 50px rgba(33,74,84,.08);animation:ambientFloat 8s ease-in-out infinite}.token-one{right:8%;top:18%}.token-two{right:30%;top:56%;animation-delay:-2.5s}.token-three{right:43%;top:12%;animation-delay:-5s}.ambient-petal{position:absolute;width:18px;height:31px;background:rgba(255,120,108,.28);border-radius:80% 20% 80% 20%;animation:petalDrift 11s ease-in-out infinite}.petal-one{right:23%;top:24%}.petal-two{right:6%;bottom:18%;background:rgba(134,199,111,.34);animation-delay:-4s}.petal-three{right:47%;bottom:13%;background:rgba(246,183,60,.33);animation-delay:-7s}
.map-overlay{height:calc(100% - 48px);z-index:2}.continue-panel{background:rgba(255,255,255,.9);border-color:#fff;border-radius:28px;box-shadow:0 22px 65px rgba(47,91,94,.14)}.continue-panel::before{border-color:rgba(246,183,60,.24);box-shadow:0 0 0 30px rgba(246,183,60,.055),0 0 0 60px rgba(246,183,60,.03)}.current-verse-row small{color:var(--muted);font-size:10px}.current-verse-row h1{font-size:clamp(32px,3vw,44px)}.continue-panel>p:not(.kicker){color:#49656b;font-size:18px}.quick-settings label>span{font-size:9px}.quick-settings select{height:48px;background:#fbfaf5;border-color:#d6e3dd;border-radius:14px;font-size:13px}.continue-button{min-height:58px;background:linear-gradient(100deg,#236f72,#238d7b);border-radius:16px;box-shadow:0 6px 0 #15555b,0 13px 25px rgba(25,99,97,.2);font-size:15px}.continue-button:active{transform:translateY(4px);box-shadow:0 2px 0 #15555b}.text-action{min-height:44px;font-size:12px}
.map-heading{color:var(--ink);background:rgba(255,255,255,.7);border-color:#fff;box-shadow:0 18px 50px rgba(47,91,94,.1)}.map-heading>p:last-child{color:var(--muted)}.journey-stop{color:var(--ink);background:rgba(255,255,255,.76);border-color:#fff;box-shadow:0 18px 50px rgba(47,91,94,.11)}.journey-stop::before{border-color:color-mix(in srgb,var(--stop),transparent 68%)}.journey-stop small{color:var(--muted);font-size:10px}.stop-number{color:white;background:var(--ink)}.route-trail{background:repeating-linear-gradient(90deg,rgba(24,59,69,.27) 0 7px,transparent 7px 13px);filter:none}.repetition-note{color:var(--ink);background:rgba(255,255,255,.72);border-color:#fff;box-shadow:0 14px 40px rgba(47,91,94,.09)}.repetition-note strong{color:#ad6817}.map-footer{height:48px;color:var(--muted);background:rgba(255,255,255,.68);border-top-color:rgba(24,59,69,.08)}
.play-screen{background:linear-gradient(145deg,#edf8f3,#edf4f6)}.play-backdrop{background:radial-gradient(circle at 85% 12%,rgba(246,183,60,.16),transparent 28%),linear-gradient(145deg,#edf8f3,#edf4f6);filter:none}.play-topbar{color:var(--ink);border-bottom-color:rgba(24,59,69,.1)}.back-button{color:var(--ink);background:#fff;border-color:rgba(24,59,69,.13);box-shadow:0 4px 0 #d8e4de}.play-title small{color:#a26114}.play-icon,.mission-icon{color:var(--ink)}.app-icon-svg{width:55%;height:55%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mission-icon .app-icon-svg{width:42%;height:42%}.mission-card{background:rgba(255,255,255,.9);border-color:#fff;box-shadow:0 20px 50px rgba(47,91,94,.12)}.game-board{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,243,230,.96));box-shadow:0 22px 60px rgba(47,91,94,.13)}.board-sky{background:linear-gradient(180deg,#ddf5f1,#f4f4dc 72%,transparent)}
.library-game>span:first-child .app-icon-svg{width:25px;height:25px}.library-game{min-height:92px}.library-game strong{font-size:18px}.library-game small{font-size:11px}.meaning-path small{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-weight:800}.dialogue-art{background:linear-gradient(145deg,#dff5f3,#fbe8b7)}.dialogue-art::before{content:"❝";position:absolute;inset:25px auto auto 28px;color:rgba(24,59,69,.15);font-family:Georgia,serif;font-size:110px}
.read-mode .play-body{grid-template-columns:minmax(0,1fr)}.read-mode .mission-card{display:none}.read-mode .game-board{width:min(1180px,100%);margin:auto;overflow:auto}.read-mode .stage{height:auto;min-height:calc(100dvh - 230px);align-content:start}.read-first-card{width:min(940px,100%);margin:0 auto;padding:clamp(20px,3vw,38px);display:grid;grid-template-columns:1.18fr .82fr;gap:22px;color:var(--ink);background:rgba(255,255,255,.76);border:1px solid #fff;border-radius:28px;box-shadow:0 18px 45px rgba(47,91,94,.1)}.read-first-card header{grid-column:1/-1;display:flex;align-items:center;gap:15px}.read-book-mark{display:grid;min-width:58px;height:58px;place-items:center;color:#fff;background:linear-gradient(145deg,var(--coral),#e65361);border-radius:18px}.read-book-mark .app-icon-svg{width:30px;height:30px}.read-first-card header small{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.read-first-card h2{margin:2px 0 0;font-family:"Fraunces",Georgia,serif;font-size:34px}.read-intro{grid-column:1/-1;padding:12px 15px;color:#2b6666;background:#e2f6ef;border-radius:14px;font-weight:800}.read-verse,.read-meaning{padding:22px;background:#fffdf7;border:1px solid #e4dcc6;border-radius:20px}.read-verse small,.read-meaning small{display:block;margin-bottom:13px;color:#a46117;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.read-verse p{margin:0;font-family:"Fraunces",Georgia,serif;font-size:clamp(20px,2.2vw,29px);line-height:1.55}.read-meaning p{margin:0;color:#48656a;font-size:18px;line-height:1.65}.read-first-card footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:15px}.read-first-card footer a{color:#356d6c;font-size:12px;font-weight:800}.read-first-card footer button{min-height:54px;padding:0 20px;color:white;background:linear-gradient(100deg,#236f72,#238d7b);border:0;border-radius:15px;box-shadow:0 5px 0 #15555b;cursor:pointer;font-weight:900}.read-first-card footer button:active{transform:translateY(3px);box-shadow:0 2px 0 #15555b}
.success-countdown{margin:18px auto 0;padding:10px 12px;display:flex;align-items:center;gap:10px;color:var(--ink);background:rgba(255,255,255,.55);border:1px solid rgba(24,59,69,.1);border-radius:14px;text-align:left}.success-countdown>span{display:grid;min-width:36px;height:36px;place-items:center;color:white;background:var(--coral);border-radius:50%;font-weight:900}.success-countdown>div{flex:1}.success-countdown small{font-size:10px;font-weight:800}.success-countdown i{display:block;height:5px;margin-top:5px;background:rgba(24,59,69,.1);border-radius:9px;overflow:hidden}.success-countdown b{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--coral),var(--gold));transform-origin:left}.success-actions{margin-top:14px}.success-actions button{min-height:52px}.success-actions button:first-child{background:linear-gradient(100deg,#236f72,#238d7b);box-shadow:0 4px 0 #15555b}
@keyframes ambientFloat{50%{transform:translateY(-14px) rotate(3deg)}}@keyframes ambientOrbit{to{transform:rotate(360deg)}}@keyframes petalDrift{50%{transform:translate(18px,-25px) rotate(60deg)}}@keyframes successCountdown{to{transform:scaleX(0)}}
@media(max-width:900px){.read-first-card{grid-template-columns:1fr}.read-verse,.read-meaning{grid-column:1}.ambient-token.token-three{display:none}}
@media(max-width:760px){body{background:var(--paper)}.game-topbar{background:rgba(250,248,241,.96)}.game-topbar .deck-button,.game-topbar .round-button{width:44px;height:44px}.map-screen{background:linear-gradient(155deg,#f8f7ed,#e6f7f1)}.world-wash{position:fixed;background:radial-gradient(circle at 80% 10%,rgba(246,183,60,.18),transparent 25%)}.map-overlay{padding-bottom:75px}.continue-panel{padding:20px}.current-verse-row h1{font-size:31px}.practice-journey{padding-bottom:15px}.journey-stop,.journey-stop:nth-of-type(even){color:var(--ink);background:rgba(255,255,255,.78)}.journey-stop small{color:var(--muted)}.map-footer{color:var(--muted);background:rgba(255,255,255,.86)}.play-screen{background:#edf7f3}.play-backdrop{background:linear-gradient(145deg,#edf8f3,#edf4f6)}.play-topbar{background:rgba(250,248,241,.95)}.read-mode .game-board{min-height:calc(100dvh - 142px);padding:15px 12px 24px}.read-mode .stage{min-height:0;padding-top:8px}.read-first-card{padding:17px;gap:13px;border-radius:21px}.read-first-card h2{font-size:27px}.read-intro{font-size:13px}.read-verse,.read-meaning{padding:17px}.read-verse p{font-size:20px}.read-meaning p{font-size:16px}.read-first-card footer{align-items:stretch;flex-direction:column}.read-first-card footer button{width:100%}.ambient-token{width:54px;height:54px;border-radius:18px;font-size:24px;opacity:.7}.token-two{right:7%;top:57%}.token-one{right:4%;top:8%}.success-dialog{max-height:92dvh;overflow:auto}.success-countdown{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.ambient-scene *{animation:none!important}.success-countdown b{animation:none!important}}
