/* JM ECOSTATE Personality System v2.0
   Pass 002: each public House should look and behave like what it is. */
:root{--eco2-speed:12s;--eco2-soft:rgba(255,255,255,.06)}
body[data-ecostate-personality="v2"] .hero{position:relative}
.eco2-scene{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit;pointer-events:none;isolation:isolate}body[data-ecostate-personality="v2"] .hero>.eco2-scene{position:absolute;inset:0;z-index:0}
.eco2-scene>*{position:absolute}
.eco2-scene+.hero-copy,.eco2-scene~*{position:relative;z-index:1}
.eco2-label{font:800 .62rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--eco-accent) 86%,white);opacity:.72}
.eco2-corner{right:1rem;top:1rem;border:1px solid color-mix(in srgb,var(--eco-accent-2) 30%,transparent);border-radius:999px;padding:.5rem .65rem;background:rgba(0,0,0,.18);backdrop-filter:blur(10px)}
.eco2-grid{inset:45% -10% -35%;background-image:linear-gradient(color-mix(in srgb,var(--eco-accent-2) 12%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--eco-accent-2) 12%,transparent) 1px,transparent 1px);background-size:42px 42px;transform:perspective(700px) rotateX(68deg);transform-origin:center top;mask-image:linear-gradient(to bottom,transparent,#000 20%,transparent 92%);opacity:.55}

/* FRONT DOOR — route field / orbit architecture */
body[data-ecostate-surface="front-door"] .eco2-orbit{left:67%;top:49%;width:min(44vw,520px);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(114,236,255,.16);border-radius:50%;box-shadow:0 0 0 52px rgba(255,209,102,.025),0 0 0 104px rgba(182,156,255,.018)}
body[data-ecostate-surface="front-door"] .eco2-orbit::before,body[data-ecostate-surface="front-door"] .eco2-orbit::after{content:"";position:absolute;inset:13%;border:1px dashed rgba(255,209,102,.24);border-radius:50%}
body[data-ecostate-surface="front-door"] .eco2-orbit::after{inset:30%;border-style:solid;border-color:rgba(114,236,255,.2);box-shadow:0 0 42px rgba(114,236,255,.08)}
body[data-ecostate-surface="front-door"] .eco2-routewords{right:1.2rem;bottom:1.1rem;display:flex;gap:.42rem;flex-wrap:wrap;justify-content:flex-end;max-width:42%}
body[data-ecostate-surface="front-door"] .eco2-routewords span{border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:.45rem .58rem;background:rgba(6,9,16,.45);font:800 .55rem ui-monospace,monospace;letter-spacing:.1em;color:#cbd8e8}

/* GAMES — arena / HUD energy */
body[data-ecostate-surface="games"] .eco2-scene{background:radial-gradient(circle at 82% 30%,rgba(255,209,102,.08),transparent 25rem)}
body[data-ecostate-surface="games"] .eco2-scan{left:0;right:0;height:1px;top:16%;background:linear-gradient(90deg,transparent,var(--eco-accent-2),transparent);box-shadow:0 0 22px var(--eco-accent-2);opacity:.45}
body[data-ecostate-surface="games"] .eco2-reticle{right:7%;top:18%;width:170px;height:170px;border:1px solid rgba(255,209,102,.28);border-radius:50%}
body[data-ecostate-surface="games"] .eco2-reticle::before,body[data-ecostate-surface="games"] .eco2-reticle::after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,209,102,.38);transform:translate(-50%,-50%)}
body[data-ecostate-surface="games"] .eco2-reticle::before{width:1px;height:210px}body[data-ecostate-surface="games"] .eco2-reticle::after{width:210px;height:1px}
body[data-ecostate-surface="games"] .eco2-hud{right:1rem;bottom:1rem;display:grid;gap:.4rem;width:min(250px,42%)}
body[data-ecostate-surface="games"] .eco2-hud span{height:5px;border-radius:999px;background:linear-gradient(90deg,var(--eco-accent-2),var(--eco-accent));opacity:.5}
body[data-ecostate-surface="games"] .room{position:relative;overflow:hidden}
body[data-ecostate-surface="games"] .room::after{content:"PLAYABLE BODY";position:absolute;right:-1.9rem;top:1rem;transform:rotate(35deg);font:800 .48rem ui-monospace,monospace;letter-spacing:.1em;color:rgba(255,209,102,.34)}

