/* App-wide styling */
img {
display: block;
}
::-webkit-scrollbar {
width: 8px;
}
.messages-buffer::-webkit-scrollbar {
width: 10px !important;
}
::-webkit-scrollbar-thumb {
background: black;
}
body {
max-width: 100vw;
max-height: 100vh;
min-width: 100vw;
min-height: 100vh;
background: linear-gradient(180deg, #392C25 40%, #71574A 100%);
color: #dcdcdc;
font-family: 'K2D', Tahoma, Geneva, Verdana, sans-serif;
padding: 0;
margin: 0;
border: 0;
word-break: break-word;
word-wrap: break-word;
text-wrap: wrap;
overflow-wrap: break-word;
display: flex;
justify-content: stretch;
align-items: stretch;
flex: 1 1 auto;
}
html {
padding: 0;
margin: 0;
border: 0;
}
.fill {
width: 100vw;
height: 100vh;
}
.center {
display: flex;
align-items: center;
justify-content: center;
}
#hero {
display: flex;
flex-wrap: wrap;
flex: 1 1 auto;
align-items: center;
justify-content: center;
gap: 8px;
}
#hero img {
height: 128px;
width: 128px;
max-width: 100%;
}
#hero h1 {
font-size: 64px;
display: inline-block;
width: max(auto, min-content);
}
.panel {
border: 2px solid black;
border-color: black;
border-style: solid;
background: linear-gradient(180deg, #364B3B 0%, #19311F 100%);
}
#login-form {
padding: 32px;
margin: 4px;
max-width: 850px;
}
#login-form form {
margin: auto;
max-width: 350px;
display: flex;
flex-direction: column;
/* align-items: center; */
justify-content: center;
gap: 4px;
}
#login-form .button {
margin-top: 16px;
}
#login-form form>input {
min-width: 0;
width: 100%;
max-width: 100%;
font-size: 1.5rem;
}
label {
font-weight: bold;
}
input[type="text"],
input[type="password"] {
font-size: 1rem;
border: 2px solid black;
font-family: "k2d";
}
aside {
width: 500px;
max-height: 100%;
}
main {
width: 100%;
height: 100%;
}
button,
.button {
text-align: center;
font-size: 1rem;
background: #FACC34;
color: #000000;
text-decoration: none !important;
border: 2px solid black;
border-radius: 12px;
padding: 0.5em 1em;
font-family: K2D;
font-weight: 600;
box-shadow: inset 0px -0.75em 0.5em #ebb62e, 0 0.25em 0.25em #00000048;
cursor: pointer;
}
.overlay .error {
color: black;
}
button:hover, .button:hover {
background: #f9c61b;
}
button:clicked, .button:clicked {
background: #ffc300;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: Diolce;
margin: 0;
}
p {
margin: 0;
}
.chats-list,
.roster-list,
.settings-sidebar {
border-width: 0 2px 0 0;
border-color: black;
border-style: solid;
height: 100%;
width: 400px;
flex: 0 0 auto;
align-self: stretch;
display: flex;
flex-direction: column;
}
.settings-sidebar {
width: 200px;
display: flex;
flex-direction: column;
}
.settings-sidebar>* {
padding: 8px 16px;
cursor: pointer;
}
.settings-sidebar>.open,
.settings-sidebar>*:hover {
background: #00000060;
}
.chats-list>*,
.roster-list>*,
.settings .header {
padding: 8px 16px;
}
.chats-list .header,
.roster-list .header,
.settings .header {
margin-top: 0.4rem;
border-bottom: 2px solid black;
display: flex;
justify-content: space-between;
align-items: center;
}
.chats-list h2,
.roster-list h2 {
flex: 0 0 auto;
}
.chats-list-item,
.roster-list-item,
{
cursor: pointer;
display: flex;
align-items: start;
gap: 8px;
border-radius: 1em;
padding: 0.5em;
margin: 0.5em 0;
box-sizing: border-box;
align-items: stretch;
}
.chats-list-item:hover,
.chats-list-item.open,
.roster-list-item:hover,
.roster-list-item.open,
{
background: #00000060;
/* color: black; */
/* border: 2px solid black; */
/* box-shadow: inset 0px -0.75em 0.5em #19311F, 0 0.25em 0.25em #00000048; */
/* background: linear-gradient(0deg, #364B3B 0%, #19311F 100%); */
}
.chats-list-item .item-info,
.roster-list-item .item-info {
width: 0;
display: flex;
flex: 1 1 auto;
flex-direction: column;
justify-content: space-between;
}
.chats-list-item .main-info,
.roster-list-item .main-info {
display: flex;
justify-content: space-between;
align-items: baseline;
}
.chats-list-item .name,
.roster-list-item .name {
font-weight: bold;
font-size: 1.1em;
}
.chats-list-item .name,
.roster-list-item .name {
font-weight: light;
}
.chats-list-item .sub-info,
.roster-list-item .sub-info {
display: flex;
}
.chats-list-item .message-preview {
font-weight: light;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
max-width: auto;
}
.roster-list-item .jid {
opacity: 0;
font-family: Diolce;
font-weight: normal;
}
.roster-list-item:hover .jid {
opacity: 100%;
}
.avatar {
object-fit: contain;
border-radius: 50%;
width: 48px;
height: 48px;
}
.chats-list-item .avatar,
.roster-list-item .avatar {
width: 48px;
height: 48px;
}
.chats-list-chats,
.roster-list-roster {
flex-grow: 1;
/* overflow-y: scroll; */
}
.open-chat-views {
flex: 1 1 100%;
display: flex;
flex-direction: column;
max-height: auto;
}
.open-chat-view {
height: auto;
display: flex;
flex-direction: column;
justify-content: stretch;
max-height: auto;
}
.chat-view-header .avatar {
width: 64px;
height: 64px;
}
.chat-view-header {
border-width: 0 0 2px 0;
display: flex;
padding: 16px;
gap: 16px;
}
.chat-view-header h2 {
font-family: 'K2D';
font-weight: bold;
}
.new-message-composer {
border-width: 2px 0 0 0;
width: auto;
padding: 16px;
max-height: auto;
}
.new-message-composer .overlay-scroll {
max-height: min(32em, 50vh);
background-color: #dcdcdc;
border: 2px solid black;
}
[contenteditable]:focus {
outline: 0px solid transparent;
}
.new-message-composer .text-box {
padding: 8px;
white-space: pre-wrap;
color: black;
/* overflow-y: auto; */
font-size: 16px;
margin: 0;
height: fit-content;
}
.grow-wrap {
/* easy way to plop the elements on top of each other and have them both sized based on the tallest one's height */
display: grid;
}
.grow-wrap::after {
/* Note the weird space! Needed to preventy jumpy behavior */
content: attr(data-replicated-value) " ";
/* This is how textarea text behaves */
white-space: pre-wrap;
/* Hidden from view, clicks, and screen readers */
visibility: hidden;
max-height: 5em;
}
.grow-wrap>textarea {
/* You could leave this, but after a user resizes, then it ruins the auto sizing */
resize: none;
/* Firefox shows scrollbar on growth, you can hide like this. */
overflow-y: scroll;
}
.grow-wrap>textarea,
.grow-wrap::after {
/* Identical styling required!! */
border: 2px solid black;
padding: 8px;
font: inherit;
/* Place on top of each other */
grid-area: 1 / 1 / 2 / 2;
}
.open-chat-view {
flex-grow: 1;
max-height: 100%;
}
.messages-buffer {
display: flex;
flex-direction: column-reverse;
flex-grow: 1;
overflow-y: scroll;
}
.messages-buffer .new-day {
display: flex;
align-items: center;
margin: 0.5em 0 0 0;
/* margin: 1em -1em; */
&:before,
&:after {
content: "";
flex: 1;
height: 2px;
margin: 0 1em;
background: black;
}
}
.chat-message {
display: flex;
padding: 4px 0;
}
.chat-message:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.chat-message .left {
width: 48px;
flex: none;
padding: 0 8px;
}
.chat-message .middle {
width: auto;
flex-grow: 1;
}
.chat-message .right {
width: 16px;
padding: 0 8px;
flex: none;
align-self: end;
}
.message-info {
display: flex;
align-items: baseline;
gap: 8px;
}
.message-text {
white-space: pre-wrap;
}
.chat-message.major {
margin-top: 8px;
}
.chat-message.major .left {
height: 48px;
}
.chat-message.major .middle {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.message-info .message-user-name {
font-weight: bold;
font-size: 1.1em;
margin-bottom: 4px;
}
.chat-message.major .message-timestamp {
font-weight: light;
font-size: 0.8em;
}
.chat-message.minor .message-timestamp {
font-weight: light;
font-size: 0.7em;
/* TODO: better alignment */
margin-top: 0.3em;
}
.chat-message.minor:not(:hover) .message-timestamp {
opacity: 0;
}
.light {
filter: invert(99%) sepia(1%) saturate(2689%) hue-rotate(208deg) brightness(106%) contrast(73%);
}
.chat-message.final .message-delivery,
.visible {
opacity: 100% !important;
}
.chat-message.final {
margin-bottom: 8px;
}
.chat-message:not(:hover) .message-delivery {
opacity: 0;
}
.sidebar {
display: flex;
z-index: 1;
}
.dock {
z-index: 30;
display: flex;
flex-direction: column;
border-width: 0 2px 0 0;
}
.dock-item {
display: flex;
justify-content: center;
position: relative;
cursor: pointer;
}
.dock-pill {
position: absolute;
border-radius: 50%;
left: -4px;
top: calc(50% - 4px);
width: 8px;
height: 8px;
opacity: 0;
background-color: #dcdcdc;
transition-duration: 250ms;
}
.dock-item.open .dock-pill {
opacity: 100%;
}
.dock-item:hover .dock-pill,
.dock-item.hovering .dock-pill {
top: calc(50% - 14px);
height: 28px;
opacity: 100%;
}
.dock-item.focused .dock-pill {
top: calc(50% - 24px);
height: 48px;
opacity: 100%;
}
.dock .shortcuts {
padding: 8px 0;
border-bottom: 2px solid black;
}
.dock .shortcuts .dock-item img {
width: 64px;
height: 64px;
}
.dock-icon {
width: 64px;
height: 64px;
padding: 4px 8px;
}
.avatar-with-presence {
position: relative;
height: fit-content;
}
.avatar-with-presence>.presence-show-icon {
position: absolute;
bottom: 0;
right: 0;
}
.dock .pins {
flex: 1 1 auto;
}
.dock .personal {
padding: 8px 0;
flex: 0 0 auto;
border-top: 2px solid black;
}
.sidebar {
position: relative;
}
.dock .personal .dock-item {
padding: 8px 16px
}
.dock .personal .avatar-with-presence .avatar {
width: 48px;
height: 48px;
}
.sidebar-drawer {
height: auto;
z-index: 5;
}
.sidebar-hovering-drawer {
z-index: 10;
}
.sidebar .sidebar-hovering-drawer {
position: absolute;
height: 100%;
/* must be width of dock... */
left: 82px;
transition: left 0.2s ease-out allow-discrete;
}
@starting-style {
.sidebar .sidebar-hovering-drawer {
/* TODO: allow to edit this width */
left: -318px;
}
}
.sidebar .behind-hovering {
width: 402px;
transition: width 0.2s ease-out allow-discrete;
}
@starting-style {
.sidebar .behind-hovering {
width: 0;
}
}
.overlay {
position: relative;
z-index: 100;
}
.overlay-background,
.modal-background {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
}
.overlay-content {
z-index: 101;
position: absolute;
}
.modal {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 150;
display: flex;
justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.4);
}
.settings {
width: 75vw;
height: 75vh;
display: flex;
flex-direction: column;
}
.settings-main {
height: calc(100% - 56px);
display: flex;
flex: 1 1 auto;
}
.settings-page {
flex: 1 1 0;
overflow-y: auto;
}
.profile-settings {
display: flex;
justify-content: flex-end;
flex-wrap: wrap;
flex-direction: row-reverse;
}
.profile-form {
flex: 1 1 auto;
margin: 16px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
}
.profile-form label {
font-size: 1rem;
}
.profile-form .change-avatar {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 16px;
}
#client-user-avatar {
opacity: 0;
position: absolute;
z-index: -1;
}
.profile-preview {
margin: 24px;
border: 2px solid black;
min-width: 240px;
}
.profile-preview .preview {
display: flex;
flex-direction: column;
gap: 8px;
}
.profile-preview h2 {
padding: 8px 16px;
border-bottom: 2px solid black;
}
.profile-preview .avatar {
width: 64px;
height: 64px;
}
.profile-preview .nick {
font-size: 20px;
font-weight: bold;
}
hr {
width: 100%;
border: 1px solid black;
}
.profile-preview .preview {
padding: 16px;
}
.modal .overlay {
x-index: 200;
}
.modal .overlay-content {
z-index: 201;
}
.personal .overlay-content {
bottom: 0;
left: 100%;
}
.menu {
border: 2px solid black;
background-color: #dcdcdc;
color: #000000;
width: 300px;
}
.menu-item {
cursor: pointer;
padding: 4px 8px;
}
.menu-item:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.personal-status-menu .user {
display: flex;
gap: 8px;
padding: 8px;
}
.personal-status-menu .user .user-info {
display: flex;
flex-direction: column;
}
.personal-status-menu .user .nick {
font-size: 1.1em;
font-weight: bold;
}
.personal-status-menu .user .jid {
font-family: Diolce;
}
hr {
margin: 0;
}
.status-edit {
padding: 0 8px 8px 8px;
}
.status-edit select {
width: 100%;
}
.header .header-icon {
position: relative;
top: -0.2rem;
border-radius: 1em;
padding: 4px;
}
.new-chat, .add-contact, .close {
cursor: pointer;
}
.new-chat:hover,
.new-chat.open,
.add-contact:hover,
.add-contact.open,
.close:hover {
background: #00000060;
}
.add-contact-panel {
flex-shrink: 0;
max-height: calc(100% - 150px);
border-bottom: 2px solid black;
}
.new-chat-widget form {
border: 2px solid black;
padding: 4px;
gap: 4px;
background-color: #dcdcdc;
display: flex;
flex-direction: column;
align-items: end;
}
.add-contact-menu h3 {
margin: 1em 0 0.5em;
}
.add-contact-menu form {
display: flex;
flex-direction: column;
gap: 8px;
}
.add-contact-menu form input {
flex: 1 1 auto;
}
.jid-with-button {
display: flex;
align-items: center;
justify-content: space-between;
}
.jid-with-buttons {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 4px;
margin-bottom: 8px;
}
.jid-with-buttons .buttons {
display: flex;
align-items: center;
gap: 4px;
}
.jid-with-buttons .buttons>* {
flex: 1 1 auto;
}
.jid-with-button .jid {
flex: 1 1 auto;
}
.jid-with-button .button {
flex: 0 0 auto;
}
.icon-with-badge {
position: relative;
}
.badge {
position: absolute;
top: 0;
right: 0;
border-radius: 50%;
background-color: #C1173C;
color: #dcdcdc;
height: 1em;
min-width: 1em;
padding: 2px;
display: flex;
justify-content: center;
align-items: center;
}
.header-icon .badge {
height: 8px;
width: 8px;
min-width: revert;
}
/* font-families */
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-1.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-2.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-3.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-4.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-5.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-6.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-7.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-8.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-9.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-10.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-11.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-12.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-13.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-14.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-15.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-16.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-17.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-18.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-19.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-20.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-21.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-22.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-23.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-24.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-25.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-26.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-27.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-28.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-29.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-30.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-31.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: italic;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-32.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-33.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-34.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-35.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 100;
font-display: block;
src: url('/assets/fonts/k2d-36.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-37.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-38.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-39.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 200;
font-display: block;
src: url('/assets/fonts/k2d-40.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-41.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-42.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-43.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 300;
font-display: block;
src: url('/assets/fonts/k2d-44.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-45.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-46.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-47.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 400;
font-display: block;
src: url('/assets/fonts/k2d-48.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-49.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-50.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-51.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 500;
font-display: block;
src: url('/assets/fonts/k2d-52.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-53.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-54.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-55.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 600;
font-display: block;
src: url('/assets/fonts/k2d-56.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-57.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-58.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-59.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 700;
font-display: block;
src: url('/assets/fonts/k2d-60.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* thai */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-61.woff2') format('woff2');
unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-62.woff2') format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-63.woff2') format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'K2D';
font-style: normal;
font-weight: 800;
font-display: block;
src: url('/assets/fonts/k2d-64.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Diolce';
src: url('/assets/fonts/Diolce-Regular.woff2') format('woff2');
font-weight: normal;
font-style: italic;
font-display: block;
}