/* 1.31.0 architecture boundary:
 * Legacy/base desktop stylesheet is intentionally prevented from applying
 * width-responsive rules at 900px and below. assets/escape-room-mobile.css
 * exclusively owns phone/tablet responsive layout in that range.
 */
:root{--kal-ter-wood:#6c4022;--kal-ter-wood2:#8a552d;--kal-ter-iron:#242421;--kal-ter-gold:#d4ad68;--kal-ter-ink:#f4e4c7}
.kal-ter-app{position:relative;min-height:760px;margin:0 calc(50% - 50vw);padding:34px 20px 60px;overflow:hidden;background:radial-gradient(circle at 50% 26%,rgba(222,151,65,.11),transparent 28%),linear-gradient(180deg,#17110d,#21160e 56%,#0c0907);color:#f6ead5;font-family:Rubik,Arial,sans-serif}
.kal-ter-app *{box-sizing:border-box}.kal-ter-app button,.kal-ter-app a{font:inherit}.kal-ter-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 170px 45px rgba(0,0,0,.75);z-index:50}
.kal-ter-dust{position:absolute;width:4px;height:4px;border-radius:50%;background:#e0bd79;opacity:.22;animation:kalTerDust 9s infinite ease-in-out}.kal-ter-dust-a{left:21%;top:48%}.kal-ter-dust-b{left:70%;top:33%;animation-delay:2.5s}.kal-ter-dust-c{left:52%;top:72%;animation-delay:5s}@keyframes kalTerDust{50%{transform:translate(35px,-80px);opacity:.48}}
.kal-ter-lobby,.kal-ter-puzzle{position:relative;z-index:4;max-width:1180px;margin:0 auto}.kal-ter-lobby-head{text-align:center;max-width:760px;margin:0 auto 24px;text-shadow:0 3px 22px #000}.kal-ter-lobby-head>span,.kal-ter-kicker{display:inline-block;color:#d8aa63;font-size:12px;font-weight:900;letter-spacing:.08em}.kal-ter-lobby-head h1{margin:7px 0 5px;color:#f1dfc1;font-size:clamp(28px,4vw,48px);line-height:1.08}.kal-ter-lobby-head p{margin:0;color:#bca78c}
.kal-ter-door-hall{position:relative;display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:clamp(20px,5vw,60px);align-items:end;max-width:900px;margin:0 auto;padding:50px 30px 64px;border:8px solid #291d15;border-radius:22px;background:repeating-linear-gradient(0deg,transparent 0 68px,rgba(0,0,0,.17) 69px 72px),repeating-linear-gradient(90deg,#3a2b22 0 105px,#31241c 106px 111px);box-shadow:0 30px 70px rgba(0,0,0,.62),inset 0 0 90px rgba(0,0,0,.72)}
.kal-ter-door-hall:after{content:"";position:absolute;left:0;right:0;bottom:0;height:82px;background:repeating-linear-gradient(91deg,#2c1d13 0 85px,#19110b 86px 90px);clip-path:polygon(4% 0,96% 0,100% 100%,0 100%);border-top:2px solid #120c08}
.kal-ter-room-door{position:relative;z-index:2;border:0;background:none;color:inherit;cursor:pointer;padding:0;perspective:900px}.kal-ter-room-number{position:absolute;z-index:6;top:-42px;left:50%;transform:translateX(-50%);min-width:70px;padding:5px 13px;border:2px solid #514235;border-radius:5px;background:linear-gradient(#bca57d,#8b7351);color:#2c1e14;font-size:19px;font-weight:950;box-shadow:0 5px 12px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.45)}
.kal-ter-stone-arch{position:relative;display:block;width:min(190px,100%);height:300px;margin:0 auto;border:13px solid #392b24;border-bottom-width:18px;border-radius:96px 96px 7px 7px;background:#070504;box-shadow:0 18px 25px rgba(0,0,0,.55),inset 0 0 0 3px #1c1410}.kal-ter-door-black{position:absolute;inset:0;background:radial-gradient(circle at 50% 55%,rgba(205,146,64,.11),transparent 53%),#060403}.kal-ter-door-leaf{position:absolute;z-index:3;inset:2px;transform-origin:left center;overflow:hidden;border-radius:77px 77px 3px 3px;background:linear-gradient(90deg,#5a351d,#87502a 48%,#5e391e);box-shadow:inset -12px 0 18px rgba(0,0,0,.34);transition:transform .78s cubic-bezier(.2,.82,.2,1)}.kal-ter-room-door.opening .kal-ter-door-leaf{transform:rotateY(-108deg)}
.kal-ter-door-plank{position:absolute;top:0;bottom:0;border-right:1px solid rgba(41,23,13,.78);border-left:1px solid rgba(201,141,78,.16)}.kal-ter-door-plank.p1{left:8%;width:31%}.kal-ter-door-plank.p2{left:39%;width:29%}.kal-ter-door-plank.p3{left:68%;width:27%}
.kal-ter-door-hinge{position:absolute;left:0;width:74px;height:14px;background:linear-gradient(#4c4c47,#191a18 55%,#33332f);border:1px solid #10100f;border-radius:0 10px 10px 0;box-shadow:0 3px 4px rgba(0,0,0,.5)}.kal-ter-door-hinge.h1{top:82px}.kal-ter-door-hinge.h2{bottom:63px}.kal-ter-door-knob{position:absolute;right:22px;top:53%;width:27px;height:27px;border:2px solid #5d431b;border-radius:50%;background:radial-gradient(circle at 35% 30%,#dfbf75,#916526 50%,#35230f 85%);box-shadow:0 4px 8px #1b1108}
.kal-ter-room-door.rattle .kal-ter-stone-arch{animation:kalTerRattle .35s linear}@keyframes kalTerRattle{20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}.kal-ter-lobby-message{height:31px;margin:13px auto 0;color:#d5b888;text-align:center;font-size:13px;font-weight:700}

.kal-ter-puzzle-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;max-width:1040px;margin:0 auto 10px}.kal-ter-puzzle-head h2{margin:3px 0 2px;font-size:clamp(25px,3.5vw,38px);color:#f1dfc1}.kal-ter-puzzle-head p{margin:0;color:#b9a58a;font-size:13px}.kal-ter-reset{width:42px;height:42px;border:1px solid #5d4630;border-radius:50%;background:#251b14;color:#d7b77e;font-size:25px;cursor:pointer}.kal-ter-scroll{max-width:850px;margin:18px auto 13px;padding:14px 22px;text-align:center;color:#3d2a1c;background:linear-gradient(90deg,#c6a471,#ecd1a0 15%,#dfc08d 82%,#b7905c);border:1px solid #8b683e;box-shadow:0 7px 20px rgba(0,0,0,.35),inset 0 0 26px rgba(87,48,13,.18);font-size:13px;transform:rotate(.15deg)}.kal-ter-scroll p{margin:0 0 4px}.kal-ter-scroll strong{color:#4c2615}.kal-ter-narrator{max-width:800px;min-height:44px;margin:12px auto;padding:11px 15px;border:1px solid rgba(193,144,72,.35);border-radius:9px;background:rgba(17,12,9,.72);color:#dfc89e;text-align:center;font-size:13px;box-shadow:0 8px 25px rgba(0,0,0,.3)}.kal-ter-narrator.danger{border-color:#885241;color:#e7b6aa}.kal-ter-narrator.success{border-color:#617a4d;color:#d8e8c9}
.kal-ter-puzzle-room{position:relative;max-width:1040px;height:520px;margin:12px auto 0;overflow:hidden;border:8px solid #2c1f16;border-radius:10px 10px 24px 24px;background:radial-gradient(circle at 50% 16%,rgba(235,170,79,.14),transparent 25%),repeating-linear-gradient(0deg,transparent 0 72px,rgba(0,0,0,.15) 73px 76px),repeating-linear-gradient(90deg,#39271b 0 95px,#312117 96px 101px),#2e2017;box-shadow:0 28px 65px rgba(0,0,0,.6),inset 0 0 70px rgba(0,0,0,.72)}.kal-ter-beam{position:absolute;left:0;right:0;top:0;height:28px;background:linear-gradient(#2b1d14,#110d09);box-shadow:0 9px 16px rgba(0,0,0,.6)}.kal-ter-lamp{position:absolute;top:24px;left:50%;width:3px;height:64px;background:#151515}.kal-ter-lamp:after{content:"";position:absolute;left:-24px;bottom:-16px;width:50px;height:26px;border-radius:50% 50% 20% 20%;background:#24201a;border:1px solid #080808}.kal-ter-lamp span{position:absolute;left:-4px;bottom:-20px;width:11px;height:11px;border-radius:50%;background:#f4bd61;box-shadow:0 0 30px 16px rgba(240,172,72,.23);z-index:2}.kal-ter-back-door{position:absolute;top:88px;left:50%;transform:translateX(-50%);width:118px;height:184px;border:7px solid rgba(25,16,11,.65);border-radius:62px 62px 7px 7px;background:rgba(8,6,5,.32);box-shadow:inset 0 0 25px #000}.kal-ter-floor{position:absolute;left:-10%;right:-10%;bottom:0;height:39%;background:repeating-linear-gradient(91deg,#302015 0 82px,#1e160f 84px 87px);clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);border-top:2px solid #160f0b}
.kal-ter-crates{position:absolute;z-index:6;left:5%;right:5%;bottom:86px;display:grid;grid-template-columns:repeat(3,1fr);gap:34px;align-items:end}.kal-ter-loading{grid-column:1/-1;text-align:center;color:#d8bd91;padding:70px 0}.kal-ter-crate-card{min-width:0;border:0;background:none;color:inherit;cursor:pointer;padding:0;display:flex;flex-direction:column;align-items:center}.kal-ter-crate-visual{position:relative;display:block;width:min(220px,100%);aspect-ratio:1.22}.kal-ter-crate-face{position:absolute;inset:16% 0 0;overflow:hidden;border:2px solid #24150d;border-radius:4px 4px 8px 8px;background:repeating-linear-gradient(0deg,#6f421f 0 31%,#3b2111 32% 34%,#774824 35% 65%,#3b2111 66% 68%,#5c341b 69% 100%);box-shadow:0 15px 25px rgba(0,0,0,.52),inset 0 0 24px rgba(0,0,0,.25)}.kal-ter-crate-face:before,.kal-ter-crate-face:after{content:"";position:absolute;top:-10%;width:11%;height:125%;background:#392115;opacity:.82;border-left:1px solid #24130b;border-right:1px solid #6f4628}.kal-ter-crate-face:before{left:25%;transform:rotate(27deg)}.kal-ter-crate-face:after{right:25%;transform:rotate(-27deg)}.kal-ter-crate-lid{position:absolute;z-index:4;left:-2%;right:-2%;top:8%;height:28%;border:2px solid #24150d;border-radius:5px;background:linear-gradient(90deg,#64391d,#855028,#553019);transform-origin:left bottom;transition:transform .55s ease}.kal-ter-crate-card.is-open .kal-ter-crate-lid{transform:rotate(-15deg) translateY(-10px)}.kal-ter-wrong-label{position:absolute;z-index:5;left:16%;right:16%;top:33%;padding:6px 5px;background:#d1b47e;border:1px solid #735d3b;color:#3c2817;box-shadow:0 4px 8px rgba(0,0,0,.35);display:flex;flex-direction:column;align-items:center;line-height:1.05;transform:rotate(-1.5deg)}.kal-ter-wrong-label small{font-size:10px;opacity:.72}.kal-ter-wrong-label strong{margin-top:4px;font-size:18px}.kal-ter-fruit{position:absolute;z-index:9;left:50%;top:-5px;transform:translate(-50%,20px) scale(.6);opacity:0;font-size:46px;filter:drop-shadow(0 8px 8px rgba(0,0,0,.45));transition:.45s ease}.kal-ter-fruit.show{opacity:1;transform:translate(-50%,-8px) scale(1)}.kal-ter-assigned{width:92%;min-height:38px;margin-top:8px;border:1px dashed #73593d;border-radius:5px;background:rgba(34,25,18,.72);color:#a99070;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px}.kal-ter-assigned.has-label{border-style:solid;background:#d2bc92;color:#3b291b;font-weight:900}.kal-ter-assigned i{font-style:normal;margin-inline-start:auto;margin-inline-end:9px;font-size:16px;color:#6b4e31}.kal-ter-explorer{position:absolute;z-index:12;left:50%;bottom:25px;transform:translateX(-50%);width:42px;height:104px;transition:left .62s cubic-bezier(.2,.8,.2,1);pointer-events:none;filter:drop-shadow(0 6px 4px rgba(0,0,0,.6))}.kal-ter-explorer .head{position:absolute;top:8px;left:13px;width:17px;height:18px;border-radius:48%;background:#b98f66;box-shadow:0 -7px 0 -2px #38271c}.kal-ter-explorer .body{position:absolute;top:27px;left:10px;width:24px;height:34px;border-radius:7px 7px 4px 4px;background:#544231}.kal-ter-explorer .arm{position:absolute;top:30px;width:7px;height:31px;border-radius:4px;background:#6a5039;transform-origin:top}.kal-ter-explorer .arm.a{left:6px;transform:rotate(15deg)}.kal-ter-explorer .arm.b{right:6px;transform:rotate(-15deg)}.kal-ter-explorer .leg{position:absolute;top:57px;width:8px;height:29px;background:#2a2521;border-radius:3px}.kal-ter-explorer .leg.a{left:12px}.kal-ter-explorer .leg.b{right:12px}.kal-ter-explorer .lamp{position:absolute;top:52px;right:-1px;width:8px;height:12px;border:1px solid #8d7345;background:#f1be55;box-shadow:0 0 14px 7px rgba(232,168,58,.18)}.kal-ter-explorer.is-walking .leg.a{animation:kalTerLegA .25s infinite alternate}.kal-ter-explorer.is-walking .leg.b{animation:kalTerLegB .25s infinite alternate}@keyframes kalTerLegA{to{transform:rotate(17deg)}}@keyframes kalTerLegB{to{transform:rotate(-17deg)}}
.kal-ter-label-table{max-width:780px;margin:18px auto 0;padding:20px 18px 17px;background:linear-gradient(90deg,#3b2415,#5a361f 45%,#432819);border:2px solid #24160e;border-radius:8px 8px 16px 16px;box-shadow:0 15px 28px rgba(0,0,0,.48),inset 0 2px rgba(255,214,142,.08)}.kal-ter-label-note{text-align:center;color:#dbc29b;display:flex;flex-direction:column;gap:2px;font-size:12px}.kal-ter-label-note strong{font-size:14px;color:#efd9b3}.kal-ter-labels{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.kal-ter-labels button{min-height:52px;border:1px solid #8f7247;border-radius:3px;background:#d7c39d;color:#3a291d;font-weight:900;box-shadow:0 4px 8px rgba(0,0,0,.35);cursor:pointer}.kal-ter-labels button.selected{outline:3px solid #d6a957;outline-offset:2px;background:#f0d9aa}.kal-ter-labels button.used{opacity:.25}.kal-ter-table-actions,.kal-ter-retry{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.kal-ter-table-actions button,.kal-ter-retry button,.kal-ter-explain-open{border-radius:6px;border:1px solid #695136;background:#211912;color:#cdb896;padding:9px 13px;cursor:pointer}.kal-ter-table-actions .primary{background:linear-gradient(#a77333,#6f461f);border-color:#c79450;color:#fff0d1;font-weight:800;min-width:170px}.kal-ter-table-actions .primary:disabled{opacity:.35;cursor:not-allowed}.kal-ter-retry{margin:15px auto 0}.kal-ter-retry button{border-color:#8d5945;color:#e5c0ad}
.kal-ter-secret{max-width:620px;margin:24px auto 0;display:flex;flex-direction:column;align-items:center;gap:10px}.kal-ter-secret-copy{display:flex;flex-direction:column;text-align:center;color:#d8c19e;font-size:12px}.kal-ter-secret-copy strong{color:#e9d6b8;font-size:15px}.kal-ter-secret-niche{position:relative;width:280px;height:310px;perspective:1000px;border:9px solid #2a1b12;border-radius:145px 145px 8px 8px;background:#090705;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.65),inset 0 0 26px #000}.kal-ter-secret-glow{position:absolute;inset:22px;background:radial-gradient(circle,rgba(232,192,101,.58),rgba(116,73,25,.18) 45%,transparent 72%);filter:blur(14px)}.kal-ter-reward{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center}.kal-ter-seal{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#748b56;border:2px solid #c8d8a6;color:white;font-weight:900}.kal-ter-reward h3{margin:8px 0 2px;color:#f0dfc0;font-size:20px}.kal-ter-reward p{margin:0 0 12px;color:#bca88b;font-size:12px}.kal-ter-reward a{border:1px solid #668157;border-radius:7px;background:#2f4a2b;color:#e7f2de!important;text-decoration:none!important;padding:10px 13px;font-weight:800}.kal-ter-secret-door{position:absolute;inset:0;z-index:4;transform-origin:left center;border-radius:130px 130px 0 0;background:repeating-linear-gradient(90deg,#56351f 0 55px,#29180f 56px 58px,#7b4b27 59px 115px);box-shadow:inset -12px 0 18px rgba(0,0,0,.35);transition:transform 1.05s cubic-bezier(.2,.85,.2,1)}.kal-ter-secret-door.open{transform:rotateY(-108deg) translateX(-7px)}.kal-ter-secret-door .hinge{position:absolute;left:0;width:80px;height:14px;background:#272724;border:1px solid #0c0c0b}.kal-ter-secret-door .hinge.one{top:78px}.kal-ter-secret-door .hinge.two{bottom:62px}.kal-ter-secret-door .handle{position:absolute;right:25px;top:53%;width:23px;height:23px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d4b66e,#8a6429 55%,#3d2a12);border:2px solid #4b3518}
.kal-ter-modal[hidden],.kal-ter-secret[hidden],.kal-ter-puzzle[hidden],.kal-ter-lobby[hidden],.kal-ter-label-table[hidden],.kal-ter-retry[hidden]{display:none!important}.kal-ter-modal{position:fixed;z-index:100000;inset:0;display:grid;place-items:center;padding:20px}.kal-ter-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.74);backdrop-filter:blur(3px)}.kal-ter-modal-card{position:relative;z-index:2;width:min(560px,94vw);padding:27px;border:1px solid #715638;border-radius:12px;background:linear-gradient(#2f2218,#19120d);color:#ead7b5;box-shadow:0 25px 80px #000}.kal-ter-modal-card h3{margin:0 0 12px;font-size:24px}.kal-ter-modal-card p{color:#ceb997;line-height:1.65}.kal-ter-modal-x{position:absolute;left:12px;top:9px;border:0;background:none;color:#d9bf91;font-size:29px;cursor:pointer}



.kal-ter-room-page .entry-title,.kal-ter-room-page .page-title,.kal-ter-room-page .wp-block-post-title{display:none!important}
.kal-ter-room-page .site-main,.kal-ter-room-page main{max-width:none!important}

/* Canonical desktop entrance. Mobile geometry is owned by escape-room-mobile.css. */
.kal-ter-floating-wrap {
  position:absolute !important;
  left:78px !important;
  top:350px !important;
  right:auto !important;
  bottom:auto !important;
  z-index:2147483000 !important;
  width:165px !important;
  height:235px !important;
  display:block;
  visibility:visible;
  opacity:1;
  pointer-events:auto !important;
  overflow:visible !important;
  isolation:isolate;
  font-family:Rubik,Arial,sans-serif;
  direction:rtl;
  transition:opacity .2s ease,transform .2s ease;
  filter:drop-shadow(0 15px 16px rgba(27,17,10,.34));
}

.kal-ter-floating-wrap[hidden] {
  display:none !important;
}

.kal-ter-floating-entry {
  position:absolute !important;
  inset:0 !important;
  width:165px !important;
  height:235px !important;
  z-index:2 !important;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  gap:5px;
  text-decoration:none !important;
  color:#f7e7c9 !important;
  transform:none !important;
  filter:none !important;
  pointer-events:auto !important;
}

.kal-ter-floating-close {
  position:absolute;
  z-index:20 !important;
  top:17px !important;
  right:-3px !important;
  width:27px !important;
  height:27px !important;
  padding:0;
  display:grid;
  place-items:center;
  border:1px solid rgba(80,57,37,.72);
  border-radius:50%;
  background:rgba(248,240,222,.96);
  color:#4d3928;
  box-shadow:0 3px 8px rgba(0,0,0,.22);
  font:700 18px/1 Arial,sans-serif;
  cursor:pointer;
  opacity:.82;
  transition:opacity .15s ease,transform .15s ease;
}

.kal-ter-floating-close:hover {
  opacity:1;
  transform:scale(1.08);
}

.kal-ter-floating-sign {
  position:relative;
  z-index:7;
  max-width:162px !important;
  padding:6px 11px !important;
  border:2px solid #5b4129 !important;
  border-radius:4px !important;
  background:linear-gradient(180deg,#4a321f,#23170e) !important;
  color:#f4e0bd;
  box-shadow:inset 0 0 0 1px rgba(255,225,169,.12),0 5px 9px rgba(0,0,0,.32) !important;
  font-size:11px !important;
  font-weight:950 !important;
  letter-spacing:.01em;
  text-shadow:0 1px 2px #000;
  white-space:nowrap !important;
}

.kal-ter-mini-stone {
  position:relative;
  display:block;
  width:136px !important;
  height:171px !important;
  padding:10px 11px 8px;
  border-radius:64px 64px 8px 8px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.07),transparent 30% 70%,rgba(0,0,0,.12)),
    repeating-linear-gradient(0deg,#75695b 0 25px,#5d5145 26px 28px);
  box-shadow:inset 0 0 0 2px #4b4036,inset 0 0 24px rgba(0,0,0,.22),0 7px 13px rgba(0,0,0,.28);
}

.kal-ter-stone {
  position:absolute;
  z-index:1;
  display:block;
  border-radius:3px;
  background:#817466;
  box-shadow:inset 0 -3px 4px rgba(0,0,0,.18);
}

.kal-ter-stone.s1 { left:-9px; top:56px; width:26px; height:21px; transform:rotate(-8deg); }
.kal-ter-stone.s2 { right:-7px; top:76px; width:24px; height:20px; transform:rotate(7deg); }
.kal-ter-stone.s3 { left:6px; bottom:7px; width:31px; height:18px; }
.kal-ter-stone.s4 { right:7px; bottom:8px; width:29px; height:17px; }

.kal-ter-mini-arch {
  position:relative !important;
  z-index:3;
  display:block !important;
  width:112px !important;
  height:151px !important;
  margin:0 auto;
  perspective:700px;
  border:7px solid #3d332c !important;
  border-bottom-width:9px !important;
  border-radius:52px 52px 4px 4px !important;
  background:#070504 !important;
  box-shadow:inset 0 0 0 2px #1d1712,0 6px 11px rgba(0,0,0,.5) !important;
  transition:transform .15s ease;
  overflow:hidden;
}

.kal-ter-floating-entry:hover .kal-ter-mini-arch {
  transform:translateY(-2px) scale(1.015) !important;
}

.kal-ter-mini-dark {
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 53%,rgba(218,157,69,.15),transparent 46%),#070504;
}

.kal-ter-mini-door {
  position:absolute !important;
  z-index:4 !important;
  inset:1px !important;
  display:block !important;
  transform-origin:left center !important;
  border-radius:44px 44px 2px 2px !important;
  background:linear-gradient(90deg,#5a341d,#7d4a27 31%,#5d361d 34%,#8a552e 63%,#4d2c19) !important;
  box-shadow:inset -11px 0 14px rgba(0,0,0,.38),inset 7px 0 8px rgba(255,189,96,.05) !important;
  transition:transform .58s cubic-bezier(.2,.8,.2,1) !important;
}

.kal-ter-floating-entry.is-opening .kal-ter-mini-door {
  transform:rotateY(-105deg) !important;
}

.kal-ter-mini-plank {
  position:absolute;
  top:0;
  bottom:0;
  border-right:1px solid rgba(38,21,12,.7);
  border-left:1px solid rgba(204,141,76,.12);
}

.kal-ter-mini-plank.p1 { left:7%; width:31%; }
.kal-ter-mini-plank.p2 { left:39%; width:29%; }
.kal-ter-mini-plank.p3 { left:70%; width:24%; }

.kal-ter-mini-hinge {
  position:absolute !important;
  left:-1px !important;
  width:46px !important;
  height:8px !important;
  background:linear-gradient(#55544e,#171714 55%,#33322e) !important;
  border:1px solid #111 !important;
  border-radius:0 6px 6px 0 !important;
  box-shadow:0 2px 3px rgba(0,0,0,.45);
}

.kal-ter-mini-hinge-a { top:43px !important; }
.kal-ter-mini-hinge-b { bottom:35px !important; }

.kal-ter-mini-knob {
  position:absolute !important;
  right:12px !important;
  top:53% !important;
  width:13px !important;
  height:13px !important;
  border-radius:50% !important;
  background:radial-gradient(circle at 35% 30%,#e3c37b,#956527 55%,#35230e) !important;
  border:1px solid #483211;
  box-shadow:0 2px 5px #000 !important;
}

.kal-ter-floating-whisper {
  margin-top:-2px;
  color:#6f5a43;
  font-size:9px;
  font-weight:700;
  opacity:.72;
  text-shadow:0 1px rgba(255,255,255,.5);
}

.kal-ter-floating-wrap.is-hiding {
  opacity:0;
  transform:translateX(-18px) scale(.92);
}

@media (max-width:1199px) and (min-width:901px) {
  .kal-ter-floating-wrap {
    left:34px !important;
    top:330px !important;
  }
}

/* Canonical floating WhatsApp control used by the home-page entrance.
 * This control deliberately is not an <a href="...whatsapp...">: two other
 * mobile plugins on the site reskin every matching anchor after page load.
 * The original destination URL is kept by JS and opened unchanged on click. */
.kal-ter-wa-source-hidden {
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

#kal-ter-global-wa-fixed {
  all:unset;
  position:fixed;
  z-index:2147482500;
  left:14px;
  right:auto;
  top:auto;
  bottom:14px;
  width:60px;
  height:60px;
  min-width:60px;
  min-height:60px;
  max-width:60px;
  max-height:60px;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  margin:0;
  padding:0;
  border:2px solid #fff;
  border-radius:50%;
  background:#18aa58;
  box-shadow:0 8px 22px rgba(0,0,0,.25),0 0 0 1px rgba(8,104,51,.16);
  transform:none;
  translate:none;
  rotate:none;
  scale:none;
  zoom:1;
  filter:none;
  clip-path:none;
  overflow:hidden;
  color:transparent;
  opacity:1;
  visibility:visible;
  cursor:pointer;
  pointer-events:auto;
  touch-action:manipulation;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:transparent;
}

#kal-ter-global-wa-fixed[hidden] {
  display:none;
}

#kal-ter-global-wa-fixed .kal-ter-global-wa-icon {
  display:block;
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  max-width:36px;
  max-height:36px;
  line-height:0;
  transform:none;
  translate:none;
  rotate:none;
  scale:none;
}

#kal-ter-global-wa-fixed .kal-ter-global-wa-icon svg {
  display:block;
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  max-width:100%;
  max-height:100%;
  transform:none;
  translate:none;
  rotate:none;
  scale:none;
}

#kal-ter-global-wa-fixed .bubble {
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

#kal-ter-global-wa-fixed .phone {
  fill:#fff;
}

@media (max-width:900px) {
  #kal-ter-global-wa-fixed {
    left:calc(12px + env(safe-area-inset-left,0px));
    bottom:calc(12px + env(safe-area-inset-bottom,0px));
    width:68px;
    height:68px;
    min-width:68px;
    min-height:68px;
    max-width:68px;
    max-height:68px;
  }

  #kal-ter-global-wa-fixed .kal-ter-global-wa-icon {
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
    max-width:40px;
    max-height:40px;
  }
}

/* 1.0.3 — RTL-safe interaction polish + richer dungeon scene */
.kal-ter-puzzle-room{
  height:560px;
  background:
    radial-gradient(ellipse at 50% 12%,rgba(255,196,108,.18) 0 7%,rgba(132,83,39,.08) 22%,transparent 43%),
    linear-gradient(180deg,rgba(8,5,3,.08),rgba(0,0,0,.22)),
    repeating-linear-gradient(0deg,transparent 0 71px,rgba(16,9,5,.25) 72px 76px),
    repeating-linear-gradient(90deg,#422d1f 0 94px,#2d1e15 95px 101px),
    #2d2017;
  box-shadow:0 30px 72px rgba(0,0,0,.68),inset 0 0 95px rgba(0,0,0,.78),inset 0 2px 0 rgba(211,161,94,.08);
}
.kal-ter-puzzle-room::before{
  content:"";position:absolute;z-index:2;pointer-events:none;left:50%;top:70px;width:430px;height:370px;transform:translateX(-50%);
  background:linear-gradient(180deg,rgba(255,198,106,.16),rgba(255,180,70,.055) 48%,transparent 92%);
  clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);filter:blur(1px);opacity:.78;
}
.kal-ter-puzzle-room::after{
  content:"";position:absolute;z-index:20;inset:0;pointer-events:none;
  box-shadow:inset 0 0 58px 18px rgba(0,0,0,.48),inset 0 -70px 95px rgba(0,0,0,.28);
}
.kal-ter-beam{height:34px;background:linear-gradient(#39271b 0,#1b130e 62%,#0e0a07);border-bottom:1px solid #4f3421;box-shadow:0 11px 20px rgba(0,0,0,.72),inset 0 2px rgba(255,255,255,.035)}
.kal-ter-beam::after{content:"";position:absolute;inset:5px 0;background:repeating-linear-gradient(90deg,transparent 0 85px,rgba(0,0,0,.18) 86px 89px);opacity:.72}
.kal-ter-lamp{z-index:8;height:71px;background:linear-gradient(90deg,#0d0d0c,#34302a,#0b0b0a);box-shadow:0 0 3px #000}
.kal-ter-lamp:after{left:-28px;bottom:-18px;width:59px;height:29px;background:linear-gradient(#312b23,#14120f);border:1px solid #050505;box-shadow:inset 0 2px 2px rgba(255,255,255,.06),0 5px 8px #000}
.kal-ter-lamp span{width:12px;height:12px;bottom:-22px;background:#ffd07b;box-shadow:0 0 20px 8px rgba(255,190,82,.38),0 0 58px 28px rgba(227,151,52,.13);animation:kalTerLampFlicker 2.8s ease-in-out infinite}
@keyframes kalTerLampFlicker{0%,100%{opacity:.96;filter:brightness(1)}37%{opacity:.78;filter:brightness(.88)}41%{opacity:1;filter:brightness(1.15)}68%{opacity:.9}}
.kal-ter-back-door{z-index:3;top:99px;width:132px;height:202px;border:8px solid rgba(22,14,9,.72);background:linear-gradient(90deg,rgba(7,5,4,.62),rgba(34,23,16,.44),rgba(7,5,4,.62));box-shadow:inset 0 0 32px #000,0 0 0 1px rgba(127,83,42,.14)}
.kal-ter-back-door::after{content:"";position:absolute;right:19px;top:96px;width:7px;height:7px;border-radius:50%;background:#75522d;box-shadow:0 0 0 2px #1e140d,0 0 7px rgba(230,170,83,.16)}
.kal-ter-floor{z-index:1;height:40%;background:linear-gradient(rgba(0,0,0,.12),transparent 20%),repeating-linear-gradient(91deg,#382519 0 80px,#21170f 82px 86px);border-top:3px solid #160f0b;box-shadow:inset 0 25px 34px rgba(0,0,0,.26)}
.kal-ter-floor::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 48px,rgba(0,0,0,.15) 49px 51px);opacity:.48}

.kal-ter-crates{z-index:7;bottom:96px;gap:36px}
.kal-ter-crate-card{position:relative;transition:transform .18s ease,filter .18s ease;outline:none}
.kal-ter-crate-card:hover{transform:translateY(-4px);filter:brightness(1.08)}
.kal-ter-crate-card:focus-visible .kal-ter-crate-visual{outline:3px solid rgba(240,190,102,.72);outline-offset:5px;border-radius:7px}
.kal-ter-crate-card.is-target{transform:translateY(-3px);filter:brightness(1.12)}
.kal-ter-crate-card.is-target .kal-ter-crate-visual{filter:drop-shadow(0 0 12px rgba(236,175,79,.26)) drop-shadow(0 16px 17px rgba(0,0,0,.42))}
.kal-ter-crate-card.is-target .kal-ter-wrong-label{box-shadow:0 4px 10px rgba(0,0,0,.42),0 0 0 2px rgba(248,206,125,.2)}
.kal-ter-crate-visual{transition:filter .25s ease}
.kal-ter-crate-face{
  border:2px solid #1d110a;
  background:
    linear-gradient(90deg,rgba(255,255,255,.04),transparent 13%,rgba(0,0,0,.08) 14% 18%,transparent 19% 76%,rgba(255,255,255,.025) 77%),
    repeating-linear-gradient(0deg,#7e4a23 0 30%,#38200f 31% 34%,#8a5428 35% 64%,#38200f 65% 68%,#693a1b 69% 100%);
  box-shadow:0 18px 28px rgba(0,0,0,.57),inset 0 0 28px rgba(0,0,0,.27),inset 0 2px rgba(255,220,170,.08)
}
.kal-ter-crate-face i{position:absolute;z-index:8;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#b59a75,#493a2a 55%,#17110c 100%);box-shadow:0 1px 2px #000}
.kal-ter-crate-face i:nth-child(1){left:8px;top:8px}.kal-ter-crate-face i:nth-child(2){right:8px;top:8px}.kal-ter-crate-face i:nth-child(3){left:50%;bottom:7px;transform:translateX(-50%)}
.kal-ter-crate-face b{position:absolute;z-index:7;bottom:5px;width:28px;height:28px;border-bottom:5px solid #3a2d24;opacity:.72}
.kal-ter-crate-face b:nth-of-type(1){left:5px;border-left:5px solid #3a2d24}.kal-ter-crate-face b:nth-of-type(2){right:5px;border-right:5px solid #3a2d24}
.kal-ter-crate-lid{height:30%;background:linear-gradient(180deg,rgba(255,214,155,.08),transparent 24%),repeating-linear-gradient(90deg,#5e351b 0 54px,#89522a 56px 110px,#4e2b16 112px 166px);box-shadow:0 7px 10px rgba(0,0,0,.32),inset 0 1px rgba(255,228,184,.09);transition:transform .58s cubic-bezier(.2,.75,.2,1)}
.kal-ter-crate-card.is-open .kal-ter-crate-lid{transform:rotate(-24deg) translate(-2px,-18px);box-shadow:0 15px 16px rgba(0,0,0,.42)}
.kal-ter-wrong-label{top:34%;background:linear-gradient(#dfc796,#c9aa72);border:1px solid #705532;color:#382416;box-shadow:0 5px 10px rgba(0,0,0,.42),inset 0 0 13px rgba(255,255,255,.11)}
.kal-ter-wrong-label::before,.kal-ter-wrong-label::after{content:"";position:absolute;top:6px;width:5px;height:5px;border-radius:50%;background:#725b3d;box-shadow:0 1px 1px rgba(0,0,0,.5)}
.kal-ter-wrong-label::before{left:7px}.kal-ter-wrong-label::after{right:7px}
.kal-ter-fruit{font-size:52px;transition:opacity .28s ease,transform .58s cubic-bezier(.18,.9,.28,1.35)}
.kal-ter-fruit.show{transform:translate(-50%,-17px) scale(1.04);animation:kalTerFruitBob 1.8s ease-in-out .55s infinite}
@keyframes kalTerFruitBob{0%,100%{margin-top:0}50%{margin-top:-5px}}

.kal-ter-explorer{z-index:13;bottom:27px;width:48px;height:112px;transition:left .72s cubic-bezier(.22,.75,.18,1),transform .22s ease;filter:drop-shadow(0 8px 5px rgba(0,0,0,.65))}
.kal-ter-explorer::before{content:"";position:absolute;left:50%;bottom:2px;width:43px;height:9px;border-radius:50%;background:rgba(0,0,0,.5);transform:translateX(-50%);filter:blur(2px)}
.kal-ter-explorer .head{top:7px;left:14px;width:20px;height:21px;background:linear-gradient(145deg,#c79c72,#9a704d);box-shadow:inset -3px -2px rgba(93,58,34,.18)}
.kal-ter-explorer .head::before{content:"";position:absolute;left:-1px;right:-1px;top:-4px;height:9px;border-radius:8px 8px 3px 3px;background:#2c2018;box-shadow:3px 2px 0 -2px #2c2018}
.kal-ter-explorer .head::after{content:"";position:absolute;left:5px;top:9px;width:3px;height:3px;border-radius:50%;background:#2d2119;box-shadow:8px 0 #2d2119}
.kal-ter-explorer .body{top:29px;left:9px;width:30px;height:38px;background:linear-gradient(90deg,#3a3028,#66513e 48%,#3b3027);border:1px solid #241b15;box-shadow:inset 0 -8px rgba(0,0,0,.12)}
.kal-ter-explorer .body::after{content:"";position:absolute;left:2px;right:2px;bottom:9px;height:4px;background:#272019;box-shadow:0 1px #8b6d48}
.kal-ter-explorer .arm{top:32px;height:34px;background:linear-gradient(#70553d,#4d3b2d);transition:transform .25s ease}
.kal-ter-explorer .arm::after{content:"";position:absolute;left:0;bottom:-3px;width:7px;height:7px;border-radius:50%;background:#b88b62}
.kal-ter-explorer .leg{top:64px;height:32px;background:linear-gradient(#292622,#171615)}
.kal-ter-explorer .lamp{top:55px;right:-4px;width:10px;height:14px;border:1px solid #5c4729;background:linear-gradient(#ffe08b,#d59a3c);box-shadow:0 0 12px 5px rgba(244,185,75,.34),0 0 24px 9px rgba(240,164,49,.11)}
.kal-ter-explorer.is-walking{animation:kalTerExplorerBob .28s ease-in-out infinite alternate}
@keyframes kalTerExplorerBob{to{transform:translateX(-50%) translateY(-3px)}}
.kal-ter-explorer.is-inspecting{transform:translateX(-50%) translateY(-3px) rotate(-2deg)}
.kal-ter-explorer.is-inspecting .body{transform:rotate(-7deg);transform-origin:bottom center}
.kal-ter-explorer.is-inspecting .arm.b{transform:rotate(-48deg) translateY(-4px)}
.kal-ter-explorer.is-inspecting .arm.a{transform:rotate(29deg)}
.kal-ter-explorer.is-inspecting .head{transform:translateY(2px) rotate(-5deg)}



/* 1.0.4 — room 1.1: nine-coin weighing puzzle */
.kal-ter-coin-puzzle{position:relative;z-index:4;max-width:1180px;margin:0 auto}
.kal-ter-coin-puzzle[hidden]{display:none!important}
.kal-ter-head-actions{display:flex;align-items:center;gap:8px}
.kal-ter-back-lobby{min-height:40px;padding:8px 13px;border:1px solid #5d4630;border-radius:10px;background:#251b14;color:#d7b77e;font-weight:800;cursor:pointer}
.kal-ter-back-lobby:hover{filter:brightness(1.15)}
.kal-ter-coin-message{max-width:800px;min-height:44px;margin:12px auto;padding:11px 15px;border:1px solid rgba(193,144,72,.35);border-radius:9px;background:rgba(17,12,9,.78);color:#dfc89e;text-align:center;font-size:13px;box-shadow:0 8px 25px rgba(0,0,0,.3)}
.kal-ter-coin-message.danger{border-color:#885241;color:#e7b6aa}.kal-ter-coin-message.success{border-color:#617a4d;color:#d8e8c9}
.kal-ter-coin-room{position:relative;max-width:1040px;height:560px;margin:12px auto 0;overflow:hidden;border:8px solid #2a1c13;border-radius:10px 10px 24px 24px;background:radial-gradient(circle at 50% 8%,rgba(255,206,112,.13),transparent 26%),repeating-linear-gradient(0deg,transparent 0 71px,rgba(16,9,5,.25) 72px 76px),repeating-linear-gradient(90deg,#3d2a1d 0 94px,#2d1e15 95px 101px),#2d2017;box-shadow:0 30px 72px rgba(0,0,0,.68),inset 0 0 95px rgba(0,0,0,.78)}
.kal-ter-coin-room::after{content:"";position:absolute;z-index:30;inset:0;pointer-events:none;box-shadow:inset 0 0 65px 18px rgba(0,0,0,.48),inset 0 -80px 100px rgba(0,0,0,.28)}
.kal-ter-coin-light-beam{position:absolute;z-index:2;top:46px;left:50%;width:410px;height:365px;transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,204,117,.14),rgba(237,161,63,.045) 55%,transparent 92%);clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);pointer-events:none}
.kal-ter-coin-lantern{position:absolute;z-index:8;top:18px;left:50%;width:5px;height:70px;transform:translateX(-50%);background:#17130f}
.kal-ter-coin-lantern::after{content:"";position:absolute;left:-28px;bottom:-18px;width:60px;height:30px;border-radius:50% 50% 18% 18%;background:linear-gradient(#393027,#15110e);border:1px solid #050505;box-shadow:0 6px 10px #000}
.kal-ter-coin-lantern span{position:absolute;left:-4px;bottom:-23px;width:13px;height:13px;border-radius:50%;background:#ffd27c;box-shadow:0 0 23px 9px rgba(255,192,85,.38),0 0 65px 32px rgba(231,151,50,.12);animation:kalCoinFlicker 2.5s ease-in-out infinite}
@keyframes kalCoinFlicker{0%,100%{opacity:1}42%{opacity:.72}46%{opacity:1}68%{opacity:.88}}
.kal-ter-coin-secret-door{position:absolute;z-index:3;left:5%;top:105px;width:110px;height:200px;border:7px solid #24160e;border-radius:58px 58px 7px 7px;background:repeating-linear-gradient(90deg,#5a351d 0 20px,#704425 21px 38px);box-shadow:inset 0 0 25px #000,0 8px 22px #0009;transform-origin:left center;transition:transform 1s cubic-bezier(.2,.75,.1,1),filter .8s}
.kal-ter-coin-secret-door i{position:absolute;left:19px;top:103px;width:9px;height:15px;border-radius:50% 50% 3px 3px;background:#18100b}
.kal-ter-coin-secret-door.open{transform:perspective(500px) rotateY(-74deg);filter:brightness(.6)}
.kal-ter-coin-floor{position:absolute;z-index:1;left:-10%;right:-10%;bottom:0;height:39%;background:repeating-linear-gradient(91deg,#342218 0 82px,#1e160f 84px 87px);clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);border-top:2px solid #160f0b}
.kal-ter-coin-table{position:absolute;z-index:4;left:5%;right:5%;bottom:69px;height:81px;border:4px solid #1d0f09;border-radius:9px;background:linear-gradient(#704627,#4b2b18 28%,#321c11);box-shadow:0 14px 20px #000b,inset 0 2px #a47045}
.kal-ter-coin-table::after{content:"";position:absolute;left:5%;right:5%;bottom:-63px;height:63px;background:linear-gradient(90deg,#2a160d 0 7%,transparent 7% 93%,#2a160d 93%)}
.kal-ter-coin-bank{position:absolute;z-index:10;right:5.5%;bottom:156px;width:34%;min-width:285px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;direction:ltr}
.kal-ter-coin{position:relative;aspect-ratio:1;min-width:42px;border-radius:50%;border:2px solid #8d6727;cursor:pointer;color:#3d2b10;font-weight:900;font-size:16px;background:radial-gradient(circle at 35% 28%,#fff3ad 0 6%,#e6bc54 24%,#b27c27 63%,#7f4e19 100%);box-shadow:inset 0 0 0 3px #e0b44f55,0 4px 7px #0009;transition:.16s}
.kal-ter-coin::after{content:"";position:absolute;inset:5px;border:1px dashed #76501c;border-radius:50%}
.kal-ter-coin:hover{transform:translateY(-4px) rotate(-3deg);filter:brightness(1.1)}
.kal-ter-coin.selected{outline:3px solid #f7e0a0;outline-offset:3px;transform:translateY(-5px)}
.kal-ter-scale{position:absolute;z-index:9;left:33%;bottom:149px;width:38%;min-width:325px;height:230px}
.kal-ter-scale .base{position:absolute;left:37%;bottom:0;width:26%;height:22px;border-radius:50%;background:linear-gradient(#977238,#3f2b18);border:3px solid #27170d}
.kal-ter-scale .post{position:absolute;left:48%;bottom:15px;width:4%;height:145px;background:linear-gradient(90deg,#4c3219,#c59c58,#4c3219);border:1px solid #2b180d}
.kal-ter-scale .cap{position:absolute;left:44%;bottom:150px;width:12%;height:22px;border-radius:50%;background:#8a6937;border:2px solid #3c260f}
.kal-ter-scale .beam{position:absolute;left:12%;bottom:145px;width:76%;height:12px;transform-origin:50% 50%;background:linear-gradient(#c69a51,#5f3f1f);border:2px solid #33200e;border-radius:8px;transition:transform .85s cubic-bezier(.2,.8,.2,1)}
.kal-ter-scale[data-tilt="left-up"] .beam{transform:rotate(9deg)}.kal-ter-scale[data-tilt="right-up"] .beam{transform:rotate(-9deg)}
.kal-ter-scale.shake{animation:kalCoinScaleShake .8s ease-in-out}@keyframes kalCoinScaleShake{20%{transform:rotate(.7deg)}45%{transform:rotate(-.7deg)}70%{transform:rotate(.35deg)}}
.kal-ter-scale .chain{position:absolute;top:7px;width:2px;height:56px;background:repeating-linear-gradient(#8b6a38 0 4px,#302011 4px 7px)}
.kal-ter-scale .chain.l1{left:8%}.kal-ter-scale .chain.l2{left:32%}.kal-ter-scale .chain.r1{right:8%}.kal-ter-scale .chain.r2{right:32%}
.kal-ter-scale .pan{position:absolute;top:55px;width:35%;height:52px;padding:0;border:0;border-bottom:8px solid #9c7540;border-radius:0 0 70px 70px;background:transparent;cursor:pointer;transition:transform .85s}
.kal-ter-scale .pan.left{left:0}.kal-ter-scale .pan.right{right:0}
.kal-ter-scale[data-tilt="left-up"] .pan.left{transform:translateY(-27px)}.kal-ter-scale[data-tilt="left-up"] .pan.right{transform:translateY(27px)}.kal-ter-scale[data-tilt="right-up"] .pan.left{transform:translateY(27px)}.kal-ter-scale[data-tilt="right-up"] .pan.right{transform:translateY(-27px)}
.kal-ter-scale .slot{position:absolute;left:7%;right:7%;bottom:2px;height:40px;display:flex;align-items:flex-end;justify-content:center;gap:3px;direction:ltr}
.kal-ter-coin-mini{width:31px;height:31px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900;color:#3d2b10;background:radial-gradient(circle at 35% 28%,#fff3ad,#bd872b 66%,#754615);border:1px solid #74501c;box-shadow:0 2px 4px #0008;cursor:pointer}
.kal-ter-scale .pan-label{position:absolute;top:111px;width:35%;text-align:center;font-size:12px;color:#bca276}.kal-ter-scale .pan-label.left{left:0}.kal-ter-scale .pan-label.right{right:0}
.kal-ter-coin-person{position:absolute;z-index:14;left:8%;bottom:148px;width:70px;height:135px;transition:left .8s cubic-bezier(.22,.75,.18,1);filter:drop-shadow(0 8px 5px #0008)}
.kal-ter-coin-person .head{position:absolute;top:0;left:22px;width:31px;height:34px;border-radius:45% 45% 50% 50%;background:#d2a172;border:2px solid #2b1a10}.kal-ter-coin-person .hair{position:absolute;top:-3px;left:20px;width:38px;height:19px;border-radius:50% 50% 20% 20%;background:#332116}.kal-ter-coin-person .body{position:absolute;top:32px;left:15px;width:45px;height:57px;border-radius:14px 14px 7px 7px;background:linear-gradient(90deg,#314152,#52687a,#293744);border:2px solid #1a1714}.kal-ter-coin-person .arm{position:absolute;top:44px;left:8px;width:13px;height:50px;background:#c8966a;border:2px solid #2b1a10;border-radius:8px;transform:rotate(16deg);transform-origin:top}.kal-ter-coin-person .leg{position:absolute;top:84px;width:15px;height:48px;background:#24201c;border-radius:5px;border:2px solid #15110f}.kal-ter-coin-person .leg.a{left:18px}.kal-ter-coin-person .leg.b{right:13px}
.kal-ter-coin-person.walking{animation:kalCoinBob .24s linear infinite}@keyframes kalCoinBob{50%{transform:translateY(-5px) rotate(-1deg)}}.kal-ter-coin-person.walking .leg.a{animation:kalCoinLegA .32s linear infinite}.kal-ter-coin-person.walking .leg.b{animation:kalCoinLegB .32s linear infinite}@keyframes kalCoinLegA{50%{transform:rotate(15deg)}}@keyframes kalCoinLegB{50%{transform:rotate(-15deg)}}
.kal-ter-coin-person.pulling .arm{animation:kalCoinPull .7s ease-in-out}@keyframes kalCoinPull{45%{transform:rotate(-48deg) translate(4px,-5px)}}
.kal-ter-coin-controls{position:absolute;z-index:18;left:5%;bottom:12px;width:90%;display:flex;align-items:center;justify-content:center;gap:10px}.kal-ter-coin-controls button{min-height:44px;padding:9px 16px;border:1px solid #8a683d;border-radius:11px;background:linear-gradient(#65411f,#321c10);color:#e7d1a8;font-weight:800;cursor:pointer;box-shadow:0 4px 0 #160c07}.kal-ter-coin-controls button.primary{color:#fff1c6;border-color:#c69446}.kal-ter-coin-controls button:disabled{opacity:.35;cursor:not-allowed}.kal-ter-coin-controls span{min-width:115px;text-align:center;color:#e6c783;font-size:13px}
.kal-ter-coin-guess,.kal-ter-coin-locked,.kal-ter-coin-reward{position:absolute;z-index:40;inset:90px 12% 78px;display:grid;place-items:center;padding:18px;border:1px solid #8d6b3c;border-radius:18px;background:#0a0806ee;box-shadow:0 20px 50px #000}.kal-ter-coin-guess[hidden],.kal-ter-coin-locked[hidden],.kal-ter-coin-reward[hidden]{display:none!important}.kal-ter-coin-guess .box,.kal-ter-coin-locked .box,.kal-ter-coin-reward .box{width:min(600px,96%);text-align:center}.kal-ter-coin-guess h3,.kal-ter-coin-locked h3,.kal-ter-coin-reward h3{margin:0 0 7px;color:#f1d596;font-size:25px}.kal-ter-coin-guess p,.kal-ter-coin-locked p,.kal-ter-coin-reward p{color:#d5c09a}.kal-ter-coin-guess .coins{display:grid;grid-template-columns:repeat(9,1fr);gap:6px;direction:ltr;margin:18px 0}.kal-ter-coin-guess .coins button{aspect-ratio:1;border-radius:50%;border:2px solid #8d6727;background:radial-gradient(circle at 35% 28%,#fff3ad,#b27c27 68%,#754615);color:#36230c;font-weight:900;cursor:pointer}.kal-ter-coin-guess .history{color:#aa9472;font-size:12px;line-height:1.55}.kal-ter-coin-locked button{margin-top:12px;padding:10px 18px;border:1px solid #8a683d;border-radius:11px;background:#412619;color:#f0d2a4;cursor:pointer}.kal-ter-coin-reward{background:radial-gradient(circle,#5c4822d9,#080604f7 70%);border-color:#b98a45}.kal-ter-coin-reward .seal{width:58px;height:58px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:#466a4f;border:2px solid #9fbe9e;color:white;font-size:31px;font-weight:900}.kal-ter-coin-reward a{display:inline-block;margin-top:10px;padding:12px 21px;border-radius:11px;text-decoration:none;color:#f2ffe9;background:linear-gradient(#64876a,#36523a);border:1px solid #9bb89b;font-weight:900;box-shadow:0 5px 0 #1d3120}


/* Room 1.0 — two guards */
.kal-ter-guard-puzzle{position:relative;z-index:4;max-width:1180px;margin:0 auto}.kal-ter-guard-puzzle[hidden]{display:none!important}
.kal-ter-guard-message{max-width:800px;min-height:44px;margin:12px auto;padding:11px 15px;border:1px solid rgba(193,144,72,.35);border-radius:9px;background:rgba(17,12,9,.76);color:#dfc89e;text-align:center;font-size:13px;box-shadow:0 8px 25px rgba(0,0,0,.3)}.kal-ter-guard-message.danger{border-color:#885241;color:#e7b6aa}.kal-ter-guard-message.success{border-color:#617a4d;color:#d8e8c9}
.kal-ter-guard-room{position:relative;max-width:1040px;height:610px;margin:12px auto 0;overflow:hidden;border:8px solid #2b241d;border-radius:20px;background:radial-gradient(circle at 50% 28%,#342d23 0,#211d18 32%,transparent 58%),repeating-linear-gradient(0deg,transparent 0 68px,rgba(0,0,0,.18) 69px 72px),repeating-linear-gradient(90deg,#26221d 0 112px,#302a23 113px 116px);box-shadow:0 28px 70px #000b,inset 0 0 120px #000c}
.kal-ter-guard-room:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;box-shadow:inset 0 0 90px 18px #0008}
.kal-ter-guard-arch{position:absolute;z-index:1;top:24px;left:50%;transform:translateX(-50%);width:72%;height:68%;border:14px solid #3b352e;border-bottom:0;border-radius:360px 360px 0 0;box-shadow:inset 0 0 30px #000,0 0 20px #0008;opacity:.72}
.kal-ter-guard-floor{position:absolute;z-index:1;left:-5%;right:-5%;bottom:0;height:25%;background:repeating-linear-gradient(91deg,#211b14 0 92px,#30261c 93px 96px);border-top:2px solid #493b2a;clip-path:polygon(3% 0,97% 0,100% 100%,0 100%)}
.kal-ter-guard-torch{position:absolute;z-index:4;top:122px;width:20px;height:86px}.kal-ter-guard-torch.left{left:6%}.kal-ter-guard-torch.right{right:6%}.kal-ter-guard-torch .stick{position:absolute;left:7px;top:31px;width:7px;height:55px;background:linear-gradient(90deg,#3b2819,#9d7545,#2b1d13);transform:rotate(5deg)}.kal-ter-guard-torch .flame{position:absolute;top:0;left:-6px;width:32px;height:44px;border-radius:48% 52% 50% 50%/65% 65% 35% 35%;background:radial-gradient(circle at 50% 68%,#fff4bd 0 12%,#ffb12f 34%,#e64d14 66%,transparent 70%);filter:drop-shadow(0 0 12px #ff9f2f) drop-shadow(0 0 28px #ff6a00);animation:kalGuardFlicker .75s ease-in-out infinite alternate;transform-origin:50% 100%}@keyframes kalGuardFlicker{to{transform:scale(.88,1.12) rotate(3deg);filter:drop-shadow(0 0 16px #ffc14a) drop-shadow(0 0 36px #ff6a00)}}
.kal-ter-guard-door{position:absolute;z-index:5;top:108px;width:190px;height:300px;border:0;background:none;color:inherit;padding:0;cursor:pointer;perspective:900px}.kal-ter-guard-door.left{left:18%}.kal-ter-guard-door.right{right:18%}.kal-ter-guard-door .frame{position:absolute;inset:-15px;border:12px solid #40382f;border-bottom-width:7px;border-radius:96px 96px 8px 8px;box-shadow:0 10px 22px #000c,inset 0 0 16px #000}.kal-ter-guard-door .leaf{position:absolute;inset:0;transform-origin:left center;transition:transform 1.05s cubic-bezier(.2,.75,.1,1);border:2px solid #956744;border-radius:82px 82px 5px 5px;background:linear-gradient(90deg,#0004 0 8%,transparent 8% 92%,#0005 92%),repeating-linear-gradient(90deg,#51341f 0 35px,#74482a 36px 39px,#3d2819 40px 43px);box-shadow:inset 0 0 32px #160b03cc,0 0 10px #000a}.kal-ter-guard-door.open .leaf{transform:rotateY(-79deg)}.kal-ter-guard-door .iron{position:absolute;left:10px;right:10px;height:17px;background:linear-gradient(#5d5d5b,#232321);border:1px solid #777;box-shadow:0 2px 5px #000a}.kal-ter-guard-door .iron.i1{top:72px}.kal-ter-guard-door .iron.i2{bottom:68px}.kal-ter-guard-door .knob{position:absolute;right:23px;top:151px;width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#e6c980,#8c6d2e 48%,#30220d 80%);box-shadow:0 0 8px #000}.kal-ter-guard-door .label{position:absolute;top:315px;left:0;width:100%;text-align:center;color:#c8b795;font-weight:900;font-size:14px;text-shadow:0 2px 4px #000}.kal-ter-guard-door.pointed .frame{box-shadow:0 0 0 2px #d29d43,0 0 30px #d29d4366,inset 0 0 16px #000}.kal-ter-guard-door.trap-shake{animation:kalGuardShake .4s linear 2}@keyframes kalGuardShake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.kal-ter-guard{position:absolute;z-index:9;top:242px;width:98px;height:166px;border:0;background:none;color:inherit;padding:0;cursor:pointer;transition:filter .25s,transform .25s}.kal-ter-guard.left{left:7.5%}.kal-ter-guard.right{right:7.5%}.kal-ter-guard:hover{filter:brightness(1.18);transform:translateY(-3px)}.kal-ter-guard.selected{filter:drop-shadow(0 0 15px #d6a64f)}.kal-ter-guard .head{position:absolute;top:0;left:28px;width:44px;height:48px;border-radius:50% 50% 45% 45%;background:#c99c70;border:2px solid #4c3525;box-shadow:inset 0 -8px 10px #7d573a}.kal-ter-guard .helmet{position:absolute;top:-8px;left:23px;width:54px;height:34px;border-radius:50% 50% 25% 25%;background:linear-gradient(#777,#292929);border:2px solid #111}.kal-ter-guard .helmet:after{content:"";position:absolute;left:24px;top:5px;width:6px;height:32px;background:#171717}.kal-ter-guard .body{position:absolute;top:44px;left:14px;width:72px;height:92px;border-radius:20px 20px 8px 8px;background:linear-gradient(90deg,#292727,#55504a,#242222);border:2px solid #111;box-shadow:inset 0 0 18px #000;animation:kalGuardBreath 2.4s ease-in-out infinite}@keyframes kalGuardBreath{50%{transform:scaleY(1.025)}}.kal-ter-guard .belt{position:absolute;top:94px;left:13px;width:74px;height:10px;background:#3b2816;border:1px solid #7a5834}.kal-ter-guard .spear{position:absolute;top:10px;width:5px;height:154px;background:#765633}.kal-ter-guard.left .spear{left:1px}.kal-ter-guard.right .spear{right:1px}.kal-ter-guard .spear:before{content:"";position:absolute;top:-18px;left:-6px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:22px solid #a8a8a3}.kal-ter-guard .name{position:absolute;top:141px;left:0;right:0;text-align:center;font-size:13px;color:#cab996;font-weight:800}.kal-ter-guard.pointing:after{content:"";position:absolute;top:58px;width:68px;height:7px;background:#51504c;border-radius:8px;animation:kalGuardPoint .55s ease-out forwards}.kal-ter-guard.left.pointing:after{right:58px;transform-origin:right}.kal-ter-guard.right.pointing:after{left:58px;transform-origin:left}@keyframes kalGuardPoint{from{transform:scaleX(.05)}to{transform:scaleX(1)}}
.kal-ter-guard-player{position:absolute;z-index:14;left:50%;bottom:92px;width:62px;height:115px;transform:translateX(-50%);transition:left .95s cubic-bezier(.2,.7,.2,1);pointer-events:none;filter:drop-shadow(0 8px 5px #0008)}.kal-ter-guard-player.walking{animation:kalGuardBob .22s ease-in-out infinite alternate}@keyframes kalGuardBob{to{transform:translateX(-50%) translateY(-5px) rotate(.8deg)}}.kal-ter-guard-player .head{position:absolute;left:15px;top:0;width:33px;height:36px;border-radius:50%;background:#c98f63;box-shadow:inset 0 -5px 6px #76472f}.kal-ter-guard-player .hair{position:absolute;left:12px;top:-2px;width:39px;height:20px;border-radius:50% 50% 35% 35%;background:#332119}.kal-ter-guard-player .body{position:absolute;left:9px;top:33px;width:45px;height:56px;border-radius:12px 12px 8px 8px;background:linear-gradient(90deg,#3d5d67,#73919a,#334e56);border:2px solid #1b2b30}.kal-ter-guard-player .leg{position:absolute;top:84px;width:13px;height:29px;background:#332c27;border-radius:0 0 6px 6px}.kal-ter-guard-player .leg.l{left:14px}.kal-ter-guard-player .leg.r{right:14px}.kal-ter-guard-player.walking .leg.l{animation:kalGuardLeg .22s infinite alternate}.kal-ter-guard-player.walking .leg.r{animation:kalGuardLeg .22s infinite alternate-reverse}@keyframes kalGuardLeg{to{transform:rotate(18deg)}}
.kal-ter-guard-speech{position:absolute;z-index:24;top:67px;left:50%;transform:translateX(-50%);max-width:min(650px,88%);padding:12px 16px;border:2px solid #8e7449;border-radius:14px;background:#e8ddc3;color:#2a241a;box-shadow:0 8px 25px #000b;font-weight:800;line-height:1.45;text-align:center;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s}.kal-ter-guard-speech.show{opacity:1;transform:translateX(-50%) translateY(4px)}
.kal-ter-guard-hud{position:absolute;z-index:25;left:50%;transform:translateX(-50%);bottom:13px;width:min(760px,calc(100% - 22px));padding:10px 12px;border:1px solid #4e4537;border-radius:16px;background:#11100eea;box-shadow:0 8px 25px #000b;text-align:center}.kal-ter-guard-hud .status{min-height:19px;color:#c9b999;font-size:13px}.kal-ter-guard-hud .questions{display:none;margin-top:10px;gap:7px;grid-template-columns:1fr;max-height:190px;overflow:auto}.kal-ter-guard-hud .questions.show{display:grid}.kal-ter-guard-hud .qbtn{border:1px solid #5a4c37;border-radius:10px;padding:9px 12px;background:#201c16;color:#e5dac3;text-align:right;cursor:pointer;line-height:1.35}.kal-ter-guard-hud .qbtn:hover{border-color:#c28f3f;background:#292219}.kal-ter-guard-hud .restart{margin:9px auto 0;padding:9px 16px;border:1px solid #695539;border-radius:10px;background:#2b2116;color:#efcf8e;font-weight:800;cursor:pointer}.kal-ter-guard-hud .restart[hidden]{display:none!important}
.kal-ter-guard-danger,.kal-ter-guard-success{position:absolute;z-index:35;inset:0;pointer-events:none;opacity:0}.kal-ter-guard-danger.on{animation:kalGuardRed .75s ease}.kal-ter-guard-success.on{animation:kalGuardGreen 1.1s ease}@keyframes kalGuardRed{30%{opacity:.46;background:#ba1f11}to{opacity:0}}@keyframes kalGuardGreen{35%{opacity:.38;background:#e2b851}to{opacity:0}}
.kal-ter-guard-reward{position:absolute;z-index:45;inset:70px 12% 70px;display:grid;place-items:center;padding:18px;border:1px solid #b98a45;border-radius:18px;background:radial-gradient(circle,#5c4822e0,#080604fa 70%);box-shadow:0 20px 55px #000}.kal-ter-guard-reward[hidden]{display:none!important}.kal-ter-guard-reward .box{width:min(560px,96%);text-align:center}.kal-ter-guard-reward .seal{width:60px;height:60px;margin:0 auto 10px;display:grid;place-items:center;border:2px solid #9fbe9e;border-radius:50%;background:#466a4f;color:#fff;font-size:31px;font-weight:900}.kal-ter-guard-reward h3{margin:0 0 7px;color:#f1d596;font-size:27px}.kal-ter-guard-reward p{color:#d5c09a}.kal-ter-guard-reward a{display:inline-block;margin-top:10px;padding:12px 21px;border:1px solid #9bb89b;border-radius:11px;background:linear-gradient(#64876a,#36523a);color:#f2ffe9;text-decoration:none;font-weight:900;box-shadow:0 5px 0 #1d3120}


/* ========================================================================
   Premium scene pass — 1.1.0
   ======================================================================== */
.kal-ter-puzzle-room,.kal-ter-coin-room,.kal-ter-guard-room{
  isolation:isolate;
  background-color:#20150f;
}
.kal-ter-puzzle-room::before,.kal-ter-coin-room::before,.kal-ter-guard-room::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.52;
  background:
    radial-gradient(circle at 12% 18%,rgba(255,220,153,.08) 0 1px,transparent 2px),
    radial-gradient(circle at 72% 24%,rgba(255,220,153,.055) 0 1px,transparent 2px),
    radial-gradient(circle at 38% 67%,rgba(255,220,153,.045) 0 1px,transparent 2px),
    radial-gradient(circle at 82% 78%,rgba(255,220,153,.04) 0 1px,transparent 2px);
  background-size:83px 71px,107px 97px,131px 113px,149px 137px;
  animation:kalTerDustDrift 19s linear infinite;
}
@keyframes kalTerDustDrift{50%{transform:translate3d(9px,-6px,0);opacity:.36}}
.kal-ter-puzzle-room::after,.kal-ter-coin-room::after,.kal-ter-guard-room::after{
  content:"";position:absolute;inset:0;z-index:31;pointer-events:none;
  box-shadow:inset 0 0 90px 24px rgba(0,0,0,.58),inset 0 -80px 120px rgba(0,0,0,.26);
  background:linear-gradient(115deg,rgba(255,255,255,.025),transparent 18% 76%,rgba(0,0,0,.08));
}
.kal-ter-narrator,.kal-ter-coin-message,.kal-ter-guard-message{
  border-color:rgba(215,171,94,.42)!important;
  background:linear-gradient(180deg,rgba(29,21,16,.9),rgba(12,9,7,.86))!important;
  box-shadow:0 10px 28px rgba(0,0,0,.42),inset 0 1px rgba(255,230,183,.05)!important;
  backdrop-filter:blur(6px);
}

/* Room 1.5 — physical label handling */
.kal-ter-crate-card .kal-ter-assigned{
  position:relative;overflow:visible;transition:transform .28s ease,filter .28s ease,background .28s ease,box-shadow .28s ease;
}
.kal-ter-assigned.has-label{
  min-height:42px;padding:7px 26px 7px 22px;border:1px solid #7b5f3c!important;
  background:linear-gradient(165deg,#e0c89b,#c8aa78 58%,#b9905d)!important;
  color:#372619!important;font-size:14px!important;letter-spacing:.01em;
  box-shadow:0 6px 10px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.35),inset 0 -2px rgba(87,54,27,.2);
  transform:rotate(-.45deg);
}
.kal-ter-assigned.has-label::before,.kal-ter-assigned.has-label::after{
  content:"";position:absolute;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;
  background:radial-gradient(circle at 34% 30%,#d1c0a4 0 15%,#6c6254 40%,#241f19 78%);
  box-shadow:0 1px 2px #0008,inset 0 0 0 1px #191713;
}
.kal-ter-assigned.has-label::before{left:9px}.kal-ter-assigned.has-label::after{right:9px}
.kal-ter-assigned.has-label i{position:absolute;left:-7px;top:-10px;width:24px;height:24px;margin:0!important;display:grid;place-items:center;border:1px solid #745a3e;border-radius:50%;background:#2a1d15;color:#efd6a9!important;box-shadow:0 4px 8px #0008;z-index:5}
.kal-ter-crate-card.is-nailing .kal-ter-assigned{
  color:transparent!important;border-style:solid;background:linear-gradient(165deg,#e0c89b,#c8aa78 58%,#b9905d)!important;
  box-shadow:0 8px 14px #0007;transform:rotate(-1deg) translateY(-2px);
}
.kal-ter-crate-card.is-nailing .kal-ter-assigned::before{
  content:attr(data-pending-label);position:absolute;inset:0;display:grid;place-items:center;color:#392719!important;font-size:14px;font-weight:900;
  animation:kalTerLabelSettle .18s ease-in-out infinite alternate;
}
.kal-ter-crate-card.is-nailing .kal-ter-assigned::after{content:"";position:absolute;right:10px;top:50%;width:8px;height:8px;border-radius:50%;background:#44392d;box-shadow:-130px 0 #44392d}
@keyframes kalTerLabelSettle{to{transform:translateY(1px) rotate(.35deg)}}
.kal-ter-crate-card.just-nailed .kal-ter-assigned{animation:kalTerNailedIn .62s cubic-bezier(.16,.84,.3,1)}
@keyframes kalTerNailedIn{0%{transform:scale(1.08) rotate(-2deg)}40%{transform:scale(.98) rotate(.8deg)}100%{transform:scale(1) rotate(-.45deg)}}
.kal-ter-crate-card.is-prying-label .kal-ter-assigned.has-label{transform-origin:100% 50%;animation:kalTerPeelLabel .31s ease-in-out infinite alternate;filter:drop-shadow(0 9px 8px #0008)}
@keyframes kalTerPeelLabel{0%{transform:perspective(240px) rotateY(0) rotate(-.5deg) translateX(0)}100%{transform:perspective(240px) rotateY(-18deg) rotate(-3deg) translateX(-6px)}}
.kal-ter-explorer.is-hammering::after{
  content:"";position:absolute;z-index:8;right:-19px;top:38px;width:26px;height:8px;border-radius:3px;background:linear-gradient(#777,#2d2d2d);box-shadow:11px 6px 0 -2px #7b4c29;
  transform-origin:80% 100%;animation:kalTerHammer .24s ease-in-out 4;
}
@keyframes kalTerHammer{0%{transform:rotate(-58deg) translateY(-7px)}55%{transform:rotate(12deg) translateY(2px)}100%{transform:rotate(-38deg) translateY(-3px)}}
.kal-ter-explorer.is-hammering .arm.b{animation:kalTerHammerArm .24s ease-in-out 4}
@keyframes kalTerHammerArm{0%{transform:rotate(-65deg)}55%{transform:rotate(-10deg)}100%{transform:rotate(-48deg)}}
.kal-ter-explorer.is-prying::after{
  content:"";position:absolute;z-index:8;right:-18px;top:43px;width:35px;height:5px;border-radius:5px;background:linear-gradient(90deg,#3e3e3d,#b9aea0,#555);transform:rotate(-24deg);transform-origin:left center;animation:kalTerPryBar .36s ease-in-out infinite alternate;
}
.kal-ter-explorer.is-prying{animation:kalTerPullBody .36s ease-in-out infinite alternate}
.kal-ter-explorer.is-prying .arm.b{transform:rotate(-70deg) translateY(-4px)!important}
@keyframes kalTerPryBar{to{transform:rotate(-43deg) translateX(-5px)}}
@keyframes kalTerPullBody{to{transform:translateX(-50%) translateX(-5px) rotate(-5deg)}}

/* Room 1.1 — coin memory and smooth physical movement */
.kal-ter-coin,.kal-ter-coin-mini,.kal-ter-coin-guess .coins button{overflow:visible;isolation:isolate}
.kal-ter-coin .num,.kal-ter-coin-mini .num,.kal-ter-coin-guess .num{position:relative;z-index:3}
.kal-ter-coin.on-left,.kal-ter-coin-mini.on-left{border-color:#5fb7dc!important;box-shadow:0 0 0 2px rgba(72,172,216,.28),0 0 17px rgba(56,171,221,.34),inset 0 0 0 3px rgba(216,243,255,.2)!important;filter:saturate(.8) hue-rotate(162deg)}
.kal-ter-coin.on-right,.kal-ter-coin-mini.on-right{border-color:#e1a949!important;box-shadow:0 0 0 2px rgba(237,166,54,.25),0 0 17px rgba(235,155,30,.3),inset 0 0 0 3px rgba(255,233,182,.2)!important}
.kal-ter-coin-traces{position:absolute!important;z-index:7;left:50%;bottom:-8px;transform:translateX(-50%);min-width:0!important;display:flex!important;justify-content:center;gap:3px;pointer-events:none}
.kal-ter-coin-traces i{width:7px;height:7px;border-radius:50%;border:1px solid rgba(255,255,255,.65);box-shadow:0 1px 3px #000a}
.kal-ter-coin-traces i.left{background:#42a9d4}.kal-ter-coin-traces i.right{background:#e2a23b}
.kal-ter-coin-traces i.r2{outline:1px solid rgba(255,255,255,.42);outline-offset:1px}
.kal-ter-coin.has-trace{margin-bottom:4px}
.kal-ter-coin-mini{position:relative;transition:filter .22s,box-shadow .22s}
.kal-ter-scale .pan{filter:drop-shadow(0 8px 6px rgba(0,0,0,.5));transition:transform .95s cubic-bezier(.18,.78,.2,1),filter .3s}
.kal-ter-scale .beam{transition:transform .95s cubic-bezier(.18,.78,.2,1)}
.kal-ter-scale.shake .chain{animation:kalTerChainTension .18s ease-in-out infinite alternate}
@keyframes kalTerChainTension{to{filter:brightness(1.5);transform:translateX(1px)}}
.kal-ter-coin.selected{animation:kalTerCoinSelected .8s ease-in-out infinite alternate}
@keyframes kalTerCoinSelected{to{filter:brightness(1.2);box-shadow:inset 0 0 0 3px #e0b44f77,0 7px 13px #000a,0 0 18px rgba(255,214,104,.25)}}
.kal-ter-coin-legend{min-width:0!important;display:inline-flex!important;align-items:center;gap:6px;color:#cdb78e!important;font-size:11px!important;padding:6px 9px;border:1px solid #5a4631;border-radius:999px;background:#160f0bbd}
.kal-ter-coin-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 7px currentColor}
.kal-ter-coin-legend i.left{background:#42a9d4;color:#42a9d4}.kal-ter-coin-legend i.right{background:#e2a23b;color:#e2a23b}
.kal-ter-coin-legend small{display:inline!important;color:#8f8068;font-size:9px;margin-inline-start:4px}
.kal-ter-coin-guess .coins button.trace-left{box-shadow:0 0 0 2px rgba(66,169,212,.36)}
.kal-ter-coin-guess .coins button.trace-right{outline:2px solid rgba(226,162,59,.42);outline-offset:2px}

/* Room 1.0 — 20-question scene, helmet knock, trap and victory */
.kal-ter-guard-room{
  background:
    radial-gradient(circle at 50% 27%,rgba(220,174,91,.13),transparent 28%),
    repeating-linear-gradient(0deg,transparent 0 64px,rgba(5,4,3,.2) 65px 68px),
    repeating-linear-gradient(90deg,#27231e 0 118px,#1d1a16 119px 122px),#171410!important;
  box-shadow:0 30px 78px #000d,inset 0 0 120px #000c!important;
}
.kal-ter-guard-door .leaf{box-shadow:inset 0 0 34px #140a03e8,0 8px 14px #000b!important}
.kal-ter-guard-door.open .leaf{box-shadow:inset 0 0 28px #160b03cc,0 0 35px rgba(246,208,121,.42)!important}
.kal-ter-guard-door.open::after{content:"";position:absolute;z-index:-1;inset:18px;background:radial-gradient(ellipse at center,#ffe5a0 0,rgba(232,182,80,.46) 34%,transparent 73%);filter:blur(7px);animation:kalTerDoorGlow 1.3s ease-in-out infinite alternate}
@keyframes kalTerDoorGlow{to{opacity:.58;transform:scale(1.04)}}
.kal-ter-guard .helmet{overflow:visible;transition:transform .18s,filter .18s}
.kal-ter-guard.helmet-hit .helmet{animation:kalTerHelmetKnock .18s ease-in-out 3;filter:brightness(1.35)}
.kal-ter-guard.helmet-hit .helmet::before{content:"✦";position:absolute;right:-18px;top:-18px;color:#f1d27c;font-size:19px;text-shadow:0 0 9px #ffc95c;animation:kalTerSpark .32s ease-out 2}
@keyframes kalTerHelmetKnock{50%{transform:translateY(3px) rotate(4deg)}}
@keyframes kalTerSpark{from{opacity:0;transform:scale(.4)}50%{opacity:1}to{opacity:0;transform:translate(7px,-8px) scale(1.3)}}
.kal-ter-guard.startled .body{animation:kalTerGuardStartled .45s ease-in-out 2!important}
.kal-ter-guard.startled .spear{animation:kalTerSpearWobble .42s ease-in-out 2}
@keyframes kalTerGuardStartled{50%{transform:translateY(3px) scaleY(.97)}}
@keyframes kalTerSpearWobble{50%{transform:rotate(3deg)}}
.kal-ter-guard-player .arm{position:absolute;top:39px;width:9px;height:43px;border-radius:7px;background:linear-gradient(#c89468,#8f6143);border:1px solid #3b281d;transform-origin:top center;z-index:4}
.kal-ter-guard-player .arm.a{left:6px;transform:rotate(18deg)}.kal-ter-guard-player .arm.b{right:6px;transform:rotate(-18deg)}
.kal-ter-guard-player.knocking .arm.b{animation:kalTerPlayerKnock .2s ease-in-out 3}
.kal-ter-guard-player.knocking .body{transform:rotate(-5deg);transform-origin:bottom center}
@keyframes kalTerPlayerKnock{0%{transform:rotate(-70deg) translateY(-5px)}55%{transform:rotate(-15deg) translateY(0)}100%{transform:rotate(-55deg) translateY(-3px)}}
.kal-ter-guard-hud{width:min(900px,calc(100% - 22px))!important;background:linear-gradient(180deg,rgba(24,21,17,.94),rgba(9,8,7,.95))!important;backdrop-filter:blur(9px)}
.kal-ter-guard-hud .question-caption{margin:8px auto 2px;color:#e5c989;font-size:12px;font-weight:800}
.kal-ter-guard-hud .question-caption[hidden]{display:none!important}
.kal-ter-guard-hud .questions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;max-height:270px!important;padding:3px 4px 7px;scrollbar-width:thin;scrollbar-color:#80633c #15110d}
.kal-ter-guard-hud .qbtn{display:grid!important;grid-template-columns:34px 1fr;align-items:start;gap:8px;min-height:48px;padding:9px 10px!important;border-color:#4e4334!important;background:linear-gradient(180deg,#272119,#17130f)!important;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}
.kal-ter-guard-hud .qbtn:hover{transform:translateY(-2px);border-color:#c99b52!important;background:linear-gradient(180deg,#342a1e,#211811)!important;box-shadow:0 6px 13px #0008}
.kal-ter-guard-hud .qbtn .qnum{display:grid;place-items:center;min-height:27px;border-radius:7px;background:#8b6532;color:#fff1c8;font-size:11px;font-weight:900;direction:ltr}
.kal-ter-guard-pit{position:absolute;z-index:12;left:50%;bottom:55px;width:170px;height:48px;transform:translateX(-50%) scaleX(.18);border-radius:50%;opacity:0;background:radial-gradient(ellipse at center,#020202 0 48%,#24150d 58%,transparent 72%);box-shadow:0 0 0 0 #000;transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .28s;pointer-events:none}
.kal-ter-guard-pit.open{opacity:1;transform:translateX(-50%) scaleX(1);box-shadow:0 12px 26px #000,inset 0 7px 10px #000}
.kal-ter-guard-door.trap-open .leaf{transform:perspective(900px) rotateY(-14deg)!important;filter:brightness(.52)}
.kal-ter-guard-player.falling{z-index:13;animation:kalTerPlayerFall 1s cubic-bezier(.45,.04,.72,.2) forwards!important;transform-origin:center bottom}
@keyframes kalTerPlayerFall{0%{opacity:1;transform:translateX(-50%) translateY(0) rotate(0) scale(1)}35%{transform:translateX(-50%) translateY(18px) rotate(8deg) scale(.96)}100%{opacity:0;transform:translateX(-50%) translateY(170px) rotate(32deg) scale(.42)}}
.kal-ter-guard-player.celebrating .arm.a,.kal-ter-guard-player.celebrating .arm.b{animation:kalTerCelebrateArms .42s ease-in-out 3 alternate}
.kal-ter-guard-player.celebrating{animation:kalTerCelebrateHop .42s ease-in-out 3 alternate}
@keyframes kalTerCelebrateArms{to{transform:rotate(-120deg) translateY(-3px)}}
@keyframes kalTerCelebrateHop{to{transform:translateX(-50%) translateY(-9px)}}
.kal-ter-guard-speech{max-width:min(720px,88%)!important;background:linear-gradient(180deg,#f0e5cb,#d6c39e)!important;box-shadow:0 12px 32px #000c,0 0 0 1px rgba(255,255,255,.18) inset!important}



/* Material/detail pass */
.kal-ter-lamp span,.kal-ter-coin-lantern span{animation:kalTerWarmFlicker 2.7s ease-in-out infinite alternate!important}
@keyframes kalTerWarmFlicker{0%{filter:brightness(.82);transform:scale(.92)}22%{filter:brightness(1.2);transform:scale(1.06)}27%{filter:brightness(.9)}100%{filter:brightness(1.08);transform:scale(1)}}
.kal-ter-crate-face{background:
  linear-gradient(100deg,rgba(255,229,188,.06),transparent 18% 77%,rgba(0,0,0,.09)),
  repeating-linear-gradient(2deg,transparent 0 12px,rgba(41,20,9,.18) 13px 14px),
  repeating-linear-gradient(0deg,#744521 0 31%,#39200f 32% 34%,#81502a 35% 65%,#3b2111 66% 68%,#60371c 69% 100%)!important}
.kal-ter-crate-lid::after{content:"";position:absolute;inset:5px 8px;border-top:1px solid rgba(255,224,171,.13);border-bottom:1px solid rgba(31,15,7,.42);pointer-events:none}
.kal-ter-scale .post,.kal-ter-scale .beam,.kal-ter-scale .cap{box-shadow:inset 2px 0 rgba(255,238,182,.13),inset -3px 0 rgba(0,0,0,.24),0 5px 9px rgba(0,0,0,.28)}
.kal-ter-scale .pan::after{content:"";position:absolute;left:12%;right:12%;bottom:-4px;height:13px;border-radius:50%;background:linear-gradient(180deg,rgba(255,238,192,.16),rgba(56,33,15,.1));box-shadow:inset 0 -2px rgba(0,0,0,.3)}
.kal-ter-coin::before,.kal-ter-coin-mini::before{content:"";position:absolute;z-index:2;left:21%;top:14%;width:19%;height:11%;border-radius:50%;background:rgba(255,255,224,.48);transform:rotate(-27deg);pointer-events:none}
.kal-ter-guard .helmet{background:linear-gradient(115deg,#1b1b1b 0,#8a8d8b 28%,#383a39 55%,#111 100%)!important;box-shadow:inset 0 2px rgba(255,255,255,.25),0 4px 8px #0008}
.kal-ter-guard .helmet::after{box-shadow:1px 0 #7c7c78,-1px 0 #080808}
.kal-ter-guard .body::before,.kal-ter-guard .body::after{content:"";position:absolute;top:5px;width:22px;height:18px;border-radius:55% 55% 35% 35%;background:linear-gradient(#6a6964,#252522);border:1px solid #111;box-shadow:inset 0 1px #92918b}
.kal-ter-guard .body::before{left:-11px;transform:rotate(-18deg)}.kal-ter-guard .body::after{right:-11px;transform:rotate(18deg)}
.kal-ter-guard .head::after{content:"";position:absolute;left:10px;top:19px;width:5px;height:3px;border-radius:50%;background:#1b1714;box-shadow:17px 0 #1b1714}
.kal-ter-guard .spear{box-shadow:inset 1px 0 rgba(255,223,169,.2),2px 2px 4px #0007}
.kal-ter-guard-torch .flame{animation-duration:.58s!important}


/* v1.1.1 lobby polish */
.kal-ter-lobby{max-width:1240px}
.kal-ter-lobby-head{max-width:980px;margin:0 auto 30px}
.kal-ter-lobby-head h1{font-size:clamp(40px,5.4vw,74px);letter-spacing:-.03em;margin:10px 0 12px;color:#f5e8d0;text-shadow:0 6px 28px rgba(0,0,0,.6)}
.kal-ter-lobby-head p{max-width:860px;margin:0 auto;color:#cdb89a;font-size:17px;line-height:1.8}
.kal-ter-lobby-scroll-card{display:inline-flex;flex-direction:column;gap:6px;margin-top:18px;padding:14px 22px;border:1px solid rgba(194,145,79,.5);border-radius:18px;background:linear-gradient(180deg,rgba(69,42,20,.58),rgba(24,15,11,.84));box-shadow:0 14px 34px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,232,192,.08)}
.kal-ter-lobby-scroll-card strong{color:#eed2a0;font-size:16px}
.kal-ter-lobby-scroll-card span{color:#d1b68b;font-size:13px}
.kal-ter-lobby-stage{position:relative;max-width:1160px;margin:0 auto;padding:14px 70px 0}
.kal-ter-lobby-torch{position:absolute;top:120px;width:62px;height:210px;pointer-events:none;z-index:3}
.kal-ter-lobby-torch.left{left:2px}.kal-ter-lobby-torch.right{right:2px}
.kal-ter-lobby-torch .stick{position:absolute;left:23px;top:20px;width:16px;height:162px;border-radius:8px;background:linear-gradient(180deg,#4f3422,#1f140d);box-shadow:inset 0 0 0 1px rgba(255,223,177,.08),0 10px 16px rgba(0,0,0,.5)}
.kal-ter-lobby-torch .flame{position:absolute;left:8px;top:0;width:46px;height:64px;border-radius:50% 50% 50% 50%/55% 55% 45% 45%;background:radial-gradient(circle at 50% 28%,#fff6d7 0 13%,#ffd17f 18%,#ff9f34 48%,rgba(255,138,39,.25) 70%,transparent 74%);filter:drop-shadow(0 0 14px rgba(255,176,66,.55));animation:kalTerFlame 1.7s ease-in-out infinite}
@keyframes kalTerFlame{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.08,.95) translateY(-2px)}}
.kal-ter-door-hall{gap:clamp(20px,3vw,34px);max-width:1040px;padding:62px 34px 94px;border-radius:30px;background:
 linear-gradient(180deg,rgba(255,200,115,.06),transparent 18%),
 radial-gradient(circle at 50% -5%,rgba(255,189,89,.17),transparent 28%),
 repeating-linear-gradient(0deg,transparent 0 68px,rgba(0,0,0,.17) 69px 72px),
 repeating-linear-gradient(90deg,#432f23 0 101px,#34261d 102px 108px);
 box-shadow:0 38px 90px rgba(0,0,0,.68),inset 0 0 110px rgba(0,0,0,.74),inset 0 1px 0 rgba(255,216,170,.1)}
.kal-ter-door-hall::before{content:"";position:absolute;left:26px;right:26px;top:18px;height:12px;border-radius:999px;background:linear-gradient(90deg,rgba(255,209,137,0),rgba(255,209,137,.2),rgba(255,209,137,0));pointer-events:none}
.kal-ter-door-hall:after{height:112px;background:repeating-linear-gradient(91deg,#2f1f14 0 84px,#1a110c 85px 90px);clip-path:polygon(3% 0,97% 0,100% 100%,0 100%);border-top:2px solid #120c08}
.kal-ter-room-door{display:flex;flex-direction:column;align-items:center;gap:14px;transition:transform .28s ease,filter .28s ease}
.kal-ter-room-door:hover,.kal-ter-room-door:focus-visible{transform:translateY(-8px);filter:drop-shadow(0 16px 22px rgba(0,0,0,.42));outline:none}
.kal-ter-room-door:hover .kal-ter-door-leaf,.kal-ter-room-door:focus-visible .kal-ter-door-leaf{transform:rotateY(-14deg)}
.kal-ter-room-door:hover .kal-ter-door-light,.kal-ter-room-door:focus-visible .kal-ter-door-light{opacity:1}
.kal-ter-room-number{top:-30px;font-size:23px;min-width:80px;padding:8px 14px;border-radius:10px;background:linear-gradient(180deg,#cfb58d,#8c724e);box-shadow:0 8px 18px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.45)}
.kal-ter-room-plaque{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;margin-bottom:-8px;border:2px solid rgba(84,60,34,.95);border-radius:12px;background:linear-gradient(180deg,#d3b68d,#9a7c57);color:#322116;font-size:15px;font-weight:900;line-height:1.25;box-shadow:0 10px 16px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,251,240,.45)}
.kal-ter-stone-arch{width:min(218px,100%);height:332px;border-width:15px 15px 20px;background:#060403;box-shadow:0 24px 36px rgba(0,0,0,.56),inset 0 0 0 3px #1c1410, inset 0 0 35px rgba(255,197,109,.04)}
.kal-ter-door-black{background:radial-gradient(circle at 50% 56%,rgba(235,180,88,.16),transparent 48%),#070504}
.kal-ter-door-leaf{inset:3px;box-shadow:inset -16px 0 22px rgba(0,0,0,.36), inset 0 0 22px rgba(255,186,95,.06)}
.kal-ter-door-light{position:absolute;left:50%;bottom:20px;width:120px;height:170px;transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,203,108,.12),rgba(255,203,108,.02) 58%,transparent 100%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);opacity:.15;transition:opacity .28s ease;pointer-events:none}
.kal-ter-room-card{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;width:min(250px,100%);min-height:104px;padding:16px 18px;border:1px solid rgba(187,145,86,.44);border-radius:18px;background:linear-gradient(180deg,rgba(41,25,16,.94),rgba(23,15,10,.94));box-shadow:0 16px 30px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,232,192,.07)}
.kal-ter-room-card strong{color:#f0d7aa;font-size:18px;line-height:1.25}
.kal-ter-room-card small{color:#c9b18b;font-size:13px;line-height:1.55}
.kal-ter-lobby-message{min-height:54px;max-width:760px;margin:16px auto 0;padding:13px 18px;border:1px solid rgba(199,153,89,.35);border-radius:14px;background:rgba(18,12,9,.72);box-shadow:0 12px 26px rgba(0,0,0,.26);color:#e0c89f;font-size:14px;line-height:1.55}
.kal-ter-room-door.opening{transform:translateY(-4px) scale(1.01)}
.kal-ter-room-door.opening .kal-ter-room-card{border-color:rgba(229,187,114,.72);box-shadow:0 16px 38px rgba(0,0,0,.42),0 0 0 1px rgba(229,187,114,.18) inset}
@media(min-width:901px) and (max-width: 1100px){.kal-ter-lobby-stage{padding:12px 18px 0}.kal-ter-lobby-torch{display:none}.kal-ter-door-hall{gap:18px;padding:58px 18px 90px}.kal-ter-room-plaque{font-size:14px;padding:9px 10px}.kal-ter-room-card{min-height:112px}}


/* v1.1.2 final polish */
.kal-ter-app{max-width:1280px;margin:0 auto;padding:34px 20px 60px}
.kal-ter-lobby{position:relative;padding-top:6px}
.kal-ter-lobby:before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:min(820px,92%);height:180px;border-radius:0 0 50% 50%;background:radial-gradient(circle at 50% 10%,rgba(247,210,141,.2),rgba(247,210,141,0) 68%);pointer-events:none;filter:blur(6px)}
.kal-ter-lobby-head{max-width:1020px;margin:0 auto 34px}
.kal-ter-lobby-head>span{padding:6px 12px;border:1px solid rgba(191,147,84,.28);border-radius:999px;background:rgba(39,25,17,.58);box-shadow:inset 0 1px 0 rgba(255,232,192,.08)}
.kal-ter-lobby-head h1{font-size:clamp(42px,5.5vw,82px);line-height:1.02;margin:12px 0 14px;letter-spacing:-.04em;text-shadow:0 8px 32px rgba(0,0,0,.62)}
.kal-ter-lobby-head p{max-width:900px;margin:0 auto;color:#d2bea0;font-size:18px;line-height:1.85}
.kal-ter-lobby-scroll-card{gap:8px;margin-top:22px;padding:16px 26px;border-radius:20px;border-color:rgba(201,151,84,.44);background:linear-gradient(180deg,rgba(72,45,22,.72),rgba(27,17,12,.92));box-shadow:0 16px 34px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,233,196,.12)}
.kal-ter-lobby-scroll-card strong{font-size:17px}
.kal-ter-lobby-scroll-card span{font-size:14px;line-height:1.6}
.kal-ter-lobby-stage{max-width:1180px;padding:18px 60px 8px}
.kal-ter-lobby-stage:before{content:"";position:absolute;inset:10px 48px auto 48px;height:140px;border-radius:22px 22px 80px 80px;background:linear-gradient(180deg,rgba(255,207,128,.08),rgba(255,207,128,0));pointer-events:none}
.kal-ter-lobby-stage:after{content:"";position:absolute;left:52px;right:52px;bottom:26px;height:120px;background:radial-gradient(circle at 50% 0,rgba(255,214,141,.08),rgba(255,214,141,0) 70%);pointer-events:none}
.kal-ter-lobby-torch{top:136px;width:66px;height:220px}
.kal-ter-lobby-torch.left{left:8px}.kal-ter-lobby-torch.right{right:8px}
.kal-ter-lobby-torch .stick{left:24px;top:28px;width:15px;height:166px;border-radius:8px;box-shadow:inset 0 0 0 1px rgba(255,234,202,.08),0 10px 20px rgba(0,0,0,.48)}
.kal-ter-lobby-torch .flame{left:7px;top:0;width:48px;height:68px;filter:drop-shadow(0 0 18px rgba(255,176,66,.62)) drop-shadow(0 0 42px rgba(255,110,25,.18));animation:kalTerFlame 1.3s ease-in-out infinite alternate}
.kal-ter-door-hall{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1060px;padding:72px 32px 108px;border:1px solid rgba(255,219,161,.06);border-radius:34px;overflow:visible;background:linear-gradient(180deg,rgba(93,58,31,.18),rgba(20,12,9,.08)),repeating-linear-gradient(0deg,transparent 0 66px,rgba(0,0,0,.18) 67px 70px),repeating-linear-gradient(90deg,#3f2d22 0 102px,#34261d 103px 108px);box-shadow:0 34px 76px rgba(0,0,0,.66),inset 0 0 0 1px rgba(255,236,205,.04),inset 0 0 95px rgba(0,0,0,.68)}
.kal-ter-door-hall:after{height:120px}
.kal-ter-room-door{min-width:0;display:flex;flex-direction:column;align-items:center;gap:16px}
.kal-ter-room-door:hover,.kal-ter-room-door:focus-visible{transform:translateY(-10px) scale(1.01)}
.kal-ter-room-number{top:-50px;min-width:78px;padding:6px 15px;border-radius:9px;font-size:20px;box-shadow:0 8px 16px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.44)}
.kal-ter-room-plaque{width:min(210px,92%);max-width:210px;min-height:50px;padding:12px 14px;margin-bottom:-2px;border:1px solid rgba(82,58,33,.95);border-radius:15px;text-align:center;white-space:normal;line-height:1.15;font-size:17px;box-shadow:0 12px 18px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,248,235,.46)}
.kal-ter-stone-arch{width:min(206px,100%);height:322px;border-width:14px;border-bottom-width:20px;border-radius:104px 104px 8px 8px;box-shadow:0 20px 30px rgba(0,0,0,.56),inset 0 0 0 3px #1d1511,0 0 0 1px rgba(255,238,208,.05)}
.kal-ter-door-leaf{background:linear-gradient(90deg,#5a341b 0,#814f29 18%,#9d6335 48%,#864f2a 76%,#5f381d 100%);box-shadow:inset 18px 0 20px rgba(255,222,181,.08),inset -14px 0 20px rgba(0,0,0,.34)}
.kal-ter-door-light{opacity:.22;background:radial-gradient(circle at 50% 38%,rgba(255,221,147,.52),rgba(255,185,74,.18) 30%,rgba(255,185,74,0) 68%)}
.kal-ter-room-card{position:relative;width:100%;max-width:250px;min-height:126px;padding:18px 18px 16px;border-radius:20px;border:1px solid rgba(193,151,90,.36);background:linear-gradient(180deg,rgba(47,29,19,.98),rgba(24,15,11,.96));box-shadow:0 18px 34px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,232,192,.08)}
.kal-ter-room-card:before{content:"";position:absolute;left:18px;right:18px;top:12px;height:1px;background:linear-gradient(90deg,rgba(255,224,178,0),rgba(255,224,178,.45),rgba(255,224,178,0))}
.kal-ter-room-card strong{display:block;color:#f1dcba;font-size:22px;line-height:1.2}
.kal-ter-room-card small{display:block;color:#ceb692;font-size:14px;line-height:1.68}
.kal-ter-lobby-message{min-height:58px;max-width:820px;margin:18px auto 0;padding:15px 18px;border-radius:16px;border:1px solid rgba(199,153,89,.38);background:linear-gradient(180deg,rgba(25,16,12,.88),rgba(17,11,8,.76));box-shadow:0 16px 28px rgba(0,0,0,.3);font-size:14px;line-height:1.7}
.kal-ter-scroll,.kal-ter-narrator,.kal-ter-coin-scroll,.kal-ter-guard-scroll{border:1px solid rgba(197,153,90,.28);border-radius:18px;background:linear-gradient(180deg,rgba(54,34,22,.82),rgba(26,17,12,.9));box-shadow:0 16px 28px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,230,189,.08)}
.kal-ter-puzzle-head,.kal-ter-coin-head,.kal-ter-guard-head{gap:18px;padding-bottom:8px}
.kal-ter-puzzle-head h2,.kal-ter-coin-head h2,.kal-ter-guard-head h2{font-size:clamp(28px,3vw,42px);line-height:1.1;letter-spacing:-.02em;color:#f1e0c1}
.kal-ter-reset,.kal-ter-back-lobby,.kal-ter-coin-controls button,.kal-ter-labels button,.kal-ter-retry button,.kal-ter-table-actions button,.kal-ter-guard-hud button,.kal-ter-secret-copy{transition:transform .2s ease,filter .2s ease,box-shadow .2s ease;box-shadow:0 10px 20px rgba(0,0,0,.24)}
.kal-ter-reset:hover,.kal-ter-back-lobby:hover,.kal-ter-coin-controls button:hover,.kal-ter-labels button:hover,.kal-ter-retry button:hover,.kal-ter-table-actions button:hover,.kal-ter-guard-hud button:hover,.kal-ter-secret-copy:hover{transform:translateY(-2px);filter:brightness(1.08)}
.kal-ter-coin-room,.kal-ter-puzzle-room,.kal-ter-guard-room{border-radius:26px;box-shadow:0 28px 64px rgba(0,0,0,.56),inset 0 0 0 1px rgba(255,236,201,.04)}
.kal-ter-coin-message,.kal-ter-guard-message{border-radius:16px;border:1px solid rgba(200,156,94,.3);background:linear-gradient(180deg,rgba(32,21,15,.88),rgba(20,13,10,.78));box-shadow:0 14px 28px rgba(0,0,0,.22)}
.kal-ter-secret,.kal-ter-coin-reward,.kal-ter-guard-reward{border-radius:22px;border:1px solid rgba(206,165,102,.38);box-shadow:0 24px 56px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,236,205,.08)}
@media(min-width:901px) and (max-width: 1100px){
  .kal-ter-app{padding-inline:14px}
  .kal-ter-lobby-head p{font-size:16px}
  .kal-ter-lobby-stage{padding:10px 18px 4px}
  .kal-ter-lobby-stage:before,.kal-ter-lobby-stage:after,.kal-ter-lobby-torch{display:none}
  .kal-ter-door-hall{max-width:980px;padding:64px 20px 92px;gap:18px}
  .kal-ter-room-plaque{width:min(186px,90%);max-width:186px;font-size:15px}
  .kal-ter-room-card{max-width:230px;min-height:132px}
  .kal-ter-room-card strong{font-size:20px}
}



/* v1.1.3 guard room final layout + full 20 questions */
.kal-ter-guard-puzzle{max-width:1240px!important}
.kal-ter-guard-head{align-items:flex-end!important;justify-content:space-between!important;gap:20px!important;margin-bottom:8px}
.kal-ter-guard-head>div:first-child{max-width:760px}
.kal-ter-guard-head h2{font-size:clamp(32px,4.2vw,54px)!important;margin-bottom:6px!important}
.kal-ter-guard-head p{font-size:17px!important;line-height:1.75!important;color:#d9c19c!important}
.kal-ter-guard-scroll{max-width:1040px!important;margin:0 auto 14px!important;padding:16px 20px!important;border-radius:20px!important;background:linear-gradient(180deg,rgba(55,35,22,.9),rgba(21,14,10,.92))!important;box-shadow:0 18px 36px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,227,180,.1)!important}
.kal-ter-guard-scroll p{margin:0 0 7px!important;font-size:16px!important;line-height:1.8!important;color:#e7d5b5!important}
.kal-ter-guard-scroll strong{display:block!important;font-size:20px!important;color:#f3dcab!important}
.kal-ter-guard-message{max-width:1040px!important;min-height:56px!important;margin:0 auto 14px!important;padding:16px 20px!important;border-radius:18px!important;font-size:15px!important;line-height:1.7!important;background:linear-gradient(180deg,rgba(28,19,14,.92),rgba(18,12,9,.84))!important}
.kal-ter-guard-room{max-width:1100px!important;min-height:0!important;height:auto!important;overflow:visible!important;padding:0 0 18px!important;border:10px solid #2f241d!important;border-radius:28px!important;background:
 radial-gradient(circle at 50% 10%,rgba(255,198,103,.12),rgba(255,198,103,0) 28%),
 radial-gradient(circle at 50% 28%,#392c20 0,#241b15 35%,transparent 62%),
 repeating-linear-gradient(0deg,transparent 0 74px,rgba(0,0,0,.16) 75px 78px),
 repeating-linear-gradient(90deg,#2b241d 0 108px,#362b22 109px 112px)!important;
 box-shadow:0 34px 80px rgba(0,0,0,.62),inset 0 0 140px rgba(0,0,0,.76),inset 0 0 0 1px rgba(255,240,216,.05)!important}
.kal-ter-guard-room:before{box-shadow:inset 0 0 120px 24px rgba(0,0,0,.52)!important}
.kal-ter-guard-room:after{content:"";position:absolute;left:18px;right:18px;top:18px;height:180px;border-radius:20px 20px 80px 80px;background:radial-gradient(circle at 50% 0,rgba(255,214,136,.1),rgba(255,214,136,0) 68%);pointer-events:none;z-index:0}
.kal-ter-guard-arch{top:28px!important;width:66%!important;height:62%!important;border-width:18px!important;opacity:.82!important;box-shadow:inset 0 0 40px rgba(0,0,0,.9),0 18px 34px rgba(0,0,0,.38)!important}
.kal-ter-guard-floor{height:22%!important;background:repeating-linear-gradient(90deg,#241b14 0 96px,#33261d 97px 100px)!important}
.kal-ter-guard-torch{top:132px!important;width:26px!important;height:114px!important}.kal-ter-guard-torch.left{left:5%!important}.kal-ter-guard-torch.right{right:5%!important}.kal-ter-guard-torch .stick{left:9px!important;top:34px!important;width:8px!important;height:76px!important}.kal-ter-guard-torch .flame{left:-9px!important;width:42px!important;height:60px!important;filter:drop-shadow(0 0 16px #ffab39) drop-shadow(0 0 40px #ff6c1b)!important}
.kal-ter-guard-door{top:106px!important;width:214px!important;height:332px!important}.kal-ter-guard-door.left{left:15%!important}.kal-ter-guard-door.right{right:15%!important}
.kal-ter-guard-door .frame{inset:-16px!important;border-width:14px!important;border-bottom-width:10px!important;border-radius:112px 112px 10px 10px!important;background:linear-gradient(180deg,#4f463c,#2e2722)!important}
.kal-ter-guard-door .leaf{border-radius:96px 96px 6px 6px!important;background:linear-gradient(90deg,rgba(0,0,0,.28) 0 8%,transparent 8% 92%,rgba(0,0,0,.36) 92%),repeating-linear-gradient(90deg,#5a341e 0 34px,#84502b 35px 38px,#432717 39px 42px)!important}
.kal-ter-guard-door .iron{left:14px!important;right:14px!important;height:18px!important;border-radius:7px!important}.kal-ter-guard-door .iron.i1{top:80px!important}.kal-ter-guard-door .iron.i2{bottom:76px!important}.kal-ter-guard-door .knob{right:24px!important;top:166px!important;width:18px!important;height:18px!important}
.kal-ter-guard-door .label{top:346px!important;font-size:16px!important;color:#dcc79f!important}
.kal-ter-guard{top:268px!important;width:108px!important;height:178px!important}.kal-ter-guard.left{left:6.3%!important}.kal-ter-guard.right{right:6.3%!important}.kal-ter-guard .name{top:149px!important;font-size:14px!important}
.kal-ter-guard-speech{top:76px!important;max-width:min(760px,90%)!important;padding:16px 20px!important;border-radius:18px!important;font-size:18px!important;line-height:1.6!important;background:linear-gradient(180deg,#f2e7cf,#d6c29c)!important}
.kal-ter-guard-hud{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:min(960px,calc(100% - 30px))!important;margin:500px auto 0!important;padding:18px 18px 16px!important;border:1px solid rgba(201,157,89,.42)!important;border-radius:24px!important;background:linear-gradient(180deg,rgba(18,14,11,.96),rgba(9,7,6,.96))!important;box-shadow:0 24px 44px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,224,177,.08)!important}
.kal-ter-guard-hud:before{content:"בחרו שאלה";display:block;margin:0 auto 10px;width:max-content;padding:6px 12px;border-radius:999px;border:1px solid rgba(207,163,95,.3);background:rgba(63,45,27,.44);color:#f1d9a8;font-size:13px;font-weight:900;letter-spacing:.02em}
.kal-ter-guard-hud .status{min-height:28px!important;font-size:15px!important;line-height:1.8!important;color:#e1c694!important}
.kal-ter-guard-hud .question-caption{margin:4px auto 8px!important;font-size:13px!important;color:#cdb186!important}
.kal-ter-guard-hud .questions{display:none;margin-top:6px!important;gap:10px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;max-height:none!important;overflow:visible!important;padding:2px 0 0!important}
.kal-ter-guard-hud .questions.show{display:grid!important}
.kal-ter-guard-hud .qbtn{display:grid!important;grid-template-columns:38px 1fr!important;align-items:start!important;gap:10px!important;min-height:58px!important;padding:11px 12px!important;border:1px solid #554732!important;border-radius:14px!important;background:linear-gradient(180deg,#241d16,#16120e)!important;color:#f0e0c4!important;line-height:1.45!important;box-shadow:0 10px 18px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,227,180,.05)!important}
.kal-ter-guard-hud .qbtn:hover{border-color:#d0a15d!important;background:linear-gradient(180deg,#302419,#1e1610)!important;box-shadow:0 14px 24px rgba(0,0,0,.26)!important}
.kal-ter-guard-hud .qbtn .qnum{min-height:34px!important;border-radius:10px!important;background:linear-gradient(180deg,#9c7338,#6f4f26)!important;color:#fff4d7!important;font-size:12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)!important}
.kal-ter-guard-hud .restart{margin-top:14px!important;padding:11px 18px!important;border-radius:12px!important;background:linear-gradient(180deg,#3a2b1b,#23180f)!important;color:#f1d8aa!important}
.kal-ter-guard-reward{inset:90px 10% 80px!important;border-radius:24px!important;background:radial-gradient(circle,#6a5225f0,#090705fc 70%)!important}
@media(min-width:901px) and (max-width: 980px){
  .kal-ter-guard-door{width:186px!important;height:300px!important}.kal-ter-guard-door.left{left:14%!important}.kal-ter-guard-door.right{right:14%!important}
  .kal-ter-guard .name{font-size:13px!important}
  .kal-ter-guard-hud{width:min(920px,calc(100% - 20px))!important;margin-top:484px!important}
  .kal-ter-guard-hud .qbtn{min-height:54px!important}
}


/* ========================================================================
   1.2.0 — complete visual refresh
   More depth, cleaner hierarchy and higher-contrast materials without
   changing puzzle state or interaction logic.
   ======================================================================== */
:root{
  --kal-ter-bg:#0e1216;
  --kal-ter-panel:#171c21;
  --kal-ter-panel2:#20262c;
  --kal-ter-stone:#343a40;
  --kal-ter-stone2:#242a2f;
  --kal-ter-wood:#75462a;
  --kal-ter-wood2:#9b6038;
  --kal-ter-brass:#d9b16b;
  --kal-ter-brass2:#8f642f;
  --kal-ter-text:#f4ead9;
  --kal-ter-muted:#c5b7a1;
}

.kal-ter-app{
  left:50%;
  width:min(1320px,calc(100vw - 28px));
  max-width:none;
  margin:0;
  padding:42px 28px 72px;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.05);
  border-radius:32px;
  background:
    radial-gradient(ellipse at 50% -6%,rgba(225,181,105,.17),transparent 34%),
    radial-gradient(circle at 8% 24%,rgba(97,125,143,.08),transparent 27%),
    radial-gradient(circle at 92% 56%,rgba(185,123,63,.07),transparent 30%),
    linear-gradient(180deg,#14191e 0,#101418 48%,#0a0d10 100%);
  box-shadow:0 35px 110px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.035);
}
.kal-ter-app::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  opacity:.34;
  background-image:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(180deg,#000,transparent 72%);
}
.kal-ter-vignette{
  z-index:60;
  border-radius:inherit;
  box-shadow:inset 0 0 130px 18px rgba(0,0,0,.42),inset 0 -80px 110px rgba(0,0,0,.2);
}
.kal-ter-dust{width:3px;height:3px;opacity:.14;filter:blur(.2px)}

.kal-ter-lobby,.kal-ter-puzzle,.kal-ter-coin-puzzle,.kal-ter-guard-puzzle{position:relative;z-index:4}
.kal-ter-lobby-head,.kal-ter-puzzle-head{
  text-shadow:none;
}
.kal-ter-lobby-head>span,.kal-ter-kicker{
  color:#e6bd78;
  letter-spacing:.09em;
}
.kal-ter-lobby-head h1,
.kal-ter-puzzle-head h2,
.kal-ter-coin-head h2,
.kal-ter-guard-head h2{
  color:#f6efe4!important;
  text-shadow:0 10px 34px rgba(0,0,0,.36)!important;
}
.kal-ter-lobby-head p,.kal-ter-puzzle-head p,.kal-ter-guard-head p{
  color:#c9bdac!important;
}
.kal-ter-lobby-scroll-card,
.kal-ter-scroll,
.kal-ter-narrator,
.kal-ter-coin-message,
.kal-ter-guard-message{
  border:1px solid rgba(219,181,118,.24)!important;
  background:
    linear-gradient(180deg,rgba(40,46,51,.94),rgba(23,28,32,.94))!important;
  box-shadow:
    0 18px 44px rgba(0,0,0,.24),
    inset 0 1px rgba(255,255,255,.055)!important;
  color:#e6d8c1!important;
  backdrop-filter:blur(8px);
}
.kal-ter-scroll{
  transform:none;
  color:#e5d5bd!important;
}
.kal-ter-scroll strong{color:#f3d69b!important}
.kal-ter-narrator.success,.kal-ter-coin-message.success,.kal-ter-guard-message.success{
  border-color:rgba(108,182,129,.5)!important;
  color:#d9f0df!important;
}
.kal-ter-narrator.danger,.kal-ter-coin-message.danger,.kal-ter-guard-message.danger{
  border-color:rgba(210,107,90,.5)!important;
  color:#f2c4bc!important;
}

.kal-ter-reset,.kal-ter-back-lobby,
.kal-ter-coin-controls button,
.kal-ter-labels button,
.kal-ter-table-actions button,
.kal-ter-retry button,
.kal-ter-guard-hud button{
  border:1px solid rgba(214,176,111,.34)!important;
  background:linear-gradient(180deg,#2b333a,#1b2126)!important;
  color:#ead8bb!important;
  box-shadow:0 8px 22px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.07)!important;
}
.kal-ter-reset:hover,.kal-ter-back-lobby:hover,
.kal-ter-coin-controls button:hover,
.kal-ter-labels button:hover,
.kal-ter-table-actions button:hover,
.kal-ter-retry button:hover,
.kal-ter-guard-hud button:hover{
  border-color:rgba(230,190,119,.7)!important;
  background:linear-gradient(180deg,#374149,#22292f)!important;
  filter:none;
}
.kal-ter-coin-controls button.primary,
.kal-ter-table-actions button.primary{
  border-color:#d8ae67!important;
  background:linear-gradient(180deg,#9a7139,#62451f)!important;
  color:#fff4d5!important;
}

/* Lobby */
.kal-ter-lobby:before{
  width:min(980px,94%);
  height:250px;
  background:radial-gradient(ellipse at 50% 0,rgba(238,198,128,.18),transparent 68%);
  filter:blur(12px);
}
.kal-ter-door-hall{
  max-width:1110px;
  gap:34px;
  padding:82px 42px 118px;
  border:1px solid rgba(231,203,161,.09);
  border-radius:36px;
  background:
    radial-gradient(ellipse at 50% -8%,rgba(240,196,122,.18),transparent 34%),
    linear-gradient(180deg,rgba(42,49,54,.92),rgba(25,30,34,.96)),
    repeating-linear-gradient(0deg,transparent 0 70px,rgba(0,0,0,.1) 71px 73px),
    repeating-linear-gradient(90deg,transparent 0 106px,rgba(255,255,255,.022) 107px 109px);
  box-shadow:0 42px 90px rgba(0,0,0,.42),inset 0 0 90px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.045);
}
.kal-ter-door-hall::before{
  left:34px;right:34px;top:24px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(230,196,141,.45),transparent);
}
.kal-ter-door-hall:after{
  height:124px;
  border-top:1px solid rgba(255,255,255,.045);
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),transparent 25%),
    repeating-linear-gradient(92deg,#23292d 0 88px,#181d20 89px 94px);
  box-shadow:inset 0 18px 35px rgba(0,0,0,.22);
}
.kal-ter-room-number{
  top:-54px;
  border:1px solid rgba(255,237,204,.18);
  background:linear-gradient(180deg,#d3bd96,#907857);
  color:#24201b;
  box-shadow:0 10px 22px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.6);
}
.kal-ter-room-plaque{
  border:1px solid rgba(255,246,225,.16);
  background:linear-gradient(180deg,#d9c6a5,#a18a68);
  color:#27231e;
  box-shadow:0 12px 28px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.62);
}
.kal-ter-stone-arch{
  border-color:#4a5156;
  background:#090b0d;
  box-shadow:
    0 26px 48px rgba(0,0,0,.48),
    inset 0 0 0 3px #20262a,
    inset 0 0 28px rgba(220,184,120,.035),
    0 0 0 1px rgba(255,255,255,.025);
}
.kal-ter-stone-arch::before{
  content:"";
  position:absolute;
  z-index:5;
  inset:-14px;
  pointer-events:none;
  border-radius:112px 112px 12px 12px;
  background:
    repeating-linear-gradient(115deg,rgba(255,255,255,.055) 0 2px,transparent 2px 20px),
    radial-gradient(circle at 28% 14%,rgba(255,255,255,.08),transparent 16%),
    radial-gradient(circle at 78% 38%,rgba(0,0,0,.16),transparent 19%);
  mix-blend-mode:soft-light;
  opacity:.58;
}
.kal-ter-door-leaf{
  border:1px solid rgba(232,178,113,.22);
  background:
    linear-gradient(100deg,rgba(255,236,202,.09),transparent 17% 72%,rgba(0,0,0,.16)),
    repeating-linear-gradient(90deg,#73452a 0 31px,#9a6037 32px 60px,#623a24 61px 64px)!important;
  box-shadow:inset 14px 0 22px rgba(255,230,190,.065),inset -18px 0 26px rgba(0,0,0,.38),0 4px 12px rgba(0,0,0,.24);
}
.kal-ter-door-hinge{
  border-color:#0e1113;
  background:linear-gradient(180deg,#697177,#2d3337 45%,#171b1e)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.18),0 4px 8px rgba(0,0,0,.42);
}
.kal-ter-door-knob{
  border-color:#60461d;
  background:radial-gradient(circle at 32% 27%,#ffe4a2,#c79749 42%,#715022 70%,#30210e);
  box-shadow:0 5px 11px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.45);
}
.kal-ter-room-card{
  border:1px solid rgba(209,180,132,.22);
  background:linear-gradient(180deg,rgba(37,43,48,.98),rgba(21,26,30,.98));
  box-shadow:0 20px 40px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.055);
}
.kal-ter-room-card strong{color:#f1dfc0}
.kal-ter-room-card small{color:#c8bcaa}
.kal-ter-room-door:hover .kal-ter-room-card,.kal-ter-room-door:focus-visible .kal-ter-room-card{
  border-color:rgba(223,186,120,.5);
  box-shadow:0 24px 52px rgba(0,0,0,.34),0 0 28px rgba(217,173,101,.07);
}
.kal-ter-lobby-torch .stick,
.kal-ter-guard-torch .stick{
  background:linear-gradient(90deg,#24282a,#7d643f,#222628)!important;
}

/* Shared room shell */
.kal-ter-puzzle-room,.kal-ter-coin-room,.kal-ter-guard-room{
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:30px!important;
  background:
    radial-gradient(ellipse at 50% -4%,rgba(236,196,124,.18),transparent 29%),
    linear-gradient(180deg,rgba(52,59,64,.96),rgba(29,35,39,.98) 55%,rgba(21,25,28,.99))!important;
  box-shadow:
    0 34px 80px rgba(0,0,0,.42),
    inset 0 1px rgba(255,255,255,.06),
    inset 0 0 90px rgba(0,0,0,.26)!important;
}
.kal-ter-puzzle-room::before,.kal-ter-coin-room::before,.kal-ter-guard-room::before{
  background:
    linear-gradient(180deg,rgba(255,219,157,.14),rgba(255,195,94,.025) 50%,transparent 88%)!important;
  opacity:.78!important;
}
.kal-ter-puzzle-room::after,.kal-ter-coin-room::after,.kal-ter-guard-room::after{
  box-shadow:inset 0 0 52px rgba(0,0,0,.22),inset 0 -72px 90px rgba(0,0,0,.2)!important;
}
.kal-ter-beam{
  height:32px;
  border-bottom:1px solid rgba(255,255,255,.055);
  background:linear-gradient(180deg,#31383d,#171c20)!important;
  box-shadow:0 12px 24px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.07);
}
.kal-ter-lamp:after,.kal-ter-coin-lantern::after{
  border-color:#111519!important;
  background:linear-gradient(180deg,#50565a,#1c2124)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.09),0 8px 14px rgba(0,0,0,.48)!important;
}
.kal-ter-lamp span,.kal-ter-coin-lantern span{
  background:#ffe1a0!important;
  box-shadow:0 0 18px 8px rgba(255,204,119,.36),0 0 62px 28px rgba(232,163,62,.14)!important;
}
.kal-ter-floor,.kal-ter-coin-floor,.kal-ter-guard-floor{
  border-top:1px solid rgba(255,255,255,.055)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.08)),
    repeating-linear-gradient(92deg,#272d31 0 94px,#1d2225 95px 100px)!important;
  box-shadow:inset 0 25px 38px rgba(0,0,0,.18)!important;
}
.kal-ter-back-door,.kal-ter-coin-secret-door{
  border-color:#2a3034!important;
  background:
    linear-gradient(100deg,rgba(255,255,255,.04),transparent 22% 75%,rgba(0,0,0,.25)),
    repeating-linear-gradient(90deg,#5f3a26 0 20px,#7a4b2e 21px 39px)!important;
  box-shadow:inset 0 0 28px rgba(0,0,0,.62),0 12px 28px rgba(0,0,0,.28)!important;
}

/* Room 1.5 — crates */
.kal-ter-crates{gap:42px;bottom:101px}
.kal-ter-crate-card:hover{filter:none;transform:translateY(-7px)}
.kal-ter-crate-visual{filter:drop-shadow(0 18px 17px rgba(0,0,0,.32))}
.kal-ter-crate-face{
  border:1px solid #3c2618!important;
  border-radius:7px 7px 11px 11px;
  background:
    linear-gradient(105deg,rgba(255,236,203,.12),transparent 16% 77%,rgba(0,0,0,.16)),
    repeating-linear-gradient(0deg,#81502f 0 31%,#422818 32% 34%,#93603a 35% 65%,#472b19 66% 68%,#72462a 69% 100%)!important;
  box-shadow:0 18px 30px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.12),inset 0 0 22px rgba(0,0,0,.18)!important;
}
.kal-ter-crate-lid{
  border:1px solid rgba(56,34,20,.9);
  border-radius:8px 8px 4px 4px;
  background:
    linear-gradient(180deg,rgba(255,240,212,.11),transparent 30%),
    repeating-linear-gradient(90deg,#75462a 0 54px,#9c6139 55px 109px,#694028 110px 166px)!important;
  box-shadow:0 8px 15px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.13)!important;
}
.kal-ter-wrong-label,.kal-ter-assigned.has-label{
  border:1px solid #8d7655!important;
  border-radius:5px!important;
  background:linear-gradient(180deg,#f2e2bd,#d4bd8c)!important;
  color:#322a20!important;
  box-shadow:0 7px 14px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.7)!important;
}
.kal-ter-fruit{filter:drop-shadow(0 9px 10px rgba(0,0,0,.25)) saturate(.9)}
.kal-ter-explorer{
  width:58px;height:126px;
  filter:drop-shadow(0 10px 8px rgba(0,0,0,.4));
}
.kal-ter-explorer .head{
  left:17px;width:24px;height:25px;
  border:1px solid rgba(60,38,25,.7);
  background:radial-gradient(circle at 35% 28%,#e6bc94,#b98560 70%);
  box-shadow:inset -3px -4px rgba(92,54,31,.12),0 2px 4px rgba(0,0,0,.2);
}
.kal-ter-explorer .head::before{background:#2a2521;box-shadow:7px 2px 0 -3px #2a2521}
.kal-ter-explorer .body{
  left:10px;top:33px;width:38px;height:47px;
  border:1px solid #1e2b31;
  border-radius:15px 15px 9px 9px;
  background:linear-gradient(90deg,#2e4f5d,#577889 46%,#294752)!important;
  box-shadow:inset 0 -10px rgba(0,0,0,.1),inset 0 1px rgba(255,255,255,.12);
}
.kal-ter-explorer .body::before{
  content:"";position:absolute;left:7px;right:7px;top:8px;height:8px;border-radius:5px;
  border-top:2px solid rgba(220,232,235,.22);opacity:.8;
}
.kal-ter-explorer .arm{top:38px;width:9px;height:38px;background:linear-gradient(#d2a279,#a77451)!important;border:1px solid #5f412f}
.kal-ter-explorer .leg{top:77px;height:38px;border-radius:5px;background:linear-gradient(#30363a,#1a1f22)!important}
.kal-ter-explorer .lamp{right:-8px;top:62px;border-radius:3px;box-shadow:0 0 13px 6px rgba(244,190,91,.3),0 0 30px 12px rgba(240,164,49,.09)}
.kal-ter-label-table{
  border:1px solid rgba(219,181,118,.23)!important;
  border-radius:24px!important;
  background:linear-gradient(180deg,rgba(37,43,48,.96),rgba(21,26,30,.98))!important;
  box-shadow:0 20px 48px rgba(0,0,0,.26),inset 0 1px rgba(255,255,255,.05)!important;
}
.kal-ter-labels button.selected{outline:2px solid #e2b867!important;outline-offset:3px}

/* Room 1.1 — coins and scales */
.kal-ter-coin-table{
  border:1px solid #3d281b;
  border-radius:12px;
  background:
    linear-gradient(180deg,rgba(255,238,206,.09),transparent 18%),
    repeating-linear-gradient(90deg,#805033 0 74px,#6d4129 75px 78px)!important;
  box-shadow:0 18px 32px rgba(0,0,0,.38),inset 0 2px rgba(255,255,255,.13),inset 0 -14px rgba(0,0,0,.14)!important;
}
.kal-ter-coin-table::after{
  background:linear-gradient(90deg,#3a2518 0 7%,transparent 7% 93%,#3a2518 93%);
}
.kal-ter-coin{
  border:1px solid #8b642a;
  color:#382b17;
  background:
    radial-gradient(circle at 32% 24%,rgba(255,255,239,.92) 0 5%,transparent 6%),
    radial-gradient(circle at 40% 34%,#f7d985,#d7aa4c 42%,#a16c27 76%,#6f4518 100%);
  box-shadow:inset 0 0 0 3px rgba(255,229,151,.22),inset 0 -5px 8px rgba(93,55,18,.18),0 7px 12px rgba(0,0,0,.28);
}
.kal-ter-coin::after{inset:6px;border:1px dashed rgba(96,67,29,.65)}
.kal-ter-coin:hover{filter:none;transform:translateY(-6px) rotate(-3deg);box-shadow:inset 0 0 0 3px rgba(255,229,151,.28),0 11px 18px rgba(0,0,0,.34)}
.kal-ter-coin-mini{
  border:1px solid #815d28;
  background:radial-gradient(circle at 34% 26%,#ffe8a0,#c98f35 65%,#764717);
  box-shadow:inset 0 0 0 2px rgba(255,234,167,.18),0 4px 7px rgba(0,0,0,.25);
}
.kal-ter-scale .base{
  border:1px solid #3b2a17;
  background:linear-gradient(180deg,#c49b56,#80602f 55%,#4d351c)!important;
  box-shadow:inset 0 2px rgba(255,255,255,.22),0 7px 10px rgba(0,0,0,.35);
}
.kal-ter-scale .post{
  border:1px solid #49351e;
  background:linear-gradient(90deg,#5c4223,#ddbd76 34%,#a67b3c 58%,#4f351c)!important;
}
.kal-ter-scale .cap{
  border:1px solid #4f381d;
  background:linear-gradient(180deg,#d2ae67,#79602f)!important;
}
.kal-ter-scale .beam{
  border:1px solid #50391e;
  background:linear-gradient(180deg,#d9b56f,#8f6b34 58%,#604520)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.22),0 6px 10px rgba(0,0,0,.26)!important;
}
.kal-ter-scale .chain{background:repeating-linear-gradient(#c59d55 0 3px,#5c4527 3px 6px)}
.kal-ter-scale .pan{
  border-bottom:7px solid #b18b4c;
  filter:drop-shadow(0 9px 7px rgba(0,0,0,.34));
}
.kal-ter-scale .pan::after{
  background:linear-gradient(180deg,rgba(255,241,204,.22),rgba(85,61,32,.05));
  box-shadow:inset 0 -2px rgba(0,0,0,.22),0 2px 3px rgba(0,0,0,.15);
}
.kal-ter-scale .pan-label{color:#d7c39d}
.kal-ter-coin-person{
  width:76px;height:143px;
  filter:drop-shadow(0 10px 7px rgba(0,0,0,.36));
}
.kal-ter-coin-person .head{
  left:23px;width:34px;height:37px;
  border:1px solid #5e4030;
  background:radial-gradient(circle at 34% 28%,#e8bd95,#ba825e 75%);
  box-shadow:inset 0 -5px rgba(99,59,39,.11),0 2px 4px rgba(0,0,0,.16);
}
.kal-ter-coin-person .head::after{
  content:"";position:absolute;left:8px;top:15px;width:3px;height:3px;border-radius:50%;background:#33261f;box-shadow:12px 0 #33261f;
}
.kal-ter-coin-person .hair{left:20px;width:42px;height:20px;background:#25211e}
.kal-ter-coin-person .body{
  left:14px;top:35px;width:50px;height:62px;
  border:1px solid #1d323c;
  border-radius:16px 16px 9px 9px;
  background:linear-gradient(90deg,#2b5365,#5f8597 48%,#274a59)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.12),inset 0 -12px rgba(0,0,0,.1);
}
.kal-ter-coin-person .arm{top:49px;border:1px solid #674735;background:linear-gradient(#d6a67e,#aa7554)!important}
.kal-ter-coin-person .leg{top:93px;background:linear-gradient(#343a3e,#1e2326)!important;border-color:#161b1e}
.kal-ter-coin-controls{
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:18px;
  background:rgba(12,16,19,.76);
  box-shadow:0 12px 28px rgba(0,0,0,.26),inset 0 1px rgba(255,255,255,.04);
  backdrop-filter:blur(7px);
}
.kal-ter-coin-legend{border-color:rgba(218,180,112,.24)!important;background:#181e22d9!important;color:#cfc3af!important}

/* Room 1.0 — guards */
.kal-ter-guard-room{
  border-width:1px!important;
  background:
    radial-gradient(ellipse at 50% 5%,rgba(234,195,125,.16),transparent 28%),
    linear-gradient(180deg,#343b40 0,#262d31 56%,#1c2124 100%)!important;
}
.kal-ter-guard-room:after{
  top:12px!important;left:12px!important;right:12px!important;height:220px!important;
  background:radial-gradient(ellipse at 50% 0,rgba(255,218,151,.13),transparent 68%)!important;
}
.kal-ter-guard-arch{
  border-color:#4b5358!important;
  background:rgba(10,13,15,.44)!important;
  box-shadow:inset 0 0 44px rgba(0,0,0,.55),0 18px 38px rgba(0,0,0,.24)!important;
}
.kal-ter-guard-door .frame{
  border-color:#4b5358!important;
  background:linear-gradient(180deg,#555d62,#30373b)!important;
  box-shadow:0 14px 30px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.08)!important;
}
.kal-ter-guard-door .leaf{
  border:1px solid rgba(224,167,111,.24)!important;
  background:
    linear-gradient(100deg,rgba(255,238,205,.09),transparent 18% 76%,rgba(0,0,0,.18)),
    repeating-linear-gradient(90deg,#70442b 0 34px,#965d37 35px 38px,#5c3824 39px 43px)!important;
  box-shadow:inset 0 0 28px rgba(20,10,3,.45),0 10px 20px rgba(0,0,0,.28)!important;
}
.kal-ter-guard-door .iron{
  border:1px solid #171b1e!important;
  background:linear-gradient(180deg,#747b7f,#353b3f 52%,#1b2023)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.2),0 3px 7px rgba(0,0,0,.34)!important;
}
.kal-ter-guard-door .knob{
  background:radial-gradient(circle at 35% 31%,#f4d79a,#ad8242 50%,#61451e 82%)!important;
  box-shadow:0 3px 8px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.35)!important;
}
.kal-ter-guard-door .label{color:#e4d2b2!important;text-shadow:0 2px 8px rgba(0,0,0,.5)!important}
.kal-ter-guard{
  filter:drop-shadow(0 10px 9px rgba(0,0,0,.36));
}
.kal-ter-guard .head{
  border:1px solid #654939;
  background:radial-gradient(circle at 34% 26%,#e1b58e,#b77f5c 74%)!important;
  box-shadow:inset 0 -7px 8px rgba(100,57,36,.12)!important;
}
.kal-ter-guard .head::after{top:18px;width:4px;height:3px;background:#28211d;box-shadow:17px 0 #28211d}
.kal-ter-guard .helmet{
  border:1px solid #111619!important;
  background:linear-gradient(115deg,#202629 0,#9aa1a4 28%,#4d5559 54%,#161b1e 100%)!important;
  box-shadow:inset 0 2px rgba(255,255,255,.27),0 5px 9px rgba(0,0,0,.35)!important;
}
.kal-ter-guard .helmet:before{
  content:"";position:absolute;left:5px;right:5px;bottom:-8px;height:9px;border-radius:5px;background:linear-gradient(180deg,#6e767a,#2b3134);border:1px solid #15191b;
}
.kal-ter-guard .body{
  border:1px solid #14191c!important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.04),transparent 20% 80%,rgba(0,0,0,.16)),
    linear-gradient(180deg,#4f575b,#31383c 58%,#23292c)!important;
  box-shadow:inset 0 0 18px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.11)!important;
}
.kal-ter-guard .body::before,.kal-ter-guard .body::after{
  background:linear-gradient(#737b7f,#30373a)!important;
  border-color:#161b1d!important;
  box-shadow:inset 0 1px rgba(255,255,255,.16)!important;
}
.kal-ter-guard .belt{
  border-color:#3f2f20!important;
  background:linear-gradient(180deg,#725238,#3e2d20)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.08);
}
.kal-ter-guard .spear{
  background:linear-gradient(90deg,#43301f,#9b7447,#483321)!important;
}
.kal-ter-guard .spear:before{border-bottom-color:#adb4b8!important;filter:drop-shadow(0 2px 2px rgba(0,0,0,.4))}
.kal-ter-guard.selected{filter:drop-shadow(0 0 18px rgba(230,187,110,.55)) drop-shadow(0 10px 9px rgba(0,0,0,.36))}
.kal-ter-guard-player{
  filter:drop-shadow(0 10px 8px rgba(0,0,0,.36));
}
.kal-ter-guard-player .head{
  border:1px solid #614332;
  background:radial-gradient(circle at 34% 27%,#e8bd96,#b77d5a 76%)!important;
  box-shadow:inset 0 -5px rgba(98,56,36,.1)!important;
}
.kal-ter-guard-player .head::after{
  content:"";position:absolute;left:7px;top:14px;width:3px;height:3px;border-radius:50%;background:#30241e;box-shadow:12px 0 #30241e;
}
.kal-ter-guard-player .hair{background:#25211f!important}
.kal-ter-guard-player .body{
  border:1px solid #19313b!important;
  background:linear-gradient(90deg,#2f5564,#648392,#2b4a56)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.12),inset 0 -11px rgba(0,0,0,.1);
}
.kal-ter-guard-player .leg{background:linear-gradient(#353b3e,#1e2326)!important}
.kal-ter-guard-speech{
  border:1px solid #b89d72!important;
  background:linear-gradient(180deg,#f4ead7,#d9c8a9)!important;
  color:#2f2a22!important;
  box-shadow:0 16px 36px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.75)!important;
}
.kal-ter-guard-hud{
  border:1px solid rgba(216,180,117,.24)!important;
  background:linear-gradient(180deg,rgba(35,41,46,.97),rgba(18,23,27,.98))!important;
  box-shadow:0 26px 52px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.05)!important;
  backdrop-filter:blur(9px);
}
.kal-ter-guard-hud:before{
  border-color:rgba(222,184,119,.25)!important;
  background:rgba(221,178,106,.08)!important;
  color:#e5c98f!important;
}
.kal-ter-guard-hud .status{color:#e4d1ad!important}
.kal-ter-guard-hud .question-caption{color:#c9baa3!important}
.kal-ter-guard-hud .qbtn{
  border-color:rgba(207,175,121,.18)!important;
  background:linear-gradient(180deg,#2d343a,#1f252a)!important;
  color:#eee4d4!important;
  box-shadow:0 10px 20px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.04)!important;
}
.kal-ter-guard-hud .qbtn:hover{
  border-color:rgba(224,183,111,.62)!important;
  background:linear-gradient(180deg,#3a434a,#262d32)!important;
}
.kal-ter-guard-hud .qbtn .qnum{
  background:linear-gradient(180deg,#b88b49,#76572c)!important;
  color:#fff5dd!important;
}

/* Rewards / modal */
.kal-ter-secret,.kal-ter-coin-guess,.kal-ter-coin-locked,.kal-ter-coin-reward,.kal-ter-guard-reward{
  border:1px solid rgba(222,186,123,.28)!important;
  background:radial-gradient(circle at 50% 35%,rgba(127,100,56,.28),rgba(10,14,17,.96) 70%)!important;
  box-shadow:0 28px 70px rgba(0,0,0,.5),inset 0 1px rgba(255,255,255,.055)!important;
}
.kal-ter-modal-card{
  border:1px solid rgba(219,183,120,.28)!important;
  background:linear-gradient(180deg,#30383e,#1b2126)!important;
  color:#eee2cf!important;
  box-shadow:0 34px 90px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.06)!important;
}

@media(min-width:901px) and (max-width:1100px){
  .kal-ter-app{width:min(1120px,calc(100vw - 18px));padding-inline:18px}
  .kal-ter-door-hall{gap:20px;padding-inline:22px}
  .kal-ter-crates{gap:20px}
}


@media (prefers-reduced-motion:reduce){
  .kal-ter-app *{scroll-behavior:auto!important}
  .kal-ter-dust,.kal-ter-lamp span,.kal-ter-coin-lantern span,.kal-ter-lobby-torch .flame,.kal-ter-guard-torch .flame,
  .kal-ter-explorer,.kal-ter-coin-person,.kal-ter-guard,.kal-ter-guard-player{animation-duration:.001ms!important;animation-iteration-count:1!important}
}

/* ========================================================================
 * 1.3.0 premium art pass
 * The puzzle logic stays DOM-driven; room scenery is rendered from local
 * backplates and the interactive elements remain real HTML controls.
 * ======================================================================== */

.kal-ter-app{
  width:min(1500px,calc(100vw - 24px))!important;
  padding:34px 24px 78px!important;
  border-radius:34px!important;
  background:
    radial-gradient(ellipse at 50% -4%,rgba(42,89,128,.22),transparent 36%),
    radial-gradient(ellipse at 50% 18%,rgba(226,170,79,.09),transparent 34%),
    linear-gradient(180deg,#0a1016 0,#0b1015 48%,#070a0d 100%)!important;
  box-shadow:0 38px 120px rgba(0,0,0,.44),inset 0 1px rgba(255,255,255,.04)!important;
}
.kal-ter-app::before{
  opacity:.16!important;
  background-size:64px 64px!important;
}
.kal-ter-vignette{
  box-shadow:inset 0 0 150px 20px rgba(0,0,0,.34),inset 0 -100px 130px rgba(0,0,0,.22)!important;
}

/* Premium title blocks */
.kal-ter-lobby-head,
.kal-ter-puzzle-head{
  position:relative;
  max-width:1040px!important;
  margin:0 auto 22px!important;
  padding:22px 30px 24px!important;
  border:1px solid rgba(218,169,88,.56)!important;
  border-radius:24px!important;
  background:
    linear-gradient(180deg,rgba(20,28,35,.98),rgba(10,15,20,.985))!important;
  box-shadow:
    0 20px 48px rgba(0,0,0,.34),
    inset 0 0 0 2px rgba(255,214,141,.04),
    inset 0 1px rgba(255,255,255,.055)!important;
  text-align:center!important;
}
.kal-ter-lobby-head::before,
.kal-ter-puzzle-head::before{
  content:"";
  position:absolute;
  left:19%;right:19%;bottom:12px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(224,174,92,.72),transparent);
}
.kal-ter-lobby-head>span,
.kal-ter-kicker{
  color:#dca85b!important;
  font-size:13px!important;
  font-weight:900!important;
}
.kal-ter-lobby-head h1,
.kal-ter-puzzle-head h2,
.kal-ter-coin-head h2,
.kal-ter-guard-head h2{
  margin:5px 0 9px!important;
  color:#f4d49a!important;
  font-size:clamp(31px,3.1vw,47px)!important;
  line-height:1.06!important;
  letter-spacing:-.025em!important;
  text-shadow:0 2px 0 rgba(0,0,0,.45),0 10px 28px rgba(0,0,0,.38)!important;
}
.kal-ter-lobby-head p,
.kal-ter-puzzle-head p,
.kal-ter-guard-head p{
  max-width:860px;
  margin-inline:auto!important;
  color:#d8c7aa!important;
  font-size:15px!important;
  line-height:1.7!important;
}
.kal-ter-puzzle-head{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  align-items:center!important;
  text-align:right!important;
}
.kal-ter-puzzle-head::before{left:10%;right:10%}
.kal-ter-head-actions{
  display:flex!important;
  gap:10px!important;
  align-items:center!important;
}
.kal-ter-back-lobby,.kal-ter-reset{
  min-height:46px!important;
  border-color:rgba(222,174,95,.55)!important;
  background:linear-gradient(180deg,#18222b,#0c1218)!important;
  color:#ebc983!important;
  box-shadow:0 10px 22px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.07)!important;
}
.kal-ter-back-lobby{padding:10px 17px!important;border-radius:14px!important}
.kal-ter-reset{width:46px!important;height:46px!important}

.kal-ter-lobby-scroll-card,
.kal-ter-scroll,
.kal-ter-narrator,
.kal-ter-coin-message,
.kal-ter-guard-message{
  border-color:rgba(216,169,91,.4)!important;
  background:linear-gradient(180deg,rgba(18,25,31,.96),rgba(9,14,18,.96))!important;
  color:#ddc9a8!important;
  box-shadow:0 16px 34px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.045)!important;
}
.kal-ter-scroll{
  max-width:1040px!important;
  padding:15px 24px!important;
  border-radius:16px!important;
  font-size:14px!important;
  line-height:1.65!important;
}
.kal-ter-scroll strong{color:#efbb64!important}
.kal-ter-narrator,.kal-ter-coin-message,.kal-ter-guard-message{
  max-width:1040px!important;
  min-height:50px!important;
  padding:13px 18px!important;
  border-radius:15px!important;
  font-size:14px!important;
  line-height:1.65!important;
}

/* ------------------------------------------------------------------------
 * Lobby: premium illustrated corridor with real clickable door regions.
 * ------------------------------------------------------------------------ */
.kal-ter-lobby{max-width:1440px!important}
.kal-ter-lobby-head{margin-bottom:26px!important}
.kal-ter-lobby-scroll-card{
  margin:17px auto 0!important;
  max-width:740px!important;
  padding:13px 20px!important;
  border-radius:16px!important;
}
.kal-ter-lobby-stage{
  position:relative!important;
  max-width:1400px!important;
  height:710px!important;
  margin:0 auto!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(221,177,100,.34)!important;
  border-radius:30px!important;
  background:
    linear-gradient(180deg,transparent 0 69%,rgba(7,11,14,.25) 74%,#070b0f 100%),
    url("art/lobby_scene.webp") center top/100% 510px no-repeat,
    linear-gradient(180deg,#131a20,#090d11)!important;
  box-shadow:0 34px 82px rgba(0,0,0,.48),inset 0 0 0 2px rgba(255,226,175,.025)!important;
}
.kal-ter-lobby-stage::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  height:auto!important;
  border-radius:inherit!important;
  background:
    radial-gradient(ellipse at 50% 15%,rgba(44,117,171,.11),transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.015),transparent 42%)!important;
  pointer-events:none!important;
}
.kal-ter-lobby-stage::after{
  content:""!important;
  position:absolute!important;
  left:4%!important;right:4%!important;bottom:0!important;height:210px!important;
  background:linear-gradient(180deg,transparent,rgba(6,10,13,.88) 34%,#070a0d 100%)!important;
  pointer-events:none!important;
}
.kal-ter-lobby-torch{display:none!important}
.kal-ter-door-hall{
  position:absolute!important;
  z-index:4!important;
  inset:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5.5%!important;
  width:auto!important;
  max-width:none!important;
  height:100%!important;
  margin:0!important;
  padding:0 10.5% 28px!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  align-items:stretch!important;
}
.kal-ter-door-hall::before,.kal-ter-door-hall::after{display:none!important}
.kal-ter-room-door{
  position:relative!important;
  min-width:0!important;
  height:100%!important;
  padding:0!important;
  transform:none!important;
  transition:filter .22s ease,transform .22s ease!important;
}
.kal-ter-room-door:hover,.kal-ter-room-door:focus-visible{
  transform:translateY(-3px)!important;
  filter:drop-shadow(0 0 20px rgba(237,184,93,.28))!important;
  outline:none!important;
}
.kal-ter-room-number,.kal-ter-room-plaque,.kal-ter-stone-arch{opacity:0!important;pointer-events:none!important}
.kal-ter-room-door::before{
  content:"";
  position:absolute;
  top:78px;left:14%;right:14%;height:355px;
  border-radius:140px 140px 18px 18px;
  border:1px solid transparent;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.kal-ter-room-door:hover::before,.kal-ter-room-door:focus-visible::before{
  border-color:rgba(239,190,104,.55);
  background:rgba(255,204,118,.025);
  box-shadow:0 0 38px rgba(221,157,58,.16),inset 0 0 32px rgba(255,209,130,.035);
}
.kal-ter-room-card{
  position:absolute!important;
  z-index:8!important;
  left:50%!important;
  top:522px!important;
  width:min(300px,92%)!important;
  max-width:none!important;
  min-height:142px!important;
  transform:translateX(-50%)!important;
  padding:22px 18px 18px!important;
  border:1px solid rgba(222,173,93,.54)!important;
  border-radius:20px!important;
  background:linear-gradient(180deg,rgba(17,25,32,.985),rgba(7,12,16,.985))!important;
  box-shadow:0 18px 36px rgba(0,0,0,.38),inset 0 0 0 2px rgba(255,211,140,.025),inset 0 1px rgba(255,255,255,.05)!important;
  text-align:center!important;
}
.kal-ter-room-card::after{
  content:"";
  display:block;
  width:9px;height:9px;
  margin:16px auto -23px;
  transform:rotate(45deg);
  border-right:1px solid #d7a75b;
  border-bottom:1px solid #d7a75b;
  background:#0b1116;
}
.kal-ter-room-card strong{
  margin-bottom:8px!important;
  color:#efcb8b!important;
  font-size:20px!important;
  line-height:1.25!important;
}
.kal-ter-room-card small{
  color:#d7c7ad!important;
  font-size:14px!important;
  line-height:1.55!important;
}
.kal-ter-lobby-message{
  max-width:900px!important;
  min-height:0!important;
  margin:18px auto 0!important;
  padding:11px 18px!important;
  border-radius:14px!important;
  font-size:13px!important;
}

/* ------------------------------------------------------------------------
 * Room 1.1: scale room. The illustration is the room, the controls stay live.
 * ------------------------------------------------------------------------ */
.kal-ter-coin-puzzle{max-width:1440px!important;margin:0 auto!important}
.kal-ter-coin-room{
  position:relative!important;
  max-width:1400px!important;
  height:790px!important;
  margin:18px auto 0!important;
  overflow:hidden!important;
  border:1px solid rgba(220,174,95,.38)!important;
  border-radius:30px!important;
  background:
    linear-gradient(180deg,transparent 0 62%,rgba(7,11,14,.14) 66%,#080c10 100%),
    url("art/coin_scene.webp") center top/100% 520px no-repeat,
    linear-gradient(180deg,#10171d,#080c10)!important;
  box-shadow:0 34px 82px rgba(0,0,0,.48),inset 0 0 0 2px rgba(255,226,175,.025)!important;
}
.kal-ter-coin-room::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(ellipse at 50% 25%,rgba(244,181,79,.07),transparent 36%)!important;
  pointer-events:none!important;
}
.kal-ter-coin-room::after{
  box-shadow:inset 0 0 80px 10px rgba(0,0,0,.18),inset 0 -90px 110px rgba(0,0,0,.25)!important;
}
.kal-ter-coin-light-beam,.kal-ter-coin-lantern,.kal-ter-coin-secret-door,.kal-ter-coin-floor,.kal-ter-coin-person{display:none!important}
.kal-ter-scale{
  z-index:16!important;
  left:31%!important;
  top:175px!important;
  bottom:auto!important;
  width:42%!important;
  min-width:0!important;
  height:235px!important;
}
.kal-ter-scale .base,.kal-ter-scale .post,.kal-ter-scale .cap,.kal-ter-scale .beam,.kal-ter-scale .chain,.kal-ter-scale .pan-label{opacity:0!important}
.kal-ter-scale .pan{
  top:52px!important;
  width:38%!important;
  height:104px!important;
  border:1px solid transparent!important;
  border-radius:50%!important;
  background:transparent!important;
  filter:none!important;
  transition:transform .85s cubic-bezier(.2,.8,.2,1),background .18s,border-color .18s!important;
}
.kal-ter-scale .pan::after{display:none!important}
.kal-ter-scale .pan:hover,.kal-ter-scale .pan:focus-visible{
  border-color:rgba(242,191,100,.5)!important;
  background:radial-gradient(ellipse,rgba(255,198,97,.12),transparent 68%)!important;
  outline:none!important;
}
.kal-ter-scale .slot{
  left:7%!important;right:7%!important;bottom:7px!important;height:52px!important;
  gap:5px!important;
}
.kal-ter-coin-table{
  z-index:12!important;
  left:16%!important;right:16%!important;top:425px!important;bottom:auto!important;height:160px!important;
  border:1px solid rgba(218,171,91,.5)!important;
  border-radius:18px!important;
  background:
    linear-gradient(180deg,rgba(255,226,172,.06),transparent 22%),
    linear-gradient(180deg,#171d22,#0d1216)!important;
  box-shadow:0 20px 42px rgba(0,0,0,.44),inset 0 0 0 2px rgba(255,214,143,.025),inset 0 1px rgba(255,255,255,.05)!important;
}
.kal-ter-coin-table::after{display:none!important}
.kal-ter-coin-bank{
  z-index:18!important;
  left:50%!important;right:auto!important;top:448px!important;bottom:auto!important;
  width:min(720px,62%)!important;
  min-width:0!important;
  transform:translateX(-50%)!important;
  grid-template-columns:repeat(5,minmax(54px,1fr))!important;
  gap:13px!important;
  align-items:center!important;
}
.kal-ter-coin{
  width:100%!important;
  max-width:82px!important;
  justify-self:center!important;
  border:2px solid #9b6c27!important;
  color:#2b1b08!important;
  font-size:20px!important;
  background:
    radial-gradient(circle at 31% 24%,rgba(255,255,224,.96) 0 5%,transparent 6%),
    radial-gradient(circle at 44% 39%,#ffe59a 0,#e5b54e 38%,#aa7125 72%,#6d4215 100%)!important;
  box-shadow:inset 0 0 0 4px rgba(255,230,151,.22),inset 0 -6px 8px rgba(91,52,14,.2),0 8px 15px rgba(0,0,0,.35)!important;
}
.kal-ter-coin::before{
  content:"";
  position:absolute;inset:5px;
  border-radius:50%;
  border:1px solid rgba(86,54,19,.52);
}
.kal-ter-coin.selected{
  transform:translateY(-7px)!important;
  outline:3px solid rgba(88,176,232,.88)!important;
  outline-offset:4px!important;
  box-shadow:0 0 26px rgba(75,172,229,.34),inset 0 0 0 4px rgba(255,230,151,.24),0 10px 17px rgba(0,0,0,.36)!important;
}
.kal-ter-coin-mini{
  width:34px!important;height:34px!important;
  border:1px solid #8b6023!important;
  background:radial-gradient(circle at 34% 26%,#ffe89d,#c98e31 66%,#714514)!important;
  box-shadow:0 4px 8px rgba(0,0,0,.32),inset 0 0 0 2px rgba(255,236,172,.16)!important;
}
.kal-ter-coin-controls{
  left:8%!important;bottom:24px!important;width:84%!important;
  min-height:98px!important;
  padding:15px 18px!important;
  gap:12px!important;
  border:1px solid rgba(220,173,95,.44)!important;
  border-radius:20px!important;
  background:linear-gradient(180deg,rgba(16,23,29,.98),rgba(8,13,17,.98))!important;
  box-shadow:0 20px 44px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.05)!important;
}
.kal-ter-coin-controls button{
  min-height:54px!important;
  padding:11px 22px!important;
  border-radius:14px!important;
  font-size:15px!important;
}
.kal-ter-coin-controls button.primary{
  min-width:150px!important;
  border-color:#d8ad63!important;
  background:linear-gradient(180deg,#214d78,#17324d)!important;
  color:#f5cf89!important;
  box-shadow:0 8px 22px rgba(0,0,0,.3),inset 0 0 0 2px rgba(237,188,103,.22),inset 0 1px rgba(255,255,255,.08)!important;
}
.kal-ter-coin-controls>span[data-kal-ter-coin-counter]{
  min-width:150px!important;
  color:#efc47c!important;
  font-size:16px!important;
  font-weight:800!important;
}
.kal-ter-coin-legend{
  min-width:300px!important;
  padding:10px 14px!important;
  border:1px solid rgba(214,166,88,.28)!important;
  border-radius:14px!important;
  background:#0c1217d9!important;
  line-height:1.5!important;
}
.kal-ter-coin-guess,.kal-ter-coin-locked,.kal-ter-coin-reward{
  inset:120px 16% 120px!important;
  border-radius:24px!important;
}

/* ------------------------------------------------------------------------
 * Room 1.5: illustrated crate room, real crate hit targets and live labels.
 * ------------------------------------------------------------------------ */
.kal-ter-puzzle{max-width:1440px!important;margin:0 auto!important}
.kal-ter-puzzle-room{
  max-width:1400px!important;
  height:690px!important;
  margin:18px auto 0!important;
  overflow:hidden!important;
  border:1px solid rgba(220,174,95,.38)!important;
  border-radius:30px!important;
  background:
    linear-gradient(180deg,transparent 0 75%,rgba(7,11,14,.18) 80%,#080c10 100%),
    url("art/crate_scene.webp") center top/100% 555px no-repeat,
    linear-gradient(180deg,#10171d,#080c10)!important;
  box-shadow:0 34px 82px rgba(0,0,0,.48),inset 0 0 0 2px rgba(255,226,175,.025)!important;
}
.kal-ter-puzzle-room::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(ellipse at 50% 12%,rgba(240,177,75,.055),transparent 34%)!important;
  pointer-events:none!important;
}
.kal-ter-puzzle-room::after{box-shadow:inset 0 0 80px rgba(0,0,0,.15),inset 0 -86px 105px rgba(0,0,0,.24)!important}
.kal-ter-beam,.kal-ter-lamp,.kal-ter-back-door,.kal-ter-floor,.kal-ter-explorer{display:none!important}
.kal-ter-crates{
  z-index:16!important;
  left:9%!important;right:9%!important;top:145px!important;bottom:auto!important;
  height:450px!important;
  gap:5.2%!important;
  align-items:start!important;
}
.kal-ter-crate-card{
  position:relative!important;
  height:440px!important;
  border-radius:24px!important;
  transition:transform .2s ease,filter .2s ease!important;
}
.kal-ter-crate-card::before{
  content:"";
  position:absolute;
  left:3%;right:3%;top:4%;height:72%;
  border:1px solid transparent;
  border-radius:18px;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.kal-ter-crate-card:hover::before,.kal-ter-crate-card:focus-visible::before{
  border-color:rgba(237,184,93,.55);
  background:rgba(255,198,96,.018);
  box-shadow:0 0 34px rgba(222,157,58,.15),inset 0 0 30px rgba(255,212,135,.025);
}
.kal-ter-crate-card:hover{transform:translateY(-3px)!important}
.kal-ter-crate-visual{
  width:100%!important;height:340px!important;aspect-ratio:auto!important;
  filter:none!important;
}
.kal-ter-crate-face,.kal-ter-crate-lid,.kal-ter-wrong-label{opacity:0!important;pointer-events:none!important}
.kal-ter-fruit{
  top:30px!important;
  font-size:64px!important;
  filter:drop-shadow(0 10px 12px rgba(0,0,0,.38))!important;
}
.kal-ter-crate-card.is-open::before{
  border-color:rgba(246,190,88,.72)!important;
  box-shadow:0 0 45px rgba(236,158,44,.22),inset 0 0 36px rgba(255,202,102,.035)!important;
}
.kal-ter-assigned{
  position:relative!important;
  z-index:5!important;
  width:88%!important;
  min-height:60px!important;
  margin-top:-2px!important;
  padding:8px 12px!important;
  border:1px dashed rgba(219,172,93,.42)!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,rgba(13,20,26,.96),rgba(7,12,16,.96))!important;
  color:#d4c1a3!important;
  font-size:13px!important;
  box-shadow:0 12px 24px rgba(0,0,0,.26),inset 0 1px rgba(255,255,255,.04)!important;
}
.kal-ter-assigned.has-label{
  border-style:solid!important;
  border-color:#d9aa5c!important;
  background:linear-gradient(180deg,#e6d2a9,#c3a676)!important;
  color:#31261a!important;
  font-size:15px!important;
}
.kal-ter-label-table{
  max-width:1120px!important;
  margin:24px auto 0!important;
  padding:18px 20px!important;
  border-color:rgba(219,171,92,.42)!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,rgba(16,23,29,.98),rgba(8,13,17,.98))!important;
}
.kal-ter-labels button,.kal-ter-table-actions button,.kal-ter-retry button{
  min-height:48px!important;
  border-radius:13px!important;
}

/* ------------------------------------------------------------------------
 * Room 1.0: illustrated guards, real guard/door hit targets and live HUD.
 * ------------------------------------------------------------------------ */
.kal-ter-guard-puzzle{max-width:1440px!important;margin:0 auto!important}
.kal-ter-guard-room{
  position:relative!important;
  max-width:1400px!important;
  min-height:0!important;
  height:auto!important;
  margin:18px auto 0!important;
  padding:0 0 24px!important;
  overflow:hidden!important;
  border:1px solid rgba(220,174,95,.38)!important;
  border-radius:30px!important;
  background:
    linear-gradient(180deg,transparent 0 67%,rgba(7,11,14,.2) 72%,#080c10 100%),
    url("art/guard_scene.webp") center top/100% 520px no-repeat,
    linear-gradient(180deg,#10171d,#080c10)!important;
  box-shadow:0 34px 82px rgba(0,0,0,.48),inset 0 0 0 2px rgba(255,226,175,.025)!important;
}
.kal-ter-guard-room::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(ellipse at 50% 20%,rgba(245,181,80,.055),transparent 34%)!important;
  pointer-events:none!important;
}
.kal-ter-guard-room::after{display:none!important}
.kal-ter-guard-arch,.kal-ter-guard-floor,.kal-ter-guard-torch,.kal-ter-guard-player{display:none!important}
.kal-ter-guard-door{
  z-index:14!important;
  top:76px!important;
  width:18.5%!important;
  height:375px!important;
  padding:0!important;
  border:0!important;
  border-radius:150px 150px 18px 18px!important;
  background:transparent!important;
  box-shadow:none!important;
}
.kal-ter-guard-door.left{left:27.5%!important}
.kal-ter-guard-door.right{right:27.5%!important}
.kal-ter-guard-door .frame,.kal-ter-guard-door .leaf,.kal-ter-guard-door .label{opacity:0!important;pointer-events:none!important}
.kal-ter-guard-door::after{
  content:"";
  position:absolute;inset:0;
  border:1px solid transparent;
  border-radius:inherit;
  transition:border-color .18s,box-shadow .18s,background .18s;
}
.kal-ter-guard-door:hover::after,.kal-ter-guard-door:focus-visible::after,.kal-ter-guard-door.pointed::after{
  border-color:rgba(237,184,93,.62);
  background:rgba(255,199,98,.018);
  box-shadow:0 0 42px rgba(224,158,55,.2),inset 0 0 34px rgba(255,208,126,.03);
}
.kal-ter-guard{
  z-index:18!important;
  top:158px!important;
  width:13%!important;
  height:305px!important;
  border:0!important;
  border-radius:70px!important;
  background:transparent!important;
  filter:none!important;
  box-shadow:none!important;
}
.kal-ter-guard.left{left:17.5%!important}
.kal-ter-guard.right{right:17.5%!important}
.kal-ter-guard .spear,.kal-ter-guard .helmet,.kal-ter-guard .head,.kal-ter-guard .body,.kal-ter-guard .belt,.kal-ter-guard .name{opacity:0!important;pointer-events:none!important}
.kal-ter-guard::after{
  content:"";
  position:absolute;inset:-8px;
  border:1px solid transparent;
  border-radius:70px;
  transition:border-color .18s,box-shadow .18s,background .18s;
}
.kal-ter-guard:hover::after,.kal-ter-guard:focus-visible::after,.kal-ter-guard.selected::after{
  border-color:rgba(237,184,93,.66);
  background:radial-gradient(ellipse,rgba(255,200,101,.055),transparent 70%);
  box-shadow:0 0 38px rgba(231,168,65,.23);
}
.kal-ter-guard-speech{
  z-index:28!important;
  top:28px!important;
  min-width:260px!important;
  max-width:440px!important;
  padding:14px 18px!important;
  border:1px solid #c3a36a!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#f4e7cd,#d7c09a)!important;
  color:#2b241b!important;
  box-shadow:0 18px 38px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.7)!important;
}
.kal-ter-guard-hud{
  position:relative!important;
  z-index:24!important;
  left:auto!important;right:auto!important;bottom:auto!important;
  width:min(1080px,88%)!important;
  margin:548px auto 0!important;
  padding:18px 20px 20px!important;
  transform:none!important;
  border:1px solid rgba(220,173,95,.46)!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,rgba(16,23,29,.985),rgba(8,13,17,.99))!important;
  box-shadow:0 22px 48px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.05)!important;
}
.kal-ter-guard-hud::before{
  margin-bottom:12px!important;
  border-color:rgba(221,172,92,.38)!important;
  background:rgba(32,39,45,.92)!important;
  color:#efc47d!important;
}
.kal-ter-guard-hud .status{
  color:#e5d0af!important;
  font-size:15px!important;
}
.kal-ter-guard-hud .questions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:11px!important;
}
.kal-ter-guard-hud .qbtn{
  min-height:62px!important;
  border-color:rgba(217,170,91,.34)!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,#18222b,#0d141a)!important;
  color:#ead9bc!important;
}
.kal-ter-guard-hud .qbtn:hover{
  border-color:rgba(235,183,95,.68)!important;
  background:linear-gradient(180deg,#202c36,#121a21)!important;
}
.kal-ter-guard-danger,.kal-ter-guard-success{z-index:26!important}

/* Premium overlays / rewards */
.kal-ter-secret,.kal-ter-coin-guess,.kal-ter-coin-locked,.kal-ter-coin-reward,.kal-ter-guard-reward{
  border-color:rgba(225,178,96,.52)!important;
  background:radial-gradient(circle at 50% 32%,rgba(100,77,38,.28),rgba(5,9,12,.97) 70%)!important;
  box-shadow:0 34px 90px rgba(0,0,0,.58),inset 0 1px rgba(255,255,255,.05)!important;
}

@media(min-width:901px) and (max-width:1180px){
  .kal-ter-app{width:calc(100vw - 12px)!important;padding-inline:12px!important}
  .kal-ter-lobby-stage{height:680px!important;background-size:1120px 510px!important}
  .kal-ter-door-hall{padding-inline:6%!important;gap:2%!important}
  .kal-ter-room-card{width:min(270px,94%)!important}
  .kal-ter-coin-room,.kal-ter-puzzle-room,.kal-ter-guard-room{background-size:1120px auto!important}
  .kal-ter-coin-bank{width:min(680px,72%)!important}
  .kal-ter-crates{left:5%!important;right:5%!important;gap:2.5%!important}
}





/* ========================================================================
 * 1.3.1 full-screen room page
 * Remove theme/sidebar width constraints on the dedicated secret-room page
 * and let the game use the viewport width.
 * ======================================================================== */
body.kal-ter-room-page{
  overflow-x:hidden!important;
}
body.kal-ter-room-page #content,
body.kal-ter-room-page .site-content,
body.kal-ter-room-page .content-area,
body.kal-ter-room-page #primary,
body.kal-ter-room-page main.site-main,
body.kal-ter-room-page .site-main,
body.kal-ter-room-page article.page,
body.kal-ter-room-page article.page .entry-content,
body.kal-ter-room-page .wp-block-post-content{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  float:none!important;
}
body.kal-ter-room-page .site-content>.container,
body.kal-ter-room-page .site-content>.ast-container,
body.kal-ter-room-page .site-content>.ct-container,
body.kal-ter-room-page #content>.container,
body.kal-ter-room-page #content>.ast-container,
body.kal-ter-room-page #content>.ct-container{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  display:block!important;
}
body.kal-ter-room-page #secondary,
body.kal-ter-room-page aside.widget-area{
  display:none!important;
}
body.kal-ter-room-page .kal-ter-app{
  box-sizing:border-box!important;
  left:50%!important;
  width:100vw!important;
  max-width:100vw!important;
  min-height:100vh!important;
  margin:0!important;
  padding-left:clamp(12px,2.4vw,42px)!important;
  padding-right:clamp(12px,2.4vw,42px)!important;
  transform:translateX(-50%)!important;
  border-left:0!important;
  border-right:0!important;
  border-radius:0!important;
}
body.kal-ter-room-page .kal-ter-lobby,
body.kal-ter-room-page .kal-ter-puzzle,
body.kal-ter-room-page .kal-ter-coin-puzzle,
body.kal-ter-room-page .kal-ter-guard-puzzle{
  width:100%!important;
  max-width:1580px!important;
}
body.kal-ter-room-page .kal-ter-lobby-stage,
body.kal-ter-room-page .kal-ter-coin-room,
body.kal-ter-room-page .kal-ter-puzzle-room,
body.kal-ter-room-page .kal-ter-guard-room{
  width:100%!important;
  max-width:1500px!important;
}



/* ========================================================================
 * 1.4.0 — full-scene integration
 * The approved 16:10 artwork is now the room canvas itself. No vertical
 * slicing, no duplicated cards below the image, and no cover-cropping on
 * desktop. Live puzzle controls are positioned over the artwork.
 * ======================================================================== */

@media(min-width:901px){
  body.kal-ter-room-page .kal-ter-app,
  .kal-ter-app{
    padding:0 0 42px!important;
    background:#070b0f!important;
  }

  .kal-ter-lobby,
  .kal-ter-coin-puzzle,
  .kal-ter-puzzle,
  .kal-ter-guard-puzzle{
    position:relative!important;
    width:100%!important;
    max-width:1586px!important;
    margin:0 auto!important;
  }

  .kal-ter-lobby-stage,
  .kal-ter-coin-room,
  .kal-ter-puzzle-room,
  .kal-ter-guard-room{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:1586px!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:1586 / 992!important;
    margin:0 auto!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  .kal-ter-lobby-stage::before,
  .kal-ter-lobby-stage::after,
  .kal-ter-coin-room::before,
  .kal-ter-coin-room::after,
  .kal-ter-puzzle-room::before,
  .kal-ter-puzzle-room::after,
  .kal-ter-guard-room::before,
  .kal-ter-guard-room::after{
    display:none!important;
  }

  /* Lobby: one continuous approved scene. */
  .kal-ter-lobby-head,
  .kal-ter-lobby-message{
    display:none!important;
  }
  .kal-ter-lobby-stage{
    background:url("art/lobby_full.webp") center center/100% 100% no-repeat!important;
  }
  .kal-ter-door-hall{
    position:absolute!important;
    z-index:20!important;
    inset:0!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:3.8%!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:16% 15.5% 6.5%!important;
    border:0!important;
    background:none!important;
  }
  .kal-ter-room-door{
    position:relative!important;
    height:100%!important;
    min-height:0!important;
    padding:0!important;
    border:0!important;
    border-radius:26px!important;
    background:transparent!important;
    box-shadow:none!important;
    filter:none!important;
    transform:none!important;
    cursor:pointer!important;
  }
  .kal-ter-room-number,
  .kal-ter-room-plaque,
  .kal-ter-stone-arch,
  .kal-ter-room-card{
    display:none!important;
  }
  .kal-ter-room-door::before{
    content:""!important;
    position:absolute!important;
    top:5%!important;
    left:7%!important;
    right:7%!important;
    height:58%!important;
    border:2px solid transparent!important;
    border-radius:48% 48% 14px 14px!important;
    background:transparent!important;
    box-shadow:none!important;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease!important;
  }
  .kal-ter-room-door::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:1%!important;
    height:26%!important;
    border:1px solid transparent!important;
    border-radius:22px!important;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease!important;
  }
  .kal-ter-room-door:hover,
  .kal-ter-room-door:focus-visible{
    transform:none!important;
    filter:none!important;
    outline:none!important;
  }
  .kal-ter-room-door:hover::before,
  .kal-ter-room-door:focus-visible::before{
    border-color:rgba(244,194,105,.7)!important;
    background:rgba(255,210,131,.035)!important;
    box-shadow:0 0 34px rgba(238,169,63,.2),inset 0 0 34px rgba(255,217,149,.035)!important;
  }
  .kal-ter-room-door:hover::after,
  .kal-ter-room-door:focus-visible::after{
    border-color:rgba(236,184,94,.5)!important;
    background:rgba(255,210,126,.02)!important;
    box-shadow:0 0 30px rgba(219,157,60,.12)!important;
  }

  /* Shared puzzle chrome: artwork owns the title/instructions. Only the
   * real navigation actions remain over the top-left art controls. */
  .kal-ter-puzzle-head{
    position:absolute!important;
    z-index:90!important;
    top:2.2%!important;
    left:1.8%!important;
    right:auto!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    text-align:left!important;
    pointer-events:none!important;
  }
  .kal-ter-puzzle-head::before{display:none!important}
  .kal-ter-puzzle-head>div:first-child{display:none!important}
  .kal-ter-head-actions{
    display:flex!important;
    flex-direction:row!important;
    gap:8px!important;
    margin:0!important;
    pointer-events:auto!important;
    direction:ltr!important;
  }
  .kal-ter-back-lobby,
  .kal-ter-reset{
    min-height:48px!important;
    height:48px!important;
    border:1px solid rgba(224,172,82,.72)!important;
    background:linear-gradient(180deg,rgba(19,29,38,.96),rgba(8,14,19,.97))!important;
    color:#eac67f!important;
    box-shadow:0 9px 22px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.08)!important;
  }
  .kal-ter-back-lobby{
    min-width:150px!important;
    padding:8px 18px!important;
    border-radius:18px!important;
    font-size:13px!important;
  }
  .kal-ter-reset{
    width:48px!important;
    border-radius:50%!important;
    font-size:23px!important;
  }
  .kal-ter-back-lobby:hover,
  .kal-ter-reset:hover{
    transform:translateY(-1px)!important;
    filter:brightness(1.12)!important;
    box-shadow:0 12px 28px rgba(0,0,0,.4),0 0 20px rgba(216,159,67,.13)!important;
  }
  .kal-ter-scroll{
    display:none!important;
  }

  /* Room 1.1 — full-scale artwork + live coins. */
  .kal-ter-coin-room{
    background:url("art/coin_full.webp") center center/100% 100% no-repeat!important;
  }
  .kal-ter-coin-message{
    position:absolute!important;
    z-index:70!important;
    top:19.3%!important;
    left:25%!important;
    right:25%!important;
    width:auto!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:10px 16px!important;
    border:1px solid rgba(218,169,82,.5)!important;
    border-radius:14px!important;
    background:rgba(7,12,17,.91)!important;
    color:#e0c89f!important;
    box-shadow:0 8px 26px rgba(0,0,0,.28)!important;
    font-size:13px!important;
    line-height:1.45!important;
    backdrop-filter:blur(3px)!important;
  }
  .kal-ter-coin-light-beam,
  .kal-ter-coin-lantern,
  .kal-ter-coin-secret-door,
  .kal-ter-coin-floor,
  .kal-ter-coin-person{
    display:none!important;
  }
  .kal-ter-scale{
    z-index:30!important;
    left:36.2%!important;
    top:37.2%!important;
    bottom:auto!important;
    width:40.5%!important;
    height:21.5%!important;
    min-width:0!important;
    transform:none!important;
  }
  .kal-ter-scale .base,
  .kal-ter-scale .post,
  .kal-ter-scale .cap,
  .kal-ter-scale .beam,
  .kal-ter-scale .chain,
  .kal-ter-scale .pan-label{
    opacity:0!important;
  }
  .kal-ter-scale .pan{
    top:32%!important;
    width:38%!important;
    height:46%!important;
    border:2px solid transparent!important;
    border-radius:50%!important;
    background:transparent!important;
    filter:none!important;
    box-shadow:none!important;
  }
  .kal-ter-scale .pan::after{display:none!important}
  .kal-ter-scale .pan:hover,
  .kal-ter-scale .pan:focus-visible{
    border-color:rgba(246,194,98,.68)!important;
    background:radial-gradient(ellipse,rgba(255,201,107,.1),transparent 68%)!important;
    box-shadow:0 0 30px rgba(227,164,66,.17)!important;
    outline:none!important;
  }
  .kal-ter-scale .slot{
    left:7%!important;
    right:7%!important;
    bottom:7%!important;
    height:54%!important;
    gap:4px!important;
  }
  .kal-ter-coin-table{
    z-index:18!important;
    left:34.2%!important;
    right:18.4%!important;
    top:60.7%!important;
    bottom:auto!important;
    height:18.2%!important;
    border:1px solid rgba(205,157,75,.58)!important;
    border-radius:16px!important;
    background:
      radial-gradient(ellipse at 50% 0,rgba(95,76,52,.18),transparent 58%),
      linear-gradient(180deg,rgba(24,28,31,.985),rgba(10,14,18,.99))!important;
    box-shadow:inset 0 0 0 2px rgba(255,221,158,.025),0 14px 34px rgba(0,0,0,.32)!important;
  }
  .kal-ter-coin-bank{
    z-index:34!important;
    left:36.5%!important;
    right:auto!important;
    top:62.2%!important;
    bottom:auto!important;
    width:41.8%!important;
    height:15.2%!important;
    min-width:0!important;
    transform:none!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,minmax(0,1fr))!important;
    align-items:center!important;
    justify-items:center!important;
    column-gap:1.8%!important;
    row-gap:1%!important;
  }
  .kal-ter-coin{
    width:min(72px,6vw)!important;
    max-width:72px!important;
    min-width:46px!important;
    aspect-ratio:1!important;
    height:auto!important;
    border:2px solid #8a5b20!important;
    border-radius:50%!important;
    color:#261708!important;
    font-size:clamp(14px,1.45vw,20px)!important;
    background:
      radial-gradient(circle at 31% 24%,rgba(255,255,229,.98) 0 5%,transparent 6%),
      radial-gradient(circle at 45% 39%,#ffe598 0,#e3b248 39%,#9f6820 74%,#5d3510 100%)!important;
    box-shadow:inset 0 0 0 4px rgba(255,231,159,.18),inset 0 -6px 8px rgba(83,47,10,.2),0 6px 13px rgba(0,0,0,.42)!important;
  }
  .kal-ter-coin:nth-child(n/**/+6){
    transform:translateX(54%)!important;
  }
  .kal-ter-coin.selected{
    transform:translateY(-6px)!important;
    outline:3px solid rgba(91,178,236,.88)!important;
    outline-offset:3px!important;
    box-shadow:0 0 25px rgba(83,176,232,.36),inset 0 0 0 4px rgba(255,231,159,.2),0 8px 15px rgba(0,0,0,.45)!important;
  }
  .kal-ter-coin:nth-child(n/**/+6).selected{
    transform:translateX(54%) translateY(-6px)!important;
  }
  .kal-ter-coin-controls{
    z-index:42!important;
    left:15.5%!important;
    bottom:7.5%!important;
    width:69%!important;
    min-height:10.2%!important;
    height:auto!important;
    padding:10px 16px!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    border:0!important;
    border-radius:18px!important;
    background:rgba(7,11,15,.55)!important;
    box-shadow:none!important;
    backdrop-filter:blur(2px)!important;
  }
  .kal-ter-coin-controls button{
    min-height:50px!important;
    padding:8px 20px!important;
    border:1px solid rgba(218,169,84,.58)!important;
    border-radius:13px!important;
    background:linear-gradient(180deg,rgba(53,38,23,.95),rgba(26,19,14,.97))!important;
    color:#e6c887!important;
    box-shadow:0 7px 18px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.06)!important;
  }
  .kal-ter-coin-controls button.primary{
    min-width:150px!important;
    border-color:#d4a654!important;
    background:linear-gradient(180deg,#234f79,#132e48)!important;
    color:#f0cb82!important;
  }
  .kal-ter-coin-controls>span[data-kal-ter-coin-counter]{
    min-width:145px!important;
    padding:8px 10px!important;
    border-radius:11px!important;
    background:rgba(4,8,11,.56)!important;
    color:#efc474!important;
    font-size:15px!important;
  }
  .kal-ter-coin-legend{
    min-width:260px!important;
    padding:7px 10px!important;
    border:0!important;
    background:rgba(4,8,11,.48)!important;
  }
  .kal-ter-coin-guess,
  .kal-ter-coin-locked,
  .kal-ter-coin-reward{
    z-index:100!important;
    inset:24% 22% 18%!important;
    border-radius:24px!important;
  }

  /* Room 1.5 — full crate artwork, hit zones on the illustrated crates. */
  .kal-ter-puzzle-room{
    position:relative!important;
    background:url("art/crate_full.webp") center center/100% 100% no-repeat!important;
  }
  .kal-ter-narrator{
    position:absolute!important;
    z-index:70!important;
    top:19.1%!important;
    left:25%!important;
    right:25%!important;
    width:auto!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:10px 16px!important;
    border:1px solid rgba(218,169,82,.5)!important;
    border-radius:14px!important;
    background:rgba(7,12,17,.91)!important;
    color:#e0c89f!important;
    box-shadow:0 8px 26px rgba(0,0,0,.28)!important;
    font-size:13px!important;
    line-height:1.45!important;
    backdrop-filter:blur(3px)!important;
  }
  .kal-ter-beam,
  .kal-ter-lamp,
  .kal-ter-back-door,
  .kal-ter-floor,
  .kal-ter-explorer{
    display:none!important;
  }
  .kal-ter-crates{
    z-index:30!important;
    left:15.8%!important;
    right:15.8%!important;
    top:24.5%!important;
    bottom:auto!important;
    height:62%!important;
    gap:3.9%!important;
    align-items:stretch!important;
  }
  .kal-ter-crate-card{
    position:relative!important;
    height:100%!important;
    min-width:0!important;
    border-radius:22px!important;
    background:transparent!important;
    transform:none!important;
    filter:none!important;
  }
  .kal-ter-crate-card::before{
    left:1%!important;
    right:1%!important;
    top:0!important;
    height:72%!important;
    border:2px solid transparent!important;
    border-radius:20px!important;
  }
  .kal-ter-crate-card:hover,
  .kal-ter-crate-card:focus-visible{
    transform:none!important;
    outline:none!important;
  }
  .kal-ter-crate-card:hover::before,
  .kal-ter-crate-card:focus-visible::before,
  .kal-ter-crate-card.is-open::before{
    border-color:rgba(243,190,95,.68)!important;
    background:rgba(255,202,111,.025)!important;
    box-shadow:0 0 34px rgba(230,162,56,.17),inset 0 0 30px rgba(255,214,143,.025)!important;
  }
  .kal-ter-crate-visual{
    width:100%!important;
    height:72%!important;
    opacity:1!important;
    filter:none!important;
  }
  .kal-ter-crate-face,
  .kal-ter-crate-lid,
  .kal-ter-wrong-label{
    opacity:0!important;
    pointer-events:none!important;
  }
  .kal-ter-fruit{
    top:18%!important;
    font-size:clamp(44px,5vw,72px)!important;
    filter:drop-shadow(0 9px 12px rgba(0,0,0,.5))!important;
  }
  .kal-ter-assigned{
    position:absolute!important;
    z-index:36!important;
    left:50%!important;
    bottom:2.5%!important;
    width:88%!important;
    min-height:58px!important;
    margin:0!important;
    padding:9px 10px!important;
    transform:translateX(-50%)!important;
    border:1px dashed rgba(215,167,84,.52)!important;
    border-radius:13px!important;
    background:rgba(6,11,15,.84)!important;
    color:#d9c7a9!important;
    box-shadow:0 10px 24px rgba(0,0,0,.25)!important;
  }
  .kal-ter-assigned.has-label{
    border-style:solid!important;
    border-color:#d5a552!important;
    background:linear-gradient(180deg,#ead8b5,#c2a16d)!important;
    color:#2c2116!important;
  }
  .kal-ter-label-table{
    position:absolute!important;
    z-index:85!important;
    left:50%!important;
    bottom:4.5%!important;
    width:min(930px,74%)!important;
    max-width:none!important;
    margin:0!important;
    padding:14px 18px!important;
    transform:translateX(-50%)!important;
    border:1px solid rgba(218,169,84,.56)!important;
    border-radius:18px!important;
    background:rgba(7,12,17,.95)!important;
    box-shadow:0 18px 44px rgba(0,0,0,.42)!important;
    backdrop-filter:blur(4px)!important;
  }
  .kal-ter-label-note{font-size:12px!important}
  .kal-ter-label-note strong{font-size:14px!important}
  .kal-ter-labels{margin:10px 0!important}
  .kal-ter-labels button,
  .kal-ter-table-actions button,
  .kal-ter-retry button{
    min-height:44px!important;
    border-radius:12px!important;
  }
  .kal-ter-retry{
    position:absolute!important;
    z-index:86!important;
    left:50%!important;
    bottom:5%!important;
    width:auto!important;
    margin:0!important;
    transform:translateX(-50%)!important;
  }
  .kal-ter-secret{
    position:absolute!important;
    z-index:110!important;
    inset:17% 28% 12%!important;
    max-width:none!important;
    margin:0!important;
    padding:20px!important;
    border:1px solid rgba(225,178,96,.52)!important;
    border-radius:24px!important;
    background:radial-gradient(circle at 50% 32%,rgba(100,77,38,.28),rgba(5,9,12,.97) 70%)!important;
    box-shadow:0 34px 90px rgba(0,0,0,.58)!important;
  }

  /* Room 1.0 — full guard artwork with live hit zones and HUD. */
  .kal-ter-guard-room{
    position:relative!important;
    padding:0!important;
    background:url("art/guard_full.webp") center center/100% 100% no-repeat!important;
  }
  .kal-ter-guard-message{
    position:absolute!important;
    z-index:70!important;
    top:23.2%!important;
    left:32.5%!important;
    right:32.5%!important;
    width:auto!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:8px 14px!important;
    border:1px solid rgba(218,169,82,.5)!important;
    border-radius:12px!important;
    background:rgba(7,12,17,.91)!important;
    color:#e0c89f!important;
    box-shadow:0 8px 26px rgba(0,0,0,.28)!important;
    font-size:12px!important;
    line-height:1.4!important;
    backdrop-filter:blur(3px)!important;
  }
  .kal-ter-guard-arch,
  .kal-ter-guard-floor,
  .kal-ter-guard-torch,
  .kal-ter-guard-player{
    display:none!important;
  }
  .kal-ter-guard-door{
    z-index:28!important;
    top:28.5%!important;
    width:17.5%!important;
    height:36%!important;
    padding:0!important;
    border:0!important;
    border-radius:46% 46% 8px 8px!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .kal-ter-guard-door.left{left:24.4%!important}
  .kal-ter-guard-door.right{right:24.4%!important}
  .kal-ter-guard-door .frame,
  .kal-ter-guard-door .leaf,
  .kal-ter-guard-door .label{
    opacity:0!important;
    pointer-events:none!important;
  }
  .kal-ter-guard-door::after{
    border:2px solid transparent!important;
    border-radius:inherit!important;
  }
  .kal-ter-guard-door:hover::after,
  .kal-ter-guard-door:focus-visible::after,
  .kal-ter-guard-door.pointed::after{
    border-color:rgba(242,190,96,.72)!important;
    background:rgba(255,205,120,.025)!important;
    box-shadow:0 0 38px rgba(226,160,57,.2),inset 0 0 32px rgba(255,213,137,.03)!important;
  }
  .kal-ter-guard{
    z-index:34!important;
    top:35.5%!important;
    width:10.5%!important;
    height:36%!important;
    padding:0!important;
    border:0!important;
    border-radius:54px!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .kal-ter-guard.left{left:16.5%!important}
  .kal-ter-guard.right{right:16.5%!important}
  .kal-ter-guard .spear,
  .kal-ter-guard .helmet,
  .kal-ter-guard .head,
  .kal-ter-guard .body,
  .kal-ter-guard .belt,
  .kal-ter-guard .name{
    opacity:0!important;
    pointer-events:none!important;
  }
  .kal-ter-guard::after{
    inset:-7%!important;
    border:2px solid transparent!important;
    border-radius:54px!important;
  }
  .kal-ter-guard:hover::after,
  .kal-ter-guard:focus-visible::after,
  .kal-ter-guard.selected::after{
    border-color:rgba(242,190,96,.72)!important;
    background:radial-gradient(ellipse,rgba(255,203,109,.055),transparent 70%)!important;
    box-shadow:0 0 36px rgba(225,159,58,.22)!important;
  }
  .kal-ter-guard-speech{
    z-index:96!important;
    top:25%!important;
    min-width:260px!important;
    max-width:440px!important;
  }
  .kal-ter-guard-hud{
    position:absolute!important;
    z-index:72!important;
    left:17%!important;
    right:17%!important;
    bottom:6.2%!important;
    width:auto!important;
    max-height:24%!important;
    margin:0!important;
    padding:13px 16px!important;
    overflow:auto!important;
    transform:none!important;
    border:1px solid rgba(218,169,84,.58)!important;
    border-radius:18px!important;
    background:rgba(7,12,17,.94)!important;
    box-shadow:0 18px 40px rgba(0,0,0,.42)!important;
    backdrop-filter:blur(4px)!important;
  }
  .kal-ter-guard-hud:not(:has(.qbtn)){
    border-color:transparent!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    pointer-events:none!important;
  }
  .kal-ter-guard-hud:not(:has(.qbtn)) .status,
  .kal-ter-guard-hud:not(:has(.qbtn)) .question-caption{
    visibility:hidden!important;
  }
  .kal-ter-guard-hud::before{display:none!important}
  .kal-ter-guard-hud .questions{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .kal-ter-guard-hud .qbtn{
    min-height:48px!important;
    padding:8px 11px!important;
    border:1px solid rgba(216,167,84,.42)!important;
    border-radius:11px!important;
    background:linear-gradient(180deg,#17212a,#0b1218)!important;
    color:#e4d1b1!important;
    font-size:12px!important;
    line-height:1.35!important;
  }
  .kal-ter-guard-hud .qbtn:hover{
    border-color:rgba(238,185,94,.7)!important;
    background:linear-gradient(180deg,#202d38,#101820)!important;
  }
  .kal-ter-guard-danger,
  .kal-ter-guard-success{
    z-index:98!important;
  }
  .kal-ter-guard-reward{
    z-index:110!important;
    inset:20% 27% 15%!important;
    border-radius:24px!important;
  }
}

/* Mobile/tablet: keep the same illustrated assets but switch back to real,
 * readable DOM text and stacked interaction. This avoids tiny baked-in text. */


/* 1.5.0 animation and ambience pass */
#kal-ter-app .kal-ter-lobby-stage,
#kal-ter-app .kal-ter-coin-room,
#kal-ter-app .kal-ter-puzzle-room,
#kal-ter-app .kal-ter-guard-room{
  overflow:hidden;
}

#kal-ter-app .kal-ter-lobby-stage::before,
#kal-ter-app .kal-ter-coin-room::before,
#kal-ter-app .kal-ter-puzzle-room::before,
#kal-ter-app .kal-ter-guard-room::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 12%,rgba(255,216,134,.20),transparent 34%),
    radial-gradient(circle at 50% 78%,rgba(28,68,112,.22),transparent 46%);
  mix-blend-mode:screen;
  animation:kal_ter_room_pulse 6.8s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-lobby-stage::after,
#kal-ter-app .kal-ter-coin-room::after,
#kal-ter-app .kal-ter-puzzle-room::after,
#kal-ter-app .kal-ter-guard-room::after{
  content:"";
  position:absolute;
  left:-10%;
  right:-10%;
  bottom:-7%;
  height:32%;
  pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(255,183,90,.12),rgba(18,13,9,0) 68%);
  filter:blur(18px);
  opacity:.8;
  animation:kal_ter_floor_breath 5.8s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-lobby-stage{
  isolation:isolate;
}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-lobby-torch{
  animation:kal_ter_torch_sway 4.8s ease-in-out infinite;
  transform-origin:center 90%;
}

#kal-ter-app .kal-ter-room-door{
  will-change:transform,filter,opacity;
}

#kal-ter-app .kal-ter-room-door::after{
  content:"";
  position:absolute;
  z-index:0;
  left:16%;
  right:16%;
  bottom:108px;
  height:40px;
  border-radius:50%;
  background:radial-gradient(circle at center,rgba(255,199,117,.34),rgba(255,199,117,0) 72%);
  filter:blur(10px);
  opacity:0;
  transition:opacity .28s ease;
  pointer-events:none;
}

#kal-ter-app .kal-ter-room-door:hover::after,
#kal-ter-app .kal-ter-room-door:focus-visible::after,
#kal-ter-app .kal-ter-room-door.opening::after{
  opacity:1;
}

#kal-ter-app .kal-ter-room-door.inactive{
  opacity:.36 !important;
  transform:translateY(12px) scale(.98) !important;
  filter:saturate(.72) blur(.25px);
}

#kal-ter-app .kal-ter-room-door.opening .kal-ter-stone-arch::after{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:inherit;
  background:radial-gradient(circle at 50% 50%,rgba(255,229,172,.70),rgba(233,171,65,.38) 34%,rgba(11,7,4,0) 72%);
  filter:blur(6px);
  pointer-events:none;
  animation:kal_ter_door_glow 1.05s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-room-door.opening .kal-ter-door-light{
  opacity:1 !important;
  animation:kal_ter_door_glow 1.05s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-lobby.is-entering .kal-ter-room-card{
  backdrop-filter:blur(2px);
}

#kal-ter-app .kal-ter-coin-bank .kal-ter-coin.selected{
  animation:kal_ter_coin_pick .95s ease-in-out infinite;
}

#kal-ter-app .kal-ter-coin-room.is-weighing .kal-ter-scale{
  filter:drop-shadow(0 0 22px rgba(255,208,116,.30));
}

#kal-ter-app .kal-ter-scale.shake .beam{
  transform-origin:center center;
  animation:kal_ter_scale_swing .76s ease-in-out 2;
}

#kal-ter-app .kal-ter-scale.flash-result{
  animation:kal_ter_scale_flash .9s ease;
}

#kal-ter-app .kal-ter-coin-room.is-weighing .kal-ter-coin-light-beam{
  animation:kal_ter_beam_glow 1.1s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-coin-room.is-solved .kal-ter-coin-secret-door,
#kal-ter-app .kal-ter-secret.is-revealing .kal-ter-secret-door,
#kal-ter-app .kal-ter-guard-room.is-solved .kal-ter-guard-door.open{
  filter:drop-shadow(0 0 22px rgba(255,213,128,.36));
}

#kal-ter-app .kal-ter-coin-room.is-solved .kal-ter-coin-secret-door::after,
#kal-ter-app .kal-ter-secret.is-revealing .kal-ter-secret-door::after,
#kal-ter-app .kal-ter-guard-room.is-solved .kal-ter-guard-door.open::after{
  content:"";
  position:absolute;
  inset:10px;
  pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(255,227,165,.82),rgba(255,182,71,.34) 32%,transparent 72%);
  filter:blur(9px);
  animation:kal_ter_reward_glow 1.4s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-coin-person.celebrating .body,
#kal-ter-app .kal-ter-guard-player.celebrating .body,
#kal-ter-app .kal-ter-explorer.is-inspecting .body{
  animation:kal_ter_body_bob 1.05s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-puzzle-room.is-sampling .kal-ter-lamp span,
#kal-ter-app .kal-ter-puzzle-room.is-labeling .kal-ter-lamp span,
#kal-ter-app .kal-ter-guard-room.is-asking .kal-ter-guard-torch .flame{
  animation-duration:1s !important;
}

#kal-ter-app .kal-ter-crate-card{
  transition:transform .28s ease,filter .28s ease,box-shadow .28s ease;
}

#kal-ter-app .kal-ter-crate-card:hover{
  transform:translateY(-6px);
}

#kal-ter-app .kal-ter-crate-card.is-target{
  transform:translateY(-10px) scale(1.02);
  filter:drop-shadow(0 14px 20px rgba(0,0,0,.34));
}

#kal-ter-app .kal-ter-crate-card.is-target .kal-ter-crate-visual,
#kal-ter-app .kal-ter-crate-card.revealed .kal-ter-crate-visual{
  animation:kal_ter_crate_pop .75s cubic-bezier(.22,.8,.2,1);
}

#kal-ter-app .kal-ter-crate-card.revealed .kal-ter-fruit.show{
  animation:kal_ter_fruit_pop .68s cubic-bezier(.18,.82,.22,1);
}

#kal-ter-app .kal-ter-crate-card.is-nailing .kal-ter-assigned{
  animation:kal_ter_label_bounce .25s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-crate-card.is-prying-label .kal-ter-assigned{
  animation:kal_ter_label_pry .45s ease-in-out infinite;
}

#kal-ter-app .kal-ter-puzzle-room.is-solved .kal-ter-back-door,
#kal-ter-app .kal-ter-puzzle-room.has-reveal .kal-ter-back-door{
  box-shadow:0 0 24px rgba(255,194,96,.24),inset 0 0 30px rgba(255,225,170,.08);
}

#kal-ter-app .kal-ter-secret.is-revealing .kal-ter-reward,
#kal-ter-app .kal-ter-coin-room.is-solved .kal-ter-coin-reward .box,
#kal-ter-app .kal-ter-guard-room.is-solved .kal-ter-guard-reward .box{
  animation:kal_ter_reward_float 2.8s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-secret.is-revealing .kal-ter-secret-glow{
  animation:kal_ter_reward_glow 1.5s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-guard-room.is-asking .kal-ter-guard.selected{
  animation:kal_ter_guard_breath 1.7s ease-in-out infinite;
  filter:drop-shadow(0 0 16px rgba(255,200,100,.24));
}

#kal-ter-app .kal-ter-guard.startled .helmet,
#kal-ter-app .kal-ter-guard.helmet-hit .helmet{
  animation:kal_ter_helmet_knock .16s linear 4;
}

#kal-ter-app .kal-ter-guard-room.is-speaking .kal-ter-guard.selected .head{
  animation:kal_ter_guard_nod .42s ease-in-out infinite alternate;
}

#kal-ter-app .kal-ter-guard-room.is-failing{
  animation:kal_ter_scene_jolt .44s ease 2;
}

#kal-ter-app .kal-ter-guard-room.is-solved .kal-ter-guard-floor{
  background:radial-gradient(circle at center,rgba(255,203,106,.20),transparent 60%);
}

#kal-ter-app .kal-ter-reward a,
#kal-ter-app .kal-ter-coin-reward a,
#kal-ter-app .kal-ter-guard-reward a{
  position:relative;
  overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}

#kal-ter-app .kal-ter-reward a:hover,
#kal-ter-app .kal-ter-coin-reward a:hover,
#kal-ter-app .kal-ter-guard-reward a:hover{
  transform:translateY(-2px);
  filter:saturate(1.08);
}

#kal-ter-app .kal-ter-reward a::after,
#kal-ter-app .kal-ter-coin-reward a::after,
#kal-ter-app .kal-ter-guard-reward a::after{
  content:"";
  position:absolute;
  top:-20%;
  bottom:-20%;
  width:26px;
  right:-34px;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.45),rgba(255,255,255,0));
  transform:skewX(-18deg);
  animation:kal_ter_button_shine 2.9s ease-in-out infinite;
}

@keyframes kal_ter_room_pulse{
  0%{opacity:.55;transform:scale(1)}
  100%{opacity:.82;transform:scale(1.02)}
}

@keyframes kal_ter_floor_breath{
  0%{opacity:.54;transform:translateY(0)}
  100%{opacity:.82;transform:translateY(10px)}
}

@keyframes kal_ter_torch_sway{
  0%,100%{transform:rotate(-1.5deg)}
  50%{transform:rotate(1.6deg)}
}

@keyframes kal_ter_door_glow{
  0%{opacity:.58;transform:scale(.98)}
  100%{opacity:1;transform:scale(1.03)}
}

@keyframes kal_ter_coin_pick{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-6px) scale(1.04)}
}

@keyframes kal_ter_scale_swing{
  0%{transform:rotate(0deg)}
  25%{transform:rotate(-4deg)}
  55%{transform:rotate(3deg)}
  85%{transform:rotate(-1.5deg)}
  100%{transform:rotate(0deg)}
}

@keyframes kal_ter_scale_flash{
  0%{filter:drop-shadow(0 0 0 rgba(255,221,151,0))}
  35%{filter:drop-shadow(0 0 22px rgba(255,221,151,.58))}
  100%{filter:drop-shadow(0 0 0 rgba(255,221,151,0))}
}

@keyframes kal_ter_beam_glow{
  0%{opacity:.65;filter:blur(0)}
  100%{opacity:1;filter:blur(1px)}
}

@keyframes kal_ter_crate_pop{
  0%{transform:translateY(0) scale(1)}
  38%{transform:translateY(-8px) scale(1.03)}
  100%{transform:translateY(-2px) scale(1.01)}
}

@keyframes kal_ter_fruit_pop{
  0%{transform:translateY(14px) scale(.2);opacity:0}
  65%{transform:translateY(-4px) scale(1.12);opacity:1}
  100%{transform:translateY(0) scale(1);opacity:1}
}

@keyframes kal_ter_label_bounce{
  0%{transform:translateY(0) rotate(0deg)}
  100%{transform:translateY(-2px) rotate(-1deg)}
}

@keyframes kal_ter_label_pry{
  0%,100%{transform:rotate(0deg) translateX(0)}
  25%{transform:rotate(-1deg) translateX(-3px)}
  75%{transform:rotate(1deg) translateX(3px)}
}

@keyframes kal_ter_reward_float{
  0%{transform:translateY(0)}
  100%{transform:translateY(-6px)}
}

@keyframes kal_ter_reward_glow{
  0%{opacity:.55;filter:blur(8px)}
  100%{opacity:1;filter:blur(12px)}
}

@keyframes kal_ter_guard_breath{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-3px) scale(1.01)}
}

@keyframes kal_ter_helmet_knock{
  0%,100%{transform:translateX(0) rotate(0deg)}
  50%{transform:translateX(2px) rotate(4deg)}
}

@keyframes kal_ter_guard_nod{
  0%{transform:translateY(0) rotate(0deg)}
  100%{transform:translateY(1px) rotate(2deg)}
}

@keyframes kal_ter_scene_jolt{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-5px)}
  75%{transform:translateX(5px)}
}

@keyframes kal_ter_body_bob{
  0%{transform:translateY(0)}
  100%{transform:translateY(-4px)}
}

@keyframes kal_ter_button_shine{
  0%,70%{right:-34px;opacity:0}
  80%{opacity:1}
  100%{right:calc(100% + 34px);opacity:0}
}

@media (prefers-reduced-motion: reduce){
  #kal-ter-app .kal-ter-lobby-stage::before,
  #kal-ter-app .kal-ter-lobby-stage::after,
  #kal-ter-app .kal-ter-coin-room::before,
  #kal-ter-app .kal-ter-coin-room::after,
  #kal-ter-app .kal-ter-puzzle-room::before,
  #kal-ter-app .kal-ter-puzzle-room::after,
  #kal-ter-app .kal-ter-guard-room::before,
  #kal-ter-app .kal-ter-guard-room::after,
  #kal-ter-app .kal-ter-room-door::after,
  #kal-ter-app .kal-ter-reward a::after,
  #kal-ter-app .kal-ter-coin-reward a::after,
  #kal-ter-app .kal-ter-guard-reward a::after{
    animation:none !important;
  }

  #kal-ter-app .kal-ter-room-door,
  #kal-ter-app .kal-ter-crate-card,
  #kal-ter-app .kal-ter-guard,
  #kal-ter-app .kal-ter-guard-door,
  #kal-ter-app .kal-ter-scale,
  #kal-ter-app .kal-ter-coin-person,
  #kal-ter-app .kal-ter-guard-player,
  #kal-ter-app .kal-ter-explorer,
  #kal-ter-app .kal-ter-secret-door,
  #kal-ter-app .kal-ter-coin-secret-door{
    animation:none !important;
    transition:none !important;
  }
}

/* 1.5.1 lobby refinement pass */
.kal-ter-lobby,
.kal-ter-puzzle,
.kal-ter-coin-puzzle,
.kal-ter-guard-puzzle{
  scroll-margin-top:12px !important;
}

.kal-ter-room-door,
.kal-ter-room-door:focus,
.kal-ter-room-door:focus-visible{
  outline:none !important;
  -webkit-tap-highlight-color:transparent;
}

.kal-ter-lobby-stage{
  height:700px !important;
}

.kal-ter-lobby-stage::before{
  background:
    radial-gradient(circle at 18% 30%,rgba(255,196,101,.06) 0 2px,transparent 3px),
    radial-gradient(circle at 76% 24%,rgba(255,196,101,.07) 0 1.8px,transparent 3px),
    radial-gradient(circle at 34% 40%,rgba(255,231,186,.05) 0 1.2px,transparent 2.5px),
    radial-gradient(circle at 58% 18%,rgba(103,173,228,.06) 0 1.2px,transparent 2.6px),
    radial-gradient(ellipse at 50% 15%,rgba(44,117,171,.12),transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 42%) !important;
  background-size:100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100% !important;
  animation:kal_lobby_air 8s ease-in-out infinite alternate !important;
}

.kal-ter-lobby-stage::after{
  left:2.5% !important;
  right:2.5% !important;
  height:216px !important;
}

.kal-ter-door-hall{
  padding:0 8.5% 22px !important;
}

.kal-ter-room-door{
  justify-self:center !important;
  width:100% !important;
}

.kal-ter-room-door::before{
  top:98px !important;
  left:25% !important;
  right:25% !important;
  height:286px !important;
  border:0 !important;
  border-radius:120px 120px 18px 18px !important;
  background:radial-gradient(ellipse at center,rgba(255,210,126,.08),rgba(255,210,126,0) 68%) !important;
  box-shadow:none !important;
  opacity:0 !important;
  transform:scale(.96) !important;
  transition:opacity .22s ease, transform .22s ease, filter .22s ease !important;
}

.kal-ter-room-door:hover::before,
.kal-ter-room-door:focus-visible::before,
.kal-ter-room-door.opening::before{
  opacity:1 !important;
  transform:scale(1) !important;
  filter:drop-shadow(0 0 18px rgba(236,183,88,.24)) !important;
}

.kal-ter-room-door:hover,
.kal-ter-room-door:focus-visible{
  transform:translateY(-4px) !important;
  filter:none !important;
}

.kal-ter-room-door:hover .kal-ter-room-card,
.kal-ter-room-door:focus-visible .kal-ter-room-card,
.kal-ter-room-door.opening .kal-ter-room-card{
  border-color:rgba(229,187,114,.62) !important;
  box-shadow:0 14px 28px rgba(0,0,0,.34),0 0 0 1px rgba(229,187,114,.13) inset,0 0 22px rgba(214,162,72,.10) !important;
  transform:translateX(-50%) translateY(-4px) !important;
}

.kal-ter-room-card{
  top:534px !important;
  width:min(258px,82%) !important;
  min-height:114px !important;
  padding:16px 16px 13px !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(15,23,30,.965),rgba(8,13,18,.975)) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.33),inset 0 0 0 1px rgba(255,211,140,.02),inset 0 1px rgba(255,255,255,.04) !important;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}

.kal-ter-room-card::after{
  width:8px !important;
  height:8px !important;
  margin:12px auto -18px !important;
}

.kal-ter-room-card strong{
  margin-bottom:5px !important;
  font-size:18px !important;
}

.kal-ter-room-card small{
  font-size:13px !important;
  line-height:1.45 !important;
}

.kal-ter-lobby-message{
  margin:14px auto 0 !important;
}

.kal-ter-lobby-stage.is-entering .kal-ter-room-door.inactive{
  opacity:.2 !important;
  filter:blur(.4px) saturate(.75) !important;
}

.kal-ter-lobby-stage.is-entering .kal-ter-room-door.opening{
  transform:translateY(-6px) scale(1.016) !important;
}

.kal-ter-lobby-stage[data-focus-door="1-0"]{
  background-position:center top,center top,center top !important;
}

.kal-ter-lobby-stage[data-focus-door]::before{
  animation:kal_lobby_air 1.3s ease-in-out infinite alternate !important;
}

@keyframes kal_lobby_air{
  0%{opacity:.86;transform:translateY(0)}
  100%{opacity:1;transform:translateY(4px)}
}

@media(min-width:901px) and (max-width: 1180px){
  .kal-ter-door-hall{padding:0 6.5% 18px !important}
  .kal-ter-room-card{width:min(240px,86%) !important}
}



/* 1.6.0 cinematic transition and parallax pass */
.kal-ter-lobby-stage,
.kal-ter-puzzle-room,
.kal-ter-coin-room,
.kal-ter-guard-room{
  --mx:0;
  --my:0;
}

.kal-ter-lobby-stage,
.kal-ter-puzzle-room,
.kal-ter-coin-room,
.kal-ter-guard-room{
  transform:translate3d(0,0,0);
  will-change:transform,filter;
}

.kal-ter-lobby-stage{
  --focus-origin:50% 44%;
  transform-origin:var(--focus-origin);
}

.kal-ter-lobby-stage[data-focus-door="1-1"]{--focus-origin:22% 42%}
.kal-ter-lobby-stage[data-focus-door="1-5"]{--focus-origin:50% 42%}
.kal-ter-lobby-stage[data-focus-door="1-0"]{--focus-origin:78% 42%}

.kal-ter-lobby-stage::before{
  transform:translate3d(calc(var(--mx) * 8px), calc(var(--my) * 8px), 0) scale(1.01);
}

.kal-ter-lobby-stage::after{
  background:
    radial-gradient(circle at 12% 28%,rgba(255,188,92,.16),rgba(255,188,92,0) 20%),
    radial-gradient(circle at 38% 30%,rgba(255,188,92,.17),rgba(255,188,92,0) 18%),
    radial-gradient(circle at 62% 30%,rgba(255,188,92,.17),rgba(255,188,92,0) 18%),
    radial-gradient(circle at 88% 28%,rgba(255,188,92,.16),rgba(255,188,92,0) 20%),
    linear-gradient(180deg,transparent,rgba(6,10,13,.84) 35%,#070a0d 100%) !important;
  opacity:.96;
}

.kal-ter-door-hall{
  transform:translate3d(calc(var(--mx) * -10px), calc(var(--my) * -5px), 0);
  transition:transform .22s ease, opacity .24s ease, filter .24s ease;
}

.kal-ter-room-door{
  transition:transform .24s ease, filter .24s ease, opacity .24s ease !important;
}

.kal-ter-room-door .kal-ter-room-card{
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease !important;
}

.kal-ter-room-door:hover,
.kal-ter-room-door:focus-visible{
  transform:translateY(-6px) !important;
}

.kal-ter-room-door:hover .kal-ter-room-card,
.kal-ter-room-door:focus-visible .kal-ter-room-card{
  transform:translateX(-50%) translateY(-6px) !important;
}

.kal-ter-room-door:hover::before,
.kal-ter-room-door:focus-visible::before{
  filter:drop-shadow(0 0 22px rgba(236,183,88,.3)) !important;
}

.kal-ter-room-card strong,
.kal-ter-room-card small{
  text-wrap:balance;
}

.kal-ter-lobby-stage.is-entering{
  animation:kal_ter_lobby_zoom 1.12s cubic-bezier(.16,.82,.2,1) forwards;
}

.kal-ter-lobby-stage.is-entering::before{
  animation:kal_ter_lobby_air_fast 1.12s ease-in-out forwards;
}

.kal-ter-lobby-stage.is-entering .kal-ter-door-hall{
  animation:kal_ter_hall_zoom 1.12s cubic-bezier(.16,.82,.2,1) forwards;
}

.kal-ter-lobby-stage.is-entering .kal-ter-room-door.opening{
  transform:translateY(-10px) scale(1.035) !important;
}

.kal-ter-lobby-stage.is-entering .kal-ter-room-door.opening .kal-ter-room-card{
  transform:translateX(-50%) translateY(-10px) !important;
}

.kal-ter-lobby-stage.is-entering .kal-ter-room-door.opening::before{
  opacity:1 !important;
  filter:drop-shadow(0 0 34px rgba(244,189,95,.44)) !important;
}

.kal-ter-lobby-stage.is-entering .kal-ter-room-door.inactive{
  opacity:.08 !important;
  filter:blur(1.2px) saturate(.62) !important;
  transform:translateY(8px) scale(.985) !important;
}

.kal-ter-puzzle-room::before,
.kal-ter-coin-room::before,
.kal-ter-guard-room::before{
  transform:translate3d(calc(var(--mx) * 6px), calc(var(--my) * 4px), 0);
}

.kal-ter-explorer,
.kal-ter-guard-player,
.kal-ter-coin-person{
  transition:transform .22s ease, left .45s ease !important;
}

.kal-ter-puzzle-room .kal-ter-crates,
.kal-ter-coin-room .kal-ter-scale,
.kal-ter-guard-room .kal-ter-guard-stage,
.kal-ter-guard-room .kal-ter-guard-doors{
  transform:translate3d(calc(var(--mx) * -6px), calc(var(--my) * -4px), 0);
  transition:transform .22s ease;
}

.kal-ter-puzzle-room .kal-ter-explorer,
.kal-ter-coin-room .kal-ter-coin-bank-wrap,
.kal-ter-guard-room .kal-ter-guard-player{
  transform:translate3d(calc(var(--mx) * -3px), calc(var(--my) * -2px), 0);
}

.kal-ter-lobby-stage .kal-ter-lobby-message,
.kal-ter-lobby-stage .kal-ter-room-card,
.kal-ter-lobby-scroll-card,
.kal-ter-scroll,
.kal-ter-narrator,
.kal-ter-coin-message,
.kal-ter-guard-message{
  backdrop-filter:blur(3px);
}

@keyframes kal_ter_lobby_zoom{
  0%{transform:scale(1) translateZ(0);filter:saturate(1) brightness(1)}
  32%{transform:scale(1.018) translateY(-2px);filter:saturate(1.05) brightness(1.02)}
  100%{transform:scale(1.08) translateY(-6px);filter:saturate(1.08) brightness(1.03)}
}

@keyframes kal_ter_hall_zoom{
  0%{transform:translate3d(calc(var(--mx) * -10px), calc(var(--my) * -5px), 0) scale(1);opacity:1}
  100%{transform:translate3d(calc(var(--mx) * -18px), calc(var(--my) * -9px), 0) scale(1.045);opacity:1}
}

@keyframes kal_ter_lobby_air_fast{
  0%{opacity:.9}
  50%{opacity:1}
  100%{opacity:1}
}

@media (prefers-reduced-motion: reduce){
  .kal-ter-lobby-stage,
  .kal-ter-puzzle-room,
  .kal-ter-coin-room,
  .kal-ter-guard-room,
  .kal-ter-door-hall,
  .kal-ter-room-door,
  .kal-ter-room-card,
  .kal-ter-puzzle-room .kal-ter-crates,
  .kal-ter-coin-room .kal-ter-scale,
  .kal-ter-guard-room .kal-ter-guard-stage,
  .kal-ter-guard-room .kal-ter-guard-doors,
  .kal-ter-puzzle-room .kal-ter-explorer,
  .kal-ter-coin-room .kal-ter-coin-bank-wrap,
  .kal-ter-guard-room .kal-ter-guard-player{
    animation:none !important;
    transform:none !important;
    transition:none !important;
  }
}

/* 1.6.1 selection-frame cleanup */
.kal-ter-crates{
  align-items:end !important;
}

.kal-ter-crate-card{
  height:460px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  outline:none !important;
}

.kal-ter-crate-card::before{
  left:6% !important;
  right:6% !important;
  top:16% !important;
  height:60% !important;
  border:1px solid transparent !important;
  border-radius:18px !important;
  background:transparent !important;
  box-shadow:none !important;
}

.kal-ter-crate-card:hover::before,
.kal-ter-crate-card:focus-visible::before,
.kal-ter-crate-card.is-target::before,
.kal-ter-crate-card.is-open::before{
  border-color:rgba(238,187,96,.56) !important;
  background:rgba(255,203,115,.022) !important;
  box-shadow:0 0 24px rgba(227,162,57,.13), inset 0 0 18px rgba(255,214,143,.025) !important;
}

.kal-ter-crate-card:hover,
.kal-ter-crate-card:focus-visible,
.kal-ter-crate-card.is-target,
.kal-ter-crate-card.is-open{
  transform:none !important;
  filter:none !important;
  outline:none !important;
}

.kal-ter-crate-card .kal-ter-crate-visual{
  height:74% !important;
}

.kal-ter-crate-card .kal-ter-assigned{
  width:84% !important;
}

.kal-ter-labels button.selected{
  outline:none !important;
  border-color:#e2b867 !important;
  box-shadow:0 0 0 2px rgba(226,184,103,.28), 0 6px 14px rgba(0,0,0,.22) !important;
}

.kal-ter-coin.selected{
  outline:none !important;
  box-shadow:0 0 0 2px rgba(91,178,236,.78), 0 0 16px rgba(91,178,236,.28) !important;
}



/* 1.7.0 ambient light, idle motion, return transition, and UI integration */
.kal-ter-lobby-stage,
.kal-ter-puzzle-room,
.kal-ter-coin-room,
.kal-ter-guard-room{
  isolation:isolate;
}

.kal-ter-lobby-stage::after,
.kal-ter-puzzle-room::after,
.kal-ter-coin-room::after,
.kal-ter-guard-room::after{
  pointer-events:none !important;
}

.kal-ter-lobby-stage::after{
  background:
    radial-gradient(circle at 12% 31%, rgba(255,180,84,.18), rgba(255,180,84,0) 16%),
    radial-gradient(circle at 37% 33%, rgba(255,180,84,.2), rgba(255,180,84,0) 14%),
    radial-gradient(circle at 63% 33%, rgba(255,180,84,.2), rgba(255,180,84,0) 14%),
    radial-gradient(circle at 88% 31%, rgba(255,180,84,.18), rgba(255,180,84,0) 16%),
    linear-gradient(180deg,transparent,rgba(6,10,13,.84) 35%,#070a0d 100%) !important;
  animation:kal_ter_wall_flicker 4.8s ease-in-out infinite alternate;
}

.kal-ter-puzzle-room::after{
  background:
    radial-gradient(circle at 14% 54%, rgba(255,170,70,.20), rgba(255,170,70,0) 18%),
    radial-gradient(circle at 86% 54%, rgba(255,170,70,.20), rgba(255,170,70,0) 18%),
    radial-gradient(ellipse at 50% 88%, rgba(255,164,55,.10), rgba(255,164,55,0) 44%) !important;
  mix-blend-mode:screen;
  opacity:.85;
  animation:kal_ter_wall_flicker 3.9s ease-in-out infinite alternate;
}

.kal-ter-coin-room::after{
  background:
    radial-gradient(circle at 50% 24%, rgba(255,185,94,.18), rgba(255,185,94,0) 18%),
    radial-gradient(circle at 27% 52%, rgba(255,172,72,.12), rgba(255,172,72,0) 18%),
    radial-gradient(circle at 74% 52%, rgba(255,172,72,.12), rgba(255,172,72,0) 18%),
    radial-gradient(ellipse at 50% 84%, rgba(255,168,58,.08), rgba(255,168,58,0) 45%) !important;
  mix-blend-mode:screen;
  opacity:.78;
  animation:kal_ter_wall_flicker 4.2s ease-in-out infinite alternate;
}

.kal-ter-guard-room::after{
  background:
    radial-gradient(circle at 18% 34%, rgba(255,178,82,.18), rgba(255,178,82,0) 17%),
    radial-gradient(circle at 82% 34%, rgba(255,178,82,.18), rgba(255,178,82,0) 17%),
    radial-gradient(ellipse at 50% 84%, rgba(255,166,60,.08), rgba(255,166,60,0) 42%) !important;
  mix-blend-mode:screen;
  opacity:.8;
  animation:kal_ter_wall_flicker 4.4s ease-in-out infinite alternate;
}

.kal-ter-lobby-stage .kal-ter-room-card{
  animation:kal_ter_card_idle 3.8s ease-in-out infinite alternate;
}

.kal-ter-lobby-stage .kal-ter-room-door:nth-child(2) .kal-ter-room-card{animation-delay:.5s}
.kal-ter-lobby-stage .kal-ter-room-door:nth-child(3) .kal-ter-room-card{animation-delay:1s}

.kal-ter-narrator,
.kal-ter-coin-message,
.kal-ter-guard-message,
.kal-ter-lobby-message{
  position:relative;
  overflow:hidden;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(11,18,24,.93),rgba(8,13,18,.88)) !important;
  border:1px solid rgba(220,171,86,.38) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.3), inset 0 1px rgba(255,255,255,.04), inset 0 0 0 1px rgba(255,215,145,.02) !important;
}

.kal-ter-narrator::before,
.kal-ter-coin-message::before,
.kal-ter-guard-message::before,
.kal-ter-lobby-message::before{
  content:"";
  position:absolute;
  left:16px;
  top:14px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #ffe1a2, #d8a655 65%, #9e6b2e 100%);
  box-shadow:0 0 12px rgba(240,189,92,.35);
  opacity:.95;
}

.kal-ter-narrator{padding-inline:28px !important}
.kal-ter-coin-message,
.kal-ter-guard-message,
.kal-ter-lobby-message{padding-inline:28px !important}

.kal-ter-narrator.success,
.kal-ter-coin-message.success,
.kal-ter-guard-message.success{
  border-color:rgba(127,181,118,.44) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.3), 0 0 18px rgba(127,181,118,.12) !important;
}

.kal-ter-narrator.danger,
.kal-ter-coin-message.danger,
.kal-ter-guard-message.danger{
  border-color:rgba(192,111,88,.44) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.3), 0 0 18px rgba(192,111,88,.10) !important;
}

.kal-ter-puzzle-room.is-returning,
.kal-ter-coin-room.is-returning,
.kal-ter-guard-room.is-returning{
  animation:kal_ter_return_fade .62s cubic-bezier(.22,.78,.2,1) forwards;
}

.kal-ter-puzzle-room.is-returning::before,
.kal-ter-coin-room.is-returning::before,
.kal-ter-guard-room.is-returning::before,
.kal-ter-puzzle-room.is-returning::after,
.kal-ter-coin-room.is-returning::after,
.kal-ter-guard-room.is-returning::after{
  animation:kal_ter_return_glow .62s ease forwards;
}

.kal-ter-guard,
.kal-ter-explorer,
.kal-ter-coin-person,
.kal-ter-guard-player{
  transform-origin:center bottom;
}

.kal-ter-guard:not(.selected):not(.pointing),
.kal-ter-explorer:not(.is-walking):not(.is-inspecting),
.kal-ter-coin-person:not(.walking):not(.pulling):not(.celebrating),
.kal-ter-guard-player:not(.walking):not(.celebrating){
  animation:kal_ter_idle_bob 2.8s ease-in-out infinite;
}

.kal-ter-guard:nth-child(2n),
.kal-ter-coin-person,
.kal-ter-guard-player{
  animation-delay:.6s;
}

.kal-ter-guard:not(.selected):not(.pointing) .head,
.kal-ter-explorer:not(.is-walking):not(.is-inspecting) .head,
.kal-ter-coin-person:not(.walking):not(.pulling):not(.celebrating) .head,
.kal-ter-guard-player:not(.walking):not(.celebrating) .head{
  animation:kal_ter_idle_head 3.6s ease-in-out infinite;
}

.kal-ter-crate-card .kal-ter-assigned:not(.has-label){
  animation:kal_ter_placeholder_breath 2.6s ease-in-out infinite alternate;
}

.kal-ter-label-table,
.kal-ter-coin-guess,
.kal-ter-guard-actions{
  backdrop-filter:blur(5px);
  box-shadow:0 18px 38px rgba(0,0,0,.36), inset 0 1px rgba(255,255,255,.04) !important;
}

@keyframes kal_ter_wall_flicker{
  0%{opacity:.74;filter:brightness(.97)}
  20%{opacity:.86;filter:brightness(1.02)}
  45%{opacity:.78;filter:brightness(.99)}
  70%{opacity:.92;filter:brightness(1.04)}
  100%{opacity:.8;filter:brightness(1)}
}

@keyframes kal_ter_card_idle{
  0%{transform:translateX(-50%) translateY(0)}
  100%{transform:translateX(-50%) translateY(-4px)}
}

@keyframes kal_ter_idle_bob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}

@keyframes kal_ter_idle_head{
  0%,100%{transform:rotate(0deg)}
  40%{transform:rotate(-1.5deg)}
  70%{transform:rotate(1deg)}
}

@keyframes kal_ter_placeholder_breath{
  0%{opacity:.88;box-shadow:0 10px 24px rgba(0,0,0,.25)}
  100%{opacity:1;box-shadow:0 10px 24px rgba(0,0,0,.25), 0 0 0 1px rgba(226,182,101,.06) inset}
}

@keyframes kal_ter_return_fade{
  0%{opacity:1;transform:scale(1) translateY(0)}
  100%{opacity:0;transform:scale(.965) translateY(12px)}
}

@keyframes kal_ter_return_glow{
  0%{opacity:.8}
  100%{opacity:0}
}

@media (prefers-reduced-motion: reduce){
  .kal-ter-lobby-stage .kal-ter-room-card,
  .kal-ter-lobby-stage::after,
  .kal-ter-puzzle-room::after,
  .kal-ter-coin-room::after,
  .kal-ter-guard-room::after,
  .kal-ter-narrator,
  .kal-ter-coin-message,
  .kal-ter-guard-message,
  .kal-ter-lobby-message,
  .kal-ter-guard,
  .kal-ter-explorer,
  .kal-ter-coin-person,
  .kal-ter-guard-player,
  .kal-ter-crate-card .kal-ter-assigned:not(.has-label),
  .kal-ter-puzzle-room.is-returning,
  .kal-ter-coin-room.is-returning,
  .kal-ter-guard-room.is-returning{
    animation:none !important;
  }
}

/* 1.8.0 focused 1.5 room polish */
.kal-ter-puzzle-room{
  --crate_hit_top: 17%;
  --crate_hit_h: 55%;
}

.kal-ter-puzzle .kal-ter-puzzle-room .kal-ter-crates{
  left:7% !important;
  right:7% !important;
  bottom:5% !important;
  top:auto !important;
  height:66% !important;
  align-items:end !important;
  gap:2.8% !important;
  z-index:4;
}

.kal-ter-puzzle .kal-ter-crate-card{
  position:relative;
  height:480px !important;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:center;
  overflow:visible;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
  cursor:pointer;
}

.kal-ter-puzzle .kal-ter-crate-card::before,
.kal-ter-puzzle .kal-ter-crate-card::after{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  pointer-events:none;
  transition:all .24s ease;
}

.kal-ter-puzzle .kal-ter-crate-card::before{
  top:var(--crate_hit_top);
  height:var(--crate_hit_h);
  border-radius:22px;
  border:1px solid transparent;
  background:linear-gradient(180deg,rgba(255,213,143,.018),rgba(255,213,143,.006));
  box-shadow:none;
}

.kal-ter-puzzle .kal-ter-crate-card::after{
  top:calc(var(--crate_hit_top) - 2.4%);
  height:15%;
  border-radius:18px 18px 10px 10px;
  background:radial-gradient(ellipse at center,rgba(255,220,155,.12),rgba(255,220,155,0) 72%);
  opacity:0;
  transform:translateY(0);
}

.kal-ter-puzzle .kal-ter-crate-card:hover::before,
.kal-ter-puzzle .kal-ter-crate-card:focus-visible::before,
.kal-ter-puzzle .kal-ter-crate-card.is-target::before,
.kal-ter-puzzle .kal-ter-crate-card.is-open::before,
.kal-ter-puzzle .kal-ter-crate-card.revealed::before{
  border-color:rgba(238,190,102,.56);
  box-shadow:0 0 0 1px rgba(238,190,102,.12) inset, 0 0 26px rgba(222,159,56,.14);
  background:linear-gradient(180deg,rgba(255,211,133,.05),rgba(255,211,133,.018));
}

.kal-ter-puzzle .kal-ter-crate-card:hover::after,
.kal-ter-puzzle .kal-ter-crate-card:focus-visible::after,
.kal-ter-puzzle .kal-ter-crate-card.is-target::after,
.kal-ter-puzzle .kal-ter-crate-card.is-open::after,
.kal-ter-puzzle .kal-ter-crate-card.revealed::after{
  opacity:1;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening::after,
.kal-ter-puzzle .kal-ter-crate-card.is-open::after,
.kal-ter-puzzle .kal-ter-crate-card.revealed::after{
  transform:translateY(-8px);
  opacity:1;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-crate-visual{
  position:relative;
  width:86% !important;
  height:72% !important;
  transform-origin:center bottom;
  transition:transform .24s ease, filter .24s ease;
}

.kal-ter-puzzle .kal-ter-crate-card:hover .kal-ter-crate-visual,
.kal-ter-puzzle .kal-ter-crate-card.is-target .kal-ter-crate-visual{
  transform:translateY(-4px);
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.28));
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-lid,
.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-lid,
.kal-ter-puzzle .kal-ter-crate-card.revealed .kal-ter-crate-lid{
  transform:perspective(160px) rotateX(-24deg) translateY(-8px);
  filter:brightness(1.06);
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-fruit{
  top:26% !important;
  left:50% !important;
  transform:translate(-50%, 18px) scale(.26);
  z-index:4;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.35));
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-fruit.show{
  transform:translate(-50%, -6px) scale(1.06) !important;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-wrong-label{
  z-index:3;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned{
  position:absolute;
  left:50%;
  bottom:6px;
  transform:translateX(-50%);
  width:76% !important;
  min-height:62px;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:16px;
  border:1px solid rgba(176,134,70,.46);
  background:linear-gradient(180deg,rgba(10,17,23,.96),rgba(7,12,17,.95));
  box-shadow:0 16px 28px rgba(0,0,0,.32), inset 0 1px rgba(255,255,255,.04), inset 0 0 0 1px rgba(255,215,145,.02);
  color:#f0d8a8;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned-copy{
  display:block;
  width:100%;
  text-align:center;
  font-size:15px;
  line-height:1.28;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned:not(.has-label) .kal-ter-assigned-copy{
  color:rgba(239,216,168,.76);
  font-size:13px;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned.has-label{
  background:linear-gradient(180deg,rgba(18,26,17,.97),rgba(10,18,12,.96));
  border-color:rgba(146,180,108,.46);
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned i{
  flex:0 0 auto;
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  color:#fff3d6;
  font-style:normal;
  font-size:14px;
  line-height:1;
}

.kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned,
.kal-ter-puzzle .kal-ter-crate-card.just-nailed .kal-ter-assigned{
  border-color:rgba(218,177,95,.62);
  box-shadow:0 18px 34px rgba(0,0,0,.34), 0 0 20px rgba(218,177,95,.12);
}

.kal-ter-puzzle .kal-ter-crate-card.is-prying-label .kal-ter-assigned{
  border-color:rgba(193,115,89,.56);
}

.kal-ter-puzzle .kal-ter-label-table,
.kal-ter-puzzle .kal-ter-retry,
.kal-ter-puzzle .kal-ter-secret{
  width:min(980px, 100% - 24px);
  margin-left:auto;
  margin-right:auto;
}

.kal-ter-puzzle .kal-ter-label-table{
  margin-top:14px;
  border-radius:22px;
  border:1px solid rgba(207,160,79,.32);
  background:linear-gradient(180deg,rgba(9,15,20,.94),rgba(8,13,18,.92));
  box-shadow:0 18px 36px rgba(0,0,0,.32), inset 0 1px rgba(255,255,255,.04);
}

.kal-ter-puzzle .kal-ter-label-note span{
  color:rgba(239,221,183,.8);
}

.kal-ter-puzzle .kal-ter-labels button{
  min-height:48px;
  border-radius:14px;
  border:1px solid rgba(214,173,98,.34);
  background:linear-gradient(180deg,rgba(25,36,45,.96),rgba(12,18,23,.96));
  box-shadow:0 8px 16px rgba(0,0,0,.22);
}

.kal-ter-puzzle .kal-ter-labels button.selected{
  box-shadow:0 0 0 2px rgba(228,185,96,.28), 0 8px 18px rgba(0,0,0,.26);
}

.kal-ter-puzzle .kal-ter-retry button,
.kal-ter-puzzle .kal-ter-table-actions button{
  border-radius:14px;
}

.kal-ter-puzzle .kal-ter-secret-copy,
.kal-ter-puzzle .kal-ter-reward{
  backdrop-filter:blur(5px);
}

.kal-ter-puzzle-room.is-unlocking .kal-ter-back-door{
  box-shadow:0 0 30px rgba(241,197,100,.16), inset 0 0 30px rgba(245,219,151,.06);
  animation:kal_ter_15_unlock 1.2s ease-in-out 1;
}

.kal-ter-puzzle-room.is-unlocking .kal-ter-beam{
  opacity:.9;
  filter:blur(1px);
  animation:kal_ter_15_beam 1.2s ease-in-out 1;
}

@keyframes kal_ter_15_unlock{
  0%,100%{transform:scale(1);filter:brightness(1)}
  35%{transform:scale(1.01);filter:brightness(1.04)}
  65%{transform:scale(1.015);filter:brightness(1.08)}
}

@keyframes kal_ter_15_beam{
  0%{opacity:.35;transform:scaleY(1)}
  45%{opacity:1;transform:scaleY(1.08)}
  100%{opacity:.8;transform:scaleY(1.02)}
}

@media(min-width:901px) and (max-width: 980px){
  .kal-ter-puzzle .kal-ter-crate-card{
    height:430px !important;
  }

  .kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned{
    width:84% !important;
  }
}



/* 1.9.0 focused 1.1 room polish */
.kal-ter-coin-room{
  --coin_bank_glow: rgba(236,183,88,.12);
}

.kal-ter-coin-room .kal-ter-coin-bank{
  padding:16px 16px 18px !important;
  border-radius:22px !important;
  border:1px solid rgba(212,163,84,.26) !important;
  background:linear-gradient(180deg,rgba(10,16,21,.88),rgba(10,14,19,.74)) !important;
  box-shadow:0 18px 34px rgba(0,0,0,.3), inset 0 1px rgba(255,255,255,.04), inset 0 0 0 1px rgba(255,218,157,.02) !important;
}

.kal-ter-coin-room .kal-ter-coin-bank::before{
  content:"מטבעות על השולחן";
  position:absolute;
  top:-12px;
  right:14px;
  padding:5px 12px;
  border-radius:999px;
  border:1px solid rgba(214,170,95,.34);
  background:linear-gradient(180deg,rgba(31,22,16,.96),rgba(16,12,9,.92));
  color:#e3c58f;
  font-size:11px;
  letter-spacing:.01em;
  box-shadow:0 8px 16px rgba(0,0,0,.22);
}

.kal-ter-coin-room .kal-ter-coin,
.kal-ter-coin-room .kal-ter-coin-mini,
.kal-ter-coin-room .kal-ter-coin-guess .coins button{
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.kal-ter-coin-room .kal-ter-coin:hover,
.kal-ter-coin-room .kal-ter-coin-guess .coins button:hover{
  transform:translateY(-3px);
}

.kal-ter-coin-room .kal-ter-coin.selected{
  transform:translateY(-4px) scale(1.04);
}

.kal-ter-coin-room .kal-ter-scale{
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.34));
}

.kal-ter-coin-room .kal-ter-scale .pan{
  position:relative;
  overflow:visible;
}

.kal-ter-coin-room .kal-ter-scale .pan::after{
  content:"";
  position:absolute;
  left:14%;
  right:14%;
  top:6%;
  bottom:18%;
  border-radius:0 0 40px 40px;
  border:1px solid transparent;
  background:linear-gradient(180deg,rgba(255,228,172,.03),rgba(255,228,172,.01));
  box-shadow:none;
  transition:all .22s ease;
  pointer-events:none;
}

.kal-ter-coin-room .kal-ter-scale .pan:hover::after,
.kal-ter-coin-room .kal-ter-scale .pan:focus-visible::after,
.kal-ter-coin-room[data-active-pan="left"] .kal-ter-scale .pan.left::after,
.kal-ter-coin-room[data-active-pan="right"] .kal-ter-scale .pan.right::after{
  border-color:rgba(231,188,109,.46);
  box-shadow:0 0 18px rgba(231,188,109,.16), inset 0 0 18px rgba(255,232,183,.03);
}

.kal-ter-coin-room .kal-ter-scale .pan.flash-drop::after{
  animation:kal_ter_pan_drop .52s ease;
}

.kal-ter-coin-room.is-weighing .kal-ter-scale{
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.34)) drop-shadow(0 0 16px rgba(239,189,93,.2));
}

.kal-ter-coin-room .kal-ter-coin-controls{
  border-radius:22px !important;
  border:1px solid rgba(214,166,86,.22) !important;
  background:linear-gradient(180deg,rgba(10,15,20,.92),rgba(9,12,17,.82)) !important;
  box-shadow:0 18px 34px rgba(0,0,0,.3), inset 0 1px rgba(255,255,255,.03) !important;
}

.kal-ter-coin-room .kal-ter-coin-controls > span[data-kal-ter-coin-counter]{
  min-width:126px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid rgba(216,170,92,.24);
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 1px rgba(255,255,255,.03);
}

.kal-ter-coin-room .kal-ter-coin-guess .box,
.kal-ter-coin-room .kal-ter-coin-locked .box,
.kal-ter-coin-room .kal-ter-coin-reward .box{
  border-radius:22px !important;
  border:1px solid rgba(214,167,89,.34) !important;
  background:linear-gradient(180deg,rgba(12,18,24,.96),rgba(8,13,18,.95)) !important;
  box-shadow:0 24px 48px rgba(0,0,0,.36), inset 0 1px rgba(255,255,255,.04) !important;
}

.kal-ter-coin-room .kal-ter-coin-guess .history{
  display:grid;
  gap:10px;
  margin-top:16px;
}

.kal-ter-coin-room .kal-ter-history-row{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(214,171,96,.18);
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));
  color:#e8d4ab;
  font-size:13px;
  line-height:1.35;
}

.kal-ter-coin-room .kal-ter-history-row strong{
  color:#f7e2b7;
  font-size:12px;
}

.kal-ter-coin-room .kal-ter-history-row em{
  font-style:normal;
  color:#c5dfb9;
}

.kal-ter-coin-room.is-guessing .kal-ter-coin-table{
  box-shadow:0 18px 26px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,230,183,.03), 0 0 24px rgba(239,184,85,.08);
}

.kal-ter-coin-room.is-unlocking .kal-ter-coin-light-beam{
  animation:kal_ter_coin_unlock_beam 1.3s ease-in-out 1;
}

.kal-ter-coin-room.is-unlocking .kal-ter-coin-secret-door{
  box-shadow:0 10px 28px rgba(0,0,0,.42), 0 0 24px rgba(240,194,97,.24);
}

.kal-ter-coin-room.is-unlocking .kal-ter-coin-secret-door::before{
  content:"";
  position:absolute;
  inset:-16px;
  border-radius:72px 72px 16px 16px;
  background:radial-gradient(ellipse at center, rgba(246,209,118,.22), rgba(246,209,118,0) 72%);
  filter:blur(5px);
  animation:kal_ter_coin_unlock_beam 1.3s ease-in-out 1;
  pointer-events:none;
}

.kal-ter-coin-room .kal-ter-coin-reward .seal{
  box-shadow:0 0 24px rgba(117,192,111,.22);
}

@keyframes kal_ter_pan_drop{
  0%{transform:scale(1);filter:brightness(1)}
  38%{transform:scale(1.04);filter:brightness(1.08)}
  100%{transform:scale(1);filter:brightness(1)}
}

@keyframes kal_ter_coin_unlock_beam{
  0%{opacity:.38;filter:brightness(1)}
  45%{opacity:1;filter:brightness(1.18)}
  100%{opacity:.76;filter:brightness(1.04)}
}



/* 1.10.0 focused 1.0 room polish */
.kal-ter-guard-room{
  --guard_gold: rgba(230,184,98,.6);
}

.kal-ter-guard-room .kal-ter-guard-speech{
  border:1px solid rgba(203,165,100,.36) !important;
  box-shadow:0 18px 36px rgba(0,0,0,.32), inset 0 1px rgba(255,255,255,.12) !important;
}

.kal-ter-guard-room .kal-ter-guard{
  transition:transform .22s ease, filter .22s ease, opacity .22s ease;
}

.kal-ter-guard-room .kal-ter-guard.inactive{
  opacity:.48;
  filter:saturate(.72) blur(.15px);
}

.kal-ter-guard-room .kal-ter-guard.selected,
.kal-ter-guard-room .kal-ter-guard.pointing{
  filter:drop-shadow(0 0 18px rgba(236,188,98,.24));
}

.kal-ter-guard-room .kal-ter-guard.pointing{
  z-index:14;
}

.kal-ter-guard-room .kal-ter-guard.pointing::after{
  content:"";
  position:absolute;
  top:61px;
  width:92px;
  height:8px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,238,188,.95),rgba(224,177,84,.92));
  box-shadow:0 0 14px rgba(240,198,100,.42);
  animation:kalTerGuardPointLine .45s ease-out forwards;
}

.kal-ter-guard-room .kal-ter-guard.pointing::before{
  content:"";
  position:absolute;
  top:54px;
  width:0;
  height:0;
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  filter:drop-shadow(0 0 8px rgba(240,198,100,.52));
  animation:kalTerGuardPointArrow .45s ease-out forwards;
}

.kal-ter-guard-room .kal-ter-guard.point-left::after{
  right:58px;
  transform-origin:right center;
}

.kal-ter-guard-room .kal-ter-guard.point-left::before{
  right:142px;
  border-left:22px solid rgba(224,177,84,.96);
}

.kal-ter-guard-room .kal-ter-guard.point-right::after{
  left:58px;
  transform-origin:left center;
}

.kal-ter-guard-room .kal-ter-guard.point-right::before{
  left:142px;
  border-right:22px solid rgba(224,177,84,.96);
}

@keyframes kalTerGuardPointLine{
  from{opacity:0;transform:scaleX(.08)}
  to{opacity:1;transform:scaleX(1)}
}

@keyframes kalTerGuardPointArrow{
  from{opacity:0;transform:translateY(4px) scale(.6)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.kal-ter-guard-room[data-focus-guard="l"] .kal-ter-guard.left,
.kal-ter-guard-room[data-focus-guard="r"] .kal-ter-guard.right{
  transform:translateY(-4px) scale(1.02);
}

.kal-ter-guard-room .kal-ter-guard-door{
  transition:transform .24s ease, filter .24s ease, opacity .24s ease;
}

.kal-ter-guard-room .kal-ter-guard-door.inactive{
  opacity:.34;
  filter:saturate(.68) blur(.2px);
}

.kal-ter-guard-room .kal-ter-guard-door.chosen,
.kal-ter-guard-room .kal-ter-guard-door.pointed{
  transform:translateY(-4px);
}

.kal-ter-guard-room .kal-ter-guard-door.pointed{
  z-index:8;
}

.kal-ter-guard-room .kal-ter-guard-door.pointed::before{
  content:attr(data-point-text);
  position:absolute;
  top:-44px;
  left:50%;
  transform:translateX(-50%);
  min-width:116px;
  padding:6px 12px;
  border:1px solid rgba(214,165,72,.92);
  border-radius:999px;
  background:linear-gradient(180deg,#fff1c3,#e4be72);
  color:#382612;
  font-size:12px;
  font-weight:900;
  text-align:center;
  white-space:nowrap;
  box-shadow:0 9px 18px rgba(0,0,0,.28);
  pointer-events:none;
}

.kal-ter-guard-room .kal-ter-guard-door.pointed .label{
  color:#ffe9b6;
  text-shadow:0 0 10px rgba(240,198,100,.35),0 2px 4px #000;
}

.kal-ter-guard-room .kal-ter-guard-door.chosen::after,
.kal-ter-guard-room .kal-ter-guard-door.pointed::after,
.kal-ter-guard-room .kal-ter-guard-door:hover::after,
.kal-ter-guard-room .kal-ter-guard-door:focus-visible::after{
  opacity:1 !important;
  box-shadow:0 0 30px rgba(236,188,98,.22);
}

.kal-ter-guard-room .kal-ter-guard-hud{
  position:relative;
  overflow:hidden;
}

.kal-ter-guard-room .kal-ter-guard-hud::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0) 28%);
}

.kal-ter-guard-room .kal-ter-guard-hud .status{
  display:block;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(210,168,93,.18);
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));
  box-shadow:inset 0 1px rgba(255,255,255,.04);
}

.kal-ter-guard-room .kal-ter-guard-hud .question-caption{
  padding:10px 14px;
  border-radius:14px;
  border:1px dashed rgba(208,167,94,.2);
  background:rgba(255,255,255,.02);
}

.kal-ter-guard-room .kal-ter-guard-hud .questions{
  gap:12px !important;
}

.kal-ter-guard-room .kal-ter-guard-hud .questions.is-locked{
  opacity:1;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn{
  position:relative;
  text-align:right;
  overflow:hidden;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.04),rgba(255,255,255,0));
  opacity:0;
  transition:opacity .2s ease;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn:hover::after,
.kal-ter-guard-room .kal-ter-guard-hud .qbtn:focus-visible::after{
  opacity:1;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn .qtext{
  display:block;
  line-height:1.5;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn.asked{
  border-color:rgba(220,181,102,.62) !important;
  background:linear-gradient(180deg,#362919,#24190f) !important;
  box-shadow:0 16px 28px rgba(0,0,0,.28), 0 0 0 1px rgba(220,181,102,.14) inset !important;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn.asked .qnum{
  background:linear-gradient(180deg,#d9b26a,#8f662f) !important;
  color:#fff9eb !important;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn:disabled{
  cursor:default;
}

.kal-ter-guard-room .kal-ter-guard-hud .qbtn:disabled:not(.asked){
  opacity:.42;
  filter:saturate(.72);
}

.kal-ter-guard-room .kal-ter-guard-danger,
.kal-ter-guard-room .kal-ter-guard-success{
  filter:drop-shadow(0 0 18px rgba(0,0,0,.3));
}

.kal-ter-guard-room.is-failing .kal-ter-guard-pit{
  filter:drop-shadow(0 0 22px rgba(141,42,24,.36));
}

.kal-ter-guard-room.is-failing .kal-ter-guard-hud .status{
  border-color:rgba(183,102,75,.34);
  box-shadow:0 0 18px rgba(183,102,75,.1), inset 0 1px rgba(255,255,255,.04);
}

.kal-ter-guard-room.is-solved .kal-ter-guard-hud .status{
  border-color:rgba(116,168,98,.36);
  box-shadow:0 0 18px rgba(116,168,98,.1), inset 0 1px rgba(255,255,255,.04);
}

.kal-ter-guard-room .kal-ter-guard-reward .box{
  border-radius:24px !important;
  border:1px solid rgba(217,174,96,.36) !important;
  background:linear-gradient(180deg,rgba(11,17,22,.96),rgba(8,13,18,.95)) !important;
  box-shadow:0 24px 50px rgba(0,0,0,.4), inset 0 1px rgba(255,255,255,.05) !important;
}

.kal-ter-guard-room .kal-ter-guard-reward .seal{
  box-shadow:0 0 24px rgba(118,188,103,.22);
}

.kal-ter-guard-room.is-solved .kal-ter-guard-door.chosen .leaf,
.kal-ter-guard-room.is-solved .kal-ter-guard-door.open .leaf{
  box-shadow:inset 0 0 28px rgba(14,9,4,.75),0 0 34px rgba(242,196,104,.24) !important;
}



/* 1.11.0 final consistency, mobile, sound and transition pass */
.kal-ter-app{
  --kal-fast:.2s;
  --kal-mid:.36s;
  --kal-slow:.72s;
  --kal-ease:cubic-bezier(.2,.78,.2,1);
}

.kal-ter-sound-toggle{
  position:absolute;
  z-index:80;
  top:18px;
  left:max(18px,calc((100vw - 1400px)/2 + 18px));
  min-height:40px;
  padding:8px 14px;
  border:1px solid rgba(211,167,90,.36);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(21,29,36,.95),rgba(9,14,19,.96));
  color:#e9cf9d;
  box-shadow:0 10px 24px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.05);
  cursor:pointer;
  transition:transform var(--kal-fast) ease,filter var(--kal-fast) ease,border-color var(--kal-fast) ease;
}

.kal-ter-sound-toggle:hover,
.kal-ter-sound-toggle:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(229,185,102,.58);
  filter:brightness(1.06);
  outline:none;
}

.kal-ter-sound-toggle.is-muted{
  color:#a99d8a;
  border-color:rgba(153,142,125,.28);
  filter:saturate(.7);
}

.kal-ter-puzzle.is-room-entering,
.kal-ter-coin-puzzle.is-room-entering,
.kal-ter-guard-puzzle.is-room-entering{
  animation:kal_ter_section_enter var(--kal-slow) var(--kal-ease) both;
}

.kal-ter-puzzle-room.is-room-entering,
.kal-ter-coin-room.is-room-entering,
.kal-ter-guard-room.is-room-entering{
  animation:kal_ter_scene_enter var(--kal-slow) var(--kal-ease) both;
  transform-origin:center 28%;
}

.kal-ter-lobby.is-returned{
  animation:kal_ter_lobby_return .68s var(--kal-ease) both;
}

@keyframes kal_ter_section_enter{
  0%{opacity:0;transform:translateY(14px)}
  100%{opacity:1;transform:translateY(0)}
}

@keyframes kal_ter_scene_enter{
  0%{opacity:.35;transform:scale(.972);filter:brightness(.86)}
  55%{opacity:1;filter:brightness(1.04)}
  100%{opacity:1;transform:scale(1);filter:brightness(1)}
}

@keyframes kal_ter_lobby_return{
  0%{opacity:0;transform:translateY(-10px)}
  100%{opacity:1;transform:translateY(0)}
}

/* Do not animate transforms of whole characters: it can displace their hit/scene position. */
.kal-ter-guard:not(.selected):not(.pointing),
.kal-ter-explorer:not(.is-walking):not(.is-inspecting),
.kal-ter-coin-person:not(.walking):not(.pulling):not(.celebrating),
.kal-ter-guard-player:not(.walking):not(.celebrating){
  animation:none !important;
}

.kal-ter-lobby-stage .kal-ter-room-card{
  animation:kal_ter_card_breathe 3.8s ease-in-out infinite alternate !important;
}

.kal-ter-lobby-stage .kal-ter-room-door:hover .kal-ter-room-card,
.kal-ter-lobby-stage .kal-ter-room-door:focus-visible .kal-ter-room-card,
.kal-ter-lobby-stage .kal-ter-room-door.opening .kal-ter-room-card{
  animation:none !important;
}

@keyframes kal_ter_card_breathe{
  0%{box-shadow:0 14px 30px rgba(0,0,0,.33),inset 0 0 0 1px rgba(255,211,140,.02),inset 0 1px rgba(255,255,255,.04)}
  100%{box-shadow:0 16px 34px rgba(0,0,0,.36),0 0 16px rgba(215,164,75,.06),inset 0 0 0 1px rgba(255,211,140,.025),inset 0 1px rgba(255,255,255,.045)}
}

/* Unified local focus indication. Never draw a giant rectangle around scene hit-zones. */
.kal-ter-back-lobby:focus-visible,
.kal-ter-reset:focus-visible,
.kal-ter-labels button:focus-visible,
.kal-ter-table-actions button:focus-visible,
.kal-ter-retry button:focus-visible,
.kal-ter-explain-open:focus-visible,
.kal-ter-coin-controls button:focus-visible,
.kal-ter-coin-guess .coins button:focus-visible,
.kal-ter-coin-locked button:focus-visible,
.kal-ter-guard-hud .qbtn:focus-visible,
.kal-ter-guard-hud .restart:focus-visible,
.kal-ter-reward a:focus-visible,
.kal-ter-coin-reward a:focus-visible,
.kal-ter-guard-reward a:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 2px rgba(231,187,104,.34),0 8px 18px rgba(0,0,0,.26) !important;
}

.kal-ter-room-door:focus-visible,
.kal-ter-crate-card:focus-visible,
.kal-ter-guard-door:focus-visible,
.kal-ter-guard:focus-visible,
.kal-ter-scale .pan:focus-visible{
  outline:none !important;
}

/* Keep all action controls predictable and touch-friendly. */
.kal-ter-back-lobby,
.kal-ter-reset,
.kal-ter-labels button,
.kal-ter-table-actions button,
.kal-ter-retry button,
.kal-ter-explain-open,
.kal-ter-coin-controls button,
.kal-ter-coin-locked button,
.kal-ter-guard-hud .qbtn,
.kal-ter-guard-hud .restart{
  min-height:44px;
}

.kal-ter-puzzle-head,
.kal-ter-coin-head,
.kal-ter-guard-head,
.kal-ter-lobby-head{
  overflow:visible !important;
}

.kal-ter-narrator,
.kal-ter-coin-message,
.kal-ter-guard-message,
.kal-ter-lobby-message{
  transition:border-color var(--kal-fast) ease,box-shadow var(--kal-fast) ease,background var(--kal-fast) ease,color var(--kal-fast) ease;
}

.kal-ter-secret,
.kal-ter-coin-guess,
.kal-ter-coin-locked,
.kal-ter-coin-reward,
.kal-ter-guard-reward{
  animation:kal_ter_overlay_in .34s var(--kal-ease) both;
}

@keyframes kal_ter_overlay_in{
  0%{opacity:0;transform:translateY(8px) scale(.985)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* Mobile: simplify layout rather than squeezing desktop behavior. */




@media (pointer:coarse){
  .kal-ter-room-door:hover,
  .kal-ter-crate-card:hover,
  .kal-ter-guard:hover,
  .kal-ter-guard-door:hover,
  .kal-ter-scale .pan:hover{
    transform:none !important;
    filter:none !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .kal-ter-puzzle.is-room-entering,
  .kal-ter-coin-puzzle.is-room-entering,
  .kal-ter-guard-puzzle.is-room-entering,
  .kal-ter-puzzle-room.is-room-entering,
  .kal-ter-coin-room.is-room-entering,
  .kal-ter-guard-room.is-room-entering,
  .kal-ter-lobby.is-returned,
  .kal-ter-secret,
  .kal-ter-coin-guess,
  .kal-ter-coin-locked,
  .kal-ter-coin-reward,
  .kal-ter-guard-reward,
  .kal-ter-lobby-stage .kal-ter-room-card{
    animation:none !important;
  }
}


/* 1.12.0 physical feedback, room identity, and audio-state polish */
.kal-ter-puzzle{--room-accent:#d99847;--room-accent-soft:rgba(217,152,71,.18);--room-panel:rgba(18,13,9,.92)}
.kal-ter-coin-puzzle{--room-accent:#d8ad57;--room-accent-soft:rgba(216,173,87,.17);--room-panel:rgba(9,16,22,.93)}
.kal-ter-guard-puzzle{--room-accent:#b99867;--room-accent-soft:rgba(185,152,103,.16);--room-panel:rgba(8,13,19,.94)}
.kal-ter-puzzle .kal-ter-kicker,.kal-ter-coin-puzzle .kal-ter-kicker,.kal-ter-guard-puzzle .kal-ter-kicker{color:var(--room-accent)!important;text-shadow:0 0 16px var(--room-accent-soft)}
.kal-ter-puzzle .kal-ter-scroll,.kal-ter-coin-puzzle .kal-ter-scroll,.kal-ter-guard-puzzle .kal-ter-scroll{box-shadow:0 16px 30px rgba(0,0,0,.28),0 0 22px var(--room-accent-soft),inset 0 1px rgba(255,255,255,.04)!important}
.kal-ter-puzzle .kal-ter-narrator,.kal-ter-coin-puzzle .kal-ter-coin-message,.kal-ter-guard-puzzle .kal-ter-guard-message{background:linear-gradient(180deg,var(--room-panel),rgba(7,11,15,.9))!important}
.kal-ter-crate-card.is-target .kal-ter-crate-visual,.kal-ter-crate-card.is-opening .kal-ter-crate-visual{animation:kal_ter_object_attention .44s cubic-bezier(.2,.8,.2,1) both}
.kal-ter-crate-card.is-nailing .kal-ter-assigned{animation:kal_ter_hammer_plate .22s ease-in-out 3}
.kal-ter-crate-card.is-prying-label .kal-ter-assigned{animation:kal_ter_pry_plate .28s ease-in-out infinite alternate!important}
.kal-ter-scale.flash-result{animation:kal_ter_scale_settle .7s cubic-bezier(.18,.72,.22,1) both}
.kal-ter-guard.helmet-hit .helmet{animation:kal_ter_metal_knock .2s ease-in-out 3}
.kal-ter-guard-door.trap-open{animation:kal_ter_trap_recoil .5s cubic-bezier(.2,.8,.2,1) both}
.kal-ter-guard-door.open{animation:kal_ter_victory_door .8s cubic-bezier(.16,.82,.2,1) both}
.kal-ter-sound-toggle{overflow:hidden}
.kal-ter-sound-toggle::before{content:"";display:inline-block;width:8px;height:8px;margin-inline-end:8px;border-radius:50%;background:#d8ad57;box-shadow:0 0 10px rgba(216,173,87,.5);vertical-align:1px}
.kal-ter-sound-toggle.is-muted::before{background:#81786b;box-shadow:none}
@keyframes kal_ter_object_attention{0%{transform:translateY(0) scale(1)}55%{transform:translateY(-5px) scale(1.012)}100%{transform:translateY(-4px) scale(1)}}
@keyframes kal_ter_hammer_plate{0%,100%{transform:translateX(-50%) translateY(0) rotate(0)}45%{transform:translateX(-50%) translateY(2px) rotate(-.8deg)}}
@keyframes kal_ter_pry_plate{0%{transform:translateX(-50%) rotate(0)}100%{transform:translateX(-50%) translateY(-2px) rotate(1.8deg)}}
@keyframes kal_ter_scale_settle{0%{filter:brightness(1)}32%{filter:brightness(1.12) drop-shadow(0 0 18px rgba(224,178,83,.18))}100%{filter:brightness(1)}}
@keyframes kal_ter_metal_knock{0%,100%{transform:rotate(0)}40%{transform:rotate(-4deg) translateY(-1px)}70%{transform:rotate(3deg)}}
@keyframes kal_ter_trap_recoil{0%{transform:translateY(0)}20%{transform:translateY(3px) rotate(-.8deg)}42%{transform:translateY(-2px) rotate(.6deg)}100%{transform:translateY(0)}}
@keyframes kal_ter_victory_door{0%{filter:brightness(1)}45%{filter:brightness(1.13) drop-shadow(0 0 22px rgba(239,194,103,.2))}100%{filter:brightness(1)}}
@media (prefers-reduced-motion:reduce){.kal-ter-crate-card.is-target .kal-ter-crate-visual,.kal-ter-crate-card.is-opening .kal-ter-crate-visual,.kal-ter-crate-card.is-nailing .kal-ter-assigned,.kal-ter-crate-card.is-prying-label .kal-ter-assigned,.kal-ter-scale.flash-result,.kal-ter-guard.helmet-hit .helmet,.kal-ter-guard-door.trap-open,.kal-ter-guard-door.open{animation:none!important}}

/* 1.13.0 coin drag-and-drop */
.kal-ter-coin-room .kal-ter-coin-bank,
.kal-ter-coin-room .kal-ter-scale .pan,
.kal-ter-coin-room .kal-ter-coin,
.kal-ter-coin-room .kal-ter-coin-mini{
  touch-action:none;
}

.kal-ter-coin-room .kal-ter-coin,
.kal-ter-coin-room .kal-ter-coin-mini{
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
}

.kal-ter-coin-room.is-dragging .kal-ter-coin,
.kal-ter-coin-room.is-dragging .kal-ter-coin-mini{
  cursor:grabbing;
}

.kal-ter-coin-room .kal-ter-coin.drag-source,
.kal-ter-coin-room .kal-ter-coin-mini.drag-source{
  opacity:.22 !important;
  transform:scale(.96) !important;
}

.kal-ter-coin-room .kal-ter-coin-bank.drop-hover,
.kal-ter-coin-room .kal-ter-scale .pan.drop-hover{
  border-color:rgba(232,187,96,.54) !important;
  box-shadow:0 0 24px rgba(232,187,96,.16), inset 0 0 0 1px rgba(255,228,168,.06) !important;
}

.kal-ter-coin-room .kal-ter-scale .pan.drop-hover::after,
.kal-ter-coin-room .kal-ter-coin-bank.drop-hover::after{
  opacity:1;
}

.kal-ter-coin-bank.drop-hover::after{
  content:"שחררו כאן";
  position:absolute;
  inset:auto 14px 10px 14px;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid rgba(232,187,96,.34);
  background:rgba(255,220,156,.06);
  color:#ebd6ab;
  text-align:center;
  font-size:12px;
  pointer-events:none;
}

.kal-ter-drag-coin{
  position:fixed;
  z-index:999999;
  pointer-events:none;
  margin:0 !important;
  box-shadow:0 18px 26px rgba(0,0,0,.28), 0 0 22px rgba(239,190,95,.15);
  filter:brightness(1.08);
}

.kal-ter-drag-coin.valid-drop{
  filter:brightness(1.14) drop-shadow(0 0 12px rgba(106,194,239,.24));
}


/* 1.13.1 — remove fake hit-zone frames and keep coins visually physical */
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:hover,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:focus,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:focus-visible,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:active,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.drop-hover,
#kal-ter-app .kal-ter-coin-room[data-active-pan="left"] .kal-ter-scale .pan.left,
#kal-ter-app .kal-ter-coin-room[data-active-pan="right"] .kal-ter-scale .pan.right{
  outline:0 !important;
  outline-offset:0 !important;
  border-color:transparent !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:none !important;
  -webkit-tap-highlight-color:transparent !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan::before,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan::after,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:hover::before,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:hover::after,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:focus-visible::before,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan:focus-visible::after,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.drop-hover::before,
#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.drop-hover::after{
  content:none !important;
  display:none !important;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-coin-bank.drop-hover{
  border-color:rgba(214,163,84,.26) !important;
  background:linear-gradient(180deg,rgba(10,16,21,.88),rgba(10,14,19,.74)) !important;
  box-shadow:0 18px 34px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.04),inset 0 0 0 1px rgba(255,218,157,.02) !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-coin-bank.drop-hover::after{
  content:none !important;
  display:none !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-coin-mini{
  width:50px !important;
  height:50px !important;
  min-width:50px !important;
  min-height:50px !important;
  padding:0 !important;
  border:2px solid #9b6c27 !important;
  border-radius:50% !important;
  color:#2b1b08 !important;
  font-size:16px !important;
  font-weight:900 !important;
  background:
    radial-gradient(circle at 31% 24%,rgba(255,255,224,.96) 0 5%,transparent 6%),
    radial-gradient(circle at 44% 39%,#ffe59a 0,#e5b54e 38%,#aa7125 72%,#6d4215 100%) !important;
  box-shadow:
    inset 0 0 0 3px rgba(255,230,151,.22),
    inset 0 -5px 7px rgba(91,52,14,.18),
    0 6px 10px rgba(0,0,0,.34) !important;
  filter:none !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-coin-mini.on-left,
#kal-ter-app .kal-ter-coin-room .kal-ter-coin-mini.on-right{
  border-color:#9b6c27 !important;
  background:
    radial-gradient(circle at 31% 24%,rgba(255,255,224,.96) 0 5%,transparent 6%),
    radial-gradient(circle at 44% 39%,#ffe59a 0,#e5b54e 38%,#aa7125 72%,#6d4215 100%) !important;
  box-shadow:
    inset 0 0 0 3px rgba(255,230,151,.22),
    inset 0 -5px 7px rgba(91,52,14,.18),
    0 6px 10px rgba(0,0,0,.34) !important;
  filter:none !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot{
  min-height:58px !important;
  height:58px !important;
  gap:4px !important;
  align-items:flex-end !important;
  overflow:visible !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-coin-mini.just-dropped{
  animation:kal_ter_coin_soft_land .5s cubic-bezier(.18,.78,.24,1) both !important;
}

@keyframes kal_ter_coin_soft_land{
  0%{transform:translateY(-9px) scale(1.04);filter:brightness(1.08)}
  48%{transform:translateY(2px) scale(.98);filter:brightness(1.02)}
  72%{transform:translateY(-2px) scale(1.01)}
  100%{transform:translateY(0) scale(1);filter:brightness(1)}
}




/* 1.14.0 smoother coin drag control */
.kal-ter-coin-room.is-dragging {
  user-select:none;
  -webkit-user-select:none;
}

.kal-ter-coin-room .kal-ter-coin,
.kal-ter-coin-room .kal-ter-coin-mini {
  -webkit-touch-callout:none;
}

.kal-ter-drag-coin {
  transform:translate3d(0,0,0) scale(1.06);
  will-change:transform, filter;
  transition:filter .12s ease, box-shadow .12s ease;
}

.kal-ter-drag-coin.valid-drop {
  filter:brightness(1.12) drop-shadow(0 0 14px rgba(106,194,239,.24));
  box-shadow:0 18px 30px rgba(0,0,0,.34), 0 0 18px rgba(106,194,239,.16);
}

.kal-ter-coin-room .kal-ter-scale .pan.drop-hover {
  transform:translateY(-2px);
  filter:brightness(1.06) drop-shadow(0 0 12px rgba(233,188,96,.14));
}

.kal-ter-coin-room .kal-ter-coin-bank.drop-hover {
  transform:translateY(-1px);
  filter:brightness(1.04);
}


/* 1.14.1 coin drag precision */
.kal-ter-drag-coin {
  transition:filter .1s ease, box-shadow .1s ease;
}

.kal-ter-drag-coin.valid-drop {
  filter:brightness(1.14) drop-shadow(0 0 14px rgba(106,194,239,.22));
}

.kal-ter-coin-room .kal-ter-scale .pan.drop-hover {
  filter:brightness(1.08) drop-shadow(0 0 16px rgba(233,188,96,.18));
}


/* 1.15.0 premium coin drag */
.kal-ter-coin-room .landing-placeholder{
  opacity:0 !important;
}

.kal-ter-drag-coin{
  transform-origin:center center !important;
  cursor:grabbing !important;
  will-change:transform,filter;
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
}

.kal-ter-coin-room .kal-ter-scale .pan.pan-landed{
  animation:kal_ter_pan_physical_land .4s cubic-bezier(.2,.8,.2,1) both;
}

@keyframes kal_ter_pan_physical_land{
  0%{transform:translateY(0)}
  35%{transform:translateY(3px)}
  65%{transform:translateY(-1px)}
  100%{transform:translateY(0)}
}

@media (pointer:fine){
  .kal-ter-coin-room .kal-ter-coin:hover,
  .kal-ter-coin-room .kal-ter-coin-mini:hover{
    transform:translateY(-2px) scale(1.02);
  }
}

@media (pointer:coarse){
  .kal-ter-coin-room .kal-ter-coin,
  .kal-ter-coin-room .kal-ter-coin-mini{
    touch-action:none !important;
  }
}


/* 1.16.0 — exact illustrated bowl geometry and direct-pointer coin dragging */
@media(min-width:901px){
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale{
    position:absolute !important;
    z-index:30 !important;
    inset:0 !important;
    left:0 !important;
    top:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    transform:none !important;
    pointer-events:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .base,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .post,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .cap,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .beam,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .chain,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan-label{
    display:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan{
    position:absolute !important;
    z-index:32 !important;
    top:53.7% !important;
    width:12.0% !important;
    height:7.6% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:50% !important;
    background:transparent !important;
    box-shadow:none !important;
    filter:none !important;
    transform:none !important;
    pointer-events:auto !important;
    touch-action:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.left{
    left:37.1% !important;
    right:auto !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.right{
    left:63.9% !important;
    right:auto !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan::before,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan::after{
    content:none !important;
    display:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot{
    position:absolute !important;
    left:7% !important;
    right:7% !important;
    top:0 !important;
    bottom:auto !important;
    width:auto !important;
    height:66% !important;
    min-height:0 !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:center !important;
    gap:2px !important;
    overflow:visible !important;
    pointer-events:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot .kal-ter-coin-mini{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    flex:0 0 42px !important;
    pointer-events:auto !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="4"] .kal-ter-coin-mini{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    min-height:34px !important;
    flex-basis:34px !important;
    font-size:12px !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="5"] .kal-ter-coin-mini,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="6"] .kal-ter-coin-mini{
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    min-height:28px !important;
    flex-basis:28px !important;
    font-size:10px !important;
  }

  #kal-ter-app .kal-ter-coin-room[data-drop-target="left"] .kal-ter-scale .pan.left,
  #kal-ter-app .kal-ter-coin-room[data-drop-target="right"] .kal-ter-scale .pan.right{
    filter:brightness(1.06) drop-shadow(0 0 9px rgba(238,190,94,.12)) !important;
  }

  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.left .slot{transform:translateY(-7px) !important}
  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.right .slot{transform:translateY(7px) !important}
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.left .slot{transform:translateY(7px) !important}
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.right .slot{transform:translateY(-7px) !important}
  #kal-ter-app .kal-ter-scale[data-tilt="balanced"] .pan .slot{transform:translateY(0) !important}
}

#kal-ter-app .kal-ter-drag-coin{
  position:fixed !important;
  z-index:2147483000 !important;
  pointer-events:none !important;
  margin:0 !important;
  transform-origin:0 0 !important;
  will-change:transform !important;
  transition:none !important;
  box-shadow:0 15px 24px rgba(0,0,0,.34),0 0 10px rgba(239,190,95,.12) !important;
}

#kal-ter-app .kal-ter-drag-coin.valid-drop{
  filter:brightness(1.08) !important;
  box-shadow:0 15px 24px rgba(0,0,0,.34),0 0 13px rgba(239,190,95,.18) !important;
}

#kal-ter-app .kal-ter-coin-room .drag-source{
  opacity:.18 !important;
}

#kal-ter-app .kal-ter-coin-room .landing-placeholder{
  opacity:0 !important;
}

#kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.pan-landed .slot{
  animation:kal_ter_116_bowl_land .32s cubic-bezier(.2,.8,.2,1) both;
}

@keyframes kal_ter_116_bowl_land{
  0%{transform:translateY(0)}
  38%{transform:translateY(2px)}
  70%{transform:translateY(-1px)}
  100%{transform:translateY(0)}
}


/* 1.16.1 precise bowl interior drag */
@media(min-width:901px){
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan{
    top:54.1% !important;
    width:13.6% !important;
    height:8.6% !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.left{
    left:36.4% !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.right{
    left:63.1% !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot{
    left:6% !important;
    right:6% !important;
    top:auto !important;
    bottom:3% !important;
    height:40% !important;
    min-height:0 !important;
    align-items:flex-end !important;
    justify-content:center !important;
    gap:2px !important;
    transform:none !important;
  }

  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.left .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.right .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.left .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.right .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="balanced"] .pan .slot{
    transform:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot .kal-ter-coin-mini{
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    min-height:40px !important;
    flex:0 0 40px !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="4"] .kal-ter-coin-mini{
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    min-height:32px !important;
    flex-basis:32px !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="5"] .kal-ter-coin-mini,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="6"] .kal-ter-coin-mini{
    width:26px !important;
    height:26px !important;
    min-width:26px !important;
    min-height:26px !important;
    flex-basis:26px !important;
  }
}

#kal-ter-app .kal-ter-drag-coin{
  transition:none !important;
  cursor:grabbing !important;
}

#kal-ter-app .kal-ter-drag-coin.valid-drop{
  filter:brightness(1.12) !important;
  box-shadow:0 16px 24px rgba(0,0,0,.34),0 0 16px rgba(239,190,95,.2) !important;
}


/* 1.17.1 stable coin drop stay */
#kal-ter-app .kal-ter-coin-room .landing-placeholder{
  opacity:0 !important;
}
#kal-ter-app .kal-ter-coin-room .pan.pan-landed{
  filter:brightness(1.06) !important;
}


/* 1.18.0 — bowl geometry measured directly from coin_full.webp */
@media(min-width:901px){
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.left{
    left:38.3354% !important;
    top:54.9395% !important;
    width:9.5839% !important;
    height:4.6371% !important;
    right:auto !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.right{
    left:65.4477% !important;
    top:55.1411% !important;
    width:8.9533% !important;
    height:4.5363% !important;
    right:auto !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan .slot{
    position:absolute !important;
    left:-6% !important;
    right:-6% !important;
    top:-8px !important;
    bottom:auto !important;
    height:52px !important;
    min-height:52px !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:center !important;
    gap:2px !important;
    overflow:visible !important;
    pointer-events:none !important;
    transform:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot .kal-ter-coin-mini{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    min-height:36px !important;
    flex:0 0 36px !important;
    pointer-events:auto !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="4"] .kal-ter-coin-mini{
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
    min-height:30px !important;
    flex-basis:30px !important;
    font-size:11px !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="5"] .kal-ter-coin-mini,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="6"] .kal-ter-coin-mini{
    width:24px !important;
    height:24px !important;
    min-width:24px !important;
    min-height:24px !important;
    flex-basis:24px !important;
    font-size:9px !important;
  }

  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.left .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.right .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.left .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.right .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="balanced"] .pan .slot{
    transform:none !important;
  }
}

#kal-ter-app .kal-ter-drag-coin{
  transition:none !important;
  pointer-events:none !important;
  will-change:transform !important;
}

#kal-ter-app .kal-ter-coin-room .landing-placeholder{
  opacity:0 !important;
}


/* 1.18.1 fix bowl drop and in-bowl coin placement */
@media(min-width:901px){
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.left{
    left:38.25% !important;
    top:54.9% !important;
    width:10.4% !important;
    height:5.6% !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan.right{
    left:65.1% !important;
    top:55.0% !important;
    width:9.9% !important;
    height:5.5% !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .pan .slot{
    position:absolute !important;
    left:-4% !important;
    right:-4% !important;
    top:auto !important;
    bottom:1px !important;
    height:82% !important;
    min-height:0 !important;
    display:flex !important;
    flex-wrap:wrap !important;
    align-content:flex-end !important;
    align-items:flex-end !important;
    justify-content:center !important;
    row-gap:1px !important;
    column-gap:2px !important;
    overflow:visible !important;
    pointer-events:none !important;
    transform:none !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot .kal-ter-coin-mini{
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    min-height:28px !important;
    flex:0 0 28px !important;
    font-size:12px !important;
    line-height:1 !important;
    pointer-events:auto !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="3"] .kal-ter-coin-mini,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="4"] .kal-ter-coin-mini{
    width:24px !important;
    height:24px !important;
    min-width:24px !important;
    min-height:24px !important;
    flex-basis:24px !important;
    font-size:10px !important;
  }

  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="5"] .kal-ter-coin-mini,
  #kal-ter-app .kal-ter-coin-room .kal-ter-scale .slot[data-count="6"] .kal-ter-coin-mini{
    width:20px !important;
    height:20px !important;
    min-width:20px !important;
    min-height:20px !important;
    flex-basis:20px !important;
    font-size:8px !important;
  }

  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.left .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="left-up"] .pan.right .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.left .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="right-up"] .pan.right .slot,
  #kal-ter-app .kal-ter-scale[data-tilt="balanced"] .pan .slot{
    transform:none !important;
  }
}

#kal-ter-app .kal-ter-drag-coin{
  transition:none !important;
  pointer-events:none !important;
  will-change:left, top !important;
}

/* 1.20.0 — live weighing report */
.kal-ter-coin-report{
  direction:rtl;
  box-sizing:border-box;
  color:#ead8b0;
  background:linear-gradient(180deg,rgba(10,16,21,.94),rgba(7,12,16,.91));
  border:1px solid rgba(218,174,94,.38);
  border-radius:18px;
  box-shadow:0 18px 34px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.04);
  backdrop-filter:blur(5px);
}

.kal-ter-coin-report-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 14px 10px;
  border-bottom:1px solid rgba(218,174,94,.18);
}

.kal-ter-coin-report-head strong{
  color:#f2d59b;
  font-size:16px;
}

.kal-ter-coin-report-head span{
  min-width:42px;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid rgba(218,174,94,.25);
  background:rgba(255,255,255,.035);
  color:#d6bd8b;
  text-align:center;
  font-size:12px;
  font-weight:800;
}

.kal-ter-coin-report-current,
.kal-ter-coin-report-history{
  padding:10px 12px;
}

.kal-ter-coin-report-history{
  padding-top:0;
}

.kal-ter-coin-report .report-section-title{
  margin:0 0 7px;
  color:#cda765;
  font-size:11px;
  font-weight:900;
  letter-spacing:.03em;
}

.kal-ter-coin-report .report-pan-row,
.kal-ter-coin-report .report-result-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:30px;
}

.kal-ter-coin-report .report-pan-row b,
.kal-ter-coin-report .report-result-row > span{
  flex:0 0 62px;
  color:#ddc59a;
  font-size:11px;
}

.kal-ter-report-coins{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:4px;
  flex:1 1 auto;
  direction:ltr;
}

.kal-ter-report-coins i{
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  font-style:normal;
  font-size:10px;
  font-weight:900;
  color:#211607;
  background:radial-gradient(circle at 34% 28%,#fff2b3 0 7%,#e7b651 42%,#8f5c1d 100%);
  border:1px solid #a97529;
  box-shadow:inset 0 0 0 2px rgba(255,231,158,.18),0 3px 6px rgba(0,0,0,.25);
}

.kal-ter-report-coins.left i{
  box-shadow:inset 0 0 0 2px rgba(255,231,158,.18),0 0 0 1px rgba(83,183,232,.55),0 3px 6px rgba(0,0,0,.25);
}

.kal-ter-report-coins.right i{
  box-shadow:inset 0 0 0 2px rgba(255,231,158,.18),0 0 0 1px rgba(235,179,76,.55),0 3px 6px rgba(0,0,0,.25);
}

.kal-ter-report-coins .empty,
.kal-ter-coin-report .empty{
  color:#756d61;
}

.kal-ter-coin-report .report-state{
  margin-top:8px;
}

.kal-ter-coin-report .state{
  display:block;
  padding:7px 9px;
  border-radius:10px;
  font-size:10px;
  line-height:1.4;
  border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.025);
}

.kal-ter-coin-report .state.ready{
  color:#cde6be;
  border-color:rgba(129,177,104,.25);
  background:rgba(93,145,76,.08);
}

.kal-ter-coin-report .state.warning{
  color:#f1c4a1;
  border-color:rgba(201,130,86,.26);
  background:rgba(169,92,50,.08);
}

.kal-ter-coin-report .state.busy{
  color:#e8d8ad;
  border-color:rgba(218,174,94,.28);
  background:rgba(218,174,94,.07);
}

.kal-ter-coin-report .state.idle,
.kal-ter-coin-report .report-empty{
  color:#968d7e;
  font-size:10px;
}

.kal-ter-coin-report .report-result{
  margin-top:7px;
  padding:8px 9px;
  border-radius:12px;
  border:1px solid rgba(218,174,94,.14);
  background:rgba(255,255,255,.022);
}

.kal-ter-coin-report .report-result-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:4px;
}

.kal-ter-coin-report .report-result-head strong{
  color:#f0d6a1;
  font-size:11px;
}

.kal-ter-coin-report .report-result-head em{
  font-style:normal;
  color:#c9e0b9;
  font-size:10px;
  font-weight:800;
}

.kal-ter-coin-report .report-result small{
  display:block;
  margin-top:6px;
  color:#978b78;
  font-size:9px;
}

@media(min-width:901px){
  #kal-ter-app .kal-ter-coin-room .kal-ter-coin-report{
    position:absolute;
    z-index:45;
    top:31.5%;
    right:1.8%;
    width:min(280px,20.5%);
    max-height:43%;
    overflow:hidden;
    pointer-events:none;
  }
}



/* 1.21.0 — room 1.5 clarity pass */
#kal-ter-app .kal-ter-puzzle-room .kal-ter-crate-hud{
  position:absolute;
  z-index:72;
  top:14px;
  left:50%;
  width:min(1080px,84%);
  min-height:62px;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:minmax(360px,1fr) minmax(320px,1.15fr);
  align-items:center;
  gap:18px;
  padding:9px 14px;
  direction:rtl;
  border:1px solid rgba(220,174,94,.34);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(8,14,19,.93),rgba(6,11,15,.9));
  box-shadow:0 14px 30px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.04);
  backdrop-filter:blur(5px);
  pointer-events:none;
}

#kal-ter-app .kal-ter-crate-steps{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:0;
}

#kal-ter-app .kal-ter-crate-steps > span{
  min-width:88px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:13px;
  background:rgba(255,255,255,.025);
  color:#8e877a;
  transition:border-color .2s,background .2s,color .2s,box-shadow .2s;
}

#kal-ter-app .kal-ter-crate-steps > span b{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  flex:0 0 24px;
  border-radius:50%;
  background:#262520;
  color:#aaa08e;
  font-size:12px;
}

#kal-ter-app .kal-ter-crate-steps > span em{
  font-style:normal;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

#kal-ter-app .kal-ter-crate-steps > i{
  width:24px;
  height:1px;
  flex:0 1 24px;
  background:rgba(220,174,94,.22);
}

#kal-ter-app .kal-ter-crate-steps > span.active{
  border-color:rgba(232,185,99,.58);
  background:rgba(215,163,75,.10);
  color:#f0d49c;
  box-shadow:0 0 18px rgba(222,164,62,.10);
}

#kal-ter-app .kal-ter-crate-steps > span.active b{
  background:linear-gradient(180deg,#b67d32,#754a1c);
  color:#fff0cf;
}

#kal-ter-app .kal-ter-crate-steps > span.done{
  border-color:rgba(121,164,96,.34);
  color:#c6d8b6;
}

#kal-ter-app .kal-ter-crate-steps > span.done b{
  background:#47633d;
  color:#eff9e9;
}

#kal-ter-app .kal-ter-crate-observation{
  min-width:0;
  padding:5px 0 5px 16px;
  border-left:1px solid rgba(220,174,94,.18);
}

#kal-ter-app .kal-ter-crate-observation small{
  display:block;
  margin-bottom:2px;
  color:#ac8d58;
  font-size:10px;
  font-weight:900;
}

#kal-ter-app .kal-ter-crate-observation strong{
  display:block;
  color:#f1dfbb;
  font-size:13px;
  line-height:1.42;
  text-wrap:balance;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-label-table{
  top:88px !important;
  bottom:auto !important;
  left:50% !important;
  width:min(1080px,84%) !important;
  min-height:76px !important;
  margin:0 !important;
  padding:9px 11px !important;
  transform:translateX(-50%) !important;
  display:grid !important;
  grid-template-columns:minmax(220px,.95fr) minmax(360px,1.55fr) auto !important;
  align-items:center !important;
  gap:11px !important;
  border-color:rgba(222,176,95,.42) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(7,13,18,.97),rgba(5,10,14,.96)) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.04) !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-label-note{
  min-width:0;
  text-align:right !important;
  align-items:flex-start !important;
  gap:2px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-label-note strong{
  color:#f0d5a0 !important;
  font-size:13px !important;
  line-height:1.25 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-label-note span{
  max-width:300px;
  color:#b9aa92 !important;
  font-size:10px !important;
  line-height:1.35 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-label-note b{
  display:inline-block;
  margin-top:3px;
  padding:3px 7px;
  border:1px solid rgba(220,174,94,.22);
  border-radius:999px;
  color:#d9bd88;
  background:rgba(255,255,255,.025);
  font-size:10px;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-labels{
  margin:0 !important;
  gap:7px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-labels button{
  min-height:48px !important;
  padding:7px 8px !important;
  border:1px solid #8e744f !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,#e6d2a9,#c9aa78) !important;
  color:#302319 !important;
  font-size:14px !important;
  font-weight:900 !important;
  box-shadow:0 6px 12px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.42) !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-labels button:hover:not(:disabled){
  filter:brightness(1.06);
}

#kal-ter-app .kal-ter-puzzle .kal-ter-labels button.selected{
  border-color:#f0c36d !important;
  background:linear-gradient(180deg,#f4ddb0,#d4ad6b) !important;
  box-shadow:0 0 0 2px rgba(240,195,109,.25),0 7px 14px rgba(0,0,0,.28) !important;
  transform:translateY(-1px);
}

#kal-ter-app .kal-ter-puzzle .kal-ter-labels button.used{
  opacity:.28 !important;
  filter:grayscale(.55) !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-table-actions{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:5px !important;
  min-width:150px;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-table-actions button{
  min-height:34px !important;
  padding:6px 10px !important;
  border-radius:10px !important;
  font-size:11px !important;
  white-space:nowrap;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-table-actions .primary{
  min-width:0 !important;
  border-color:#c9964d !important;
  background:linear-gradient(180deg,#9d6a2d,#684119) !important;
  color:#fff0d2 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-table-actions button:disabled{
  opacity:.35 !important;
  filter:saturate(.45) !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-index{
  position:absolute;
  z-index:42;
  top:9%;
  left:50%;
  transform:translateX(-50%);
  min-width:64px;
  padding:4px 9px;
  border:1px solid rgba(232,187,103,.34);
  border-radius:999px;
  background:rgba(7,12,16,.82);
  color:#e8ca91;
  box-shadow:0 5px 12px rgba(0,0,0,.28);
  font-size:10px;
  font-weight:900;
  pointer-events:none;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-sampled-mark{
  position:absolute;
  z-index:43;
  top:14%;
  right:8%;
  padding:4px 8px;
  border:1px solid rgba(129,177,104,.42);
  border-radius:999px;
  background:rgba(24,43,23,.88);
  color:#d5e7c9;
  box-shadow:0 5px 12px rgba(0,0,0,.28);
  font-size:9px;
  font-weight:900;
  pointer-events:none;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-open::before,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.revealed::before{
  border-width:2px !important;
  border-color:rgba(244,192,96,.72) !important;
  box-shadow:0 0 0 1px rgba(244,192,96,.12) inset,0 0 34px rgba(226,157,48,.18) !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-fruit.show{
  top:20% !important;
  left:50% !important;
  font-size:50px !important;
  transform:translate(-50%,0) scale(1) !important;
  padding:5px 8px;
  border:1px solid rgba(244,197,111,.28);
  border-radius:16px;
  background:rgba(9,14,18,.58);
  box-shadow:0 8px 18px rgba(0,0,0,.28);
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned{
  opacity:0 !important;
  pointer-events:none !important;
  min-height:58px !important;
  padding:7px 12px !important;
  display:grid !important;
  grid-template-columns:1fr auto !important;
  grid-template-rows:auto auto !important;
  column-gap:8px !important;
  align-content:center !important;
  border-width:1px !important;
  transition:opacity .2s,transform .2s,border-color .2s,background .2s !important;
}

#kal-ter-app .kal-ter-puzzle-room.is-labeling .kal-ter-assigned,
#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.is-visible,
#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label{
  opacity:1 !important;
  pointer-events:auto !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned small{
  grid-column:1/-1;
  display:block;
  margin-bottom:1px;
  color:#9f8f76;
  font-size:9px;
  font-weight:800;
  line-height:1.1;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned-copy{
  grid-column:1;
  text-align:center;
  color:#d9c5a1;
  font-size:12px !important;
  line-height:1.2 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label small{
  color:#776345;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label .kal-ter-assigned-copy{
  color:#2d2116;
  font-size:15px !important;
  font-weight:900;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned i{
  grid-column:2;
  grid-row:1/3;
  align-self:center;
}

@media(min-width:901px){
  #kal-ter-app .kal-ter-puzzle-room{
    height:690px !important;
  }

  #kal-ter-app .kal-ter-puzzle .kal-ter-crates{
    bottom:2.5% !important;
    height:65% !important;
  }
}

@media(max-width:1100px) and (min-width:901px){
  #kal-ter-app .kal-ter-puzzle-room .kal-ter-crate-hud,
  #kal-ter-app .kal-ter-puzzle .kal-ter-label-table{
    width:92% !important;
  }

  #kal-ter-app .kal-ter-puzzle-room .kal-ter-crate-hud{
    grid-template-columns:1.1fr 1fr;
  }

  #kal-ter-app .kal-ter-puzzle .kal-ter-label-table{
    grid-template-columns:minmax(180px,.8fr) minmax(320px,1.5fr) 135px !important;
  }
}



/* 1.22.0 — room 1.5 declutter pass */
#kal-ter-app .kal-ter-puzzle > .kal-ter-scroll,
#kal-ter-app .kal-ter-puzzle > .kal-ter-narrator,
#kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud,
#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table,
#kal-ter-app .kal-ter-puzzle > .kal-ter-retry,
#kal-ter-app .kal-ter-puzzle > .kal-ter-secret{
  max-width:1040px;
  margin-left:auto;
  margin-right:auto;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  width:100% !important;
  min-height:0 !important;
  margin:12px auto 0 !important;
  padding:14px 16px !important;
  transform:none !important;
  display:grid !important;
  grid-template-columns:minmax(320px,1fr) minmax(280px,1.1fr) !important;
  gap:16px !important;
  border:1px solid rgba(220,174,94,.30) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(8,14,19,.94),rgba(6,11,15,.92)) !important;
  box-shadow:0 12px 24px rgba(0,0,0,.30),inset 0 1px rgba(255,255,255,.04) !important;
  pointer-events:auto !important;
}

#kal-ter-app .kal-ter-puzzle-room{
  position:relative !important;
  height:560px !important;
  margin:18px auto 0 !important;
}

#kal-ter-app .kal-ter-puzzle-room .kal-ter-crates{
  position:absolute !important;
  top:auto !important;
  bottom:52px !important;
  left:5% !important;
  right:5% !important;
  height:auto !important;
  gap:22px !important;
  align-items:end !important;
}

#kal-ter-app .kal-ter-puzzle-room .kal-ter-explorer{
  bottom:12px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:100% !important;
  min-height:0 !important;
  margin:16px auto 0 !important;
  padding:16px !important;
  transform:none !important;
  display:grid !important;
  grid-template-columns:minmax(210px,.95fr) minmax(320px,1.4fr) minmax(150px,.7fr) !important;
  gap:12px !important;
  align-items:center !important;
  border-radius:18px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note{
  text-align:right !important;
  align-items:flex-start !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-table-actions{
  grid-template-columns:1fr !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-retry{
  margin-top:16px !important;
}

@media(min-width:901px) and (max-width:980px){
  #kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud{
    grid-template-columns:1fr !important;
  }

  #kal-ter-app .kal-ter-puzzle > .kal-ter-label-table{
    grid-template-columns:1fr !important;
  }

  #kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note{
    text-align:center !important;
    align-items:center !important;
  }

  #kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-table-actions{
    grid-template-columns:1fr 1fr !important;
  }
}



/* 1.23.0 — broader interface polish */
#kal-ter-app{
  --ter_ui_border: rgba(221,176,95,.24);
  --ter_ui_bg: linear-gradient(180deg,rgba(15,21,27,.95),rgba(8,12,16,.93));
  --ter_ui_shadow: 0 16px 34px rgba(0,0,0,.30), inset 0 1px rgba(255,255,255,.04);
}

#kal-ter-app .kal-ter-lobby,
#kal-ter-app .kal-ter-coin-puzzle,
#kal-ter-app .kal-ter-puzzle,
#kal-ter-app .kal-ter-guard-puzzle{
  max-width:1100px;
  margin-left:auto;
  margin-right:auto;
}

#kal-ter-app .kal-ter-puzzle-head,
#kal-ter-app .kal-ter-lobby-head{
  max-width:1040px !important;
}

#kal-ter-app .kal-ter-head-actions{
  gap:10px !important;
  padding:6px !important;
  border:1px solid var(--ter_ui_border);
  border-radius:16px;
  background:var(--ter_ui_bg);
  box-shadow:var(--ter_ui_shadow);
}

#kal-ter-app .kal-ter-back-lobby,
#kal-ter-app .kal-ter-reset,
#kal-ter-app .kal-ter-coin-controls button,
#kal-ter-app .kal-ter-table-actions button,
#kal-ter-app .kal-ter-retry button,
#kal-ter-app .kal-ter-guard-hud button,
#kal-ter-app .kal-ter-secret a,
#kal-ter-app .kal-ter-coin-reward a{
  border-radius:14px !important;
}

#kal-ter-app .kal-ter-back-lobby,
#kal-ter-app .kal-ter-reset{
  min-height:44px !important;
  box-shadow:0 10px 22px rgba(0,0,0,.22) !important;
}

#kal-ter-app .kal-ter-back-lobby{
  padding:10px 16px !important;
}

#kal-ter-app .kal-ter-scroll,
#kal-ter-app .kal-ter-narrator,
#kal-ter-app .kal-ter-coin-message,
#kal-ter-app .kal-ter-guard-message,
#kal-ter-app .kal-ter-coin-report,
#kal-ter-app .kal-ter-secret,
#kal-ter-app .kal-ter-guard-hud,
#kal-ter-app .kal-ter-coin-controls{
  max-width:1040px;
  margin-left:auto !important;
  margin-right:auto !important;
  border:1px solid var(--ter_ui_border) !important;
  border-radius:18px !important;
  background:var(--ter_ui_bg) !important;
  box-shadow:var(--ter_ui_shadow) !important;
}

#kal-ter-app .kal-ter-scroll{
  padding:16px 22px !important;
  color:#e7d2ab !important;
  text-align:right !important;
  transform:none !important;
}

#kal-ter-app .kal-ter-scroll p,
#kal-ter-app .kal-ter-scroll strong{
  display:block;
}

#kal-ter-app .kal-ter-scroll strong{
  margin-top:5px;
  color:#f2d492 !important;
}

#kal-ter-app .kal-ter-narrator,
#kal-ter-app .kal-ter-coin-message,
#kal-ter-app .kal-ter-guard-message{
  min-height:58px !important;
  padding:16px 20px 16px 48px !important;
  text-align:right !important;
  color:#ebddc0 !important;
  line-height:1.65 !important;
}

#kal-ter-app .kal-ter-narrator::before,
#kal-ter-app .kal-ter-coin-message::before,
#kal-ter-app .kal-ter-guard-message::before{
  left:auto !important;
  right:18px !important;
}

#kal-ter-app .kal-ter-coin-controls,
#kal-ter-app .kal-ter-guard-hud{
  padding:12px 14px !important;
}

#kal-ter-app .kal-ter-coin-report{
  overflow:hidden;
}

#kal-ter-app .kal-ter-coin-report-head,
#kal-ter-app .kal-ter-secret-copy{
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015)) !important;
}

#kal-ter-app .kal-ter-sound-toggle{
  top:18px !important;
  left:18px !important;
  right:auto !important;
  min-height:40px;
  padding-inline:14px;
  border:1px solid var(--ter_ui_border) !important;
  border-radius:999px !important;
  background:var(--ter_ui_bg) !important;
  box-shadow:0 14px 28px rgba(0,0,0,.28) !important;
}

#kal-ter-app .kal-ter-lobby-message{
  max-width:1040px;
  min-height:58px;
  margin-top:18px !important;
  padding:16px 20px;
  border:1px solid var(--ter_ui_border);
  border-radius:18px;
  background:var(--ter_ui_bg);
  color:#e7d5b5;
  font-size:15px;
  line-height:1.5;
  box-shadow:var(--ter_ui_shadow);
}

#kal-ter-app .kal-ter-room-card{
  border-radius:16px !important;
  background:linear-gradient(180deg,rgba(9,14,18,.88),rgba(8,11,15,.93)) !important;
  border:1px solid rgba(221,176,95,.18) !important;
  box-shadow:0 12px 24px rgba(0,0,0,.24) !important;
}

#kal-ter-app .kal-ter-room-card strong{
  color:#f0d4a1 !important;
}

#kal-ter-app .kal-ter-room-card small{
  color:#cab89a !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud,
#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table{
  border:1px solid var(--ter_ui_border) !important;
  background:var(--ter_ui_bg) !important;
  box-shadow:var(--ter_ui_shadow) !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-labels{
  gap:10px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-labels button{
  min-height:52px !important;
  font-size:15px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note b{
  font-size:11px !important;
}

#kal-ter-app .kal-ter-puzzle-room{
  border-radius:22px !important;
}

#kal-ter-app .kal-ter-secret,
#kal-ter-app .kal-ter-coin-reward .box,
#kal-ter-app .kal-ter-coin-locked .box,
#kal-ter-app .kal-ter-coin-guess .box,
#kal-ter-app .kal-ter-guard-result,
#kal-ter-app .kal-ter-modal-card{
  border-radius:22px !important;
  box-shadow:0 18px 40px rgba(0,0,0,.34) !important;
}

#kal-ter-app .kal-ter-secret .kal-ter-reward,
#kal-ter-app .kal-ter-coin-reward .box,
#kal-ter-app .kal-ter-guard-result{
  background:linear-gradient(180deg,rgba(17,24,31,.96),rgba(8,12,16,.95)) !important;
}

@media(min-width:901px) and (max-width:980px){
  #kal-ter-app .kal-ter-head-actions{
    width:100%;
    justify-content:center;
  }

  #kal-ter-app .kal-ter-scroll,
  #kal-ter-app .kal-ter-narrator,
  #kal-ter-app .kal-ter-coin-message,
  #kal-ter-app .kal-ter-guard-message,
  #kal-ter-app .kal-ter-coin-report,
  #kal-ter-app .kal-ter-guard-hud,
  #kal-ter-app .kal-ter-secret,
  #kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud,
  #kal-ter-app .kal-ter-puzzle > .kal-ter-label-table{
    width:calc(100% - 8px) !important;
  }
}



/* 1.24.0 — room 1.5 declutter and cleanup */
#kal-ter-app .kal-ter-puzzle > .kal-ter-scroll{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle-head{
  margin-bottom:8px !important;
}

#kal-ter-app .kal-ter-puzzle-head p{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-narrator{
  width:min(1040px,100%) !important;
  min-height:48px !important;
  margin:10px auto 0 !important;
  padding:12px 16px 12px 38px !important;
  font-size:14px !important;
  line-height:1.45 !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud{
  margin:10px auto 0 !important;
  padding:10px 14px !important;
  grid-template-columns:minmax(240px,.95fr) minmax(320px,1.2fr) !important;
  gap:12px !important;
}

#kal-ter-app .kal-ter-crate-observation{
  padding:0 0 0 12px !important;
}

#kal-ter-app .kal-ter-crate-observation small{
  display:none !important;
}

#kal-ter-app .kal-ter-crate-observation strong{
  font-size:14px !important;
  line-height:1.35 !important;
}

#kal-ter-app .kal-ter-crate-steps > span{
  min-width:74px !important;
  padding:6px 8px !important;
}

#kal-ter-app .kal-ter-crate-steps > span em{
  font-size:11px !important;
}

#kal-ter-app .kal-ter-puzzle-room{
  height:510px !important;
  margin-top:12px !important;
}

#kal-ter-app .kal-ter-puzzle-room .kal-ter-crates{
  bottom:36px !important;
  gap:18px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card:hover,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card:focus-visible,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-target,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-open,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.revealed{
  transform:none !important;
  filter:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card::before,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card::after{
  display:none !important;
  content:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card .kal-ter-crate-visual,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card:hover .kal-ter-crate-visual,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-target .kal-ter-crate-visual,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-visual,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.revealed .kal-ter-crate-visual{
  filter:drop-shadow(0 12px 14px rgba(0,0,0,.26)) !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-fruit.show{
  top:18% !important;
  font-size:46px !important;
  padding:3px 6px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned{
  min-height:46px !important;
  padding:6px 10px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned small{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table{
  margin:12px auto 0 !important;
  padding:12px 14px !important;
  grid-template-columns:minmax(150px,.8fr) minmax(320px,1.4fr) minmax(140px,.7fr) !important;
  gap:10px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note{
  gap:3px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note span{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note strong{
  font-size:12px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note b{
  margin-top:0 !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-labels{
  gap:8px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-labels button{
  min-height:46px !important;
  padding:6px 8px !important;
  font-size:14px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-table-actions{
  gap:6px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-table-actions button{
  min-height:38px !important;
  font-size:11px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-retry{
  margin-top:12px !important;
}

@media(min-width:901px) and (max-width:980px){
  #kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud{
    grid-template-columns:1fr !important;
  }

  #kal-ter-app .kal-ter-crate-observation{
    padding:0 !important;
    border-left:0 !important;
    border-top:1px solid rgba(220,174,94,.14) !important;
    padding-top:8px !important;
    text-align:center !important;
  }

  #kal-ter-app .kal-ter-puzzle > .kal-ter-label-table{
    grid-template-columns:1fr !important;
  }

  #kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note{
    align-items:center !important;
    text-align:center !important;
  }

  #kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-table-actions{
    grid-template-columns:1fr 1fr !important;
  }
}




/* 1.24.1 fruit assets */
.kal-ter-fruit .kal-ter-fruit-asset{
  display:block;
  width:72px;
  height:auto;
  max-width:none;
  user-select:none;
  -webkit-user-drag:none;
  pointer-events:none;
}

.kal-ter-fruit .kal-ter-fruit-asset.apple{
  width:68px;
}

.kal-ter-fruit .kal-ter-fruit-asset.orange{
  width:72px;
}



/* 1.25.0 — room 1.5 minimal, spacious layout */
#kal-ter-app .kal-ter-puzzle{
  max-width:1500px !important;
  padding-inline:8px !important;
}

/* One compact top line: title + navigation only. */
#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head{
  width:min(1400px,100%) !important;
  min-height:48px !important;
  margin:0 auto 8px !important;
  padding:6px 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head > div:first-child{
  display:flex !important;
  align-items:baseline !important;
  gap:9px !important;
  min-width:0 !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head .kal-ter-kicker{
  margin:0 !important;
  font-size:12px !important;
  line-height:1 !important;
  opacity:.72 !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head h2{
  margin:0 !important;
  font-size:21px !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head p{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head .kal-ter-head-actions{
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
  gap:6px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head .kal-ter-back-lobby,
#kal-ter-app .kal-ter-puzzle > .kal-ter-puzzle-head .kal-ter-reset{
  min-height:36px !important;
  padding:6px 11px !important;
  font-size:12px !important;
}

/* Remove the redundant step/observation HUD completely. */
#kal-ter-app .kal-ter-puzzle > .kal-ter-crate-hud{
  display:none !important;
}

/* Single concise status line, over the room instead of consuming a row. */
#kal-ter-app .kal-ter-puzzle > .kal-ter-narrator{
  position:absolute !important;
  z-index:70 !important;
  top:64px !important;
  left:50% !important;
  width:auto !important;
  max-width:min(560px,calc(100% - 40px)) !important;
  min-height:38px !important;
  margin:0 !important;
  padding:8px 16px !important;
  transform:translateX(-50%) !important;
  border-radius:999px !important;
  font-size:12px !important;
  line-height:1.25 !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
  overflow:hidden !important;
  background:rgba(7,12,16,.88) !important;
  border:1px solid rgba(220,174,94,.30) !important;
  box-shadow:0 8px 18px rgba(0,0,0,.24) !important;
  backdrop-filter:blur(4px) !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-narrator::before{
  display:none !important;
}

/* Clean text-free art and a taller stage. */
#kal-ter-app .kal-ter-puzzle-room{
  width:min(1460px,100%) !important;
  max-width:1460px !important;
  height:620px !important;
  margin:0 auto !important;
  border-radius:26px !important;
  background:
    linear-gradient(180deg,rgba(4,8,12,.02) 0 72%,rgba(5,9,12,.20) 84%,rgba(5,8,11,.62) 100%),
    url("art/crate_clean.webp") center center/cover no-repeat !important;
}

#kal-ter-app .kal-ter-puzzle-room::before{
  background:radial-gradient(ellipse at 50% 12%,rgba(240,177,75,.04),transparent 34%) !important;
}

/* Match the three interaction columns to the visible crates in the clean art. */
#kal-ter-app .kal-ter-puzzle-room .kal-ter-crates{
  left:12.5% !important;
  right:12.5% !important;
  top:94px !important;
  bottom:auto !important;
  height:430px !important;
  gap:5.0% !important;
  align-items:start !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card{
  height:420px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-index{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card .kal-ter-crate-visual{
  height:330px !important;
}

/* Do not draw empty black placeholders under crates. Show only assigned labels. */
#kal-ter-app .kal-ter-puzzle .kal-ter-assigned{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label{
  display:flex !important;
  position:absolute !important;
  left:50% !important;
  bottom:14px !important;
  width:72% !important;
  min-height:38px !important;
  padding:5px 9px !important;
  transform:translateX(-50%) !important;
  border-radius:12px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label small{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned-copy{
  font-size:13px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-sampled-mark{
  padding:4px 8px !important;
  font-size:10px !important;
  border-radius:999px !important;
}

/* Compact label toolbar: three labels + two small actions, no explanatory prose. */
#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table{
  width:min(980px,calc(100% - 24px)) !important;
  min-height:0 !important;
  margin:10px auto 0 !important;
  padding:8px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:8px !important;
  align-items:center !important;
  border-radius:16px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-label-note{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-labels{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:7px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-labels button{
  min-height:40px !important;
  padding:6px 10px !important;
  font-size:13px !important;
  border-radius:11px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-table-actions{
  display:flex !important;
  gap:6px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-label-table .kal-ter-table-actions button{
  min-height:40px !important;
  padding:6px 10px !important;
  font-size:11px !important;
  white-space:nowrap !important;
  border-radius:11px !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-retry{
  margin:10px auto 0 !important;
  width:auto !important;
}

#kal-ter-app .kal-ter-puzzle > .kal-ter-retry button{
  min-height:40px !important;
  padding:7px 14px !important;
  font-size:12px !important;
}

@media(min-width:901px) and (max-width:980px){
  #kal-ter-app .kal-ter-puzzle-room{
    height:560px !important;
  }

  #kal-ter-app .kal-ter-puzzle-room .kal-ter-crates{
    left:8% !important;
    right:8% !important;
    top:92px !important;
    height:390px !important;
    gap:3% !important;
  }

  #kal-ter-app .kal-ter-puzzle .kal-ter-crate-card{
    height:380px !important;
  }

  #kal-ter-app .kal-ter-puzzle .kal-ter-crate-card .kal-ter-crate-visual{
    height:300px !important;
  }
}




/* 1.26.0 — room 1.5 cleanup and compact inventory layout */
.kal-ter-puzzle .kal-ter-crate-hud{
  display:none !important;
}

.kal-ter-puzzle .kal-ter-puzzle-head{
  position:absolute !important;
  inset:12px 14px auto 14px !important;
  z-index:96 !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  min-height:0 !important;
}

.kal-ter-puzzle .kal-ter-puzzle-head h2{
  margin:0 !important;
  font-size:clamp(26px,2.4vw,38px) !important;
}

.kal-ter-puzzle .kal-ter-kicker{
  font-size:14px !important;
}

.kal-ter-puzzle .kal-ter-head-actions{
  gap:10px !important;
}

.kal-ter-puzzle .kal-ter-reset,
.kal-ter-puzzle .kal-ter-back-lobby{
  min-height:44px !important;
  padding:0 16px !important;
  border-radius:14px !important;
}

.kal-ter-puzzle .kal-ter-puzzle-room{
  min-height:780px !important;
  overflow:hidden !important;
}

.kal-ter-puzzle .kal-ter-narrator{
  top:11.8% !important;
  left:37% !important;
  right:37% !important;
  padding:8px 14px !important;
  min-height:36px !important;
  border-radius:999px !important;
  font-size:12px !important;
  line-height:1.25 !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  box-shadow:0 8px 18px rgba(0,0,0,.22) !important;
}

.kal-ter-puzzle .kal-ter-crates{
  top:19.5% !important;
  left:15.2% !important;
  right:15.2% !important;
  height:59.5% !important;
  gap:4.3% !important;
}

.kal-ter-puzzle .kal-ter-crate-card::before{
  border-color:transparent !important;
  background:transparent !important;
  box-shadow:none !important;
}

.kal-ter-puzzle .kal-ter-crate-card:hover::before,
.kal-ter-puzzle .kal-ter-crate-card:focus-visible::before,
.kal-ter-puzzle .kal-ter-crate-card.is-open::before,
.kal-ter-puzzle .kal-ter-crate-card.is-target::before{
  border-color:rgba(243,190,95,.48) !important;
  background:rgba(255,202,111,.02) !important;
  box-shadow:0 0 22px rgba(230,162,56,.12), inset 0 0 20px rgba(255,214,143,.015) !important;
}

.kal-ter-puzzle .kal-ter-crate-index,
.kal-ter-puzzle .kal-ter-sampled-mark{
  display:none !important;
}

.kal-ter-puzzle .kal-ter-crate-visual{
  overflow:visible !important;
}

.kal-ter-puzzle .kal-ter-crate-opening{
  position:absolute !important;
  left:21% !important;
  right:21% !important;
  top:16.2% !important;
  height:10% !important;
  border-radius:50% !important;
  background:
    radial-gradient(ellipse at center,
      rgba(25,14,8,.92) 0%,
      rgba(25,14,8,.82) 52%,
      rgba(25,14,8,.26) 72%,
      rgba(25,14,8,0) 100%) !important;
  opacity:0 !important;
  transform:translateY(8px) scaleX(.9) !important;
  transition:opacity .28s ease, transform .38s ease !important;
  pointer-events:none !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-opening{
  opacity:1 !important;
  transform:translateY(0) scaleX(1) !important;
}

.kal-ter-puzzle .kal-ter-fruit{
  top:12.4% !important;
  left:0 !important;
  right:0 !important;
  display:grid !important;
  place-items:center !important;
  opacity:0 !important;
  transform:translateY(28px) scale(.86) !important;
  transition:opacity .22s ease, transform .42s cubic-bezier(.2,.86,.2,1) !important;
  filter:drop-shadow(0 12px 12px rgba(0,0,0,.38)) !important;
}

.kal-ter-puzzle .kal-ter-fruit.show{
  opacity:1 !important;
  transform:translateY(0) scale(1) !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset{
  display:block !important;
  height:auto !important;
  pointer-events:none !important;
  -webkit-user-drag:none !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.apple{
  width:74px !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.orange{
  width:79px !important;
}

.kal-ter-puzzle .kal-ter-assigned{
  position:absolute !important;
  z-index:42 !important;
  left:50% !important;
  bottom:6.4% !important;
  width:58% !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  transform:translateX(-50%) rotate(-.45deg) !important;
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

.kal-ter-puzzle .kal-ter-assigned.has-label,
.kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned,
.kal-ter-puzzle .kal-ter-crate-card.is-prying-label .kal-ter-assigned{
  opacity:1 !important;
  visibility:visible !important;
}

.kal-ter-puzzle .kal-ter-assigned.has-label{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:58px !important;
  padding:10px 18px !important;
  border:1px solid #9a7444 !important;
  border-radius:12px !important;
  background:
    linear-gradient(180deg, rgba(242,224,185,.98), rgba(206,172,120,.96)) !important;
  box-shadow:
    0 12px 20px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,245,222,.72),
    inset 0 -2px 0 rgba(111,78,42,.22) !important;
  color:#2e2217 !important;
  font-weight:900 !important;
  font-size:18px !important;
  letter-spacing:.01em !important;
  pointer-events:auto !important;
}

.kal-ter-puzzle .kal-ter-assigned.has-label::before,
.kal-ter-puzzle .kal-ter-assigned.has-label::after{
  content:"" !important;
  position:absolute !important;
  top:50% !important;
  width:8px !important;
  height:8px !important;
  margin-top:-4px !important;
  border-radius:50% !important;
  background:radial-gradient(circle at 35% 35%, #eee5d4, #75695c 58%, #30261e 100%) !important;
  box-shadow:0 1px 2px rgba(0,0,0,.28) !important;
}

.kal-ter-puzzle .kal-ter-assigned.has-label::before{ left:12px !important; }
.kal-ter-puzzle .kal-ter-assigned.has-label::after{ right:12px !important; }

.kal-ter-puzzle .kal-ter-assigned .kal-ter-assigned-copy{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  color:#2e2217 !important;
}

.kal-ter-puzzle .kal-ter-assigned small{
  display:none !important;
}

.kal-ter-puzzle .kal-ter-assigned i{
  position:absolute !important;
  left:-6px !important;
  top:-8px !important;
  width:22px !important;
  height:22px !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  background:#2c1e16 !important;
  color:#f4dbad !important;
  border:1px solid #7f6042 !important;
  font-style:normal !important;
  font-size:15px !important;
  box-shadow:0 6px 10px rgba(0,0,0,.2) !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned,
.kal-ter-puzzle .kal-ter-crate-card.is-prying-label .kal-ter-assigned{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:58px !important;
  padding:10px 18px !important;
  border:1px solid #9a7444 !important;
  border-radius:12px !important;
  background:linear-gradient(180deg, rgba(242,224,185,.98), rgba(206,172,120,.96)) !important;
  box-shadow:0 12px 20px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,245,222,.72), inset 0 -2px 0 rgba(111,78,42,.22) !important;
  pointer-events:none !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned::before{
  display:grid !important;
  place-items:center !important;
  color:#392719 !important;
  font-size:18px !important;
  font-weight:900 !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned::after{
  right:12px !important;
  top:50% !important;
}

.kal-ter-puzzle .kal-ter-explorer{
  display:block !important;
  z-index:34 !important;
  bottom:2.4% !important;
  transform:translateX(-50%) scale(.76) !important;
  transform-origin:bottom center !important;
  filter:drop-shadow(0 12px 16px rgba(0,0,0,.34)) !important;
  transition:left .55s cubic-bezier(.22,.86,.22,1), transform .26s ease !important;
}

.kal-ter-puzzle .kal-ter-explorer.is-walking{
  transform:translateX(-50%) scale(.76) translateY(-4px) !important;
}

.kal-ter-puzzle .kal-ter-label-table{
  position:absolute !important;
  z-index:88 !important;
  left:50% !important;
  bottom:1.6% !important;
  width:min(950px,76%) !important;
  display:grid !important;
  grid-template-columns:1fr auto !important;
  align-items:center !important;
  gap:12px !important;
  padding:10px 14px !important;
  transform:translateX(-50%) !important;
  border:1px solid rgba(218,169,84,.45) !important;
  border-radius:18px !important;
  background:rgba(7,12,17,.82) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.28) !important;
  backdrop-filter:blur(3px) !important;
}

.kal-ter-puzzle .kal-ter-label-note{
  display:none !important;
}

.kal-ter-puzzle .kal-ter-labels{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}

.kal-ter-puzzle .kal-ter-labels button{
  position:relative !important;
  min-height:54px !important;
  padding:0 28px !important;
  border:1px solid #9b7340 !important;
  border-radius:12px !important;
  background:
    linear-gradient(180deg, rgba(241,225,188,.98), rgba(204,170,118,.96)) !important;
  color:#2f2318 !important;
  font-weight:900 !important;
  font-size:18px !important;
  box-shadow:0 10px 18px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,245,222,.68), inset 0 -2px 0 rgba(111,78,42,.24) !important;
  text-shadow:none !important;
}

.kal-ter-puzzle .kal-ter-labels button::before,
.kal-ter-puzzle .kal-ter-labels button::after{
  content:"" !important;
  position:absolute !important;
  top:50% !important;
  width:8px !important;
  height:8px !important;
  margin-top:-4px !important;
  border-radius:50% !important;
  background:radial-gradient(circle at 35% 35%, #eee5d4, #75695c 58%, #30261e 100%) !important;
  box-shadow:0 1px 2px rgba(0,0,0,.28) !important;
}

.kal-ter-puzzle .kal-ter-labels button::before{ left:10px !important; }
.kal-ter-puzzle .kal-ter-labels button::after{ right:10px !important; }

.kal-ter-puzzle .kal-ter-labels button.selected{
  transform:translateY(-4px) rotate(-.3deg) !important;
  box-shadow:0 16px 22px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,245,222,.78), inset 0 -2px 0 rgba(111,78,42,.2) !important;
  outline:none !important;
}

.kal-ter-puzzle .kal-ter-labels button.used{
  opacity:.42 !important;
  filter:saturate(.65) !important;
}

.kal-ter-puzzle .kal-ter-table-actions{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  margin:0 !important;
}

.kal-ter-puzzle .kal-ter-table-actions button{
  min-height:40px !important;
  padding:0 14px !important;
  border-radius:12px !important;
  font-size:14px !important;
}

.kal-ter-puzzle .kal-ter-table-actions [data-kal-ter-clear-labels]{
  min-width:74px !important;
}

.kal-ter-puzzle .kal-ter-table-actions [data-kal-ter-check]{
  min-width:86px !important;
}

.kal-ter-puzzle .kal-ter-retry{
  bottom:2.4% !important;
}

@media(min-width:901px) and (max-width: 980px){
  .kal-ter-puzzle .kal-ter-narrator{
    left:30% !important;
    right:30% !important;
  }

  .kal-ter-puzzle .kal-ter-crates{
    left:9% !important;
    right:9% !important;
    top:22% !important;
    height:56% !important;
  }

  .kal-ter-puzzle .kal-ter-label-table{
    width:min(96%, 720px) !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .kal-ter-puzzle .kal-ter-table-actions{
    justify-content:center !important;
  }
}




/* 1.27.0 — better crate opening animation */
.kal-ter-puzzle .kal-ter-crate-visual{
  perspective:1000px !important;
  transform-style:preserve-3d !important;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-crate-visual{
  transition:transform .34s ease !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-visual,
.kal-ter-puzzle .kal-ter-crate-card.is-revealing .kal-ter-crate-visual{
  animation:kal_ter_crate_breath .78s cubic-bezier(.2,.86,.2,1) both !important;
}

.kal-ter-puzzle .kal-ter-crate-lid{
  transform-origin:10% 88% !important;
  transform-style:preserve-3d !important;
  will-change:transform, box-shadow !important;
  transition:
    transform .82s cubic-bezier(.18,.9,.18,1),
    box-shadow .4s ease,
    filter .32s ease !important;
  box-shadow:
    0 7px 10px rgba(0,0,0,.32),
    inset 0 1px rgba(255,228,184,.09),
    0 0 0 rgba(0,0,0,0) !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-lid{
  animation:kal_ter_crate_lid_open .86s cubic-bezier(.18,.9,.18,1) both !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-lid,
.kal-ter-puzzle .kal-ter-crate-card.revealed .kal-ter-crate-lid{
  transform:rotateX(65deg) rotateZ(-11deg) translate3d(-8px,-28px,22px) !important;
  box-shadow:
    0 18px 18px rgba(0,0,0,.42),
    -10px 10px 18px rgba(0,0,0,.18),
    inset 0 1px rgba(255,228,184,.12) !important;
  filter:brightness(1.02) !important;
}

.kal-ter-puzzle .kal-ter-crate-opening{
  left:19.5% !important;
  right:19.5% !important;
  top:15.2% !important;
  height:11.4% !important;
  opacity:0 !important;
  transform:translateY(12px) scaleX(.82) scaleY(.82) !important;
  transition:
    opacity .28s ease,
    transform .55s cubic-bezier(.2,.86,.2,1),
    filter .28s ease !important;
  filter:blur(.2px) !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-opening,
.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-opening{
  opacity:1 !important;
  transform:translateY(0) scaleX(1) scaleY(1) !important;
  filter:none !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-revealing .kal-ter-crate-opening::after,
.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-opening::after{
  content:"" !important;
  position:absolute !important;
  left:8% !important;
  right:8% !important;
  top:-14% !important;
  bottom:-26% !important;
  border-radius:50% !important;
  background:
    radial-gradient(ellipse at center,
      rgba(255,194,92,.22) 0%,
      rgba(255,174,52,.12) 35%,
      rgba(255,174,52,.03) 65%,
      rgba(255,174,52,0) 100%) !important;
  opacity:.9 !important;
  animation:kal_ter_crate_glow 1.2s ease-out both !important;
  pointer-events:none !important;
}

.kal-ter-puzzle .kal-ter-fruit{
  top:11.2% !important;
  transform:translateY(34px) scale(.74) !important;
  opacity:0 !important;
  transition:
    opacity .22s ease,
    transform .56s cubic-bezier(.18,.9,.18,1) !important;
}

.kal-ter-puzzle .kal-ter-fruit.show{
  opacity:1 !important;
  transform:translateY(-6px) scale(1) !important;
  animation:kal_ter_fruit_emerge .84s cubic-bezier(.18,.9,.18,1) both, kalTerFruitBob 1.8s ease-in-out .9s infinite !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-fruit.show{
  animation:kal_ter_fruit_emerge .84s cubic-bezier(.18,.9,.18,1) both, kalTerFruitBob 1.8s ease-in-out 1.0s infinite !important;
}

@keyframes kal_ter_crate_lid_open{
  0%{
    transform:rotateX(0deg) rotateZ(0deg) translate3d(0,0,0);
    box-shadow:0 7px 10px rgba(0,0,0,.32), inset 0 1px rgba(255,228,184,.09);
  }
  28%{
    transform:rotateX(18deg) rotateZ(-2deg) translate3d(-2px,-4px,6px);
  }
  58%{
    transform:rotateX(48deg) rotateZ(-7deg) translate3d(-5px,-16px,16px);
  }
  78%{
    transform:rotateX(70deg) rotateZ(-12deg) translate3d(-8px,-30px,24px);
    box-shadow:0 19px 18px rgba(0,0,0,.45), -8px 9px 16px rgba(0,0,0,.18), inset 0 1px rgba(255,228,184,.12);
  }
  100%{
    transform:rotateX(65deg) rotateZ(-11deg) translate3d(-8px,-28px,22px);
    box-shadow:0 18px 18px rgba(0,0,0,.42), -10px 10px 18px rgba(0,0,0,.18), inset 0 1px rgba(255,228,184,.12);
  }
}

@keyframes kal_ter_crate_breath{
  0%{transform:translateY(0) scale(1)}
  35%{transform:translateY(-2px) scale(1.01)}
  100%{transform:translateY(0) scale(1)}
}

@keyframes kal_ter_crate_glow{
  0%{opacity:0; transform:scale(.88)}
  35%{opacity:1; transform:scale(1.04)}
  100%{opacity:.12; transform:scale(1.12)}
}

@keyframes kal_ter_fruit_emerge{
  0%{
    opacity:0;
    transform:translateY(34px) scale(.72);
  }
  45%{
    opacity:1;
    transform:translateY(2px) scale(1.02);
  }
  70%{
    opacity:1;
    transform:translateY(-10px) scale(1.04);
  }
  100%{
    opacity:1;
    transform:translateY(-6px) scale(1);
  }
}



@media (prefers-reduced-motion: reduce){
  .kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-visual,
  .kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-lid,
  .kal-ter-puzzle .kal-ter-crate-card.is-revealing .kal-ter-crate-opening::after,
  .kal-ter-puzzle .kal-ter-fruit.show{
    animation:none !important;
  }
}


/* 1.27.1 — fruit size / shadow / placement correction */
.kal-ter-puzzle .kal-ter-fruit{
  top:15.4% !important;
  filter:drop-shadow(0 5px 8px rgba(0,0,0,.24)) !important;
  transform:translateY(40px) scale(.72) !important;
}

.kal-ter-puzzle .kal-ter-fruit.show{
  transform:translateY(6px) scale(1) !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.apple{
  width:92px !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.orange{
  width:96px !important;
}

@keyframes kal_ter_fruit_emerge{
  0%{
    opacity:0;
    transform:translateY(40px) scale(.70);
  }
  45%{
    opacity:1;
    transform:translateY(12px) scale(1.03);
  }
  70%{
    opacity:1;
    transform:translateY(2px) scale(1.04);
  }
  100%{
    opacity:1;
    transform:translateY(6px) scale(1);
  }
}




/* 1.27.2 — stronger visible crate depth and better fruit integration */
.kal-ter-puzzle .kal-ter-crate-visual{
  isolation:isolate !important;
}

.kal-ter-puzzle .kal-ter-crate-lid{
  overflow:visible !important;
}

.kal-ter-puzzle .kal-ter-crate-lid::before,
.kal-ter-puzzle .kal-ter-crate-lid::after{
  content:"" !important;
  position:absolute !important;
  pointer-events:none !important;
}

.kal-ter-puzzle .kal-ter-crate-lid::before{
  inset:10% 8% 22% 8% !important;
  border-radius:10px !important;
  background:
    linear-gradient(180deg,
      rgba(255,229,180,.16) 0%,
      rgba(255,229,180,.04) 24%,
      rgba(0,0,0,0) 52%) !important;
  opacity:.85 !important;
}

.kal-ter-puzzle .kal-ter-crate-lid::after{
  left:9% !important;
  right:9% !important;
  bottom:7% !important;
  height:30% !important;
  border-radius:0 0 12px 12px !important;
  background:
    linear-gradient(180deg,
      rgba(31,18,10,.12) 0%,
      rgba(31,18,10,.58) 65%,
      rgba(18,10,6,.82) 100%) !important;
  opacity:0 !important;
  transform:translateY(0) !important;
  transition:opacity .26s ease !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-lid::after,
.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-lid::after,
.kal-ter-puzzle .kal-ter-crate-card.revealed .kal-ter-crate-lid::after{
  opacity:1 !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-crate-visual,
.kal-ter-puzzle .kal-ter-crate-card.is-revealing .kal-ter-crate-visual{
  animation:kal_ter_crate_breath_strong .92s cubic-bezier(.18,.88,.2,1) both !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-lid,
.kal-ter-puzzle .kal-ter-crate-card.revealed .kal-ter-crate-lid{
  transform:rotateX(69deg) rotateZ(-12deg) translate3d(-10px,-34px,28px) !important;
}

.kal-ter-puzzle .kal-ter-crate-opening{
  left:18.5% !important;
  right:18.5% !important;
  top:14.8% !important;
  height:12.6% !important;
  background:
    radial-gradient(ellipse at 50% 38%,
      rgba(40,24,14,.96) 0%,
      rgba(24,14,9,.94) 42%,
      rgba(14,8,5,.88) 68%,
      rgba(12,7,4,.42) 82%,
      rgba(12,7,4,0) 100%) !important;
  box-shadow:
    inset 0 12px 18px rgba(255,195,104,.04),
    inset 0 -12px 22px rgba(0,0,0,.38) !important;
}

.kal-ter-puzzle .kal-ter-crate-opening::before{
  content:"" !important;
  position:absolute !important;
  left:4% !important;
  right:4% !important;
  bottom:-10% !important;
  height:28% !important;
  border-radius:0 0 999px 999px !important;
  background:
    linear-gradient(180deg,
      rgba(113,69,32,.12) 0%,
      rgba(71,39,18,.66) 35%,
      rgba(34,18,10,.94) 100%) !important;
  box-shadow:0 -2px 0 rgba(223,163,87,.18), 0 4px 8px rgba(0,0,0,.25) !important;
  z-index:3 !important;
  pointer-events:none !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-revealing .kal-ter-crate-opening::after,
.kal-ter-puzzle .kal-ter-crate-card.is-open .kal-ter-crate-opening::after{
  left:10% !important;
  right:10% !important;
  top:-10% !important;
  bottom:-20% !important;
  opacity:.72 !important;
  animation:kal_ter_crate_glow_soft 1.35s ease-out both !important;
}

.kal-ter-puzzle .kal-ter-fruit{
  top:16.2% !important;
  z-index:2 !important;
  filter:none !important;
  transform:translateY(46px) scale(.70) !important;
}

.kal-ter-puzzle .kal-ter-fruit.show{
  transform:translateY(12px) scale(1) !important;
  animation:
    kal_ter_fruit_emerge_deep .96s cubic-bezier(.18,.9,.18,1) both,
    kalTerFruitBob 2.2s ease-in-out 1.05s infinite !important;
}

.kal-ter-puzzle .kal-ter-crate-card.is-opening .kal-ter-fruit.show{
  animation:
    kal_ter_fruit_emerge_deep .96s cubic-bezier(.18,.9,.18,1) both,
    kalTerFruitBob 2.2s ease-in-out 1.1s infinite !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset{
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.18)) !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.apple{
  width:108px !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.orange{
  width:112px !important;
}

@keyframes kal_ter_crate_breath_strong{
  0%{transform:translateY(0) scale(1)}
  22%{transform:translateY(-2px) scale(1.006)}
  48%{transform:translateY(1px) scale(.998)}
  72%{transform:translateY(-1px) scale(1.004)}
  100%{transform:translateY(0) scale(1)}
}

@keyframes kal_ter_crate_glow_soft{
  0%{opacity:0; transform:scale(.86)}
  35%{opacity:.88; transform:scale(1.02)}
  100%{opacity:.14; transform:scale(1.10)}
}

@keyframes kal_ter_fruit_emerge_deep{
  0%{
    opacity:0;
    transform:translateY(48px) scale(.68);
  }
  32%{
    opacity:1;
    transform:translateY(22px) scale(.92);
  }
  58%{
    opacity:1;
    transform:translateY(8px) scale(1.05);
  }
  78%{
    opacity:1;
    transform:translateY(14px) scale(1.02);
  }
  100%{
    opacity:1;
    transform:translateY(12px) scale(1);
  }
}




/* 1.27.3 — room 1.5 cleanup pass */
.kal-ter-puzzle .kal-ter-puzzle-room{
  overflow:hidden !important;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned{
  display:none !important;
}

.kal-ter-puzzle .kal-ter-crate-card .kal-ter-assigned.has-label,
.kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned,
.kal-ter-puzzle .kal-ter-crate-card.is-prying-label .kal-ter-assigned{
  display:flex !important;
}

.kal-ter-puzzle .kal-ter-crate-card:not(.is-open):not(.revealed) .kal-ter-fruit{
  opacity:0 !important;
}

.kal-ter-puzzle .kal-ter-crate-opening{
  left:22% !important;
  right:22% !important;
  top:16.6% !important;
  height:9.6% !important;
  background:
    radial-gradient(ellipse at 50% 38%,
      rgba(35,21,12,.94) 0%,
      rgba(20,12,7,.92) 52%,
      rgba(10,6,4,.40) 78%,
      rgba(10,6,4,0) 100%) !important;
  box-shadow:
    inset 0 8px 12px rgba(255,196,104,.03),
    inset 0 -8px 14px rgba(0,0,0,.28) !important;
}

.kal-ter-puzzle .kal-ter-crate-opening::before{
  left:7% !important;
  right:7% !important;
  bottom:-7% !important;
  height:21% !important;
  box-shadow:0 -1px 0 rgba(223,163,87,.12), 0 2px 6px rgba(0,0,0,.2) !important;
}

.kal-ter-puzzle .kal-ter-fruit{
  top:17.6% !important;
  transform:translateY(38px) scale(.72) !important;
}

.kal-ter-puzzle .kal-ter-fruit.show{
  transform:translateY(14px) scale(1) !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset{
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.14)) !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.apple{
  width:92px !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.orange{
  width:96px !important;
}

.kal-ter-puzzle .kal-ter-explorer{
  z-index:44 !important;
  left:50% !important;
  bottom:14px !important;
}

.kal-ter-puzzle .kal-ter-puzzle-room > .kal-ter-explorer + .kal-ter-explorer{
  display:none !important;
}

.kal-ter-puzzle .kal-ter-label-table{
  bottom:8px !important;
  width:min(900px,74%) !important;
  padding:8px 12px !important;
}

.kal-ter-puzzle .kal-ter-labels button{
  min-height:48px !important;
}




/* 1.27.4 — real cleanup of baked scene clutter */
.kal-ter-puzzle .kal-ter-explorer{
  display:none !important;
}

/* The dark empty boxes are baked into crate_full.webp.
   Cover them with a floor patch; real assigned labels stay above it. */
.kal-ter-puzzle .kal-ter-crate-card::after{
  content:"" !important;
  position:absolute !important;
  z-index:24 !important;
  left:3% !important;
  right:3% !important;
  bottom:1.2% !important;
  height:18.5% !important;
  border:0 !important;
  border-radius:12px !important;
  pointer-events:none !important;
  background:
    linear-gradient(180deg, rgba(24,31,38,.96), rgba(12,18,24,.985)),
    repeating-linear-gradient(0deg,
      rgba(255,255,255,.018) 0 1px,
      rgba(0,0,0,.025) 1px 7px) !important;
  box-shadow:
    inset 0 1px rgba(124,142,153,.035),
    inset 0 -12px 24px rgba(0,0,0,.12) !important;
  opacity:1 !important;
  transform:none !important;
}

.kal-ter-puzzle .kal-ter-assigned{
  z-index:58 !important;
}

/* Remove the fake black oval. */
.kal-ter-puzzle .kal-ter-crate-opening,
.kal-ter-puzzle .kal-ter-crate-opening::before,
.kal-ter-puzzle .kal-ter-crate-opening::after{
  display:none !important;
}

/* Fruit: visible, moderate, attached to the crate instead of floating over it. */
.kal-ter-puzzle .kal-ter-fruit{
  top:18.8% !important;
  z-index:56 !important;
  transform:translateY(24px) scale(.82) !important;
  filter:none !important;
}

.kal-ter-puzzle .kal-ter-fruit.show{
  transform:translateY(8px) scale(1) !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset{
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.18)) !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.apple{
  width:82px !important;
}

.kal-ter-puzzle .kal-ter-fruit .kal-ter-fruit-asset.orange{
  width:86px !important;
}

/* Keep the selected crate readable without another large frame. */
.kal-ter-puzzle .kal-ter-crate-card:hover::before,
.kal-ter-puzzle .kal-ter-crate-card:focus-visible::before,
.kal-ter-puzzle .kal-ter-crate-card.is-open::before,
.kal-ter-puzzle .kal-ter-crate-card.is-target::before{
  border-color:transparent !important;
  background:radial-gradient(ellipse at center,
    rgba(238,181,80,.045) 0%,
    rgba(238,181,80,.012) 58%,
    transparent 82%) !important;
  box-shadow:none !important;
}

/* Compact bottom inventory and raise it into the scene. */
.kal-ter-puzzle .kal-ter-label-table{
  bottom:14px !important;
  width:min(880px,72%) !important;
  padding:7px 10px !important;
  border-radius:14px !important;
}

.kal-ter-puzzle .kal-ter-labels{
  gap:9px !important;
}

.kal-ter-puzzle .kal-ter-labels button{
  min-height:44px !important;
  padding:0 22px !important;
  font-size:16px !important;
}

.kal-ter-puzzle .kal-ter-table-actions button{
  min-height:36px !important;
  padding:0 12px !important;
  font-size:13px !important;
}




/* 1.27.6 — draggable crate labels */
#kal-ter-app .kal-ter-puzzle .kal-ter-labels button:not(:disabled),
#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label{
  cursor:grab !important;
  touch-action:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}

#kal-ter-app.is-label-dragging,
#kal-ter-app.is-label-dragging *{
  cursor:grabbing !important;
}

.kal-ter-label-drag-ghost{
  position:fixed !important;
  z-index:999999 !important;
  margin:0 !important;
  pointer-events:none !important;
  cursor:grabbing !important;
  transform:scale(1.03) rotate(-1deg) !important;
  transform-origin:center !important;
  opacity:.96 !important;
  box-shadow:0 18px 34px rgba(0,0,0,.36),0 0 0 1px rgba(233,191,109,.22) !important;
  filter:brightness(1.06) !important;
  transition:filter .12s ease, box-shadow .12s ease !important;
}

.kal-ter-label-drag-ghost.valid-drop{
  filter:brightness(1.13) !important;
  box-shadow:0 20px 38px rgba(0,0,0,.36),0 0 22px rgba(232,176,82,.22) !important;
}

#kal-ter-app .kal-ter-puzzle .label-drag-source{
  opacity:.35 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.drag-over-label::before{
  border-color:rgba(238,186,95,.72) !important;
  background:radial-gradient(ellipse at center,rgba(238,181,80,.10),rgba(238,181,80,.025) 58%,transparent 82%) !important;
  box-shadow:0 0 26px rgba(231,170,66,.18) !important;
}



/* 1.27.9 — source-art mapped label slots */
#kal-ter-app .kal-ter-puzzle-room .kal-ter-crates{
  /* Interaction columns must not parallax away from the baked dotted panels. */
  transform:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card{
  position:relative !important;
  overflow:visible !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-label-slot{
  position:absolute !important;
  z-index:52 !important;
  left:var(--kal-label-slot-left, 0px) !important;
  top:var(--kal-label-slot-top, 0px) !important;
  right:auto !important;
  bottom:auto !important;
  width:var(--kal-label-slot-width, 0px) !important;
  height:var(--kal-label-slot-height, 0px) !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  border:1px solid transparent !important;
  border-radius:12px !important;
  background:transparent !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
  pointer-events:none !important;
  transition:border-color .14s ease, background .14s ease, box-shadow .14s ease !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.drag-over-label::before{
  border-color:transparent !important;
  background:transparent !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.drag-over-label .kal-ter-label-slot{
  border-color:rgba(235,191,108,.94) !important;
  background:rgba(236,188,96,.075) !important;
  box-shadow:0 0 0 2px rgba(236,188,96,.08), inset 0 0 18px rgba(236,188,96,.07) !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned{
  display:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-prying-label .kal-ter-assigned{
  display:flex !important;
  position:absolute !important;
  z-index:58 !important;
  left:var(--kal-label-slot-left, 0px) !important;
  top:var(--kal-label-slot-top, 0px) !important;
  right:auto !important;
  bottom:auto !important;
  width:var(--kal-label-slot-width, 0px) !important;
  height:var(--kal-label-slot-height, 0px) !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 42px 0 30px !important;
  transform:none !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px solid #9a7444 !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,#ead9b5 0%,#dbbf8b 50%,#c9a56c 100%) !important;
  color:#2e2115 !important;
  box-shadow:inset 0 1px 0 rgba(255,247,226,.82), inset 0 -2px 0 rgba(99,68,35,.18), 0 5px 10px rgba(0,0,0,.13) !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  cursor:grab !important;
  touch-action:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label::before,
#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label::after{
  content:"" !important;
  position:absolute !important;
  top:50% !important;
  width:8px !important;
  height:8px !important;
  margin-top:-4px !important;
  border-radius:50% !important;
  background:radial-gradient(circle at 35% 35%,#d9cfbd,#776a5d 58%,#33281e 100%) !important;
  box-shadow:0 1px 2px rgba(0,0,0,.3) !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label::before{ left:14px !important; }
#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label::after{ right:14px !important; }

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned-copy{
  width:100% !important;
  text-align:center !important;
  color:#2e2115 !important;
  font-size:clamp(14px,1.25vw,19px) !important;
  line-height:1 !important;
  font-weight:900 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label i{
  position:absolute !important;
  left:10px !important;
  top:50% !important;
  width:23px !important;
  height:23px !important;
  margin:0 !important;
  transform:translateY(-50%) !important;
  display:grid !important;
  place-items:center !important;
  border:1px solid #7e6040 !important;
  border-radius:50% !important;
  background:#39271b !important;
  color:#f0d8aa !important;
  font-size:14px !important;
  line-height:1 !important;
  box-shadow:0 2px 5px rgba(0,0,0,.25) !important;
  z-index:5 !important;
}

.kal-ter-label-drag-ghost.valid-drop{
  border-radius:12px !important;
}




/* 1.27.10 — explorer must stand in front of assigned labels */
#kal-ter-app .kal-ter-puzzle-room .kal-ter-explorer,
#kal-ter-app .kal-ter-puzzle .kal-ter-explorer{
  z-index: 250 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-assigned,
#kal-ter-app .kal-ter-puzzle .kal-ter-assigned.has-label,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-nailing .kal-ter-assigned,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.is-prying-label .kal-ter-assigned{
  z-index: 80 !important;
}


/* 1.27.11 — center label visually passes behind the baked explorer */
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.slot-1 .kal-ter-assigned.has-label{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
  padding:0 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.slot-1 .kal-ter-assigned.has-label::before,
#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.slot-1 .kal-ter-assigned.has-label::after{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  height:100% !important;
  margin:0 !important;
  border:1px solid #9a7444 !important;
  background:
    radial-gradient(circle at 14px 50%, #d9cfbd 0 3px, #776a5d 4px, #33281e 5px, transparent 6px),
    radial-gradient(circle at calc(100% - 14px) 50%, #d9cfbd 0 3px, #776a5d 4px, #33281e 5px, transparent 6px),
    linear-gradient(180deg,#ead9b5 0%,#dbbf8b 50%,#c9a56c 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,247,226,.82),
    inset 0 -2px 0 rgba(99,68,35,.18),
    0 5px 10px rgba(0,0,0,.13) !important;
  z-index:1 !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.slot-1 .kal-ter-assigned.has-label::before{
  left:0 !important;
  width:29% !important;
  border-radius:12px 5px 5px 12px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.slot-1 .kal-ter-assigned.has-label::after{
  right:0 !important;
  width:43% !important;
  border-radius:5px 12px 12px 5px !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.slot-1 .kal-ter-assigned.has-label .kal-ter-assigned-copy{
  position:absolute !important;
  right:0 !important;
  top:0 !important;
  width:43% !important;
  height:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 24px 0 10px !important;
  box-sizing:border-box !important;
  z-index:3 !important;
  font-size:clamp(12px,1.05vw,17px) !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

#kal-ter-app .kal-ter-puzzle .kal-ter-crate-card.slot-1 .kal-ter-assigned.has-label i{
  left:9px !important;
  z-index:4 !important;
}

/* There is no real HTML explorer above the label here:
   the visible explorer is painted into crate_clean.webp.
   The center gap deliberately exposes that character so the label reads as being behind him. */



/* 1.27.12 — room 1.5 opening riddle popup */
#kal-ter-app .kal-ter-riddle-modal{
  z-index:100120 !important;
}

#kal-ter-app .kal-ter-riddle-card{
  width:min(620px,94vw) !important;
  padding:34px 36px 30px !important;
  border:1px solid rgba(191,145,72,.72) !important;
  border-radius:20px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(129,86,34,.18), transparent 42%),
    linear-gradient(180deg, rgba(20,27,32,.985), rgba(8,14,18,.995)) !important;
  box-shadow:
    0 28px 90px rgba(0,0,0,.72),
    inset 0 1px 0 rgba(255,229,180,.08) !important;
  color:#ead8b8 !important;
  text-align:center !important;
}

#kal-ter-app .kal-ter-riddle-kicker{
  display:inline-block !important;
  margin-bottom:7px !important;
  padding:4px 10px !important;
  border:1px solid rgba(190,142,72,.38) !important;
  border-radius:999px !important;
  color:#caa56b !important;
  font-size:12px !important;
  font-weight:800 !important;
}

#kal-ter-app .kal-ter-riddle-card h3{
  margin:0 0 18px !important;
  color:#f0d9ad !important;
  font-size:clamp(25px,3vw,34px) !important;
  line-height:1.2 !important;
}

#kal-ter-app .kal-ter-riddle-card p{
  margin:10px auto !important;
  max-width:520px !important;
  color:#d6c2a1 !important;
  font-size:17px !important;
  line-height:1.7 !important;
}

#kal-ter-app .kal-ter-riddle-card p strong{
  color:#f2cf91 !important;
}

#kal-ter-app .kal-ter-riddle-start{
  margin-top:18px !important;
  min-width:190px !important;
  min-height:48px !important;
  padding:10px 22px !important;
  border:1px solid #c28a43 !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,#8d5a2e,#5e381d) !important;
  color:#fff0d2 !important;
  font-weight:900 !important;
  font-size:16px !important;
  cursor:pointer !important;
  box-shadow:0 8px 18px rgba(0,0,0,.28), inset 0 1px rgba(255,230,181,.12) !important;
}

#kal-ter-app .kal-ter-riddle-start:hover,
#kal-ter-app .kal-ter-riddle-start:focus-visible{
  transform:translateY(-1px) !important;
  filter:brightness(1.08) !important;
  outline:none !important;
}




/* 1.27.13 — full structural repair for room 1.0 */
#kal-ter-app .kal-ter-guard-puzzle{
  position:relative !important;
  width:min(1400px,100%) !important;
  max-width:1400px !important;
  margin:0 auto !important;
  scroll-margin-top:140px !important;
}

/* The full riddle is shown once in the entrance modal. Avoid duplicating it on the page. */
#kal-ter-app .kal-ter-guard-puzzle > .kal-ter-guard-scroll{
  display:none !important;
}

#kal-ter-app .kal-ter-guard-puzzle > .kal-ter-puzzle-head{
  position:relative !important;
  inset:auto !important;
  width:min(1240px,calc(100% - 20px)) !important;
  max-width:1240px !important;
  min-height:62px !important;
  margin:0 auto 8px !important;
  padding:8px 12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  border:1px solid rgba(218,169,84,.26) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(11,17,22,.94),rgba(7,11,15,.94)) !important;
  box-shadow:0 12px 26px rgba(0,0,0,.24) !important;
  pointer-events:auto !important;
}

#kal-ter-app .kal-ter-guard-puzzle > .kal-ter-puzzle-head > div:first-child{
  display:block !important;
  min-width:0 !important;
}

#kal-ter-app .kal-ter-guard-puzzle > .kal-ter-puzzle-head h2{
  margin:1px 0 0 !important;
  font-size:clamp(22px,2.1vw,31px) !important;
  line-height:1.15 !important;
}

#kal-ter-app .kal-ter-guard-puzzle > .kal-ter-puzzle-head p{
  display:none !important;
}

/* One concise live line. It is normal flow and never covers the room. */
#kal-ter-app .kal-ter-guard-puzzle > .kal-ter-guard-message{
  position:relative !important;
  z-index:4 !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  width:min(760px,calc(100% - 24px)) !important;
  max-width:760px !important;
  min-height:38px !important;
  margin:0 auto 10px !important;
  padding:9px 16px !important;
  border:1px solid rgba(218,169,84,.34) !important;
  border-radius:999px !important;
  background:rgba(7,12,17,.92) !important;
  color:#e7d4b3 !important;
  box-shadow:0 8px 20px rgba(0,0,0,.22) !important;
  font-size:13px !important;
  line-height:1.35 !important;
  text-align:center !important;
  white-space:normal !important;
  overflow:visible !important;
  backdrop-filter:blur(4px) !important;
}

#kal-ter-app .kal-ter-guard-puzzle > .kal-ter-guard-message::before{
  display:none !important;
}

/* Outer room is just a container. Visual scene and controls are separated. */
#kal-ter-app .kal-ter-guard-room{
  position:relative !important;
  width:100% !important;
  max-width:1400px !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 auto !important;
  padding:0 0 18px !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-guard-room::before,
#kal-ter-app .kal-ter-guard-room::after{
  display:none !important;
}

/* Clean scene artwork: no baked instructions/questions. */
#kal-ter-app .kal-ter-guard-stage{
  position:relative !important;
  width:100% !important;
  aspect-ratio:1586 / 610 !important;
  min-height:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(220,174,95,.38) !important;
  border-radius:26px !important;
  background:
    linear-gradient(180deg,rgba(2,5,8,.01),rgba(2,5,8,.04)),
    url("art/guard_scene.webp") center center/100% 100% no-repeat !important;
  box-shadow:0 30px 70px rgba(0,0,0,.42),inset 0 0 0 2px rgba(255,226,175,.02) !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-arch,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-floor,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-torch,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-player{
  display:none !important;
}

/* Exact local hit zones for guard_scene.webp. */
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door{
  position:absolute !important;
  z-index:20 !important;
  top:11.5% !important;
  width:16.3% !important;
  height:65.2% !important;
  padding:0 !important;
  border:0 !important;
  border-radius:42% 42% 8px 8px !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.left{left:27.0% !important;right:auto !important}
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.right{left:auto !important;right:27.0% !important}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door .frame,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door .leaf,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door .label{
  opacity:0 !important;
  pointer-events:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door::after{
  content:"" !important;
  position:absolute !important;
  inset:4% 7% !important;
  border:1px solid transparent !important;
  border-radius:42% 42% 8px 8px !important;
  background:transparent !important;
  box-shadow:none !important;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door:hover::after,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door:focus-visible::after,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.pointed::after,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.chosen::after{
  border-color:rgba(240,190,100,.48) !important;
  background:rgba(255,205,120,.012) !important;
  box-shadow:0 0 24px rgba(226,160,57,.12) !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard{
  position:absolute !important;
  z-index:24 !important;
  top:25.5% !important;
  width:11.3% !important;
  height:54% !important;
  padding:0 !important;
  border:0 !important;
  border-radius:48px !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:none !important;
  transform:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard.left{left:19.8% !important;right:auto !important}
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard.right{left:auto !important;right:19.8% !important}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard .spear,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard .helmet,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard .head,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard .body,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard .belt,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard .name{
  opacity:0 !important;
  pointer-events:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard::after{
  content:"" !important;
  position:absolute !important;
  inset:4% 9% !important;
  border:1px solid transparent !important;
  border-radius:42px !important;
  background:transparent !important;
  box-shadow:none !important;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard:hover::after,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard:focus-visible::after,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard.selected::after{
  border-color:rgba(240,190,100,.52) !important;
  background:radial-gradient(ellipse,rgba(255,203,109,.035),transparent 72%) !important;
  box-shadow:0 0 22px rgba(225,159,58,.12) !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard.inactive,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.inactive{
  opacity:.62 !important;
  filter:saturate(.82) !important;
}

/* Speech belongs to the selected guard, not over the page text. */
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-speech{
  position:absolute !important;
  z-index:60 !important;
  top:6.5% !important;
  left:50% !important;
  right:auto !important;
  width:min(320px,30%) !important;
  min-width:0 !important;
  max-width:320px !important;
  padding:10px 14px !important;
  transform:translateX(-50%) !important;
  border:1px solid rgba(197,158,96,.62) !important;
  border-radius:14px !important;
  background:rgba(245,233,207,.97) !important;
  color:#282119 !important;
  box-shadow:0 12px 26px rgba(0,0,0,.30) !important;
  font-size:13px !important;
  line-height:1.35 !important;
  text-align:center !important;
  pointer-events:none !important;
}

#kal-ter-app .kal-ter-guard-room[data-focus-guard="l"] .kal-ter-guard-speech{left:25.5% !important}
#kal-ter-app .kal-ter-guard-room[data-focus-guard="r"] .kal-ter-guard-speech{left:74.5% !important}

/* Questions/status are a dedicated panel below the scene, never on top of it. */
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud{
  position:relative !important;
  z-index:10 !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:min(1120px,calc(100% - 24px)) !important;
  max-width:1120px !important;
  max-height:none !important;
  margin:12px auto 0 !important;
  padding:12px 14px 14px !important;
  overflow:visible !important;
  transform:none !important;
  border:1px solid rgba(218,169,84,.40) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(12,18,23,.98),rgba(7,12,16,.98)) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.28) !important;
  backdrop-filter:none !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud::before,
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud::after{
  display:none !important;
}

/* The top live message already carries current status; remove duplicated status text. */
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .status{
  display:none !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .question-caption{
  display:block !important;
  margin:0 0 9px !important;
  padding:7px 10px !important;
  border:0 !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.025) !important;
  color:#d8c5a6 !important;
  font-size:12px !important;
  line-height:1.35 !important;
  text-align:center !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .question-caption[hidden]{display:none !important}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .questions{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
  max-height:360px !important;
  padding:2px !important;
  overflow:auto !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(205,160,84,.48) rgba(255,255,255,.03) !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .questions:empty{
  display:none !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .qbtn{
  min-height:54px !important;
  padding:8px 10px !important;
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  align-items:center !important;
  gap:9px !important;
  border:1px solid rgba(216,167,84,.28) !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,#17212a,#0b1218) !important;
  color:#ead8ba !important;
  font-size:12px !important;
  line-height:1.35 !important;
  text-align:right !important;
  box-shadow:none !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .qbtn .qnum{
  display:grid !important;
  place-items:center !important;
  width:30px !important;
  height:30px !important;
  border-radius:9px !important;
  background:rgba(197,153,82,.15) !important;
  color:#e8c989 !important;
  font-size:11px !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .restart{
  display:block !important;
  margin:10px auto 0 !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .restart[hidden]{display:none !important}

/* Reward is a normal-flow result card below the controls. It cannot cover the scene/questions. */
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-reward{
  position:relative !important;
  z-index:8 !important;
  inset:auto !important;
  width:min(720px,calc(100% - 24px)) !important;
  max-width:720px !important;
  min-height:0 !important;
  margin:14px auto 0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-reward[hidden]{display:none !important}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-reward .box{
  position:relative !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:20px 22px !important;
  border:1px solid rgba(128,179,112,.45) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(15,25,20,.98),rgba(8,16,12,.98)) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.28) !important;
  text-align:center !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-reward .seal{
  width:48px !important;
  height:48px !important;
  margin:0 auto 8px !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-reward h3{
  margin:4px 0 6px !important;
  font-size:24px !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-reward p{
  margin:0 0 12px !important;
  line-height:1.45 !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-reward a{
  display:inline-flex !important;
  min-height:44px !important;
  align-items:center !important;
  justify-content:center !important;
  padding:9px 18px !important;
  border-radius:12px !important;
}

/* Guard intro popup. */
#kal-ter-app .kal-ter-guard-riddle-modal{z-index:100130 !important}
#kal-ter-app .kal-ter-guard-riddle-card{
  width:min(620px,94vw) !important;
  padding:34px 36px 30px !important;
  border:1px solid rgba(191,145,72,.72) !important;
  border-radius:20px !important;
  background:radial-gradient(circle at 50% 0%,rgba(129,86,34,.18),transparent 42%),linear-gradient(180deg,rgba(20,27,32,.99),rgba(8,14,18,.995)) !important;
  box-shadow:0 28px 90px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,229,180,.08) !important;
  color:#ead8b8 !important;
  text-align:center !important;
}
#kal-ter-app .kal-ter-guard-riddle-card h3{margin:0 0 18px !important;color:#f0d9ad !important;font-size:clamp(25px,3vw,34px) !important;line-height:1.2 !important}
#kal-ter-app .kal-ter-guard-riddle-card p{margin:10px auto !important;max-width:520px !important;color:#d6c2a1 !important;font-size:17px !important;line-height:1.65 !important}
#kal-ter-app .kal-ter-guard-riddle-card p strong{color:#f2cf91 !important}





/* 1.27.13 verification corrections */
#kal-ter-app .kal-ter-guard-stage{
  aspect-ratio:1586 / 580 !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud:not(:has(.qbtn)):not(:has(.restart:not([hidden]))){
  display:none !important;
}




/* 1.27.14 — room 1.0 polish: exact intro, clean HUD and explicit guard pointer */
#kal-ter-app .kal-ter-guard-puzzle .kal-ter-scroll,
#kal-ter-app .kal-ter-guard-puzzle .kal-ter-guard-message{
  display:none !important;
}

#kal-ter-app .kal-ter-guard-puzzle h2{
  margin:0 0 10px !important;
}

#kal-ter-app .kal-ter-guard-room{
  margin-top:10px !important;
}

#kal-ter-app .kal-ter-guard-stage{
  position:relative !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-pointer{
  position:absolute !important;
  z-index:58 !important;
  width:0 !important;
  height:0 !important;
  pointer-events:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-pointer[hidden]{
  display:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-pointer .beam{
  position:absolute !important;
  left:0 !important;
  top:-4px !important;
  width:0 !important;
  height:8px !important;
  border-radius:999px !important;
  transform-origin:0 50% !important;
  background:linear-gradient(90deg,rgba(255,240,180,.96),rgba(255,203,84,.98) 42%,rgba(255,193,60,.9) 82%,rgba(255,193,60,0) 100%) !important;
  box-shadow:0 0 18px rgba(255,195,80,.75),0 0 34px rgba(255,173,37,.46) !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-pointer .head{
  position:absolute !important;
  width:0 !important;
  height:0 !important;
  border-top:18px solid transparent !important;
  border-bottom:18px solid transparent !important;
  border-left:26px solid rgba(255,214,96,.98) !important;
  filter:drop-shadow(0 0 10px rgba(255,191,51,.85)) !important;
  transform-origin:50% 50% !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-pointer .tag{
  position:absolute !important;
  min-width:164px !important;
  max-width:220px !important;
  padding:8px 14px !important;
  transform:translateX(-50%) !important;
  border:1px solid rgba(235,191,100,.76) !important;
  border-radius:999px !important;
  background:rgba(36,28,18,.96) !important;
  color:#f1d59d !important;
  font-size:14px !important;
  line-height:1.2 !important;
  text-align:center !important;
  box-shadow:0 10px 24px rgba(0,0,0,.36),0 0 16px rgba(224,167,66,.18) !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.pointed,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.chosen{
  opacity:1 !important;
  filter:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.pointed::after,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.chosen::after{
  border-color:rgba(255,216,124,.92) !important;
  background:rgba(255,211,102,.05) !important;
  box-shadow:0 0 24px rgba(255,193,59,.28),0 0 60px rgba(255,193,59,.18),inset 0 0 28px rgba(255,211,120,.12) !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard-door.pointed::before{
  display:none !important;
}

#kal-ter-app .kal-ter-guard-stage .kal-ter-guard.pointing::before,
#kal-ter-app .kal-ter-guard-stage .kal-ter-guard.pointing::after{
  display:none !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .question-caption{
  margin:0 0 10px !important;
  font-size:13px !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .questions{
  max-height:290px !important;
}

#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .qbtn{
  min-height:50px !important;
}

#kal-ter-app .kal-ter-guard-riddle-card p:last-of-type{
  margin-bottom:18px !important;
}




/* 1.27.15 — room 1.0 choose-door repair */
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice{
  margin:12px 0 0 !important;
  padding:14px 16px !important;
  border:1px solid rgba(214,175,99,.26) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(8,13,19,.96),rgba(8,13,19,.88)) !important;
  box-shadow:0 16px 28px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.03) !important;
}
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice[hidden]{display:none !important;}
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice .choice-caption{
  margin:0 0 10px !important;
  color:#ead9b0 !important;
  font-size:14px !important;
  line-height:1.35 !important;
  text-align:center !important;
}
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice .choice-buttons{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
}
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice .choice-btn{
  min-height:48px !important;
  border-radius:14px !important;
  border:1px solid rgba(214,175,99,.46) !important;
  background:linear-gradient(180deg,#241a0f,#171109) !important;
  color:#f3dec0 !important;
  font-weight:800 !important;
  cursor:pointer !important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease !important;
}
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice .choice-btn:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 12px 22px rgba(0,0,0,.24),0 0 18px rgba(224,167,66,.12) !important;
}
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice .choice-btn.is-pointed{
  border-color:rgba(255,209,86,.78) !important;
  box-shadow:0 0 0 1px rgba(255,209,86,.12),0 0 20px rgba(255,195,80,.12) !important;
}
#kal-ter-app .kal-ter-guard-room .kal-ter-guard-hud .door-choice .choice-btn.is-safe-candidate{
  border-color:rgba(143,213,157,.58) !important;
}



/* 1.27.16 — guard victory door opening and room light */
.kal-ter-guard-door.left .leaf{
  transform-origin:left center;
}
.kal-ter-guard-door.right .leaf{
  transform-origin:right center;
}
.kal-ter-guard-door.left.open .leaf{
  transform:perspective(900px) rotateY(-83deg);
}
.kal-ter-guard-door.right.open .leaf{
  transform:perspective(900px) rotateY(83deg);
}
.kal-ter-guard-door.left.trap-open .leaf{
  transform:perspective(900px) rotateY(-14deg)!important;
}
.kal-ter-guard-door.right.trap-open .leaf{
  transform:perspective(900px) rotateY(14deg)!important;
}
.kal-ter-guard-room.is-solved::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:4;
  background:
    radial-gradient(circle at 50% 18%,rgba(255,225,166,.18),transparent 34%),
    radial-gradient(circle at 50% 65%,rgba(255,200,90,.08),transparent 45%);
  opacity:1;
}
.kal-ter-guard-room.is-solved .kal-ter-guard-success{
  opacity:1;
  background:
    radial-gradient(circle at 50% 48%,rgba(255,226,164,.18),transparent 38%),
    linear-gradient(180deg,rgba(255,219,150,.08),rgba(255,190,87,.02) 55%,rgba(255,190,87,0));
}
.kal-ter-guard-room.is-solved .kal-ter-guard-door.open{
  filter:drop-shadow(0 0 32px rgba(255,215,126,.46));
}
.kal-ter-guard-room.is-solved .kal-ter-guard-door.open::before{
  content:"";
  position:absolute;
  z-index:-2;
  left:50%;
  top:18px;
  width:230px;
  height:365px;
  transform:translateX(-50%);
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,240,198,.86),rgba(255,211,120,.36) 33%,rgba(255,183,72,.14) 62%,rgba(255,183,72,0) 100%);
  clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);
  filter:blur(5px);
  animation:kal_ter_guard_beam 1.5s ease-in-out infinite alternate;
}
.kal-ter-guard-room.is-solved[data-focus-door="a"] .kal-ter-guard-stage::after,
.kal-ter-guard-room.is-solved[data-focus-door="b"] .kal-ter-guard-stage::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:3;
  opacity:.9;
}
.kal-ter-guard-room.is-solved[data-focus-door="a"] .kal-ter-guard-stage::after{
  background:radial-gradient(circle at 31% 41%,rgba(255,231,177,.28),rgba(255,195,84,.10) 22%,transparent 44%);
}
.kal-ter-guard-room.is-solved[data-focus-door="b"] .kal-ter-guard-stage::after{
  background:radial-gradient(circle at 69% 41%,rgba(255,231,177,.28),rgba(255,195,84,.10) 22%,transparent 44%);
}
@keyframes kal_ter_guard_beam{
  from{opacity:.82;filter:blur(4px) saturate(1)}
  to{opacity:1;filter:blur(7px) saturate(1.08)}
}


/* 1.27.17 — remove browser focus outline from lobby door selection */
.kal-ter-room-door,
.kal-ter-room-door:focus,
.kal-ter-room-door:focus-visible,
.kal-ter-room-door:active{
  outline:none !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent;
}
.kal-ter-room-door::-moz-focus-inner{
  border:0 !important;
}


/* 1.27.18 — definitive lobby hitboxes and door click repair */
#kal-ter-app .kal-ter-lobby-stage{
  position:relative !important;
}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-door-hall{
  position:absolute !important;
  z-index:120 !important;
  inset:0 !important;
  display:block !important;
  padding:0 !important;
  margin:0 !important;
  width:100% !important;
  height:100% !important;
  transform:none !important;
  animation:none !important;
  pointer-events:none !important;
}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door{
  position:absolute !important;
  z-index:121 !important;
  top:27.0% !important;
  width:17.8% !important;
  height:62.5% !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:24px !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  filter:none !important;
  transform:none !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  -webkit-tap-highlight-color:transparent !important;
}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:nth-child(1){left:18.1% !important; right:auto !important;}
#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:nth-child(2){left:40.2% !important; right:auto !important;}
#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:nth-child(3){left:61.7% !important; right:auto !important;}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door::before{
  content:"" !important;
  position:absolute !important;
  inset:2% 7% 27% !important;
  height:auto !important;
  border:0 !important;
  border-radius:48% 48% 15px 15px !important;
  background:radial-gradient(ellipse at center,rgba(244,194,105,.07),rgba(244,194,105,0) 70%) !important;
  box-shadow:none !important;
  opacity:0 !important;
  pointer-events:none !important;
  transform:none !important;
  transition:opacity .18s ease,filter .18s ease !important;
}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  height:29% !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  pointer-events:none !important;
}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:hover,
#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:focus,
#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:focus-visible,
#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:active{
  outline:0 !important;
  box-shadow:none !important;
  transform:none !important;
  filter:none !important;
}

#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:hover::before,
#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door:focus-visible::before,
#kal-ter-app .kal-ter-lobby-stage .kal-ter-room-door.opening::before{
  opacity:1 !important;
  filter:drop-shadow(0 0 22px rgba(236,183,88,.30)) !important;
}

#kal-ter-app .kal-ter-lobby-stage.is-entering .kal-ter-door-hall{
  transform:none !important;
  animation:none !important;
}

#kal-ter-app .kal-ter-lobby-stage.is-entering .kal-ter-room-door.opening{
  transform:none !important;
}


