/* Reiiel — industries index: constellation hero + industry explorer (mode A). */

/* ---------- Hero ---------- */
.i-hero{position:relative;z-index:3;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;
  padding:calc(120px + env(safe-area-inset-top,0px)) 0 90px;
  background:radial-gradient(circle at 78% 45%,rgba(242,161,59,.13),transparent 38%),radial-gradient(circle at 100% 100%,rgba(62,95,153,.35),transparent 45%),var(--bg)}
.i-hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:radial-gradient(rgba(159,184,224,.25) 1px,transparent 1.2px);background-size:28px 28px;
  -webkit-mask:radial-gradient(circle at 70% 50%,#000,transparent 70%);mask:radial-gradient(circle at 70% 50%,#000,transparent 70%)}
.i-hero-grid{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.i-copy .k{color:var(--accent)}
.i-copy h1{font-size:clamp(2rem,4.2vw,3.4rem);line-height:1;font-weight:780;margin:18px 0 24px}
.i-copy .lede{font-size:clamp(1.05rem,1.4vw,1.22rem);color:var(--muted);max-width:520px;margin:0 0 34px;line-height:1.6}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.rotator{display:inline-grid;vertical-align:bottom;overflow:hidden;height:1.06em;line-height:1.06}
.rotator span{grid-area:1/1;transform:translateY(110%);opacity:0;transition:transform .6s var(--ease),opacity .6s;white-space:nowrap;
  background:linear-gradient(90deg,var(--accent),var(--accent-hi));-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.05em}
.rotator span.in{transform:none;opacity:1}
.rotator span.out{transform:translateY(-110%);opacity:0}
.i-scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);color:#5E6F90;font-size:.7rem;animation:nudge 2.4s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,6px)}}

/* Constellation: 12 industries orbiting the core */
.constellation{position:relative;width:min(460px,88vw);aspect-ratio:1;margin:0 auto;--r:calc(min(460px,88vw) * .425)}
.c-spin{position:absolute;inset:0;animation:cspin 80s linear infinite}
.constellation:hover .c-spin,.constellation:hover .c-in{animation-play-state:paused}
@keyframes cspin{to{transform:rotate(360deg)}}
.c-spokes{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.c-spokes circle{fill:none;stroke:rgba(159,184,224,.18);stroke-dasharray:3 6}
.c-spokes circle.inner{stroke:rgba(242,161,59,.18);stroke-dasharray:none}
.c-spokes line{stroke:rgba(242,161,59,.55);stroke-width:1.2;stroke-dasharray:6 160;stroke-dashoffset:166;animation:flowin 2.4s linear infinite;animation-delay:var(--d)}
@keyframes flowin{to{stroke-dashoffset:0}}
.c-node{position:absolute;left:50%;top:50%;width:0;height:0;transform:rotate(var(--a)) translateX(var(--r)) rotate(calc(-1*var(--a)));text-decoration:none}
.c-in{position:absolute;left:0;top:0;animation:cspin 80s linear infinite reverse}
.c-dot{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--mono);font-size:.74rem;color:#E8EEF5;background:#0F1A30;border:1px solid rgba(226,236,248,.2);
  box-shadow:0 0 0 4px rgba(7,12,24,.8);transition:background .25s,color .25s,box-shadow .25s,transform .25s var(--ease)}
.c-node:hover .c-dot,.c-node:focus-visible .c-dot,.c-node.on .c-dot{background:var(--accent);color:#1A1204;box-shadow:0 0 0 4px rgba(7,12,24,.8),0 0 30px rgba(242,161,59,.55);transform:translate(-50%,-50%) scale(1.12)}
.c-core{position:absolute;left:50%;top:50%;width:96px;height:96px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;
  background:#0B1324;border:1px solid rgba(255,208,138,.45);box-shadow:0 0 60px rgba(242,161,59,.35),0 0 140px rgba(242,161,59,.12)}
.c-core img{width:64px;height:64px;border-radius:16px}
.c-ping{position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(255,208,138,.5);animation:ping 3s ease-out infinite}
@keyframes ping{from{transform:scale(1);opacity:1}to{transform:scale(1.9);opacity:0}}

/* ---------- Explorer ---------- */
.x-sec{position:relative;z-index:3;background:linear-gradient(#070C18,#0A1120);padding:clamp(90px,11vw,140px) 0}
.x-head{max-width:760px;margin-bottom:54px}
.x-head .k{color:var(--accent)}
.x-head h2{font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.04;font-weight:760;margin-top:14px}
.x-head h2 .serif{font-style:italic;color:var(--accent-hi);font-size:1.04em}
.x-grid > *{min-width:0}
.x-grid{display:grid;grid-template-columns:minmax(260px,.85fr) 1.15fr;gap:clamp(24px,4vw,56px);align-items:start}
.x-listwrap{position:relative}
.x-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.x-list li{border-bottom:1px solid var(--line)}
.x-row{display:grid;grid-template-columns:48px 1fr 24px;align-items:center;gap:12px;padding:16px 14px 16px 18px;text-decoration:none;color:var(--muted);
  transition:color .25s,background .25s,padding .3s var(--ease)}
.x-row:hover{color:var(--text);background:rgba(255,255,255,.025)}
.x-row.on{color:#fff;padding-left:26px;background:linear-gradient(90deg,rgba(242,161,59,.1),transparent 70%)}
.x-code{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;color:var(--faint);transition:color .25s}
.x-row.on .x-code{color:var(--accent)}
.x-name{font-size:1.12rem;font-weight:600;letter-spacing:-.01em}
.x-go{opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s;color:var(--accent)}
.x-row:hover .x-go,.x-row.on .x-go{opacity:1;transform:none}
.x-bar{position:absolute;left:0;top:0;width:3px;height:var(--h,56px);background:var(--accent);border-radius:2px;
  transform:translateY(var(--y,0));transition:transform .45s var(--ease),height .45s var(--ease);box-shadow:0 0 16px rgba(242,161,59,.6);z-index:1}

.x-panel{position:sticky;top:110px;border-radius:28px;padding:clamp(26px,3.4vw,44px);overflow:hidden;
  background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.015) 45%,rgba(242,161,59,.05));
  border:1px solid rgba(226,236,248,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 40px 100px rgba(0,0,0,.45);min-height:520px}
.x-big{position:absolute;right:-.06em;top:-.2em;font-weight:800;font-variation-settings:"wdth" 125;font-size:clamp(8rem,16vw,13rem);line-height:1;letter-spacing:-.06em;
  background:linear-gradient(180deg,rgba(242,161,59,.2),rgba(242,161,59,0) 80%);-webkit-background-clip:text;background-clip:text;color:transparent;pointer-events:none;
  transition:opacity .4s,transform .6s var(--ease)}
.x-body{position:relative;transition:opacity .35s ease,transform .45s var(--ease)}
.x-panel.swap .x-body{opacity:0;transform:translateY(14px)}
.x-panel.swap .x-big{opacity:0;transform:translateY(-16px)}
.x-kick{color:var(--accent)}
.x-body h3{font-family:var(--serif);font-weight:400;font-variation-settings:normal;letter-spacing:-.015em;font-size:clamp(2.2rem,3.6vw,3rem);line-height:1.02;margin:10px 0 14px;color:#fff;max-width:90%}
.x-body > p{color:#AEBBD0;margin:0 0 26px;max-width:560px;line-height:1.6}
.x-sub{color:var(--muted);margin:0 0 12px!important;font-size:.72rem}
.x-flow{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:10px}
.x-flow li{display:grid;grid-template-columns:1fr 26px 1fr;align-items:center;gap:10px;padding:14px 16px;border-radius:14px;background:rgba(7,12,24,.55);border:1px solid var(--line);
  opacity:0;transform:translateX(-12px);animation:flowIn .5s var(--ease) forwards}
.x-flow li:nth-child(2){animation-delay:.08s}.x-flow li:nth-child(3){animation-delay:.16s}
@keyframes flowIn{to{opacity:1;transform:none}}
.x-flow b{display:block;font-size:.95rem;color:#fff;margin-bottom:2px;grid-column:1/-1}
.x-flow .was{font-size:.86rem;color:#8C9BB0;text-decoration:line-through;text-decoration-color:rgba(255,155,155,.5)}
.x-flow .now{font-size:.86rem;color:var(--accent-hi)}
.x-flow .arr{color:var(--accent);text-align:center;animation:arr 1.6s ease-in-out infinite}
@keyframes arr{0%,100%{transform:translateX(-3px)}50%{transform:translateX(3px)}}
.x-caps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.x-caps span{padding:6px 12px;border-radius:99px;border:1px solid var(--line2);font-size:.82rem;color:#C8D3E0;opacity:0;animation:flowIn .4s var(--ease) forwards}
.x-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.05)}
.x-progress i{display:block;height:100%;width:0;background:var(--accent)}
.x-progress i.run{animation:prog var(--t,6s) linear forwards}
@keyframes prog{to{width:100%}}

/* ---------- CTA ---------- */
.i-cta{position:relative;z-index:3;background:#0A1120;padding:clamp(80px,10vw,130px) 0;text-align:center;border-top:1px solid var(--line)}
.i-cta h2{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:780;line-height:1.02;margin-bottom:18px}
.i-cta p{color:var(--muted);max-width:560px;margin:0 auto 32px;font-size:1.1rem}
.i-cta .cta-row{justify-content:center}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .i-hero{min-height:auto}
  .i-hero-grid{grid-template-columns:1fr}
  .constellation{width:min(380px,84vw);--r:calc(min(380px,84vw) * .42)}
  .i-scroll{display:none}
  .x-grid{grid-template-columns:1fr}
  .x-listwrap{margin:0 calc(-1*var(--gutter))}
  .x-bar{display:none}
  .x-list{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;border:0;padding:0 var(--gutter) 6px;scrollbar-width:none}
  .x-list::-webkit-scrollbar{display:none}
  .x-list li{border:0;scroll-snap-align:start;flex:none}
  .x-row{display:flex;gap:8px;padding:10px 14px;border-radius:99px;border:1px solid var(--line2);min-height:44px;white-space:nowrap}
  .x-row.on{padding-left:14px;background:var(--accent);color:#1A1204;border-color:var(--accent)}
  .x-row.on .x-code{color:#1A1204}
  .x-name{font-size:.92rem}
  .x-go{display:none}
  .x-panel{position:relative;top:0;min-height:0}
}
@media (max-width:520px){
  .c-dot{width:38px;height:38px;font-size:.66rem}
  .c-core{width:78px;height:78px}.c-core img{width:52px;height:52px}
  .x-flow li{grid-template-columns:1fr;gap:4px}
  .x-flow .arr{display:none}
  .cta-row .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .c-spin,.c-in,.c-spokes line,.c-ping,.i-scroll,.x-flow .arr{animation:none}
  .x-flow li,.x-caps span{opacity:1;transform:none;animation:none}
}
@media (max-width:960px){.i-copy h1{font-size:min(9vw,3.4rem)}}
