[hideprofile]
[html]
<style>
.rankinfo,
.rankinfo *{
box-sizing:border-box;
}
.rankinfo{
width:100%;
display:flex;
flex-direction:column;
gap:12px;
color:var(--dark-accent);
font-family:var(--main-font, Arial, sans-serif);
}
.rank-top{
display:flex;
align-items:stretch;
gap:14px;
}
.rank-left{
width:28%;
min-width:220px;
display:flex;
justify-content:center;
align-items:stretch;
}
/* Левая эмблема полностью собрана из div и CSS-форм. */
.rank-emblem{
position:relative;
width:100%;
min-height:434px;
overflow:hidden;
isolation:isolate;
color:var(--dark-accent);
background:
radial-gradient(circle at 50% 31%, #fff 0 13%, transparent 36%),
linear-gradient(145deg, #fff 0%, var(--soft-accent) 165%);
border:2px solid #fff;
border-radius:14px;
box-shadow:0 6px 16px rgba(0,0,0,.15);
}
.rank-emblem::before{
content:"";
position:absolute;
inset:10px;
z-index:8;
pointer-events:none;
border:3px solid var(--accent);
border-radius:8px;
}
.rank-emblem::after{
content:"";
position:absolute;
inset:17px;
z-index:8;
pointer-events:none;
border:1px solid var(--soft-accent);
border-radius:5px;
}
.rank-emblem__region{
position:absolute;
top:24px;
left:24px;
right:24px;
z-index:10;
overflow:hidden;
color:var(--dark-accent);
font-family:var(--bold-font, Arial, sans-serif);
font-size:clamp(20px, 2.7vw, 31px);
font-weight:900;
line-height:1;
letter-spacing:.06em;
text-align:center;
text-transform:uppercase;
white-space:nowrap;
}
.rank-emblem__symbol{
position:absolute;
top:67px;
right:26px;
bottom:102px;
left:26px;
}
.rank-ball{
position:absolute;
top:0;
left:50%;
z-index:7;
width:104px;
height:104px;
overflow:hidden;
background:#fff;
border:7px solid var(--dark-accent);
border-radius:50%;
transform:translateX(-50%);
}
.rank-ball__top{
position:absolute;
top:0;
right:0;
left:0;
height:50%;
z-index:0;
background:var(--accent);
}
.rank-ball::before{
content:"";
position:absolute;
top:50%;
left:-4px;
width:calc(100% + 8px);
height:8px;
z-index:2;
background:var(--dark-accent);
transform:translateY(-50%);
}
.rank-ball::after{
content:"";
position:absolute;
top:50%;
left:50%;
width:27px;
height:27px;
z-index:3;
background:#fff;
border:7px solid var(--dark-accent);
border-radius:50%;
box-shadow:0 0 0 3px #fff;
transform:translate(-50%,-50%);
}
/* Белая обводка строится вокруг всего кубка одним нижним слоем. */
.rank-cup{
position:absolute;
inset:0;
z-index:2;
filter:
drop-shadow(4px 0 0 #fff)
drop-shadow(-4px 0 0 #fff)
drop-shadow(0 4px 0 #fff)
drop-shadow(0 -4px 0 #fff);
}
/* Центральная ножка награды. */
.rank-stem{
position:absolute;
top:76px;
bottom:25px;
left:50%;
z-index:2;
width:46px;
background:var(--accent);
clip-path:polygon(50% 0,70% 13%,67% 72%,100% 100%,0 100%,33% 72%,30% 13%);
transform:translateX(-50%);
}
/* Одна V состоит из двух прямоугольных плеч. */
.rank-v{
--v-length:150px;
--v-width:18px;
--v-angle:28deg;
position:absolute;
bottom:28px;
left:50%;
z-index:3;
width:0;
height:0;
}
.rank-v__arm{
position:absolute;
bottom:0;
left:calc(var(--v-width) / -2);
width:var(--v-width);
height:var(--v-length);
background:var(--accent);
clip-path:polygon(50% 0,100% 13%,67% 100%,33% 100%,0 13%);
transform-origin:50% 100%;
}
.rank-v__arm--left{
transform:rotate(calc(var(--v-angle) * -1));
}
.rank-v__arm--right{
transform:rotate(var(--v-angle));
}
/* Одна широкая V делает силуэт кубка проще и выразительнее. */
.rank-v--outer{
--v-length:169px;
--v-width:36px;
--v-angle:25deg;
bottom:34px;
z-index:1;
}
/* Три плоские ступени повторяют составное основание настоящего кубка. */
.rank-collar,
.rank-base,
.rank-foot{
position:absolute;
left:50%;
background:var(--accent);
transform:translateX(-50%);
}
.rank-collar{
bottom:32px;
z-index:5;
width:70px;
height:16px;
clip-path:polygon(14% 0,86% 0,100% 100%,0 100%);
}
.rank-base{
bottom:13px;
z-index:6;
width:104px;
height:24px;
clip-path:polygon(7% 0,93% 0,100% 20%,95% 100%,5% 100%,0 20%);
}
.rank-foot{
bottom:0;
z-index:5;
width:126px;
height:16px;
clip-path:polygon(8% 0,92% 0,100% 100%,0 100%);
}
.rank-emblem__caption{
position:absolute;
right:27px;
bottom:24px;
left:27px;
z-index:10;
color:var(--dark-accent);
font-family:var(--bold-font, Arial, sans-serif);
font-weight:900;
line-height:.92;
letter-spacing:.025em;
text-align:center;
text-transform:uppercase;
}
.rank-emblem__caption::before,
.rank-emblem__caption::after{
content:"";
position:absolute;
top:6px;
width:24%;
height:3px;
background:var(--dark-accent);
}
.rank-emblem__caption::before{ left:0; }
.rank-emblem__caption::after{ right:0; }
.rank-emblem__caption span{
display:block;
font-size:12px;
letter-spacing:.08em;
}
.rank-emblem__caption strong{
display:block;
margin-top:5px;
font-size:22px;
}
.rank-right{
flex:1;
display:flex;
min-width:0;
max-height:434px;
}
.rank-banner{
position:relative;
flex:1;
display:flex;
min-width:0;
flex-direction:column;
padding:22px 20px 24px;
overflow:hidden;
color:#fff;
background:linear-gradient(135deg,var(--accent) 0%,var(--dark-accent) 100%);
border:2px solid #fff;
border-radius:14px;
box-shadow:0 6px 16px rgba(0,0,0,.15);
}
.rank-banner::before{
content:"";
position:absolute;
inset:0;
pointer-events:none;
background:
linear-gradient(-18deg,transparent 0 72%,rgba(255,255,255,.11) 72% 74%,transparent 74%),
radial-gradient(circle at 100% 0, var(--soft-accent), transparent 35%);
border-radius:inherit;
opacity:.7;
}
.rank-banner .title,
.rank-banner .desc{
position:relative;
z-index:1;
}
.rank-banner .title{
margin:0 0 10px;
font-family:var(--bold-font, Arial, sans-serif);
font-size:24px;
line-height:1.14;
letter-spacing:.03em;
text-transform:uppercase;
}
.rank-banner .desc{
min-height:0;
margin:0;
padding-right:8px;
overflow-y:auto;
font-size:14px;
line-height:1.55;
scrollbar-color:var(--soft-accent) transparent;
scrollbar-width:thin;
}
.rank-banner .desc p{
margin:0 0 12px;
}
.rank-banner .desc p:last-child{
margin-bottom:0;
}
.rank-banner .desc::-webkit-scrollbar{
width:5px;
}
.rank-banner .desc::-webkit-scrollbar-thumb{
background:var(--soft-accent);
border-radius:20px;
}
.players-list{
max-height:190px;
overflow-y:auto;
display:flex;
flex-direction:column;
gap:6px;
padding:10px;
background:linear-gradient(135deg,#fff 0%,var(--soft-accent) 230%);
border:2px solid var(--accent);
border-radius:14px;
box-shadow:0 6px 16px rgba(0,0,0,.15);
scrollbar-color:var(--accent) transparent;
scrollbar-width:thin;
}
.players-list::-webkit-scrollbar{
width:6px;
}
.players-list::-webkit-scrollbar-thumb{
background:var(--accent);
border-radius:20px;
}
.player{
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
padding:10px 12px;
color:var(--dark-accent);
font-size: 18px;
background:#fff;
border:1px solid var(--accent);
border-radius:12px;
font-weight:700;
box-shadow:inset 0 -1px 0 var(--soft-accent);
}
.player a {
color:var(--dark-accent);
}
.player a:hover{
color:var(--accent);
}
.player .rank-name{
flex:1;
min-width:0;
overflow:hidden;
text-align:left;
text-overflow:ellipsis;
white-space:nowrap;
}
.diamond{
width:28px;
height:28px;
flex:0 0 28px;
display:grid;
place-items:center;
background:linear-gradient(145deg,var(--soft-accent),var(--accent));
border:3px solid #fff;
border-radius:6px;
box-shadow:0 3px 10px rgba(0,0,0,.15), 0 0 0 1px var(--accent);
transform:rotate(45deg);
}
.diamond > span{
color:#fff;
font-size:12px;
font-weight:900;
line-height:1;
text-shadow:0 1px 2px var(--dark-accent);
transform:rotate(-45deg);
}
@media (max-width:820px){
.rank-top{
flex-direction:column;
}
.rank-left{
width:100%;
min-width:0;
}
.rank-emblem{
width:min(100%,330px);
min-height:410px;
}
.rank-right{
max-height:none;
}
.rank-banner .desc{
overflow:visible;
}
}
@media (max-width:480px){
.rank-emblem{
min-height:390px;
}
.rank-emblem__symbol{
top:64px;
bottom:98px;
transform:scale(.9);
transform-origin:50% 50%;
}
.rank-banner{
padding:18px 16px 20px;
}
.rank-banner .title{
font-size:20px;
}
}
</style>
<div class="rankinfo">
<div class="rank-top">
<div class="rank-left">
<div class="rank-emblem" role="img" aria-label="Эмблема Ассоциации Тренеров Юновы">
<div class="rank-emblem__region">Юнова</div>
<div class="rank-emblem__symbol">
<div class="rank-ball"><div class="rank-ball__top"></div></div>
<div class="rank-cup">
<div class="rank-stem"></div>
<div class="rank-v rank-v--outer">
<div class="rank-v__arm rank-v__arm--left"></div>
<div class="rank-v__arm rank-v__arm--right"></div>
</div>
<div class="rank-collar"></div>
<div class="rank-base"></div>
<div class="rank-foot"></div>
</div>
</div>
<div class="rank-emblem__caption">
<span>Ассоциация</span>
<strong>Тренеров</strong>
</div>
</div>
</div>
<div class="rank-right">
<div class="rank-banner">
<div class="title">Ассоциация Тренеров Юновы:<br>Рейтинговая система</div>
<div class="desc">
<p>В регионе Юнова любое сражение покемонов — часть единого рейтинга славы, фиксирующего успехи и неудачи каждого тренера. Сотни боёв проходят ежедневно — в городских залах, на аренах стадионов, в лесах и пустынях, а порой даже в подворотнях.</p>
<p>Каждый победитель и каждый побеждённый оставляют свой след в истории. И каждый стремится взобраться выше ради титула Почётного Героя. Эта система стала символом справедливого соревнования и роста, объединяя тренеров — от новичков с их первыми партнёрами до мастеров, чьи имена известны по всей Юнове.</p>
<p>На нижних ступенях кипит поток новичков. На средних уровнях — напряжённая борьба, где каждое очко на вес золота. На вершине схватки редки и часто становятся предметом жарких обсуждений. Лишь немногие добираются до верхних позиций, и эти имена остаются в истории Юновы надолго.</p>
<p>Но со славой приходит ответственность. Достижение почётных рейтингов — показатель силы, закалённой в боях.</p>
</div>
</div>
</div>
</div>
<div class="players-list">
<div class="player"><span class="rank-name"><a href="https://pokecore.f-rpg.me/viewtopic.php?id=20">Джен</a></span><div class="diamond"><span>47</span></div></div>
<div class="player"><span class="rank-name"><a href="https://pokecore.f-rpg.me/viewtopic.php?id=20">Клаус</a></span><div class="diamond"><span>41</span></div></div>
<div class="player"><span class="rank-name"><a href="https://pokecore.f-rpg.me/viewtopic.php?id=20">Астрид</a></span><div class="diamond"><span>29</span></div></div>
<div class="player"><span class="rank-name"><a href="https://pokecore.f-rpg.me/viewtopic.php?id=20">Кайден</a></span><div class="diamond"><span>13</span></div></div>
<div class="player"><span class="rank-name"><a href="https://pokecore.f-rpg.me/profile.php?id=6">Мира</a></span><div class="diamond"><span>1</span></div></div>
<div class="player"><span class="rank-name"><a href="https://pokecore.f-rpg.me/profile.php?id=8">Рен</a></span><div class="diamond"><span>1</span></div></div>
<div class="player"><span class="rank-name"><a href="https://pokecore.f-rpg.me/profile.php?id=7">Люциана</a></span><div class="diamond"><span>1</span></div></div>
</div>
</div>
[/html]

