/* Decorative contour field; SVG paths are static and only their layers move. */
.terrain{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 76% 62%,#173732 0%,#101e21 36%,#0c1315 72%)}
.terrain-field{position:absolute;inset:0;transform:translate(var(--terrain-x,0px),var(--terrain-y,0px));transition:transform 900ms cubic-bezier(.22,1,.36,1)}
.terrain svg{position:absolute;width:115%;height:115%;right:-15%;bottom:-15%;opacity:.8;overflow:visible}
.terrain-land{transform-origin:70% 65%;animation:terrain-drift 26s ease-in-out infinite alternate}
.terrain-contour{fill:none;stroke:#71bea6;stroke-width:.8;vector-effect:non-scaling-stroke}
.terrain-cross{fill:none;stroke:#659e91;stroke-width:.55;opacity:.2;vector-effect:non-scaling-stroke}
.terrain-scan{fill:none;stroke:#a3e6cf;stroke-width:1.3;stroke-dasharray:80 1400;animation:terrain-scan 24s linear infinite;opacity:.65}
.terrain::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c1315 0%,#0c1315e8 22%,#0c131550 48%,transparent 72%),linear-gradient(0deg,#0c1315 0%,transparent 25%)}
.terrain-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:6px;color:var(--t2);background:#101b1ed9;font:inherit;font-size:12px;cursor:pointer;z-index:2}
.terrain-toggle::before{content:"Ⅱ";color:var(--brand);font-size:12px}.terrain-toggle[aria-pressed="true"]::before{content:"▷"}
.terrain-toggle:hover{border-color:var(--brand-line);color:var(--t1)}
.terrain-paused .terrain *, .terrain-idle .terrain *{animation-play-state:paused!important}
.terrain-paused .terrain-field,.terrain-idle .terrain-field{transition:none;transform:none}
@keyframes terrain-drift{from{transform:translate(-5px,4px) scale(1)}to{transform:translate(5px,-4px) scale(1.025)}}
@keyframes terrain-scan{to{stroke-dashoffset:-1480}}
@media(max-width:700px){.terrain svg{width:170%;right:-56%;height:85%;bottom:-10%;opacity:.55}.terrain-cross,.terrain-scan{display:none}.terrain-land{animation:none}.terrain::after{background:linear-gradient(180deg,#0c1315b0,transparent 60%,#0c1315)}.terrain-field{transform:none;transition:none}}
@media(prefers-reduced-motion:reduce){.terrain *, .terrain-field{animation:none!important;transition:none!important;transform:none!important}}
