@font-face{font-family:Unbounded;src:url(../assets/font/unbounded/Unbounded-VariableFont_wght.ttf)format("truetype");font-weight:200 900;font-display:swap}@font-face{font-family:Lato;src:url(../assets/font/lato/Lato-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Lato;src:url(../assets/font/lato/Lato-Italic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Lato;src:url(../assets/font/lato/Lato-Bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{--color-primary:#3c155d;--color-secondary:#389;--color-accent:#2dbb39;--color-text:#1a1a2e;--color-body:#3a4355;--color-muted:#6b7280;--color-danger:#e5484d;--gradient:linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 50%, var(--color-accent) 100%);--font-display:"Unbounded", system-ui, sans-serif;--font-body:"Lato", system-ui, "Segoe UI", Roboto, sans-serif;--glass-bg:#ffffff8c;--glass-bg-strong:#ffffffb8;--glass-border:#ffffffb3;--glass-blur:blur(18px) saturate(160%);--glass-shadow:0 10px 40px #1e1e461a, 0 1px 2px #1e1e460f;--glass-highlight:inset 0 1px 0 #ffffffd9;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--radius-lg:24px;--radius-md:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;background:#fbfcfe;overflow:hidden}.static-content{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-secondary);outline-offset:3px}.gradient-text{background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow), var(--glass-highlight)}.app{position:fixed;inset:0;overflow:hidden}.canvas{touch-action:none;inset:0;position:absolute!important}.aurora{pointer-events:none;will-change:transform;background:radial-gradient(40% 40% at 15% 15%,#3c155d29,#0000 70%),radial-gradient(45% 45% at 85% 10%,#3893,#0000 70%),radial-gradient(50% 45% at 50% 95%,#2dbb3924,#0000 70%);animation:30s ease-in-out infinite alternate aurora;position:absolute;inset:-20%}@keyframes aurora{0%{transform:translate(-4%,-2%)rotate(0)scale(1)}50%{transform:translate(4%,3%)rotate(8deg)scale(1.08)}to{transform:translate(-2%,5%)rotate(-6deg)scale(1.02)}}.speed-vignette{pointer-events:none;opacity:0;background:radial-gradient(circle farthest-corner at var(--cx,50%) var(--cy,50%), transparent 22%, #33889924 50%, #3c155d52 80%, #3c155d6b 100%);transition:opacity .2s linear;position:absolute;inset:0}.btn{font-family:var(--font-display);letter-spacing:.3px;cursor:pointer;transition:transform .35s var(--ease-spring), background-color .25s ease, border-color .25s ease, box-shadow .35s var(--ease-out), color .25s ease;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;padding:.6rem 1.35rem;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transition-duration:.1s;transform:translateY(0)scale(.97)}.btn:disabled{opacity:.65;cursor:progress}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--color-secondary), color-mix(in srgb, var(--color-secondary) 60%, var(--color-primary)));box-shadow:0 6px 20px #3388994d,inset 0 1px #ffffff40}.btn-primary:hover:not(:disabled){box-shadow:0 10px 28px #3896,inset 0 1px #ffffff40}.btn-outline{color:var(--color-secondary);background:#ffffff73;border-color:#3388994d}.btn-outline:hover{border-color:var(--color-secondary);background:#ffffffbf}.btn-ghost{color:var(--color-muted);background:0 0;padding-inline:.9rem}.btn-ghost:hover{color:var(--color-text);background:#0000000a}.btn-lg{letter-spacing:1px;padding:.8rem 2.4rem;font-size:.9rem}.btn-block{border-radius:var(--radius-md);width:100%;padding-block:.9rem}.icon-btn{border:1px solid var(--glass-border);width:42px;height:42px;color:var(--color-text);cursor:pointer;transition:transform .45s var(--ease-spring), background-color .25s ease, color .25s ease;background:#ffffff80;border-radius:50%;place-items:center;padding:0;display:grid}.icon-btn:hover{background:#ffffffe6}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .9s var(--ease-out), -webkit-backdrop-filter .9s var(--ease-out), backdrop-filter .9s var(--ease-out);background:#fbfcfe8c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.loading.is-exiting{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:none}.loading-orbit{width:56px;height:56px;transition:opacity .5s ease, transform .6s var(--ease-out);border:2px solid #33889926;border-radius:50%;position:absolute}.loading-orbit span{background:var(--color-accent);transform-origin:5px 33px;width:10px;height:10px;animation:spin 1.2s var(--ease-out) infinite;border-radius:50%;margin-left:-5px;position:absolute;top:-5px;left:50%;box-shadow:0 0 12px #2dbb3999}.loading.is-ready .loading-orbit{opacity:0;transform:scale(.4)}.loading-card{border-radius:var(--radius-lg);text-align:center;max-width:32rem;animation:rise-in .9s var(--ease-out) both;flex-direction:column;align-items:center;gap:1rem;padding:2.75rem 2.5rem;display:flex}.loading.is-exiting .loading-card{transition:transform .9s var(--ease-out);transform:translateY(-16px)scale(.97)}.loading-title{font-family:var(--font-display);margin:0;font-size:clamp(1.5rem,5vw,2.1rem);font-weight:700;line-height:1.2}.loading-subtitle{color:var(--color-muted);margin:0 0 .5rem;font-size:1rem;line-height:1.55}.loading-card .btn-lg{animation:2.4s ease-in-out infinite pulse-ring}@keyframes pulse-ring{0%,to{box-shadow:0 6px 20px #3388994d,0 0 #33889959}50%{box-shadow:0 6px 20px #3388994d,0 0 0 12px #3890}}@keyframes rise-in{0%{opacity:0;filter:blur(6px);transform:translateY(24px)scale(.98)}to{opacity:1;filter:blur();transform:none}}.sound-toggle{color:var(--color-muted)}.sound-toggle.is-on{color:var(--color-secondary)}.sound-bars{align-items:flex-end;gap:2px;width:20px;height:14px;display:flex}.sound-bars i{opacity:.45;height:20%;transition:height .3s var(--ease-out), opacity .3s ease;background:currentColor;border-radius:1px;flex:1}.sound-toggle.is-on .sound-bars i{opacity:1;animation:1.1s ease-in-out infinite alternate sound-bar}.sound-toggle.is-on .sound-bars i:nth-child(2){animation-duration:.85s;animation-delay:.1s}.sound-toggle.is-on .sound-bars i:nth-child(3){animation-duration:1.3s;animation-delay:.2s}.sound-toggle.is-on .sound-bars i:nth-child(4){animation-duration:.95s;animation-delay:.15s}.sound-toggle.is-on .sound-bars i:nth-child(5){animation-duration:1.2s;animation-delay:.3s}@keyframes sound-bar{0%{height:15%}to{height:100%}}.hud{z-index:5;pointer-events:none;position:absolute;inset:0}.hud-bottom{left:50%;bottom:calc(2.4rem + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:.75rem;width:max-content;max-width:calc(100% - 2rem);display:flex;position:absolute;transform:translate(-50%)}.hud-hint{color:var(--color-muted);text-align:center;opacity:0;transition:opacity .8s var(--ease-out) .6s, transform .8s var(--ease-out) .6s;margin:0;font-size:.85rem;transform:translateY(8px)}.hud.is-visible .hud-hint{opacity:1;transform:none}.hud-action{opacity:0;filter:blur(4px);transition:opacity .35s var(--ease-out), transform .5s var(--ease-spring), filter .35s var(--ease-out);border-radius:999px;align-items:center;gap:.75rem;padding:.4rem .4rem .4rem 1.1rem;display:flex;transform:translateY(14px)scale(.92)}.hud.is-visible .hud-action.is-open{opacity:1;filter:none;pointer-events:auto;transform:none}.hud-planet{font-family:var(--font-display);align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;display:inline-flex}.hud-planet:before{content:"";background:var(--planet);width:8px;height:8px;box-shadow:0 0 10px var(--planet);border-radius:50%}.hud-action-btn{background:var(--planet);color:#fff;font-family:var(--font-display);white-space:nowrap;cursor:pointer;box-shadow:0 4px 16px color-mix(in srgb, var(--planet) 40%, transparent);transition:transform .35s var(--ease-spring), box-shadow .3s ease;border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem .6rem .5rem 1rem;font-size:.75rem;font-weight:600;display:inline-flex}.hud-action-btn:hover{box-shadow:0 6px 22px color-mix(in srgb, var(--planet) 55%, transparent);transform:scale(1.05)}.hud-action-btn kbd{min-width:1.4rem;height:1.4rem;font-family:var(--font-body);background:#ffffff38;border-radius:6px;place-items:center;font-size:.75rem;display:grid}.quest-tracker{top:calc(1rem + env(safe-area-inset-top));color:var(--color-muted);font-family:var(--font-display);letter-spacing:.5px;opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out), color .4s ease;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .95rem;font-size:.78rem;font-weight:600;display:flex;position:absolute;left:1rem;transform:translateY(-10px)}.hud.is-visible .quest-tracker{opacity:1;transform:none}.quest-tracker.is-complete{color:var(--color-accent)}.quest-tracker-icon{font-size:1rem;line-height:1}.quest-tracker.is-complete .quest-tracker-icon{text-shadow:0 0 8px #2dbb3980;animation:2s ease-in-out infinite star-pulse}@keyframes star-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)rotate(15deg)}}.toast{top:calc(1rem + env(safe-area-inset-top));z-index:30;border-radius:var(--radius-md);max-width:calc(100% - 2rem);color:var(--color-body);pointer-events:none;opacity:0;transition:opacity .5s var(--ease-out), transform .6s var(--ease-spring);align-items:center;gap:.6rem;padding:.7rem 1.2rem;font-size:.9rem;display:flex;position:absolute;left:50%;transform:translate(-50%,-24px)scale(.96)}.toast.is-open{opacity:1;transform:translate(-50%)}.toast-icon{color:#d4a017;font-size:1.1rem}.settings{top:calc(1rem + env(safe-area-inset-top));z-index:10;opacity:0;pointer-events:none;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);flex-direction:row-reverse;align-items:center;gap:.5rem;display:flex;position:absolute;right:1rem;transform:translateY(-10px)}.settings.is-visible{opacity:1;pointer-events:auto;transform:none}.settings-toggle:hover,.settings.is-open .settings-toggle{transform:rotate(60deg)}.settings-panel{opacity:0;transform-origin:100%;pointer-events:none;transition:opacity .3s var(--ease-out), transform .45s var(--ease-spring);border-radius:999px;gap:.3rem;padding:.3rem;display:flex;transform:translate(12px)scale(.95)}.settings.is-open .settings-panel{opacity:1;pointer-events:auto;transform:none}.chip{color:var(--color-muted);font-family:var(--font-display);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.72rem;font-weight:600;transition:background-color .25s,color .25s;display:inline-flex}.chip:hover{color:var(--color-text);background:#3388991a}.chip.is-active{background:var(--color-secondary);color:#fff}.chip-icon{padding:.4rem .5rem}.minimap{right:1.5rem;bottom:calc(5.5rem + env(safe-area-inset-bottom));pointer-events:none;opacity:0;width:140px;height:140px;transition:opacity .8s var(--ease-out) .8s, transform .9s var(--ease-spring) .8s;border-radius:50%;padding:0;position:absolute;overflow:hidden;transform:scale(.85)}.minimap.is-visible{opacity:1;transform:none}.minimap canvas{display:block}.joystick{z-index:15;pointer-events:none;position:fixed;inset:0}.joystick-ring,.joystick-knob{opacity:0;border-radius:50%;transition:opacity .2s;position:absolute;top:0;left:0}.joystick-ring{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fff3;border:1.5px solid #fffc;width:100px;height:100px;margin:-50px 0 0 -50px;box-shadow:0 6px 24px #1e1e461f}.joystick-knob{background:#fffffff2;width:32px;height:32px;margin:-16px 0 0 -16px;box-shadow:0 2px 12px #33889973}.joystick-ring.is-active,.joystick-knob.is-active{opacity:1}.modal{z-index:20;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;animation:fade-in .4s var(--ease-out) both;background:#1a1a2e38;border:none;padding:0;position:absolute;inset:0}.modal-panel{border-radius:var(--radius-lg);background:var(--glass-bg-strong);width:min(680px,100%);max-height:min(86dvh,820px);animation:modal-in .55s var(--ease-out) both;outline:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.modal.is-closing .modal-backdrop{animation:.32s both fade-out}.modal.is-closing .modal-panel{animation:modal-out .32s var(--ease-out) both}@keyframes modal-in{0%{opacity:0;filter:blur(8px);transform:translateY(28px)scale(.96)}to{opacity:1;filter:blur();transform:none}}@keyframes modal-out{to{opacity:0;filter:blur(6px);transform:translateY(16px)scale(.97)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.modal-close{z-index:2;width:38px;height:38px;position:absolute;top:1rem;right:1rem}.modal-close:hover{background:var(--color-secondary);color:#fff;transform:rotate(90deg)}.modal-scroll{--scroll-progress:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-primary) calc(var(--scroll-progress) * 100%), var(--color-accent)) transparent;padding:2.75rem 2.5rem 3rem;overflow:hidden auto}.modal-scroll::-webkit-scrollbar{width:6px}.modal-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-primary) calc(var(--scroll-progress) * 100%), var(--color-accent));border-radius:8px}.fade-up{opacity:0;transition:opacity .6s var(--ease-out), transform .7s var(--ease-out);transform:translateY(16px)}.fade-up.is-visible{opacity:1;transform:none}.shimmer{opacity:0;filter:blur(2px);transition:opacity .6s ease-out, transform .6s var(--ease-out), filter .6s ease-out;position:relative;transform:translateY(8px)}.shimmer.is-visible{opacity:1;filter:none;transform:none}.shimmer-text{display:block;-webkit-mask-image:linear-gradient(90deg,#000 40%,#0000 60%);mask-image:linear-gradient(90deg,#000 40%,#0000 60%);-webkit-mask-position:100% 0;mask-position:100% 0;-webkit-mask-size:250% 100%;mask-size:250% 100%}.shimmer.is-visible .shimmer-text{animation:mask-sweep 1.1s var(--ease-out) forwards}.shimmer:after{content:"";filter:blur(16px);opacity:0;pointer-events:none;background:radial-gradient(circle,#2dbb3973 0%,#33889940 45%,#0000 70%);border-radius:0 100%;width:120px;height:120px;margin-top:-60px;position:absolute;top:50%;left:-120px;transform:scale(1.4,.6)rotate(45deg)}.shimmer.is-visible:after{animation:glow-sweep 1.1s var(--ease-out) forwards}@keyframes mask-sweep{to{-webkit-mask-position:0 0;mask-position:0 0}}@keyframes glow-sweep{0%{opacity:0;filter:blur(16px)hue-rotate();left:-120px}15%,85%{opacity:1}to{opacity:0;filter:blur(16px)hue-rotate(160deg);left:calc(100% + 120px)}}.markdown{color:var(--color-body);font-size:1.04rem;line-height:1.7}.markdown h1{font-family:var(--font-display);letter-spacing:-.5px;margin:0 0 1em;padding-right:2.5rem;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;line-height:1.25}.markdown h1 .shimmer-text,.contact-title .shimmer-text{background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:inline-block}.markdown h2,.markdown h3{color:#4a5568;font-family:var(--font-display);margin:1.6em 0 .5em;font-weight:600;line-height:1.35}.markdown h2{font-size:1.3rem}.markdown h3{font-size:1.1rem}.markdown p{margin:.6em 0}.markdown a{color:var(--color-secondary);text-underline-offset:3px;transition:color .2s}.markdown a:hover{color:var(--color-accent)}.markdown hr{background:linear-gradient(90deg,#0000,#33889959,#0000);border:none;height:1px;margin:2.2rem 0}.markdown blockquote{border-left:3px solid var(--color-secondary);border-radius:0 var(--radius-md) var(--radius-md) 0;color:#4a5568;background:#33889912;margin:1.5rem 0;padding:1rem 1.25rem;font-style:italic}.markdown blockquote p{margin:.2em 0}.markdown code{background:#3388991a;border-radius:6px;padding:.12em .4em;font-size:.88em}.markdown pre{border-radius:var(--radius-md);color:#e6edf3;background:#1a1a2ee0;margin:1.25rem 0;padding:1.1rem 1.25rem;font-size:.88rem;line-height:1.55;overflow-x:auto}.markdown pre code{color:inherit;background:0 0;padding:0}.markdown ul,.markdown ol{padding-left:1.4rem}.markdown li{margin:.3em 0}.markdown li.task-list-item{margin-left:-1.4rem;list-style:none}.markdown li input[type=checkbox]{accent-color:var(--color-accent);margin-right:.5rem}.markdown .table-wrap{border-radius:var(--radius-md);border:1px solid #33889926;margin:1.25rem 0;overflow-x:auto}.markdown table{border-collapse:collapse;width:100%;font-size:.92rem}.markdown th,.markdown td{text-align:left;border-bottom:1px solid #3388991a;padding:.65rem .9rem}.markdown th{font-family:var(--font-display);background:#33889914;font-size:.78rem;font-weight:600}.markdown tr:last-child td{border-bottom:none}.md-media{margin:0}.image-frame{aspect-ratio:16/9;border-radius:var(--radius-md);opacity:0;transition:opacity .6s var(--ease-out), transform .7s var(--ease-out);background:#0000000f;margin:1.5rem 0 .5rem;display:block;position:relative;overflow:hidden;transform:translateY(16px)}.image-frame.is-visible{opacity:1;transform:none}.image-frame img{object-fit:cover;opacity:0;filter:grayscale()blur(16px);width:100%;height:100%;transition:opacity .6s ease, filter 2s var(--ease-out), transform 2s var(--ease-out);position:absolute;inset:0;transform:scale(1.04)}.image-frame:has(img.is-loaded){aspect-ratio:auto}.image-frame img.is-loaded{object-fit:contain;opacity:1;filter:none;height:auto;max-height:75vh;display:block;position:relative;transform:none}.video-frame{margin:1.5rem 0 .5rem;display:block}.video-frame video{border-radius:var(--radius-md);background:#000;max-width:100%;max-height:75vh;margin:0 auto;display:block}.skeleton{background:linear-gradient(90deg,#0000,#fff9,#0000) 0 0/200% 100%;animation:1.4s linear infinite skeleton;position:absolute;inset:0}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.quest-fragment{color:color-mix(in srgb, var(--color-muted) 70%, transparent);border-bottom:1px dashed color-mix(in srgb, var(--color-muted) 30%, transparent);cursor:pointer;font-size:.88em;transition:color .4s,border-color .4s}.quest-fragment:hover{color:var(--color-secondary);border-bottom-color:var(--color-secondary)}.quest-fragment-icon{opacity:.55;margin-right:.3em;font-size:.8em;transition:opacity .3s,color .3s}.quest-fragment:hover .quest-fragment-icon,.quest-fragment.is-found .quest-fragment-icon{opacity:1;color:var(--color-accent)}.quest-fragment.is-found{color:var(--color-accent);cursor:default;border-bottom-color:#0000}.quest-fragment.just-found{animation:fragment-found 1.4s var(--ease-out)}@keyframes fragment-found{0%{color:#fff;text-shadow:0 0 12px var(--color-accent), 0 0 24px var(--color-accent)}}.contact-panel{width:min(620px,100%)}.contact-title{font-family:var(--font-display);letter-spacing:-.5px;margin:0 0 .4rem;padding-right:2.5rem;font-size:clamp(1.4rem,4vw,1.8rem);font-weight:700}.contact-subtitle{color:var(--color-muted);margin:0 0 2rem;line-height:1.5}.contact-form{flex-direction:column;gap:1.15rem;display:flex}.field-row{grid-template-columns:1fr 1fr;gap:1.15rem;display:grid}.field{flex-direction:column;gap:.4rem;display:flex}.field label{font-family:var(--font-display);letter-spacing:.6px;text-transform:uppercase;font-size:.7rem;font-weight:600}.field input,.field textarea{width:100%;color:var(--color-text);font:inherit;resize:vertical;transition:border-color .25s ease, background-color .25s ease, box-shadow .3s var(--ease-out);background:#ffffff80;border:1px solid #33889938;border-radius:12px;padding:.8rem 1rem;font-size:.95rem}.field input:focus,.field textarea:focus{border-color:var(--color-secondary);background:#ffffffe6;outline:none;box-shadow:0 0 0 4px #33889924}.field input:-webkit-autofill{-webkit-text-fill-color:var(--color-text);-webkit-box-shadow:inset 0 0 0 1000px #ffffffe6}.field.has-error input,.field.has-error textarea{border-color:var(--color-danger)}.field-error{color:var(--color-danger);font-size:.75rem;animation:.3s fade-in}.field-error.center{text-align:center;margin:0}.contact-success{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1rem;display:flex}.contact-success h2{font-family:var(--font-display);margin:.75rem 0 0}.contact-success p{color:var(--color-body);margin:0}.checkmark{fill:none;width:80px;height:80px;stroke:var(--color-accent);stroke-width:2px;animation:star-pop .5s var(--ease-spring) .9s both}.checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166px;animation:draw .6s var(--ease-out) forwards}.checkmark-check{stroke-dasharray:48;stroke-dashoffset:48px;animation:draw .35s var(--ease-out) .6s forwards}@keyframes draw{to{stroke-dashoffset:0}}@keyframes star-pop{50%{transform:scale(1.1)}}.tutorial-panel{width:min(520px,100%)}.tutorial{flex-direction:column;display:flex}.tutorial-progress{background:#33889914;height:4px}.tutorial-progress:after{content:"";background:var(--gradient);height:100%;transform:scaleX(var(--progress));transform-origin:0;transition:transform .6s var(--ease-out);display:block}.tutorial-step{text-align:center;animation:rise-in .55s var(--ease-out) both;flex-direction:column;align-items:center;padding:2.75rem 2rem 1.5rem;display:flex}.tutorial-step h2{font-family:var(--font-display);margin:1.25rem 0 .5rem;font-size:1.3rem;font-weight:700}.tutorial-step p{max-width:25rem;color:var(--color-body);margin:0;font-size:.95rem;line-height:1.6}.tutorial-illustration{border-radius:var(--radius-md);background:radial-gradient(circle,#33889914,#0000 70%);place-items:center;width:100%;height:130px;display:grid}.tutorial-art{max-width:100%;height:100%;color:var(--color-text)}.kbd{fill:#ffffffe6;stroke:#33889940;stroke-width:1.2px}.kbd.is-active{fill:color-mix(in srgb, var(--color-secondary) 15%, #fff);stroke:var(--color-secondary);stroke-width:1.8px}.kbd-text{fill:var(--color-text);font-family:var(--font-display);text-anchor:middle;font-size:9px;font-weight:700}.art-line,.art-radar,.art-orbit{fill:none;stroke:#33889940;stroke-width:1.4px}.art-soft{fill:#3388990d;stroke:#3893;stroke-width:1.4px}.art-accent{stroke:var(--color-accent);stroke-width:2px;stroke-linecap:round}.art-dash{stroke-dasharray:6 3;animation:1s linear infinite dash}.art-knob{fill:#fff;stroke:var(--color-secondary);stroke-width:2px}.art-pulse{fill:#2dbb3926;stroke:var(--color-accent);stroke-dasharray:2 2;transform-box:fill-box;transform-origin:50%;animation:2s ease-in-out infinite pulse}.art-pulse-dot{transform-box:fill-box;transform-origin:50%;animation:2s ease-in-out infinite pulse}.art-orbit{stroke:var(--color-secondary);stroke-dasharray:4 4;transform-box:fill-box;transform-origin:50%;animation:12s linear infinite orbit}.art-ship{animation:3s ease-in-out infinite float}.art-flame{transform-box:fill-box;transform-origin:top;animation:.5s ease-in-out infinite alternate flame}@keyframes dash{to{stroke-dashoffset:-9px}}@keyframes pulse{50%{opacity:.55;transform:scale(1.35)}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes float{50%{translate:2px -3px}}@keyframes flame{to{transform:scaleY(.6)}}.tutorial-footer{border-top:1px solid #33889914;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.5rem 1.5rem;display:flex}.tutorial-dots{gap:.4rem;display:flex}.tutorial-dot{cursor:pointer;width:7px;height:7px;transition:width .45s var(--ease-spring), background-color .3s ease;background:#33889938;border:none;border-radius:4px;padding:0}.tutorial-dot.is-active{background:var(--color-secondary);width:20px}.tutorial-actions{gap:.5rem;display:flex}.quest-panel{width:min(440px,100%)}.quest-content{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 2.5rem 2.75rem;display:flex}.quest-star{color:#d4a017;text-shadow:0 0 24px #d4a01773;font-size:3rem;line-height:1;animation:2.4s ease-in-out infinite star-pulse}.quest-content h2{font-family:var(--font-display);margin:0;font-size:1.45rem}.quest-content p{max-width:22rem;color:var(--color-body);margin:0;line-height:1.6}.quest-content .quest-hint{border-radius:var(--radius-md);color:#8a6a10;background:#d4a0171a;margin-top:.75rem;padding:.7rem 1.2rem;font-size:.88rem;font-style:italic}.fallback{background:radial-gradient(60% 50% at 10% 10%,#3c155d26,#0000),radial-gradient(60% 50% at 90% 90%,#2dbb391f,#0000);place-items:center;min-height:100%;padding:1.5rem;display:grid}.fallback-card{border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;gap:1rem;max-width:30rem;padding:2.5rem;display:flex}.fallback-card h1{font-family:var(--font-display);margin:0}.fallback-card p{color:var(--color-body);margin:0;line-height:1.6}@media (width<=640px){.modal{align-items:center;padding:.75rem}.modal-panel{max-height:90dvh}.modal-scroll{padding:2.25rem 1.4rem 2rem}.field-row{grid-template-columns:1fr}.tutorial-footer{padding-inline:1rem}.tutorial-footer .btn-ghost{display:none}.minimap{right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));transform-origin:100% 100%;scale:.75}.hud-bottom{bottom:calc(1.25rem + env(safe-area-inset-bottom));align-items:flex-start;max-width:calc(100% - 9rem);left:1rem;transform:none}.hud-hint{display:none}.settings{flex-direction:column;align-items:flex-end}.settings-panel{border-radius:var(--radius-md);transform-origin:100% 0;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 2rem);transform:translateY(-8px)scale(.95)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
