/*
Theme Name: ONK ARCHIVE
Author: BRANO
Description: Custom theme for ONK ARCHIVE
Version: 1.0
*/
/* ========================================
   ONK ARCHIVE - BASE
======================================== */

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

html {
    margin: 0;
    padding: 0;
}

body {
    margin: 0;
    padding: 0;
    background: #fff;
    color: #111;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}

/* ========================================
   GLOBAL NAVIGATION
======================================== */

.onk-site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    padding: 20px 24px;
    pointer-events: none;
}

.onk-global-nav {
    display: flex;
    align-items: center;
    gap: 32px;
    pointer-events: auto;
}

.onk-global-nav a,
.onk-instagram-placeholder {
    margin: 0;
    padding: 0;
    color: #111;
    font-size: 11px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.08em;
    text-decoration: none;
}

.onk-global-nav a {
    transition: opacity 0.25s ease;
}

.onk-global-nav a:hover {
    opacity: 0.4;
}

/* ========================================
   TEMPORARY HOME
======================================== */

.onk-home {
    min-height: 100vh;
    padding: 90px 24px 24px;
}

.onk-home-title {
    margin: 0;
    font-size: 32px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.03em;
}
/* ========================================
   HOME - ARCHIVE VISUAL STAGE
======================================== */

.onk-home {
    position: relative;
    min-height: 0;
    padding: 0;
    overflow: hidden;
}

.onk-home-stage {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    perspective: 1400px;
    transform-style: preserve-3d;
    overflow: hidden;
}

.onk-home-visual {
    position: absolute;
    margin: 0;
    padding: 0;
    transform-origin: center center;
    will-change: transform, opacity;
}

.onk-home-visual img {
    display: block;
    width: 100%;
    height: auto;
}

/* 01 */
.onk-home-visual-1 {
    width: 14vw;
    top: 12vh;
    left: 12vw;
}

/* 02 */
.onk-home-visual-2 {
    width: 20vw;
    top: 35vh;
    left: 61vw;
}

/* 03 */
.onk-home-visual-3 {
    width: 17vw;
    top: 68vh;
    left: 35vw;
}

/* 04 */
.onk-home-visual-4 {
    width: 19vw;
    top: 92vh;
    left: 69vw;
}

/* 05 */
.onk-home-visual-5 {
    width: 15vw;
    top: 114vh;
    left: 9vw;
}

/* 06 */
.onk-home-visual-6 {
    width: 14vw;
    top: 134vh;
    left: 45vw;
}

/* 07 */
.onk-home-visual-7 {
    width: 21vw;
    top: 156vh;
    left: 72vw;
}

/* 08 */
.onk-home-visual-8 {
    width: 17vw;
    top: 181vh;
    left: 17vw;
}

/* 09 */
.onk-home-visual-9 {
    width: 17vw;
    top: 201vh;
    left: 53vw;
}

/* 10 */
.onk-home-visual-10 {
    width: 16vw;
    top: 222vh;
    left: 28vw;
}

/* 11 */
.onk-home-visual-11 {
    width: 38vw;
    top: 247vh;
    left: 56vw;
}
/* ========================================
   HOME - INITIAL REVEAL
======================================== */

.onk-home-stage {
    animation: onkHomeReveal 1.1s ease-out both;
}

