* {
    border: 0;
    margin: 0;
    outline: 0;
    padding: 0;
    box-sizing: border-box;
}

*[aria-hidden="true"], *[hidden] {
    display: none;
}
html,
body {
    font-family: var(--rupa-taip-asas);
    font-size: var(--saiz-penuh);
    color: var(--warna-lebih-cerah);
    background-color: var(--warna-normal);
    background: radial-gradient(circle 120dvw at -20% -20%, var(--warna-normal), var(--warna-gelap), var(--warna-lebih-gelap));
    background-repeat: no-repeat;
    background-size: contain;
    display: flex;
    flex-wrap: wrap;
    width: 100dvw;
    /* min-height: 100dvh; */
    line-height: normal;
    scrollbar-gutter: stable;
}
body[aria-hidden="true"] {
    display: flex;
    overflow: hidden;
}

a,
a:focus,
a:visited {
    text-decoration: none;
    color: var(--warna-perdana);
}
a:active{
    color: var(--warna-perdana);
}
a:not([href]) {
    color: var(--warna-lebih-cerah);
}
a:hover, a:hover svg.ikon path {
    color: var(--warna-tertier);
    fill: var(--warna-tertier);
}
a[aria-current="page"] {
    color: var(--warna-sekunder);
    cursor: default;
}
a[data-ralat],
a[data-ralat]:hover {
    display: flex;
    align-items: end;
    gap: var(--saiz-penuh);
    padding: var(--saiz-separuh);
    font-family: var(--rupa-taip-mono);
    color: var(--warna-bayang-bayang-cerah);
    cursor: not-allowed;
}
a[data-ralat] .ikon path,
a[data-ralat]:hover .ikon path {
    fill: var(--warna-bayang-bayang-cerah);
}

body > section {
    display: flex;
    flex-direction: column;
    gap: var(--saiz-penuh);
    padding: var(--saiz-penuh);
    position: absolute;
    top: calc( 8dvh + var(--saiz-penuh) );
    width: 100dvw;
    scrollbar-gutter: stable;
}
body > section > h1,
body > section > h2,
body > section > h3,
body > section > h4,
body > section > h5,
body > section > h6,
body > section > header
{
    padding: var(--saiz-separuh) var(--saiz-penuh);
}

article {
    display: flex;
    flex-direction: column;
    gap: var(--saiz-ganda);
    width: 100%;
}

blockquote {
    padding: var(--saiz-penuh);
    font-family: 0.9rem;
    background-color: var(--warna-gelap);
    border-left: 10px solid var(--warna-sekunder);
}

code {
    font-family: var(--rupa-taip-mono);
    background-color: var(--warna-gelap);
    color: var(--warna-cerah);
    padding: 0 var(--saiz-separuh);
}
pre {
    display: block;
    font-family: var(--rupa-taip-mono);
    padding: var(--saiz-separuh) var(--saiz-penuh);
    background-color: var(--warna-gelap);
    border-left: 5px dotted var(--warna-gelap);
    color: var(--warna-cerah);
    overflow-y: scroll;
    width: 100%;
    height: 50dvh;
}
pre code{
    padding: 0;
    white-space: break-spaces;
    overflow-wrap: break-word;
}
pre code[data-kod] {
    color: var(--warna-penanda-kod-pengecam);
}

dl, 
fmc-kad > dl {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--saiz-penuh);
}
dl dt {
    flex-basis: 40%;
    flex-grow: 0;
    flex-shrink: 0;
    flex-wrap: wrap;
    font-weight: bold;
}
dl dd {
    flex-basis: calc( 60% - var(--saiz-ganda) );
    flex-grow: 0;
    flex-shrink: 0;
    flex-wrap: wrap;
}

figure {
    padding: var(--saiz-penuh);
    background-color: var(--warna-bayang-bayang-gelap);
}

body > footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100dvw;
    padding: var(--saiz-penuh);
    font-family: var(--rupa-taip-mono);
    color: var(--warna-nyahdaya);
    text-align: right;
}

h1,
h2,
h3,
h4,
h5,
h6,
header {
    display: flex;
    gap: var(--saiz-penuh);
    font-family: var(--rupa-taip-tajuk);
    font-size: var(--saiz-h1);
    font-weight: bold;
}
h2 {
    font-size: var(--saiz-h2);
}
h3 {
    font-size: var(--saiz-h3);
}
h4 {
    font-size: var(--saiz-h4);
}
h5 {
    font-size: var(--saiz-h5);
}
h6 {
    font-size: var(--saiz-h6);
}

hr {
    border: 1px dotted var(--warna-lebih-cerah);
}

