/*
 * IKIMON — Light Theme
 * Responsive regressions are checked by scripts/visual-audit.mjs at 390px and 1440px.
 */

html { scroll-behavior: smooth; }

body {
    background: #ffffff;
    color: #202124;
    font-family: 'Inter', 'Noto Sans JP', system-ui, sans-serif;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

::selection {
    background: #d1fae5;
    color: #065f46;
}

/* Responsive line breaks */
.br-pc { display: none; }
@media (min-width: 768px) { .br-pc { display: block; height: 0; } }
.br-sp { display: block; height: 0; }
@media (min-width: 768px) { .br-sp { display: none; } }

/* Vertical writing */
.writing-vertical,
.writing-vertical-rl {
    writing-mode: vertical-rl;
    text-orientation: mixed;
}

/* Header */
.header-scrolled {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/*
 * Content visibility
 * スクロール演出の成否にかかわらず本文を常に表示する。
 * IntersectionObserverは互換性のため残すが、表示条件にはしない。
 */
.reveal-up,
.reveal-text,
.js .reveal-up,
.js .reveal-text,
.js .reveal-up.active,
.js .reveal-text.active {
    opacity: 1;
    transform: none;
}

/* Cards */
.card-hover {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card-hover:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

/* News items */
.news-item {
    position: relative;
    transition: background 0.2s ease;
}
.news-item:hover { background: #f8f9fa; }

/* Scroll line */
@keyframes scroll-line {
    0%   { transform: translateY(-100%); }
    50%  { transform: translateY(100%); }
    50.01%, 100% { transform: translateY(-100%); }
}
.animate-scroll-line { animation: scroll-line 2s ease-in-out infinite; }

/* Focus styles */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
iframe:focus-visible {
    outline: 2px solid #059669;
    outline-offset: 3px;
    border-radius: 4px;
}

/* Form inputs */
input[type="text"],
input[type="email"],
textarea { color: #202124; }

input::placeholder,
textarea::placeholder { color: #9aa0a6; }

/* Motion preferences */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
