*{box-sizing:border-box;margin:0;padding:0}body{color:#fff;background-color:#050505;font-family:Courier New,Courier,monospace;overflow:hidden}#root{width:100%;height:100dvh}.canvas-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-container.hidden{display:none}.overlay{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#050505cc;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity 1s ease-in-out;display:flex;position:absolute;top:0;left:0}.overlay.hidden{opacity:0;pointer-events:none}.overlay.solid{-webkit-backdrop-filter:none;backdrop-filter:none;background:radial-gradient(circle at 50% 42%,#162b3a1f,#0505056b 46%,#050505e0 100%)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.landing-copy{flex-direction:column;align-items:center;transition:opacity .28s,transform .5s;display:flex;transform:translateY(8rem)}.landing-transitioning{pointer-events:none;animation:.9s ease-out forwards landing-transition-flash}.landing-transitioning .landing-copy{opacity:0;transform:translateY(9rem)scale(.96)}@keyframes landing-transition-flash{0%{background-color:#05050500}42%{background-color:#12314314}to{background-color:#05050524}}.world-select-screen{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(#03070e52,#03070ead),radial-gradient(circle at 50% 0,#1f547526,#0000 55%);flex-direction:column;padding:clamp(1.5rem,4vw,4rem);animation:.45s ease-out both world-select-arrive;display:flex;position:absolute;inset:0}.world-select-transitioning .world-select-header{animation:.58s ease-out 60ms both world-select-content-arrive}.world-select-transitioning .world-grid-scroll{animation:.68s ease-out .14s both world-select-content-arrive}@keyframes world-select-content-arrive{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes world-select-arrive{0%{opacity:0;transform:scale(1.018)}to{opacity:1;transform:scale(1)}}.world-select-header{border-bottom:1px solid #9adaff2e;grid-template-columns:minmax(7rem,1fr) auto minmax(7rem,1fr);align-items:end;gap:2rem;width:min(100%,92rem);margin:0 auto 2rem;padding-bottom:1.25rem;display:grid}.world-select-header>div{text-align:center}.world-select-header h1{letter-spacing:.24rem;text-transform:uppercase;margin-top:.35rem;font-size:clamp(1.45rem,3vw,2.5rem);font-weight:400}.world-select-back{color:#ddf4ffb8;font:inherit;letter-spacing:.13rem;text-transform:uppercase;cursor:pointer;background:0 0;border:0;justify-self:start;padding:.55rem 0;font-size:.72rem}.world-select-back:hover{color:#fff}.world-grid-scroll{scrollbar-width:thin;scrollbar-color:#82d0f252 #ffffff0a;flex:1;width:min(100%,92rem);min-height:0;margin:0 auto;padding:.25rem .5rem 2rem;overflow-y:auto}.world-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(17rem,31vh);gap:clamp(1rem,2vw,1.75rem);min-height:calc(62vh + 1.75rem);display:grid}.world-card{color:#fff;min-height:17rem;font:inherit;text-align:left;cursor:pointer;isolation:isolate;background:#080d13;border:1px solid #abddf43d;transition:transform .3s,border-color .3s,box-shadow .3s;position:relative;overflow:hidden}.world-card:after{content:"";z-index:3;pointer-events:none;border:1px solid #c5e9fa1f;transition:border-color .3s;position:absolute;inset:.55rem}.world-card:hover{z-index:2;border-color:#99e1ffb8;transform:translateY(-5px);box-shadow:0 18px 50px #0000007a,0 0 26px #3fb2e029}.world-card:hover:after{border-color:#c5e9fa59}.world-card-image{z-index:0;object-fit:cover;width:100%;height:100%;transition:transform .7s,filter .4s;position:absolute;inset:0}.world-card:hover .world-card-image{filter:saturate(1.1)contrast(1.04);transform:scale(1.04)}.world-card-shade{z-index:1;background:linear-gradient(#0000 36%,#03070c2e 58%,#03070cc2 100%),linear-gradient(90deg,#03070c1f,#0000 62%);position:absolute;inset:0}.world-card-index{z-index:2;color:#ffffffb8;letter-spacing:.16rem;text-transform:uppercase;font-size:.62rem;position:absolute;top:1.35rem;left:1.35rem}.world-card-content{z-index:2;flex-direction:column;gap:.32rem;display:flex;position:absolute;bottom:1.45rem;left:1.35rem}.world-card-content strong{letter-spacing:.22rem;text-transform:uppercase;text-shadow:0 2px 18px #000000b3;font-size:clamp(1.5rem,2.4vw,2.3rem);font-weight:500}.world-card-content>span:last-child{color:#e2f0f6b8;letter-spacing:.11rem;text-transform:uppercase;font-size:.72rem}.world-card-enter{z-index:2;color:#d6f2ffc2;letter-spacing:.1rem;text-transform:uppercase;opacity:0;font-size:.62rem;transition:opacity .25s,transform .25s;position:absolute;bottom:1.45rem;right:1.35rem;transform:translate(-.5rem)}.world-card:hover .world-card-enter,.world-card:focus-visible .world-card-enter{opacity:1;transform:translate(0)}.game-loading-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:radial-gradient(circle at 50% 46%,#1437490a,#0505054d 58%,#050505ad 100%)}.game-entry-panel{flex-direction:column;align-items:center;gap:1.4rem;display:flex}.session-entry-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#05090db8;border:1px solid #b8e1f329;width:min(560px,100vw - 3rem);max-height:calc(100vh - 4rem);padding:2rem;overflow-y:auto}.session-entry-panel h1{letter-spacing:.16rem;text-transform:uppercase;font-size:clamp(1.25rem,2.5vw,1.8rem);font-weight:400}.new-session-btn{width:100%}.saved-session-list{border-top:1px solid #b8e1f324;flex-direction:column;gap:.65rem;width:100%;padding-top:1rem;display:flex}.saved-session-heading{color:#bde1f194;letter-spacing:.16rem;text-transform:uppercase;font-size:.62rem}.saved-session-card{color:#fff;width:100%;font:inherit;text-align:left;cursor:pointer;background:#ffffff09;border:1px solid #b8e1f324;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;transition:background .2s,border-color .2s;display:flex}.saved-session-card:hover{background:#71c1e514;border-color:#b8e1f36b}.saved-session-card>span:first-child{flex-direction:column;gap:.3rem;min-width:0;display:flex}.saved-session-card strong{letter-spacing:.08rem;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:400;overflow:hidden}.saved-session-card small,.saved-session-status{color:#d3eaf480;letter-spacing:.08rem;text-transform:uppercase;font-size:.58rem}.saved-session-status{flex:none}.game-entry-world{color:#b9e1f2a8;letter-spacing:.18rem;text-transform:uppercase;font-size:.68rem}@media (width<=900px){.world-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.world-select-screen{padding:1.25rem}.world-select-header{grid-template-columns:auto 1fr;align-items:center;gap:1rem;margin-bottom:1.25rem}.world-select-header>div{text-align:right}.world-select-header h1{letter-spacing:.13rem;font-size:1.05rem}.world-grid{grid-template-columns:1fr;grid-auto-rows:minmax(16rem,55vh)}}.start-btn{color:#fff;letter-spacing:.2rem;cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid #ffffff4d;padding:1rem 3rem;font-family:inherit;font-size:1.2rem;transition:all .3s;position:relative;overflow:hidden}.start-btn:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.start-btn:hover{border-color:#fffc;box-shadow:0 0 20px #fff3}.start-btn:hover:before{left:100%}.start-btn:active{transform:scale(.98)}.materialize-panel{z-index:11;pointer-events:auto;align-items:center;gap:.85rem;display:flex;position:absolute;top:2rem;left:2rem}.materialize-btn{color:#fff;letter-spacing:.12rem;text-transform:uppercase;cursor:pointer;background:#050505b8;border:1px solid #ffffff3d;padding:.7rem 1rem;font-family:inherit;font-size:.72rem;transition:border-color .2s,box-shadow .2s,opacity .2s}.materialize-btn:hover:not(:disabled){border-color:#ffffffb8;box-shadow:0 0 18px #ffffff29}.materialize-btn:disabled{cursor:default;opacity:.48}.materialize-count{color:#ffffff9e;letter-spacing:.08rem;text-transform:uppercase;font-size:.72rem}.ui-layer{z-index:5;pointer-events:none;position:absolute;inset:2rem 2rem auto}.control-panel-toggle-btn{z-index:1;color:#fff;letter-spacing:.12rem;text-transform:uppercase;cursor:pointer;pointer-events:auto;background:#050505b8;border:1px solid #ffffff38;padding:.55rem .8rem;font-family:inherit;font-size:.68rem;position:absolute;bottom:0;right:0}.control-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#050505b8;border:1px solid #ffffff2e;width:min(420px,100vw - 4rem);max-height:calc(100vh - 4rem);padding:1rem;position:absolute;bottom:2.6rem;right:0;overflow-y:auto}.control-section+.control-section{margin-top:1rem}.control-section h2{letter-spacing:.18rem;text-transform:uppercase;margin-bottom:.65rem;font-size:.8rem;font-weight:400}.control-toggle,.control-slider{letter-spacing:.04rem;color:#ffffffd1;grid-template-columns:1fr auto;align-items:center;gap:.65rem;margin-bottom:.45rem;font-size:.72rem;display:grid}.control-toggle{grid-template-columns:auto 1fr}.control-toggle input,.control-slider input{accent-color:#fff}.control-slider input{width:140px}.control-slider output{text-align:right;color:#ffffff8c;min-width:2.6rem}.status-text{letter-spacing:.1rem;opacity:.8;text-transform:uppercase;font-size:1.2rem;animation:2s infinite pulse}.error-container{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.error-message{color:#ff6b6b;background-color:#ff6b6b1a;border:1px solid #ff6b6b;border-radius:4px;margin-bottom:1rem;padding:.5rem}.retry-btn{padding:.8rem 2rem;font-size:1rem}@keyframes pulse{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.adventure-ui{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;visibility:hidden;pointer-events:none;background:#050505c7;border:1px solid #ffffff26;flex-direction:column;width:400px;max-width:calc(100vw - 4rem);height:calc(100vh - 11.5rem);transition:opacity .25s,transform .25s,visibility .25s;display:flex;position:absolute;top:5.25rem;right:2rem;transform:translate(1rem)}.adventure-ui.visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0)}.history-toggle-btn{z-index:22;color:#ebf8ffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font:inherit;letter-spacing:.11rem;text-transform:uppercase;cursor:pointer;background:#050505a3;border:1px solid #cdecf938;padding:.65rem .9rem;font-size:.68rem;transition:color .2s,border-color .2s,background .2s;position:absolute;top:2rem;right:2rem}.history-toggle-btn:hover,.history-toggle-btn[aria-expanded=true]{color:#fff;background:#0a1218d1;border-color:#cdecf98c}.gm-push-btn{z-index:1;color:#ebf8ffe6;width:5.5rem;height:5.5rem;font:inherit;text-align:center;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:auto;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:transform .16s,opacity .2s;display:grid;position:relative}.gm-push-btn:before,.gm-push-btn:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.gm-push-btn:before{border:1px solid #76ddffb8;border-color:#76ddffb8 #76ddff2e #aa85ff7a #0000;animation:7s linear infinite gm-orbit-spin;inset:.12rem}.gm-push-btn:after{border:1px solid #0000;border-color:#e1f4fc2e #0000 #0000 #76ddff80;animation:4.8s linear infinite gm-orbit-spin-reverse;inset:.55rem}.gm-push-core{z-index:1;color:#e7f7ffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#050c11ad;border:1px solid #b3e2f638;border-radius:50%;place-content:center;width:3.65rem;height:3.65rem;transition:transform .18s,color .18s,background .18s,border-color .18s,box-shadow .18s;display:grid;position:relative;box-shadow:inset 0 0 1.1rem #50b6e00d}.gm-push-btn:hover .gm-push-core,.gm-push-btn:focus-visible .gm-push-core{color:#fff;background:#08141cd6;border-color:#9ce0fc80;box-shadow:inset 0 0 1.1rem #50b6e01a,0 0 1.2rem #50b6e01a}.gm-push-btn:focus-visible{outline-offset:.24rem;outline:1px solid #aee5fca3}.gm-push-btn.active{color:#fff;transform:scale(.94)}.gm-push-btn.active:before{border-top-color:#ff6f54f2;border-bottom-color:#ff4e74bd;border-right-color:#ffb16570;animation:.72s cubic-bezier(.55,.05,.35,.95) infinite gm-orbit-transmit}.gm-push-btn.active:after{border-top-color:#ffdbac66;border-left-color:#ff6f54e0;animation:.52s linear infinite gm-orbit-transmit-reverse}.gm-push-btn.active .gm-push-core{color:#fff4ef;background:#3a0f0cdb;border-color:#ff84669e;animation:.8s ease-in-out infinite alternate gm-core-transmit}.gm-push-btn:disabled{opacity:.42;cursor:not-allowed}.gm-push-core strong,.gm-push-core small{display:block}.gm-push-core strong{letter-spacing:.12rem;text-transform:uppercase;font-size:.74rem;font-weight:600}.gm-push-core small{color:#c3dde88f;letter-spacing:.1rem;text-transform:uppercase;margin-top:.18rem;font-size:.48rem}.gm-push-btn.active .gm-push-core small{color:#ffc6b2d1}@keyframes gm-orbit-spin{to{transform:rotate(360deg)}}@keyframes gm-orbit-spin-reverse{to{transform:rotate(-360deg)}}@keyframes gm-orbit-transmit{0%{transform:rotate(0)scale(.9)}50%{transform:rotate(180deg)scale(1.05)}to{transform:rotate(360deg)scale(.9)}}@keyframes gm-orbit-transmit-reverse{to{transform:rotate(-360deg)}}@keyframes gm-core-transmit{0%{transform:scale(.92);box-shadow:inset 0 0 1rem #ff5b4314,0 0 #ff5b4300}to{transform:scale(1);box-shadow:inset 0 0 1.4rem #ff5b432e,0 0 1.5rem #ff5b4333}}.adventure-log{flex-direction:column;flex:1;gap:.8rem;padding:1rem;font-size:.85rem;line-height:1.4;display:flex;overflow-y:auto}.adventure-log::-webkit-scrollbar{width:4px}.adventure-log::-webkit-scrollbar-track{background:#ffffff0d}.adventure-log::-webkit-scrollbar-thumb{background:#fff3}.log-entry{opacity:.9}.log-entry-role{color:#bee1f08c;letter-spacing:.12rem;text-transform:uppercase;margin-bottom:.25rem;font-size:.58rem;display:block}.log-entry.command{color:#8cf;font-weight:700}.log-entry.narration{color:#fff}.adventure-controls{border-top:1px solid #ffffff26;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.input-form{gap:.5rem;display:flex}.control-panel-toggle-btn,.control-panel{display:none}.game-bottom-hud{left:50%;bottom:max(1.5rem, env(safe-area-inset-bottom));z-index:18;pointer-events:none;flex-direction:column;align-items:flex-end;gap:1.5rem;width:min(900px,100vw - 4rem);display:flex;position:absolute;transform:translate(-50%)}.latest-message{color:#fffffff0;-webkit-backdrop-filter:blur(18px)saturate(.88);backdrop-filter:blur(18px)saturate(.88);isolation:isolate;pointer-events:auto;background:#04080b61;border:1px solid #c0e4f417;width:100%;min-height:4.2rem;max-height:min(16rem,32dvh);padding:.9rem 1.15rem 1rem;position:relative;overflow:hidden auto}.latest-message-speaker{color:#8cdaf9c7;letter-spacing:.16rem;text-transform:uppercase;margin-bottom:.4rem;font-size:.62rem;display:block}.latest-message p{font-size:clamp(.76rem,1vw,.9rem);line-height:1.55}.text-input{color:#fff;background:#ffffff0d;border:1px solid #fff3;flex:1;padding:.5rem;font-family:inherit;font-size:.8rem}.text-input:focus{border-color:#ffffff80;outline:none}.submit-btn{color:#fff;cursor:pointer;text-transform:uppercase;background:#ffffff1a;border:1px solid #fff3;padding:.5rem 1rem;font-family:inherit;font-size:.8rem}.submit-btn:hover{background:#fff3}.mic-btn{color:#fff;cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid #fff3;padding:.5rem;font-family:inherit;font-size:.8rem;transition:all .3s}.mic-btn:hover{background:#ffffff1a}.mic-btn.listening{background:#ff646433;border-color:#ff646480;animation:1.5s infinite pulse}.mic-btn.speaking{background:#64ff6433;border-color:#64ff6480}.speech-unavailable{color:#fff9;text-align:center;font-size:.72rem;line-height:1.4}.subtitle{letter-spacing:.2rem;opacity:.7;text-transform:uppercase;margin-bottom:3rem;font-size:1.2rem}@media (width<=640px){.landing-copy{transform:translateY(5.5rem)}.start-btn{padding:.8rem 2rem;font-size:.9rem}.history-toggle-btn{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right))}.adventure-ui{width:calc(100vw - 2rem);max-width:none;height:calc(100dvh - 14.5rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));top:4.25rem;right:1rem}.game-bottom-hud{bottom:max(1rem, env(safe-area-inset-bottom));width:calc(100vw - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right));gap:.8rem}.gm-push-btn{width:4.9rem;height:4.9rem}.gm-push-core{width:3.3rem;height:3.3rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