/* THEORY — editorial constellation / annotation field */
body[data-ecostate-surface="theory"] .eco2-scene{background:radial-gradient(circle at 83% 22%,rgba(182,156,255,.09),transparent 24rem)}
body[data-ecostate-surface="theory"] .eco2-constellation{right:3%;top:8%;width:min(42vw,430px);height:78%}
body[data-ecostate-surface="theory"] .eco2-constellation i{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--eco-accent-2);box-shadow:0 0 16px var(--eco-accent-2);opacity:.62}
body[data-ecostate-surface="theory"] .eco2-constellation i::after{content:"";position:absolute;left:5px;top:3px;width:var(--line-w,90px);height:1px;background:linear-gradient(90deg,rgba(114,236,255,.32),transparent);transform:rotate(var(--line-r,0deg));transform-origin:left}
body[data-ecostate-surface="theory"] .eco2-margin-note{right:1rem;bottom:1rem;border-left:2px solid var(--eco-accent);padding:.5rem .65rem;max-width:15rem;background:rgba(6,9,16,.32);color:#c7d4df;font:700 .62rem/1.45 ui-monospace,monospace}
body[data-ecostate-surface="theory"] .reader{scrollbar-color:color-mix(in srgb,var(--eco-accent) 55%,transparent) transparent}
body[data-ecostate-surface="theory"] .topstats{min-width:0;max-width:calc(100vw - 350px);overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}body[data-ecostate-surface="theory"] .topstats::-webkit-scrollbar{display:none}


/* LYRICS — stage / waveform / performance light */
body[data-ecostate-surface="lyrics"] .eco2-scene{background:radial-gradient(ellipse at 25% -10%,rgba(255,117,173,.18),transparent 42%),radial-gradient(ellipse at 80% 0,rgba(255,209,102,.08),transparent 34%)}
body[data-ecostate-surface="lyrics"] .eco2-stagebeam{top:-28%;width:34%;height:120%;filter:blur(4px);opacity:.22;transform-origin:top}
body[data-ecostate-surface="lyrics"] .eco2-stagebeam.a{left:8%;background:linear-gradient(165deg,rgba(255,117,173,.65),transparent 58%);transform:rotate(-8deg)}
body[data-ecostate-surface="lyrics"] .eco2-stagebeam.b{right:4%;background:linear-gradient(195deg,rgba(169,141,255,.55),transparent 60%);transform:rotate(8deg)}
body[data-ecostate-surface="lyrics"] .eco2-wave{left:1rem;right:1rem;bottom:1rem;height:54px;display:flex;align-items:center;gap:4px;opacity:.62}
body[data-ecostate-surface="lyrics"] .eco2-wave i{position:static;flex:1;max-width:8px;height:var(--h,30%);border-radius:999px;background:linear-gradient(to top,var(--eco-accent),var(--eco-accent-2));box-shadow:0 0 10px color-mix(in srgb,var(--eco-accent) 25%,transparent)}
body[data-ecostate-surface="lyrics"] details[open]{border-color:color-mix(in srgb,var(--eco-accent) 55%,transparent)!important;box-shadow:0 18px 50px rgba(0,0,0,.3),inset 3px 0 0 var(--eco-accent)}
body[data-ecostate-surface="lyrics"] .works li{position:relative;padding-left:1.1rem!important}
body[data-ecostate-surface="lyrics"] .works li::before{content:"";position:absolute;left:.35rem;top:.9rem;width:4px;height:4px;border-radius:50%;background:var(--eco-accent);box-shadow:0 0 10px var(--eco-accent)}

/* APPS — product matrix / live toolbench */
body[data-ecostate-surface="apps"] .eco2-scene{background:radial-gradient(circle at 88% 18%,rgba(127,240,166,.1),transparent 24rem)}
body[data-ecostate-surface="apps"] .eco2-appmatrix{right:3%;top:12%;display:grid;grid-template-columns:repeat(4,34px);gap:9px;transform:rotate(7deg);opacity:.44}
body[data-ecostate-surface="apps"] .eco2-appmatrix i{position:static;width:34px;height:34px;border:1px solid rgba(127,240,166,.28);border-radius:10px;background:linear-gradient(145deg,rgba(127,240,166,.12),rgba(114,236,255,.03));box-shadow:inset 0 0 18px rgba(127,240,166,.03)}
body[data-ecostate-surface="apps"] .card{position:relative;overflow:hidden}
body[data-ecostate-surface="apps"] .card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--eco-accent),var(--eco-accent-2));opacity:.45}
body[data-ecostate-surface="apps"] .card:hover::before{opacity:1}
body[data-ecostate-surface="apps"] .door{box-shadow:0 9px 24px rgba(0,0,0,.22)}

