/* Hypernix 4.0 — cinematic product direction inspired by the supplied VYRO reference.
 *
 * This sheet owns proportion: radii, hero sizing, grid rhythm, card geometry. It
 * used to own colour as well, in a blue-violet of its own, which put it in a
 * straight fight with the yellow Hypernix system loaded right after it — hence
 * violet primary buttons sitting next to yellow pills on the same screen.
 *
 * Colour now comes from one place. --accent is what the launcher writes onto
 * <html> when the player picks a theme, falling back to the platform accent and
 * finally to Hypernix yellow, so every page follows whatever the launcher is set
 * to instead of asserting a second opinion.
 */
:root{
  --vision-accent:var(--accent,var(--hn-accent,#f5c400));
  --vision-blue:var(--vision-accent);--vision-purple:var(--vision-accent);--vision-ice:#dfe8ff;
  --vision-black:#08090c;--vision-white:#f6f7fb;--vision-glass:rgba(18,20,27,.66);--vision-line:rgba(255,255,255,.13);
  /* Tints derived from the live accent rather than frozen at author time. */
  --vision-accent-soft:color-mix(in srgb,var(--vision-accent) 16%,transparent);
  --vision-accent-line:color-mix(in srgb,var(--vision-accent) 55%,transparent);
  --vision-accent-glow:color-mix(in srgb,var(--vision-accent) 24%,transparent);
  --vision-accent-lift:color-mix(in srgb,var(--vision-accent) 72%,#ffffff);
  --vision-accent-deep:color-mix(in srgb,var(--vision-accent) 82%,#000000);
}
body{background:var(--vision-black);font-size:16px}
.site-header{top:12px;width:min(1480px,calc(100% - 26px));height:74px;border-radius:24px;background:rgba(11,12,16,.66);border-color:var(--vision-line);box-shadow:0 20px 80px rgba(0,0,0,.32);backdrop-filter:blur(28px) saturate(1.3)}
.brand-mark,.assistant-trigger,.bolt{background:linear-gradient(145deg,var(--vision-accent-lift),var(--vision-accent) 55%,var(--vision-accent-deep))!important;color:#08090c!important}
.app-shell{width:min(1500px,100%);padding-top:105px}
.home-hero{height:min(840px,calc(100vh - 120px));min-height:680px;border-radius:38px;border-color:rgba(255,255,255,.18);isolation:isolate;box-shadow:0 50px 150px rgba(0,0,0,.45)}
.home-hero:before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 70% 35%,var(--vision-accent-soft),transparent 42%),linear-gradient(90deg,rgba(5,6,9,.92) 0%,rgba(5,6,9,.55) 50%,rgba(5,6,9,.08) 100%)}
.home-hero video{filter:saturate(.78) contrast(1.1);transform:scale(1.015)}
.hero-copy{z-index:2;bottom:70px;left:64px;max-width:900px}
.hero-copy h1{font-size:clamp(62px,7vw,112px)!important;line-height:.84!important;letter-spacing:-.035em!important;text-wrap:balance}
.hero-copy p{max-width:600px;color:#dde0e9!important}
.btn-primary{background:linear-gradient(110deg,var(--vision-accent-lift),var(--vision-accent) 62%,var(--vision-accent-deep))!important;border-color:rgba(255,255,255,.5)!important;color:#090a0e!important;box-shadow:0 15px 50px var(--vision-accent-glow)!important}
.metric-row{margin-top:18px;gap:14px}.metric{min-height:160px;border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));border-color:var(--vision-line)}
.metric strong{font-family:var(--display);font-size:clamp(36px,4vw,66px);background:linear-gradient(100deg,#fff,var(--vision-accent));-webkit-background-clip:text;color:transparent}
.section-title{margin-top:110px}.section-title h2,.page-head h1,.catalog-hero h1{font-size:clamp(48px,6vw,92px);line-height:.9;letter-spacing:-.03em}.section-title p,.page-head p{font-size:17px;line-height:1.7}
.feature-grid{gap:18px}.feature-large,.feature-stack article{border-radius:34px;border:1px solid var(--vision-line);box-shadow:inset 0 1px rgba(255,255,255,.08)}
.feature-large{background-image:linear-gradient(0deg,rgba(7,8,11,.9),rgba(7,8,11,.05))!important}.feature-stack article:first-child{background-image:linear-gradient(0deg,rgba(7,8,11,.9),rgba(7,8,11,.06))!important}.feature-stack article:last-child{background-image:linear-gradient(0deg,rgba(7,8,11,.9),rgba(7,8,11,.08))!important}
.place-card{border-radius:28px;background:linear-gradient(150deg,#1b1d25,#111216);border-color:var(--vision-line);transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s;overflow:visible}.place-card:hover{transform:translateY(-10px) scale(1.012);border-color:var(--vision-accent-line);box-shadow:0 32px 90px rgba(0,0,0,.45)}.place-image{border-radius:24px 24px 0 0}.place-icon{z-index:5!important}.place-body{position:relative;z-index:2}
.catalog-hero{min-height:560px;border-radius:36px;background-image:linear-gradient(90deg,rgba(6,7,10,.9),rgba(6,7,10,.15))!important;background-size:cover;background-position:center}
/* .catalog-tools deliberately left out of this group. hypernix-premium.css makes
   it a transparent row so the search field and the button read as controls; this
   rule's !important card background put a bordered panel back around them, and
   because premium also zeroes the horizontal padding the field and the button
   ended up flush against that border. */
.panel,.messenger,.inventory-hero .panel,.plan,.modal{border-color:var(--vision-line)!important;background:linear-gradient(145deg,rgba(29,31,41,.92),rgba(14,15,20,.95))!important;box-shadow:0 28px 90px rgba(0,0,0,.3)}
.messenger{border-radius:34px;min-height:760px}.people-pane{background:rgba(255,255,255,.018)}.person{min-height:76px;border-radius:18px}.chat-compose{background:rgba(8,9,12,.7)}
.profile-cover{height:640px;border-radius:38px;border:1px solid var(--vision-line)}.profile-cover:after{background:linear-gradient(0deg,rgba(6,7,10,.95),transparent 62%)}.profile-avatar-wrap{width:170px;height:170px}.profile-name h1{font-size:clamp(44px,6vw,90px)}
.inventory-hero{gap:18px}.loadout{border-radius:34px!important}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.reward-card{min-height:390px;border-radius:26px;background:linear-gradient(155deg,#20222c,#111217);border-color:var(--vision-line)}.reward-preview{background:radial-gradient(circle at 50% 44%,var(--vision-accent-soft),transparent 56%)}.reward-card:hover{border-color:var(--vision-accent-line);transform:translateY(-7px)}
.reward-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.reward-actions .btn{min-width:0}.font-horizon{font-family:Horizon,sans-serif!important}.font-unbounded{font-family:Unbounded,sans-serif!important}.font-inter{font-family:Inter,sans-serif!important}.font-pixel,.font-minecraft,.font-arcade{font-family:monospace!important;letter-spacing:.08em}.font-serif,.font-royal{font-family:Georgia,serif!important}.font-script{font-family:cursive!important}.font-condensed{font-stretch:condensed}.font-wide{letter-spacing:.16em}.font-soft{font-weight:500;letter-spacing:.02em}.font-heavy{font-weight:900}.font-italic{font-style:italic}.font-outline{-webkit-text-stroke:1px currentColor;color:transparent!important}.font-shadow{text-shadow:4px 4px 0 rgba(0,0,0,.55)}
.coin-pill{display:flex;align-items:center;gap:8px;height:43px;padding:0 13px;border:1px solid var(--vision-line);border-radius:14px;background:rgba(255,255,255,.055);font:700 11px/1 var(--ui)}.coin-pill img{width:25px;height:25px}.coin-price{display:inline-flex;align-items:center;gap:6px}.coin-price img{width:18px;height:18px}
.role-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid currentColor;border-radius:999px;font:700 10px/1 var(--ui);text-transform:uppercase;letter-spacing:.08em}.role-badge svg{width:15px;height:15px}
.site-footer{width:min(1500px,calc(100% - 24px));margin:110px auto 22px;padding:48px;border:1px solid var(--vision-line);border-radius:34px;background:linear-gradient(145deg,#191b24,#0e0f14);display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.site-footer h2{margin:10px 0 0;font:400 clamp(38px,5vw,78px)/.9 var(--display);letter-spacing:-.03em}.footer-links{display:flex;flex-wrap:wrap;gap:16px;color:#b9bdc8;font-size:13px}.footer-links a:hover{color:#fff}
.cookie-banner{position:fixed;z-index:500;left:20px;right:20px;bottom:20px;max-width:720px;margin:auto;padding:18px;border:1px solid var(--vision-line);border-radius:21px;background:rgba(15,16,22,.94);backdrop-filter:blur(26px);box-shadow:0 30px 80px rgba(0,0,0,.5);display:flex;align-items:center;gap:16px}.cookie-banner[hidden]{display:none}.cookie-banner p{margin:0;flex:1;color:#c5c8d2;font-size:12px}.cookie-banner a{text-decoration:underline}
.flag-es{background:linear-gradient(#aa151b 0 25%,#f1bf00 25% 75%,#aa151b 75%)}
.view-enter{animation:vision-in .7s cubic-bezier(.2,.8,.2,1)}@keyframes vision-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy{left:35px;bottom:45px}.site-footer{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){.app-shell{padding-top:82px}.home-hero{height:690px;border-radius:25px}.hero-copy{left:22px!important;right:22px!important;bottom:24px!important}.hero-copy h1{font-size:44px!important}.section-title{margin-top:72px}.inventory-grid{grid-template-columns:1fr}.site-footer{padding:28px;margin-bottom:85px}.cookie-banner{bottom:82px;flex-wrap:wrap}}
