/* general */

*{
    font-family: 'Noto Sans TC', 'Futura';
}

body{
    background-color: #111;
}

@media (max-width: 576px){
    .container{
        padding-left: 24px;
        padding-right: 24px;
    }
}


.btn{
    border-radius: 24px;
    padding: 10px 32px;
    
}

a{
    text-decoration: none;
    display: inline-block;
}

.icon-arrow{
    width: 20px;
}

img{
    width: 100%;
    background-size: cover;
}

p, .p{
    font-family: Noto Sans TC;
    font-size: 1rem;
    font-weight: 400;
    line-height: 175%;
    letter-spacing: 1.28px;
    margin-bottom: 2px;
}

ul{
    padding-left: 0;
}

li{
    list-style: none;
    margin-bottom: 4px;
}

.font-small{
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0.28px;
}

.font-en{
    font-family: Futura;
    font-weight: 700;
}

.shadow-primary{
    box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.1);
}

.hr-dark{
    color: rgba(0, 0, 0, 0.3)
}

.hr-light{
    color: rgba(255, 255, 255, 1)
}

.section-title{
    margin-bottom: 40px;

    .subtitle{
        margin-bottom: 0;
        opacity: 0.8;
    }

    .h1{
        margin-bottom: 0;
    }

    & h2{
        margin-bottom: 0;
    }
}

.section-design-challenge .section-title{
    margin-bottom: 56px;
}


.bg-white{
    background-color: #fff;
}

.bg-light{
    background-color: #f8f8f8;
}

.bg-grey{
    background-color: #eee;
}

.section-padding{
    padding: 144px 0;

    @media (max-width: 576px){
        padding: 80px 0;
    }
}

.section-padding-small{
    padding: 96px 0;

    @media (max-width: 576px){
        padding: 48px 0 64px 0;
    }
}

.icon-star{
    margin-top: -4px;
    margin-right: 8px;
}

.icon-quote{
    padding: 0 4px 0 7px;
}

.feature-text{
    margin-bottom: 40px;

    & h5{
        margin-bottom: 16px;
    }

    & p{
        margin-bottom: 12px;
    }

    & p:last-child{
        margin-bottom: 0;
    }
}


/* general-color */
.text-green-01{
    color: #3ADE00;
}

.text-green-02{
    color: #299D00;
}

.text-camping-01{
    color: #50CEB0;
}

.text-toolstool-01{
    color: #FF8800;
}

.text-ou-01{
    color: #D83379;
}

.text-ou-02{
    color: #E05C94;
}

.ou-gradient-text{
    background: linear-gradient(to right, #E05C94 0%, #7E5AA5 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.text-fveye-01{
    color: #3AB56E;
}

.text-aisp-01{
    color: #2A56BF;
}

.text-aisp-02{
    color: #82A7FF;
}


/* navbar */

@media (min-width: 1200px){
    .navbar-padding{
        padding: 0 120px;
    }
}

.nav-border-bottom{
    border-bottom: solid 1px rgba(255, 255, 255, 0.3);
}

@media (min-width: 768px){
    .nav-border-bottom{
        border-bottom: none;
    }
}

.navbar-brand{
    font-size: 24px;
    padding: 20px 0;
}

.navbar-nav li{
    margin-bottom: 0;
}

.nav-item{
    padding: 0 16px;
    & a{
        font-size: 16px;
        font-weight: 500;
    }
}

.nav-link{
    padding: 0;

    li{
        margin-bottom: 0;
    }
}

.navbar-toggler{
    border: none;
}





/* cursor/animation */
.custom-cursor {
	position: fixed;
	top: calc(var(--y) * 1px);
	left: calc(var(--x) * 1px);
	aspect-ratio: 1;
	background: var(--bgc);
    color: var(--color);
	display: grid;
	place-items: center;
	padding: var(--padding);
	z-index: 9999;
	translate: -50% -50%;
	scale: var(--show, 0);
    mix-blend-mode: var(--mix-blend-mode);
	transition: scale 0.2s;
	pointer-events: none;
	cursor: none;
	border-radius: 50%;
	font-size: 12px;
}

:root:has(.portfolio-card:hover) {
    .custom-cursor::before{
        content:"VIEW";
        font-size: 16px;
    }
    --padding: 2rem;
    --bgc: black;
    --color: white;
    --mix-blend-mode: normal;
	--show: 1;
	cursor: none;
}

:root:has(.navbar-brand:hover) {
    --padding: 3rem;
    --bgc: white;
    --color: white;
	--show: 0.8;
	cursor: none;
    --mix-blend-mode: difference;
}

:root:has(.btn:hover) {
    --padding: 3rem;
    --bgc: white;
    --color: white;
	--show: 0.8;
	cursor: none;
    --mix-blend-mode: difference;
}

:root:has(.link-line:hover) {
    --padding: 3rem;
    --bgc: white;
    --color: white;
	--show: 0.8;
	cursor: none;
    --mix-blend-mode: difference;
}

a{
    cursor: none;
}

.link-line a{
    position:relative;
  }
  
.link-line a::before{
content:"";
position:absolute;
width:76%;
height:2px;
bottom:-4px;
background:white;
transform:scaleX(0);
transition:transform 400ms ease-out;
transform-origin:bottom right;
}

.link-line a:hover::before{
transform-origin:bottom left;
transform:scaleX(1);
}

.btn{
    border: none;
    font-weight: 500;
}

.btn:hover{
    background-color: #111;
}

.btn-small{
    font-size: 16px;
    font-weight: 500;
    padding: 6px 20px;
}

.btn-outline-light{
    border: solid 1px white;
}

.btn-outline-light{
    border: solid 1px white;

    &:hover{
        background-color: white;
    }

}

button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
  cursor: none;
}


