/* =========================================================
   萌萌烘焙屋 Moe Moe Bakery — styles.css
   Kawaii neo-brutalist theme
   ========================================================= */

:root {
    --kawaii-pink: #ffb7c5;
    --kawaii-blue: #a0e6ff;
    --kawaii-yellow: #fff5ba;
    --kawaii-purple: #e0b0ff;
    --kawaii-text: #5d4037;
    --kawaii-border: #5d4037;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }

body {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    background-color: #fffaf0;
    color: var(--kawaii-text);
    overflow-x: hidden;
    background-image: radial-gradient(#ffcad4 1.5px, transparent 1.5px);
    background-size: 40px 40px;
}

/* Respect user motion preferences */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Screen-reader only (skip link etc.) */
.sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}
.skip-link {
    position: absolute;
    top: -100px; left: 1rem;
    background: var(--kawaii-yellow);
    border: 4px solid var(--kawaii-border);
    border-radius: 999px;
    padding: 0.6rem 1.4rem;
    font-weight: 900;
    z-index: 100;
    transition: top 0.2s;
}
.skip-link:focus { top: 1rem; }

/* Consistent focus ring for keyboard users */
:focus-visible {
    outline: 3px solid #ff80ab;
    outline-offset: 3px;
    border-radius: 8px;
}

/* ---------- Core UI tokens ---------- */
.kawaii-border    { border: 4px solid var(--kawaii-border); }
.kawaii-shadow    { box-shadow: 8px 8px 0px var(--kawaii-border); }
.kawaii-shadow-sm { box-shadow: 4px 4px 0px var(--kawaii-border); }

.kawaii-card {
    background: white;
    border: 4px solid var(--kawaii-border);
    border-radius: 32px;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275),
                box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.kawaii-card:hover {
    transform: translateY(-8px) rotate(1deg);
    box-shadow: 12px 12px 0px var(--kawaii-border);
}

.btn-bounce { transition: transform 0.2s; cursor: pointer; }
.btn-bounce:active { transform: scale(0.95) translateY(2px); }

@keyframes float {
    0%   { transform: translateY(0px)   rotate(0deg); }
    50%  { transform: translateY(-15px) rotate(2deg); }
    100% { transform: translateY(0px)   rotate(0deg); }
}
.animate-float { animation: float 5s ease-in-out infinite; }

/* ---------- Navigation & page transitions ---------- */
nav {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    background: rgba(255, 255, 255, 0.9);
}

.page-content { display: none; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(15px); }
    to   { opacity: 1; transform: translateY(0); }
}
.page-content.active {
    display: block;
    animation: fadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.nav-btn { position: relative; padding-bottom: 4px; }
.nav-btn.active,
.nav-btn[aria-current="page"] { color: #ff80ab; }
.nav-btn.active::after,
.nav-btn[aria-current="page"]::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 100%;
    height: 3px;
    background-color: var(--kawaii-pink);
    border-radius: 2px;
}

/* ---------- Section title ---------- */
.section-title {
    display: inline-block;
    padding: 0.8rem 2.5rem;
    background: var(--kawaii-yellow);
    border: 4px solid var(--kawaii-border);
    border-radius: 999px;
    font-weight: 900;
    font-size: 1.5rem;
    margin-bottom: 2rem;
    transform: rotate(-1.5deg);
    box-shadow: 4px 4px 0px var(--kawaii-border);
}
@media (min-width: 768px) {
    .section-title { margin-bottom: 3rem; }
}

/* ---------- Image protection / zoom ---------- */
.img-zoom-container {
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-bottom: 4px solid var(--kawaii-border);
    background-color: #f3f4f6; /* fallback color while loading */
    position: relative;
}
.img-zoom {
    transition: transform 0.6s ease;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0; left: 0;
}
.kawaii-card:hover .img-zoom { transform: scale(1.1); }

/* ---------- Order steps ---------- */
.order-step-container { position: relative; padding-top: 30px; }
.step-badge {
    width: 50px; height: 50px;
    background: var(--kawaii-pink);
    border: 4px solid var(--kawaii-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 1.5rem;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    box-shadow: 4px 4px 0px var(--kawaii-border);
    z-index: 10;
}

.ingredient-label {
    position: absolute;
    background: white;
    border: 2px solid var(--kawaii-border);
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 3px 3px 0 var(--kawaii-border);
}
