* {
    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 120vw 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;
    overflow-x: hidden;
    width: 100vw;
    min-height: 100%;
    line-height: normal;
    scrollbar-gutter: stable;
}

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 {
    color: var(--warna-cerah);
}
a[aria-current="page"] {
    color: var(--warna-sekunder);
    cursor: default;
}

body > section {
    display: flex;
    flex-direction: column;
    gap: var(--saiz-separuh);
    padding: var(--saiz-penuh);
    position: absolute;
    top: 8vh;
    width: 100%;
    scrollbar-gutter: stable;
}

article {
    padding: var(--saiz-ganda);
    padding-bottom: 0;
    width: 100%;
}
article:last-of-type {
    padding-bottom: var(--saiz-ganda);
}

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: 50vh;
}
pre code{
    padding: 0;
    white-space: break-spaces;
    overflow-wrap: break-word;
}
pre code[data-kod] {
    color: var(--warna-penanda-kod-pengecam);
}

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

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;
    background-color: var(--warna-lebih-gelap);
}
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-cerah);
}
option {
    background-color: var(--warna-cerah);
}


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-perdana);
}

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

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

.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( 100vh - 8vh - var(--saiz-penuh) );
}
.ralat404 > svg {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
}
.ralat404 > svg #teks path {
    fill: var(--warna-perdana);
}
.ralat404 p {
    padding: var(--saiz-penuh) 0;
}


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