[hideprofile]
[html]
<style>
.unova-dex {
    --dex-mint: #71f4d5;
    --dex-mint-soft: rgba(113,244,213,.34);
    --dex-mint-faint: rgba(113,244,213,.11);
    --dex-screen: #061411;
    --dex-black: #020504;
    --dex-red: #a91d2d;
    position: relative;
    width: min(100%,760px);
    color: #d9fff5;
    margin: 0 auto;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.35;
}

.unova-dex,
.unova-dex * { box-sizing: border-box; }

.unova-dex__lid,
.unova-dex__base {
    position: relative;
    padding: 24px;
    overflow: hidden;
    background: linear-gradient(145deg,#f5f6f6 0%,#aeb4b7 22%,#f8f8f7 51%,#8b9296 78%,#eceeed 100%);
    border: 2px solid #62686b;
    box-shadow: inset 0 0 0 5px rgba(255,255,255,.58), 0 14px 30px rgba(0,0,0,.28);
}

.unova-dex__lid { border-radius: 34px 34px 15px 15px; }
.unova-dex__base { border-radius: 15px 15px 38px 38px; }

.unova-dex__screen {
    position: relative;
    z-index: 2;
    padding: 18px;
    overflow: hidden;
    background: var(--dex-screen);
    border: 10px solid #111716;
    border-radius: 20px;
    box-shadow: inset 0 0 28px rgba(0,0,0,.92), 0 0 0 2px #303735, 0 0 22px rgba(113,244,213,.18);
}

.unova-dex__screen::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 20;
    pointer-events: none;
    opacity: .18;
    background: repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(157,255,232,.06) 4px);
}

.unova-dex__status {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    min-height: 28px;
    padding: 0 2px 11px;
    color: #bdfff0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--dex-mint-soft);
}

.unova-dex__status-right { color: #8cebd4; white-space: nowrap; }

.unova-dex__top-screen {
    position: relative;
    height: 300px;
    margin-top: 14px;
    overflow: hidden;
    background-color: var(--dex-black);
    border: 1px solid rgba(113,244,213,.15);
    border-radius: 10px;
    box-shadow: inset 0 0 34px #000;
}

.unova-dex__top-screen::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    background-image:
        linear-gradient(var(--dex-mint-faint) 1px,transparent 1px),
        linear-gradient(90deg,var(--dex-mint-faint) 1px,transparent 1px);
    background-size: 28px 28px;
    transition: opacity .35s ease;
}

.unova-dex.has-selection .unova-dex__top-screen::before { opacity: .48; }

.unova-dex__empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    transition: opacity .18s ease;
}

.unova-dex.has-selection .unova-dex__empty {
    visibility: hidden;
    opacity: 0;
}

.unova-dex__entry {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(190px,40%) minmax(0,1fr);
    gap: 18px;
    height: 100%;
    padding: 15px;
    visibility: hidden;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
}

.unova-dex.has-selection .unova-dex__entry {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition: opacity .22s ease, transform .22s ease, visibility 0s;
}

.unova-dex__portrait {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    background: radial-gradient(circle,rgba(113,244,213,.2),transparent 63%);
    border: 1px solid var(--dex-mint-soft);
    border-radius: 9px;
}

.unova-dex__portrait::before {
    content: "";
    position: absolute;
    width: 105px;
    height: 105px;
    opacity: .22;
    border: 5px solid var(--dex-mint);
    border-radius: 50%;
    box-shadow: inset 0 0 0 22px var(--dex-screen), inset 0 0 0 27px var(--dex-mint);
}

.unova-dex__portrait-image {
    position: relative;
    z-index: 2;
    display: block;
    width: 94%;
    height: 94%;
    object-fit: contain;
    filter: drop-shadow(0 12px 12px rgba(0,0,0,.7));
}

.unova-dex__info {
    min-width: 0;
    height: 100%;
    padding: 4px 10px 15px 2px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--dex-mint) rgba(113,244,213,.08);
}

