@charset "utf-8";

@font-face {
    font-family: OnulSHGothic;
    src: url('./fonts/OnulSamhwagothic-Regular.woff') format("woff");
    font-weight: normal;
    font-style: normal;
}

:root {
    --global-column: 3;
    /*
    breakpoint: 1700px, 1200px, 900px(mob)
    */
    --color-highlight: #e85882;
    --color-gray-line: rgb(200,200,200);
}

/***************************************************************************/

/***
    The new CSS reset - version 1.8.5 (last updated 14.6.2023)
    GitHub page: https://github.com/elad2412/the-new-css-reset
***/

/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
    - The "html" attribute is exclud, because otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
 */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
    all: unset;
    display: revert;
}

/* Preferred box-sizing value */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Reapply the pointer cursor for anchor tags */
a, button {
    cursor: revert;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu {
    list-style: none;
}

/* For images to not be able to exceed their container */
img {
    max-inline-size: 100%;
    max-block-size: 100%;
}

/* removes spacing between cells in tables */
table {
    border-collapse: collapse;
}

/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input, textarea {
    -webkit-user-select: auto;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
    white-space: revert;
}

/* minimum style to allow to style meter element */
meter {
    -webkit-appearance: revert;
    appearance: revert;
}

/* preformatted text - use only for this feature */
:where(pre) {
    all: revert;
}

/* reset default text opacity of input placeholder */
::placeholder {
    color: unset;
}

/* remove default dot (•) sign */
::marker {
    content: initial;
}

/* fix the feature of 'hidden' attribute.
   display:revert; revert to element instead of attribute */
:where([hidden]) {
    display: none;
}

/* revert for bug in Chromium browsers
   - fix for the content editable attribute will work properly.
   - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element */
:where([contenteditable]:not([contenteditable="false"])) {
    -moz-user-modify: read-write;
    -webkit-user-modify: read-write;
    overflow-wrap: break-word;
    -webkit-line-break: after-white-space;
    -webkit-user-select: auto;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable="true"]) {
    -webkit-user-drag: element;
}

/* Revert Modal native behavior */
:where(dialog:modal) {
    all: revert;
}

/***************************************************************************/

html {
    /*background-color: rgb(230, 230, 230);*/
}

body {
    font-family: OnulSHGothic, sans-serif;
    font-weight: normal;
    font-size: 16px;
}

b {
    color: var(--color-highlight);
    cursor: help;

    margin: -0.6em;
    padding: 0.6em;
}

a {
    color: var(--color-highlight);
    text-decoration: underline;
    text-underline-offset: 0.25em;
}

::selection {
    background: none;
    text-decoration: underline var(--color-highlight) 0.25rem;
    text-underline-offset: 0.3em;
}

.main-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
    grid-gap: 1em;
    font-size: 1.25em;
    line-height: 1.75em;

    word-break: keep-all;
}

.main-container > * { min-width: 0; }

@media screen and (max-width: 900px) {
    .main-container {
        grid-template-columns: 1fr;
        font-size: min(1.125em, 3.75vw);
    }

    .this-is-that {
        font-size: min(1.125em, 3.75vw);
    }
}

.main-container > section {
    margin: 1em 0 4em;
}

/* header */

@media screen and (max-width: 900px) {
    .main-container > section.header {
        height: calc(50vh - 2em);
        min-height: 400px;
    }
}

.main-container > section.header > div {
    position:sticky;
    top: 1em;
    margin-left: 1em;
}

.main-container > section.header .title {
    font-size: 1.8em;
    line-height: 1.33em;
    margin-bottom: 0.5em;
}

.main-container > section.header .info,
.main-container > section.header .btns {
    font-size: 0.875em;
    line-height: 1.6em;
    margin-left: 0.15em;
}

@media screen and (max-width: 900px) {
    .main-container > section.header .title {
        font-size: 2.5em;

    }

    .main-container > section.header .info {
        font-size: 1.25em;
        line-height: 1.6em;
        margin-left:0.15em;
    }

    .main-container > section.header .btns {
        font-size: min(1.125rem, 3.75vw);
    }
}

.main-container > section.header ul.btns {
    margin-top: 1em;
}