/* footer */
#section-footer{
    background-color: #111;
    padding: 64px 0;
    color: white;

    @media (max-width: 576px){
        padding: 48px 0;
    }

    .links{
        margin-bottom: 32px;
    }

    .social-link{
        color: white;
        text-decoration: none;
        padding: 0 14px;
        border-right: solid 1px rgba(255 255 255 / 0.4);
    }

    .social-link:last-child{
        border-right: none;
    }
    
    .social-link i{
        margin-right: 4px;
    }

    .copyright{
        opacity: 0.6;
    }

}





/* index */
/* portfolio items */

#section-index-banner{
    padding-top: 24px;

    .img-index-text{
        max-width: 1100px;
        margin-top: 40px;
    }

    .img-character{
        width: 512px;
    }

    @media (max-width: 1400px){
        & .img-index-text{
            padding: 0 80px;
        }
    }

    @media (max-width: 992px){
        padding-top: 24px;

        & .img-index-text{
            padding: 0 100px;
            margin-top: 15%;
        }
    }

    @media (max-width: 768px){
        & .img-index-text{
            padding: 0 40px;
            margin-top: 15%;
        }
    }

    @media (max-width: 576px){
        padding-top: 0px;

        & .img-index-text-m{
            padding: 0 24px;
            margin-top: 20%;
        }

    }

}

.blur-light-index, .blur-light-about{
    width: 550px;
    height: 550px;
    border-radius: 50%;
    background-color: #fff;
    opacity: 0.25;
    position: absolute;
    filter: blur(114px);
    top: 60%;
    left: 50%;
    transform: translateX(-50%);
}

.blur-light-index{
    top: 60%;
}

.blur-light-about{
    opacity: 0.25;
    left: 25%;
}


.brief{
    @media (max-width: 768px){
        margin-bottom: 40px;
    }
}

#section-portfolio-items{
    & a{
        color: #111;
    }
}

.portfolio-card{
    width: 100%;
    margin-bottom: 40px;
    padding: 32px 40px;
    border-radius: 20px;
    aspect-ratio: 1.28;
    /* background-image: url(./assets/images/img-camping-work.jpg); */
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: center;
    transition: all 1s;

    .h2{
        margin-bottom: 0;
    }

    & p{
        opacity: 0.8;
    }

    @media (min-width:768px) and (max-width: 992px){
        .h2{
            font-size: 26px;
        }
    }

    @media (max-width: 576px){
        padding: 32px 24px;
        margin-bottom: 24px;

        .h2{
            font-size: 26px;
        }
    }


}

.portfolio-card:hover {
    background-size: 110%;
    transition: all 1s;
  }



/* creative space */
.creative-space-card{
    margin-bottom: 64px;

    .img-creative-space{
        border-radius: 20px;
        margin-bottom: 12px;
    }

    & p{
        color: #999;
        letter-spacing: normal;
        margin-bottom: 0;
    }

    @media (max-width: 767px){
        margin-bottom: 40px;
    }
}

@media (max-width: 576px){
    .creative-space-card .img-creative-space{
        margin-bottom: 8px;
    }
}





/* about */
#section-about-banner{

    & h1{
        margin-bottom: 24px;
    }

    & p{
        opacity: 0.8;
        margin-bottom: 12px;
    }

    .text-about-brief{
        padding: 40px 0 80px 0;
    }

    @media (max-width: 992px){
        .text-about-brief{
            padding: 48px 0 24px 0;
        }
    }

}

