/* About page. Shared nav/reveal/overlay rules live in style.css. */

/* 3D Stacking Layer Depth CSS */
.depth-card {
    transform-style: preserve-3d;
    perspective: 1000px;
    transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
    position: relative;
}
.depth-card-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(199, 0, 255, 0.05), rgba(42, 101, 229, 0.05));
    border-radius: inherit;
    z-index: 1;
    transition: opacity 0.5s;
    opacity: 0.5;
    pointer-events: none;
}
.depth-card:hover .depth-card-bg { opacity: 1; }
.depth-card-content {
    position: relative;
    transform: translateZ(30px);
    z-index: 2;
    transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.depth-card-float {
    transform: translateZ(60px);
    z-index: 3;
    transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Journey Timeline */
.journey-timeline {
    position: relative;
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem 0;
}
.journey-node {
    position: relative;
    width: 50%;
    margin-bottom: 4rem;
    z-index: 1;
}
.journey-node.left { left: 0; padding-right: 50px; text-align: right; }
.journey-node.right { left: 50%; padding-left: 50px; text-align: left; }
.journey-dot {
    position: absolute;
    top: 50px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 4px solid #0B0B0E;
    z-index: 2;
}
.journey-node.left .journey-dot { right: -12px; }
.journey-node.right .journey-dot { left: -12px; }

/* Logos in the empty space: centred in the opposite (empty) half of the timeline, square box,
   aspect ratio kept (height: auto), so every mark renders at the same visual size. */
.journey-logo {
    position: absolute;
    top: 50%;
    width: clamp(140px, 44%, 220px);
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    transform: translate(-50%, -50%);
    opacity: 0.3;
    pointer-events: none;
    z-index: 0;
    filter: grayscale(100%);
    transition: opacity 0.6s var(--ease-out), filter 0.6s var(--ease-out), transform 0.6s var(--ease-out);
}
.journey-node:hover .journey-logo {
    opacity: 0.5;
    filter: grayscale(0%);
    transform: translate(-50%, -50%) scale(1.05);
}
/* The node is half the timeline wide: the empty half's centre is 1.5 node-widths from the
   left node's left edge, and half a node-width left of the right node. */
.journey-node.left .journey-logo { left: 150%; }
.journey-node.right .journey-logo { left: -50%; }

@media (max-width: 768px) {
    .journey-node { width: 100%; margin-bottom: 3rem; }
    .journey-node.left, .journey-node.right {
        left: 0;
        padding-left: 60px;
        padding-right: 15px;
        text-align: left;
    }
    .journey-node.left .journey-dot, .journey-node.right .journey-dot {
        left: 8px; /* 20px line - 12px dot radius = 8px */
        right: auto;
    }
    .journey-logo { display: none; }
    .journey-node .title-lg { font-size: 2rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    .journey-logo { transition: none; }
    .journey-node:hover .journey-logo { transform: translate(-50%, -50%); }
}

/* What we can promise (inside the mission story, after the journey). */
.promises { padding: 6rem 10%; }
.promises__inner { max-width: 820px; margin: 0 auto; }
.promises__title { font-size: clamp(2.25rem, 6vw, 3rem); margin-bottom: 1.5rem; }
.promises__lede { color: var(--text-muted); line-height: 1.8; max-width: 62ch; margin-bottom: 2.5rem; text-wrap: pretty; }
.promises__lede a, .promises__list a { color: var(--accent-text); font-weight: 700; text-underline-offset: 3px; }
.promises__list { list-style: none; display: grid; gap: 1rem; }
.promises__list li {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.25rem 1.5rem;
    border-radius: var(--radius-lg);
    background: var(--surface-1);
    border: 1px solid var(--border-subtle);
    line-height: 1.7;
    color: var(--text-muted);
}
.promises__list li strong { color: var(--text); }
.promises__list i { flex: none; width: 1.5rem; margin-top: 0.3rem; color: var(--accent-text-2); text-align: center; }
@media (max-width: 600px) {
    .promises { padding: 4rem 1.25rem; }
    .promises__list li { padding: 1rem 1.1rem; }
}
