.hill-section{padding-bottom:0}
.hill-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:36px}
.hill-heading h2{font-size:clamp(40px,4.6vw,66px);line-height:1.05}
.hill-heading>p{font-size:14px;color:var(--muted);margin-bottom:5px;flex-shrink:0}
.hill-stage{position:relative;width:100%;aspect-ratio:2.25/1;max-height:480px;isolation:isolate;overflow:hidden;border:1px solid var(--line);background:#eaece0}
.hill-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hill-scene-label{position:absolute;top:7%;left:3.5%;font-size:9px;letter-spacing:.16em;line-height:1.8;color:#5e6a5e;pointer-events:none}
.hill-reward{position:absolute;top:7%;right:3.5%;padding:10px 15px;background:var(--lime);font-family:var(--serif);font-style:italic;font-size:22px;opacity:0;transform:translateY(-8px);transition:opacity .3s,transform .3s;pointer-events:none}
.at-summit .hill-reward{opacity:1;transform:translateY(0)}
.cable-car{position:absolute;left:26.96%;top:72.64%;width:clamp(115px,15.5vw,185px);aspect-ratio:180/140;transform:translate(-50%,-94%) rotate(var(--hill-angle,-20deg));transform-origin:50% 94%;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;outline:none}
.cable-car>svg{width:100%;height:100%;display:block;overflow:visible;pointer-events:none;filter:drop-shadow(0 4px 2px #253c3320)}
.cable-car:focus-visible{outline:3px dashed var(--rust);outline-offset:7px;border-radius:8px}
.cable-car.is-dragging{cursor:grabbing;z-index:2}
.car-drag-hint{display:block;position:absolute;top:105%;left:50%;transform:translateX(-50%);background:var(--paper);border:1px solid var(--ink);padding:7px 10px;font-size:9px;letter-spacing:.12em;white-space:nowrap;pointer-events:none;transition:opacity .2s}
.has-ridden .car-drag-hint{opacity:0}
.tram-wheel-spokes{transform-box:fill-box;transform-origin:center;transform:rotate(var(--wheel-angle,0deg))}
.tram-passengers{transform-origin:90px 78px;transform:rotate(var(--passenger-lean,0deg));transition:transform .15s}
.ringing .tram-bell{transform-origin:91px 10px;animation:tram-ding .45s ease-in-out 2}
@keyframes tram-ding{0%,100%{transform:rotate(0)}25%{transform:rotate(-20deg)}75%{transform:rotate(20deg)}}
.hill-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:19px}
.hill-controls>p{font-size:12px;color:var(--muted);line-height:1.7}
.hill-controls>p span{display:block;font-size:11px}
.hill-buttons{display:flex;gap:8px;flex-shrink:0}
.hill-buttons button{min-height:44px;padding:10px 14px;display:flex;align-items:center;justify-content:center;gap:9px;background:transparent;border:1px solid var(--line);color:var(--ink);font-size:11px;transition:background .2s}
.hill-buttons button:hover{background:var(--lime);border-color:var(--ink)}
.hill-buttons #hill-bell{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.hill-buttons #hill-bell:hover{background:#3e5649}
.hill-buttons svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hill-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:19px 0 25px;margin-top:17px}
.hill-caption p{font-family:var(--serif);font-style:italic;font-size:20px;min-height:27px}
.hill-caption>span{font-size:8px;letter-spacing:.09em;color:var(--muted);text-align:right;line-height:1.6}
.hill-no-js{margin-top:15px;font-size:13px}
@media(max-width:359px){.hill-stage .cable-car{width:96px}}
@media(max-width:850px){.hill-heading{align-items:flex-start;flex-direction:column;gap:18px}.hill-heading h2{font-size:50px}.hill-heading>p br{display:none}.hill-controls{align-items:flex-start}.hill-buttons{gap:5px}.hill-buttons button{padding-inline:10px}.hill-caption{align-items:flex-start}.hill-caption>span{max-width:170px}.hill-scene-label{font-size:8px}.hill-reward{font-size:19px}}
@media(max-width:599px){.hill-heading{margin-bottom:25px}.hill-heading h2{font-size:clamp(36px,9.7vw,48px)}.hill-heading>p{font-size:13px}.hill-heading>p br{display:initial}.hill-stage{aspect-ratio:1/1;min-height:300px}.hill-scene-label{font-size:7px;top:6%;left:6%;letter-spacing:.1em}.cable-car{width:112px}.hill-reward{font-size:16px;top:4%;right:4%;max-width:125px;text-align:center;padding:9px}.hill-controls{flex-direction:column;gap:13px;padding-top:16px}.hill-controls>p span{display:inline}.hill-buttons{width:100%;gap:7px}.hill-buttons button{flex:1;padding-inline:8px;font-size:10px;gap:5px}.hill-buttons #hill-bell{flex:1.4}.hill-caption{flex-direction:column;gap:11px;margin-top:12px;padding-bottom:22px}.hill-caption p{font-size:19px}.hill-caption>span{text-align:left;max-width:none;font-size:7px}.car-drag-hint{font-size:8px;padding:6px 8px}}
