.cave-app{--cave-ink:#edf6f3;--cave-muted:#bed2d1;--cave-accent:#8ff1d7;z-index:70;isolation:isolate;color:var(--cave-ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--body);background:#071821;height:100dvh;position:fixed;inset:0;overflow:hidden}.cave-app *{box-sizing:border-box}.cave-app button,.cave-app a{touch-action:manipulation}.cave-app button{cursor:pointer;color:inherit}.cave-app button:focus-visible,.cave-app a:focus-visible,.cave-world canvas:focus-visible{outline-offset:4px;outline:3px solid #e0caff}.cave-backdrop,.cave-world,.cave-shade{width:100%;height:100%;position:absolute;inset:0}.cave-backdrop{object-fit:cover;object-position:center}.cave-world canvas{touch-action:none;width:100%;height:100%;display:block}.cave-shade{pointer-events:none;background:linear-gradient(#020d13bd,#0000 40% 60%,#020d13de)}.cave-topbar{padding:max(16px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:1rem;display:flex;position:relative}.cave-home{color:#effff9;align-items:center;gap:.5rem;min-height:44px;text-decoration:none;display:flex}.cave-home>span{font-size:1.5rem}.cave-home b{letter-spacing:.06em;margin-left:.35rem;font-size:1rem;font-weight:550}.cave-top-actions{align-items:center;gap:.5rem;display:flex}.cave-icon-button,.cave-guide-button{background:#0b232bbe;border:1px solid #94d6d833;border-radius:50%;justify-content:center;align-items:center;min-width:44px;height:44px;display:inline-flex}.cave-guide-button{border-radius:24px;padding:0 1rem;font-size:.9rem}.cave-sound-button{gap:7px}.cave-secret-hint{border-top:1px solid #b4ebdc35;margin-top:20px;padding-top:16px}.cave-secret-hint summary{cursor:pointer;color:#e3c8ec;min-height:44px}.cave-secret-hint .cave-guide-button{height:auto;min-height:44px;padding:.5rem 1rem}.cave-heading{top:calc(max(16px,env(safe-area-inset-top)) + 82px);left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));text-align:center;pointer-events:none;position:absolute}.cave-eyebrow{color:#b4d9cf;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:500;line-height:1.5}.cave-heading h1{font-family:var(--display);letter-spacing:-.015em;text-shadow:0 2px 18px #03161a;margin:.6rem 0 .75rem;font-size:clamp(2.2rem,4.1vw,3.6rem);font-weight:400;line-height:1.12}.cave-message{color:#deeeeb;text-shadow:0 2px 6px #021216;max-width:480px;margin:auto;font-size:.9rem;line-height:1.55}.cave-device-badge{color:#c9e8dc;background:#09222ba6;border:1px solid #c4eee333;border-radius:20px;margin:0 0 .7rem;padding:.2rem .7rem;font-size:.875rem;line-height:1.5;display:inline-flex}.cave-keyboard-help{pointer-events:none;background:#09222bd9;border:1px solid #b8e8d42b;border-radius:18px;padding:16px 18px}.cave-keyboard-help>div{align-items:center;gap:5px;display:flex}.cave-keyboard-help kbd{text-align:center;min-width:30px;font-size:.875rem;font-family:var(--body);color:#d8f8e9;border:1px solid #bddfd34d;border-bottom-width:3px;border-radius:6px;padding:3px 8px}.cave-keyboard-help span{margin-left:8px;font-size:.875rem}.cave-keyboard-help p{color:#c6dbd5;margin:9px 0 0;font-size:.875rem;line-height:1.55}.cave-control-setting{gap:8px;margin:18px 0;display:grid}.cave-control-setting label{font-size:1rem;font-weight:600}.cave-control-setting select{color:#effaf5;width:100%;min-height:48px;font:inherit;background:#102b34;border:1px solid #c1e7db55;border-radius:12px;padding:10px;font-size:1rem}.cave-control-setting span{color:#bdd5cb;font-size:.875rem}.cave-explore-controls{bottom:calc(120px + env(safe-area-inset-bottom));left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));pointer-events:none;justify-content:space-between;align-items:end;gap:1rem;display:flex;position:absolute}.cave-joystick-wrap{color:#d7e9e5;flex-direction:column;align-items:center;gap:8px;font-size:.875rem;display:flex}.cave-joystick{touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:auto;background:#061e2870;border:1px solid #d6fff338;border-radius:50%;width:108px;height:108px;position:relative}.cave-joystick-ring{border:1px solid #c7ffe319;border-radius:50%;position:absolute;inset:16px}.cave-stick{color:#e0fff6;background:#b6fff12b;border:1px solid #dbffe566;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:31px;left:31px;box-shadow:0 4px 14px #0004}.cave-side-actions{pointer-events:auto;flex-direction:column;align-items:end;gap:.75rem;display:flex}.cave-pet{background:#102932c9;border:1px solid #b8e8d43b;border-radius:28px;min-height:44px;padding:.65rem 1rem;font-size:.875rem}.cave-pet span{color:#aaf0d7;margin-left:.4rem;font-size:1.2rem}.cave-motion{background:#071c23bd;border:0;border-radius:24px;min-height:44px;padding:.45rem .75rem;font-size:.875rem;color:#cbddd8!important}.cave-dock{bottom:max(20px,env(safe-area-inset-bottom));background:#081b25eb;border:1px solid #b8f7e52b;border-radius:24px;grid-template-columns:repeat(4,minmax(0,1fr));width:min(460px,100% - 32px);padding:8px;display:grid;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0005}.cave-dock button{color:#c6d8d6;background:0 0;border:1px solid #0000;border-radius:17px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:62px;font-size:.875rem;line-height:1.5;display:flex}.cave-dock button.active{color:#abf4d9;background:#b8ffe211;border-color:#baffdf30}.cave-dock button:hover{background:#b8ffe218}.cave-die{background:#e3d6fc;border:1px solid #faf4ff80;border-radius:12px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:5px;width:60px;height:60px;padding:9px;display:grid;box-shadow:inset 0 -3px #765f9e28}.cave-die .pip{visibility:hidden;background:#342448;border-radius:50%}.cave-die .pip.visible{visibility:visible}.cave-die-small{width:23px;height:23px;box-shadow:none;background:0 0;border-color:currentColor;border-radius:5px;gap:2px;padding:4px}.cave-die-small .pip{background:currentColor}.cave-dialog{color:var(--cave-ink);width:min(440px,100% - 28px);max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;background:linear-gradient(150deg,#142d36,#0b1c2b 75%);border:1px solid #b4ebdc45;border-radius:26px;padding:24px;overflow-y:auto;box-shadow:0 20px 80px #0009}.cave-dialog::backdrop{-webkit-backdrop-filter:blur(5px);background:#020d1baa}.cave-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cave-panel-head .cave-eyebrow{letter-spacing:.08em;font-size:.75rem}.cave-panel-head .cave-icon-button{flex-shrink:0}.cave-dialog h2{font:400 2rem/1.18 var(--display);letter-spacing:-.015em;margin:16px 0 10px}.cave-dialog p{color:#c6d9d7;font-size:1rem;line-height:1.6}.cave-practice-intro{margin:0 0 18px}.cave-target{background:#030e1b4d;border:1px solid #b7dddb25;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:122px;margin-bottom:18px;display:flex}.cave-target>svg{color:#b1d6e1;width:34px;height:34px}.cave-target>span:not(.cave-die):not(.cave-revealed-color){color:#b7cfce;font-size:.875rem}.cave-revealed-color{border-radius:50%;width:54px;height:54px;box-shadow:0 0 34px #abede922}.cave-target.revealed{border-color:#aeecd049}.cave-choices{border:0;margin:0 0 20px;padding:0}.cave-choices legend{color:#c6d9d7;margin:0 0 10px;font-size:.875rem}.cave-color-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.cave-color-choices button{background:#ffffff05;border:1px solid #dbf7ee26;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:78px;padding:8px 0;font-size:.875rem;display:flex}.cave-color-choices button>span{border-radius:50%;width:24px;height:24px}.cave-color-choices button[aria-pressed=true],.cave-dice-choices button[aria-pressed=true]{outline-offset:0;background:#c5ffea16;outline:2px solid #b7f9db}.cave-dice-choices{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.cave-dice-choices button{background:0 0;border:1px solid #dbf7ee20;border-radius:14px;place-items:center;min-height:70px;padding:6px;display:grid}.cave-dice-choices .cave-die{border-radius:9px;gap:4px;width:48px;height:48px;padding:7px}.cave-primary{background:#b8ebd7;border:1px solid #c5ffe5;border-radius:14px;width:100%;min-height:50px;padding:10px 18px;font-size:1rem;font-weight:650;color:#0d2827!important}.cave-primary:disabled{opacity:.42;cursor:default}.cave-result{flex-direction:column;align-items:center;gap:3px;margin:0 0 18px;display:flex}.cave-result strong{color:#c0f3df;font-size:1.1rem}.cave-result span{color:#c6d9d7;font-size:.875rem}.cave-dialog .cave-fineprint{color:#b3c9c6;margin:16px 0 0;font-size:.875rem;line-height:1.6}.cave-guide-content dl{margin:20px 0}.cave-guide-content dt{color:#d8f4ea;margin:16px 0 3px;font-weight:650}.cave-guide-content dd{color:#c6d9d7;margin:0;font-size:1rem}.cave-guide-content .cave-primary{margin-top:22px}.cave-noscript{text-align:center;background:#081c28;border-radius:18px;padding:24px;position:absolute;top:40%;left:16px;right:16px}@media (width<=540px){.cave-topbar{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.cave-heading{top:calc(max(16px,env(safe-area-inset-top)) + 72px);left:24px;right:24px}.cave-heading h1{font-size:2.15rem}.cave-heading .cave-eyebrow{letter-spacing:.12em;font-size:.75rem}.cave-explore-controls{left:22px;right:20px;bottom:calc(118px + env(safe-area-inset-bottom))}.cave-joystick{width:96px;height:96px}.cave-stick{top:25px;left:25px}.cave-pet{max-width:190px}}@media (height<=540px) and (orientation:landscape){.cave-heading{top:65px;left:80px;right:80px}.cave-heading h1{margin:5px 0;font-size:1.7rem}.cave-heading .cave-eyebrow{display:none}.cave-message{font-size:.875rem}.cave-dock{width:340px;bottom:max(12px,env(safe-area-inset-bottom));padding:4px}.cave-dock button{min-height:55px}.cave-explore-controls{bottom:30px}.cave-side-actions{max-width:160px}}@media (prefers-reduced-motion:reduce){.cave-app *,.cave-app :before,.cave-app :after{scroll-behavior:auto!important;animation:none!important}}@media (width>=1024px) and (height>=600px){.cave-topbar{padding-inline:clamp(28px,4vw,96px);padding-top:clamp(18px,3vh,40px)}.cave-heading{top:clamp(96px,13vh,160px)}.cave-heading h1{font-size:clamp(2.7rem,3.5vw,4.5rem)}.cave-message{max-width:600px;font-size:1rem}.cave-explore-controls{bottom:clamp(130px,17vh,180px);left:clamp(28px,4vw,96px);right:clamp(28px,4vw,96px)}.cave-dock{width:clamp(460px,38vw,620px);bottom:clamp(24px,4vh,52px)}.cave-dock button{min-height:clamp(66px,7vh,86px);font-size:1rem}.cave-dialog{width:min(540px,100% - 48px);padding:30px}}@media (width<=700px){.cave-keyboard-help{max-width:180px;padding:10px}.cave-keyboard-help>div{flex-wrap:wrap}.cave-keyboard-help kbd{min-width:23px;padding:2px 5px}.cave-keyboard-help p{display:none}}@media (height<=540px) and (orientation:landscape){.cave-device-badge{margin-bottom:4px;font-size:.75rem}.cave-keyboard-help{max-width:170px;padding:8px}.cave-keyboard-help p{display:none}.cave-side-actions{gap:4px}.cave-pet,.cave-motion{min-height:36px;padding:5px 10px}}.cave-companions{gap:10px;margin:24px 0;display:grid}.cave-companions h3{color:#def4e8;margin:0;font-size:1.1rem}.cave-companions p{margin:0 0 4px}.cave-companions .cave-guide-button{text-align:left;width:100%;min-height:48px;margin:0}
