/* The illustration is retained from f903ab6. Depth uses real CSS 3D faces;
   the actor stays an illustrated rig so its expression and clothing survive. */
html,body {touch-action:manipulation;}
#app { --tree-yaw:-12deg; --parallax:0px; }
.game-version {
  position:absolute;bottom:5px;left:0;right:0;z-index:70;
  text-align:center;font-size:10px;line-height:16px;color:#365648;
  pointer-events:none;
}
.game-version span {background:#fffbeded;border-radius:6px;padding:2px 7px;}
/* Rapid chopping must never become a browser zoom or selection gesture. */
.controls,.control {
  touch-action:manipulation;
  -webkit-user-select:none;
  -webkit-touch-callout:none;
}
#tree { perspective:1100px; perspective-origin:50% 100%; }
.segment.solid-log {
  background:none!important;border:0;box-shadow:none;
  transform-style:preserve-3d;
  transform:rotateY(var(--tree-yaw));
  transition:transform .16s ease-out;
}
.log-front,.log-back,.log-side,.log-cap {position:absolute;pointer-events:none;backface-visibility:hidden;}
.log-front {inset:0;transform:translateZ(0px);transform-style:preserve-3d;}
.log-back {inset:0;transform:translateZ(-32px) rotateY(180deg);border:3px solid #795034;}
.log-side {width:32px;height:74px;top:0;border:1px solid #68472f;}
.log-side.side-right {left:112px;transform-origin:0 50%;transform:rotateY(90deg);}
.log-side.side-left {right:112px;transform-origin:100% 50%;transform:rotateY(-90deg);}
.log-cap {width:112px;height:32px;left:0;background:#d5ac74;border:2px solid #704b33;}
.log-cap.cap-top {top:0;transform-origin:50% 0;transform:translateZ(-32px) rotateX(90deg);}
.log-cap.cap-bottom {bottom:0;transform-origin:50% 100%;transform:translateZ(-32px) rotateX(-90deg);}
.log-cap svg {width:100%;height:100%;display:block;}
.branch-depth {position:absolute;inset:0;transform:translateZ(-9px);filter:brightness(.7);}
.branch-depth svg {filter:none;}
.log-front>.branch {transform:translateZ(-2px)!important;transform-style:preserve-3d;}
.log-front>.burl {transform:translateZ(7px);}
.falling-log.solid-log {
  perspective:none;transform-style:preserve-3d;
  border:0;box-shadow:none;filter:none;
  transition:none;
}
.falling-log .log-front>.branch {transform:translateZ(-2px)!important;}
.falling-log .burl {mask-image:none;}
/* Original backdrop elements are grouped, not redrawn or replaced. Each
   depth plane follows the player's side at a different distance. */
.scenery .far-depth {transform:translateX(calc(var(--parallax) * .18));transition:transform .45s ease-out;}
.scenery .middle-depth {transform:translateX(calc(var(--parallax) * .48));transition:transform .4s ease-out;}
.scenery .near-depth {transform:translateX(var(--parallax));transition:transform .35s ease-out;}
#player {perspective:500px;}
.character-rig {transform-style:preserve-3d;}
.character-rig .head {translate:0 0 4px;}
.character-rig .body {translate:0 0 2px;}
.character-rig .axe {translate:0 0 12px;}
#player::before {filter:blur(1px);}
.sr {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
@media(prefers-reduced-motion:reduce) {
 .segment.solid-log,.scenery g {transition:none!important;}
 .scenery .far-depth,.scenery .middle-depth,.scenery .near-depth {transform:none;}
 .character-rig .head,.character-rig .body,.character-rig .axe {translate:none;}
}
.log-flight {filter:brightness(var(--tree-light,1));position:absolute;inset:0;pointer-events:none;z-index:11;perspective:900px;perspective-origin:50% 79%;}
/* A standing trunk is continuous; only a detached log exposes cut faces. */
#tree .log-cap {visibility:hidden;}