.main-container > section.header ul.btns .previous {
    margin-top: 0.7em;
}

.main-container > section.header .btn {
    display: inline-block;
    position: relative;

    text-decoration: none;

    padding: 0.25em 0.80em 0.50em 0.78em;
    background-color: var(--color-highlight);
    color: white;

    transition: background-color 0.15s ease;

    user-select: none;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
}

.main-container > section.header .btn.gray {
    background-color: var(--color-gray-line);
}

.main-container > section.header .btn:hover {
    background-color: black;
}

.main-container > section.header .btn.dropdown .dropdown-menu {
    display: none;
}

.main-container > section.header .btn.dropdown:hover .dropdown-menu {
    display: block;
    position: absolute;
    top: 2.35em;
    left: 0;
    width: calc(100% + 2em);

    padding: 0.4em 0.95em 0.65em 0.93em;
    background-color: black;
}

/* contents */

.main-container > section.contents > section {
    padding-bottom: 1.5em;
    margin-bottom: 1.25em;
    border-bottom: 1px solid black;
}

.main-container > section.contents > section h2 {
    font-size: 1.3em;
    line-height: 1.5em;
    margin-bottom: 0.3em;
}

.main-container > section.contents > section > .inner-wrapper {
    margin-right: 1em;
}

@media screen and (max-width: 900px) {
    .main-container > section.contents > section > .inner-wrapper {
        margin-left: 1em;
    }
}

.body > p {
    text-indent: 2em;
}

.body > img {
    width: 100%;
    margin-top: 1em;
    filter: grayscale(100%);
    transition: filter 0.15s linear;
}

.body > img:hover {
    filter: grayscale(0%);
}

.small {
    font-size: 0.875em;
    line-height: 1.6em;
}

.tiny {
    font-size: 0.75em;
    line-height: 1.66em;
}

@media screen and (max-width: 900px) {
    /* hide when mobile */
    .hide-when-mob {
        display:none;
    }
}

/* column control */
.column {
    -moz-column-count: var(--global-column);
    -webkit-column-count: var(--global-column);
    column-count: var(--global-column);
    column-gap: 1em;
}

@media screen and (max-width: 1700px) {
    :root {
        --global-column: 2;
    }
}

@media screen and (max-width: 1200px) {
    :root {
        --global-column: 1;
    }
}

/* func */
.handshake > span {
    display: inline-block;
}

/***** detail *****/

.schedule ul.table > li > .title {
    display: grid;
    grid-template-columns: 2.5fr 0.5fr;
    grid-gap: 1em;
    margin-top: 0.65em;
    margin-right: -1em;
    padding-top: 0.45em;
    padding-right: 1em;
    border-top: 1px solid black;
    line-height: 1.5em;
}

@media screen and (max-width: 900px) {
    .schedule ul.table > li > .title {
        margin-left: -1em;
        padding-left: 1em;
    }
}

.schedule ul.table > li > .title .time {
    flex-shrink: 0;
}

.schedule ul.table > li > .title .info-left {
    display: flex;
    align-items: flex-start;
}

.schedule ul.table > li.foldable > .title {
    cursor: pointer;
    transition: all 0.15s ease;
}

.schedule ul.table > li.foldable > .title:hover {
    color: var(--color-highlight);
    border-top-color: var(--color-highlight);
}

.schedule ul.table > li.relax > .title {
    /*border-top: 1px solid var(--color-gray-line);*/
    color: var(--color-gray-line);
}

.schedule ul.table > li > .title .speaker {
    text-align: right;
}

.schedule ul.table > li > .title > .info-left > .icon {
    display: inline-block;
    width: 0.9em;
    height: 0.9em;
    position: relative;
    top: 0.40em;
    left: 0.25em;

    transition: all 0.5s ease-in-out;
    flex-shrink: 0;
}

.schedule ul.table > li.foldable > .title > .info-left > .icon {
    background-image: url('./src/icon-arrow.svg');
}

.schedule ul.table > li > .title > .info-left .time {
    margin-left: 1em;
    margin-right: 1em;
    width: 7em;
    display: inline-block;
    text-align: center;
}

@media screen and (max-width: 900px) {
    .schedule ul.table > li > .title > .info-left .time {
        width: 4em;
    }
}