form{
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
input,
label,
select,
textarea,
button {
    font-family: var(--rupa-taip-asas);
    font-size: var(--saiz-penuh);
    padding: var(--saiz-separuh) var(--saiz-penuh);
    background-color: var(--warna-lapisan-cerah);
}
label {
    background-color: inherit;
}

input[type="text"] {
    width: 100%;
}

input[type="submit"],
input[type="button"],
button {
    background-color: var(--warna-lalai);
    color: var(--warna-lebih-cerah);
    font-weight: bold;
    cursor: pointer;
}
input[type="submit"]:hover,
input[type="button"]:hover,
button:hover {
    background-color: var(--warna-lapisan);
}
input[type="radio"], input[type="checkbox"]{
    /* appearance: none; */
}
input:focus,
select:focus,
textarea:focus{
    outline: 1px solid var(--warna-lalai);
    box-shadow: 0 0 10px var(--warna-lapisan-cerah);
}
select {
    width: 100%;
    border-radius: 0;
    background-color: var(--warna-lebih-cerah);
    color: var(--warna-lebih-gelap);
}



textarea {
    width: 100%;
}

button.perdana, .butang.perdana {
    background-color: var(--warna-perdana);
    color: var(--warna-gelap);
}
button.perdana, .butang.perdana:hover {
    background-color: var(--warna-sekunder);
    /* color: var(--warna-perdana); */
}
button.sekunder, .butang.sekunder {
    background-color: var(--warna-sekunder);
    color: var(--warna-perdana);
}
button.sekunder, .butang.sekunder:hover {
    background-color: var(--warna-perdana);
    /* color: var(--warna-sekunder); */
}

img {
    border: none;
    width: 100%;
    height: 100%;
}
img.bendera {
    height: 1rem;
    width: auto;
    aspect-ratio: 4 / 3;
    margin-right: var(--saiz-separuh);
}
img.ikon {
    height: 1rem;
    width: auto;
    aspect-ratio: 1 / 1;
    margin-right: var(--saiz-separuh);
}

p {
    /* padding: var(--saiz-penuh) 0;
    padding-bottom: 0; */
}
p:last-of-type, p:has( + :not(p)) {
    padding-bottom: var(--saiz-penuh);
}

ul,
ol {
    list-style: none;
}
svg {
    width: auto;
    height: 100%;
}
svg.ikon path {
    fill: var(--warna-lebih-cerah );
}
svg.ikon {
    height: 1.25em;
    aspect-ratio: 1 / 1;
}
a svg.ikon path {
    fill: var(--warna-perdana);
}

#logo-laman {
    max-width: 180x;
    max-height: 180px;
    aspect-ratio: 1 / 1;
}
a:has(> #logo-laman):hover {
    background-color: transparent;
}
svg#logo-laman {
    color: var(--warna-perdana);
}
svg#logo-laman .perdana,
svg path.perdana {
    fill: var(--warna-perdana);
}
svg#logo-laman .sekunder {
    fill: var(--warna-sekunder);
}

.ikon {
    display: flex;
    gap: var(--saiz-separuh);
    align-items: center;
}

.pautan {
    margin-left: var(--saiz-separuh);
    font-size: smaller;
}
.pautan:after {
    content: '\1F517';
    display: inline-block;
}

.perdana{
    color: var(--warna-perdana);
}

.placeholder {
    background-color: var(--warna-nyahdaya) !important;
    animation: placeholder 1.5s linear infinite;
}
td.placeholder {
    padding: var(--saiz-penuh);
}

.ralat404 {
    display: block;
    padding: var(--saiz-ganda);
    font-family: var(--rupa-taip-paparan);
    height: calc( 100dvh - 8dvh - var(--saiz-penuh) );
}
.ralat404 > svg {
    width: 100%;
    height: auto;
}
.ralat404 > svg #teks path {
    fill: var(--warna-perdana);
}
.ralat404 p {
    padding: var(--saiz-penuh) 0;
}


@keyframes placeholder {
    50% {
        opacity: 0;
    }
}

.ralat404 > svg #teks path:nth-child(odd) {
    animation: bouncing 1.5s linear infinite;
}
@keyframes bouncing {
    0% {
        transform: translateY(0) ;
        fill: var(--warna-info);
    }
    50% {
        transform: translateY(-30dvh);
        fill: var(--warna-sekunder);
    }
    100% {
        transform: translateY(0);
        fill: var(--warna-info);
    }
}
.ralat404 > svg #teks path:nth-child(even) {
    animation: bouncing 1s linear infinite;
}
.ralat404 > svg #teks path:nth-child(n + 6) {
    animation: bouncing2 2s linear infinite;
}
@keyframes bouncing2 {
    0% {
        transform: translateY(0);
        fill: var(--warna-perdana);
    }
    50% {
        transform: translateY(30dvh);
        fill: var(--warna-amaran);
    }
    100% {
        transform: translateY(0);
        fill: var(--warna-bahaya);
    }
}
body[data-halaman="Utama"] > section > h1 {
    align-self: center;
    font-size: calc( var(--saiz-h1) * 1.5 );
    padding: 0;
    background-color: transparent;
}
body[data-halaman="Utama"] > section > p:first-of-type {
    display: flex;
    flex-direction: column;
    gap: var(--saiz-penuh);
    text-align: center;
    font-size: var(--saiz-h2);
    line-height: calc( var(--saiz-h2) * 1.5 )
}
body[data-halaman="Utama"] > section > p:first-of-type > span:first-of-type  {
    flex-grow: 0;
    align-self: anchor-center;
    font-size: var(--saiz-h1);
    font-weight: bolder;
    background-color: var(--warna-sekunder);
    padding: var(--saiz-separuh) var(--saiz-penuh);
}

