.about-terminal-page {
    position: relative;
}

/* Vertical auto-scrolling SEO media feed inside the terminal */
.about-terminal-media {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.about-media-viewport {
    position: relative;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    mask-image: linear-gradient(180deg, transparent, #000 8%, #000 92%, transparent);
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 8%, #000 92%, transparent);
}

.about-bubble {
    position: absolute;
    left: var(--left);
    top: 0;
    display: block;
    width: var(--size);
    padding: 5px 5px 3px;
    border: 1px solid rgba(120, 255, 235, 0.28);
    background: rgba(4, 18, 20, 0.72);
    color: rgba(165, 255, 232, 0.72);
    font-family: var(--mono);
    font-size: 0.5rem;
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
    animation: about-tile-fall var(--duration) linear var(--delay) infinite;
    transition: border-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, z-index 0s;
    will-change: transform;
}

.about-bubble img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    filter: grayscale(0.6) contrast(1.05);
    transition: filter 0.25s ease;
}

.about-bubble span {
    display: block;
    padding-top: 4px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.about-bubble:hover,
.about-bubble:focus-visible {
    z-index: 5;
    border-color: #ff8994;
    box-shadow: 0 0 18px rgba(226, 0, 26, 0.3);
    color: #ffd9dd;
    animation-play-state: paused;
}

.about-bubble:hover img,
.about-bubble:focus-visible img {
    filter: none;
}

/* Falls straight down from above the viewport to below it, with a gentle side-to-side sway, then loops. */
@keyframes about-tile-fall {
    0%   { transform: translate(calc(var(--sway) * -1), -30vh) rotate(calc(var(--spin) * -1)); }
    25%  { transform: translate(var(--sway), 15vh) rotate(0deg); }
    50%  { transform: translate(calc(var(--sway) * -1), 60vh) rotate(var(--spin)); }
    75%  { transform: translate(var(--sway), 100vh) rotate(0deg); }
    100% { transform: translate(calc(var(--sway) * -1), 140vh) rotate(calc(var(--spin) * -1)); }
}


.about-terminal-layout {
    display: grid;
    flex: 1;
    min-height: 0;
    grid-template-columns: minmax(230px, 0.62fr) minmax(0, 2fr);
    gap: 1px;
    padding: clamp(0.55rem, 1vw, 0.8rem);
    background: rgba(120, 255, 235, 0.1);
}

.about-terminal-side {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-height: 0;
}

.about-terminal-index,
.about-terminal-doc {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.about-terminal-index {
    flex: 0 0 auto;
    max-height: 42%;
}

.about-doc-head-meta {
    display: inline-flex;
    gap: 0.75rem;
    align-items: center;
}

.about-presskit-link {
    padding: 0.15rem 0.5rem;
    border: 1px solid rgba(120, 255, 235, 0.45);
    color: #a5ffe8;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.about-presskit-link:hover,
.about-presskit-link:focus-visible {
    border-color: #ff6976;
    background: rgba(226, 0, 26, 0.24);
    color: #ffd9dd;
}

.about-copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0.5rem;
    border: 1px solid rgba(120, 255, 235, 0.45);
    background: transparent;
    color: #a5ffe8;
    font-family: var(--mono);
    font-size: inherit;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.about-copy-btn:hover,
.about-copy-btn:focus-visible {
    border-color: #78ffeb;
    background: rgba(120, 255, 235, 0.15);
    color: #d8fff5;
}

.about-copy-btn.is-copied {
    border-color: #78ffeb;
    background: rgba(120, 255, 235, 0.24);
    color: #d8fff5;
}

.about-index-body {
    padding: 0.85rem;
    overflow-y: auto;
    font-size: 0.78rem;
    line-height: 1.55;
}

.about-prompt {
    margin: 1rem 0 0.35rem;
    color: #ff8994;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
}

.about-index-body > .about-prompt:first-child { margin-top: 0; }

.about-identity {
    margin: 0;
    color: #d3fff4;
    font-size: 0.95rem;
    letter-spacing: 0.03em;
}

.about-identity span {
    color: rgba(184, 252, 232, 0.6);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.about-index-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.about-index-list li { position: relative; padding-left: 0.9rem; }
.about-index-list li::before { position: absolute; left: 0; color: #45d8bd; content: '>'; }
.about-index-list a { color: #b8fce8; text-decoration: none; }
.about-index-list a:hover, .about-index-list a:focus-visible { color: #ff9ca5; text-decoration: underline; }

.about-index-note {
    margin: 0;
    color: rgba(165, 255, 232, 0.5);
    font-size: 0.68rem;
    line-height: 1.5;
}

.about-doc-scroll {
    flex: 1;
    min-height: 0;
    padding: 1rem clamp(0.9rem, 2vw, 1.8rem) 1.6rem;
    overflow-y: auto;
    scrollbar-color: #45d8bd rgba(5, 23, 26, 0.9);
    scrollbar-width: thin;
}

.about-doc-scroll::-webkit-scrollbar { width: 9px; }
.about-doc-scroll::-webkit-scrollbar-track { border-left: 1px solid rgba(120, 255, 235, 0.2); background: rgba(5, 23, 26, 0.9); }
.about-doc-scroll::-webkit-scrollbar-thumb { border: 2px solid rgba(5, 23, 26, 0.9); background: linear-gradient(180deg, #76f5d9, #168c72); }
.about-doc-scroll::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #ff8994, #e2001a); }

.about-line {
    display: grid;
    grid-template-columns: 2.4rem minmax(0, 1fr);
    gap: 0.6rem;
    margin: 0 0 0.85rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px dashed rgba(120, 255, 235, 0.12);
}

.about-line-no {
    color: rgba(255, 137, 147, 0.65);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-align: right;
    user-select: none;
}

.about-line-text {
    color: rgba(206, 255, 244, 0.9);
    font-size: 0.9rem;
    line-height: 1.72;
}

.about-line:first-of-type .about-line-text {
    color: #e6fffa;
    font-size: 1rem;
}

.about-section {
    margin: 1.9rem 0 0.9rem;
    padding-top: 1.1rem;
    border-top: 1px solid rgba(120, 255, 235, 0.24);
    color: #a5ffe8;
    font-size: 0.86rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.about-section span { color: #ff8994; }

.about-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 0.9rem;
}

.about-link-chip {
    padding: 0.34rem 0.7rem;
    border: 1px solid rgba(120, 255, 235, 0.35);
    background: rgba(10, 45, 45, 0.5);
    color: #b8fce8;
    font-size: 0.74rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.about-link-chip::before { color: rgba(255, 137, 147, 0.8); content: '[ '; }
.about-link-chip::after { color: rgba(255, 137, 147, 0.8); content: ' ]'; }

.about-link-chip:hover,
.about-link-chip:focus-visible {
    border-color: #ff6976;
    background: rgba(226, 0, 26, 0.22);
    color: #ffd9dd;
}

.about-link-chip.is-mail {
    border-color: rgba(255, 137, 147, 0.55);
    color: #ffc9ce;
}

.about-cta {
    margin: 2rem 0 0;
    padding: 1.1rem 1.2rem;
    border: 1px dashed rgba(255, 137, 147, 0.5);
    background: linear-gradient(180deg, rgba(226, 0, 26, 0.09), rgba(3, 16, 19, 0.2));
}

.about-cta .about-prompt { margin: 0 0 0.5rem; }

.about-cta-text {
    margin: 0 0 0.9rem;
    color: rgba(184, 252, 232, 0.82);
    font-size: 0.84rem;
    line-height: 1.6;
}

.about-cta-btn {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    padding: 0.6rem 1.1rem;
    border: 1px solid rgba(120, 255, 235, 0.5);
    background: rgba(10, 45, 45, 0.7);
    color: #d3fff4;
    font-size: 0.76rem;
    letter-spacing: 0.12em;
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.about-cta-btn:hover,
.about-cta-btn:focus-visible {
    border-color: #ff6976;
    background: rgba(226, 0, 26, 0.24);
    color: #ffd9dd;
}

.about-eof {
    margin: 1.4rem 0 0;
    color: rgba(165, 255, 232, 0.45);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
}

@media (max-width: 979px) {
    .about-terminal { position: relative; inset: auto; height: auto; min-height: 100vh; }
    .about-terminal-layout { grid-template-columns: 1fr; }
    .about-doc-scroll { overflow: visible; }
    .about-index-body { overflow: visible; }
    .about-terminal-index { max-height: none; }
    .about-terminal-media { min-height: 320px; }
}

@media (prefers-reduced-motion: reduce) {
    .about-bubble { animation: none; }
}