.schedule ul.table > li .detail {
    display: grid;
    grid-template-columns: calc(66.6% - 0.25em) calc(33.3% - 0.75em);
    grid-gap: 1em;
    margin-top: 1em;
    margin-bottom: 2em;
}

.schedule ul.table > li .detail .speaker-info .profile-img {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: black;
    overflow:hidden;
    margin-top: 0.5em;
}

.schedule ul.table > li .detail .speaker-info .profile-img > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.schedule ul.table > li .detail .speaker-info .desc {
    margin-top: 0.5em;
}

.schedule .foldable {
    height: fit-content;
    transition: all 0.3s ease-in-out;
}

.schedule .foldable.opened .title .info-left .icon {
    transform: rotate(90deg);
}

@media screen and (max-width: 1700px) {
    .schedule ul.table > li .detail {
        grid-template-columns: 1fr 1fr;
    }
}

@media screen and (max-width: 1200px) {
    .schedule ul.table > li .detail {
        display: block;
    }

    .schedule ul.table > li .detail .speaker-info .profile-img {
        width: 50%;
    }

    .schedule ul.table > li .detail .speaker-info {
        margin-top: 1.5em;
    }
}

.schedule .detail .body figure {
    line-height: 1.3;
    margin-top: 1em;
}

.schedule .detail .body figure {
    line-height: 1.6;
    font-size: 0.75em;
}

.schedule 

.credit {
    text-align: center;
    margin: 2em 0;

    line-height: 1.75em;
}

.credit .divider {
    display: inline-block;
    margin-top: 1.1em;
    margin-bottom:0.8em;
    padding-bottom:0.5em;
    border-bottom:1px solid var(--color-gray-line);
    width: 3em;
}

.credit .logo-hiut {
    width: 3em;
    margin-right: 0.1em;
}

.footer {
    text-align: center;
    border-bottom: none!important;
}

/* this-is-that-what-is- */

.this-is-that {
    position: fixed;
    bottom: 1em;
    left: 1em;
    background-color: rgba(245,246,250,0.93);
    backdrop-filter: blur(4px);
    color: var(--color-highlight);

    padding: 0.9em 1em;
    width: calc(25% - 1em);

    z-index: 99999;

    word-break: keep-all;

    cursor: pointer;
}

.this-is-that .title {
    display: flex;
    align-items: center;
    gap: 1em;
}

.this-is-that .preview {
    font-size: 1.5em;
    width: 1.5em;
    height: 1.5em;

    display: flex;
    align-items: center;
    justify-content: center;

    background-color: var(--color-highlight);
    color: white;
}

.this-is-that .title .preview span {
    transform: translate(0px, -0.1em);
}

.this-is-that .title .name {
    transform: translate(0, -0.1em);
}

.this-is-that .title .name .unicode {
    opacity: 0.4;
}

.this-is-that .description {
    margin-top: 1em;
    display: none;

    line-height: 1.6em;
}

.this-is-that .description .desc {
    margin-bottom:  0.5em;
}

.this-is-that .description .source {
    opacity: 0.4;

    padding-top: 0.3em;
    margin-top: 0.3em;
    border-top: 1px solid var(--color-highlight);
}

@media screen and (max-width: 900px) {
    .this-is-that {
        width: calc(100% - 2em);
    }
}



/***************************************************************************/



.thisisclock {
    transform-origin: 50% 50%;
    /* 성능 힌트 */
    will-change: transform;
}

/* */

ul.carousel {
  overflow: hidden;
  white-space: nowrap;   /* li를 가로로 한 줄로 */
  padding: 0;
  margin: 0;
  position: relative;
}

ul.carousel .carousel__track {
    display: inline-block;
    white-space: nowrap;
    will-change: transform;
}

/* 한 줄에 나란히 */
ul.carousel > li,
ul.carousel .carousel__track > li {
  display: inline-block; /* 요구사항 유지 */
  vertical-align: top;
  /*white-space: normal;*/   /* li 안의 줄바꿈은 정상 처리 */
  padding-right:1em;
}

.people ul.carousel {
    margin-right: -1em;
}

@media screen and (max-width: 900px) {
    .people ul.carousel {
        margin-left: -1em;
    }
}