@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-400.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-500.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-600.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-700.ttf)format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/outfit-400.ttf)format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/outfit-500.ttf)format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/outfit-600.ttf)format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/outfit-700.ttf)format("truetype")}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/outfit-800.ttf)format("truetype")}:root{color:#304e46;font-synthesis:none;--paper:#f8f0db;--ink:#304e46;--yellow:#f2cc60;--vvh:100dvh;background:#74beb8;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,textarea:focus-visible{outline-offset:4px;outline:3px solid #fff9d6}button{border:0}button svg{width:19px;height:19px;display:block}button[hidden],[hidden]{display:none!important}#app{height:var(--vvh);isolation:isolate;position:relative}#world{touch-action:none;outline:none;width:100%;height:100%;display:block}#ui{pointer-events:none;position:absolute;inset:0}#ui>*{pointer-events:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar{left:34px;right:34px;top:max(26px, env(safe-area-inset-top));z-index:10;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;pointer-events:none!important}.brand{pointer-events:auto;color:#304e46;background:#fff9e9;border:1px solid #9aac91;border-radius:14px;align-items:center;gap:12px;padding:10px 14px 10px 10px;display:flex;box-shadow:0 3px #345b4424}.brand-mark{background:#f5e9c9;border:1.4px solid #426c5f;border-radius:50%;place-items:center;width:39px;height:39px;font-size:23px;font-weight:700;display:grid;transform:rotate(-13deg)}.brand-title{letter-spacing:-.4px;font:700 18px Outfit,sans-serif}.eyebrow{letter-spacing:1.5px;text-transform:uppercase;font-size:11px;font-weight:700;line-height:1.6}.brand-sub{color:#506558;margin-top:2px;font-size:12px}.top-actions{pointer-events:auto;align-items:center;gap:8px;display:flex}.icon-button{background:#f8f0dce8;border:1px solid #426656;border-radius:50%;place-items:center;width:39px;height:39px;font-size:26px;line-height:1;display:grid;box-shadow:0 2px #446b5640}.icon-button:hover{background:#fff7df;transform:translateY(-1px)}.pill{background:#f8f0dcf0;border:1px solid #486856;border-radius:30px;align-items:center;gap:10px;padding:10px 16px;font-size:13px;font-weight:600;display:flex;box-shadow:0 2px #446b5628}.pill strong{background:#dde3c4;border-radius:12px;padding:3px 7px;font-size:12px;font-weight:700}.intro{position:absolute;inset:0;pointer-events:none!important}.intro-note{letter-spacing:3px;text-transform:uppercase;font-size:11px;font-weight:700;position:absolute;top:23%;left:7.2%}.intro-lower{pointer-events:auto;width:min(390px,37vw);position:absolute;bottom:clamp(66px,8vh,96px);left:7.2%}.intro-lower h2{letter-spacing:-.65px;color:#294f47;margin:0 0 10px;font:500 clamp(22px,2vw,28px)/1.15 Outfit,sans-serif}.intro-lower .intro-story{letter-spacing:.05px;color:#365e54;margin:0 0 23px;font-size:14px;line-height:1.65}.intro-actions{grid-template-columns:minmax(100px,1fr) auto;align-items:end;gap:12px;display:grid}.intro-actions .character-name{letter-spacing:.3px;color:#365e54;flex-direction:column;align-items:stretch;gap:7px;margin:0;font-size:11px;font-weight:500;display:flex}.intro-actions .character-name input{letter-spacing:0;background:#fff8e6eb;border:1px solid #466c5e66;border-radius:9px;width:100%;height:47px;padding:10px 13px;font-size:14px;font-weight:400;box-shadow:0 2px #446b5618}.intro-actions .primary{white-space:nowrap;border-radius:9px;gap:22px;min-height:47px;padding:12px 19px;font-size:14px;box-shadow:0 3px #776e3e}.intro-actions .primary span{font-size:18px;line-height:1}.primary{background:var(--yellow);border:1.3px solid var(--ink);border-radius:5px;align-items:center;gap:28px;padding:16px 23px;font:600 15px DM Sans,sans-serif;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 4px #776e3e}.primary:hover{transform:translateY(-2px);box-shadow:0 6px #776e3e}.primary:active{transform:translateY(3px);box-shadow:0 1px #776e3e}.intro-controls{opacity:.7;letter-spacing:.25px;margin:16px 0 0;font-size:10px;line-height:1.4}.intro-footer{letter-spacing:.5px;opacity:.85;justify-content:space-between;font-size:11px;display:flex;position:absolute;bottom:25px;left:34px;right:34px}.intro-chip{border:1px solid #436e5d70;border-radius:20px;padding:5px 10px}.location-card{color:#304e46;background:#fff9e9;border:1px solid #9aac91;border-radius:24px;align-items:center;gap:9px;max-width:calc(100vw - 36px);padding:8px 12px;font-size:12px;display:flex;position:absolute;top:100px;left:34px;box-shadow:0 2px #345b441a}.location-card span:first-child{font-size:17px}.roster{max-height:calc(var(--vvh,100vh) - 110px);background:var(--paper);border:1.2px solid var(--ink);z-index:12;border-radius:9px;width:min(370px,100vw - 68px);padding:20px;position:absolute;top:85px;right:34px;overflow-y:auto;box-shadow:4px 5px #345b4424}.roster h2{margin:0 0 5px;font:600 19px Outfit,sans-serif}.roster-summary{color:#647b68;margin:0 0 17px;font-size:12px;line-height:1.5}.neighbour-list{flex-direction:column;gap:5px;display:flex}.neighbour-row{text-align:left;background:0 0;border-top:1px solid #d3d8be;align-items:center;gap:10px;width:100%;padding:9px 0;display:flex}.check{border:1.2px solid #8a9b7e;border-radius:50%;flex-shrink:0;place-items:center;width:23px;height:23px;font-size:13px;display:grid}.met .check{color:#fff3cf;background:#658b66;border-color:#658b66}.neighbour-row strong{font-size:14px;font-weight:600;display:block}.neighbour-row small{color:#758272;font-size:11px}.neighbour-row .go{opacity:.55;margin-left:auto;font-size:18px}.roster-hint{color:#6d7c65;margin:12px 0 0;font-size:11px;line-height:1.5}.places-guide{border-top:1px solid #bdc9ac;margin-top:18px;padding-top:15px}.places-guide summary{cursor:pointer;font-size:14px;font-weight:600}.places-guide>p{color:#647b68;font-size:12px}.place-row{text-align:left;background:0 0;border-top:1px solid #d3d8be;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:11px 0;display:flex}.place-row strong{font-size:13px;font-weight:600;display:block}.place-row small{color:#647b68;margin-top:3px;font-size:11px;line-height:1.45;display:block}.place-search{width:100%;color:var(--ink);font:inherit;background:#fff9e8;border:1px solid #a8b799;border-radius:5px;margin:0 0 12px;padding:9px 11px;font-size:12px}.globe-turns{pointer-events:auto;justify-content:center;gap:10px;display:flex}.map-caption p{margin:0 0 12px}.controls{left:34px;bottom:max(27px, env(safe-area-inset-bottom));align-items:center;gap:16px;font-size:12px;display:flex;position:absolute}.key-group{align-items:center;gap:5px;display:flex}kbd{background:#f4ebd9c9;border:1px solid #4d755e;border-radius:4px;place-items:center;min-width:23px;height:23px;font:11px DM Sans,sans-serif;display:inline-grid;box-shadow:0 2px #52765c30}.talk-prompt{left:50%;bottom:max(70px, calc(env(safe-area-inset-bottom) + 30px));white-space:nowrap;background:#f8f0db;border:1.3px solid #395a46;border-radius:8px;align-items:center;gap:13px;padding:13px 18px;font-size:14px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 4px #42675240}.talk-prompt kbd{background:var(--yellow);width:28px;height:28px}.talk-prompt strong{font-weight:600}.toast{background:var(--paper);z-index:25;text-align:center;border:1px solid #45694f;border-radius:7px;max-width:calc(100vw - 40px);padding:11px 18px;font-size:13px;position:absolute;top:92px;left:50%;transform:translate(-50%);box-shadow:0 3px #466f5026}.chat{right:30px;bottom:max(28px, env(safe-area-inset-bottom));width:min(560px,100vw - 40px);height:min(860px, calc(var(--vvh) - 100px));background:var(--paper);border:1.3px solid var(--ink);z-index:20;max-height:calc(var(--vvh) - 100px);border-radius:10px;flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:4px 5px #3c694737}.chat-heading{background:#eee6ca;border-bottom:1px solid #d8d8bd;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 18px;display:flex}.chat-heading h2{letter-spacing:-.4px;margin:2px 0 0;font:600 24px Outfit,sans-serif}.chat-heading .eyebrow{font-size:10px}.chat-heading .icon-button{width:29px;height:29px;box-shadow:none;background:0 0;border-color:#92a085}.conversation{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b5bca3 transparent;flex:1 1 0;min-height:0;max-height:none;padding:18px 20px 0;overflow-y:auto}.message{max-width:94%;margin-bottom:17px}.message.user{background:#e5e8ca;border:1px solid #d4dcb9;border-radius:8px 8px 2px;width:fit-content;margin-left:auto;padding:10px 12px}.message-label{letter-spacing:1px;text-transform:uppercase;color:#7a8269;font-size:10px;font-weight:700}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0;font-size:14px;line-height:1.6}.message .streaming:after{content:"▍";color:#6f8963;animation:1s infinite blink}.chat-error{background:#f4e4ba;border:1px solid #d7b779;border-radius:5px;margin:2px 20px 12px;padding:9px 11px;font-size:12px;line-height:1.5}.chat form{flex-shrink:0;padding:0 17px}.compose{background:#fffaf0;border:1px solid #75886d;border-radius:6px;align-items:center;gap:9px;padding:9px 9px 9px 12px;display:flex}.compose textarea{resize:none;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;max-height:85px;font-size:14px;line-height:1.5}.compose textarea::placeholder{color:#909984}.send-button{background:var(--yellow);border:1px solid var(--ink);border-radius:5px;width:36px;height:34px;font-size:24px}.chat-foot{color:#7b846e;justify-content:space-between;align-items:center;gap:12px;margin:9px 0;font-size:10px;display:flex}.compose-help{color:#274f42;text-align:center;background:#dae8cd;border:1px solid #92ad89;border-radius:6px;width:100%;margin-top:7px;padding:8px 12px;font-size:12px;font-weight:600;display:block}.compose-help:hover:not(:disabled){background:#cbdcbb}.compose-help:focus-visible{outline-offset:2px;outline:2px solid #38674d}.compose-help:disabled{color:#72806c;cursor:default;background:#e8ecdf;border-color:#c8d0bb}.compact-viewport .compose-help{margin-top:5px;padding:6px 10px;font-size:11px}.chat-foot button{color:#416b51;white-space:nowrap;background:0 0;padding:0;font-size:11px;text-decoration:underline}.joy{touch-action:none;background:#f8efd13b;border:1px solid #45694f88;border-radius:50%;width:104px;height:104px;display:none;position:absolute;bottom:28px;left:25px}.joy-knob{pointer-events:none;background:#f5e9c9b0;border:1px solid #547655;border-radius:50%;width:43px;height:43px;position:absolute;top:30px;left:30px}.settings{border:1.3px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:10px;width:min(400px,100vw - 30px);padding:25px;box-shadow:5px 6px #3c5f4540}.settings::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#274b4345}.settings h2{margin:0 0 18px;font:600 26px Outfit,sans-serif}.settings p{color:#6a7f68;font-size:13px;line-height:1.6}.setting-row{justify-content:space-between;align-items:center;margin:18px 0;font-size:14px;display:flex}.setting-row select{font:inherit;color:inherit;background:#fffae9;border:1px solid #809076;border-radius:4px;padding:6px}.settings-actions{justify-content:space-between;gap:15px;margin-top:25px;display:flex}.text-button{background:0 0;padding:8px 0;font-size:13px;text-decoration:underline}.subtle-button{background:#e4e5c6;border:1px solid #78906e;border-radius:5px;padding:9px 18px;font-size:13px}.reset-warning{background:#eedfbb;border:1px solid #c7ad7a;border-radius:5px;padding:14px}.map-caption{background:var(--paper);border:1px solid #45694f;border-radius:6px;padding:12px 19px;font-size:13px;position:absolute;bottom:78px;left:50%;transform:translate(-50%)}.fatal{background:var(--paper);border:1px solid var(--ink);border-radius:10px;padding:32px;font-size:17px;line-height:1.6;position:absolute;inset:20%}.loading-label{font-size:13px;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}@keyframes blink{50%{opacity:0}}@media (max-width:700px){.topbar{left:17px;right:17px;top:max(17px, env(safe-area-inset-top))}.brand-title{font-size:16px}.brand-mark{width:33px;height:33px;font-size:19px}.brand-sub{font-size:10px}.icon-button{width:35px;height:35px}.pill{padding:8px 10px;font-size:12px}.pill .pill-label{display:none}.top-actions{gap:6px}.intro-note{white-space:nowrap;letter-spacing:2px;font-size:10px;top:12%;left:50%;transform:translate(-50%)}.intro-lower{text-align:left;background:#f8f0dbea;border:1px solid #52715d45;border-radius:17px;width:auto;max-width:390px;margin:0 auto;padding:19px 20px 16px;bottom:75px;left:18px;right:18px;box-shadow:0 5px 20px #355c4214}.intro-lower h2{font-size:23px}.intro-lower .intro-story{margin-bottom:18px;font-size:12px}.intro-actions{grid-template-columns:minmax(85px,1fr) auto;gap:9px}.intro-actions .primary{gap:15px;padding:12px 14px;font-size:13px}.intro-controls{margin:14px 0 0;font-size:10px}.intro-footer{align-items:flex-end;gap:20px;font-size:9px;bottom:21px;left:18px;right:18px}.intro-footer>span:first-child{max-width:160px}.location-card{font-size:11px;top:75px;left:18px}.controls{font-size:10px;bottom:15px;left:17px}.desktop-controls{display:none}.joy{display:block}.talk-prompt{white-space:normal;gap:8px;max-width:calc(100vw - 155px);padding:11px 13px;font-size:12px;bottom:45px;left:auto;right:20px;transform:none}.talk-prompt kbd{display:none}.roster{width:min(370px,100vw - 34px);top:65px;right:17px}.chat{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));width:auto;height:calc(var(--vvh) - 84px);max-height:calc(var(--vvh) - 84px)}.chat-heading{padding:12px 16px 10px}.chat-heading h2{font-size:22px}.conversation{min-height:0;max-height:none;padding:14px 16px 0}.message p{font-size:14px}.compose textarea{font-size:16px}.chat-error{margin:0 15px 10px;font-size:11px}.chat-foot span{max-width:58%}.toast{min-width:220px;font-size:12px;top:109px}.fatal{inset:15% 8%}.chatting .joy,.chatting .controls{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (max-width:700px){.playing .brand-mark,.playing .brand-sub{display:none}.playing .brand-title{font-size:15px}.playing .brand{padding:8px 10px}.playing .top-actions{gap:5px}.playing .pill{padding:8px}.playing .pill strong{padding:3px 5px}}.compact-viewport .chat{height:calc(var(--vvh) - 24px);max-height:calc(var(--vvh) - 24px);bottom:12px}.compact-viewport .chat-heading{flex-shrink:0;padding:8px 14px}.compact-viewport .chat-heading h2{font-size:18px}.compact-viewport .chat-heading .eyebrow{font-size:9px}.compact-viewport .conversation{flex:auto;min-height:32px;max-height:none}.compact-viewport .chat form{flex-shrink:0}.compact-viewport .chat-error{flex-shrink:0;max-height:42px;margin-bottom:6px;overflow:auto}.compact-viewport .chat-foot{margin:6px 0}.portrait-wrap{flex:0 0 44px;width:44px;height:48px;position:relative}.neighbour-portrait{object-fit:contain;background:#e6dec3;border-radius:10px;width:44px;height:48px}.portrait-wrap .check{background:#f5efd9;width:15px;height:15px;font-size:10px;position:absolute;bottom:-1px;right:-3px}.met .portrait-wrap .check{background:#658b66}.chat-portrait{object-fit:contain;background:#ddd6bc;border-radius:13px;flex:0 0 40px;width:40px;height:44px;margin-right:12px}.chat .conversation{flex:1 1 0;max-height:none}.chat .learning-aids{background:#eed;max-height:none;padding:7px 17px;position:relative;overflow:visible}.chat .aid-heading{min-height:28px}.chat .aid-heading button{padding:5px 9px;font-size:11px}.aid-drawer{z-index:5;overscroll-behavior:contain;background:#fffbed;border:1px solid #b6bea0;border-radius:10px;max-height:min(360px,45dvh);padding:13px;position:absolute;bottom:calc(100% + 7px);left:12px;right:12px;overflow-y:auto;box-shadow:0 8px 30px #304e462b}.aid-drawer-heading{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.aid-drawer-heading button{padding:0 7px;font-size:18px}.chat .conversation-goal{padding:9px 17px 27px;position:relative;overflow:visible}.chat .goal-heading{display:flex}.chat .goal-heading select{letter-spacing:0;flex:1;width:auto;min-width:0;margin:0;padding:0;font-size:14px}.chat .goal-count{font-size:10px}.chat .conversation-goal .goal-next{margin:5px 0 0;font-size:12px;line-height:1.4}.chat .conversation-goal details{z-index:6;max-height:min(320px,40dvh);position:absolute;top:calc(100% - 21px);left:17px;right:17px;overflow:auto}.chat .conversation-goal details[open]{background:#fffbed;border:1px solid #c7c7a6;border-radius:8px;padding:8px 12px 12px;top:calc(100% - 26px);left:10px;right:10px;box-shadow:0 8px 24px #304e4620}@media (max-width:700px){.chat .chat-heading{padding:9px 15px}.chat .conversation-goal{padding:8px 15px 26px}.chat .goal-heading select{font-size:13px}}.compact-viewport .chat .chat-heading{padding:6px 14px}.compact-viewport .chat .chat-portrait{flex-basis:28px;width:28px;height:31px}.compact-viewport .chat .conversation-goal{padding:6px 14px 24px}.compact-viewport .chat .goal-heading>span{display:none}.compact-viewport .chat .goal-heading select{font-size:12px}.compact-viewport .chat .conversation-goal .goal-next{margin-top:3px;font-size:11px}.compact-viewport .chat .compose{padding:5px 8px}.compact-viewport .chat .compose textarea{height:31px}.compact-viewport .chat .learning-aids{padding:4px 14px}.compact-viewport .chat .aid-drawer{max-height:42dvh}.chat-title{flex:1;min-width:0}.chat-heading h2{font-size:23px}@media (max-width:700px),(max-height:650px){.chat-portrait{flex-basis:36px;width:36px;height:40px;margin-right:10px}}.character-name{justify-content:center;align-items:center;gap:10px;margin:0 0 14px;font-size:13px;display:flex}.character-name input{color:#354c46;width:120px;font:inherit;background:#fff9e9;border:1px solid #c4cfb6;border-radius:10px;padding:8px 10px}#learning-journal{border-bottom:1px solid #d4d5bf;margin-bottom:20px;padding-bottom:20px}#learning-journal h3{margin:20px 0 8px;font-size:14px}#learning-journal p{font-size:12px;line-height:1.6}.episode{border-bottom:1px solid #dedecb;padding:10px 0}.episode summary,.practice-records summary{cursor:pointer;font-size:13px;font-weight:600}.episode small,.legacy-note{color:#68786c;font-size:11px}.episode-outcome{color:#376f5b}.practice-card{background:#fffbef;border:1px solid #d4d8c4;border-radius:10px;margin-top:14px;padding:13px 11px}.practice-card h4{margin:0;font-size:15px;font-weight:600;line-height:1.4}#learning-journal .practice-meaning{color:#4b665a;margin:4px 0 8px}.practice-evidence{color:#526b5d;font-size:10px;line-height:1.6;display:block}.word-mapping-label{letter-spacing:.7px;color:#6a7864;margin-top:14px;font-size:8px;font-weight:700;display:block}.word-mapping{flex-wrap:wrap;gap:6px;margin:7px 0 0;display:flex}.word-pair{overflow-wrap:anywhere;background:#edf0e1;border-radius:6px;flex:58px;min-width:0;padding:7px 8px}.word-pair dt{font-size:12px;font-weight:600}.word-pair dd{color:#50675a;margin:3px 0 0;font-size:11px;line-height:1.4}#learning-journal .practice-note{color:#63705f;border-left:2px solid #dec777;margin:10px 0 0;padding-left:8px;font-size:11px}.completion-notice{left:34px;bottom:max(86px, calc(env(safe-area-inset-bottom) + 74px));z-index:24;background:#fff9e9;border:1px solid #66806a;border-radius:14px;grid-template-columns:48px minmax(0,1fr);gap:0 13px;width:min(360px,100vw - 40px);padding:20px 28px 16px 16px;animation:.45s cubic-bezier(.2,.75,.25,1) both completion-enter;display:grid;position:absolute;box-shadow:0 5px #35574329,0 14px 40px #264c4024}.completion-notice:before{content:"";background:#e7bb57;border-radius:0 0 4px 4px;width:48px;height:4px;position:absolute;top:-1px;left:24px}.completion-seal{align-self:start;margin-top:1px}.completion-seal svg{width:48px;height:48px;display:block;overflow:visible}.completion-ring{fill:#e6edcd;stroke:#799568;stroke-width:1.5px}.completion-tick{stroke:#386651;stroke-width:3.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:0;animation:.45s .2s both completion-draw}.completion-spark{stroke:#b88d35;stroke-width:2px;stroke-linecap:round;transform-origin:50%;animation:.65s .1s both completion-spark}.completion-label{color:#56734e;letter-spacing:1.5px;text-transform:uppercase;font-size:9px;font-weight:700}.completion-message h2{letter-spacing:-.3px;margin:5px 0 6px;font:600 21px/1.15 Outfit,sans-serif}.completion-message p{color:#5b6e5b;margin:0;font-size:12px;line-height:1.55}.completion-actions{flex-wrap:wrap;grid-column:2;align-items:center;gap:8px 12px;margin-top:13px;display:flex}.completion-view{text-underline-offset:3px;background:0 0;padding:0;font-size:12px;font-weight:700}.completion-view:hover{text-decoration:underline}.completion-count{color:#637560;font-size:9px}.completion-dismiss{color:#74836c;background:0 0;border-radius:50%;width:28px;height:28px;font-size:20px;position:absolute;top:5px;right:5px}.completion-dismiss:hover{background:#e9ebd9}.completion-notice button:focus-visible,.journal-highlight:focus-visible,.journal-highlight summary:focus-visible{outline-offset:3px;outline:2px solid #3d6c55}.completion-notice[data-kind=finale]{background:#fff5d6;border-color:#a8863f}.journal-unread{animation:.8s 2 journal-pulse;position:relative}.journal-unread:after{content:"";background:#f1cc60;border:2px solid #355f4c;border-radius:50%;width:10px;height:10px;position:absolute;top:-3px;right:-3px}.journal-highlight{scroll-margin:12px;animation:2s ease-out journal-highlight}@keyframes completion-enter{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}@keyframes completion-draw{0%{stroke-dashoffset:40px}to{stroke-dashoffset:0}}@keyframes completion-spark{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}@keyframes journal-pulse{50%{box-shadow:0 0 0 5px #f2cc6060}}@keyframes journal-highlight{0%{background:#f4dda0}to{background:0 0}}@media (max-width:700px){.completion-notice{grid-template-columns:36px minmax(0,1fr);gap:0 9px;width:auto;padding:13px 28px 12px 12px;inset:74px 12px auto}.completion-seal svg{width:36px;height:36px}.completion-message h2{margin:3px 0 5px;font-size:18px}.completion-message p{font-size:11px}.completion-actions{margin-top:9px}}@media (max-height:520px){.completion-notice{top:66px;bottom:auto}.completion-message p{display:none}.completion-actions{margin-top:5px}}.completion-notice.has-illustration{width:min(480px,100vw - 28px);max-height:calc(var(--vvh) - 100px);overscroll-behavior:contain;border-color:#b5a16c;border-radius:18px;padding:18px;inset:50% auto auto 50%;overflow-y:auto;translate:-50% -50%;box-shadow:0 7px #35574320,0 24px 90px #183e4766}.completion-art{grid-column:1/-1;margin:12px 0 18px}.completion-art .story-illustration{object-fit:contain;border-radius:10px;width:100%;max-height:38dvh;margin:0}.completion-activity{color:#7b785a;margin:0 0 8px;font-size:10px;display:block}.has-illustration .completion-message p{display:block}.has-illustration .completion-actions{grid-column:1/-1;margin-top:18px}.has-illustration .completion-dismiss{background:#fff9e9;width:32px;height:32px;top:4px;right:4px}.completion-next{background:#f1d781;border:1px solid #bea75c;border-radius:8px;padding:9px 14px;font-size:12px;font-weight:600}.has-illustration .completion-count{margin-left:auto}@media (max-width:700px){.completion-notice.has-illustration{max-height:calc(var(--vvh) - 90px);padding:15px}.completion-art{margin:12px 0 14px}.has-illustration .completion-message h2{font-size:21px}.has-illustration .completion-count{margin-left:0}}@media (max-height:520px){.completion-notice.has-illustration{max-height:calc(var(--vvh) - 32px)}.completion-art .story-illustration{max-height:28dvh}}.discovery button,.learning-aids button{color:#354c46;font:inherit;cursor:pointer;background:#fffbee;border:1px solid #ccd2be;border-radius:9px;padding:7px 10px}.message-meaning{color:#627465;border-top:1px solid #dce0cd;margin-top:7px;padding-top:6px;font-size:12px;line-height:1.5;display:block}.message-notes{border-top:1px solid #bdc9b575;margin-top:9px;padding-top:7px}.message-notes summary{cursor:pointer;color:#416551;width:fit-content;padding:3px 0;font-size:11px;font-weight:600}.message-notes summary:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #416551}.message-breakdown{color:#304e46;overflow-wrap:anywhere;background:#fffbed;border:1px solid #d5dbc6;border-radius:9px;margin-top:8px;padding:12px}.message-notes-label{letter-spacing:.7px;color:#5c705b;margin:13px 0 6px;font-size:9px;font-weight:700;display:block}.message-notes-label:first-child{margin-top:0}.message .message-breakdown p{margin:0 0 8px;font-size:12px;line-height:1.55}.breakdown-malay{font-weight:600}.breakdown-caption{color:#67745e;margin-top:8px;font-size:10px;line-height:1.5;display:block}.message-word-mapping{margin:0}.message-word-pair{border-top:1px solid #e2e5d4;grid-template-columns:minmax(65px,.8fr) minmax(0,1.2fr);gap:10px;padding:8px 0;font-size:12px;line-height:1.45;display:grid}.message-word-pair dt{font-weight:600}.message-word-pair dd{margin:0}.message-word-note{color:#63715d;margin-top:3px;font-size:11px;line-height:1.5;display:block}.message-usage-notes{color:#506450;margin:0;padding-left:16px;font-size:11px;line-height:1.6}.message-usage-notes li+li{margin-top:6px}.breakdown-retry{background:#edf0df;border:1px solid #aabb9f;border-radius:6px;padding:6px 9px;font-size:11px}.breakdown-retry:focus-visible{outline-offset:3px;outline:2px solid #416551}.message-breakdown.player-feedback{background:#fff7de;border-color:#d8c99a;margin-top:12px}.feedback-heading{color:#6b5f35;margin:0 0 8px;font-size:12px;font-weight:700}.feedback-example{background:#fffdf2;border-left:3px solid #c8a54d;border-radius:0 6px 6px 0;margin-top:12px;padding:10px}.message .feedback-example .feedback-example-meaning{color:#617159;margin-bottom:0;font-size:11px}.learning-aids{background:#f1f0df;border-top:1px solid #d5dac4;flex-shrink:0;max-height:34vh;padding:10px 20px;font-size:12px;overflow-y:auto}.conversation-goal{background:#f8f0d6;border-bottom:1px solid #d6caa3;flex-shrink:0;padding:12px 20px}.conversation-goal details{scrollbar-width:thin;max-height:15dvh;overflow-y:auto}.goal-heading{letter-spacing:1px;color:#5c6047;justify-content:space-between;align-items:center;gap:8px;font-size:9px;font-weight:700;display:flex}.goal-count{letter-spacing:0;white-space:nowrap;color:#385642;background:#e4e9ce;border-radius:8px;padding:3px 6px}.conversation-goal select{color:#304e40;cursor:pointer;background:0 0;border:0;border-radius:3px;width:100%;margin:5px 0;padding:2px 0;font:600 16px Outfit,sans-serif;display:block}.conversation-goal .goal-next{color:#304e40;margin:6px 0;font-size:13px;line-height:1.45}.conversation-goal summary{color:#5a6048;cursor:pointer;font-size:11px}.goal-steps{margin:10px 0;padding:0;font-size:12px;line-height:1.5;list-style:none}.goal-steps li+li{margin-top:6px}.goal-steps .is-understood{color:#48694c}.goal-note{color:#5a6048;margin:8px 0;font-size:11px;line-height:1.5}.goal-follow{text-align:left;color:#35523d;background:#ecedd7;border:1px solid #a9b68e;border-radius:6px;width:100%;margin-top:9px;padding:7px 9px;font-size:11px;display:block}.conversation-story{color:#385b55;background:#e7eeeb;border-bottom:1px solid #cbd8d1;flex-shrink:0;padding:6px 17px;position:relative}.conversation-story summary{cursor:pointer;font-size:11px;line-height:1.5}.conversation-story summary:focus-visible{outline-offset:2px;outline:2px solid #50774d}.conversation-story-body{z-index:7;background:#f0f6f2;border:1px solid #b6cbc2;border-radius:0 0 9px 9px;max-height:min(320px,42dvh);padding:14px 16px;position:absolute;top:100%;left:10px;right:10px;overflow-y:auto;box-shadow:0 8px 24px #304e4620}.conversation-story-body>strong{letter-spacing:1.2px;font-size:9px}.conversation-story-body h3{margin:8px 0;font-size:16px}.conversation-story-body p{margin:8px 0 0;font-size:12px;line-height:1.6}.conversation-story-body .story-help{border-top:1px solid #cfddd5;margin-top:10px;padding-top:10px}.conversation-goal :is(select,summary,button):focus-visible{outline-offset:2px;outline:2px solid #50774d}.journal-goal-next{background:#f1ecd5;border-radius:6px;padding:9px;font-weight:600}.quest-owner{color:#385b55;font-size:12px;font-weight:600}@media (max-width:700px){.conversation-goal{padding:10px 16px}.conversation-goal select{font-size:16px}}.compact-viewport .conversation-goal{padding:6px 14px}.compact-viewport .conversation-goal details{max-height:8dvh}.compact-viewport .conversation-goal .goal-heading{display:flex}.compact-viewport .conversation-goal select{margin:0;font-size:13px}.compact-viewport .conversation-goal .goal-next{margin:4px 0;font-size:11px}.aid-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.aid-heading span{color:#526a5d;max-width:72%;font-size:11px;line-height:1.5}.aid-heading button{flex-shrink:0;font-size:11px}.phrase-starters{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.phrase-starters button{text-align:left;flex:90px;font-size:12px}.phrase-starters small{color:#6c7c6f;margin-top:3px;font-size:10px;line-height:1.4;display:block}.learning-aids details{margin-top:8px}.learning-aids summary{cursor:pointer;color:#526a5d}.learning-aids p{margin:8px 0;font-size:11px;line-height:1.5}.mini-menu{color:#6c7c6f;margin:3px 0;display:block}@media (max-width:700px){.learning-aids{max-height:25vh;padding:8px 12px}.aid-heading span,.phrase-starters small{font-size:10px}.character-name{font-size:11px}}.chat-foot{align-items:flex-start;gap:12px}.chat-foot>span{flex:1;min-width:0;line-height:1.45}.chat-foot button{flex-shrink:0}.compact-viewport .learning-aids{max-height:100px;padding-top:6px;padding-bottom:6px}.compact-viewport .aid-heading>span{display:none}.chat-error.help-message{color:#456652;background:#e8efdb;border-radius:8px;padding:8px 10px}.story-booklet{color:#3d574f;background:#f7efd9;border:1px solid #caba98;border-radius:16px;margin:16px 0 22px;padding:19px;box-shadow:3px 4px #e3d6b9}.story-booklet h3{margin:8px 0 12px;font-size:21px}.story-illustration{aspect-ratio:3/2;object-fit:contain;background:#f7efd9;border:1px solid #dfd1b4;border-radius:10px;width:100%;height:auto;margin:12px 0;display:block}.story-clue>summary{align-items:center;gap:10px;font-weight:600;line-height:1.4;list-style:none;display:flex}.story-clue>summary::-webkit-details-marker{display:none}.story-clue>summary:after{content:"+";color:#6c7c64;margin-left:auto;font-size:19px;font-weight:400}.story-clue[open]>summary:after{content:"−"}.story-clue>summary:focus-visible{outline-offset:4px;border-radius:6px;outline:2px solid #52745a}.story-thumbnail{object-fit:cover;background:#f7efd9;border:1px solid #dfd1b4;border-radius:6px;flex-shrink:0;width:66px;height:44px}.story-eyebrow{letter-spacing:1.6px;font-size:10px;font-weight:600}.story-booklet p{font-size:13px;line-height:1.6}.story-booklet details{border-top:1px dashed #cbbb9d;margin-top:12px;padding-top:10px}.story-booklet summary{cursor:pointer;font-size:13px}.story-footnote{opacity:.8}.story-booklet button,.episode button{color:#344e42;width:100%;font:inherit;text-align:left;cursor:pointer;background:#e6eddc;border:1px solid #bec7b5;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:12px;display:block}.episode small{color:#6b7364;font-size:12px;line-height:1.5;display:block}@media (min-width:701px) and (max-height:620px){.intro-lower{bottom:55px}.intro-lower h2{margin-bottom:7px;font-size:22px}.intro-lower .intro-story{margin-bottom:13px;font-size:12px;line-height:1.45}.intro-actions .primary,.intro-actions .character-name input{height:41px;min-height:41px}.intro-controls{margin-top:12px}.intro-footer{bottom:17px}}@media (max-width:700px) and (max-height:680px){.intro-lower{padding:14px 17px 12px;bottom:61px}.intro-lower h2{margin-bottom:6px;font-size:21px}.intro-lower .intro-story{margin-bottom:12px;font-size:11px;line-height:1.45}.intro-actions .primary,.intro-actions .character-name input{height:41px;min-height:41px}.intro-controls{margin-top:11px}}
