/* bada.moe - Watercolor Japanese-Minimal Artbook */

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

:root{
    --washi:#F7F3EE;
    --dawn:#E8DFD8;
    --sumi:#1C2340;
    --blush:#D4A0A0;
    --cerulean:#6BA3BE;
    --amber:#C9964B;
    --lavender:#B8A9C9;
}

html{scroll-behavior:smooth}

body{
    background:var(--washi);
    color:var(--sumi);
    font-family:'Noto Serif JP',serif;
    font-weight:400;
    font-size:clamp(1rem,1.4vw,1.2rem);
    line-height:2.0;
    letter-spacing:0.02em;
    overflow-x:hidden;
}

/* Particle layer */
.particle-layer{
    position:fixed;
    inset:0;
    z-index:10;
    pointer-events:none;
}

.ink-drop{
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}

/* Page base */
.page{
    min-height:100vh;
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:8vh 12vw;
}

.page-content{
    position:relative;
    z-index:5;
    max-width:1000px;
    width:100%;
}

.page-content-center{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
}

/* Background kanji */
.bg-kanji{
    position:absolute;
    font-family:'Noto Serif JP',serif;
    font-weight:900;
    font-size:clamp(20vw,30vw,40vw);
    color:var(--sumi);
    opacity:0.03;
    z-index:0;
    pointer-events:none;
    line-height:1;
    right:-10%;
    top:10%;
    user-select:none;
}

.bg-kanji-left{
    right:auto;
    left:-8%;
    top:5%;
}

.bg-kanji-center{
    right:auto;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
}

.bg-kanji-bottom{
    right:10%;
    top:auto;
    bottom:-5%;
    opacity:0.025;
}

/* Brushstroke dividers */
.brushstroke{
    position:absolute;
    bottom:0;
    left:0;
    width:100%;
    height:40px;
    z-index:3;
}

.brushstroke-2{
    height:50px;
}

/* Fade-in animation */
.fade-in{
    opacity:0;
    transform:translateY(12px);
    transition:opacity 1200ms cubic-bezier(0.25,0.1,0.25,1),transform 1200ms cubic-bezier(0.25,0.1,0.25,1);
}

.fade-in.visible{
    opacity:1;
    transform:translateY(0);
}

/* Section headings */
.section-heading{
    font-family:'Zen Maru Gothic',sans-serif;
    font-weight:500;
    font-size:clamp(1.4rem,2.8vw,2.8rem);
    letter-spacing:0.06em;
    line-height:1.15;
    color:var(--sumi);
    margin-bottom:2rem;
}

/* Body text */
.body-text{
    max-width:55ch;
    margin-bottom:1.5rem;
}

/* ==============================
   Page 1: Surface
   ============================== */
.page-surface{
    background:
        radial-gradient(ellipse at 35% 62%,rgba(107,163,190,0.1),transparent 60%),
        radial-gradient(ellipse at 78% 28%,rgba(212,160,160,0.08),transparent 55%),
        radial-gradient(ellipse at 12% 85%,rgba(201,150,75,0.06),transparent 50%),
        var(--washi);
    animation:washBreathe 40s ease-in-out infinite;
}

@keyframes washBreathe{
    0%,100%{background-position:0% 0%,0% 0%,0% 0%}
    33%{background-position:5% 3%,-3% 5%,2% -2%}
    66%{background-position:-3% -2%,4% -3%,-2% 4%}
}

.page-surface .page-content{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
}

.site-title{
    font-family:'Zen Maru Gothic',sans-serif;
    font-weight:500;
    font-size:clamp(2.5rem,7vw,6rem);
    letter-spacing:0.06em;
    line-height:1.15;
    margin-bottom:2rem;
}

.letter-1{color:var(--cerulean)}
.letter-2{color:var(--blush)}
.letter-3{color:var(--sumi);opacity:0.7}
.letter-4{color:var(--amber)}
.letter-5{color:var(--sumi);opacity:0.5}
.letter-6{color:var(--cerulean)}
.letter-7{color:var(--blush)}
.letter-8{color:var(--lavender)}

.hero-poem{
    font-family:'Noto Serif JP',serif;
    font-weight:400;
    font-size:clamp(1rem,1.4vw,1.2rem);
    line-height:2.0;
    color:var(--sumi);
    opacity:0;
    animation:poemFade 2s ease 1s forwards;
}

@keyframes poemFade{
    to{opacity:0.7}
}

/* ==============================
   Page 2: Descent
   ============================== */