/* Cross-House contact signals */
body[data-ecostate-personality="v2"][data-eco-contact="true"] .eco2-scene{filter:saturate(1.14) brightness(1.04)}
@media(prefers-reduced-motion:no-preference){
  body[data-ecostate-surface="front-door"] .eco2-orbit::before{animation:eco2spin 24s linear infinite}
  body[data-ecostate-surface="front-door"] .eco2-orbit::after{animation:eco2spinBack 18s linear infinite}
  body[data-ecostate-surface="games"] .eco2-scan{animation:eco2scan 5.8s ease-in-out infinite}
  body[data-ecostate-surface="lyrics"] .eco2-wave i{animation:eco2wave 1.8s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
  body[data-ecostate-surface="apps"] .eco2-appmatrix i{animation:eco2app 5s ease-in-out infinite;animation-delay:var(--d,0s)}
}
@keyframes eco2spin{to{transform:rotate(360deg)}}@keyframes eco2spinBack{to{transform:rotate(-360deg)}}@keyframes eco2scan{0%,100%{top:14%;opacity:.12}50%{top:82%;opacity:.55}}@keyframes eco2wave{from{transform:scaleY(.55);opacity:.35}to{transform:scaleY(1.18);opacity:.78}}@keyframes eco2app{0%,100%{transform:translateY(0);opacity:.3}50%{transform:translateY(-5px);opacity:.66}}
@media(max-width:760px){
  .eco2-corner{display:none}
  body[data-ecostate-surface="front-door"] .eco2-orbit{left:78%;top:52%;width:78vw;opacity:.5}
  body[data-ecostate-surface="front-door"] .eco2-routewords{max-width:78%;opacity:.52}
  body[data-ecostate-surface="games"] .eco2-reticle{right:-60px;top:12%;opacity:.48}
  body[data-ecostate-surface="theory"] .eco2-constellation{right:-18%;width:82vw;opacity:.45}
  body[data-ecostate-surface="lyrics"] .eco2-wave{opacity:.42}
  body[data-ecostate-surface="apps"] .eco2-appmatrix{right:-2%;top:8%;opacity:.3}
}
@media(prefers-reduced-motion:reduce){.eco2-scene *{animation:none!important}.eco2-scene{filter:none!important}}

/* CREATOR / AUTHUSER — signature route / authored recurrence */
body[data-ecostate-surface="creator"] .eco2-scene{background:radial-gradient(circle at 78% 26%,rgba(255,209,102,.09),transparent 24rem)}
body[data-ecostate-surface="creator"] .eco2-signature{right:3%;top:13%;width:min(42vw,440px);height:68%}
body[data-ecostate-surface="creator"] .eco2-signature::before{content:"JM";position:absolute;right:2%;top:5%;font:1000 clamp(5rem,12vw,10rem)/.8 system-ui,sans-serif;letter-spacing:-.09em;color:rgba(255,209,102,.055)}
body[data-ecostate-surface="creator"] .eco2-signature i{position:absolute;left:0;width:var(--w,70%);height:1px;background:linear-gradient(90deg,transparent,var(--eco-accent),var(--eco-accent-2),transparent);top:var(--y,50%);transform:rotate(var(--r,0deg));opacity:.45}
body[data-ecostate-surface="creator"] .route li{position:relative;overflow:hidden}
body[data-ecostate-surface="creator"] .route li::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:linear-gradient(90deg,var(--eco-accent-2),transparent);opacity:.3}

/* WORK / MONEY MENU — governed offer console */
body[data-ecostate-surface="work"] .eco2-scene{background:radial-gradient(circle at 84% 22%,rgba(127,240,166,.09),transparent 24rem)}
body[data-ecostate-surface="work"] .eco2-ledger{right:2.5%;top:12%;width:min(42vw,420px);display:grid;gap:8px;opacity:.5}
body[data-ecostate-surface="work"] .eco2-ledger i{position:static;height:11px;border-radius:999px;border:1px solid rgba(127,240,166,.2);background:linear-gradient(90deg,rgba(127,240,166,.18) var(--p,55%),transparent var(--p,55%))}
body[data-ecostate-surface="work"] :is(.offer,.card){position:relative;overflow:hidden}
body[data-ecostate-surface="work"] :is(.offer,.card)::after{content:"GOVERNED ROUTE";position:absolute;right:.8rem;bottom:.55rem;font:800 .46rem ui-monospace,monospace;letter-spacing:.12em;color:rgba(127,240,166,.3)}