@keyframes onkHomeReveal {
    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .onk-home-stage {
        animation: none;
    }
}
body.home {
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.onk-home {
    width: 100%;
    height: 100vh;
    min-height: 100vh;
    overflow: hidden;
}
/* ========================================
   HOME - FIXED TIMELINE CANVAS
======================================== */

/*
 * TOP????????????
 */
body.home {
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.onk-home {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    min-height: 100vh;
    padding: 0;
    overflow: hidden;
}

/*
 * ??????????????
 */
.onk-home-stage {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;

    perspective: 1400px;
    transform-style: preserve-3d;

    /*
     * ????????????
     * ???????????????
     */
    animation: none;
}

/*
 * Y???JavaScript?????????
 */
.onk-home-visual {
    position: absolute;
    top: 0;

    margin: 0;
    padding: 0;

    opacity: 0;

    transform-origin: center center;
    will-change: transform, opacity;

    pointer-events: none;
}

.onk-home-visual img {
    display: block;
    width: 100%;
    height: auto;
}


/* ========================================
   HOME - INDIVIDUAL X POSITION / SIZE
======================================== */

/* 01 */
.onk-home-visual-1 {
    width: 14vw;
    left: 10vw;
}

/* 02 */
.onk-home-visual-2 {
    width: 20vw;
    left: 62vw;
}

/* 03 */
.onk-home-visual-3 {
    width: 17vw;
    left: 35vw;
}

/* 04 */
.onk-home-visual-4 {
    width: 19vw;
    left: 70vw;
}

/* 05 */
.onk-home-visual-5 {
    width: 15vw;
    left: 8vw;
}

/* 06 */
.onk-home-visual-6 {
    width: 14vw;
    left: 45vw;
}

/* 07 */
.onk-home-visual-7 {
    width: 21vw;
    left: 71vw;
}

/* 08 */
.onk-home-visual-8 {
    width: 17vw;
    left: 17vw;
}

/* 09 */
.onk-home-visual-9 {
    width: 17vw;
    left: 54vw;
}

/* 10 */
.onk-home-visual-10 {
    width: 16vw;
    left: 29vw;
}

/* 11 */
.onk-home-visual-11 {
    width: 38vw;
    left: 55vw;
}
/* ========================================
   ABOUT - BASE
======================================== */

.onk-about {
    position: fixed;
    inset: 0;

    width: 100%;
    height: 100vh;

    background: #fff;
    overflow: hidden;

}

.onk-about-track {
    position: absolute;
    top: 0;
    left: 0;

    display: flex;

    width: 300vw;
    height: 100vh;

    overflow: visible;

    will-change: transform;
}

.onk-about-panel {
    position: relative;
    flex: 0 0 100vw;

    width: 100vw;
    height: 100vh;

    padding: 120px 7vw 70px;

    display: flex;
    align-items: center;
}

.onk-about-block {
    width: 100%;
    max-width: 760px;
}


/* ========================================
   ABOUT - TYPOGRAPHY
======================================== */

.onk-about-index {
    margin: 0 0 34px;

    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.08em;
}

.onk-about-title,
.onk-about-heading {
    margin: 0 0 38px;

    font-size: clamp(34px, 4.2vw, 70px);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: -0.045em;
}

.onk-about-text {
    max-width: 680px;

    margin: 0 0 26px;

    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: -0.01em;
}


/* ========================================
   ABOUT - PANEL POSITION
======================================== */

.onk-about-panel--intro {
    padding-left: 10vw;
}

.onk-about-panel--concept {
    padding-left: 15vw;
}

.onk-about-panel--concept .onk-about-block {
    max-width: 780px;
}

.onk-about-panel--history {
    padding-left: 12vw;
}


/* ========================================
   ABOUT - HISTORY
======================================== */

.onk-about-history {
    width: 100%;
    max-width: 820px;
}

.onk-about-history-item {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 48px;

    padding: 20px 0;

    border-top: 1px solid rgba(17, 17, 17, 0.16);
}

.onk-about-history-item:last-child {
    border-bottom: 1px solid rgba(17, 17, 17, 0.16);
}

.onk-about-history-date,
.onk-about-history-detail {
    margin: 0;

    font-size: 12px;
    line-height: 1.5;
    font-weight: 400;
}
body:has(.onk-about) {
    width: 100%;
    height: 100vh;
    overflow: hidden;
}
/* ========================================
   GALLERY - BASE
======================================== */

.onk-gallery {
    width: 100%;
    min-height: 100vh;

    padding: 110px 3vw 100px;

    background: #fff;
}


/* ========================================
   GALLERY - GRID
======================================== */

.onk-gallery-grid {
    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    column-gap: 3.2vw;
    row-gap: 90px;

    width: 100%;
}


/* ========================================
   GALLERY - ITEM
======================================== */

.onk-gallery-item {
    min-width: 0;
    margin: 0;
}


/* ========================================
   GALLERY - IMAGE
======================================== */

.onk-gallery-image {
    display: block;

    width: 100%;

    margin: 0;
    padding: 0;

    border: 0;
    border-radius: 0;

    background: transparent;

    appearance: none;
    cursor: pointer;
}

.onk-gallery-thumbnail {
    display: block;

    width: 100%;
    height: auto;

    margin: 0;

    object-fit: contain;
}


/* ========================================
   GALLERY - TITLE
======================================== */

.onk-gallery-title {
    margin: 12px 0 0;

    font-size: 10px;
    font-weight: 400;
    line-height: 1.35;

    letter-spacing: 0.04em;

    color: #111;
}
/* ========================================
   GALLERY - IMAGE VIEWER
======================================== */

.onk-gallery-viewer {
    position: fixed;
    inset: 0;

    z-index: 9999;

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

    width: 100%;
    height: 100vh;

    padding: 5vh 5vw;

    background: #fff;

    opacity: 0;
    visibility: hidden;

    transition:
        opacity 0.4s ease,
        visibility 0.4s ease;
}

.onk-gallery-viewer.is-open {
    opacity: 1;
    visibility: visible;
}


/* ========================================
   GALLERY - VIEWER IMAGE
======================================== */

.onk-gallery-viewer-inner {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100%;
}

.onk-gallery-viewer-image {
    display: block;

    width: auto;
    height: auto;

    max-width: 90vw;
    max-height: 88vh;

    object-fit: contain;

    opacity: 0;
    transform: scale(0.985);

    transition:
        opacity 0.45s ease,
        transform 0.45s ease;
}

.onk-gallery-viewer.is-open .onk-gallery-viewer-image {
    opacity: 1;
    transform: scale(1);
}


/* ========================================
   GALLERY - VIEWER CLOSE
======================================== */

.onk-gallery-viewer-close {
    position: absolute;
    top: 22px;
    right: 26px;

    z-index: 2;

    margin: 0;
    padding: 0;

    border: 0;
    background: transparent;

    color: #111;

    font-size: 24px;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;
}


/* ========================================
   GALLERY - VIEWER OPEN
======================================== */

body.onk-gallery-viewer-open {
    overflow: hidden;
}
/* ========================================
   GALLERY - MOBILE
======================================== */

@media (max-width: 767px) {

    .onk-gallery {
        padding:
            90px
            16px
            70px;
    }

    .onk-gallery-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        column-gap: 12px;
        row-gap: 48px;
    }

    .onk-gallery-title {
        margin-top: 8px;

        font-size: 9px;
        line-height: 1.3;
    }

}
/* ========================================
   HOME - MOBILE
======================================== */

@media (max-width: 767px) {

    /* 01 */
    .onk-home-visual-1 {
        width: 34vw;
        left: 6vw;
    }

    /* 02 */
    .onk-home-visual-2 {
        width: 42vw;
        left: 52vw;
    }

    /* 03 */
    .onk-home-visual-3 {
        width: 36vw;
        left: 31vw;
    }

    /* 04 */
    .onk-home-visual-4 {
        width: 40vw;
        left: 54vw;
    }

    /* 05 */
    .onk-home-visual-5 {
        width: 32vw;
        left: 7vw;
    }

    /* 06 */
    .onk-home-visual-6 {
        width: 31vw;
        left: 35vw;
    }

    /* 07 */
    .onk-home-visual-7 {
        width: 44vw;
        left: 53vw;
    }

    /* 08 */
    .onk-home-visual-8 {
        width: 35vw;
        left: 8vw;
    }

    /* 09 */
    .onk-home-visual-9 {
        width: 35vw;
        left: 55vw;
    }

    /* 10 */
    .onk-home-visual-10 {
        width: 34vw;
        left: 29vw;
    }

    /* 11 */
    .onk-home-visual-11 {
        width: 72vw;
        left: 23vw;
    }

}
/* ========================================
   ABOUT - FIXED MOTION CANVAS
======================================== */

body:has(.onk-about-motion) {
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.onk-about-motion {
    position: fixed;
    inset: 0;

    width: 100%;
    height: 100vh;

    overflow: hidden;
    background: #fff;
}

.onk-about-motion-stage {
    position: relative;

    width: 100%;
    height: 100%;

    overflow: hidden;
}


/* ========================================
   ABOUT - MOTION GROUP
======================================== */

.onk-about-motion-group {
    position: absolute;

    top: 0;
    left: 0;

    width: min(760px, 70vw);

    margin: 0;

    will-change: transform, opacity;
}


/* ========================================
   ABOUT - TYPOGRAPHY
======================================== */

.onk-about-motion-index {
    margin: 0 0 24px;

    font-size: 10px;
    font-weight: 400;
    line-height: 1;

    letter-spacing: 0.08em;
}

.onk-about-motion-title,
.onk-about-motion-heading {
    margin: 0 0 34px;

    font-size: clamp(38px, 4.6vw, 76px);
    font-weight: 400;
    line-height: 0.95;

    letter-spacing: -0.045em;
}

.onk-about-motion-text {
    max-width: 680px;

    margin: 0 0 22px;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.65;

    letter-spacing: -0.01em;
}


/* ========================================
   ABOUT - HISTORY
======================================== */

.onk-about-motion-history {
    width: min(780px, 70vw);
}

.onk-about-motion-history-item {
    display: grid;

    grid-template-columns: 255px 1fr;

    gap: 42px;

    padding: 16px 0;

    border-top: 1px solid rgba(17, 17, 17, 0.15);
}

.onk-about-motion-history-item:last-child {
    border-bottom: 1px solid rgba(17, 17, 17, 0.15);
}

.onk-about-motion-history-date,
.onk-about-motion-history-detail {
    margin: 0;

    font-size: 11px;
    font-weight: 400;
    line-height: 1.5;
}


/* ========================================
   ABOUT - PRE-MOTION STATE
======================================== */

/*
 * 01???????
 * 02 / 03 ?????JavaScript???????
 */

.onk-about-motion-group--01 {
    top: 28vh;
    left: 10vw;
}

.onk-about-motion-group--02 {
    top: 23vh;
    left: 10vw;

    opacity: 0;
    visibility: hidden;
}

.onk-about-motion-group--03 {
    top: 16vh;
    left: 10vw;

    opacity: 0;
    visibility: hidden;
}
/* ========================================
   ABOUT MOTION - MOBILE
======================================== */

@media (max-width: 767px) {

    .onk-about-motion-group {
        width: 84vw;
        max-width: none;
    }

    .onk-about-motion-group--01,
    .onk-about-motion-group--02,
    .onk-about-motion-group--03 {
        left: 8vw;
    }

    .onk-about-motion-title,
    .onk-about-motion-heading {
        font-size: 32px;
        line-height: 0.98;
        margin-bottom: 26px;
    }

    .onk-about-motion-text {
        width: 100%;
        max-width: none;

        font-size: 12px;
        line-height: 1.6;
    }

    .onk-about-motion-history {
        width: 100%;
        max-width: none;
    }

    .onk-about-motion-history-item {
        display: block;

        padding: 13px 0;

        border-top: 1px solid rgba(17, 17, 17, 0.15);
    }

    .onk-about-motion-history-date {
        margin-bottom: 5px;
    }

    .onk-about-motion-history-date,
    .onk-about-motion-history-detail {
        width: 100%;

        font-size: 10px;
        line-height: 1.45;
    }

}