.page-descent{
    background:
        radial-gradient(ellipse at 60% 30%,rgba(107,163,190,0.15),transparent 55%),
        radial-gradient(ellipse at 20% 70%,rgba(184,169,201,0.1),transparent 50%),
        radial-gradient(ellipse at 85% 80%,rgba(212,160,160,0.06),transparent 45%),
        var(--dawn);
}

.descent-layout{
    display:grid;
    grid-template-columns:40% 35%;
    gap:10%;
    align-items:start;
}

.col-right{
    margin-top:15vh;
}

/* ==============================
   Page 3: Currents
   ============================== */
.page-currents{
    background:
        radial-gradient(ellipse at 50% 50%,rgba(107,163,190,0.08),transparent 60%),
        radial-gradient(ellipse at 25% 75%,rgba(201,150,75,0.06),transparent 50%),
        var(--washi);
}

.card-row{
    display:flex;
    gap:clamp(16px,3vw,32px);
    margin-top:2rem;
}

.wash-card{
    flex:0 0 28vw;
    max-width:320px;
    padding:clamp(24px,3vw,40px);
    border-radius:4px;
    position:relative;
    overflow:hidden;
}

.wash-card::before{
    content:'';
    position:absolute;
    inset:0;
    border-radius:4px;
    mask-image:radial-gradient(ellipse,black 60%,transparent 100%);
    -webkit-mask-image:radial-gradient(ellipse,black 60%,transparent 100%);
    z-index:0;
}

.wash-blush::before{background:rgba(212,160,160,0.08)}
.wash-cerulean::before{background:rgba(107,163,190,0.1)}
.wash-amber::before{background:rgba(201,150,75,0.08)}

.card-title{
    font-family:'Zen Maru Gothic',sans-serif;
    font-weight:500;
    font-size:clamp(1.1rem,1.6vw,1.4rem);
    letter-spacing:0.06em;
    color:var(--sumi);
    margin-bottom:0.8rem;
    position:relative;
    z-index:1;
}

.card-text{
    font-size:clamp(0.9rem,1.1vw,1.05rem);
    line-height:1.85;
    position:relative;
    z-index:1;
}

/* ==============================
   Page 4: Luminescence
   ============================== */
.page-luminescence{
    background:
        radial-gradient(ellipse at 40% 40%,rgba(201,150,75,0.12),transparent 55%),
        radial-gradient(ellipse at 70% 60%,rgba(212,160,160,0.1),transparent 50%),
        radial-gradient(ellipse at 20% 80%,rgba(107,163,190,0.06),transparent 45%),
        var(--washi);
    animation:lumiWash 50s ease-in-out infinite;
}

@keyframes lumiWash{
    0%,100%{background-position:0% 0%,0% 0%,0% 0%}
    50%{background-position:4% -3%,-5% 4%,3% -2%}
}

.lumi-statement{
    font-family:'Zen Maru Gothic',sans-serif;
    font-weight:500;
    font-size:clamp(3rem,10vw,8rem);
    letter-spacing:0.06em;
    line-height:1.15;
    color:var(--amber);
    max-width:16ch;
    margin-bottom:3rem;
}

.lumi-body{
    max-width:55ch;
}

/* ==============================
   Page 5: Horizon
   ============================== */
.page-horizon{
    background:
        radial-gradient(ellipse at 50% 50%,rgba(232,223,216,0.5),transparent 70%),
        var(--washi);
    min-height:80vh;
}

.horizon-nav{
    display:flex;
    gap:clamp(16px,3vw,40px);
    margin-bottom:3rem;
}

.nav-link{
    font-family:'Karla',sans-serif;
    font-weight:400;
    font-size:clamp(0.75rem,1vw,0.9rem);
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--sumi);
    text-decoration:none;
    opacity:0.6;
    transition:opacity 300ms ease,color 300ms ease;
}

.nav-link:hover{
    opacity:1;
    color:var(--cerulean);
}

.closing-line{
    font-family:'Noto Serif JP',serif;
    font-style:italic;
    font-size:clamp(1rem,1.4vw,1.2rem);
    color:var(--sumi);
    opacity:0.5;
}

/* Responsive */
@media(max-width:768px){
    .page{
        padding:8vh 6vw;
    }

    .descent-layout{
        grid-template-columns:1fr;
        gap:2rem;
    }

    .col-right{
        margin-top:0;
    }

    .card-row{
        flex-direction:column;
    }

    .wash-card{
        flex:none;
        max-width:100%;
    }

    .bg-kanji{
        font-size:40vw;
        opacity:0.04;
    }

    .horizon-nav{
        flex-wrap:wrap;
        justify-content:center;
    }

    .lumi-statement{
        font-size:clamp(2rem,8vw,4rem);
    }
}
