*{box-sizing:border-box} :root{font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif;color:#3d3026;background:#f4eee2;font-synthesis:none} body{margin:0} button,a{-webkit-tap-highlight-color:transparent} button{font:inherit;cursor:pointer} button:focus-visible,a:focus-visible{outline:3px solid #bd4e2d;outline-offset:3px} [hidden]{display:none!important} .shell{max-width:1400px;margin:auto;padding:30px 42px 18px} header{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:750;color:#93654a;margin:0 0 8px} h1{font-family:Georgia,serif;font-weight:400;font-size:58px;letter-spacing:-2px;margin:0;line-height:1}h1 span{display:inline-block;font-family:inherit;font-size:25px;font-style:italic;letter-spacing:-.5px;margin-left:18px;color:#98775e}.badge{font-size:11px;letter-spacing:2px;line-height:1.8;text-align:right}.badge small{font-size:12px;letter-spacing:0;color:#8d7563}.stage-wrap{border:1px solid #d0bda9;border-radius:16px;overflow:hidden;background:#fff5e4;box-shadow:0 16px 40px #63442512}.hud{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;border-bottom:1px solid #dac7ad;background:#fff9ed;font-size:11px;letter-spacing:.5px}.hud strong{font-size:13px;margin:0 8px}.hud button{background:transparent;border:1px solid #d0bda9;border-radius:7px;padding:7px 10px;color:#584334;margin-left:5px;font-size:11px}.stage{height:clamp(380px,54vh,640px);position:relative;background:#ffefda}#root,.app-root{height:100%;width:100%;position:relative}.game-canvas{display:block;width:100%;height:100%;touch-action:none}#menu-panel{position:absolute;top:50%;left:24px;transform:translateY(-50%);width:310px;max-height:90%;overflow:auto;padding:24px;background:#fff9efee;backdrop-filter:blur(12px);border:1px solid #cbb598;border-radius:14px;box-shadow:0 12px 50px #65452115}#menu-panel h2{font:normal 30px Georgia,serif;margin:10px 0 18px}#menu-panel .eyebrow{font-size:8px;letter-spacing:1.5px}#menu-panel p{font-size:12px;line-height:1.5}.menu-item{display:block;text-align:left;width:100%;border:0;border-bottom:1px solid #d8c9b8;padding:11px 13px;background:transparent;color:#57402e;border-radius:6px;font-size:13px}.menu-item:hover,.menu-item.selected{background:#a4482c;color:white}.menu-item+.menu-item{margin-top:3px}.fieldnotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:26px 0 20px}.fieldnotes>div{position:relative;padding-left:42px}.step{position:absolute;left:0;top:0;color:#ae7658;font:italic 24px Georgia,serif}h3{font-family:Georgia,serif;font-size:18px;font-weight:400;margin:0 0 8px}.fieldnotes p{font-size:12px;line-height:1.7;color:#8c7664;margin:0}footer{border-top:1px solid #d8cbbc;padding-top:15px;display:flex;justify-content:space-between;font-size:10px;color:#8d7765}footer a{color:inherit}.error-view{white-space:pre-wrap;color:#9b2c17;background:#fff;padding:30px}
.touch-controls {
  display: none;
}

@media (pointer: coarse) {
  .touch-controls {
    display: block;
  }
}

.touch-controls button {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  padding: 0;
  border: 2px solid rgba(15, 14, 9, 0.4);
  border-radius: 32px;
  color: rgba(15, 14, 9, 0.75);
  background: rgba(255, 255, 255, 0.45);
  font: inherit;
  font-weight: bold;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}

.touch-controls .pressed {
  background: rgba(225, 194, 110, 0.75);
}

.touch-left::before,
.touch-right::before,
.touch-up::before,
.touch-down::before {
  content: "";
  width: 22px;
  height: 22px;
  background: currentColor;
  clip-path: polygon(50% 10%, 100% 90%, 0 90%);
}

.touch-left::before {
  transform: rotate(-90deg);
}

.touch-right::before {
  transform: rotate(90deg);
}

.touch-down::before {
  transform: rotate(180deg);
}

.touch-left {
  left: calc(16px + env(safe-area-inset-left));
  bottom: calc(24px + env(safe-area-inset-bottom));
}

.touch-right {
  left: calc(96px + env(safe-area-inset-left));
  bottom: calc(24px + env(safe-area-inset-bottom));
}

.touch-down {
  right: calc(16px + env(safe-area-inset-right));
  bottom: calc(24px + env(safe-area-inset-bottom));
}

.touch-up {
  right: calc(16px + env(safe-area-inset-right));
  bottom: calc(104px + env(safe-area-inset-bottom));
}

.touch-controls .touch-ok {
  right: calc(96px + env(safe-area-inset-right));
  bottom: calc(24px + env(safe-area-inset-bottom));
  display: none;
}

.touch-controls.in-menu .touch-ok {
  display: flex;
}

.touch-ok::before {
  content: "OK";
}

.touch-controls .touch-back {
  top: calc(16px + env(safe-area-inset-top));
  right: calc(16px + env(safe-area-inset-right));
  width: auto;
  height: 40px;
  padding: 0 16px;
  display: none;
}

.touch-controls.has-back .touch-back {
  display: flex;
}

.touch-back::before {
  content: "Menu";
}

.in-menu .touch-back::before {
  content: "Back";
}

.touch-controls{display:block;position:absolute;inset:0;pointer-events:none}.touch-controls button{position:absolute;pointer-events:auto;width:48px;height:48px;border-radius:12px;border:1px solid #aa8b65;color:#6b4731;background:#fff9efda;box-shadow:0 3px 10px #69452716}.touch-controls .pressed{background:#c27750;color:#fff}.touch-left{left:18px;bottom:18px}.touch-right{left:76px;bottom:18px}.touch-down{right:18px;bottom:18px}.touch-up{right:18px;bottom:76px}.touch-controls .touch-ok{right:76px;bottom:18px}.touch-controls .touch-back{top:12px;right:12px;height:32px;font-size:11px} .touch-left::before,.touch-right::before,.touch-up::before,.touch-down::before{width:15px;height:15px}
@media(max-width:650px){.shell{padding:18px 12px 20px}header{margin-bottom:18px}h1{font-size:42px}h1 span{font-size:18px;display:block;margin:5px 0 0}.eyebrow{font-size:7px;letter-spacing:1.5px}.badge{font-size:8px;letter-spacing:1px}.badge small{font-size:10px}.hud{padding:9px 10px;flex-wrap:wrap;font-size:9px;gap:6px}.hud #ride-status{order:3;width:100%;font-size:10px}.hud strong{font-size:11px;margin:0 2px}.hud button{padding:6px;font-size:10px}.stage{height:440px}#menu-panel{left:12px;top:14px;transform:none;width:calc(100% - 80px);max-height:335px;padding:16px}#menu-panel h2{font-size:25px}.menu-item{padding:9px;font-size:12px}.fieldnotes{grid-template-columns:1fr;gap:17px;margin:22px 8px}.fieldnotes br{display:none}.fieldnotes p{font-size:11px}.fieldnotes h3{font-size:17px;margin-bottom:4px}.fieldnotes>div{padding-left:36px}footer{display:block;font-size:9px;line-height:1.9}footer span{display:block}}
