/* Jaguar Engine Studios — estilo profesional */
:root{
  --bg:#08090a;            /* Black */
  --bg-alt:#0e100f;
  --panel:#111312;
  --panel-2:#1b1f1c;
  --line:#1f2421;
  --line-2:#2c312d;
  --ink:#f4f7f5;           /* Bright Snow */
  --text:#cecdd0;
  --muted:#a7a2a9;         /* Lilac Ash */
  --charcoal:#575a5e;      /* Charcoal */
  --carbon:#222823;        /* Carbon Black */
  --blue:#a7a2a9;          /* acento (antes azul) = Lilac Ash */
  --blue-hover:#f4f7f5;
  --blue-soft:rgba(167,162,169,.12);
  --display:"Orbitron","Segoe UI",Arial,sans-serif;
  --body:"Rajdhani","Segoe UI",Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --r:12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:500 1.125rem/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
::selection{background:var(--blue);color:#000}
.container{width:min(1180px,100% - 3rem);margin-inline:auto}
.accent{color:var(--blue)}
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:middle}
.skip-link{position:absolute;left:1rem;top:-100px;z-index:100;background:var(--blue);color:#000;padding:.6rem 1rem;font-weight:700;text-decoration:none;border-radius:8px}
.skip-link:focus{top:1rem}
[hidden]{display:none!important}

/* Botones y enlaces */
.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font:700 .9rem/1 var(--display);letter-spacing:.03em;padding:1rem 1.5rem;text-decoration:none;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease)}
.btn-primary{background:var(--blue);color:#08090a}
.btn-primary:hover{background:var(--blue-hover)}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-secondary:hover{border-color:var(--muted);background:rgba(255,255,255,.03)}
.btn-primary:active,.btn-secondary:active{transform:scale(.98)}
.btn-primary .ic{transition:transform .2s var(--ease)}
.btn-primary:hover .ic{transform:translateX(3px)}
.btn-sm{padding:.7rem 1.1rem;font-size:.78rem}
button.btn-primary:disabled{opacity:.6;cursor:wait}
.link-arrow{display:inline-flex;align-items:center;gap:.45rem;color:var(--blue);font-weight:700;text-decoration:none;white-space:nowrap}
.link-arrow .ic{transition:transform .2s var(--ease)}
.link-arrow:hover .ic{transform:translateX(3px)}

/* Barra superior */
.navbar{position:fixed;inset:0 0 auto 0;z-index:50;background:rgba(8,9,10,.7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:background .3s,border-color .3s}
.navbar.scrolled,.page .navbar{background:rgba(8,9,10,.92);border-bottom-color:var(--line)}
.nav-content{display:flex;align-items:center;gap:1.4rem;height:72px}
.logo{margin-right:auto;min-width:0}
.logo img{height:24px;width:auto;max-width:100%;object-fit:contain;object-position:left;mix-blend-mode:lighten}
.navbar nav ul{display:flex;align-items:center;gap:1.7rem;list-style:none;margin:0;padding:0}
.navbar nav a{text-decoration:none;font:600 1.05rem var(--body);color:var(--muted);transition:color .2s}
.navbar nav a:hover,.navbar nav a[aria-current="page"]{color:var(--ink)}
.navbar nav a.btn-primary{color:#08090a}
.lang{display:flex;flex:none;border:1px solid var(--line-2);border-radius:9px;overflow:hidden}
.lang button{font:700 .72rem/1 var(--display);letter-spacing:.06em;background:transparent;color:var(--muted);border:0;padding:.6rem .62rem;cursor:pointer;transition:background .2s,color .2s}
.lang button:hover{color:var(--ink)}
.lang button[aria-pressed="true"]{background:var(--ink);color:#08090a}
.menu-toggle{display:none;flex:none;position:relative;width:44px;height:44px;background:transparent;border:1px solid var(--line-2);border-radius:9px;color:var(--ink);cursor:pointer}
.menu-toggle span{position:absolute;left:12px;right:12px;height:2px;background:currentColor;border-radius:2px;transition:transform .25s var(--ease),opacity .2s}
.menu-toggle span:nth-child(1){top:14px}.menu-toggle span:nth-child(2){top:21px}.menu-toggle span:nth-child(3){top:28px}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Portada */
.hero{position:relative;overflow:hidden;min-height:88vh;min-height:88svh;display:flex;align-items:center;padding:120px 0 80px}
.hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 45% 55% at 75% 45%,rgba(126,124,132,.16),transparent 70%),radial-gradient(ellipse 35% 40% at 10% 0%,rgba(126,124,132,.07),transparent 70%)}
.hero-layout{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.hero-copy{max-width:600px}
h1{font:800 clamp(2.1rem,4.4vw,3.5rem)/1.1 var(--display);letter-spacing:-.015em;color:var(--ink);margin:0 0 1.3rem;text-wrap:balance}
.hero-subtitle{font-size:clamp(1.15rem,1.5vw,1.3rem);color:var(--text);margin:0 0 2.1rem;max-width:46ch}
.hero-buttons{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:2.4rem}
.hero-trust{list-style:none;margin:0;padding:1.6rem 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.7rem 1.8rem;color:var(--muted);font-weight:600}
.hero-trust li{display:flex;align-items:center;gap:.5rem}
.hero-trust .ic{color:var(--blue)}
.hero-visual{position:relative;aspect-ratio:1/1;max-width:540px;width:100%;justify-self:center}
.hero-jaguar{position:absolute;inset:12%;width:76%;height:auto;opacity:.95}
.hv{position:absolute;background:rgba(20,23,22,.92);border:1px solid #2c312d;border-radius:14px;padding:14px;color:#f4f7f5;font:600 13px/1.35 var(--body);box-shadow:0 18px 40px -18px rgba(0,0,0,.8)}
.hv-discord{left:-4%;bottom:14%;width:62%;background:#2c312d;border-color:#3d4144}
.hv-roblox{right:-2%;top:8%;width:52%;display:grid;gap:10px}
.hv-status{right:4%;bottom:2%;display:grid;gap:6px;min-width:170px}
.hv-status p{margin:0;display:flex;align-items:center;gap:8px}
.hv-status span{margin-left:auto;color:#cecdd0}
.dot{width:8px;height:8px;border-radius:50%;background:#a7a2a9;box-shadow:0 0 0 3px rgba(167,162,169,.18)}
.hv .md-msg{display:grid;grid-template-columns:30px 1fr;gap:10px}
/* Secciones */
.section{padding:clamp(4.5rem,8vw,6.5rem) 0;scroll-margin-top:72px}
.section-tight{padding-top:2rem}
.section-dark{background:var(--bg-alt);border-block:1px solid var(--line)}
.section-head{max-width:640px;margin-bottom:2.8rem}
.section-head-row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}
.section-head-row > div{max-width:640px}
.section-title{font:700 clamp(1.6rem,3vw,2.2rem)/1.15 var(--display);letter-spacing:-.01em;color:var(--ink);margin:0 0 .7rem}
.section-desc{color:var(--text);margin:0;font-size:1.15rem}

/* Servicios */
.grid-servicios{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.7rem 1.5rem;display:flex;flex-direction:column;transition:border-color .3s,transform .3s var(--ease)}
.card:hover{border-color:var(--line-2);transform:translateY(-4px)}
.card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:var(--blue-soft);color:var(--blue);margin-bottom:1.2rem}
.card-icon .ic{width:26px;height:26px}
.card h3,.project-card h3,.paso h3{font:700 1.05rem/1.3 var(--display);color:var(--ink);margin:0 0 .55rem}
.card p,.paso p{margin:0;color:var(--text)}
.card-list{list-style:none;margin:1.2rem 0 0;padding:1.1rem 0 0;border-top:1px solid var(--line);display:grid;gap:.45rem;font-size:1.02rem;color:var(--text)}
.card-list li{display:flex;align-items:center;gap:.55rem}
.card-list .ic{color:var(--blue);width:1em;height:1em}
.card-cta{justify-content:center;background:linear-gradient(160deg,rgba(126,124,132,.14),var(--panel) 70%);border-color:rgba(126,124,132,.35)}
.card-cta p{margin-bottom:1.2rem}
.card-cta .link-arrow{margin-top:auto}

/* Proyectos */
.grid-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.grid-projects-all{grid-template-columns:repeat(2,1fr)}
.project-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,transform .3s var(--ease)}
.project-card:hover{border-color:var(--line-2);transform:translateY(-4px)}
.project-media{aspect-ratio:16/10;background:radial-gradient(ellipse at 30% 20%,rgba(126,124,132,.16),transparent 60%),#08090a;border-bottom:1px solid var(--line);display:grid;place-items:center;padding:1.4rem;overflow:hidden}
.project-media img{width:100%;height:100%;object-fit:cover}
.project-media picture{display:block;width:100%;height:100%}
.project-featured .project-media picture img{object-fit:contain;background:#000}
.project-featured .project-media:has(picture){background:#000}
.project-featured:has(picture){grid-template-columns:1fr}
.project-featured:has(picture) .project-media{aspect-ratio:1600/841;min-height:0;border-right:0;border-bottom:1px solid var(--line)}
.project-featured:has(picture) .project-media picture img{object-fit:cover}
.project-featured:has(picture) .project-body{display:grid;grid-template-columns:1fr 1fr;column-gap:2.5rem;align-items:start}
.project-featured:has(picture) .project-body > *{grid-column:1}
.project-featured:has(picture) .project-features{grid-column:2;grid-row:1 / span 4;margin-top:0}
@media (max-width:1040px){.project-featured:has(picture) .project-body{grid-template-columns:1fr}.project-featured:has(picture) .project-features{grid-column:1;grid-row:auto;margin-top:1rem}}
.project-features{margin:1rem 0 0;border-top:0;padding-top:0}
.project-featured .project-media{padding:0}
.project-featured .project-media .mock{margin:1.4rem}
.project-media-empty img.project-logo{width:40%;height:auto;object-fit:contain;opacity:.85}
.project-body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.project-kind{margin:0 0 .4rem;color:var(--blue);font-weight:700;font-size:.98rem}
.project-body > p:not(.project-kind){margin:0;color:var(--text)}
.tags{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.tags li{font-size:.9rem;font-weight:600;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:.15rem .7rem}
.mock{width:100%;max-width:330px;font:600 13px/1.3 var(--body);transition:transform .5s var(--ease)}
.project-card:hover .mock{transform:scale(1.03)}
.mock-discord{background:#2c312d;border-radius:8px;padding:12px;color:#cecdd0}
.md-msg{display:grid;grid-template-columns:30px 1fr;gap:10px}
.md-av{width:30px;height:30px;border-radius:50%;background:#000 url("../img/logo-jaguar.png") center/cover}
.md-msg b{color:#f4f7f5}
.md-msg i{font-style:normal;font-size:9px;background:#6c6a72;color:#fff;padding:1px 4px;border-radius:3px;margin-left:4px;vertical-align:1px}
.md-embed{margin-top:6px;background:#2c312d;border-left:3px solid var(--blue);border-radius:4px;padding:8px 10px;display:grid;gap:3px}
.md-embed span{color:#cecdd0}
.md-embed span b{color:#f4f7f5}
.md-btns{display:flex;gap:5px;margin-top:4px}
.md-btns em{font-style:normal;background:#575a5e;color:#fff;font-size:11px;padding:3px 8px;border-radius:3px}
.md-btns em.ok{background:#6c6a72}
.mock-roblox{position:relative;background:#6c6a72;border-radius:8px;padding:12px;color:#fff}
.mr-board{background:rgba(0,0,0,.32);border-radius:6px;overflow:hidden}
.mr-head,.mr-row{display:flex;justify-content:space-between;padding:6px 10px}
.mr-head{background:rgba(0,0,0,.35);font-size:11px}
.mr-row{border-top:1px solid rgba(255,255,255,.1)}
.mr-row.me{background:#cecdd0;color:#000}
.mr-toast{position:absolute;right:10px;bottom:-12px;background:#000;color:#cecdd0;padding:5px 9px;border-radius:6px;font-size:12px}
.mr-toast b{color:#fff}
.mock-verify{display:grid;gap:6px;background:#f4f7f5;border-radius:8px;padding:12px;color:#08090a}
.mv-row{display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:8px;background:#fff;border-radius:6px;padding:7px 10px}
.mv-row i{width:14px;height:14px;border-radius:50%;background:#6c6a72}
.mv-row span{color:#575a5e;font-weight:500}
.mock-web{background:#141716;border:1px solid #2c312d;border-radius:8px;overflow:hidden;color:#f4f7f5}
.mw-top{display:flex;gap:5px;padding:7px 9px;background:#1b1f1c}
.mw-top span{width:8px;height:8px;border-radius:50%;background:#3d4144}
.mw-body{display:grid;grid-template-columns:44px 1fr}
.mw-side{background:#0e100f;padding:10px 8px;display:grid;gap:8px;align-content:start}
.mw-side i{height:8px;border-radius:4px;background:#2c312d}
.mw-side i:first-child{background:var(--blue)}
.mw-main{padding:10px 12px}
.mw-main p{display:flex;justify-content:space-between;margin:6px 0 0;padding-top:6px;border-top:1px solid #222823}
.mw-main em{font-style:normal;font-size:11px;padding:1px 7px;border-radius:999px;background:#2c312d;color:#cecdd0}
.mw-main em.o{background:var(--blue);color:#000}
.mw-main em.w{background:#2c312d;color:#cecdd0}

/* Proyecto destacado */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.grid-featured{grid-template-columns:1fr}
.project-featured{display:grid;grid-template-columns:1.1fr 1fr}
.project-featured .project-media{aspect-ratio:auto;min-height:320px;border-bottom:0;border-right:1px solid var(--line)}
.project-featured .project-body{padding:2.2rem;justify-content:center}
.project-featured h3{font-size:1.5rem}
.project-featured .project-body > p:not(.project-kind){font-size:1.15rem}
.project-link{margin-top:1.6rem;align-self:flex-start}
.mock-mxrp{max-width:340px;background:#141716;border:1px solid #2c312d;border-radius:12px;padding:16px;color:#f4f7f5;font-size:14px;display:grid;gap:12px}
.mx-head{display:flex;justify-content:space-between;align-items:center}
.mx-head b{font-size:16px}
.mx-head span{background:#f4f7f5;color:#08090a;font-weight:800;font-size:11px;padding:2px 8px;border-radius:6px;letter-spacing:.05em}
.mx-tier{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;background:#1b1f1c;border-radius:10px;padding:10px}
.mx-tier i{width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,#cecdd0,#a7a2a9)}
.mx-tier i.elite{background:linear-gradient(135deg,#a7a2a9,#6c6a72)}
.mx-tier b{display:block}
.mx-tier small{color:#a7a2a9}
.mx-tier em{font-style:normal;font-size:12px;font-weight:700;color:#cecdd0;background:#2c312d;padding:3px 9px;border-radius:999px}
.mx-perks{display:grid;gap:4px;color:#cecdd0}
.mx-btn{text-align:center;background:#a7a2a9;color:#fff;font-weight:700;border-radius:8px;padding:9px}
/* Galería de capturas */
.project-media.has-gallery{position:relative;padding:0;display:block}
.project-media.has-gallery .gallery-main{display:block;width:100%;height:100%}
.project-media.has-gallery .gallery-main img{width:100%;height:100%;object-fit:cover;transition:opacity .25s}
.project-media.has-gallery .gallery-main img.is-loading{opacity:.35}
.gallery-thumbs{position:absolute;left:1rem;bottom:1rem;display:flex;gap:.5rem;padding:.4rem;background:rgba(8,9,10,.75);border:1px solid var(--line-2);border-radius:12px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gallery-thumb{width:84px;aspect-ratio:320/168;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:#000;opacity:.6;transition:opacity .2s,border-color .2s}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-thumb:hover{opacity:.9}
.gallery-thumb[aria-pressed="true"]{border-color:var(--blue);opacity:1}
@media (max-width:640px){.gallery-thumbs{left:.5rem;bottom:.5rem;gap:.35rem;padding:.3rem}.gallery-thumb{width:58px}}

/* Página de proyectos */
.page-hero{padding:140px 0 1rem}
.page-hero h1{text-align:left;max-width:none;margin-bottom:.8rem}
.page-hero .section-desc{max-width:60ch}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem}

/* Opiniones */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:start}
.review{position:relative;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem 1.5rem 1.3rem;display:flex;flex-direction:column;gap:1.2rem}
.review .q{position:absolute;top:1.2rem;right:1.3rem;width:30px;height:30px;color:var(--blue);opacity:.35}
.review blockquote{margin:0;padding-right:2.2rem}
.review blockquote p{margin:0;color:var(--ink);font-size:1.1rem;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
.review.is-long:not(.is-open) blockquote p{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.review figcaption{display:flex;align-items:center;gap:.75rem;margin-top:auto}
.review figcaption img{width:40px;height:40px;border-radius:50%;background:var(--panel-2)}
.review figcaption span{display:grid;line-height:1.25}
.review figcaption b{color:var(--ink)}
.review figcaption small{color:var(--muted);font-size:.92rem}
.reviews-empty{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--panel);border:1px dashed var(--line-2);border-radius:var(--r);padding:1.4rem 1.6rem}
.reviews-empty p{margin:0;color:var(--text)}
.reviews:empty{display:none}
.review-more{align-self:flex-start;background:none;border:0;padding:0;color:var(--blue);font:700 1rem var(--body);cursor:pointer}
/* Reseñas con estrellas */
.stars{display:inline-flex;gap:.12em;font-size:1.05rem;line-height:1;letter-spacing:0}
.star{position:relative;display:inline-block;color:#3d4144}
.star::before{content:'★';position:absolute;inset:0;width:var(--fill,0%);overflow:hidden;color:#f4f7f5}
.stars-lg{font-size:1.5rem}
.review-rated{gap:1rem}
.review figcaption{order:-1;margin-top:0}
.review-avg{margin-left:auto;align-self:center;background:rgba(244,247,245,.1);border:1px solid rgba(244,247,245,.35);color:#f4f7f5;border-radius:999px;padding:.2rem .6rem;font-weight:700;font-size:.92rem;white-space:nowrap}
.review-scores{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;margin:0;align-items:center}
.review-scores dt{color:var(--muted);font-size:.95rem}
.review-scores dd{margin:0}
.review-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{display:inline-block;border:1px solid var(--line-2);border-radius:999px;padding:.15rem .65rem;font-size:.88rem;color:var(--text);background:var(--panel-2)}
.chip-project{border-color:rgba(126,124,132,.45);color:var(--ink)}
.review-rated blockquote{padding-right:0;border-top:1px solid var(--line);padding-top:.9rem}
.review-rated .q{display:none}
.reviews-summary{display:flex;align-items:center;gap:2.5rem;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.6rem;margin-bottom:1rem}
.rs-main{display:grid;justify-items:start;gap:.25rem}
.rs-score{font:700 2.6rem/1 var(--display,inherit);color:var(--ink)}
.rs-main small{color:var(--muted)}
.rs-bars{flex:1;min-width:220px;display:grid;gap:.6rem}
.rs-row{display:grid;grid-template-columns:10.5rem 1fr 2.2rem;align-items:center;gap:.8rem}
.rs-label{color:var(--text);white-space:nowrap}
.rs-bar{height:8px;border-radius:99px;background:var(--panel-2);overflow:hidden}
.rs-bar i{display:block;height:100%;background:linear-gradient(90deg,#f4f7f5,#cecdd0);border-radius:inherit}
.rs-row b{color:var(--ink);text-align:right}
.reviews-cta{margin:1.2rem 0 0;color:var(--muted)}
.reviews-cta a{color:var(--blue);font-weight:700}

/* Proceso */
.pasos{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;counter-reset:none}
.paso{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem 1.4rem}
.paso-num{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;font:800 .95rem/1 var(--display);color:var(--blue);background:var(--blue-soft);margin-bottom:1rem}

/* Sobre el estudio */
.sobre-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.sobre-desc{color:var(--text);margin:0 0 1rem;max-width:62ch}
.sobre-desc strong{color:var(--ink)}
.sobre-tagline{margin:1.6rem 0 0;padding-left:1.1rem;border-left:3px solid var(--blue);font-size:1.2rem;color:var(--ink)}
.facts{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.facts li{display:flex;align-items:baseline;gap:1rem;padding:1.1rem 1.3rem;border:1px solid var(--line);background:var(--panel);border-radius:var(--r)}
.facts b{font:800 1.5rem/1 var(--display);color:var(--blue);min-width:6.2rem}
.facts span{color:var(--text)}

/* Contacto */
.contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.contact-side .section-desc{margin-bottom:2rem}
.contact-points{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.contact-points li{display:flex;align-items:center;gap:.8rem}
.contact-points .ic{color:var(--blue);width:1.3em;height:1.3em}
.contact-points a{color:var(--ink);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.contact-points a:hover{color:var(--blue)}
.form-contacto{display:grid;gap:1.05rem;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:clamp(1.3rem,3vw,2.1rem)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.05rem}
.field{display:grid;gap:.4rem;min-width:0}
.field label{font:600 1rem var(--body);color:var(--ink)}
.req{color:var(--blue)}
.optional{color:var(--muted);font-weight:500}
.form-contacto input,.form-contacto select,.form-contacto textarea{width:100%;background:#08090a;color:var(--ink);border:1px solid var(--line-2);border-radius:9px;padding:.85rem 1rem;font:500 1.05rem var(--body);transition:border-color .2s,box-shadow .2s}
.form-contacto textarea{resize:vertical;min-height:140px}
.form-contacto input::placeholder,.form-contacto textarea::placeholder{color:#575a5e}
.form-contacto input:hover,.form-contacto select:hover,.form-contacto textarea:hover{border-color:#3d4144}
.form-contacto input:focus,.form-contacto select:focus,.form-contacto textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(126,124,132,.18)}
.form-contacto select option{background:#0e100f;color:var(--ink)}
.form-contacto .btn-primary{justify-self:start}
.field-error{color:#ff7272;font-size:.95rem}
.field-error:empty{display:none}
.field-meta{display:flex;justify-content:space-between;gap:1rem}
.char-count{margin-left:auto;color:var(--muted);font-size:.9rem}
.char-count.near-limit{color:#cecdd0}
.form-contacto [aria-invalid="true"]{border-color:#ff7272}
.checkbox{display:flex!important;align-items:flex-start;gap:.7rem;font-weight:500!important;color:var(--text)!important;cursor:pointer}
.checkbox input{width:1.15rem!important;height:1.15rem;margin:.3rem 0 0;padding:0!important;accent-color:var(--blue);flex:none}
.checkbox a{color:var(--blue)}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status{min-height:1.5rem;margin:0;font-weight:600}
.form-status.success{color:#cecdd0}
.form-status.error{color:#ff7272}

/* Pie */
.site-footer{border-top:1px solid var(--line);padding:4rem 0 2rem;color:var(--muted);background:var(--bg)}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem}
.footer-logo{height:26px;width:auto;mix-blend-mode:lighten;margin-bottom:1rem}
.footer-brand p{margin:0 0 1.2rem;max-width:34ch}
.footer-social{display:flex;gap:.6rem}
.footer-social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line-2);border-radius:10px;color:var(--text);transition:color .2s,border-color .2s}
.footer-social a:hover{color:var(--ink);border-color:var(--muted)}
.footer-col h2{font:700 .85rem/1 var(--display);letter-spacing:.06em;color:var(--ink);margin:.5rem 0 1.1rem}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.footer-col a{text-decoration:none;transition:color .2s;overflow-wrap:anywhere}
.footer-col a:hover{color:var(--ink)}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem 2rem;margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);font-size:.95rem}
.footer-bottom p{margin:0}
.disclosure{flex-basis:100%;order:3;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.disclosure summary{cursor:pointer;list-style:none;padding:.7rem 1rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:.6rem}
.disclosure summary::-webkit-details-marker{display:none}
.disclosure summary::before{content:"";width:.55rem;height:.55rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s var(--ease)}
.disclosure[open] summary::before{transform:rotate(45deg)}
.disclosure summary:hover{color:var(--ink)}
.disclosure p{margin:0;padding:0 1rem 1rem 2.15rem;max-width:90ch;line-height:1.55}

/* Botón flotante de Discord */
.discord-float{position:fixed;right:1.25rem;bottom:1.25rem;z-index:40;width:54px;height:54px;display:grid;place-items:center;background:#6c6a72;color:#fff;border-radius:50%;box-shadow:0 6px 20px rgba(0,0,0,.45);transition:transform .25s var(--ease),opacity .25s}
.discord-float .ic{width:26px;height:26px}
.discord-float:hover{transform:translateY(-3px)}
.js .discord-float{opacity:0;pointer-events:none;transform:translateY(12px)}
.js .discord-float.show{opacity:1;pointer-events:auto;transform:none}

/* Cookies */
.link-btn{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.link-btn:hover{color:var(--ink)}
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:60;max-width:980px;margin-inline:auto;background:rgba(14,16,15,.98);border:1px solid var(--line-2);border-radius:16px;padding:1.2rem 1.4rem;display:flex;gap:1.4rem;align-items:flex-end;box-shadow:0 20px 50px -20px rgba(0,0,0,.9)}
.cookie-main{flex:1;min-width:0}
.cookie-title{margin:0 0 .3rem;font:700 1rem var(--display);color:var(--ink)}
.cookie-main p{margin:0;color:var(--text);font-size:1.02rem}
.cookie-main a{color:var(--blue)}
.cookie-options{display:grid;gap:.5rem;margin-top:1rem}
.cookie-options .checkbox span{color:var(--text)}
.cookie-options b{color:var(--ink)}
.cookie-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;flex:none}

/* Páginas legales */
.legal-page{padding:130px 0 5rem}
.legal-wrap{max-width:860px}
html[lang="en"] .legal-doc[data-doc-lang="es"],html[lang="es"] .legal-doc[data-doc-lang="en"]{display:none}
.legal-title{font:800 clamp(1.9rem,4.2vw,2.8rem)/1.15 var(--display);color:var(--ink);margin:0 0 .5rem;max-width:none;text-align:left}
.legal-update{color:var(--muted);margin:0 0 1.2rem}
.legal-intro{color:var(--text);margin:0 0 2rem;font-size:1.15rem}
.legal-toc{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem 1.4rem;margin-bottom:2.5rem}
.legal-toc ol{list-style:none;margin:0;padding:0;columns:2;column-gap:2rem}
.legal-toc li{margin:.2rem 0;break-inside:avoid}
.legal-toc a{color:var(--text);text-decoration:none}
.legal-toc a:hover{color:var(--blue)}
.legal-content section{scroll-margin-top:90px;padding-top:.4rem}
.legal-content h2{font:700 1.15rem/1.35 var(--display);color:var(--ink);margin:2.2rem 0 .8rem}
.legal-content p,.legal-content li{color:var(--text);max-width:72ch}
.legal-content ul{padding-left:1.3rem}
.legal-content li{margin:.35rem 0}
.legal-content a{color:var(--blue)}
.legal-content strong{color:var(--ink)}
/* Tablas legales */
.refund-table{display:grid;border:1px solid var(--line-2);border-radius:12px;overflow:hidden;margin:1rem 0 1.4rem;max-width:72ch}
.refund-table [role=row]{display:grid;grid-template-columns:minmax(150px,.8fr) 2fr;border-top:1px solid var(--line)}
.refund-table [role=row]:first-child{border-top:0}
.refund-table span{padding:.8rem 1rem;color:var(--text)}
.refund-table span:first-child{color:var(--ink);font-weight:700;background:var(--panel)}
.refund-table .rt-head span{background:var(--panel-2);font:700 .78rem var(--display);letter-spacing:.04em;color:var(--muted)}
.refund-table code{font-size:.95em;color:var(--blue)}
@media (max-width:640px){.refund-table [role=row]{grid-template-columns:1fr}.refund-table .rt-head{display:none}}
mark.ph{background:rgba(206,205,208,.18);color:#cecdd0;padding:0 .2em;border-radius:3px}

/* 404 */
.notfound{min-height:80vh;display:flex;align-items:center;text-align:center;padding:120px 0 4rem}
.notfound .big{font:800 clamp(5rem,15vw,9rem)/.9 var(--display);color:var(--blue);margin:0 0 1rem}
.notfound .legal-title{text-align:center}

/* Movimiento */
@media (prefers-reduced-motion:no-preference){
  .js .hero h1{animation:in .9s var(--ease) both}
  .js .hero-subtitle{animation:in .9s var(--ease) .08s both}
  .js .hero-buttons{animation:in .9s var(--ease) .16s both}
  .js .hero-trust{animation:in .9s var(--ease) .24s both}
  .js .hero-jaguar{animation:fade .9s var(--ease) .1s both}
  .js .hv-roblox{animation:in .8s var(--ease) .35s both,float 7s ease-in-out 1.2s infinite}
  .js .hv-discord{animation:in .8s var(--ease) .5s both,float 8s ease-in-out 1.6s infinite reverse}
  .js .hv-status{animation:in .8s var(--ease) .65s both}
  .js [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
  .js [data-reveal].is-in{opacity:1;transform:none}
}
@keyframes in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:.95}}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -8px}}

/* Tablet */
@media (max-width:1040px){
  .menu-toggle{display:block}
  .navbar nav ul{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:rgba(8,9,10,.98);border-bottom:1px solid var(--line);padding:.5rem 1.5rem 1.25rem}
  .navbar nav ul.active{display:flex}
  .navbar nav li{border-bottom:1px solid var(--line)}
  .navbar nav li:last-child{border:0;padding-top:1rem}
  .navbar nav a{display:block;padding:.9rem 0}
  .navbar nav a.btn-primary{display:inline-flex;padding:.85rem 1.3rem}
  .grid-servicios,.pasos,.grid-projects,.reviews{grid-template-columns:repeat(2,1fr)}
  .sobre-grid,.contact-grid,.project-featured,.hero-layout{grid-template-columns:1fr}
  .hero-visual{max-width:460px}
  .cookie-banner{flex-direction:column;align-items:stretch}
  .project-featured .project-media{border-right:0;border-bottom:1px solid var(--line);min-height:260px}
  .footer-grid{grid-template-columns:1fr 1fr}
}
/* Teléfono */
@media (max-width:640px){
  .container{width:min(1180px,100% - 2rem)}
  .nav-content{gap:.6rem}
  .logo img{height:19px}
  .grid-servicios,.pasos,.grid-projects,.grid-projects-all,.reviews,.form-row,.footer-grid{grid-template-columns:1fr}
  .hv{font-size:11.5px;padding:10px}
  .hv-status{min-width:140px}
  .cookie-actions{justify-content:stretch}
  .cookie-actions button{flex:1}
  .hero{padding-top:110px;min-height:auto}
  .section-head-row,.cta-inner{flex-direction:column;align-items:flex-start}
  .legal-toc ol{columns:1}
  .footer-bottom{flex-direction:column}
}

/* ================= Portal de desarrolladores ================= */
.portal-badge{font:700 .75rem/1 var(--display);letter-spacing:.05em;color:var(--blue);border:1px solid var(--line-2);border-radius:999px;padding:.45rem .8rem;margin-right:auto}
.portal .logo{margin-right:1rem}
.portal-user{display:flex;align-items:center;gap:.8rem;color:var(--text);font-weight:600}
.portal-main{padding:110px 0 4rem;min-height:100vh}
.portal-main h1{text-align:left;font-size:clamp(1.6rem,3vw,2.1rem);margin:0 0 .4rem;max-width:none}
.portal-main h2{font:700 1.2rem var(--display);color:var(--ink);margin:0}
.portal-msg{color:var(--muted)}
.muted{color:var(--muted)}
.portal-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:clamp(1.3rem,3vw,2rem);margin-top:1.5rem}
.portal-narrow{max-width:460px;margin-inline:auto}
.portal-form{display:grid;gap:1rem;margin-top:1.2rem}
.portal-form label{display:grid;gap:.35rem;font-weight:600;color:var(--ink)}
.portal-form input,.portal-form select,.portal-form textarea{width:100%;background:#08090a;color:var(--ink);border:1px solid var(--line-2);border-radius:9px;padding:.75rem .9rem;font:500 1.05rem var(--body)}
.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(126,124,132,.18)}
.portal-form .checkbox input{width:1.1rem;padding:0}
.portal-inline{grid-template-columns:1fr 1.3fr .8fr auto;align-items:end}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.hint{margin:0;color:var(--muted);font-size:.95rem}
.row-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.toggles{gap:1.6rem}
.portal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.portal-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.portal-table{width:100%;border-collapse:collapse;font-size:1.02rem}
.portal-table th{text-align:left;font:700 .75rem var(--display);letter-spacing:.05em;color:var(--muted);padding:.9rem 1rem;border-bottom:1px solid var(--line);white-space:nowrap}
.portal-table td{padding:.75rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--text)}
.portal-table tr:last-child td{border-bottom:0}
.portal-table b{color:var(--ink);margin-right:.5rem}
.thumb{width:64px;height:40px;object-fit:cover;border-radius:6px;background:var(--panel-2);display:grid;place-items:center;color:var(--muted)}
.portal-empty{padding:2rem;text-align:center;color:var(--muted);margin:0}
.pill{display:inline-block;font-size:.85rem;font-weight:700;padding:.1rem .6rem;border-radius:999px;background:var(--blue-soft);color:var(--blue)}
.pill-ok{background:#2c312d;color:#cecdd0}
.pill-draft{background:#2c312d;color:#a7a2a9}
.portal-dialog{width:min(860px,100% - 2rem);max-height:90vh;background:var(--panel);color:var(--text);border:1px solid var(--line-2);border-radius:16px;padding:clamp(1.2rem,3vw,2rem)}
.portal-dialog::backdrop{background:rgba(0,0,0,.7)}
.portal-dialog h2{font:700 1.2rem var(--display);color:var(--ink);margin:0}
.image-field{display:grid;gap:.7rem}
.image-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;min-height:96px;border:1px dashed var(--line-2);border-radius:10px;padding:.7rem;background:#08090a}
.gallery-empty{grid-column:1/-1;align-self:center;text-align:center;color:var(--muted)}
.gallery-item{position:relative;margin:0;aspect-ratio:16/9;border-radius:8px;overflow:hidden;border:1px solid var(--line-2)}
.gallery-item.is-cover{border-color:var(--blue)}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-item .mini-btn,.cover-badge{position:absolute;bottom:.35rem;font:700 .75rem/1 var(--body);border-radius:6px;padding:.3rem .45rem;border:0}
.gallery-item .mini-btn{left:.35rem;background:rgba(0,0,0,.75);color:#fff;cursor:pointer}
.gallery-item .mini-btn.danger{left:auto;right:.35rem;top:.35rem;bottom:auto;background:rgba(237,66,69,.9)}
.cover-badge{left:.35rem;background:var(--blue);color:#000}
.thumb-wrap{display:inline-flex;align-items:center;gap:.35rem}
.thumb-wrap small{color:var(--muted)}
.file-btn{cursor:pointer}
.btn-secondary.danger{color:#ff8a8a;border-color:#3d4144}
.btn-secondary.danger:hover{background:rgba(255,80,80,.08)}
.temp-pw{font:700 1.3rem/1.2 var(--display);letter-spacing:.06em;color:var(--ink);background:#08090a;border:1px solid var(--line-2);border-radius:10px;padding:1rem;text-align:center;user-select:all;overflow-wrap:anywhere}
@media (max-width:760px){.grid-2,.portal-inline{grid-template-columns:1fr}.portal-badge{display:none}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ===== Carrusel de fotos de proyectos ===== */
.project-media.has-carousel{position:relative;padding:0;display:block;aspect-ratio:16/9;background:#000}
.carousel{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pan-y}
.carousel-track{position:absolute;inset:0}
.slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .7s var(--ease);pointer-events:none}
.slide.is-active{opacity:1;pointer-events:auto}
.slide picture,.slide img{display:block;width:100%;height:100%;object-fit:cover}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(8,9,10,.7);color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .2s,background .2s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.carousel-btn .ic{width:18px;height:18px}
.carousel-prev{left:.7rem}.carousel-prev .ic{transform:rotate(180deg)}
.carousel-next{right:.7rem}
.carousel:hover .carousel-btn,.carousel:focus-within .carousel-btn{opacity:1}
.carousel-btn:hover{background:var(--blue);color:#000}
@media (hover:none){.carousel-btn{opacity:.85}}
.carousel-dots{position:absolute;left:50%;bottom:.7rem;transform:translateX(-50%);display:flex;gap:.4rem;padding:.35rem .5rem;border-radius:99px;background:rgba(8,9,10,.6)}
.carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:99px;background:rgba(255,255,255,.4);cursor:pointer;transition:width .3s var(--ease),background .3s}
.carousel-dot[aria-current="true"]{width:22px;background:var(--blue)}
@media (prefers-reduced-motion:reduce){.slide{transition:none}}
.project-featured:has(.carousel) .project-media{aspect-ratio:1600/841}

/* Top 3 trabajos y top 4 reseñas */
.grid-top{grid-template-columns:repeat(3,1fr)}
.grid-top:empty{display:none}
[data-projects-more]{margin-top:1.2rem}
.more-wrap{display:flex;justify-content:center;margin-top:1.6rem}
.reviews-top{grid-template-columns:repeat(2,1fr)}
.review-project{margin:-.3rem 0 0;font:700 1rem/1.35 var(--display);color:var(--ink);overflow-wrap:anywhere}
.reviews-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;color:var(--muted)}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:10px;overflow:hidden}
.seg button{background:none;border:0;color:var(--text);font:600 .95rem var(--body);padding:.5rem .9rem;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--blue);color:#000}
@media (max-width:1040px){.grid-top{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){.grid-top,.reviews-top{grid-template-columns:1fr}}

/* ===== Sobre el estudio ===== */
.about-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:center}
.eyebrow{margin:0 0 .7rem;font:700 .8rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.about-text .section-title{max-width:20ch;margin-bottom:1.3rem}
.about-lead{margin:0 0 1rem;color:var(--ink);font-size:1.2rem;line-height:1.6;max-width:60ch}
.about-lead strong{color:var(--ink)}
.about-desc{margin:0;color:var(--text);max-width:60ch}
.about-quote{display:flex;gap:.9rem;align-items:flex-start;margin:2rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line);max-width:60ch}
.about-quote .ic{flex:none;width:26px;height:26px;color:var(--blue);opacity:.8}
.about-quote blockquote{margin:0;font-size:1.15rem;line-height:1.5;font-style:italic;color:var(--ink)}
.about-card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.about-card::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--blue),transparent 70%)}
.about-stats{display:grid;grid-template-columns:1fr 1fr;margin:0}
.about-stats>div{padding:1.6rem 1.5rem;border-bottom:1px solid var(--line)}
.about-stats>div:nth-child(odd){border-right:1px solid var(--line)}
.about-stats dt{font:700 1.65rem/1.1 var(--display);color:var(--ink);letter-spacing:.01em}
.about-stats dd{margin:.45rem 0 0;color:var(--muted);font-size:1rem;line-height:1.35}
.about-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.5rem;color:var(--ink);text-decoration:none;font-weight:700;transition:background .2s,color .2s}
.about-cta .ic{width:18px;height:18px;color:var(--blue);transition:transform .25s var(--ease)}
.about-cta:hover{background:var(--panel-2);color:#fff}
.about-cta:hover .ic{transform:translateX(4px)}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}}
@media (max-width:420px){.about-stats>div{padding:1.2rem 1rem}.about-stats dt{font-size:1.35rem}}

/* ===== Paleta monocromática: ajustes finales ===== */
.btn-primary{background:var(--ink);color:#08090a}
.btn-primary:hover{background:var(--muted);color:#08090a}
::selection{background:var(--muted);color:#08090a}
.skip-link{background:var(--ink);color:#08090a}
.accent{color:var(--muted)}
.discord-float{background:var(--ink);color:#08090a}
.discord-float:hover{background:var(--muted)}
.star::before{color:var(--ink)}
.star{color:var(--charcoal)}
.review-avg{background:rgba(244,247,245,.06);border-color:var(--line-2);color:var(--ink)}
.rs-bar i{background:linear-gradient(90deg,var(--muted),var(--ink))}
.carousel-dot[aria-current="true"]{background:var(--ink)}
.carousel-btn:hover{background:var(--ink);color:#08090a}
.about-card::before{background:linear-gradient(90deg,var(--muted),transparent 70%)}
.seg button[aria-pressed="true"]{background:var(--ink);color:#08090a}
.cover-badge{background:var(--ink);color:#08090a}
.chip-project{border-color:var(--charcoal);color:var(--ink)}

/* ===== Más vida dentro de la paleta (Lilac Ash, Bright Snow, Carbon Black) ===== */
:root{
  --lilac:#a7a2a9;
  --lilac-2:#c3bec6;                         /* Lilac Ash aclarado */
  --lilac-glow:rgba(167,162,169,.22);
  --lilac-soft:rgba(167,162,169,.10);
  --carbon-tint:rgba(34,40,35,.55);          /* el verde suave del Carbon Black */
  --card-grad:linear-gradient(180deg,#141816 0%,#0f1110 100%);
}
body{background:
  radial-gradient(900px 600px at 85% -10%,rgba(167,162,169,.09),transparent 60%),
  radial-gradient(800px 600px at -10% 40%,rgba(34,40,35,.55),transparent 65%),
  var(--bg)}
/* Título principal: la palabra destacada con degradado lila → blanco */
.accent{background:linear-gradient(100deg,var(--lilac) 0%,var(--lilac-2) 45%,var(--ink) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-bg{background:
  radial-gradient(ellipse 45% 55% at 75% 45%,rgba(167,162,169,.20),transparent 70%),
  radial-gradient(ellipse 40% 45% at 8% 0%,rgba(34,40,35,.9),transparent 70%),
  radial-gradient(ellipse 30% 30% at 90% 95%,rgba(167,162,169,.08),transparent 70%)}
.hero-jaguar{filter:drop-shadow(0 0 60px rgba(167,162,169,.22))}
.section-dark{background:linear-gradient(180deg,#0d100e 0%,#0b0d0c 100%);border-block-color:rgba(167,162,169,.10)}
/* Tarjetas con degradado, borde lila sutil y brillo al pasar el mouse */
.card,.project-card,.review,.paso,.about-card,.reviews-summary,.form-contacto,.hv{background:var(--card-grad);border-color:rgba(167,162,169,.12)}
.card,.project-card,.review,.paso{transition:border-color .3s,transform .3s var(--ease),box-shadow .3s}
.card:hover,.project-card:hover,.review:hover,.paso:hover{border-color:rgba(167,162,169,.38);box-shadow:0 18px 50px -28px var(--lilac-glow),0 0 0 1px rgba(167,162,169,.06) inset}
.card-icon,.paso-num{background:linear-gradient(135deg,rgba(167,162,169,.22),rgba(167,162,169,.06));color:var(--ink);border:1px solid rgba(167,162,169,.18)}
.card-cta{background:linear-gradient(160deg,rgba(167,162,169,.14),rgba(34,40,35,.35));border-color:rgba(167,162,169,.25)}
/* Botones */
.btn-primary{background:linear-gradient(180deg,#f4f7f5 0%,#dcd8de 100%);color:#08090a;box-shadow:0 8px 24px -12px rgba(167,162,169,.55)}
.btn-primary:hover{background:linear-gradient(180deg,#e7e3e9 0%,#a7a2a9 100%);color:#08090a}
.btn-secondary:hover{border-color:var(--lilac);background:var(--lilac-soft)}
.link-arrow{color:var(--lilac-2)}
.link-arrow:hover{color:var(--ink)}
.eyebrow{color:var(--lilac-2)}
/* Etiquetas y chips */
.tags li,.chip{background:rgba(167,162,169,.08);border-color:rgba(167,162,169,.16);color:var(--lilac-2)}
.chip-project{background:rgba(244,247,245,.06);border-color:rgba(167,162,169,.30);color:var(--ink)}
/* Reseñas */
.rs-score{background:linear-gradient(180deg,var(--ink),var(--lilac));-webkit-background-clip:text;background-clip:text;color:transparent}
.rs-bar{background:rgba(167,162,169,.10)}
.rs-bar i{background:linear-gradient(90deg,#6c6a72,var(--lilac-2) 60%,var(--ink))}
.star::before{background:linear-gradient(180deg,var(--ink),var(--lilac-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.review-avg{background:linear-gradient(135deg,rgba(167,162,169,.18),rgba(167,162,169,.05));border-color:rgba(167,162,169,.30)}
/* Sobre el estudio y portal */
.about-card::before{height:2px;background:linear-gradient(90deg,var(--lilac-2),rgba(167,162,169,0) 75%)}
.about-quote .ic{color:var(--lilac-2)}
.carousel-dot[aria-current="true"]{background:linear-gradient(90deg,var(--lilac),var(--ink))}
/* Navegación */
.navbar.scrolled,.page .navbar{border-bottom-color:rgba(167,162,169,.12)}
:focus-visible{outline-color:var(--lilac-2)}
/* Ilustración principal con un poco más de brillo */
.hero-bg{background:
  radial-gradient(ellipse 42% 52% at 76% 46%,rgba(167,162,169,.28),transparent 70%),
  radial-gradient(ellipse 40% 45% at 8% 0%,rgba(34,40,35,.95),transparent 70%),
  radial-gradient(ellipse 30% 30% at 92% 96%,rgba(195,190,198,.10),transparent 70%)}
.hv{border-color:rgba(167,162,169,.22);box-shadow:0 22px 50px -22px rgba(0,0,0,.85),0 0 40px -18px rgba(167,162,169,.35)}
.hv .dot,.hv-status i{background:var(--lilac-2)!important;box-shadow:0 0 0 3px rgba(167,162,169,.18),0 0 10px rgba(195,190,198,.7)}
.hv-status span{color:var(--lilac-2)}
.mx-tier i,.mx-tier i.elite{background:linear-gradient(135deg,var(--ink),var(--lilac) 55%,#575a5e)!important}
.mx-tier em{background:rgba(167,162,169,.16)!important;color:var(--ink)!important;border:1px solid rgba(167,162,169,.3)}
.md-embed{border-left-color:var(--lilac)!important}
.hv-roblox .mx-head span,.mx-head span{background:var(--ink);color:#08090a}

/* ===== Tarjetas sobre el jaguar: colores originales ===== */
.hero-visual .hv{background:rgba(15,21,32,.92);border:1px solid #223047;color:#e6edf6;box-shadow:0 18px 40px -18px rgba(0,0,0,.8)}
.hero-visual .hv-discord{background:#313338;border-color:#3f4147}
.hero-visual .hv-status span{color:#6fe0a0}
.hero-visual .hv .dot,.hero-visual .hv-status i{background:#2ecc71!important;box-shadow:0 0 0 3px rgba(46,204,113,.18)}
.hero-visual .md-msg b{color:#f2f3f5}
.hero-visual .md-msg i{background:#5865f2;color:#fff}
.hero-visual .md-embed{background:#2b2d31;border-left-color:#1e88f0!important}
.hero-visual .md-embed span{color:#b5bac1}
.hero-visual .md-embed span b{color:#f2f3f5}
.hero-visual .mx-head span{background:#e8eef6;color:#05070a}
.hero-visual .mx-tier{background:#141d2b}
.hero-visual .mx-tier i{background:linear-gradient(135deg,#ffd23f,#f2a516)!important}
.hero-visual .mx-tier i.elite{background:linear-gradient(135deg,#b9a2ff,#7b5cf0)!important}
.hero-visual .mx-tier small{color:#93a1b3}
.hero-visual .mx-tier em{color:#7ee2a8!important;background:#1d3b2a!important;border:0}

/* ===== Estrellas en amarillo ===== */
.star::before{background:linear-gradient(180deg,#ffd45c,#f5b81c);-webkit-background-clip:text;background-clip:text;color:transparent}
.review-avg{background:rgba(245,184,28,.10);border-color:rgba(245,184,28,.35);color:#f5b81c}

/* Enlace al grupo de Roblox en la parte principal */
.hero-trust-link{flex-basis:100%}
.hero-trust-link a{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(167,162,169,.35);padding-bottom:2px;transition:border-color .2s,color .2s}
.hero-trust-link a:hover{border-bottom-color:var(--ink)}
.hero-trust-link .ic{color:var(--lilac-2)}

/* Ventana "¿Ya estás en el servidor?" */
.gate{width:min(440px,calc(100% - 2rem));padding:2rem 1.8rem 1.6rem;border:1px solid rgba(167,162,169,.22);border-radius:var(--r);background:linear-gradient(180deg,#151917,#0f1110);color:var(--text);text-align:center;box-shadow:0 30px 80px -30px rgba(0,0,0,.9),0 0 60px -30px rgba(167,162,169,.4)}
.gate::backdrop{background:rgba(8,9,10,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.gate[open]{animation:gate-in .25s var(--ease)}
@keyframes gate-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.gate-close{position:absolute;top:.6rem;right:.8rem;background:none;border:0;color:var(--muted);font-size:1.6rem;line-height:1;cursor:pointer;padding:.2rem .4rem}
.gate-close:hover{color:var(--ink)}
.gate-icon{width:54px;height:54px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,rgba(167,162,169,.22),rgba(167,162,169,.06));border:1px solid rgba(167,162,169,.2);color:var(--ink)}
.gate-icon .ic{width:28px;height:28px}
.gate h2{margin:0 0 .6rem;font:700 1.15rem/1.3 var(--display);color:var(--ink)}
.gate p{margin:0 0 1.4rem;color:var(--text)}
.gate-actions{display:grid;gap:.6rem}
.gate-actions a{width:100%}
@media (prefers-reduced-motion:reduce){.gate[open]{animation:none}}

/* ===== Aviso de cookies en celular: hoja inferior con botones apilados ===== */
@media (max-width:640px){
  .cookie-banner{left:0;right:0;bottom:0;max-width:none;margin:0;border-radius:18px 18px 0 0;border-width:1px 0 0;
    padding:1.8rem 1.4rem calc(1.4rem + env(safe-area-inset-bottom));max-height:88vh;max-height:88dvh;overflow-y:auto;
    flex-direction:column;align-items:stretch;gap:1.4rem;background:linear-gradient(180deg,#171b19,#0f1110);
    box-shadow:0 0 0 100vmax rgba(8,9,10,.62),0 -20px 60px -20px rgba(0,0,0,.8);animation:sheet-up .35s var(--ease)}
  .cookie-main .cookie-title{font-size:1.55rem;line-height:1.2;margin-bottom:.9rem}
  .cookie-main p{font-size:1.08rem;line-height:1.6}
  .cookie-actions{display:flex;flex-direction:column;gap:.7rem}
  .cookie-actions button{width:100%;flex:none;min-height:52px;font-size:1rem;border-radius:12px}
  #ck-accept{order:1}
  #ck-save{order:2}
  #ck-reject{order:3;background:#2c312d;border-color:#2c312d;color:var(--ink)}
  #ck-custom{order:4;background:none;border:0;min-height:44px;color:var(--ink);font-family:var(--body);font-size:1.08rem;letter-spacing:0}
  .cookie-options{gap:.8rem}
}
@keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.cookie-banner{animation:none}}

/* Franja de servicios bajo el hero */
.svc-band{position:relative;overflow:hidden;border-block:1px solid var(--line);background:rgba(167,162,169,.04);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.svc-band-track{display:flex;width:max-content}
.svc-band-list{display:flex;list-style:none;margin:0;padding:0}
.svc-band-list li{display:flex;align-items:center;padding:1rem 0;font-weight:700;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.svc-band-list li::before{content:"\2726";margin:0 2.2rem;color:#575a5e;font-size:.85em}
@media (prefers-reduced-motion:no-preference){.svc-band-track{animation:svc-band 38s linear infinite}.svc-band:hover .svc-band-track{animation-play-state:paused}}
@keyframes svc-band{to{transform:translateX(-50%)}}
@media (max-width:640px){.svc-band-list li{font-size:.82rem;padding:.85rem 0}.svc-band-list li::before{margin:0 1.4rem}}

/* ===== Hero v2: tres plataformas conectadas ===== */
.hero-pill{display:inline-flex;align-items:center;gap:.6rem;margin:0 0 1.2rem;font-weight:600;font-size:1rem;color:var(--lilac-2,#c3bec6)}
.hero-pill i{width:8px;height:8px;border-radius:50%;background:#2ecc71;box-shadow:0 0 0 4px rgba(46,204,113,.15);flex:none}
.hero-buttons .btn-secondary .ic{width:18px;height:18px;margin-right:.45rem}
.hero-proof{list-style:none;margin:0;padding:1.4rem 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1rem 0}
.hero-proof li{padding-right:1.6rem;margin-right:1.6rem;border-right:1px solid var(--line);display:flex;flex-direction:column}
.hero-proof li:last-child{border:0;margin:0;padding:0}
.hero-proof b{color:var(--ink);font-size:1.35rem;letter-spacing:-.01em;line-height:1.2}
.hero-proof span{color:var(--muted);font-size:.95rem}
.hx{position:relative;height:620px;width:100%;max-width:580px;justify-self:center}
.hx-orbit{position:absolute;left:50%;top:190px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(167,162,169,.13);pointer-events:none}
.hx-o1{width:300px;height:300px;background:radial-gradient(circle,rgba(167,162,169,.16),transparent 68%)}
.hx-o2{width:440px;height:440px;border-style:dashed;border-color:rgba(167,162,169,.10)}
.hx-o3{width:560px;height:560px;border-color:rgba(167,162,169,.05)}
.hx-jag{position:absolute;left:50%;top:190px;width:250px;height:auto;transform:translate(-46%,-52%);filter:drop-shadow(0 0 40px rgba(167,162,169,.35))}
.hx-node{position:absolute;display:flex;align-items:center;gap:9px;padding:8px 13px 8px 8px;border-radius:12px;background:rgba(17,19,18,.92);border:1px solid rgba(167,162,169,.16);font:600 14px/1.25 var(--body);color:var(--ink);box-shadow:0 14px 30px -14px rgba(0,0,0,.9);white-space:nowrap}
.hx-node i,.hx-rt i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none}
.hx-node .ic,.hx-rt .ic{width:16px;height:16px}
.hx-node small{display:block;font-weight:500;font-size:12.5px;color:var(--muted)}
.hx-dc{left:calc(50% - 290px);top:95px}.hx-rb{left:calc(50% + 125px);top:40px}.hx-web{left:calc(50% + 100px);top:225px}
.hx-dc i,.hx-r-dc i{background:#5865f2;color:#fff}.hx-rb i,.hx-r-rb i{background:#e8eef6;color:#08090a}.hx-web i,.hx-r-web i{background:linear-gradient(135deg,#c3bec6,#575a5e);color:#08090a}
.hx-live{position:absolute;right:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:#2ecc71;box-shadow:0 0 10px #2ecc71}
.hx-feed{position:absolute;left:0;right:0;margin-inline:auto;top:345px;width:min(440px,100%);background:linear-gradient(180deg,rgba(22,24,23,.96),rgba(12,13,13,.96));border:1px solid rgba(167,162,169,.16);border-radius:18px;padding:16px 18px 14px;box-shadow:0 30px 70px -30px rgba(0,0,0,.95),0 0 70px -35px rgba(167,162,169,.5);font-family:var(--body)}
.hx-evt{display:flex;align-items:center;gap:11px;padding-bottom:14px}
.hx-av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#c3bec6,#575a5e);display:grid;place-items:center;font-weight:800;color:#08090a;flex:none}
.hx-evt p{margin:0;font-size:15px;line-height:1.35;color:var(--text)}.hx-evt p b{color:var(--ink)}.hx-evt small{display:block;color:var(--muted);font-size:12.5px}
.hx-tag{margin-left:auto;font-size:12px;font-weight:700;color:#6fe0a0;background:rgba(46,204,113,.1);padding:4px 9px;border-radius:99px;white-space:nowrap}
.hx-routes{position:relative;padding-left:22px;display:grid;gap:7px}
.hx-routes::before{content:"";position:absolute;left:16px;top:-6px;bottom:18px;width:1px;background:linear-gradient(#a7a2a9,rgba(167,162,169,.15))}
.hx-rt{position:relative;display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:11px;background:rgba(167,162,169,.05)}
.hx-rt::before{content:"";position:absolute;left:-6px;top:50%;width:6px;height:1px;background:#a7a2a9}
.hx-rt b{display:block;color:var(--ink);font-size:14px;line-height:1.2}.hx-rt span{font-size:12.5px;color:var(--muted);line-height:1.3;display:block}
.hx-rt em{font-style:normal;font-size:12px;color:#6fe0a0;font-family:ui-monospace,Menlo,monospace;white-space:nowrap}
@media (prefers-reduced-motion:no-preference){.js .hero-pill{animation:in .9s var(--ease) both}.js .hero-proof{animation:in .9s var(--ease) .24s both}.js .hx-feed{animation:in .9s var(--ease) .3s both}}
@media (max-width:980px){.hx{margin-inline:auto}}
@media (max-width:640px){
 .hx{height:515px;overflow:hidden}.hx-orbit,.hx-jag{top:150px}.hx-o1{width:220px;height:220px}.hx-o2{width:320px;height:320px}.hx-o3{display:none}.hx-jag{width:180px}
 .hx-dc{left:0;top:20px}.hx-rb{left:auto;right:0;top:12px}.hx-web{display:none}.hx-node{padding:6px 10px 6px 6px;font-size:13px}.hx-node small{display:none}
 .hx-feed{top:270px;width:100%;padding:14px 12px 12px}.hx-tag{display:none}
 .hero-proof li{padding-right:1.1rem;margin-right:1.1rem}
}

/* ===== Mejoras UX ===== */
/* Proyectos: si hay uno solo, tarjeta destacada horizontal */
.grid-top:has(> .project-card:only-child){grid-template-columns:1fr}
.grid-top > .project-card:only-child{display:grid;grid-template-columns:1.25fr 1fr;align-items:stretch}
.grid-top > .project-card:only-child .project-media{aspect-ratio:16/10;align-self:center;border-bottom:0;border-right:1px solid var(--line)}
.grid-top > .project-card:only-child .project-body{padding:2rem;display:flex;flex-direction:column;justify-content:center}
.grid-top > .project-card:only-child h3{font-size:1.5rem}
/* Carrusel: áreas táctiles de 44 px */
.carousel-btn{width:44px;height:44px}
.carousel-dot{position:relative}.carousel-dot::after{content:"";position:absolute;inset:-12px -6px}
/* Selector de idioma de 44 px */
.lang button{padding:.95rem .8rem;font-size:.78rem}
/* Cómo trabajamos: pasos conectados */
.pasos{gap:1.4rem}
.paso{position:relative}
.paso:not(:last-child)::after{content:"";position:absolute;top:2.85rem;right:-1.4rem;width:1.4rem;height:1px;background:linear-gradient(90deg,rgba(167,162,169,.6),rgba(167,162,169,.15))}
.paso-num{width:48px;height:48px;font-size:1.1rem;border-radius:50%}
.paso h3{font-size:1.15rem}
/* Opiniones sin datos */
.reviews-empty{border-style:solid;background:linear-gradient(135deg,rgba(167,162,169,.10),rgba(167,162,169,.02));padding:2rem}
.reviews-empty p{font-size:1.1rem;color:var(--ink)}
.reviews-empty p::before{content:"★★★★★";display:block;color:#f5b81c;letter-spacing:.2em;margin-bottom:.4rem;font-size:1.1rem}
.reviews-empty .btn-sm{padding:.8rem 1.2rem;background:var(--ink);color:#08090a;border-color:var(--ink)}
/* Formulario: casilla más grande */
.checkbox input{width:22px;height:22px;flex:none}
@media (max-width:980px){.paso:nth-child(2n)::after{display:none}}
@media (max-width:640px){
 .footer-col a{display:inline-block;padding:.7rem 0}.paso::after{display:none}
 .grid-top > .project-card:only-child{grid-template-columns:1fr}
 .grid-top > .project-card:only-child .project-media{aspect-ratio:16/10;border-right:0;border-bottom:1px solid var(--line)}
 .grid-top > .project-card:only-child .project-body{padding:1.4rem}
}


/* ===== Portal: solicitudes ===== */
.portal-tabs{display:flex;gap:.4rem;margin:0 0 1.6rem;border-bottom:1px solid var(--line)}
.portal-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:700 1rem var(--body);padding:.9rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.5rem}
.portal-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.tab-count{background:#2ecc71;color:#06140b;border-radius:99px;font-size:.75rem;padding:.1rem .5rem;font-weight:800}
.req-filters select,.req-filters input{background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:9px;padding:.6rem .8rem;font:500 .95rem var(--body);min-height:44px}
.portal-table .mono{font-family:ui-monospace,Menlo,monospace;font-size:.92rem}
.portal-table tr.is-new td:first-child{box-shadow:inset 3px 0 0 #2ecc71}
.cell-2{display:flex;flex-direction:column}.cell-2 small{font-size:.85rem}
.pill-new{background:rgba(46,204,113,.14);color:#6fe0a0}
.pill-done{background:rgba(167,162,169,.16);color:#f4f7f5}
.pill-web{background:#2c312d;color:#cecdd0}.pill-discord{background:rgba(88,101,242,.18);color:#b9bfff}
.req-grid{display:grid;grid-template-columns:max-content 1fr;gap:.45rem 1.2rem;margin:0 0 1rem}
.req-grid dt{color:var(--muted)}.req-grid dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.req-message pre{white-space:pre-wrap;font:500 1rem/1.5 var(--body);color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;margin:.4rem 0 1.2rem;max-height:260px;overflow:auto}
.req-notify{border-top:1px solid var(--line);padding-top:1rem}
.req-section{border-top:1px solid var(--line);padding:1rem 0 .4rem}
.req-section h3{margin:0 0 .3rem;font:700 1rem var(--body);color:var(--ink)}
.req-section .muted{margin:0 0 .7rem}
.req-panel{margin-top:.8rem;padding:1rem;border:1px solid var(--line-2);border-radius:12px;background:var(--panel-2);display:grid;gap:.8rem}
.req-preview{border-left:3px solid #a7a2a9;padding:.6rem .9rem;background:rgba(167,162,169,.06);border-radius:6px}
.req-preview p{margin:.25rem 0 0;color:var(--ink);font-size:.98rem}
.req-footer{border-top:1px solid var(--line);padding-top:1rem;margin-top:.6rem}

/* Página "Continúa por Discord" */
.gate-inline{margin:0 auto;position:relative}
.gate-inline .gate-h{margin:0 0 .6rem;font:700 1.35rem/1.3 var(--display);color:var(--ink)}
.gate-actions{display:flex;flex-direction:column;gap:.6rem;margin-top:1.2rem}
.support-jes{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap;margin:1rem 0 0;padding:.7rem;border:1px dashed rgba(167,162,169,.3);border-radius:10px;color:var(--muted)}
.support-jes b{color:var(--ink);font-family:ui-monospace,Menlo,monospace;letter-spacing:.03em}
.gate-note{margin:1rem 0 0;font-size:.92rem;color:var(--muted)}

/* Revisión UX: áreas táctiles */
.checkbox input{width:22px!important;height:22px!important;margin-top:.1rem}
.logo{display:inline-flex;align-items:center;min-height:44px}

/* Portal en teléfono: la tabla de solicitudes se vuelve tarjetas */
@media (max-width:640px){
 #panel-requests .portal-table thead{display:none}
 #panel-requests .portal-table,#panel-requests .portal-table tbody{display:block}
 #panel-requests .portal-table tr{display:grid;grid-template-columns:1fr auto;gap:.35rem .8rem;padding:.9rem 1rem;border-bottom:1px solid var(--line)}
 #panel-requests .portal-table td{display:flex;gap:.6rem;align-items:baseline;padding:0;border:0}
 #panel-requests .portal-table td::before{content:attr(data-label);min-width:4.6rem;font-size:.8rem;color:var(--muted)}
 #panel-requests .portal-table td.cell-action{grid-column:2;grid-row:1/span 2;align-self:start}
 #panel-requests .portal-table td.cell-action::before,#panel-requests .portal-table td:first-child::before{display:none}
 #panel-requests .portal-table td:not(.cell-action){grid-column:1}
 .req-filters{width:100%}.req-filters input{flex:1 1 100%}
}
@media (max-width:640px){#panel-requests .portal-table tr.is-new td:first-child{box-shadow:none}#panel-requests .portal-table tr.is-new{box-shadow:inset 3px 0 0 #2ecc71}}

.req-warn{color:#ffb4a8;font-weight:600}

/* ===== Cuenta de cliente ===== */
.nav-account{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 .9rem;margin-right:.6rem;border:1px solid var(--line-2);border-radius:9px;color:var(--ink);text-decoration:none;font-weight:700;font-size:.95rem;white-space:nowrap;flex:none;transition:border-color .2s,background .2s}
.nav-account:hover,.nav-account[aria-current="page"]{border-color:rgba(167,162,169,.5);background:rgba(167,162,169,.08)}
.nav-account .ic{width:18px;height:18px}
@media (max-width:980px){.nav-account span{display:none}.nav-account{padding:0;width:44px;justify-content:center}}
.account-page{padding:120px 0 5rem;min-height:80vh}
.account-root{max-width:980px;margin:0 auto;display:grid;gap:1.2rem}
.account-root>.acc-card:only-of-type,.account-root>.acc-card:first-child:nth-last-child(2){max-width:480px;width:100%;margin:0 auto}
.acc-loading{color:var(--muted);text-align:center}
.acc-card{background:var(--card-grad,var(--panel));border:1px solid rgba(167,162,169,.14);border-radius:var(--r);padding:1.6rem 1.5rem;display:grid;gap:.9rem;align-content:start}
.acc-card h2{margin:0;font:700 1.25rem/1.3 var(--display);color:var(--ink)}
.acc-sub{margin:0;color:var(--text);font-size:1rem}
.acc-sub.st-ok{color:#6fe0a0}.acc-sub.st-warn{color:#ffd45c}.acc-sub.st-new{color:var(--lilac-2,#c3bec6)}
.acc-providers{display:grid;gap:.6rem}
.acc-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.7rem 1rem;border-radius:10px;border:1px solid transparent;font:700 1rem var(--body);cursor:pointer;width:100%}
.acc-btn .ic{width:20px;height:20px}
.acc-discord{background:#5865f2;color:#fff}.acc-discord:hover{background:#4752c4}
.acc-google{background:#f4f7f5;color:#08090a}.acc-google:hover{background:#dcd8de}
.acc-g{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#08090a;color:#f4f7f5;font:800 .8rem/1 var(--body);flex:none}
.acc-method .acc-g{background:#f4f7f5;color:#08090a}
.acc-divider{display:flex;align-items:center;gap:.8rem;margin:.2rem 0;color:var(--muted);font-size:.9rem}
.acc-divider::before,.acc-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.acc-form{display:grid;gap:.8rem}
.acc-field{display:grid;gap:.35rem;font-weight:600;color:var(--ink)}
.acc-field input,.acc-inline input{background:#0a0b0b;border:1px solid var(--line-2);border-radius:9px;color:var(--ink);padding:.75rem .9rem;font:500 1rem var(--body);min-height:46px;width:100%}
.acc-field input:focus,.acc-inline input:focus{outline:2px solid var(--blue);outline-offset:1px}
.acc-links{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.acc-link{background:none;border:0;color:var(--lilac-2,#c3bec6);font:600 .95rem var(--body);cursor:pointer;padding:.5rem 0;text-decoration:underline;text-underline-offset:3px;min-height:44px}
.acc-link.danger{color:#ffb4a8}
.acc-legal{margin:0;font-size:.88rem;color:var(--muted)}.acc-legal a{color:var(--text)}
.acc-note{margin:0;color:var(--muted)}
.acc-banner{margin:0 auto;max-width:980px;width:100%;padding:.85rem 1.1rem;border-radius:10px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink)}
.acc-banner.success{border-color:rgba(46,204,113,.35);background:rgba(46,204,113,.08)}
.acc-banner.error{border-color:rgba(255,120,100,.35);background:rgba(255,120,100,.08)}
.acc-hello h1{margin:0 0 .3rem;font:800 clamp(1.8rem,3vw,2.4rem)/1.15 var(--display);color:var(--ink)}
.acc-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1.2rem;align-items:start}
.acc-grid>div{display:grid;gap:1.2rem}
.acc-ask{border-color:rgba(88,101,242,.45);background:linear-gradient(135deg,rgba(88,101,242,.14),rgba(88,101,242,.03))}
.acc-inline{display:flex;gap:.5rem}.acc-inline input{flex:1;font-family:ui-monospace,Menlo,monospace;text-transform:uppercase}
.acc-reqs{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.acc-reqs li{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;background:rgba(167,162,169,.04)}
.acc-reqs li>div:first-child{display:grid}.acc-reqs li span{color:var(--muted);font-size:.92rem}
.acc-reqs .mono{font-family:ui-monospace,Menlo,monospace;color:var(--ink)}
.acc-req-meta{display:grid;justify-items:end;gap:.2rem}.acc-req-meta small{color:var(--muted)}
.acc-pill{font-size:.8rem;font-weight:700;padding:.15rem .6rem;border-radius:99px;background:#2c312d;color:#cecdd0}
.acc-pill.st-new{background:rgba(167,162,169,.15);color:#e4e0e6}.acc-pill.st-ok{background:rgba(46,204,113,.14);color:#6fe0a0}.acc-pill.st-closed{background:#1f2421;color:#a7a2a9}
.acc-empty{margin:0;color:var(--muted)}
.acc-sep{display:grid;gap:.5rem;border-top:1px solid var(--line);padding-top:.9rem}
.acc-method{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.6rem 0;border-top:1px solid var(--line)}
.acc-method:first-of-type{border-top:0}.acc-method>.ic{width:22px;height:22px;color:var(--ink)}
.acc-method b{display:block;color:var(--ink)}.acc-method small{color:var(--muted);overflow-wrap:anywhere}
.acc-method .acc-btn{width:auto;min-height:40px;padding:.45rem .9rem;font-size:.9rem}
.acc-danger{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:0 .3rem}
.form-account{margin:0 0 1rem;padding:.75rem 1rem;border-radius:10px;border:1px dashed rgba(167,162,169,.3);font-size:.95rem;color:var(--text)}
.form-account p{margin:0}.form-account a{color:var(--ink);font-weight:700}
@media (max-width:820px){.acc-grid{grid-template-columns:1fr}.account-page{padding-top:100px}}
/* Barra: el botón de cuenta queda solo como icono en pantallas medianas para no apretar el menú */
#nav-menu .btn-primary{white-space:nowrap}
@media (max-width:1360px){.nav-account span{display:none}.nav-account{padding:0;width:44px;justify-content:center}}
/* Revisión UX de "Mi cuenta" */
.acc-card h1.acc-title{margin:0;font:700 1.35rem/1.3 var(--display);color:var(--ink)}
.account-page .btn-sm,.account-page .acc-method .acc-btn{min-height:44px}
.acc-btn[disabled]{opacity:.7;cursor:progress}
.acc-banner:focus{outline:2px solid var(--blue);outline-offset:2px}
body:has(.account-page) .discord-float{display:none}   /* en "Mi cuenta" no tapa el contenido; ahí ya hay botones de Discord */

/* ---------- Áreas táctiles: enlaces sueltos con flecha y el índice legal (sin cambiar el diseño) ---------- */
.link-arrow{position:relative}
.link-arrow::after{content:"";position:absolute;inset:-10px -6px}
@media (max-width:760px){
  .legal-toc li{margin:0}
  .legal-toc a{display:flex;align-items:center;min-height:44px}
}

/* Proyecto abierto desde el botón "Ver proyecto" de Discord */
.project-card{scroll-margin-top:96px}
.project-card:focus{outline:none}
.project-card.project-linked{box-shadow:0 0 0 2px var(--ink),0 0 32px var(--lilac-glow);transition:box-shadow .6s var(--ease)}

/* Portal: botones cómodos para tocar en celular y tableta */
@media (pointer:coarse){ .portal .btn-sm,.portal .btn-primary,.portal .btn-secondary{min-height:44px} }
