@import"https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{font-family:Inter,sans-serif;color:#16172e;background:#e5dfd0;--indigo:#2e3191;--ink:#16172e;--mint:#10e492;--paper:#fdfeff;--cyan:#00adee;--line:#d9d9e6;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}::selection{background:var(--mint);color:var(--ink)}[hidden]{display:none!important}#app,#world{width:100vw;height:100dvh}#world{display:block;touch-action:none;outline:none}h1,h2,h3{font-family:"Exo 2",sans-serif}button{border:0}kbd{font:600 11px Inter,sans-serif;border:1px solid currentColor;border-radius:4px;padding:4px 6px;display:inline-flex;justify-content:center;align-items:center;min-width:22px}.welcome{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;background:linear-gradient(90deg,#fdfefff5 0%,#fdfeffe8 28%,#fdfeff15 65%,transparent);padding:6vh 6vw}.welcome-content{width:480px;max-width:48vw}.logo{width:112px;height:auto;display:block;margin-bottom:10px}h1{font-size:72px;line-height:1.02;font-weight:700;letter-spacing:-.035em;color:var(--indigo);margin:0 0 30px}h1 span{display:block;font-size:36px;letter-spacing:-.025em;line-height:1.2;color:var(--ink);margin-top:28px}.welcome p{font-size:15px;line-height:1.85;color:#555567}.primary{background:var(--indigo);color:#fff;padding:17px 25px;border-radius:5px;font-weight:600;min-width:200px}.primary:hover{background:#38306d}.welcome .primary{margin:14px 0}#load-status{font-size:12px;color:#656575}.demo-note{font-size:11px!important;margin-top:34px}.welcome-caption{position:absolute;right:4vw;bottom:5vh;color:#fff;text-shadow:0 2px 12px #16172e;font-family:"Exo 2";font-size:24px;line-height:1.4}.topbar{position:absolute;top:24px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:14px;background:var(--paper);padding:6px 20px 6px 14px;border-radius:5px}.brand img{width:60px}.brand span{font-family:"Exo 2";font-size:13px;letter-spacing:.16em;font-weight:600;border-left:1px solid #d9d9e6;padding-left:14px}nav{display:flex;gap:9px}nav button{background:var(--paper);padding:14px 18px;border-radius:5px;font-size:12px;font-weight:600}nav button:hover{background:#ebebff}#progress-count{margin-left:12px;color:var(--indigo);font-variant-numeric:tabular-nums}.objective{position:absolute;left:32px;top:103px;max-width:300px;background:#16172eea;color:#fff;padding:17px 21px;border-radius:5px}.objective>span{font-size:11px;color:#aeb1fc}.objective p{font-family:"Exo 2";font-size:18px;line-height:1.4;margin:7px 0 0}.controls{position:absolute;bottom:23px;left:32px;display:flex;gap:5px;align-items:center;background:#fdfeffeb;padding:11px 15px;border-radius:5px;font-size:10px;color:#38306d}.controls i{height:12px;width:1px;background:#d9d9e6;margin:0 8px}.location{position:absolute;right:32px;bottom:25px;color:var(--ink);text-align:right;font-family:"Exo 2";font-size:18px;background:#fdfeffe8;padding:10px 16px;border-radius:5px}.location span{display:block;font:10px Inter;color:#656575;margin-top:4px}#interact{position:absolute;bottom:110px;left:50%;transform:translate(-50%);display:flex;gap:12px;align-items:center;background:var(--ink);color:#fff;padding:13px 20px;border-radius:6px;font-size:13px;white-space:nowrap}#interact kbd{background:var(--mint);border-color:var(--mint);color:var(--ink);font-size:13px}#waypoint{position:absolute;pointer-events:none;width:12px;height:12px;background:var(--mint);transform:translate(-50%,-50%) rotate(45deg);border:2px solid #fdfeff;box-shadow:0 0 12px #16172e55}#dialogue{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(0deg,#16172e60,transparent 65%)}.dialogue-layout{position:absolute;left:5vw;right:5vw;bottom:7vh;pointer-events:auto}.dialogue-panel{position:relative;background:var(--ink);color:#fff;padding:34px 32px 16px;min-height:195px;border-radius:3px;clip-path:polygon(18px 0,100% 0,100% calc(100% - 16px),calc(100% - 18px) 100%,0 100%,0 16px)}#speaker{display:inline-block;background:var(--indigo);color:#fff;padding:10px 22px;font:600 20px "Exo 2";margin:-34px 0 12px -12px;min-width:190px;border-bottom:3px solid var(--mint)}#dialogue-text{font-size:17px;line-height:1.75;margin:8px 0 22px;min-height:62px;max-height:25vh;overflow:auto;white-space:pre-wrap}.dialogue-footer{display:flex;justify-content:space-between;align-items:center;gap:14px}.dialogue-footer button{background:transparent;color:#bcbde2;font-size:11px;padding:5px}.dialogue-footer #next{color:#fff;display:flex;align-items:center;gap:10px}.dialogue-footer kbd{font-size:9px;padding:2px 4px}.dialogue-footer #next span{color:var(--mint);font-size:22px}#choices{display:flex;flex-direction:column;align-items:flex-end;gap:7px;margin:0 0 18px auto;max-width:580px}#choices button{width:100%;text-align:left;background:var(--paper);color:var(--ink);padding:14px 24px;font-size:14px;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);border:2px solid transparent;transition:background .12s,transform .12s}#choices button:hover,#choices button:focus-visible{background:var(--mint);outline:0;transform:translate(-6px);border-color:var(--ink)}dialog{border:0;border-radius:10px;padding:35px;width:min(540px,90vw);max-height:85vh;overflow:auto;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#16172e70}dialog h2{font-size:30px;margin:0 30px 6px 0}dialog p{line-height:1.7;font-size:14px;color:#656575}.close-modal{position:absolute;top:18px;right:18px;background:#ebebff;width:30px;height:30px;font-size:22px;border-radius:50%}dialog article{margin:28px 0}.module-label{font-size:11px;color:var(--indigo);font-weight:700}dialog h3{font-size:23px;margin:8px 0 15px}#journal-steps{padding-left:21px;font-size:13px;line-height:2.2}#journal-steps li.done{color:#08783d}.preview-line{display:flex;justify-content:space-between;gap:15px;padding:16px 0;border-top:1px solid var(--line);font-size:12px}.preview-line span{color:#777887;font-size:11px}dialog a{display:block;color:var(--indigo);font-size:11px;margin:20px 0;text-underline-offset:4px}#reset{background:transparent;color:#656575;font-size:11px;text-decoration:underline;padding:10px 0}dl{display:grid;grid-template-columns:1fr 1.3fr;gap:16px 10px;font-size:12px;margin:25px 0}dt{font-weight:600;color:var(--indigo)}dd{margin:0}#notice{position:absolute;bottom:80px;right:30px;background:var(--paper);padding:15px;font-size:12px;max-width:300px;border-radius:5px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#b6b7dc;border-radius:4px}@media(max-width:1050px){.topbar{left:20px;right:20px}.objective{left:20px;max-width:260px}.dialogue-layout{left:3vw;right:3vw;bottom:5vh}.dialogue-panel{padding:25px 24px 12px}#speaker{margin-top:-25px}#dialogue-text{font-size:15px}#choices button{padding:11px 20px}.controls{left:20px}.location{right:20px}.welcome-content{max-width:55vw}h1{font-size:60px}h1 span{font-size:30px}}@media(max-width:650px){.welcome-content{max-width:90vw;width:100%}.welcome{background:#fdfeffe0}.welcome-caption,.controls,.brand span{display:none}.location{font-size:12px}.dialogue-layout{left:4vw;right:4vw}.dialogue-panel{min-height:180px}.objective{top:90px;font-size:13px}#choices{max-width:75vw}.topbar{top:15px}nav button{padding:10px}.objective p{font-size:15px}.dialogue-layout #dialogue-text{font-size:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@media(max-width:1050px){#choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;align-items:stretch}#choices button:hover,#choices button:focus-visible{transform:none}}@media(max-width:650px){#choices button{padding:10px 14px;font-size:13px;line-height:1.35}}.academy-audio{position:relative;color:var(--ink)}.academy-audio summary{display:flex;align-items:center;gap:7px;list-style:none;cursor:pointer;background:var(--paper);padding:13px 14px;border-radius:5px;font-size:12px;font-weight:600;min-height:44px}.academy-audio summary::-webkit-details-marker{display:none}.academy-audio summary:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.academy-audio summary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.academy-audio[open] summary{background:#ebebff;color:var(--indigo)}.audio-panel{position:absolute;right:0;top:calc(100% + 10px);width:260px;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 35px #16172e22;z-index:8}.audio-panel b{font:600 19px "Exo 2",sans-serif}.audio-panel p{font-size:12px;color:#656575;line-height:1.5;margin:7px 0 20px}.audio-panel label{display:flex;justify-content:space-between;gap:8px;font-size:11px}.audio-panel label span{color:#656575;font-size:10px}.audio-panel input{width:100%;height:32px;margin:8px 0 12px;accent-color:var(--indigo);cursor:pointer}.audio-panel button{width:100%;background:#ebebff;color:var(--indigo);min-height:44px}.topbar:has(.academy-audio[open]){z-index:9}@media(max-width:650px){.academy-audio summary{padding:10px;min-height:35px}.academy-audio summary>span{display:none}.audio-panel{position:fixed;right:20px;top:70px;width:min(280px,calc(100vw - 40px))}.topbar nav{gap:6px}.topbar .brand{padding:6px 10px}}#simulation-picker{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#fff;overflow:auto;overscroll-behavior:contain}#simulation-picker::backdrop{background:#131924bd;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sim-shell{--card-width:min(32vw,410px);min-height:100%;display:flex;flex-direction:column;position:relative;padding:40px 24px 20px;isolation:isolate}.sim-brand{position:absolute;top:30px;left:36px;font:700 24px "Exo 2",sans-serif;letter-spacing:.06em}.sim-brand span{font:500 11px Inter,sans-serif;letter-spacing:.24em;margin-left:10px}.sim-close{position:absolute;top:24px;right:32px;width:44px;height:44px;background:#ffffff0d;color:#fff;border:1px solid #ffffff40;border-radius:50%;font-size:32px}.sim-heading{text-align:center;margin:8px 0 28px}.sim-heading h2{font:500 clamp(32px,3.4vw,52px) Georgia,serif;margin:0 0 10px;color:#fff}.sim-heading p{margin:0;color:#e2e1df;font-size:14px}.sim-heading:after{content:"";display:block;width:44px;height:3px;background:var(--mint);border-radius:2px;margin:20px auto 0}.sim-carousel{position:relative;flex:1;min-height:480px;display:flex;align-items:center;touch-action:pan-y;-webkit-user-select:none;user-select:none}.sim-stage{position:relative;width:100%;height:min(60vh,600px);min-height:470px;perspective:1400px}.sim-card{position:absolute;left:50%;top:50%;width:var(--card-width);height:100%;margin:0!important;overflow:hidden;border:1px solid #ffffff40;border-radius:15px;background:#f8f5ef;color:#191c37;box-shadow:0 20px 50px #0004;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .42s,opacity .42s;display:flex;flex-direction:column}.sim-card[data-position=center]{transform:translate(-50%,-50%);z-index:3;border:2px solid #7fe9c5;box-shadow:0 0 0 4px #87e9c51a,0 24px 60px #0005}.sim-card[data-position=left]{transform:translate(-143%,-50%) scale(.88) rotateY(7deg);z-index:1;filter:saturate(.55) brightness(.83);cursor:pointer}.sim-card[data-position=right]{transform:translate(43%,-50%) scale(.88) rotateY(-7deg);z-index:1;filter:saturate(.55) brightness(.83);cursor:pointer}.sim-art{height:55%;flex-shrink:0;overflow:hidden;background:#dfd7c7}.sim-art img{width:100%;height:100%;object-fit:cover;pointer-events:none}.sim-content{padding:18px 24px 20px;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}.sim-status{background:#e0dfeb;color:#4c4b6d;padding:5px 12px;border-radius:20px;font-size:10px;font-weight:600;letter-spacing:.04em}.is-selected .sim-status{background:var(--indigo);color:#fff}#simulation-picker .sim-card h3{font:500 clamp(25px,2.5vw,39px) Georgia,serif;margin:10px 0 8px}#simulation-picker .sim-card p{color:#34354b;font-size:13px;line-height:1.6;margin:0 0 16px;max-width:290px}.sim-launch{margin-top:auto;width:100%;min-height:48px;padding:12px 18px;border-radius:8px;background:var(--indigo);color:#fff;font:500 18px Georgia,serif;display:flex;align-items:center;justify-content:center;gap:20px}.sim-launch span{font-family:Inter,sans-serif}.sim-launch:disabled{cursor:default;opacity:1;background:transparent;color:#757381;border-top:1px solid #d6d1c7;border-radius:0;font:12px Inter,sans-serif}.sim-card:not(.is-selected) .sim-launch{pointer-events:none}.sim-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:48px;height:48px;border-radius:50%;background:#22283ddd;border:1px solid #ffffff40;color:#fff;font-size:28px}.sim-prev{left:1vw}.sim-next{right:1vw}.sim-footer{text-align:center;margin-top:22px}.sim-dots{display:flex;gap:3px;justify-content:center}.sim-dots button{width:30px;height:28px;background:transparent;position:relative}.sim-dots button:after{content:"";position:absolute;top:9px;right:10px;bottom:9px;left:10px;border-radius:50%;background:#fff7}.sim-dots button[aria-current=true]:after{background:var(--mint);top:7px;right:8px;bottom:7px;left:8px}.sim-footer .sim-hint{font-size:12px;color:#d6d8de;margin:7px 0 16px}.sim-return{background:transparent;color:#f5f1e9;border-top:1px solid #ffffff26;min-width:260px;padding:16px 24px 4px;font-size:20px}.sim-return span{font:16px Georgia,serif;margin-left:12px}#simulation-picker button:focus-visible{outline:3px solid var(--mint);outline-offset:4px}#simulation-picker button:hover:not(:disabled){filter:brightness(1.15)}.sim-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:800px){.sim-shell{--card-width:min(68vw,370px);padding:78px 0 16px;overflow:hidden}.sim-brand{top:25px;left:20px;font-size:20px}.sim-brand span{font-size:9px}.sim-close{top:18px;right:18px}.sim-heading{margin:0 20px 15px}.sim-heading p{font-size:12px}.sim-heading:after{margin-top:15px}.sim-stage{height:min(56vh,520px);min-height:420px}.sim-carousel{min-height:420px}.sim-content{padding:16px}.sim-arrow{width:38px;height:38px;font-size:22px}.sim-prev{left:9px}.sim-next{right:9px}.sim-card[data-position=left]{transform:translate(-148%,-50%) scale(.88)}.sim-card[data-position=right]{transform:translate(48%,-50%) scale(.88)}.sim-footer{margin-top:15px}#simulation-picker .sim-card h3{font-size:29px}.sim-art{height:50%}.sim-launch{font-size:16px}.sim-footer .sim-hint{font-size:10px}}@media(max-height:700px)and (min-width:801px){.sim-shell{padding-top:22px}.sim-heading{margin-bottom:12px}.sim-heading h2{font-size:34px}.sim-heading:after{margin-top:10px}.sim-stage{height:430px;min-height:430px}.sim-carousel{min-height:430px}.sim-art{height:48%}.sim-content{padding:12px 20px}.sim-footer{margin-top:8px}.sim-return{padding-top:8px}.sim-footer .sim-hint{margin-bottom:8px}}#interaction-labels{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:2}.world-label{position:absolute;left:0;top:0;transform:translate(-50%,-100%);background:#1a2139e8;color:#fff;border:1px solid #ffffff45;border-radius:7px;padding:7px 12px;font:500 12px "Exo 2",sans-serif;white-space:nowrap;box-shadow:0 3px 10px #0002;pointer-events:auto}.world-label:after{content:"";position:absolute;left:50%;top:100%;height:13px;width:1px;background:#fff9}.world-label.is-near{border-color:var(--mint);background:#202747f5}.world-label.is-goal .world-label-name:before{content:"◆";font-size:9px;color:var(--mint);margin-right:7px}.world-label-action{display:none;font:10px Inter,sans-serif;color:#9bf1d1;margin-top:5px}.is-near .world-label-action{display:block}.world-label:focus-visible{outline:3px solid var(--mint);outline-offset:3px}.simulation-selecting #hud{visibility:hidden}.sim-card{display:grid;grid-template-rows:minmax(0,1fr) auto}.sim-art{height:100%;min-height:0}.sim-content{min-height:238px}.sim-content .sim-launch{flex-shrink:0}@media(max-width:800px){.sim-content{min-height:238px}.sim-content .sim-launch{margin-top:12px}}