/* NAVIGATOR — route browser / stringline */
body[data-ecostate-surface="navigator"] .eco2-scene{background:radial-gradient(circle at 80% 20%,rgba(114,236,255,.12),transparent 26rem)}
body[data-ecostate-surface="navigator"] .eco2-stringline{left:4%;right:4%;top:48%;height:1px;background:linear-gradient(90deg,transparent,var(--eco-accent),var(--eco-accent-2),var(--eco-accent-3),transparent);box-shadow:0 0 20px rgba(114,236,255,.16)}
body[data-ecostate-surface="navigator"] .eco2-stringline i{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:#071019;border:2px solid var(--eco-accent-2);transform:translate(-50%,-50%);left:var(--x,50%);box-shadow:0 0 16px rgba(114,236,255,.3)}
body[data-ecostate-surface="navigator"] :is(.card,.crown){position:relative;overflow:hidden}
body[data-ecostate-surface="navigator"] .tabs{backdrop-filter:blur(18px)}

/* RECOVERY — forensic scan / recovered route */
body[data-ecostate-surface="recovery"] .eco2-scene{background:radial-gradient(circle at 84% 18%,rgba(255,184,107,.12),transparent 24rem)}
body[data-ecostate-surface="recovery"] .eco2-scanbox{right:4%;top:14%;width:min(38vw,380px);height:62%;border:1px dashed rgba(255,184,107,.26);border-radius:22px;opacity:.55}
body[data-ecostate-surface="recovery"] .eco2-scanbox::before{content:"RECOVER BEFORE REBUILD";position:absolute;left:1rem;top:1rem;font:800 .55rem ui-monospace,monospace;letter-spacing:.15em;color:rgba(255,184,107,.7)}
body[data-ecostate-surface="recovery"] .eco2-scanbox::after{content:"";position:absolute;left:8%;right:8%;height:1px;top:20%;background:linear-gradient(90deg,transparent,var(--eco-accent),transparent);box-shadow:0 0 15px var(--eco-accent)}
body[data-ecostate-surface="recovery"] .item{position:relative;overflow:hidden}
body[data-ecostate-surface="recovery"] .item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--eco-accent);opacity:.35}

/* RECENT — temporal contact / continuity pulse */
body[data-ecostate-surface="recent"] .eco2-scene{background:radial-gradient(circle at 80% 20%,rgba(182,156,255,.1),transparent 24rem)}
body[data-ecostate-surface="recent"] .eco2-timefield{right:3%;top:15%;width:min(38vw,360px);aspect-ratio:1;border:1px solid rgba(182,156,255,.19);border-radius:50%;opacity:.55}
body[data-ecostate-surface="recent"] .eco2-timefield::before,body[data-ecostate-surface="recent"] .eco2-timefield::after{content:"";position:absolute;inset:18%;border:1px dashed rgba(114,236,255,.2);border-radius:50%}
body[data-ecostate-surface="recent"] .eco2-timefield::after{inset:38%;border-style:solid;border-color:rgba(127,240,166,.23)}
body[data-ecostate-surface="recent"] .card{position:relative;overflow:hidden}
body[data-ecostate-surface="recent"] .card::after{content:"CONTINUITY";position:absolute;right:.8rem;top:.65rem;font:800 .46rem ui-monospace,monospace;letter-spacing:.12em;color:rgba(182,156,255,.32)}
@media(prefers-reduced-motion:no-preference){
  body[data-ecostate-surface="creator"] .eco2-signature i{animation:eco2signature 5.8s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
  body[data-ecostate-surface="work"] .eco2-ledger i{animation:eco2ledger 3.8s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
  body[data-ecostate-surface="navigator"] .eco2-stringline i{animation:eco2node 2.8s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
  body[data-ecostate-surface="recovery"] .eco2-scanbox::after{animation:eco2recover 4.6s ease-in-out infinite}
  body[data-ecostate-surface="recent"] .eco2-timefield::before{animation:eco2spin 28s linear infinite}
  body[data-ecostate-surface="recent"] .eco2-timefield::after{animation:eco2spinBack 18s linear infinite}
}
@keyframes eco2signature{to{transform:translateX(10px) rotate(var(--r,0deg));opacity:.75}}@keyframes eco2ledger{to{filter:brightness(1.5);transform:translateX(5px)}}@keyframes eco2node{to{box-shadow:0 0 24px var(--eco-accent-2);transform:translate(-50%,-50%) scale(1.22)}}@keyframes eco2recover{0%,100%{top:18%;opacity:.2}50%{top:82%;opacity:.8}}
@media(max-width:760px){
  body[data-ecostate-surface="creator"] .eco2-signature{right:-10%;width:76vw;opacity:.45}
  body[data-ecostate-surface="work"] .eco2-ledger{right:-6%;width:66vw;opacity:.32}
  body[data-ecostate-surface="navigator"] .eco2-stringline{opacity:.45}
  body[data-ecostate-surface="recovery"] .eco2-scanbox{right:-16%;width:72vw;opacity:.32}
  body[data-ecostate-surface="recent"] .eco2-timefield{right:-14%;width:70vw;opacity:.32}
}