#section-about{
    .software{
        margin-bottom: 56px;
    }

    & h5{
        margin-bottom: 12px;
    }

    & hr{
        margin: 96px 0;
    }

    @media (max-width: 576px){
        .software{
            margin-bottom: 32px;
        }

        & hr{
            margin: 64px;
        } 
    }
}

.design p{
    line-height: 20px;
    margin-bottom: 12px;
}

.experience .section-title{
    margin-bottom: 80px;

    @media (max-width: 992px){
        &.section-title{
            margin-bottom: 64px;
        }
    }
}

.card-experience{
    margin-bottom: 80px;

    &:last-child{
        margin-bottom: 0;
    }

    & img{
        width: 68px;
        height: 68px;
        border-radius: 8px;
        margin-right: 16px;
    }

    .institute-name{
        margin-top: 12px;
    }

    & h6{
        margin-bottom: 6px;
    }

    .description{
        margin-top: 10px;
        padding-left: 24px;
    }

    @media (max-width: 992px){
        margin-bottom: 64px;

        .description{
            margin-top: 20px;
            padding-left: calc(var(--bs-gutter-x) * 0.5);
        }   
    }
}



/* work-inside-pages */
.banner-work-camping{
    background-image: url("../images/img-camping-banner-large.png");
}

.banner-work-toolstool{
    background-image: url("../images/img-toolstool-banner-large.png");
}

.banner-work-ou{
    background-image: url("../images/img-ou-banner-large.png");
}

.banner-work-fveye{
    background-image: url("../images/img-fveye-banner-large.png");
}

.banner-work-aisp{
    background-image: url("../images/img-aisp-banner-large.png");
}

.banner-work-misc{
    background-image: url("../images/img-misc-projects-banner-large.png");
}

@media (min-width: 576px) and (max-width: 1440px){
    .banner-work-toolstool{
        background-image: url("../images/img-toolstool-banner-medium.png");
    }
}


@media only screen and (max-width: 576px) {
    .banner-work-camping{
        background-image: url("../images/img-camping-banner-small.png");
    }

    .banner-work-toolstool{
        background-image: url("../images/img-toolstool-banner-small.png");
    }

    .banner-work-ou {
        background-image: url("../images/img-ou-banner-small.png");
    }

    .banner-work-fveye{
        background-image: url("../images/img-fveye-banner-small.png");
    }

    .banner-work-aisp{
        background-image: url("../images/img-aisp-banner-small.png");
    }

    .banner-work-misc{
        background-image: url("../images/img-misc-projects-banner-small.png");
    }
}



@media (max-width: 1200px) and (min-width: 768px){
    .overview-text{
        padding: 0 40px;
    }
}

@media (max-width: 576px){
    .overview-text{
        padding: 0 16px;
    }
}

.section-overview{
    padding: 96px 0;
}

@media (max-width: 1200px){
    .section-overview{
        padding: 96px 0 144px 0;
    }
}

@media (max-width: 576px){
    .section-overview{
        padding: 56px 0 80px 0;
    }

    .overview-text-block{
        margin-bottom: 40px;
    }
}

.section-features hr, .section-design-challenge hr, .section-misc-projects hr{
    margin: 80px 0;
}

@media (max-width: 576px){
    .section-features hr, .section-design-challenge hr, .section-misc-projects hr{
        margin: 64px;
    } 
}

@media (max-width: 768px){
    .card-feature{
        margin-bottom: 40px;
    }
}

.img-work{
    background-color: #fff;
    border-radius: 20px;
    margin-bottom: 12px;
}

.section-banner-work{
    height: 344px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.section-overview hr{
    margin: 48px 0;
}

.section-design-challenge{
    & p{
        opacity: 0.8;
    }
}

.quote{
    padding: 24px 32px;
    margin-top: 40px;
    margin-bottom: 0;
    border: solid 2px white;
    border-radius: 20px;
}

.design-system-toolstool, .design-system-aisp{
    & img{
        margin-bottom: 40px;
    }
}

.section-promotional{
    & img{
        margin-bottom: 24px;
    }

    @media (max-width: 992px){
        & img{
            margin-bottom: 40px;
        }
    }
}

.border-ou-gradient{
    border: 2px solid transparent;
    background-image: linear-gradient(#111 0%, #111 100%),
        linear-gradient(to right, #E05C94 0%, #7E5AA5 100%);
    background-origin: border-box;
    background-clip: padding-box, border-box;
}


/* work-misc-projects */

.description-misc-project{
    margin-bottom: 40px;

    .subtitle{
        margin-bottom: 0;
    }

    & h3{
        margin-bottom: 16px;
    }

    & p{
        margin-bottom: 12px;
    }

    & p:last-child{
        margin-bottom: 0;
    }

}

.section-misc-projects{
    & img{
        margin-bottom: 24px;
    }
}