*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{font:14px/1.5 system-ui,sans-serif;background:#242d37;color:#f6f4ed}canvas{display:block;width:100%;height:100%;touch-action:none}button,summary{font:inherit;cursor:pointer}button:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid #d2eba9;outline-offset:3px}#player-status{position:fixed;left:50%;top:1rem;transform:translateX(-50%);margin:0;padding:.65rem 1rem;max-width:calc(100% - 2rem);border-radius:.5rem;background:#171c24e8;color:#f6f4ed;text-align:center;pointer-events:none}#player-object-menu{position:fixed;left:1rem;bottom:1rem;max-width:calc(100% - 2rem);border:1px solid #ffffff30;border-radius:.5rem;background:#171c24ef}summary{padding:.55rem .9rem}#player-objects{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem;max-height:35vh;overflow:auto}#player-objects button,#player-audio{border:1px solid #ffffff30;border-radius:.35rem;padding:.5rem .75rem;background:#293239;color:#f6f4ed}#player-audio{position:fixed;right:1rem;bottom:1rem;background:#cde8a8;color:#20291a}button[hidden],p[hidden],details[hidden]{display:none}
#root{position:relative}#player-object-menu{left:auto;right:1rem;z-index:5;max-width:min(300px,45%)}#player-audio{bottom:auto;top:1rem;z-index:6}#player-status{z-index:8}

/* Object list is intentionally hidden: users interact directly with the 3D scene. */
#player-object-menu{display:none!important}

@media(max-width:560px){#player-audio{top:54px;right:8px;padding:7px 9px;font-size:11px}}

.kx-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden;font:13px system-ui,sans-serif;z-index:3;color:#eaf3e4}.kx-overlay button{font:inherit;cursor:pointer;pointer-events:auto;border:1px solid #ffffff35;color:inherit;min-height:36px;border-radius:18px;background:#263831eb;padding:8px 13px}.kx-overlay button:focus-visible{outline:3px solid #cdea9a;outline-offset:3px}.kx-overlay [hidden]{display:none!important}.kx-hotspot{position:absolute;transform:translate(-50%,-50%);max-width:min(220px,60vw);box-shadow:0 3px 18px #0005;display:flex;align-items:center;gap:7px}.kx-hotspot:before{content:'';width:7px;height:7px;flex-shrink:0;border-radius:100%;background:var(--hotspot);box-shadow:0 0 10px var(--hotspot)}.kx-map{position:absolute;bottom:18px;left:18px;width:min(240px,48%);background:#132822e8;border:1px solid #e2f5dc30;border-radius:16px;padding:12px;pointer-events:auto;backdrop-filter:blur(10px)}.kx-map strong{font-size:12px;display:block;margin-bottom:8px}.kx-map-surface{position:relative;height:145px;border-radius:10px;background-color:#395146;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:cover}.kx-map-surface button{position:absolute;transform:translate(-50%,-50%);font-size:10px!important;min-height:30px!important;padding:5px 8px!important;max-width:110px;white-space:normal}.kx-map-surface .is-active{background:#daf2b5;color:#1d3025}.kx-reset{margin-top:8px;width:100%;font-size:11px!important}.kx-info{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-height:75%;overflow:auto;width:min(340px,75%);padding:24px;background:#162d25f5;border:1px solid #c8e9bf55;border-radius:20px;pointer-events:auto;box-shadow:0 20px 70px #0008}.kx-info strong{font-size:19px}.kx-info p{white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere}.kx-info button{width:100%}

.kx-product-modal{box-sizing:border-box;transform:none;max-width:calc(100% - 16px);max-height:calc(100% - 16px);padding:26px;background:#fff;color:#142b2c;border:1px solid #d9ebe7;border-radius:22px;z-index:30;box-shadow:0 24px 100px #102b4480}.kx-product-modal small{display:block;letter-spacing:.15em;color:#0f766e;font-size:10px;margin-top:15px}.kx-product-modal h2{margin:9px 0;font-size:27px;line-height:1.15}.kx-product-modal p{font-size:13px;color:#526064}.kx-product-modal button{color:#234c47;background:#eef5f2;border-color:#d2e2dc;border-radius:10px}.kx-product-modal .kx-modal-close{position:absolute;right:9px;top:9px;width:32px;height:32px;min-height:32px;padding:0;background:#fff;color:#142b2c;font-size:22px;z-index:2}.kx-product-image{display:block;width:100%;height:195px;object-fit:contain;background:#edf4f0;border-radius:12px}.kx-product-link{display:block;padding:13px;margin:14px 0 10px;border-radius:10px;background:#0f766e;color:white;text-align:center;text-decoration:none;pointer-events:auto}.kx-modal-zoom{animation:kx-zoom .25s ease both}.kx-modal-fade{animation:kx-fade .25s ease both}.kx-modal-slide{animation:kx-slide .3s ease both}@keyframes kx-zoom{from{opacity:0;scale:.85}to{opacity:1;scale:1}}@keyframes kx-fade{from{opacity:0}to{opacity:1}}@keyframes kx-slide{from{opacity:0;translate:0 35px}to{opacity:1;translate:0 0}}
.kx-pick-hand{position:absolute;bottom:-260px;left:53%;width:180px;z-index:20;opacity:0;filter:drop-shadow(0 14px 12px #0005);transition:opacity .15s,bottom .2s}.kx-pick-hand.active{opacity:1;bottom:-30px;animation:kx-grab .75s ease both}@keyframes kx-grab{0%{transform:translate(180px,150px) rotate(-20deg)}50%{transform:translate(-30px,-100px) rotate(-8deg)}100%{transform:translate(0,0) rotate(-5deg)}}.kx-walkbar{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:center;align-items:center;gap:12px;font-size:11px;z-index:7}.kx-walkbar span{background:#112c35d9;padding:10px;border-radius:20px}.kx-walkbar button{background:#0f766e;color:#fff}.kx-crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:22px;color:#fff;text-shadow:0 1px 3px #000}.ks-viewport canvas{touch-action:none}

/* Mobile controls: movement on the left, actions on the right. */
.kx-walk-pad,.kx-walk-actions{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none}.kx-walk-pad *,.kx-walk-actions *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;touch-action:none!important}.kx-walk-pad{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:194px;height:194px;pointer-events:none;z-index:12}.kx-walk-pad button{position:absolute;width:62px;height:62px;min-height:62px;padding:0;border-radius:19px;font-size:26px;line-height:1;pointer-events:auto;background:#13252fdc;backdrop-filter:blur(9px);box-shadow:0 5px 18px #0005}.kx-walk-pad [data-walk="forward"]{left:66px;top:0}.kx-walk-pad [data-walk="left"]{left:0;top:66px}.kx-walk-pad [data-walk="back"]{left:66px;top:132px}.kx-walk-pad [data-walk="right"]{left:132px;top:66px}.kx-walk-pad button.is-active,.kx-walk-pad button:active{background:#0f766e;transform:scale(.96)}.kx-walk-actions{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(2,minmax(72px,auto));gap:10px;pointer-events:auto;z-index:12}.kx-walk-actions button{min-width:76px;min-height:58px;padding:8px 11px;border-radius:18px;font-weight:800;background:#13252fdc;backdrop-filter:blur(9px);box-shadow:0 5px 18px #0005}.kx-walk-actions .kx-jump{grid-column:1/-1;min-height:64px;font-size:15px}.kx-walk-actions button.is-active,.kx-walk-actions button[aria-pressed="true"]{background:#0f766e;border-color:#b9f3dd;box-shadow:0 0 0 2px #9de7ce55,0 5px 18px #0005}.kx-walk-actions .kx-run[aria-pressed="true"]:after{content:' ON';font-size:10px;letter-spacing:.08em}
.kx-overlay .kx-info[hidden]{display:none}

.kx-journey{position:absolute;top:65px;left:50%;transform:translateX(-50%);max-width:calc(100% - 36px);width:max-content;background:rgba(15,43,40,.94);border:1px solid #b7b795;color:#fff4d9;padding:12px 20px;border-radius:12px;font:500 13px/1.5 system-ui;box-shadow:0 8px 28px #0003;text-align:center;pointer-events:none}.kx-journey[hidden]{display:none}

@media(max-width:700px){.kx-walkbar{display:none}.kx-map{left:auto;right:max(10px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));bottom:auto;width:min(210px,50%);padding:8px}.kx-map-surface{height:115px}.kx-hotspot{font-size:11px!important;padding:6px 9px!important}.kx-walk-pad{left:max(10px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));width:178px;height:178px}.kx-walk-pad button{width:58px;height:58px;min-height:58px;border-radius:18px;font-size:24px}.kx-walk-pad [data-walk="forward"]{left:60px}.kx-walk-pad [data-walk="left"]{top:60px}.kx-walk-pad [data-walk="back"]{left:60px;top:120px}.kx-walk-pad [data-walk="right"]{left:120px;top:60px}.kx-walk-actions{right:max(10px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));grid-template-columns:repeat(2,minmax(66px,auto));gap:8px}.kx-walk-actions button{min-width:68px;min-height:54px;padding:7px 9px}.kx-walk-actions .kx-jump{min-height:60px}}
@media(max-width:430px){.kx-walk-pad{transform:scale(.92);transform-origin:left bottom}.kx-walk-actions{transform:scale(.92);transform-origin:right bottom}}
/* On-demand world map and book reader, shared by editor and exported player. */
.kx-map-toggle{position:absolute;right:16px;top:16px;z-index:24;padding:9px 14px;border:1px solid #ffffff45;border-radius:24px;background:#17252fe8;color:#fff;pointer-events:auto;font:600 13px system-ui;cursor:pointer}
.kx-world-map,.kx-book-reader{position:absolute;inset:5% 4%;z-index:60;pointer-events:auto;box-sizing:border-box;border:1px solid #ffffff25;border-radius:18px;background:#17252ff5;color:#f4f6f4;box-shadow:0 20px 70px #0008;display:flex;flex-direction:column;overflow:hidden;font:14px/1.5 system-ui}
.kx-world-map[hidden],.kx-book-reader[hidden],.kx-map-toggle[hidden]{display:none!important}
.kx-world-map header,.kx-book-reader header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:12px;flex-shrink:0}
.kx-book-reader h2{font:600 18px system-ui;margin:0;overflow-wrap:anywhere}
.kx-world-map header button,.kx-book-reader button{color:inherit;background:#ffffff12;border:1px solid #ffffff35;padding:8px 13px;border-radius:8px;cursor:pointer;font:inherit}
.kx-book-reader button:disabled{opacity:.4;cursor:default}.kx-book-reader button:focus-visible,.kx-world-map button:focus-visible{outline:3px solid #e5ef97}
.kx-world-map>small{padding:8px 20px;text-align:center;color:#bdcfcb}.kx-world-map-surface{position:relative;align-self:center;height:calc(100% - 105px);max-width:100%;aspect-ratio:1;background:#202b31 center/100% 100% no-repeat;overflow:hidden}
.kx-world-map canvas{width:100%;height:100%;display:block}.kx-map-labels{position:absolute;inset:0;pointer-events:none}.kx-map-labels>span,.kx-map-labels>button{position:absolute;transform:translate(-50%,-50%);font:600 11px system-ui;padding:3px 6px;background:#12212fdc;color:white;border:1px solid #ffffff50;border-radius:4px;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.kx-map-labels>button{pointer-events:auto;cursor:pointer;background:#356056}.kx-map-player{position:absolute;width:9px;height:9px;border:2px solid white;border-radius:50%;background:#ffb845;box-shadow:0 0 0 4px #ffb84540;transform:translate(-50%,-50%);pointer-events:none;z-index:3}
.kx-book-reader{background:radial-gradient(ellipse at top,#314652,#15212b);inset:3% 3%}.kx-book-reader header{padding:10px 20px}.kx-book-reader nav{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px;flex-wrap:wrap}.kx-book-reader input{width:64px;padding:7px;border-radius:5px;background:#fff;color:#1c2c34;border:0}.kx-book-reader footer{display:flex;justify-content:space-between;align-items:center;padding:8px 20px;gap:10px}.kx-book-reader footer small{color:#bed4cc}
.kx-book-spread{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;flex:1;min-height:0;margin:0 auto;width:min(100% - 44px,1020px);perspective:1800px;box-shadow:0 8px 25px #0009;border:5px solid #754832;border-radius:6px;touch-action:pan-y}
.kx-book-page{background:#fff9ed;color:#302922;padding:clamp(10px,2vw,28px);display:flex;flex-direction:column;gap:10px;overflow:auto;min-width:0;position:relative;box-sizing:border-box;margin:0}.kx-book-page:nth-child(1){background:linear-gradient(90deg,#fff9ed 93%,#decdb6);border-right:1px solid #bda98c}.kx-book-page:nth-child(2){background:linear-gradient(90deg,#decdb6,#fff9ed 7%)}.kx-book-page h3{font:600 clamp(14px,2vw,23px) Georgia,serif;margin:0}.kx-book-page p{font:clamp(12px,1.3vw,16px)/1.7 Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.kx-book-page>img{width:100%;height:auto;min-height:0;max-height:100%;object-fit:contain;flex:1}.kx-book-page small{align-self:center;margin-top:auto;padding-top:8px;color:#8b7863;font-size:11px}.kx-book-page.is-empty{opacity:.9}
.kx-book-turn{position:absolute;inset:0 auto 0 50%;width:50%;transform-origin:left center;transform-style:preserve-3d;z-index:5;pointer-events:none;animation:kx-page-forward .35s ease-in-out forwards}.kx-book-turn.backward{left:0;transform-origin:right center;animation-name:kx-page-backward}.kx-book-turn .kx-book-page{position:absolute;inset:0;backface-visibility:hidden}.kx-book-turn .leaf-back{transform:rotateY(180deg)}@keyframes kx-page-forward{to{transform:rotateY(-180deg)}}@keyframes kx-page-backward{to{transform:rotateY(180deg)}}
.kx-book-link{margin:auto;text-align:center;padding:30px;display:flex;gap:20px;flex-direction:column}.kx-book-link a{color:#dcf2a7;font-size:18px}
@media(max-width:600px){.kx-world-map,.kx-book-reader{inset:3% 2%}.kx-book-spread{width:calc(100% - 16px);border-width:3px}.kx-book-reader nav{gap:7px;font-size:11px}.kx-book-reader nav button{padding:7px}.kx-map-labels>span,.kx-map-labels>button{font-size:9px;max-width:90px}.kx-map-toggle{right:10px;top:10px}}
@media(prefers-reduced-motion:reduce){.kx-book-turn{animation:none}}

/* Compact reader and carry controls, shared by the studio preview and exported player. */
.kx-walkbar{display:none!important}
.kx-book-stage{position:relative;display:flex;flex:1;min-height:0;padding:0 42px;box-sizing:border-box}
.kx-book-stage .kx-book-spread{width:100%;margin:0;touch-action:pan-y;user-select:none}
.kx-overlay .kx-book-stage>button{position:absolute;top:50%;transform:translateY(-50%);width:34px;min-width:0;min-height:52px;margin:0;padding:0;border-radius:10px;font-size:32px;line-height:1;z-index:6}
.kx-overlay .kx-book-prev{left:4px}.kx-overlay .kx-book-next{right:4px}
.kx-overlay .kx-book-reader nav{flex-wrap:nowrap;flex-shrink:0;gap:12px;padding:8px}
.kx-overlay .kx-book-reader nav input{box-sizing:border-box;flex:0 0 64px;width:64px;min-width:0;max-width:64px;margin:0;padding:6px 8px;background:#fff;color:#1c2c34}
.kx-book-reader nav span{white-space:nowrap}.kx-book-reader footer{flex-shrink:0;flex-wrap:wrap}.kx-book-reader footer small{margin-right:auto}
.kx-held-controls{position:absolute;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:5px;z-index:25;pointer-events:auto;max-width:calc(100% - 20px);padding:4px 6px;border:1px solid #ffffff1f;border-radius:24px;background:#14242a82;backdrop-filter:blur(8px);box-shadow:0 4px 18px #0005}
.kx-overlay .kx-held-controls button{width:auto;min-width:0;min-height:34px;white-space:nowrap;margin:0;padding:7px 10px;font-size:11px;background:#14242ab8;border-color:#ffffff24;box-shadow:none}
@media(max-width:600px){.kx-book-stage{padding:0 34px}.kx-overlay .kx-book-stage>button{width:28px}.kx-book-reader footer{padding:6px 10px;gap:6px}.kx-overlay .kx-book-reader footer button{padding:7px 9px;font-size:12px}}
/* Reading happens in the 3D hand view. Only compact controls occupy the HUD. */
.kx-overlay .kx-book-reader.kx-hand-reader{inset:auto 8px max(12px,env(safe-area-inset-bottom));max-width:fit-content;margin:auto;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;align-items:center;gap:2px;padding:0;pointer-events:none;font-size:11px;text-shadow:0 1px 4px #000c}
.kx-overlay .kx-hand-reader nav{gap:3px;padding:0;flex-wrap:nowrap;pointer-events:none}
.kx-overlay .kx-hand-reader .kx-book-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;min-width:0;min-height:34px;margin:0;padding:0;border:0;border-radius:50%;background:#14242a38;color:#fff;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.kx-overlay .kx-hand-reader .kx-book-icon:hover{background:#14242a80}.kx-overlay .kx-hand-reader .kx-book-icon:disabled{background:transparent;opacity:.2;pointer-events:none}
.kx-overlay .kx-hand-reader .kx-book-stow{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:72;background:#14242ab8;border:1px solid #ffffff28;box-shadow:0 4px 18px #0007}
.kx-hand-reader .kx-book-icon svg{width:16px;height:16px;filter:drop-shadow(0 1px 2px #0008);pointer-events:none}.kx-hand-reader .kx-book-status{min-width:76px;text-align:center;color:#fff;font-size:10px;font-variant-numeric:tabular-nums}
.kx-hand-reader>small{font-size:10px;color:#edf1ec;pointer-events:none}.kx-hand-reader a{color:#e7edbb;pointer-events:auto}
@media(pointer:coarse){.kx-overlay .kx-hand-reader .kx-book-icon{flex-basis:42px;width:42px;height:42px;min-height:42px;background:radial-gradient(circle,#14242a38 0 13px,transparent 14px)}.kx-overlay .kx-hand-reader nav{gap:0}.kx-hand-reader .kx-book-status{min-width:66px}}
.kx-ride-button{position:absolute;left:50%;bottom:22%;transform:translateX(-50%);z-index:45;pointer-events:auto;border:1px solid #d6edb2;border-radius:24px;background:#17382cec;color:#f4ffe6;padding:12px 22px;font:600 14px system-ui;cursor:pointer}.kx-ride-button[hidden]{display:none!important}

/* Held-book placement / throw controls */
.kx-throw-strength{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:11px;color:#e6eee9}
.kx-throw-strength input[type="range"]{width:92px;min-width:70px;margin:0;padding:0;accent-color:currentColor}
.kx-held-controls{align-items:center;flex-wrap:wrap;justify-content:center}
.kx-overlay .kx-held-controls button:disabled,.kx-overlay .kx-hand-reader button:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:600px){.kx-throw-strength{font-size:10px}.kx-throw-strength input[type="range"]{width:74px}}

/* First-person hand overlay for carried prizes/items and optional custom book hands. */
.kx-player-hands{position:absolute;inset:0;z-index:21;pointer-events:none;overflow:hidden}
.kx-player-hand{position:absolute;width:260px;max-width:46vw;aspect-ratio:3/4;transform-origin:70% 72%;filter:drop-shadow(0 12px 12px #0006);pointer-events:none;will-change:left,top,transform;--kx-hand-x:0px;--kx-hand-y:0px;--kx-hand-rotate:0deg;--kx-hand-scale-x:1;--kx-hand-scale-y:1}
.kx-player-hand img,.kx-player-hand svg{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.kx-player-hand img{display:none}.kx-player-hand.has-image img{display:block}.kx-player-hand.has-image .kx-player-hand-fallback{display:none}
.kx-player-hands[data-mode="carry"] .kx-player-hand-right{transform:translate(calc(-34% + var(--kx-hand-x)),calc(-22% + var(--kx-hand-y))) rotate(calc(-8deg + var(--kx-hand-rotate))) scale(var(--kx-hand-scale-x),var(--kx-hand-scale-y))}
.kx-player-hands[data-mode="reader"] .kx-player-hand{top:auto!important;width:clamp(150px,20vw,285px)!important;bottom:-5%;transform:translate(var(--kx-hand-x),var(--kx-hand-y)) rotate(var(--kx-hand-rotate)) scale(var(--kx-hand-scale-x),var(--kx-hand-scale-y))}
.kx-player-hands[data-mode="reader"] .kx-player-hand-left{left:-2%!important}
.kx-player-hands[data-mode="reader"] .kx-player-hand-right{left:auto!important;right:-2%}
.kx-player-hands[data-mode="reader"] .kx-player-hand-left img{object-position:left bottom}.kx-player-hands[data-mode="reader"] .kx-player-hand-right img{object-position:right bottom}
.kx-player-hand-left .kx-player-hand-fallback{transform:scaleX(-1)}
@media(max-width:700px){.kx-player-hand{max-width:58vw}.kx-player-hands[data-mode="reader"] .kx-player-hand{width:clamp(125px,29vw,220px)!important;bottom:5%}.kx-held-controls{bottom:max(92px,calc(env(safe-area-inset-bottom) + 80px));max-width:calc(100% - 190px)}.kx-throw-strength input[type="range"]{width:66px}}
@media(max-width:430px){.kx-held-controls{bottom:max(100px,calc(env(safe-area-inset-bottom) + 86px));max-width:calc(100% - 150px);padding:3px}.kx-overlay .kx-held-controls button{padding:6px 8px;font-size:10px}.kx-throw-strength{font-size:9px}.kx-throw-strength input[type="range"]{width:52px}}

.kx-ride-button{max-width:calc(100% - 24px);white-space:normal;line-height:1.45;text-align:center;}

/* Compact optional object information, independent of the primary action. */
.kx-object-interactions{position:absolute;inset:0;pointer-events:none;z-index:32}
.kx-near-object{position:absolute;display:flex;gap:5px;align-items:center;transform:translate(-50%,-50%);max-width:230px}
.kx-near-object button,.kx-object-actions button{pointer-events:auto;border:1px solid #ffffff35;border-radius:18px;background:#12202bdf;color:#f3f7fb;padding:5px 9px;font:12px/1.3 system-ui;cursor:pointer;box-shadow:0 2px 7px #0003}
.kx-near-object button:first-child{flex-shrink:0}.kx-near-object button:hover,.kx-object-actions button:hover{background:#284354}
.kx-object-actions{position:absolute;right:18px;top:84px;display:flex;gap:7px;max-width:65%;z-index:34;pointer-events:auto}
.kx-object-actions button:first-child{font-size:16px}.kx-object-actions[hidden],.kx-object-interactions[hidden]{display:none}
.kx-info.kx-product-modal{z-index:100}

.kx-announcement{position:absolute;top:54px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 34px));display:flex;align-items:flex-start;gap:12px;background:rgba(18,31,42,.96);border:1px solid rgba(211,224,235,.42);color:#f7fbff;padding:12px 12px 12px 16px;border-radius:13px;box-shadow:0 12px 36px #0007;z-index:21;pointer-events:auto;backdrop-filter:blur(10px)}.kx-announcement[hidden]{display:none!important}.kx-announcement>div{min-width:0;flex:1}.kx-announcement strong{display:block;font:650 13px/1.35 system-ui;margin-bottom:4px}.kx-announcement span{display:block;font:400 12px/1.5 system-ui;white-space:pre-wrap;color:#dce7ee}.kx-announcement button{width:26px;height:26px;min-width:26px;padding:0;border:0;border-radius:50%;background:#ffffff12;color:#fff;font:20px/1 system-ui;cursor:pointer}.kx-announcement button:hover{background:#ffffff22}.kx-journey{top:65px;z-index:19}.kx-has-announcement .kx-journey{top:calc(64px + var(--kx-announcement-height,64px))}
@media(max-width:700px){.kx-announcement{top:50px;width:min(430px,calc(100% - 20px));padding:10px 10px 10px 13px}.kx-journey{top:60px;max-width:calc(100% - 20px);font-size:12px;padding:10px 13px}.kx-has-announcement .kx-journey{top:calc(58px + var(--kx-announcement-height,60px))}}

.kx-claw{position:absolute;left:14px;top:68px;width:300px;max-width:calc(100% - 28px);max-height:calc(100% - 148px);overflow:auto;pointer-events:auto;padding:16px;border:1px solid #c6b77b70;border-radius:16px;background:#122d2bec;color:#f2f1df;box-shadow:0 12px 38px #081c2933;font:13px/1.5 system-ui,sans-serif;backdrop-filter:blur(12px);z-index:24;box-sizing:border-box}
.kx-claw[hidden],.kx-claw [hidden]{display:none!important}.kx-claw-heading,.kx-claw-status{display:flex;align-items:center;justify-content:space-between;gap:8px}.kx-claw-heading-actions{display:flex;align-items:center;gap:7px}.kx-claw .kx-claw-hide{width:28px;height:28px;min-height:28px;padding:0;border-radius:50%;font-size:18px;line-height:1;background:#1a3935;color:#e8e5d8;border-color:#c8bc8340}.kx-claw-kicker{font-size:9px;letter-spacing:1.8px;color:#d9c48c;font-weight:700}.kx-claw-wallet{font-size:12px;color:#f3d180;font-weight:700;white-space:nowrap}.kx-claw-status{margin-top:12px;font-size:16px;letter-spacing:.6px}.kx-claw-clock{font-variant-numeric:tabular-nums;color:#b9f3df}.kx-claw-message{min-height:36px;color:#d2dfd6;font-size:12px;margin:8px 0 12px}.kx-claw button{font:600 12px system-ui,sans-serif;color:#f3f1df;background:#284b44;border:1px solid #c8bc8360;border-radius:8px;padding:10px 12px;cursor:pointer;touch-action:none;min-height:40px}.kx-claw button:hover,.kx-claw button[data-held]{background:#42685a}.kx-claw button:focus-visible{outline:2px solid #e9ce87;outline-offset:2px}.kx-claw button:disabled{opacity:.45;cursor:not-allowed}.kx-claw-actions{display:flex;gap:6px;flex-wrap:wrap}.kx-claw [data-action=start],.kx-claw [data-action=drop]{background:#e3c886;color:#18352e}.kx-claw-row{display:flex;gap:10px;margin:12px 0;align-items:center}.kx-claw-pad{display:grid;grid-template-columns:repeat(3,38px);gap:3px}.kx-claw-pad button{padding:0;min-height:36px;font-size:18px}.kx-claw-pad [data-pad=forward]{grid-column:2}.kx-claw-pad [data-pad=left]{grid-column:1;grid-row:2}.kx-claw-pad [data-pad=back]{grid-column:2;grid-row:2}.kx-claw-pad [data-pad=right]{grid-column:3;grid-row:2}.kx-claw-drop{display:grid;gap:5px;flex:1}.kx-claw-drop button{padding:9px 5px;font-size:11px}.kx-claw-depth{display:block;font-size:11px;color:#d7dfd2}.kx-claw-depth output{float:right;font-variant-numeric:tabular-nums}.kx-claw-depth input{display:block;width:100%;accent-color:#e4cc8e;margin:6px 0}.kx-claw-manual{display:flex;gap:6px;margin:6px 0 10px}.kx-claw-manual button{flex:1;font-size:10px;min-height:32px;padding:6px}.kx-claw small{display:block;font-size:10px;color:#b2c7bf}.kx-claw-help{font-size:11px;margin-top:12px;color:#bdcfc4;border-top:1px solid #c1d0ab30;padding-top:9px}.kx-claw-help summary{cursor:pointer;color:#e3d7ae}.kx-claw-inventory{display:block;line-height:1.5}.ks-claw-prize{border:1px solid #768b7840;padding:10px;border-radius:8px;margin-bottom:10px}.ks-claw-prize summary{cursor:pointer;font-weight:600}.ks-claw-import{display:block;width:100%;margin:8px 0}.ks-claw-sources{max-height:240px;overflow:auto}
@media(max-width:760px){.kx-claw{left:8px;top:56px;width:262px;padding:11px;max-height:calc(100% - 175px)}.kx-claw-status{font-size:14px}.kx-claw-message{min-height:0}.kx-claw-help{display:none}.kx-claw-row{gap:6px}.kx-claw-kicker{font-size:8px;letter-spacing:1px}}

.kx-chat{position:fixed;left:10px;top:60px;z-index:2147482700;width:min(350px,calc(100vw - 20px));max-height:calc(100dvh - 140px);display:flex;flex-direction:column;border:1px solid #ffffff26;border-radius:14px;background:#101b27f5;box-shadow:0 14px 40px #0006;color:#edf4ff;font:13px/1.4 system-ui,sans-serif;overflow:hidden;backdrop-filter:blur(10px)}
.kx-chat[hidden]{display:none}.kx-chat header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #ffffff1c}.kx-chat button{border:1px solid #ffffff25;border-radius:8px;background:#286dbe;color:#fff;padding:8px 10px;font:inherit;cursor:pointer}.kx-chat header button{background:transparent;font-size:20px;line-height:1;padding:4px 8px}.kx-chat button:disabled{opacity:.45;cursor:default}
.kx-chat-log{height:220px;min-height:55px;overflow:auto;overscroll-behavior:contain;padding:10px;scrollbar-width:thin}.kx-chat-log:empty:before{content:'Belum ada pesan.';color:#93a7ba}.kx-chat-message{margin:0 28px 8px 0;padding:8px 10px;background:#223447;border-radius:10px;overflow-wrap:anywhere;white-space:pre-wrap}.kx-chat-message.mine{margin:0 0 8px 28px;background:#234b75}.kx-chat-message b{font-size:11px;color:#bedcff}.kx-chat-message p{margin:3px 0}.kx-chat-message small{font-size:10px;color:#a8bfd5}.kx-chat-message small:empty{display:none}.kx-chat-note{margin:0;padding:3px 12px 8px;font-size:10px;color:#a3b7ca}.kx-chat form{display:flex;gap:6px;padding:10px;border-top:1px solid #ffffff1c}.kx-chat input{flex:1;min-width:0;background:#09131d;color:#fff;border:1px solid #44596d;border-radius:8px;padding:9px 10px;font:16px system-ui,sans-serif}.kx-chat input:focus{outline:2px solid #70b2ff;outline-offset:-1px}
@media(max-height:500px){.kx-chat{top:50px;max-height:calc(100dvh - 60px)}.kx-chat-log{height:100px}}

.kx-inventory-toggle{position:absolute;top:56px;right:14px;z-index:32;pointer-events:auto!important;border:1px solid #ffffff35;border-radius:10px;background:#202c35ed;color:#fff;padding:9px 12px;font:600 12px system-ui;cursor:pointer}
.kx-inventory[hidden],.kx-phone[hidden],.kx-qr-reticle[hidden],.kx-inventory-toast[hidden],.kx-inventory-toggle[hidden]{display:none!important}
.kx-inventory{position:absolute;z-index:90;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(540px,calc(100% - 24px));max-height:80%;overflow:auto;box-sizing:border-box;background:#162d2a;color:#f6f2e9;border:1px solid #cfbb8155;border-radius:18px;padding:18px;box-shadow:0 16px 70px #0009;pointer-events:auto;font:13px/1.5 system-ui}
.kx-inventory header,.kx-phone header{display:flex;justify-content:space-between;align-items:center;gap:8px}.kx-inventory h2{margin:0;font:600 21px system-ui}
.kx-inventory nav{display:flex;gap:7px;margin:15px 0;flex-wrap:wrap}.kx-inventory button,.kx-phone button,.kx-phone select,.kx-inventory a{font:600 12px system-ui;border:1px solid #fff3;border-radius:8px;background:#294842;color:#fff;padding:9px;cursor:pointer;text-decoration:none}.kx-inventory button[aria-pressed=true],.kx-phone button[aria-pressed=true]{background:#e2c789;color:#15352e}.kx-inventory button:disabled{opacity:.5;cursor:default}.kx-inventory button:focus-visible,.kx-phone button:focus-visible{outline:2px solid #f1d391;outline-offset:2px}
.kx-inventory-item{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px;margin:9px 0;border:1px solid #fff2;border-radius:10px;background:#ffffff07}.kx-inventory-item strong,.kx-inventory-item small{display:block}.kx-inventory-item small{color:#b9cbc3;margin-top:4px}.kx-inventory-item-actions{display:flex;gap:5px;flex-wrap:wrap}.kx-inventory-item img{width:90px;max-height:65px;object-fit:cover;border-radius:5px}.kx-inventory-note{color:#b5c8c0;font-size:11px}.kx-cart-total{display:block;margin:12px 0}
.kx-phone{position:absolute;right:14px;top:102px;width:250px;max-height:calc(100% - 125px);overflow:auto;box-sizing:border-box;padding:12px;z-index:38;pointer-events:auto;color:#f9f4e8;background:#10211ff2;border:3px solid #304541;border-radius:23px;box-shadow:0 14px 35px #0006;font:12px/1.4 system-ui}.kx-phone>select{width:100%;margin:10px 0}.kx-phone-ratio{display:flex;align-items:center;gap:8px;margin:7px 0 9px;color:#c8d7d1;font:600 10px system-ui}.kx-phone-ratio span{white-space:nowrap}.kx-phone-ratio select{flex:1;min-width:0;margin:0;padding:7px 8px}.kx-phone-zoom{display:grid;grid-template-columns:auto 34px 1fr 34px;align-items:center;gap:6px;margin:7px 0 9px;color:#c8d7d1;font:600 10px system-ui}.kx-phone-zoom>span{white-space:nowrap}.kx-phone-zoom button{padding:6px 5px}.kx-phone-zoom .kx-phone-zoom-value{font-variant-numeric:tabular-nums;padding-inline:6px}.kx-phone-screen{display:block;width:100%;height:auto;max-height:430px;object-fit:contain;border-radius:10px;background:#080f0d;image-rendering:auto}.kx-phone-status{font-size:11px;min-height:32px;margin:8px 0}.kx-phone-actions{display:flex;gap:6px;margin-bottom:8px}.kx-phone-actions button{flex:1}.kx-phone header button{padding:4px 9px}.kx-phone button:disabled{opacity:.4}
.kx-qr-reticle{position:absolute;transform:translate(-50%,-50%);border:2px solid #d7e4df;box-shadow:0 0 0 1px #172e2599,0 0 0 9999px #07110d0d;pointer-events:none;z-index:30;border-radius:12px;max-width:85%;max-height:78%;transition:border-color .15s}.kx-qr-reticle[data-scanning=true]{border-color:#f3daa0;box-shadow:0 0 0 1px #172e2599,0 0 0 9999px #07110d0d,0 0 18px #f3daa055}.kx-inventory-toast{position:absolute;left:50%;top:62px;transform:translateX(-50%);max-width:65%;padding:10px 16px;border-radius:10px;background:#163b30ef;color:#fff5de;font:13px system-ui;z-index:98;pointer-events:none;text-align:center}
.kx-object-actions.kx-inline-actions{position:static!important;inset:auto!important;transform:none!important;display:inline-flex;align-items:center;gap:5px;margin:0}.kx-object-actions.kx-inline-actions button{min-width:30px;width:auto;min-height:30px;padding:5px 8px;border-radius:50%;font-size:13px}.kx-player-hands[data-skin=cat] .kx-player-hand-fallback{border-radius:55%;transform:scaleY(.65)}
.kx-map-player[data-skin=cat]{font-size:23px;background:none;border:0;box-shadow:none;width:28px;height:28px;color:inherit}
@media(max-width:600px){.kx-phone{width:174px;right:7px;top:100px;padding:8px;max-height:calc(100% - 130px)}.kx-phone button{padding:7px 5px;font-size:10px}.kx-phone-screen{max-height:260px}.kx-phone-ratio{display:block}.kx-phone-ratio span{display:block;margin-bottom:4px}.kx-phone-ratio select{width:100%}.kx-phone-zoom{grid-template-columns:auto 30px 1fr 30px;gap:4px}.kx-inventory-toggle{right:8px}.kx-inventory-item{flex-wrap:wrap}}
/* Object shelf: recognizable items instead of inventory rows. */
.kx-inventory{width:min(780px,calc(100% - 32px));padding:24px;border-radius:28px;background:radial-gradient(ellipse at 30% 0%,#36504e,#152928 65%);border:1px solid #d9c9a756;box-shadow:0 30px 100px #000b}
.kx-inventory h2{font-size:24px;letter-spacing:-.5px}.kx-inventory nav{border-bottom:1px solid #fff2;padding-bottom:14px;margin-bottom:20px}.kx-inventory nav button{border-radius:20px;padding:9px 18px}
.kx-item-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;align-items:stretch}.kx-item-grid>.kx-inventory-note{grid-column:1/-1}
.kx-inventory-item.kx-item-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;margin:0;padding:14px;border:1px solid #cfc8ae35;border-radius:19px;background:linear-gradient(160deg,#ffffff10,#ffffff03);transition:transform .18s,border-color .18s;overflow:hidden}.kx-item-card:hover,.kx-item-card:focus-within{transform:translateY(-3px);border-color:#e2c78990;background-color:#ffffff08}
.kx-item-card .kx-item-visual{height:160px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#d8e6d718,transparent 68%);position:relative}.kx-item-card .kx-item-visual:after{content:'';position:absolute;bottom:0;width:75%;height:1px;background:linear-gradient(90deg,transparent,#d8c69b55,transparent)}
.kx-item-card .kx-item-visual img{width:100%;height:100%;max-height:none;object-fit:contain;filter:drop-shadow(0 15px 10px #0006)}.kx-item-description strong{font-size:14px;overflow-wrap:anywhere}.kx-item-card .kx-inventory-item-actions{margin-top:auto}.kx-item-card .kx-inventory-item-actions button{flex:1;background:#d8c89d;color:#18332e;border:0;border-radius:11px}
.kx-item-phone{width:68px;height:131px;padding:5px;box-sizing:border-box;border-radius:15px;background:#1a222d;box-shadow:4px 5px 0 #080f17,9px 17px 18px #0007;transform:rotate(-12deg);border:2px solid #738b94;position:relative}.kx-item-phone:before{content:'';position:absolute;top:7px;left:24px;width:18px;height:5px;border-radius:6px;background:#101824;z-index:1}.kx-item-phone-display{height:100%;border-radius:9px;background:linear-gradient(150deg,#a6c4cc,#517284 45%,#253743);display:flex;flex-direction:column;align-items:center;justify-content:center;color:white}.kx-item-phone-display span{font:300 21px system-ui}.kx-item-phone-display small{font-size:7px;letter-spacing:1.5px;color:#fff9}
.kx-item-book{width:86px;height:116px;background:var(--item-color);color:#fff4d6;box-shadow:5px 5px 0 #ece6d3,7px 7px 0 var(--item-color),12px 18px 18px #0006;border-left:7px solid #0004;border-radius:3px;transform:rotate(-10deg);padding:15px 8px;box-sizing:border-box;font:600 12px Georgia;text-align:center;overflow:hidden}.kx-item-object{width:96px;height:96px;border-radius:22%;background:var(--item-color);display:grid;place-items:center;text-align:center;padding:10px;box-shadow:8px 12px 15px #0005}
.kx-phone-held{left:50%;right:auto;top:auto;bottom:18px;transform:translateX(-50%);width:240px;max-height:calc(100% - 100px);border:5px solid #35464c;border-radius:27px;background:#101e22;box-shadow:0 12px 25px #0007}.kx-phone-held .kx-phone-screen{max-height:185px}.kx-phone-held>header{padding-top:4px}.kx-phone-held>select{margin:6px 0}.kx-phone-held .kx-phone-status{min-height:0;margin:6px 0;font-size:10px}.kx-phone-held .kx-phone-ratio{margin:4px 0}.kx-phone-held button,.kx-phone-held select{padding:6px 8px}
.kx-player-hands[data-mode=phone]{z-index:39}.kx-player-hands[data-mode=phone] .kx-player-hand-left{transform:translate(-78%,-25%) rotate(12deg)}.kx-player-hands[data-mode=phone] .kx-player-hand-right{transform:translate(-22%,-25%) rotate(-12deg)}
.kx-drone-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:6px 0}.kx-drone-controls[hidden]{display:none}.kx-drone-controls button{touch-action:none}
@media(max-width:600px){.kx-inventory{padding:17px;width:calc(100% - 20px)}.kx-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kx-item-card .kx-item-visual{height:130px}.kx-inventory-item.kx-item-card{padding:10px}.kx-phone-held{width:196px;right:auto;top:auto;bottom:12px;max-height:calc(100% - 65px)}.kx-phone-held .kx-phone-screen{max-height:140px}.kx-phone-held .kx-phone-ratio{display:flex}.kx-phone-held .kx-phone-ratio span{margin:0}.kx-phone-held .kx-phone-ratio select{width:auto}}
@media(prefers-reduced-motion:reduce){.kx-item-card{transition:none!important}}
.kx-phone-settings{border-top:1px solid #ffffff20;margin-top:8px;padding-top:7px}.kx-phone-settings summary{cursor:pointer;color:#c4d4cf;font-size:11px;padding:2px}.kx-phone-settings>select{width:100%;margin-top:8px}.kx-phone-held .kx-phone-screen{max-height:240px}.kx-phone-held>.kx-phone-status{max-height:42px;overflow:auto}.kx-phone-held .kx-player-hand{pointer-events:none}
.kx-overlay.kx-camera-detached .kx-hotspot,.kx-overlay.kx-camera-detached .kx-crosshair{display:none!important}
@media(max-width:600px){.kx-phone-held .kx-phone-screen{max-height:175px}}

.kx-phone-held .kx-phone-screen{max-height:clamp(95px,18vh,160px)}