fmc-tajuk {
    display: flex;
    justify-content: space-between;
    padding: var(--saiz-separuh) var(--saiz-penuh);
    background-color: var(--warna-lapisan);
}

fmc-bendera,
fmc-lencana, 
.bendera,
.lencanca {
    display: flex;
    gap: var(--saiz-separuh);
    align-items: center;
    padding: var(--saiz-suku) var(--saiz-separuh);
    background-color: var(--warna-lalai);
    font-size: calc( var(--saiz-penuh) - var(--saiz-suku) );
}
.bendera,
.lencanca {
    padding: 0;
    background-color: transparent;
}
.bendera img,
fmc-bendera img{
    /* width: calc( var(--saiz-penuh) * 1.5 ); */
    height: calc( var(--saiz-penuh) * 1.5 );
    border-radius: var(--saiz-separuh);
    border: 1px solid var(--warna-lapisan);
}
[data-jenis="prestij"] {
    /*  background: linear-gradient(135deg, #a855f7, #6b21a8); */
    clip-path: polygon(25% 0%, 75% 0%, 100% 40%, 50% 100%, 0% 40%);
    box-shadow: inset 0 0 10px var(--warna-gelap);
    position: relative;
    padding-left: 0.8em;
    padding-right: 0.8em;
}
[data-jenis="prestij"][data-tahap=""]{
    box-shadow: inset 0 0 10px var(--warna-lapisan-cerah);
}
[data-jenis="prestij"] span{
    position: relative;
    top: -0.25em;
    font-weight: bold;
}
[data-jenis="prestij"][data-tahap="terbaik"] {
    background-color: var(--warna-tahap-terbaik);
}
[data-jenis="prestij"][data-tahap="bagus"] {
    background-color: var(--warna-tahap-bagus);
}
[data-jenis="prestij"][data-tahap="memuaskan"] {
    background-color: var(--warna-tahap-memuaskan);
}
[data-jenis="prestij"][data-tahap="biasa"] {
    background-color: var(--warna-tahap-biasa);
}
[data-jenis="prestij"][data-tahap="rendah"] {
    background-color: var(--warna-tahap-rendah);
}
[data-jenis="prestij"][data-tahap="terhad"] {
    background-color: var(--warna-tahap-terhad);
}
[data-jenis="prestij"][data-tahap="lemah"] {
    background-color: var(--warna-tahap-lemah);
}

.baris {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}
.lajur {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
}
.sebelum::before {
    content: "\02770";
}
.berikut::after {
    content: "\02771";
}


fmc-peta-laman {
    display: flex;
    flex-wrap: wrap;
    background-color: var(--warna-gelap);
    padding: var(--saiz-separuh) 0;
    font-family: var(--rupa-taip-paparan);
    font-size: 0.9em;
    /* position: relative;
    top: calc( var(--saiz-separuh) * -1 ); */
}

fmc-peta-laman > * {
    display: flex;
    gap: var(--saiz-separuh);
    padding: 0 var(--saiz-penuh);
    border-right: 3px dotted var(--warna-lalai);
    padding: var(--saiz-separuh);
}
fmc-peta-laman > *:last-child {
    display: block;
    width: 60%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border: none;
}

a.ikon {
    display: flex;
    gap: var(--saiz-separuh);
    align-items: center;
}


[data-ikon^="logo-"],
img[data-ikon^="logo-"],
svg[data-ikon^="logo-"] {
    width: calc(var(--saiz-ganda) * 2);
    height: calc(var(--saiz-ganda) * 2);
}

[data-halaman^="benua/federasi/"] > h1 svg.ikon{
    flex-basis: calc(var(--saiz-ganda) * 2);
    flex-grow: 0;
    flex-shrink: 0;
}

[data-halaman^="benua/federasi/"] > svg.ikon{
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    background-color: var(--warna-cerah);
    box-shadow: inset 0 0 25px 4px var(--warna-gelap)
}