/* JM ECOSTATE GripCube v5 — additive front-door navigation organ */
.eco-gripcube{--gc-accent:#3ce0cf;--gc-face:#b879ff;margin:clamp(14px,2.5vw,28px) auto;position:relative}
.eco-gripcube *{box-sizing:border-box}
.gc-shell{border:1px solid var(--line,rgba(133,181,219,.22));border-radius:28px;overflow:hidden;background:linear-gradient(150deg,rgba(8,24,37,.97),rgba(4,12,20,.98));box-shadow:0 28px 90px rgba(0,0,0,.32);position:relative}
.gc-shell::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 26% 42%,color-mix(in srgb,var(--gc-accent),transparent 86%),transparent 34%),radial-gradient(circle at 78% 30%,color-mix(in srgb,var(--gc-face),transparent 91%),transparent 34%)}
.gc-head{position:relative;z-index:2;padding:18px 18px 14px;border-bottom:1px solid var(--line,rgba(133,181,219,.22));display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.gc-kicker{font-size:.68rem;letter-spacing:.18em;font-weight:900;color:var(--gc-accent);text-transform:uppercase}
.gc-head h2{margin:5px 0 4px;font-size:clamp(1.45rem,4vw,2.3rem);letter-spacing:-.045em}
.gc-head p{margin:0;color:var(--muted,#9eb0c3);max-width:68ch}
.gc-count{border:1px solid var(--line,rgba(133,181,219,.22));border-radius:15px;padding:8px 11px;background:#06131f;text-align:center;white-space:nowrap}.gc-count b{display:block;color:var(--gc-accent)}.gc-count small{font-size:.58rem;color:var(--muted,#9eb0c3);font-weight:900}
.gc-districts{position:relative;z-index:2;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:9px 12px;border-bottom:1px solid var(--line,rgba(133,181,219,.22));scroll-snap-type:x proximity}.gc-districts::-webkit-scrollbar{display:none}
.gc-district{flex:0 0 auto;min-width:102px;height:40px;border:1px solid var(--line,rgba(133,181,219,.22));border-radius:13px;background:#06131f;color:#899caf;font-weight:900;letter-spacing:.06em;font-size:.72rem;scroll-snap-align:center}.gc-district.active{color:var(--gc-accent);border-color:var(--gc-accent);background:color-mix(in srgb,var(--gc-accent),transparent 91%);box-shadow:0 0 24px color-mix(in srgb,var(--gc-accent),transparent 82%)}
.gc-body{position:relative;z-index:2;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);min-height:540px}
.gc-cube-side{padding:14px;border-right:1px solid var(--line,rgba(133,181,219,.22));display:grid;grid-template-rows:minmax(360px,1fr) auto;gap:10px}
.gc-scene{min-height:385px;display:grid;place-items:center;perspective:1050px;touch-action:none;user-select:none;position:relative;overflow:hidden;cursor:grab}.gc-scene.dragging{cursor:grabbing}
.gc-scene::before,.gc-scene::after{content:"";position:absolute;border-radius:50%;pointer-events:none}.gc-scene::before{width:min(78vw,430px);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--gc-accent),transparent 65%);box-shadow:0 0 65px color-mix(in srgb,var(--gc-accent),transparent 89%),inset 0 0 65px color-mix(in srgb,var(--gc-face),transparent 93%);animation:gcOrbit 10s linear infinite}.gc-scene::after{width:min(58vw,330px);aspect-ratio:1;border:1px dashed color-mix(in srgb,var(--gc-face),transparent 60%);animation:gcOrbit 14s linear infinite reverse}
.gc-cube{--half:108px;width:216px;height:216px;position:relative;transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(28deg);transition:transform .55s cubic-bezier(.18,.8,.18,1);z-index:3;filter:drop-shadow(0 0 25px color-mix(in srgb,var(--gc-accent),transparent 55%))}.gc-cube.direct{transition:none}
.gc-face{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:7px;text-align:center;border:2px solid currentColor;background:linear-gradient(145deg,rgba(14,43,65,.86),rgba(4,16,27,.92));box-shadow:inset 0 0 48px rgba(255,255,255,.035),0 0 28px color-mix(in srgb,currentColor,transparent 50%);backface-visibility:hidden}.gc-face b{font-size:1.65rem}.gc-face small{font-size:.73rem;color:#dcebf5}.gc-trace{transform:translateZ(var(--half));color:#b879ff}.gc-route{transform:translateX(var(--half)) rotateY(90deg);color:#ffc857}.gc-form{transform:translateX(calc(var(--half)*-1)) rotateY(-90deg);color:#58bfff}.gc-field{transform:translateZ(calc(var(--half)*-1)) rotateY(180deg);color:#3ce0cf}.gc-proof{transform:translateY(calc(var(--half)*-1)) rotateX(90deg);color:#ff78b1}.gc-use{transform:translateY(var(--half)) rotateX(-90deg);color:#ffe16a}
.gc-hint{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);z-index:5;padding:6px 9px;border:1px solid var(--line,rgba(133,181,219,.22));border-radius:999px;background:rgba(3,12,20,.75);color:var(--muted,#9eb0c3);font-size:.56rem;font-weight:900;letter-spacing:.08em;white-space:nowrap}
.gc-lenses{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.gc-lenses::-webkit-scrollbar{display:none}.gc-lens{min-width:116px;text-align:left;padding:10px;border:1px solid var(--line,rgba(133,181,219,.22));border-radius:15px;background:#06131f;scroll-snap-align:center}.gc-lens b{display:block;color:var(--face);font-size:.76rem}.gc-lens small{display:block;color:var(--muted,#9eb0c3);font-size:.63rem;margin-top:3px}.gc-lens.active{border-color:var(--face);box-shadow:0 0 22px color-mix(in srgb,var(--face),transparent 80%);transform:translateY(-2px)}
.gc-content{padding:14px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;min-width:0}
.gc-lens-copy,.gc-contact{border:1px solid var(--line,rgba(133,181,219,.22));border-radius:18px;background:#06131f;padding:13px}.gc-lens-copy span,.gc-contact span{font-size:.62rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:var(--gc-accent)}.gc-lens-copy h3,.gc-contact h3{margin:4px 0 0}.gc-lens-copy p,.gc-contact p{margin:6px 0 0;color:var(--muted,#9eb0c3)}
.gc-move{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.gc-move div{padding:8px 5px;border:1px solid var(--line,rgba(133,181,219,.22));border-radius:12px;background:#06131f;text-align:center;color:var(--muted,#9eb0c3);font-size:.58rem;font-weight:900}
.gc-grid{height:100%;max-height:330px;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-right:2px}.gc-tile{min-height:90px;text-align:left;padding:10px;border:1px solid var(--line,rgba(133,181,219,.22));border-radius:16px;background:linear-gradient(155deg,#0b1b29,#06111b);position:relative}.gc-tile b{display:block;font-size:.8rem;line-height:1.1}.gc-tile small{display:block;color:var(--muted,#9eb0c3);font-size:.62rem;margin-top:6px;line-height:1.25}.gc-tile em{position:absolute;right:8px;bottom:6px;font-style:normal;font-size:.53rem;color:var(--gc-accent);font-weight:900}.gc-tile.active{border-color:var(--gc-accent);box-shadow:0 0 22px color-mix(in srgb,var(--gc-accent),transparent 84%)}.gc-tile.hold{opacity:.66}.gc-tile.hold::after{content:"HOLD";position:absolute;top:7px;right:7px;font-size:.48rem;font-weight:950;color:#ffc857}
.gc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.gc-open,.gc-proof-link{min-height:42px;border-radius:13px;padding:0 13px;font-weight:900}.gc-open{background:var(--gc-accent);color:#041017}.gc-proof-link{background:#0a1c2b;border:1px solid var(--line,rgba(133,181,219,.22))}
.gc-enter{margin-left:8px}
@keyframes gcOrbit{to{transform:rotate(360deg)}}
html.ecostate-reduce-motion .gc-scene::before,html.ecostate-reduce-motion .gc-scene::after{animation:none}
@media(max-width:820px){.gc-body{grid-template-columns:1fr}.gc-cube-side{border-right:0;border-bottom:1px solid var(--line,rgba(133,181,219,.22))}.gc-grid{max-height:360px}}
@media(max-width:520px){.gc-head{display:block}.gc-count{display:inline-block;margin-top:10px}.gc-move{grid-template-columns:repeat(3,1fr)}.gc-grid{grid-template-columns:repeat(2,1fr)}.gc-grid .gc-tile:nth-child(9){grid-column:1/-1}.gc-cube{--half:96px;width:192px;height:192px}.gc-scene{min-height:330px}}