.unova-dex__info::-webkit-scrollbar { width: 6px; }
.unova-dex__info::-webkit-scrollbar-track { background: rgba(113,244,213,.08); }
.unova-dex__info::-webkit-scrollbar-thumb { background: var(--dex-mint); border-radius: 10px; }

.unova-dex__name-line {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--dex-mint-soft);
}

.unova-dex__name {
    margin: 0;
    color: #e7fff9;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: .04em;
}

.unova-dex__number { color: var(--dex-mint); font-size: 16px; font-weight: 700; }

.unova-dex__types { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0 15px; }
.unova-dex__type {
    display: inline-block;
    padding: 4px 10px;
    color: #03110e;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    background: var(--dex-mint);
    border-radius: 4px;
}

.unova-dex__section-title {
    margin: 17px 0 6px;
    color: var(--dex-mint);
    font-size: 12px;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.unova-dex__description { margin: 0; color: #cce8e1; font-size: 14px; line-height: 1.52; }
.unova-dex__moves { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.unova-dex__move {
    padding: 5px 8px;
    color: #cffff3;
    font-size: 12px;
    background: rgba(113,244,213,.09);
    border: 1px solid rgba(113,244,213,.25);
    border-radius: 4px;
}

.unova-dex__hinge {
    position: relative;
    z-index: 4;
    width: calc(100% - 60px);
    height: 32px;
    margin: -5px auto;
    background: linear-gradient(#171b1b,#434848 46%,#090b0b 54%,#272c2c);
    border: 2px solid #111;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0,0,0,.75);
}

.unova-dex__hinge::after {
    content: "";
    position: absolute;
    top: 12px;
    left: 50%;
    width: 58px;
    height: 4px;
    transform: translateX(-50%);
    background: var(--dex-mint);
    border-radius: 8px;
    box-shadow: 0 0 8px var(--dex-mint);
}

.unova-dex__list-head {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #cafff2;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--dex-mint-soft);
}

.unova-dex__counter { color: #79cdb9; font-size: 12px; }

.unova-dex__list {
    position: relative;
    z-index: 2;
    height: 328px;
    margin-top: 10px;
    padding: 0 5px 0 8px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--dex-mint) rgba(113,244,213,.08);
}

.unova-dex__list::-webkit-scrollbar { width: 6px; }
.unova-dex__list::-webkit-scrollbar-track { background: rgba(113,244,213,.07); }
.unova-dex__list::-webkit-scrollbar-thumb { background: var(--dex-mint); border-radius: 10px; }

.unova-dex__row {
    position: relative;
    display: grid;
    grid-template-columns: 34px 56px 55px minmax(0,1fr) 24px;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 58px;
    margin: 0 0 7px;
    padding: 5px 13px 5px 9px;
    color: #d8eee9;
    font: inherit;
    text-align: left;
    background: linear-gradient(90deg,rgba(113,244,213,.04),rgba(113,244,213,.14));
    border: 1px solid rgba(113,244,213,.38);
    border-radius: 8px 20px 20px 8px;
    cursor: pointer;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.unova-dex__row:hover,
.unova-dex__row.is-selected {
    color: #fff;
    background: linear-gradient(90deg,rgba(113,244,213,.16),rgba(113,244,213,.33));
    border-color: var(--dex-mint);
    transform: translateX(-3px);
}

.unova-dex__selector {
    width: 16px;
    height: 16px;
    justify-self: center;
    border: 2px solid var(--dex-mint);
    border-radius: 50%;
    box-shadow: inset 0 0 0 4px var(--dex-screen);
}

.unova-dex__row.is-selected .unova-dex__selector { background: var(--dex-mint); box-shadow: inset 0 0 0 4px #0b2922,0 0 9px var(--dex-mint); }
.unova-dex__thumb { display: block; width: 52px; height: 48px; object-fit: contain; }
.unova-dex__row-number { color: #7fcbbb; font-size: 12px; font-weight: 700; letter-spacing: .05em; }
.unova-dex__row-name { min-width: 0; overflow: hidden; font-size: 16px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.unova-dex__arrow { color: var(--dex-mint); font-size: 20px; text-align: right; }

.unova-dex__base::before {
    content: "";
    position: absolute;
    right: -7%;
    bottom: -90px;
    left: -7%;
    height: 145px;
    background: linear-gradient(155deg,#d93443,#8d101f 50%,#d52639);
    border-top: 7px solid #151919;
}

.unova-dex__orb {
    position: relative;
    z-index: 4;
    width: 82px;
    height: 82px;
    margin: 13px auto -8px;
    background: radial-gradient(circle at 38% 33%,#fff,#e2e5e3 45%,#777 67%,#111 69%);
    border: 13px solid #111;
    border-radius: 50%;
    box-shadow: 0 0 0 2px #4a4a4a,0 0 15px rgba(113,244,213,.5),inset 0 0 8px var(--dex-mint);
}

@media (max-width:620px) {
    .unova-dex__lid,
    .unova-dex__base { padding: 13px; border-radius: 20px; }
    .unova-dex__screen { padding: 12px; border-width: 7px; border-radius: 14px; }
    .unova-dex__top-screen { height: 285px; }
    .unova-dex__entry { grid-template-columns: 38% minmax(0,1fr); gap: 10px; padding: 9px; }
    .unova-dex__name { font-size: 21px; }
    .unova-dex__number { font-size: 13px; }
    .unova-dex__description { font-size: 12px; }
    .unova-dex__section-title { margin-top: 12px; }
    .unova-dex__row { grid-template-columns: 25px 48px 48px minmax(0,1fr) 17px; gap: 5px; padding-right: 8px; }
    .unova-dex__thumb { width: 46px; height: 43px; }
    .unova-dex__row-name { font-size: 14px; }
}

@media (max-width:420px) {
    .unova-dex__status { font-size: 10px; }
    .unova-dex__status-right { display: none; }
    .unova-dex__top-screen { height: 315px; }
    .unova-dex__entry { grid-template-columns: 35% minmax(0,1fr); }
    .unova-dex__portrait-image { width: 110%; height: 80%; }
    .unova-dex__row { grid-template-columns: 22px 43px 42px minmax(0,1fr) 14px; }
}
</style>

<div class="unova-dex" data-pokedex-app>
    <div class="unova-dex__lid">
        <div class="unova-dex__screen">
            <div class="unova-dex__status">
                <span>▣ Unova Pokédex</span>
                <span class="unova-dex__status-right">⌁ ONLINE  100% ▰</span>
            </div>

            <div class="unova-dex__top-screen">
                <div class="unova-dex__empty" aria-hidden="true"></div>

                <div class="unova-dex__entry" aria-live="polite">
                    <div class="unova-dex__portrait">
                        <img class="unova-dex__portrait-image" src="" alt="">
                    </div>

                    <div class="unova-dex__info">
                        <div class="unova-dex__name-line">
                            <h3 class="unova-dex__name"></h3>
                            <span class="unova-dex__number"></span>
                        </div>
                        <div class="unova-dex__types"></div>

                        <h4 class="unova-dex__section-title">Описание</h4>
                        <p class="unova-dex__description"></p>

                        <h4 class="unova-dex__section-title">Атаки</h4>
                        <ul class="unova-dex__moves"></ul>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="unova-dex__hinge"></div>

    <div class="unova-dex__base">
        <div class="unova-dex__screen">
            <div class="unova-dex__list-head">
                <span>▤ Список покемонов</span>
                <span class="unova-dex__counter">UNOVA DATABASE · 007</span>
            </div>

            <div class="unova-dex__list">
                <!-- Для нового покемона скопируйте одну строку и замените data-поля. -->
                <button class="unova-dex__row" type="button"
                    data-name="Snivy" data-number="№ 495" data-types="Травяной"
                    data-image="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/495.png"
                    data-description="Спокойный и умный покемон, который сохраняет хладнокровие даже в опасной ситуации. Его хвост использует солнечный свет для фотосинтеза."
                    data-moves="Tackle|Leer|Vine Whip|Leaf Tornado">
                    <span class="unova-dex__selector"></span><img class="unova-dex__thumb" src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/495.png" alt=""><span class="unova-dex__row-number">495</span><span class="unova-dex__row-name">Snivy</span><span class="unova-dex__arrow">›</span>
                </button>

                <button class="unova-dex__row" type="button"
                    data-name="Tepig" data-number="№ 498" data-types="Огненный"
                    data-image="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/498.png"
                    data-description="Проворный покемон, способный выпускать огненные шары из ноздрей. Перед атакой он разогревает пламя внутри своего тела."
                    data-moves="Tackle|Tail Whip|Ember|Flame Charge">
                    <span class="unova-dex__selector"></span><img class="unova-dex__thumb" src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/498.png" alt=""><span class="unova-dex__row-number">498</span><span class="unova-dex__row-name">Tepig</span><span class="unova-dex__arrow">›</span>
                </button>

                <button class="unova-dex__row" type="button"
                    data-name="Oshawott" data-number="№ 501" data-types="Водный"
                    data-image="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/501.png"
                    data-description="Сражается при помощи раковины на животе. Он может мгновенно выхватить её и использовать как клинок или щит."
                    data-moves="Tackle|Tail Whip|Water Gun|Razor Shell">
                    <span class="unova-dex__selector"></span><img class="unova-dex__thumb" src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/501.png" alt=""><span class="unova-dex__row-number">501</span><span class="unova-dex__row-name">Oshawott</span><span class="unova-dex__arrow">›</span>
                </button>

                <button class="unova-dex__row" type="button"
                    data-name="Zorua" data-number="№ 570" data-types="Тёмный"
                    data-image="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/570.png"
                    data-description="Застенчивый покемон-иллюзионист. Чтобы скрыть свою настоящую внешность и защититься от опасности, он принимает облик людей и других покемонов."
                    data-moves="Scratch|Leer|Pursuit|Fury Swipes">
                    <span class="unova-dex__selector"></span><img class="unova-dex__thumb" src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/570.png" alt=""><span class="unova-dex__row-number">570</span><span class="unova-dex__row-name">Zorua</span><span class="unova-dex__arrow">›</span>
                </button>

                <button class="unova-dex__row" type="button"
                    data-name="Emolga" data-number="№ 587" data-types="Электрический|Летающий"
                    data-image="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/587.png"
                    data-description="Накапливает электричество в защёчных мешках и планирует между деревьями на перепонках. Во время полёта разбрасывает электрические разряды."
                    data-moves="Thunder Shock|Quick Attack|Spark|Electro Ball">
                    <span class="unova-dex__selector"></span><img class="unova-dex__thumb" src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/587.png" alt=""><span class="unova-dex__row-number">587</span><span class="unova-dex__row-name">Emolga</span><span class="unova-dex__arrow">›</span>
                </button>

                <button class="unova-dex__row" type="button"
                    data-name="Axew" data-number="№ 610" data-types="Драконий"
                    data-image="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/610.png"
                    data-description="Оставляет зарубки на деревьях своими бивнями, отмечая территорию. Если бивень ломается, на его месте быстро вырастает новый."
                    data-moves="Scratch|Leer|Dragon Rage|Dual Chop">
                    <span class="unova-dex__selector"></span><img class="unova-dex__thumb" src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/610.png" alt=""><span class="unova-dex__row-number">610</span><span class="unova-dex__row-name">Axew</span><span class="unova-dex__arrow">›</span>
                </button>

                <button class="unova-dex__row" type="button"
                    data-name="Volcarona" data-number="№ 637" data-types="Насекомый|Огненный"
                    data-image="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/637.png"
                    data-description="Рассыпает обжигающие чешуйки из шести крыльев, превращая воздух вокруг в море огня. В древних легендах её называли воплощением солнца."
                    data-moves="Gust|Fire Spin|Bug Buzz|Fiery Dance">
                    <span class="unova-dex__selector"></span><img class="unova-dex__thumb" src="https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/637.png" alt=""><span class="unova-dex__row-number">637</span><span class="unova-dex__row-name">Volcarona</span><span class="unova-dex__arrow">›</span>
                </button>
            </div>
        </div>

        <div class="unova-dex__orb" aria-hidden="true"></div>
    </div>
</div>
[/html]